From: Gowtham Anandha Babu Date: Wed, 20 Apr 2016 11:43:32 +0000 (+0530) Subject: [gallery] Add initial code X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fheads%2Ftizen_legacy;p=profile%2Fwearable%2Fapps%2Fnative%2Fgallery.git [gallery] Add initial code Tested under Tizen 3.0 Emulator. Change-Id: Id3125abeae52dd1cc9bcb01507a0b93cde27103a --- diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100755 index 0000000..4dc33b5 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,147 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +PROJECT(gallery C CXX) + +SET(RSRC_DIR res) + +SET(EDC_DIR black_theme/edc) +SET(IMG_DIR black_theme/edc/images) +SET(SOUND_DIR black_theme/edc/sounds) +SET(IMG_EDC_DIR black_theme/images_edc) + +AUX_SOURCE_DIRECTORY(${CMAKE_SOURCE_DIR}/src/2dview 2DVIEW_SRCS) + +AUX_SOURCE_DIRECTORY(${CMAKE_SOURCE_DIR}/src MAIN_SRCS) +AUX_SOURCE_DIRECTORY(${CMAKE_SOURCE_DIR}/src/features FEATURE_SRCS) +AUX_SOURCE_DIRECTORY(${CMAKE_SOURCE_DIR}/src/widget WIDGET_SRCS) +AUX_SOURCE_DIRECTORY(${CMAKE_SOURCE_DIR}/src/util UTIL_SRCS) +AUX_SOURCE_DIRECTORY(${CMAKE_SOURCE_DIR}/src/data DATA_SRCS) + +SET(APP_SRCS + ${2DVIEW_SRCS} + ${MAIN_SRCS} + ${FEATURE_SRCS} + ${WIDGET_SRCS} + ${UTIL_SRCS} + ${DATA_SRCS} + ) + +SET(VENDOR "tizen") +SET(PACKAGE ${PROJECT_NAME}) +SET(PKGNAME "org.${VENDOR}.gallery") +SET(PREFIX ${CMAKE_INSTALL_PREFIX}) +SET(BINDIR "${PREFIX}/bin") +SET(RESDIR "${PREFIX}/res") +SET(DATADIR "${PREFIX}/data") +SET(LOCALEDIR "${RESDIR}/locale") +SET(ICONDIR "/usr/share/icons/default/small") +SET(EDJDIR "${RESDIR}/edje") + +IF("${CMAKE_BUILD_TYPE}" STREQUAL "") + SET(CMAKE_BUILD_TYPE "Release") +ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "") +MESSAGE("Build type: ${CMAKE_BUILD_TYPE}") + +INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src/2dview) +INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/inc) +INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/inc/data) +INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/inc/util) +INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/inc/widget) +INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/inc/features) + +INCLUDE(FindPkgConfig) +pkg_check_modules(pkgs REQUIRED + appsvc + elementary + evas + efl-extension + glib-2.0 + notification + storage + capi-appfw-application + capi-content-media-content + capi-system-system-settings + capi-appfw-widget-application +) + +FOREACH(flag ${pkgs_CFLAGS}) + SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") +ENDFOREACH(flag) + +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fvisibility=hidden") +SET(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC") +SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -fpie") +SET(CMAKE_C_FLAGS_RELEASE "-O2 -fpie") + +FIND_PROGRAM(UNAME NAMES uname) +EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH") +IF("${ARCH}" MATCHES "arm") + ADD_DEFINITIONS("-DTARGET") + MESSAGE("add -DTARGET") +ENDIF("${ARCH}" MATCHES "arm") + +ADD_DEFINITIONS("-DVENDOR=\"${VENDOR}\"") +ADD_DEFINITIONS("-DPACKAGE=\"${PACKAGE}\"") +ADD_DEFINITIONS("-DPACKAGE_NAME=\"${PKGNAME}\"") +ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"") +ADD_DEFINITIONS("-DRESDIR=\"${RESDIR}\"") +ADD_DEFINITIONS("-DDATADIR=\"${DATADIR}\"") +ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"") +ADD_DEFINITIONS("-DICONDIR=\"${ICONDIR}\"") +ADD_DEFINITIONS("-DEDJDIR=\"${EDJDIR}\"") + +ADD_DEFINITIONS("-D_USE_DLOG_") +ADD_DEFINITIONS("-D_USE_SECURE_LOG_") +ADD_DEFINITIONS("-D_USE_ROTATE_BG") +ADD_DEFINITIONS("-D_RENAME_ALBUM_SENSITIVE") +ADD_DEFINITIONS("-D_USE_OPENGL_BACKEND") +ADD_DEFINITIONS("-D_USE_GRID_CHECK") +ADD_DEFINITIONS("-D_USE_ALBUM_SHARE") + +SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie") +SET(CMAKE_LDFLAGS "-Wl,-zdefs" ) + +ADD_EXECUTABLE(${PROJECT_NAME} ${APP_SRCS}) +TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} -lstdc++ "-ldl") + +# EDC/EDJ +ADD_CUSTOM_COMMAND(OUTPUT gallery.edj + COMMAND edje_cc -id ${CMAKE_SOURCE_DIR}/${RSRC_DIR}/${IMG_DIR} + -sd ${CMAKE_SOURCE_DIR}/${RSRC_DIR}/${SOUND_DIR} + ${CMAKE_SOURCE_DIR}/${RSRC_DIR}/${EDC_DIR}/gallery.edc ${CMAKE_BINARY_DIR}/gallery.edj + DEPENDS ${CMAKE_SOURCE_DIR}/${RSRC_DIR}/${EDC_DIR}/gallery.edc +) + +ADD_CUSTOM_COMMAND(OUTPUT gl-images.edj + COMMAND edje_cc -id ${CMAKE_SOURCE_DIR}/${RSRC_DIR}/${IMG_EDC_DIR} + ${CMAKE_SOURCE_DIR}/${RSRC_DIR}/${IMG_EDC_DIR}/gl-images.edc ${CMAKE_BINARY_DIR}/gl-images.edj + DEPENDS ${CMAKE_SOURCE_DIR}/${RSRC_DIR}/${IMG_EDC_DIR}/gl-images.edc +) + +ADD_CUSTOM_TARGET(edj_build DEPENDS gallery.edj gl-images.edj) + +ADD_DEPENDENCIES(${PROJECT_NAME} edj_build) + +INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR}) +INSTALL(FILES ${CMAKE_BINARY_DIR}/gallery.edj DESTINATION ${EDJDIR}) +INSTALL(FILES ${CMAKE_BINARY_DIR}/gl-images.edj DESTINATION ${EDJDIR}) + +# install manifest file & icon +INSTALL(FILES ${CMAKE_BINARY_DIR}/${PKGNAME}.xml DESTINATION /usr/share/packages) +INSTALL(FILES ${CMAKE_SOURCE_DIR}/${RSRC_DIR}/icon/${PKGNAME}.png DESTINATION ${ICONDIR}) +INSTALL(FILES ${CMAKE_SOURCE_DIR}/widget/res/preview_gallery_4x4.png DESTINATION ${ICONDIR}) + +INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/res/black_theme/images DESTINATION ${RESDIR}) + +# install content shortcut uri file +INSTALL(FILES ${CMAKE_SOURCE_DIR}/${RSRC_DIR}/gallery.uri DESTINATION /usr/share/miregex) + +# install smack rule file +INSTALL(FILES ${CMAKE_SOURCE_DIR}/org.tizen.gallery.efl DESTINATION /etc/smack/accesses.d) + +# install application HOME directory +INSTALL(DIRECTORY DESTINATION /opt/usr/apps/${PKGNAME}/data) + +# i18n +ADD_SUBDIRECTORY(res/po) +ADD_SUBDIRECTORY(widget) + diff --git a/INSTALL b/INSTALL new file mode 100755 index 0000000..3f81c54 --- /dev/null +++ b/INSTALL @@ -0,0 +1,33 @@ +1. make the build directory + + ex) + + $ mkdir build + + +2. change the working directory to the build directory + + ex) + + $ cd build + + +3. run 'cmake' + + $ cmake ${SOURCE_DIR} -DCMAKE_INSTALL_PREFIX=/opt/apps/@@PKGNAME@@ + + ex) + + $ cmake .. -DCMAKE_INSTALL_PREFIX=/opt/apps/@@PKGNAME@@ + + or + + $ cmake .. + + +4. make & make install + + ex) + + $ make -j 2 && make install + 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/NOTICE b/NOTICE new file mode 100755 index 0000000..62e0bd2 --- /dev/null +++ b/NOTICE @@ -0,0 +1,3 @@ +Copyright (c) 2000-2015 Samsung Electronics Co., Ltd. All rights reserved. + + diff --git a/cscope.out b/cscope.out new file mode 100644 index 0000000..28271e4 --- /dev/null +++ b/cscope.out @@ -0,0 +1,187674 @@ +cscope 15 $HOME/wearables/gallery 0001107946 + @inc/data/gl-data-type.h + +18 #iâdeà +_GL_DATA_TYPE_H_ + + +19  + #_GL_DATA_TYPE_H_ + + + ) + +21  + ~<¡dlib.h +> + +22  + ~ + +23  + ~ + +24  + ~ + +26 #ifdeà +__ýlu¥lus + + +31  + #GL_FREEIF +( +±r +) \ + +33 if( +±r + !ð +NULL +) { \ + +34 + `ä“ +( +±r +); \ + +35 +±r + = +NULL +; \ + +37 } 0) + + ) + +39  + #GL_FREE +( +±r +) \ + +41 + `ä“ +( +±r +); \ + +42 +±r + = +NULL +; \ + +43 } 0) + + ) + +45  + #GL_GFREEIF +( +±r +) \ + +47 if( +±r + !ð +NULL +) { \ + +48 + `g_ä“ +( +±r +); \ + +49 +±r + = +NULL +; \ + +51 } 0) + + ) + +53  + #GL_GFREE +( +±r +) \ + +55 + `g_ä“ +( +±r +); \ + +56 +±r + = +NULL +; \ + +57 } 0) + + ) + +59  + #GL_TYPE_ALBUM + (0x55551) + + ) + +60  + #GL_TYPE_MEDIA + (0x55553) + + ) + +61  + #GL_TYPE_WEB_MEDIA + (0x55554) + + ) + +64 +GL_STORE_T_PHONE + = 0, + +65 +GL_STORE_T_MMC +, + +66 +GL_STORE_T_ALL +, + +67 +GL_STORE_T_FAV +, + +68 } + tgl_¡Üe_ty³_e +; + +71  +_gl_®bum_t + + tgl_®bum_s +; + +72  +_gl_medŸ_t + + tgl_medŸ_s +; + +73  +_gl_image_t + + tgl_image_s +; + +74  +_gl_video_t + + tgl_video_s +; + +76  + s_gl_®bum_t + { + +77  +gty³ +; + +78 +medŸ_fÞd”_h + +fÞd”_h +; + +79 * +uuid +; + +80 * +di¥Ïy_Çme +; + +81 * +·th +; + +82  +ty³ +; + +83 +time_t + +mtime +; + +84  +couÁ +; + +87  + s_gl_medŸ_t + { + +88 * +ad +; + +89  +gty³ +; + +90 +medŸ_šfo_h + +medŸ_h +; + +91 * +uuid +; + +92  +ty³ +; + +93 * +thumb_u¾ +; + +94 * +fže_u¾ +; + +95 +time_t + +mtime +; + +96 * +di¥Ïy_Çme +; + +97  +mode +; + +98 * +ext +; + +99 +gl_¡Üe_ty³_e + +¡Üage_ty³ +; + +100 +boÞ + +b_ü—‹_thumb +; + +101 +boÞ + +check_¡©e +; + +102 +Elm_Objeù_I‹m + * +–m_™em +; + +105 +gl_image_s + * +image_šfo +; + +106 +gl_video_s + * +video_šfo +; + +110  + s_gl_image_t + { + +111 * +medŸ_uuid +; + +112 +image_m‘a_h + +image_h +; + +113  +ܛÁ©iÚ +; + +114 * +bur¡shÙ_id +; + +117  + s_gl_video_t + { + +118 * +medŸ_uuid +; + +119 +video_m‘a_h + +video_h +; + +120 * +t™Ë +; + +121 +time_t + +Ï¡_¶ayed_pos +; + +122  +du¿tiÚ +; + +123  +bookm¬ks +; + +126  +_gl_d©a_ty³_Ãw_medŸ +( +gl_medŸ_s + ** +™em +); + +127  +_gl_d©a_ty³_Ãw_®bum +( +gl_®bum_s + ** +®bum +); + +129  +_gl_d©a_ty³_ä“_medŸ_li¡ +( +Eša_Li¡ + ** +li¡ +); + +130  +_gl_d©a_ty³_ä“_®bum_li¡ +( +Eša_Li¡ + ** +li¡ +); + +131  +_gl_d©a_ty³_ä“_gl™em +(** +™em +); + +133 #ifdeà +__ýlu¥lus + + + @inc/data/gl-data-util.h + +17 #iâdeà +_GL_DATA_UTIL_H_ + + +18  + #_GL_DATA_UTIL_H_ + + + ) + +20  + ~ + +21  + ~ + +22  + ~ + +23  + ~"gl-d©a-ty³.h +" + +25 #ifdeà +__ýlu¥lus + + +30  + #GL_MAX_BYTES_FOR_CHAR + 3 + + ) + +31  + #GL_FILE_PATH_LEN_MAX + (4095 * +GL_MAX_BYTES_FOR_CHAR + + 1) + + ) + +32  + #GL_FILE_NAME_LEN_MAX + (255 * +GL_MAX_BYTES_FOR_CHAR + + 1) + + ) + +33  + #GL_DIR_PATH_LEN_MAX + +GL_FILE_PATH_LEN_MAX + + + ) + +34  + #GL_ARRAY_LEN_MAX + 256 + + ) + +35  + #GL_FILE_EXT_LEN_MAX + 256 + + ) + +36  + #GL_FIRST_VIEW_START_POS + 0 + + ) + +37  + #GL_FIRST_VIEW_END_POS + 47 + +38  + #GL_GET_UNTIL_LAST_RECORD + 65536 + +39  + #GL_GET_ALL_RECORDS + (-1) + + ) + +40  + #GL_GET_ONE_RECORD + 1 + + ) + +41  + #GL_GET_ALL_RECORDS_ID + +NULL + + + ) + +43  + #GL_ALBUM_COVER_THUMB_NUM + 1 + + ) + +50  + #GL_NEW_RECORD_ID + +NULL + + + ) + +51  + #GL_PINCH_WIDTH + 4 + + ) + +52  + #GL_PINCH_LANDSCAPE_WIDTH + 9 + + ) + +54  + #GL_JPEG_FILE_EXT + "jpg" + + ) + +57 +GL_SORT_BY_NONE +, + +58 +GL_SORT_BY_NAME_DESC +, + +59 +GL_SORT_BY_NAME_ASC +, + +60 +GL_SORT_BY_DATE_DESC +, + +61 +GL_SORT_BY_DATE_ASC +, + +62 } + tgl_sÜt_ty³_e +; + +65 +GL_ICON_NORMAL +, + +66 +GL_ICON_CORRUPTED_FILE + + +67 } + tgl_icÚ_ty³_e +; + +70 +Eša_Li¡ + * +þi¡ +; + +72  +ed™_út +; + +73  +phÚe_út +; + +74 } + tgl_þu¡”_li¡ +; + +76  +_gl_thumb_d©a_t + + tgl_thumb_d©a_s +; + +77  +_gl_®bum_d©a_t + + tgl_®bum_d©a_s +; + +78  +_gl_þu¡” + + tgl_þu¡” +; + +80  + s_gl_™em + { + +81 +gl_medŸ_s + * +™em +; + +82  +icÚ_idx +; + +83  +li¡_™em_út +; + +85  +li¡_idx +[ +GL_PINCH_LANDSCAPE_WIDTH +]; + +87 +Elm_Objeù_I‹m + * +–m_™em +; + +88 +boÞ + +´—µ’d +; + +89 +boÞ + +checked +; + +90  +£qu’û +; + +91 +boÞ + +b_d–‘ed +; + +93  +¡Üe_ty³ +; + +94  +_gl_™em + * +´e_g™em +; + +95 * +ad +; + +96 +gl_thumb_d©a_s + * +thumb_d©a +; + +97 +gl_þu¡” + * +®bum +; + +98 } + tgl_™em +; + +100  + s_gl_þu¡” + { + +101 +gl_®bum_s + * +þu¡” +; + +102  +šdex +; + +103 +Eša_Li¡ + * +–i¡ +; + +104 +Eša_Li¡ + * +–i¡1 +; + +105 +Elm_Objeù_I‹m + * +™em +; + +106 +boÞ + +checked +; + +108 * +ad +; + +109 +gl_™em + * +cov” +; + +110  +cov”_thumbs_út +; + +111 +gl_®bum_d©a_s + * +®bum_d©a +; + +114  + s_gl_®bum_d©a_t + { + +115 * +ad +; + +116 +gl_þu¡” + * +®bum +; + +119  + s_gl_thumb_d©a_t + { + +120 * +ad +; + +121 +gl_™em + * +™em +; + +124 +boÞ + +_gl_d©a_utž_g‘_fže_dœ_Çme +(cÚ¡ * +fže_·th +, * +fž’ame +, + +125 * +dœ_Çme +, * +dœ_·th +); + +126 +gl_™em + * +_gl_d©a_utž_ÿÎoc_g™em +(); + +127  +_gl_d©a_utž_ä“_g™em +( +gl_™em + * +g™em +); + +128 +gl_þu¡” + * +_gl_d©a_utž_ÿÎoc_gþu¡” +(); + +129  +_gl_d©a_utž_ä“_gþu¡” +( +gl_þu¡” + * +gþu¡” +); + +130 +gl_þu¡” + * +_gl_d©a_utž_Ãw_gþu¡”_®l +(* +d©a +,  +couÁ +); + +131 +gl_þu¡” + * +_gl_d©a_utž_Ãw_gþu¡”_çv +(* +d©a +,  +couÁ +); + +132 +gl_þu¡”_li¡ + * +_gl_d©a_utž_ÿÎoc_þu¡”_li¡ +(); + +133  +_gl_d©a_utž_þ—r_gty³_™em_li¡ +( +Eša_Li¡ + ** +–i¡ +); + +134  +_gl_d©a_utž_þ—r_™em_li¡ +( +Eša_Li¡ + ** +–i¡ +); + +135  +_gl_d©a_utž_þ—r_þu¡”_li¡ +( +Eša_Li¡ + ** +–i¡ +); + +136  +_gl_d©a_utž_g‘_£Ëùed_þu¡”_id_li¡ +(* +d©a +, + +137 +Eša_Li¡ + ** +£l_id_li¡ +); + +138  +_gl_d©a_utž_g‘_£Ëùed_¡r_ids +( +Eša_Li¡ + ** +£l_li¡ +, Eša_Li¡ ** +–i¡ +); + +139 +boÞ + +_gl_d©a_utž_check_£Ëùed_¡r_id +( +Eša_Li¡ + ** +£l_id_li¡ +, cÚ¡ * +id +); + +140  +_gl_d©a_utž_ä“_£Ëùed_¡r_li¡ +( +Eša_Li¡ + ** +£l_id_li¡ +); + +141 +boÞ + +_gl_d©a_utž_check_£Ëùed_št_id +( +Eša_Li¡ + ** +£l_id_li¡ +,  +id +); + +142  +_gl_d©a_utž_check_®bum_£Ëùed_fžes +( +gl_þu¡” + * +®bum +, + +143 * +img_út +, * +£l_út +, + +144 * +web_út +); + +145  +_gl_d©a_utž_g‘_cÚd +(* +cÚd +); + +146  +_gl_d©a_utž_g‘_çv_cÚd +(* +cÚd +); + +148 #ifdeà +__ýlu¥lus + + + @inc/data/gl-data.h + +18 #iâdeà +_GL_DATA_H_ + + +19  + #_GL_DATA_H_ + + + ) + +21  + ~ + +22  + ~ + +23  + ~ + +24  + ~"gl-loÿl-d©a.h +" + +25  + ~"gl-d©a-utž.h +" + +27 #ifdeà +__ýlu¥lus + + +32  +_gl_d©a_ý_™em_li¡ +(* +d©a +, +Eša_Li¡ + * +–i¡ +, Eša_Li¡ ** +p_–i¡ +); + +33  +_gl_d©a_þ—r_þu¡”_li¡ +(* +d©a +, +boÞ + +b_fÜû +); + +34 +boÞ + +_gl_d©a_g‘_þu¡”_li¡ +(* +d©a +); + +35  +_gl_d©a_upd©e_þu¡”_li¡ +(* +d©a +); + +36  +_gl_d©a_þu¡”_li¡_»move +(* +d©a +, +gl_þu¡” + * +™em +); + +37 +boÞ + +_gl_d©a_exi¡s_™em +(* +d©a +, cÚ¡ * +id +); + +38  +_gl_d©a_g‘_þu¡”_by_id +(* +d©a +, cÚ¡ * +þu¡”_id +, + +39 +gl_þu¡” + ** +þu¡” +); + +40  +_gl_d©a_g‘_þu¡”_by_·th +(* +d©a +, cÚ¡ * +·th +, + +41 +gl_þu¡” + ** +þu¡” +); + +42  +_gl_d©a_g‘_™em_út +(cÚ¡ * +þu¡”_id +,  +®bum_ty³ +, * +™em_út +); + +43  +_gl_d©a_upd©e_™em_út +( +gl_þu¡” + * +®bum +); + +44  +_gl_d©a_g‘_™ems +( +¡¬t_pos +,  +’d_pos +, +Eša_Li¡ + ** +li¡ +); + +45  +_gl_d©a_g‘_™ems_®bum +(* +d©a +, +gl_þu¡” + * +®bum +,  +¡¬t_pos +, + +46  +’d_pos +, +Eša_Li¡ + ** +p_–i¡ +); + +47  +_gl_d©a_upd©e_™em_li¡ +(* +d©a +, +Eša_Li¡ + ** +£l_id_li¡ +, + +48 +Eša_Li¡ + ** +p_–i¡ +); + +49 +boÞ + +_gl_d©a_is_™em_út_z”o +(* +d©a +, +medŸ_cڋÁ_ty³_e + +ty³ +, + +50 +Eša_Li¡ + * +–i¡ +); + +51  +_gl_d©a_g‘_fœ¡_™em +( +medŸ_cڋÁ_ty³_e + +ty³ +, +Eša_Li¡ + * +–i¡ +, + +52 +gl_™em + ** +p_g™em +); + +53  +_gl_d©a_g‘_®bum_cov” +( +gl_þu¡” + * +®bum +, +gl_™em + ** +pg™em +, + +54 +medŸ_cڋÁ_Üd”_e + +sÜt_ty³ +); + +55 +gl_™em + * +_gl_d©a_Ãw_™em_m™em +( +gl_medŸ_s + * +m™em +); + +56  +_gl_d©a_g‘_Üig_™em_by_šdex +(* +d©a +, +gl_™em + ** +g™em +,  +idx +); + +57  +_gl_d©a_d–‘e_fže +(* +·th +, * +uuid +, +boÞ + +is_hide +); + +58  +_gl_d©a_£Ëùed_li¡_­³nd +(* +d©a +, +gl_™em + * +g™em +); + +59  +_gl_d©a_£Ëùed_li¡_»move +(* +d©a +, +gl_™em + * +g™em +); + +60  +_gl_d©a_£Ëùed_çv_li¡_»move +(* +d©a +, +gl_™em + * +g™em +); + +61  +_gl_d©a_£Ëùed_li¡_»move_Úe +(* +d©a +, +gl_™em + * +g™em +); + +62 +gl_™em + * +_gl_d©a_£Ëùed_li¡_g‘_Áh +(* +d©a +,  +idx +); + +63  +_gl_d©a_£Ëùed_li¡_fš®ize +(* +d©a +); + +64  +_gl_d©a_þ—r_£Ëùed_šfo +(* +d©a +); + +65  +_gl_d©a_£Ëùed_li¡_couÁ +(* +d©a +); + +66 +boÞ + +_gl_d©a_is_®bums_£Ëùed_em±y +(* +d©a +); + +67  +_gl_d©a_g‘_®bums_£Ëùed_fžes +(* +d©a +, * +g‘_cb +, * +cb_d©a +); + +68  +_gl_d©a_g‘_®bums_£Ëùed_út +(* +d©a +); + +69  +_gl_d©a_£Ëùed_add_bur¡shÙ +(* +d©a +, +gl_™em + * +g™em +, +Eša_Li¡ + * +–i¡ +); + +70 +boÞ + +_gl_d©a_g‘_bur¡shÙ_¡©us +(* +d©a +, +gl_™em + * +g™em +); + +71  +_gl_d©a_®bums_£Ëùed_li¡_­³nd +(* +d©a +, +gl_þu¡” + * +™em +); + +72  +_gl_d©a_®bums_£Ëùed_li¡_»move +(* +d©a +, +gl_þu¡” + * +™em +); + +73  +_gl_d©a_fš®ize_®bums_£Ëùed_li¡ +(* +d©a +); + +74  +_gl_d©a_š™ +(* +d©a +); + +75  +_gl_d©a_fš®ize +(* +d©a +); + +76 +gl_™em + * +_gl_d©a_Ãw_g™em +(* +d©a +, cÚ¡ * +™em_id +); + +77 +boÞ + +_gl_d©a_is_roÙ_·th +(cÚ¡ * +·th +); + +78 +boÞ + +_gl_d©a_check_roÙ_ty³ +(cÚ¡ * +·th +, cÚ¡ * +roÙ +); + +79 +boÞ + +_gl_d©a_is_deçuÉ_®bum +(cÚ¡ * +m©ch_fÞd” +, +gl_®bum_s + * +®bum +); + +80 +boÞ + +_gl_d©a_is_sü“nshÙ_®bum +(cÚ¡ * +m©ch_fÞd” +, +gl_®bum_s + * +®bum +); + +81 +boÞ + +_gl_d©a_is_ÿm”a_®bum +( +gl_®bum_s + * +®bum +); + +82  +_gl_d©a_d–‘e_medŸ +(* +d©a +, +gl_medŸ_s + * +medŸ_™em +); + +83  +_gl_d©a_ü—‹_thumb +( +gl_medŸ_s + * +™em +, + +84 +medŸ_thumbǞ_com¶‘ed_cb + +ÿÎback +, + +85 * +u£r_d©a +); + +86  +_gl_d©a_ÿnûl_thumb +( +gl_medŸ_s + * +™em +); + +87 +boÞ + +_gl_d©a_is_®bum_exi¡s +(* +d©a +, +gl_þu¡” + * +®bum +); + +88  +_gl_d©a_§ve_£Ëùed_¡r_ids +(* +d©a +, +Eša_Li¡ + ** +–i¡ +); + +89  +_gl_d©a_»¡Üe_£Ëùed +( +Eša_Li¡ + * +£l_ids +, +gl_™em + * +g™em +); + +90 +boÞ + +_gl_d©a_check_£Ëùed_id +( +Eša_Li¡ + * +£l_id_li¡ +, cÚ¡ * +id +); + +92 #ifdeà +__ýlu¥lus + + + @inc/data/gl-local-data.h + +18 #iâdeà +_GL_LOCAL_DATA_H_ + + +19  + #_GL_LOCAL_DATA_H_ + + + ) + +21  + ~"gl-d©a-ty³.h +" + +23 #ifdeà +__ýlu¥lus + + +30  + #GL_CONDITION_IMAGE_VIDEO + "(MEDIA_TYPE=0 OR MEDIA_TYPE=1)" + + ) + +31  + #GL_CONDITION_IMAGE + "(MEDIA_TYPE=0)" + + ) + +32  + #GL_CONDITION_VIDEO + "(MEDIA_TYPE=1)" + + ) + +33  + #GL_CONDITION_ORDER + "MEDIA_TIMELINE, MEDIA_DISPLAY_NAME" + + ) + +35  + #CONDITION_LENGTH + 512 + + ) + +36  + #KEYWORD_LENGTH + 128 + + ) + +38  +_gl_fž‹r_t + + tgl_fž‹r_s +; + +40  + s_gl_fž‹r_t + { + +41  +cÚd +[ +CONDITION_LENGTH +]; + +42 +medŸ_cڋÁ_cÞÏtiÚ_e + +cÞϋ_ty³ +; + +43 +medŸ_cڋÁ_Üd”_e + +sÜt_ty³ +; + +44  +sÜt_keywÜd +[ +KEYWORD_LENGTH +]; + +45  +off£t +; + +46  +couÁ +; + +47 +boÞ + +w™h_m‘a +; + +50  +_gl_loÿl_d©a_cÚÃù +(); + +51  +_gl_loÿl_d©a_discÚÃù +(); + +52  +_gl_loÿl_d©a_g‘_®bum_by_·th +(* +·th +, +gl_®bum_s + ** +®bum +); + +53  +_gl_loÿl_d©a_g‘_®bum_li¡ +( +gl_fž‹r_s + * +cÚd™iÚ +, +Eša_Li¡ + ** +–i¡ +); + +54  +_gl_loÿl_d©a_g‘_medŸ_by_id +(* +medŸ_id +, +gl_medŸ_s + ** +m™em +); + +55  +_gl_loÿl_d©a_g‘_medŸ_by_·th +(cÚ¡ * +·th +, +gl_medŸ_s + ** +m™em +); + +56  +_gl_loÿl_d©a_g‘_medŸ_couÁ +(cÚ¡ * +þu¡”_id +, +gl_fž‹r_s + * +cÚd™iÚ +, + +57 * +™em_út +); + +58  +_gl_loÿl_d©a_g‘_®l_medŸ_couÁ +( +gl_fž‹r_s + * +fž‹r +, * +™em_út +); + +59  +_gl_loÿl_d©a_g‘_®bum_medŸ_li¡ +( +gl_fž‹r_s + * +cÚd™iÚ +, + +60 cÚ¡ * +®bum_id +, +Eša_Li¡ + ** +–i¡ +); + +61  +_gl_loÿl_d©a_g‘_®bum_cov” +( +gl_fž‹r_s + * +cÚd™iÚ +, cÚ¡ * +®bum_id +, + +62 +Eša_Li¡ + ** +–i¡ +); + +63  +_gl_loÿl_d©a_g‘_®l_®bums_medŸ_li¡ +( +gl_fž‹r_s + * +cÚd™iÚ +, + +64 +Eša_Li¡ + ** +–i¡ +); + +65  +_gl_loÿl_d©a_g‘_çv_®bums_medŸ_li¡ +( +gl_fž‹r_s + * +cÚd™iÚ +, + +66 +Eša_Li¡ + ** +–i¡ +); + +67  +_gl_loÿl_d©a_g‘_®l_®bums_cov” +( +gl_fž‹r_s + * +cÚd™iÚ +, + +68 +Eša_Li¡ + ** +–i¡ +); + +69  +_gl_loÿl_d©a_g‘_çv_®bums_cov” +( +gl_fž‹r_s + * +cÚd™iÚ +, + +70 +Eša_Li¡ + ** +–i¡ +); + +71  +_gl_loÿl_d©a_d–‘e_®bum +( +gl_®bum_s + * +þu¡” +, * +cb +, * +d©a +, +boÞ + +is_hide +); + +72  +_gl_loÿl_d©a_add_medŸ +(cÚ¡ * +fže_u¾ +, +medŸ_šfo_h + * +šfo +); + +73  +_gl_loÿl_d©a_g‘_thumb +( +gl_medŸ_s + * +m™em +, ** +thumb +); + +74  +_gl_loÿl_d©a_move_medŸ +( +gl_medŸ_s + * +m™em +, cÚ¡ * +d¡ +); + +75 +boÞ + +_gl_loÿl_d©a_is_®bum_exi¡s +(* +·th +); + +76  +_gl_loÿl_d©a_g‘_·th_by_id +(cÚ¡ * +uuid +, ** +·th +); + +78 #ifdeà +__ýlu¥lus + + + @inc/features/gl-albums-sel.h + +18 #iâdeà +_GL_ALBUMS_SEL_H_ + + +19  + #_GL_ALBUMS_SEL_H_ + + + ) + +21  + ~ + +22  + ~"g®Ëry.h +" + +24  +_gl_®bums_£l_ü—‹_v›w +(* +d©a +); + +25  +_gl_®bums_£l_upd©e_v›w +(* +d©a +); + +26  +_gl_®bums_£l_pÝ_v›w +(* +d©a +); + +27  +_gl_®bums_£l_rÙ©e_v›w +(* +d©a +); + + @inc/features/gl-albums.h + +18 #iâdeà +_GL_ALBUMS_H_ + + +19  + #_GL_ALBUMS_H_ + + + ) + +21  + ~ + +22  + ~"g®Ëry.h +" + +24  +_gl_®bums_þo£_®bum +(* +d©a +); + +25  +gl_®bums_upd©e_™ems +(* +d©a +); + +26  +_gl_®bums_ü—‹_v›w +(* +d©a +, +Evas_Objeù + * +·»Á +); + +27  +gl_®bums_upd©e_v›w +(* +d©a +); + +28  +gl_®bums_chªge_to_v›w +(* +d©a +); + +29  +gl_®bums_»move_nocڋÁs +(* +d©a +); + +30  +gl_®bums_ä“_d©a +(* +d©a +); + +31  +_gl_®bums_show_v›w_b +(* +d©a +, +Evas_Objeù + * +·»Á +); + +32  +_gl_®bums_hide_v›w_b +(* +d©a +); + +33  +_gl_®bums_chªge_mode +(* +d©a +, +boÞ + +b_ed™ +); + +34  +_gl_®bums_check_bŠs +(* +d©a +); + +35  +_gl_®bums_rÙ©e_v›w +(* +d©a +); + +36  +_gl_®bums_£t_cu¼’t +(* +d©a +, +gl_þu¡” + * +cu¼’t +); + +37 +gl_þu¡” + * +_gl_®bums_g‘_cu¼’t +(* +d©a +); + +38  +_gl_®bums_þ—r_cbs +( +Evas_Objeù + * +v›w +); + +39  +gl_®bums_ݒ_®bum +( +gl_þu¡” + * +®bum_™em +); + +40 +Evas_Objeù + * +_gl_®bums_add_g’grid +(* +d©a +, Evas_Objeù * +·»Á +); + +41 +Evas_Objeù + * +_gl_®bums_add_v›w +(* +d©a +, Evas_Objeù * +·»Á +); + +42 +Evas_Objeù + * +_gl_®bums_£l_add_v›w +(* +d©a +, Evas_Objeù * +·»Á +); + +43  +__gl_®bums_Ãw_®bum_£l +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +); + +44  +_gl_®bums_ü—‹_™ems +(* +d©a +, +Evas_Objeù + * +·»Á +); + +45  +_gl_¥l™_®bums_ü—‹_™ems +(* +d©a +, +Evas_Objeù + * +·»Á +); + + @inc/features/gl-entry.h + +18 #iâdeà +_GL_ENTRY_H_ + + +19  + #_GL_ENTRY_H_ + + + ) + +21  + ~ + +23  +_gl_’Œy_ü—‹_v›w +(* +d©a +, * +Çme +, * +t™Ë +); + +24  +_gl_’Œy_»sume_v›w +(* +d©a +); + + @inc/features/gl-main.h + +18 #iâdeà +_GL_MIAN_H_ + + +19  + #_GL_MIAN_H_ + + + ) + +21  + ~"g®Ëry.h +" + +23 #ifdeà +__ýlu¥lus + + +28  +_gl_maš_add_»g_idËr +(* +d©a +); + +29  +_gl_maš_ü—‹_v›w +( +gl_­pd©a + * +ad +); + +30  +_gl_maš_þ—r_v›w +( +gl_­pd©a + * +ad +); + +31 +Eša_BoÞ + +_gl_maš_upd©e_v›w +(* +d©a +); + +32  +_gl_maš_»£t_v›w +(* +d©a +); + +34 #ifdeà +__ýlu¥lus + + + @inc/features/gl-pinchzoom.h + +18 #iâdeà +_GL_PINCHZOOM_H_ + + +19  + #_GL_PINCHZOOM_H_ + + + ) + +21  +_gl_pšch_add_ev’t +(* +d©a +, +Evas_Objeù + * +Ïyout +); + +22  +_gl_pšch_»£t_æag +(* +d©a +); + + @inc/features/gl-thumbs-edit.h + +18 #iâdeà +_GL_THUMB_EDIT_H_ + + +19  + #_GL_THUMB_EDIT_H_ + + + ) + +21  + ~ + +22  + ~"g®Ëry.h +" + +24  +_gl_thumbs_ed™_add_bŠs +(* +d©a +, +Evas_Objeù + * +·»Á +, + +25 +Elm_Objeù_I‹m + * +nf_™ +); + +26  +_gl_thumbs_ed™_ü—‹_v›w +(* +d©a +); + +27  +_gl_thumbs_ed™_upd©e_v›w +(* +d©a +); + +28  +_gl_thumbs_ed™_pÝ_v›w +(* +d©a +); + +29  +_gl_thumbs_ed™_upd©e_Ïng +(* +d©a +); + +30  +_gl_thumbs_ed™_di§bË_bŠs +(* +d©a +, +boÞ + +b_di§bË +); + +31  +_gl_thumbs_ed™_g‘_·th +(* +d©a +, ** +fžes +); + + @inc/features/gl-thumbs-sel.h + +18 #iâdeà +_GL_THUMB_SEL_H_ + + +19  + #_GL_THUMB_SEL_H_ + + + ) + +21  + ~ + +22  + ~"g®Ëry.h +" + +24  +_gl_thumbs_£l_ü—‹_v›w +(* +d©a +, +gl_þu¡” + * +®bum_™em +); + +25  +_gl_thumbs_£l_upd©e_v›w +(* +d©a +); + +26  +_gl_thumbs_£l_pÝ_v›w +(* +d©a +, +boÞ + +b_pÝ +); + +27  +_gl_thumbs_£l_upd©e_Ïng +(* +d©a +); + +28  +_gl_thumbs_£l_di§bË_bŠs +(* +d©a +, +boÞ + +b_di§bËd +); + + @inc/features/gl-thumbs.h + +18 #iâdeà +_GL_THUMBS_H_ + + +19  + #_GL_THUMBS_H_ + + + ) + +21  + ~ + +22  + ~"g®Ëry.h +" + +24  + e_gl_thumb_mode + { + +25 + mGL_THUMB_ALL +, + +26 + mGL_THUMB_IMAGES +, + +27 + mGL_THUMB_VIDEOS +, + +28 } + tgl_thumb_mode +; + +31  + #GL_THUMBS_EDIT_FIRST + (0x1 << 8) + + ) + +33  + e_gl_thumbs_ed™_mode_t + { + +34 + mGL_THUMBS_EDIT_NONE + = (0x00), + +35 + mGL_THUMBS_EDIT_NORMAL + = (0x1 << 0), + +36 + mGL_THUMBS_EDIT_SHARE + = (0x1 << 1), + +37 + mGL_THUMBS_EDIT_COPY + = (0x1 << 2), + +38 + mGL_THUMBS_EDIT_MOVE + = (0x1 << 3), + +39 #ifdeà +_USE_APP_SLIDESHOW + + +40 + mGL_THUMBS_EDIT_SLIDESHOW + = (0x1 << 4è| +GL_THUMBS_EDIT_FIRST +, + +42 } + tgl_thumbs_ed™_e +; + +44 +Eša_BoÞ + +_gl_thumbs_­³nd_™ems +(* +d©a +); + +45  +_gl_thumbs_upd©e_»®ized_™ems +(* +d©a +); + +46 +Evas_Objeù + * +_gl_thumbs_g‘_cڋÁ +(* +d©a +, Evas_Objeù * +·»Á +, + +47 +gl_™em + * +g™em +,  +w +,  +h +); + +48  +_gl_thumbs_add_bŠs +(* +d©a +); + +49  +_gl_thumbs_mou£_down +(* +d©a +, +Evas + * +e +, +Evas_Objeù + * +obj +, * +ei +); + +50  +_gl_thumbs_mou£_up +(* +d©a +, +Evas + * +e +, +Evas_Objeù + * +obj +, * +ei +); + +51 +Evas_Objeù + * +_gl_thumbs_add_grid +(* +d©a +, Evas_Objeù * +·»Á +, + +52 +gl_thumb_mode + +mode +); + +53  +_gl_thumbs_show_ed™_v›w +(* +d©a +); + +54  +_gl_thumbs_show_v›w +(* +d©a +); + +55 +Eša_BoÞ + +_gl_thumbs_show_™ems +(* +d©a +); + +56  +_gl_thumbs_£t_li¡ +(* +d©a +, +Eša_Li¡ + * +–i¡ +); + +57  +_gl_thumbs_þ—r_ªd_£t_li¡ +(* +d©a +, +Eša_Li¡ + * +–i¡ +); + +58  +_gl_thumbs_g‘_li¡ +(* +d©a +, +Eša_Li¡ + ** +p_–i¡ +); + +59  +_gl_thumbs_ü—‹_v›w +(* +d©a +,  +nf_mode +, * +t™Ë +, +boÞ + +b_idËr +, + +60 +Elm_Naviäame_I‹m_PÝ_Cb + +func +); + +61  +_gl_thumbs_upd©e_¥l™_v›w +(* +d©a +,  +nf_mode +, * +t™Ë +, +boÞ + +b_idËr +, + +62 +Elm_Naviäame_I‹m_PÝ_Cb + +func +); + +63  +_gl_thumbs_upd©e_ed™_¥l™_v›w +(* +d©a +,  +nf_mode +, * +t™Ë +, +boÞ + +b_idËr +, + +64 +Elm_Naviäame_I‹m_PÝ_Cb + +func +); + +65  +_gl_thumbs_upd©e_™ems +(* +d©a +); + +66  +_gl_thumbs_upd©e_v›w +(* +d©a +); + +67  +_gl_thumbs_de¡roy_v›w +(* +d©a +, +boÞ + +b_pÝ +); + +68  +_gl_thumbs_de¡roy_v›w_w™h_cb +(* +d©a +, * +cb +); + +69 +boÞ + +_gl_thumbs_g‘_v›w +(* +d©a +, +Evas_Objeù + ** +v›w +); + +70 +boÞ + +_gl_thumbs_show_nocڋÁs +(* +d©a +); + +71  +_gl_thumbs_£t_nocڋÁs +(* +d©a +, +Evas_Objeù + * +noc +); + +72  +_gl_thumbs_£t_size +(* +d©a +, +Evas_Objeù + * +gridv›w +); + +73  +_gl_thumbs_þ—r_cbs +( +Evas_Objeù + * +grid +); + +74  +_gl_thumbs_d–‘e_v›w +(* +d©a +); + +75  +_gl_thumbs_upd©e_size +(* +d©a +, +Evas_Objeù + * +v›w +); + +76 +boÞ + +_gl_thumbs_is_­³nd +( +gl_™em + * +g™em +, ** +bur¡shÙ_id +); + +77 +boÞ + +_gl_thumbs_check_z”o +(* +d©a +); + +78  +_gl_thumbs_upd©e_Ïb– +( +Elm_Objeù_I‹m + * +nf_™ +, * +t™Ë +); + +79  +_gl_thumbs_upd©e_Ïb–_‹xt +( +Elm_Objeù_I‹m + * +nf_™ +,  +£l_út +, + +80 +boÞ + +b_Ïng +); + +81  +_gl_thumbs_upd©e_Ïng +(* +d©a +); + +82  +_gl_thumbs_di§bË_¦ideshow +(* +d©a +, +boÞ + +b_di§bËd +); + +83  +_gl_thumbs_di§bË_sh¬e +(* +d©a +, +boÞ + +b_di§bËd +); + +84  +_gl_thumbs_check_bŠs +(* +d©a +); + +85  +_gl_thumbs_upd©e_£qu’û +(* +d©a +); + +86  +_gl_thumbs_£t_ed™_mode +(* +d©a +,  +mode +); + +87  +_gl_thumbs_g‘_ed™_mode +(* +d©a +); + +88  +_gl_thumbs_rÙ©e_v›w +(* +d©a +); + +89  +_gl_thumbs_£l_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +); + +90  +_gl_thumbs_ݒ_fže +(* +d©a +); + +91  +_gl_thumbs_ݒ_fže_£Ëù_mode +(* +d©a +); + +92  +_gl_thumbs_ü—‹_thumb +( +gl_™em + * +g™em +); + +93  +_gl_thumbs_chªge_v›w +(* +d©a +,  +´ev_x +,  +cu¼’t_x +); + +94  +_gl_thumb_upd©e_¥l™_v›w +(* +d©a +); + + @inc/gallery.h + +18 #iâdeà +_GALLERY_H_ + + +19  + #_GALLERY_H_ + + + ) + +21  + ~<±h»ad.h +> + +22  + ~<­p.h +> + +23  + ~ + +25  + ~"gl-d©a.h +" + +27 #iâdeà +EXPORT_API + + +28  + #EXPORT_API + + `__©Œibu‹__ + (( + `visibž™y +("deçuÉ"))) + + ) + +31 #ifdeà +__ýlu¥lus + + +36 #ià! +defšed +( +APPDIR +) + +37  + #APPDIR + "/u¤/­ps/Üg.tiz’.g®Ëry" + + ) + +40 #ià! +defšed +( +PACKAGE +) + +41  + #PACKAGE + "g®Ëry" + + ) + +44 #ià! +defšed +( +LOCALEDIR +) + +45  + #LOCALEDIR + +APPDIR +"/»s/loÿË" + + ) + +48 #ià! +defšed +( +EDJDIR +) + +49  + #EDJDIR + +APPDIR +"/»s/edje" + + ) + +52 #ià! +defšed +( +IMAGEDIR +) + +53  + #IMAGEDIR + +APPDIR +"/»s/images/" + + ) + +56  + #PKGNAME_GALLERY + "Üg.tiz’.g®Ëry" + + ) + +57  + #GL_APP_DEFAULT_ICON_DIR + "/u¤/sh¬e/icÚs/deçuÉ/sm®l" + + ) + +61  + #GL_EDJ_FILE + +EDJDIR + "/" +PACKAGE + ".edj" + + ) + +65  + #GL_GRP_CONTROLBAR + "g®Ëry/Ïyout" + + ) + +66  + #GL_GRP_GRIDVIEW + "g®Ëry/gridv›w" + + ) + +67  + #GL_GRP_PLACES_MARKER + "g®Ëry/¶aû_m¬k”" + + ) + +68  + #GL_GRP_PROGRESSBAR + "g®Ëry/´og»ssb¬" + + ) + +69  + #GL_GRP_PHOTOFRAME + "phÙoäame" + + ) + +73  + #GL_NAVIFRAME_PREV_BTN + "´ev_bŠ" + + ) + +74  + #GL_NAVIFRAME_TITLE_PREV_BTN + "t™Ë_´ev_bŠ" + + ) + +75  + #GL_NAVIFRAME_TITLE_RIGHT_BTN + "t™Ë_right_bŠ" + + ) + +76  + #GL_NAVIFRAME_TITLE_LEFT_BTN + "t™Ë_Ëá_bŠ" + + ) + +77  + #GL_NAVIFRAME_TITLE_MORE_BTN + "t™Ë_mÜe_bŠ" + + ) + +78  + #GL_NAVIFRAME_TITLE_BTN1 + "t™Ë_toÞb¬_bu‰Ú1" + + ) + +79  + #GL_NAVIFRAME_TITLE_BTN2 + "t™Ë_toÞb¬_bu‰Ú2" + + ) + +81  + #GL_NAVIFRAME_BTN1 + "toÞb¬_bu‰Ú1" + + ) + +82  + #GL_NAVIFRAME_BTN2 + "toÞb¬_bu‰Ú2" + + ) + +83  + #GL_NAVIFRAME_MORE + "toÞb¬_mÜe_bŠ" + + ) + +84  + #GL_NAVIFRAME_TOOLBAR + "toÞb¬" + + ) + +86  + #GL_POPUP_TEXT + "t™Ë,‹xt" + + ) + +87  + #GL_NOCONTENTS_TEXT + "–m.‹xt" + + ) + +88  + #GL_NOCONTENTS_TEXT2 + "–m.‹xt.2" + + ) + +89  + #GL_GRID_TEXT + "–m.‹xt" + + ) + +90  + #GL_NAAVIFRAME_TEXT + "–m.‹xt.t™Ë" + + ) + +92  + #GL_IMF_ON + "vœtu®key·d,¡©e,Ú" + + ) + +93  + #GL_IMF_OFF + "vœtu®key·d,¡©e,off" + + ) + +94  + #GL_STA_ON + "þbßrd,¡©e,Ú" + + ) + +95  + #GL_STA_OFF + "þbßrd,¡©e,off" + + ) + +99  + #GL_CLASS_GENGRID + "g’grid" + + ) + +100 #ifdeà +_USE_CUSTOMIZED_GENGRID_STYLE + + +101  + #GL_GENGRID_STYLE_GALLERY + "g®Ëry" + + ) + +104  + #GL_BUTTON_STYLE_RENAME + "rename" + +105  + #GL_BUTTON_STYLE_NAVI_MORE + "Çviäame/mÜe/deçuÉ" + + ) + +106  + #GL_BUTTON_STYLE_NAVI_TITLE + "Çviäame/t™Ë_‹xt" + + ) + +107  + #GL_BUTTON_STYLE_NAVI_TITLE_ICON + "Çviäame/t™Ë_icÚ" + + ) + +108  + #GL_BUTTON_STYLE_NAVI_TOOLBAR + "Çviäame/toÞb¬/deçuÉ" + + ) + +109  + #GL_BUTTON_STYLE_NAVI_TOOLBAR_LEFT + "Çviäame/toÞb¬/Ëá" + + ) + +110  + #GL_BUTTON_STYLE_NAVI_TOOLBAR_RIGHT + "Çviäame/toÞb¬/right" + + ) + +113  + #GL_BUTTON_STYLE_NAVI_PRE + "Çviäame/back_bŠ/deçuÉ" + + ) + +114 #ifdeà +_USE_ROTATE_BG + + +115  + #GL_BUTTON_STYLE_NAVI_CTRL + "Çviäame_cڌÞ/muɞše" + + ) + +118  + #GL_CHECKBOX_STYLE_DEFAULT + "g®Ëry/deçuÉ" + + ) + +119  + #GL_GENLIST_STYLE_DEFAULT + +GL_CHECKBOX_STYLE_DEFAULT + + + ) + +120  + #GL_POPUP_STYLE_DEFAULT + +GL_CHECKBOX_STYLE_DEFAULT + + + ) + +121  + #GL_CONTROLBAR_STYLE_NAVI + "Çviäame" + + ) + +122  + #GL_CBAR_STYLE_DEFAULT + +GL_CHECKBOX_STYLE_DEFAULT + + + ) + +126  + #GL_SEPERATOR_BT + '?' + + ) + +127  + #GL_ARGV_MSS_TYPE + "MSS_Ty³" + + ) + +128  + #GL_ARGV_MSS_3 + "3" + + ) + +129  + #GL_ARGV_MSS_SORT_TYPE + "MSS_SÜt_ty³" + + ) + +130  + #GL_ARGV_MSS_SORT_1 + "1" + + ) + +133  + #GL_MIME_IMAGE_ALL + "image/*" + + ) + +134  + #GL_MIME_VIDEO_ALL + "video/*" + + ) + +136  + #GL_AUL_PREFIX + "g®Ëry:" + + ) + +137  + #GL_AUL_IMAGE + "imagev›w”" + + ) + +142  + #GL_WIN_WIDTH + 720 + + ) + +143  + #GL_WIN_HEIGHT + 1280 + + ) + +145  + #GL_FIXED_HEIGHT + (111 + 98) + + ) + +148  + #GL_TAG_FAVORITES_ID + 0 + + ) + +149  + #GL_ALBUM_ALL_ID + "GALLERY_ALBUM_ALL_ALBUMS_ID" + + ) + +150  + #GL_ALBUM_FAVOURITE_ID + "GALLERY_ALBUM_FAVOURITE_ALBUMS_ID" + + ) + +151  + #GL_ALBUM_ALLSHARE_ID + "GALLERY_ALBUM_ALLSHARE_ID" + + ) + +152  + #GL_ALBUM_PTP_ID + "GALLERY_ALBUM_PTP_ID" + + ) + +155  + #GL_GRID_ITEM_CNT + 32 + + ) + +157  + #GL_GRID_ITEM_ZOOM_LEVEL_02 + 2 + + ) + +158  + #GL_GRID_ITEM_ZOOM_LEVEL_03 + (1.35f) + + ) + +159  + #GL_GRID_ITEM_ZOOM_LEVEL_02_CNT + 8 + + ) + +161  + #GL_MOUSE_RANGE + 10 + + ) + +164  + #GL_MAP_LONG_MAX + 180.0 + + ) + +165  + #GL_MAP_LONG_MIN + (-180.0) + + ) + +166  + #GL_MAP_LAT_MAX + 90.0 + + ) + +167  + #GL_MAP_LAT_MIN + (-90.0) + + ) + +168  + #GL_MAP_GEO_INIT + 1000.0 + + ) + +171  + #GL_MTYPE_ITEN_ID_LEN_MAX + 37 + + ) + +174  + #GL_ALBUM_NAME_LEN_MAX + +GL_FILE_NAME_LEN_MAX + + + ) + +176  + #GL_DATE_INFO_LEN_MAX + 256 + + ) + +177  + #GL_POPUP_DESC_LEN_MAX + 256 + + ) + +178  + #GL_EXT_STR_COUNT_LEN + 20 + + ) + +179  + #GL_FACE_DETECT_INFO_LEN_MAX + 128 + + ) + +182  + #GL_WEB_ALBUM_TITLE_LEN_MAX + 256 + + ) + +183  + #GL_WEB_ALBUM_ID_LEN_MAX + +GL_WEB_ALBUM_TITLE_LEN_MAX + + + ) + +184  + #GL_WEB_WEBNODE_NAME_LEN_MAX + 128 + + ) + +185  + #GL_WEB_WEBNODE_ALBUM_ID_LEN_MAX + +GL_WEB_WEBNODE_NAME_LEN_MAX + + + ) + +186  + #GL_WEB_WEBNODE_TOKEN_LEN_MAX + 512 + + ) + +188  + #GL_PLACE_DATA_STR_LEN_MAX + 64 + + ) + +191  + #GL_PTP_MODEL_LEN_MAX + 128 + + ) + +194  + #GL_DEFAULT_YEAR + 1900 + + ) + +196  + #GL_TIME_MSEC_PER_SEC + 1000 + + ) + +198  + #GL_TIME_USEC_PER_SEC + 1000000L + + ) + +200  + #GL_TIME_USEC_PER_MSEC + 1000 + + ) + +202  + #GL_TIME_SEC_PER_MIN + 60 + + ) + +204  + #GL_TIME_MIN_PER_HOUR + 60 + + ) + +206  + #GL_TIME_SEC_PER_HOUR + ( +GL_TIME_MIN_PER_HOUR + * +GL_TIME_SEC_PER_MIN +) + + ) + +209  + #GL_INTERGER_LEN_MAX + 12 + + ) + +211  + #GL_ERROR_BUF_LEN + 1024 + + ) + +214  + #GL_ROOT_PATH_PHONE + "/Ýt/u¤/medŸ" + + ) + +215  + #GL_ROOT_PATH_MMC + "/Ýt/¡Üage/sdÿrd" + + ) + +216  + #GL_DEFAULT_PATH_IMAGES + +GL_ROOT_PATH_PHONE +"/Pictures" + +217  + #GL_DEFAULT_PATH_PICTURES + +GL_ROOT_PATH_PHONE +"/Images" + + ) + +218  + #GL_DOWNLOADS_PATH + +GL_ROOT_PATH_PHONE +"/DowÆßds" + + ) + +219  + #GL_DATA_FOLDER_PATH + "/Ýt/u¤/­ps/" +PKGNAME_GALLERY +"/d©a" + + ) + +221  + #GL_NAVIFRAME_OBJ_DATA_KEY + "gl_Çviäame_d©a_key" + + ) + +222  + #GL_NAVIFRAME_UG_UPDATE_KEY + "gl_Çviäame_ug_upd©e_key" + + ) + +223  + #GL_NAVIFRAME_UG_RESULT_KEY + "gl_Çviäame_ug_»suÉ_key" + + ) + +224  + #GL_NAVIFRAME_SLIDESHOW_DATA_KEY + "gl_Çviäame_¦ideshow_d©a_key" + + ) + +225 #ifdeà +_USE_APP_SLIDESHOW + + +226  + #GL_NAVIFRAME_SELECTED_SLIDESHOW_KEY + "gl_Çviäame_£Ëùed_¦ideshow_key" + + ) + +228  + #GL_NAVIFRAME_POP_CB_KEY + "gl_Çviäame_pÝ_cb_key" + + ) + +231  + e_gl_v›w_mode + + +233 +GL_VIEW_NONE +, + +234 +GL_VIEW_ALBUMS +, + +235 +GL_VIEW_ALBUMS_EDIT +, + +236 +GL_VIEW_ALBUMS_RENAME +, + +237 +GL_VIEW_ALBUMS_SELECT +, + +238 +GL_VIEW_TIMELINE +, + +239 +GL_VIEW_THUMBS +, + +240 +GL_VIEW_THUMBS_EDIT +, + +241 +GL_VIEW_THUMBS_SELECT +, + +242 +GL_VIEW_ALBUM_REORDER +, + +243 } + tgl_v›w_mode +; + +245  + e_gl_­p_ex™_mode + + +247 +GL_APP_EXIT_NONE +, + +248 +GL_APP_EXIT_MASS_STORAGE +, + +249 } + tgl_­p_ex™_mode +; + +251  + e_gl_’Œy_mode + + +253 +GL_ENTRY_NONE +, + +254 +GL_ENTRY_NEW_ALBUM +, + +255 +GL_ENTRY_RENAME_ALBUM +, + +256 +GL_ENTRY_RENAME_TAG +, + +257 } + tgl_’Œy_mode +; + +260 + e_gl_gœd_t + { + +261 +GL_GRID_T_NONE +, + +262 +GL_GRID_T_LOCAL +, + +263 +GL_GRID_T_ALLALBUMS +, + +264 +GL_GRID_T_FAV +, + +266  +_gl_gœd_t + + tgl_grid_t_e +; + +268 + e_gl_ed™_mode_t + { + +269 +GL_GRID_EDIT + = 0, + +270 +GL_GRID_SHARE +, + +272  +_gl_ed™_mode_t + + t_gl_ed™_mode_t_e +; + +274  + e_gl_d‘až_v›w_di¥Ïy_Üd” + { + +275 +ORDER_ASC + = 0, + +276 +ORDER_DESC + + +277 } + t_gl_v›w_Üd” +; + +279  + e_gl_®bum_d‘až_v›w_mode + { + +280 +DETAIL_VIEW + = 0, + +281 +SPLIT_VIEW + + +282 } + t_gl_d‘až_v›w_mode +; + +285  +gl_db_nÙi_t + + tgl_db_nÙi_s +; + +286  +_gl_tim–še_t + + tgl_tim–še_s +; + +290 +Evas_Objeù + * +ù¾b¬_ly +; + +292 +Evas_Objeù + * +ù¾b¬_v›w_ly +; + +294 +Elm_Objeù_I‹m + * +nf_™ +; + +295  +b_mode +; + +296 +EcÜe_Tim” + * +avoid_muÉi_p +; + +297 } + tgl_ù¾_šfo +; + +301 +Evas_Objeù + * +ge¡u»_£l +; + +302 +Evas_Objeù + * +ge¡u» +; + +303  +zoom_Ëv– +; + +304 } + tgl_pšch_šfo +; + +306  +_gl_mou£_t + + tgl_mou£_s +; + +307  + s_gl_mou£_t + { + +308 +Evas_CoÜd + +x +; + +309 +Evas_CoÜd + +y +; + +310 +boÞ + +b_´es£d +; + +315 +Elm_G’grid_I‹m_CÏss + +d©e_gic +; + +316 +Evas_Objeù + * +Ïyout +; + +318 +Evas_Objeù + * +£Ëù_v›w +; + +319 +Evas_Objeù + * +£Ëù_Ïyout +; + +320 +Evas_Objeù + * +v›w +; + +321 +Evas_Objeù + * +nocڋÁs +; + +322 +boÞ + +b_¦ideshow_di§bË +; + +324 +boÞ + +is_­³nd +; + +326  +ed™_mode +; + +328 +Elm_Objeù_I‹m + * +nf_™ +; + +329 +Elm_Objeù_I‹m + * +nf_™_£Ëù +; + +330 * +t™Ë +; + +331 +gl_mou£_s + +mou£ +; + +332 +EcÜe_Tim” + * +þicked_tim” +; + +334  +icÚ_w +; + +335  +icÚ_h +; + +337 +Eša_Li¡ + * +medŸs_–i¡ +; + +338  +couÁ +; + +339 +boÞ + +back_to_nÜm® +; + +340 +_gl_v›w_Üd” + +medŸ_di¥Ïy_Üd” +; + +341 +gl_grid_t_e + +grid_ty³ +; + +342 +Elm_Objeù_I‹m + * +™ +; + +343 +_gl_d‘až_v›w_mode + +¥l™_v›w_mode +; + +344 +boÞ + +muÉi_touch +; + +345 +boÞ + +upd©e_¥l™_v›w +; + +346 } + tgl_grid_šfo +; + +350 +boÞ + +b_­p_ÿÎed +; + +351 +­p_cڌÞ_h + +ug +; + +352  +ug_ty³ +; + +353  +iv_ty³ +; + +354 * +d©a +; + +355  +sÜt_ty³ +; + +356 +boÞ + +b_¡¬t_¦ideshow +; + +357 +boÞ + +b_ug_Ïunched +; + +358 #ifdeà +_USE_APP_SLIDESHOW + + +359 +boÞ + +b_£Ëùed_¦ideshow +; + +361 } + tgl_ug_šfo +; + +365 +Elm_G’grid_I‹m_CÏss + +gic +; + +366 +Evas_Objeù + * +v›w +; + +367 +Evas_Objeù + * +nocڋÁs +; + +369 +Evas_Objeù + * +£Ëù_v›w +; + +371 +Evas_Objeù + * +£Ëù_Ïyout +; + +373  +b_sh¬e_mode +; + +374 +gl_þu¡” + * +cu¼’t +; + +376 +gl_þu¡” + * +£Ëùed +; + +378 * +·th +; + +379  +Ãw_Çme +[ +GL_ALBUM_NAME_LEN_MAX +]; + +380 +boÞ + +b_Ãw_®bum +; + +381 * +‹mp_®bum_Çme +; + +382  +fže_mc_mode +; + +383 +Eša_Li¡ + * +£l_–i¡ +; + +384 +gl_þu¡”_li¡ + * +–i¡ +; + +385  +®bums_út +; + +386  +de¡_fÞd” +[ +GL_DIR_PATH_LEN_MAX +]; + +388 +Elm_Objeù_I‹m + * +nf_™_£Ëù +; + +389 +Elm_Objeù_I‹m + * +grid_£l_™em +; + +390 * +£Ëùed_uuid +; + +391 } + tgl_®bum_šfo +; + +395 +Evas_Objeù + * +ed™f›ld +; + +396 +Evas_Objeù + * +’Œy +; + +397 +Evas_Objeù + * +pÝup +; + +398 +EcÜe_IMF_Cڋxt + * +cڋxt +; + +399 +Elm_EÁry_Fž‹r_Lim™_Size + * +lim™_fž‹r +; + +402  +mode +; + +404 +Evas_Objeù + * +dÚe_bŠ +; + +405 +Elm_Objeù_I‹m + * +nf_™ +; + +406 * +Ý_cb +; + +407 +boÞ + +b_hide_toÞb¬ +; + +408 +boÞ + +b_hide_s +; + +409 } + tgl_’Œy_šfo +; + +413 +Evas_Objeù + * +pÝup +; + +414 +Evas_Objeù + * +memÜy_fuÎ_pÝup +; + +415  +mode +; + +417 +EcÜe_Tim” + * +d–_tim” +; + +418 } + tgl_pÝup_šfo +; + +421 +Eša_Li¡ + * +–i¡ +; + +422 +Eša_Li¡ + * +çv_–i¡ +; + +423  +images_út +; + +424  +j³g_út +; + +425  +di§bË_hide_út +; + +427  +£l_út +; + +429 +Eša_BoÞ + +ck_¡©e +; + +430 +Evas_Objeù + * +£Ëù®l_ck +; + +431 +Eša_Li¡ + * +cÝy_–i¡ +; + +432 } + tgl_£Ëùed_šfo +; + +435 +Evas_Objeù + * +pÝup +; + +436 +Evas_Objeù + * +pb¬ +; + +437 +Evas_Objeù + * +¡©us_Ïb– +; + +438 +EcÜe_Tim” + * +pb¬_tim” +; + +443 +EcÜe_Tim” + * +¡¬t_th»ad_tim” +; + +448 +EcÜe_Job + * +d–_pb¬_job +; + +449 +EcÜe_Tim” + * +d–_pb¬_tim” +; + +450 +EcÜe_Pe + * +sync_pe +; + +451 +±h»ad_mu‹x_t + +pb¬_lock +; + +452 +±h»ad_mu‹x_t + +»äesh_lock +; + +453 +±h»ad_cÚd_t + +»äesh_cÚd +; + +454  +»äesh_æag +; + +455  +pb¬_ÿnûl +; + +457  +fšished_út +; + +458  +tÙ®_út +; + +459 * +Ý_cb +; + +460 * +upd©e_cb +; + +461 * +d–_™em_cb +; + +462 } + tgl_pb¬_šfo +; + +466 +Evas_Objeù + * +wš +; + +467 +Evas_Objeù + * +Ïyout +; + +468 +Evas_Objeù + * +Çviäame +; + +469 +Evas_Objeù + * +bg +; + +470 +Evas_Objeù + * +ùxpÝup +; + +471 +Evas_Objeù + * +’Œy_wš +; + +472  +rÙ©e_mode +; + +473  +v›w_mode +; + +474 +boÞ + +»’Œªt +; + +475 +boÞ + +b_·u£d +; + +477 +EcÜe_Ev’t_HªdËr + * +keydown_hªdËr +; + +479 +EcÜe_Ev’t_HªdËr + * +fÚt_hªdËr +; + +480 * +dlݒ_iv_hªdË +; + +482 +EcÜe_Tim” + * +»g_idËr +; + +483 +boÞ + +b_»ged_idËr +; + +485  +®l_medŸs_út +; + +486 +time_t + +Ï¡_mtime +; + +487  +medŸs_Ý_ty³ +; + +488  +mmc_¡©e +; + +490  +svi_hªdË +; + +491  +sound_¡©us +; + +492 +EcÜe_IdËr + * +mmc_idËr +; + +493  +ex‹º®StÜageId +; + +494 } + tgl_maš_šfo +; + +497  + s_gl_­pd©a + + +499 +gl_maš_šfo + +maššfo +; + +500 +gl_ù¾_šfo + +ù¾šfo +; + +501 +gl_®bum_šfo + +®bumšfo +; + +502 +gl_grid_šfo + +gridšfo +; + +503 +gl_pšch_šfo + +pšchšfo +; + +504 +gl_’Œy_šfo + +’Œyšfo +; + +505 +gl_pÝup_šfo + +pÝupšfo +; + +506 +gl_pb¬_šfo + +pb¬šfo +; + +507 +gl_ug_šfo + +ugšfo +; + +508 +gl_£Ëùed_šfo + +£lšfo +; + +509 +gl_tim–še_s + * +Žšfo +; + +511 +gl_db_nÙi_s + * +db_nÙi_d +; + +514  +_gl_­pd©a + + tgl_­pd©a +; + +516 #ifdeà +__ýlu¥lus + + + @inc/util/gl-db-update.h + +18 #iâdeà +_GL_DB_UPDATE_H_ + + +19  + #_GL_DB_UPDATE_H_ + + + ) + +21  +_gl_db_upd©e_add_tim” +(* +d©a +); + +22 +boÞ + +_gl_db_upd©e_lock_Úû +(* +d©a +, boÞ +¡©us +); + +23 +boÞ + +_gl_db_upd©e_lock_®ways +(* +d©a +, boÞ +¡©us +); + +24 +boÞ + +_gl_db_upd©e_£t_couÁ +(* +d©a +,  +couÁ +); + +25  +_gl_db_upd©e_g‘_šfo +(* +d©a +, + +26 +medŸ_cڋÁ_db_upd©e_™em_ty³_e + * +upd©e_™em +, + +27 +medŸ_cڋÁ_db_upd©e_ty³_e + * +upd©e_ty³ +, + +28 +GLi¡ + ** +uuids +); + +29 +boÞ + +_gl_db_upd©e_»g_cb +(* +d©a +); + +30 +boÞ + +_gl_db_upd©e_š™ +(* +d©a +); + +31 +boÞ + +_gl_db_upd©e_fš®ize +(* +d©a +); + + @inc/util/gl-debug.h + +18 #iâdeà +_GL_DEBUG_H_ + + +19  + #_GL_DEBUG_H_ + + + ) + +21  + ~ + +22  + ~ + +23  + ~"gl-.h +" + +24  + ~<¡dio.h +> + +26 #ifdeà +__ýlu¥lus + + +31 #ifdeà +LOG_TAG + + +32 #undeà +LOG_TAG + + +35  + #LOG_TAG + "GALLERY" + + ) + +38  + #FONT_COLOR_RESET + "\033[0m" + + ) + +39  + #FONT_COLOR_RED + "\033[31m" + + ) + +40  + #FONT_COLOR_GREEN + "\033[32m" + + ) + +41  + #FONT_COLOR_YELLOW + "\033[33m" + + ) + +42  + #FONT_COLOR_BLUE + "\033[34m" + + ) + +43  + #FONT_COLOR_PURPLE + "\033[35m" + + ) + +44  + #FONT_COLOR_CYAN + "\033[36m" + + ) + +45  + #FONT_COLOR_GRAY + "\033[37m" + + ) + +47 #ifdeà +_USE_DLOG_ + + +49  + #gl_dbg +( +fmt +, +¬g +...è + `LOGD +( +FONT_COLOR_BLUE + fmˆ +FONT_COLOR_RESET +, ##¬g) + + ) + +50  + #gl_dbgI +( +fmt +, +¬g +...è + `LOGI +( +FONT_COLOR_GREEN + fmˆ +FONT_COLOR_RESET +, ##¬g) + + ) + +51  + #gl_dbgW +( +fmt +, +¬g +...è + `LOGW +( +FONT_COLOR_CYAN + fmˆ +FONT_COLOR_RESET +, ##¬g) + + ) + +52  + #gl_dbgE +( +fmt +, +¬g +...è + `LOGE +( +FONT_COLOR_RED + fmˆ +FONT_COLOR_RESET +, ##¬g) + + ) + +54  + #GL_PROFILE_IN + + `LOG +( +LOG_DEBUG +, "LAUNCH", "[g®Ëry:AµliÿtiÚ:%s:IN]", +__FUNCTION__ +) + + ) + +55  + #GL_PROFILE_OUT + + `LOG +( +LOG_DEBUG +, "LAUNCH", "[g®Ëry:AµliÿtiÚ:%s:OUT]", +__FUNCTION__ +) + + ) + +56  + #GL_PROFILE_F_IN +( +func +è + `LOG +( +LOG_DEBUG +, "LAUNCH","[g®Ëry:AµliÿtiÚ:"func":IN]") + + ) + +57  + #GL_PROFILE_F_OUT +( +func +è + `LOG +( +LOG_DEBUG +, "LAUNCH","[g®Ëry:AµliÿtiÚ:"func":OUT]") + + ) + +61  + #gl_dbg +( +fmt +, +¬g +...) + + ) + +62  + #gl_dbgW +( +fmt +, +¬g +...) + + ) + +63  + #gl_dbgE +( +fmt +, +¬g +...) + + ) + +65  + #GL_PROFILE_IN + + + ) + +66  + #GL_PROFILE_OUT + + + ) + +67  + #GL_PROFILE_F_IN +( +func +) + + ) + +68  + #GL_PROFILE_F_OUT +( +func +) + + ) + +72 #ifdeà +_USE_SECURE_LOG_ + + +73  + #gl_sdbg +( +fmt +, +¬g +...è + `SECURE_LOGD +( +FONT_COLOR_BLUE + fmˆ +FONT_COLOR_RESET +, ##¬g) + + ) + +74  + #gl_sdbgW +( +fmt +, +¬g +...è + `SECURE_LOGI +( +FONT_COLOR_GREEN + fmˆ +FONT_COLOR_RESET +, ##¬g) + + ) + +75  + #gl_sdbgE +( +fmt +, +¬g +...è + `SECURE_LOGE +( +FONT_COLOR_RED + fmˆ +FONT_COLOR_RESET +, ##¬g) + + ) + +79  + ~ + +80  + ~ + +85  +gl_´št_debug_time_ex +( +¡¬t +,  +’d +, cÚ¡ * +func_Çme +, * +time_¡ršg +); + +89  + #gl_»tm_if +( +ex´ +, +fmt +, +¬g +...) do { \ + +90 ià( +ex´ +) { \ + +91 + `gl_dbgE +( +fmt +, ## +¬g +); \ + +92 + `gl_dbgE +("(%sè-> %s(è»tuº", #ex´, +__FUNCTION__ +); \ + +95 } 0) + + ) + +97  + #gl_»tvm_if +( +ex´ +, +v® +, +fmt +, +¬g +...) do { \ + +98 ià( +ex´ +) { \ + +99 + `gl_dbgE +( +fmt +, ## +¬g +); \ + +100 + `gl_dbgE +("(%sè-> %s(è»tuº", #ex´, +__FUNCTION__ +); \ + +101  ( +v® +); \ + +103 } 0) + + ) + +105  + #GL_CHECK_EXCEP +( +ex´ +) do { \ + +106 ià(!( +ex´ +)) { \ + +107 + `gl_dbgE +("Critical ERROR ########################################## Check below item.");\ + +108  +gl_exû±iÚ +;\ + +110 } 0) + + ) + +112  + #GL_CHECK_VAL +( +ex´ +, +v® +è + `gl_»tvm_if +(!Óx´), v®, "Inv®id…¬am‘”,„‘uº ERROR code!") + + ) + +113  + #GL_CHECK_NULL +( +ex´ +è + `gl_»tvm_if +(!Óx´), +NULL +, "Inv®id…¬am‘”,„‘uº NULL!") + + ) + +114  + #GL_CHECK_FALSE +( +ex´ +è + `gl_»tvm_if +(!Óx´), +çl£ +, "Inv®id…¬am‘”,„‘uº FALSE!") + + ) + +115  + #GL_CHECK_CANCEL +( +ex´ +è + `gl_»tvm_if +(!Óx´), +ECORE_CALLBACK_CANCEL +, "Inv®id…¬am‘”,„‘uº ECORE_CALLBACK_CANCEL!") + + ) + +116  + #GL_CHECK +( +ex´ +è + `gl_»tm_if +(!Óx´), "Inv®id…¬am‘”,„‘uº!") + + ) + +118  + #gl_as£¹ +( +ex´ +) do { \ + +119 ià(!( +ex´ +)) { \ + +120 + `gl_dbgE +("Critical ERROR ########################################## Check below item.");\ + +121 + `as£¹ +( +çl£ +); \ + +123 } 0) + + ) + +125 #ifdeà +__ýlu¥lus + + + @inc/util/gl-exif.h + +18 #ifdeà +_USE_ROTATE_BG + + +20 #iâdeà +_GL_EXIF_H_ + + +21  + #_GL_EXIF_H_ + + + ) + +23  + ~<¡dboÞ.h +> + +24  + ~<¡dio.h +> + +26 #ifdeà +__ýlu¥lus + + +39 + e_gl_ܛÁ©iÚ_rÙ_t + { + +40 +GL_ORIENTATION_ROT_ERR + = 0, + +41 +GL_ORIENTATION_ROT_0 + = 1, + +42 +GL_ORIENTATION_ROT_180 + = 3, + +43 +GL_ORIENTATION_ROT_90 + = 6, + +44 +GL_ORIENTATION_ROT_270 + = 8, + +46  +_gl_ܛÁ©iÚ_rÙ_t + + tgl_ܛÁ©iÚ_rÙ_e +; + +48 +boÞ + +_gl_exif_check_img_ty³ +(* +fže_·th +); + +49  +_gl_exif_g‘_ܛÁ©iÚ +(* +fže_·th +, * +ܛÁ©iÚ +); + +50  +_gl_exif_£t_ܛÁ©iÚ +(* +fže_·th +,  +ܛÁ©iÚ +); + +51  +_gl_exif_g‘_rÙ©ed_ܛÁ©iÚ +( +ܛÁ©iÚ +, +boÞ + +b_Ëá +); + +53 #ifdeà +__ýlu¥lus + + + @inc/util/gl-ext-exec.h + +18 #iâdeà +_GL_EXT_EXEC_H_ + + +19  + #_GL_EXT_EXEC_H_ + + + ) + +23 + mGL_LAUNCH_FAIL +, + +24 + mGL_LAUNCH_SUCCESS + + +25 } + tgl_Ïunch_¡©us +; + +29 + mGL_APP_NONE + = -1, + +30 + mGL_APP_VIDEOPLAYER +, + +31 + mGL_APP_EMOLINK +, + +32 } + tgl_ext_­p_ty³ +; + +34  +gl_ext_exec +(* +d©a +, +gl_ext_­p_ty³ + +ty³ +); + +35 #ifdeà +GL_EXTENDED_FEATURES + + +36  +_gl_ext_lßd_ÿm”a +(* +d©a +); + +37  +_gl_ext_lßd_› +(* +d©a +, * +g‘_·th_cb +); + +38  +_gl_ext_lßd +(cÚ¡ * +uri +, cÚ¡ * +ݔ©iÚ +, cÚ¡ * +pkg +, cÚ¡ * +pkg_id +, cÚ¡ * +mime +); + +39  +_gl_ext_Ïunch_image_ed™Ü +(cÚ¡ * +·th_¡ršg +); + +40  +_gl_ext_Ïunch_sh¬e +(* +d©a +,  +tÙ®_út +, * +g‘_·th_cb +); + +41  +_gl_ext_is_Ïrg”_thª_sh¬e_max +( +tÙ®_út +); + +42  +_gl_ext_Ïunch_sh¬e_w™h_fžes +(* +d©a +,  +tÙ®_út +, ** +fžes +); + +43 #iâdeà +_USE_APP_SLIDESHOW + + +44  +_gl_ext_Ïunch_g®Ëry_ug +(* +d©a +); + + @inc/util/gl-ext-ug-load.h + +18 #iâdeà +_GL_EXT_UG_LOAD_H_ + + +19  + #_GL_EXT_UG_LOAD_H_ + + + ) + +21  + ~"gl-d©a.h +" + +25 + mGL_UG_FAIL +, + +26 + mGL_UG_SUCCESS + + +27 } + tgl_ug_lßd_¡©us +; + +31 + mGL_UG_IMAGEVIEWER +, + +32 + mGL_UG_GALLERY_SETTING_SLIDESHOW +, + +33 + mGL_UG_GALLERY_SETTING +, + +34 + mGL_UG_CNT +, + +35 } + tgl_ext_ug_ty³ +; + +39 + mGL_UG_IV +, + +41 + mGL_UG_IV_SLIDESHOW +, + +43 + mGL_UG_IV_SLIDESHOW_ALL +, + +44 #ifdeà +_USE_APP_SLIDESHOW + + +46 + mGL_UG_IV_SLIDESHOW_SELECTED +, + +48 + mGL_UG_IV_CNT +, + +49 } + tgl_ext_iv_ty³ +; + +51  +gl_ext_lßd_ug +(* +d©a +, +gl_ext_ug_ty³ + +ty³ +); + +52  +gl_ext_lßd_iv_ug +(* +d©a +, +gl_™em + * +™em +, +gl_ext_iv_ty³ + +ty³ +); + +53  +gl_ext_lßd_iv_ug_£Ëù_mode +(* +d©a +, +gl_medŸ_s + * +™em +, +gl_ext_iv_ty³ + +ty³ +); + +54  +gl_ext_lßd_iv_time_ug_£Ëù_mode +(* +d©a +, +gl_medŸ_s + * +™em +, +gl_ext_iv_ty³ + +ty³ +,  +sÜt_ty³ +); + +55  +_gl_ext_lßd_iv_tim–še +(* +d©a +, cÚ¡ * +·th +,  +£qu’û +,  +sÜt_ty³ +); + + @inc/util/gl-file-util.h + +18 #iâdeà +_GL_FILE_UTIL_H_ + + +19  + #_GL_FILE_UTIL_H_ + + + ) + +21  + ~<¡dio.h +> + +22  + ~<¡dlib.h +> + +23  + ~ + +24  + ~ + +25  + ~<¡ršg.h +> + +26  + ~ + +28 #ifdeà +__ýlu¥lus + + +33  +gl_fže_exi¡s +(cÚ¡ * +·th +); + +35  +gl_fže_is_dœ +(cÚ¡ * +·th +); + +37  +gl_fže_uƚk +(cÚ¡ * +fž’ame +); + +39  +gl_fže_size +(cÚ¡ * +fž’ame +); + +41  +gl_fže_rmdœ +(cÚ¡ * +fž’ame +); + +43  +gl_fže_dœ_is_em±y +(cÚ¡ * +·th +); + +45 +Eša_Li¡ + * +gl_fže_ls +(cÚ¡ * +dœ +); + +47  +gl_fže_»cursive_rm +(cÚ¡ * +dœ +); + +49 * +gl_fže_dœ_g‘ +(cÚ¡  +·th +[]); + +51  +gl_fže_mk·th +(cÚ¡ * +·th +); + +53  +gl_fže_mv +(cÚ¡ * +¤c +, cÚ¡ * +d¡ +); + +55 #ifdeà +__ýlu¥lus + + + @inc/util/gl-fs.h + +17 #iâdeà +_GL_FS_H_ + + +18  + #_GL_FS_H_ + + + ) + +20 #ifdeà +__ýlu¥lus + + +24  + ~<¡dio.h +> + +25  + ~<¡dboÞ.h +> + +26  + ~<¡ršg.h +> + +27  + ~<¡dlib.h +> + +28  + ~ + +29  + ~ + +30  + ~ + +31  + ~ + +32  + ~ + +33  + ~ + +34  + ~ + +35  + ~ + +37  +_gl_node_šfo_t + + tgl_node_šfo_s +; + +38  + s_gl_node_šfo_t + { + +40 * +·th +; + +42 * +Çme +; + +44 +time_t + +mtime +; + +46  +size +; + +49  +_gl_fs_upd©e_fže_mtime +(cÚ¡ * +·th +); + +50  +_gl_fs_g‘_fže_¡© +(cÚ¡ * +fž’ame +, +gl_node_šfo_s + ** +node +); + +51  +_gl_fs_g‘_fÞd”_size +(* +·th +); + +52  +_gl_fs_rm_fÞd” +(* +·th +,  +cut_size +,  +max_size +, + +53  +expœed_time +); + +54 #ifdeà +_RENAME_ALBUM_SENSITIVE + + +55 +boÞ + +_gl_fs_check_Çme_ÿ£ +(* +dœ +, * +exi¡_Çme +); + +57 +boÞ + +_gl_fs_is_low_memÜy +( +tÙ®_size +); + +58  +gl_fs_g‘_ä“_¥aû +( +¡©e +); + +59  +_gl_fs_g‘_fže_ext +(cÚ¡ * +fže_·th +, * +fže_ext +,  +max_Ën +); + +60 +boÞ + +_gl_fs_g‘_·th_w™hout_ext +(cÚ¡ * +fže_·th +, * +fže_ext +, + +61 * +Ãw_·th +); + +62 +Eša_BoÞ + +_gl_fs_move +(* +d©a +, cÚ¡ * +¤c +, cÚ¡ * +d¡ +); + +63 +Eša_BoÞ + +_gl_fs_cÝy +(* +d©a +, cÚ¡ * +¤c +, cÚ¡ * +d¡ +); + +64 * +_gl_fs_g‘_unique_fuÎ_·th +(* +fže_·th +, * +ext +); + +65 * +_gl_fs_g‘_unique_Ãw_®bum_Çme +(* +·»Á_·th +, * +deçuÉ_Çme +, + +66 ** +Ãw_Çme +); + +67 +boÞ + +_gl_fs_v®id©e_Çme +(cÚ¡ * +Ãw_Çme +); + +68 +boÞ + +_gl_fs_v®id©e_ch¬aù” +(cÚ¡  +Çme_ch¬ +); + +69  +_gl_fs_g‘_deçuÉ_fÞd” +(* +·th +); + +70 +boÞ + +_gl_fs_mkdœ +(cÚ¡ * +·th +); + +72 #ifdeà +__ýlu¥lus + + + @inc/util/gl-icons.h + +18 #iâdeà +_GL_ICONS_H_ + + +19  + #_GL_ICONS_H_ + + + ) + +21  + #GL_APPDIR + "/u¤/­ps/Üg.tiz’.g®Ëry" + + ) + +22  + #GL_EDJDIR + +GL_APPDIR +"/»s/edje" + + ) + +23  + #GL_IMAGEDIR + +GL_APPDIR +"/»s/images/" + + ) + +24  + #GL_APP_DEFAULT_ICON_DIR + "/u¤/sh¬e/icÚs/deçuÉ/sm®l" + + ) + +28  + #GL_ICON_DEFAULT + +GL_APP_DEFAULT_ICON_DIR +"/Üg.tiz’.g®Ëry.²g" + + ) + +29  + #GL_ICON_DB_DEFAULT_THUMB + "/Ýt/u¤/d©a/fže-mªag”-£rviû/.thumb/thumb_deçuÉ.²g" + + ) + +30  + #GL_ICON_NO_THUMBNAIL + +GL_IMAGEDIR +"No_thumbǞ_351X261.²g" + + ) + +31  + #GL_ICON_CONTENTS_BROKEN + +GL_IMAGEDIR +"CڋÁs_brok’_351X261.²g" + + ) + +35  + #GL_IMAGES_EDJ_FILE + +GL_EDJDIR +"/gl-images.edj" + + ) + +37  + #GL_ICON_LOCK + "T01_icÚ_lock.²g" + + ) + +38  + #GL_ICON_ALBUM_CAMERA + "T01_®bum_icÚ_ÿm”a.²g" + + ) + +39  + #GL_ICON_ALBUM_DOWNLOAD + "T01_®bum_icÚ_dowÆßd.²g" + + ) + +40  + #GL_ICON_ALBUM_FOLDER + "T01_®bum_icÚ_fÞd”.²g" + + ) + +41  + #GL_ICON_ALBUM_MMC + "T01_®bum_icÚ_sd_ÿrd.²g" + + ) + +43  + #GL_ICON_VIDEO_PLAY + "T01_bŠ_thumbǞ_¶ay.²g" + + ) + +44  + #GL_ICON_THUMB_BOOKMARK + "T01_icÚ_thumbǞ_bookm¬k.²g" + + ) + +46  + #GL_ICON_SOUND_SHOT + "T01_icÚ_sound_shÙ.²g" + + ) + +47  + #GL_ICON_PANORAMA + "T01_icÚ_·nÜama.²g" + + ) + +48  + #GL_ICON_BURSTSHOT + "T01_icÚ_bu¡shÙ_45x45.PNG" + + ) + +50  + #GL_ICON_TITLE_SELECT_ALL + "T01_t™Ë_icÚ_£Ëù_®l.²g" + + ) + +51  + #GL_ICON_CAMERA + "T01_icÚ_ÿm”a_®l.²g" + + ) + +53  + #GL_ICON_NEW_ALBUM + "T01_pÝup_icÚ_Ãw_®bum.²g" + + ) + +54  + #GL_ICON_SLIDESHOW + "T01_pÝup_icÚ_¦ideshow.²g" + + ) + +55  + #GL_ICON_SHARE + "T01_icÚ_sh¬e.²g" + + ) + +56  + #GL_ICON_COPY + "T01_pÝup_cÝy.²g" + + ) + +57  + #GL_ICON_MOVE + "T01_pÝup_move.²g" + + ) + +58  + #GL_ICON_EDIT_IMAGE + "T02_pÝup_icÚ_ed™_image.²g" + + ) + +59  + #GL_ICON_SETTINGS + "T02_pÝup_icÚ_£‰šgs.²g" + + ) + +60  + #GL_ICON_ROTATE_RIGHT + "T01_pÝup_icÚ_rÙ©e_right.²g" + + ) + +61  + #GL_ICON_ROTATE_LEFT + "T01_pÝup_icÚ_rÙ©e_Ëá.²g" + + ) + +62  + #GL_ICON_EDIT + "T01_pÝup_icÚ_ed™.²g" + + ) + +63  + #GL_ICON_DELETE + "T01_pÝup_icÚ_d–‘e.²g" + + ) + +64  + #GL_ICON_DONE + "T01_pÝup_icÚ_dÚe.²g" + + ) + +65  + #GL_ICON_RENAME + "T01_pÝup_icÚ_»Çme.²g" + + ) + +66  + #GL_ICON_NOCONGENTS_VIDEOS + "T01_nocڋÁs_videos.²g" + + ) + +67  + #GL_ICON_BACK + "T01_icÚ_back.²g" + + ) + +68  + #GL_ICON_FOLDER + "g®Ëry_li¡_icÚ_fÞd”.²g" + + ) + +69  + #GL_ICON_MMC + "g®Ëry_li¡_icÚ_my_fžes_sd_ÿrd.²g" + + ) + + @inc/util/gl-lang.h + +18 #iâdeà +_GL_LANG_H_ + + +19  + #_GL_LANG_H_ + + + ) + +21  + ~"g®Ëry.h +" + +23 #ifdeà +__ýlu¥lus + + +28  +_gl_Ïng_upd©e +(* +d©a +); + +30 #ifdeà +__ýlu¥lus + + + @inc/util/gl-strings.h + +19 #iâdeà +_GL_STRINGS_H_ + + +20  + #_GL_STRINGS_H_ + + + ) + +22 #ifdeà +__ýlu¥lus + + +27  + #GL_STR_DOMAIN_SYS + "sys_¡ršg" + + ) + +28  + #GL_STR_DOMAIN_LOCAL + +PACKAGE + + + ) + +31  + #GL_STR_ALBUM_CAMERA + + `_ +("Cam”a") + + ) + +32  + #GL_STR_ALBUM_DOWNLOADS + + `_ +("DowÆßds") + + ) + +33  + #GL_STR_ALBUM_SCREENSHOTS + + `_ +("Sü“nshÙs") + + ) + +36  + #GL_STR_UNDER_IMPLEMENTATION + + `_ +("Und” Im¶em’tiÚ!") + + ) + +38  + #GL_STR_INVALID_INPUT_PARAMETER + + `_ +("IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER") + + ) + +39  + #GL_STR_ENTRY_IS_EMPTY + + `_ +("IDS_MEDIABR_POP_ENTRY_IS_EMPTY") + + ) + +40  + #GL_STR_SAME_NAME_ALREADY_IN_USE + + `_ +("IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE") + + ) + +42  + #GL_STR_UNABLE_tO_RENAME + + `_ +("IDS_MEDIABR_POP_UNABLE_TO_RENAME") + + ) + +43  + #GL_STR_NO_ALBUMS_SELECTED + + `_ +("IDS_MEDIABR_POP_NO_ALBUMS_SELECTED") + + ) + +44  + #GL_STR_SELECT_ITEM + + `_ +( +GL_STR_ID_SELECT_ITEM +) + + ) + +45  + #GL_STR_NO_ALBUMS + + `_ +( +GL_STR_ID_NO_ALBUMS +) + + ) + +47  + #GL_STR_EMPTY + + `_ +("") + + ) + +48  + #GL_STR_NO_NAME + +GL_STR_ID_NO_NAME + + + ) + +50  + #GL_STR_MORE + + `dg‘‹xt +("sys_¡ršg", "IDS_COM_BODY_MORE") + + ) + +52  + #GL_STR_DELETE_1_FILE + + `_ +("IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED") + + ) + +53  + #GL_STR_DELETE_PD_FILES + + `_ +("IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB") + + ) + +55  + #GL_STR_DELETE_1_ALBUM + + `_ +("IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED") + + ) + +56  + #GL_STR_DELETE_PD_ALBUMS + + `_ +("IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED") + + ) + +58  + #GL_STR_PD_SELECTED + + `_ +("IDS_GALLERY_HEADER_PD_SELECTED_ABB") + + ) + +60  + #GL_STR_CREATE_FOLDER_Q + + `_ +("IDS_MEDIABR_POP_CREATE_FOLDER_Q") + + ) + +61  + #GL_STR_ITEMS + + `_ +("™ems") + + ) + +62  + #GL_STR_ITEM + + `_ +("™em") + + ) + +63  + #GL_STR_RETRY_Q + + `_ +("IDS_MEDIABR_POP_RETRY_Q") + + ) + +64  + #GL_STR_REMOVE_COMFIRMATION + + `_ +("IDS_MEDIABR_POPUP_REMOVE_Q") + + ) + +67  + #GL_STR_OPERATION_FAILED + + `dg‘‹xt +("sys_¡ršg", +GL_STR_ID_OPERATION_FAILED +) + + ) + +68  + #GL_STR_CAMERA + + `dg‘‹xt +("sys_¡ršg", +GL_STR_ID_CAMERA +) + + ) + +69  + #GL_STR_CANCELLED + + `dg‘‹xt +("sys_¡ršg", "IDS_COM_POP_CANCELLED") + + ) + +70  + #GL_STR_SUCCESS + + `dg‘‹xt +("sys_¡ršg", "IDS_COM_POP_SUCCESS") + + ) + +71  + #GL_STR_FAILED + + `dg‘‹xt +("sys_¡ršg", "IDS_COM_POP_FAILED") + + ) + +72  + #GL_STR_BACK + + `dg‘‹xt +("sys_¡ršg", "IDS_COM_SK_BACK") + + ) + +73  + #GL_STR_DELETE + + `dg‘‹xt +("sys_¡ršg", +GL_STR_ID_DELETE +) + + ) + +74  + #GL_STR_ALBUMS + "IDS_GALLERY_BUTTON_ALBUMS" + + ) + +75  + #GL_STR_ID_TIME_LINE + "IDS_MEDIABR_HEADER_TIMELINE_ABB" + + ) + +76  + #GL_STR_TIME_LINE + + `dg‘‹xt +("sys_¡ršg","IDS_MEDIABR_HEADER_TIMELINE_ABB") + + ) + +77  + #GL_STR_DELETED + + `dg‘‹xt +("sys_¡ršg", "IDS_COM_POP_DELETED") + + ) + +78  + #GL_STR_DELETE_COMFIRMATION + + `dg‘‹xt +("sys_¡ršg", "IDS_COM_POP_DELETE_Q") + + ) + +79  + #GL_STR_SELECTED + + `dg‘‹xt +("sys_¡ršg", "IDS_COM_POP_SELECTED") + + ) + +80  + #GL_STR_ADDED + + `dg‘‹xt +("sys_¡ršg", "IDS_COM_POP_ADDED") + + ) + +81  + #GL_STR_MOVED + + `dg‘‹xt +("sys_¡ršg", "IDS_COM_POP_MOVED") + + ) + +82  + #GL_STR_COPIED + + `dg‘‹xt +("sys_¡ršg", "IDS_COM_POP_COPIED_P") + + ) + +83  + #GL_STR_SELECT_ALL + + `dg‘‹xt +("sys_¡ršg", "IDS_COM_BODY_SELECT_ALL") + + ) + +84  + #GL_STR_NO_FILES_SELECTED + + `dg‘‹xt +("sys_¡ršg", +GL_STR_ID_NO_FILES_SELECTED +) + + ) + +85  + #GL_STR_APPLICATION_NOT_INSTALLED + + `dg‘‹xt +("sys_¡ršg", "IDS_COM_BODY_APPLICATION_NOT_INSTALLED") + + ) + +86  + #GL_STR_PROCESSING + + `dg‘‹xt +("sys_¡ršg", "IDS_COM_POP_PROCESSING") + + ) + +87  + #GL_STR_TODAY + + `dg‘‹xt +("sys_¡ršg", "IDS_COM_BODY_TODAY") + + ) + +88  + #GL_STR_YESTERDAY + + `dg‘‹xt +("sys_¡ršg", "IDS_COM_BODY_YESTERDAY") + + ) + +89  + #GL_STR_SUN + + `dg‘‹xt +("sys_¡ršg", "IDS_COM_POP_SUN") + + ) + +90  + #GL_STR_MON + + `dg‘‹xt +("sys_¡ršg", "IDS_COM_POP_MON") + + ) + +91  + #GL_STR_TUE + + `dg‘‹xt +("sys_¡ršg", "IDS_COM_POP_TUE") + + ) + +92  + #GL_STR_WED + + `dg‘‹xt +("sys_¡ršg", "IDS_COM_POP_WED") + + ) + +93  + #GL_STR_THU + + `dg‘‹xt +("sys_¡ršg", "IDS_COM_POP_THU") + + ) + +94  + #GL_STR_FRI + + `dg‘‹xt +("sys_¡ršg", "IDS_COM_POP_FRI") + + ) + +95  + #GL_STR_SAT + + `dg‘‹xt +("sys_¡ršg", "IDS_COM_POP_SAT") + + ) + +96  + #GL_STR_HELP + + `dg‘‹xt +("sys_¡ršg", "IDS_COM_BODY_HELP") + + ) + +99  + #GL_STR_SR_TAB + + `_ +("b") + + ) + +100  + #GL_STR_SR_DOUBLE_TAP + + `_ +("doubˁ­ØmovtØcڋÁs") + + ) + +101  + #GL_STR_SR_THUMBNAIL_VIEW + + `_ +("ThumbǞ v›w") + + ) + +102  + #GL_STR_SR_FOUCUSED_POINT + + `_ +("Focu£d…ošt") + + ) + +103  + #GL_STR_SR_UNFOUCUSED_POINT + + `_ +("Unfocu£d…ošt") + + ) + +104  + #GL_STR_SR_THUMBS_DOUBLE_TAP + + `_ +("doubˁ­Ø´ev›w it") + + ) + +105  + #GL_STR_SR_ALBUM_DOUBLE_TAP + + `_ +("doubˁ­ØÝ’h®bum") + + ) + +106  + #GL_STR_SR_BUTTON + + `_ +("bu‰Ú") + + ) + +107  + #GL_STR_SR_TITLE + + `_ +("t™Ë") + + ) + +110  + #GL_STR_ID_DELETE_ACCOUNT_COMFIRMATION + "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" + + ) + +111  + #GL_STR_ID_DELETE_WEB_ALBUMS + "Somweb‡lbum wžÈbd–‘ed" + + ) + +112  + #GL_STR_ID_DELETE + "IDS_COM_OPT_DELETE" + + ) + +113  + #GL_STR_ID_CANCEL + "IDS_COM_SK_CANCEL" + + ) + +114  + #GL_STR_ID_CANCEL_ABB + "IDS_MEDIABR_BUTTON_CANCEL_ABB" + + ) + +115  + #GL_STR_ID_MOVE_TO_ALBUM + + `dg‘‹xt +( +GL_STR_DOMAIN_LOCAL +, "IDS_GALLERY_OPT_MOVE_TO_ALBUM") + + ) + +116  + #GL_STR_ID_COPY_TO_ALBUM + + `dg‘‹xt +( +GL_STR_DOMAIN_LOCAL +, "IDS_GALLERY_OPT_COPY_TO_ALBUM") + + ) + +117  + #GL_STR_ID_MOVE + "IDS_COM_BODY_MOVE" + + ) + +118  + #GL_STR_ID_COPY + "IDS_COM_BODY_COPY" + + ) + +119  + #GL_STR_ID_NEW_ALBUM + "IDS_GALLERY_OPT_CREATE_ALBUM" + + ) + +120  + #GL_STR_ID_NEW_ALBUM_CONFIRMATION + "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" + + ) + +121  + #GL_STR_ID_OPERATION_FAILED + "IDS_COM_BODY_OPERATION_FAILED" + + ) + +122  + #GL_STR_ID_CLOSE + "IDS_COM_BODY_CLOSE" + + ) + +123  + #GL_STR_ID_SHARE + "IDS_MEDIABR_OPT_SHARE" + + ) + +124  + #GL_STR_ID_START + "IDS_COM_BODY_START" + + ) + +125  + #GL_STR_ID_SETTINGS + "IDS_COM_BODY_SETTINGS" + + ) + +126 #ifdeà +SUPPORT_SLIDESHOW + + +127  + #GL_STR_ID_SLIDESHOW + "IDS_MEDIABR_OPT_SLIDESHOW" + + ) + +129  + #GL_STR_ID_START_SLIDESHOW + "IDS_MEDIABR_OPT_START_SLIDESHOW" + + ) + +130  + #GL_STR_ID_SLIDESHOW_SETTINGS + "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" + + ) + +131  + #GL_STR_ID_ALBUMS + "IDS_COM_BODY_ALBUMS" + + ) + +133  + #GL_STR_ID_GALLERY + "IDS_COM_BODY_GALLERY" + + ) + +134  + #GL_STR_ID_CHNAGE_NAME + "IDS_COM_BODY_CHANGE_NAME" + + ) + +135  + #GL_STR_ID_MOVING + "IDS_COM_POP_MOVING" + + ) + +136  + #GL_STR_ID_COPYING + "IDS_COM_POP_COPYING_ING" + + ) + +137  + #GL_STR_ID_DELETING + "IDS_COM_POP_DELETING" + + ) + +138  + #GL_STR_ID_YES + "IDS_COM_SK_YES" + + ) + +139  + #GL_STR_ID_NO + "IDS_COM_SK_NO" + + ) + +140  + #GL_STR_ID_OK + "IDS_COM_SK_OK" + + ) + +141  + #GL_STR_ID_DONE + "IDS_COM_SK_DONE" + + ) + +142  + #GL_STR_ID_RENAME + "IDS_COM_SK_RENAME" + + ) + +143  + #GL_STR_ID_CAMERA + "IDS_COM_BODY_CAMERA" + + ) + +144  + #GL_STR_ID_EDIT + "IDS_COM_BODY_EDIT" + + ) + +145  + #GL_STR_ID_SAVE + "IDS_COM_SK_SAVE" + + ) + +146  + #GL_STR_ID_DOWNLOADS + "IDS_MF_BODY_DOWNLOADS" + + ) + +147  + #GL_STR_ID_SCREENSHOTS + "IDS_MF_BODY_SCREENSHOTS" + + ) + +148  + #GL_STR_ID_NO_ITEMS + + `dg‘‹xt +( +GL_STR_DOMAIN_LOCAL +, "IDS_MEDIABR_POP_NO_ITEMS") + + ) + +149  + #GL_STR_ID_NO_ITEMS_SECOND + + `dg‘‹xt +( +GL_STR_DOMAIN_LOCAL +, "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE") + + ) + +150  + #GL_STR_ID_NO_CONTENTS + "IDS_COM_BODY_NO_CONTENTS" + + ) + +151  + #GL_STR_ID_NO_FILES_SELECTED + "IDS_COM_POP_NO_FILES_SELECTED" + + ) + +152  + #GL_STR_ID_NO_NAME + "IDS_MEDIABR_POP_NO_NAME" + + ) + +153  + #GL_STR_ID_ALL_ALBUMS + + `dg‘‹xt +( +GL_STR_DOMAIN_LOCAL +, "IDS_MEDIABR_BODY_ALL_ALBUMS") + + ) + +154  + #GL_STR_ID_FAVOURITE_ALBUMS + + `dg‘‹xt +( +GL_STR_DOMAIN_LOCAL +, "IDS_TW_BODY_FAVORITES") + + ) + +155  + #GL_STR_ID_SELECT_ALBUM + "IDS_MEDIABR_HEADER_SELECT_ALBUM" + + ) + +156  + #GL_STR_TIME_VIEW + "IDS_GALLERY_HEADER_TIME" + + ) + +157  + #GL_STR_SCREEN_HEIGHT_HD + 1280 + + ) + +158  + #GL_STR_SCREEN_WIDTH_HD + 720 + + ) + +159  + #GL_STR_SCREEN_HEIGHT_QHD + 960 + + ) + +160  + #GL_STR_SCREEN_WIDTH_QHD + 540 + + ) + +161  + #GL_STR_SCREEN_HEIGHT_WVGA + 800 + + ) + +162  + #GL_STR_SCREEN_WIDTH_WVGA + 480 + + ) + +163  + #GL_STR_SORT + "IDS_MF_OPT_SORT_BY_ABB" + + ) + +164  + #GL_STR_DATE_OLDEST + "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" + + ) + +165  + #GL_STR_DATE_MOST_RECENT + "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" + + ) + +166  + #GL_STR_ID_ALBUM_DEFAULT + + `dg‘‹xt +( +GL_STR_DOMAIN_LOCAL +, "IDS_GALLERY_HEADER_ALBUM") + + ) + +167  + #GL_STR_ID_REORDER + + `dg‘‹xt +( +GL_STR_DOMAIN_LOCAL +, "IDS_CLOCK_HEADER_REORDER_ABB") + + ) + +168  + #GL_STR_ID_SAME_DESTINATION_ERROR_MSG + + `dg‘‹xt +( +GL_STR_DOMAIN_LOCAL +, "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM") + + ) + +169  + #GL_STR_ID_VIEW_AS + "IDS_GALLERY_OPT_VIEW_AS" + + ) + +170  + #GL_STR_ID_CANCEL_CAP + "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" + + ) + +171  + #GL_STR_ID_DONE_CAP + "IDS_TPLATFORM_ACBUTTON_DONE_ABB" + + ) + +173  + #GL_STR_ID_ALBUM + + `dg‘‹xt +( +GL_STR_DOMAIN_LOCAL +, "IDS_GALLERY_BUTTON_ALBUMS") + + ) + +174  + #GL_STR_ID_SELECT_ITEM + "IDS_MEDIABR_HEADER_SELECT_ITEM" + + ) + +175  + #GL_STR_ID_NO_ALBUMS + "IDS_MEDIABR_BODY_NO_ALBUMS" + + ) + +176  + #GL_STR_ID_JAN + + `dg‘‹xt +( +GL_STR_DOMAIN_LOCAL +, "IDS_COM_BODY_JAN_ABB") + + ) + +177  + #GL_STR_ID_FEB + + `dg‘‹xt +( +GL_STR_DOMAIN_LOCAL +, "IDS_COM_BODY_FEB_ABB") + + ) + +178  + #GL_STR_ID_MAR + + `dg‘‹xt +( +GL_STR_DOMAIN_LOCAL +, "IDS_COM_BODY_MAR_ABB") + + ) + +179  + #GL_STR_ID_APR + + `dg‘‹xt +( +GL_STR_DOMAIN_LOCAL +, "IDS_COM_BODY_APR_ABB") + + ) + +180  + #GL_STR_ID_MAY + + `dg‘‹xt +( +GL_STR_DOMAIN_LOCAL +, "IDS_COM_BODY_MAY_ABB") + + ) + +181  + #GL_STR_ID_JUN + + `dg‘‹xt +( +GL_STR_DOMAIN_LOCAL +, "IDS_COM_BODY_JUN_ABB") + + ) + +182  + #GL_STR_ID_JUL + + `dg‘‹xt +( +GL_STR_DOMAIN_LOCAL +, "IDS_COM_BODY_JUL_ABB") + + ) + +183  + #GL_STR_ID_AUG + + `dg‘‹xt +( +GL_STR_DOMAIN_LOCAL +, "IDS_COM_BODY_AUG_ABB") + + ) + +184  + #GL_STR_ID_SEP + + `dg‘‹xt +( +GL_STR_DOMAIN_LOCAL +, "IDS_COM_BODY_SEP_ABB") + + ) + +185  + #GL_STR_ID_OCT + + `dg‘‹xt +( +GL_STR_DOMAIN_LOCAL +, "IDS_COM_BODY_OCT_ABB") + + ) + +186  + #GL_STR_ID_NOV + + `dg‘‹xt +( +GL_STR_DOMAIN_LOCAL +, "IDS_COM_BODY_NOV_ABB") + + ) + +187  + #GL_STR_ID_DEC + + `dg‘‹xt +( +GL_STR_DOMAIN_LOCAL +, "IDS_COM_BODY_DEC_ABB") + + ) + +189  + #GL_STR_ID_ROTATE_LEFT + "IDS_MEDIABR_OPT_ROTATE_LEFT" + + ) + +190  + #GL_STR_ID_ROTATE_RIGHT + "IDS_MEDIABR_OPT_ROTATE_RIGHT" + + ) + +191  + #GL_STR_ID_EDIT_IMAGE + "IDS_MEDIABR_OPT_EDIT_IMAGE" + + ) + +192  + #GL_STR_ID_ROTATING + + `_ +("IDS_MEDIABR_POP_ROTATING_ING") + + ) + +195  + #GL_STR_ID_ALL_ITEMS + "IDS_MEDIABR_OPT_ALL_ITEMS" + + ) + +196  + #GL_STR_ID_SELECT_ITEMS + "IDS_MEDIABR_BODY_SELECT_ITEMS" + + ) + +197  + #GL_STR_ID_SELECT_ALL + "IDS_GALLERY_HEADER_SELECT_ALL_ABB" + + ) + +199  + #GL_STR_ID_DETAILS + "IDS_COM_BODY_DETAILS" + + ) + +200  + #GL_STR_ID_MAX_NO_CHARS_REACHED + "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" + + ) + +202  + #GL_STR_ID_SHARE_LIMIT + + `_ +("IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS") + + ) + +204  + #GL_STR_ID_UNSUPPORTED_FILE_TYPE + "IDS_COM_BODY_UNSUPPORTED_FILE_TYPE" + + ) + +206  + #GL_STR_ID_DELETE_COMFIRMATION + "IDS_COM_POP_DELETE_Q" + + ) + +208  + #GL_STR_ID_DELETE_1_FILE + "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" + + ) + +209  + #GL_STR_ID_DELETE_PD_FILES + "IDS_MEDIABR_POP_PD_ITEMS_WILL_BE_DELETED" + + ) + +210  + #GL_STR_PD_ITEMS + + `_ +("IDS_MEDIABR_BODY_PD_ITEMS") + + ) + +212  + #GL_STR_ID_DELETE_1_ALBUM + "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" + + ) + +213  + #GL_STR_ID_DELETE_PD_ALBUMS + "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" + + ) + +215  + #GL_STR_ID_INVALID_INPUT_PARAMETER + "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" + + ) + +216  + #GL_STR_ID_ENTRY_IS_EMPTY + "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" + + ) + +217  + #GL_STR_ID_SAME_NAME_ALREADY_IN_USE + "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" + + ) + +219  + #GL_STR_ID_THERE_IS_ONLY_ONE_ALBUM + "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" + + ) + +222  + #GL_STR_1_ITEM + + `_ +("IDS_EMAIL_BODY_1_ITEM") + + ) + +223  + #GL_STR_REMOVED + + `_ +("IDS_MF_POP_REMOVED") + + ) + +224  + #GL_STR_ID_ENTER_TAG_NAME + "IDS_MEDIABR_POP_ENTER_TAG_NAME" + + ) + +225  + #GL_STR_MEMORY_FULL + "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" + + ) + +226  + #GL_DEVICE_MEMORY_FULL + "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" + + ) + +227  + #GL_STR_SETTINGS + "IDS_MF_BUTTON_SETTINGS" + + ) + +228  + #GL_DATA_SAVE_FAILED + "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" + + ) + +230 #ifdeà +__ýlu¥lus + + + @inc/util/gl-ta.h + +18 #iâdeà +_GL_TA_H_ + + +19  + #_GL_TA_H_ + + + ) + +22 #ifdeà +_ENABLE_TA + + +24  + #GL_TA_MAX_CHECKPOINT + 500 + + ) + +25  + #GL_TA_MAX_ACCUM + 500 + + ) + +26  + #GL_TA_TIME_BUF_LEN + 256 + + ) + +28  + s_gl__checkpošt + + +30  + mtime¡amp +; + +31 * + mÇme +; + +32 } + tgl__checkpošt +; + +34  + s_gl__accum_™em + + +36  + m–­£d_accum +; + +37  + mnum_ÿÎs +; + +38  + m–­£d_mš +; + +39  + m–­£d_max +; + +40  + mfœ¡_¡¬t +; + +41  + mÏ¡_’d +; + +43 * + mÇme +; + +45  + mtime¡amp +; + +46  + mÚ_e¡im©e +; + +47  + mnum_uÅaœ +; + +48 } + tgl__accum_™em +; + +50  + #GL_TA_SHOW_STDOUT + 0 + + ) + +51  + #GL_TA_SHOW_STDERR + 1 + + ) + +52  + #GL_TA_SHOW_FILE + 2 + + ) + +53  + #GL_TA_RESULT_FILE + "/tmp/g®Ëry-.log" + + ) + +57  +gl__š™ +(); + +58  +gl__»Ëa£ +(); + +59  +gl__£t_’abË +( +’abË +); + +60 * +gl__fmt +(cÚ¡ * +fmt +, ...); + +64  +gl__add_checkpošt +(* +Çme +,  +show +, * +fž’ame +,  +lše +); + +65  +gl__show_checkpošts +(); + +66  +gl__show_diff +(* +Çme1 +, * +Çme2 +); + +68  +gl__g‘_numof_checkpošts +(); + +69  +gl__g‘_diff +(* +Çme1 +, * +Çme2 +); + +70 * +gl__g‘_Çme +( +idx +); + +75  +gl__accum_™em_begš +(* +Çme +,  +show +, * +fž’ame +,  +lše +); + +76  +gl__accum_™em_’d +(* +Çme +,  +show +, * +fž’ame +,  +lše +); + +77  +gl__accum_show_»suÉ +( +dœeùiÚ +); + +80  + #GL_TA_INIT +(èÐ + `gl__š™ +(è) + + ) + +81  + #GL_TA_RELEASE +(èÐ + `gl__»Ëa£ +(è) + + ) + +82  + #GL_TA_SET_ENABLE +( +’abË +èÐ + `gl__£t_’abË +ÓÇbËè) + + ) + +85  + #GL_TA_ADD_CHECKPOINT +( +Çme +, +show +èÐ + `gl__add_checkpošt +Òame,show, +__FILE__ +, +__LINE__ +è) + + ) + +86  + #GL_TA_SHOW_CHECKPOINTS +(èÐ + `gl__show_checkpošts +(è) + + ) + +87  + #GL_TA_SHOW_DIFF +( +Çme1 +, +Çme2 +èÐ + `gl__show_diff +Òame1,‚ame2è) + + ) + +88  + #GL_TA_GET_NUMOF_CHECKPOINTS +(èÐ + `gl__g‘_numof_checkpošts +(è) + + ) + +89  + #GL_TA_GET_DIFF +( +Çme1 +, +Çme2 +èÐ + `gl__g‘_diff +Òame1,‚ame2è) + + ) + +90  + #GL_TA_GET_NAME +( +idx +èÐ + `gl__g‘_Çme +(idxè) + + ) + +93  + #GL_TA_ACUM_ITEM_BEGIN +( +Çme +, +show +èÐ + `gl__accum_™em_begš +Òame,show, +__FILE__ +, +__LINE__ +è) + + ) + +94  + #GL_TA_ACUM_ITEM_END +( +Çme +, +show +èÐ + `gl__accum_™em_’d +Òame,show, +__FILE__ +, +__LINE__ +è) + + ) + +95  + #GL_TA_ACUM_ITEM_SHOW_RESULT +(èÐ + `gl__accum_show_»suÉ +( +GL_TA_SHOW_STDOUT +è) + + ) + +96  + #GL_TA_ACUM_ITEM_SHOW_RESULT_TO +( +x +èÐ + `gl__accum_show_»suÉ +(xè) + + ) + +98  + #__gl___ +( +Çme +, +x +) \ + +99 + `GL_TA_ACUM_ITEM_BEGIN +( +Çme +, 0); \ + +100 +x + \ + +101 + `GL_TA_ACUM_ITEM_END +( +Çme +, 0); + + ) + +103  + #__gl_fmt__ +( +fmt +, +¬gs +...èÐ + `gl__fmt +(fmt, ##¬gsè) + + ) + +107  + #GL_TA_INIT +() + + ) + +108  + #GL_TA_RELEASE +() + + ) + +109  + #GL_TA_SET_ENABLE +( +’abË +) + + ) + +112  + #GL_TA_ADD_CHECKPOINT +( +Çme +, +show +) + + ) + +113  + #GL_TA_SHOW_CHECKPOINTS +() + + ) + +114  + #GL_TA_SHOW_DIFF +( +Çme1 +, +Çme2 +) + + ) + +115  + #GL_TA_GET_NUMOF_CHECKPOINTS +() + + ) + +116  + #GL_TA_GET_DIFF +( +Çme1 +, +Çme2 +) + + ) + +117  + #GL_TA_GET_NAME +( +idx +) + + ) + +120  + #GL_TA_ACUM_ITEM_BEGIN +( +Çme +, +show +) + + ) + +121  + #GL_TA_ACUM_ITEM_END +( +Çme +, +show +) + + ) + +122  + #GL_TA_ACUM_ITEM_SHOW_RESULT +() + + ) + +123  + #GL_TA_ACUM_ITEM_SHOW_RESULT_TO +( +x +) + + ) + +124  + #__gl___ +( +Çme +, +x +è + ) +x + +125  + #__gl_fmt__ +( +fmt +, +¬gs +...) + + ) + + @inc/util/gl-thread-util.h + +18 #iâdeà +_GL_THREAD_UTIL_H_ + + +19  + #_GL_THREAD_UTIL_H_ + + + ) + +21 #ifdeà +__ýlu¥lus + + +28 +GL_PB_CANCEL_NONE +, + +29 +GL_PB_CANCEL_NORMAL +, + +30 +GL_PB_CANCEL_BUTTON +, + +31 +GL_PB_CANCEL_MMC +, + +32 +GL_PB_CANCEL_ERROR +, + +33 +GL_PB_CANCEL_RESET +, + +34 } + tgl_pb_ÿnûl_mode +; + +36  +gl_th»ad_em™_Ãxt_sigÇl +(* +d©a +); + +37  +gl_th»ad_wa™_Ãxt_sigÇl +(* +d©a +); + +38  +gl_th»ad_£t_ÿnûl_¡©e +(* +d©a +,  +v® +); + +39  +gl_th»ad_g‘_ÿnûl_¡©e +(* +d©a +, * +v® +); + +40  +gl_th»ad_wr™e_pe +(* +d©a +,  +fšished_út +,  +pÝup_Ý +); + +41  +gl_th»ad_g’_d©a_th»ad +(* +d©a +); + +42  +gl_th»ad_de¡roy_lock +(* +d©a +); + +43  +gl_th»ad_š™_lock +(* +d©a +); + +44  +_gl_th»ad_£t_Ý_cb +(* +d©a +, * +Ý_cb +); + +45  +_gl_th»ad_£t_upd©e_cb +(* +d©a +, * +upd©e_cb +); + +46  +_gl_th»ad_£t_d–_™em_cb +(* +d©a +, * +d–_™em_cb +); + +47  +_gl_th»ad_£t_tÙ®_út +(* +d©a +,  +tÙ®_út +); + +49 #ifdeà +__ýlu¥lus + + + @inc/util/gl-ui-util.h + +18 #iâdeà +_GL_UI_UTIL_H_ + + +19  + #_GL_UI_UTIL_H_ + + + ) + +21  + ~"g®Ëry.h +" + +22  + ~"gl-icÚs.h +" + +24 #ifdeà +__ýlu¥lus + + +29  + #_EDJ +( +o +è + `–m_Ïyout_edje_g‘ +(o) + + ) + +30  + #_GET_ICON +( +_·th +) \ + +31 ((1 =ð + `gl_fže_exi¡s +( +_·th +è&& ( + `gl_fže_size +(_·thè> 0)è? _·th : +GL_ICON_NO_THUMBNAIL +) + + ) + +32  + #_GET_APP_ICON +( +_·th +) \ + +33 ((1 =ð + `gl_fže_exi¡s +( +_·th +è&& ( + `gl_fže_size +(_·thè> 0)è? _·th : +GL_ICON_DEFAULT +) + + ) + +36  + #GL_SIGNAL_GESTURE_DEFAULT + "–m,ge¡u»,¡©e,deçuÉ" + + ) + +37  + #GL_SIGNAL_GESTURE_DISABLED + "–m,ge¡u»,¡©e,di§bËd" + + ) + +38  + #GL_TRANS_FINISHED + "Œªs™iÚ,fšished" + + ) + +42 +GL_NAVI_ALBUMS +, + +43 +GL_NAVI_ALBUMS_EDIT +, + +44 +GL_NAVI_ALBUMS_RENAME +, + +45 +GL_NAVI_ALBUMS_NEW +, + +46 +GL_NAVI_ALBUMS_SELECT +, + +47 +GL_NAVI_PLACES +, + +48 +GL_NAVI_TAGS +, + +49 +GL_NAVI_TAGS_EDIT +, + +50 +GL_NAVI_TAGS_NEW +, + +51 +GL_NAVI_TAGS_RENAME +, + +52 +GL_NAVI_THUMBS +, + +53 +GL_NAVI_THUMBS_EDIT +, + +54 +GL_NAVI_THUMBS_SELECT +, + +55 +GL_NAVI_WEB +, + +56 +GL_NAVI_WEB_EDIT +, + +57 } + tgl_Çvi_mode +; + +61 +GL_POPUP_ADDHOME_SIZE_1 +, + +62 +GL_POPUP_ADDHOME_SIZE_2 +, + +63 +GL_POPUP_ADDHOME_SIZE_NUM +, + +64 } + tgl_pÝup_addhome_size +; + +66  +_gl_ui_x±_bŠ_t + + tgl_ui_x±_bŠ_e +; + +68 + e_gl_ui_x±_bŠ_t + { + +69 +GL_UI_XPT_CAMERA + = (0x1 << 0), + +70 +GL_UI_XPT_SEL_ALL + = (0x1 << 1), + +71 +GL_UI_XPT_SHARE + = (0x1 << 2), + +72 +GL_UI_XPT_DONE + = (0x1 << 3), + +75 +Evas_Objeù + * +_gl_ui_ü—‹_gridv›w_ly +(* +d©a +, Evas_Objeù * +·»Á +); + +76 +Evas_Objeù + * +gl_ui_lßd_edj +(Evas_Objeù * +·»Á +, cÚ¡ * +fže +, cÚ¡ * +group +); + +77  +_gl_ui_rm_£ÏÎ_bŠ +( +Elm_Objeù_I‹m + * +nf_™ +); + +78  +_gl_ui_add_£ÏÎ_bŠ +( +Evas_Objeù + * +Çviäame +, +Elm_Objeù_I‹m + * +nf_™ +, + +79 +Evas_Sm¬t_Cb + +cb_func +, * +d©a +); + +81  +_gl_ui_add_x±_bŠs +( +Elm_Objeù_I‹m + * +nf_™ +, +gl_ui_x±_bŠ_e + +x±_bŠ +, + +82 +Evas_Sm¬t_Cb + +r_cb +, Evas_Sm¬t_Cb +l_cb +, * +d©a +); + +83 +Evas_Objeù + * +_gl_ui_g‘_x±_bŠ +( +Elm_Objeù_I‹m + * +nf_™ +, +gl_ui_x±_bŠ_e + +ui_bŠ +); + +84  +_gl_ui_di§bË_x±_bŠ +( +Elm_Objeù_I‹m + * +nf_™ +, +gl_ui_x±_bŠ_e + +ui_bŠ +, +boÞ + +b_di§bËd +); + +85  +_gl_ui_þ—r_x±_bŠs +( +Elm_Objeù_I‹m + * +nf_™ +); + +87  +_gl_ui_þ—r_bŠs +(* +d©a +); + +88  +_gl_ui_hide_back_bu‰Ú +( +Elm_Objeù_I‹m + * +nf_™ +); + +89 +gl_icÚ_ty³_e + +_gl_ui_–m_bg_fže_£t +( +Evas_Objeù + * +bg +, +gl_™em + * +g™ +); + +90  +_gl_ui_£t_cڋÁ +( +Evas_Objeù + * +Ïyout +, cÚ¡ * +·¹ +, + +91 +Evas_Objeù + * +Ãw_cڋÁ +); + +92  +_gl_ui_add_cÚfÜm_cbs +(* +d©a +); + +93  +_gl_ui_d–_cÚfÜm_cbs +( +Evas_Objeù + * +Çviäame +); + +94  +_gl_ui_£t_cÚfÜm_ov”Ïp +( +Evas_Objeù + * +Çviäame +); + +95  +_gl_ui_di§bË_bŠ +( +Evas_Objeù + * +bŠ +); + +96  +_gl_ui_’abË_bŠ +( +Evas_Objeù + * +bŠ +); + +97  +_gl_ui_di§bË_m’u +( +Elm_Objeù_I‹m + * +nf_™ +, +boÞ + +b_di§bËd +); + +98 +Evas_Objeù + * +_gl_ui_g‘_bŠ +(* +d©a +, +Elm_Objeù_I‹m + * +nf_™ +, + +99 cÚ¡ * +·¹ +); + +100  +_gl_ui_upd©e_»®ized_li¡_ck +( +Evas_Objeù + * +v›w +, cÚ¡ * +·¹ +, + +101 +Eša_BoÞ + +¡©e +); + +102  +_gl_ui_upd©e_»®ized_grid_ck +( +Evas_Objeù + * +v›w +, cÚ¡ * +·¹1 +, + +103 cÚ¡ * +·¹2 +, +Eša_BoÞ + +¡©e +); + +104  +_gl_ui_£t_checkbox_¡©e +( +Elm_Objeù_I‹m + * +™ +, cÚ¡ * +·¹ +, + +105 +Eša_BoÞ + +¡©e +); + +106  +_gl_ui_upd©e_»®ized_li¡_f›ld +( +Evas_Objeù + * +v›w +, cÚ¡ * +·¹ +); + +107  +_gl_ui_upd©e_li¡_f›ld +( +Elm_Objeù_I‹m + * +™ +, cÚ¡ * +·¹ +); + +108  +_gl_ui_»£t_süÞËr_pos +( +Evas_Objeù + * +obj +); + +109  +_gl_ui_d–_süÞËr_pos +( +Evas_Objeù + * +obj +); + +110  +_gl_ui_§ve_süÞËr_pos +( +Evas_Objeù + * +obj +); + +111  +_gl_ui_»¡Üe_süÞËr_pos +( +Evas_Objeù + * +obj +); + +112  +_gl_ui_rÙ©e_v›w +(* +d©a +,  +v›w_mode +); + +113  +_gl_ui_£t_toÞb¬_¡©e +(* +d©a +, +boÞ + +b_hide +); + +114 +boÞ + +_gl_ui_hide_key·d +(* +d©a +); + +115  +_gl_ui_d–_nf_™ems +( +Evas_Objeù + * +nf +, +Elm_Objeù_I‹m + * +to_™ +); + +116  +_gl_ui_£t_Œª¦©e_¡r +( +Evas_Objeù + * +obj +, cÚ¡ * +¡r +); + +117  +_gl_ui_£t_Œª¦©abË_™em +( +Elm_Objeù_I‹m + * +nf_™ +, cÚ¡ * +¡r +); + +118  +_gl_ui_£t_Œª¦©abË_™em_·¹ +( +Elm_Objeù_I‹m + * +nf_™ +, cÚ¡ * +·¹ +, + +119 cÚ¡ * +¡r +); + +120  +_gl_ui_£t_Œª¦©e_·¹_¡r +( +Evas_Objeù + * +obj +, cÚ¡ * +·¹ +, + +121 cÚ¡ * +¡r +); + +122  +_gl_ui_chªge_t™Ë +( +Elm_Objeù_I‹m + * +nf_™ +, cÚ¡ * +‹xt +); + +123  +_gl_ui_upd©e_Ïb–_‹xt +( +Elm_Objeù_I‹m + * +nf_™ +,  +£l_út +, +boÞ + +b_Ïng +); + +124  +_gl_ui_chªge_Çvi_t™Ë +( +Elm_Objeù_I‹m + * +nf_™ +, * +‹xt +, +boÞ + +b_drÝdown +); + +125  +_gl_ui_upd©e_Çvi_t™Ë_‹xt +( +Elm_Objeù_I‹m + * +nf_™ +,  +£l_út +, +boÞ + +b_Ïng +); + +126  +_gl_ui_add_£ÏÎ_ck +( +Evas_Objeù + * +·»Á +, * +·¹ +, * +·¹_bŠ +, + +127 +Evas_Sm¬t_Cb + +cb_func +, * +d©a +); + +128 #ifdeà +_USE_GRID_CHECK + + +129  +_gl_show_grid_checks +( +Evas_Objeù + * +v›w +, cÚ¡ * +ck_·¹ +); + +130  +_gl_show_grid_checks_du® +( +Evas_Objeù + * +v›w +, cÚ¡ * +ck_·¹ +, cÚ¡ * +ck_·¹2 +); + +133 #ifdeà +__ýlu¥lus + + + @inc/util/gl-util.h + +18 #iâdeà +_GL_UTIL_H_ + + +19  + #_GL_UTIL_H_ + + + ) + +21 #ifdeà +__ýlu¥lus + + +25  + ~"gl-d©a.h +" + +26  + ~"g®Ëry.h +" + +30  + #GL_HOME_ALBUM_COVER_NUM + 1 + + ) + +32  + #GL_FILE_EXISTS +( +·th +) \ + +33 ( +·th + && (1 =ð + `gl_fže_exi¡s +Õ©h)è&& ( + `gl_fže_size +Õ©hè> 0)) + + ) + +34  + #GL_ICON_SET_FILE +( +icÚ +, +img +) \ + +35 + `–m_image_fže_£t +( +icÚ +, +GL_IMAGES_EDJ_FILE +, +img +) + + ) + +37  + #GL_BG_SET_FILE +( +icÚ +, +img +) \ + +38 + `–m_bg_fže_£t +( +icÚ +, +GL_IMAGES_EDJ_FILE +, +img +) + + ) + +40  + #GL_IF_DEL_TIMER +( +tim” +) \ + +42 if( +tim” + !ð +NULL +) { \ + +43 + `ecÜe_tim”_d– +( +tim” +); \ + +44 +tim” + = +NULL +; \ + +46 } 0) + + ) + +48  + #GL_IF_DEL_IDLER +( +idËr +) \ + +50 if( +idËr + !ð +NULL +) { \ + +51 + `ecÜe_idËr_d– +( +idËr +); \ + +52 +idËr + = +NULL +; \ + +54 } 0) + + ) + +56  + #GL_IF_DEL_JOB +( +job +) \ + +58 if( +job + !ð +NULL +) { \ + +59 + `ecÜe_job_d– +( +job +); \ + +60 +job + = +NULL +; \ + +62 } 0) + + ) + +64  + #GL_IF_DEL_ANIMATOR +( +ªim©Ü +) \ + +66 if( +ªim©Ü + !ð +NULL +) { \ + +67 + `ecÜe_ªim©Ü_d– +( +ªim©Ü +); \ + +68 +ªim©Ü + = +NULL +; \ + +70 } 0) + + ) + +72  + #GL_IF_DEL_TRANSIT +( +Œªs™ +) \ + +74 if( +Œªs™ + !ð +NULL +) { \ + +75 + `–m_Œªs™_d– +( +Œªs™ +); \ + +76 +Œªs™ + = +NULL +; \ + +78 } 0) + + ) + +80  + #GL_IF_DEL_PIPE +( +pe +) \ + +82 if( +pe + !ð +NULL +) { \ + +83 + `ecÜe_pe_d– +( +pe +); \ + +84 +pe + = +NULL +; \ + +86 } 0) + + ) + +88  + #GL_IF_DEL_EVENT_HANDLER +( +hªdËr +) \ + +90 if( +hªdËr + !ð +NULL +) { \ + +91 + `ecÜe_ev’t_hªdËr_d– +( +hªdËr +); \ + +92 +hªdËr + = +NULL +; \ + +94 } 0) + + ) + +96  + #GL_IF_DEL_OBJ +( +obj +) \ + +98 if( +obj + !ð +NULL +) { \ + +99 + `evas_objeù_d– +( +obj +); \ + +100 +obj + = +NULL +; \ + +102 } 0) + + ) + +104  + #GL_IF_FREE_ELIST +( +–i¡ +) \ + +106 if( +–i¡ + !ð +NULL +) { \ + +107 + `eša_li¡_ä“ +( +–i¡ +); \ + +108 +–i¡ + = +NULL +; \ + +110 } 0) + + ) + +115 +GL_MMC_STATE_NONE +, + +116 +GL_MMC_STATE_ADDED +, + +117 +GL_MMC_STATE_ADDED_MOVING +, + +118 +GL_MMC_STATE_ADDING_MOVING +, + +119 +GL_MMC_STATE_REMOVED +, + +120 +GL_MMC_STATE_REMOVED_MOVING +, + +121 } + tgl_mmc_¡©e_mode +; + +125 +GL_UPDATE_VIEW_NONE +, + +126 +GL_UPDATE_VIEW_NORMAL +, + +127 +GL_UPDATE_VIEW_MMC_REMOVED +, + +128 +GL_UPDATE_VIEW_MMC_ADDED +, + +129 +GL_UPDATE_VIEW_INOTIFY +, + +130 } + tgl_upd©e_v›w_mode +; + +134 +GL_MEDIA_OP_NONE +, + +135 +GL_MEDIA_OP_MOVE +, + +136 +GL_MEDIA_OP_COPY +, + +137 +GL_MEDIA_OP_DELETE +, + +139 +GL_MEDIA_OP_DELETE_ALBUM +, + +140 #ifdeà +_USE_ROTATE_BG + + +141 +GL_MEDIA_OP_ROTATING_LEFT +, + +142 +GL_MEDIA_OP_ROTATING_RIGHT +, + +144 +GL_MEDIA_OP_MOVE_TIMELINE +, + +145 +GL_MEDIA_OP_COPY_TIMELINE +, + +146 +GL_MEDIA_OP_DELETE_TIMELINE +, + +147 #ifdeà +_USE_ROTATE_BG + + +148 +GL_MEDIA_OP_ROTATING_LEFT_TIMELINE +, + +149 +GL_MEDIA_OP_ROTATING_RIGHT_TIMELINE +, + +151 } + tgl_medŸ_Ý_mode +; + +155 +GL_POPUP_OP_NONE +, + +156 +GL_POPUP_OP_SAME_ALBUM +, + +157 +GL_POPUP_OP_DUPLICATED_NAME +, + +158 +GL_POPUP_OP_PROTECTED_FILE +, + +159 } + tgl_pÝup_Ý_mode +; + +163 +GL_SHARE_NONE +, + +164 +GL_SHARE_IMAGE_ONE +, + +165 +GL_SHARE_IMAGE_ONE_JPEG +, + +166 +GL_SHARE_IMAGE_MULTI +, + +167 +GL_SHARE_IMAGE_MULTI_JPEG +, + +168 +GL_SHARE_IMAGE_VIDEO +, + +169 +GL_SHARE_VIDEO_ONE +, + +170 +GL_SHARE_VIDEO_MULTI +, + +171 } + tgl_sh¬e_mode +; + +175 +GL_INVALID_NONE +, + +176 +GL_INVALID_NEW_ENTRY +, + +177 +GL_INVALID_NEW_ENTRY_NOC +, + +178 } + tgl_šv®id_mode +; + +180 + e_gl_mc_mode + { + +181 +GL_MC_NONE +, + +182 +GL_MC_MOVE +, + +183 +GL_MC_COPY +, + +185  +_gl_mc_mode + + tgl_mc_mode_e +; + +188  + s_gl_g‘_®bum_images_·th_t + { + +189  +šdex +; + +190 ** +fžes +; + +192  +_gl_g‘_®bum_images_·th_t + + tgl_g‘_®bum_images_·th_s +; + +194  +gl_g‘_v›w_mode +(* +d©a +); + +195  +gl_£t_v›w_mode +(* +d©a +,  +mode +); + +196  +_gl_u£_th»ad_ݔ©e_medŸs +(* +d©a +, * +pb¬_t™Ë +,  +®l_út +, + +197  +Ý_ty³ +); + +198  +_gl_move_medŸ_thumb +(* +d©a +, +gl_™em + * +g™em +, * +Ãw_dœ_Çme +, + +199 +boÞ + +is_fuÎ_·th +, * +pÝup_Ý +,  +mc_mode +); + +200  +_gl_move_medŸ_thumb_by_id +(* +d©a +, cÚ¡ * +uuid +, * +Ãw_dœ_Çme +, + +201 * +pÝup_Ý +,  +mc_mode +); + +202  +_gl_move_medŸ +( +gl_™em + * +g™em +, * +Ãw_dœ_Çme +, +boÞ + +is_fuÎ_·th +); + +203  +gl_move_cÝy_to_®bum +(* +d©a +); + +204  +gl_move_roÙ_®bum +(* +d©a +, +gl_þu¡” +* +cur_®bum +, * +de¡_·th +); + +205  +gl_d–_medŸs +(* +d©a +); + +206  +_gl_d–_medŸ_by_id +(* +d©a +, cÚ¡ * +uuid +); + +207  +gl_check_mmc_¡©e +(* +d©a +, * +de¡_fÞd” +); + +208  +_gl_d–_®bums +(* +d©a +); + +209  +_gl_»äesh_®bums_li¡ +(* +d©a +, +boÞ + +b_·th +, boÞ +b_£Ëù +); + +210  +_gl_upd©e_®bums_d©a +(* +d©a +); + +211  +_gl_upd©e_®bums_li¡ +(* +d©a +); + +212  +gl_£t_mmc_nÙifd +( +fd +); + +213 +Eša_BoÞ + +gl_upd©e_v›w +(* +d©a +,  +mode +); + +214  +gl_g‘_£Ëùed_fžes_·th_¡r +(* +d©a +, +gch¬ + +£p_c +, ** +·th_¡r +, + +215 * +£l_út +); + +216 +boÞ + +gl_make_Ãw_®bum +(cÚ¡ * +Çme +); + +217 +boÞ + +gl_check_g®Ëry_em±y +(* +d©a +); + +218 +boÞ + +gl_is_image_v®id +(* +d©a +, * +fž•©h +); + +219 #ifdeà +_USE_ROTATE_BG + + +220  +_gl_d–ay +( +£c +); + +221  +_gl_rÙ©e_images +(* +d©a +, +boÞ + +b_Ëá +); + +222  +_gl_rÙ©e_image_by_id +(* +d©a +, cÚ¡ * +uuid +, +boÞ + +b_Ëá +); + +224  +gl_g‘_’Œy_‹xt +( +Evas_Objeù + * +’Œy +, * +’Œy_‹xt +,  +Ën_max +); + +225  +gl_£t_’Œy_‹xt +( +Evas_Objeù + * +’Œy +, * +’Œy_‹xt +); + +226  +_gl_g‘_v®id_®bum_Çme +(* +d©a +, * +®bum_Çme +, +boÞ + +b_Ãw +, + +227 +boÞ + +b_’‹r +); + +228  +_gl_v®id©e_®bum_Çme +(* +d©a +, * +®bum_Çme +); + +229  +_gl_v®id©e_šput_ch¬aù” +(* +d©a +, * +®bum_Çme +); + +230 * +_gl_g‘_i18n_®bum_Çme +( +gl_®bum_s + * +þu¡” +); + +231  +gl_g‘_sh¬e_mode +(* +d©a +); + +232  +gl_d–_šv®id_widg‘s +(* +d©a +,  +šv®id_m +); + +233  +gl_pÝ_to_ù¾b¬_ly +(* +d©a +); + +234  +gl_¶ay_vib¿tiÚ +(* +d©a +); + +235 +time_t + +gl_utž_g‘_cu¼’t_sy¡emtime +(); + +236 * +_gl_g‘_du¿tiÚ_¡ršg +( +v_dur +); + +237 +gl_icÚ_ty³_e + +_gl_g‘_icÚ_ty³ +( +gl_™em + * +g™ +); + +238 * +_gl_¡r +(* +¡r_id +); + +239 +boÞ + +_gl_is_¡r_id +(cÚ¡ * +¡r_id +); + +240  +_gl_g‘_wš_çùÜ +( +Evas_Objeù + * +wš +, * +width +, * +height +); + +241  +_gl_g‘_fÚt_size +(); + +242 #ifdeà +_USE_SVI + + +243  +_gl_š™_svi +(* +d©a +); + +244  +_gl_fši_svi +(* +d©a +); + +245  +_gl_¶ay_sound +(* +d©a +); + +246  +_gl_¶ay_vib¿tiÚ +(* +d©a +); + +248  +_gl_»g_¡Üage_¡©e_chªge_nÙify +(* +d©a +); + +249  +_gl_d”eg_¡Üage_¡©e_chªge_nÙify +(* +d©a +); + +250  +_gl_£t_fže_Ý_cbs +(* +d©a +, * +Ý_cb +, * +d–_™em_cb +, + +251 * +upd©e_cb +,  +tÙ®_út +); + +252  +_gl_­³nd_®bum_images_·th +(* +d©a +, +gl_medŸ_s + * +™em +); + +253  +_gl_g‘_®bum_images_·th +(* +d©a +, ** +fžes +, +boÞ + +b_hide +); + +254 * +_gl_d–‘e_fÞd” +(* +·th +); + +255  +gl_»move_®bum +(* +d©a +, +gl_þu¡” + * +®bum_™em +, +boÞ + +is_hide +); + +256  +_gl_ä“_£Ëùed_li¡ +(* +d©a +); + +257  +_gl_dlݒ_imagev›w” +(* +d©a +); + +258  +_gl_dlþo£_imagev›w” +(* +d©a +); + +260 #ifdeà +__ýlu¥lus + + + @inc/widget/gl-button.h + +18 #iâdeà +_GL_BUTTON_H_ + + +19  + #_GL_BUTTON_H_ + + + ) + +21  + ~ + +22  + ~"g®Ëry.h +" + +24 +Evas_Objeù + * +_gl_but_ü—‹_but +(Evas_Objeù * +·»Á +, cÚ¡ * +icÚ +, + +25 cÚ¡ * +‹xt +, cÚ¡ * +¡yË +, + +26 +Evas_Sm¬t_Cb + +cb_func +, cÚ¡ * +d©a +); + +27 +Evas_Objeù + * +_gl_but_ü—‹_but_pÝup +(Evas_Objeù * +·»Á +, cÚ¡ * +‹xt +, + +28 +Evas_Sm¬t_Cb + +cb_func +, cÚ¡ * +d©a +); + +29 +Evas_Objeù + * +_gl_but_ü—‹_image_but +(Evas_Objeù * +·»Á +, cÚ¡ * +icÚ +, + +30 cÚ¡ * +‹xt +, cÚ¡ * +¡yË +, + +31 +Evas_Sm¬t_Cb + +cb_func +, * +d©a +, + +32 +Eša_BoÞ + +æag_´Ýag©e +); + + @inc/widget/gl-controlbar.h + +18 #iâdeà +_GL_CONTROLBAR_H_ + + +19  + #_GL_CONTROLBAR_H_ + + + ) + +21  + ~ + +22  + ~"g®Ëry.h +" + +24  + #GL_CBAR_OCCUPIED_PBAR + 4 + + ) + +25  + #GL_CBAR_OCCUPIED_SEGMENT + 4 + + ) + +28  + #GL_CTRL_TAB_INIT + (-1) + + ) + +30  + e_gl_ù¾_b_mode + + +32 + mGL_CTRL_TAB_ALBUMS +, + +33 + mGL_CTRL_TAB_TIMELINE +, + +34 + mGL_CTRL_TAB_CNT +, + +35 } + tgl_ù¾_b_mode +; + +37  +_gl_ù¾_show_t™Ë +(* +d©a +,  +b_mode +); + +38  +_gl_ù¾_show_v›w +(* +d©a +, cÚ¡ * +Ïb– +); + +39 +Evas_Objeù + * +_gl_ù¾_add_Ïyout +(Evas_Objeù * +·»Á +); + +40 +Evas_Objeù + * +_gl_ù¾_add_maš_Ïyout +(Evas_Objeù * +·»Á +); + +41  +_gl_ù¾_£l_b +(* +d©a +,  +b_mode +); + +42  +_gl_ù¾_£t_b_mode +(* +d©a +,  +mode +); + +43  +_gl_ù¾_g‘_b_mode +(* +d©a +); + +44  +_gl_ù¾_chªge_—symode +(* +d©a +); + +45  +_gl_ù¾_’abË_bŠs +(* +d©a +, +Elm_Objeù_I‹m + * +nf_™ +); + +46 +Evas_Objeù + * +_gl_ù¾_add_toÞb¬ +(Evas_Objeù * +·»Á +); + +47 +Elm_Objeù_I‹m + * +_gl_ù¾_­³nd_™em +( +Evas_Objeù + * +obj +, cÚ¡ * +icÚ +, + +48 cÚ¡ * +Ïb– +, +Evas_Sm¬t_Cb + +func +, + +49 cÚ¡ * +d©a +); + +50  +_gl_ù¾_di§bË_™ems +( +Elm_Objeù_I‹m + * +nf_™ +, +boÞ + +b_di§bËd +); + +51  +_gl_ù¾_di§bË_™ems_w™h_check +( +Elm_Objeù_I‹m + * +nf_™ +, +boÞ + +b_di§bËd +, + +52 * +check_¡r +, +boÞ + +b_check_di§bËd +); + +53  +_gl_ù¾_di§bË_™em_w™h_check +( +Elm_Objeù_I‹m + * +nf_™ +, * +check_¡r +, + +54 +boÞ + +b_di§bËd +); + +55  +_gl_ù¾_di§bË_™em +( +Elm_Objeù_I‹m + * +™ +, +Eša_BoÞ + +b_di§bËd +); + + @inc/widget/gl-ctxpopup.h + +18 #iâdeà +_GL_CTXPOPUP_H_ + + +19  + #_GL_CTXPOPUP_H_ + + + ) + +21 (* + tùx_­³nd_cb +è(* + td©a +, + tEvas_Objeù + * + t·»Á +); + +23 +Elm_Objeù_I‹m + * + `_gl_ùxpÝup_­³nd +( +Evas_Objeù + * +obj +, * +Ïb–_id +, + +24 +Evas_Sm¬t_Cb + +func +, cÚ¡ * +d©a +); + +25 +Elm_Objeù_I‹m + * + `_gl_ùxpÝup_­³nd_w™h_icÚ +( +Evas_Objeù + * +obj +, * +Ïb– +, + +26 * +icÚ_·th +, +Evas_Sm¬t_Cb + +func +, cÚ¡ * +d©a +); + +27  + `_gl_ùxpÝup_ü—‹ +(* +d©a +, +Evas_Objeù + * +but +, +ùx_­³nd_cb + +­³nd_cb +); + +28  + `_gl_ùxpÝup_d– +(* +d©a +); + + @inc/widget/gl-editfield.h + +18 #iâdeà +_GL_EDITFIELD_H_ + + +19  + #_GL_EDITFIELD_H_ + + + ) + +21  + ~"g®Ëry.h +" + +23 #ifdeà +__ýlu¥lus + + +28 +Evas_Objeù + * +_gl_ed™f›ld_ü—‹ +(* +d©a +, Evas_Objeù * +·»Á +, + +29 * +deçuÉ_Ïb– +); + +30 +Evas_Objeù + * +_gl_ed™f›ld_ü—‹_g’li¡ +(* +d©a +, Evas_Objeù * +·»Á +, + +31 +Elm_Objeù_I‹m + * +™ +, * +Ïb– +); + +32 +Evas_Objeù + * +_gl_ed™f›ld_ü—‹_’Œy +(* +d©a +, Evas_Objeù * +Ïyout +, * +‹xt +); + +33  +_gl_ed™f›ld_hide_imf +(* +d©a +); + +34  +_gl_ed™f›ld_show_imf +(* +d©a +); + +35  +_gl_ed™f›ld_de¡roy_imf +(* +d©a +); + +36  +_gl_ed™f›ld_chªge_Çvi_t™Ë +(* +d©a +,  +r +); + +37 +Evas_Objeù + * +_gl_ed™f›ld_g‘_’Œy +(* +d©a +); + +38  +__gl_ed™f›ld_£t_’Œy +(* +d©a +, +Evas_Objeù + * +Ïyout +, + +39 +Evas_Objeù + * +’Œy +, * +deçuÉ_Ïb– +); + +41 #ifdeà +__ýlu¥lus + + + @inc/widget/gl-gesture.h + +18 #iâdeà +_GL_GESTURE_H_ + + +19  + #_GL_GESTURE_H_ + + + ) + +21  + ~ + +22  + ~"g®Ëry.h +" + +24  + #GL_GESTURE_KEY_PINCH_LEVEL + "pšch_Ëv–" + + ) + +26  + e_gl_zoom_mode + { + +27 + mGL_ZOOM_NONE +, + +28 + mGL_ZOOM_DEFAULT +, + +29 + mGL_ZOOM_IN_ONE +, + +30 + mGL_ZOOM_IN_TWO +, + +31 + mGL_ZOOM_MAX +, + +32 } + tgl_zoom_mode +; + +34  + $Eša_BoÞ + (* + tgl_ge¡u»_cb +è( + tEvas_Objeù + * + tge¡u» +, * + td©a +); + +36 +Evas_Objeù + * + `_gl_ge¡u»_add +(* +d©a +, Evas_Objeù * +·»Á +); + +37  + `_gl_ge¡u»_£t_zoom_š_cb +( +Evas_Objeù + * +ge¡u» +, +gl_ge¡u»_cb + +cb +, + +38 * +d©a +); + +39  + `_gl_ge¡u»_£t_zoom_out_cb +( +Evas_Objeù + * +ge¡u» +, +gl_ge¡u»_cb + +cb +, + +40 * +d©a +); + +41  + `_gl_ge¡u»_»£t_æags +( +Evas_Objeù + * +ge¡u» +); + +42 +Evas_Objeù + * + `_gl_ge¡u»_g‘_·»Á +(Evas_Objeù * +ge¡u» +); + + @inc/widget/gl-nocontents.h + +18 #iâdeà +_GL_NOCONTENTS_H_ + + +19  + #_GL_NOCONTENTS_H_ + + + ) + +21  + ~"g®Ëry.h +" + +23 #ifdeà +__ýlu¥lus + + +28 +Evas_Objeù + * +_gl_nocڋÁs_ü—‹ +(Evas_Objeù * +·»Á +); + +29 +boÞ + +_gl_nocڋÁs_upd©e_Ïb– +( +Evas_Objeù + * +noc +, cÚ¡ * +Ãw_Ïb– +); + +31 #ifdeà +__ýlu¥lus + + + @inc/widget/gl-notify.h + +18 #iâdeà +_GL_NOTIFY_H_ + + +19  + #_GL_NOTIFY_H_ + + + ) + +21  + ~"g®Ëry.h +" + +23 #ifdeà +__ýlu¥lus + + +28  +_gl_nÙify_ü—‹_nÙišfo +(cÚ¡ * +‹xt +); + +29  +_gl_nÙify_check_£ÏÎ +(* +d©a +, +Elm_Objeù_I‹m + * +nf_™ +,  +®l_út +, + +30  +£Ëùed_út +); + +31  +_gl_nÙify_de¡roy +(* +nÙi +); + +32  +_gl_nÙify_upd©e_size +(* +nÙi +,  +tÙ® +); + +33  +_gl_nÙify_upd©e_´og»ss +(* +nÙi +,  +tÙ® +, + +34  +by‹ +); + +36 #ifdeà +__ýlu¥lus + + + @inc/widget/gl-popup.h + +18 #iâdeà +_GL_POPUP_H_ + + +19  + #_GL_POPUP_H_ + + + ) + +21  + #GL_POPUP_STRING_MAX + 256 + + ) + +23  + e_gl_pÝup_mode + { + +24 + mGL_POPUP_NOBUT +, + +25 + mGL_POPUP_NOBUT_TITLE +, + +26 + mGL_POPUP_NOBUT_APPEXIT +, + +27 + mGL_POPUP_ONEBUT +, + +28 + mGL_POPUP_ALBUM_NEW_EMPTY +, + +29 + mGL_POPUP_ALBUM_NEW_DUPLICATE +, + +30 + mGL_POPUP_ALBUM_NEW_INVALID +, + +31 + mGL_POPUP_ALBUM_RENAME_EMPTY +, + +32 + mGL_POPUP_ALBUM_RENAME_DUPLICATE +, + +33 + mGL_POPUP_ALBUM_RENAME_INVALID +, + +34 + mGL_POPUP_ALBUM_DELETE +, + +35 + mGL_POPUP_MEDIA_MOVE +, + +36 + mGL_POPUP_MEDIA_DELETE +, + +37 + mGL_POPUP_SLIDESHOW +, + +38 + mGL_POPUP_LONGPRESSED +, + +39 + mGL_POPUP_ALBUM_MEMORY_FULL + + +40 } + tgl_pÝup_mode +; + +42  + e_gl_pÝup_d–_m_t + { + +43 + mGL_POPUP_DEL_FILE +, + +44 + mGL_POPUP_DEL_ALBUM +, + +45 + mGL_POPUP_DEL_MAX + + +46 } + tgl_pÝup_d–_m_e +; + +48  +_gl_pÝup_ü—‹ +(* +d©a +, cÚ¡ * +t™Ë +, cÚ¡ * +‹xt +, + +49 cÚ¡ * +¡r1 +, +Evas_Sm¬t_Cb + +cb1 +, cÚ¡ * +d©a1 +, + +50 cÚ¡ * +¡r2 +, +Evas_Sm¬t_Cb + +cb2 +, cÚ¡ * +d©a2 +, + +51 cÚ¡ * +¡r3 +, +Evas_Sm¬t_Cb + +cb3 +, cÚ¡ * +d©a3 +); + +52  +_gl_pÝup_ü—‹_d– +(* +d©a +,  +mode +, * +£l_cb +, * +d–_cb +, + +53 * +cb_d©a +); + +54  +gl_pÝup_ü—‹_pÝup +(* +d©a +, +gl_pÝup_mode + +mode +, * +desc +); + +55 +Evas_Objeù + * +_gl_pÝup_ü—‹_loÿl +(* +d©a +, +gl_pÝup_mode + +mode +, * +desc +); + +56  +_gl_pÝup_ü—‹_¦ideshow +(* +d©a +, * +Ý_func +); + +57  +_gl_pÝup_ü—‹_move +(* +d©a +, * +Ý_func +); + +58  +_gl_pÝup_ü—‹_cÝy +(* +d©a +, * +Ý_func +); + +59  +_gl_pÝup_ü—‹_move_w™h_­³nd +(* +d©a +, * +Ý_func +, * +­³nd_func +, cÚ¡ * +t™Ë +); + +60  +_gl_pÝup_ü—‹_lÚg´es£d_®bum +(* +d©a +, * +Ý_func +, * +®bum_Çme +); + +61  +_gl_pÝup_ü—‹_lÚg´es£d_thumb +(* +d©a +, * +Ý_func +, * +fže_Çme +); + +62  +_gl_pÝup_ü—‹_lÚg´es£d_®bum_w™h_­³nd +(* +d©a +, * +Ý_func +, * +­³nd_func +, cÚ¡ * +t™Ë +); + +63  +_gl_pÝup_add_bu‰Ús +(* +d©a +, cÚ¡ * +‹xt +, +Evas_Sm¬t_Cb + +cb_func +); + +64  +_gl_pÝup_add_block_ÿÎback +(* +d©a +); + +65  +_gl_li¡_pÝ_ü—‹ +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +, * +t™Ë +, * +fœ¡_‹xt +, * +£cÚd_‹xt +,  +¡©e_šdex +); + +66  +_gl_pÝup_ü—‹_cÝy_move +(* +d©a +, * +£l_cb +, * +cb_d©a +); + + @inc/widget/gl-progressbar.h + +18 #iâdeà +_GL_PROGRESSBAR_H_ + + +19  + #_GL_PROGRESSBAR_H_ + + + ) + +22  + #GL_FONT_STYLE_POP_S + "" + + ) + +23  + #GL_FONT_STYLE_POP_E + "" + + ) + +25  +gl_pb_add_pb¬_tim” +(* +d©a +); + +26  +gl_pb_make_th»ad_pb¬_wh“l +(* +d©a +, +Evas_Objeù + * +·»Á +, * +t™Ë +); + +27  +gl_pb_»äesh_th»ad_pb¬ +(* +d©a +,  +cur_út +,  +tÙ®_út +); + +28  +gl_pb_d–_pb¬ +(* +d©a +); + +29 +Evas_Objeù + * +gl_pb_make_pb¬ +(* +d©a +, Evas_Objeù * +·»Á +, * +¡©e +); + +30 +Evas_Objeù + * +_gl_pb_make_¶aû_pb¬ +(Evas_Objeù * +·»Á +); + + @inc/widget/gl-rotate-bg.h + +17 #ifdeà +_USE_ROTATE_BG + + +19 #iâdeà +_GL_ROTATE_BG_H_ + + +20  + #_GL_ROTATE_BG_H_ + + + ) + +22  + ~"g®Ëry.h +" + +24 +Evas_Objeù + * +_gl_rÙ©e_bg_add +(Evas_Objeù * +·»Á +, +boÞ + +b_´–ßd +); + +25  +_gl_rÙ©e_bg_£t_d©a +( +Evas_Objeù + * +bg +, * +d©a +); + +26  +_gl_rÙ©e_bg_g‘_d©a +( +Evas_Objeù + * +bg +, ** +d©a +); + +27  +_gl_rÙ©e_bg_£t_fže +( +Evas_Objeù + * +bg +, cÚ¡ * +fže +,  +w +,  +h +); + +28  +_gl_rÙ©e_bg_g‘_fže +( +Evas_Objeù + * +bg +, ** +fže +); + +29  +_gl_rÙ©e_bg_rÙ©e_image +( +Evas_Objeù + * +bg +,  +ܛÁ +); + +30  +_gl_rÙ©e_bg_add_image +( +Evas_Objeù + * +bg +,  +w +,  +h +); + +31  +_gl_rÙ©e_bg_£t_image_fže +( +Evas_Objeù + * +bg +, cÚ¡ * +fže +); + + @inc/widget/gl-thumb.h + +18 #iâdeà +_GL_THUMB_H_ + + +19  + #_GL_THUMB_H_ + + + ) + +21  + ~"gl-d©a.h +" + +23  + #GL_GENGRID_ITEM_STYLE_THUMBNAIL + "g®Ëry/thumbǞ_v›w" + + ) + +24  + #GL_GENGRID_ITEM_STYLE_DATE + "g®Ëry/d©e_v›w" + + ) + +25  + #GL_THUMB_ICON + "–m.sw®low.icÚ" + + ) + +26  + #GL_THUMB_CHECKBOX + "–m.sw®low.check" + + ) + +27  + #GL_THUMB_MODE + "–m.sw®low.mode" + + ) + +28  + #GL_THUMB_YEAR + "y—r" + + ) + +29  + #GL_THUMB_MONTH + "mÚth" + + ) + +30  + #GL_CHECKBOX_STYLE_THUMB + "g®Ëry/thumbs" + + ) + +32  + e_gl_cm_mode_t + { + +33 + mGL_CM_MODE_NORMAL + = 0, + +34 + mGL_CM_MODE_PANORAMA + = 1, + +35 + mGL_CM_MODE_SOUND + = 2, + +36 + mGL_CM_MODE_ANIMATE + = 3, + +37 + mGL_CM_MODE_BEST + = 4, + +38 + mGL_CM_MODE_FB + = 5, + +39 + mGL_CM_MODE_VOICE_REC + = 10, + +40 + mGL_CM_MODE_BURSTSHOT + = 11, + +41 + mGL_CM_MODE_MAX +, + +42 } + tgl_cm_mode_e +; + +44 +Evas_Objeù + * +_gl_thumb_show_image +(Evas_Objeù * +obj +, * +·th +,  +ܛÁ +, + +45  +w +,  +h +,  +zoom_Ëv– +); + +46 +Evas_Objeù + * +_gl_thumb_show_bur¡shÙ +(Evas_Objeù * +obj +, * +·th1 +, + +47 * +·th2 +, * +·th3 +, + +48  +ܛÁ +,  +w +,  +h +, + +49  +zoom_Ëv– +); + +50 +Evas_Objeù + * +_gl_thumb_show_video +(Evas_Objeù * +obj +, * +·th +, + +51  +v_dur +,  +w +,  +h +, + +52  +zoom_Ëv– +); + +53 +Evas_Objeù + * +_gl_thumb_show_checkbox +(Evas_Objeù * +obj +, +boÞ + +checked +, + +54 +Evas_Sm¬t_Cb + +func +, cÚ¡ * +d©a +); + +55 +Evas_Objeù + * +_gl_thumb_show_mode +(Evas_Objeù * +obj +, +gl_cm_mode_e + +mode +); + +56 +Evas_Objeù + * +_gl_thumb_add_g’grid +(Evas_Objeù * +·»Á +); + +57  +_gl_thumb_upd©e_g’grid +( +Evas_Objeù + * +v›w +); + +58  +_gl_thumb_£t_size +(* +d©a +, +Evas_Objeù + * +v›w +, * +size_w +, * +size_h +); + +59  +_gl_thumb_¥l™_£t_size +(* +d©a +, +Evas_Objeù + * +v›w +); + +60 +boÞ + +_gl_thumb_š£¹_d©e +(* +d©a +, +Evas_Objeù + * +·»Á +); + + @inc/widget/gl-tile.h + +18 #iâdeà +_GL_TILE_H_ + + +19  + #_GL_TILE_H_ + + + ) + +21  + ~"gl-d©a.h +" + +23  + #GL_TILE_ICON + "–m.sw®low.icÚ" + + ) + +24  + #GL_TILE_CHECKBOX + "–m.sw®low.check" + + ) + +25  + #GL_TILE_CHECKBOX_GRID + "–m.sw®low.check_grid" + + ) + +26  + #GL_TILE_TYPE_ICON + "–m.sw®low.ty³_icÚ" + + ) + +27  + #GL_TILE_SD_ICON + "–m.sw®low.sd_icÚ" + + ) + +28  + #GL_TILE_PABR + "–m.sw®low.´og»ssb¬" + + ) + +29  + #GL_TILE_DIM + "–m.sw®low.dim" + + ) + +31  + #GL_GENGRID_STYLE_ALBUM_VIEW + "g®Ëry/®bums_v›w" + + ) + +32  + #GL_GENGRID_STYLE_ALBUM_SPLIT_VIEW + "g®Ëry/®bums_¥l™_v›w" + + ) + +35  + e_gl_tže_ty³ + { + +36 + mGL_TILE_TYPE_NONE +, + +37 + mGL_TILE_TYPE_MMC_STORAGE +, + +38 + mGL_TILE_TYPE_CAMERA +, + +39 + mGL_TILE_TYPE_DOWNLOAD +, + +40 + mGL_TILE_TYPE_FOLDER +, + +41 } + tgl_tže_ty³ +; + +43 (* + tbg_fže_£t_cb +è( + tEvas_Objeù + * + tbg +, * + td©a +); + +45 +Evas_Objeù + * + `_gl_tže_show_·¹_icÚ +(Evas_Objeù * +obj +, cÚ¡ * +·¹ +, + +46 +bg_fže_£t_cb + +func +, * +d©a +); + +47 +Evas_Objeù + * + `_gl_tže_show_·¹_dim +(Evas_Objeù * +obj +); + +48 +Evas_Objeù + * + `_gl_tže_show_·¹_checkbox_grid +(Evas_Objeù * +obj +, +boÞ + +checked +, + +49 +Evas_Sm¬t_Cb + +func +, + +50 cÚ¡ * +d©a +); + +51 +Evas_Objeù + * + `_gl_tže_show_·¹_checkbox +(Evas_Objeù * +obj +, +boÞ + +checked +, + +52 +Evas_Sm¬t_Cb + +func +, cÚ¡ * +d©a +); + +53 +Evas_Objeù + * + `_gl_tže_show_·¹_»Çme +(Evas_Objeù * +obj +, +Evas_Sm¬t_Cb + +func +, + +54 cÚ¡ * +d©a +); + +55 +Evas_Objeù + * + `_gl_tže_show_·¹_ty³_icÚ +(Evas_Objeù * +obj +,  +¢s_ty³ +); + +56  + `_gl_tže_g‘_mtime +( +time_t + * +mtime1 +,ime_ˆ* +mtime2 +, * +buf +,  +max_Ën +); + +57 +Evas_Objeù + * + `_gl_tže_add_g’grid +(Evas_Objeù * +·»Á +); + +58  + `_gl_tže_upd©e_™em_size +(* +d©a +, +Evas_Objeù + * +grid +, +boÞ + +b_upd©e +); + +59 +Evas_Objeù + * + `_gl_tže_add_ge¡u» +(* +d©a +, Evas_Objeù * +·»Á +); + + @res/black_theme/edc/gallery-edc-res.h + +18  + #GL_RES_IMG +( +image_Çme +è +image +: image_Çm +COMP + + + ) + +23  + #GALLERY_EDC_IMAGE_NOCONTENTS_PIC + "T01_nocڋÁs_videos.²g" + + ) + +26  + #GALLERY_EDC_IMAGE_PLACES_MARKER1 + "T01_¶aûs_m¬k”_01.²g" + + ) + +29  + #GALLERY_EDC_IMAGE_BUTTON_REVEAL + "00_bu‰Ú_»v—l.²g" + + ) + +30  + #GALLERY_EDC_IMAGE_BUTTON_REVEAL_PRESS + "00_bu‰Ú_»v—l_´ess.²g" + + ) + +31  + #GALLERY_EDC_IMAGE_BTN_CIRCLE_BG_NORMAL + "T01_bu‰Ú_cœþe_bg_nÜm®.²g" + + ) + +32  + #GALLERY_EDC_IMAGE_BTN_CIRCLE_BG_PRESS + "T01_bu‰Ú_cœþe_bg_nÜm®_´ess.²g" + + ) + +35  + #GALLERY_EDC_IMAGE_OS_LEFT + "00_ov”süÞlšg_Ëá.²g" + + ) + +36  + #GALLERY_EDC_IMAGE_OS_RIGHT + "00_ov”süÞlšg_right.²g" + + ) + +39  + #GALLERY_EDC_IMAGE_EDIT_EFFECT_BG + "T01_ed™l_efãù.²g" + + ) + +40  + #GALLERY_EDC_IMAGE_ALBUM_BG + "T01_®bum_fÞd”_bg.²g" + + ) + +43  + #GALLERY_EDC_IMAGE_BUTTON_PLAY + "T01_bŠ_¶ay.²g" + + ) + +44  + #GALLERY_EDC_IMAGE_BUTTON_VIDEO_PLAY + "T01_video_¶ay.²g" + + ) + +45  + #GALLERY_EDC_IMAGE_BUSTSHOT + "T01_thumbs_bu¡shÙ_bg.²g" + + ) + +46  + #GALLERY_EDC_IMAGE_THUMBS_BG_FOCUS + "00_thumbs_bg_focus.²g" + + ) + +47  + #GALLERY_EDC_IMAGE_BADGE_BG + "00_badge_bg.²g" + + ) + +50  + #GALLERY_EDC_IMAGE_POPUP_SCROLL + "00_pÝup_süÞl.²g" + + ) + +51  + #GALLERY_EDC_IMAGE_PLACES_THUMB_BG + "T01_¶aûs_thumbǞ_bg.²g" + + ) + +56  + #GALLERY_EDC_IMAGE_CONTROL_TABBAR_BG + "00_wš£t_t™Ë_bb¬_bg.²g" + + ) + +59  + #GALLERY_EDC_IMAGE_BTN_GRIDVIEW + "T01_bubbË_icÚ_gridv›w.²g" + + ) + +60  + #GALLERY_EDC_IMAGE_BTN_FOOTSTEPS + "T01_bubbË_icÚ_foÙ¡•s.²g" + + ) + +62  + #GALLERY_EDC_IMAGE_BTN_CIRCLE_BG + "T01_®bum_ed™_»Çme_bg.²g" + + ) + +63  + #GALLERY_EDC_IMAGE_BTN_CIRCLE_BG_PRESSED + "T01_®bum_ed™_»Çme_bg_´ess.²g" + + ) + +64  + #GALLERY_EDC_IMAGE_BTN_RENAME + "T01_®bum_ed™_»Çme.²g" + + ) + +65  + #GALLERY_EDC_IMAGE_BTN_RENAME_PRESS + "T01_®bum_ed™_»Çme_´ess.²g" + + ) + +67  + #GALLERY_EDC_SOUND_TOUCH_30MS + "S_Touch_30ms.wav" + + ) + +70  + #GALLERY_EDC_IMAGE_CHECK_BG + "T01_checkbox.²g" + + ) + +71  + #GALLERY_EDC_IMAGE_CHECK_ALBUM_BG + "T01_®bum_ed™_check_bg.²g" + + ) + +72  + #GALLERY_EDC_IMAGE_CHECK_BG_DIM + "00_check_bg_dim.²g" + + ) + +73  + #GALLERY_EDC_IMAGE_CHECK_BG_CHECKING + "T01_check.²g" + + ) + +74  + #GALLERY_EDC_IMAGE_CHECK_ALBUM_EDIT_CHECKON + "T01_®bum_ed™_check_Ú.²g" + + ) + +77  + #GALLERY_EDC_IMAGE_EDITFIELD_CLEAR + "00_Ed™F›ld_þ—r.²g" + + ) + +78  + #GALLERY_EDC_IMAGE_SEARCH_EDIT_FIELD_BG + "00_£¬ch_ed™_f›ld_bg.²g" + + ) + +79  + #GALLERY_EDC_IMAGE_SEARCH_EDIT_FIELD_BG_FOCUS + "00_£¬ch_ed™_f›ld_bg_focus.²g" + + ) + +82  + #GALLERY_EDC_IMAGE_LIST_PROGRESS_BG + "00_wš£t_li¡_´og»ss_bg.²g" + + ) + +83  + #GALLERY_EDC_IMAGE_LIST_PROGRESS_BAR + "T01_g®Ëry_®bum_´og»ss_b¬.²g" + + ) + +86  + #GALLERY_EDC_IMAGE_GIRD_OS_TOP + "00_grid_ov”süÞlšg_tÝ.²g" + + ) + +87  + #GALLERY_EDC_IMAGE_GIRD_OS_BOT + "00_grid_ov”süÞlšg_bÙtom.²g" + + ) + +88  + #GALLERY_EDC_IMAGE_GIRD_OS_LEFT + "00_grid_ov”süÞlšg_Ëá.²g" + + ) + +89  + #GALLERY_EDC_IMAGE_GIRD_OS_RIGHT + "00_grid_ov”süÞlšg_right.²g" + + ) + +92  + #GALLERY_EDC_IMAGE_POPUP_SCROLL_V + "00_pÝup_süÞl_v.²g" + + ) + +93  + #GALLERY_EDC_IMAGE_POPUP_SCROLL_H + "00_pÝup_süÞl_h.²g" + + ) + +94  + #GALLERY_EDC_IMAGE_POPUP_DORPDOWN_BG + "00_pÝup_drÝdown_bg.²g" + + ) + +95  + #GALLERY_EDC_IMAGE_MORE_POPUP_PRESS + "00_mÜe_pÝup_´ess.²g" + + ) + +96  + #GALLERY_EDC_IMAGE_POPUP_OVERSCROLLING_TOP + "00_pÝup_ov”süÞlšg_tÝ.²g" + + ) + +97  + #GALLERY_EDC_IMAGE_POPUP_OVERSCROLLING_BOTTOM + "00_pÝup_ov”süÞlšg_bÙtom.²g" + + ) + +98  + #GALLERY_EDC_IMAGE_POPUP_OVERSCROLLING_RIGHT + "00_pÝup_ov”süÞlšg_right.²g" + + ) + +99  + #GALLERY_EDC_IMAGE_POPUP_OVERSCROLLING_LEFT + "00_pÝup_ov”süÞlšg_Ëá.²g" + + ) + +100  + #GALLERY_EDC_IMAGE_OS_TOP + "00_ov”süÞlšg_tÝ.²g" + + ) + +103  + #GALLERY_EDC_IMAGE_TITLE_BG + "00_t™Ë_bg.²g" + + ) + +104  + #GALLERY_EDC_IMAGE_POPUP_DROPDOWN_TITLE_BG + "00_pÝup_drÝdown_t™Ë_bg.²g" + + ) + +105  + #GALLERY_EDC_IMAGE_POPUP_DROPDOWN_TITLE_BG_PRESS + "00_pÝup_drÝdown_t™Ë_bg_´ess.²g" + + ) + +106  + #GALLERY_EDC_IMAGE_POPUP_DROPDOWN_TITLE_BG_FOCUS + "00_pÝup_drÝdown_t™Ë_bg_focus.²g" + + ) + +107  + #GALLERY_EDC_IMAGE_BUTTON_ICON_ARROW_PRESS + "00_bu‰Ú_icÚ_¬row_´ess.²g" + + ) + +108  + #GALLERY_EDC_IMAGE_BUTTON_ICON_ARROW + "00_bu‰Ú_icÚ_¬row.²g" + + ) + +109  + #GALLERY_EDC_IMAGE_BACK_BUTTON + "T01_icÚ_back.²g" + + ) + +110  + #GALLERY_EDC_DELETE_SHOW_IMAGE_BG + "g®Ëry_icÚ_cڏš”.²g" + + ) + +111  + #GALLERY_EDC_DELETE_SHOW_IMAGE + "g®Ëry_icÚ_fuÎ.²g" + + ) + +112  + #GALLERY_EDC_SD_CARD_ICON + "T01_®bum_icÚ_sd_ÿrd.²g" + + ) + + @src/2dview/gl-albums-edit.c + +18  + ~<”ºo.h +> + +19  + ~"gl-®bums.h +" + +20  + ~"gl-®bums-ed™.h +" + +21  + ~"gl-®bums-»Çme.h +" + +22  + ~"gl-debug.h +" + +23  + ~"gl-¡ršgs.h +" + +24  + ~"gl-ui-utž.h +" + +25  + ~"gl-utž.h +" + +26  + ~"gl-d©a.h +" + +27  + ~"gl-icÚs.h +" + +28  + ~"gl-cڌÞb¬.h +" + +29  + ~"gl-ùxpÝup.h +" + +30  + ~"gl-bu‰Ú.h +" + +31  + ~"gl-nÙify.h +" + +32  + ~"gl-pÝup.h +" + +33  + ~"gl-tže.h +" + +34  + ~"gl-ext-exec.h +" + +44  + $__gl_®bums_ed™_upd©e_check_¡©e +(* +d©a +, + +45 +gl_þu¡” + * +®bum_™em +, + +46 +Evas_Objeù + * +check_obj +, + +47 +boÞ + +b_ck_box +) + +49 + `GL_CHECK_VAL +( +®bum_™em +, -1); + +50 + `GL_CHECK_VAL +( +®bum_™em +-> +þu¡” +, -1); + +51 + `GL_CHECK_VAL +( +®bum_™em +-> +þu¡” +-> +uuid +, -1); + +52 + `GL_CHECK_VAL +( +check_obj +, -1); + +53 + `GL_CHECK_VAL +( +d©a +, -1); + +54 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +55 + `gl_dbg +("S–eù checkbox[1]/®bum_cov”[0]: %d.", +b_ck_box +); + +58 +®bum_™em +-> +checked + = !album_item->checked; + +59 + `gl_sdbg +("®bum (%sècheck s‹: %d", +®bum_™em +-> +þu¡” +-> +di¥Ïy_Çme +, + +60 +®bum_™em +-> +checked +); + +66 +Evas_Objeù + * +ck + = +NULL +; + +67 ià( +b_ck_box + =ð +çl£ +) + +68 +ck + = + `–m_objeù_™em_·¹_cڋÁ_g‘ +( +®bum_™em +-> +™em +, + +69 +GL_TILE_CHECKBOX +); + +71 +ck + = + `–m_objeù_™em_·¹_cڋÁ_g‘ +( +®bum_™em +-> +™em +, + +72 +GL_TILE_CHECKBOX_GRID +); + +73 + `–m_check_¡©e_£t +( +ck +, +®bum_™em +-> +checked +); + +75 ià( +®bum_™em +-> +checked +) { + +76 + `gl_sdbg +("Aµ’d:%s, id:%s", +®bum_™em +-> +þu¡” +-> +di¥Ïy_Çme +, + +77 +®bum_™em +-> +þu¡” +-> +uuid +); + +78 + `_gl_d©a_®bums_£Ëùed_li¡_­³nd +( +ad +, +®bum_™em +); + +80 + `gl_sdbg +("Remove:%s, id:%s", +®bum_™em +-> +þu¡” +-> +di¥Ïy_Çme +, + +81 +®bum_™em +-> +þu¡” +-> +uuid +); + +82 + `_gl_d©a_®bums_£Ëùed_li¡_»move +( +ad +, +®bum_™em +); + +86  +út + = + `_gl_d©a_g‘_®bums_£Ëùed_út +( +ad +); + +87 + `_gl_nÙify_check_£ÏÎ +( +ad +,‡d-> +ù¾šfo +. +nf_™ +, + +88 +ad +-> +®bumšfo +. +–i¡ +-> +ed™_út +, +út +); + +90 + `_gl_ui_upd©e_Çvi_t™Ë_‹xt +( +ad +-> +ù¾šfo +. +nf_™ +, +út +, +çl£ +); + +92 + } +} + +94  + $__gl_®bums_ed™_check_chªged +(* +d©a +, +Evas_Objeù + * +obj +, + +95 * +ei +) + +97 + `GL_CHECK +( +obj +); + +98 + `GL_CHECK +( +d©a +); + +99 +gl_þu¡” + * +®bum_™em + = (gl_þu¡” *) +d©a +; + +100 + `GL_CHECK +( +®bum_™em +-> +ad +); + +101 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +®bum_™em +->ad; + +102 + `gl_dbg +(""); + +104 ià( + `gl_g‘_v›w_mode +( +ad +è!ð +GL_VIEW_ALBUMS_EDIT +) { + +105 + `gl_dbgE +("Wrong view mode!"); + +112 + `__gl_®bums_ed™_upd©e_check_¡©e +( +ad +, +®bum_™em +, +obj +, +Œue +); + +113 + } +} + +115  + $__gl_®bums_ed™_check_grid_chªged +(* +d©a +, +Evas_Objeù + * +obj +, + +116 * +ei +) + +118 + `GL_CHECK +( +obj +); + +119 + `GL_CHECK +( +d©a +); + +120 +gl_þu¡” + * +®bum_™em + = (gl_þu¡” *) +d©a +; + +121 + `GL_CHECK +( +®bum_™em +-> +ad +); + +122 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +®bum_™em +->ad; + +123 + `gl_dbg +(""); + +125 ià( + `gl_g‘_v›w_mode +( +ad +è!ð +GL_VIEW_ALBUMS_EDIT +) { + +126 + `gl_dbgE +("Wrong view mode!"); + +133 + `__gl_®bums_ed™_upd©e_check_¡©e +( +ad +, +®bum_™em +, +obj +, +çl£ +); + +134 + } +} + +136  + $__gl_®bums_ed™_»Çme +( +gl_þu¡” + * +®bum +) + +138 + `GL_CHECK +( +®bum +); + +139 + `GL_CHECK +( +®bum +-> +ad +); + +140 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +®bum +->ad; + +142 ià( + `_gl_®bums_»Çme_ü—‹_v›w +( +®bum +-> +ad +,‡lbum) == 0) + +143 +ad +-> +®bumšfo +. +£Ëùed + = +®bum +; + +144 + } +} + +146  + $__gl_®bums_ed™_»Çme_bŠ_cb +(* +d©a +, +Evas_Objeù + * +obj +, + +147 * +ev’t_šfo +) + +149 + `gl_dbg +(""); + +150 + `GL_CHECK +( +d©a +); + +151 +gl_þu¡” + * +®bum_™em + = (gl_þu¡” *) +d©a +; + +152 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +®bum_™em +->ad; + +153 + `_gl_ùxpÝup_d– +( +ad +); + +155 + `_gl_ui_§ve_süÞËr_pos +( +ad +-> +®bumšfo +. +v›w +); + +156 + `__gl_®bums_ed™_»Çme +( +®bum_™em +); + +157 + } +} + +159  + $__gl_®bums_ed™_d–_cb +(* +d©a +, +Evas_Objeù + * +obj +, + +160 * +ei +) + +162 + `–m_toÞb¬_™em_£Ëùed_£t +(( +Elm_Objeù_I‹m + *) +ei +, +EINA_FALSE +); + +163 + `GL_CHECK +( +d©a +); + +164 + `gl_dbg +(""); + +166 ià(( + `gl_g‘_v›w_mode +( +d©a +è=ð +GL_VIEW_ALBUMS_EDIT +)) { + +167 ià( + `_gl_d©a_g‘_®bums_£Ëùed_út +( +d©a +) == 0) { + +168 + `gl_dbgW +("No‡lbums selected!"); + +169 + `gl_pÝup_ü—‹_pÝup +( +d©a +, +GL_POPUP_NOBUT +, + +170 +GL_STR_NO_ALBUMS_SELECTED +); + +173 + `_gl_pÝup_ü—‹_d– +( +d©a +, +GL_POPUP_DEL_ALBUM +, + +174 +_gl_d©a_g‘_®bums_£Ëùed_út +, + +175 +_gl_d–_®bums +, +d©a +); + +177 + `gl_dbgE +("Unknow mode!"); + +179 + } +} + +181  + $__gl_®bums_ed™_ÿnûl_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +183 + `–m_toÞb¬_™em_£Ëùed_£t +(( +Elm_Objeù_I‹m + *) +ei +, +EINA_FALSE +); + +184 + `GL_CHECK +( +d©a +); + +185 + `gl_dbg +(""); + +186 + `_gl_®bums_chªge_mode +( +d©a +, +çl£ +); + +187 + } +} + +189 #ifdeà +GL_EXTENDED_FEATURES + + +190  + $__gl_®bums_ed™_g‘_út +(* +d©a +, +gl_medŸ_s + * +™em +) + +192 + `GL_CHECK_VAL +( +™em +, -1); + +193 + `GL_CHECK_VAL +( +™em +-> +fže_u¾ +, -1); + +194 + `GL_CHECK_VAL +( +d©a +, -1); + +196 * +couÁ + = (*) +d©a +; + +197 * +couÁ + += 1; + +199 + } +} + +201  + $__gl_®bums_ed™_g‘_·th_cb +(* +d©a +, ** +fžes +) + +203 + `GL_CHECK_VAL +( +d©a +, 0); + +204 + `GL_CHECK_VAL +( +fžes +, 0); + +205  + `_gl_g‘_®bum_images_·th +( +d©a +, +fžes +, +çl£ +); + +206 + } +} + +208  + $_gl_®bums_ed™_sh¬e +(* +d©a +) + +210 + `GL_CHECK +( +d©a +); + +211 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +212 + `gl_dbg +(""); + +214 ià( +ad +-> +ugšfo +. +ug + ||‡d->ugšfo. +b_­p_ÿÎed +) { + +215 + `gl_dbgW +("UG or APP is‡lready†oaded!"); + +219  +út + = 0; + +221 +út + = + `_gl_d©a_g‘_®bums_£Ëùed_út +( +ad +); + +222 ià( +út + == 0) { + +223 + `gl_dbgW +("No‡lbums selected!"); + +224 + `gl_pÝup_ü—‹_pÝup +( +ad +, +GL_POPUP_NOBUT +, + +225 +GL_STR_NO_ALBUMS_SELECTED +); + +229 ià( + `_gl_d©a_is_®bums_£Ëùed_em±y +( +ad +)) { + +230 + `gl_dbgW +("Nohumbs selected!"); + +231 + `gl_pÝup_ü—‹_pÝup +( +ad +, +GL_POPUP_NOBUT +, + +232 +GL_STR_NO_FILES_SELECTED +); + +236  +medŸ_út + = 0; + +237 + `_gl_d©a_g‘_®bums_£Ëùed_fžes +( +d©a +, +__gl_®bums_ed™_g‘_út +, + +238 (*)(& +medŸ_út +)); + +239 + `gl_dbg +("medŸ_út: %d", +medŸ_út +); + +241 ià( +medŸ_út + == 0) { + +242 + `gl_dbgW +("Nohumbs selected!"); + +243 + `gl_pÝup_ü—‹_pÝup +( +ad +, +GL_POPUP_NOBUT +, + +244 +GL_STR_NO_FILES_SELECTED +); + +247 + `_gl_ext_Ïunch_sh¬e +( +d©a +, +medŸ_út +, + +248 +__gl_®bums_ed™_g‘_·th_cb +); + +249 + } +} + +251  + $__gl_®bums_ed™_sh¬e_cb +(* +d©a +, +Evas_Objeù + * +obj +, + +252 * +ei +) + +254 + `–m_toÞb¬_™em_£Ëùed_£t +(( +Elm_Objeù_I‹m + *) +ei +, +EINA_FALSE +); + +255 + `GL_CHECK +( +d©a +); + +256 + `_gl_®bums_ed™_sh¬e +( +d©a +); + +258 + `_gl_®bums_chªge_mode +( +d©a +, +çl£ +); + +259 + } +} + +263  + $__gl_®bums_ed™_£ÏÎ_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +265 + `GL_CHECK +( +d©a +); + +266 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +267  +™em_út + = 0; + +268  +£l_®l_út + = 0; + +270 +ad +-> +£lšfo +. +ck_¡©e + = !ad->selinfo.ck_state; + +271 ià( +ad +-> +£lšfo +. +£Ëù®l_ck +) { + +272 + `–m_check_¡©e_£t +( +ad +-> +£lšfo +. +£Ëù®l_ck +,‡d->£lšfo. +ck_¡©e +); + +274  +¡©e + = +ad +-> +£lšfo +. +ck_¡©e +; + +275 + `gl_dbg +("Checkbox s‹: %d", +¡©e +); + +277 +gl_þu¡” + * +®bum + = +NULL +; + +278 +Elm_Objeù_I‹m + * +fœ¡_™ + = +NULL +; + +279 +Elm_Objeù_I‹m + * +Ãxt_™ + = +NULL +; + +280 +Elm_Objeù_I‹m + * +Ï¡_™ + = +NULL +; + +281 +fœ¡_™ + = + `–m_g’grid_fœ¡_™em_g‘ +( +ad +-> +®bumšfo +. +v›w +); + +282 +Ï¡_™ + = + `–m_g’grid_Ï¡_™em_g‘ +( +ad +-> +®bumšfo +. +v›w +); + +283  +fœ¡_™ +) { + +284 +®bum + = +NULL +; + +285 +Ãxt_™ + = + `–m_g’grid_™em_Ãxt_g‘ +( +fœ¡_™ +); + +287 +®bum + = ( +gl_þu¡” + *) + `–m_objeù_™em_d©a_g‘ +( +fœ¡_™ +); + +288 ià( +®bum + =ð +NULL + ||‡lbum-> +þu¡” + == NULL) { + +289 + `gl_dbgE +("Invalid item data!"); + +291 +fœ¡_™ + = +Ãxt_™ +; + +295 ià( +®bum +-> +þu¡” +-> +ty³ + >ð +GL_STORE_T_ALL +) { + +296 + `gl_dbgW +("Uneditable‡lbum!"); + +298 +fœ¡_™ + = +Ãxt_™ +; + +302 +™em_út +++; + +304 ià( +®bum +-> +checked + =ð +¡©e +) { + +306 +fœ¡_™ + = +Ãxt_™ +; + +311 +®bum +-> +checked + = +¡©e +; + +313 ià( +¡©e + =ð +EINA_TRUE +) + +314 + `_gl_d©a_®bums_£Ëùed_li¡_­³nd +( +ad +, +®bum +); + +316 + `_gl_d©a_®bums_£Ëùed_li¡_»move +( +ad +, +®bum +); + +318 ià( +Ï¡_™ + =ð +fœ¡_™ +) { + +319 + `gl_dbg +("Update done!"); + +322 +fœ¡_™ + = +Ãxt_™ +; + +326 + `_gl_ui_upd©e_»®ized_grid_ck +( +ad +-> +®bumšfo +. +v›w +, + +327 +GL_TILE_CHECKBOX_GRID +, +GL_TILE_CHECKBOX +, + +328 +¡©e +); + +331 ià( +¡©e + =ð +EINA_FALSE +) + +332 +£l_®l_út + = 0; + +334 +£l_®l_út + = +™em_út +; + +336 + `_gl_nÙify_check_£ÏÎ +( +ad +,‡d-> +ù¾šfo +. +nf_™ +, +™em_út +, +£l_®l_út +); + +338 + `_gl_ui_upd©e_Çvi_t™Ë_‹xt +( +ad +-> +ù¾šfo +. +nf_™ +, +£l_®l_út +, +çl£ +); + +339 + } +} + +341  + $__gl_®bums_ed™_ùxpÝup_­³nd +(* +d©a +, +Evas_Objeù + * +·»Á +) + +343 + `gl_dbg +(""); + +344 + `GL_CHECK_VAL +( +·»Á +, -1); + +345 + `GL_CHECK_VAL +( +d©a +, -1); + +346 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +347 + `GL_CHECK_VAL +( +ad +-> +®bumšfo +. +£l_–i¡ +, -1); + +348 +gl_þu¡” + * +®bum_™em + = +NULL +; + +349 +®bum_™em + = ( +gl_þu¡” + *) + `eša_li¡_Áh +( +ad +-> +®bumšfo +. +£l_–i¡ +, 0); + +350 + `GL_CHECK_VAL +( +®bum_™em +, -1); + +353 + `_gl_ùxpÝup_­³nd +( +·»Á +, +GL_STR_ID_RENAME +, + +354 +__gl_®bums_ed™_»Çme_bŠ_cb +, +®bum_™em +); + +356 + } +} + +358  + $__gl_®bums_ed™_mÜe_bŠ_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +360 + `gl_dbgE +("more button clicked"); + +361 + `GL_CHECK +( +d©a +); + +362 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +364 ià( +GL_GRID_EDIT + !ð +ad +-> +®bumšfo +. +b_sh¬e_mode +) + +366 + `GL_CHECK +( +ad +-> +®bumšfo +. +£l_–i¡ +); + +367 +gl_þu¡” + * +®bum_™em + = +NULL +; + +368 +®bum_™em + = ( +gl_þu¡” + *) + `eša_li¡_Áh +( +ad +-> +®bumšfo +. +£l_–i¡ +, 0); + +369 + `GL_CHECK +( +®bum_™em +); + +370 ià(1 !ð + `_gl_d©a_g‘_®bums_£Ëùed_út +( +ad +) || + +371 +®bum_™em +-> +þu¡” +-> +ty³ + > +GL_STORE_T_MMC + || + +372 + `_gl_d©a_is_ÿm”a_®bum +( +®bum_™em +-> +þu¡” +)) + +374 + `_gl_ùxpÝup_ü—‹ +( +d©a +, +obj +, +__gl_®bums_ed™_ùxpÝup_­³nd +); + +375 + } +} + +377 +Evas_Objeù + * + $_gl_®bums_ed™_add_cڋÁ +(* +d©a +, +Evas_Objeù + * +obj +, + +378 cÚ¡ * +·¹ +) + +380 + `GL_CHECK_NULL +( +·¹ +); + +381 + `GL_CHECK_NULL +( +d©a +); + +382 +gl_þu¡” + * +®bum + = (gl_þu¡” *) +d©a +; + +383 + `GL_CHECK_NULL +( +®bum +-> +þu¡” +); + +384 +Evas_Objeù + * +_obj + = +NULL +; + +386 ià(! + `g_¡rcmp0 +( +·¹ +, +GL_TILE_CHECKBOX_GRID +)) { + +387 ià( +®bum +-> +þu¡” +-> +ty³ + >ð +GL_STORE_T_ALL +) + +388  +NULL +; + +390 +_obj + = + `_gl_tže_show_·¹_checkbox_grid +( +obj +, +®bum +-> +checked +, + +391 +__gl_®bums_ed™_check_grid_chªged +, + +392 +d©a +); + +393 } ià(! + `g_¡rcmp0 +( +·¹ +, +GL_TILE_CHECKBOX +)) { + +394 ià( +®bum +-> +þu¡” +-> +ty³ + >ð +GL_STORE_T_ALL +) + +395  +NULL +; + +397 +_obj + = + `_gl_tže_show_·¹_checkbox +( +obj +, +®bum +-> +checked +, + +398 +__gl_®bums_ed™_check_chªged +, + +399 +d©a +); + +400 } ià(! + `g_¡rcmp0 +( +·¹ +, +GL_TILE_DIM +) && + +401 +®bum +-> +þu¡” +-> +ty³ + >ð +GL_STORE_T_ALL +) { + +402 +_obj + = + `_gl_tže_show_·¹_dim +( +obj +); + +405  +_obj +; + +406 + } +} + +412  + $_gl_®bums_ed™_add_bŠs +(* +d©a +, +Evas_Objeù + * +·»Á +) + +414 + `gl_dbg +("GL_NAVI_ALBUMS_EDIT"); + +415 + `GL_CHECK_VAL +( +·»Á +, -1); + +416 + `GL_CHECK_VAL +( +d©a +, -1); + +417 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +418 +Elm_Objeù_I‹m + * +nf_™ + = + `–m_Çviäame_tÝ_™em_g‘ +( +·»Á +); + +419 + `GL_CHECK_VAL +( +nf_™ +, -1); + +421 + `_gl_ui_þ—r_bŠs +( +d©a +); + +423 +Evas_Objeù + * +bŠ + = +NULL +; + +425 +bŠ + = + `_gl_but_ü—‹_but +( +·»Á +, +NULL +, NULL, +GL_BUTTON_STYLE_NAVI_MORE +, + +426 +__gl_®bums_ed™_mÜe_bŠ_cb +, +d©a +); + +427 + `GL_CHECK_VAL +( +bŠ +, -1); + +428 + `–m_objeù_™em_·¹_cڋÁ_£t +( +nf_™ +, +GL_NAVIFRAME_MORE +, +bŠ +); + +429 + `_gl_ui_di§bË_m’u +( +nf_™ +, +Œue +); + +431 +Evas_Objeù + * +bŠ1 + = + `–m_bu‰Ú_add +( +·»Á +); + +432 +Evas_Objeù + * +bŠ2 + = + `–m_bu‰Ú_add +( +·»Á +); + +433 + `GL_CHECK_VAL +( +bŠ1 +, -1); + +434 + `GL_CHECK_VAL +( +bŠ2 +, -1); + +436 + `–m_objeù_¡yË_£t +( +bŠ1 +, "naviframe/title_left"); + +437 + `–m_objeù_™em_·¹_cڋÁ_£t +( +ad +-> +ù¾šfo +. +nf_™ +, +GL_NAVIFRAME_TITLE_LEFT_BTN +, +bŠ1 +); + +438 + `_gl_ui_£t_Œª¦©e_¡r +( +bŠ1 +, +GL_STR_ID_CANCEL_CAP +); + +439 + `evas_objeù_sm¬t_ÿÎback_add +( +bŠ1 +, "þicked", +__gl_®bums_ed™_ÿnûl_cb +, +ad +); + +442 + `–m_objeù_¡yË_£t +( +bŠ2 +, "naviframe/title_right"); + +443 + `–m_objeù_™em_·¹_cڋÁ_£t +( +ad +-> +ù¾šfo +. +nf_™ +, +GL_NAVIFRAME_TITLE_RIGHT_BTN +, +bŠ2 +); + +444 + `_gl_ui_£t_Œª¦©e_¡r +( +bŠ2 +, +GL_STR_ID_DONE_CAP +); + +445 + `evas_objeù_sm¬t_ÿÎback_add +( +bŠ2 +, "þicked", +__gl_®bums_ed™_d–_cb +, +ad +); + +446 + `–m_objeù_di§bËd_£t +( +bŠ2 +, +EINA_TRUE +); + +449 +ad +-> +£lšfo +. +ck_¡©e + = +çl£ +; + +450 + `_gl_ui_add_£ÏÎ_ck +( +ad +-> +ù¾šfo +. +ù¾b¬_v›w_ly +, "select.all.area.check", "select.all.area.check", + +451 +__gl_®bums_ed™_£ÏÎ_cb +, +d©a +); + +453 + } +} + +455  + $_gl_®bums_ed™_upd©e_v›w +(* +d©a +) + +457 + `GL_CHECK_VAL +( +d©a +, -1); + +458 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +459 + `gl_dbg +(""); + +461 ià( + `gl_check_g®Ëry_em±y +( +d©a +) || + +462 +ad +-> +®bumšfo +. +–i¡ +-> +ed™_út + == 0) { + +464 + `gl_d–_šv®id_widg‘s +( +d©a +, +GL_INVALID_NONE +); + +465 + `gl_dbgW +("Noneƒditable‡lbums, show‡lbums view!"); + +466 + `_gl_®bums_ed™_pÝ_v›w +( +d©a +); + +470  +£l_út + = + `_gl_d©a_g‘_®bums_£Ëùed_út +( +d©a +); + +471  +šv®id_m + = +GL_INVALID_NONE +; + +473 ià( +£l_út + == 0) { + +475 + `gl_dbgW +("None‡lbums selected!"); + +477 + `_gl_®bums_ed™_di§bË_bŠs +( +d©a +, +Œue +); + +479 + `gl_d–_šv®id_widg‘s +( +d©a +, +šv®id_m +); + +483 + `_gl_®bums_ü—‹_™ems +( +d©a +, +ad +-> +®bumšfo +. +v›w +); + +485 + `_gl_nÙify_check_£ÏÎ +( +d©a +, +ad +-> +ù¾šfo +. +nf_™ +, + +486 +ad +-> +®bumšfo +. +–i¡ +-> +ed™_út +, +£l_út +); + +488 + `_gl_ui_upd©e_Çvi_t™Ë_‹xt +( +ad +-> +ù¾šfo +. +nf_™ +, +£l_út +, +çl£ +); + +490 + } +} + +492  + $_gl_®bums_ed™_pÝ_v›w +(* +d©a +) + +494 + `GL_CHECK_VAL +( +d©a +, -1); + +495 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +498 + `–m_Çviäame_™em_pÝ_to +( +ad +-> +ù¾šfo +. +nf_™ +); + +499 +ad +-> +®bumšfo +. +£Ëùed + = +NULL +; + +500 +ad +-> +®bumšfo +. +b_sh¬e_mode + = +GL_GRID_EDIT +; + +501 + `_gl_d©a_fš®ize_®bums_£Ëùed_li¡ +( +d©a +); + +503 + `gl_®bums_chªge_to_v›w +( +d©a +); + +504 + `_gl_®bums_check_bŠs +( +d©a +); + +506 + } +} + +508  + $_gl_®bums_ed™_upd©e_Ïng +(* +d©a +) + +510 + `GL_CHECK_VAL +( +d©a +, -1); + +511 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +512 + `GL_CHECK_VAL +( +ad +-> +ù¾šfo +. +nf_™ +, -1); + +515  +út + = + `_gl_d©a_g‘_®bums_£Ëùed_út +( +ad +); + +517 + `_gl_ui_upd©e_Çvi_t™Ë_‹xt +( +ad +-> +ù¾šfo +. +nf_™ +, +út +, +Œue +); + +519 + } +} + +523  + $_gl_®bums_ed™_di§bË_bŠs +(* +d©a +, +boÞ + +b_di§bË +) + +525 + `GL_CHECK_VAL +( +d©a +, -1); + +526 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +527 + `gl_dbg +("b_di§bË: %d", +b_di§bË +); + +529 ià(! +b_di§bË +) { + +531 + `_gl_ù¾_di§bË_™ems +( +ad +-> +ù¾šfo +. +nf_™ +, +çl£ +); + +533 + `_gl_ù¾_di§bË_™ems +( +ad +-> +ù¾šfo +. +nf_™ +, +Œue +); + +536 + } +} + + @src/2dview/gl-albums-edit.h + +18 #iâdeà +_GL_ALBUMS_EDIT_H_ + + +19  + #_GL_ALBUMS_EDIT_H_ + + + ) + +21  + ~ + +22  + ~"g®Ëry.h +" + +24 +Evas_Objeù + * +_gl_®bums_ed™_add_cڋÁ +(* +d©a +, Evas_Objeù * +obj +, + +25 cÚ¡ * +·¹ +); + +26  +_gl_®bums_ed™_add_bŠs +(* +d©a +, +Evas_Objeù + * +·»Á +); + +27  +_gl_®bums_ed™_upd©e_v›w +(* +d©a +); + +28  +_gl_®bums_ed™_pÝ_v›w +(* +d©a +); + +29  +_gl_®bums_ed™_upd©e_Ïng +(* +d©a +); + +30  +_gl_®bums_ed™_di§bË_bŠs +(* +d©a +, +boÞ + +b_di§bË +); + +31 #ifdeà +GL_EXTENDED_FEATURES + + +32  +_gl_®bums_ed™_sh¬e +(* +d©a +); + + @src/2dview/gl-albums-new.c + +18  + ~"gl-debug.h +" + +19  + ~"gl-fs.h +" + +20  + ~"gl-®bums-Ãw.h +" + +21  + ~"gl-’Œy.h +" + +22  + ~"gl-thumbs.h +" + +23  + ~"gl-ui-utž.h +" + +24  + ~"gl-utž.h +" + +25  + ~"gl-d©a.h +" + +26  + ~"gl-cڌÞb¬.h +" + +27  + ~"gl-ed™f›ld.h +" + +28  + ~"gl-pÝup.h +" + +29  + ~"gl-¡ršgs.h +" + +30  + ~"gl-fs.h +" + +31  + ~"gl-nÙify.h +" + +32  + ~"gl-fže-utž.h +" + +34  + $__gl_®bums_Ãw_pÝ_v›w +(* +d©a +) + +36 + `GL_CHECK_VAL +( +d©a +, -1); + +37 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +38 + `gl_dbg +(""); + +40  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +41 ià( +ad +-> +®bumšfo +. +b_Ãw_®bum +) { + +42 +ad +-> +®bumšfo +. +b_Ãw_®bum + = +çl£ +; + +43 } ià( +v›w_mode + =ð +GL_VIEW_THUMBS_EDIT +) { + +44 + `_gl_nÙify_check_£ÏÎ +( +ad +,‡d-> +gridšfo +. +nf_™ +, + +45 +ad +-> +gridšfo +. +couÁ +, + +46 + `_gl_d©a_£Ëùed_li¡_couÁ +( +ad +)); + +48 + `_gl_thumbs_upd©e_Ïb–_‹xt +( +ad +-> +gridšfo +. +nf_™ +, + +49 + `_gl_d©a_£Ëùed_li¡_couÁ +( +ad +), + +50 +çl£ +); + +54 + } +} + +57  +Eša_BoÞ + + $__gl_®bums_Ãw_pÝ_cb +(* +d©a +, +Elm_Objeù_I‹m + * +™ +) + +69 + `gl_dbg +(""); + +70 + `__gl_®bums_Ãw_pÝ_v›w +( +d©a +); + +71  +EINA_TRUE +; + +72 + } +} + +74  + $_gl_®bums_Ãw_ü—‹_v›w +(* +d©a +, * +Ý_func +) + +76 + `GL_CHECK_VAL +( +d©a +, -1); + +77 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +78 + `gl_dbg +(""); + +80 +ad +-> +’Œyšfo +. +mode + = +GL_ENTRY_NEW_ALBUM +; + +81 +ad +-> +’Œyšfo +. +Ý_cb + = +Ý_func +; + +83 ià( + `_gl_’Œy_ü—‹_v›w +( +d©a +, +NULL +, +GL_STR_ID_NEW_ALBUM +) < 0) { + +84 +ad +-> +’Œyšfo +. +mode + = +GL_ENTRY_NONE +; + +85 +ad +-> +’Œyšfo +. +Ý_cb + = +NULL +; + +89 +Evas_Objeù + * +’Œy + = + `_gl_ed™f›ld_g‘_’Œy +( +d©a +); + +90 + `GL_CHECK_VAL +( +’Œy +, -1); + +91 + `evas_objeù_d©a_£t +( +’Œy +, "gl_entry_process_cb_key", + +92 +_gl_®bums_Ãw_´oûss +); + +93 + `evas_objeù_d©a_£t +( +’Œy +, "gl_entry_pop_cb_key", + +94 +__gl_®bums_Ãw_pÝ_cb +); + +96 + } +} + +102  + $_gl_®bums_Ãw_´oûss +(* +d©a +, +boÞ + +b_’‹r +) + +104 + `gl_dbg +("b_’‹r: %d", +b_’‹r +); + +105 + `GL_CHECK_VAL +( +d©a +, -1); + +106 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +108 ià( +ad +-> +’Œyšfo +. +ed™f›ld + =ð +NULL +) { + +109 + `gl_dbgE +("Edit filed is NULL"); + +110  +NEW_ALBUM_FAILED +; + +113 +Evas_Objeù + * +’Œy + = +ad +-> +’Œyšfo +.entry; + +114  +Çme +[ +GL_ALBUM_NAME_LEN_MAX +] = { 0, }; + +117 ià( + `gl_g‘_’Œy_‹xt +( +’Œy +, +Çme +, +GL_ALBUM_NAME_LEN_MAX +) != 0) { + +118 + `gl_dbgE +("Getƒntryext failed!"); + +119  +NEW_ALBUM_FAILED +; + +123 ià( + `_gl_v®id©e_®bum_Çme +( +d©a +, +Çme +) != 0) { + +124 ià( +b_’‹r +) + +125 + `_gl_ed™f›ld_hide_imf +( +ad +); + +128 + `gl_sdbg +("V®id‡lbum‚ame: %s", +Çme +); + +131  +Ãw_·th +[ +GL_DIR_PATH_LEN_MAX +] = { 0, }; + +134 + `¢´štf +( +Ãw_·th +, +GL_DIR_PATH_LEN_MAX +, "%s/%s", +GL_DEFAULT_PATH_IMAGES +, + +135 +Çme +); + +136 + `gl_sdbg +("New dœ‚ew_·th: %s", +Ãw_·th +); + +137 #ifdeà +_RENAME_ALBUM_SENSITIVE + + +138 ià( + `_gl_fs_check_Çme_ÿ£ +( +Ãw_·th +, +Çme +)) + +141 + `mem£t +( +Ãw_·th +, 0x00, +GL_DIR_PATH_LEN_MAX +); + +142 + `¢´štf +( +Ãw_·th +, +GL_DIR_PATH_LEN_MAX +, "%s/%s", + +143 +GL_DEFAULT_PATH_IMAGES +, +Çme +); + +144 + `gl_sdbg +("New dœ‚ew_·th: %s", +Ãw_·th +); + +145  +»s + = + `gl_fže_dœ_is_em±y +( +Ãw_·th +); + +151 + `gl_dbg +("fže_dœ_is_em±y„‘uº v®ue: %d", +»s +); + +152 ià( +»s + == 0) { + +153 + `gl_dbgW +("New folder‡lreadyƒxists!"); + +154 + `_gl_pÝup_ü—‹_loÿl +( +d©a +, +GL_POPUP_NOBUT +, + +155 +GL_STR_ID_SAME_NAME_ALREADY_IN_USE +); + +161 * +Ãw_®bum + = +ad +-> +®bumšfo +. +Ãw_Çme +; + +162 + `g_¡¾ýy +( +Ãw_®bum +, +Çme +, +GL_ALBUM_NAME_LEN_MAX +); + +163 +Ãw_®bum +[ +GL_ALBUM_NAME_LEN_MAX + - 1] = '\0'; + +165 ià( +ad +-> +®bumšfo +. +v›w +) + +166 + `–m_g’grid_þ—r +( +ad +-> +®bumšfo +. +v›w +); + +168 ià( +ad +-> +’Œyšfo +. +Ý_cb +) { + +169 (* +mc_cb +)(* +d©a +); + +171 +mc_cb + = +ad +-> +’Œyšfo +. +Ý_cb +; + +173 + `mc_cb +( +ad +); + +175 + `GL_IF_DEL_OBJ +( +ad +-> +pÝupšfo +. +pÝup +); + +178 +NEW_ALBUM_FAILED +: + +179 + `GL_IF_DEL_OBJ +( +ad +-> +pÝupšfo +. +pÝup +); + +181 + } +} + + @src/2dview/gl-albums-new.h + +18 #iâdeà +_GL_ALBUMS_NEW_H_ + + +19  + #_GL_ALBUMS_NEW_H_ + + + ) + +21  + ~ + +22  + ~"g®Ëry.h +" + +24  +_gl_®bums_Ãw_ü—‹_v›w +(* +d©a +, * +Ý_func +); + +25  +_gl_®bums_Ãw_´oûss +(* +d©a +, +boÞ + +b_’‹r +); + + @src/2dview/gl-albums-rename.c + +18  + ~"gl-debug.h +" + +19  + ~"gl-fs.h +" + +20  + ~"gl-’Œy.h +" + +21  + ~"gl-®bums-»Çme.h +" + +22  + ~"gl-®bums.h +" + +23  + ~"gl-ui-utž.h +" + +24  + ~"gl-utž.h +" + +25  + ~"gl-cڌÞb¬.h +" + +26  + ~"gl-ed™f›ld.h +" + +27  + ~"gl-bu‰Ú.h +" + +28  + ~"gl-pÝup.h +" + +29  + ~"gl-¡ršgs.h +" + +30  + ~"gl-fs.h +" + +31  + ~"gl-db-upd©e.h +" + +32  + ~"gl-fže-utž.h +" + +34  + $__gl_®bums_»Çme_Œªs_fšished +(* +d©a +) + +36 + `GL_CHECK +( +d©a +); + +37 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +38  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +39 + `gl_dbgW +("v›w_mode: %d", +v›w_mode +); + +42 ià( +v›w_mode + =ð +GL_VIEW_ALBUMS_RENAME +) + +43 + `–m_g’grid_þ—r +( +ad +-> +®bumšfo +. +v›w +); + +44 + } +} + +46  + $__gl_®bums_»Çme_pÝ_v›w +(* +d©a +) + +48 + `GL_CHECK_VAL +( +d©a +, -1); + +49 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +50 + `GL_CHECK_VAL +( +ad +-> +maššfo +. +Çviäame +, -1); + +51 + `gl_dbg +(""); + +53 +ad +-> +®bumšfo +. +£Ëùed + = +NULL +; + +55 + `gl_£t_v›w_mode +( +d©a +, +GL_VIEW_ALBUMS +); + +56 + `_gl_®bums_chªge_mode +( +d©a +, +çl£ +); + +58 + } +} + +61  +Eša_BoÞ + + $__gl_®bums_»Çme_pÝ_cb +(* +d©a +, +Elm_Objeù_I‹m + * +™ +) + +73 + `gl_dbg +(""); + +74 + `GL_CHECK_VAL +( +d©a +, -1); + +75 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +76 +ad +-> +®bumšfo +. +£Ëùed + = +NULL +; + +78 + `gl_£t_v›w_mode +( +d©a +, +GL_VIEW_ALBUMS_EDIT +); + +79 + `gl_®bums_upd©e_™ems +( +d©a +); + +80  +EINA_TRUE +; + +81 + } +} + +84  +Eša_BoÞ + + $__gl_®bums_»Çme_pÝ_to_®bum_cb +(* +d©a +, +Elm_Objeù_I‹m + * +™ +) + +87 + `gl_dbg +(""); + +88 + `GL_CHECK_VAL +( +d©a +, -1); + +89 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +90 +ad +-> +®bumšfo +. +£Ëùed + = +NULL +; + +92 + `gl_£t_v›w_mode +( +d©a +, +GL_VIEW_ALBUMS +); + +93 + `gl_®bums_upd©e_™ems +( +d©a +); + +94  +EINA_TRUE +; + +95 + } +} + +101  + $__gl_®bums_»Çme_´oûss +(* +d©a +, +boÞ + +b_’‹r +) + +103 + `gl_dbg +("b_’‹r: %d", +b_’‹r +); + +104 + `GL_CHECK_VAL +( +d©a +, -1); + +105 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +106 +boÞ + +b_roÙ_·th + = +çl£ +; + +107 +gl_þu¡” + * +®bum_™em + = +NULL +; + +110 + `evas_objeù_d©a_d– +( +ad +-> +’Œyšfo +. +’Œy +, "gl_entry_pop_cb_key"); + +112 ià( + `gl_g‘_v›w_mode +( +ad +è!ð +GL_VIEW_ALBUMS_RENAME +) { + +113 + `gl_dbgE +("View mode is wrong!"); + +114  +RENAME_FAILED +; + +117 +®bum_™em + = +ad +-> +®bumšfo +. +£Ëùed +; + +118 ià( +®bum_™em + =ð +NULL + ||‡lbum_™em-> +þu¡” + == NULL || + +119 +®bum_™em +-> +þu¡” +-> +uuid + =ð +NULL +) { + +120 + `gl_dbgE +("selected_album is NULL!"); + +121  +RENAME_FAILED +; + +124  +Çme +[ +GL_FILE_NAME_LEN_MAX +] = { 0, }; + +126  +»t + = -1; + +127 +»t + = + `gl_g‘_’Œy_‹xt +( +ad +-> +’Œyšfo +. +’Œy +, +Çme +, + +128 +GL_FILE_NAME_LEN_MAX +); + +129 ià( +»t + != 0) { + +130 + `gl_dbgE +("Getƒntryext failed!"); + +131  +RENAME_FAILED +; + +135 ià( + `_gl_v®id©e_®bum_Çme +( +d©a +, +Çme +) != 0) { + +136 ià( +b_’‹r +) + +137 + `_gl_ed™f›ld_hide_imf +( +ad +); + +141 + `gl_sdbg +("V®id‡lbum‚ame: %s", +Çme +); + +143  +Þd_·th +[ +GL_DIR_PATH_LEN_MAX +] = { 0, }; + +144 ià( +®bum_™em +-> +þu¡” +-> +·th +) { + +145 + `g_¡¾ýy +( +Þd_·th +, +®bum_™em +-> +þu¡” +-> +·th +, + +146 +GL_DIR_PATH_LEN_MAX +); + +147 + `gl_sdbg +("SrøfÞd”: %s", +Þd_·th +); + +148 ià( + `_gl_d©a_is_roÙ_·th +( +Þd_·th +)) { + +154 + `gl_dbg +("Rename [No Name]‡lbum's‚ame."); + +155 +b_roÙ_·th + = +Œue +; + +158 + `gl_dbgE +("gl_db_g‘_fÞd”_fuηth fažed(%d)!", +»t +); + +159  +RENAME_FAILED +; + +163  +Ãw_·th +[ +GL_DIR_PATH_LEN_MAX +] = { 0, }; + +164  +·»Á +[ +GL_DIR_PATH_LEN_MAX +] = { 0, }; + +166 ià( +b_roÙ_·th +) { + +167 + `¢´štf +( +Ãw_·th +, +GL_DIR_PATH_LEN_MAX +, "%s/%s", + +168 +GL_DEFAULT_PATH_IMAGES +, +Çme +); + +169 + `g_¡¾ýy +( +·»Á +, +GL_DEFAULT_PATH_IMAGES +, +GL_DIR_PATH_LEN_MAX +); + +171 + `g_¡¾ýy +( +Ãw_·th +, +Þd_·th +, +GL_DIR_PATH_LEN_MAX +); + +172 + `g_¡¾ýy +( +·»Á +, +Þd_·th +, +GL_DIR_PATH_LEN_MAX +); + +174  +i + = 0; + +175  +Ëngth + = + `¡¾’ +( +Þd_·th +); + +176  +i + = +Ëngth +; i >= 0; i--) { + +177 ià( +Ãw_·th +[ +i +] == '/') { + +178 + `gl_dbg +("Ëngth=%d, i=%d", +Ëngth +, +i +); + +180 ià( +i + =ð +Ëngth + - 1) + +182 + `memýy +(& +Ãw_·th +[ +i + + 1], +Çme +, + `¡¾’ +(name)); + +183 +Ãw_·th +[ +i + + 1 + + `¡¾’ +( +Çme +)] = '\0'; + +184 +·»Á +[ +i +] = '\0'; + +190 + `gl_sdbg +("De¡ fÞd”: %s", +Ãw_·th +); + +191 #ifdeà +_RENAME_ALBUM_SENSITIVE + + +192 ià(! + `¡rÿ£cmp +( +Þd_·th +, +Ãw_·th +)) + +194 ià(! + `g_¡rcmp0 +( +Þd_·th +, +Ãw_·th +)) + +197 + `gl_dbgW +("Same‡s current‚ame!"); + +198  +RENAME_FAILED +; + +206 #ifdeà +_RENAME_ALBUM_SENSITIVE + + +207 ià( + `_gl_fs_check_Çme_ÿ£ +( +Ãw_·th +, +Çme +)) + +210 + `mem£t +( +Ãw_·th +, 0x00, +GL_DIR_PATH_LEN_MAX +); + +211 + `¢´štf +( +Ãw_·th +, +GL_DIR_PATH_LEN_MAX +, "%s/%s", +·»Á +, +Çme +); + +212 + `gl_sdbg +("New dœ…©h: %s", +Ãw_·th +); + +213  +»s + = + `gl_fže_dœ_is_em±y +( +Ãw_·th +); + +214 + `gl_dbg +("fže_dœ_is_em±y„‘uº v®ue: %d", +»s +); + +215 ià( +»s + == 0) { + +216 * +pÝup_desc + = +NULL +; + +217 +pÝup_desc + = (*) + `ÿÎoc +( +GL_POPUP_STRING_MAX +, + +219 ià( +pÝup_desc + =ð +NULL +) { + +220 + `gl_dbgE +("memory‡llocation fail!"); + +224 + `¢´štf +( +pÝup_desc +, +GL_POPUP_STRING_MAX +, "%s
%s", + +225 +GL_STR_SAME_NAME_ALREADY_IN_USE +, +GL_STR_RETRY_Q +); + +226 +pÝup_desc +[ + `¡¾’ +(popup_desc)] = '\0'; + +227 + `gl_pÝup_ü—‹_pÝup +( +ad +, +GL_POPUP_ALBUM_RENAME_DUPLICATE +, + +228 +pÝup_desc +); + +229 + `GL_FREE +( +pÝup_desc +); + +230 + `gl_dbgW +("New folder‡lreadyƒxists!"); + +235 + `_gl_db_upd©e_lock_Úû +( +ad +, +Œue +); + +236 ià( +b_roÙ_·th +) { + +246 ià( + `gl_make_Ãw_®bum +( +Çme +è=ð +çl£ +) { + +247 + `gl_pÝup_ü—‹_pÝup +( +ad +, +GL_POPUP_NOBUT +, + +248 +GL_STR_UNABLE_tO_RENAME +); + +249 + `gl_dbgE +("Failedo make‡‚ew directory!"); + +250  +RENAME_FAILED +; + +254 ià( + `gl_move_roÙ_®bum +( +ad +, +®bum_™em +, +Ãw_·th +) != 0) { + +255 + `gl_dbg +("gl_move_root_album failed!"); + +256 + `gl_pÝup_ü—‹_pÝup +( +ad +, +GL_POPUP_NOBUT +, + +257 +GL_STR_UNABLE_tO_RENAME +); + +258  +RENAME_FAILED +; + +260 + `gl_dbg +("New‡lbum‡dded, update‡lbums†ist."); + +261 +ad +-> +®bumšfo +. +£Ëùed + = +NULL +; + +262 + `_gl_d©a_upd©e_þu¡”_li¡ +( +ad +); + +268 + `medŸ_fÞd”_£t_Çme +( +®bum_™em +-> +þu¡” +-> +fÞd”_h +, +Çme +); + +269 +»t + = + `medŸ_fÞd”_upd©e_to_db +( +®bum_™em +-> +þu¡” +-> +fÞd”_h +); + +270 ià( +»t + < 0) { + +271 + `gl_dbg +("medŸ_fÞd”_£t_Çmçžed (%d)!", +»t +); + +272  +RENAME_FAILED +; + +280 ià( + `gl_fže_exi¡s +( +Þd_·th +)) { + +281 ià(! + `gl_fže_mv +( +Þd_·th +, +Ãw_·th +)) + +282 + `gl_dbg +("file_mv failed!"); + +284 + `gl_dbgW +("Source folder…ath doesn'tƒxist!"); + +287 + `GL_FREEIF +( +®bum_™em +-> +þu¡” +-> +di¥Ïy_Çme +); + +288 +®bum_™em +-> +þu¡” +-> +di¥Ïy_Çme + = + `¡rdup +( +Çme +); + +289 + `GL_FREEIF +( +®bum_™em +-> +þu¡” +-> +·th +); + +290 +®bum_™em +-> +þu¡” +-> +·th + = + `¡rdup +( +Ãw_·th +); + +293 + `–m_Çviäame_™em_pÝ +( +ad +-> +maššfo +. +Çviäame +); + +294 + `__gl_®bums_»Çme_pÝ_v›w +( +d©a +); + +297 +RENAME_FAILED +: + +299 + `–m_Çviäame_™em_pÝ +( +ad +-> +maššfo +. +Çviäame +); + +300 + `__gl_®bums_»Çme_pÝ_v›w +( +d©a +); + +302 + } +} + +304  + $_gl_®bums_»Çme_ü—‹_v›w +(* +d©a +, +gl_þu¡” + * +®bum +) + +306 + `GL_CHECK_VAL +( +®bum +, -1); + +307 + `GL_CHECK_VAL +( +®bum +-> +þu¡” +, -1); + +308 + `GL_CHECK_VAL +( +®bum +-> +þu¡” +-> +di¥Ïy_Çme +, -1); + +309 + `GL_CHECK_VAL +( +d©a +, -1); + +310 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +311 + `gl_dbg +(""); + +313 +ad +-> +’Œyšfo +. +mode + = +GL_ENTRY_RENAME_ALBUM +; + +316 ià( + `_gl_’Œy_ü—‹_v›w +( +d©a +, +®bum +-> +þu¡” +-> +di¥Ïy_Çme +, +GL_STR_ID_CHNAGE_NAME +) < 0) { + +317 +ad +-> +’Œyšfo +. +mode + = +GL_ENTRY_NONE +; + +321 +Evas_Objeù + * +’Œy + = + `_gl_ed™f›ld_g‘_’Œy +( +d©a +); + +322 + `GL_CHECK_VAL +( +’Œy +, -1); + +323 + `evas_objeù_d©a_£t +( +’Œy +, "gl_entry_process_cb_key", + +324 +__gl_®bums_»Çme_´oûss +); + +325 ià( +GL_VIEW_ALBUMS + =ð + `gl_g‘_v›w_mode +( +d©a +)) + +326 + `evas_objeù_d©a_£t +( +’Œy +, "gl_entry_pop_cb_key", + +327 +__gl_®bums_»Çme_pÝ_to_®bum_cb +); + +329 + `evas_objeù_d©a_£t +( +’Œy +, "gl_entry_pop_cb_key", + +330 +__gl_®bums_»Çme_pÝ_cb +); + +332 + `evas_objeù_d©a_£t +( +’Œy +, "gl_entry_transit_cb_key", + +333 +__gl_®bums_»Çme_Œªs_fšished +); + +334 + `gl_£t_v›w_mode +( +d©a +, +GL_VIEW_ALBUMS_RENAME +); + +336 + } +} + +338  + $_gl_®bums_»Çme_upd©e_v›w +(* +d©a +) + +340 + `GL_CHECK_VAL +( +d©a +, -1); + +341 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +342 + `gl_dbg +(""); + +344 ià( + `gl_check_g®Ëry_em±y +( +d©a +) || + +345 +ad +-> +®bumšfo +. +–i¡ +-> +ed™_út + == 0) { + +347 + `gl_d–_šv®id_widg‘s +( +d©a +, +GL_INVALID_NONE +); + +348 + `gl_dbgW +("Noneƒditable‡lbums, show‡lbums view!"); + +349 + `_gl_®bums_chªge_mode +( +d©a +, +çl£ +); + +354 ià( +ad +-> +®bumšfo +. +£Ëùed + =ð +NULL +) { + +355 + `gl_dbgW +("Rename invalid‡lbum!"); + +357 + `–m_Çviäame_™em_pÝ +( +ad +-> +maššfo +. +Çviäame +); + +362 + `–m_g’grid_þ—r +( +ad +-> +®bumšfo +. +v›w +); + +364 + } +} + +366  + $_gl_®bums_»Çme_upd©e_Ïng +(* +d©a +) + +368 + `GL_CHECK_VAL +( +d©a +, -1); + +369 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +370 + `GL_CHECK_VAL +( +ad +-> +’Œyšfo +. +nf_™ +, -1); + +372 ià( +ad +-> +pÝupšfo +. +pÝup +) { + +373 * +pÝup_desc + = (*) + `ÿÎoc +( +GL_POPUP_STRING_MAX +, + +375 ià( +pÝup_desc +) { + +376 + `¢´štf +( +pÝup_desc +, +GL_POPUP_STRING_MAX +, "%s
%s", + +377 +GL_STR_SAME_NAME_ALREADY_IN_USE +, +GL_STR_RETRY_Q +); + +378 +pÝup_desc +[ + `¡¾’ +(popup_desc)] = '\0'; + +379 + `gl_pÝup_ü—‹_pÝup +( +ad +, +GL_POPUP_ALBUM_RENAME_DUPLICATE +, + +380 +pÝup_desc +); + +381 + `GL_FREE +( +pÝup_desc +); + +386 + } +} + + @src/2dview/gl-albums-rename.h + +18 #iâdeà +_GL_ALBUMS_RENAME_H_ + + +19  + #_GL_ALBUMS_RENAME_H_ + + + ) + +21  + ~ + +22  + ~"g®Ëry.h +" + +24  +_gl_®bums_»Çme_ü—‹_v›w +(* +d©a +, +gl_þu¡” + * +®bum +); + +25  +_gl_®bums_»Çme_upd©e_v›w +(* +d©a +); + +26  +_gl_®bums_»Çme_upd©e_Ïng +(* +d©a +); + + @src/2dview/gl-ecore-animator.h + +18 #´agm¨ +Úû + + +20  + $boÞ + (* + tC®lbackFUNC +)( + td– +, * + td©a +); + +22 +‹m¶©e + < +þass + +ObjTy³ +, cÏs  +FunTy³ +, cÏs  +P¬mTy³ +> + +23 þas  + cU£rMemFunùÜ + + +25 +public +: + +26 + $U£rMemFunùÜ +( +ObjTy³ +& +obj +, +FunTy³ + +fun +è: + `m_obj +(obj), + $m_func +( +fun +) {} + +27  + $ݔ©Ü +()( +P¬mTy³ +& +p +è{ ( +m_obj +.* +m_func +)Õ); + } +} + +28 + g´iv©e +: + +29 +ObjTy³ +& +m_obj +; + +30 +FunTy³ + + gm_func +; + +35 þas  + cECÜeAnim©Ü + { + +36  +Eša_BoÞ + + $_Ú_ªim +(* +d©a +) + +38 +ECÜeAnim©Ü + * +thiz + = +¡©ic_ÿ¡ +( +d©a +); + +40  +thiz +-> + `OnAnim©iÚ +(); + +43 +public +: + +44 + $ECÜeAnim©Ü +(è: + `m_ªim©Ü +( +NULL +), + $m_bS¹ed +( +çl£ +è{ + } +}; + +45 ~ + $ECÜeAnim©Ü +() { + +46 + `StÝ +(); + +47 + } +}; + +49  + $S¹ +( +C®lbackFUNC + +cb +, * +d©a +) + +51 +m_cb + = +cb +; + +52 +m_d©a + = +d©a +; + +54 +m_couÁ + = 0; + +55 +m_ªim©Ü + = + `ecÜe_ªim©Ü_add +( +_Ú_ªim +, +this +); + +56 +m_bS¹ed + = +Œue +; + +57 + } +} + +59  + $StÝ +() { + +60 ià( +m_bS¹ed +) { + +61 +m_bS¹ed + = +çl£ +; + +62 + `ecÜe_ªim©Ü_d– +( +m_ªim©Ü +); + +63 +m_ªim©Ü + = +NULL +; + +65 + } +}; + +67 +Eša_BoÞ + + $OnAnim©iÚ +() { + +68  +cu¼’t +; + +70 ià( +m_couÁ + == 0) { + +71 +cu¼’t + = +m_´ev + = + `ecÜe_loÝ_time_g‘ +(); + +73 +cu¼’t + = + `ecÜe_loÝ_time_g‘ +(); + +76 +m_couÁ +++; + +78 ià( + `m_cb +( +cu¼’t + - +m_´ev +, +m_d©a +è=ð +çl£ +) { + +79 + `StÝ +(); + +80  +ECORE_CALLBACK_CANCEL +; + +83 +m_´ev + = +cu¼’t +; + +84  +ECORE_CALLBACK_RENEW +; + +85 + } +}; + +87 +boÞ + + $IsRušg +() const { + +88  +m_bS¹ed +; + +89 + } +}; + +91 + g´iv©e +: + +92 +EcÜe_Anim©Ü + * +m_ªim©Ü +; + +96 +C®lbackFUNC + + gm_cb +; + +97 * + gm_d©a +; + +99  + gm_´ev +; + +100 +boÞ + + gm_bS¹ed +; + +102  + gm_couÁ +; + + @src/2dview/gl-exception.h + +17 #´agm¨ +Úû + + +19 þas  + cCExû±iÚ + { + +20 + mpublic +: + +22 +IO_ERROR +, + +23 } + t”rÜ_code +; + +25 + $CExû±iÚ +( +”rÜ_code + +”r +è: + $m_”r +( +”r +è{ + } +}; + +26 ~ + $CExû±iÚ +(è{ + } +}; + +28 + g´iv©e +: + +29 +”rÜ_code + +m_”r +; + + @src/2dview/gl-timeline.c + +18  + ~<¡dlib.h +> + +19  + ~ + +20  + ~"gl-debug.h +" + +21  + ~"gl-tim–še.h +" + +22  + ~"gl-cڌÞb¬.h +" + +23  + ~"gl-ui-utž.h +" + +24  + ~"gl-utž.h +" + +25  + ~"gl-d©a.h +" + +26  + ~"gl-¡ršgs.h +" + +27 #ifdeà +_USE_ROTATE_BG + + +28  + ~"gl-rÙ©e-bg.h +" + +29  + ~"gl-exif.h +" + +31  + ~"gl-thumb.h +" + +32  + ~"gl-thumbs.h +" + +33  + ~"gl-maš.h +" + +34  + ~"gl-®bums.h +" + +35  + ~"gl-®bums-£l.h +" + +36  + ~"gl-nocڋÁs.h +" + +37  + ~"gl-ext-exec.h +" + +38  + ~"gl-ext-ug-lßd.h +" + +39  + ~"gl-ùxpÝup.h +" + +40  + ~"gl-pÝup.h +" + +41  + ~"gl-bu‰Ú.h +" + +42  + ~"gl-ext-exec.h +" + +43  + ~"gl-nÙify.h +" + +44  + ~"gl-db-upd©e.h +" + +45  + ~"gl-th»ad-utž.h +" + +46  + ~"gl-fs.h +" + +47  + ~"gl-fže-utž.h +" + +48  + ~"gl-ge¡u».h +" + +50  + #GL_TIMELINE_TITLE_H + 46 + + ) + +51  + #GL_TIMELINE_PAD_H + 8 + + ) + +52  + #GL_TIMELINE_CONTENT_P_H + 956 + + ) + +53  + #GL_TIMELINE_CONTENT_L_H + 429 + + ) + +54  + #GL_TIMELINE_PAGE_SIZE + 450 + + ) + +56  + #GL_TL_PINCH_OUT_2_CNT + 15 + + ) + +57  + #GL_TL_PINCH_OUT_1_CNT + 8 + + ) + +58  + #GL_TL_PINCH_OUT_CNT_STEP + 3 + + ) + +61  + #GL_TL_SWALLOW_TITLE_SHOW + "–m,sw®low_t™Ë,¡©e,show" + + ) + +62  + #GL_TL_SWALLOW_TITLE_HIDE + "–m,sw®low_t™Ë,¡©e,hide" + + ) + +64  + #GL_TL_TITLE2_SHOW_FINISHED + "–m,aùiÚ,t™Ë2,show,fšished" + + ) + +65  + #GL_TL_TITLE_HIDE_FINISHED + "–m,aùiÚ,t™Ë,hide,fšished" + + ) + +66  + #GL_TL_TITLE_FADE_OUT + "–m,aùiÚ,t™Ë,çde_out" + + ) + +67  + #GL_TL_TITLE2_FADE_IN + "–m,aùiÚ,t™Ë2,çde_š" + + ) + +68  + #GL_TL_TITLE_HIDE_DEFERRED + "–m,¡©e,t™Ë,hide,deã¼ed" + + ) + +69  + #GL_TL_TITLE2_SHOW_DEFERRED + "–m,¡©e,t™Ë2,show,deã¼ed" + + ) + +70  + #GL_TL_TITLE_SHOW + "–m,¡©e,t™Ë,show" + + ) + +71  + #GL_TL_TITLE2_CREATED + "–m,¡©e,t™Ë2,ü—‹d" + + ) + +73  + #GL_TL_CONTENTS_FORMAT + "cڋÁs_%d_%d" + + ) + +74  + #GL_TL_CHECKBOX_FORMAT + "cڋÁs_%d_%d_checkbox" + + ) + +75  + #GL_TL_CONTENT_FORMAT + "cڋÁ_%d" + + ) + +77  + #GL_TL_TILE_DATA_KEY + "gl_tže_d©a" + + ) + +78  + #GL_TL_DATA_KEY + "gl_Ž_d©a" + + ) + +80  + #GL_GRID_4_PER_ROW + 4 + + ) + +81  + #GL_GRID_7_PER_ROW + 7 + + ) + +83  + #GL_GRID_8_PER_ROW + 8 + + ) + +84  + #GL_GRID_3_PER_ROW + 3 + + ) + +86  + #GL_GRID_6_PER_ROW + 6 + + ) + +87  + #GL_GRID_10_PER_ROW + 10 + + ) + +89  + #GL_GRID_H_ZOOM_03 + 178 + + ) + +90  + #GL_GRID_H_ZOOM_02 + 267 + + ) + +92  + #GL_TL_DEL_TRANSITS +( +tžes +) \ + +94 +gl_tže_s + * +tže + = +NULL +; \ + +95 ià( +tžes +) { \ + +96 + `gl_dbgW +("Deleteransits ofiles!"); \ + +97 +Eša_Li¡ + * +l + = +NULL +; \ + +98 + `EINA_LIST_FOREACH +( +tžes +, +l +, +tže +) { \ + +99 ià( +tže +) { \ + +100 + `GL_IF_DEL_TRANSIT +( +tže +-> +Œªs +); \ + +101 +tže + = +NULL +; \ + +105 } 0) + + ) + +107  + #GL_TL_DEL_IDLERS +( +idËrs +) \ + +109 ià( +idËrs +) { \ + +110 +gl_Žp_s + * +™_d + = +NULL +; \ + +111 + `EINA_LIST_FREE +( +idËrs +, +™_d +) { \ + +112 ià( +™_d +) { \ + +113 + `GL_IF_DEL_IDLER +( +™_d +-> +upd©e_idËr +); \ + +114 +™_d + = +NULL +; \ + +117 +idËrs + = +NULL +; \ + +119 } 0) + + ) + +122  + #GL_TL_CLEAR_PAGES +( +tim–še_d +, +b_£t_zÝ +) \ + +124 + `GL_TL_DEL_TRANSITS +( +tim–še_d +-> +tžes +); \ + +125 + `GL_TL_DEL_IDLERS +( +tim–še_d +-> +idËrs +); \ + +126 ià( +b_£t_zÝ +) \ + +127 + `_gl_¦id”_£t_zÝ +( +tim–še_d +-> +v›w +, +GL_SLIDE_ZOP_DEFAULT +); \ + +128 + `_gl_¦id”_uÆßd +( +tim–še_d +-> +v›w +); \ + +129 + `__gl_tim–še_ä“_·ges +( +tim–še_d +); \ + +130 } 0) + + ) + +132  + e_gl_zoom_mode_t + { + +133 + mGL_TM_ZOOM_NONE + = -3, + +134 + mGL_TM_ZOOM_OUT_TWO +, + +135 + mGL_TM_ZOOM_OUT_ONE +, + +136 + mGL_TM_ZOOM_DEFAULT +, + +137 + mGL_TM_ZOOM_MAX +, + +138 } + tgl_zoom_mode_e +; + +140  + e_gl_Œªs_Ý_t + { + +141 + mGL_TRANS_OP_DEFAULT +, + +142 + mGL_TRANS_OP_DONE +, + +143 + mGL_TRANS_OP_START +, + +144 + mGL_TRANS_OP_PREPARE +, + +145 + mGL_TRANS_OP_SHOW +, + +146 + mGL_TRANS_OP_MAX +, + +147 } + tgl_Œªs_Ý_e +; + +149  + e_gl_Ž_v›w_t + { + +150 + mGL_TL_VIEW_NORMAL +, + +151 + mGL_TL_VIEW_EDIT +, + +152 + mGL_TL_VIEW_SHARE +, + +153 + mGL_TL_VIEW_MAX +, + +154 } + tgl_Ž_v›w_e +; + +156  +_gl_tm_t + + tgl_tm_s +; + +157  + s_gl_tm_t + { + +158  + mtm_y—r +; + +159  + mtm_mÚ +; + +160  + mtm_mday +; + +163  +_gl_£l_d©a_t + + tgl_£l_s +; + +164  + s_gl_£l_d©a_t + { + +165 +Eša_Li¡ + * + m£l_li¡ +; + +166  + mjpge_út +; + +167  + mimage_út +; + +170  + e_gl_time_v›w_di¥Ïy_Üd” + { + +171 + mTIME_ORDER_ASC + = 0, + +172 + mTIME_ORDER_DESC + + +173 } + t_gl_time_v›w_Üd” +; + +175  + s_gl_tim–še_t + { + +176 +gl_­pd©a + * + mad +; + +177 +Evas_Objeù + * + m·»Á +; + +178 +Evas_Objeù + * + mÏyout +; + +179 +Evas_Objeù + * + mv›w +; + +180 +Evas_Objeù + * + mnocڋÁs +; + +181 +Evas_Objeù + * + md©e_Ïyout +; + +182 +Elm_Objeù_I‹m + * + mnf_™ +; + +183  + mcouÁ +; + +184 +time_t + + mÏ¡_mtime +; + +185  + mw +; + +186  + mh +; + +187 +boÞ + + md–‘e_d©a +; + +188 +gl_mou£_s + + mmou£ +; + +189 +Eša_Li¡ + * + mcouÁ_li¡ +; + +190 +gl_Ž_v›w_e + + mv›w_m +; + +191 +gl_zoom_mode_e + + mzoom_Ëv– +; + +192 +Eša_Li¡ + * + mli¡ +; + +194 +gl_tm_s + + mtm_s +; + +195 +gl_tm_s + + mtm_e +; + +196 +boÞ + + mb_ü—‹d +; + +197 +EcÜe_Anim©Ü + * + mªim©Ü +; + +198 +boÞ + + mb_upd©šg_t™Ë +; + +199 +gl_þu¡” + * + m®bum +; + +200  + mŒª_Ý +; + +201 +Eša_Li¡ + * + mtžes +; + +202 +Eša_Li¡ + * + midËrs +; + +203 +Eša_Li¡ + * + mthumbs +; + +204 +Eša_Li¡ + * + md©a_li¡ +; + +205 +gl_£l_s + * + m£l_d +; + +206 +boÞ + + mis_li¡_»v”£ +; + +207 +_gl_time_v›w_Üd” + + mtime_medŸ_di¥Ïy_Üd” +; + +208 +Elm_Objeù_I‹m + * + m»®ized_™em +; + +211  +_gl_Žp_t + + tgl_Žp_s +; + +212  + s_gl_Žp_t + { + +213  + mšdex +; + +214  + m¡¬t_pos +; + +215  + m’d_pos +; + +216  + mcouÁ +; + +217  + mw +; + +218  + mh +; + +219 +Evas_Objeù + * + mÏyout +; + +220 +EcÜe_IdËr + * + mupd©e_idËr +; + +221 +boÞ + + mb_ü—‹d +; + +222 +gl_tim–še_s + * + mtim–še_d +; + +225  +_gl_tže_t + + tgl_tže_s +; + +226  + s_gl_tže_t + { + +227 +Evas_Objeù + * + mbg +; + +228 +Evas_Objeù + * + m·»Á +; + +229 +Elm_T¿ns™ + * + mŒªs +; + +230  + mcouÁ +; + +231  + mtÙ® +; + +232 +gl_Žp_s + * + m™_d +; + +233 +gl_tim–še_s + * + mtim–še_d +; + +236  +_g‘_couÁ_of_™ems_Ú_§me_d©e +( +gl_medŸ_s + * +™em +, +Eša_Li¡ + * +li¡ +, ** +‹xt +,  +¡¬t_šdex +); + +237  +_gl_time_g‘_numb”_of_™ems_³r_row +(* +d©a +); + +238  +__gl_tim–še_·ge_d–‘ed_cb +(* +d©a +, +Evas_Objeù + * +obj +, + +239 * +ei +); + +240  +__gl_tim–še_chªge_mode +(* +d©a +,  +mode +); + +241  +Evas_Objeù + * +__gl_tim–še_ü—‹_li¡_v›w +( +gl_tim–še_s + * +tim–še_d +, +boÞ + +upd©e +); + +243 #ifdeà +_USE_APP_SLIDESHOW + + +244  +__gl_tim–še_ed™ +(* +d©a +); + +247  +boÞ + + $__gl_tim–še_is_checked +( +gl_tim–še_s + * +tim–še_d +, * +uuid +) + +249 + `GL_CHECK_FALSE +( +uuid +); + +250 + `GL_CHECK_FALSE +( +tim–še_d +); + +251 + `GL_CHECK_FALSE +( +tim–še_d +-> +£l_d +); + +253 +Eša_Li¡ + * +l + = +NULL +; + +254 * +™em + = +NULL +; + +255 + `EINA_LIST_FOREACH +( +tim–še_d +-> +£l_d +-> +£l_li¡ +, +l +, +™em +) { + +256 ià( +™em + && ! + `g_¡rcmp0 +(™em, +uuid +)) + +257  +Œue +; + +259  +çl£ +; + +260 + } +} + +263  +boÞ + + $__gl_tim–še_þ—r_£l_út +( +gl_tim–še_s + * +tim–še_d +) + +265 + `GL_CHECK_FALSE +( +tim–še_d +); + +266 ià( +tim–še_d +-> +£l_d + =ð +NULL +) + +267  +çl£ +; + +269 +tim–še_d +-> +£l_d +-> +£l_li¡ + = +NULL +; + +270 +tim–še_d +-> +£l_d +-> +jpge_út + = 0; + +271 +tim–še_d +-> +£l_d +-> +image_út + = 0; + +272  +Œue +; + +273 + } +} + +276  +boÞ + + $__gl_tim–še_þ—r_£l_li¡ +( +gl_tim–še_s + * +tim–še_d +) + +278 + `GL_CHECK_FALSE +( +tim–še_d +); + +279 ià( +tim–še_d +-> +£l_d + =ð +NULL +) + +280  +çl£ +; + +282 * +™em + = +NULL +; + +283 + `EINA_LIST_FREE +( +tim–še_d +-> +£l_d +-> +£l_li¡ +, +™em +) { + +284 + `GL_GFREEIF +( +™em +); + +286 +tim–še_d +-> +£l_d +-> +£l_li¡ + = +NULL +; + +287  +çl£ +; + +288 + } +} + +290  + $__gl_tim–še_g‘_£l_út +( +gl_tim–še_s + * +tim–še_d +) + +292 + `GL_CHECK_VAL +( +tim–še_d +, 0); + +293 + `GL_CHECK_VAL +( +tim–še_d +-> +£l_d +, 0); + +294  + `eša_li¡_couÁ +( +tim–še_d +-> +£l_d +-> +£l_li¡ +); + +295 + } +} + +297  +boÞ + + $__gl_tim–še_£l_­³nd_™em +( +gl_tim–še_s + * +tim–še_d +, * +uuid +) + +299 + `GL_CHECK_FALSE +( +uuid +); + +300 + `GL_CHECK_FALSE +( +tim–še_d +); + +301 + `GL_CHECK_FALSE +( +tim–še_d +-> +£l_d +); + +303 +Eša_Li¡ + * +l + = +NULL +; + +304 * +™em + = +NULL +; + +305 + `EINA_LIST_FOREACH +( +tim–še_d +-> +£l_d +-> +£l_li¡ +, +l +, +™em +) { + +306 ià( +™em + && ! + `g_¡rcmp0 +(™em, +uuid +)) { + +307 + `gl_dbgW +("Appended!"); + +308  +çl£ +; + +311 * +tmp + = + `g_¡rdup +( +uuid +); + +312 + `GL_CHECK_FALSE +( +tmp +); + +313 +tim–še_d +-> +£l_d +-> +£l_li¡ + = + `eša_li¡_­³nd +(timeline_d->sel_d->sel_list, + +314 (*) +tmp +); + +315  +Œue +; + +316 + } +} + +318  +boÞ + + $__gl_tim–še_check_¥ecŸl_fže +( +gl_tim–še_s + * +tim–še_d +, + +319 +gl_medŸ_s + * +™em +, +boÞ + +b_­³nd +) + +321 + `GL_CHECK_FALSE +( +™em +); + +322 + `GL_CHECK_FALSE +( +tim–še_d +); + +323 + `GL_CHECK_FALSE +( +tim–še_d +-> +£l_d +); + +325 ià( +b_­³nd +) { + +326 ià( +™em +-> +ty³ + =ð +MEDIA_CONTENT_TYPE_IMAGE +) { + +327 +tim–še_d +-> +£l_d +-> +image_út +++; + +328 ià( +™em +-> +ext + !ð +NULL + && + +329 ! + `¡rÿ£cmp +( +™em +-> +ext +, +GL_JPEG_FILE_EXT +) && + +330 + `_gl_exif_check_img_ty³ +( +™em +-> +fže_u¾ +)) + +331 +tim–še_d +-> +£l_d +-> +jpge_út +++; + +334 ià( +™em +-> +ty³ + =ð +MEDIA_CONTENT_TYPE_IMAGE +) { + +335 ià( +tim–še_d +-> +£l_d +-> +image_út + > 0) + +336 +tim–še_d +-> +£l_d +-> +image_út +--; + +338 + `gl_dbgW +("Image count is 0!"); + +339 ià( +™em +-> +ext + !ð +NULL + && + +340 ! + `¡rÿ£cmp +( +™em +-> +ext +, +GL_JPEG_FILE_EXT +) && + +341 + `_gl_exif_check_img_ty³ +( +™em +-> +fže_u¾ +)) { + +342 ià( +tim–še_d +-> +£l_d +-> +jpge_út + > 0) + +343 +tim–še_d +-> +£l_d +-> +jpge_út +--; + +345 + `gl_dbgW +("JPG count is 0!"); + +349  +Œue +; + +350 + } +} + +352  + $__gl_tim–še_check_bŠs_¡©e +( +gl_tim–še_s + * +tim–še_d +,  +®l_út +, + +353  +£l_út +) + +355 + `GL_CHECK_VAL +( +tim–še_d +, -1); + +356 + `GL_CHECK_VAL +( +tim–še_d +-> +ad +, -1); + +357 + `GL_CHECK_VAL +( +tim–še_d +-> +£l_d +, -1); + +358 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +tim–še_d +->ad; + +360 + `gl_dbg +("£l_út/®l_úˆð%d/%d", +£l_út +, +®l_út +); + +361 ià( +£l_út + > +®l_út +) { + +362 + `gl_dbgE +("selected_cnt >‡ll_cnt!"); + +364 } ià( +£l_út + =ð +®l_út +) { + +365 +ad +-> +£lšfo +. +ck_¡©e + = +EINA_TRUE +; + +367 +ad +-> +£lšfo +. +ck_¡©e + = +EINA_FALSE +; + +370 ià( +ad +-> +£lšfo +. +£Ëù®l_ck +) { + +371 + `–m_check_¡©e_£t +( +ad +-> +£lšfo +. +£Ëù®l_ck +,‡d->£lšfo. +ck_¡©e +); + +375 ià( +£l_út + > 0) { + +376 + `gl_dbg +("v›w_m: %d", +ad +-> +Žšfo +-> +v›w_m +); + +377 ià( +ad +-> +Žšfo +-> +v›w_m + =ð +GL_TL_VIEW_EDIT +) { + +381 + `_gl_ui_di§bË_m’u +( +tim–še_d +-> +nf_™ +, +çl£ +); + +382 + `_gl_ù¾_di§bË_™ems +( +tim–še_d +-> +nf_™ +, +çl£ +); + +384 + `_gl_ù¾_di§bË_™ems +( +tim–še_d +-> +nf_™ +, +çl£ +); + +388 + `_gl_ui_di§bË_m’u +( +tim–še_d +-> +nf_™ +, +Œue +); + +389 + `_gl_ù¾_di§bË_™ems +( +tim–še_d +-> +nf_™ +, +Œue +); + +393 + } +} + +395  +boÞ + + $__gl_tim–še_£l_»move_™em +( +gl_tim–še_s + * +tim–še_d +, * +uuid +) + +397 + `GL_CHECK_FALSE +( +uuid +); + +398 + `GL_CHECK_FALSE +( +tim–še_d +); + +399 + `GL_CHECK_FALSE +( +tim–še_d +-> +£l_d +); + +401 +Eša_Li¡ + * +l + = +NULL +; + +402 * +™em + = +NULL +; + +403 + `EINA_LIST_FOREACH +( +tim–še_d +-> +£l_d +-> +£l_li¡ +, +l +, +™em +) { + +404 ià( +™em + && ! + `g_¡rcmp0 +(™em, +uuid +)) { + +405 +tim–še_d +-> +£l_d +-> +£l_li¡ + = + `eša_li¡_»move +(timeline_d->sel_d->sel_list, + +406 (*) +™em +); + +407 + `GL_GFREE +( +™em +); + +408  +Œue +; + +411  +çl£ +; + +412 + } +} + +415  + $__gl_tim–še_upd©e_£l_li¡ +( +gl_tim–še_s + * +tim–še_d +) + +417 + `GL_CHECK_VAL +( +tim–še_d +, -1); + +418 + `GL_CHECK_VAL +( +tim–še_d +-> +£l_d +, -1); + +419  +»t + = -1; + +420 +Eša_Li¡ + * +Ãw_l + = +NULL +; + +421 +Eša_Li¡ + * +li¡ + = +NULL +; + +423 +»t + = + `_gl_d©a_g‘_™ems +( +GL_GET_ALL_RECORDS +, GL_GET_ALL_RECORDS, & +li¡ +); + +424 ià( +»t + !ð0 || ! +li¡ +) + +425 + `gl_dbgW +("Empty!"); + +428 + `__gl_tim–še_þ—r_£l_út +( +tim–še_d +); + +430 +gl_medŸ_s + * +™em + = +NULL +; + +431 * +tmp + = +NULL +; + +432 + `EINA_LIST_FREE +( +li¡ +, +™em +) { + +433 ià(! +™em + || !™em-> +uuid +) + +435 ià( + `__gl_tim–še_£l_»move_™em +( +tim–še_d +, +™em +-> +uuid +)) { + +436 +tmp + = + `g_¡rdup +( +™em +-> +uuid +); + +437 +Ãw_l + = + `eša_li¡_­³nd +Òew_l, (*) +tmp +); + +438 + `__gl_tim–še_check_¥ecŸl_fže +( +tim–še_d +, +™em +, +Œue +); + +440 + `_gl_d©a_ty³_ä“_gl™em +((**)(& +™em +)); + +441 +™em + = +NULL +; + +442 +tmp + = +NULL +; + +445 + `__gl_tim–še_þ—r_£l_li¡ +( +tim–še_d +); + +447 + } +} + +449  + $__gl_tim–še_check_Ý +( +gl_Žp_s + * +™_d +, +Evas_Objeù + * +obj +,  +šdex +) + +451 + `GL_CHECK_VAL +( +obj +, -1); + +452 + `GL_CHECK_VAL +( +™_d +, -1); + +453 + `GL_CHECK_VAL +( +™_d +-> +tim–še_d +, -1); + +454 + `GL_CHECK_VAL +( +™_d +-> +tim–še_d +-> +ad +, -1); + +455 + `gl_dbg +("šdex: %d", +šdex +); + +456 + `gl_dbg +("¡¬t_pos-%d,ƒnd_pos-%d", +™_d +-> +¡¬t_pos +, it_d-> +’d_pos +); + +458 #ifdeà +_USE_SVI + + +460 + `_gl_¶ay_sound +( +™_d +-> +tim–še_d +-> +ad +); + +463 +Eša_Li¡ + * +li¡ + = +NULL +; + +464 + `_gl_d©a_g‘_™ems +( +™_d +-> +¡¬t_pos +, it_d-> +’d_pos +, & +li¡ +); + +465 ià( +li¡ + =ð +NULL +) { + +466 + `gl_dbgW +("Empty†ist!"); + +470 +gl_medŸ_s + * +™em + = +NULL +; + +471 +™em + = + `eša_li¡_Áh +( +li¡ +, +šdex +); + +473 +Eša_BoÞ + +checked + = + `–m_check_¡©e_g‘ +( +obj +); + +474 + `gl_dbg +("checked: %d", +checked +); + +475 + `gl_sdbg +("uuid: %s", +™em +-> +uuid +); + +477 ià( +checked +) { + +478 + `__gl_tim–še_check_¥ecŸl_fže +( +™_d +-> +tim–še_d +, +™em +, +Œue +); + +479 + `__gl_tim–še_£l_­³nd_™em +( +™_d +-> +tim–še_d +, +™em +-> +uuid +); + +481 + `__gl_tim–še_check_¥ecŸl_fže +( +™_d +-> +tim–še_d +, +™em +, +çl£ +); + +482 + `__gl_tim–še_£l_»move_™em +( +™_d +-> +tim–še_d +, +™em +-> +uuid +); + +486  +£l_út + = + `__gl_tim–še_g‘_£l_út +( +™_d +-> +tim–še_d +); + +487 + `_gl_ui_upd©e_Çvi_t™Ë_‹xt +( +™_d +-> +tim–še_d +-> +nf_™ +, +£l_út +, +çl£ +); + +489 + `__gl_tim–še_check_bŠs_¡©e +( +™_d +-> +tim–še_d +, it_d->tim–še_d-> +couÁ +, + +490 +£l_út +); + +492 + `_gl_d©a_ty³_ä“_medŸ_li¡ +(& +li¡ +); + +494 + } +} + +497  + $__gl_tim–še_thumb_check_Ý +( +gl_tim–še_s + * +™_d +, +Evas_Objeù + * +obj +, +gl_medŸ_s + * +™em +) + +499 + `GL_CHECK_VAL +( +obj +, -1); + +500 + `GL_CHECK_VAL +( +™_d +, -1); + +501 + `GL_CHECK_VAL +( +™_d +-> +ad +, -1); + +502 + `GL_CHECK_VAL +( +™em +, -1); + +504 #ifdeà +_USE_SVI + + +506 + `_gl_¶ay_sound +( +™_d +-> +ad +); + +509 +Eša_BoÞ + +checked + = + `–m_check_¡©e_g‘ +( +obj +); + +510 +™em +-> +check_¡©e + = +checked +; + +511 ià( +checked +) { + +512 + `__gl_tim–še_check_¥ecŸl_fže +( +™_d +, +™em +, +Œue +); + +513 + `__gl_tim–še_£l_­³nd_™em +( +™_d +, +™em +-> +uuid +); + +515 + `__gl_tim–še_check_¥ecŸl_fže +( +™_d +, +™em +, +çl£ +); + +516 + `__gl_tim–še_£l_»move_™em +( +™_d +, +™em +-> +uuid +); + +520  +£l_út + = + `__gl_tim–še_g‘_£l_út +( +™_d +); + +521 + `_gl_ui_upd©e_Çvi_t™Ë_‹xt +( +™_d +-> +nf_™ +, +£l_út +, +çl£ +); + +523 + `__gl_tim–še_check_bŠs_¡©e +( +™_d +, it_d-> +couÁ +, + +524 +£l_út +); + +527 + } +} + +529  + $__gl_tim–še_thumbs_check_chªged +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +531 + `GL_CHECK +( +obj +); + +532 + `GL_CHECK +( +d©a +); + +533 +gl_medŸ_s + * +g™em + = (gl_medŸ_ *) +d©a +; + +534 +gl_tim–še_s + * +td + = + `evas_objeù_d©a_g‘ +( +obj +, "data"); + +535 + `GL_CHECK +( +td +); + +537 + `__gl_tim–še_thumb_check_Ý +( +td +, +obj +, +g™em +); + +538 + } +} + +541  + $__gl_tim–še_ݒ_fže +( +gl_Žp_s + * +™_d +,  +šdex +) + +543 + `GL_CHECK_VAL +( +™_d +, -1); + +544 + `GL_CHECK_VAL +( +™_d +-> +tim–še_d +, -1); + +545 + `GL_CHECK_VAL +( +™_d +-> +tim–še_d +-> +ad +, -1); + +546 + `gl_dbg +("šdex: %d", +šdex +); + +547 + `gl_dbg +("¡¬t_pos-%d,ƒnd_pos-%d", +™_d +-> +¡¬t_pos +, it_d-> +’d_pos +); + +549 #ifdeà +_USE_SVI + + +551 + `_gl_¶ay_sound +( +™_d +-> +tim–še_d +-> +ad +); + +554 +Eša_Li¡ + * +li¡ + = +NULL +; + +555 + `_gl_d©a_g‘_™ems +( +™_d +-> +¡¬t_pos +, it_d-> +’d_pos +, & +li¡ +); + +556 ià( +li¡ + =ð +NULL +) { + +557 + `gl_dbgW +("Empty†ist!"); + +560 +gl_medŸ_s + * +™em + = +NULL +; + +561 +™em + = + `eša_li¡_Áh +( +li¡ +, +šdex +); + +563 ià( +™em + && i‹m-> +fže_u¾ +) + +564 + `_gl_ext_lßd_iv_tim–še +( +™_d +-> +tim–še_d +-> +ad +, +™em +-> +fže_u¾ +, + +565 ( +™_d +-> +¡¬t_pos + + +šdex + + 1)); + +567 + `gl_dbgW +("Image wasn't found!"); + +568 + `_gl_d©a_ty³_ä“_medŸ_li¡ +(& +li¡ +); + +570 + } +} + +572  + $__gl_tim–še_mou£_down +(* +d©a +, +Evas + * +e +, +Evas_Objeù + * +obj +, + +573 * +ei +) + +575 + `GL_CHECK +( +ei +); + +576 + `GL_CHECK +( +d©a +); + +577 +gl_Žp_s + * +™_d + = (gl_Žp_ *) +d©a +; + +578 + `GL_CHECK +( +™_d +-> +tim–še_d +); + +579 +Evas_Ev’t_Mou£_Down + * +ev + = (Evas_Ev’t_Mou£_DowÀ*) +ei +; + +581 +™_d +-> +tim–še_d +-> +mou£ +. +x + = +ev +-> +ouut +.x; + +582 +™_d +-> +tim–še_d +-> +mou£ +. +y + = +ev +-> +ouut +.y; + +583 + } +} + +585  + $__gl_tim–še_mou£_up +(* +d©a +, +Evas + * +e +, +Evas_Objeù + * +obj +, + +586 * +ei +) + +588 + `GL_CHECK +( +ei +); + +589 + `GL_CHECK +( +d©a +); + +590 +gl_Žp_s + * +™_d + = (gl_Žp_ *) +d©a +; + +591 + `GL_CHECK +( +™_d +-> +tim–še_d +); + +592 + `GL_CHECK +( +™_d +-> +tim–še_d +-> +ad +); + +594 ià(! +ei + || ! +obj +) + +597 +Evas_Ev’t_Mou£_Up + * +ev + = (Evas_Ev’t_Mou£_U°*) +ei +; + +598 ià( +ev +-> +ev’t_æags + & +EVAS_EVENT_FLAG_ON_HOLD + || + +599 +ev +-> +ev’t_æags + & +EVAS_EVENT_FLAG_ON_SCROLL +) + +602 ià(( + `abs +( +™_d +-> +tim–še_d +-> +mou£ +. +x + - +ev +-> +ouut +.xè> +GL_MOUSE_RANGE +) || + +603 ( + `abs +( +™_d +-> +tim–še_d +-> +mou£ +. +y + - +ev +-> +ouut +.yè> +GL_MOUSE_RANGE +)) + +606  +§ved_i + = 0; + +607 #ifdeà +_USE_ROTATE_BG + + +608 + `_gl_rÙ©e_bg_g‘_d©a +( +obj +, (**)(& +§ved_i +)); + +610 ià( +™_d +-> +tim–še_d +-> +v›w_m + !ð +GL_TL_VIEW_NORMAL +) { + +611 * +·¹ + = +NULL +; + +612 +·¹ + = + `g_¡rdup_´štf +( +GL_TL_CHECKBOX_FORMAT +, +™_d +-> +couÁ +, + +613 +§ved_i + + 1); + +614 +Evas_Objeù + * +ck + = +NULL +; + +615 +ck + = + `–m_objeù_·¹_cڋÁ_g‘ +( +™_d +-> +Ïyout +, +·¹ +); + +616 + `GL_FREEIF +( +·¹ +); + +617 + `–m_check_¡©e_£t +( +ck +, ! + `–m_check_¡©e_g‘ +(ck)); + +618 + `__gl_tim–še_check_Ý +( +™_d +, +ck +, +§ved_i +); + +620 + `__gl_tim–še_ݒ_fže +( +™_d +, +§ved_i +); + +622 + } +} + +624  + $__gl_tim–še_þ—r_bg_d©a +( +Evas_Objeù + * +bg +) + +626 + `GL_CHECK_VAL +( +bg +, -1); + +627 +gl_medŸ_s + * +™em + = +NULL +; + +628 +gl_tim–še_s + * +tim–še_d + = +NULL +; + +630 +™em + = ( +gl_medŸ_s + *) + `evas_objeù_d©a_g‘ +( +bg +, +GL_TL_TILE_DATA_KEY +); + +631 ià( +™em +) { + +632 + `gl_dbg +("Free media item!"); + +633 + `_gl_d©a_ty³_ä“_gl™em +((**)(& +™em +)); + +635 + `evas_objeù_d©a_d– +( +bg +, +GL_TL_TILE_DATA_KEY +); + +637 +tim–še_d + = ( +gl_tim–še_s + *) + `evas_objeù_d©a_g‘ +( +bg +, +GL_TL_DATA_KEY +); + +638 ià( +tim–še_d + &&im–še_d-> +thumbs +) { + +639 + `gl_dbg +("Remove object!"); + +640 +tim–še_d +-> +thumbs + = + `eša_li¡_»move +(timeline_d->thumbs, + +641 (*) +bg +); + +644 + } +} + +646  + $__gl_tim–še_d–_bg_cb +(* +d©a +, +Evas + * +e +, +Evas_Objeù + * +obj +, + +647 * +ei +) + +649 + `gl_dbgW +("Delete bg ---"); + +650 + `__gl_tim–še_þ—r_bg_d©a +( +obj +); + +652 + `evas_objeù_ev’t_ÿÎback_d– +( +obj +, +EVAS_CALLBACK_MOUSE_DOWN +, + +653 +__gl_tim–še_mou£_down +); + +654 + `evas_objeù_ev’t_ÿÎback_d– +( +obj +, +EVAS_CALLBACK_MOUSE_UP +, + +655 +__gl_tim–še_mou£_up +); + +656 + `gl_dbgW +("Delete bg +++"); + +657 + } +} + +659  +Evas_Objeù + * + $__gl_tim–še_add_·ge_bg +( +Evas_Objeù + * +Ïyout +, + +660 cÚ¡ * +·¹ +, + +661  +ܛÁ +, * +·th +, + +662  +w +,  +h +) + +664 + `GL_CHECK_NULL +( +Ïyout +); + +665 #ifdeà +_USE_ROTATE_BG + + +666 +Evas_Objeù + * +bg + = + `_gl_rÙ©e_bg_add +( +Ïyout +, +çl£ +); + +667 + `GL_CHECK_NULL +( +bg +); + +669 + `_gl_rÙ©e_bg_£t_fže +( +bg +, +·th +, +w +, +h +); + +670 + `_gl_rÙ©e_bg_rÙ©e_image +( +bg +, +ܛÁ +); + +672 + `gl_dbg +("·¹-%s", +·¹ +); + +673 + `–m_objeù_·¹_cڋÁ_£t +( +Ïyout +, +·¹ +, +bg +); + +674  +bg +; + +676  +NULL +; + +678 + } +} + +680  + $__gl_tim–še_check_chªged +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +682 + `GL_CHECK +( +d©a +); + +683 +gl_Žp_s + * +™_d + = (gl_Žp_ *) +d©a +; + +685  +idx + = () + `evas_objeù_d©a_g‘ +( +obj +, "gl_tl_idx_key"); + +686 + `__gl_tim–še_check_Ý +( +™_d +, +obj +, +idx +); + +687 + } +} + +689  +Evas_Objeù + * + $__gl_tim–še_add_ck +( +Evas_Objeù + * +Ïyout +, + +690 cÚ¡ * +·¹ +, +boÞ + +b_checked +, + +691 +gl_Žp_s + * +™_d +) + +693 + `GL_CHECK_NULL +( +Ïyout +); + +694 +Evas_Objeù + * +ck + = +NULL +; + +695 +ck + = + `_gl_thumb_show_checkbox +( +Ïyout +, +b_checked +, + +696 +__gl_tim–še_check_chªged +, +™_d +); + +697 + `gl_dbg +("·¹-%s", +·¹ +); + +698 + `–m_objeù_·¹_cڋÁ_£t +( +Ïyout +, +·¹ +, +ck +); + +699  +ck +; + +700 + } +} + +702  +Evas_Objeù + * + $__gl_tim–še_add_·ge_ly +( +Evas_Objeù + * +·»Á +, + +703 +gl_Žp_s + * +™_d +) + +705 + `GL_CHECK_NULL +( +™_d +); + +706 + `GL_CHECK_NULL +( +·»Á +); + +707 +Evas_Objeù + * +ly + = +NULL +; + +709 * +group + = +NULL +; + +710 ià( +™_d +-> +h + > it_d-> +w +) + +711 +group + = + `g_¡rdup_´štf +("g®Ëry/tim–še_%d", +™_d +-> +couÁ +); + +713 +group + = + `g_¡rdup_´štf +("g®Ëry/tim–še_%dl", +™_d +-> +couÁ +); + +715 +ly + = + `gl_ui_lßd_edj +( +·»Á +, +GL_EDJ_FILE +, +group +); + +716 + `GL_GFREE +( +group +); + +717 + `GL_CHECK_NULL +( +ly +); + +719 +Evas_Objeù + * +bg + = + `evas_objeù_»ùªgË_add +( + `evas_objeù_evas_g‘ +( +ly +)); + +720 ià(! +bg +) { + +721 + `evas_objeù_d– +( +ly +); + +722  +NULL +; + +725 + `evas_objeù_cÞÜ_£t +( +bg +, 0, 0, 0, 0); + +726 + `–m_objeù_·¹_cڋÁ_£t +( +ly +, "bg_c", +bg +); + +728 + `evas_objeù_show +( +ly +); + +729  +ly +; + +730 + } +} + +733  +boÞ + + $__gl_tim–še_is_ye¡”day +( +tm + * +»q_tm +, tm * +now_tm +) + +735 ià( +now_tm +-> +tm_yday + == 0) { + +736 ià( +»q_tm +-> +tm_y—r + =ð +now_tm +->tm_year - 1 && + +737 +»q_tm +-> +tm_mÚ + =ð11 &&„eq_tm-> +tm_mday + == 31) + +738  +Œue +; + +740  +çl£ +; + +742 ià( +»q_tm +-> +tm_y—r + =ð +now_tm +->tm_year && + +743 +»q_tm +-> +tm_yday + =ð +now_tm +->tm_yday - 1) + +744  +Œue +; + +746  +çl£ +; + +748 + } +} + +750  +boÞ + + $__gl_tim–še_is_today +( +tm + * +»q_tm +, tm * +now_tm +) + +752 ià( +»q_tm +-> +tm_y—r + =ð +now_tm +->tm_year && + +753 +»q_tm +-> +tm_yday + =ð +now_tm +->tm_yday) + +754  +Œue +; + +756  +çl£ +; + +757 + } +} + +760  + $__gl_tim–še_g‘_tm +( +time_t + +mtime1 +,ime_ˆ +mtime2 +,  +tm + * +t1 +, + +761  +tm + * +t2 +) + +763 + `GL_CHECK_VAL +( +t1 +, -1); + +764 + `GL_CHECK_VAL +( +t2 +, -1); + +766 + `mem£t +( +t1 +, 0x00, ( +tm +)); + +767 + `loÿÉime_r +(& +mtime1 +, +t1 +); + +768 + `mem£t +( +t2 +, 0x00, ( +tm +)); + +769 + `loÿÉime_r +(& +mtime2 +, +t2 +); + +771 + } +} + +775  +boÞ + + $__gl_tim–še_is_tm_chªged +( +tm + +t1 +, tm +t2 +, + +776 +gl_tm_s + * +tms +, gl_tm_ * +tme +) + +778 + `GL_CHECK_FALSE +( +tms +); + +779 + `GL_CHECK_FALSE +( +tme +); + +781 + `gl_dbgW +("%d/%d/%d-%d/%d/%d =? %d/%d/%d-%d/%d/%d!", +t1 +. +tm_y—r +,1. +tm_mÚ +, + +782 +t1 +. +tm_mday +, +t2 +. +tm_y—r +,2. +tm_mÚ +,2.tm_mday, +tms +->tm_year, + +783 +tms +-> +tm_mÚ +,ms-> +tm_mday +, +tme +-> +tm_y—r +,me->tm_mon, + +784 +tme +-> +tm_mday +); + +786 ià( +tms +-> +tm_y—r + =ð +t1 +.tm_y—¸&&ms-> +tm_mÚ + ==1.tm_mon && + +787 +tms +-> +tm_mday + =ð +t1 +.tm_mday && +tme +-> +tm_y—r + =ð +t2 +.tm_year && + +788 +tme +-> +tm_mÚ + =ð +t2 +.tm_mÚ &&me-> +tm_mday + ==2.tm_mday) + +789  +çl£ +; + +791 +tms +-> +tm_y—r + = +t1 +.tm_year; + +792 +tms +-> +tm_mÚ + = +t1 +.tm_mon; + +793 +tms +-> +tm_mday + = +t1 +.tm_mday; + +795 +tme +-> +tm_y—r + = +t2 +.tm_year; + +796 +tme +-> +tm_mÚ + = +t2 +.tm_mon; + +797 +tme +-> +tm_mday + = +t2 +.tm_mday; + +798  +Œue +; + +799 + } +} + +803  + $__gl_tim–še_g‘_mtime_¡r +( +tm + +t1 +, tm +t2 +, ** +¡r1 +, + +804 ** +¡r2 +) + +806 + `GL_CHECK_VAL +( +¡r1 +, -1); + +807 + `GL_CHECK_VAL +( +¡r2 +, -1); + +808  +tm + +ù +; + +809 +time_t + +ùime + = 0; + +810 cÚ¡ * +´efix1 + = ""; + +811 cÚ¡ * +´efix2 + = ""; + +814 * +mÚth +[12] = { +GL_STR_ID_JAN +, +GL_STR_ID_FEB +, +GL_STR_ID_MAR +, +GL_STR_ID_APR +, +GL_STR_ID_MAY +, +GL_STR_ID_JUN +, + +815 +GL_STR_ID_JUL +, +GL_STR_ID_AUG +, +GL_STR_ID_SEP +, +GL_STR_ID_OCT +, +GL_STR_ID_NOV +, +GL_STR_ID_DEC +}; + +818 + `mem£t +(& +ù +, 0x00, ( +tm +)); + +819 + `time +(& +ùime +); + +820 + `loÿÉime_r +(& +ùime +, & +ù +); + +822 ià( +t1 +. +tm_y—r + =ð +t2 +.tm_y—¸&&1. +tm_mÚ + ==2.tm_mon && + +823 +t1 +. +tm_mday + =ð +t2 +.tm_mday) { + +825 ià( + `__gl_tim–še_is_today +(& +t1 +, & +ù +)) { + +827 * +¡r1 + = + `g_¡rdup_´štf +("%s%s", +´efix1 +, + +828 +GL_STR_TODAY +); + +829 * +¡r2 + = + `g_¡rdup_´štf +("%s%s", +´efix2 +, + +833 } ià( +t1 +. +tm_y—r + =ð +t2 +.tm_y—¸&&1. +tm_mÚ + ==2.tm_mon) { + +835 ià( + `__gl_tim–še_is_ye¡”day +(& +t1 +, & +ù +)) { + +837 * +¡r1 + = + `g_¡rdup_´štf +("%s%s", +´efix1 +, + +838 +GL_STR_YESTERDAY +); + +839 * +¡r2 + = + `g_¡rdup_´štf +("%s%s", +´efix2 +, + +843 * +¡r2 + = + `g_¡rdup_´štf +("%s%d.%02d.%02d ~ %02d.%02d", +´efix2 +, + +844 +GL_DEFAULT_YEAR + + +t2 +. +tm_y—r +, + +845 +t2 +. +tm_mÚ + + 1,2. +tm_mday +, + +846 +t1 +. +tm_mÚ + + 1,1. +tm_mday +); + +847 * +¡r1 + = + `g_¡rdup_´štf +("%s%02d %s", +´efix2 +, + +848 +t1 +. +tm_mday +, +mÚth +[t1. +tm_mÚ +]); + +849 } ià( +t1 +. +tm_y—r + =ð +t2 +.tm_year) { + +851 * +¡r2 + = + `g_¡rdup_´štf +("%s%d.%02d.%02d ~ %02d.%02d", +´efix2 +, + +852 +GL_DEFAULT_YEAR + + +t2 +. +tm_y—r +, + +853 +t2 +. +tm_mÚ + + 1,2. +tm_mday +, + +854 +t1 +. +tm_mÚ + + 1,1. +tm_mday +); + +855 * +¡r1 + = + `g_¡rdup_´štf +("% %s", +´efix2 +, +mÚth +[ +t1 +. +tm_mÚ +]); + +857 * +¡r2 + = + `g_¡rdup_´štf +("%s%d.%02d.%02d ~ %d.%02d.%02d", + +858 +´efix2 +, +GL_DEFAULT_YEAR + + +t2 +. +tm_y—r +, + +859 +t2 +. +tm_mÚ + + 1,2. +tm_mday +, + +860 +GL_DEFAULT_YEAR + + +t1 +. +tm_y—r +, + +861 +t1 +. +tm_mÚ + + 1,1. +tm_mday +); + +862 * +¡r1 + = + `g_¡rdup_´štf +("%s%d ", +´efix2 +, +GL_DEFAULT_YEAR + + +t1 +. +tm_y—r +); + +865 + } +} + +868  +Evas_Objeù + * + $__gl_tim–še_add_t™Ë +( +Evas_Objeù + * +·»Á +, * +‹xt1 +, + +869 * +‹xt2 +) + +871 + `gl_dbg +(""); + +872 + `GL_CHECK_NULL +( +·»Á +); + +873 +Evas_Objeù + * +bx + = +NULL +; + +874 +Evas_Objeù + * +d©a1 + = +NULL +; + +875 +Evas_Objeù + * +d©a2 + = +NULL +; + +876  +sÿË + = + `–m_cÚfig_sÿË_g‘ +(); + +878 ià( +‹xt2 + =ð +NULL +) + +879  +GL_UI_FAILED +; + +881 +bx + = + `–m_box_add +( +·»Á +); + +882 + `GL_CHECK_NULL +( +bx +); + +883 + `–m_box_hÜizڏl_£t +( +bx +, +EINA_TRUE +); + +884 + `–m_box_homog’eous_£t +( +bx +, +EINA_FALSE +); + +885 + `evas_objeù_size_hšt_weight_£t +( +bx +, +EVAS_HINT_EXPAND +, EVAS_HINT_EXPAND); + +886 + `evas_objeù_size_hšt_®ign_£t +( +bx +, 0.0, 0.5); + +887 + `–m_box_®ign_£t +( +bx +, 0.0, 0.5); + +889 +Evas + * +evas + = + `evas_objeù_evas_g‘ +( +·»Á +); + +890 ià( +evas + =ð +NULL +) + +891  +GL_UI_FAILED +; + +893 +Evas_Objeù + * +»ù1 + = + `evas_objeù_»ùªgË_add +( +evas +); + +894 ià( +»ù1 + =ð +NULL +) + +895  +GL_UI_FAILED +; + +896 +Evas_CoÜd + +·d_w + = (Evas_CoÜd)(11 * +sÿË +); + +897 +Evas_CoÜd + +·d_h + = (Evas_CoÜd)( +GL_TIMELINE_TITLE_H + * +sÿË +); + +898 + `evas_objeù_»size +( +»ù1 +, +·d_w +, +·d_h +); + +899 + `evas_objeù_size_hšt_mš_£t +( +»ù1 +, +·d_w +, +·d_h +); + +900 + `evas_objeù_size_hšt_max_£t +( +»ù1 +, +·d_w +, +·d_h +); + +901 + `–m_box_·ck_’d +( +bx +, +»ù1 +); + +904 ià( +‹xt1 +) { + +905 +d©a1 + = + `–m_Ïb–_add +( +·»Á +); + +906 ià( +d©a1 + =ð +NULL +) + +907  +GL_UI_FAILED +; + +908 + `evas_objeù_size_hšt_weight_£t +( +d©a1 +, 0.0, +EVAS_HINT_EXPAND +); + +909 + `evas_objeù_size_hšt_®ign_£t +( +d©a1 +, 0.0, 0.5); + +910 + `–m_box_·ck_’d +( +bx +, +d©a1 +); + +911 + `evas_objeù_show +( +d©a1 +); + +913 + `gl_dbg +("%s", +‹xt1 +); + +914 + `–m_objeù_‹xt_£t +( +d©a1 +, +‹xt1 +); + +915 + `GL_GFREE +( +‹xt1 +); + +918 +Evas_Objeù + * +»ù2 + = + `evas_objeù_»ùªgË_add +( +evas +); + +919 ià( +»ù2 + =ð +NULL +) + +920  +GL_UI_FAILED +; + +921 +Evas_CoÜd + +·d2_w + = (Evas_CoÜd)(10 * +sÿË +); + +922 + `evas_objeù_»size +( +»ù2 +, +·d2_w +, +·d_h +); + +923 + `evas_objeù_size_hšt_mš_£t +( +»ù2 +, +·d2_w +, +·d_h +); + +924 + `evas_objeù_size_hšt_max_£t +( +»ù2 +, +·d2_w +, +·d_h +); + +925 + `–m_box_·ck_’d +( +bx +, +»ù2 +); + +929 +d©a2 + = + `–m_Ïb–_add +( +·»Á +); + +930 ià( +d©a2 + =ð +NULL +) + +931  +GL_UI_FAILED +; + +932 + `evas_objeù_size_hšt_weight_£t +( +d©a2 +, 0.0, +EVAS_HINT_EXPAND +); + +933 + `evas_objeù_size_hšt_®ign_£t +( +d©a2 +, 0.0, 0.5); + +934 + `–m_box_·ck_’d +( +bx +, +d©a2 +); + +935 + `evas_objeù_show +( +d©a2 +); + +937 + `gl_dbg +("%s", +‹xt2 +); + +938 + `–m_objeù_‹xt_£t +( +d©a2 +, +‹xt2 +); + +939 + `GL_GFREE +( +‹xt2 +); + +942 +Evas_Objeù + * +»ù3 + = + `evas_objeù_»ùªgË_add +( +evas +); + +943 ià( +»ù3 + =ð +NULL +) + +944  +GL_UI_FAILED +; + +945 + `evas_objeù_»size +( +»ù3 +, +·d_w +, +·d_h +); + +946 + `evas_objeù_size_hšt_mš_£t +( +»ù3 +, +·d_w +, +·d_h +); + +947 + `evas_objeù_size_hšt_max_£t +( +»ù3 +, +·d_w +, +·d_h +); + +948 + `–m_box_·ck_’d +( +bx +, +»ù3 +); + +950 + `evas_objeù_show +( +bx +); + +951  +bx +; + +953 +GL_UI_FAILED +: + +955 + `gl_dbgE +("Failedo‡dditle!"); + +956 + `GL_IF_DEL_OBJ +( +bx +); + +957  +NULL +; + +958 + } +} + +962  + $__gl_tim–še_»£t_t™Ë +( +gl_tim–še_s + * +tim–še_d +) + +964 + `GL_CHECK_VAL +( +tim–še_d +, -1); + +966 +Evas_Objeù + * +t™Ë + = + `–m_objeù_·¹_cڋÁ_un£t +( +tim–še_d +-> +Ïyout +, + +968 + `GL_CHECK_VAL +( +t™Ë +, -1); + +969 + `gl_dbg +("S‘‚ew™Ë: %p", +t™Ë +); + +970 + `–m_objeù_·¹_cڋÁ_£t +( +tim–še_d +-> +Ïyout +, "t™Ë", +t™Ë +); + +972 + `edje_objeù_sigÇl_em™ +( + `_EDJ +( +tim–še_d +-> +Ïyout +), +GL_TL_TITLE_SHOW +, + +974 + `edje_objeù_mes§ge_sigÇl_´oûss +( + `_EDJ +( +tim–še_d +-> +Ïyout +)); + +976 + } +} + +980  + $__gl_tim–še_Ú_t™Ë_hide_fšished +(* +d©a +, +Evas_Objeù + * +obj +, + +981 cÚ¡ * +emissiÚ +, + +982 cÚ¡ * +sourû +) + +984 + `GL_CHECK +( +d©a +); + +985 +gl_tim–še_s + * +tim–še_d + = (gl_tim–še_ *) +d©a +; + +987 ià(! +tim–še_d +-> +b_upd©šg_t™Ë +) { + +988 + `gl_dbgW +("Updating done!"); + +992 +Evas_Objeù + * +t™Ë + = + `–m_objeù_·¹_cڋÁ_un£t +( +tim–še_d +-> +Ïyout +, + +994 + `gl_dbg +("D–‘Þd™Ë: %p", +t™Ë +); + +995 + `GL_IF_DEL_OBJ +( +t™Ë +); + +996 + } +} + +1000  + $__gl_tim–še_Ú_t™Ë2_show_fšished +(* +d©a +, +Evas_Objeù + * +obj +, + +1001 cÚ¡ * +emissiÚ +, + +1002 cÚ¡ * +sourû +) + +1004 + `GL_CHECK +( +d©a +); + +1005 +gl_tim–še_s + * +tim–še_d + = (gl_tim–še_ *) +d©a +; + +1007 ià(! +tim–še_d +-> +b_upd©šg_t™Ë +) { + +1008 + `gl_dbgW +("Updating done!"); + +1012 + `gl_dbg +("Updateitle"); + +1013 + `__gl_tim–še_»£t_t™Ë +( +tim–še_d +); + +1014 + } +} + +1016  + $__gl_tim–še_add_t™Ë_Œªs_fšished_cbs +( +gl_tim–še_s + * +tim–še_d +, + +1017 +boÞ + +b_add +) + +1019 + `GL_CHECK_VAL +( +tim–še_d +, -1); + +1020 + `gl_dbg +("b_add: %d", +b_add +); + +1022 ià( +b_add +) { + +1024 + `edje_objeù_sigÇl_ÿÎback_add +( + `_EDJ +( +tim–še_d +-> +Ïyout +), + +1025 +GL_TL_TITLE2_SHOW_FINISHED +, "", + +1026 +__gl_tim–še_Ú_t™Ë2_show_fšished +, + +1027 (*) +tim–še_d +); + +1028 + `edje_objeù_sigÇl_ÿÎback_add +( + `_EDJ +( +tim–še_d +-> +Ïyout +), + +1029 +GL_TL_TITLE_HIDE_FINISHED +, "", + +1030 +__gl_tim–še_Ú_t™Ë_hide_fšished +, + +1031 (*) +tim–še_d +); + +1034 + `edje_objeù_sigÇl_ÿÎback_d– +( + `_EDJ +( +tim–še_d +-> +Ïyout +), + +1035 +GL_TL_TITLE2_SHOW_FINISHED +, "", + +1036 +__gl_tim–še_Ú_t™Ë2_show_fšished +); + +1037 + `edje_objeù_sigÇl_ÿÎback_d– +( + `_EDJ +( +tim–še_d +-> +Ïyout +), + +1038 +GL_TL_TITLE_HIDE_FINISHED +, "", + +1039 +__gl_tim–še_Ú_t™Ë_hide_fšished +); + +1042 + } +} + +1045  +Eša_BoÞ + + $__gl_tim–še_t™Ë_Œªs_cb +(* +d©a +) + +1047 + `GL_CHECK_CANCEL +( +d©a +); + +1048 +gl_tim–še_s + * +tim–še_d + = (gl_tim–še_ *) +d©a +; + +1049 + `gl_dbg +(""); + +1051 ià(! +tim–še_d +-> +b_upd©šg_t™Ë +) { + +1052 + `gl_dbgW +("Updating done!"); + +1053  +ECORE_CALLBACK_CANCEL +; + +1056 +tim–še_d +-> +ªim©Ü + = +NULL +; + +1058 + `edje_objeù_sigÇl_em™ +( + `_EDJ +( +tim–še_d +-> +Ïyout +), + +1059 +GL_TL_TITLE_FADE_OUT +, "elm"); + +1061 + `edje_objeù_sigÇl_em™ +( + `_EDJ +( +tim–še_d +-> +Ïyout +), + +1062 +GL_TL_TITLE2_FADE_IN +, "elm"); + +1063 + `edje_objeù_mes§ge_sigÇl_´oûss +( + `_EDJ +( +tim–še_d +-> +Ïyout +)); + +1064 + `edje_objeù_sigÇl_em™ +( + `_EDJ +( +tim–še_d +-> +Ïyout +), + +1065 +GL_TL_TITLE_HIDE_DEFERRED +, "elm"); + +1066 + `edje_objeù_mes§ge_sigÇl_´oûss +( + `_EDJ +( +tim–še_d +-> +Ïyout +)); + +1067 + `edje_objeù_sigÇl_em™ +( + `_EDJ +( +tim–še_d +-> +Ïyout +), + +1068 +GL_TL_TITLE2_SHOW_DEFERRED +, "elm"); + +1069 + `edje_objeù_mes§ge_sigÇl_´oûss +( + `_EDJ +( +tim–še_d +-> +Ïyout +)); + +1071 + `gl_dbg +("done"); + +1072  +ECORE_CALLBACK_CANCEL +; + +1073 + } +} + +1075  + $__gl_tim–še_¡¬t_t™Ë_Œªs +( +gl_tim–še_s + * +tim–še_d +) + +1077 + `GL_CHECK_VAL +( +tim–še_d +, -1); + +1078 + `edje_objeù_sigÇl_em™ +( + `_EDJ +( +tim–še_d +-> +Ïyout +), +GL_TL_TITLE_SHOW +, + +1080 + `edje_objeù_sigÇl_em™ +( + `_EDJ +( +tim–še_d +-> +Ïyout +), +GL_TL_TITLE2_CREATED +, + +1082 + `edje_objeù_mes§ge_sigÇl_´oûss +( + `_EDJ +( +tim–še_d +-> +Ïyout +)); + +1083 +tim–še_d +-> +ªim©Ü + = + `ecÜe_ªim©Ü_add +( +__gl_tim–še_t™Ë_Œªs_cb +, + +1084 +tim–še_d +); + +1086 + } +} + +1088  + $__gl_tim–še_upd©e_t™Ë +( +gl_tim–še_s + * +tim–še_d +, +gl_Žp_s + * +™_d +, + +1089 +boÞ + +b_fÜûd +) + +1091 + `GL_CHECK_VAL +( +™_d +, -1); + +1092 + `GL_CHECK_VAL +( +tim–še_d +, -1); + +1093 + `gl_dbg +("šdex-%d, couÁ-%d", +™_d +-> +šdex +, it_d-> +couÁ +); + +1094 + `gl_dbg +("¡¬t_pos-%d,ƒnd_pos-%d", +™_d +-> +¡¬t_pos +, it_d-> +’d_pos +); + +1096 +Eša_Li¡ + * +li¡ + = +NULL +; + +1097 + `_gl_d©a_g‘_™ems +( +™_d +-> +¡¬t_pos +, it_d-> +’d_pos +, & +li¡ +); + +1098 ià( +li¡ + =ð +NULL +) { + +1099 + `gl_dbgW +("Empty†ist!"); + +1103 +Evas_Objeù + * +t™Ë + = +NULL +; + +1104 +gl_medŸ_s + * +™em + = +NULL +; + +1105  +i + = 0; + +1106 +time_t + +mtime1 + = 0; + +1107 +time_t + +mtime2 + = 0; + +1108  +couÁ + = + `eša_li¡_couÁ +( +li¡ +); + +1110  +i + = 0; i < +couÁ +; i++) { + +1111 +™em + = + `eša_li¡_Áh +( +li¡ +, +i +); + +1112 ià( +™em + =ð +NULL +) { + +1113 + `gl_dbgE +("Invalid item!"); + +1117 ià( +i + == 0) + +1118 +mtime1 + = +™em +-> +mtime +; + +1119 ià( +i + =ð +couÁ + - 1) + +1120 +mtime2 + = +™em +-> +mtime +; + +1122 +™em + = +NULL +; + +1124 + `_gl_d©a_ty³_ä“_medŸ_li¡ +(& +li¡ +); + +1126  +tm + +t1 +; + +1127  +tm + +t2 +; + +1128 + `__gl_tim–še_g‘_tm +( +mtime1 +, +mtime2 +, & +t1 +, & +t2 +); + +1130 ià(! +b_fÜûd + && + +1131 ! + `__gl_tim–še_is_tm_chªged +( +t1 +, +t2 +, &( +tim–še_d +-> +tm_s +), &Ñim–še_d-> +tm_e +))) { + +1132 ià(! + `–m_objeù_·¹_cڋÁ_g‘ +( +tim–še_d +-> +Ïyout +, "title")) { + +1133 + `gl_dbgW +("Title isƒmpty,„ecreate it!"); + +1135 + `gl_dbgW +("Same mtime, change‚othing!"); + +1140 * +‹xt1 + = +NULL +; + +1141 * +‹xt2 + = +NULL +; + +1142 + `__gl_tim–še_g‘_mtime_¡r +( +t1 +, +t2 +, & +‹xt1 +, & +‹xt2 +); + +1144 +t™Ë + = + `__gl_tim–še_add_t™Ë +( +tim–še_d +-> +Ïyout +, +‹xt1 +, +‹xt2 +); + +1145 + `GL_CHECK_VAL +( +t™Ë +, -1); + +1146 ià(! +b_fÜûd + && + +1147 + `–m_objeù_·¹_cڋÁ_g‘ +( +tim–še_d +-> +Ïyout +, "title")) { + +1149 + `gl_dbg +("Animateitle"); + +1150 ià( +tim–še_d +-> +b_upd©šg_t™Ë +) { + +1151 + `gl_dbgW +("Cancel…revious‡nimation!"); + +1152 + `GL_IF_DEL_ANIMATOR +( +tim–še_d +-> +ªim©Ü +); + +1154 + `__gl_tim–še_add_t™Ë_Œªs_fšished_cbs +( +tim–še_d +, + +1155 +çl£ +); + +1156 + `__gl_tim–še_»£t_t™Ë +( +tim–še_d +); + +1158 + `__gl_tim–še_add_t™Ë_Œªs_fšished_cbs +( +tim–še_d +, + +1159 +Œue +); + +1161 +tim–še_d +-> +b_upd©šg_t™Ë + = +Œue +; + +1163 + `–m_objeù_·¹_cڋÁ_£t +( +tim–še_d +-> +Ïyout +, "t™Ë2", +t™Ë +); + +1164 + `__gl_tim–še_¡¬t_t™Ë_Œªs +( +tim–še_d +); + +1166 + `gl_dbg +("Setitle"); + +1167 + `–m_objeù_·¹_cڋÁ_£t +( +tim–še_d +-> +Ïyout +, "t™Ë", +t™Ë +); + +1170 + } +} + +1172  + $__gl_tim–še_g‘_tže_size +( +couÁ +,  +idx +, +boÞ + +b_Ïnd +, * +w +, + +1173 * +h +) + +1175 + `GL_CHECK_VAL +( +w +, -1); + +1176 + `GL_CHECK_VAL +( +h +, -1); + +1178 ià( +couÁ + == 1) { + +1179 ià( +b_Ïnd +) { + +1180 * +w + = +GL_WIN_HEIGHT +; + +1181 * +h + = +GL_TIMELINE_CONTENT_L_H +; + +1183 * +w + = +GL_WIN_WIDTH +; + +1184 * +h + = +GL_TIMELINE_CONTENT_P_H +; + +1186 } ià( +couÁ + =ð2 || (couÁ =ð3 && +idx + == 0)) { + +1187 ià(! +b_Ïnd +) { + +1188 * +w + = +GL_WIN_WIDTH + * 2 / 3; + +1189 * +h + = +GL_TIMELINE_CONTENT_P_H + / 2; + +1190 } ià( +idx + == 0) { + +1191 * +w + = +GL_WIN_HEIGHT + * 2 / 3; + +1192 * +h + = +GL_TIMELINE_CONTENT_L_H +; + +1196 + } +} + +1200  + $__gl_tim–še_d–_·ge_cb +(* +d©a +, +Evas + * +e +, +Evas_Objeù + * +obj +, + +1201 * +ei +) + +1203 + `gl_dbgW +("Delete…age ---"); + +1204 + `GL_CHECK +( +d©a +); + +1205 + `evas_objeù_sm¬t_ÿÎback_d– +( +obj +, "layout,page,deleted", + +1206 +__gl_tim–še_·ge_d–‘ed_cb +); + +1207 +gl_Žp_s + * +™_d + = (gl_Žp_ *) +d©a +; + +1208 + `GL_IF_DEL_IDLER +( +™_d +-> +upd©e_idËr +); + +1209 +™_d +-> +b_ü—‹d + = +çl£ +; + +1210 + `gl_dbgW +("Delete…age +++"); + +1211 + } +} + +1213  + $__gl_tim–še_·ge_d–‘ed_cb +(* +d©a +, +Evas_Objeù + * +obj +, + +1214 * +ei +) + +1216 + `gl_dbgW +("Deleted…age ------"); + +1217 + `evas_objeù_ev’t_ÿÎback_d– +( +obj +, +EVAS_CALLBACK_DEL +, + +1218 +__gl_tim–še_d–_·ge_cb +); + +1219 + `GL_CHECK +( +d©a +); + +1220 +gl_Žp_s + * +™_d + = (gl_Žp_ *) +d©a +; + +1221 + `GL_IF_DEL_IDLER +( +™_d +-> +upd©e_idËr +); + +1222 +™_d +-> +b_ü—‹d + = +çl£ +; + +1223 + `gl_dbgW +("Deleted…age ++++++"); + +1224 + } +} + +1227  + $__gl_tim–še_upd©e_·ge +( +gl_Žp_s + * +™_d +) + +1229 + `GL_CHECK_VAL +( +™_d +, -1); + +1230 + `GL_CHECK_VAL +( +™_d +-> +Ïyout +, -1); + +1231 + `gl_dbg +("šdex-%d, couÁ-%d", +™_d +-> +šdex +, it_d-> +couÁ +); + +1232 + `gl_dbg +("¡¬t_pos-%d,ƒnd_pos-%d", +™_d +-> +¡¬t_pos +, it_d-> +’d_pos +); + +1234 +Eša_Li¡ + * +li¡ + = +NULL +; + +1235 + `_gl_d©a_g‘_™ems +( +™_d +-> +¡¬t_pos +, it_d-> +’d_pos +, & +li¡ +); + +1236 ià( +li¡ + =ð +NULL +) { + +1237 + `gl_dbgW +("Empty†ist!"); + +1241 +boÞ + +b_Ïndsÿ³ + = +çl£ +; + +1242 ià( +™_d +-> +w + > it_d-> +h +) + +1243 +b_Ïndsÿ³ + = +Œue +; + +1245 +Evas_Objeù + * +Ïyout + = +™_d +->layout; + +1246 +Evas_Objeù + * +bg + = +NULL +; + +1247 +gl_medŸ_s + * +™em + = +NULL +; + +1248  +i + = 0; + +1249 * +·¹ + = +NULL +; + +1250  +couÁ + = + `eša_li¡_couÁ +( +li¡ +); + +1251 * +·th + = +NULL +; + +1252  +ܛÁ + = 0; + +1253  +w + = +GL_TIMELINE_PAGE_SIZE +; + +1254  +h + = +GL_TIMELINE_PAGE_SIZE +; + +1256  +i + = 0; i < +couÁ +; i++) { + +1257 +™em + = + `eša_li¡_Áh +( +li¡ +, +i +); + +1258 ià( +™em + =ð +NULL +) { + +1259 + `gl_dbgE +("Invalid item!"); + +1265 ià((( +i + =ð0 && +couÁ + <= 5) || + +1266 ( +i + =ð1 && +couÁ + <ð3 && ! +b_Ïndsÿ³ +) || + +1267 ( +i + =ð2 && +couÁ + =ð4 && ! +b_Ïndsÿ³ +) || + +1268 ( +i + =ð1 && ( +couÁ + =ð2 || couÁ =ð4è&& +b_Ïndsÿ³ +)) && + +1269 +™em +-> +ty³ + =ð +MEDIA_CONTENT_TYPE_IMAGE + && + +1270 + `GL_FILE_EXISTS +( +™em +-> +fže_u¾ +)) { + +1271 +·th + = +™em +-> +fže_u¾ +; + +1272 #ifdeà +_USE_ROTATE_BG + + +1273 ià( + `_gl_exif_g‘_ܛÁ©iÚ +( +·th +, & +ܛÁ +) < 0) { + +1274 +·th + = +™em +-> +thumb_u¾ +; + +1278 + `__gl_tim–še_g‘_tže_size +( +couÁ +, +i +, +b_Ïndsÿ³ +, & +w +, + +1279 & +h +); + +1280 +·¹ + = + `g_¡rdup_´štf +( +GL_TL_CONTENTS_FORMAT +, + +1281 +™_d +-> +couÁ +, +i + + 1); + +1282 +bg + = + `–m_objeù_·¹_cڋÁ_g‘ +( +Ïyout +, +·¹ +); + +1283 ià( +bg +) { + +1284 + `_gl_rÙ©e_bg_£t_fže +( +bg +, +·th +, +w +, +h +); + +1285 + `_gl_rÙ©e_bg_rÙ©e_image +( +bg +, +ܛÁ +); + +1287 + `gl_dbgE +("BG is invalid!"); + +1289 + `GL_GFREEIF +( +·¹ +); + +1291 +·¹ + = +NULL +; + +1292 +™em + = +NULL +; + +1294 + `_gl_d©a_ty³_ä“_medŸ_li¡ +(& +li¡ +); + +1295 + `gl_dbg +("done"); + +1297 + } +} + +1299  + $__gl_tim–še_·ge_Œªs™ed_cb +(* +d©a +, +Evas_Objeù + * +obj +, + +1300 * +ei +) + +1302 + `gl_dbgW +("Transited…age ------"); + +1303 + `evas_objeù_ev’t_ÿÎback_d– +( +obj +, +EVAS_CALLBACK_DEL +, + +1304 +__gl_tim–še_d–_·ge_cb +); + +1305 + `GL_CHECK +( +d©a +); + +1306 +gl_Žp_s + * +™_d + = (gl_Žp_ *) +d©a +; + +1307 + `GL_IF_DEL_IDLER +( +™_d +-> +upd©e_idËr +); + +1308 + `_gl_¦id”_£t_zÝ +( +™_d +-> +tim–še_d +-> +v›w +, +GL_SLIDE_ZOP_DEFAULT +); + +1309 + `__gl_tim–še_upd©e_·ge +(( +gl_Žp_s + *) +d©a +); + +1310 + `gl_dbgW +("evas_object_freeze_events_set EINA_FALSE"); + +1311 + `evas_objeù_ä“ze_ev’ts_£t +( +™_d +-> +tim–še_d +-> +v›w +, +EINA_FALSE +); + +1312 + `gl_dbgW +("Transited…age ++++++"); + +1313 + } +} + +1315  +Eša_BoÞ + + $__gl_tim–še_·ge_upd©e_idËr_cb +(* +d©a +) + +1317 + `gl_dbgW +("start"); + +1318 + `GL_CHECK_CANCEL +( +d©a +); + +1319 +gl_Žp_s + * +™_d + = (gl_Žp_ *) +d©a +; + +1320 + `GL_IF_DEL_IDLER +( +™_d +-> +upd©e_idËr +); + +1321 + `__gl_tim–še_upd©e_·ge +(( +gl_Žp_s + *) +d©a +); + +1322 + `gl_dbgW +("done"); + +1323  +ECORE_CALLBACK_CANCEL +; + +1324 + } +} + +1326  + $__gl_tim–še_check_·ge_idËr +( +gl_Žp_s + * +™_d +) + +1328 + `GL_CHECK_VAL +( +™_d +, -1); + +1329 + `GL_CHECK_VAL +( +™_d +-> +tim–še_d +, -1); + +1331 +gl_¦ide_zÝ_e + +zoom + = + `_gl_¦id”_g‘_zÝ +( +™_d +-> +tim–še_d +-> +v›w +); + +1332 + `gl_dbg +("zoom-%d,¿n_Ý-%d", +zoom +, +™_d +-> +tim–še_d +-> +Œª_Ý +); + +1333 ià( +™_d +-> +tim–še_d +-> +Œª_Ý + =ð +GL_TRANS_OP_PREPARE + || + +1334 +™_d +-> +tim–še_d +-> +Œª_Ý + =ð +GL_TRANS_OP_DONE +) { + +1335 + `gl_dbg +("Update checked byransit callback"); + +1336 } ià( +™_d +-> +tim–še_d +-> +Œª_Ý + =ð +GL_TRANS_OP_START +) { + +1337 + `gl_dbg +("Delay idler callback"); + +1338 +™_d +-> +tim–še_d +-> +idËrs + = + `eša_li¡_­³nd +(it_d->timeline_d->idlers, + +1339 +™_d +); + +1340 } ià( +zoom + =ð +GL_SLIDE_ZOP_OUT + || zoom =ð +GL_SLIDE_ZOP_IN +) { + +1341 + `gl_dbg +("Updated byransit callback"); + +1343 + `GL_IF_DEL_IDLER +( +™_d +-> +upd©e_idËr +); + +1344 + `gl_dbg +("Add idler callback"); + +1345 +™_d +-> +upd©e_idËr + = + `ecÜe_idËr_add +( +__gl_tim–še_·ge_upd©e_idËr_cb +, + +1346 +™_d +); + +1349 + } +} + +1351  + $__gl_tim–še_add_·ge_cbs +( +gl_Žp_s + * +™_d +, +Evas_Objeù + * +Ïyout +) + +1353 + `GL_CHECK_VAL +( +Ïyout +, -1); + +1354 + `GL_CHECK_VAL +( +™_d +, -1); + +1357 + `evas_objeù_ev’t_ÿÎback_add +( +Ïyout +, +EVAS_CALLBACK_DEL +, + +1358 +__gl_tim–še_d–_·ge_cb +, +™_d +); + +1359 + `evas_objeù_sm¬t_ÿÎback_add +( +Ïyout +, "layout,page,deleted", + +1360 +__gl_tim–še_·ge_d–‘ed_cb +, +™_d +); + +1362 + `evas_objeù_sm¬t_ÿÎback_add +( +Ïyout +, "layout,page,transited", + +1363 +__gl_tim–še_·ge_Œªs™ed_cb +, +™_d +); + +1365 + } +} + +1367  + $__gl_tim–še_Œªs™_Ý +( +Elm_T¿ns™_Efãù + * +d©a +, + +1368 +Elm_T¿ns™ + * +Œªs™ +,  +´og»ss +) + +1370 + `gl_dbg +(""); + +1371 + } +} + +1373  + $__gl_tim–še_Œªs™_dÚe +( +Elm_T¿ns™_Efãù + * +d©a +, +Elm_T¿ns™ + * +Œªs™ +) + +1375 + `GL_CHECK +( +d©a +); + +1376 +gl_tže_s + * +tže + = (gl_tže_ *) +d©a +; + +1377 + `gl_dbgW +("%d/%d", +tže +-> +couÁ +,že-> +tÙ® +); + +1378 ià( +tže +-> +couÁ + !ðtže-> +tÙ® +) + +1381 + `gl_dbgW +("Œª_Ý: %d", +tže +-> +tim–še_d +-> +Œª_Ý +); + +1382 ià( +tže +-> +tim–še_d +-> +Œª_Ý + =ð +GL_TRANS_OP_START +) { + +1383 +tže +-> +tim–še_d +-> +Œª_Ý + = +GL_TRANS_OP_DONE +; + +1384 + `_gl_¦id”_upd©e_fœ¡_™em +( +tže +-> +tim–še_d +-> +v›w +); + +1386 +tže +-> +tim–še_d +-> +Œª_Ý + = +GL_TRANS_OP_DEFAULT +; + +1387 + `gl_dbg +("idËrs: %p", +tže +-> +tim–še_d +-> +idËrs +); + +1388 ià( +tže +-> +tim–še_d +-> +idËrs +) { + +1389 +gl_Žp_s + * +™_d + = +NULL +; + +1390 + `EINA_LIST_FREE +( +tže +-> +tim–še_d +-> +idËrs +, +™_d +) { + +1391 + `gl_dbg +("™_d: %p", +™_d +); + +1392 +™_d +-> +upd©e_idËr + = + `ecÜe_idËr_add +( +__gl_tim–še_·ge_upd©e_idËr_cb +, + +1393 +™_d +); + +1394 +™_d + = +NULL +; + +1396 +tže +-> +tim–še_d +-> +idËrs + = +NULL +; + +1398 + } +} + +1400  + $__gl_tim–še_Œªs™_d–_cb +(* +d©a +, +Elm_T¿ns™ + * +Œªs™ +) + +1402 + `gl_dbg +(""); + +1403 + `GL_CHECK +( +d©a +); + +1404 +gl_tže_s + * +tže + = (gl_tže_ *) +d©a +; + +1405 ià( +tže +-> +couÁ + =ðtže-> +tÙ® +) { + +1406 + `gl_dbgW +("evas_object_freeze_events_set EINA_FALSE"); + +1407 + `evas_objeù_ä“ze_ev’ts_£t +( +tže +-> +tim–še_d +-> +v›w +, +EINA_FALSE +); + +1408 + `GL_IF_FREE_ELIST +( +tže +-> +tim–še_d +-> +tžes +); + +1411 + `GL_FREEIF +( +d©a +); + +1412 + } +} + +1414  + $__gl_tim–še_tže_Œªs™ +( +gl_tže_s + * +tže +) + +1416  + #GL_TL_TRANS_TIME + 0.7 + + ) + +1417 + `gl_dbg +(""); + +1418 + `GL_CHECK_VAL +( +tže +, -1); + +1420 +tže +-> +Œªs + = + `–m_Œªs™_add +(); + +1421 + `–m_Œªs™_objeù_add +( +tže +-> +Œªs +,že-> +bg +); + +1423 + `–m_Œªs™_tw“n_mode_£t +( +tže +-> +Œªs +, + +1424 +ELM_TRANSIT_TWEEN_MODE_DECELERATE +); + +1426 + `–m_Œªs™_efãù_cÞÜ_add +( +tže +-> +Œªs +, 0, 0, 0, 0, 255, 255, 255, + +1428 + `–m_Œªs™_efãù_zoom_add +( +tže +-> +Œªs +, 0.4, 1.0); + +1429 + `–m_Œªs™_efãù_add +( +tže +-> +Œªs +, +__gl_tim–še_Œªs™_Ý +, + +1430 ( +Elm_T¿ns™_Efãù + *) +tže +, + +1431 +__gl_tim–še_Œªs™_dÚe +); + +1432 + `–m_Œªs™_d–_cb_£t +( +tže +-> +Œªs +, +__gl_tim–še_Œªs™_d–_cb +,ile); + +1434 + `–m_Œªs™_du¿tiÚ_£t +( +tže +-> +Œªs +, +GL_TL_TRANS_TIME +); + +1435 + `–m_Œªs™_objeùs_fš®_¡©e_k“p_£t +( +tže +-> +Œªs +, +EINA_FALSE +); + +1436 + `–m_Œªs™_go +( +tže +-> +Œªs +); + +1438 + } +} + +1440  + $__gl_tim–še_Œªs™_tžes +( +gl_tim–še_s + * +tim–še_d +) + +1442 + `gl_dbgW +("start!"); + +1443 + `GL_CHECK_VAL +( +tim–še_d +, -1); + +1444 + `GL_CHECK_VAL +( +tim–še_d +-> +tžes +, -1); + +1445 +gl_tže_s + * +tže + = +NULL +; + +1446 +Eša_Li¡ + * +l + = +NULL +; + +1448 + `gl_dbgW +("evas_object_freeze_events_set EINA_TRUE"); + +1449 + `evas_objeù_ä“ze_ev’ts_£t +( +tim–še_d +-> +v›w +, +EINA_TRUE +); + +1452 + `EINA_LIST_FOREACH +( +tim–še_d +-> +tžes +, +l +, +tže +) { + +1453 ià( +tže +) { + +1454 + `GL_IF_DEL_TRANSIT +( +tže +-> +Œªs +); + +1455 +tže + = +NULL +; + +1459 + `EINA_LIST_FOREACH +( +tim–še_d +-> +tžes +, +l +, +tže +) { + +1460 + `__gl_tim–še_tže_Œªs™ +( +tže +); + +1461 +tže + = +NULL +; + +1463 + `gl_dbgW +("done!"); + +1465 + } +} + +1467  + $__gl_tim–še_add_tže +( +gl_Žp_s + * +™_d +, +Evas_Objeù + * +·»Á +, + +1468 +Evas_Objeù + * +bg +,  +couÁ +,  +tÙ® +) + +1470 + `GL_CHECK_VAL +( +™_d +, -1); + +1472 +gl_tže_s + * +tže + = (gl_tže_ *) + `ÿÎoc +(1, (gl_tile_s)); + +1473 + `GL_CHECK_VAL +( +tže +, -1); + +1474 +tže +-> +bg + = bg; + +1475 +tže +-> +·»Á + =…arent; + +1476 +tže +-> +™_d + = it_d; + +1477 +tže +-> +couÁ + = count; + +1478 +tže +-> +tÙ® + =otal; + +1479 +tže +-> +tim–še_d + = +™_d +->timeline_d; + +1480 +™_d +-> +tim–še_d +-> +tžes + = + `eša_li¡_­³nd +(it_d->timeline_d->tiles, + +1481 +tže +); + +1483 + } +} + +1485  +Evas_Objeù + * + $__gl_tim–še_g‘_·ge_tžes +( +gl_Žp_s + * +™_d +) + +1487 + `GL_CHECK_NULL +( +™_d +); + +1488 + `GL_CHECK_NULL +( +™_d +-> +tim–še_d +); + +1489 + `gl_dbg +("šdex-%d, couÁ-%d", +™_d +-> +šdex +, it_d-> +couÁ +); + +1490 + `gl_dbg +("¡¬t_pos-%d,ƒnd_pos-%d", +™_d +-> +¡¬t_pos +, it_d-> +’d_pos +); + +1492  +i + = 0; + +1493  +couÁ + = +™_d +->count; + +1494 * +·¹ + = +NULL +; + +1495 +Evas_Objeù + * +bg + = +NULL +; + +1497  +i + = 0; i < +couÁ +; i++) { + +1499 +·¹ + = + `g_¡rdup_´štf +( +GL_TL_CONTENTS_FORMAT +, +™_d +-> +couÁ +, + +1500 +i + + 1); + +1502 +bg +ð + `–m_objeù_·¹_cڋÁ_g‘ +( +™_d +-> +Ïyout +, +·¹ +); + +1503 + `__gl_tim–še_add_tže +( +™_d +, +NULL +, +bg +, +i + + 1, +couÁ +); + +1505 +·¹ + = +NULL +; + +1508 + } +} + +1511  + $__gl_tim–še_show_tžes_Œªs +( +gl_tim–še_s + * +tim–še_d +) + +1513 + `GL_CHECK_VAL +( +tim–še_d +, -1); + +1515 * +s™em + = + `_gl_¦id”_g‘_s™em +( +tim–še_d +-> +v›w +); + +1516 + `GL_CHECK_VAL +( +s™em +, -1); + +1517 +gl_Žp_s + * +™_d + = (gl_Žp_ *) + `_gl_¦id”_g‘_s™em_d©a +( +s™em +); + +1518 + `GL_CHECK_VAL +( +™_d +, -1); + +1520 ià( +™_d +-> +tim–še_d +-> +Œª_Ý + =ð +GL_TRANS_OP_PREPARE +) { + +1521 + `__gl_tim–še_g‘_·ge_tžes +( +™_d +); + +1522 +™_d +-> +tim–še_d +-> +Œª_Ý + = +GL_TRANS_OP_SHOW +; + +1523 + `__gl_tim–še_Œªs™_tžes +( +™_d +-> +tim–še_d +); + +1526 + } +} + +1529  + $__gl_tim–še_ü—‹_thumb_cb +( +medŸ_cڋÁ_”rÜ_e + +”rÜ +, + +1530 cÚ¡ * +·th +, * +u£r_d©a +) + +1532 + `GL_CHECK +( +u£r_d©a +); + +1533 +Evas_Objeù + * +bg + = (Evas_Objeù *) +u£r_d©a +; + +1535 ià( +”rÜ + =ð +MEDIA_CONTENT_ERROR_NONE + && + `GL_FILE_EXISTS +( +·th +) && + +1536 + `g_¡rcmp0 +( +·th +, +GL_ICON_DB_DEFAULT_THUMB +)) { + +1537 + `gl_sdbgW +("·th[%s]!", +·th +); + +1538 + `_gl_rÙ©e_bg_£t_fže +( +bg +, +·th +, +GL_TIMELINE_PAGE_SIZE +, + +1539 +GL_TIMELINE_PAGE_SIZE +); + +1540 + `_gl_rÙ©e_bg_rÙ©e_image +( +bg +, +GL_ORIENTATION_ROT_0 +); + +1542 + `gl_sdbgE +("[%d]Inv®id…©h[%s]!", +”rÜ +, +·th +); + +1545 + `__gl_tim–še_þ—r_bg_d©a +( +bg +); + +1546 + } +} + +1549  + $__gl_tim–še_ü—‹_thumbs +( +gl_tim–še_s + * +tim–še_d +) + +1551 + `GL_CHECK_VAL +( +tim–še_d +, -1); + +1552 +Eša_Li¡ + * +l + = +NULL +; + +1553 +Evas_Objeù + * +bg + = +NULL +; + +1554 +gl_medŸ_s + * +™em + = +NULL +; + +1555  +»t + = -1; + +1557 + `EINA_LIST_FOREACH +( +tim–še_d +-> +thumbs +, +l +, +bg +) { + +1558 ià( +bg + =ð +NULL +) + +1560 +™em + = ( +gl_medŸ_s + *) + `evas_objeù_d©a_g‘ +( +bg +, + +1561 +GL_TL_TILE_DATA_KEY +); + +1562 ià( +™em + && ! + `GL_FILE_EXISTS +(™em-> +thumb_u¾ +) && + +1563 + `GL_FILE_EXISTS +( +™em +-> +fže_u¾ +)) { + +1564 + `gl_dbgW +("Addhumb creation!"); + +1565 +»t + = + `_gl_d©a_ü—‹_thumb +( +™em +, + +1566 +__gl_tim–še_ü—‹_thumb_cb +, + +1567 +bg +); + +1568 ià( +»t + == 0) + +1571  +GL_TL_FAILED +; + +1573 +GL_TL_FAILED +: + +1575 + `evas_objeù_d©a_d– +( +bg +, +GL_TL_TILE_DATA_KEY +); + +1576 +tim–še_d +-> +thumbs + = + `eša_li¡_»move +(timeline_d->thumbs, + +1577 +bg +); + +1578 ià( +™em +) + +1579 + `_gl_d©a_ty³_ä“_gl™em +((**)(& +™em +)); + +1583 + } +} + +1587  + $__gl_tim–še_ÿnûl_thumbs +( +gl_tim–še_s + * +tim–še_d +) + +1589 + `GL_CHECK_VAL +( +tim–še_d +, -1); + +1590 +Eša_Li¡ + * +l + = +NULL +; + +1591 +Evas_Objeù + * +bg + = +NULL +; + +1592 +gl_medŸ_s + * +™em + = +NULL +; + +1594 + `EINA_LIST_FOREACH +( +tim–še_d +-> +thumbs +, +l +, +bg +) { + +1595 ià( +bg + =ð +NULL +) + +1597 +™em + = ( +gl_medŸ_s + *) + `evas_objeù_d©a_g‘ +( +bg +, + +1598 +GL_TL_TILE_DATA_KEY +); + +1599 ià( +™em + && i‹m-> +b_ü—‹_thumb +) { + +1600 + `gl_dbgW +("Cancelhumb creation!"); + +1601 + `_gl_d©a_ÿnûl_thumb +( +™em +); + +1605 + } +} + +1608  + $__gl_tim–še_check_thumb +( +gl_medŸ_s + * +™em +, +Evas_Objeù + * +bg +) + +1610 + `GL_CHECK_VAL +( +bg +, -1); + +1611 + `GL_CHECK_VAL +( +™em +, -1); + +1613 ià( +™em +-> +¡Üage_ty³ + !ð +GL_STORE_T_PHONE + && + +1614 +™em +-> +¡Üage_ty³ + !ð +GL_STORE_T_MMC +) + +1617 ià( + `GL_FILE_EXISTS +( +™em +-> +fže_u¾ +)) { + +1618  +»t + = -1; + +1619 +»t + = + `_gl_d©a_ü—‹_thumb +( +™em +, +__gl_tim–še_ü—‹_thumb_cb +, + +1620 (*) +bg +); + +1621  +»t +; + +1624 + } +} + +1626  + $__gl_tim–še_check_gl™em +( +gl_tim–še_s + * +tim–še_d +, + +1627 +gl_medŸ_s + * +™em +, +Evas_Objeù + * +bg +, + +1628 +boÞ + +b_check_thumb +) + +1631 ià( +b_check_thumb +) { + +1632 + `gl_dbg +("Checkhumb"); + +1633 ià( + `__gl_tim–še_check_thumb +( +™em +, +bg +) == 0) { + +1634 + `evas_objeù_d©a_£t +( +bg +, +GL_TL_TILE_DATA_KEY +, + +1635 (*) +™em +); + +1636 + `evas_objeù_d©a_£t +( +bg +, +GL_TL_DATA_KEY +, + +1637 (*) +tim–še_d +); + +1638 +tim–še_d +-> +thumbs + = + `eša_li¡_­³nd +(timeline_d->thumbs, + +1639 (*) +bg +); + +1641 + `_gl_d©a_ty³_ä“_gl™em +((**)(& +™em +)); + +1644 + `_gl_d©a_ty³_ä“_gl™em +((**)(& +™em +)); + +1647 + } +} + +1649  +Evas_Objeù + * + $__gl_tim–še_add_·ge +( +Evas_Objeù + * +·»Á +, +gl_Žp_s + * +™_d +) + +1651 + `GL_CHECK_NULL +( +™_d +); + +1652 + `GL_CHECK_NULL +( +™_d +-> +tim–še_d +); + +1653 + `GL_CHECK_NULL +( +·»Á +); + +1654 + `gl_dbg +("šdex-%d, couÁ-%d", +™_d +-> +šdex +, it_d-> +couÁ +); + +1655 + `gl_dbg +("¡¬t_pos-%d,ƒnd_pos-%d", +™_d +-> +¡¬t_pos +, it_d-> +’d_pos +); + +1657 +Eša_Li¡ + * +li¡ + = +NULL +; + +1658 + `_gl_d©a_g‘_™ems +( +™_d +-> +¡¬t_pos +, it_d-> +’d_pos +, & +li¡ +); + +1659 ià( +li¡ + =ð +NULL +) { + +1660 + `gl_dbgW +("Empty†ist!"); + +1661  +NULL +; + +1663  +couÁ + = + `eša_li¡_couÁ +( +li¡ +); + +1665 +™_d +-> +w + = it_d-> +tim–še_d +->w; + +1666 +™_d +-> +h + = it_d-> +tim–še_d +->h; + +1667 +boÞ + +b_Ïndsÿ³ + = ( +™_d +-> +h + > it_d-> +w +è? +çl£ + : +Œue +; + +1668 +Evas_Objeù + * +Ïyout + = +NULL +; + +1669 +Ïyout + = + `__gl_tim–še_add_·ge_ly +( +·»Á +, +™_d +); + +1670 + `GL_CHECK_NULL +( +Ïyout +); + +1672 ià(! +™_d +-> +b_ü—‹d +) { + +1673 +™_d +-> +b_ü—‹d + = +Œue +; + +1675 ià( +couÁ + <= 5) + +1676 + `__gl_tim–še_check_·ge_idËr +( +™_d +); + +1678 + `gl_dbg +("count>5,‚o idler for showing original file"); + +1680 +™_d +-> +Ïyout + =†ayout; + +1681 + `__gl_tim–še_add_·ge_cbs +( +™_d +, +Ïyout +); + +1683 +Evas_Objeù + * +bg + = +NULL +; + +1684 +Evas_Objeù + * +ck + = +NULL +; + +1685 +gl_medŸ_s + * +™em + = +NULL +; + +1686  +i + = 0; + +1687 * +·¹ + = +NULL +; + +1688 * +·th + = +NULL +; + +1689  +ܛÁ + = 0; + +1690  +w + = +GL_TIMELINE_PAGE_SIZE +; + +1691  +h + = +GL_TIMELINE_PAGE_SIZE +; + +1692 +boÞ + +b_check_thumb + = +çl£ +; + +1694  +i + = 0; i < +couÁ +; i++) { + +1695 +™em + = + `eša_li¡_Áh +( +li¡ +, +i +); + +1696 ià( +™em + =ð +NULL +) { + +1697 + `gl_dbgE +("Invalid item!"); + +1702 ià((( +i + =ð0 && +couÁ + <= 5) || + +1703 ( +i + =ð1 && +couÁ + <ð3 && ! +b_Ïndsÿ³ +) || + +1704 ( +i + =ð2 && +couÁ + =ð4 && ! +b_Ïndsÿ³ +) || + +1705 ( +i + =ð1 && ( +couÁ + =ð2 || couÁ =ð4è&& +b_Ïndsÿ³ +)) && + +1706 +™em +-> +ty³ + =ð +MEDIA_CONTENT_TYPE_IMAGE + && + +1707 ( +™_d +-> +tim–še_d +-> +Œª_Ý + =ð +GL_TRANS_OP_DONE + || + +1708 ! +™_d +-> +b_ü—‹d +è&& + `GL_FILE_EXISTS +( +™em +-> +fže_u¾ +)) { + +1709 +·th + = +™em +-> +fže_u¾ +; + +1710 #ifdeà +_USE_ROTATE_BG + + +1711 ià( + `_gl_exif_g‘_ܛÁ©iÚ +( +·th +, & +ܛÁ +) < 0) { + +1712 +·th + = +™em +-> +thumb_u¾ +; + +1713 +ܛÁ + = +GL_ORIENTATION_ROT_0 +; + +1714 ià(! + `GL_FILE_EXISTS +( +·th +)) { + +1715 +·th + = +GL_ICON_NO_THUMBNAIL +; + +1716 +b_check_thumb + = +Œue +; + +1720 + `__gl_tim–še_g‘_tže_size +( +couÁ +, +i +, +b_Ïndsÿ³ +, & +w +, + +1721 & +h +); + +1723 +·th + = +™em +-> +thumb_u¾ +; + +1724 #ifdeà +_USE_ROTATE_BG + + +1725 +ܛÁ + = +GL_ORIENTATION_ROT_0 +; + +1727 ià(! + `GL_FILE_EXISTS +( +·th +)) { + +1728 +·th + = +GL_ICON_NO_THUMBNAIL +; + +1729 +b_check_thumb + = +Œue +; + +1734 +·¹ + = + `g_¡rdup_´štf +( +GL_TL_CONTENTS_FORMAT +, +™_d +-> +couÁ +, + +1735 +i + + 1); + +1736 +bg + = + `__gl_tim–še_add_·ge_bg +( +Ïyout +, +·¹ +, +ܛÁ +, +·th +, +w +, + +1737 +h +); + +1738 + `evas_objeù_ev’t_ÿÎback_add +( +bg +, +EVAS_CALLBACK_DEL +, + +1739 +__gl_tim–še_d–_bg_cb +, +NULL +); + +1740 #ifdeà +_USE_ROTATE_BG + + +1741 + `_gl_rÙ©e_bg_£t_d©a +( +bg +, (*) +i +); + +1743 + `GL_GFREEIF +( +·¹ +); + +1745 + `evas_objeù_ev’t_ÿÎback_add +( +bg +, +EVAS_CALLBACK_MOUSE_DOWN +, + +1746 +__gl_tim–še_mou£_down +, +™_d +); + +1747 + `evas_objeù_ev’t_ÿÎback_add +( +bg +, +EVAS_CALLBACK_MOUSE_UP +, + +1748 +__gl_tim–še_mou£_up +, +™_d +); + +1750 ià( +™_d +-> +tim–še_d +-> +v›w_m + !ð +GL_TL_VIEW_NORMAL +) { + +1751 +·¹ + = + `g_¡rdup_´štf +( +GL_TL_CHECKBOX_FORMAT +, + +1752 +™_d +-> +couÁ +, +i + + 1); + +1753 +ck + = + `__gl_tim–še_add_ck +( +Ïyout +, +·¹ +, + +1754 + `__gl_tim–še_is_checked +( +™_d +-> +tim–še_d +, +™em +-> +uuid +), + +1755 +™_d +); + +1756 + `evas_objeù_d©a_£t +( +ck +, "gl_Ž_idx_key", (*) +i +); + +1757 + `GL_GFREEIF +( +·¹ +); + +1760 + `__gl_tim–še_check_gl™em +( +™_d +-> +tim–še_d +, +™em +, +bg + , + +1761 +b_check_thumb +); + +1762 +b_check_thumb + = +çl£ +; + +1764 ià( +™_d +-> +tim–še_d +-> +Œª_Ý + =ð +GL_TRANS_OP_PREPARE +) + +1765 + `__gl_tim–še_add_tže +( +™_d +, +·»Á +, +bg +, +i + + 1, +couÁ +); + +1767 +™em + = +NULL +; + +1769 + `GL_IF_FREE_ELIST +( +li¡ +); + +1771 ià( +™_d +-> +tim–še_d +-> +Œª_Ý + =ð +GL_TRANS_OP_PREPARE +) { + +1773 +™_d +-> +tim–še_d +-> +Œª_Ý + = +GL_TRANS_OP_START +; + +1774 + `__gl_tim–še_Œªs™_tžes +( +™_d +-> +tim–še_d +); + +1776  +Ïyout +; + +1777 + } +} + +1779  +Evas_Objeù + * + $__gl_tim–še_»£t_cks +( +Evas_Objeù + * +·»Á +, +gl_Žp_s + * +™_d +) + +1781 + `GL_CHECK_NULL +( +™_d +); + +1782 + `GL_CHECK_NULL +( +™_d +-> +tim–še_d +); + +1783 + `GL_CHECK_NULL +( +·»Á +); + +1784 + `gl_dbg +("šdex-%d, couÁ-%d", +™_d +-> +šdex +, it_d-> +couÁ +); + +1785 + `gl_dbg +("¡¬t_pos-%d,ƒnd_pos-%d", +™_d +-> +¡¬t_pos +, it_d-> +’d_pos +); + +1787 +Eša_Li¡ + * +li¡ + = +NULL +; + +1788 + `_gl_d©a_g‘_™ems +( +™_d +-> +¡¬t_pos +, it_d-> +’d_pos +, & +li¡ +); + +1789 ià( +li¡ + =ð +NULL +) { + +1790 + `gl_dbgW +("Empty†ist!"); + +1791  +NULL +; + +1793  +couÁ + = + `eša_li¡_couÁ +( +li¡ +); + +1795 +boÞ + +b_Ïndsÿ³ + = ( +™_d +-> +h + > it_d-> +w +è? +çl£ + : +Œue +; + +1796 +Evas_Objeù + * +Ïyout + = +NULL +; + +1797 +Ïyout + = + `__gl_tim–še_add_·ge_ly +( +·»Á +, +™_d +); + +1798 + `GL_CHECK_NULL +( +Ïyout +); + +1800 +™_d +-> +b_ü—‹d + = +Œue +; + +1801 +™_d +-> +Ïyout + =†ayout; + +1802 + `__gl_tim–še_add_·ge_cbs +( +™_d +, +Ïyout +); + +1804 +Evas_Objeù + * +bg + = +NULL +; + +1805 +Evas_Objeù + * +ck + = +NULL +; + +1806 +gl_medŸ_s + * +™em + = +NULL +; + +1807  +i + = 0; + +1808 * +·¹ + = +NULL +; + +1809 * +·th + = +NULL +; + +1810  +ܛÁ + = 0; + +1811  +w + = +GL_TIMELINE_PAGE_SIZE +; + +1812  +h + = +GL_TIMELINE_PAGE_SIZE +; + +1813 +boÞ + +b_check_thumb + = +çl£ +; + +1815  +i + = 0; i < +couÁ +; i++) { + +1816 +™em + = + `eša_li¡_Áh +( +li¡ +, +i +); + +1817 ià( +™em + =ð +NULL +) { + +1818 + `gl_dbgE +("Invalid item!"); + +1823 ià((( +i + =ð0 && +couÁ + <= 5) || + +1824 ( +i + =ð1 && +couÁ + <ð3 && ! +b_Ïndsÿ³ +) || + +1825 ( +i + =ð2 && +couÁ + =ð4 && ! +b_Ïndsÿ³ +) || + +1826 ( +i + =ð1 && ( +couÁ + =ð2 || couÁ =ð4è&& +b_Ïndsÿ³ +)) && + +1827 +™em +-> +ty³ + =ð +MEDIA_CONTENT_TYPE_IMAGE + && + +1828 + `GL_FILE_EXISTS +( +™em +-> +fže_u¾ +)) { + +1829 +·th + = +™em +-> +fže_u¾ +; + +1830 #ifdeà +_USE_ROTATE_BG + + +1831 ià( + `_gl_exif_g‘_ܛÁ©iÚ +( +·th +, & +ܛÁ +) < 0) { + +1832 +·th + = +™em +-> +thumb_u¾ +; + +1833 +ܛÁ + = +GL_ORIENTATION_ROT_0 +; + +1834 ià(! + `GL_FILE_EXISTS +( +·th +)) { + +1835 +·th + = +GL_ICON_NO_THUMBNAIL +; + +1836 +b_check_thumb + = +Œue +; + +1840 + `__gl_tim–še_g‘_tže_size +( +couÁ +, +i +, +b_Ïndsÿ³ +, & +w +, + +1841 & +h +); + +1843 +·th + = +™em +-> +thumb_u¾ +; + +1844 #ifdeà +_USE_ROTATE_BG + + +1845 +ܛÁ + = +GL_ORIENTATION_ROT_0 +; + +1847 ià(! + `GL_FILE_EXISTS +( +·th +)) { + +1848 +·th + = +GL_ICON_NO_THUMBNAIL +; + +1849 +b_check_thumb + = +Œue +; + +1854 +·¹ + = + `g_¡rdup_´štf +( +GL_TL_CONTENTS_FORMAT +, +™_d +-> +couÁ +, + +1855 +i + + 1); + +1856 +bg + = + `__gl_tim–še_add_·ge_bg +( +Ïyout +, +·¹ +, +ܛÁ +, +·th +, +w +, + +1857 +h +); + +1858 + `evas_objeù_ev’t_ÿÎback_add +( +bg +, +EVAS_CALLBACK_DEL +, + +1859 +__gl_tim–še_d–_bg_cb +, +NULL +); + +1860 #ifdeà +_USE_ROTATE_BG + + +1861 + `_gl_rÙ©e_bg_£t_d©a +( +bg +, (*) +i +); + +1863 + `GL_GFREEIF +( +·¹ +); + +1865 + `evas_objeù_ev’t_ÿÎback_add +( +bg +, +EVAS_CALLBACK_MOUSE_DOWN +, + +1866 +__gl_tim–še_mou£_down +, +™_d +); + +1867 + `evas_objeù_ev’t_ÿÎback_add +( +bg +, +EVAS_CALLBACK_MOUSE_UP +, + +1868 +__gl_tim–še_mou£_up +, +™_d +); + +1870 ià( +™_d +-> +tim–še_d +-> +v›w_m + !ð +GL_TL_VIEW_NORMAL +) { + +1871 +·¹ + = + `g_¡rdup_´štf +( +GL_TL_CHECKBOX_FORMAT +, + +1872 +™_d +-> +couÁ +, +i + + 1); + +1873 +ck + = + `__gl_tim–še_add_ck +( +Ïyout +, +·¹ +, + +1874 + `__gl_tim–še_is_checked +( +™_d +-> +tim–še_d +, +™em +-> +uuid +), + +1875 +™_d +); + +1876 + `evas_objeù_d©a_£t +( +ck +, "gl_Ž_idx_key", (*) +i +); + +1877 + `GL_GFREEIF +( +·¹ +); + +1880 + `__gl_tim–še_check_gl™em +( +™_d +-> +tim–še_d +, +™em +, +bg + , + +1881 +b_check_thumb +); + +1882 +b_check_thumb + = +çl£ +; + +1884 +™em + = +NULL +; + +1886 + `GL_IF_FREE_ELIST +( +li¡ +); + +1887  +Ïyout +; + +1888 + } +} + +1890  +boÞ + + $__gl_tim–še_£t_cks_¡©e +( +gl_Žp_s + * +™_d +, +boÞ + +b_checked +) + +1892 + `GL_CHECK_FALSE +( +™_d +); + +1893 + `GL_CHECK_FALSE +( +™_d +-> +tim–še_d +); + +1894 + `gl_dbg +("šdex-%d, couÁ-%d", +™_d +-> +šdex +, it_d-> +couÁ +); + +1895 + `gl_dbg +("¡¬t_pos-%d,ƒnd_pos-%d", +™_d +-> +¡¬t_pos +, it_d-> +’d_pos +); + +1896 + `gl_dbg +("checkbox: %d", +b_checked +); + +1898 +Evas_Objeù + * +ck + = +NULL +; + +1899  +i + = 0; + +1900 * +·¹ + = +NULL +; + +1901 +Eša_BoÞ + +checked + = +EINA_FALSE +; + +1903  +i + = 0; i < +™_d +-> +couÁ +; i++) { + +1904 +·¹ + = + `g_¡rdup_´štf +( +GL_TL_CHECKBOX_FORMAT +, +™_d +-> +couÁ +, + +1905 +i + + 1); + +1906 +ck + = + `–m_objeù_·¹_cڋÁ_g‘ +( +™_d +-> +Ïyout +, +·¹ +); + +1907 ià( +ck +) { + +1908 +checked + = + `–m_check_¡©e_g‘ +( +ck +); + +1909 ià( +checked + !ð +b_checked +) + +1910 + `–m_check_¡©e_£t +( +ck +, +b_checked +); + +1912 + `gl_dbgW +("Invalid checkbox!"); + +1914 + `GL_GFREEIF +( +·¹ +); + +1916  +Œue +; + +1917 + } +} + +1919  + $__gl_tim–še_ä“_·ges +( +gl_tim–še_s + * +tim–še_d +) + +1921 + `GL_CHECK_VAL +( +tim–še_d +, -1); + +1922 ià( +tim–še_d +-> +li¡ +) { + +1923 + `gl_dbgW +("############## Free…ages ###############"); + +1924 * +Ž_d + = +NULL +; + +1925 + `EINA_LIST_FREE +( +tim–še_d +-> +li¡ +, +Ž_d +) { + +1926 + `GL_FREEIF +( +Ž_d +); + +1928 +tim–še_d +-> +li¡ + = +NULL +; + +1930 + `gl_dbgW +("None…ages!"); + +1933 + } +} + +1935  + $__gl_tim–še_upd©e_tžes_út +( +zËv– +,  +deçuÉ_út +) + +1937  +tžes_út + = 0; + +1939 ià( +zËv– + =ð +GL_TM_ZOOM_OUT_TWO +) { + +1940 +tžes_út + = +GL_TL_PINCH_OUT_2_CNT +; + +1941 } ià( +zËv– + =ð +GL_TM_ZOOM_OUT_ONE +) { + +1942 ià( +deçuÉ_út + <= 2) + +1943 +tžes_út + = +deçuÉ_út + * +GL_TL_PINCH_OUT_CNT_STEP +; + +1945 +tžes_út + = +GL_TL_PINCH_OUT_1_CNT +; + +1947 +tžes_út + = +deçuÉ_út +; + +1949  +tžes_út +; + +1950 + } +} + +1952  + $__gl_tim–še_upd©e_zoom_æags +( +gl_tim–še_s + * +tim–še_d +, + +1953 +boÞ + +b_pout +) + +1955 + `GL_CHECK_VAL +( +tim–še_d +, -1); + +1958 ià(! +b_pout +) { + +1959 +tim–še_d +-> +zoom_Ëv– +++; + +1960 + `_gl_¦id”_£t_zÝ +( +tim–še_d +-> +v›w +, +GL_SLIDE_ZOP_IN +); + +1962 +tim–še_d +-> +zoom_Ëv– +--; + +1963 + `_gl_¦id”_£t_zÝ +( +tim–še_d +-> +v›w +, +GL_SLIDE_ZOP_OUT +); + +1966 ià( +tim–še_d +-> +zoom_Ëv– + =ð +GL_TM_ZOOM_DEFAULT +) + +1967 + `_gl_¦id”_£t_zËv– +( +tim–še_d +-> +v›w +, +GL_SLIDE_ZLEVEL_MAX +); + +1968 ià( +tim–še_d +-> +zoom_Ëv– + =ð +GL_TM_ZOOM_OUT_TWO +) + +1969 + `_gl_¦id”_£t_zËv– +( +tim–še_d +-> +v›w +, +GL_SLIDE_ZLEVEL_MIN +); + +1971 + `_gl_¦id”_£t_zËv– +( +tim–še_d +-> +v›w +, +GL_SLIDE_ZLEVEL_MID +); + +1973 + } +} + +1975  + $__gl_tim–še_upd©e_zoom_·ges +( +gl_tim–še_s + * +tim–še_d +, + +1976 +boÞ + +b_pout +) + +1978 + `GL_CHECK_VAL +( +tim–še_d +, -1); + +1979  +i + = 0; + +1980 +gl_Žp_s + * +™_d + = +NULL +; + +1981  +šdex + = 0; + +1983 * +s™em + = + `_gl_¦id”_g‘_s™em +( +tim–še_d +-> +v›w +); + +1984 + `GL_CHECK_VAL +( +s™em +, -1); + +1985 +™_d + = ( +gl_Žp_s + *) + `_gl_¦id”_g‘_s™em_d©a +( +s™em +); + +1986 + `GL_CHECK_VAL +( +™_d +, -1); + +1987  +·ge_fœ¡_img_idx + = +™_d +-> +¡¬t_pos +; + +1988  +Ãw_cur_·ge_idx + = 0; + +1989  +li¡_út + = + `eša_li¡_couÁ +( +tim–še_d +-> +couÁ_li¡ +); + +1990 + `gl_dbg +("Ëv–: %d, couÁ: %d, couÁ_li¡: %d", +tim–še_d +-> +zoom_Ëv– +, + +1991 +tim–še_d +-> +couÁ +, +li¡_út +); + +1992  +út + = 0; + +1995 + `__gl_tim–še_upd©e_zoom_æags +( +tim–še_d +, +b_pout +); + +1996 + `evas_objeù_ä“ze_ev’ts_£t +( +tim–še_d +-> +v›w +, +EINA_TRUE +); + +1997 + `GL_TL_CLEAR_PAGES +( +tim–še_d +, +çl£ +); + +1998 + `gl_dbgW +("evas_object_freeze_events_set EINA_TRUE"); + +2000  +i + = 0; i < +tim–še_d +-> +couÁ +;) { + +2002 +™_d + = ( +gl_Žp_s + *) + `ÿÎoc +(1, (gl_tlp_s)); + +2004 +tim–še_d +-> +li¡ + = + `eša_li¡_­³nd +Ñim–še_d->li¡, +™_d +); + +2005 +™_d +-> +tim–še_d + =imeline_d; + +2006 ià( +li¡_út + > +šdex +) { + +2008 +út + = () + `eša_li¡_Áh +( +tim–še_d +-> +couÁ_li¡ +, + +2009 +šdex +); + +2010 + `gl_dbg +("%d", +út +); + +2013 +út + = 1 + + `¿nd +() % 5; + +2014 +tim–še_d +-> +couÁ_li¡ + = + `eša_li¡_­³nd +(timeline_d->count_list, + +2015 (*) +út +); + +2018 +™_d +-> +couÁ + = + `__gl_tim–še_upd©e_tžes_út +( +tim–še_d +-> +zoom_Ëv– +, + +2019 +út +); + +2020 +™_d +-> +šdex + = index++; + +2021 +™_d +-> +¡¬t_pos + = +i +; + +2023 +i + +ð +™_d +-> +couÁ +; + +2024 +™_d +-> +’d_pos + = +i + - 1; + +2026 ià( +Ãw_cur_·ge_idx + ==0 && + +2027 +·ge_fœ¡_img_idx + >ð +™_d +-> +¡¬t_pos + && + +2028 +·ge_fœ¡_img_idx + <ð +™_d +-> +’d_pos +) { + +2029 + `gl_dbgW +("New…age index got!"); + +2030 +Ãw_cur_·ge_idx + = +™_d +-> +šdex +; + +2033 ià( +tim–še_d +-> +zoom_Ëv– + !ð +GL_TM_ZOOM_OUT_TWO + && + +2034 +i + >ð +tim–še_d +-> +couÁ +) { + +2035 +™_d +-> +’d_pos + = +tim–še_d +-> +couÁ + - 1; + +2036 +™_d +-> +couÁ + = it_d-> +’d_pos + - it_d-> +¡¬t_pos + + 1; + +2039 +™_d + = +NULL +; + +2041 + `gl_dbg +("Ëngth: %d", + `eša_li¡_couÁ +( +tim–še_d +-> +li¡ +)); + +2043 + `_gl_¦id”_£t_li¡ +( +tim–še_d +-> +v›w +,im–še_d-> +li¡ +, + +2044 +Ãw_cur_·ge_idx +); + +2045 + `_gl_¦id”_lßd_fœ¡_™em +( +tim–še_d +-> +v›w +); + +2047 + } +} + +2049  +Eša_BoÞ + + $__gl_tim–še_zoom_š +( +gl_tim–še_s + * +tim–še_d +) + +2051 + `GL_CHECK_FALSE +( +tim–še_d +); + +2052 + `gl_dbg +(""); + +2054 ià( + `gl_g‘_v›w_mode +( +tim–še_d +-> +ad +è!ð +GL_VIEW_TIMELINE +) + +2055  +çl£ +; + +2057 + `gl_dbg +("Ëv–: %d", +tim–še_d +-> +zoom_Ëv– +); + +2058 ià( +tim–še_d +-> +zoom_Ëv– + >ð +GL_TM_ZOOM_DEFAULT +) + +2059  +çl£ +; + +2062 + `__gl_tim–še_upd©e_zoom_·ges +( +tim–še_d +, +çl£ +); + +2063  +Œue +; + +2064 + } +} + +2066  +Eša_BoÞ + + $__gl_tim–še_zoom_out +( +gl_tim–še_s + * +tim–še_d +) + +2068 + `GL_CHECK_FALSE +( +tim–še_d +); + +2069 + `gl_dbg +(""); + +2071 ià( + `gl_g‘_v›w_mode +( +tim–še_d +-> +ad +è!ð +GL_VIEW_TIMELINE +) + +2072  +çl£ +; + +2074 + `gl_dbg +("Ëv–: %d", +tim–še_d +-> +zoom_Ëv– +); + +2075 ià( +tim–še_d +-> +zoom_Ëv– + <ð +GL_TM_ZOOM_OUT_TWO +) + +2076  +çl£ +; + +2079 + `__gl_tim–še_upd©e_zoom_·ges +( +tim–še_d +, +Œue +); + +2080  +Œue +; + +2081 + } +} + +2083  + $__gl_tim–še_¦id”_þicked_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +2085 + `gl_dbg +(""); + +2086 + } +} + +2088  + $__gl_tim–še_¦id”_lÚg_´ess_¡¬t_cb +(* +d©a +, + +2089 +Evas_Objeù + * +obj +, * +ei +) + +2091 + `gl_dbg +(""); + +2092 + } +} + +2094  + $__gl_tim–še_¦id”_lÚg_´ess_’d_cb +(* +d©a +, +Evas_Objeù + * +obj +, + +2095 * +ei +) + +2097 + `gl_dbg +(""); + +2098 + } +} + +2100  + $__gl_tim–še_¦id”_™em_chªged_cb +(* +d©a +, +Evas_Objeù + * +obj +, + +2101 * +ei +) + +2103 + `GL_CHECK +( +ei +); + +2104 + `GL_CHECK +( +d©a +); + +2105 + `gl_dbg +(""); + +2107 + `__gl_tim–še_upd©e_t™Ë +(( +gl_tim–še_s + *) +d©a +, + +2108 ( +gl_Žp_s + *) + `_gl_¦id”_g‘_s™em_d©a +( +ei +), + +2109 +çl£ +); + +2110 + } +} + +2112  + $__gl_tim–še_¦id”_™em_¡©e_chªged_cb +(* +d©a +, + +2113 +Evas_Objeù + * +obj +, + +2114 * +ei +) + +2116 + `gl_dbg +(""); + +2117 + } +} + +2119  + $__gl_tim–še_¦id”_™ems_»sized_cb +(* +d©a +, +Evas_Objeù + * +obj +, + +2120 * +ei +) + +2122 + `gl_dbgW +("start"); + +2123 + `GL_CHECK +( +d©a +); + +2124 +gl_tim–še_s + * +tim–še_d + = (gl_tim–še_ *) +d©a +; + +2125 + `GL_CHECK +( +tim–še_d +-> +ad +); + +2126 + `_gl_maš_add_»g_idËr +( +tim–še_d +-> +ad +); + +2127 ià(! +tim–še_d +-> +b_ü—‹d +) { + +2128 +tim–še_d +-> +b_ü—‹d + = +Œue +; + +2129 + `_gl_¦id”_lßd_fœ¡_™em +( +tim–še_d +-> +v›w +); + +2131 ià( +tim–še_d +-> +Œª_Ý + =ð +GL_TRANS_OP_SHOW +) { + +2132 + `gl_dbgW +("Changeransit operation mode!"); + +2133 +tim–še_d +-> +Œª_Ý + = +GL_TRANS_OP_START +; + +2136 + `gl_dbgW +("done"); + +2137 + } +} + +2139  + $__gl_tim–še_¦id”_™ems_zoom_out_cb +(* +d©a +, +Evas_Objeù + * +obj +, + +2140 * +ei +) + +2142 + `gl_dbgW +("start"); + +2143 + `GL_CHECK +( +d©a +); + +2144 +gl_tim–še_s + * +tim–še_d + = (gl_tim–še_ *) +d©a +; + +2145 + `GL_CHECK +( +tim–še_d +-> +ad +); + +2146 + `__gl_tim–še_zoom_out +( +tim–še_d +); + +2147 + `gl_dbgW +("done"); + +2148 + } +} + +2150  + $__gl_tim–še_¦id”_™ems_zoom_š_cb +(* +d©a +, +Evas_Objeù + * +obj +, + +2151 * +ei +) + +2153 + `gl_dbgW +("start"); + +2154 + `GL_CHECK +( +d©a +); + +2155 +gl_tim–še_s + * +tim–še_d + = (gl_tim–še_ *) +d©a +; + +2156 + `GL_CHECK +( +tim–še_d +-> +ad +); + +2157 + `__gl_tim–še_zoom_š +( +tim–še_d +); + +2158 + `gl_dbgW +("done"); + +2159 + } +} + +2162  + $__gl_tim–še_»size_Ïyout_cb +(* +d©a +, +Evas + * +e +, + +2163 +Evas_Objeù + * +obj +, * +ei +) + +2165 + `GL_CHECK +( +d©a +); + +2166 +gl_tim–še_s + * +tim–še_d + = (gl_tim–še_ *) +d©a +; + +2167 +Evas_CoÜd + +x +, +y +, +w +, +h +; + +2169 + `evas_objeù_geom‘ry_g‘ +( +obj +, & +x +, & +y +, & +w +, & +h +); + +2170 + `gl_dbg +("MašV›w„esized geom‹ry XYWH(%d,%d,%d,%d)", +x +, +y +, +w +, +h +); + +2171 + `evas_objeù_d©a_£t +( +tim–še_d +-> +Ïyout +, "·ge_w", (*) +w +); + +2172 + `evas_objeù_d©a_£t +( +tim–še_d +-> +Ïyout +, "·ge_h", (*) +h +); + +2173 +tim–še_d +-> +w + = w; + +2174 +tim–še_d +-> +h + = h; + +2175 + } +} + +2179  + $__gl_tim–še_add_¦id”_cbs +( +Evas_Objeù + * +¦id” +, * +cb_d©a +) + +2181 + `GL_CHECK_VAL +( +cb_d©a +, -1); + +2182 + `GL_CHECK_VAL +( +¦id” +, -1); + +2184 + `evas_objeù_sm¬t_ÿÎback_add +( +¦id” +, "slider,clicked", + +2185 +__gl_tim–še_¦id”_þicked_cb +, + +2186 +cb_d©a +); + +2187 + `evas_objeù_sm¬t_ÿÎback_add +( +¦id” +, "slider,longpress,start", + +2188 +__gl_tim–še_¦id”_lÚg_´ess_¡¬t_cb +, + +2189 +cb_d©a +); + +2190 + `evas_objeù_sm¬t_ÿÎback_add +( +¦id” +, "slider,longpress,end", + +2191 +__gl_tim–še_¦id”_lÚg_´ess_’d_cb +, + +2192 +cb_d©a +); + +2194 + `evas_objeù_sm¬t_ÿÎback_add +( +¦id” +, "slider,item,changed", + +2195 +__gl_tim–še_¦id”_™em_chªged_cb +, + +2196 +cb_d©a +); + +2197 + `evas_objeù_sm¬t_ÿÎback_add +( +¦id” +, "slider,item,state,changed", + +2198 +__gl_tim–še_¦id”_™em_¡©e_chªged_cb +, + +2199 +cb_d©a +); + +2200 + `evas_objeù_sm¬t_ÿÎback_add +( +¦id” +, "slider,items,resized", + +2201 +__gl_tim–še_¦id”_™ems_»sized_cb +, + +2202 +cb_d©a +); + +2203 + `evas_objeù_sm¬t_ÿÎback_add +( +¦id” +, "slider,items,zoomout", + +2204 +__gl_tim–še_¦id”_™ems_zoom_out_cb +, + +2205 +cb_d©a +); + +2206 + `evas_objeù_sm¬t_ÿÎback_add +( +¦id” +, "slider,items,zoomin", + +2207 +__gl_tim–še_¦id”_™ems_zoom_š_cb +, + +2208 +cb_d©a +); + +2210 + } +} + +2212  +Evas_Objeù + * + $__gl_tim–še_ü—‹_¦id” +( +gl_tim–še_s + * +tim–še_d +) + +2214 + `GL_CHECK_NULL +( +tim–še_d +); + +2215 +Evas_Objeù + * +¦id” + = +NULL +; + +2217 +¦id” + = + `_gl_¦id”_add +( +tim–še_d +-> +Ïyout +); + +2218 + `GL_CHECK_NULL +( +¦id” +); + +2220 + `evas_objeù_d©a_£t +( +¦id” +, "create_func", + +2221 (*) +__gl_tim–še_add_·ge +); + +2222 + `evas_objeù_d©a_£t +( +¦id” +, "reset_cks_func", + +2223 (*) +__gl_tim–še_»£t_cks +); + +2224 + `evas_objeù_d©a_£t +( +¦id” +, "set_cks_state_func", + +2225 (*) +__gl_tim–še_£t_cks_¡©e +); + +2226 + `__gl_tim–še_add_¦id”_cbs +( +¦id” +, (*) +tim–še_d +); + +2227  +bx + = 0; + +2228  +by + = 0; + +2229  +bw + = 0; + +2230  +bh + = 0; + +2231 + `evas_objeù_geom‘ry_g‘ +( +¦id” +, & +bx +, & +by +, & +bw +, & +bh +); + +2232 + `gl_dbg +("¦id”. (%d,%d,%d,%d)", +bx +, +by +, +bw +, +bh +); + +2234  +¦id” +; + +2235 + } +} + +2238  + $__gl_tim–Ã_show_nocڋÁs +( +gl_tim–še_s + * +tim–še_d +) + +2240 + `GL_CHECK_VAL +( +tim–še_d +, -1); + +2241 + `GL_CHECK_VAL +( +tim–še_d +-> +ad +, -1); + +2243 ià( +tim–še_d +-> +nocڋÁs +) { + +2244 + `gl_dbgW +("Already created!"); + +2248 + `GL_IF_DEL_OBJ +( +tim–še_d +-> +v›w +); + +2249 +Evas_Objeù + * +t™Ë + = + `–m_objeù_·¹_cڋÁ_g‘ +( +tim–še_d +-> +Ïyout +, + +2251 + `GL_IF_DEL_OBJ +( +t™Ë +); + +2253 +Evas_Objeù + * +noc + = + `_gl_nocڋÁs_ü—‹ +( +tim–še_d +-> +·»Á +); + +2254 + `–m_objeù_·¹_cڋÁ_£t +( +tim–še_d +-> +·»Á +, "elm.swallow.view", + +2255 +noc +); + +2256 +tim–še_d +-> +nocڋÁs + = +noc +; + +2259 + } +} + +2261  + $__gl_tim–Ã_d–_nocڋÁs +( +gl_tim–še_s + * +tim–še_d +) + +2263 + `GL_CHECK_VAL +( +tim–še_d +, -1); + +2264 + `GL_CHECK_VAL +( +tim–še_d +-> +ad +, -1); + +2266 ià( +tim–še_d +-> +nocڋÁs + =ð +NULL +) + +2269 + `gl_dbg +("Delete‚ocontents view first"); + +2270 + `GL_IF_DEL_OBJ +( +tim–še_d +-> +nocڋÁs +); + +2272 +Evas_Objeù + * +v›w + = + `__gl_tim–še_ü—‹_li¡_v›w +( +tim–še_d +, +çl£ +); + +2273 ià( +v›w + =ð +NULL +) { + +2274 + `gl_dbgE +("Failedo create view!"); + +2275 + `__gl_tim–Ã_show_nocڋÁs +( +tim–še_d +); + +2276 + `–m_Çviäame_™em_t™Ë_’abËd_£t +( +tim–še_d +-> +nf_™ +, +EINA_FALSE +, EINA_FALSE); + +2280 + `–m_Çviäame_™em_t™Ë_’abËd_£t +( +tim–še_d +-> +nf_™ +, +EINA_TRUE +, EINA_TRUE); + +2281 +tim–še_d +-> +v›w + = view; + +2282 + `–m_objeù_·¹_cڋÁ_£t +( +tim–še_d +-> +·»Á +, "elm.swallow.view", + +2283 +v›w +); + +2286 + } +} + +2288  + $_gl_tim–še_g‘_™em_šdex +(* +d©a +, * +·th +) + +2290 + `GL_CHECK_VAL +( +d©a +, 1); + +2291 + `GL_CHECK_VAL +( +·th +, 1); + +2292 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +2293 +gl_medŸ_s + * +g™em + = +NULL +; + +2294 ià( +ad +-> +Žšfo + &&‡d->Žšfo-> +d©a_li¡ +) { + +2295  +couÁ + = + `eša_li¡_couÁ +( +ad +-> +Žšfo +-> +d©a_li¡ +); + +2296  +i +; + +2297  +i + = 0 ; i < +couÁ + ; i++) { + +2298 +g™em + = + `eša_li¡_Áh +( +ad +-> +Žšfo +-> +d©a_li¡ +, +i +); + +2299 ià( +g™em +) { + +2300 ià(! + `¡rcmp +( +·th +, +g™em +-> +fže_u¾ +)) { + +2301  +i + + 1; + +2307 + } +} + +2309  + $__gl_tim–še_thumbs_£l_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +2311 + `GL_CHECK +( +d©a +); + +2312 +gl_tim–še_s + * +g™em + = (gl_tim–še_ *) +d©a +; + +2313 + `GL_CHECK +( +g™em +-> +ad +); + +2314 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +g™em +->ad; + +2315 + `–m_g’grid_™em_£Ëùed_£t +(( +Elm_Objeù_I‹m + *) +ei +, +EINA_FALSE +); + +2318 +gl_medŸ_s + * +™em + = +NULL +; + +2319 +™em + = + `–m_objeù_™em_d©a_g‘ +(( +Elm_Objeù_I‹m + *) +ei +); + +2320 + `_gl_ui_§ve_süÞËr_pos +( +g™em +-> +v›w +); + +2321 ià( +g™em +-> +v›w_m + !ð +GL_TL_VIEW_NORMAL +) { + +2322 +Evas_Objeù + * +ck + = +NULL +; + +2323 +ck + = + `–m_objeù_™em_·¹_cڋÁ_g‘ +(( +Elm_Objeù_I‹m + *) +ei +, +GL_THUMB_CHECKBOX +); + +2324 ià( +ck +) { + +2325 + `–m_check_¡©e_£t +( +ck +, ! + `–m_check_¡©e_g‘ +(ck)); + +2326 + `__gl_tim–še_thumb_check_Ý +( +g™em +, +ck +, +™em +); + +2328 + `gl_dbgE +("item checkbox‚ot found"); + +2331 ià( +™em + && i‹m-> +fže_u¾ +) { + +2332  +šdex + = + `_gl_tim–še_g‘_™em_šdex +( +ad +, +™em +-> +fže_u¾ +); + +2333 + `_gl_ext_lßd_iv_tim–še +( +ad +, +™em +-> +fže_u¾ +, +šdex +,‡d-> +Žšfo +-> +time_medŸ_di¥Ïy_Üd” +); + +2336 + `gl_dbgW +("Image wasn't found!"); + +2339 + `_gl_ui_»¡Üe_süÞËr_pos +( +g™em +-> +v›w +); + +2340 + } +} + +2342 +Evas_Objeù + * + $_gl_tim–še_thumbs_g‘_cڋÁ +(* +d©a +, +Evas_Objeù + * +·»Á +, + +2343  +w +,  +h +) + +2345 + `GL_CHECK_NULL +( +·»Á +); + +2346 + `GL_CHECK_NULL +( +d©a +); + +2347 +gl_medŸ_s + * +™em + = (gl_medŸ_ *) +d©a +; + +2348 * +·th + = +NULL +; + +2349 +Evas_Objeù + * +Ïyout + = +NULL +; + +2351 ià( + `GL_FILE_EXISTS +( +™em +-> +thumb_u¾ +)) { + +2352 +·th + = +™em +-> +thumb_u¾ +; + +2355 +·th + = +GL_ICON_NO_THUMBNAIL +; + +2358  +zoom_Ëv– + = +GL_ZOOM_DEFAULT +; + +2360 ià( +™em +-> +ty³ + =ð +MEDIA_CONTENT_TYPE_VIDEO +) { + +2361  +v_dur + = 0; + +2362 ià( +™em +-> +video_šfo +) { + +2363 +v_dur + = +™em +-> +video_šfo +-> +du¿tiÚ +; + +2365 +Ïyout + = + `_gl_thumb_show_video +( +·»Á +, +·th +, +v_dur +, +w +, +h +, + +2366 +zoom_Ëv– +); + +2368 ià( +™em +-> +image_šfo + && + +2369 +™em +-> +image_šfo +-> +bur¡shÙ_id +) { + +2370 +Ïyout + = + `_gl_thumb_show_image +( +·»Á +, +·th +, 0, +w +, +h +, + +2371 +zoom_Ëv– +); + +2372 +™em +-> +mode + = +GL_CM_MODE_BURSTSHOT +; + +2374 +Ïyout + = + `_gl_thumb_show_image +( +·»Á +, +·th +, 0, +w +, +h +, + +2375 +zoom_Ëv– +); + +2378  +Ïyout +; + +2379 + } +} + +2381  + $__gl_tim–še_thumbs_ü—‹_thumb_cb +( +medŸ_cڋÁ_”rÜ_e + +”rÜ +, + +2382 cÚ¡ * +·th +, * +u£r_d©a +) + +2384 + `GL_CHECK +( +u£r_d©a +); + +2385 +gl_medŸ_s + * +thumb_d©a + = (gl_medŸ_ *) +u£r_d©a +; + +2387 +thumb_d©a +-> +b_ü—‹_thumb + = +çl£ +; + +2388 ià( +”rÜ + =ð +MEDIA_CONTENT_ERROR_NONE + && + `GL_FILE_EXISTS +( +·th +) && + +2389 + `g_¡rcmp0 +( +·th +, +GL_ICON_DB_DEFAULT_THUMB +)) { + +2390 + `GL_CHECK +( +thumb_d©a +); + +2392 + `GL_FREEIF +( +thumb_d©a +-> +thumb_u¾ +); + +2393 +thumb_d©a +-> +thumb_u¾ + = + `¡rdup +( +·th +); + +2394 + `–m_g’grid_™em_upd©e +( +thumb_d©a +-> +–m_™em +); + +2396 + `gl_dbgE +("[%d]Inv®id…©h[%s]!", +”rÜ +, +·th +); + +2398 + } +} + +2401  + $_gl_tim–še_thumbs_ü—‹_thumb +( +gl_medŸ_s + * +g™em +) + +2403 + `GL_CHECK_VAL +( +g™em +, -1); + +2404 + `GL_CHECK_VAL +( +g™em +-> +fže_u¾ +, -1); + +2406 ià( + `GL_FILE_EXISTS +( +g™em +-> +fže_u¾ +)) { + +2407 + `_gl_d©a_ü—‹_thumb +( +g™em +, +__gl_tim–še_thumbs_ü—‹_thumb_cb +, + +2408 +g™em +); + +2412 + } +} + +2414  + $__gl_tim–še_thumbs_»®ized +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +2417 + `gl_dbg +("realized"); + +2418 + `GL_CHECK +( +ei +); + +2419 + `GL_CHECK +( +d©a +); + +2420 +Elm_Objeù_I‹m + * +™ + = (Elm_Objeù_I‹m *) +ei +; + +2421 +gl_medŸ_s + * +g™em + = +NULL +; + +2423 +g™em + = + `–m_objeù_™em_d©a_g‘ +( +™ +); + +2424 + `GL_CHECK +( +g™em +); + +2426 ià( +g™em +-> +¡Üage_ty³ + =ð +GL_STORE_T_MMC + || + +2427 +g™em +-> +¡Üage_ty³ + =ð +GL_STORE_T_ALL + || + +2428 +g™em +-> +¡Üage_ty³ + =ð +GL_STORE_T_PHONE +) { + +2430 ià(! + `GL_FILE_EXISTS +( +g™em +-> +thumb_u¾ +)) { + +2431 + `_gl_tim–še_thumbs_ü—‹_thumb +( +g™em +); + +2434 + } +} + +2436  + $__gl_tim–še_thumbs_uėlized +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +2438 + `gl_dbg +("unrealized"); + +2439 + `GL_CHECK +( +ei +); + +2440 + `GL_CHECK +( +d©a +); + +2441 +Elm_Objeù_I‹m + * +™ + = (Elm_Objeù_I‹m *) +ei +; + +2443 +gl_medŸ_s + * +g™em + = + `–m_objeù_™em_d©a_g‘ +( +™ +); + +2444 + `GL_CHECK +( +g™em +); + +2446 ià( +g™em +-> +¡Üage_ty³ + =ð +GL_STORE_T_MMC + || + +2447 +g™em +-> +¡Üage_ty³ + =ð +GL_STORE_T_ALL + || + +2448 +g™em +-> +¡Üage_ty³ + =ð +GL_STORE_T_PHONE +) { + +2449 ià( +g™em +-> +b_ü—‹_thumb +) { + +2450 + `_gl_d©a_ÿnûl_thumb +( +g™em +); + +2453 + } +} + +2455  + $_gl_tim–še_ݒ_fže_£Ëù_mode +(* +d©a +) + +2457 +gl_medŸ_s + * +g™em + = (gl_medŸ_ *) +d©a +; + +2458 + `GL_CHECK +( +g™em +); + +2459 + `GL_CHECK +( +g™em +-> +fže_u¾ +); + +2460 + `GL_CHECK +( + `¡¾’ +( +g™em +-> +fže_u¾ +)); + +2461 + `GL_CHECK +( +g™em +-> +ad +); + +2462 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +g™em +->ad; + +2464 + `gl_dbg +("Loading UG-IMAGE-VIEWER-SELECT-MODE"); + +2465 + `gl_ext_lßd_iv_time_ug_£Ëù_mode +( +ad +, +g™em +, +GL_UG_IV +,‡d-> +Žšfo +-> +time_medŸ_di¥Ïy_Üd” +); + +2466 + } +} + +2468  + $_gl_tim–še_ݒ_image_š_£Ëù_mode +(* +d©a +, +Evas_Objeù + * +obj +, * +ev’t_šfo +) + +2470 + `GL_CHECK +( +d©a +); + +2471 + `_gl_tim–še_ݒ_fže_£Ëù_mode +( +d©a +); + +2472 + } +} + +2474  +Evas_Objeù + * + $__gl_tim–še_thumbs_g‘_cڋÁ +(* +d©a +, +Evas_Objeù + * +obj +, + +2475 cÚ¡ * +·¹ +) + +2477 + `GL_CHECK_NULL +( +·¹ +); + +2478 + `GL_CHECK_NULL +( + `¡¾’ +( +·¹ +)); + +2479 + `GL_CHECK_NULL +( +d©a +); + +2480 +gl_medŸ_s + * +g™em + = (gl_medŸ_ *) +d©a +; + +2481 + `GL_CHECK_NULL +( +g™em +); + +2482 +gl_tim–še_s + * +tim–še_d + = (gl_tim–še_ *) + `evas_objeù_d©a_g‘ +( +obj +, "data"); + +2483 + `GL_CHECK_NULL +( +tim–še_d +); + +2484  +mode + = +tim–še_d +-> +v›w_m +; + +2486 ià(! + `g_¡rcmp0 +( +·¹ +, +GL_THUMB_ICON +)) { + +2487 +Evas_Objeù + * +Ïyout + = + `_gl_tim–še_thumbs_g‘_cڋÁ +( +g™em +, +obj +, + +2488 +tim–še_d +-> +w +, + +2489 +tim–še_d +-> +h +); + +2490 ià( +g™em +-> +¡Üage_ty³ + =ð +GL_STORE_T_MMC +) { + +2491 + `–m_objeù_™em_sigÇl_em™ +( +g™em +-> +–m_™em +, "show_sd_card_icon", "sd_card_icon_img"); + +2493  +Ïyout +; + +2494 } ià(! + `g_¡rcmp0 +( +·¹ +, +GL_THUMB_CHECKBOX +)) { + +2495 +Evas_Objeù + * +ck + = +NULL +; + +2496 ià( +mode + =ð +GL_TL_VIEW_EDIT +) { + +2497 +ck + = + `–m_check_add +( +obj +); + +2498 + `GL_CHECK_NULL +( +ck +); + +2500 #ifdeà +_USE_GRID_CHECK + + +2501 + `–m_objeù_¡yË_£t +( +ck +, "grid"); + +2503 + `–m_objeù_¡yË_£t +( +ck +, +GL_CHECKBOX_STYLE_THUMB +); + +2505 + `evas_objeù_´Ýag©e_ev’ts_£t +( +ck +, +EINA_FALSE +); + +2506 + `–m_check_¡©e_£t +( +ck +, +g™em +-> +check_¡©e +); + +2507 + `evas_objeù_d©a_£t +( +ck +, "d©a", (*) +tim–še_d +); + +2508 + `evas_objeù_sm¬t_ÿÎback_add +( +ck +, "chªged", +__gl_tim–še_thumbs_check_chªged +, +d©a +); + +2509 + `evas_objeù_show +( +ck +); + +2510 + `–m_objeù_™em_sigÇl_em™ +( +g™em +-> +–m_™em +, "show_image_icon", "elm_image_open_icon_rect"); + +2512 + `–m_objeù_™em_sigÇl_em™ +( +g™em +-> +–m_™em +, "hide_image_icon", "elm_image_open_icon_rect"); + +2514  +ck +; + +2515 } ià(! + `g_¡rcmp0 +( +·¹ +, "elm_image_open_icon_swallow_blocker")) { + +2516 +Evas_Objeù + * +bŠ1 + = +NULL +; + +2517 ià( +mode + =ð +GL_TL_VIEW_EDIT +) { + +2518 +bŠ1 + = + `evas_objeù_»ùªgË_add +( + `evas_objeù_evas_g‘ +( +obj +)); + +2519 + `evas_objeù_cÞÜ_£t +( +bŠ1 +, 0, 255, 0, 0); + +2520 + `evas_objeù_´Ýag©e_ev’ts_£t +( +bŠ1 +, +EINA_FALSE +); + +2522 +bŠ1 + = + `–m_objeù_™em_·¹_cڋÁ_g‘ +( +g™em +-> +–m_™em +, + +2524 ià( +bŠ1 +) { + +2525 + `evas_objeù_d– +( +bŠ1 +); + +2526 +bŠ1 + = +NULL +; + +2529  +bŠ1 +; + +2530 } ià(! + `g_¡rcmp0 +( +·¹ +, "elm_image_open_icon_swallow")) { + +2531 +Evas_Objeù + * +bŠ + = +NULL +; + +2532 ià( +mode + =ð +GL_TL_VIEW_EDIT +) { + +2533 +bŠ + = + `–m_bu‰Ú_add +( +obj +); + +2534 + `–m_objeù_¡yË_£t +( +bŠ +, "transparent"); + +2535 + `evas_objeù_show +( +bŠ +); + +2536 + `evas_objeù_´Ýag©e_ev’ts_£t +( +bŠ +, +EINA_FALSE +); + +2537 + `evas_objeù_sm¬t_ÿÎback_add +( +bŠ +, "þicked", +_gl_tim–še_ݒ_image_š_£Ëù_mode +, +g™em +); + +2539 +bŠ + = + `–m_objeù_™em_·¹_cڋÁ_g‘ +( +g™em +-> +–m_™em +, + +2541 ià( +bŠ +) { + +2542 + `evas_objeù_d– +( +bŠ +); + +2543 +bŠ + = +NULL +; + +2546  +bŠ +; + +2548  +NULL +; + +2549 + } +} + +2551  + $_gl_tim–še_thumb_£t_size +(* +d©a +, +Evas_Objeù + * +v›w +, * +size_w +, * +size_h +) + +2553 + `GL_CHECK_VAL +( +v›w +, -1); + +2554 + `GL_CHECK_VAL +( +d©a +, -1); + +2555 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +2556  +rÙ©e_mode + = +ad +-> +maššfo +.rotate_mode; + +2557  +_w + = 0; + +2558  +_h + = 0; + +2559  +_w_l + = 0; + +2560  +_h_l + = 0; + +2561  +wš_w + = 0; + +2562  +wš_h + = 0; + +2563  +™ems_³r_row + = 0; + +2564 + `_gl_g‘_wš_çùÜ +( +ad +-> +maššfo +. +wš +, & +wš_w +, & +wš_h +); + +2566 ià(( +rÙ©e_mode + =ð +APP_DEVICE_ORIENTATION_270 +) || + +2567 ( +rÙ©e_mode + =ð +APP_DEVICE_ORIENTATION_90 +)) { + +2568 ià( +ad +-> +pšchšfo +. +zoom_Ëv– + =ð +GL_ZOOM_IN_TWO +) { + +2569 +™ems_³r_row + = +GL_GRID_6_PER_ROW +; + +2570 } ià( +ad +-> +pšchšfo +. +zoom_Ëv– + =ð +GL_ZOOM_IN_ONE +) { + +2571 +™ems_³r_row + = +GL_GRID_7_PER_ROW +; + +2572 } ià( +ad +-> +pšchšfo +. +zoom_Ëv– + =ð +GL_ZOOM_DEFAULT +) { + +2573 +™ems_³r_row + = +GL_GRID_10_PER_ROW +; + +2575 +™ems_³r_row + = +GL_GRID_7_PER_ROW +; + +2578 ià( +ad +-> +pšchšfo +. +zoom_Ëv– + =ð +GL_ZOOM_IN_TWO +) { + +2579 +™ems_³r_row + = +GL_GRID_3_PER_ROW +; + +2580 } ià( +ad +-> +pšchšfo +. +zoom_Ëv– + =ð +GL_ZOOM_IN_ONE +) { + +2581 +™ems_³r_row + = +GL_GRID_4_PER_ROW +; + +2582 } ià( +ad +-> +pšchšfo +. +zoom_Ëv– + =ð +GL_ZOOM_DEFAULT +) { + +2583 +™ems_³r_row + = +GL_GRID_8_PER_ROW +; + +2585 +™ems_³r_row + = +GL_GRID_4_PER_ROW +; + +2589 +_w + = ()( +wš_w + / +™ems_³r_row +); + +2590 +_w_l + = ()( +wš_h + / +™ems_³r_row +); + +2591 +_h + = +_w +; + +2592 +_h_l + = +_w_l +; + +2594 ià(( +rÙ©e_mode + =ð +APP_DEVICE_ORIENTATION_270 +) || + +2595 ( +rÙ©e_mode + =ð +APP_DEVICE_ORIENTATION_90 +)) { + +2596 + `–m_g’grid_™em_size_£t +( +v›w +, +_w_l +, +_h_l +); + +2597 ià( +size_w +) + +2598 * +size_w + = +_w_l +-4; + +2599 ià( +size_h +) + +2600 * +size_h + = +_h_l +-4; + +2602 + `–m_g’grid_™em_size_£t +( +v›w +, +_w +, +_h +); + +2603 ià( +size_w +) + +2604 * +size_w + = +_w +-4; + +2605 ià( +size_h +) + +2606 * +size_h + = +_h +-4; + +2608 ià( +size_w + && +size_h +) + +2609 + `gl_dbg +("P: %dx%d, size_w: %d,size_h: %d", +_w +, +_h +, * +size_w +, * +size_h +); + +2611 + } +} + +2613 +Evas_Objeù + * + $_gl_grid_Ïyout_add +( +Evas_Objeù + * +·»Á +) + +2615 +Evas_Objeù + * +Ïyout + = +NULL +; + +2616 +Ïyout + = + `–m_Ïyout_add +( +·»Á +); + +2617 + `–m_Ïyout_fže_£t +( +Ïyout +, +GL_EDJ_FILE +, "timeline_gridview"); + +2618 + `evas_objeù_size_hšt_®ign_£t +( +Ïyout +, +EVAS_HINT_FILL +, EVAS_HINT_FILL); + +2619 + `evas_objeù_show +( +Ïyout +); + +2621  +Ïyout +; + +2622 + } +} + +2624 +Evas_Objeù + * + $_gl_grid_add +( +Evas_Objeù + * +·»Á +) + +2626 + `GL_CHECK_NULL +( +·»Á +); + +2627 +Evas_Objeù + * +grid + = + `–m_g’grid_add +( +·»Á +); + +2628 + `GL_CHECK_NULL +( +grid +); + +2630 + `–m_g’grid_®ign_£t +( +grid +, 0.0, 0.0); + +2631 + `–m_g’grid_hÜizڏl_£t +( +grid +, +EINA_FALSE +); + +2632 + `–m_süÞËr_bounû_£t +( +grid +, +EINA_FALSE +, +EINA_TRUE +); + +2633 + `–m_süÞËr_pÞicy_£t +( +grid +, +ELM_SCROLLER_POLICY_OFF +, + +2634 +ELM_SCROLLER_POLICY_AUTO +); + +2635 + `–m_g’grid_muÉi_£Ëù_£t +( +grid +, +EINA_TRUE +); + +2636 + `evas_objeù_size_hšt_weight_£t +( +grid +, +EVAS_HINT_EXPAND +, + +2637 +EVAS_HINT_EXPAND +); + +2638 + `evas_objeù_show +( +grid +); + +2640  +grid +; + +2641 + } +} + +2643  + $_gl_time_fšŸlize_medŸ_d©a +( +gl_tim–še_s + * +tim–še_d +) + +2645 + `GL_CHECK +( +tim–še_d +); + +2646 ià( +tim–še_d +-> +d©a_li¡ +) { + +2647 +gl_medŸ_s + * +™em + = +NULL +; + +2648 + `EINA_LIST_FREE +( +tim–še_d +-> +d©a_li¡ +, +™em +) { + +2649 ià(! +™em + || !™em-> +uuid +) + +2651 + `_gl_d©a_ty³_ä“_gl™em +((**)(& +™em +)); + +2652 +™em + = +NULL +; + +2655 + } +} + +2657  + $_gl_time_upd©e_£Ëùed_medŸ +( +gl_tim–še_s + * +tim–še_d +, +Eša_Li¡ + * +li¡ +) + +2659 + `GL_CHECK +( +tim–še_d +); + +2660 + `GL_CHECK +( +li¡ +); + +2661 +gl_medŸ_s + * +g™em + = +NULL +; + +2662  +i +; + +2663 ià( +li¡ +) { + +2664  +couÁ + = + `eša_li¡_couÁ +( +li¡ +); + +2665  +i + = 0; i < +couÁ + ; i++) { + +2666 +g™em + = + `eša_li¡_Áh +( +li¡ +, +i +); + +2667 ià( +g™em +) { + +2668 ià( + `__gl_tim–še_is_checked +( +tim–še_d +, +g™em +-> +uuid +)) { + +2669 +g™em +-> +check_¡©e + = +Œue +; + +2674 + } +} + +2676  + $_gl_time_v›w_­³nd_g’grid_™ems +( +Evas_Objeù + * + +2677 +pG’grid +, + +2678  +nG’I‹mIndex +, + +2679 +gl_tim–še_s + * +tim–še_d +) + +2681  +Elm_G’grid_I‹m_CÏss + * +gic +; + +2682 +gic + = + `–m_g’grid_™em_þass_Ãw +(); + +2683 +gic +-> +™em_¡yË + = +GL_GENGRID_ITEM_STYLE_THUMBNAIL +; + +2684 +gic +-> +func +. +‹xt_g‘ + = +NULL +; + +2685 +gic +-> +func +. +cڋÁ_g‘ + = +__gl_tim–še_thumbs_g‘_cڋÁ +; + +2686 +gic +-> +func +. +d– + = +NULL +; + +2688  +nCouÁ + = + `_gl_time_g‘_numb”_of_™ems_³r_row +( +tim–še_d +-> +ad +); + +2689  +nIndex + = +nG’I‹mIndex +; + +2690  +nMaxIndex + = +nIndex + + +nCouÁ +; + +2691  +nVideoLi¡Size + = + `eša_li¡_couÁ +( +tim–še_d +-> +d©a_li¡ +); + +2692 +gl_medŸ_s + * +™em + = +NULL +; + +2693 * +‹xt + = +NULL +; + +2694 +™em + = + `eša_li¡_Áh +( +tim–še_d +-> +d©a_li¡ +, +nIndex +); + +2695 ià( +™em + =ð +NULL +) { + +2696 + `gl_dbgE +("Invalid item!"); + +2699  +numb”OfI‹msOnP¬ticuÏrD©e + = + `_g‘_couÁ_of_™ems_Ú_§me_d©e +( +™em +, +tim–še_d +-> +d©a_li¡ +, & +‹xt +, +nIndex ++1); + +2700  +k + =1; + +2701 +Elm_Objeù_I‹m + * +gridI‹m + = +NULL +; + +2702 ; ( +nIndex + < +nMaxIndex +è&& (nIndex < +nVideoLi¡Size +è&& ( +k + <ð +numb”OfI‹msOnP¬ticuÏrD©e +) ;‚Index++) { + +2703 +™em + = + `eša_li¡_Áh +( +tim–še_d +-> +d©a_li¡ +, +nIndex +); + +2704 +gridI‹m + = + +2705 + `–m_g’grid_™em_­³nd +( +pG’grid +, +gic +, +™em +, +__gl_tim–še_thumbs_£l_cb +, +tim–še_d +); + +2706 + `–m_g’grid_™em_£Ëù_mode_£t +( +gridI‹m +, + +2707 +ELM_OBJECT_SELECT_MODE_ALWAYS +); + +2708 +™em +-> +–m_™em + = +gridI‹m +; + +2709 +™em +-> +ad + = +tim–še_d +->ad; + +2710 +k +++; + +2712 + `–m_g’li¡_™em_þass_ä“ +( +gic +); + +2713 + `_gl_tim–še_thumb_£t_size +( +tim–še_d +-> +ad +, +pG’grid +, &tim–še_d-> +w +, &tim–še_d-> +h +); + +2714 + } +} + +2716  +Evas_Objeù + * + $__gl_g‘_icÚ_of_grid_cb +(const  + +2717 * +pU£rD©a +, + +2718 +Evas_Objeù + * + +2719 +pObjeù +, + +2721 * +pP¬t +) + +2723  +nG’I‹mIndex + = (è +pU£rD©a +; + +2724 +gl_tim–še_s + * +tim–še_d + = (gl_tim–še_ *) + `evas_objeù_d©a_g‘ +( +pObjeù +,"data"); + +2725 ià(! +tim–še_d +) { + +2726  +NULL +; + +2729 +Evas_Objeù + * +pG’grid + = + `_gl_grid_add +( +pObjeù +); + +2730 ià(! +pG’grid +) { + +2731  +NULL +; + +2734 + `evas_objeù_d©a_£t +( +pG’grid +, "d©a", (*) +tim–še_d +); + +2735 + `evas_objeù_sm¬t_ÿÎback_add +( +pG’grid +, "»®ized", +__gl_tim–še_thumbs_»®ized +, +tim–še_d +); + +2736 + `evas_objeù_sm¬t_ÿÎback_add +( +pG’grid +, "uėlized", +__gl_tim–še_thumbs_uėlized +, +tim–še_d +); + +2738 + `_gl_time_v›w_­³nd_g’grid_™ems +( +pG’grid +, +nG’I‹mIndex +, +tim–še_d +); + +2740  +pG’grid +; + +2741 + } +} + +2743 * + $__gl_time_d©e_g‘_‹xt +(* +d©a +, +Evas_Objeù + * +obj +, cÚ¡ * +·¹ +) + +2745 + `GL_CHECK_NULL +( +d©a +); + +2746 * +‹xt + = (*) +d©a +; + +2747  + `¡rdup +( +‹xt +); + +2748 + } +} + +2750  + $_g‘_couÁ_of_™ems_Ú_§me_d©e +( +gl_medŸ_s + * +™em +, +Eša_Li¡ + * +li¡ +, ** +‹xt +,  +¡¬t_šdex +) + +2752  +couÁ + = 1; + +2753 * +‹xt1 + = +NULL +; + +2754 * +‹xt2 + = +NULL +; + +2755 * +‹xt3 + = +NULL +; + +2756  +tm + +t1 +; + +2757  +tm + +t2 +; + +2758  +tm + +ù +; + +2759 +time_t + +ùime + = 0; + +2760 + `mem£t +(& +ù +, 0x00, ( +tm +)); + +2761 + `time +(& +ùime +); + +2762 + `loÿÉime_r +(& +ùime +, & +ù +); + +2763 +time_t + +mtime1 + = 0; + +2764 +time_t + +mtime2 + = 0; + +2765  +i +; + +2767 +mtime1 + = +™em +-> +mtime +; + +2768 +mtime2 + = +™em +-> +mtime +; + +2769  +™em_út + = + `eša_li¡_couÁ +( +li¡ +); + +2771 + `__gl_tim–še_g‘_tm +( +mtime1 +, +mtime2 +, & +t1 +, & +t2 +); + +2772 + `__gl_tim–še_g‘_mtime_¡r +( +t1 +, +ù +, & +‹xt1 +, & +‹xt2 +); + +2773 ià( +‹xt1 +) { + +2774 +‹xt3 + = + `g_¡rdup_´štf +("%s", +‹xt1 +); + +2776  +i + = +¡¬t_šdex +; i < +™em_út + ; i++) { + +2777 +™em + = + `eša_li¡_Áh +( +li¡ +, +i +); + +2778 ià(! +™em +) { + +2781 +mtime1 + = +™em +-> +mtime +; + +2782 +mtime2 + = +™em +-> +mtime +; + +2783 + `__gl_tim–še_g‘_tm +( +mtime1 +, +mtime2 +, & +t1 +, & +t2 +); + +2784 + `__gl_tim–še_g‘_mtime_¡r +( +t1 +, +ù +, & +‹xt1 +, & +‹xt2 +); + +2785 ià( +‹xt1 + && +‹xt3 + && ( + `¡rcmp +(text1,ext3))) { + +2788 +couÁ + ++; + +2789 ià( +‹xt1 +) { + +2790 +‹xt3 + = + `g_¡rdup_´štf +("%s", +‹xt1 +); + +2793 * +‹xt + = + `g_¡rdup_´štf +("%s", +‹xt3 +); + +2795  +couÁ +; + +2796 + } +} + +2798  + $_gl_time_g‘_numb”_of_™ems_³r_row +(* +d©a +) + +2800 + `GL_CHECK_VAL +( +d©a +, -1); + +2801 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +2802  +rÙ©e_mode + = +ad +-> +maššfo +.rotate_mode; + +2803  +™ems_³r_row + = 0; + +2804 ià(( +rÙ©e_mode + =ð +APP_DEVICE_ORIENTATION_270 +) || + +2805 ( +rÙ©e_mode + =ð +APP_DEVICE_ORIENTATION_90 +)) { + +2806 ià( +ad +-> +pšchšfo +. +zoom_Ëv– + =ð +GL_ZOOM_IN_TWO +) { + +2807 +™ems_³r_row + = +GL_GRID_6_PER_ROW +; + +2808 } ià( +ad +-> +pšchšfo +. +zoom_Ëv– + =ð +GL_ZOOM_IN_ONE +) { + +2809 +™ems_³r_row + = +GL_GRID_7_PER_ROW +; + +2810 } ià( +ad +-> +pšchšfo +. +zoom_Ëv– + =ð +GL_ZOOM_DEFAULT +) { + +2811 +™ems_³r_row + = +GL_GRID_10_PER_ROW +; + +2813 +™ems_³r_row + = +GL_GRID_7_PER_ROW +; + +2816 ià( +ad +-> +pšchšfo +. +zoom_Ëv– + =ð +GL_ZOOM_IN_TWO +) { + +2817 +™ems_³r_row + = +GL_GRID_3_PER_ROW +; + +2818 } ià( +ad +-> +pšchšfo +. +zoom_Ëv– + =ð +GL_ZOOM_IN_ONE +) { + +2819 +™ems_³r_row + = +GL_GRID_4_PER_ROW +; + +2820 } ià( +ad +-> +pšchšfo +. +zoom_Ëv– + =ð +GL_ZOOM_DEFAULT +) { + +2821 +™ems_³r_row + = +GL_GRID_8_PER_ROW +; + +2823 +™ems_³r_row + = +GL_GRID_4_PER_ROW +; + +2826  +™ems_³r_row +; + +2827 + } +} + +2829 * + $_gl_time_g‘_g’li¡_¡yË +(* +d©a +) + +2831 + `GL_CHECK_VAL +( +d©a +, +NULL +); + +2832 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +2833  +rÙ©e_mode + = +ad +-> +maššfo +.rotate_mode; + +2834  +™ems_³r_row + = 0; + +2835  +height + = 0; + +2836  +wš_w + = 0; + +2837  +wš_h + = 0; + +2838 * +¡yË + = +NULL +; + +2839 + `_gl_g‘_wš_çùÜ +( +ad +-> +maššfo +. +wš +, & +wš_w +, & +wš_h +); + +2840 ià( + `_gl_is_tim–še_ed™_mode +( +d©a +)) { + +2841 +ad +-> +pšchšfo +. +zoom_Ëv– + = +GL_ZOOM_IN_ONE +; + +2843 ià(( +rÙ©e_mode + =ð +APP_DEVICE_ORIENTATION_270 +) || + +2844 ( +rÙ©e_mode + =ð +APP_DEVICE_ORIENTATION_90 +)) { + +2845 ià( +ad +-> +pšchšfo +. +zoom_Ëv– + =ð +GL_ZOOM_IN_TWO +) { + +2846 +™ems_³r_row + = +GL_GRID_6_PER_ROW +; + +2847 } ià( +ad +-> +pšchšfo +. +zoom_Ëv– + =ð +GL_ZOOM_IN_ONE +) { + +2848 +™ems_³r_row + = +GL_GRID_7_PER_ROW +; + +2849 } ià( +ad +-> +pšchšfo +. +zoom_Ëv– + =ð +GL_ZOOM_DEFAULT +) { + +2850 +™ems_³r_row + = +GL_GRID_10_PER_ROW +; + +2852 +™ems_³r_row + = +GL_GRID_7_PER_ROW +; + +2854 +height + = + `ûž +(() +wš_h +/ +™ems_³r_row +); + +2856 ià( +ad +-> +pšchšfo +. +zoom_Ëv– + =ð +GL_ZOOM_IN_TWO +) { + +2857 +™ems_³r_row + = +GL_GRID_3_PER_ROW +; + +2858 } ià( +ad +-> +pšchšfo +. +zoom_Ëv– + =ð +GL_ZOOM_IN_ONE +) { + +2859 +™ems_³r_row + = +GL_GRID_4_PER_ROW +; + +2860 } ià( +ad +-> +pšchšfo +. +zoom_Ëv– + =ð +GL_ZOOM_DEFAULT +) { + +2861 +™ems_³r_row + = +GL_GRID_8_PER_ROW +; + +2863 +™ems_³r_row + = +GL_GRID_4_PER_ROW +; + +2865 +height + = + `ûž +(() +wš_w +/ +™ems_³r_row +); + +2867 +¡yË + = + `g_¡rdup_´štf +( +GL_TL_CONTENT_FORMAT +, +height +); + +2869  +¡yË +; + +2870 + } +} + +2873  + $_gl_tim–še_ü—‹_grid_v›w +( +gl_tim–še_s + * +tim–še_d +, +Evas_Objeù + * +g’li¡ +, +boÞ + +upd©e +) + +2875 + `GL_CHECK_VAL +( +tim–še_d +, -1); + +2876  +™em_út + = 0; + +2877  +»t + = -1; + +2878  +i + = 0; + +2879  +k + = 0; + +2882 +»t + = + `_gl_d©a_g‘_™em_út +( +GL_ALBUM_ALL_ID +, +GL_STORE_T_ALL +, & +™em_út +); + +2883 ià( +»t + !ð0 || +™em_út + == 0) + +2884 + `gl_dbgE +("Empty!"); + +2886 +Eša_Li¡ + * +li¡ + = +NULL +; + +2887 ià(! +upd©e +) { + +2888 + `_gl_d©a_g‘_™ems +(-1, -1, & +li¡ +); + +2889 + `_gl_time_fšŸlize_medŸ_d©a +( +tim–še_d +); + +2890 ià( +tim–še_d +-> +v›w_m + =ð +GL_TL_VIEW_EDIT +) { + +2891 + `_gl_time_upd©e_£Ëùed_medŸ +( +tim–še_d +, +li¡ +); + +2893 +tim–še_d +-> +d©a_li¡ + = +li¡ +; + +2894 +tim–še_d +-> +d–‘e_d©a + = +çl£ +; + +2896 +li¡ + = +tim–še_d +-> +d©a_li¡ +; + +2897 +tim–še_d +-> +d–‘e_d©a + = +çl£ +; + +2900 ià( +li¡ + =ð +NULL +) { + +2901 + `__gl_tim–Ã_show_nocڋÁs +( +tim–še_d +); + +2902 + `–m_Çviäame_™em_t™Ë_’abËd_£t +( +tim–še_d +-> +nf_™ +, +EINA_FALSE +, EINA_FALSE); + +2905 + `__gl_tim–Ã_d–_nocڋÁs +( +tim–še_d +); + +2906 + `–m_Çviäame_™em_t™Ë_’abËd_£t +( +tim–še_d +-> +nf_™ +, +EINA_TRUE +, EINA_TRUE); + +2908 ià((! +upd©e + || ! +tim–še_d +-> +is_li¡_»v”£ +è&&im–še_d-> +time_medŸ_di¥Ïy_Üd” + =ð +TIME_ORDER_ASC +) { + +2909 +li¡ + = + `eša_li¡_»v”£ +(list); + +2910 +tim–še_d +-> +is_li¡_»v”£ + = +Œue +; + +2911 } ià( +tim–še_d +-> +is_li¡_»v”£ + &&im–še_d-> +time_medŸ_di¥Ïy_Üd” + =ð +TIME_ORDER_DESC +) { + +2912 +li¡ + = + `eša_li¡_»v”£ +(list); + +2913 +tim–še_d +-> +is_li¡_»v”£ + = +çl£ +; + +2916 +™em_út + = + `eša_li¡_couÁ +( +li¡ +); + +2917 +tim–še_d +-> +couÁ + = +™em_út +; + +2918  +tm + +ù +; + +2919 +time_t + +ùime + = 0; + +2920 + `mem£t +(& +ù +, 0x00, ( +tm +)); + +2921 + `time +(& +ùime +); + +2922 + `loÿÉime_r +(& +ùime +, & +ù +); + +2923 +gl_medŸ_s + * +™em + = +NULL +; + +2924 * +¡yË_Çme + = +NULL +; + +2926 +Elm_G’li¡_I‹m_CÏss + * +pG’GridItc +; + +2927 +Elm_G’li¡_I‹m_CÏss + * +pG’GridZoomItc +; + +2928 +pG’GridItc + = + `–m_g’li¡_™em_þass_Ãw +(); + +2929 ià(! +pG’GridItc +) { + +2930 + `gl_dbg +("failedo create genlist item class"); + +2934 +¡yË_Çme + = + `_gl_time_g‘_g’li¡_¡yË +( +tim–še_d +-> +ad +); + +2936 +pG’GridItc +-> +™em_¡yË + = +¡yË_Çme +; + +2937 +pG’GridItc +-> +func +. +‹xt_g‘ + = +NULL +; + +2938 +pG’GridItc +-> +func +. +cڋÁ_g‘ + = + +2939 (*è +__gl_g‘_icÚ_of_grid_cb +; + +2940 +pG’GridItc +-> +func +. +¡©e_g‘ + = +NULL +; + +2941 +pG’GridItc +-> +func +. +d– + = +NULL +; + +2942 +pG’GridItc +-> +decÜ©e_™em_¡yË + = +NULL +; + +2944 +pG’GridZoomItc + = + `–m_g’li¡_™em_þass_Ãw +(); + +2945 ià(! +pG’GridZoomItc +) { + +2946 + `gl_dbg +("failedo create genlist item class"); + +2947 + `–m_g’li¡_™em_þass_ä“ +( +pG’GridItc +); + +2951 +pG’GridZoomItc +-> +™em_¡yË + = "genlist_group_date"; + +2952 +pG’GridZoomItc +-> +func +. +‹xt_g‘ + = +__gl_time_d©e_g‘_‹xt +; + +2953 +pG’GridZoomItc +-> +func +. +cڋÁ_g‘ + = +NULL +; + +2954 +pG’GridZoomItc +-> +func +. +¡©e_g‘ + = +NULL +; + +2955 +pG’GridZoomItc +-> +func +. +d– + = +NULL +; + +2957 + `evas_objeù_d©a_£t +( +g’li¡ +, "d©a", (*) +tim–še_d +); + +2958  +numb”_of_™ems_Ú_·¹icuÏr_d©e + = -1; + +2959  +™ems_³r_row + = 0; + +2960  +numb”_of_rows + = 0; + +2961 +Elm_Objeù_I‹m + * +™ + = +NULL +; + +2962  +™em_šdex + = 0; + +2964 * +‹xt + = +NULL +; + +2965  +i + = 0; i < +™em_út +; i++) { + +2966 +™em + = + `eša_li¡_Áh +( +li¡ +, +i +); + +2968 +numb”_of_™ems_Ú_·¹icuÏr_d©e + = + `_g‘_couÁ_of_™ems_Ú_§me_d©e +( +™em +, +li¡ +, & +‹xt +, +i ++1); + +2969 +™ems_³r_row + = + `_gl_time_g‘_numb”_of_™ems_³r_row +( +tim–še_d +-> +ad +); + +2970 ià( +™ems_³r_row + < 0) { + +2971 +™ems_³r_row + = 4; + +2973 +numb”_of_rows + = + `ûž +(() +numb”_of_™ems_Ú_·¹icuÏr_d©e +/ +™ems_³r_row +); + +2974 +™ + = + `–m_g’li¡_™em_­³nd +( +g’li¡ +, +pG’GridZoomItc +, (*) +‹xt +, +NULL +, +ELM_GENLIST_ITEM_TREE +, NULL, NULL); + +2976  +k + = 0; k < +numb”_of_rows +; k++) { + +2977 + `–m_g’li¡_™em_­³nd +( +g’li¡ +, +pG’GridItc +, (*) +™em_šdex +, +™ +, +ELM_GENLIST_ITEM_NONE +, +NULL +, NULL); + +2978 ià((( +k + * +™ems_³r_row +è+ i‹ms_³r_rowè<ð +numb”_of_™ems_Ú_·¹icuÏr_d©e +) { + +2979 +™em_šdex + = i‹m_šdex + +™ems_³r_row +; + +2981  +‹mp + = (( +k + * +™ems_³r_row +è+ i‹ms_³r_rowè- +numb”_of_™ems_Ú_·¹icuÏr_d©e +; + +2982 +™em_šdex + = i‹m_šdex + +™ems_³r_row + - +‹mp +; + +2985 +i + = (˜+ +numb”_of_™ems_Ú_·¹icuÏr_d©e +) - 1; + +2987 + `–m_g’li¡_™em_þass_ä“ +( +pG’GridItc +); + +2988 + `–m_g’li¡_™em_þass_ä“ +( +pG’GridZoomItc +); + +2991 + } +} + +2993 +Evas_Objeù + * + $_gl_box_add +( +Evas_Objeù + * +·»Á +) + +2995 +Evas_Objeù + * +box + = +NULL +; + +2996 +box + = + `–m_box_add +( +·»Á +); + +2997 + `–m_box_®ign_£t +( +box +,0.0, 0.0); + +2998 + `evas_objeù_show +( +box +); + +3000  +box +; + +3001 + } +} + +3003  + $__gl_tim–še_g’li¡_move_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +3005 + `GL_CHECK +( +d©a +); + +3006 + `gl_dbg +(""); + +3007 +gl_tim–še_s + * +tim–še_d + = (gl_tim–še_ *) +d©a +; + +3009 ià( +tim–še_d +-> +»®ized_™em +) { + +3010 +Evas_Objeù + * +grid + = + `–m_objeù_™em_·¹_cڋÁ_g‘ +( +tim–še_d +-> +»®ized_™em +, "elm.swallow"); + +3011 ià( +grid +) { + +3012 +Elm_Objeù_I‹m + * +™ + = + `–m_g’grid_fœ¡_™em_g‘ +( +grid +); + +3013 ià( +™ +) { + +3014 +gl_medŸ_s + * +™em + = (gl_medŸ_ *) + `–m_objeù_™em_d©a_g‘ +( +™ +); + +3015 * +‹xt1 + = +NULL +; + +3016 * +‹xt2 + = +NULL +; + +3017  +tm + +t1 +; + +3018  +tm + +t2 +; + +3019  +tm + +ù +; + +3020 +time_t + +ùime + = 0; + +3021 + `mem£t +(& +ù +, 0x00, ( +tm +)); + +3022 + `time +(& +ùime +); + +3023 + `loÿÉime_r +(& +ùime +, & +ù +); + +3024 +time_t + +mtime1 + = 0; + +3025 +time_t + +mtime2 + = 0; + +3026 +mtime1 + = +™em +-> +mtime +; + +3027 +mtime2 + = +™em +-> +mtime +; + +3029 + `__gl_tim–še_g‘_tm +( +mtime1 +, +mtime2 +, & +t1 +, & +t2 +); + +3030 + `__gl_tim–še_g‘_mtime_¡r +( +t1 +, +ù +, & +‹xt1 +, & +‹xt2 +); + +3032 ià( +‹xt1 +) { + +3033 ià( +tim–še_d +-> +d©e_Ïyout +) { + +3034 + `–m_objeù_·¹_‹xt_£t +( +tim–še_d +-> +d©e_Ïyout +, "‹xt", +‹xt1 +); + +3035 + `–m_objeù_·¹_cڋÁ_£t +( +tim–še_d +-> +·»Á +, "–m.sw®low.d©e.Ïyout",im–še_d-> +d©e_Ïyout +); + +3041 + } +} + +3043  + $__gl_tim–še_g’li¡_move_¡Ý_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +3045 + `gl_dbg +("Entry"); + +3046 + `GL_CHECK +( +d©a +); + +3047 +gl_tim–še_s + * +tim–še_d + = (gl_tim–še_ *) +d©a +; + +3048 ià( +tim–še_d +-> +d©e_Ïyout +) { + +3049 + `–m_objeù_·¹_cڋÁ_un£t +( +tim–še_d +-> +·»Á +, "elm.swallow.date.layout"); + +3050 + `evas_objeù_hide +( +tim–še_d +-> +d©e_Ïyout +); + +3052 + `gl_dbg +("Exit"); + +3053 + } +} + +3055 +Evas_Objeù + * + $_gl_g’li¡_add +( +Evas_Objeù + * +·»Á +) + +3057 +Evas_Objeù + * +g’li¡ + = +NULL +; + +3058 +g’li¡ + = + `–m_g’li¡_add +( +·»Á +); + +3059 + `–m_objeù_¡yË_£t +( +g’li¡ +, "handler"); + +3060 + `evas_objeù_size_hšt_®ign_£t +( +g’li¡ +, +EVAS_HINT_FILL +, EVAS_HINT_FILL); + +3061 + `evas_objeù_size_hšt_weight_£t +( +g’li¡ +, +EVAS_HINT_EXPAND +, EVAS_HINT_EXPAND); + +3062 + `–m_süÞËr_bounû_£t +( +g’li¡ +, +EINA_FALSE +, +EINA_TRUE +); + +3063 + `–m_süÞËr_pÞicy_£t +( +g’li¡ +, +ELM_SCROLLER_POLICY_OFF +, +ELM_SCROLLER_POLICY_AUTO +); + +3064 + `–m_g’li¡_mode_£t +( +g’li¡ +, +ELM_LIST_COMPRESS +); + +3065 + `–m_süÞËr_sšgË_dœeùiÚ_£t +( +g’li¡ +, +ELM_SCROLLER_SINGLE_DIRECTION_HARD +); + +3066 + `evas_objeù_show +( +g’li¡ +); + +3068  +g’li¡ +; + +3069 + } +} + +3071  + $__gl_tim–še_g’li¡_»®ized +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +3073 + `gl_dbg +("realize_gl_timeline_create_grid_viewd"); + +3074 + `GL_CHECK +( +ei +); + +3075 + `GL_CHECK +( +d©a +); + +3076 +gl_tim–še_s + * +tim–še_d + = (gl_tim–še_ *) +d©a +; + +3077 +Elm_Objeù_I‹m + * +™ + = (Elm_Objeù_I‹m *) +ei +; + +3078 +tim–še_d +-> +»®ized_™em + = +™ +; + +3079 + } +} + +3081  +Evas_Objeù + * + $__gl_tim–še_ü—‹_li¡_v›w +( +gl_tim–še_s + * +tim–še_d +, +boÞ + +upd©e +) + +3083 + `GL_CHECK_NULL +( +tim–še_d +); + +3084 +Evas_Objeù + * +g’li¡ + = +NULL +; + +3085 +Evas_Objeù + * +Ïyout + = +NULL +; + +3087 ià( +tim–še_d +-> +v›w +) { + +3088 + `evas_objeù_d– +( +tim–še_d +-> +v›w +); + +3091 +g’li¡ + = + `_gl_g’li¡_add +( +tim–še_d +-> +·»Á +); + +3092 + `GL_CHECK_NULL +( +g’li¡ +); + +3093 + `evas_objeù_sm¬t_ÿÎback_add +( +g’li¡ +, "vb¬,d¿g", +__gl_tim–še_g’li¡_move_cb +, +tim–še_d +); + +3094 + `evas_objeù_sm¬t_ÿÎback_add +( +g’li¡ +, "süÞl,ªim,¡Ý", +__gl_tim–še_g’li¡_move_¡Ý_cb +, +tim–še_d +); + +3095 + `evas_objeù_sm¬t_ÿÎback_add +( +g’li¡ +, "süÞl,d¿g,¡Ý", +__gl_tim–še_g’li¡_move_¡Ý_cb +, +tim–še_d +); + +3096 + `evas_objeù_sm¬t_ÿÎback_add +( +g’li¡ +, "»®ized", +__gl_tim–še_g’li¡_»®ized +, +tim–še_d +); + +3098 +Ïyout + = + `–m_Ïyout_add +( +tim–še_d +-> +·»Á +); + +3099 + `GL_CHECK_NULL +( +Ïyout +); + +3100 + `–m_Ïyout_fže_£t +( +Ïyout +, +GL_EDJ_FILE +, "timeline_gridview_date_toast"); + +3101 +tim–še_d +-> +d©e_Ïyout + = +Ïyout +; + +3103 ià( + `_gl_tim–še_ü—‹_grid_v›w +( +tim–še_d +, +g’li¡ +, +upd©e +) < 0) { + +3104  +NULL +; + +3107  +g’li¡ +; + +3108 + } +} + +3111  + $__gl_tim–še_·ge_¿nd +( +gl_tim–še_s + * +tim–še_d +) + +3113 + `GL_CHECK_VAL +( +tim–še_d +, -1); + +3114  +™em_út + = +tim–še_d +-> +couÁ +; + +3115  +i + = 0; + +3116 +gl_Žp_s + * +™_d + = +NULL +; + +3117  +šdex + = 0; + +3119 + `GL_TL_CLEAR_PAGES +( +tim–še_d +, +Œue +); + +3121 + `¤ªd +( + `time +( +NULL +)); + +3122  +út + = 0; + +3123 +boÞ + +b_Ãw_couÁ + = +çl£ +; + +3124  +li¡_út + = + `eša_li¡_couÁ +( +tim–še_d +-> +couÁ_li¡ +); + +3125 + `gl_dbg +("li¡_út: %d", +li¡_út +); + +3127  +i + = 0; i < +™em_út +;) { + +3128 +™_d + = ( +gl_Žp_s + *) + `ÿÎoc +(1, (gl_tlp_s)); + +3129 +tim–še_d +-> +li¡ + = + `eša_li¡_­³nd +Ñim–še_d->li¡, +™_d +); + +3130 +™_d +-> +tim–še_d + =imeline_d; + +3131 ià( +li¡_út + > +šdex +) { + +3133 +út + = () + `eša_li¡_Áh +( +tim–še_d +-> +couÁ_li¡ +, + +3134 +šdex +); + +3137 +út + = 1 + + `¿nd +() % 5; + +3138 +b_Ãw_couÁ + = +Œue +; + +3141 +™_d +-> +couÁ + = + `__gl_tim–še_upd©e_tžes_út +( +tim–še_d +-> +zoom_Ëv– +, + +3142 +út +); + +3143 +™_d +-> +šdex + = index++; + +3144 +™_d +-> +¡¬t_pos + = +i +; + +3146 +i + +ð +™_d +-> +couÁ +; + +3147 +™_d +-> +’d_pos + = +i + - 1; + +3149 ià( +tim–še_d +-> +zoom_Ëv– + !ð +GL_TM_ZOOM_OUT_TWO + && + +3150 +i + >ð +™em_út +) { + +3151 +™_d +-> +’d_pos + = +™em_út + - 1; + +3152 +™_d +-> +couÁ + = it_d-> +’d_pos + - it_d-> +¡¬t_pos + + 1; + +3153 ià( +b_Ãw_couÁ +) + +3154 +tim–še_d +-> +couÁ_li¡ + = + `eša_li¡_­³nd +(timeline_d->count_list, + +3155 (*) +™_d +-> +couÁ +); + +3158 ià( +b_Ãw_couÁ +) + +3159 +tim–še_d +-> +couÁ_li¡ + = + `eša_li¡_­³nd +(timeline_d->count_list, + +3160 (*) +™_d +-> +couÁ +); + +3161 +™_d + = +NULL +; + +3164 + } +} + +3166  + $__gl_tim–še_upd©e_v›w +( +gl_tim–še_s + * +tim–še_d +, +boÞ + +b_fœ¡ +) + +3168 + `GL_CHECK_VAL +( +tim–še_d +, -1); + +3169  +™em_út + = 0; + +3170 +time_t + +Ï¡_mtime + = 0; + +3171  +»t + = -1; + +3174 +»t + = + `_gl_d©a_g‘_™em_út +( +GL_ALBUM_ALL_ID +, +GL_STORE_T_ALL +, & +™em_út +); + +3175 ià( +»t + !ð0 || +™em_út + == 0) + +3176 + `gl_dbgE +("Empty!"); + +3178 +Eša_Li¡ + * +li¡ + = +NULL +; + +3179 + `_gl_d©a_g‘_™ems +(0, 0, & +li¡ +); + +3180 ià( +li¡ + =ð +NULL +) { + +3181 + `GL_TL_CLEAR_PAGES +( +tim–še_d +, +Œue +); + +3182 + `__gl_tim–Ã_show_nocڋÁs +( +tim–še_d +); + +3183 + `–m_Çviäame_™em_t™Ë_’abËd_£t +( +tim–še_d +-> +nf_™ +, +EINA_FALSE +, EINA_FALSE); + +3186 + `__gl_tim–Ã_d–_nocڋÁs +( +tim–še_d +); + +3187 + `–m_Çviäame_™em_t™Ë_’abËd_£t +( +tim–še_d +-> +nf_™ +, +EINA_TRUE +, EINA_TRUE); + +3190 +gl_medŸ_s + * +™em + = + `eša_li¡_Áh +( +li¡ +, 0); + +3191 ià( +™em +) + +3192 +Ï¡_mtime + = +™em +-> +mtime +; + +3194 +™em + = +NULL +; + +3195 + `EINA_LIST_FREE +( +li¡ +, +™em +) { + +3196 + `_gl_d©a_ty³_ä“_gl™em +((**)(& +™em +)); + +3197 +™em + = +NULL +; + +3200 ià(! +b_fœ¡ +) { + +3201 ià( +Ï¡_mtime + =ð +tim–še_d +->last_mtime && + +3202 +™em_út + =ð +tim–še_d +-> +couÁ +) { + +3203 + `gl_dbgW +("Nothing changed!"); + +3204 + `evas_objeù_show +( +tim–še_d +-> +v›w +); + +3205 + `__gl_tim–še_show_tžes_Œªs +( +tim–še_d +); + +3210 +tim–še_d +-> +couÁ + = +™em_út +; + +3211 +tim–še_d +-> +Ï¡_mtime + =†ast_mtime; + +3213 + `__gl_tim–še_·ge_¿nd +( +tim–še_d +); + +3215 ià( +tim–še_d +-> +zoom_Ëv– + =ð +GL_TM_ZOOM_DEFAULT +) + +3216 + `_gl_¦id”_£t_zËv– +( +tim–še_d +-> +v›w +, +GL_SLIDE_ZLEVEL_MAX +); + +3217 ià( +tim–še_d +-> +zoom_Ëv– + =ð +GL_TM_ZOOM_DEFAULT +) + +3218 + `_gl_¦id”_£t_zËv– +( +tim–še_d +-> +v›w +, +GL_SLIDE_ZLEVEL_MIN +); + +3220 + `_gl_¦id”_£t_zËv– +( +tim–še_d +-> +v›w +, +GL_SLIDE_ZLEVEL_MID +); + +3222 + `_gl_¦id”_£t_li¡ +( +tim–še_d +-> +v›w +,im–še_d-> +li¡ +, 0); + +3223 + `evas_objeù_show +( +tim–še_d +-> +v›w +); + +3224 ià( +tim–še_d +-> +b_ü—‹d +) + +3225 + `_gl_¦id”_¡¬t +( +tim–še_d +-> +v›w +); + +3227 + } +} + +3231  + $__gl_tim–še_d–_Ïyout_cb +(* +d©a +, +Evas + * +e +, +Evas_Objeù + * +obj +, + +3232 * +ei +) + +3234 + `gl_dbg +("Deleteimeline†ayout ---"); + +3235 + `evas_objeù_d©a_d– +( +obj +, "page_w"); + +3236 + `evas_objeù_d©a_d– +( +obj +, "page_h"); + +3237 ià( +d©a +) { + +3238 +gl_tim–še_s + * +tim–še_d + = (gl_tim–še_ *) +d©a +; + +3239 + `GL_IF_DEL_ANIMATOR +( +tim–še_d +-> +ªim©Ü +); + +3240 + `GL_IF_FREE_ELIST +( +tim–še_d +-> +couÁ_li¡ +); + +3241 + `GL_IF_FREE_ELIST +( +tim–še_d +-> +thumbs +); + +3242 ià( +tim–še_d +-> +®bum +) { + +3243 + `_gl_d©a_utž_ä“_gþu¡” +( +tim–še_d +-> +®bum +); + +3244 +tim–še_d +-> +®bum + = +NULL +; + +3246 + `__gl_tim–še_þ—r_£l_li¡ +( +tim–še_d +); + +3247 + `GL_GFREEIF +( +tim–še_d +-> +£l_d +); + +3248 + `_gl_time_fšŸlize_medŸ_d©a +( +tim–še_d +); + +3249 + `GL_FREE +( +d©a +); + +3251 + `gl_dbg +("Deleteimeline†ayout +++"); + +3252 + } +} + +3254  + $__gl_tim–še_add_cbs +( +gl_tim–še_s + * +tim–še_d +) + +3256 + `GL_CHECK_VAL +( +tim–še_d +, -1); + +3257 + `GL_CHECK_VAL +( +tim–še_d +-> +ad +, -1); + +3260 + `__gl_tim–še_add_t™Ë_Œªs_fšished_cbs +( +tim–še_d +, +Œue +); + +3262 + `evas_objeù_ev’t_ÿÎback_add +( +tim–še_d +-> +Ïyout +, +EVAS_CALLBACK_DEL +, + +3263 +__gl_tim–še_d–_Ïyout_cb +, +tim–še_d +); + +3264 + `evas_objeù_ev’t_ÿÎback_add +( +tim–še_d +-> +Ïyout +, +EVAS_CALLBACK_RESIZE +, + +3265 +__gl_tim–še_»size_Ïyout_cb +, + +3266 +tim–še_d +); + +3267  +bx + = 0; + +3268  +by + = 0; + +3269  +bw + = 0; + +3270  +bh + = 0; + +3271 + `evas_objeù_geom‘ry_g‘ +( +tim–še_d +-> +ad +-> +maššfo +. +Çviäame +, & +bx +, & +by +, + +3272 & +bw +, & +bh +); + +3273 + `gl_dbg +("Çviäame. (%d,%d,%d,%d)", +bx +, +by +, +bw +, +bh +); + +3274 + `evas_objeù_geom‘ry_g‘ +( +tim–še_d +-> +Ïyout +, & +bx +, & +by +, & +bw +, & +bh +); + +3275 + `gl_dbg +("Ïyout. (%d,%d,%d,%d)", +bx +, +by +, +bw +, +bh +); + +3277 + } +} + +3279 #ifdeà +SUPPORT_SLIDESHOW + + +3280  + $__gl_tim–še_¡¬t_¦ideshow +(* +d©a +) + +3282 + `GL_CHECK_VAL +( +d©a +, -1); + +3283 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +3284 +ad +-> +gridšfo +. +grid_ty³ + = +GL_GRID_T_ALLALBUMS +; + +3286 +Eša_Li¡ + * +li¡ + = +NULL +; + +3287 +gl_™em + * +g™em + = +NULL +; + +3288 +gl_medŸ_s + * +™em + = +NULL +; + +3289 + `_gl_d©a_g‘_™ems +( +GL_FIRST_VIEW_START_POS +, + +3290 +GL_FIRST_VIEW_START_POS +, & +li¡ +); + +3291 ià( +li¡ + !ð +NULL +) { + +3292 +™em + = ( +gl_medŸ_s + *) + `eša_li¡_Áh +( +li¡ +, 0); + +3293 + `GL_IF_FREE_ELIST +( +li¡ +); + +3294 +g™em + = + `_gl_d©a_Ãw_™em_m™em +( +™em +); + +3295 + `GL_CHECK_VAL +( +g™em +, -1); + +3296 + `gl_ext_lßd_iv_ug +( +d©a +, +g™em +, +GL_UG_IV_SLIDESHOW_ALL +); + +3297 + `_gl_d©a_utž_ä“_g™em +( +g™em +); + +3300 + } +} + +3302  + $__gl_tim–še_¦ideshow +(* +d©a +, cÚ¡ * +Ïb– +) + +3304 + `GL_CHECK_VAL +( +Ïb– +, -1); + +3305 + `GL_CHECK_VAL +( +d©a +, -1); + +3306 + `gl_dbg +("Ïb– : % ", +Ïb– +); + +3307 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +3309 ià(! + `g_¡rcmp0 +( +Ïb– +, + `_gl_¡r +( +GL_STR_ID_ALL_ITEMS +))) { + +3310 + `__gl_tim–še_¡¬t_¦ideshow +( +d©a +); + +3311 } ià(! + `g_¡rcmp0 +( +Ïb– +, + `_gl_¡r +( +GL_STR_ID_SETTINGS +))) { + +3312 + `evas_objeù_d©a_£t +( +ad +-> +maššfo +. +Çviäame +, + +3313 +GL_NAVIFRAME_SLIDESHOW_DATA_KEY +, + +3314 +__gl_tim–še_¡¬t_¦ideshow +); + +3315 + `gl_ext_lßd_ug +( +d©a +, +GL_UG_GALLERY_SETTING_SLIDESHOW +); + +3316 } ià(! + `g_¡rcmp0 +( +Ïb– +, + `_gl_¡r +( +GL_STR_ID_SELECT_ITEMS +))) { + +3317 #ifdeà +_USE_APP_SLIDESHOW + + +3318 + `__gl_tim–še_ed™ +( +d©a +); + +3319 + `evas_objeù_d©a_£t +( +ad +-> +maššfo +. +Çviäame +, + +3320 +GL_NAVIFRAME_SELECTED_SLIDESHOW_KEY +, + +3321 +gl_pÝ_to_ù¾b¬_ly +); + +3323 + `_gl_ext_Ïunch_g®Ëry_ug +( +d©a +); + +3326 + `gl_dbgE +("Invalid†able!"); + +3330 + } +} + +3332  + $__gl_tim–še_¦ideshow_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +3334 + `GL_CHECK +( +d©a +); + +3335 + `_gl_ùxpÝup_d– +( +d©a +); + +3336 + `_gl_pÝup_ü—‹_¦ideshow +( +d©a +, +__gl_tim–še_¦ideshow +); + +3337 + } +} + +3340 #ifdeà +_USE_APP_SLIDESHOW + + +3341  +Eša_BoÞ + + $__gl_tim–še_ed™_ÿnûl_cb +(* +d©a +, +Elm_Objeù_I‹m + * +™ +) + +3343 + `GL_CHECK_FALSE +( +d©a +); + +3344 + `gl_dbg +(""); + +3345 + `gl_£t_v›w_mode +( +d©a +, +GL_VIEW_TIMELINE +); + +3346 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +3347 ià( + `_gl_tim–še_upd©e_v›w +( +d©a +) < 0) { + +3348 ià( +ad +-> +Žšfo +-> +nocڋÁs + =ð +NULL +) { + +3349 +ad +-> +Žšfo +-> +Œª_Ý + = +GL_TRANS_OP_DEFAULT +; + +3350 + `_gl_¦id”_upd©e_fœ¡_™em +( +ad +-> +Žšfo +-> +v›w +); + +3354  +EINA_TRUE +; + +3355 + } +} + +3357  + $__gl_tim–še_ed™ +(* +d©a +) + +3359 + `GL_CHECK_VAL +( +d©a +, -1); + +3360 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +3361  +™em_út + = 0; + +3362  +»t + = -1; + +3364 +»t + = + `_gl_d©a_g‘_™em_út +( +GL_ALBUM_ALL_ID +, +GL_STORE_T_ALL +, & +™em_út +); + +3365 ià( +»t + !ð0 || +™em_út + == 0) { + +3366 + `gl_dbgE +("Empty!"); + +3370 ià( +ad +-> +Žšfo +-> +®bum + =ð +NULL +) + +3371 +ad +-> +Žšfo +-> +®bum + = + `_gl_d©a_utž_Ãw_gþu¡”_®l +( +d©a +, + +3372 +™em_út +); + +3373 + `GL_CHECK_VAL +( +ad +-> +Žšfo +-> +®bum +, -1); + +3374 + `_gl_®bums_£t_cu¼’t +( +d©a +, +ad +-> +Žšfo +-> +®bum +); + +3375 +Eša_Li¡ + * +medŸs_–i¡ + = +NULL +; + +3376 + `_gl_d©a_g‘_™ems_®bum +( +d©a +, +ad +-> +Žšfo +-> +®bum +, + +3377 +GL_FIRST_VIEW_START_POS +, +GL_FIRST_VIEW_END_POS +, + +3378 & +medŸs_–i¡ +); + +3379 + `_gl_thumbs_£t_li¡ +( +ad +, +medŸs_–i¡ +); + +3380 + `_gl_thumbs_£t_ed™_mode +( +d©a +, +GL_THUMBS_EDIT_SLIDESHOW +); + +3381 + `_gl_thumbs_ü—‹_v›w +( +d©a +, +GL_NAVI_THUMBS +, +GL_STR_ID_ALL_ALBUMS +, +Œue +, + +3382 +__gl_tim–še_ed™_ÿnûl_cb +); + +3384 + `gl_dbg +("Doneƒdit"); + +3386 + } +} + +3389  + $__gl_tim–še_desc_mode_£t +(* +d©a +) { + +3390 + `gl_dbg +("ENTRY"); + +3391 + `GL_CHECK +( +d©a +); + +3392 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +3393 ià( +ad +-> +Žšfo +-> +time_medŸ_di¥Ïy_Üd” + =ð +TIME_ORDER_DESC +) { + +3394 + `gl_dbg +("EXIT 1"); + +3397 +ad +-> +Žšfo +-> +time_medŸ_di¥Ïy_Üd” + = +TIME_ORDER_DESC +; + +3398 + `__gl_upd©e_tim–še +( +ad +); + +3399 + } +} + +3401  + $__gl_tim–še_asc_mode_£t +(* +d©a +) { + +3402 + `gl_dbg +("ENTRY"); + +3403 + `GL_CHECK +( +d©a +); + +3404 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +3405 ià( +ad +-> +Žšfo +-> +time_medŸ_di¥Ïy_Üd” + =ð +TIME_ORDER_ASC +) { + +3406 + `gl_dbg +("EXIT 1"); + +3409 +ad +-> +Žšfo +-> +time_medŸ_di¥Ïy_Üd” + = +TIME_ORDER_ASC +; + +3410 + `__gl_upd©e_tim–še +( +ad +); + +3411 + } +} + +3413  + $__gl_tim–še_sÜt_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +3415 + `gl_dbg +("ENTRY"); + +3416 + `GL_CHECK +( +d©a +); + +3417 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +3418  +¡©e_šdex + = -1; + +3419 +¡©e_šdex + = +ad +-> +Žšfo +-> +time_medŸ_di¥Ïy_Üd” + =ð +TIME_ORDER_ASC + ? 1 : 0; + +3420 + `_gl_li¡_pÝ_ü—‹ +( +d©a +, +obj +, +ei +, +GL_STR_SORT +, +GL_STR_DATE_MOST_RECENT +, +GL_STR_DATE_OLDEST +, +¡©e_šdex +); + +3421 + `gl_dbg +("EXIT"); + +3422 + } +} + +3424  + $__gl_tim–še_ed™_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +3426 + `GL_CHECK +( +d©a +); + +3427 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +3428 + `_gl_ùxpÝup_d– +( +d©a +); + +3429 ià( +ad +-> +ugšfo +. +ug +) { + +3434 + `gl_dbgW +("UG invoked!"); + +3437 + `__gl_tim–še_chªge_mode +( +d©a +, +GL_TL_VIEW_EDIT +); + +3438 + } +} + +3440  + $__gl_®bums_v›was_pÝ_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +3442 + `gl_dbg +("ENTRY"); + +3443 + `GL_CHECK +( +d©a +); + +3444 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +3445  +¡©e_šdex + = 1; + +3446  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +3447 ià( +v›w_mode + =ð +GL_VIEW_TIMELINE +) { + +3448 +¡©e_šdex + = 0; + +3449 } ià( +v›w_mode + =ð +GL_VIEW_ALBUMS +) { + +3450 +¡©e_šdex + = 1; + +3452 + `_gl_li¡_pÝ_ü—‹ +( +d©a +, +obj +, +ei +, +GL_STR_ID_VIEW_AS +, +GL_STR_TIME_VIEW +, +GL_STR_ALBUMS +, +¡©e_šdex +); + +3453 + `gl_dbg +("EXIT"); + +3454 + } +} + +3457  + $__gl_tim–še_sh¬e_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +3459 + `GL_CHECK +( +d©a +); + +3460 + `_gl_ùxpÝup_d– +( +d©a +); + +3461 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +3462 ià( +ad +-> +ugšfo +. +ug +) { + +3467 + `gl_dbgW +("UG invoked!"); + +3470 + `__gl_tim–še_chªge_mode +( +d©a +, +GL_TL_VIEW_SHARE +); + +3471 + } +} + +3475  + $__gl_tim–še_d–_Ý +(* +d©a +) + +3477 + `GL_CHECK_VAL +( +d©a +, -1); + +3478 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +3479 + `GL_CHECK_VAL +( +ad +-> +Žšfo +, -1); + +3480 +gl_tim–še_s + * +tim–še_d + = +ad +-> +Žšfo +; + +3481 + `GL_CHECK_VAL +( +tim–še_d +-> +£l_d +, -1); + +3482  +i + = 0; + +3483  +pÝup_Ý + = +GL_POPUP_OP_NONE +; + +3484 * +™em + = +NULL +; + +3485  +»t + = -1; + +3487 + `EINA_LIST_FREE +( +tim–še_d +-> +£l_d +-> +£l_li¡ +, +™em +) { + +3488 +i +++; + +3489 ià( +™em +) { + +3490 +»t + = + `_gl_d–_medŸ_by_id +( +d©a +, (cÚ¡ *) +™em +); + +3491 ià( +»t + != 0) + +3492 + `gl_dbgE +("G‘ medŸ fažed[%d]!", +»t +); + +3493 +™em + = +NULL +; + +3496 + `gl_dbg +("Write…ipe, make…rogressbar updated!"); + +3497 + `gl_th»ad_wr™e_pe +( +ad +, +i +, +pÝup_Ý +); + +3498 +pÝup_Ý + = +GL_POPUP_OP_NONE +; + +3500 +tim–še_d +-> +£l_d +-> +£l_li¡ + = +NULL +; + +3502 + } +} + +3505  + $__gl_tim–še_upd©e_d–_v›w +(* +d©a +) + +3507 + `GL_CHECK_VAL +( +d©a +, -1); + +3508 + `gl_dbgW +(""); + +3510 + `__gl_tim–še_chªge_mode +( +d©a +, +GL_TL_VIEW_NORMAL +); + +3512 + `_gl_tim–še_upd©e_v›w +( +d©a +); + +3514 + `_gl_nÙify_ü—‹_nÙišfo +( +GL_STR_DELETED +); + +3516 + `_gl_upd©e_®bums_li¡ +( +d©a +); + +3517 + `_gl_db_upd©e_lock_®ways +( +d©a +, +çl£ +); + +3519 + } +} + +3522  + $__gl_tim–še_g‘_·th_¡r +(* +d©a +, +gch¬ + +£p_c +, ** +·th_¡r +, + +3523 * +£l_út +) + +3525 + `GL_CHECK_VAL +( +·th_¡r +, -1); + +3526 + `GL_CHECK_VAL +( +d©a +, -1); + +3527 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +3528 + `GL_CHECK_VAL +( +ad +-> +Žšfo +, -1); + +3529 +gl_tim–še_s + * +tim–še_d + = +ad +-> +Žšfo +; + +3530 + `GL_CHECK_VAL +( +tim–še_d +-> +£l_d +, -1); + +3531 +GSŒšg + * +£Ëùed_·th_li¡ + = + `g_¡ršg_Ãw +( +NULL +); + +3532  +£Ëùed_™em_út + = 0; + +3533 +Eša_Li¡ + * +l + = +NULL +; + +3534 * +™em + = +NULL +; + +3535  +»t + = -1; + +3536 * +·th + = +NULL +; + +3538 + `EINA_LIST_FOREACH +( +tim–še_d +-> +£l_d +-> +£l_li¡ +, +l +, +™em +) { + +3539 ià( +™em + =ð +NULL +) { + +3540 + `gl_dbgE +("Invalid item!"); + +3541  +GL_TL_FAILED +; + +3544 +»t + = + `_gl_loÿl_d©a_g‘_·th_by_id +((cÚ¡ *) +™em +, & +·th +); + +3545 ià( +»t + !ð0 || ! +·th +) { + +3546 + `gl_dbgE +("G‘…©h fažed[%d]!", +»t +); + +3547  +GL_TL_FAILED +; + +3550 ià( + `¡r¡r +( +£Ëùed_·th_li¡ +-> +¡r +, +·th +)) { + +3551 + `gl_dbgW +("Already‡ppended!"); + +3553 +£Ëùed_™em_út +++; + +3554 + `g_¡ršg_­³nd +( +£Ëùed_·th_li¡ +, +·th +); + +3555 + `g_¡ršg_­³nd_c +( +£Ëùed_·th_li¡ +, +£p_c +); + +3557 + `GL_FREE +( +·th +); + +3559 + `gl_dbg +("S–eùed i‹m couÁ: %d.", +£Ëùed_™em_út +); + +3560 ià( +£l_út +) + +3561 * +£l_út + = +£Ëùed_™em_út +; + +3562  +Ën + = + `¡¾’ +( +£Ëùed_·th_li¡ +-> +¡r +); + +3563 + `g_¡ršg_Œunÿ‹ +( +£Ëùed_·th_li¡ +, +Ën + - 1); + +3570 * +·th_¡r + = + `g_¡ršg_ä“ +( +£Ëùed_·th_li¡ +, +çl£ +); + +3571 + `GL_CHECK_VAL +(* +·th_¡r +, -1); + +3572 + `gl_dbg +("TÙ® sŒšg:\n\n\t>>@@:> % <:@@<<\n", * +·th_¡r +); + +3575 +GL_TL_FAILED +: + +3577 ià( +£Ëùed_·th_li¡ +) { + +3578 + `g_¡ršg_ä“ +( +£Ëùed_·th_li¡ +, +Œue +); + +3579 +£Ëùed_·th_li¡ + = +NULL +; + +3581 + `GL_FREEIF +( +·th +); + +3583 + } +} + +3586  + $__gl_tim–še_›_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +3588 + `GL_CHECK +( +d©a +); + +3589 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +3590 + `gl_dbg +(""); + +3592 ià( +ad +-> +ugšfo +. +ug + ||‡d->ugšfo. +b_­p_ÿÎed +) { + +3593 + `gl_dbgW +("UG or APP is‡lready†oaded!"); + +3596 + `_gl_ùxpÝup_d– +( +d©a +); + +3598 + `GL_CHECK +( +ad +-> +Žšfo +); + +3599 +gl_tim–še_s + * +tim–še_d + = +ad +-> +Žšfo +; + +3600 ià( + `__gl_tim–še_g‘_£l_út +( +tim–še_d +) == 0) { + +3601 + `gl_dbgW +("Nohumbs selected!"); + +3602 + `gl_pÝup_ü—‹_pÝup +( +ad +, +GL_POPUP_NOBUT +, + +3603 +GL_STR_NO_FILES_SELECTED +); + +3607 + `_gl_ext_lßd_› +( +d©a +, +__gl_tim–še_g‘_·th_¡r +); + +3609 + `__gl_tim–še_chªge_mode +( +d©a +, +GL_TL_VIEW_NORMAL +); + +3610 + } +} + +3613  + $__gl_tim–še_move_cÝy_Ý +(* +d©a +) + +3615 + `GL_CHECK_VAL +( +d©a +, -1); + +3616 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +3617 + `GL_CHECK_VAL +( +ad +-> +Žšfo +, -1); + +3618 +gl_tim–še_s + * +tim–še_d + = +ad +-> +Žšfo +; + +3619 + `GL_CHECK_VAL +( +tim–še_d +-> +£l_d +, -1); + +3620  +i + = 0; + +3621  +pÝup_Ý + = +GL_POPUP_OP_NONE +; + +3622 * +™em + = +NULL +; + +3624 + `EINA_LIST_FREE +( +tim–še_d +-> +£l_d +-> +£l_li¡ +, +™em +) { + +3625 +i +++; + +3626 ià( +™em +) { + +3627 + `gl_sdbg +("S–eùed [%s]", +™em +); + +3628 ià( +ad +-> +maššfo +. +medŸs_Ý_ty³ + =ð +GL_MEDIA_OP_COPY_TIMELINE +) { + +3629 ià( + `_gl_move_medŸ_thumb_by_id +( +d©a +, (cÚ¡ *) +™em +, +ad +-> +®bumšfo +. +de¡_fÞd” +, & +pÝup_Ý +, +GL_MC_COPY +) != 0) + +3630 + `gl_dbg +("Failedo copyhis item"); + +3631 } ià( +ad +-> +maššfo +. +medŸs_Ý_ty³ + =ð +GL_MEDIA_OP_MOVE_TIMELINE +) { + +3632 ià( + `_gl_move_medŸ_thumb_by_id +( +d©a +, (cÚ¡ *) +™em +, +ad +-> +®bumšfo +. +de¡_fÞd” +, & +pÝup_Ý +, +GL_MC_MOVE +) != 0) + +3633 + `gl_dbg +("Failedo movehis item"); + +3635 + `gl_dbgE +("Wrong mode!"); + +3637 +™em + = +NULL +; + +3640 + `gl_dbg +("Write…ipe, make…rogressbar updated!"); + +3641 + `gl_th»ad_wr™e_pe +( +ad +, +i +, +pÝup_Ý +); + +3642 +pÝup_Ý + = +GL_POPUP_OP_NONE +; + +3644 +tim–še_d +-> +£l_d +-> +£l_li¡ + = +NULL +; + +3646 + } +} + +3649  + $__gl_tim–še_upd©e_move_cÝy_v›w +(* +d©a +) + +3651 + `GL_CHECK_VAL +( +d©a +, -1); + +3653 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +3654 cÚ¡ * +nÙi_¡r + = +NULL +; + +3655 ià( +ad +-> +maššfo +. +medŸs_Ý_ty³ + =ð +GL_MEDIA_OP_COPY_TIMELINE +) { + +3656 +nÙi_¡r + = +GL_STR_COPIED +; + +3657 } ià( +ad +-> +maššfo +. +medŸs_Ý_ty³ + =ð +GL_MEDIA_OP_MOVE_TIMELINE +) { + +3658 +nÙi_¡r + = +GL_STR_MOVED +; + +3660 + `gl_dbgE +("Wrong mode!"); + +3662 ià( +nÙi_¡r +) + +3663 + `_gl_nÙify_ü—‹_nÙišfo +( +nÙi_¡r +); + +3664 + `–m_Çviäame_™em_pÝ_to +( +ad +-> +Žšfo +-> +nf_™ +); + +3665 + `__gl_tim–še_chªge_mode +( +d©a +, +GL_TL_VIEW_NORMAL +); + +3667 + `_gl_tim–še_upd©e_v›w +( +d©a +); + +3669 + `_gl_upd©e_®bums_li¡ +( +ad +); + +3670 + `_gl_db_upd©e_lock_®ways +( +d©a +, +çl£ +); + +3672 + } +} + +3674  + $__gl_tim–še_move_cÝy +(* +d©a +) + +3676 + `GL_CHECK_VAL +( +d©a +, -1); + +3677 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +3678  +fÞd”_fuηth +[ +GL_DIR_PATH_LEN_MAX +] = { 0, }; + +3679 + `GL_CHECK_VAL +( +ad +-> +Žšfo +, -1); + +3680 +gl_tim–še_s + * +tim–še_d + = +ad +-> +Žšfo +; + +3681  +út + = + `__gl_tim–še_g‘_£l_út +( +tim–še_d +); + +3682 + `gl_dbg +(""); + +3684 + `_gl_db_upd©e_lock_®ways +( +d©a +, +Œue +); + +3689 ià( +ad +-> +®bumšfo +. +·th + =ð +NULL +) { + +3690 + `gl_dbg +("New‡lbum"); + +3691 ià( + `gl_make_Ãw_®bum +( +ad +-> +®bumšfo +. +Ãw_Çme +) != 0) { + +3692 + `gl_pÝup_ü—‹_pÝup +( +ad +, +GL_POPUP_NOBUT +, + +3693 +GL_STR_SAME_NAME_ALREADY_IN_USE +); + +3694 + `gl_dbgE +("Failedo make‡‚ew directory!"); + +3695  +GL_FAILED +; + +3697 + `¢´štf +( +fÞd”_fuηth +, +GL_DIR_PATH_LEN_MAX +, "%s/%s", + +3698 +GL_DEFAULT_PATH_IMAGES +, +ad +-> +®bumšfo +. +Ãw_Çme +); + +3700 + `g_¡¾ýy +( +fÞd”_fuηth +, +ad +-> +®bumšfo +. +·th +, + +3701 +GL_DIR_PATH_LEN_MAX +); + +3702 + `GL_FREE +( +ad +-> +®bumšfo +. +·th +); + +3705 + `mem£t +( +ad +-> +®bumšfo +. +de¡_fÞd” +, 0x00, +GL_DIR_PATH_LEN_MAX +); + +3706 + `g_¡¾ýy +( +ad +-> +®bumšfo +. +de¡_fÞd” +, +fÞd”_fuηth +, + +3707 +GL_DIR_PATH_LEN_MAX +); + +3710 + `gl_check_mmc_¡©e +( +ad +, +fÞd”_fuηth +); + +3711 + `gl_dbg +("MMC s‹: %d.", +ad +-> +maššfo +. +mmc_¡©e +); + +3712 + `_gl_£t_fže_Ý_cbs +( +d©a +, +__gl_tim–še_move_cÝy_Ý +, +NULL +, + +3713 +__gl_tim–še_upd©e_move_cÝy_v›w +, +út +); + +3715 ià( +ad +-> +®bumšfo +. +fže_mc_mode + =ð +GL_MC_MOVE +) + +3716 + `_gl_u£_th»ad_ݔ©e_medŸs +( +ad +, +GL_STR_ID_MOVING +, +út +, + +3717 +GL_MEDIA_OP_MOVE_TIMELINE +); + +3718 ià( +ad +-> +®bumšfo +. +fže_mc_mode + =ð +GL_MC_COPY +) + +3719 + `_gl_u£_th»ad_ݔ©e_medŸs +( +ad +, +GL_STR_ID_COPYING +, +út +, + +3720 +GL_MEDIA_OP_COPY_TIMELINE +); + +3722 + `gl_dbgE +("Wrong mode!"); + +3725 +GL_FAILED +: + +3728 + `_gl_ui_upd©e_Çvi_t™Ë_‹xt +( +tim–še_d +-> +nf_™ +, +út +, +çl£ +); + +3729 + `__gl_tim–še_check_bŠs_¡©e +( +tim–še_d +,im–še_d-> +couÁ +, +út +); + +3730 + `_gl_db_upd©e_lock_®ways +( +d©a +, +çl£ +); + +3732 + } +} + +3735  + $__gl_tim–še_move_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +3737 + `–m_toÞb¬_™em_£Ëùed_£t +(( +Elm_Objeù_I‹m + *) +ei +, +EINA_FALSE +); + +3738 + `GL_CHECK +( +d©a +); + +3739 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +3740 + `GL_CHECK +( +ad +-> +Žšfo +); + +3741 +gl_tim–še_s + * +tim–še_d + = +ad +-> +Žšfo +; + +3742 + `gl_dbg +(""); + +3744 ià( + `__gl_tim–še_g‘_£l_út +( +tim–še_d +) == 0) { + +3745 + `gl_dbgW +("Nohumbs selected!"); + +3746 + `gl_pÝup_ü—‹_pÝup +( +d©a +, +GL_POPUP_NOBUT +, + +3747 +GL_STR_NO_FILES_SELECTED +); + +3751 +ad +-> +®bumšfo +. +fže_mc_mode + = +GL_MC_MOVE +; + +3752 + `_gl_pÝup_ü—‹_move +( +d©a +, +__gl_tim–še_move_cÝy +); + +3753 + } +} + +3756  + $__gl_tim–še_cÝy_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +3758 + `GL_CHECK +( +d©a +); + +3759 + `_gl_ùxpÝup_d– +( +d©a +); + +3760 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +3761 + `GL_CHECK +( +ad +-> +Žšfo +); + +3762 +gl_tim–še_s + * +tim–še_d + = +ad +-> +Žšfo +; + +3763 + `gl_dbg +(""); + +3765 ià( + `__gl_tim–še_g‘_£l_út +( +tim–še_d +) == 0) { + +3766 + `gl_dbgW +("Nohumbs selected!"); + +3767 + `gl_pÝup_ü—‹_pÝup +( +d©a +, +GL_POPUP_NOBUT +, + +3768 +GL_STR_NO_FILES_SELECTED +); + +3772 +ad +-> +®bumšfo +. +fže_mc_mode + = +GL_MC_COPY +; + +3773 + `_gl_pÝup_ü—‹_cÝy +( +d©a +, +__gl_tim–še_move_cÝy +); + +3774 + } +} + +3777 #ifdeà +_USE_ROTATE_BG + + +3778  + $__gl_tim–še_rÙ©e_Ý +(* +d©a +) + +3780  + #GL_ROTATE_DELAY + 0.25 + + ) + +3781 + `GL_CHECK_VAL +( +d©a +, -1); + +3782 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +3783 + `GL_CHECK_VAL +( +ad +-> +Žšfo +, -1); + +3784 +gl_tim–še_s + * +tim–še_d + = +ad +-> +Žšfo +; + +3785 + `GL_CHECK_VAL +( +tim–še_d +-> +£l_d +, -1); + +3786  +i + = 0; + +3787  +pÝup_Ý + = +GL_POPUP_OP_NONE +; + +3788  +»t + = -1; + +3789 +boÞ + +b_Ëá + = +çl£ +; + +3790 * +™em + = +NULL +; + +3791  +út + = + `__gl_tim–še_g‘_£l_út +( +tim–še_d +); + +3793 ià( +ad +-> +maššfo +. +medŸs_Ý_ty³ + =ð +GL_MEDIA_OP_ROTATING_LEFT_TIMELINE +) + +3794 +b_Ëá + = +Œue +; + +3796 + `EINA_LIST_FREE +( +tim–še_d +-> +£l_d +-> +£l_li¡ +, +™em +) { + +3797 +i +++; + +3798 ià( +™em +) { + +3799 +»t + = + `_gl_rÙ©e_image_by_id +( +d©a +, (cÚ¡ *) +™em +, + +3800 +b_Ëá +); + +3801 ià( +»t + != 0) + +3802 + `gl_dbgE +("RÙ©imagçžed[%d]!", +»t +); + +3805 ià( +i + > +út + - 2) + +3806 + `_gl_d–ay +( +GL_ROTATE_DELAY +); + +3808 ià( +i + =ð +út +) { + +3809 + `gl_dbgW +("Last image„otated!"); + +3811 + `_gl_d–ay +( +GL_ROTATE_DELAY +); + +3813 +™em + = +NULL +; + +3816 + `gl_dbg +("Write…ipe, make…rogressbar updated!"); + +3817 + `gl_th»ad_wr™e_pe +( +ad +, +i +, +pÝup_Ý +); + +3818 +pÝup_Ý + = +GL_POPUP_OP_NONE +; + +3820 +tim–še_d +-> +£l_d +-> +£l_li¡ + = +NULL +; + +3822 + } +} + +3824  + $__gl_tim–še_upd©e_rÙ©e_v›w +(* +d©a +) + +3826 + `GL_CHECK_VAL +( +d©a +, -1); + +3827 + `gl_dbgW +(""); + +3829 + `__gl_tim–še_chªge_mode +( +d©a +, +GL_TL_VIEW_NORMAL +); + +3830 + `_gl_db_upd©e_lock_®ways +( +d©a +, +çl£ +); + +3832 + } +} + +3833  + $__gl_tim–še_rÙ©e_images +(* +d©a +, +boÞ + +b_Ëá +) + +3835 + `gl_dbg +(""); + +3836 + `GL_CHECK_VAL +( +d©a +, -1); + +3837 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +3838 + `GL_CHECK_VAL +( +ad +-> +Žšfo +, -1); + +3839 +gl_tim–še_s + * +tim–še_d + = +ad +-> +Žšfo +; + +3842  +út + = + `__gl_tim–še_g‘_£l_út +( +tim–še_d +); + +3844 + `gl_check_mmc_¡©e +( +ad +, +NULL +); + +3845 + `gl_dbg +("MMC s‹: %d.", +ad +-> +maššfo +. +mmc_¡©e +); + +3847  +Ý_ty³ + = +GL_MEDIA_OP_ROTATING_LEFT_TIMELINE +; + +3849 ià(! +b_Ëá +) + +3850 +Ý_ty³ + = +GL_MEDIA_OP_ROTATING_RIGHT_TIMELINE +; + +3851 + `_gl_db_upd©e_lock_®ways +( +d©a +, +Œue +); + +3852 + `_gl_£t_fže_Ý_cbs +( +d©a +, +__gl_tim–še_rÙ©e_Ý +, +NULL +, + +3853 +__gl_tim–še_upd©e_rÙ©e_v›w +, +út +); + +3854 + `_gl_u£_th»ad_ݔ©e_medŸs +( +ad +, +GL_STR_ID_ROTATING +, +út +, +Ý_ty³ +); + +3857 + } +} + +3859  + $__gl_tim–še_ed™_rÙ©e_Ëá_cb +(* +d©a +, +Evas_Objeù + * +obj +, + +3860 * +ei +) + +3862 + `GL_CHECK +( +d©a +); + +3863 + `_gl_ùxpÝup_d– +( +d©a +); + +3865 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +3866 + `GL_CHECK +( +ad +-> +Žšfo +); + +3867 +gl_tim–še_s + * +tim–še_d + = +ad +-> +Žšfo +; + +3869 ià( + `__gl_tim–še_g‘_£l_út +( +tim–še_d +) == 0) { + +3870 + `gl_dbgW +("Nohumbs selected!"); + +3871 + `gl_pÝup_ü—‹_pÝup +( +d©a +, +GL_POPUP_NOBUT +, + +3872 +GL_STR_NO_FILES_SELECTED +); + +3875 + `__gl_tim–še_rÙ©e_images +( +d©a +, +Œue +); + +3876 + } +} + +3878  + $__gl_tim–še_ed™_rÙ©e_right_cb +(* +d©a +, +Evas_Objeù + * +obj +, + +3879 * +ei +) + +3881 + `GL_CHECK +( +d©a +); + +3882 + `_gl_ùxpÝup_d– +( +d©a +); + +3884 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +3885 + `GL_CHECK +( +ad +-> +Žšfo +); + +3886 +gl_tim–še_s + * +tim–še_d + = +ad +-> +Žšfo +; + +3888 ià( + `__gl_tim–še_g‘_£l_út +( +tim–še_d +) == 0) { + +3889 + `gl_dbgW +("Nohumbs selected!"); + +3890 + `gl_pÝup_ü—‹_pÝup +( +d©a +, +GL_POPUP_NOBUT +, + +3891 +GL_STR_NO_FILES_SELECTED +); + +3894 + `__gl_tim–še_rÙ©e_images +( +d©a +, +çl£ +); + +3895 + } +} + +3899  + $__gl_tim–še_ùxpÝup_­³nd +(* +d©a +, +Evas_Objeù + * +·»Á +) + +3901 + `gl_dbg +(""); + +3902 + `GL_CHECK_VAL +( +·»Á +, -1); + +3903 + `GL_CHECK_VAL +( +d©a +, -1); + +3904 + `GL_CHECK_VAL +( +·»Á +, -1); + +3905  +út + = 0; + +3906  +»t + = -1; + +3907 +»t + = + `_gl_d©a_g‘_™em_út +( +GL_ALBUM_ALL_ID +, +GL_STORE_T_ALL +, & +út +); + +3908 ià( +»t + !ð0 || +út + == 0) { + +3909 + `gl_dbgE +("Empty!"); + +3912 ià( +út + > 0) { + +3914 + `_gl_ùxpÝup_­³nd +( +·»Á +, +GL_STR_ID_VIEW_AS +, + +3915 +__gl_®bums_v›was_pÝ_cb +, +d©a +); + +3917 + `_gl_ùxpÝup_­³nd +( +·»Á +, +GL_STR_ID_DELETE +, + +3918 +__gl_tim–še_ed™_cb +, +d©a +); + +3920 + `_gl_ùxpÝup_­³nd +( +·»Á +, +GL_STR_SORT +, + +3921 +__gl_tim–še_sÜt_cb +, +d©a +); + +3922 #ifdeà +SUPPORT_SLIDESHOW + + +3924 + `_gl_ùxpÝup_­³nd +( +·»Á +, +GL_STR_ID_SLIDESHOW +, + +3925 +__gl_tim–še_¦ideshow_cb +, +d©a +); + +3930 + } +} + +3932  + $__gl_tim–še_ed™_ùxpÝup_­³nd +(* +d©a +, +Evas_Objeù + * +·»Á +) + +3934 + `gl_dbg +(""); + +3935 + `GL_CHECK_VAL +( +·»Á +, -1); + +3936 + `GL_CHECK_VAL +( +d©a +, -1); + +3937 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +3938 + `GL_CHECK_VAL +( +ad +-> +Žšfo +, -1); + +3939 + `GL_CHECK_VAL +( +ad +-> +Žšfo +-> +£l_d +, -1); + +3940  +út + = + `__gl_tim–še_g‘_£l_út +( +ad +-> +Žšfo +); + +3944 #ifdeà +_USE_ROTATE_BG + + +3945 ià( +ad +-> +Žšfo +-> +£l_d +-> +jpge_út + =ð +út +) { + +3946 + `gl_dbg +("Enable more button"); + +3947 + `_gl_ùxpÝup_­³nd +( +·»Á +, +GL_STR_ID_ROTATE_LEFT +, + +3948 +__gl_tim–še_ed™_rÙ©e_Ëá_cb +, + +3949 +d©a +); + +3950 + `_gl_ùxpÝup_­³nd +( +·»Á +, +GL_STR_ID_ROTATE_RIGHT +, + +3951 +__gl_tim–še_ed™_rÙ©e_right_cb +, + +3952 +d©a +); + +3956 + } +} + +3958  + $__gl_tim–še_mÜe_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +3960 + `gl_dbg +("more button clicked"); + +3961 + `GL_CHECK +( +d©a +); + +3962 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +3963 +Evas_Objeù + * +mÜe + = +NULL +; + +3964 +mÜe + = + `_gl_ui_g‘_bŠ +( +NULL +, +ad +-> +Žšfo +-> +nf_™ +, +GL_NAVIFRAME_MORE +); + +3965 ià( +EINA_TRUE + =ð + `–m_objeù_di§bËd_g‘ +( +mÜe +)) { + +3966 + `gl_dbg +("Menu is disabled"); + +3970 + `gl_dbg +("Menu is clicked"); + +3971 + `GL_CHECK +( +ad +-> +Žšfo +); + +3973 ià( +ad +-> +Žšfo +-> +v›w_m + =ð +GL_TL_VIEW_EDIT +) + +3974 + `_gl_ùxpÝup_ü—‹ +( +d©a +, +obj +, + +3975 +__gl_tim–še_ed™_ùxpÝup_­³nd +); + +3976 ià( +ad +-> +Žšfo +-> +v›w_m + =ð +GL_TL_VIEW_NORMAL +) + +3977 + `_gl_ùxpÝup_ü—‹ +( +d©a +, +obj +, +__gl_tim–še_ùxpÝup_­³nd +); + +3979 + `gl_dbg +("Unavailable menu operation"); + +3980 + } +} + +3983  + $__gl_tim–še_ÿm”a_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +3985 + `GL_CHECK +( +d©a +); + +3986 + `gl_dbg +(""); + +3987 + `_gl_ext_lßd_ÿm”a +( +d©a +); + +3988 + } +} + +3991  + $__gl_tim–še_»£t_Ïb– +(* +d©a +) + +3993 + `GL_CHECK_VAL +( +d©a +, -1); + +3994 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +3996 ià( +ad +-> +Žšfo + =ð +NULL +) + +3998 ià( +ad +-> +Žšfo +-> +v›w_m + =ð +GL_TL_VIEW_NORMAL +) { + +3999 + `gl_dbg +("Normal mode"); + +4003  +£l_út + = + `__gl_tim–še_g‘_£l_út +( +ad +-> +Žšfo +); + +4004 + `__gl_tim–še_check_bŠs_¡©e +( +ad +-> +Žšfo +,‡d->Žšfo-> +couÁ +, +£l_út +); + +4006 + `_gl_ui_upd©e_Çvi_t™Ë_‹xt +( +ad +-> +Žšfo +-> +nf_™ +, +£l_út +, +çl£ +); + +4008 + } +} + +4010  + $__gl_tim–še_»£t_bŠs +(* +d©a +) + +4012 + `GL_CHECK_VAL +( +d©a +, -1); + +4013 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +4015 ià( +ad +-> +Žšfo + =ð +NULL +) + +4018 + `_gl_ui_di§bË_m’u +( +ad +-> +Žšfo +-> +nf_™ +, +çl£ +); + +4020 + } +} + +4022  + $_gl_time_d©a_£Ëùed_li¡_fš®ize +(* +d©a +) + +4024 + `GL_CHECK_VAL +( +d©a +, -1); + +4025 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +4026 + `gl_dbg +(""); + +4027 +gl_medŸ_s + * +g™em + = +NULL +; + +4028 + `GL_CHECK_VAL +( +ad +-> +Žšfo +, -1); + +4029  +i +; + +4030  +couÁ +; + +4031 ià( +ad +-> +Žšfo +-> +d©a_li¡ +) { + +4032 +couÁ + = + `eša_li¡_couÁ +( +ad +-> +Žšfo +-> +d©a_li¡ +); + +4033  +i + = 0; i < +couÁ + ; i++) { + +4034 +g™em + = + `eša_li¡_Áh +( +ad +-> +Žšfo +-> +d©a_li¡ +, +i +); + +4035 ià( +g™em +) { + +4036 +g™em +-> +check_¡©e + = +çl£ +; + +4042 + } +} + +4044  + $__gl_tim–še_ed™_ÿnûl_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +4046 + `–m_toÞb¬_™em_£Ëùed_£t +(( +Elm_Objeù_I‹m + *) +ei +, +EINA_FALSE +); + +4047 + `GL_CHECK +( +d©a +); + +4048 + `gl_dbg +(""); + +4049 + `__gl_tim–še_chªge_mode +( +d©a +, +GL_TL_VIEW_NORMAL +); + +4050 + } +} + +4052  + $__gl_tim–še_add_bŠs +(* +d©a +) + +4054 + `gl_dbg +(""); + +4055 + `GL_CHECK_VAL +( +d©a +, -1); + +4056 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +4057 + `GL_CHECK_VAL +( +ad +-> +maššfo +. +Çviäame +, -1); + +4058 + `GL_CHECK_VAL +( +ad +-> +Žšfo +-> +nf_™ +, -1); + +4059 +Evas_Objeù + * +·»Á + = +ad +-> +maššfo +. +Çviäame +; + +4060 +Elm_Objeù_I‹m + * +nf_™ + = +ad +-> +Žšfo +->nf_it; + +4062 + `_gl_ui_þ—r_bŠs +( +d©a +); + +4063 +Evas_Objeù + * +bŠ + = +NULL +; + +4066 +bŠ + = + `_gl_but_ü—‹_but +( +·»Á +, +NULL +, NULL, + +4067 +GL_BUTTON_STYLE_NAVI_MORE +, + +4068 +__gl_tim–še_mÜe_cb +, +d©a +); + +4069 + `GL_CHECK_VAL +( +bŠ +, -1); + +4070 + `–m_objeù_™em_·¹_cڋÁ_£t +( +nf_™ +, +GL_NAVIFRAME_MORE +, +bŠ +); + +4071 + `–m_objeù_sigÇl_em™ +( +ad +-> +ù¾šfo +. +ù¾b¬_v›w_ly +, "elm,selectall,state,default", "elm"); + +4073 + } +} + +4075  + $__gl_tim–še_d–_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +4077 + `–m_toÞb¬_™em_£Ëùed_£t +(( +Elm_Objeù_I‹m + *) +ei +, +EINA_FALSE +); + +4078 + `GL_CHECK +( +d©a +); + +4079 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +4080 + `GL_CHECK +( +ad +-> +Žšfo +); + +4081 +gl_tim–še_s + * +tim–še_d + = +ad +-> +Žšfo +; + +4083  +út + = + `__gl_tim–še_g‘_£l_út +( +tim–še_d +); + +4084 ià( +út + == 0) { + +4085 + `gl_dbgW +("Nohumbs selected!"); + +4086 + `gl_pÝup_ü—‹_pÝup +( +ad +, +GL_POPUP_NOBUT +, +GL_STR_NO_FILES_SELECTED +); + +4091 + `gl_check_mmc_¡©e +( +ad +, +NULL +); + +4092 + `gl_dbg +("MMC s‹: %d.", +ad +-> +maššfo +. +mmc_¡©e +); + +4093 + `_gl_db_upd©e_lock_®ways +( +d©a +, +Œue +); + +4094 + `_gl_£t_fže_Ý_cbs +( +d©a +, +__gl_tim–še_d–_Ý +, +NULL +, + +4095 +__gl_tim–še_upd©e_d–_v›w +, +út +); + +4096 + `_gl_u£_th»ad_ݔ©e_medŸs +( +ad +, +GL_STR_ID_DELETING +, +út +, + +4097 +GL_MEDIA_OP_DELETE_TIMELINE +); + +4098 + } +} + +4102  + $__gl_tim–še_ed™_£ÏÎ_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +4104 + `GL_CHECK +( +d©a +); + +4105 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +4106  +™em_út + = 0; + +4107  +£l_®l_út + = 0; + +4108  +»t + = -1; + +4110 +ad +-> +£lšfo +. +ck_¡©e + = !ad->selinfo.ck_state; + +4111 ià( +ad +-> +£lšfo +. +£Ëù®l_ck +) { + +4112 + `–m_check_¡©e_£t +( +ad +-> +£lšfo +. +£Ëù®l_ck +,‡d->£lšfo. +ck_¡©e +); + +4114  +¡©e + = +ad +-> +£lšfo +. +ck_¡©e +; + +4115 + `gl_dbg +("Checkbox s‹: %d", +¡©e +); + +4116 + `_gl_¦id”_£t_cks_¡©e +( +ad +-> +Žšfo +-> +v›w +, +¡©e +); + +4118 + `__gl_tim–še_þ—r_£l_li¡ +( +ad +-> +Žšfo +); + +4119 + `__gl_tim–še_þ—r_£l_út +( +ad +-> +Žšfo +); + +4121 ià( +¡©e + =ð +EINA_FALSE +) { + +4122 +£l_®l_út + = 0; + +4123 +™em_út + = +ad +-> +Žšfo +-> +couÁ +; + +4125 +Eša_Li¡ + * +li¡ + = +NULL +; + +4126 +»t + = + `_gl_d©a_g‘_™ems +( +GL_GET_ALL_RECORDS +, GL_GET_ALL_RECORDS, + +4127 & +li¡ +); + +4128 ià( +»t + !ð0 || ! +li¡ +) + +4129 + `gl_dbgW +("Empty!"); + +4131 +gl_medŸ_s + * +™em + = +NULL +; + +4132 + `EINA_LIST_FREE +( +li¡ +, +™em +) { + +4133 ià(! +™em + || !™em-> +uuid +) + +4135 + `__gl_tim–še_check_¥ecŸl_fže +( +ad +-> +Žšfo +, +™em +, +Œue +); + +4136 + `__gl_tim–še_£l_­³nd_™em +( +ad +-> +Žšfo +, +™em +-> +uuid +); + +4137 + `_gl_d©a_ty³_ä“_gl™em +((**)(& +™em +)); + +4138 +™em_út +++; + +4139 +™em + = +NULL +; + +4141 +£l_®l_út + = +™em_út +; + +4144 + `__gl_tim–še_check_bŠs_¡©e +( +ad +-> +Žšfo +, +™em_út +, +£l_®l_út +); + +4146 + `_gl_ui_upd©e_Çvi_t™Ë_‹xt +( +ad +-> +Žšfo +-> +nf_™ +, +£l_®l_út +, +çl£ +); + +4147 + } +} + +4150  + $_gl_tim–še_upd©e_»®ized_grid_ck +( +Evas_Objeù + * +v›w +, +Eša_BoÞ + +¡©e +) + +4152 + `GL_CHECK_VAL +( +v›w +, -1); + +4153 +Eša_Li¡ + * +grid + = +NULL +; + +4154 +Eša_Li¡ + * +l + = +NULL +; + +4155 +Elm_Objeù_I‹m + * +™ + = +NULL +; + +4157 +grid + = + `–m_g’grid_»®ized_™ems_g‘ +( +v›w +); + +4158 + `GL_CHECK_VAL +( +grid +, -1); + +4160 + `EINA_LIST_FOREACH +( +grid +, +l +, +™ +) { + +4161 ià( +™ + =ð +NULL +) { + +4162 + `gl_dbgE +("Invalid item!"); + +4165 +Evas_Objeù + * +ck + = +NULL +; + +4167 +ck + = + `–m_objeù_™em_·¹_cڋÁ_g‘ +( +™ +, +GL_THUMB_CHECKBOX +); + +4168 +gl_medŸ_s + * +d©a + = (gl_medŸ_ *) + `–m_objeù_™em_d©a_g‘ +( +™ +); + +4169 ià(! +ck +) { + +4170 + `gl_dbgE +("Invalid checkbox!"); + +4174 ià( + `–m_check_¡©e_g‘ +( +ck +è!ð +¡©e +) { + +4175 + `–m_check_¡©e_£t +( +ck +, +¡©e +); + +4176 +gl_tim–še_s + * +td + = + `evas_objeù_d©a_g‘ +( +ck +, "data"); + +4177 + `GL_CHECK_VAL +( +td +, -1); + +4178 + `__gl_tim–še_thumb_check_Ý +( +td +, +ck +, +d©a +); + +4183 + } +} + +4186  + $__gl_tim–še_thumb_ed™_£ÏÎ_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +4188 + `GL_CHECK +( +d©a +); + +4189 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +4190 + `GL_CHECK +( +ad +-> +Žšfo +); + +4192 +ad +-> +£lšfo +. +ck_¡©e + = !ad->selinfo.ck_state; + +4193 ià( +ad +-> +£lšfo +. +£Ëù®l_ck +) { + +4194 + `–m_check_¡©e_£t +( +ad +-> +£lšfo +. +£Ëù®l_ck +,‡d->£lšfo. +ck_¡©e +); + +4196  +¡©e + = +ad +-> +£lšfo +. +ck_¡©e +; + +4198 + `GL_CHECK +( +ad +-> +Žšfo +); + +4199 +Evas_Objeù + * +g’li¡ + = +ad +-> +Žšfo +-> +v›w +; + +4200 + `GL_CHECK +( +g’li¡ +); + +4202 +gl_medŸ_s + * +g™em + = +NULL +; + +4203  +i +; + +4204 ià( +ad +-> +Žšfo +-> +d©a_li¡ +) { + +4205  +couÁ + = + `eša_li¡_couÁ +( +ad +-> +Žšfo +-> +d©a_li¡ +); + +4206  +i + = 0; i < +couÁ + ; i++) { + +4207 +g™em + = + `eša_li¡_Áh +( +ad +-> +Žšfo +-> +d©a_li¡ +, +i +); + +4208 ià( +g™em +) { + +4209 +g™em +-> +check_¡©e + = +¡©e +; + +4210 ià( +¡©e +) { + +4211 + `__gl_tim–še_check_¥ecŸl_fže +( +ad +-> +Žšfo +, +g™em +, +Œue +); + +4212 + `__gl_tim–še_£l_­³nd_™em +( +ad +-> +Žšfo +, +g™em +-> +uuid +); + +4214 + `__gl_tim–še_check_¥ecŸl_fže +( +ad +-> +Žšfo +, +g™em +, +çl£ +); + +4215 + `__gl_tim–še_£l_»move_™em +( +ad +-> +Žšfo +, +g™em +-> +uuid +); + +4219  +£l_út + = + `__gl_tim–še_g‘_£l_út +( +ad +-> +Žšfo +); + +4220 + `_gl_ui_upd©e_Çvi_t™Ë_‹xt +( +ad +-> +Žšfo +-> +nf_™ +, +£l_út +, +çl£ +); + +4222 + `__gl_tim–še_check_bŠs_¡©e +( +ad +-> +Žšfo +,‡d->Žšfo-> +couÁ +, + +4223 +£l_út +); + +4225 + `–m_g’li¡_»®ized_™ems_upd©e +( +g’li¡ +); + +4226 + } +} + +4232  + $__gl_tim–še_ed™_add_bŠs +(* +d©a +) + +4234 + `gl_dbg +("EDIT"); + +4235 + `GL_CHECK_VAL +( +d©a +, -1); + +4236 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +4237 +Evas_Objeù + * +·»Á + = +ad +-> +maššfo +. +Çviäame +; + +4238 +Elm_Objeù_I‹m + * +nf_™ + = + `–m_Çviäame_tÝ_™em_g‘ +( +·»Á +); + +4239 + `GL_CHECK_VAL +( +nf_™ +, -1); + +4242 +Evas_Objeù + * +bŠ + = + `_gl_but_ü—‹_but +( +·»Á +, +NULL +, NULL, + +4243 +GL_BUTTON_STYLE_NAVI_MORE +, + +4244 +__gl_tim–še_mÜe_cb +, +d©a +); + +4245 + `GL_CHECK_VAL +( +bŠ +, -1); + +4246 + `_gl_ui_di§bË_bŠ +( +bŠ +); + +4247 + `–m_objeù_™em_·¹_cڋÁ_£t +( +nf_™ +, +GL_NAVIFRAME_MORE +, +bŠ +); + +4249 +Evas_Objeù + * +bŠ1 + = + `–m_bu‰Ú_add +( +·»Á +); + +4250 +Evas_Objeù + * +bŠ2 + = + `–m_bu‰Ú_add +( +·»Á +); + +4251 + `GL_CHECK_VAL +( +bŠ1 +, -1); + +4252 + `GL_CHECK_VAL +( +bŠ2 +, -1); + +4254 + `–m_objeù_¡yË_£t +( +bŠ1 +, "naviframe/title_left"); + +4255 + `–m_objeù_™em_·¹_cڋÁ_£t +( +ad +-> +ù¾šfo +. +nf_™ +, +GL_NAVIFRAME_TITLE_LEFT_BTN +, +bŠ1 +); + +4256 + `_gl_ui_£t_Œª¦©e_¡r +( +bŠ1 +, +GL_STR_ID_CANCEL_CAP +); + +4257 + `evas_objeù_sm¬t_ÿÎback_add +( +bŠ1 +, "þicked", +__gl_tim–še_ed™_ÿnûl_cb +, +ad +); + +4259 + `–m_objeù_¡yË_£t +( +bŠ2 +, "naviframe/title_right"); + +4260 + `–m_objeù_™em_·¹_cڋÁ_£t +( +ad +-> +ù¾šfo +. +nf_™ +, +GL_NAVIFRAME_TITLE_RIGHT_BTN +, +bŠ2 +); + +4261 + `_gl_ui_£t_Œª¦©e_¡r +( +bŠ2 +, +GL_STR_ID_DONE_CAP +); + +4262 + `evas_objeù_sm¬t_ÿÎback_add +( +bŠ2 +, "þicked", +__gl_tim–še_d–_cb +, +ad +); + +4263 + `–m_objeù_di§bËd_£t +( +bŠ2 +, +EINA_TRUE +); + +4265 + `gl_dbg +("Sending signalo EDC"); + +4266 + `–m_objeù_sigÇl_em™ +( +ad +-> +ù¾šfo +. +ù¾b¬_v›w_ly +, "elm,selectall,state,visible,bg", "elm"); + +4267 + `–m_objeù_sigÇl_em™ +( +ad +-> +ù¾šfo +. +ù¾b¬_v›w_ly +, "elm,selectall,state,visible", "elm"); + +4268 + `_gl_ui_add_£ÏÎ_ck +( +ad +-> +ù¾šfo +. +ù¾b¬_v›w_ly +, "select.all.area.check", "select.all.area.check", + +4269 +__gl_tim–še_thumb_ed™_£ÏÎ_cb +, +d©a +); + +4271 + } +} + +4273 #ifdeà +GL_EXTENDED_FEATURES + + +4274  + $__gl_tim–še_sh¬e_g‘_·th +(* +d©a +, ** +fžes +) + +4276 + `GL_CHECK_VAL +( +fžes +, 0); + +4277 + `GL_CHECK_VAL +( +d©a +, 0); + +4278 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +4279 + `GL_CHECK_VAL +( +ad +-> +Žšfo +, 0); + +4280 +gl_tim–še_s + * +tim–še_d + = +ad +-> +Žšfo +; + +4281 + `GL_CHECK_VAL +( +tim–še_d +-> +£l_d +, 0); + +4282  +i + = 0; + +4283 +Eša_Li¡ + * +l + = +NULL +; + +4284  +»t + = -1; + +4285 * +™em + = +NULL +; + +4286 * +·th + = +NULL +; + +4288 + `EINA_LIST_FOREACH +( +tim–še_d +-> +£l_d +-> +£l_li¡ +, +l +, +™em +) { + +4289 ià( +™em + =ð +NULL +) { + +4290 + `gl_dbgE +("Invalid item!"); + +4291  +GL_TL_FAILED +; + +4294 +»t + = + `_gl_loÿl_d©a_g‘_·th_by_id +((cÚ¡ *) +™em +, & +·th +); + +4295 ià( +»t + !ð0 || ! +·th +) { + +4296 + `gl_dbgE +("G‘…©h fažed[%d]!", +»t +); + +4297  +GL_TL_FAILED +; + +4300 +fžes +[ +i +++] = + `¡rdup +( +·th +); + +4301 + `gl_sdbg +("fže_u¾: %s!", +fžes +[ +i + - 1]); + +4303 + `GL_FREE +( +·th +); + +4305  +i +; + +4307 +GL_TL_FAILED +: + +4309 ; +i + > 0; --i) + +4310 + `GL_FREEIF +( +fžes +[ +i + - 1]); + +4311 + `GL_FREEIF +( +·th +); + +4313 + } +} + +4315  + $__gl_tim–še_sh¬e_Ý_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +4317 + `–m_toÞb¬_™em_£Ëùed_£t +(( +Elm_Objeù_I‹m + *) +ei +, +EINA_FALSE +); + +4318 + `GL_CHECK +( +d©a +); + +4319 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +4320 + `GL_CHECK +( +ad +-> +Žšfo +); + +4321 +gl_tim–še_s + * +tim–še_d + = +ad +-> +Žšfo +; + +4323  +út + = + `__gl_tim–še_g‘_£l_út +( +tim–še_d +); + +4324 + `_gl_ext_Ïunch_sh¬e +( +d©a +, +út +, +__gl_tim–še_sh¬e_g‘_·th +); + +4326 + `__gl_tim–še_chªge_mode +( +d©a +, +GL_TL_VIEW_NORMAL +); + +4327 + } +} + +4333  + $__gl_tim–še_sh¬e_add_bŠs +(* +d©a +) + +4335 + `gl_dbg +("Share"); + +4336 + `GL_CHECK_VAL +( +d©a +, -1); + +4337 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +4338 +Evas_Objeù + * +·»Á + = +ad +-> +maššfo +. +Çviäame +; + +4339 +Elm_Objeù_I‹m + * +nf_™ + = + `–m_Çviäame_tÝ_™em_g‘ +( +·»Á +); + +4340 + `GL_CHECK_VAL +( +nf_™ +, -1); + +4342 +Elm_Objeù_I‹m + * +tb_™ + = +NULL +; + +4343 +Evas_Objeù + * +toÞb¬ + = + `_gl_ù¾_add_toÞb¬ +( +·»Á +); + +4345 + `_gl_ù¾_­³nd_™em +( +toÞb¬ +, +NULL +, +GL_STR_ID_CANCEL +, + +4346 +__gl_tim–še_ed™_ÿnûl_cb +, +d©a +); + +4348 +tb_™ + = + `_gl_ù¾_­³nd_™em +( +toÞb¬ +, +NULL +, +GL_STR_ID_SHARE +, + +4349 +__gl_tim–še_sh¬e_Ý_cb +, +d©a +); + +4350 + `_gl_ù¾_di§bË_™em +( +tb_™ +, +Œue +); + +4351 + `–m_objeù_™em_·¹_cڋÁ_£t +( +nf_™ +, "toÞb¬", +toÞb¬ +); + +4353 +ad +-> +£lšfo +. +ck_¡©e + = +çl£ +; + +4354 + `_gl_ui_add_x±_bŠs +( +nf_™ +, +GL_UI_XPT_SEL_ALL +, + +4355 +__gl_tim–še_thumb_ed™_£ÏÎ_cb +, +NULL +, +d©a +); + +4357 + } +} + +4360 +boÞ + + $__gl_upd©e_tim–še +(* +d©a +) { + +4361 + `GL_CHECK_FALSE +( +d©a +); + +4362 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +4363 + `GL_CHECK_FALSE +( +ad +-> +Žšfo +); + +4365 ià( +ad +-> +Žšfo +-> +nocڋÁs +) { + +4366  +çl£ +; + +4368 +Evas_Objeù + * +v›w + = + `__gl_tim–še_ü—‹_li¡_v›w +( +ad +-> +Žšfo +, +Œue +); + +4369 ià(! +v›w +) { + +4370 + `gl_dbgE +("Failedo create view!"); + +4371  +çl£ +; + +4373 +ad +-> +Žšfo +-> +v›w + = view; + +4374 + `–m_objeù_·¹_cڋÁ_£t +( +ad +-> +Žšfo +-> +Ïyout +, "–m.sw®low", +v›w +); + +4375  +Œue +; + +4376 + } +} + +4378  + $__gl_tim–še_chªge_mode +(* +d©a +,  +mode +) + +4380 + `GL_CHECK_VAL +( +d©a +, -1); + +4381 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +4382 + `GL_CHECK_VAL +( +ad +-> +Žšfo +, -1); + +4384 +ad +-> +Žšfo +-> +v›w_m + = +mode +; + +4385  +mode +) { + +4386  +GL_TL_VIEW_NORMAL +: + +4387 + `gl_dbg +("GL_TL_VIEW_NORMAL"); + +4388 + `_gl_time_d©a_£Ëùed_li¡_fš®ize +( +d©a +); + +4389 + `_gl_ui_chªge_Çvi_t™Ë +( +ad +-> +Žšfo +-> +nf_™ +, +GL_STR_TIME_VIEW +, +Œue +); + +4390 + `__gl_tim–še_add_bŠs +( +d©a +); + +4392 + `__gl_tim–še_þ—r_£l_li¡ +( +ad +-> +Žšfo +); + +4393 + `GL_GFREEIF +( +ad +-> +Žšfo +-> +£l_d +); + +4395  +GL_TL_VIEW_EDIT +: + +4396  +GL_TL_VIEW_SHARE +: + +4397 + `GL_GFREEIF +( +ad +-> +Žšfo +-> +£l_d +); + +4398 +ad +-> +Žšfo +-> +£l_d + = + `g_Ãw0 +( +gl_£l_s +, 1); + +4399 + `GL_CHECK_VAL +( +ad +-> +Žšfo +-> +£l_d +, -1); + +4400 + `_gl_ui_chªge_Çvi_t™Ë +( +ad +-> +Žšfo +-> +nf_™ +, +GL_STR_ID_SELECT_ITEM +, + +4401 +çl£ +); + +4402 ià( +GL_TL_VIEW_EDIT + =ð +mode +) { + +4403 + `__gl_tim–še_ed™_add_bŠs +( +d©a +); + +4405 #ifdeà +GL_EXTENDED_FEATURES + + +4407 + `__gl_tim–še_sh¬e_add_bŠs +( +d©a +); + +4412 + `gl_dbgE +("Wrong mode!"); + +4415 + `__gl_upd©e_tim–še +( +d©a +); + +4417 + } +} + +4419  +Eša_BoÞ + + $__gl_tim–še_pÝ_Ý +(* +d©a +) + +4421 + `GL_CHECK_FALSE +( +d©a +); + +4422 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +4423 ià( +ad +-> +Žšfo + &&‡d->Žšfo-> +v›w_m + !ð +GL_TL_VIEW_NORMAL +) { + +4424 + `gl_dbg +("EDIT"); + +4425 + `__gl_tim–še_chªge_mode +( +d©a +, +GL_TL_VIEW_NORMAL +); + +4427  +EINA_TRUE +; + +4429  +EINA_FALSE +; + +4430 + } +} + +4432  + $_gl_tim–še_ü—‹_v›w +(* +d©a +, +Evas_Objeù + * +·»Á +) + +4434 + `GL_CHECK_VAL +( +·»Á +, -1); + +4435 + `GL_CHECK_VAL +( +d©a +, -1); + +4436 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +4437 + `gl_dbg +(""); + +4438  +w + = 0; + +4439  +h + = 0; + +4442 + `evas_objeù_d©a_£t +( +ad +-> +maššfo +. +Çviäame +, +GL_NAVIFRAME_POP_CB_KEY +, + +4443 (*) +__gl_tim–še_pÝ_Ý +); + +4445 + `evas_objeù_geom‘ry_g‘ +( +·»Á +, +NULL +, NULL, & +w +, & +h +); + +4446 + `gl_dbg +("cڋÁ' size(%dx%d)", +w +, +h +); + +4448 + `gl_£t_v›w_mode +( +d©a +, +GL_VIEW_TIMELINE +); + +4449 + `_gl_ù¾_show_t™Ë +( +d©a +, +GL_CTRL_TAB_TIMELINE +); + +4451 ià( +ad +-> +Žšfo +) { + +4452 + `gl_dbgW +("Update view"); + +4454 +ad +-> +Žšfo +-> +Œª_Ý + = +GL_TRANS_OP_PREPARE +; + +4456 +ad +-> +Žšfo +-> +v›w + = + `__gl_tim–še_ü—‹_li¡_v›w +×d->Žšfo, +çl£ +); + +4457 + `–m_objeù_·¹_cڋÁ_£t +( +·»Á +, "–m.sw®low.v›w", +ad +-> +Žšfo +-> +Ïyout +); + +4459 + `–m_objeù_·¹_cڋÁ_£t +( +ad +-> +Žšfo +-> +Ïyout +, "–m.sw®low",‡d->Žšfo-> +v›w +); + +4460 ià( +ad +-> +Žšfo +-> +v›w + =ð +NULL +) { + +4461 + `gl_dbgE +("Failedo create view!"); + +4464 + `evas_objeù_show +( +ad +-> +Žšfo +-> +v›w +); + +4466 + `__gl_tim–še_add_bŠs +( +d©a +); + +4468 + `__gl_tim–še_»£t_bŠs +( +d©a +); + +4470 + `__gl_tim–še_»£t_Ïb– +( +d©a +); + +4474 +Evas_Objeù + * +Ïyout + = +NULL +; + +4475 +Evas_Objeù + * +v›w + = +NULL +; + +4476 +gl_tim–še_s + * +tim–še_d + = +NULL +; + +4478 +tim–še_d + = ( +gl_tim–še_s + *) + `ÿÎoc +(1, (gl_timeline_s)); + +4479 + `GL_CHECK_VAL +( +tim–še_d +, -1); + +4481 +tim–še_d +-> +ad + =‡d; + +4482 +tim–še_d +-> +·»Á + =…arent; + +4483 +tim–še_d +-> +nf_™ + = +ad +-> +ù¾šfo +.nf_it; + +4484 +ad +-> +Žšfo + = +tim–še_d +; + +4485 +tim–še_d +-> +Œª_Ý + = +GL_TRANS_OP_PREPARE +; + +4486 +tim–še_d +-> +time_medŸ_di¥Ïy_Üd” + = +TIME_ORDER_DESC +; + +4487 +ad +-> +pšchšfo +. +zoom_Ëv– + = +GL_ZOOM_IN_ONE +; + +4489 +Ïyout + = + `gl_ui_lßd_edj +( +·»Á +, +GL_EDJ_FILE +, "timeline"); + +4490 ià( +Ïyout + =ð +NULL +) { + +4491 + `gl_dbgE +("Failedo create†ayout!"); + +4492  +GL_TIMELINE_FAILED +; + +4494 + `evas_objeù_show +( +Ïyout +); + +4495 + `–m_objeù_·¹_cڋÁ_£t +( +·»Á +, "–m.sw®low.v›w", +Ïyout +); + +4496 +tim–še_d +-> +Ïyout + =†ayout; + +4499 +h + -ð( +GL_TIMELINE_TITLE_H + + +GL_TIMELINE_PAD_H +è* + `–m_cÚfig_sÿË_g‘ +(); + +4500 + `evas_objeù_d©a_£t +( +Ïyout +, "·ge_w", (*) +w +); + +4501 + `evas_objeù_d©a_£t +( +Ïyout +, "·ge_h", (*) +h +); + +4502 +tim–še_d +-> +w + = w; + +4503 +tim–še_d +-> +h + = h; + +4504 +tim–še_d +-> +is_li¡_»v”£ + = +çl£ +; + +4505 + `gl_dbg +("cڋÁ' size(%dx%d)", +w +, +h +); + +4507 +v›w + = + `__gl_tim–še_ü—‹_li¡_v›w +( +tim–še_d +, +çl£ +); + +4508 ià( +v›w + =ð +NULL +) { + +4509 + `gl_dbgE +("Failedo create view!"); + +4510 + `GL_IF_DEL_OBJ +( +Ïyout +); + +4513 +tim–še_d +-> +v›w + = view; + +4514 + `–m_objeù_·¹_cڋÁ_£t +( +tim–še_d +-> +Ïyout +, "–m.sw®low", +v›w +); + +4517 + `__gl_tim–še_add_bŠs +( +d©a +); + +4519 + `__gl_tim–še_»£t_bŠs +( +d©a +); + +4521 + `__gl_tim–še_add_cbs +( +tim–še_d +); + +4524 +GL_TIMELINE_FAILED +: + +4526 + `GL_IF_DEL_OBJ +( +Ïyout +); + +4528 + } +} + +4530  + $_gl_tim–še_upd©e_v›w +(* +d©a +) + +4532 + `GL_CHECK_VAL +( +d©a +, -1); + +4533 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +4534 + `GL_CHECK_VAL +( +ad +-> +Žšfo +, -1); + +4537 + `gl_dbgW +("Update view"); + +4538 +Evas_Objeù + * +v›w + = + `__gl_tim–še_ü—‹_li¡_v›w +( +ad +-> +Žšfo +, +çl£ +); + +4539 ià( +v›w + =ð +NULL +) { + +4540 + `gl_dbgE +("Failedo create view!"); + +4543 +ad +-> +Žšfo +-> +v›w + = view; + +4544 + `–m_objeù_·¹_cڋÁ_£t +( +ad +-> +Žšfo +-> +Ïyout +, "–m.sw®low", +v›w +); + +4546 + `__gl_tim–še_»£t_bŠs +( +d©a +); + +4548 + `__gl_tim–še_»£t_Ïb– +( +d©a +); + +4550 + } +} + +4552  + $_gl_tim–še_upd©e_Ïng +(* +d©a +) + +4554 + `GL_CHECK_VAL +( +d©a +, -1); + +4555 + `gl_dbg +(""); + +4556 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +4557 + `GL_CHECK_VAL +( +ad +-> +Žšfo +, -1); + +4558 + `GL_CHECK_VAL +( +ad +-> +Žšfo +-> +nf_™ +, -1); + +4559 + `_gl_ui_chªge_Çvi_t™Ë +( +ad +-> +Žšfo +-> +nf_™ +, +GL_STR_TIME_VIEW +, +Œue +); + +4560 + `_gl_tim–še_upd©e_v›w +( +ad +); + +4563 + } +} + +4565  + $_gl_tim–še_hide_v›w +(* +d©a +) + +4567 + `GL_CHECK_VAL +( +d©a +, -1); + +4568 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +4569 + `gl_dbg +(""); + +4571 ià( +ad +-> +Žšfo + =ð +NULL +) + +4574 + `GL_TL_DEL_TRANSITS +( +ad +-> +Žšfo +-> +tžes +); + +4576 + `evas_objeù_hide +( +ad +-> +Žšfo +-> +v›w +); + +4578 + `__gl_tim–še_ÿnûl_thumbs +( +ad +-> +Žšfo +); + +4580 +Evas_Objeù + * +´e_v›w + = +NULL +; + +4581 +´e_v›w + = + `–m_objeù_·¹_cڋÁ_un£t +( +ad +-> +Žšfo +-> +·»Á +, + +4583 + `evas_objeù_hide +( +´e_v›w +); + +4585 + } +} + +4587  + $_gl_tim–še_rÙ©e_v›w +(* +d©a +) + +4590 + } +} + +4592  + $_gl_tim–še_v›w_rÙ©e +(* +d©a +) + +4594 + `gl_dbgE +("ENTRY"); + +4595 + `GL_CHECK_VAL +( +d©a +, -1); + +4596 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +4597 + `GL_CHECK_VAL +( +ad +-> +Žšfo +, -1); + +4599 ià( +ad +-> +Žšfo +-> +nocڋÁs +) { + +4603 +ad +-> +Žšfo +-> +d–‘e_d©a + = +çl£ +; + +4604 +Evas_Objeù + * +v›w + = + `__gl_tim–še_ü—‹_li¡_v›w +( +ad +-> +Žšfo +, +Œue +); + +4605 ià( +v›w + =ð +NULL +) { + +4606 + `gl_dbgE +("Failedo create view!"); + +4609 +ad +-> +Žšfo +-> +v›w + = view; + +4610 + `–m_objeù_·¹_cڋÁ_£t +( +ad +-> +Žšfo +-> +Ïyout +, "–m.sw®low", +v›w +); + +4611 ià(( +ad +-> +maššfo +. +rÙ©e_mode + =ð +APP_DEVICE_ORIENTATION_270 +) || + +4612 ( +ad +-> +maššfo +. +rÙ©e_mode + =ð +APP_DEVICE_ORIENTATION_90 +)) { + +4613 + `–m_objeù_sigÇl_em™ +( +ad +-> +Žšfo +-> +·»Á +, "timelineview,landscape", ""); + +4615 + `–m_objeù_sigÇl_em™ +( +ad +-> +Žšfo +-> +·»Á +, "timelineview,portrait", ""); + +4617 ià( +ad +-> +Žšfo +-> +v›w_m + =ð +GL_TL_VIEW_EDIT +) { + +4618 + `–m_objeù_sigÇl_em™ +( +ad +-> +ù¾šfo +. +ù¾b¬_v›w_ly +, "elm,selectall,state,visible,bg", "elm"); + +4619 + `–m_objeù_sigÇl_em™ +( +ad +-> +ù¾šfo +. +ù¾b¬_v›w_ly +, "elm,selectall,state,visible", "elm"); + +4622 + `gl_dbgE +("EXIT"); + +4624 + } +} + +4626  + $_gl_tim–še_upd©e_grid_size +(* +d©a +) + +4628 + `gl_dbgE +("ENTRY"); + +4629 + `GL_CHECK_VAL +( +d©a +, -1); + +4630 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +4631 + `GL_CHECK_VAL +( +ad +-> +Žšfo +, -1); + +4633 ià( +ad +-> +Žšfo +-> +nocڋÁs +) { + +4636 +Evas_Objeù + * +v›w + = + `__gl_tim–še_ü—‹_li¡_v›w +( +ad +-> +Žšfo +, +Œue +); + +4637 ià( +v›w + =ð +NULL +) { + +4638 + `gl_dbgE +("Failedo create view!"); + +4641 +ad +-> +Žšfo +-> +v›w + = view; + +4642 + `–m_objeù_·¹_cڋÁ_£t +( +ad +-> +Žšfo +-> +Ïyout +, "–m.sw®low", +v›w +); + +4645 + } +} + +4647  + $_gl_upd©e_timev›w_iv_£Ëù_mode_»¶y +(* +d©a +, ** +£Ëù_»suÉ +,  +couÁ +) + +4649 + `gl_dbgE +("ENTRY"); + +4650 + `GL_CHECK +( +d©a +); + +4651 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +4652 + `GL_CHECK +( +ad +-> +Žšfo +); + +4653 +gl_medŸ_s + * +™em + = +NULL +; + +4654 +Eša_Li¡ + * +l + = +NULL +; + +4655  +i +; + +4656  +£l_couÁ + = 0; + +4657 +boÞ + +š_li¡ + = +çl£ +; + +4659 ià( +£Ëù_»suÉ +) { + +4660 + `EINA_LIST_FOREACH +( +ad +-> +Žšfo +-> +d©a_li¡ +, +l +, +™em +) { + +4661 ià(! +™em +) { + +4664 +š_li¡ + = +çl£ +; + +4665  +i + = 0; i < +couÁ +; i++) { + +4666 ià(! + `¡rcmp +( +£Ëù_»suÉ +[ +i +], +™em +-> +fže_u¾ +)) { + +4667 ià(! +™em +-> +check_¡©e +) { + +4668 + `__gl_tim–še_£l_­³nd_™em +( +ad +-> +Žšfo +, +™em +-> +uuid +); + +4669 +™em +-> +check_¡©e + = +Œue +; + +4671 +š_li¡ + = +Œue +; + +4672 +£l_couÁ +++; + +4676 ià(! +š_li¡ +) { + +4677 ià( +™em +-> +check_¡©e +) { + +4678 + `__gl_tim–še_£l_»move_™em +( +ad +-> +Žšfo +, +™em +-> +uuid +); + +4679 +™em +-> +check_¡©e + = +çl£ +; + +4684 + `EINA_LIST_FOREACH +( +ad +-> +Žšfo +-> +d©a_li¡ +, +l +, +™em +) { + +4685 ià(! +™em +) { + +4688 ià( +™em +-> +check_¡©e +) { + +4689 + `__gl_tim–še_£l_»move_™em +( +ad +-> +Žšfo +, +™em +-> +uuid +); + +4690 +™em +-> +check_¡©e + = +çl£ +; + +4695 + `_gl_ui_upd©e_Çvi_t™Ë_‹xt +( +ad +-> +Žšfo +-> +nf_™ +, +£l_couÁ +, +çl£ +); + +4697 ià( +£l_couÁ + =ð +ad +-> +Žšfo +-> +couÁ +) { + +4698 +ad +-> +£lšfo +. +ck_¡©e + = +EINA_TRUE +; + +4700 +ad +-> +£lšfo +. +ck_¡©e + = +EINA_FALSE +; + +4703 ià( +ad +-> +£lšfo +. +£Ëù®l_ck +) { + +4704 + `–m_check_¡©e_£t +( +ad +-> +£lšfo +. +£Ëù®l_ck +,‡d->£lšfo. +ck_¡©e +); + +4707 + `GL_CHECK +( +ad +-> +Žšfo +-> +v›w +); + +4708 + `–m_g’li¡_»®ized_™ems_upd©e +( +ad +-> +Žšfo +-> +v›w +); + +4710 ià( +£Ëù_»suÉ +) { + +4711  +i + = 0; i < +couÁ +; i++) { + +4712 ià( +£Ëù_»suÉ +[ +i +]) { + +4713 + `ä“ +( +£Ëù_»suÉ +[ +i +]); + +4716 + `ä“ +( +£Ëù_»suÉ +); + +4718 + } +} + +4720  + $_gl_ext_lßd_time_iv_£Ëùed_li¡ +( +­p_cڌÞ_h + +£rviû +, * +d©a +) + +4722 + `gl_dbgE +("ENTRY"); + +4723 + `GL_CHECK_VAL +( +d©a +, +GL_UG_FAIL +); + +4724 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +4725 + `GL_CHECK_VAL +( +£rviû +, +GL_UG_FAIL +); + +4726 + `GL_CHECK_VAL +( +ad +-> +Žšfo +, +GL_UG_FAIL +); + +4727 + `GL_CHECK_VAL +( +ad +-> +Žšfo +-> +£l_d +, +GL_UG_FAIL +); + +4728  +i +; + +4729 * +g™em + = +NULL +; + +4730 +gl_medŸ_s + * +™em + = +NULL +; + +4731 +Eša_Li¡ + * +l + = +NULL +; + +4732 ** +v®ue + = +NULL +; + +4734  +couÁ + = + `eša_li¡_couÁ +( +ad +-> +Žšfo +-> +£l_d +-> +£l_li¡ +); + +4736 ià( +couÁ + > 0) { + +4737 ( +v®ue +èð(**) + `m®loc +( +couÁ + * (*)); + +4738 ià(! +v®ue +) { + +4739  +GL_UG_FAIL +; + +4743  +i + = 0; i < +couÁ +; i++) { + +4744 +g™em + = + `eša_li¡_Áh +( +ad +-> +Žšfo +-> +£l_d +-> +£l_li¡ +, +i +); + +4745 + `EINA_LIST_FOREACH +( +ad +-> +Žšfo +-> +d©a_li¡ +, +l +, +™em +) { + +4746 ià(! +™em +) { + +4749 ià(! + `¡rcmp +( +™em +-> +uuid +, +g™em +)) { + +4750 ( +v®ue +)[ +i +] = + `¡rdup +( +™em +-> +fže_u¾ +); + +4756 ià( +couÁ + > 0) { + +4757 + `­p_cڌÞ_add_exŒa_d©a_¬¿y +( +£rviû +, "Selected index", + +4758 +v®ue +, +couÁ +); + +4761 ià( +v®ue +) { + +4762  +i + = 0; i < +couÁ +; i++) { + +4763 + `ä“ +( +v®ue +[ +i +]); + +4765 + `ä“ +( +v®ue +); + +4768  +GL_UG_SUCCESS +; + +4769 + } +} + +4771 +boÞ + + $_gl_is_tim–še_ed™_mode +(* +d©a +) + +4773 + `GL_CHECK_FALSE +( +d©a +); + +4774 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +4775 + `GL_CHECK_FALSE +( +ad +-> +Žšfo +); + +4776 ià( +ad +-> +Žšfo +-> +v›w_m + =ð +GL_TL_VIEW_EDIT +) { + +4777  +Œue +; + +4779  +çl£ +; + +4780 + } +} + + @src/2dview/gl-timeline.h + +18 #iâdeà +_GL_TIMELINE_H_ + + +19  + #_GL_TIMELINE_H_ + + + ) + +21  + ~ + +22  + ~"g®Ëry.h +" + +24  +_gl_tim–še_ü—‹_v›w +(* +d©a +, +Evas_Objeù + * +·»Á +); + +25  +_gl_tim–še_upd©e_v›w +(* +d©a +); + +26  +_gl_tim–še_upd©e_Ïng +(* +d©a +); + +27  +_gl_tim–še_hide_v›w +(* +d©a +); + +28  +_gl_tim–še_v›w_rÙ©e +(* +d©a +); + +29  +_gl_tim–še_rÙ©e_v›w +(* +d©a +); + +30  +__gl_tim–še_asc_mode_£t +(* +d©a +); + +31  +__gl_tim–še_desc_mode_£t +(* +d©a +); + +32 +boÞ + +__gl_upd©e_tim–še +(* +d©a +); + +33  +_gl_tim–še_upd©e_grid_size +(* +d©a +); + +34  +_gl_upd©e_timev›w_iv_£Ëù_mode_»¶y +(* +d©a +, ** +£Ëù_»suÉ +,  +couÁ +); + +35  +_gl_ext_lßd_time_iv_£Ëùed_li¡ +( +­p_cڌÞ_h + +£rviû +, * +d©a +); + +36 +boÞ + +_gl_is_tim–še_ed™_mode +(* +d©a +); + + @src/data/gl-data-type.c + +18  + ~"gl-d©a-ty³.h +" + +19  + ~"gl-debug.h +" + +21  + $_gl_d©a_ty³_Ãw_medŸ +( +gl_medŸ_s + ** +™em +) + +23 + `GL_CHECK_VAL +( +™em +, -1); + +24 +gl_medŸ_s + * +tmp_™em + = (gl_medŸ_ *) + `ÿÎoc +(1, (gl_media_s)); + +25 + `GL_CHECK_VAL +( +tmp_™em +, -1); + +26 +tmp_™em +-> +gty³ + = +GL_TYPE_MEDIA +; + +27 * +™em + = +tmp_™em +; + +29 + } +} + +31  + $_gl_d©a_ty³_Ãw_®bum +( +gl_®bum_s + ** +®bum +) + +33 + `GL_CHECK_VAL +( +®bum +, -1); + +34 +gl_®bum_s + * +tmp_™em + = (gl_®bum_ *) + `ÿÎoc +(1, (gl_album_s)); + +35 + `GL_CHECK_VAL +( +tmp_™em +, -1); + +36 +tmp_™em +-> +gty³ + = +GL_TYPE_ALBUM +; + +37 * +®bum + = +tmp_™em +; + +39 + } +} + +42  + $__gl_d©a_ty³_ä“_medŸ +( +gl_medŸ_s + ** +™em +) + +44 + `GL_CHECK_VAL +( +™em +, -1); + +45 + `GL_CHECK_VAL +(* +™em +, -1); + +46 +gl_medŸ_s + * +tmp_™em + = * +™em +; + +49 ià( +tmp_™em +-> +medŸ_h +) { + +50 ià( +tmp_™em +-> +b_ü—‹_thumb +) { + +51 + `medŸ_šfo_ÿnûl_thumbǞ +( +tmp_™em +-> +medŸ_h +); + +52 +tmp_™em +-> +b_ü—‹_thumb + = +çl£ +; + +54 + `medŸ_šfo_de¡roy +( +tmp_™em +-> +medŸ_h +); + +55 +tmp_™em +-> +medŸ_h + = +NULL +; + +58 + `GL_FREEIF +( +tmp_™em +-> +uuid +); + +59 + `GL_FREEIF +( +tmp_™em +-> +thumb_u¾ +); + +60 + `GL_FREEIF +( +tmp_™em +-> +fže_u¾ +); + +61 + `GL_FREEIF +( +tmp_™em +-> +di¥Ïy_Çme +); + +62 + `GL_FREEIF +( +tmp_™em +-> +ext +); + +64 ià( +MEDIA_CONTENT_TYPE_IMAGE + =ð +tmp_™em +-> +ty³ + && + +65 +tmp_™em +-> +image_šfo +) { + +67 ià( +tmp_™em +-> +image_šfo +-> +image_h +) { + +68 + `image_m‘a_de¡roy +( +tmp_™em +-> +image_šfo +-> +image_h +); + +69 +tmp_™em +-> +image_šfo +-> +image_h + = +NULL +; + +71 + `GL_FREEIF +( +tmp_™em +-> +image_šfo +-> +bur¡shÙ_id +); + +72 + `GL_FREEIF +( +tmp_™em +-> +image_šfo +-> +medŸ_uuid +); + +73 + `GL_FREE +( +tmp_™em +-> +image_šfo +); + +74 } ià( +MEDIA_CONTENT_TYPE_VIDEO + =ð +tmp_™em +-> +ty³ + && + +75 +tmp_™em +-> +video_šfo +) { + +77 ià( +tmp_™em +-> +video_šfo +-> +video_h +) { + +78 + `video_m‘a_de¡roy +( +tmp_™em +-> +video_šfo +-> +video_h +); + +79 +tmp_™em +-> +video_šfo +-> +video_h + = +NULL +; + +82 + `GL_FREEIF +( +tmp_™em +-> +video_šfo +-> +medŸ_uuid +); + +83 + `GL_FREEIF +( +tmp_™em +-> +video_šfo +-> +t™Ë +); + +84 + `GL_FREE +( +tmp_™em +-> +video_šfo +); + +87 + `GL_FREE +( +tmp_™em +); + +88 * +™em + = +NULL +; + +90 + } +} + +92  + $_gl_d©a_ty³_ä“_medŸ_li¡ +( +Eša_Li¡ + ** +li¡ +) + +94 + `GL_CHECK_VAL +( +li¡ +, -1); + +95 + `GL_CHECK_VAL +(* +li¡ +, -1); + +96 +gl_medŸ_s + * +™em + = +NULL +; + +97 +Eša_Li¡ + * +tmp_li¡ + = * +li¡ +; + +98 + `EINA_LIST_FREE +( +tmp_li¡ +, +™em +) { + +99 ià( +™em +) + +100 + `__gl_d©a_ty³_ä“_medŸ +(& +™em +); + +102 * +li¡ + = +NULL +; + +104 + } +} + +106  + $__gl_d©a_ty³_ä“_®bum +( +gl_®bum_s + ** +®bum +) + +108 + `GL_CHECK_VAL +( +®bum +, -1); + +109 + `GL_CHECK_VAL +(* +®bum +, -1); + +110 +gl_®bum_s + * +tmp_®bum + = * +®bum +; + +112 + `GL_FREEIF +( +tmp_®bum +-> +uuid +); + +113 + `GL_FREEIF +( +tmp_®bum +-> +di¥Ïy_Çme +); + +114 + `GL_FREEIF +( +tmp_®bum +-> +·th +); + +116 ià( +tmp_®bum +-> +fÞd”_h +) + +117 + `medŸ_fÞd”_de¡roy +( +tmp_®bum +-> +fÞd”_h +); + +118 + `GL_FREE +( +tmp_®bum +); + +119 * +®bum + = +NULL +; + +121 + } +} + +123  + $_gl_d©a_ty³_ä“_®bum_li¡ +( +Eša_Li¡ + ** +li¡ +) + +125 + `GL_CHECK_VAL +( +li¡ +, -1); + +126 + `GL_CHECK_VAL +(* +li¡ +, -1); + +127 +gl_®bum_s + * +™em + = +NULL +; + +128 +Eša_Li¡ + * +tmp_li¡ + = * +li¡ +; + +129 + `EINA_LIST_FREE +( +tmp_li¡ +, +™em +) { + +130 ià( +™em +) + +131 + `__gl_d©a_ty³_ä“_®bum +(& +™em +); + +133 * +li¡ + = +NULL +; + +135 + } +} + +137  + $_gl_d©a_ty³_ä“_gl™em +(** +™em +) + +139 + `GL_CHECK_VAL +( +™em +, -1); + +140 + `GL_CHECK_VAL +(* +™em +, -1); + +141  +»t + = -1; + +143 ià((( +gl_®bum_s + *)* +™em +)-> +gty³ + =ð +GL_TYPE_ALBUM +) + +144 +»t + = + `__gl_d©a_ty³_ä“_®bum +(( +gl_®bum_s + **) +™em +); + +145 ià((( +gl_medŸ_s + *)* +™em +)-> +gty³ + =ð +GL_TYPE_MEDIA + || + +146 (( +gl_medŸ_s + *)* +™em +)-> +gty³ + =ð +GL_TYPE_WEB_MEDIA +) + +147 +»t + = + `__gl_d©a_ty³_ä“_medŸ +(( +gl_medŸ_s + **) +™em +); + +149 ià( +»t + < 0) + +153 + } +} + + @src/data/gl-data-util.c + +18  + ~<”ºo.h +> + +19  + ~<¡ršg.h +> + +20  + ~"gl-d©a-utž.h +" + +21  + ~"gl-cڌÞb¬.h +" + +22  + ~"g®Ëry.h +" + +23  + ~"gl-debug.h +" + +24  + ~"gl-utž.h +" + +25  + ~"gl-¡ršgs.h +" + +26  + ~"gl-d©a-ty³.h +" + +28 +boÞ + + $_gl_d©a_utž_g‘_fže_dœ_Çme +(cÚ¡ * +fže_·th +, * +fž’ame +, + +29 * +dœ_Çme +, * +dœ_·th +) + +31 + `GL_CHECK_FALSE +( +fže_·th +); + +32 +gšt + +i + = 0; + +33 +gšt + +couÁ + = 0; + +34  +i + = + `¡¾’ +( +fže_·th +); i >= 0; i--) { + +35 ià( +fže_·th +[ +i +] != '\0') { + +36 +couÁ +++; + +38 ià( +fže_·th +[ +i +] == '/') { + +39 ià( +fž’ame + !ð +NULL +) { + +40 + `memýy +( +fž’ame +, & +fže_·th +[ +i + + 1], -- +couÁ +); + +41 *( +fž’ame + + +couÁ +) = '\0'; + +42 + `gl_sdbg +("FžNamð%s", +fž’ame +); + +44 ià( +dœ_·th + !ð +NULL +) { + +45 + `memýy +( +dœ_·th +, & +fže_·th +[0], +i +); + +46 *( +dœ_·th + + +i +) = '\0'; + +47 + `gl_sdbg +("DœeùÜy Namð%s", +dœ_·th +); + +49 ià( +dœ_Çme + !ð +NULL +) { + +50 +couÁ + = 0; + +51 -- +i +; i >= 0; i--) { + +52 +couÁ +++; + +53 ià( +fže_·th +[ +i +] == '/') { + +54 + `memýy +( +dœ_Çme +, & +fže_·th +[ +i + + 1], -- +couÁ +); + +55 *( +dœ_Çme + + +couÁ +) = '\0'; + +56 + `gl_sdbg +("DœeùÜy Namð%s", +dœ_Çme +); + +57 +couÁ + = 0; + +58  +Œue +; + +62  +Œue +; + +66  +çl£ +; + +67 + } +} + +72 +gl_™em + * + $_gl_d©a_utž_ÿÎoc_g™em +() + +74 +gl_™em + * +g™em + = (gl_™em *) + `ÿÎoc +(1, (gl_item)); + +75 + `GL_CHECK_NULL +( +g™em +); + +76  +g™em +; + +77 + } +} + +79  + $_gl_d©a_utž_ä“_g™em +( +gl_™em + * +g™em +) + +81 + `GL_CHECK_VAL +( +g™em +, -1); + +82 ià( +g™em +-> +™em +) { + +83 + `_gl_d©a_ty³_ä“_gl™em +((**)&( +g™em +-> +™em +)); + +84 +g™em +-> +™em + = +NULL +; + +87 + `GL_FREEIF +( +g™em +-> +thumb_d©a +); + +88 + `GL_FREE +( +g™em +); + +90 + } +} + +92 +gl_þu¡” + * + $_gl_d©a_utž_ÿÎoc_gþu¡” +() + +94 +gl_þu¡” + * +gþu¡” + = (gl_þu¡” *) + `ÿÎoc +(1, (gl_cluster)); + +95 + `GL_CHECK_NULL +( +gþu¡” +); + +96  +gþu¡” +; + +97 + } +} + +99  + $_gl_d©a_utž_ä“_gþu¡” +( +gl_þu¡” + * +gþu¡” +) + +101 + `GL_CHECK_VAL +( +gþu¡” +, -1); + +102 ià( +gþu¡” +-> +cov” +) { + +103 + `_gl_d©a_utž_ä“_g™em +( +gþu¡” +-> +cov” +); + +104 +gþu¡” +-> +cov” + = +NULL +; + +106 ià( +gþu¡” +-> +þu¡” +) { + +107 + `_gl_d©a_ty³_ä“_gl™em +((**)&( +gþu¡” +-> +þu¡” +)); + +108 +gþu¡” +-> +þu¡” + = +NULL +; + +110 + `GL_FREE +( +gþu¡” +-> +®bum_d©a +); + +111 + `GL_FREE +( +gþu¡” +); + +113 + } +} + +115 +gl_þu¡” + * + $_gl_d©a_utž_Ãw_gþu¡”_®l +(* +d©a +,  +couÁ +) + +117 + `gl_dbg +(""); + +118 + `GL_CHECK_NULL +( +d©a +); + +119 +gl_þu¡” + * +gþu¡” + = +NULL +; + +120 +gl_®bum_s + * +mþu¡” + = +NULL +; + +122 +gþu¡” + = + `_gl_d©a_utž_ÿÎoc_gþu¡” +(); + +123 + `GL_CHECK_NULL +( +gþu¡” +); + +125 + `_gl_d©a_ty³_Ãw_®bum +(& +mþu¡” +); + +126 ià( +mþu¡” + =ð +NULL +) { + +127 + `GL_FREE +( +gþu¡” +); + +128  +NULL +; + +131 +mþu¡” +-> +uuid + = + `¡rdup +( +GL_ALBUM_ALL_ID +); + +132 +mþu¡” +-> +couÁ + = count; + +133 +mþu¡” +-> +ty³ + = +GL_STORE_T_ALL +; + +134 +mþu¡” +-> +di¥Ïy_Çme + = + `¡rdup +( +GL_STR_ID_ALL_ALBUMS +); + +135 +gþu¡” +-> +ad + = +d©a +; + +136 +gþu¡” +-> +þu¡” + = +mþu¡” +; + +137  +gþu¡” +; + +138 + } +} + +140 +gl_þu¡” + * + $_gl_d©a_utž_Ãw_gþu¡”_çv +(* +d©a +,  +couÁ +) + +142 + `gl_dbg +(""); + +143 + `GL_CHECK_NULL +( +d©a +); + +144 +gl_þu¡” + * +gþu¡” + = +NULL +; + +145 +gl_®bum_s + * +mþu¡” + = +NULL +; + +147 +gþu¡” + = + `_gl_d©a_utž_ÿÎoc_gþu¡” +(); + +148 + `GL_CHECK_NULL +( +gþu¡” +); + +150 + `_gl_d©a_ty³_Ãw_®bum +(& +mþu¡” +); + +151 ià( +mþu¡” + =ð +NULL +) { + +152 + `GL_FREE +( +gþu¡” +); + +153  +NULL +; + +156 +mþu¡” +-> +uuid + = + `¡rdup +( +GL_ALBUM_FAVOURITE_ID +); + +157 +mþu¡” +-> +couÁ + = count; + +158 +mþu¡” +-> +ty³ + = +GL_STORE_T_FAV +; + +159 +mþu¡” +-> +di¥Ïy_Çme + = + `¡rdup +( +GL_STR_ID_FAVOURITE_ALBUMS +); + +160 +gþu¡” +-> +ad + = +d©a +; + +161 +gþu¡” +-> +þu¡” + = +mþu¡” +; + +163  +gþu¡” +; + +164 + } +} + +166 +gl_þu¡”_li¡ + * + $_gl_d©a_utž_ÿÎoc_þu¡”_li¡ +() + +168 +gl_þu¡”_li¡ + * +þus_li¡ + = (gl_þu¡”_li¡ *) + `ÿÎoc +(1, + +169 ( +gl_þu¡”_li¡ +)); + +170 + `GL_CHECK_NULL +( +þus_li¡ +); + +171  +þus_li¡ +; + +172 + } +} + +175  + $_gl_d©a_utž_þ—r_gty³_™em_li¡ +( +Eša_Li¡ + ** +–i¡ +) + +177 * +cu¼’t + = +NULL +; + +179 ià( +–i¡ + && *elist) { + +180 + `gl_dbg +("Clear gtype items†ist"); + +181 + `EINA_LIST_FREE +(* +–i¡ +, +cu¼’t +) { + +182 ià( +cu¼’t +) { + +183 + `_gl_d©a_ty³_ä“_gl™em +((**)& +cu¼’t +); + +184 +cu¼’t + = +NULL +; + +187 * +–i¡ + = +NULL +; + +191 + } +} + +193  + $_gl_d©a_utž_þ—r_™em_li¡ +( +Eša_Li¡ + ** +–i¡ +) + +195 + `GL_CHECK_VAL +( +–i¡ +, -1); + +196 +gl_™em + * +cu¼’t + = +NULL +; + +197 ià(* +–i¡ +) { + +198 + `gl_dbg +("Clearƒlist"); + +199 + `EINA_LIST_FREE +(* +–i¡ +, +cu¼’t +) { + +200 + `_gl_d©a_utž_ä“_g™em +( +cu¼’t +); + +201 +cu¼’t + = +NULL +; + +203 * +–i¡ + = +NULL +; + +207 + } +} + +209  + $_gl_d©a_utž_þ—r_þu¡”_li¡ +( +Eša_Li¡ + ** +–i¡ +) + +211 + `GL_CHECK_VAL +( +–i¡ +, -1); + +212 +gl_þu¡” + * +cu¼’t + = +NULL +; + +213 ià(* +–i¡ +) { + +214 + `EINA_LIST_FREE +(* +–i¡ +, +cu¼’t +) { + +215 + `_gl_d©a_utž_ä“_gþu¡” +( +cu¼’t +); + +216 +cu¼’t + = +NULL +; + +218 * +–i¡ + = +NULL +; + +221 + } +} + +223  + $_gl_d©a_utž_g‘_£Ëùed_þu¡”_id_li¡ +(* +d©a +, + +224 +Eša_Li¡ + ** +£l_id_li¡ +) + +226 + `GL_CHECK_VAL +( +£l_id_li¡ +, -1); + +227 + `GL_CHECK_VAL +( +d©a +, -1); + +228 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +229 + `GL_CHECK_VAL +( +ad +-> +®bumšfo +. +£l_–i¡ +, -1); + +230 +gl_þu¡” + * +gþu¡” + = +NULL +; + +231 * +™em_id + = +NULL +; + +234 + `EINA_LIST_FREE +( +ad +-> +®bumšfo +. +£l_–i¡ +, +gþu¡” +) { + +235 ià( +gþu¡” + && gþu¡”-> +þu¡” + && gþu¡”->þu¡”-> +uuid +) { + +236 +™em_id + = + `¡rdup +( +gþu¡” +-> +þu¡” +-> +uuid +); + +237 * +£l_id_li¡ + = + `eša_li¡_­³nd +(*sel_id_list, + +238 (*) +™em_id +); + +242 + } +} + +244  + $_gl_d©a_utž_g‘_£Ëùed_¡r_ids +( +Eša_Li¡ + ** +£l_li¡ +, Eša_Li¡ ** +–i¡ +) + +246 + `GL_CHECK_VAL +( +–i¡ +, -1); + +247 + `GL_CHECK_VAL +( +£l_li¡ +, -1); + +248 +gl_™em + * +g™em + = +NULL +; + +249 * +¡r_id + = +NULL +; + +252 + `EINA_LIST_FREE +(* +£l_li¡ +, +g™em +) { + +253 ià( +g™em + && g™em-> +™em + && g™em->™em-> +uuid +) { + +254 +¡r_id + = + `¡rdup +( +g™em +-> +™em +-> +uuid +); + +255 * +–i¡ + = + `eša_li¡_­³nd +(*–i¡, (*) +¡r_id +); + +258 * +£l_li¡ + = +NULL +; + +260 + } +} + +262  + $_gl_d©a_utž_fž‹r_£Ëùed_¡r_ids +( +Eša_Li¡ + ** +£l_li¡ +, Eša_Li¡ ** +–i¡ +) + +264 + `GL_CHECK_VAL +( +–i¡ +, -1); + +265 + `GL_CHECK_VAL +( +£l_li¡ +, -1); + +266 +gl_™em + * +g™em + = +NULL +; + +267 +Eša_Li¡ + * +tmp +; + +268 * +¡r_id + = +NULL +; + +271 + `EINA_LIST_FOREACH +(* +£l_li¡ +, +tmp +, +g™em +) { + +272 ià( +g™em + && g™em-> +™em + && g™em->™em-> +uuid +) { + +273 +¡r_id + = + `¡rdup +( +g™em +-> +™em +-> +uuid +); + +274 * +–i¡ + = + `eša_li¡_­³nd +(*–i¡, (*) +¡r_id +); + +278 + } +} + +281 +boÞ + + $_gl_d©a_utž_check_£Ëùed_¡r_id +( +Eša_Li¡ + ** +£l_id_li¡ +, cÚ¡ * +id +) + +283 + `GL_CHECK_FALSE +( +id +); + +284 + `GL_CHECK_FALSE +( +£l_id_li¡ +); + +285 +Eša_Li¡ + * +tmp_–i¡ + = +NULL +; + +286 * +p_id + = +NULL +; + +288 ià( + `eša_li¡_couÁ +(* +£l_id_li¡ +) == 0) { + +289 + `gl_dbgE +("sel_id_list isƒmpty!"); + +290  +çl£ +; + +293 + `EINA_LIST_FOREACH +(* +£l_id_li¡ +, +tmp_–i¡ +, +p_id +) { + +294 ià( +p_id + =ð +NULL +) { + +295 + `gl_dbgE +("Invalid…_id!"); + +299 ià( + `g_¡rcmp0 +( +id +, (*) +p_id +)) { + +300 +p_id + = +NULL +; + +303 + `gl_sdbg +("Found: %s", +id +); + +304 * +£l_id_li¡ + = + `eša_li¡_»move +(*£l_id_li¡, +p_id +); + +305 + `GL_FREE +( +p_id +); + +306  +Œue +; + +308  +çl£ +; + +309 + } +} + +312  + $_gl_d©a_utž_ä“_£Ëùed_¡r_li¡ +( +Eša_Li¡ + ** +£l_id_li¡ +) + +314 + `GL_CHECK_VAL +( +£l_id_li¡ +, -1); + +315 ià(* +£l_id_li¡ + =ð +NULL +) { + +316 + `gl_dbg +("sel_id_list isƒmpty!"); + +320 * +p_id + = +NULL +; + +321 + `EINA_LIST_FREE +(* +£l_id_li¡ +, +p_id +) { + +322 ià( +p_id + =ð +NULL +) { + +323 + `gl_dbgE +("Invalid…_id!"); + +326 + `GL_FREE +( +p_id +); + +328 * +£l_id_li¡ + = +NULL +; + +330 + } +} + +333 +boÞ + + $_gl_d©a_utž_check_£Ëùed_št_id +( +Eša_Li¡ + ** +£l_id_li¡ +,  +id +) + +335 + `GL_CHECK_FALSE +( +£l_id_li¡ +); + +336 +Eša_Li¡ + * +tmp_–i¡ + = +NULL +; + +337 * +p_id + = +NULL +; + +339 ià( + `eša_li¡_couÁ +(* +£l_id_li¡ +) == 0) { + +340 + `gl_dbgE +("sel_id_list isƒmpty!"); + +341  +çl£ +; + +344 + `EINA_LIST_FOREACH +(* +£l_id_li¡ +, +tmp_–i¡ +, +p_id +) { + +345 ià( +p_id + =ð +NULL +) { + +346 + `gl_dbgE +("Invalid…_id!"); + +350 ià( +id + !ð() +p_id +) { + +351 +p_id + = +NULL +; + +355 * +£l_id_li¡ + = + `eša_li¡_»move +(*£l_id_li¡, +p_id +); + +356  +Œue +; + +358  +çl£ +; + +359 + } +} + +361  + $_gl_d©a_utž_check_®bum_£Ëùed_fžes +( +gl_þu¡” + * +®bum +, + +362 * +img_út +, * +£l_út +, + +363 * +web_út +) + +365 + `GL_CHECK_VAL +( +®bum +, -1); + +366 + `GL_CHECK_VAL +( +®bum +-> +þu¡” +, -1); + +367 + `GL_CHECK_VAL +( +®bum +-> +þu¡” +-> +uuid +, -1); + +368  +_£l_út + = 0; + +369  +_img_út + = 0; + +370  +_web_út + = 0; + +371  +”r + = -1; + +372 +Eša_Li¡ + * +™emli¡ + = +NULL +; + +373 +gl_fž‹r_s + +fž‹r +; + +375 + `mem£t +(& +fž‹r +, 0x00, ( +gl_fž‹r_s +)); + +376 + `_gl_d©a_utž_g‘_cÚd +( +fž‹r +. +cÚd +); + +377 +fž‹r +. +sÜt_ty³ + = +MEDIA_CONTENT_ORDER_DESC +; + +378 +fž‹r +. +cÞϋ_ty³ + = +MEDIA_CONTENT_COLLATE_NOCASE +; + +379 + `g_¡¾ýy +( +fž‹r +. +sÜt_keywÜd +, +GL_CONDITION_ORDER +, +KEYWORD_LENGTH +); + +380 +fž‹r +. +off£t + = +GL_GET_ALL_RECORDS +; + +381 +fž‹r +. +couÁ + = +GL_GET_ALL_RECORDS +; + +382 +fž‹r +. +w™h_m‘a + = +çl£ +; + +384 ià( +®bum +-> +þu¡” +-> +ty³ + =ð +GL_STORE_T_ALL +) { + +385 + `gl_dbg +("All‡lbums"); + +386 +”r + = + `_gl_loÿl_d©a_g‘_®l_®bums_medŸ_li¡ +(& +fž‹r +, + +387 & +™emli¡ +); + +388 } ià( +®bum +-> +þu¡” +-> +ty³ + =ð +GL_STORE_T_PHONE + || + +389 +®bum +-> +þu¡” +-> +ty³ + =ð +GL_STORE_T_MMC +) { + +390 + `gl_dbg +("Local‡lbum"); + +391 +”r + = + `_gl_loÿl_d©a_g‘_®bum_medŸ_li¡ +(& +fž‹r +, + +392 +®bum +-> +þu¡” +-> +uuid +, + +393 & +™emli¡ +); + +395 + `gl_dbgE +("Wrong clusterype!"); + +399 ià(( +”r + =ð0è&& ( +™emli¡ + !ð +NULL +)) { + +400 +gl_medŸ_s + * +™em + = +NULL +; + +401 + `EINA_LIST_FREE +( +™emli¡ +, +™em +) { + +402 ià( +™em + =ð +NULL + || i‹m-> +uuid + == NULL) { + +403 + `gl_dbgE +("Invalid item!"); + +407 +_£l_út +++; + +408 ià( +®bum +-> +þu¡” +-> +ty³ + =ð +GL_STORE_T_PHONE + || + +409 +®bum +-> +þu¡” +-> +ty³ + =ð +GL_STORE_T_ALL +) { + +410 ià( +™em +-> +ty³ + =ð +MEDIA_CONTENT_TYPE_IMAGE +) + +411 +_img_út +++; + +414 +_web_út +++; + +416 +™em + = +NULL +; + +419 + `gl_dbg +("Selected items count: %d, image count: %d, web count: %d", + +420 +_£l_út +, +_img_út +, +_web_út +); + +421 ià( +£l_út +) + +422 * +£l_út + = +_£l_út +; + +423 ià( +img_út +) + +424 * +img_út + = +_img_út +; + +425 ià( +web_út +) + +426 * +web_út + = +_web_út +; + +428 + } +} + +433  + $_gl_d©a_utž_g‘_cÚd +(* +cÚd +) + +435 + `GL_CHECK_VAL +( +cÚd +, -1); + +436 + `g_¡¾ýy +( +cÚd +, +GL_CONDITION_IMAGE_VIDEO +, +CONDITION_LENGTH +); + +438 + } +} + +440  + $_gl_d©a_utž_g‘_çv_cÚd +(* +cÚd +) + +442 + `GL_CHECK_VAL +( +cÚd +, -1); + +443 + `g_¡¾ýy +( +cÚd +, "((MEDIA_TYPE=0 OR MEDIA_TYPE=1) AND (MEDIA_FAVOURITE>0)" + +445 "OR MEDIA_STORAGE_TYPE=101 OR MEDIA_STORAGE_TYPE=121))", +CONDITION_LENGTH +); + +447 + } +} + + @src/data/gl-data.c + +18  + ~<”ºo.h +> + +19  + ~<¡ršg.h +> + +20  + ~ + +21  + ~"gl-d©a.h +" + +22  + ~"gl-cڌÞb¬.h +" + +23  + ~"gl-®bums.h +" + +24  + ~"g®Ëry.h +" + +25  + ~"gl-debug.h +" + +26  + ~"gl-utž.h +" + +27  + ~"gl-¡ršgs.h +" + +28  + ~"gl-icÚs.h +" + +29  + ~"gl-exif.h +" + +30  + ~"gl-db-upd©e.h +" + +31  + ~"gl-fže-utž.h +" + +33  + $__gl_d©a_­³nd_g™ems +(* +d©a +, +Eša_Li¡ + * +–i¡ +,  +¡Üe_ty³ +, + +34 +Eša_Li¡ + ** +p_–i¡ +) + +36 + `GL_CHECK_VAL +( +p_–i¡ +, -1); + +37 + `GL_CHECK_VAL +( +–i¡ +, -1); + +38 + `GL_CHECK_VAL +( +d©a +, -1); + +39 +gl_medŸ_s + * +™em + = +NULL +; + +40 +gl_™em + * +g™em + = +NULL +; + +42 + `EINA_LIST_FREE +( +–i¡ +, +™em +) { + +43 ià( +™em + =ð +NULL + || i‹m-> +uuid + == NULL) { + +44 + `gl_dbgE +("Invalid item!"); + +48 +g™em + = + `_gl_d©a_utž_ÿÎoc_g™em +(); + +49 ià( +g™em + =ð +NULL +) { + +50 + `gl_dbgE +("calloc gitem failed!"); + +51 + `_gl_d©a_ty³_ä“_gl™em +((**)& +™em +); + +55 +g™em +-> +ad + = +d©a +; + +56 +g™em +-> +™em + = item; + +57 +g™em +-> +¡Üe_ty³ + = store_type; + +58 * +p_–i¡ + = + `eša_li¡_­³nd +(*p_–i¡, +g™em +); + +59 +™em + = +NULL +; + +60 +g™em + = +NULL +; + +63 + } +} + +65  + $_gl_g‘_çv_image_couÁ +(* +couÁ +) { + +66 +gl_fž‹r_s + +fž‹r +; + +67 + `mem£t +(& +fž‹r +, 0x00, ( +gl_fž‹r_s +)); + +68 + `_gl_d©a_utž_g‘_çv_cÚd +( +fž‹r +. +cÚd +); + +69 +fž‹r +. +sÜt_ty³ + = +MEDIA_CONTENT_ORDER_DESC +; + +70 + `g_¡¾ýy +( +fž‹r +. +sÜt_keywÜd +, +GL_CONDITION_ORDER +, +KEYWORD_LENGTH +); + +71 +fž‹r +. +cÞϋ_ty³ + = +MEDIA_CONTENT_COLLATE_NOCASE +; + +72 +fž‹r +. +off£t + = +GL_GET_ALL_RECORDS +; + +73 +fž‹r +. +couÁ + = +GL_GET_ALL_RECORDS +; + +74 +fž‹r +. +w™h_m‘a + = +çl£ +; + +76  +”r + = + `_gl_loÿl_d©a_g‘_®l_medŸ_couÁ +(& +fž‹r +, +couÁ +); + +77 ià( +”r + < 0) { + +78 + `gl_dbg +("FažedØg‘ i‹m couÁ[”r: %d]!", +”r +); + +82  +”r +; + +83 + } +} + +85  + $__gl_d©a_g‘_þu¡”_li¡ +(* +d©a +, +boÞ + +b_upd©e +) + +87 +GL_PROFILE_IN +; + +88 + `GL_CHECK_VAL +( +d©a +, -1); + +89 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +90  +Ëngth + = 0; + +91  +®l_™em_út + = 0; + +92  +phÚe_út + = 0; + +93 +Eša_Li¡ + * +™em_li¡ + = +NULL +; + +94 +gl_®bum_s + * +f_d©a + = +NULL +; + +95 +gl_þu¡” + * +deçuÉ_®bum + = +NULL +; + +96  +”r + = -1; + +97  +ed™_®bum_út + = 0; + +98 +gl_fž‹r_s + +fž‹r +; + +99 +gl_®bum_s + * +Ãw_mc + = +NULL +; + +100 +Eša_Li¡ + * +£l_id_li¡ + = +NULL +; + +101 +boÞ + +b_£Ëùed + = +çl£ +; + +102  +Ãw_mc_id +[ +GL_MTYPE_ITEN_ID_LEN_MAX +] = { 0, }; + +103  +£l_id +[ +GL_MTYPE_ITEN_ID_LEN_MAX +] = { 0, }; + +104 + `gl_dbg +(""); + +106 + `mem£t +(& +fž‹r +, 0x00, ( +gl_fž‹r_s +)); + +108 ià( +b_upd©e +) { + +109 + `gl_dbg +("Update mode."); + +110 +gl_þu¡” + * +®bum_™em + = +ad +-> +®bumšfo +. +£Ëùed +; + +111 ià( +®bum_™em + &&‡lbum_™em-> +þu¡” + && + +112 +®bum_™em +-> +þu¡” +-> +uuid +) { + +113 + `g_¡¾ýy +( +£l_id +, +®bum_™em +-> +þu¡” +-> +uuid +, + +114 +GL_MTYPE_ITEN_ID_LEN_MAX +); + +115 + `gl_sdbg +("Sav£Ëùed‡lbum ID: %s.", +£l_id +); + +117 +ad +-> +®bumšfo +. +£Ëùed + = +NULL +; + +119 + `_gl_d©a_utž_g‘_£Ëùed_þu¡”_id_li¡ +( +ad +, & +£l_id_li¡ +); + +121 + `_gl_d©a_fš®ize_®bums_£Ëùed_li¡ +( +ad +); + +123 + `_gl_d©a_þ—r_þu¡”_li¡ +( +ad +, +çl£ +); + +129 ià( + `¡¾’ +( +ad +-> +®bumšfo +. +Ãw_Çme +è&& !ad->®bumšfo. +b_Ãw_®bum +) { + +130 + `mem£t +( +ad +-> +®bumšfo +. +Ãw_Çme +, 0x00, +GL_ALBUM_NAME_LEN_MAX +); + +132 +”r + = + `_gl_loÿl_d©a_g‘_®bum_by_·th +( +ad +-> +®bumšfo +. +de¡_fÞd” +, + +133 & +Ãw_mc +); + +134 ià( +”r + != 0) { + +135 + `gl_dbgE +("FaždØg‘‡lbum[%d]!", +”r +); + +136 } ià( +Ãw_mc +-> +couÁ + == 0) { + +140 + `gl_sdbg +("Get‚ewly created gl_media_s, url: %s.", + +141 +ad +-> +®bumšfo +. +de¡_fÞd” +); + +142 + `g_¡¾ýy +( +Ãw_mc_id +, +Ãw_mc +-> +uuid +, + +143 +GL_MTYPE_ITEN_ID_LEN_MAX +); + +144 + `_gl_d©a_ty³_ä“_gl™em +((**)& +Ãw_mc +); + +149 + `mem£t +( +fž‹r +. +cÚd +, 0x00, +CONDITION_LENGTH +); + +151 + `g_¡¾ýy +( +fž‹r +. +cÚd +, +GL_CONDITION_IMAGE_VIDEO +, +CONDITION_LENGTH +); + +152 +fž‹r +. +sÜt_ty³ + = +MEDIA_CONTENT_ORDER_ASC +; + +153 + `g_¡¾ýy +( +fž‹r +. +sÜt_keywÜd +, +FOLDER_NAME +, +KEYWORD_LENGTH +); + +154 +fž‹r +. +cÞϋ_ty³ + = +MEDIA_CONTENT_COLLATE_NOCASE +; + +155 +fž‹r +. +off£t + = +GL_GET_ALL_RECORDS +; + +156 +fž‹r +. +couÁ + = +GL_GET_ALL_RECORDS +; + +157 +fž‹r +. +w™h_m‘a + = +çl£ +; + +159 + `gl_dbg +("Get_album_list:start"); + +160 +”r + = + `_gl_loÿl_d©a_g‘_®bum_li¡ +(& +fž‹r +, & +™em_li¡ +); + +161 + `gl_dbg +("G‘_®bum_li¡:’d, %d", +”r +); + +162 ià( +”r + != 0) { + +163 + `gl_dbg +("No„ecord!"); + +164 +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ + = +NULL +; + +165 ià( +™em_li¡ +) + +166 + `_gl_d©a_utž_þ—r_gty³_™em_li¡ +(& +™em_li¡ +); + +170 +gl_þu¡” + * +gþu¡” + = +NULL +; + +171 + `EINA_LIST_FREE +( +™em_li¡ +, +f_d©a +) { + +172 ià( +f_d©a + =ð +NULL + || f_d©a-> +uuid + == NULL) { + +173 + `gl_dbgE +("Invalid gl_media_s!"); + +176 + `gl_sdbg +("fÞd” id: %s.", +f_d©a +-> +uuid +); + +187 ià(( +ad +-> +maššfo +. +mmc_¡©e + =ð +GL_MMC_STATE_REMOVED_MOVING + || + +188 +ad +-> +maššfo +. +mmc_¡©e + =ð +GL_MMC_STATE_REMOVED +) && + +189 +f_d©a +-> +ty³ + =ð +GL_STORE_T_MMC +) { + +190 + `gl_dbgW +("MMC was unmounted, skip MMC‡lbum!"); + +191 + `_gl_d©a_ty³_ä“_gl™em +((**)& +f_d©a +); + +195 ià( +f_d©a +-> +ty³ + =ð +GL_STORE_T_PHONE + || + +196 +f_d©a +-> +ty³ + =ð +GL_STORE_T_MMC +) { + +197 ià( +f_d©a +-> +couÁ + == 0) { + +198 ià(! + `g_¡rcmp0 +( +f_d©a +-> +uuid +, +Ãw_mc_id +)) { + +200 + `gl_dbg +("empty†ocal‡lbum, but it's‚ewly created..."); + +203 + `gl_dbg +("empty†ocal‡lbum, skipping it..."); + +204 + `_gl_d©a_ty³_ä“_gl™em +((**)& +f_d©a +); + +208 +®l_™em_út + +ð +f_d©a +-> +couÁ +; + +209 ià( +f_d©a +-> +ty³ + =ð +GL_STORE_T_PHONE + || + +210 +f_d©a +-> +ty³ + =ð +GL_STORE_T_MMC +) + +211 +phÚe_út +++; + +214 +gþu¡” + = +NULL +; + +215 +gþu¡” + = + `_gl_d©a_utž_ÿÎoc_gþu¡” +(); + +216 ià( +gþu¡” + =ð +NULL +) { + +217 + `gl_dbgE +("_gl_data_util_calloc_gcluster failed!"); + +218 + `_gl_d©a_ty³_ä“_gl™em +((**)& +f_d©a +); + +222 +gþu¡” +-> +ad + =‡d; + +223 +gþu¡” +-> +þu¡” + = +f_d©a +; + +225 +Ëngth + +ð +f_d©a +-> +couÁ +; + +227 ià( + `_gl_d©a_is_ÿm”a_®bum +( +f_d©a +)) { + +234 ià( +deçuÉ_®bum +) { + +236 ià( + `_gl_d©a_check_roÙ_ty³ +( +f_d©a +-> +·th +, +GL_ROOT_PATH_PHONE +)) { + +237 +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ + = + `eša_li¡_´•’d +(ad->albuminfo.elist->clist, + +238 +gþu¡” +); + +240 +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ + = + `eša_li¡_­³nd_»Ïtive +(ad->albuminfo.elist->clist, + +241 +gþu¡” +, + +242 +deçuÉ_®bum +); + +243 +deçuÉ_®bum + = +gþu¡” +; + +246 +deçuÉ_®bum + = +gþu¡” +; + +247 +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ + = + `eša_li¡_´•’d +(ad->albuminfo.elist->clist, + +248 +gþu¡” +); + +250 } ià( + `_gl_d©a_is_deçuÉ_®bum +( +GL_STR_ALBUM_DOWNLOADS +, +f_d©a +è|| + `_gl_d©a_is_sü“nshÙ_®bum +( +GL_STR_ALBUM_SCREENSHOTS +, f_data)) { + +251 ià( +deçuÉ_®bum +) + +252 +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ + = + `eša_li¡_­³nd_»Ïtive +(ad->albuminfo.elist->clist, + +253 +gþu¡” +, + +254 +deçuÉ_®bum +); + +256 +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ + = + `eša_li¡_´•’d +(ad->albuminfo.elist->clist, + +257 +gþu¡” +); + +259 +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ + = + `eša_li¡_­³nd +(ad->albuminfo.elist->clist, + +260 +gþu¡” +); + +263 +ed™_®bum_út +++; + +265 ià( +£l_id_li¡ +) { + +266 +b_£Ëùed + = + `_gl_d©a_utž_check_£Ëùed_¡r_id +(& +£l_id_li¡ +, + +267 +f_d©a +-> +uuid +); + +268 ià( +b_£Ëùed +) { + +269 +b_£Ëùed + = +çl£ +; + +271 +gþu¡” +-> +checked + = +Œue +; + +273 + `_gl_d©a_®bums_£Ëùed_li¡_­³nd +( +ad +, +gþu¡” +); + +276 ià( + `¡¾’ +( +£l_id +è> 0 && ! + `g_¡rcmp0 +(£l_id, +f_d©a +-> +uuid +)) { + +277 + `gl_dbgW +("Found selected_album."); + +278 +ad +-> +®bumšfo +. +£Ëùed + = +gþu¡” +; + +283 ià( +£l_id_li¡ +) { + +284 +b_£Ëùed + = + `_gl_d©a_utž_check_£Ëùed_¡r_id +(& +£l_id_li¡ +, + +285 +GL_ALBUM_ALL_ID +); + +286 + `_gl_d©a_utž_ä“_£Ëùed_¡r_li¡ +(& +£l_id_li¡ +); + +289 +ad +-> +®bumšfo +. +–i¡ +-> +phÚe_út + =…hone_cnt; + +290 +ad +-> +®bumšfo +. +–i¡ +-> +ed™_út + = +ed™_®bum_út +; + +296 ià( +®l_™em_út +) { + +297 + `_gl_db_upd©e_£t_couÁ +( +ad +, +®l_™em_út +); + +299 +gþu¡” + = + `_gl_d©a_utž_Ãw_gþu¡”_®l +( +ad +, +®l_™em_út +); + +300 ià( +gþu¡” + =ð +NULL +) { + +301 + `gl_dbgE +("_gl_data_util_new_gcluster_all failed!"); + +302 + `_gl_d©a_þ—r_þu¡”_li¡ +( +ad +, +çl£ +); + +305 ià( +b_£Ëùed +) { + +306 +b_£Ëùed + = +çl£ +; + +308 +gþu¡” +-> +checked + = +Œue +; + +310 + `_gl_d©a_®bums_£Ëùed_li¡_­³nd +( +ad +, +gþu¡” +); + +313 ià( +deçuÉ_®bum +) + +314 +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ + = + `eša_li¡_­³nd_»Ïtive +(ad->albuminfo.elist->clist, + +315 +gþu¡” +, + +316 +deçuÉ_®bum +); + +318 +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ + = + `eša_li¡_´•’d +(ad->albuminfo.elist->clist, + +319 +gþu¡” +); + +320 +deçuÉ_®bum + = +gþu¡” +; + +323 +ad +-> +maššfo +. +®l_medŸs_út + = +®l_™em_út +; + +328  +çv_couÁ + = 0; + +329 +”r + = + `_gl_g‘_çv_image_couÁ +(& +çv_couÁ +); + +330 + `gl_dbg +("çv imagcouÁ i : %d", +çv_couÁ +); + +332 ià( +çv_couÁ +) { + +334 +gþu¡” + = + `_gl_d©a_utž_Ãw_gþu¡”_çv +( +ad +, +çv_couÁ +); + +335 ià( +gþu¡” + =ð +NULL +) { + +336 + `gl_dbgE +("_gl_data_util_new_gcluster_all failed!"); + +337 + `_gl_d©a_þ—r_þu¡”_li¡ +( +ad +, +çl£ +); + +340 ià( +b_£Ëùed +) { + +341 +b_£Ëùed + = +çl£ +; + +343 +gþu¡” +-> +checked + = +Œue +; + +345 + `_gl_d©a_®bums_£Ëùed_li¡_­³nd +( +ad +, +gþu¡” +); + +348 ià( +deçuÉ_®bum +) { + +349 +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ + = + `eša_li¡_­³nd_»Ïtive +( + +350 +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ +, +gþu¡” +, +deçuÉ_®bum +); + +352 +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ + = + `eša_li¡_´•’d +( + +353 +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ +, +gþu¡” +); + +355 +deçuÉ_®bum + = +gþu¡” +; + +358 ià( +®l_™em_út +) { + +359 + `_gl_db_upd©e_£t_couÁ +( +ad +, +®l_™em_út +); + +361 +ad +-> +maššfo +. +®l_medŸs_út + = +®l_™em_út +; + +364 + `gl_dbg +("Cluster Done."); + +365 +GL_PROFILE_OUT +; + +366  +Ëngth +; + +367 + } +} + +370 +gl_™em + * + $_gl_d©a_Ãw_g™em +(* +d©a +, cÚ¡ * +™em_id +) + +372 + `GL_CHECK_NULL +( +d©a +); + +374 +gl_™em + * +g™em + = + `_gl_d©a_utž_ÿÎoc_g™em +(); + +375 + `GL_CHECK_NULL +( +g™em +); + +377 + `_gl_loÿl_d©a_g‘_medŸ_by_id +((*) +™em_id +, &( +g™em +-> +™em +)); + +378 ià( +g™em +-> +™em + =ð +NULL +) { + +379 + `_gl_d©a_utž_ä“_g™em +( +g™em +); + +380  +NULL +; + +382  +g™em +; + +383 + } +} + +385 +gl_™em + * + $_gl_d©a_Ãw_™em_m™em +( +gl_medŸ_s + * +m™em +) + +387 +gl_™em + * +g™em + = + `_gl_d©a_utž_ÿÎoc_g™em +(); + +388 + `GL_CHECK_NULL +( +g™em +); + +389 +g™em +-> +™em + = +m™em +; + +391  +g™em +; + +392 + } +} + +397 +boÞ + + $_gl_d©a_is_deçuÉ_®bum +(cÚ¡ * +m©ch_fÞd” +, +gl_®bum_s + * +®bum +) + +399 + `GL_CHECK_FALSE +( +®bum +); + +400 + `GL_CHECK_FALSE +( +®bum +-> +di¥Ïy_Çme +); + +401 + `GL_CHECK_FALSE +( +®bum +-> +uuid +); + +402 + `GL_CHECK_FALSE +( +m©ch_fÞd” +); + +405 ià(! + `g_¡rcmp0 +( +®bum +-> +di¥Ïy_Çme +, +m©ch_fÞd” +) && + +406 +®bum +-> +ty³ + =ð +GL_STORE_T_PHONE +) { + +407  +·»Á_·th +[ +GL_DIR_PATH_LEN_MAX +] = { 0, }; + +409 + `gl_sdbg +("Fu΅©h: %s", +®bum +-> +·th +); + +411 + `_gl_d©a_utž_g‘_fže_dœ_Çme +( +®bum +-> +·th +, +NULL +, NULL, + +412 +·»Á_·th +); + +413 + `gl_sdbg +("P¬’ˆ·th: %s.", +·»Á_·th +); + +416  (! + `g_¡rcmp0 +( +·»Á_·th +, +GL_ROOT_PATH_PHONE +)); + +419  +çl£ +; + +420 + } +} + +425 +boÞ + + $_gl_d©a_is_sü“nshÙ_®bum +(cÚ¡ * +m©ch_fÞd” +, +gl_®bum_s + * +®bum +) + +427 + `GL_CHECK_FALSE +( +®bum +); + +428 + `GL_CHECK_FALSE +( +®bum +-> +di¥Ïy_Çme +); + +429 + `GL_CHECK_FALSE +( +®bum +-> +uuid +); + +430 + `GL_CHECK_FALSE +( +m©ch_fÞd” +); + +432 ià(! + `g_¡rcmp0 +( +®bum +-> +di¥Ïy_Çme +, +m©ch_fÞd” +) && + +433 +®bum +-> +ty³ + =ð +GL_STORE_T_PHONE +) { + +434  +·»Á_·th +[ +GL_DIR_PATH_LEN_MAX +] = { 0, }; + +436 + `_gl_d©a_utž_g‘_fže_dœ_Çme +( +®bum +-> +·th +, +NULL +, NULL, + +437 +·»Á_·th +); + +439  (! + `g_¡rcmp0 +( +·»Á_·th +, +GL_DEFAULT_PATH_PICTURES +)); + +442  +çl£ +; + +443 + } +} + +448 +boÞ + + $_gl_d©a_is_ÿm”a_®bum +( +gl_®bum_s + * +®bum +) + +450 + `GL_CHECK_FALSE +( +®bum +); + +451 + `GL_CHECK_FALSE +( +®bum +-> +di¥Ïy_Çme +); + +453  + #GL_DCIM + "DCIM" + + ) + +455 ià(! + `g_¡rcmp0 +( +®bum +-> +di¥Ïy_Çme +, +GL_STR_ALBUM_CAMERA +)) { + +456 * +·»Á_·th + = (*) + `ÿÎoc +(1, +GL_DIR_PATH_LEN_MAX +); + +457 + `GL_CHECK_FALSE +( +·»Á_·th +); + +459 cÚ¡ * +roÙ + = +NULL +; + +460 ià( +®bum +-> +ty³ + =ð +GL_STORE_T_PHONE +) + +461 +roÙ + = +GL_ROOT_PATH_PHONE +; + +463 +roÙ + = +GL_ROOT_PATH_MMC +; + +465 + `gl_sdbg +("Fu΅©h: %s", +®bum +-> +·th +); + +466 + `_gl_d©a_utž_g‘_fže_dœ_Çme +( +®bum +-> +·th +, +NULL +, NULL, + +467 +·»Á_·th +); + +468 + `gl_sdbg +("P¬’ˆ·th: %s.", +·»Á_·th +); + +470 * +dcim_·th + = + `g_¡rdup_´štf +("%s/%s", +roÙ +, +GL_DCIM +); + +471 ià( +dcim_·th + =ð +NULL +) { + +472 + `GL_GFREE +( +·»Á_·th +); + +473  +çl£ +; + +476 +boÞ + +»t + = +çl£ +; + +477 +»t + = ! + `g_¡rcmp0 +( +dcim_·th +, +·»Á_·th +); + +479 + `GL_GFREE +( +·»Á_·th +); + +480 + `GL_GFREE +( +dcim_·th +); + +481  +»t +; + +484  +çl£ +; + +485 + } +} + +487  + $_gl_d©a_ý_™em_li¡ +(* +d©a +, +Eša_Li¡ + * +–i¡ +, Eša_Li¡ ** +p_–i¡ +) + +489 + `GL_CHECK_VAL +( +p_–i¡ +, -1); + +490 + `GL_CHECK_VAL +( +–i¡ +, -1); + +491 + `GL_CHECK_VAL +( +d©a +, -1); + +493 +Eša_Li¡ + * +l + = +NULL +; + +494 +gl_™em + * +g™em + = +NULL +; + +495 +gl_™em + * +ng™em + = +NULL +; + +496 + `EINA_LIST_FOREACH +( +–i¡ +, +l +, +g™em +) { + +497 ià(! +g™em + || !g™em-> +™em +) + +499 +ng™em + = + `_gl_d©a_Ãw_g™em +( +d©a +, +g™em +-> +™em +-> +uuid +); + +500 ià( +ng™em +) + +501 * +p_–i¡ + = + `eša_li¡_­³nd +(*p_–i¡, +ng™em +); + +504 + } +} + +506  + $_gl_d©a_þ—r_þu¡”_li¡ +(* +d©a +, +boÞ + +b_fÜû +) + +508 + `GL_CHECK_VAL +( +d©a +, -1); + +509 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +511 + `_gl_®bums_£t_cu¼’t +( +d©a +, +NULL +); + +513 ià( +ad +-> +®bumšfo +. +–i¡ +) { + +514 + `_gl_d©a_utž_þ—r_þu¡”_li¡ +(&( +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ +)); + +515 ià( +b_fÜû +) { + +516 + `GL_FREE +( +ad +-> +®bumšfo +. +–i¡ +); + +520 + } +} + +522  + $_gl_d©a_cÝy_þu¡”_li¡ +(* +d©a +, +boÞ + +b_fÜû +, +Eša_Li¡ + ** +li¡ +) + +524 + `GL_CHECK_VAL +( +d©a +, -1); + +525 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +527 + `_gl_®bums_£t_cu¼’t +( +d©a +, +NULL +); + +528 +gl_þu¡” + * +cu¼’t + = +NULL +; + +529  +couÁ + = + `eša_li¡_couÁ +( +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ +); + +530  +i +; + +531  +i + = 0; i < +couÁ +; i++) { + +532 +cu¼’t + = + `eša_li¡_Áh +( +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ +, +i +); + +533 ià( +cu¼’t +) { + +534 (* +li¡ +èð + `eša_li¡_­³nd +((*li¡), +cu¼’t +); + +537 ià( +ad +-> +®bumšfo +. +–i¡ +) { + +538 +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ + = +NULL +; + +539 ià( +b_fÜû +) { + +540 + `GL_FREE +( +ad +-> +®bumšfo +. +–i¡ +); + +544 + } +} + +546 +boÞ + + $_gl_d©a_g‘_þu¡”_li¡ +(* +d©a +) + +548 +GL_PROFILE_IN +; + +549 + `GL_CHECK_FALSE +( +d©a +); + +550 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +551  +n_’tœe_™ems + = 0; + +554 + `_gl_d©a_fš®ize_®bums_£Ëùed_li¡ +( +ad +); + +555 + `_gl_d©a_þ—r_þu¡”_li¡ +( +ad +, +Œue +); + +557 +ad +-> +®bumšfo +. +–i¡ + = + `_gl_d©a_utž_ÿÎoc_þu¡”_li¡ +(); + +558 + `GL_CHECK_FALSE +( +ad +-> +®bumšfo +. +–i¡ +); + +559 +n_’tœe_™ems + = + `__gl_d©a_g‘_þu¡”_li¡ +( +ad +, +çl£ +); + +560 ià( +n_’tœe_™ems + <= 0) + +561  +çl£ +; + +563 + `gl_dbg +("þu¡”-Ëngth:%d", +n_’tœe_™ems +); + +564 +GL_PROFILE_OUT +; + +565  +Œue +; + +566 + } +} + +568  + $_gl_upd©e_®bum_£Ëùed_d©a +(* +d©a +, +Eša_Li¡ + ** +li¡ +) + +570 + `GL_CHECK +( +d©a +); + +571 + `GL_CHECK +( +li¡ +); + +572 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +573 +gl_þu¡” + * +cu¼’t + = +NULL +; + +574 +gl_þu¡” + * +s™ + = +NULL +; + +575 +Eša_Li¡ + * +tmp_–i¡ + = +NULL +; + +576 ià((* +li¡ +è&& +ad +-> +®bumšfo +. +–i¡ + &&‡d->®bumšfo.–i¡-> +þi¡ +) { + +577  +couÁ + = + `eša_li¡_couÁ +( +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ +); + +578  +i +; + +579  +i + = 0; i < +couÁ +; i++) { + +580 +cu¼’t + = + `eša_li¡_Áh +( +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ +, +i +); + +581 ià( +cu¼’t + && cu¼’t-> +þu¡” +) { + +582 + `EINA_LIST_FOREACH +((* +li¡ +), +tmp_–i¡ +, +s™ +) { + +583 ià( +s™ + && s™-> +þu¡” +) { + +584 ià(! + `g_¡rcmp0 +( +cu¼’t +-> +þu¡” +-> +uuid +, +s™ +->cluster->uuid)) { + +585 +cu¼’t +-> +–i¡ + = +s™ +->elist; + +591 + `_gl_d©a_utž_þ—r_þu¡”_li¡ +( +li¡ +); + +594 ià( +li¡ +) { + +595 + `gl_dbg +("List is‚ot NULL"); + +598 + } +} + +600 +boÞ + + $_gl_d©a_g‘_þu¡”_li¡_ed™_mode +(* +d©a +) + +602 +GL_PROFILE_IN +; + +603 + `GL_CHECK_FALSE +( +d©a +); + +604 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +605  +n_’tœe_™ems + = 0; + +606 +Eša_Li¡ + * +li¡ + = +NULL +; + +609 + `_gl_d©a_cÝy_þu¡”_li¡ +( +ad +, +Œue +, & +li¡ +); + +610 ià(! +li¡ + ) { + +611 + `gl_dbg +("list is‚ull"); + +613  +couÁ + = + `eša_li¡_couÁ +( +li¡ +); + +614 +gl_þu¡” + * +cu¼’t + = +NULL +; + +615  +i +; + +616  +i + = 0; i < +couÁ +; i++) { + +617 +cu¼’t + = + `eša_li¡_Áh +( +li¡ +, +i +); + +618 ià( +cu¼’t +) { + +619  +couÁ1 + = + `eša_li¡_couÁ +( +cu¼’t +-> +–i¡ +); + +623 +ad +-> +®bumšfo +. +–i¡ + = + `_gl_d©a_utž_ÿÎoc_þu¡”_li¡ +(); + +624 + `GL_CHECK_FALSE +( +ad +-> +®bumšfo +. +–i¡ +); + +625 +n_’tœe_™ems + = + `__gl_d©a_g‘_þu¡”_li¡ +( +ad +, +çl£ +); + +626 ià( +n_’tœe_™ems + <= 0) + +627  +çl£ +; + +629 + `_gl_upd©e_®bum_£Ëùed_d©a +( +d©a +, & +li¡ +); + +630 +gl_þu¡” + * +cu¼’t + = +NULL +; + +631  +i +; + +632  +couÁ + = + `eša_li¡_couÁ +( +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ +); + +633  +i + = 0; i < +couÁ +; i++) { + +634 +cu¼’t + = + `eša_li¡_Áh +( +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ +, +i +); + +635 ià( +cu¼’t +) { + +636  +couÁ1 + = + `eša_li¡_couÁ +( +cu¼’t +-> +–i¡ +); + +639 +GL_PROFILE_OUT +; + +640  +Œue +; + +641 + } +} + +644  + $_gl_d©a_upd©e_þu¡”_li¡ +(* +d©a +) + +646 + `GL_CHECK_VAL +( +d©a +, -1); + +647 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +648  +Ën + = 0; + +650 +Ën + = + `__gl_d©a_g‘_þu¡”_li¡ +( +ad +, +Œue +); + +651 + `gl_dbg +("Clu¡”†i¡†’gth: %d.", +Ën +); + +652 ià( +Ën + <= 0) + +656 + } +} + +658  + $_gl_d©a_þu¡”_li¡_»move +(* +d©a +, +gl_þu¡” + * +™em +) + +660 + `GL_CHECK_VAL +( +™em +, -1); + +661 + `GL_CHECK_VAL +( +™em +-> +þu¡” +, -1); + +662 + `GL_CHECK_VAL +( +™em +-> +þu¡” +-> +uuid +, -1); + +663 + `GL_CHECK_VAL +( +d©a +, -1); + +664 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +665 +gl_þu¡” + * +cu¼’t + = +NULL +; + +666 +Eša_Li¡ + * +l + = +NULL +; + +668 + `GL_CHECK_VAL +( +ad +-> +®bumšfo +. +–i¡ +, -1); + +669 + `GL_CHECK_VAL +( +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ +, -1); + +670 +Eša_Li¡ + * +þu¡”_li¡ + = +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ +; + +671 + `EINA_LIST_FOREACH +( +þu¡”_li¡ +, +l +, +cu¼’t +) { + +672 ià( +cu¼’t + =ð +NULL + || cu¼’t-> +þu¡” + == NULL || + +673 +cu¼’t +-> +þu¡” +-> +uuid + =ð +NULL +) { + +674 + `gl_dbgE +("Invalid‡lbum item!"); + +678 ià(! + `g_¡rcmp0 +( +cu¼’t +-> +þu¡” +-> +uuid +, +™em +->cluster->uuid)) { + +679 +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ + = + `eša_li¡_»move +(ad->albuminfo.elist->clist, + +680 +cu¼’t +); + +681 + `_gl_d©a_utž_ä“_gþu¡” +( +cu¼’t +); + +684 +cu¼’t + = +NULL +; + +688 + } +} + +690  + $_gl_d©a_g‘_þu¡”_by_id +(* +d©a +, cÚ¡ * +þu¡”_id +, + +691 +gl_þu¡” + ** +þu¡” +) + +693 + `GL_CHECK_VAL +( +d©a +, -1); + +694 + `GL_CHECK_VAL +( +þu¡” +, -1); + +695 + `GL_CHECK_VAL +( +þu¡”_id +, -1); + +696 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +697  +i + = 0; + +698 +gl_þu¡” + * +cu¼’t + = +NULL +; + +700 * +þu¡” + = +NULL +; + +702 + `GL_CHECK_VAL +( +ad +-> +®bumšfo +. +–i¡ +, -1); + +703  +Ëngth + = + `eša_li¡_couÁ +( +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ +); + +704 + `gl_sdbg +("®bum†’gth: %d, cu¼’ˆ®bum id: %s", +Ëngth +, +þu¡”_id +); + +706  +i + = 0; i < +Ëngth +; i++) { + +707 +cu¼’t + = + `eša_li¡_Áh +( +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ +, +i +); + +708 ià( +cu¼’t + && cu¼’t-> +þu¡” + && cu¼’t->þu¡”-> +uuid +) { + +709 + `gl_sdbg +("þu¡” : %s", +cu¼’t +-> +þu¡” +-> +di¥Ïy_Çme +); + +711 + `gl_dbgE +("cluster is NULL"); + +715 ià(! + `g_¡rcmp0 +( +cu¼’t +-> +þu¡” +-> +uuid +, +þu¡”_id +)) { + +716 * +þu¡” + = +cu¼’t +; + +717 + `gl_dbgW +("Found!"); + +722 + } +} + +724  + $_gl_d©a_g‘_þu¡”_by_·th +(* +d©a +, cÚ¡ * +·th +, + +725 +gl_þu¡” + ** +þu¡” +) + +727 + `GL_CHECK_VAL +( +d©a +, -1); + +728 + `GL_CHECK_VAL +( +þu¡” +, -1); + +729 + `GL_CHECK_VAL +( +·th +, -1); + +730 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +731  +i + = 0; + +732 +gl_þu¡” + * +cu¼’t + = +NULL +; + +734 * +þu¡” + = +NULL +; + +736 + `GL_CHECK_VAL +( +ad +-> +®bumšfo +. +–i¡ +, -1); + +737  +Ëngth + = + `eša_li¡_couÁ +( +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ +); + +738 + `gl_sdbg +("®bum†’gth: %d,…©h: %s", +Ëngth +, +·th +); + +740  +i + = 0; i < +Ëngth +; i++) { + +741 +cu¼’t + = + `eša_li¡_Áh +( +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ +, +i +); + +742 ià( +cu¼’t + && cu¼’t-> +þu¡” + && cu¼’t->þu¡”-> +·th +) { + +743 + `gl_sdbg +("þu¡” : %s", +cu¼’t +-> +þu¡” +-> +di¥Ïy_Çme +); + +745 + `gl_dbgE +("cluster is NULL"); + +749 ià(! + `g_¡rcmp0 +( +cu¼’t +-> +þu¡” +-> +·th +,…ath)) { + +750 * +þu¡” + = +cu¼’t +; + +751 + `gl_dbgW +("Found!"); + +756 + } +} + +761  + $_gl_d©a_®bums_£Ëùed_li¡_­³nd +(* +d©a +, +gl_þu¡” + * +™em +) + +763 + `GL_CHECK_VAL +( +™em +, -1); + +764 + `GL_CHECK_VAL +( +™em +-> +þu¡” +, -1); + +765 + `GL_CHECK_VAL +( +d©a +, -1); + +766 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +767  +img_út + = 0; + +768  +£l_út + = 0; + +769  +web_út + = 0; + +771 ià( +GL_STORE_T_PHONE + !ð +™em +-> +þu¡” +-> +ty³ + || + +772 + `_gl_d©a_is_ÿm”a_®bum +( +™em +-> +þu¡” +) || + +773 + `_gl_d©a_is_deçuÉ_®bum +( +GL_STR_ALBUM_DOWNLOADS +, +™em +-> +þu¡” +)) + +774 ++ +ad +-> +£lšfo +. +di§bË_hide_út +; + +775 + `_gl_d©a_utž_check_®bum_£Ëùed_fžes +( +™em +, & +img_út +, + +776 & +£l_út +, & +web_út +); + +778 +ad +-> +£lšfo +. +images_út + =‡d->£lšfo.images_úˆ+ +img_út +; + +779 +ad +-> +£lšfo +. +£l_út + =‡d->selinfo.sel_cnt + sel_cnt; + +780 +ad +-> +®bumšfo +. +£l_–i¡ + = + `eša_li¡_­³nd +×d->®bumšfo.£l_–i¡, +™em +); + +783 + } +} + +786 +boÞ + + $_gl_d©a_exi¡s_™em +(* +d©a +, cÚ¡ * +id +) + +788 + `GL_CHECK_NULL +( +d©a +); + +789 + `GL_CHECK_FALSE +( +id +); + +790 +gl_medŸ_s + * +Ãw_™em + = +NULL +; + +792 + `_gl_loÿl_d©a_g‘_medŸ_by_id +((*) +id +, &( +Ãw_™em +)); + +793 ià( +Ãw_™em + =ð +NULL +) { + +794 + `gl_dbgW +("gl_media_s doesn'tƒxist!"); + +795  +çl£ +; + +797 + `_gl_d©a_ty³_ä“_gl™em +((**)& +Ãw_™em +); + +798 +Ãw_™em + = +NULL +; + +799  +Œue +; + +801 + } +} + +806  + $_gl_d©a_g‘_™em_út +(cÚ¡ * +þu¡”_id +,  +®bum_ty³ +, * +™em_út +) + +808 + `GL_CHECK_VAL +( +™em_út +, -1); + +809  +”r + = -1; + +810 + `gl_sdbg +("þu¡”_id: %s", +þu¡”_id +); + +812 +gl_fž‹r_s + +fž‹r +; + +813 + `mem£t +(& +fž‹r +, 0x00, ( +gl_fž‹r_s +)); + +814 + `_gl_d©a_utž_g‘_cÚd +( +fž‹r +. +cÚd +); + +815 +fž‹r +. +sÜt_ty³ + = +MEDIA_CONTENT_ORDER_DESC +; + +816 + `g_¡¾ýy +( +fž‹r +. +sÜt_keywÜd +, +GL_CONDITION_ORDER +, +KEYWORD_LENGTH +); + +817 +fž‹r +. +cÞϋ_ty³ + = +MEDIA_CONTENT_COLLATE_NOCASE +; + +818 +fž‹r +. +off£t + = +GL_GET_ALL_RECORDS +; + +819 +fž‹r +. +couÁ + = +GL_GET_ALL_RECORDS +; + +820 +fž‹r +. +w™h_m‘a + = +çl£ +; + +822 + `GL_CHECK_VAL +( +þu¡”_id +, -1); + +823 ià( +®bum_ty³ + =ð +GL_STORE_T_PHONE + || + +824 +®bum_ty³ + =ð +GL_STORE_T_MMC +) { + +826 +”r + = + `_gl_loÿl_d©a_g‘_medŸ_couÁ +( +þu¡”_id +, & +fž‹r +, + +827 +™em_út +); + +828 } ià( +®bum_ty³ + =ð +GL_STORE_T_ALL +) { + +830 + `gl_dbg +("All‡lbums media count."); + +831 +”r + = + `_gl_loÿl_d©a_g‘_®l_medŸ_couÁ +(& +fž‹r +, +™em_út +); + +832 } ià( +®bum_ty³ + =ð +GL_STORE_T_FAV +) { + +834 + `gl_dbg +("favorite‡lbums media count."); + +835 +”r + = + `_gl_g‘_çv_image_couÁ +( +™em_út +); + +837 + `gl_dbgE +("Invalid cluster_id!"); + +841 ià( +”r + < 0) { + +842 + `gl_dbg +("FažedØg‘ i‹m couÁ[”r: %d]!", +”r +); + +846 + `gl_dbg +("I‹m couÁ: %d.", * +™em_út +); + +848 + } +} + +850  + $_gl_d©a_upd©e_™em_út +( +gl_þu¡” + * +®bum +) + +852 + `GL_CHECK_VAL +( +®bum +, -1); + +853 + `GL_CHECK_VAL +( +®bum +-> +þu¡” +, -1); + +854  +™em_couÁ + = 0; + +855  +”r + = -1; + +856 + `GL_CHECK_VAL +( +®bum +-> +þu¡” +-> +uuid +, -1); + +857 +”r + = + `_gl_d©a_g‘_™em_út +( +®bum +-> +þu¡” +-> +uuid +,‡lbum->þu¡”-> +ty³ +, & +™em_couÁ +); + +858 ià( +”r + != 0) { + +859 + `gl_dbg +("_gl_data_get_item_cnt failed!"); + +860 +®bum +-> +þu¡” +-> +couÁ + = 0; + +864 + `gl_dbg +("MedŸ couÁ: old=%d,‚ew=%d", +®bum +-> +þu¡” +-> +couÁ +, + +865 +™em_couÁ +); + +866 +®bum +-> +þu¡” +-> +couÁ + = +™em_couÁ +; + +869 + } +} + +871  + $_gl_d©a_g‘_™ems +( +¡¬t_pos +,  +’d_pos +, +Eša_Li¡ + ** +li¡ +) + +873 + `GL_CHECK_VAL +( +li¡ +, -1); + +874  +”r + = -1; + +875 +gl_fž‹r_s + +fž‹r +; + +877 + `mem£t +(& +fž‹r +, 0x00, ( +gl_fž‹r_s +)); + +878 + `_gl_d©a_utž_g‘_cÚd +( +fž‹r +. +cÚd +); + +879 +fž‹r +. +sÜt_ty³ + = +MEDIA_CONTENT_ORDER_DESC +; + +880 + `g_¡¾ýy +( +fž‹r +. +sÜt_keywÜd +, +GL_CONDITION_ORDER +, +KEYWORD_LENGTH +); + +881 +fž‹r +. +cÞϋ_ty³ + = +MEDIA_CONTENT_COLLATE_NOCASE +; + +882 ià( +¡¬t_pos + !ð +GL_GET_ALL_RECORDS +) { + +883 +fž‹r +. +off£t + = +¡¬t_pos +; + +884 +fž‹r +. +couÁ + = +’d_pos + - +¡¬t_pos + + 1; + +886 +fž‹r +. +off£t + = +GL_GET_ALL_RECORDS +; + +887 +fž‹r +. +couÁ + = +GL_GET_ALL_RECORDS +; + +889 +fž‹r +. +w™h_m‘a + = +Œue +; + +892 + `gl_dbg +("_gl_data_get_items--all media"); + +893 +”r + = + `_gl_loÿl_d©a_g‘_®l_®bums_medŸ_li¡ +(& +fž‹r +, +li¡ +); + +894 + `gl_dbg +("E¼Ü code: %d", +”r +); + +895  +”r +; + +896 + } +} + +898  + $_gl_d©a_g‘_™ems_®bum +(* +d©a +, +gl_þu¡” + * +®bum +,  +¡¬t_pos +, + +899  +’d_pos +, +Eša_Li¡ + ** +p_–i¡ +) + +901 + `GL_CHECK_VAL +( +d©a +, -1); + +902 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +903 +Eša_Li¡ + * +™emli¡ + = +NULL +; + +904  +”r + = -1; + +905  +¡Üe_ty³ + = +GL_STORE_T_PHONE +; + +906 +gl_fž‹r_s + +fž‹r +; + +908 + `mem£t +(& +fž‹r +, 0x00, ( +gl_fž‹r_s +)); + +909 + `_gl_d©a_utž_g‘_cÚd +( +fž‹r +. +cÚd +); + +910 +fž‹r +. +sÜt_ty³ + = +MEDIA_CONTENT_ORDER_DESC +; + +911 + `g_¡¾ýy +( +fž‹r +. +sÜt_keywÜd +, +GL_CONDITION_ORDER +, +KEYWORD_LENGTH +); + +912 +fž‹r +. +cÞϋ_ty³ + = +MEDIA_CONTENT_COLLATE_NOCASE +; + +913 +fž‹r +. +off£t + = +¡¬t_pos +; + +914 +fž‹r +. +couÁ + = +’d_pos + - +¡¬t_pos + + 1; + +915 +fž‹r +. +w™h_m‘a + = +Œue +; + +918 + `GL_CHECK_VAL +( +®bum +, -1); + +919 + `GL_CHECK_VAL +( +®bum +-> +þu¡” +, -1); + +920 + `gl_dbg +("fÞd” s¹_pos[%d],ƒnd_pos[%d]", +¡¬t_pos +, +’d_pos +); + +922 + `GL_CHECK_VAL +( +®bum +-> +þu¡” +-> +uuid +, -1); + +923 +¡Üe_ty³ + = +®bum +-> +þu¡” +-> +ty³ +; + +926 ià( +¡Üe_ty³ + =ð +GL_STORE_T_PHONE + || + +927 +¡Üe_ty³ + =ð +GL_STORE_T_MMC +) { + +928 +ad +-> +ugšfo +. +sÜt_ty³ + = +fž‹r +.sort_type; + +930 ià( +¡¬t_pos + =ð( +GL_FIRST_VIEW_END_POS + + 1) && + +931 +’d_pos + =ð +GL_GET_UNTIL_LAST_RECORD +) { + +933 + `gl_dbg +("Gridview‡ppend idler; Keep medias_elist unchanged."); + +935 +”r + = + `_gl_loÿl_d©a_g‘_®bum_medŸ_li¡ +(& +fž‹r +, + +936 +®bum +-> +þu¡” +-> +uuid +, + +937 & +™emli¡ +); + +938 } ià( +¡Üe_ty³ + =ð +GL_STORE_T_ALL +) { + +940 + `gl_dbg +("All‡lbums"); + +941 +ad +-> +ugšfo +. +sÜt_ty³ + = +fž‹r +.sort_type; + +943 ià( +¡¬t_pos + =ð( +GL_FIRST_VIEW_END_POS + + 1) && + +944 +’d_pos + =ð +GL_GET_UNTIL_LAST_RECORD +) { + +946 + `gl_dbg +("Keep medias_elist unchanged"); + +949 +”r + = + `_gl_loÿl_d©a_g‘_®l_®bums_medŸ_li¡ +(& +fž‹r +, + +950 & +™emli¡ +); + +951 } ià( +¡Üe_ty³ + =ð +GL_STORE_T_FAV +) { + +953 + `gl_dbg +("fav‡lbums"); + +954 +ad +-> +ugšfo +. +sÜt_ty³ + = +fž‹r +.sort_type; + +956 ià( +¡¬t_pos + =ð( +GL_FIRST_VIEW_END_POS + + 1) && + +957 +’d_pos + =ð +GL_GET_UNTIL_LAST_RECORD +) { + +959 + `gl_dbg +("Keep medias_elist unchanged"); + +962 +gl_fž‹r_s + +fž‹r_çv +; + +964 + `mem£t +(& +fž‹r_çv +, 0x00, ( +gl_fž‹r_s +)); + +965 + `_gl_d©a_utž_g‘_çv_cÚd +( +fž‹r_çv +. +cÚd +); + +966 +fž‹r_çv +. +sÜt_ty³ + = +MEDIA_CONTENT_ORDER_DESC +; + +967 + `g_¡¾ýy +( +fž‹r_çv +. +sÜt_keywÜd +, +GL_CONDITION_ORDER +, +KEYWORD_LENGTH +); + +968 +fž‹r_çv +. +cÞϋ_ty³ + = +MEDIA_CONTENT_COLLATE_NOCASE +; + +969 +fž‹r_çv +. +off£t + = +¡¬t_pos +; + +970 +fž‹r_çv +. +couÁ + = +’d_pos + - +¡¬t_pos + + 1; + +971 +fž‹r_çv +. +w™h_m‘a + = +Œue +; + +973 +”r + = + `_gl_loÿl_d©a_g‘_çv_®bums_medŸ_li¡ +(& +fž‹r_çv +, + +974 & +™emli¡ +); + +976 + `gl_dbgE +("Wrong clusterype!"); + +980 + `gl_dbg +("E¼Ü code: %d", +”r +); + +981 ià(( +”r + =ð0è&& ( +™emli¡ + !ð +NULL +)) { + +982 + `__gl_d©a_­³nd_g™ems +( +d©a +, +™emli¡ +, +¡Üe_ty³ +, +p_–i¡ +); + +983 } ià( +™emli¡ +) { + +984 + `_gl_d©a_utž_þ—r_gty³_™em_li¡ +(& +™emli¡ +); + +987 + `gl_dbg +("done"); + +988  +”r +; + +989 + } +} + +991  + $_gl_d©a_upd©e_™em_li¡ +(* +d©a +, +Eša_Li¡ + ** +£l_id_li¡ +, + +992 +Eša_Li¡ + ** +p_–i¡ +) + +994 + `GL_CHECK_VAL +( +d©a +, -1); + +995 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +996 +Eša_Li¡ + * +™emli¡ + = +NULL +; + +997  +”r + = -1; + +998  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +999 +gl_™em + * +g™em + = +NULL +; + +1000  +¡Üe_ty³ + = +GL_STORE_T_PHONE +; + +1001 +gl_fž‹r_s + +fž‹r +; + +1003 + `mem£t +(& +fž‹r +, 0x00, ( +gl_fž‹r_s +)); + +1004 + `_gl_d©a_utž_g‘_cÚd +( +fž‹r +. +cÚd +); + +1005 +fž‹r +. +sÜt_ty³ + = +MEDIA_CONTENT_ORDER_DESC +; + +1006 + `g_¡¾ýy +( +fž‹r +. +sÜt_keywÜd +, +GL_CONDITION_ORDER +, +KEYWORD_LENGTH +); + +1007 +fž‹r +. +cÞϋ_ty³ + = +MEDIA_CONTENT_COLLATE_NOCASE +; + +1008 +fž‹r +. +off£t + = +GL_GET_ALL_RECORDS +; + +1009 +fž‹r +. +couÁ + = +GL_GET_ALL_RECORDS +; + +1010 +fž‹r +. +w™h_m‘a + = +Œue +; + +1013 ià( + `_gl_ù¾_g‘_b_mode +( +ad +è=ð +GL_CTRL_TAB_ALBUMS + || + +1014 +v›w_mode + =ð +GL_VIEW_THUMBS_SELECT +) { + +1015 +gl_þu¡” + * +cur_®bum + = + `_gl_®bums_g‘_cu¼’t +( +d©a +); + +1016 + `GL_CHECK_VAL +( +cur_®bum +, -1); + +1017 + `GL_CHECK_VAL +( +cur_®bum +-> +þu¡” +, -1); + +1018 + `GL_CHECK_VAL +( +cur_®bum +-> +þu¡” +-> +uuid +, -1); + +1019 +¡Üe_ty³ + = +cur_®bum +-> +þu¡” +-> +ty³ +; + +1020 +ad +-> +ugšfo +. +sÜt_ty³ + = +fž‹r +.sort_type; + +1022 ià( +¡Üe_ty³ + =ð +GL_STORE_T_ALL +) { + +1023 + `gl_dbg +("All‡lbums medias"); + +1024 +”r + = + `_gl_loÿl_d©a_g‘_®l_®bums_medŸ_li¡ +(& +fž‹r +, + +1025 & +™emli¡ +); + +1026 } ià( +¡Üe_ty³ + =ð +GL_STORE_T_FAV +) { + +1027 +gl_fž‹r_s + +fž‹r_çv +; + +1029 + `mem£t +(& +fž‹r_çv +, 0x00, ( +gl_fž‹r_s +)); + +1030 + `_gl_d©a_utž_g‘_çv_cÚd +( +fž‹r_çv +. +cÚd +); + +1031 +fž‹r_çv +. +sÜt_ty³ + = +MEDIA_CONTENT_ORDER_DESC +; + +1032 + `g_¡¾ýy +( +fž‹r_çv +. +sÜt_keywÜd +, +GL_CONDITION_ORDER +, +KEYWORD_LENGTH +); + +1033 +fž‹r_çv +. +cÞϋ_ty³ + = +MEDIA_CONTENT_COLLATE_NOCASE +; + +1034 +fž‹r_çv +. +off£t + = +GL_GET_ALL_RECORDS +; + +1035 +fž‹r_çv +. +couÁ + = +GL_GET_ALL_RECORDS +; + +1036 +fž‹r_çv +. +w™h_m‘a + = +Œue +; + +1037 +”r + = + `_gl_loÿl_d©a_g‘_çv_®bums_medŸ_li¡ +(& +fž‹r_çv +, & +™emli¡ +); + +1039 + `gl_dbg +("Local‡lbum medias"); + +1040 +”r + = + `_gl_loÿl_d©a_g‘_®bum_medŸ_li¡ +(& +fž‹r +, + +1041 +cur_®bum +-> +þu¡” +-> +uuid +, + +1042 & +™emli¡ +); + +1046 + `gl_dbg +("E¼Ü code: %d", +”r +); + +1047 ià(( +”r + !ð0è|| ( +™emli¡ + =ð +NULL +)) { + +1048 + `gl_dbgE +("(err != 0) || (itemlist == NULL)"); + +1050 ià( +£l_id_li¡ + && *sel_id_list) { + +1051 + `eša_li¡_ä“ +(* +£l_id_li¡ +); + +1052 * +£l_id_li¡ + = +NULL +; + +1055 ià( +™emli¡ +) + +1056 + `_gl_d©a_utž_þ—r_gty³_™em_li¡ +(& +™emli¡ +); + +1058  +”r +; + +1061 +boÞ + +b_£Ëùed + = +çl£ +; + +1062 +gl_medŸ_s + * +™em + = +NULL +; + +1063 + `EINA_LIST_FREE +( +™emli¡ +, +™em +) { + +1064 ià( +™em + =ð +NULL + || i‹m-> +uuid + == NULL) { + +1065 + `gl_dbgE +("Invalid item!"); + +1068 +g™em + = + `_gl_d©a_utž_ÿÎoc_g™em +(); + +1069 ià( +g™em + =ð +NULL +) { + +1070 + `gl_dbgE +("_gl_data_util_calloc_gitem failed!"); + +1071 + `_gl_d©a_ty³_ä“_gl™em +((**)& +™em +); + +1074 +gl_þu¡” + * +cur_®bum + = + `_gl_®bums_g‘_cu¼’t +( +d©a +); + +1075 ià( +cur_®bum + =ð +NULL +) { + +1076 + `ä“ +( +g™em +); + +1079 +g™em +-> +ad + =‡d; + +1080 +g™em +-> +™em + = item; + +1081 +g™em +-> +¡Üe_ty³ + = store_type; + +1082 +g™em +-> +®bum + = +cur_®bum +; + +1084 * +p_–i¡ + = + `eša_li¡_­³nd +(*p_–i¡, +g™em +); + +1086 ià( +£l_id_li¡ + && *sel_id_list) { + +1087 +b_£Ëùed + = + `_gl_d©a_utž_check_£Ëùed_¡r_id +( +£l_id_li¡ +, + +1088 +™em +-> +uuid +); + +1089 ià( +b_£Ëùed +) { + +1090 +b_£Ëùed + = +çl£ +; + +1092 +g™em +-> +checked + = +Œue +; + +1094 + `_gl_d©a_£Ëùed_li¡_­³nd +( +ad +, +g™em +); + +1100 ià( +£l_id_li¡ + && *sel_id_list) + +1101 + `_gl_d©a_utž_ä“_£Ëùed_¡r_li¡ +( +£l_id_li¡ +); + +1102 + `gl_dbg +("done"); + +1103  +”r +; + +1104 + } +} + +1106  + $_gl_d©a_g‘_®bum_cov” +( +gl_þu¡” + * +®bum +, +gl_™em + ** +pg™em +, + +1107 +medŸ_cڋÁ_Üd”_e + +sÜt_ty³ +) + +1109 + `GL_CHECK_VAL +( +pg™em +, -1); + +1110 + `GL_CHECK_VAL +( +®bum +, -1); + +1111 + `GL_CHECK_VAL +( +®bum +-> +þu¡” +, -1); + +1112 + `GL_CHECK_VAL +( +®bum +-> +þu¡” +-> +uuid +, -1); + +1113 + `GL_CHECK_VAL +( +®bum +-> +ad +, -1); + +1114 +Eša_Li¡ + * +™em_li¡ + = +NULL +; + +1115 +gl_medŸ_s + * +™em + = +NULL +; + +1116 +gl_™em + * +g™em + = +NULL +; + +1117  +”r + = -1; + +1118 +gl_fž‹r_s + +fž‹r +; + +1120 + `mem£t +(& +fž‹r +, 0x00, ( +gl_fž‹r_s +)); + +1121 + `_gl_d©a_utž_g‘_cÚd +( +fž‹r +. +cÚd +); + +1122 +fž‹r +. +sÜt_ty³ + = sort_type; + +1123 + `g_¡¾ýy +( +fž‹r +. +sÜt_keywÜd +, +GL_CONDITION_ORDER +, +KEYWORD_LENGTH +); + +1124 +fž‹r +. +cÞϋ_ty³ + = +MEDIA_CONTENT_COLLATE_NOCASE +; + +1125 +fž‹r +. +off£t + = +GL_FIRST_VIEW_START_POS +; + +1126 +fž‹r +. +couÁ + = 1; + +1127 +fž‹r +. +w™h_m‘a + = +çl£ +; + +1129 ià( +®bum +-> +þu¡” +-> +ty³ + =ð +GL_STORE_T_PHONE + || + +1130 +®bum +-> +þu¡” +-> +ty³ + =ð +GL_STORE_T_MMC +) { + +1132 +”r + = + `_gl_loÿl_d©a_g‘_®bum_cov” +(& +fž‹r +, + +1133 +®bum +-> +þu¡” +-> +uuid +, + +1134 & +™em_li¡ +); + +1135 ià( +”r + !ð0 || +™em_li¡ + =ð +NULL +) { + +1136 + `gl_dbgE +("G‘‡lbum medŸ çžed[%d]", +”r +); + +1137 ià( +™em_li¡ +) + +1138 + `_gl_d©a_utž_þ—r_gty³_™em_li¡ +(& +™em_li¡ +); + +1142 + `EINA_LIST_FREE +( +™em_li¡ +, +™em +) { + +1143 ià( +™em + =ð +NULL +) { + +1144 + `gl_dbgE +("Invalid gl_media_s!"); + +1147 +g™em + = + `_gl_d©a_utž_ÿÎoc_g™em +(); + +1148 ià( +g™em + =ð +NULL +) { + +1149 + `gl_dbgE +("_gl_data_util_calloc_gitem failed!"); + +1150 + `_gl_d©a_ty³_ä“_gl™em +((**)& +™em +); + +1153 +g™em +-> +™em + = item; + +1154 +g™em +-> +®bum + =‡lbum; + +1155 * +pg™em + = +g™em +; + +1158 } ià( +®bum +-> +þu¡” +-> +ty³ + =ð +GL_STORE_T_ALL +) { + +1160 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +®bum +->ad; + +1161 + `gl_dbg +("db_get_item_list--all media"); + +1163 +”r + = + `_gl_loÿl_d©a_g‘_®l_®bums_cov” +(& +fž‹r +, & +™em_li¡ +); + +1164 ià( +”r + !ð0 || +™em_li¡ + =ð +NULL +) { + +1165 + `gl_dbgE +("FažedØg‘‡Î medŸs[%d]!", +”r +); + +1166 ià( +™em_li¡ +) + +1167 + `_gl_d©a_utž_þ—r_gty³_™em_li¡ +(& +™em_li¡ +); + +1172 + `EINA_LIST_FREE +( +™em_li¡ +, +™em +) { + +1173 ià( +™em + =ð +NULL +) { + +1174 + `gl_dbgE +("Invalid gl_media_s!"); + +1177 +g™em + = + `_gl_d©a_utž_ÿÎoc_g™em +(); + +1178 ià( +g™em + =ð +NULL +) { + +1179 + `gl_dbgE +("_gl_data_util_calloc_gitem failed!"); + +1180 + `_gl_d©a_ty³_ä“_gl™em +((**)& +™em +); + +1183 +g™em +-> +™em + = item; + +1184 +g™em +-> +®bum + =‡lbum; + +1185 +g™em +-> +¡Üe_ty³ + = +®bum +-> +þu¡” +-> +ty³ +; + +1186 * +pg™em + = +g™em +; + +1188 +ad +-> +maššfo +. +Ï¡_mtime + = +™em +-> +mtime +; + +1191 } ià( +®bum +-> +þu¡” +-> +ty³ + =ð +GL_STORE_T_FAV +) { + +1193 +gl_fž‹r_s + +fž‹r_çv +; + +1195 + `mem£t +(& +fž‹r_çv +, 0x00, ( +gl_fž‹r_s +)); + +1196 + `_gl_d©a_utž_g‘_çv_cÚd +( +fž‹r_çv +. +cÚd +); + +1197 +fž‹r_çv +. +sÜt_ty³ + = sort_type; + +1198 + `g_¡¾ýy +( +fž‹r_çv +. +sÜt_keywÜd +, +GL_CONDITION_ORDER +, +KEYWORD_LENGTH +); + +1199 +fž‹r_çv +. +cÞϋ_ty³ + = +MEDIA_CONTENT_COLLATE_NOCASE +; + +1200 +fž‹r_çv +. +off£t + = +GL_GET_ALL_RECORDS +; + +1201 +fž‹r_çv +. +couÁ + = +GL_GET_ALL_RECORDS +; + +1202 +fž‹r_çv +. +w™h_m‘a + = +çl£ +; + +1203 + `gl_dbg +("db_get_item_list--fav media"); + +1205 +”r + = + `_gl_loÿl_d©a_g‘_çv_®bums_cov” +(& +fž‹r_çv +, & +™em_li¡ +); + +1206 ià( +”r + !ð0 || +™em_li¡ + =ð +NULL +) { + +1207 + `gl_dbgE +("FažedØg‘ fav medŸs[%d]!", +”r +); + +1208 ià( +™em_li¡ +) + +1209 + `_gl_d©a_utž_þ—r_gty³_™em_li¡ +(& +™em_li¡ +); + +1213 + `EINA_LIST_FREE +( +™em_li¡ +, +™em +) { + +1214 ià( +™em + =ð +NULL +) { + +1215 + `gl_dbgE +("Invalid gl_media_s!"); + +1218 +g™em + = + `_gl_d©a_utž_ÿÎoc_g™em +(); + +1219 ià( +g™em + =ð +NULL +) { + +1220 + `gl_dbgE +("_gl_data_util_calloc_gitem failed!"); + +1221 + `_gl_d©a_ty³_ä“_gl™em +((**)& +™em +); + +1224 +g™em +-> +™em + = item; + +1225 +g™em +-> +®bum + =‡lbum; + +1226 +g™em +-> +¡Üe_ty³ + = +®bum +-> +þu¡” +-> +ty³ +; + +1227 * +pg™em + = +g™em +; + +1231 + `gl_dbgE +("Wrong clusterype!"); + +1235 ià(* +pg™em +) + +1236 + `gl_sdbg +("Album(%sècov”[%p]", +®bum +-> +þu¡” +-> +di¥Ïy_Çme +, + +1237 * +pg™em +); + +1239 + } +} + +1241 +boÞ + + $_gl_d©a_is_™em_út_z”o +(* +d©a +, +medŸ_cڋÁ_ty³_e + +ty³ +, + +1242 +Eša_Li¡ + * +–i¡ +) + +1244 + `GL_CHECK_VAL +( +d©a +, +çl£ +); + +1245 +gl_™em + * +g™em + = +NULL +; + +1246 +Eša_Li¡ + * +l + = +NULL +; + +1248 + `EINA_LIST_FOREACH +( +–i¡ +, +l +, +g™em +) { + +1249 ià( +g™em + && g™em-> +™em +) { + +1250 ià( +g™em +-> +™em +-> +ty³ + ==ype) { + +1251  +çl£ +; + +1256 + `gl_dbg +(" item_cnt = 0 "); + +1257  +Œue +; + +1258 + } +} + +1260  + $_gl_d©a_g‘_fœ¡_™em +( +medŸ_cڋÁ_ty³_e + +ty³ +, +Eša_Li¡ + * +–i¡ +, + +1261 +gl_™em + ** +p_g™em +) + +1263 + `GL_CHECK_VAL +( +p_g™em +, -1); + +1264 + `GL_CHECK_VAL +( +–i¡ +, -1); + +1267 ià( +ty³ + =ð +MEDIA_CONTENT_TYPE_OTHERS +) { + +1268 * +p_g™em + = + `eša_li¡_Áh +( +–i¡ +, 0); + +1273 +Eša_Li¡ + * +l + = +NULL +; + +1274 +gl_™em + * +g™em + = +NULL +; + +1275 + `EINA_LIST_FOREACH +( +–i¡ +, +l +, +g™em +) { + +1276 ià( +g™em + && g™em-> +™em + && g™em->™em-> +ty³ + ==ype) { + +1277 * +p_g™em + = +g™em +; + +1282 + `gl_dbgW +("Not found!"); + +1284 + } +} + +1286  + $_gl_d©a_g‘_Üig_™em_by_šdex +(* +d©a +, +gl_™em + ** +g™em +,  +idx +) + +1289 + } +} + +1292  + $_gl_d©a_d–‘e_fže +(* +·th +, * +uuid +, +boÞ + +is_hide +) + +1294 + `GL_CHECK_VAL +( +uuid +, -1); + +1295 + `GL_CHECK_VAL +( +·th +, -1); + +1296  +»t + = -1; + +1298 ià(! + `gl_fže_uƚk +( +·th +)) { + +1299 * +”rÜ_msg + = + `ÿÎoc +(1, +GL_ARRAY_LEN_MAX +); + +1300 + `GL_CHECK_VAL +( +”rÜ_msg +, -1); + +1301 + `¡»¼Ü_r +( +”ºo +, +”rÜ_msg +, +GL_ARRAY_LEN_MAX +); + +1302 + `gl_dbgE +("fže_uƚk fažed[%s]!", +”rÜ_msg +); + +1303 + `GL_FREE +( +”rÜ_msg +); + +1308 +»t + = + `medŸ_šfo_d–‘e_äom_db +( +uuid +); + +1310 ià( +»t + != 0) { + +1311 + `gl_dbgE +("medŸ_šfo_d–‘e_äom_db fažed[%d]!", +»t +); + +1316 + } +} + +1318 +gl_™em + * + $_gl_d©a_£Ëùed_li¡_g‘_Áh +(* +d©a +,  +idx +) + +1320 + `GL_CHECK_NULL +( +d©a +); + +1321 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1323  + `eša_li¡_Áh +( +ad +-> +£lšfo +. +–i¡ +, +idx +); + +1324 + } +} + +1326  + $_gl_d©a_ä“_bur¡shÙ_™ems +( +gl_™em + * +g™em +, +Eša_Li¡ + * +–i¡ +) + +1328 + `GL_CHECK_VAL +( +–i¡ +, -1); + +1329 + `GL_CHECK_VAL +( +g™em +, -1); + +1330 + `GL_CHECK_VAL +( +g™em +-> +™em +, -1); + +1332 ià( +g™em +-> +™em +-> +ty³ + !ð +MEDIA_CONTENT_TYPE_IMAGE + || + +1333 +g™em +-> +™em +-> +image_šfo + =ð +NULL + || + +1334 +g™em +-> +™em +-> +image_šfo +-> +bur¡shÙ_id + =ð +NULL +) + +1337  +i + = +g™em +-> +£qu’û +; + +1338  +út + = + `eša_li¡_couÁ +( +–i¡ +); + +1339 +gl_™em + * +cur_g™em + = +NULL +; + +1340 * +bur¡shÙ_id + = +g™em +-> +™em +-> +image_šfo +->burstshot_id; + +1341 ; +i + < +út +; i++) { + +1342 +cur_g™em + = + `eša_li¡_Áh +( +–i¡ +, +i +); + +1343 ià( +cur_g™em + =ð +NULL + || cur_g™em-> +™em + == NULL || + +1344 +cur_g™em +-> +™em +-> +uuid + =ð +NULL +) { + +1345 + `gl_dbgE +("Invalid gitem. continue!"); + +1347 } ià( +cur_g™em +-> +™em +-> +ty³ + !ð +MEDIA_CONTENT_TYPE_IMAGE + || + +1348 +cur_g™em +-> +™em +-> +image_šfo + =ð +NULL + || + +1349 +cur_g™em +-> +™em +-> +image_šfo +-> +bur¡shÙ_id + =ð +NULL +) { + +1354 ià(! + `g_¡rcmp0 +( +bur¡shÙ_id +, +cur_g™em +-> +™em +-> +image_šfo +->burstshot_id)) { + +1355 + `_gl_d©a_utž_ä“_g™em +( +cur_g™em +); + +1360 +cur_g™em + = +NULL +; + +1363 + } +} + +1365  + $_gl_d©a_£Ëùed_add_bur¡shÙ +(* +d©a +, +gl_™em + * +g™em +, +Eša_Li¡ + * +–i¡ +) + +1367 + `GL_CHECK_VAL +( +–i¡ +, -1); + +1368 + `GL_CHECK_VAL +( +g™em +, -1); + +1369 + `GL_CHECK_VAL +( +g™em +-> +™em +, -1); + +1370 + `GL_CHECK_VAL +( +d©a +, -1); + +1371 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1373 ià( +g™em +-> +™em +-> +ty³ + !ð +MEDIA_CONTENT_TYPE_IMAGE + || + +1374 +g™em +-> +™em +-> +image_šfo + =ð +NULL + || + +1375 +g™em +-> +™em +-> +image_šfo +-> +bur¡shÙ_id + =ð +NULL +) + +1378  +i + = +g™em +-> +£qu’û +; + +1379  +út + = + `eša_li¡_couÁ +( +–i¡ +); + +1380 +gl_™em + * +cur_g™em + = +NULL +; + +1381 * +bur¡shÙ_id + = +g™em +-> +™em +-> +image_šfo +->burstshot_id; + +1382 ; +i + < +út +; i++) { + +1383 +cur_g™em + = + `eša_li¡_Áh +( +–i¡ +, +i +); + +1384 ià( +cur_g™em + =ð +NULL + || cur_g™em-> +™em + == NULL || + +1385 +cur_g™em +-> +™em +-> +uuid + =ð +NULL +) { + +1386 + `gl_dbgE +("Invalid gitem. continue!"); + +1388 } ià( +cur_g™em +-> +™em +-> +ty³ + !ð +MEDIA_CONTENT_TYPE_IMAGE + || + +1389 +cur_g™em +-> +™em +-> +image_šfo + =ð +NULL + || + +1390 +cur_g™em +-> +™em +-> +image_šfo +-> +bur¡shÙ_id + =ð +NULL +) { + +1395 ià(! + `g_¡rcmp0 +( +bur¡shÙ_id +, +cur_g™em +-> +™em +-> +image_šfo +->burstshot_id)) { + +1396 +cur_g™em +-> +checked + = +g™em +->checked; + +1397 +ad +-> +£lšfo +. +images_út +++; + +1398 #ifdeà +_USE_ROTATE_BG + + +1399 ià( +cur_g™em +-> +™em +-> +ext + && + +1400 ! + `¡rÿ£cmp +( +cur_g™em +-> +™em +-> +ext +, +GL_JPEG_FILE_EXT +)) + +1401 ià( + `_gl_exif_check_img_ty³ +( +cur_g™em +-> +™em +-> +fže_u¾ +)) + +1402 +ad +-> +£lšfo +. +j³g_út +++; + +1404 ià( +g™em +-> +™em +-> +¡Üage_ty³ + !ð +GL_STORE_T_PHONE +) + +1405 ++ +ad +-> +£lšfo +. +di§bË_hide_út +; + +1406 +ad +-> +£lšfo +. +–i¡ + = + `eša_li¡_­³nd +(ad->selinfo.elist, + +1407 +cur_g™em +); + +1412 +cur_g™em + = +NULL +; + +1415 + } +} + +1417 +boÞ + + $_gl_d©a_g‘_bur¡shÙ_¡©us +(* +d©a +, +gl_™em + * +g™em +) + +1419 + `GL_CHECK_FALSE +( +g™em +); + +1420 ià( +g™em +-> +™em + =ð +NULL + || + +1421 +g™em +-> +™em +-> +ty³ + !ð +MEDIA_CONTENT_TYPE_IMAGE + || + +1422 +g™em +-> +™em +-> +image_šfo + =ð +NULL + || + +1423 +g™em +-> +™em +-> +image_šfo +-> +bur¡shÙ_id + =ð +NULL +) + +1424  +g™em +-> +checked +; + +1426 + `GL_CHECK_FALSE +( +d©a +); + +1427 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1428 + `GL_CHECK_FALSE +( +ad +-> +£lšfo +. +–i¡ +); + +1429 +Eša_Li¡ + * +£l_li¡ + = +ad +-> +£lšfo +. +–i¡ +; + +1431 +Eša_Li¡ + * +l + = +NULL +; + +1432 +gl_™em + * +cu¼’t + = +NULL +; + +1433 + `EINA_LIST_FOREACH +( +£l_li¡ +, +l +, +cu¼’t +) { + +1434 ià( +cu¼’t + =ð +NULL + || cu¼’t-> +™em + == NULL || + +1435 +cu¼’t +-> +™em +-> +ty³ + !ð +MEDIA_CONTENT_TYPE_IMAGE + || + +1436 +cu¼’t +-> +™em +-> +image_šfo + =ð +NULL + || + +1437 +cu¼’t +-> +™em +-> +image_šfo +-> +bur¡shÙ_id + =ð +NULL +) { + +1438 + `gl_dbgE +("Invalid gitem!"); + +1441 ià(! + `g_¡rcmp0 +( +g™em +-> +™em +-> +image_šfo +-> +bur¡shÙ_id +, + +1442 +cu¼’t +-> +™em +-> +image_šfo +-> +bur¡shÙ_id +)) + +1443  +Œue +; + +1445  +çl£ +; + +1446 + } +} + +1449  + $_gl_d©a_£Ëùed_li¡_­³nd +(* +d©a +, +gl_™em + * +g™em +) + +1451 + `GL_CHECK_VAL +( +g™em +, -1); + +1452 + `GL_CHECK_VAL +( +g™em +-> +™em +, -1); + +1453 + `GL_CHECK_VAL +( +d©a +, -1); + +1454 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1457 ià( +g™em +-> +™em +-> +ty³ + =ð +MEDIA_CONTENT_TYPE_IMAGE +) { + +1458 +ad +-> +£lšfo +. +images_út +++; + +1459 #ifdeà +_USE_ROTATE_BG + + +1460 + `gl_dbg +("Ext: %s", +g™em +-> +™em +-> +ext +); + +1461 ià( +g™em +-> +™em +-> +ext + && + +1462 ! + `¡rÿ£cmp +( +g™em +-> +™em +-> +ext +, +GL_JPEG_FILE_EXT +)) { + +1463 ià( + `_gl_exif_check_img_ty³ +( +g™em +-> +™em +-> +fže_u¾ +)) + +1464 +ad +-> +£lšfo +. +j³g_út +++; + +1468 ià( +g™em +-> +™em +-> +¡Üage_ty³ + !ð +GL_STORE_T_PHONE +) + +1469 ++ +ad +-> +£lšfo +. +di§bË_hide_út +; + +1471 +Eša_Li¡ + * +£l_li¡ + = +ad +-> +£lšfo +. +–i¡ +; + +1472 +£l_li¡ + = + `eša_li¡_­³nd +(£l_li¡, +g™em +); + +1473 +ad +-> +£lšfo +. +–i¡ + = +£l_li¡ +; + +1475 + } +} + +1477  + $_gl_d©a_£Ëùed_çv_li¡_»move +(* +d©a +, +gl_™em + * +g™em +) + +1479 + `GL_CHECK_VAL +( +g™em +, -1); + +1480 + `GL_CHECK_VAL +( +g™em +-> +™em +, -1); + +1481 + `GL_CHECK_VAL +( +g™em +-> +™em +-> +uuid +, -1); + +1482 + `GL_CHECK_VAL +( +d©a +, -1); + +1483 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1484 +gl_™em + * +cu¼’t + = +NULL +; + +1485 +Eša_Li¡ + * +l + = +NULL +; + +1487 + `EINA_LIST_FOREACH +( +ad +-> +£lšfo +. +çv_–i¡ +, +l +, +cu¼’t +) { + +1488 ià( +cu¼’t + =ð +NULL + || cu¼’t-> +™em + == NULL || + +1489 +cu¼’t +-> +™em +-> +uuid + =ð +NULL +) { + +1490 + `gl_dbgE +("Invalid gitem!"); + +1493 ià(! + `g_¡rcmp0 +( +cu¼’t +-> +™em +-> +uuid +, +g™em +->item->uuid)) { + +1494 +ad +-> +£lšfo +. +çv_–i¡ + = + `eša_li¡_»move +(ad->selinfo.fav_elist, + +1495 +cu¼’t +); + +1497 +cu¼’t + = +NULL +; + +1500 + } +} + +1503  + $_gl_d©a_£Ëùed_li¡_»move +(* +d©a +, +gl_™em + * +g™em +) + +1505 + `GL_CHECK_VAL +( +g™em +, -1); + +1506 + `GL_CHECK_VAL +( +g™em +-> +™em +, -1); + +1507 + `GL_CHECK_VAL +( +g™em +-> +™em +-> +uuid +, -1); + +1508 + `GL_CHECK_VAL +( +d©a +, -1); + +1509 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1510 +gl_™em + * +cu¼’t + = +NULL +; + +1511 +Eša_Li¡ + * +l + = +NULL +; + +1512 +boÞ + +b_»moved + = +çl£ +; + +1513 * +bur¡shÙ_id + = +NULL +; + +1514 ià( +g™em +-> +™em +-> +ty³ + =ð +MEDIA_CONTENT_TYPE_IMAGE + && + +1515 +g™em +-> +™em +-> +image_šfo +) + +1516 +bur¡shÙ_id + = +g™em +-> +™em +-> +image_šfo +->burstshot_id; + +1518 + `EINA_LIST_FOREACH +( +ad +-> +£lšfo +. +–i¡ +, +l +, +cu¼’t +) { + +1519 ià( +cu¼’t + =ð +NULL + || cu¼’t-> +™em + == NULL || + +1520 +cu¼’t +-> +™em +-> +uuid + =ð +NULL +) { + +1521 + `gl_dbgE +("Invalid gitem!"); + +1524 ià(! + `g_¡rcmp0 +( +cu¼’t +-> +™em +-> +uuid +, +g™em +->item->uuid) || + +1525 ( +bur¡shÙ_id + && + +1526 +cu¼’t +-> +™em +-> +ty³ + =ð +MEDIA_CONTENT_TYPE_IMAGE + && + +1527 +cu¼’t +-> +™em +-> +image_šfo + && + +1528 +cu¼’t +-> +™em +-> +image_šfo +-> +bur¡shÙ_id + && + +1529 ! + `g_¡rcmp0 +( +bur¡shÙ_id +, +cu¼’t +-> +™em +-> +image_šfo +->burstshot_id))) { + +1530 ià( +g™em +-> +™em +-> +¡Üage_ty³ + !ð +GL_STORE_T_PHONE +) + +1531 +ad +-> +£lšfo +. +di§bË_hide_út +--; + +1533 ià( +cu¼’t +-> +™em +-> +ty³ + =ð +MEDIA_CONTENT_TYPE_IMAGE + && + +1534 +ad +-> +£lšfo +. +images_út + > 0) { + +1535 +ad +-> +£lšfo +. +images_út +--; + +1536 #ifdeà +_USE_ROTATE_BG + + +1537 ià( +cu¼’t +-> +™em +-> +ext + && + +1538 ! + `¡rÿ£cmp +( +cu¼’t +-> +™em +-> +ext +, +GL_JPEG_FILE_EXT +) && + +1539 +ad +-> +£lšfo +. +j³g_út + > 0) + +1540 ià( + `_gl_exif_check_img_ty³ +( +cu¼’t +-> +™em +-> +fže_u¾ +)) + +1541 +ad +-> +£lšfo +. +j³g_út +--; + +1545 +ad +-> +£lšfo +. +–i¡ + = + `eša_li¡_»move +(ad->selinfo.elist, + +1546 +cu¼’t +); + +1547 ià( +bur¡shÙ_id + =ð +NULL +) { + +1550 +cu¼’t +-> +checked + = +g™em +->checked; + +1551 +b_»moved + = +Œue +; + +1553 } ià( +b_»moved +) { + +1557 +cu¼’t + = +NULL +; + +1560 + } +} + +1563  + $_gl_d©a_£Ëùed_li¡_»move_Úe +(* +d©a +, +gl_™em + * +g™em +) + +1565 + `GL_CHECK_VAL +( +g™em +, -1); + +1566 + `GL_CHECK_VAL +( +g™em +-> +™em +, -1); + +1567 + `GL_CHECK_VAL +( +g™em +-> +™em +-> +uuid +, -1); + +1568 + `GL_CHECK_VAL +( +d©a +, -1); + +1569 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1572 ià( +g™em +-> +™em +-> +ty³ + =ð +MEDIA_CONTENT_TYPE_IMAGE + && + +1573 +ad +-> +£lšfo +. +images_út + > 0) { + +1574 +ad +-> +£lšfo +. +images_út +--; + +1575 #ifdeà +_USE_ROTATE_BG + + +1576 ià( +g™em +-> +™em +-> +ext + && + +1577 ! + `¡rÿ£cmp +( +g™em +-> +™em +-> +ext +, +GL_JPEG_FILE_EXT +) && + +1578 +ad +-> +£lšfo +. +j³g_út + > 0) { + +1579 ià( + `_gl_exif_check_img_ty³ +( +g™em +-> +™em +-> +fže_u¾ +)) + +1580 +ad +-> +£lšfo +. +j³g_út +--; + +1584 ià( +g™em +-> +™em +-> +¡Üage_ty³ + !ð +GL_STORE_T_PHONE +) + +1585 +ad +-> +£lšfo +. +di§bË_hide_út +--; + +1586 +ad +-> +£lšfo +. +–i¡ + = + `eša_li¡_»move +(ad->selinfo.elist, + +1587 +g™em +); + +1589 + } +} + +1591  + $_gl_d©a_£Ëùed_li¡_fš®ize +(* +d©a +) + +1593 + `GL_CHECK_VAL +( +d©a +, -1); + +1594 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1596 ià( +ad +-> +£lšfo +. +–i¡ + =ð +NULL +) + +1599 +gl_™em + * +g™em + = +NULL +; + +1600  +i +; + +1601  +couÁ +; + +1602 ià( +ad +-> +gridšfo +. +medŸs_–i¡ +) { + +1603 +couÁ + = + `eša_li¡_couÁ +( +ad +-> +gridšfo +. +medŸs_–i¡ +); + +1604  +i + = 0; i < +couÁ + ; i++) { + +1605 +g™em + = + `eša_li¡_Áh +( +ad +-> +gridšfo +. +medŸs_–i¡ +, +i +); + +1606 ià( +g™em +) { + +1607 +g™em +-> +checked + = +çl£ +; + +1611 + `EINA_LIST_FREE +( +ad +-> +£lšfo +. +–i¡ +, +g™em +) { + +1612 ià( +g™em +) { + +1613 +g™em +-> +checked + = +çl£ +; + +1617 +ad +-> +£lšfo +. +–i¡ + = +NULL +; + +1618 +ad +-> +£lšfo +. +images_út + = 0; + +1619 +ad +-> +£lšfo +. +di§bË_hide_út + = 0; + +1620 #ifdeà +_USE_ROTATE_BG + + +1621 +ad +-> +£lšfo +. +j³g_út + = 0; + +1623 + `gl_dbg +("Selected†ist freed"); + +1625 + } +} + +1627  + $_gl_d©a_þ—r_£Ëùed_šfo +(* +d©a +) + +1629 + `GL_CHECK_VAL +( +d©a +, -1); + +1630 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1632 ià( +ad +-> +£lšfo +. +–i¡ + =ð +NULL +) + +1635 + `eša_li¡_ä“ +( +ad +-> +£lšfo +. +–i¡ +); + +1636 + `gl_dbg +("eina free selected†ist"); + +1638 +ad +-> +£lšfo +. +–i¡ + = +NULL +; + +1639 +ad +-> +£lšfo +. +images_út + = 0; + +1640 +ad +-> +£lšfo +. +di§bË_hide_út + = 0; + +1641 #ifdeà +_USE_ROTATE_BG + + +1642 +ad +-> +£lšfo +. +j³g_út + = 0; + +1645 + } +} + +1647  + $_gl_d©a_cÝy_£Ëùed_šfo_§ve_cu¼’t_£Ëùed +(* +d©a +, +Eša_Li¡ + ** +–i¡ +) + +1649 + `GL_CHECK_VAL +( +d©a +, -1); + +1650 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1652 ià( +ad +-> +£lšfo +. +–i¡ + =ð +NULL +) { + +1656 + `_gl_d©a_utž_fž‹r_£Ëùed_¡r_ids +(&( +ad +-> +£lšfo +. +–i¡ +),ƒlist); + +1657 +gl_™em + * +g™em + = +NULL +; + +1658 +gl_™em + * +g™em1 + = +NULL +; + +1659 +Eša_Li¡ + * +tmp +; + +1660  +couÁ + = + `eša_li¡_couÁ +( +ad +-> +gridšfo +. +medŸs_–i¡ +); + +1661  +i +; + +1662  +i + = 0; i < +couÁ + ; i++) { + +1663 +g™em1 + = + `eša_li¡_Áh +( +ad +-> +gridšfo +. +medŸs_–i¡ +, +i +); + +1664 + `EINA_LIST_FOREACH +( +ad +-> +£lšfo +. +–i¡ +, +tmp +, +g™em +) { + +1665 ià( +g™em + && g™em-> +™em + && g™em->™em-> +uuid + && +g™em1 + && gitem1->item && gitem1->item->uuid) { + +1666 ià(! + `¡rcmp +( +g™em +-> +™em +-> +uuid +, +g™em1 +->item->uuid)) { + +1667 +ad +-> +£lšfo +. +–i¡ + = + `eša_li¡_»move +×d->£lšfo.–i¡, +g™em +); + +1675 + } +} + +1677  + $_gl_d©a_£Ëùed_li¡_couÁ +(* +d©a +) + +1679 + `GL_CHECK_VAL +( +d©a +, -1); + +1680 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1682  + `eša_li¡_couÁ +( +ad +-> +£lšfo +. +–i¡ +); + +1683 + } +} + +1685 +boÞ + + $_gl_d©a_is_roÙ_·th +(cÚ¡ * +·th +) + +1687 ià( +·th + =ð +NULL +) + +1688  +çl£ +; + +1690 ià(! + `g_¡rcmp0 +( +GL_ROOT_PATH_PHONE +, +·th +) || + +1691 ! + `g_¡rcmp0 +( +GL_ROOT_PATH_MMC +, +·th +)) { + +1692 + `gl_sdbg +("Roم©h: %s", +·th +); + +1693  +Œue +; + +1696  +çl£ +; + +1697 + } +} + +1699 +boÞ + + $_gl_d©a_check_roÙ_ty³ +(cÚ¡ * +·th +, cÚ¡ * +roÙ +) + +1701 ià( +·th + =ð +NULL + || +roÙ + == NULL) + +1702  +çl£ +; + +1704 ià(! + `¡ºcmp +( +roÙ +, +·th +, + `¡¾’ +(root))) { + +1705 + `gl_sdbg +("Roم©h: %s", +·th +); + +1706  +Œue +; + +1709  +çl£ +; + +1710 + } +} + +1712 +boÞ + + $_gl_d©a_is_®bums_£Ëùed_em±y +(* +d©a +) + +1714 + `GL_CHECK_VAL +( +d©a +, 1); + +1715 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1716 +gl_þu¡” + * +®bum + = +NULL +; + +1718 +Eša_Li¡ + * +l + = +NULL +; + +1719 + `EINA_LIST_FOREACH +( +ad +-> +®bumšfo +. +£l_–i¡ +, +l +, +®bum +) { + +1720 ià( +®bum + &&‡lbum-> +þu¡” + &&‡lbum->þu¡”-> +couÁ +) + +1721  +çl£ +; + +1722 +®bum + = +NULL +; + +1725  +Œue +; + +1726 + } +} + +1733  + $_gl_d©a_g‘_®bums_£Ëùed_fžes +(* +d©a +, * +g‘_cb +, * +cb_d©a +) + +1735 + `GL_CHECK_VAL +( +d©a +, -1); + +1736 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1737 + `GL_CHECK_VAL +( +ad +-> +®bumšfo +. +£l_–i¡ +, -1); + +1738 +gl_þu¡” + * +®bum + = +NULL +; + +1739 +Eša_Li¡ + * +l + = +NULL +; + +1740  +”r + = -1; + +1741 +Eša_Li¡ + * +–i¡ + = +NULL +; + +1742 +gl_fž‹r_s + +fž‹r +; + +1743  +couÁ + = 0; + +1745 (* +_g‘_cb +è(* +cb_d©a +, +gl_medŸ_s + * +™em +èð +NULL +; + +1746 ià( +g‘_cb +) + +1747 +_g‘_cb + = +g‘_cb +; + +1749 + `mem£t +(& +fž‹r +, 0x00, ( +gl_fž‹r_s +)); + +1750 + `_gl_d©a_utž_g‘_cÚd +( +fž‹r +. +cÚd +); + +1751 +fž‹r +. +sÜt_ty³ + = +MEDIA_CONTENT_ORDER_DESC +; + +1752 + `g_¡¾ýy +( +fž‹r +. +sÜt_keywÜd +, +GL_CONDITION_ORDER +, + +1753 +KEYWORD_LENGTH +); + +1754 +fž‹r +. +cÞϋ_ty³ + = +MEDIA_CONTENT_COLLATE_NOCASE +; + +1755 +fž‹r +. +off£t + = +GL_GET_ALL_RECORDS +; + +1756 +fž‹r +. +couÁ + = +GL_GET_ALL_RECORDS +; + +1757 +fž‹r +. +w™h_m‘a + = +çl£ +; + +1759 + `EINA_LIST_FOREACH +( +ad +-> +®bumšfo +. +£l_–i¡ +, +l +, +®bum +) { + +1760 ià( +®bum + =ð +NULL + ||‡lbum-> +þu¡” + == NULL || + +1761 +®bum +-> +þu¡” +-> +uuid + =ð +NULL +) { + +1764 ià(! + `¡rcmp +( +GL_ALBUM_ALL_ID +, +®bum +-> +þu¡” +-> +uuid +)) + +1765 +”r + = + `_gl_loÿl_d©a_g‘_®l_®bums_medŸ_li¡ +(& +fž‹r +, + +1766 & +–i¡ +); + +1768 +”r + = + `_gl_loÿl_d©a_g‘_®bum_medŸ_li¡ +(& +fž‹r +, + +1769 +®bum +-> +þu¡” +-> +uuid +, + +1770 & +–i¡ +); + +1771 ià(( +”r + =ð0è&& ( +–i¡ + !ð +NULL +)) { + +1772 +gl_medŸ_s + * +™em + = +NULL +; + +1773 + `EINA_LIST_FREE +( +–i¡ +, +™em +) { + +1774 ià( +™em + =ð +NULL +) { + +1775 + `gl_dbgE +("Invalid item!"); + +1778 ià( +_g‘_cb +) + +1779 + `_g‘_cb +( +cb_d©a +, +™em +); + +1780 +couÁ +++; + +1781 +™em + = +NULL +; + +1785  +couÁ +; + +1786 + } +} + +1788  + $_gl_d©a_g‘_®bums_£Ëùed_út +(* +d©a +) + +1790 + `GL_CHECK_VAL +( +d©a +, -1); + +1791 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1793  + `eša_li¡_couÁ +( +ad +-> +®bumšfo +. +£l_–i¡ +); + +1794 + } +} + +1796  + $_gl_d©a_®bums_£Ëùed_li¡_»move +(* +d©a +, +gl_þu¡” + * +™em +) + +1798 + `GL_CHECK_VAL +( +™em +, -1); + +1799 + `GL_CHECK_VAL +( +™em +-> +þu¡” +, -1); + +1800 + `GL_CHECK_VAL +( +™em +-> +þu¡” +-> +uuid +, -1); + +1801 + `GL_CHECK_VAL +( +d©a +, -1); + +1802 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1803 +gl_þu¡” + * +cu¼’t + = +NULL +; + +1804 +Eša_Li¡ + * +l + = +NULL +; + +1806 ià( +GL_STORE_T_PHONE + !ð +™em +-> +þu¡” +-> +ty³ + || + +1807 + `_gl_d©a_is_ÿm”a_®bum +( +™em +-> +þu¡” +) || + +1808 + `_gl_d©a_is_deçuÉ_®bum +( +GL_STR_ALBUM_DOWNLOADS +, +™em +-> +þu¡” +)) + +1809 -- +ad +-> +£lšfo +. +di§bË_hide_út +; + +1811 +Eša_Li¡ + * +£l_li¡ + = +ad +-> +®bumšfo +. +£l_–i¡ +; + +1812 + `EINA_LIST_FOREACH +( +£l_li¡ +, +l +, +cu¼’t +) { + +1813 ià( +cu¼’t + =ð +NULL + || cu¼’t-> +þu¡” + == NULL || + +1814 +cu¼’t +-> +þu¡” +-> +uuid + =ð +NULL +) { + +1815 + `gl_dbgE +("Invalid gcluster!"); + +1819 ià(! + `g_¡rcmp0 +( +cu¼’t +-> +þu¡” +-> +uuid +, +™em +->cluster->uuid)) { + +1820  +img_út + = 0; + +1821  +£l_út + = 0; + +1822  +web_út + = 0; + +1824 + `_gl_d©a_utž_check_®bum_£Ëùed_fžes +( +™em +, + +1825 & +img_út +, + +1826 & +£l_út +, + +1827 & +web_út +); + +1829 +ad +-> +£lšfo +. +images_út + =‡d->£lšfo.images_úˆ- +img_út +; + +1830 +ad +-> +£lšfo +. +£l_út + =‡d->selinfo.sel_cnt - sel_cnt; + +1832 +ad +-> +®bumšfo +. +£l_–i¡ + = + `eša_li¡_»move +(ad->albuminfo.sel_elist, + +1833 +cu¼’t +); + +1836 +cu¼’t + = +NULL +; + +1840 + } +} + +1842  + $_gl_d©a_fš®ize_®bums_£Ëùed_li¡ +(* +d©a +) + +1844 + `GL_CHECK_VAL +( +d©a +, -1); + +1845 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1846 +gl_þu¡” + * +™em + = +NULL +; + +1848 +Eša_Li¡ + * +£l_li¡ + = +ad +-> +®bumšfo +. +£l_–i¡ +; + +1849 + `EINA_LIST_FREE +( +£l_li¡ +, +™em +) { + +1850 ià( +™em +) + +1851 +™em +-> +checked + = +çl£ +; + +1854 +ad +-> +£lšfo +. +images_út + = 0; + +1855 +ad +-> +£lšfo +. +di§bË_hide_út + = 0; + +1856 +ad +-> +£lšfo +. +£l_út + = 0; + +1857 +ad +-> +®bumšfo +. +£l_–i¡ + = +NULL +; + +1859 + } +} + +1861  + $_gl_d©a_š™ +(* +d©a +) + +1863 + `GL_CHECK_VAL +( +d©a +, -1); + +1864  +”r + = + `_gl_loÿl_d©a_cÚÃù +(); + +1865 ià( +”r + != 0) + +1866 + `gl_dbgE +("Connecto media-content DB failed!"); + +1867  +”r +; + +1868 + } +} + +1870  + $_gl_d©a_fš®ize +(* +d©a +) + +1872 + `GL_CHECK_VAL +( +d©a +, -1); + +1873  +”r + = + `_gl_loÿl_d©a_discÚÃù +(); + +1874 ià( +”r + != 0) + +1875 + `gl_dbgE +("Disconnect with media-content DB failed!"); + +1876  +”r +; + +1877 + } +} + +1879  + $_gl_d©a_d–‘e_medŸ +(* +d©a +, +gl_medŸ_s + * +medŸ_™em +) + +1881 + `GL_CHECK_VAL +( +medŸ_™em +, -1); + +1882  + `medŸ_šfo_d–‘e_äom_db +( +medŸ_™em +-> +uuid +); + +1883 + } +} + +1886  + $_gl_d©a_ü—‹_thumb +( +gl_medŸ_s + * +™em +, + +1887 +medŸ_thumbǞ_com¶‘ed_cb + +ÿÎback +, + +1888 * +u£r_d©a +) + +1890 + `GL_CHECK_VAL +( +™em +, -1); + +1891 + `GL_CHECK_VAL +( +™em +-> +medŸ_h +, -1); + +1892  +»t + = -1; + +1893 + `gl_sdbg +("Fže[%s]", +™em +-> +fže_u¾ +); + +1895 +»t + = + `medŸ_šfo_ü—‹_thumbǞ +( +™em +-> +medŸ_h +, +ÿÎback +, +u£r_d©a +); + +1896 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE +) { + +1897 + `gl_dbgE +("FažedØü—‹humbǞ[%d]!", +»t +); + +1900 +™em +-> +b_ü—‹_thumb + = +Œue +; + +1902 + } +} + +1904  + $_gl_d©a_ÿnûl_thumb +( +gl_medŸ_s + * +™em +) + +1906 + `GL_CHECK_VAL +( +™em +, -1); + +1907 + `GL_CHECK_VAL +( +™em +-> +medŸ_h +, -1); + +1909 + `medŸ_šfo_ÿnûl_thumbǞ +( +™em +-> +medŸ_h +); + +1910 +™em +-> +b_ü—‹_thumb + = +çl£ +; + +1912 + } +} + +1914 +boÞ + + $_gl_d©a_is_®bum_exi¡s +(* +d©a +, +gl_þu¡” + * +®bum +) + +1916 + `GL_CHECK_FALSE +( +d©a +); + +1917 + `GL_CHECK_FALSE +( +®bum +); + +1918 + `GL_CHECK_FALSE +( +®bum +-> +þu¡” +); + +1919 + `GL_CHECK_FALSE +( +®bum +-> +þu¡” +-> +·th +); + +1920  + `_gl_loÿl_d©a_is_®bum_exi¡s +( +®bum +-> +þu¡” +-> +·th +); + +1921 + } +} + +1923  + $_gl_d©a_§ve_£Ëùed_¡r_ids +(* +d©a +, +Eša_Li¡ + ** +–i¡ +) + +1925 + `GL_CHECK_VAL +( +d©a +, -1); + +1926 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1928 ià( +ad +-> +£lšfo +. +–i¡ + =ð +NULL +) + +1930 + `_gl_d©a_utž_g‘_£Ëùed_¡r_ids +(&( +ad +-> +£lšfo +. +–i¡ +),ƒlist); + +1932 +ad +-> +£lšfo +. +images_út + = 0; + +1933 +ad +-> +£lšfo +. +di§bË_hide_út + = 0; + +1934 #ifdeà +_USE_ROTATE_BG + + +1935 +ad +-> +£lšfo +. +j³g_út + = 0; + +1938 + } +} + +1940  + $_gl_d©a_»¡Üe_£Ëùed +( +Eša_Li¡ + * +£l_ids +, +gl_™em + * +g™em +) + +1942 + `GL_CHECK_VAL +( +g™em +, -1); + +1943 + `GL_CHECK_VAL +( +g™em +-> +™em +, -1); + +1944 ià( +£l_ids +) { + +1945 +boÞ + +b_£Ëùed + = +çl£ +; + +1946 +b_£Ëùed + = + `_gl_d©a_check_£Ëùed_id +( +£l_ids +, + +1947 +g™em +-> +™em +-> +uuid +); + +1948 ià( +b_£Ëùed +) { + +1949 + `gl_dbg +("b_selected"); + +1950 +b_£Ëùed + = +çl£ +; + +1952 +g™em +-> +checked + = +Œue +; + +1953 +g™em +-> +®bum +-> +–i¡ + = + `eša_li¡_­³nd +(gitem->album->elist, gitem); + +1957 + } +} + +1959  + $_gl_d©a_»¡Üe_upd©e_£Ëùed +( +Eša_Li¡ + * +£l_ids +, +gl_™em + * +g™em +) + +1961 + `GL_CHECK_VAL +( +g™em +, -1); + +1962 + `GL_CHECK_VAL +( +g™em +-> +™em +, -1); + +1964 ià( +£l_ids +) { + +1965 +boÞ + +b_£Ëùed + = +çl£ +; + +1966 +b_£Ëùed + = + `_gl_d©a_check_£Ëùed_id +( +£l_ids +, + +1967 +g™em +-> +™em +-> +uuid +); + +1968 ià( +b_£Ëùed +) { + +1969 + `gl_dbg +("b_selected"); + +1970 +b_£Ëùed + = +çl£ +; + +1972 +g™em +-> +checked + = +Œue +; + +1973 +g™em +-> +®bum +-> +–i¡ + = + `eša_li¡_­³nd +(gitem->album->elist, gitem); + +1977 + } +} + +1979 +boÞ + + $_gl_d©a_check_£Ëùed_id +( +Eša_Li¡ + * +£l_id_li¡ +, cÚ¡ * +id +) + +1981 + `GL_CHECK_FALSE +( +£l_id_li¡ +); + +1982 + `GL_CHECK_FALSE +( +id +); + +1983 +Eša_Li¡ + * +tmp_–i¡ + = +NULL +; + +1984 +gl_™em + * +s™ + = +NULL +; + +1985 ià( + `eša_li¡_couÁ +( +£l_id_li¡ +) == 0) { + +1986 + `gl_dbgE +("sel_id_list isƒmpty!"); + +1987  +çl£ +; + +1989 + `EINA_LIST_FOREACH +( +£l_id_li¡ +, +tmp_–i¡ +, +s™ +) { + +1990 ià( +s™ + =ð +NULL + || s™-> +™em + ==NULL || s™->™em-> +uuid + == NULL) { + +1991 + `gl_dbgE +("Invalid…_id!"); + +1992 +s™ + = +NULL +; + +1995 ià( + `g_¡rcmp0 +( +id +, +s™ +-> +™em +-> +uuid +)) { + +1996 +s™ + = +NULL +; + +1999  +Œue +; + +2001  +çl£ +; + +2002 + } +} + + @src/data/gl-local-data.c + +18  + ~ + +19  + ~ + +20  + ~<¡ršg.h +> + +21  + ~ + +22  + ~"gl-loÿl-d©a.h +" + +23  + ~"gl-d©a-utž.h +" + +24  + ~"gl-debug.h +" + +25  + ~"gl-th»ad-utž.h +" + +26  + ~"gl-fs.h +" + +27  + ~"gl-fže-utž.h +" + +29  +_gl_Œªsãr_d©a_t + + tgl_Œªsãr_d©a_s +; + +30  +_gl_fܗch_d©a_t + + tgl_fܗch_d©a_s +; + +32  + s_gl_Œªsãr_d©a_t + { + +33 ** + mu£rd©a +; + +34 +fž‹r_h + + mfž‹r +; + +35 * + m®bum_id +; + +36 +boÞ + + mw™h_m‘a +; + +39  + s_gl_fܗch_d©a_t + { + +40 ** + mu£rd©a +; + +41 +fž‹r_h + + mfž‹r +; + +42 * + m®bum_id +; + +43 +boÞ + + mw™h_m‘a +; + +46  + $__gl_loÿl_d©a_ü—‹_fž‹r +( +gl_fž‹r_s + * +cÚd™iÚ +, +fž‹r_h + * +fž‹r +) + +48 + `GL_CHECK_VAL +( +fž‹r +, -1); + +49 + `GL_CHECK_VAL +( +cÚd™iÚ +, -1); + +50  +»t + = -1; + +51 +fž‹r_h + +tmp_fž‹r + = +NULL +; + +52 +»t + = + `medŸ_fž‹r_ü—‹ +(& +tmp_fž‹r +); + +53 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE +) { + +54 + `gl_dbgE +("Failo create filter"); + +58 ià( + `¡¾’ +( +cÚd™iÚ +-> +cÚd +) > 0) { + +59 +»t + = + `medŸ_fž‹r_£t_cÚd™iÚ +( +tmp_fž‹r +, +cÚd™iÚ +-> +cÚd +, + +60 +cÚd™iÚ +-> +cÞϋ_ty³ +); + +61 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE +) { + +62 + `gl_dbgE +("Failo set condition"); + +63  +GL_LOCAL_FAILED +; + +67 ià( + `¡¾’ +( +cÚd™iÚ +-> +sÜt_keywÜd +) > 0) { + +68 +»t + = + `medŸ_fž‹r_£t_Üd” +( +tmp_fž‹r +, +cÚd™iÚ +-> +sÜt_ty³ +, + +69 +cÚd™iÚ +-> +sÜt_keywÜd +, + +70 +cÚd™iÚ +-> +cÞϋ_ty³ +); + +71 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE +) { + +72 + `gl_dbgE +("Failo set order"); + +73  +GL_LOCAL_FAILED +; + +77 ià( +cÚd™iÚ +-> +off£t + !ð-1 && cÚd™iÚ-> +couÁ + != -1 && + +78 +cÚd™iÚ +-> +couÁ + > 0) { + +79 +»t + = + `medŸ_fž‹r_£t_off£t +( +tmp_fž‹r +, +cÚd™iÚ +-> +off£t +, + +80 +cÚd™iÚ +-> +couÁ +); + +81 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE +) { + +82 + `gl_dbgE +("Failo set offset"); + +83  +GL_LOCAL_FAILED +; + +87 * +fž‹r + = +tmp_fž‹r +; + +90 +GL_LOCAL_FAILED +: + +92 ià( +tmp_fž‹r +) { + +93 + `medŸ_fž‹r_de¡roy +( +tmp_fž‹r +); + +94 +tmp_fž‹r + = +NULL +; + +95 * +fž‹r + = +NULL +; + +98 + } +} + +100  + $__gl_loÿl_d©a_de¡roy_fž‹r +( +fž‹r_h + +fž‹r +) + +102 + `GL_CHECK_VAL +( +fž‹r +, -1); + +103 ià( + `medŸ_fž‹r_de¡roy +( +fž‹r +è!ð +MEDIA_CONTENT_ERROR_NONE +) { + +104 + `gl_dbgE +("Failedo destroy filter!"); + +109 + } +} + +111  +boÞ + + $__gl_loÿl_d©a_g‘_®bum_li¡_cb +( +medŸ_fÞd”_h + +fÞd” +, + +112 * +d©a +) + +114 + `GL_CHECK_FALSE +( +d©a +); + +115 +gl_Œªsãr_d©a_s + * +tmp_d©a + = (gl_Œªsãr_d©a_ *) +d©a +; + +116 + `GL_CHECK_FALSE +( +tmp_d©a +-> +u£rd©a +); + +117 + `GL_CHECK_FALSE +( +fÞd” +); + +119 +Eša_Li¡ + ** +–i¡ + = (Eša_Li¡ **)( +tmp_d©a +-> +u£rd©a +); + +120 +gl_®bum_s + * +®bum + = +NULL +; + +122 +®bum + = ( +gl_®bum_s + *) + `ÿÎoc +(1, (gl_album_s)); + +123 + `GL_CHECK_FALSE +( +®bum +); + +124 +®bum +-> +gty³ + = +GL_TYPE_ALBUM +; + +126 ià( + `medŸ_fÞd”_þÚe +(&( +®bum +-> +fÞd”_h +), +fÞd” +è!ð +MEDIA_CONTENT_ERROR_NONE +) { + +127 + `gl_dbgE +("Clone folder handle failed!"); + +128  +GL_LOCAL_FAILED +; + +131 ià( + `medŸ_fÞd”_g‘_fÞd”_id +( +fÞd” +, &( +®bum +-> +uuid +)è!ð +MEDIA_CONTENT_ERROR_NONE +) { + +132 + `gl_dbgE +("Get folder id failed!"); + +133  +GL_LOCAL_FAILED +; + +136 ià( + `medŸ_fÞd”_g‘_modif›d_time +( +fÞd” +, &( +®bum +-> +mtime +)è!ð +MEDIA_CONTENT_ERROR_NONE +) { + +137 + `gl_dbgE +("Get modifiedime failed!"); + +138  +GL_LOCAL_FAILED +; + +141 +medŸ_cڋÁ_¡Üage_e + +¡Üage_ty³ +; + +142 ià( + `medŸ_fÞd”_g‘_¡Üage_ty³ +( +fÞd” +, & +¡Üage_ty³ +è!ð +MEDIA_CONTENT_ERROR_NONE +) { + +143 + `gl_dbgE +("Get folderype failed!"); + +144  +GL_LOCAL_FAILED +; + +147 ià( +¡Üage_ty³ + =ð +MEDIA_CONTENT_STORAGE_INTERNAL +) { + +148 +®bum +-> +ty³ + = +GL_STORE_T_PHONE +; + +149 } ià( +¡Üage_ty³ + =ð +MEDIA_CONTENT_STORAGE_EXTERNAL +) { + +150 +®bum +-> +ty³ + = +GL_STORE_T_MMC +; + +152 + `gl_dbgE +("Undefšed mode[%d]!", +¡Üage_ty³ +); + +155 ià( + `medŸ_fÞd”_g‘_Çme +( +fÞd” +, &( +®bum +-> +di¥Ïy_Çme +)è!ð +MEDIA_CONTENT_ERROR_NONE +) { + +156 + `gl_dbgE +("Get folder‚ame failed!"); + +157  +GL_LOCAL_FAILED +; + +160 ià( + `medŸ_fÞd”_g‘_·th +( +fÞd” +, &( +®bum +-> +·th +)è!ð +MEDIA_CONTENT_ERROR_NONE +) { + +161 + `gl_dbgE +("Get folder…ath failed!"); + +162  +GL_LOCAL_FAILED +; + +165 ià( +tmp_d©a +-> +fž‹r +) { + +166 ià( + `medŸ_fÞd”_g‘_medŸ_couÁ_äom_db +( +®bum +-> +uuid +, +tmp_d©a +-> +fž‹r +, &×lbum-> +couÁ +)è!ð +MEDIA_CONTENT_ERROR_NONE +) { + +167 + `gl_dbgE +("FažedØg‘ couÁ[uuid: %s]!", +®bum +-> +uuid +); + +168  +GL_LOCAL_FAILED +; + +172 * +–i¡ + = + `eša_li¡_­³nd +(*–i¡, +®bum +); + +174  +Œue +; + +176 +GL_LOCAL_FAILED +: + +178 + `_gl_d©a_ty³_ä“_gl™em +((**)(& +®bum +)); + +179  +çl£ +; + +180 + } +} + +182  +boÞ + + $__gl_loÿl_d©a_g‘_medŸ_li¡_cb +( +medŸ_šfo_h + +medŸ +, * +d©a +) + +184 + `GL_CHECK_FALSE +( +d©a +); + +185 +gl_Œªsãr_d©a_s + * +tmp_d©a + = (gl_Œªsãr_d©a_ *) +d©a +; + +186 + `GL_CHECK_FALSE +( +tmp_d©a +-> +u£rd©a +); + +187 + `GL_CHECK_FALSE +( +medŸ +); + +188 +gl_medŸ_s + * +™em + = +NULL +; + +189 +gl_image_s + * +image_šfo + = +NULL +; + +190 +gl_video_s + * +video_šfo + = +NULL +; + +191 +image_m‘a_h + +image_hªdË + = +NULL +; + +192 +video_m‘a_h + +video_hªdË + = +NULL +; + +193 * +ext + = +NULL +; + +195  +»t + = -1; + +196 +Eša_Li¡ + ** +–i¡ + = (Eša_Li¡ **)( +tmp_d©a +-> +u£rd©a +); + +198 +™em + = ( +gl_medŸ_s + *) + `ÿÎoc +(1, (gl_media_s)); + +199 + `GL_CHECK_FALSE +( +™em +); + +200 +™em +-> +gty³ + = +GL_TYPE_MEDIA +; + +202 ià( + `medŸ_šfo_þÚe +(&( +™em +-> +medŸ_h +), +medŸ +è!ð +MEDIA_CONTENT_ERROR_NONE +) { + +203 + `gl_dbgE +("Clone media handle failed!"); + +204  +GL_LOCAL_FAILED +; + +207 ià( + `medŸ_šfo_g‘_medŸ_id +( +medŸ +, &( +™em +-> +uuid +)è!ð +MEDIA_CONTENT_ERROR_NONE +) { + +208 + `gl_dbgE +("Get media id failed!"); + +209  +GL_LOCAL_FAILED +; + +212 ià( + `medŸ_šfo_g‘_di¥Ïy_Çme +( +medŸ +, &( +™em +-> +di¥Ïy_Çme +)è!ð +MEDIA_CONTENT_ERROR_NONE +) { + +213 + `gl_dbgE +("Get media display‚ame failed!"); + +214  +GL_LOCAL_FAILED +; + +217 ià( + `medŸ_šfo_g‘_fže_·th +( +medŸ +, &( +™em +-> +fže_u¾ +)è!ð +MEDIA_CONTENT_ERROR_NONE +) { + +218 + `gl_dbgE +("Get media file…ath failed!"); + +219  +GL_LOCAL_FAILED +; + +222 ià( + `medŸ_šfo_g‘_medŸ_ty³ +( +medŸ +, ( +medŸ_cڋÁ_ty³_e + *)&( +™em +-> +ty³ +)è!ð +MEDIA_CONTENT_ERROR_NONE +) { + +223 + `gl_dbgE +("Get mediaype failed!"); + +224  +GL_LOCAL_FAILED +; + +226 ià( + `medŸ_šfo_g‘_thumbǞ_·th +( +medŸ +, &( +™em +-> +thumb_u¾ +)è!ð +MEDIA_CONTENT_ERROR_NONE +) { + +227 + `gl_dbgE +("Get mediahumbnail…ath failed!"); + +228  +GL_LOCAL_FAILED +; + +230 + `gl_sdbg +("thumb_u¾: %s", +™em +-> +thumb_u¾ +); + +232 ià( + `medŸ_šfo_g‘_tim–še +( +medŸ +, &( +™em +-> +mtime +)è!ð +MEDIA_CONTENT_ERROR_NONE +) { + +233 + `gl_dbgE +("Get mediaimeline failed!"); + +234  +GL_LOCAL_FAILED +; + +242 +medŸ_cڋÁ_¡Üage_e + +¡Üage_ty³ + = 0; + +243 ià( + `medŸ_šfo_g‘_¡Üage_ty³ +( +medŸ +, & +¡Üage_ty³ +è!ð +MEDIA_CONTENT_ERROR_NONE +) { + +244 + `gl_dbgE +("Get storageype failed!"); + +245  +GL_LOCAL_FAILED +; + +247 ià( +¡Üage_ty³ + =ð +MEDIA_CONTENT_STORAGE_INTERNAL +) + +248 +™em +-> +¡Üage_ty³ + = +GL_STORE_T_PHONE +; + +249 ià( +¡Üage_ty³ + =ð +MEDIA_CONTENT_STORAGE_EXTERNAL +) + +250 +™em +-> +¡Üage_ty³ + = +GL_STORE_T_MMC +; + +252 + `gl_dbgE +("Undefšed mode[%d]!", +¡Üage_ty³ +); + +254 ià(! +tmp_d©a +-> +w™h_m‘a +) + +255  +GL_LOCAL_SUCCESS +; + +257 ià( +™em +-> +ty³ + =ð +MEDIA_CONTENT_TYPE_IMAGE +) { + +258 +»t + = + `medŸ_šfo_g‘_image +( +medŸ +, & +image_hªdË +); + +259 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE + || +image_hªdË + =ð +NULL +) { + +260 + `gl_dbgE +("FažedØg‘ imaghªdË[%d]!", +»t +); + +261  +GL_LOCAL_FAILED +; + +264 +image_šfo + = ( +gl_image_s + *) + `ÿÎoc +(1, (gl_image_s)); + +265 ià( +NULL + =ð +image_šfo +) { + +266 + `gl_dbgE +("Failedo calloc!"); + +267  +GL_LOCAL_FAILED +; + +269 +™em +-> +image_šfo + = image_info; + +271 ià( + `image_m‘a_þÚe +(&( +image_šfo +-> +image_h +), +image_hªdË +è!ð +MEDIA_CONTENT_ERROR_NONE +) { + +272 + `gl_dbgE +("Clone image handle failed!"); + +273  +GL_LOCAL_FAILED +; + +276 ià( + `image_m‘a_g‘_medŸ_id +( +image_hªdË +, &( +image_šfo +-> +medŸ_uuid +)è!ð +MEDIA_CONTENT_ERROR_NONE +) { + +277 + `gl_dbgE +("Get image id failed!"); + +278  +GL_LOCAL_FAILED +; + +281 ià( + `image_m‘a_g‘_ܛÁ©iÚ +( +image_hªdË +, ( +medŸ_cڋÁ_ܛÁ©iÚ_e + *)&( +image_šfo +-> +ܛÁ©iÚ +)è!ð +MEDIA_CONTENT_ERROR_NONE +) { + +282 + `gl_dbgE +("Get image orientation failed!"); + +283  +GL_LOCAL_FAILED +; + +285 ià( + `image_m‘a_g‘_bur¡_id +( +image_hªdË +, &( +image_šfo +-> +bur¡shÙ_id +)è!ð +MEDIA_CONTENT_ERROR_NONE +) { + +286 +image_šfo +-> +bur¡shÙ_id + = +NULL +; + +287 + `gl_dbgE +("Get burstshot_id failed!"); + +290 ià( + `image_m‘a_de¡roy +( +image_hªdË +è!ð +MEDIA_CONTENT_ERROR_NONE +) { + +291 + `gl_dbgE +("Destroy image handle failed!"); + +292  +GL_LOCAL_FAILED +; + +294 } ià( +™em +-> +ty³ + =ð +MEDIA_CONTENT_TYPE_VIDEO +) { + +295 +»t + = + `medŸ_šfo_g‘_video +( +medŸ +, & +video_hªdË +); + +296 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE + || +video_hªdË + =ð +NULL +) { + +297 + `gl_dbgE +("FažedØg‘ videØhªdË[%d]!", +»t +); + +298  +GL_LOCAL_FAILED +; + +301 +video_šfo + = ( +gl_video_s + *) + `ÿÎoc +(1, (gl_video_s)); + +302 ià( +NULL + =ð +video_šfo +) { + +303 + `gl_dbgE +("Failedo calloc!"); + +304  +GL_LOCAL_FAILED +; + +306 +™em +-> +video_šfo + = video_info; + +308 ià( + `video_m‘a_þÚe +(&( +video_šfo +-> +video_h +), +video_hªdË +è!ð +MEDIA_CONTENT_ERROR_NONE +) { + +309 + `gl_dbgE +("Clone video handle failed!"); + +310  +GL_LOCAL_FAILED +; + +313 ià( + `video_m‘a_g‘_medŸ_id +( +video_hªdË +, &( +video_šfo +-> +medŸ_uuid +)è!ð +MEDIA_CONTENT_ERROR_NONE +) { + +314 + `gl_dbgE +("Get video id failed!"); + +315  +GL_LOCAL_FAILED +; + +323 ià( + `video_m‘a_g‘_du¿tiÚ +( +video_hªdË +, &( +video_šfo +-> +du¿tiÚ +)è!ð +MEDIA_CONTENT_ERROR_NONE +) { + +324 + `gl_dbgE +("Get video duration failed!"); + +325  +GL_LOCAL_FAILED +; + +328 ià( + `video_m‘a_g‘_¶ayed_time +( +video_hªdË +, &( +video_šfo +-> +Ï¡_¶ayed_pos +)è!ð +MEDIA_CONTENT_ERROR_NONE +) { + +329 + `gl_dbgE +("Get video†ast…layed…osition failed!"); + +330  +GL_LOCAL_FAILED +; + +333 ià( + `video_m‘a_de¡roy +( +video_hªdË +è!ð +MEDIA_CONTENT_ERROR_NONE +) { + +334 + `gl_dbgE +("Destroy video handle failed!"); + +335  +GL_LOCAL_FAILED +; + +339 ià( +video_šfo +-> +medŸ_uuid +) { + +340 +video_šfo +-> +bookm¬ks + = 0; + +341  +couÁ + = 0; + +342 +»t + = + `medŸ_šfo_g‘_bookm¬k_couÁ_äom_db +( +video_šfo +-> +medŸ_uuid +, + +343 +NULL +, + +344 & +couÁ +); + +345 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE +) + +346 + `gl_dbgE +("FažedØg‘ bookm¬k[%d]", +»t +); + +348 +video_šfo +-> +bookm¬ks + = +couÁ +; + +351 + `gl_dbgE +("WrÚg medŸy³[%d]!", +™em +-> +ty³ +); + +354 +GL_LOCAL_SUCCESS +: + +357 +ext + = + `¡¼chr +( +™em +-> +fže_u¾ +, '.'); + +358 ià( +ext +) + +359 +™em +-> +ext + = + `¡rdup +(ext + 1); + +361 + `gl_dbgE +("Extension is NULL!"); + +363 * +–i¡ + = + `eša_li¡_­³nd +(*–i¡, +™em +); + +364  +Œue +; + +366 +GL_LOCAL_FAILED +: + +368 ià( +image_hªdË +) + +369 + `image_m‘a_de¡roy +( +image_hªdË +); + +370 ià( +video_hªdË +) + +371 + `video_m‘a_de¡roy +( +video_hªdË +); + +373 + `_gl_d©a_ty³_ä“_gl™em +((**)(& +™em +)); + +374  +çl£ +; + +375 + } +} + +377  +boÞ + + $__gl_loÿl_d©a_g‘_çv_medŸ_li¡_cb +( +medŸ_šfo_h + +medŸ +, * +d©a +) + +379 +boÞ + +»t + = +çl£ +; + +380 +»t + = + `__gl_loÿl_d©a_g‘_medŸ_li¡_cb +( +medŸ +, +d©a +); + +381  +»t +; + +382 + } +} + +384  +boÞ + + $__gl_loÿl_d©a_g‘_®bum_cov”_cb +( +medŸ_šfo_h + +medŸ +, * +d©a +) + +386 + `GL_CHECK_FALSE +( +d©a +); + +387 + `GL_CHECK_FALSE +( +medŸ +); + +388 +gl_medŸ_s + * +™em + = +NULL +; + +389 +Eša_Li¡ + ** +–i¡ + = (Eša_Li¡ **) +d©a +; + +391 +™em + = ( +gl_medŸ_s + *) + `ÿÎoc +(1, (gl_media_s)); + +392 + `GL_CHECK_FALSE +( +™em +); + +393 +™em +-> +gty³ + = +GL_TYPE_MEDIA +; + +395 ià( + `medŸ_šfo_þÚe +(&( +™em +-> +medŸ_h +), +medŸ +è!ð +MEDIA_CONTENT_ERROR_NONE +) { + +396 + `gl_dbgE +("Clone media handle failed!"); + +397  +GL_LOCAL_FAILED +; + +399 ià( + `medŸ_šfo_g‘_fže_·th +( +medŸ +, &( +™em +-> +fže_u¾ +)è!ð +MEDIA_CONTENT_ERROR_NONE +) { + +400 + `gl_dbgE +("Get media file…ath failed!"); + +401  +GL_LOCAL_FAILED +; + +403 ià( + `medŸ_šfo_g‘_medŸ_ty³ +( +medŸ +, ( +medŸ_cڋÁ_ty³_e + *)&( +™em +-> +ty³ +)è!ð +MEDIA_CONTENT_ERROR_NONE +) { + +404 + `gl_dbgE +("Get mediaype failed!"); + +405  +GL_LOCAL_FAILED +; + +407 ià( + `medŸ_šfo_g‘_thumbǞ_·th +( +medŸ +, &( +™em +-> +thumb_u¾ +)è!ð +MEDIA_CONTENT_ERROR_NONE +) { + +408 + `gl_dbgE +("Get mediahumbnail…ath failed!"); + +409  +GL_LOCAL_FAILED +; + +411 + `gl_sdbg +("thumb_u¾: %s", +™em +-> +thumb_u¾ +); + +413 * +–i¡ + = + `eša_li¡_­³nd +(*–i¡, +™em +); + +414  +Œue +; + +416 +GL_LOCAL_FAILED +: + +418 + `_gl_d©a_ty³_ä“_gl™em +((**)(& +™em +)); + +419  +çl£ +; + +420 + } +} + +422  +boÞ + + $__gl_loÿl_d©a_g‘_çv_®bum_cov”_cb +( +medŸ_šfo_h + +medŸ +, * +d©a +) + +424 + `GL_CHECK_FALSE +( +d©a +); + +425 + `GL_CHECK_FALSE +( +medŸ +); + +426 +gl_medŸ_s + * +™em + = +NULL +; + +427 +Eša_Li¡ + ** +–i¡ + = (Eša_Li¡ **) +d©a +; + +429 +™em + = ( +gl_medŸ_s + *) + `ÿÎoc +(1, (gl_media_s)); + +430 + `GL_CHECK_FALSE +( +™em +); + +431 +™em +-> +gty³ + = +GL_TYPE_MEDIA +; + +433 ià( + `medŸ_šfo_þÚe +(&( +™em +-> +medŸ_h +), +medŸ +è!ð +MEDIA_CONTENT_ERROR_NONE +) { + +434 + `gl_dbgE +("Clone media handle failed!"); + +435  +GL_LOCAL_FAILED +; + +437 ià( + `medŸ_šfo_g‘_fže_·th +( +medŸ +, &( +™em +-> +fže_u¾ +)è!ð +MEDIA_CONTENT_ERROR_NONE +) { + +438 + `gl_dbgE +("Get media file…ath failed!"); + +439  +GL_LOCAL_FAILED +; + +441 ià( + `medŸ_šfo_g‘_medŸ_ty³ +( +medŸ +, ( +medŸ_cڋÁ_ty³_e + *)&( +™em +-> +ty³ +)è!ð +MEDIA_CONTENT_ERROR_NONE +) { + +442 + `gl_dbgE +("Get mediaype failed!"); + +443  +GL_LOCAL_FAILED +; + +445 ià( + `medŸ_šfo_g‘_thumbǞ_·th +( +medŸ +, &( +™em +-> +thumb_u¾ +)è!ð +MEDIA_CONTENT_ERROR_NONE +) { + +446 + `gl_dbgE +("Get mediahumbnail…ath failed!"); + +447  +GL_LOCAL_FAILED +; + +449 + `gl_sdbg +("thumb_u¾: %s", +™em +-> +thumb_u¾ +); + +451 * +–i¡ + = + `eša_li¡_­³nd +(*–i¡, +™em +); + +452  +Œue +; + +454 +GL_LOCAL_FAILED +: + +456 + `_gl_d©a_ty³_ä“_gl™em +((**)(& +™em +)); + +457  +çl£ +; + +458 + } +} + +460  +boÞ + + $__gl_loÿl_d©a_d–‘e_®bum_cb +( +medŸ_šfo_h + +medŸ +, * +d©a +) + +462 + `GL_CHECK_FALSE +( +d©a +); + +463 + `GL_CHECK_FALSE +( +medŸ +); + +464 +Eša_Li¡ + ** +–i¡ + = (Eša_Li¡ **) +d©a +; + +465 +gl_medŸ_s + * +™em + = +NULL +; + +467 +™em + = ( +gl_medŸ_s + *) + `ÿÎoc +(1, (gl_media_s)); + +468 + `GL_CHECK_FALSE +( +™em +); + +469 +™em +-> +gty³ + = +GL_TYPE_MEDIA +; + +471 ià( +MEDIA_CONTENT_ERROR_NONE + !ð + `medŸ_šfo_g‘_fže_·th +( +medŸ +, &( +™em +-> +fže_u¾ +))) { + +472 + `gl_dbgE +("media_info_get_file_path failed"); + +474 + `medŸ_šfo_g‘_medŸ_id +( +medŸ +, &( +™em +-> +uuid +)); + +475 * +–i¡ + = + `eša_li¡_­³nd +(*–i¡, +™em +); + +476  +Œue +; + +477 + } +} + +480  + $_gl_loÿl_d©a_cÚÃù +() + +482  +»t + = -1; + +483 +»t + = + `medŸ_cڋÁ_cÚÃù +(); + +484 ià( +»t + =ð +MEDIA_CONTENT_ERROR_NONE +) { + +485 + `gl_dbg +("DB connection is success"); + +488 + `gl_dbgE +("DB cÚÃùiÚ i çžed[%d]!", +»t +); + +491 + } +} + +494  + $_gl_loÿl_d©a_discÚÃù +() + +496  +»t + = -1; + +497 +»t + = + `medŸ_cڋÁ_discÚÃù +(); + +498 ià( +»t + =ð +MEDIA_CONTENT_ERROR_NONE +) { + +499 + `gl_dbg +("DB disconnection is success"); + +502 + `gl_dbgE +("DB discÚÃùiÚ i çžed[%d]!", +»t +); + +505 + } +} + +507  + $_gl_loÿl_d©a_g‘_®bum_by_·th +(* +·th +, +gl_®bum_s + ** +®bum +) + +509 + `GL_CHECK_VAL +( +·th +, -1); + +510 + `GL_CHECK_VAL +( +®bum +, -1); + +511  +»t + = -1; + +512 +Eša_Li¡ + * +li¡ + = +NULL +; + +513 +gl_fž‹r_s + +cÚd™iÚ +; + +514 +gl_®bum_s + * +_™em + = +NULL +; + +515  +i + = 0; + +517 ià( + `¡¾’ +( +·th +) <=0) { + +518 + `gl_dbgE +("Invalid…ath!"); + +521 + `gl_sdbg +("·th: %s", +·th +); + +523 + `mem£t +(& +cÚd™iÚ +, 0x00, ( +gl_fž‹r_s +)); + +524 + `_gl_d©a_utž_g‘_cÚd +( +cÚd™iÚ +. +cÚd +); + +525 + `g_¡¾ýy +( +cÚd™iÚ +. +sÜt_keywÜd +, +GL_CONDITION_ORDER +, +KEYWORD_LENGTH +); + +526 +cÚd™iÚ +. +cÞϋ_ty³ + = +MEDIA_CONTENT_COLLATE_NOCASE +; + +527 +cÚd™iÚ +. +sÜt_ty³ + = +MEDIA_CONTENT_ORDER_DESC +; + +528 +cÚd™iÚ +. +off£t + = -1; + +529 +cÚd™iÚ +. +couÁ + = -1; + +530 +cÚd™iÚ +. +w™h_m‘a + = +çl£ +; + +532 + `¢´štf +( +cÚd™iÚ +. +cÚd +, +CONDITION_LENGTH +, + +533 "(%s=0 OR %s=1èAND %s=\'%s\'", +MEDIA_TYPE +, MEDIA_TYPE, + +534 +FOLDER_PATH +, +·th +); + +536 +»t + = + `_gl_loÿl_d©a_g‘_®bum_li¡ +(& +cÚd™iÚ +, & +li¡ +); + +537 ià( +»t + !ð0 || +NULL + =ð +li¡ +) { + +538 + `gl_dbgE +("FažedØg‘‡lbum†i¡[%d]!", +»t +); + +539 +»t + = -1; + +540 } ià( +NULL + !ð +li¡ +) { + +541 * +®bum + = + `eša_li¡_Áh +( +li¡ +, 0); + +542 +i + = 1; + +543 +»t + = 0; + +547 ià( +li¡ +) { + +548  +Ën + = + `eša_li¡_couÁ +( +li¡ +); + +549 + `gl_dbg +("Ën: %d", +Ën +); + +551 ; +i + < +Ën +; i++) { + +552 +_™em + = + `eša_li¡_Áh +( +li¡ +, +i +); + +553 + `_gl_d©a_ty³_ä“_gl™em +((**)(& +_™em +)); + +556 + `eša_li¡_ä“ +( +li¡ +); + +559  +»t +; + +560 + } +} + +562  + $_gl_loÿl_d©a_g‘_®bum_li¡ +( +gl_fž‹r_s + * +cÚd™iÚ +, +Eša_Li¡ + ** +–i¡ +) + +564 + `GL_CHECK_VAL +( +–i¡ +, -1); + +565 + `GL_CHECK_VAL +( +cÚd™iÚ +, -1); + +566  +»t + = -1; + +567 +fž‹r_h + +fž‹r + = +NULL +; + +569 +»t + = + `__gl_loÿl_d©a_ü—‹_fž‹r +( +cÚd™iÚ +, & +fž‹r +); + +570 ià( +»t + != 0) { + +571 + `gl_dbgE +("C»©fž‹¸çžed[%d]!", +»t +); + +575 +fž‹r_h + +medŸ_fž‹r + = +NULL +; + +576 +gl_fž‹r_s + +medŸ_cÚd™iÚ +; + +577 + `mem£t +(& +medŸ_cÚd™iÚ +, 0x00, ( +gl_fž‹r_s +)); + +579 + `g_¡¾ýy +( +medŸ_cÚd™iÚ +. +cÚd +, +GL_CONDITION_IMAGE_VIDEO +, + +580 +CONDITION_LENGTH +); + +581 +medŸ_cÚd™iÚ +. +sÜt_ty³ + = +MEDIA_CONTENT_ORDER_DESC +; + +582 + `g_¡¾ýy +( +medŸ_cÚd™iÚ +. +sÜt_keywÜd +, +GL_CONDITION_ORDER +, + +583 +KEYWORD_LENGTH +); + +584 +medŸ_cÚd™iÚ +. +cÞϋ_ty³ + = +MEDIA_CONTENT_COLLATE_NOCASE +; + +585 +medŸ_cÚd™iÚ +. +off£t + = -1; + +586 +medŸ_cÚd™iÚ +. +couÁ + = -1; + +587 +medŸ_cÚd™iÚ +. +w™h_m‘a + = +çl£ +; + +589 +»t + = + `__gl_loÿl_d©a_ü—‹_fž‹r +(& +medŸ_cÚd™iÚ +, & +medŸ_fž‹r +); + +590 ià( +»t + != 0) { + +591 + `__gl_loÿl_d©a_de¡roy_fž‹r +( +fž‹r +); + +592 + `gl_dbgE +("C»©fž‹¸çžed[%d]!", +»t +); + +596 +gl_Œªsãr_d©a_s + +Œª_d©a +; + +597 + `mem£t +(& +Œª_d©a +, 0x00, ( +gl_Œªsãr_d©a_s +)); + +598 +Œª_d©a +. +u£rd©a + = (**) +–i¡ +; + +599 +Œª_d©a +. +fž‹r + = +medŸ_fž‹r +; + +600 +Œª_d©a +. +®bum_id + = +NULL +; + +601 +Œª_d©a +. +w™h_m‘a + = +çl£ +; + +603 + `gl_dbg +("Get folders--start"); + +604 +»t + = + `medŸ_fÞd”_fܗch_fÞd”_äom_db +( +fž‹r +, + +605 +__gl_loÿl_d©a_g‘_®bum_li¡_cb +, + +606 & +Œª_d©a +); + +607 + `gl_dbg +("Get folders---over"); + +609 + `__gl_loÿl_d©a_de¡roy_fž‹r +( +medŸ_fž‹r +); + +610 + `__gl_loÿl_d©a_de¡roy_fž‹r +( +fž‹r +); + +612 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE +) { + +613 + `gl_dbgE +("FažedØg‘‡Î fÞd”s[%d]!", +»t +); + +618 + } +} + +620  + $_gl_loÿl_d©a_g‘_medŸ_by_id +(* +medŸ_id +, +gl_medŸ_s + ** +m™em +) + +622 + `GL_CHECK_VAL +( +m™em +, -1); + +624 ià( +medŸ_id + =ð +NULL +) { + +626 + `_gl_d©a_ty³_Ãw_medŸ +( +m™em +); + +630  +»t + = -1; + +631 +Eša_Li¡ + * +li¡ + = +NULL +; + +632 +gl_medŸ_s + * +_m™em + = +NULL +; + +633 +medŸ_šfo_h + +medŸ_h + = +NULL +; + +634  +i + = 0; + +635 + `gl_sdbg +("medŸ id: %s", +medŸ_id +); + +637 +»t + = + `medŸ_šfo_g‘_medŸ_äom_db +( +medŸ_id +, & +medŸ_h +); + +638 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE + || +medŸ_h + =ð +NULL +) { + +639 + `gl_dbgE +("FažedØg‘ medŸ hªdË[%d]!", +»t +); + +640 ià( +medŸ_h +) + +641 + `medŸ_šfo_de¡roy +( +medŸ_h +); + +645 +gl_Œªsãr_d©a_s + +Œª_d©a +; + +646 + `mem£t +(& +Œª_d©a +, 0x00, ( +gl_Œªsãr_d©a_s +)); + +647 +Œª_d©a +. +u£rd©a + = (**)& +li¡ +; + +648 +Œª_d©a +. +fž‹r + = +NULL +; + +649 +Œª_d©a +. +®bum_id + = +NULL +; + +650 +Œª_d©a +. +w™h_m‘a + = +çl£ +; + +652 +boÞ + +b_»t + = + `__gl_loÿl_d©a_g‘_medŸ_li¡_cb +( +medŸ_h +, & +Œª_d©a +); + +654 + `medŸ_šfo_de¡roy +( +medŸ_h +); + +656 ià( +b_»t + && +li¡ +) { + +657 * +m™em + = + `eša_li¡_Áh +( +li¡ +, 0); + +658 +i + = 1; + +659 +»t + = 0; + +661 + `gl_dbgE +("Failedo get media†ist!"); + +662 +»t + = -1; + +666 ià( +li¡ +) { + +667  +Ën + = + `eša_li¡_couÁ +( +li¡ +); + +668 + `gl_dbg +("Ën: %d", +Ën +); + +670 ; +i + < +Ën +; i++) { + +671 +_m™em + = + `eša_li¡_Áh +( +li¡ +, +i +); + +672 + `_gl_d©a_ty³_ä“_gl™em +((**)(& +_m™em +)); + +675 + `eša_li¡_ä“ +( +li¡ +); + +678  +»t +; + +679 + } +} + +681  + $_gl_loÿl_d©a_g‘_medŸ_by_·th +(cÚ¡ * +·th +, +gl_medŸ_s + ** +m™em +) + +683 + `GL_CHECK_VAL +( +m™em +, -1); + +684 + `GL_CHECK_VAL +( +·th +, -1); + +685  +»t + = -1; + +686 +Eša_Li¡ + * +li¡ + = +NULL +; + +687 +gl_fž‹r_s + +cÚd™iÚ +; + +688 +gl_medŸ_s + * +_m™em + = +NULL +; + +689  +i + = 0; + +691 ià( + `¡¾’ +( +·th +) <=0) { + +692 + `gl_dbgE +("Invalid…ath!"); + +695 + `gl_sdbg +("·th: %s", +·th +); + +697 + `mem£t +(& +cÚd™iÚ +, 0x00, ( +gl_fž‹r_s +)); + +698 + `_gl_d©a_utž_g‘_cÚd +( +cÚd™iÚ +. +cÚd +); + +699 + `g_¡¾ýy +( +cÚd™iÚ +. +sÜt_keywÜd +, +GL_CONDITION_ORDER +, +KEYWORD_LENGTH +); + +700 +cÚd™iÚ +. +cÞϋ_ty³ + = +MEDIA_CONTENT_COLLATE_NOCASE +; + +701 +cÚd™iÚ +. +sÜt_ty³ + = +MEDIA_CONTENT_ORDER_DESC +; + +702 +cÚd™iÚ +. +off£t + = -1; + +703 +cÚd™iÚ +. +couÁ + = -1; + +704 +cÚd™iÚ +. +w™h_m‘a + = +Œue +; + +706 + `¢´štf +( +cÚd™iÚ +. +cÚd +, +CONDITION_LENGTH +, + +707 "(%s=0 OR %s=1èAND %s=\'%s\'", +MEDIA_TYPE +, MEDIA_TYPE, + +708 +MEDIA_PATH +, +·th +); + +709 +»t + = + `_gl_loÿl_d©a_g‘_®l_®bums_medŸ_li¡ +(& +cÚd™iÚ +, & +li¡ +); + +710 ià( +»t + !ð0 || +NULL + =ð +li¡ +) { + +711 + `gl_dbgE +("FažedØg‘‡Î‡lbums[%d]!", +»t +); + +712 +»t + = -1; + +713 } ià( +NULL + !ð +li¡ +) { + +714 * +m™em + = + `eša_li¡_Áh +( +li¡ +, 0); + +715 +i + = 1; + +716 +»t + = 0; + +720 ià( +li¡ +) { + +721  +Ën + = + `eša_li¡_couÁ +( +li¡ +); + +722 + `gl_dbg +("Ën: %d", +Ën +); + +724 ; +i + < +Ën +; i++) { + +725 +_m™em + = + `eša_li¡_Áh +( +li¡ +, +i +); + +726 + `_gl_d©a_ty³_ä“_gl™em +((**)(& +_m™em +)); + +729 + `eša_li¡_ä“ +( +li¡ +); + +732  +»t +; + +733 + } +} + +735  + $_gl_loÿl_d©a_g‘_medŸ_couÁ +(cÚ¡ * +þu¡”_id +, +gl_fž‹r_s + * +cÚd™iÚ +, + +736 * +™em_út +) + +738 + `GL_CHECK_VAL +( +þu¡”_id +, -1); + +739 + `GL_CHECK_VAL +( +cÚd™iÚ +, -1); + +740 + `GL_CHECK_VAL +( +™em_út +, -1); + +741  +»t + = -1; + +742 +fž‹r_h + +fž‹r + = +NULL +; + +744 +»t + = + `__gl_loÿl_d©a_ü—‹_fž‹r +( +cÚd™iÚ +, & +fž‹r +); + +745 ià( +»t + != 0) { + +746 + `gl_dbgE +("C»©fž‹¸çžed[%d]!", +»t +); + +750 + `gl_dbg +("Get media count--start"); + +751 +»t + = + `medŸ_fÞd”_g‘_medŸ_couÁ_äom_db +( +þu¡”_id +, +fž‹r +, +™em_út +); + +752 + `gl_dbg +("Get media count---over"); + +754 + `__gl_loÿl_d©a_de¡roy_fž‹r +( +fž‹r +); + +756 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE +) { + +757 + `gl_dbgE +("FažedØg‘ medŸ couÁ[%d]!", +»t +); + +762 + } +} + +764  + $_gl_loÿl_d©a_g‘_®l_medŸ_couÁ +( +gl_fž‹r_s + * +cÚdtiÚ +, * +™em_út +) + +766 + `GL_CHECK_VAL +( +cÚdtiÚ +, -1); + +767 + `GL_CHECK_VAL +( +™em_út +, -1); + +768  +»t + = -1; + +769 +fž‹r_h + +fž‹r + = +NULL +; + +771 +»t + = + `__gl_loÿl_d©a_ü—‹_fž‹r +( +cÚdtiÚ +, & +fž‹r +); + +772 ià( +»t + != 0) { + +773 + `gl_dbgE +("C»©fž‹¸çžed[%d]!", +»t +); + +777 + `gl_dbg +("Get media count--start"); + +778 + `GL_PROFILE_F_IN +("media_info_get_media_count_from_db"); + +779 +»t + = + `medŸ_šfo_g‘_medŸ_couÁ_äom_db +( +fž‹r +, +™em_út +); + +780 + `GL_PROFILE_F_OUT +("media_info_get_media_count_from_db"); + +781 + `gl_dbg +("Get media count---over"); + +783 + `__gl_loÿl_d©a_de¡roy_fž‹r +( +fž‹r +); + +785 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE +) { + +786 + `gl_dbgE +("FažedØg‘ medŸ couÁ[%d]", +»t +); + +791 + } +} + +793  + $_gl_loÿl_d©a_g‘_®bum_medŸ_li¡ +( +gl_fž‹r_s + * +cÚd™iÚ +, + +794 cÚ¡ * +®bum_id +, +Eša_Li¡ + ** +–i¡ +) + +796 + `GL_CHECK_VAL +( +–i¡ +, -1); + +797 + `GL_CHECK_VAL +( +®bum_id +, -1); + +798 + `GL_CHECK_VAL +( +cÚd™iÚ +, -1); + +799 + `gl_sdbg +("®bum id: %s", +®bum_id +); + +801  +»t + = -1; + +802 +fž‹r_h + +fž‹r + = +NULL +; + +803 +»t + = + `__gl_loÿl_d©a_ü—‹_fž‹r +( +cÚd™iÚ +, & +fž‹r +); + +804 ià( +»t + != 0) { + +805 + `gl_dbgE +("Create filter failed!"); + +809 +gl_Œªsãr_d©a_s + +Œª_d©a +; + +810 + `mem£t +(& +Œª_d©a +, 0x00, ( +gl_Œªsãr_d©a_s +)); + +811 +Œª_d©a +. +u£rd©a + = (**) +–i¡ +; + +812 +Œª_d©a +. +fž‹r + = +NULL +; + +813 +Œª_d©a +. +®bum_id + = (*)album_id; + +814 +Œª_d©a +. +w™h_m‘a + = +cÚd™iÚ +->with_meta; + +816 + `gl_dbg +("Get medias--start"); + +817 +»t + = + `medŸ_fÞd”_fܗch_medŸ_äom_db +( +®bum_id +, +fž‹r +, + +818 +__gl_loÿl_d©a_g‘_medŸ_li¡_cb +, + +819 & +Œª_d©a +); + +820 + `gl_dbg +("Get medias--start"); + +822 + `__gl_loÿl_d©a_de¡roy_fž‹r +( +fž‹r +); + +824 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE +) { + +825 + `gl_dbgE +("FažedØg‘ medŸs[%d]!", +»t +); + +830 + } +} + +832  + $_gl_loÿl_d©a_g‘_®bum_cov” +( +gl_fž‹r_s + * +cÚd™iÚ +, cÚ¡ * +®bum_id +, + +833 +Eša_Li¡ + ** +–i¡ +) + +835 + `GL_CHECK_VAL +( +–i¡ +, -1); + +836 + `GL_CHECK_VAL +( +®bum_id +, -1); + +837 + `GL_CHECK_VAL +( +cÚd™iÚ +, -1); + +838 + `gl_sdbg +("®bum id: %s", +®bum_id +); + +840  +»t + = -1; + +841 +fž‹r_h + +fž‹r + = +NULL +; + +842 +»t + = + `__gl_loÿl_d©a_ü—‹_fž‹r +( +cÚd™iÚ +, & +fž‹r +); + +843 ià( +»t + != 0) { + +844 + `gl_dbgE +("Create filter failed!"); + +848 + `gl_dbg +("Get medias--start"); + +849 +»t + = + `medŸ_fÞd”_fܗch_medŸ_äom_db +( +®bum_id +, +fž‹r +, + +850 +__gl_loÿl_d©a_g‘_®bum_cov”_cb +, + +851 +–i¡ +); + +852 + `gl_dbg +("Get medias--start"); + +854 + `__gl_loÿl_d©a_de¡roy_fž‹r +( +fž‹r +); + +856 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE +) { + +857 + `gl_dbgE +("FažedØg‘ medŸs[%d]!", +»t +); + +862 + } +} + +864  + $_gl_loÿl_d©a_g‘_®l_®bums_medŸ_li¡ +( +gl_fž‹r_s + * +cÚd™iÚ +, + +865 +Eša_Li¡ + ** +–i¡ +) + +867 + `GL_CHECK_VAL +( +–i¡ +, -1); + +868 + `GL_CHECK_VAL +( +cÚd™iÚ +, -1); + +869  +»t + = -1; + +870 +fž‹r_h + +fž‹r + = +NULL +; + +872 +»t + = + `__gl_loÿl_d©a_ü—‹_fž‹r +( +cÚd™iÚ +, & +fž‹r +); + +873 ià( +»t + != 0) { + +874 + `gl_dbgE +("Create filter failed!"); + +878 +gl_Œªsãr_d©a_s + +Œª_d©a +; + +879 + `mem£t +(& +Œª_d©a +, 0x00, ( +gl_Œªsãr_d©a_s +)); + +880 +Œª_d©a +. +u£rd©a + = (**) +–i¡ +; + +881 +Œª_d©a +. +fž‹r + = +NULL +; + +882 +Œª_d©a +. +®bum_id + = +NULL +; + +883 +Œª_d©a +. +w™h_m‘a + = +cÚd™iÚ +->with_meta; + +885 + `gl_dbg +("Get‡ll medias--start"); + +886 +»t + = + `medŸ_šfo_fܗch_medŸ_äom_db +( +fž‹r +, + +887 +__gl_loÿl_d©a_g‘_medŸ_li¡_cb +, + +888 & +Œª_d©a +); + +889 + `gl_dbg +("Get‡ll medias--over"); + +891 + `__gl_loÿl_d©a_de¡roy_fž‹r +( +fž‹r +); + +893 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE +) { + +894 + `gl_dbgE +("FažedØg‘ medŸs[%d]!", +»t +); + +899 + } +} + +901  + $_gl_loÿl_d©a_g‘_çv_®bums_medŸ_li¡ +( +gl_fž‹r_s + * +cÚd™iÚ +, + +902 +Eša_Li¡ + ** +–i¡ +) + +904 + `GL_CHECK_VAL +( +–i¡ +, -1); + +905 + `GL_CHECK_VAL +( +cÚd™iÚ +, -1); + +906  +»t + = -1; + +907 +fž‹r_h + +fž‹r + = +NULL +; + +909 +»t + = + `__gl_loÿl_d©a_ü—‹_fž‹r +( +cÚd™iÚ +, & +fž‹r +); + +910 ià( +»t + != 0) { + +911 + `gl_dbgE +("Create filter failed!"); + +915 +gl_Œªsãr_d©a_s + +Œª_d©a +; + +916 + `mem£t +(& +Œª_d©a +, 0x00, ( +gl_Œªsãr_d©a_s +)); + +917 +Œª_d©a +. +u£rd©a + = (**) +–i¡ +; + +918 +Œª_d©a +. +fž‹r + = +NULL +; + +919 +Œª_d©a +. +®bum_id + = +NULL +; + +920 +Œª_d©a +. +w™h_m‘a + = +cÚd™iÚ +->with_meta; + +922 + `gl_dbg +("Get‡ll medias--start"); + +923 +»t + = + `medŸ_šfo_fܗch_medŸ_äom_db +( +fž‹r +, + +924 +__gl_loÿl_d©a_g‘_çv_medŸ_li¡_cb +, & +Œª_d©a +); + +925 + `gl_dbg +("Get‡ll medias--over"); + +927 + `__gl_loÿl_d©a_de¡roy_fž‹r +( +fž‹r +); + +929 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE +) { + +930 + `gl_dbgE +("FažedØg‘ medŸs[%d]!", +»t +); + +935 + } +} + +937  + $_gl_loÿl_d©a_g‘_®l_®bums_cov” +( +gl_fž‹r_s + * +cÚd™iÚ +, + +938 +Eša_Li¡ + ** +–i¡ +) + +940 + `GL_CHECK_VAL +( +–i¡ +, -1); + +941 + `GL_CHECK_VAL +( +cÚd™iÚ +, -1); + +942  +»t + = -1; + +943 +fž‹r_h + +fž‹r + = +NULL +; + +945 +»t + = + `__gl_loÿl_d©a_ü—‹_fž‹r +( +cÚd™iÚ +, & +fž‹r +); + +946 ià( +»t + != 0) { + +947 + `gl_dbgE +("Create filter failed!"); + +951 + `gl_dbg +("Get‡ll medias--start"); + +952 +»t + = + `medŸ_šfo_fܗch_medŸ_äom_db +( +fž‹r +, + +953 +__gl_loÿl_d©a_g‘_®bum_cov”_cb +, + +954 +–i¡ +); + +955 + `gl_dbg +("Get‡ll medias--over"); + +957 + `__gl_loÿl_d©a_de¡roy_fž‹r +( +fž‹r +); + +959 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE +) { + +960 + `gl_dbgE +("FažedØg‘ medŸs[%d]!", +»t +); + +965 + } +} + +967  + $_gl_loÿl_d©a_g‘_çv_®bums_cov” +( +gl_fž‹r_s + * +cÚd™iÚ +, + +968 +Eša_Li¡ + ** +–i¡ +) + +970 + `GL_CHECK_VAL +( +–i¡ +, -1); + +971 + `GL_CHECK_VAL +( +cÚd™iÚ +, -1); + +972  +»t + = -1; + +973 +fž‹r_h + +fž‹r + = +NULL +; + +975 +»t + = + `__gl_loÿl_d©a_ü—‹_fž‹r +( +cÚd™iÚ +, & +fž‹r +); + +976 ià( +»t + != 0) { + +977 + `gl_dbgE +("Create filter failed!"); + +981 + `gl_dbg +("Get‡ll medias--start"); + +982 +»t + = + `medŸ_šfo_fܗch_medŸ_äom_db +( +fž‹r +, + +983 +__gl_loÿl_d©a_g‘_çv_®bum_cov”_cb +, +–i¡ +); + +984 + `gl_dbg +("Get‡ll medias--over"); + +986 + `__gl_loÿl_d©a_de¡roy_fž‹r +( +fž‹r +); + +988 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE +) { + +989 + `gl_dbgE +("FažedØg‘ medŸs[%d]!", +»t +); + +994 + } +} + +996  + $_gl_loÿl_d©a_d–‘e_®bum +( +gl_®bum_s + * +þu¡” +, * +cb +, * +d©a +, +boÞ + +is_hide +) + +998 + `GL_CHECK_VAL +( +þu¡” +, -1); + +999 + `GL_CHECK_VAL +( +þu¡” +-> +uuid +, -1); + +1000 +gl_fž‹r_s + +cÚd™iÚ +; + +1001 +fž‹r_h + +fž‹r + = +NULL +; + +1002  +»t + = -1; + +1003 + `gl_sdbg +("®bum id: %s", +þu¡” +-> +uuid +); + +1004 +Eša_Li¡ + * +™emli¡ + = +NULL +; + +1005 +gl_medŸ_s + * +™em + = +NULL +; + +1007 ià(! +is_hide +) { + +1008 + `mem£t +(& +cÚd™iÚ +, 0x00, ( +gl_fž‹r_s +)); + +1009 + `_gl_d©a_utž_g‘_cÚd +( +cÚd™iÚ +. +cÚd +); + +1010 +cÚd™iÚ +. +cÞϋ_ty³ + = +MEDIA_CONTENT_COLLATE_NOCASE +; + +1011 +cÚd™iÚ +. +sÜt_ty³ + = +MEDIA_CONTENT_ORDER_ASC +; + +1012 + `g_¡¾ýy +( +cÚd™iÚ +. +sÜt_keywÜd +, +MEDIA_ADDED_TIME +, +KEYWORD_LENGTH +); + +1013 +cÚd™iÚ +. +off£t + = -1; + +1014 +cÚd™iÚ +. +couÁ + = -1; + +1015 +cÚd™iÚ +. +w™h_m‘a + = +çl£ +; + +1017 +»t + = + `__gl_loÿl_d©a_ü—‹_fž‹r +(& +cÚd™iÚ +, & +fž‹r +); + +1018 ià( +»t + != 0) { + +1019 + `gl_dbgE +("Create filter failed!"); + +1022 +»t + = + `medŸ_fÞd”_fܗch_medŸ_äom_db +( +þu¡” +-> +uuid +, +fž‹r +, + +1023 +__gl_loÿl_d©a_d–‘e_®bum_cb +, + +1024 & +™emli¡ +); + +1025 + `__gl_loÿl_d©a_de¡roy_fž‹r +( +fž‹r +); + +1028 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE +) { + +1029 + `gl_dbgE +("FažedØg‘ medŸs[%d]!", +»t +); + +1033 + `EINA_LIST_FREE +( +™emli¡ +, +™em +) { + +1034 ià( +™em + =ð +NULL + || i‹m-> +fže_u¾ + == NULL) { + +1035 + `gl_dbgE +("Invalid item!"); + +1039 ià(! + `gl_fže_uƚk +( +™em +-> +fže_u¾ +)) + +1040 + `gl_dbgE +("file_unlink failed!"); + +1041 ià(! +is_hide +) { + +1042 + `medŸ_šfo_d–‘e_äom_db +( +™em +-> +uuid +); + +1043 ià( +cb +) { + +1044 (* +d–‘e_cb +è(* +d©a +, * +uuid +); + +1045 +d–‘e_cb + = +cb +; + +1046 + `d–‘e_cb +( +d©a +, +™em +-> +uuid +); + +1049 + `_gl_d©a_ty³_ä“_gl™em +((**)& +™em +); + +1050  +pb¬_ÿnûl + = +çl£ +; + +1051 + `gl_th»ad_g‘_ÿnûl_¡©e +( +d©a +, & +pb¬_ÿnûl +); + +1052 ià( +pb¬_ÿnûl + > +GL_PB_CANCEL_NORMAL +) { + +1053 + `gl_dbgW +("CªûÎed[%d]!", +pb¬_ÿnûl +); + +1059 + } +} + +1061  + $_gl_loÿl_d©a_hide_®bum_medŸ +(* +d©a +, +gl_®bum_s + * +þu¡” +, * +Ãw_·th +) + +1063 + `GL_CHECK_VAL +( +þu¡” +, -1); + +1064 + `GL_CHECK_VAL +( +þu¡” +-> +uuid +, -1); + +1065 +gl_fž‹r_s + +cÚd™iÚ +; + +1066 +fž‹r_h + +fž‹r + = +NULL +; + +1067  +»t + = -1; + +1068 + `gl_dbgE +("®bum id: %s", +þu¡” +-> +uuid +); + +1069 +Eša_Li¡ + * +™emli¡ + = +NULL +; + +1070 +gl_medŸ_s + * +™em + = +NULL +; + +1072 + `mem£t +(& +cÚd™iÚ +, 0x00, ( +gl_fž‹r_s +)); + +1073 + `_gl_d©a_utž_g‘_cÚd +( +cÚd™iÚ +. +cÚd +); + +1074 +cÚd™iÚ +. +cÞϋ_ty³ + = +MEDIA_CONTENT_COLLATE_NOCASE +; + +1075 +cÚd™iÚ +. +sÜt_ty³ + = +MEDIA_CONTENT_ORDER_ASC +; + +1076 + `g_¡¾ýy +( +cÚd™iÚ +. +sÜt_keywÜd +, +MEDIA_ADDED_TIME +, +KEYWORD_LENGTH +); + +1077 +cÚd™iÚ +. +off£t + = -1; + +1078 +cÚd™iÚ +. +couÁ + = -1; + +1079 +cÚd™iÚ +. +w™h_m‘a + = +çl£ +; + +1081 +»t + = + `__gl_loÿl_d©a_ü—‹_fž‹r +(& +cÚd™iÚ +, & +fž‹r +); + +1082 ià( +»t + != 0) { + +1083 + `gl_dbgE +("Create filter failed!"); + +1086 +»t + = + `medŸ_fÞd”_fܗch_medŸ_äom_db +( +þu¡” +-> +uuid +, +fž‹r +, + +1087 +__gl_loÿl_d©a_d–‘e_®bum_cb +, + +1088 & +™emli¡ +); + +1089 + `__gl_loÿl_d©a_de¡roy_fž‹r +( +fž‹r +); + +1091 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE +) { + +1092 + `gl_dbgE +("FažedØg‘ medŸs[%d]!", +»t +); + +1096  +Ãw_fže +[ +GL_FILE_PATH_LEN_MAX +] = {0}; + +1097 * +Çme + = +NULL +; + +1098 + `EINA_LIST_FREE +( +™emli¡ +, +™em +) { + +1099 ià( +™em + =ð +NULL + || i‹m-> +fže_u¾ + == NULL) { + +1100 + `gl_dbgE +("Invalid item!"); + +1104 +Çme + = + `¡¼chr +( +™em +-> +fže_u¾ +, '/'); + +1105 ià( +Çme +) { + +1106 + `¢´štf +( +Ãw_fže +, +GL_FILE_PATH_LEN_MAX +, "%s/%s", + +1107 +Ãw_·th +, +Çme ++1); + +1108 + `gl_dbgE +("Ãw fže: %s", +Ãw_fže +); + +1109 ià(! + `_gl_fs_move +( +d©a +, +™em +-> +fže_u¾ +, +Ãw_fže +)) { + +1110 + `gl_dbgE +("rename failed!"); + +1113 + `_gl_d©a_ty³_ä“_gl™em +((**)& +™em +); + +1116 + } +} + +1118  + $_gl_loÿl_d©a_add_medŸ +(cÚ¡ * +fže_u¾ +, +medŸ_šfo_h + * +šfo +) + +1120 + `GL_CHECK_VAL +( +fže_u¾ +, -1); + +1121  +»t + = -1; + +1122 +medŸ_šfo_h + +™em + = +NULL +; + +1123 + `gl_sdbg +("fže_u¾ i %s", +fže_u¾ +); + +1125 +»t + = + `medŸ_šfo_š£¹_to_db +( +fže_u¾ +, & +™em +); + +1126 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE +) { + +1127 + `gl_dbgE +("FažedØš£¹ medŸØDB[%d]!", +»t +); + +1128 ià( +™em +) + +1129 + `medŸ_šfo_de¡roy +( +™em +); + +1133 ià( +šfo +) { + +1134 * +šfo + = +™em +; + +1136 + `gl_dbgW +("Destroy media_info item!"); + +1137 + `medŸ_šfo_de¡roy +( +™em +); + +1141 + } +} + +1143  + $_gl_loÿl_d©a_g‘_thumb +( +gl_medŸ_s + * +m™em +, ** +thumb +) + +1145 + `GL_CHECK_VAL +( +m™em +, -1); + +1146 + `GL_CHECK_VAL +( +m™em +-> +medŸ_h +, -1); + +1148 ià( + `medŸ_šfo_g‘_thumbǞ_·th +( +m™em +-> +medŸ_h +, +thumb +è!ð +MEDIA_CONTENT_ERROR_NONE +) { + +1149 + `gl_dbgE +("Get mediahumbnail…ath failed!"); + +1154 + } +} + +1156  + $_gl_loÿl_d©a_move_medŸ +( +gl_medŸ_s + * +m™em +, cÚ¡ * +d¡ +) + +1158 + `GL_CHECK_VAL +( +d¡ +, -1); + +1159 + `GL_CHECK_VAL +( +m™em +, -1); + +1160 + `GL_CHECK_VAL +( +m™em +-> +medŸ_h +, -1); + +1162 ià( + `medŸ_šfo_move_to_db +( +m™em +-> +medŸ_h +, +d¡ +è!ð +MEDIA_CONTENT_ERROR_NONE +) { + +1163 + `gl_dbgE +("Move mediahumbnail failed!"); + +1168 + } +} + +1170 +boÞ + + $_gl_loÿl_d©a_is_®bum_exi¡s +(* +·th +) + +1172 + `GL_CHECK_FALSE +( +·th +); + +1173 +gl_®bum_s + * +®bum + = +NULL +; + +1174 + `gl_sdbgW +("·th: %s", +·th +); + +1176 + `_gl_loÿl_d©a_g‘_®bum_by_·th +( +·th +, & +®bum +); + +1177 ià( +®bum +) { + +1178 + `_gl_d©a_ty³_ä“_gl™em +((**)(& +®bum +)); + +1179  +Œue +; + +1181  +çl£ +; + +1182 + } +} + +1184  + $_gl_loÿl_d©a_g‘_·th_by_id +(cÚ¡ * +uuid +, ** +·th +) + +1186 + `GL_CHECK_VAL +( +·th +, 0); + +1187 + `GL_CHECK_VAL +( +uuid +, 0); + +1188 +medŸ_šfo_h + +medŸ_h + = +NULL +; + +1189  +»t + = -1; + +1190 * +_·th + = +NULL +; + +1192 +»t + = + `medŸ_šfo_g‘_medŸ_äom_db +( +uuid +, & +medŸ_h +); + +1193 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE +) { + +1194 + `gl_dbgE +("G‘ medŸ fažed[%d]!", +»t +); + +1195  +GL_LD_FAILED +; + +1197 +»t + = + `medŸ_šfo_g‘_fže_·th +( +medŸ_h +, & +_·th +); + +1198 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE +) { + +1199 + `gl_dbgE +("Get media file…ath failed!"); + +1200  +GL_LD_FAILED +; + +1203 + `medŸ_šfo_de¡roy +( +medŸ_h +); + +1204 +medŸ_h + = +NULL +; + +1206 ià(! +_·th +) { + +1207 + `gl_dbgE +("Invalid file…ath!"); + +1208  +GL_LD_FAILED +; + +1211 * +·th + = +_·th +; + +1213 +GL_LD_FAILED +: + +1215 ià( +medŸ_h +) { + +1216 + `medŸ_šfo_de¡roy +( +medŸ_h +); + +1217 +medŸ_h + = +NULL +; + +1220 + } +} + + @src/features/gl-albums-sel.c + +18  + ~"gl-debug.h +" + +19  + ~"gl-®bums-£l.h +" + +20  + ~"gl-ui-utž.h +" + +21  + ~"gl-utž.h +" + +22  + ~"gl-d©a.h +" + +23  + ~"gl-cڌÞb¬.h +" + +24  + ~"gl-bu‰Ú.h +" + +25  + ~"gl-nocڋÁs.h +" + +26  + ~"gl-nÙify.h +" + +27  + ~"gl-¡ršgs.h +" + +28  + ~"gl-®bums.h +" + +29  + ~"gl-tim–še.h +" + +30  + ~"gl-thumbs.h +" + +31  + ~"gl-tže.h +" + +32  + ~"gl-ed™f›ld.h +" + +34  +_gl_®bums_£l_upd©e_®bum_£l_li¡ +(* +d©a +); + +36  + $__gl_®bums_£l_Œªs_fšished_cb +(* +d©a +, +Evas_Objeù + * +obj +, + +37 * +ev’t_šfo +) + +39 + `GL_CHECK +( +d©a +); + +40 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +41  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +42 + `gl_dbgW +("v›w_mode: %d", +v›w_mode +); + +43 + `evas_objeù_sm¬t_ÿÎback_d– +( +obj +, +GL_TRANS_FINISHED +, + +44 +__gl_®bums_£l_Œªs_fšished_cb +); + +47 ià( +v›w_mode + =ð +GL_VIEW_ALBUMS_SELECT +) { + +48 ià( +ad +-> +gridšfo +. +nocڋÁs + =ð +NULL +) + +49 + `–m_g’grid_þ—r +( +ad +-> +gridšfo +. +v›w +); + +51 + `gl_dbgE +("Wrong view mode!"); + +53 + } +} + +56  +Eša_BoÞ + + $__gl_®bums_£l_pÝ_cb +(* +d©a +, +Elm_Objeù_I‹m + * +™ +) + +58 + `GL_CHECK_FALSE +( +d©a +); + +59 + `gl_dbg +(""); + +60 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +61 + `_gl_d©a_£Ëùed_li¡_fš®ize +( +d©a +); + +70 + `_gl_®bums_£l_pÝ_v›w +( +d©a +); + +71 + `_gl_®bums_£l_upd©e_®bum_£l_li¡ +( +d©a +); + +72 ià( +ad +-> +®bumšfo +. +£Ëùed_uuid +) { + +73 + `ä“ +( +ad +-> +®bumšfo +. +£Ëùed_uuid +); + +74 +ad +-> +®bumšfo +. +£Ëùed_uuid + = +NULL +; + +76  +EINA_TRUE +; + +77 + } +} + +83  + $__gl_®bums_£l_push_v›w +(* +d©a +, +Evas_Objeù + * +·»Á +, + +84 +Evas_Objeù + * +obj +, * +t™Ë +) + +86 + `gl_dbg +("GL_NAVI_ALBUMS_SELECT"); + +87 + `GL_CHECK_VAL +( +obj +, -1); + +88 + `GL_CHECK_VAL +( +·»Á +, -1); + +89 + `GL_CHECK_VAL +( +d©a +, -1); + +90 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +91 +Elm_Objeù_I‹m + * +nf_™ + = +NULL +; + +94 + `evas_objeù_sm¬t_ÿÎback_add +( +·»Á +, +GL_TRANS_FINISHED +, + +95 +__gl_®bums_£l_Œªs_fšished_cb +, +d©a +); + +98 +nf_™ + = + `–m_Çviäame_™em_push +( +·»Á +, +t™Ë +, +NULL +, NULL, +obj +, + +99 +NULL +); + +101 + `–m_Çviäame_™em_pÝ_cb_£t +( +nf_™ +, +__gl_®bums_£l_pÝ_cb +, +d©a +); + +102 +ad +-> +®bumšfo +. +nf_™_£Ëù + = +nf_™ +; + +104 + } +} + +107  + $__gl_®bums_£l_d–‘e_Ïyout_cb +(* +d©a +, +Evas + * +e +, + +108 +Evas_Objeù + * +obj +, * +ei +) + +110 + `gl_dbg +("Delete†ayout ---"); + +111 + `GL_CHECK +( +d©a +); + +112 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +114 + `_gl_®bums_þ—r_cbs +( +ad +-> +®bumšfo +. +£Ëù_v›w +); + +115 + `_gl_ui_d–_süÞËr_pos +( +ad +-> +®bumšfo +. +£Ëù_v›w +); + +117 +ad +-> +®bumšfo +. +b_Ãw_®bum + = +çl£ +; + +118 +ad +-> +®bumšfo +. +£Ëù_v›w + = +NULL +; + +119 +ad +-> +®bumšfo +. +£Ëù_Ïyout + = +NULL +; + +120 +ad +-> +®bumšfo +. +nf_™_£Ëù + = +NULL +; + +121 + `gl_dbg +("Delete†ayout +++"); + +122 + } +} + +124 +Evas_Objeù + * + $_gl_®bums_ü—‹_£l_g’grid +(* +d©a +) + +126 + `GL_CHECK_VAL +( +d©a +, +NULL +); + +127 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +128 +Evas_Objeù + * +Ïyout_šÃr + = + `–m_g’grid_add +( +ad +-> +maššfo +. +wš +); + +130 + `–m_g’grid_®ign_£t +( +Ïyout_šÃr +, 0.5f, 0.0); + +131 + `–m_g’grid_hÜizڏl_£t +( +Ïyout_šÃr +, +EINA_FALSE +); + +132 + `–m_süÞËr_bounû_£t +( +Ïyout_šÃr +, +EINA_FALSE +, +EINA_TRUE +); + +133 + `–m_süÞËr_pÞicy_£t +( +Ïyout_šÃr +, +ELM_SCROLLER_POLICY_OFF +, + +134 +ELM_SCROLLER_POLICY_AUTO +); + +135 + `–m_g’grid_muÉi_£Ëù_£t +( +Ïyout_šÃr +, +EINA_TRUE +); + +136 + `evas_objeù_size_hšt_weight_£t +( +Ïyout_šÃr +, +EVAS_HINT_EXPAND +, + +137 +EVAS_HINT_EXPAND +); + +138  +Ïyout_šÃr +; + +139 + } +} + +141  + $_gl_®bums_ü—‹_¥l™_®bum_£l_v›w +(* +d©a +, +Evas_Objeù + * +Ïyout_šÃr +) + +143 + `GL_CHECK_VAL +( +d©a +, -1); + +144 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +145 ià( + `_gl_¥l™_®bums_ü—‹_™ems +( +ad +, +Ïyout_šÃr +) < 0) { + +146 + `gl_dbgE +("Failedo‡dd Split‡lbum view!"); + +149  +w + = -1, +h + = -1; + +150 + `evas_objeù_geom‘ry_g‘ +( +ad +-> +maššfo +. +wš +, +NULL +, NULL, & +w +, & +h +); + +151 ià( +w + < +h +) { + +152 + `–m_g’grid_™em_size_£t +( +Ïyout_šÃr +, ( +w +/3)-10, (w/3)-10); + +154 + `–m_g’grid_™em_size_£t +( +Ïyout_šÃr +, ( +h +/3)-10, (h/3)-10); + +157 + } +} + +159  + $_gl_®bums_£l_ü—‹_v›w +(* +d©a +) + +161 + `GL_CHECK_VAL +( +d©a +, -1); + +162 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +163 + `GL_CHECK_VAL +( +ad +-> +maššfo +. +Çviäame +, -1); + +164 + `gl_dbg +(""); + +167 +Evas_Objeù + * +Ïyout + = +NULL +; + +168 +Ïyout + = + `_gl_ù¾_add_Ïyout +( +ad +-> +maššfo +. +Çviäame +); + +169 + `GL_CHECK_VAL +( +Ïyout +, -1); + +170 + `evas_objeù_size_hšt_weight_£t +( +Ïyout +, +EVAS_HINT_EXPAND +, + +171 +EVAS_HINT_EXPAND +); + +172 + `evas_objeù_size_hšt_®ign_£t +( +Ïyout +, +EVAS_HINT_FILL +, EVAS_HINT_FILL); + +174 + `evas_objeù_ev’t_ÿÎback_add +( +Ïyout +, +EVAS_CALLBACK_DEL +, + +175 +__gl_®bums_£l_d–‘e_Ïyout_cb +, +d©a +); + +177  +´e_v›w_m + = + `gl_g‘_v›w_mode +( +d©a +); + +179 + `gl_£t_v›w_mode +( +d©a +, +GL_VIEW_ALBUMS_SELECT +); + +180 +Evas_Objeù + * +v›w + = +NULL +; + +182 +v›w + = + `_gl_®bums_ü—‹_£l_g’grid +( +d©a +); + +183 ià( +v›w + =ð +NULL +) { + +184 + `evas_objeù_d– +( +Ïyout +); + +186 + `gl_£t_v›w_mode +( +d©a +, +´e_v›w_m +); + +187 + `gl_dbgW +("None‡lbums!"); + +189 + `_gl_nÙify_ü—‹_nÙišfo +( +GL_STR_ADDED +); + +192 ià( + `_gl_®bums_ü—‹_¥l™_®bum_£l_v›w +( +ad +, +v›w +) == -1) { + +193 + `gl_dbgE +("Failedo‡dd‡lbum split view!"); + +194 + `evas_objeù_d– +( +Ïyout +); + +196 + `gl_£t_v›w_mode +( +d©a +, +´e_v›w_m +); + +198 + `_gl_nÙify_ü—‹_nÙišfo +( +GL_STR_ADDED +); + +202  +Ëngth + = + `eša_li¡_couÁ +( +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ +); + +203 +gl_þu¡” + * +®bum_™em + = +NULL +; + +204 + `gl_dbg +("Album Ëngth: %d", +Ëngth +); + +205 ià( +Ëngth + > 0) { + +206 +®bum_™em + = + `eša_li¡_Áh +( +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ +, 0); + +208 +v›w + = +NULL +; + +209 + `evas_objeù_d– +( +Ïyout +); + +211 + `gl_£t_v›w_mode +( +d©a +, +´e_v›w_m +); + +212 + `gl_dbgW +("None‡lbums!"); + +214 + `_gl_nÙify_ü—‹_nÙišfo +( +GL_STR_ADDED +); + +217 + `__gl_®bums_Ãw_®bum_£l +( +®bum_™em +, +v›w +, (*ïlbum_™em-> +™em +); + +220  +w + = -1, +h + = -1; + +221 + `evas_objeù_geom‘ry_g‘ +( +ad +-> +maššfo +. +wš +, +NULL +, NULL, & +w +, & +h +); + +222 +Edje_Mes§ge_IÁ + * +msg + = (Edje_Mes§ge_IÁ *) + `m®loc +((Edje_Message_Int) + ()); + +223 + `GL_CHECK_VAL +( +msg +, -1); + +224 +msg +-> +v® + = (( +w + < +h +) ? (w / 3) : (h / 3)); + +225 + `edje_objeù_mes§ge_£nd +( + `–m_Ïyout_edje_g‘ +( +Ïyout +), +EDJE_MESSAGE_INT +, 1, +msg +); + +226 + `ä“ +( +msg +); + +227 + `–m_objeù_sigÇl_em™ +( +Ïyout +, "elm,splitview,state,visible", "elm"); + +229 ià( +w + < +h +) { + +230 + `–m_g’grid_™em_size_£t +( +v›w +, ( +w +/3)-10, (w/3)-10); + +232 + `–m_g’grid_™em_size_£t +( +v›w +, ( +h +/3)-10, (h/3)-10); + +234 + `–m_objeù_·¹_cڋÁ_£t +( +Ïyout +, "¥l™.v›w", +v›w +); + +235 +Evas_Objeù + * +ge¡u» + = + `_gl_tže_add_ge¡u» +( +d©a +, +Ïyout +); + +236 ià( +ge¡u» + =ð +NULL +) + +237 + `gl_dbgE +("Failedo create gesture!"); + +239 + `–m_objeù_·¹_cڋÁ_£t +( +Ïyout +, "ge¡u»", +ge¡u» +); + +240 +ad +-> +®bumšfo +. +£Ëù_v›w + = +v›w +; + +241 +ad +-> +®bumšfo +. +£Ëù_Ïyout + = +Ïyout +; + +242 + `__gl_®bums_£l_push_v›w +( +d©a +, +ad +-> +maššfo +. +Çviäame +, +Ïyout +, + +244 + `__gl_®bums_Ãw_®bum_£l +( +®bum_™em +, +v›w +, (*ïlbum_™em-> +™em +); + +246 + `–m_objeù_·¹_cڋÁ_£t +( +Ïyout +, "–m.sw®low.v›w", +ad +-> +gridšfo +. +£Ëù_v›w +); + +247 +ad +-> +®bumšfo +. +£Ëù_v›w + = +v›w +; + +248 +ad +-> +®bumšfo +. +£Ëù_Ïyout + = +Ïyout +; + +249 + `_gl_ed™f›ld_de¡roy_imf +( +d©a +); + +250 + `gl_dbg +("Done"); + +252 + } +} + +254  + $_gl_®bums_£l_upd©e_v›w +(* +d©a +) + +256 + `GL_CHECK_VAL +( +d©a +, -1); + +257 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +259 + `_gl_®bums_ü—‹_™ems +( +d©a +, +ad +-> +®bumšfo +. +£Ëù_v›w +); + +261 + } +} + +264  + $_gl_®bums_£l_pÝ_v›w +(* +d©a +) + +266 + `GL_CHECK_VAL +( +d©a +, -1); + +267 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +270 ià( + `_gl_ù¾_g‘_b_mode +( +ad +è=ð +GL_CTRL_TAB_ALBUMS +) { + +271 + `–m_Çviäame_™em_pÝ_to +( +ad +-> +ù¾šfo +. +nf_™ +); + +272 + `_gl_®bums_þo£_®bum +( +ad +); + +273 } ià( + `_gl_ù¾_g‘_b_mode +( +ad +è=ð +GL_CTRL_TAB_TIMELINE +) { + +274 + `–m_Çviäame_™em_pÝ_to +( +ad +-> +ù¾šfo +. +nf_™ +); + +275 + `gl_£t_v›w_mode +( +d©a +, +GL_VIEW_TIMELINE +); + +276 + `_gl_tim–še_upd©e_v›w +( +ad +); + +279 + } +} + +281  + $_gl_®bums_£l_rÙ©e_v›w +(* +d©a +) + +283 + `GL_CHECK_VAL +( +d©a +, -1); + +285 + } +} + +287  + $_gl_®bums_£l_upd©e_®bum_£l_li¡ +(* +d©a +) + +289 + `GL_CHECK +( +d©a +); + +290 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +291 + `GL_CHECK +( +ad +-> +®bumšfo +. +–i¡ +); + +292 + `GL_CHECK +( +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ +); + +293 +gl_þu¡” + * +®bum_™em + = +NULL +; + +294 +gl_™em + * +™em + = +NULL +; + +295  +Ëngth +, +i +; + +296 +Eša_Li¡ + * +þi¡ + = +ad +-> +®bumšfo +. +–i¡ +->clist; + +297 +Ëngth + = + `eša_li¡_couÁ +( +þi¡ +); + +299  +i + = 0; i < +Ëngth +; i++) { + +300 +®bum_™em + = + `eša_li¡_Áh +( +þi¡ +, +i +); + +301 ià( +®bum_™em + &&‡lbum_™em-> +–i¡ +) { + +302 + `EINA_LIST_FREE +( +®bum_™em +-> +–i¡ +, +™em +) { + +303 ià( +™em +) { + +304 +™em +-> +checked + = +çl£ +; + +309 + } +} + + @src/features/gl-albums.c + +18  + ~"gl-debug.h +" + +19  + ~"gl-®bums.h +" + +20  + ~"gl-thumbs.h +" + +21  + ~"gl-maš.h +" + +22  + ~"gl-cڌÞb¬.h +" + +23  + ~"gl-ui-utž.h +" + +24  + ~"gl-utž.h +" + +25  + ~"gl-bu‰Ú.h +" + +26  + ~"gl-d©a.h +" + +27  + ~"gl-pÝup.h +" + +28  + ~"gl-ùxpÝup.h +" + +29  + ~"gl-´og»ssb¬.h +" + +30  + ~"gl-pšchzoom.h +" + +31  + ~"gl-tže.h +" + +32  + ~"gl-ext-exec.h +" + +33  + ~"gl-thumbs-£l.h +" + +34  + ~"gl-thumbs-ed™.h +" + +35  + ~"gl-®bums-£l.h +" + +36  + ~"gl-®bums-ed™.h +" + +37  + ~"gl-®bums-»Çme.h +" + +38  + ~"gl-®bums-Ãw.h +" + +39  + ~"gl-¡ršgs.h +" + +40  + ~"gl-nocڋÁs.h +" + +41  + ~"gl-nÙify.h +" + +42  + ~"gl-ext-ug-lßd.h +" + +43 #ifdeà +_USE_ROTATE_BG + + +44  + ~"gl-rÙ©e-bg.h +" + +45  + ~"gl-exif.h +" + +47  + ~"gl-ge¡u».h +" + +48  + ~"gl-fže-utž.h +" + +50  +__gl_®bums_ü—‹_thumb +( +gl_™em + * +g™em +, +gl_þu¡” + * +®bum +); + +51  +Eša_BoÞ + +__gl_®bums_pÝ_Ý +(* +d©a +); + +52 #ifdeà +SUPPORT_SLIDESHOW + + +53  +__gl_®bums_¦ideshow +(* +d©a +, cÚ¡ * +Ïb– +); + +56  + $__gl_®bums_»®ized +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +58 + `GL_CHECK +( +d©a +); + +60 + `_gl_maš_add_»g_idËr +( +d©a +); + +62 + `GL_CHECK +( +ei +); + +63 +Elm_Objeù_I‹m + * +™ + = (Elm_Objeù_I‹m *) +ei +; + +64 +gl_þu¡” + * +®bum + = + `–m_objeù_™em_d©a_g‘ +( +™ +); + +65 + `GL_CHECK +( +®bum +); + +66 + `GL_CHECK +( +®bum +-> +þu¡” +); + +67 + `GL_CHECK +( +®bum +-> +cov” +); + +68 + `GL_CHECK +( +®bum +-> +cov” +-> +™em +); + +70 + `gl_dbg +("realized"); + +71 ià(! + `GL_FILE_EXISTS +( +®bum +-> +cov” +-> +™em +-> +thumb_u¾ +) && + +72 + `GL_FILE_EXISTS +( +®bum +-> +cov” +-> +™em +-> +fže_u¾ +) && + +73 ( +®bum +-> +þu¡” +-> +ty³ + =ð +GL_STORE_T_PHONE + || + +74 +®bum +-> +þu¡” +-> +ty³ + =ð +GL_STORE_T_MMC + || + +75 +®bum +-> +þu¡” +-> +ty³ + =ð +GL_STORE_T_ALL +)) + +76 + `__gl_®bums_ü—‹_thumb +( +®bum +-> +cov” +,‡lbum); + +77 + } +} + +79  + $__gl_®bums_uėlized +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +81 + `gl_dbg +("unrealized"); + +82 + `GL_CHECK +( +ei +); + +83 +Elm_Objeù_I‹m + * +™ + = (Elm_Objeù_I‹m *) +ei +; + +84 +gl_þu¡” + * +®bum + = + `–m_objeù_™em_d©a_g‘ +( +™ +); + +85 + `GL_CHECK +( +®bum +); + +86 + `GL_CHECK +( +®bum +-> +þu¡” +); + +87 + `GL_CHECK +( +®bum +-> +cov” +); + +88 + `GL_CHECK +( +®bum +-> +cov” +-> +™em +); + +91 ià( +®bum +-> +þu¡” +-> +ty³ + =ð +GL_STORE_T_PHONE + || + +92 +®bum +-> +þu¡” +-> +ty³ + =ð +GL_STORE_T_MMC + || + +93 +®bum +-> +þu¡” +-> +ty³ + =ð +GL_STORE_T_ALL +) { + +94 ià( +®bum +-> +cov” +-> +™em +-> +b_ü—‹_thumb +) { + +95 + `_gl_d©a_ÿnûl_thumb +( +®bum +-> +cov” +-> +™em +); + +98 + } +} + +100  + $__gl_¥l™_®bums_»®ized +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +102 + `gl_dbg +("split view„ealized"); + +103 + `GL_CHECK +( +d©a +); + +104 + `GL_CHECK +( +ei +); + +105 +Elm_Objeù_I‹m + * +™ + = (Elm_Objeù_I‹m *) +ei +; + +106 +gl_þu¡” + * +®bum + = + `–m_objeù_™em_d©a_g‘ +( +™ +); + +107 + `GL_CHECK +( +®bum +); + +108 + `GL_CHECK +( +®bum +-> +þu¡” +); + +109 + `GL_CHECK +( +®bum +-> +cov” +); + +110 + `GL_CHECK +( +®bum +-> +cov” +-> +™em +); + +111 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +®bum +->ad; + +113 ià( +ad +-> +®bumšfo +. +grid_£l_™em +) { + +114 ià( +ad +-> +®bumšfo +. +£Ëùed_uuid +) { + +115 + `gl_dbg +("Cu¼’ˆ™em UUID : % ", +®bum +-> +þu¡” +-> +uuid +); + +116 + `gl_dbg +("®bum v›w s–eùed i‹m UUID : % ", +ad +-> +®bumšfo +. +£Ëùed_uuid +); + +117 ià(! + `¡rcmp +( +®bum +-> +þu¡” +-> +uuid +, +ad +-> +®bumšfo +. +£Ëùed_uuid +)) { + +118 +ad +-> +®bumšfo +. +grid_£l_™em + = +ei +; + +119 + `–m_objeù_™em_sigÇl_em™ +(( +Elm_Objeù_I‹m + *) +ei +, "elm,state,focused", "elm"); + +121 + `–m_objeù_™em_sigÇl_em™ +(( +Elm_Objeù_I‹m + *) +ei +, "elm,state,unfocused", "elm"); + +125 + `gl_dbg +("realized"); + +126 + } +} + +129  + $__gl_®bums_Ïng_chªged +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +131 + `GL_CHECK +( +d©a +); + +132 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +133 + `gl_®bums_upd©e_™ems +( +ad +); + +134 + } +} + +137  + $__gl_®bums_Ãw_®bum_£l +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +139 + `GL_CHECK +( +d©a +); + +140 +gl_þu¡” + * +®bum_™em + = (gl_þu¡” *) +d©a +; + +141 + `GL_CHECK +( +®bum_™em +-> +þu¡” +); + +142 + `GL_CHECK +( +®bum_™em +-> +ad +); + +143 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +®bum_™em +->ad; + +144  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +145 + `–m_g’grid_™em_£Ëùed_£t +( +ei +, +EINA_FALSE +); + +146 + `_gl_d©a_£Ëùed_li¡_fš®ize +( +ad +); + +148 + `gl_dbg +("v›w mode: %d.", +v›w_mode +); + +149 ià( +v›w_mode + !ð +GL_VIEW_ALBUMS_EDIT +) { + +150 ià( +®bum_™em +-> +þu¡” +-> +couÁ + == 0) { + +151 + `gl_dbgW +("Empty‡lbum,„eturn!"); + +155 + `_gl_ui_§ve_süÞËr_pos +( +obj +); + +156 + `gl_®bums_ݒ_®bum +( +®bum_™em +); + +157 + `–m_objeù_™em_sigÇl_em™ +(( +Elm_Objeù_I‹m + *) +ei +, "elm,state,focused", "elm"); + +158 ià( +ad +-> +®bumšfo +. +grid_£l_™em +) { + +159 +gl_þu¡” + * +®bum_d©a + = +NULL +; + +160 +®bum_d©a + = + `–m_objeù_™em_d©a_g‘ +( +ad +-> +®bumšfo +. +grid_£l_™em +); + +161 ià( +®bum_d©a +) { + +162 ià(0 =ð + `¡rcmp +( +®bum_™em +-> +þu¡” +-> +uuid +, +®bum_d©a +->cluster->uuid)) { + +163 + `gl_dbgW +("Item matched. No‚eedo„emove focus"); + +165 + `–m_objeù_™em_sigÇl_em™ +( +ad +-> +®bumšfo +. +grid_£l_™em +, "elm,state,unfocused", "elm"); + +169 +ad +-> +®bumšfo +. +grid_£l_™em + = +ei +; + +170 ià( +ad +-> +®bumšfo +. +£Ëùed_uuid +) { + +171 + `ä“ +( +ad +-> +®bumšfo +. +£Ëùed_uuid +); + +172 +ad +-> +®bumšfo +. +£Ëùed_uuid + = +NULL +; + +174 +ad +-> +®bumšfo +. +£Ëùed_uuid + = + `¡rdup +( +®bum_™em +-> +þu¡” +-> +uuid +); + +176 + } +} + +179  + $__gl_®bums_£l_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +181 + `GL_CHECK +( +d©a +); + +182 +gl_þu¡” + * +®bum_™em + = (gl_þu¡” *) +d©a +; + +183 + `GL_CHECK +( +®bum_™em +-> +þu¡” +); + +184 + `GL_CHECK +( +®bum_™em +-> +ad +); + +185 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +®bum_™em +->ad; + +186  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +187 + `–m_g’grid_™em_£Ëùed_£t +( +ei +, +EINA_FALSE +); + +189 + `gl_dbg +("v›w mode: %d.", +v›w_mode +); + +190 ià( +v›w_mode + !ð +GL_VIEW_ALBUMS_EDIT + && v›w_mod!ð +GL_VIEW_ALBUM_REORDER +) { + +191 ià( +®bum_™em +-> +þu¡” +-> +couÁ + == 0) { + +192 + `gl_dbgW +("Empty‡lbum,„eturn!"); + +196 + `_gl_ui_§ve_süÞËr_pos +( +obj +); + +197 + `gl_®bums_ݒ_®bum +( +®bum_™em +); + +198 + `–m_objeù_™em_sigÇl_em™ +(( +Elm_Objeù_I‹m + *) +ei +, "elm,state,focused", "elm"); + +199 ià( +ad +-> +®bumšfo +. +grid_£l_™em +) { + +200 +gl_þu¡” + * +®bum_d©a + = +NULL +; + +201 +®bum_d©a + = + `–m_objeù_™em_d©a_g‘ +( +ad +-> +®bumšfo +. +grid_£l_™em +); + +202 ià( +®bum_d©a +) { + +203 ià( + `¡rcmp +( +®bum_™em +-> +þu¡” +-> +uuid +, +®bum_d©a +->cluster->uuid)) { + +204 + `–m_objeù_™em_sigÇl_em™ +( +ad +-> +®bumšfo +. +grid_£l_™em +, "elm,state,unfocused", "elm"); + +208 +ad +-> +®bumšfo +. +grid_£l_™em + = +ei +; + +209 ià( +ad +-> +®bumšfo +. +£Ëùed_uuid +) { + +210 + `ä“ +( +ad +-> +®bumšfo +. +£Ëùed_uuid +); + +211 +ad +-> +®bumšfo +. +£Ëùed_uuid + = +NULL +; + +213 +ad +-> +®bumšfo +. +£Ëùed_uuid + = + `¡rdup +( +®bum_™em +-> +þu¡” +-> +uuid +); + +215 + } +} + +217 * + $__gl_®bums_g‘_‹xt +(* +d©a +, +Evas_Objeù + * +obj +, cÚ¡ * +·¹ +) + +219 +GL_PROFILE_IN +; + +220 + `GL_CHECK_NULL +( +·¹ +); + +221 + `GL_CHECK_NULL +( + `¡¾’ +( +·¹ +)); + +222 + `GL_CHECK_NULL +( +d©a +); + +223 +gl_þu¡” + * +®bum_™em + = (gl_þu¡” *) +d©a +; + +224 + `GL_CHECK_NULL +( +®bum_™em +-> +þu¡” +); + +225 + `GL_CHECK_NULL +( +®bum_™em +-> +þu¡” +-> +di¥Ïy_Çme +); + +226 + `GL_CHECK_NULL +( +®bum_™em +-> +þu¡” +-> +uuid +); + +227 + `GL_CHECK_NULL +( +®bum_™em +-> +ad +); + +228  +buf +[ +GL_ALBUM_NAME_LEN_MAX +] = { 0, }; + +230 ià(! + `g_¡rcmp0 +( +·¹ +, "elm.text.name")) { + +231 + `GL_PROFILE_F_OUT +("__gl_albums_get_text(name)"); + +232 + `GL_PROFILE_F_OUT +("__gl_albums_get_text(count)"); + +233 } ià(! + `g_¡rcmp0 +( +·¹ +, "elm.text.date")) { + +234 ià( +®bum_™em +-> +cov” +) { + +235 + `_gl_d©a_utž_ä“_g™em +( +®bum_™em +-> +cov” +); + +236 +®bum_™em +-> +cov” + = +NULL +; + +238 +gl_™em + * +g™em + = +NULL +; + +239 + `_gl_d©a_g‘_®bum_cov” +( +®bum_™em +, & +g™em +, + +240 +MEDIA_CONTENT_ORDER_DESC +); + +241 ià( +g™em + =ð +NULL + || g™em-> +™em + == NULL) { + +242 + `gl_dbg +("Empty‡lbum..."); + +243 + `_gl_d©a_utž_ä“_g™em +( +g™em +); + +244 +®bum_™em +-> +cov”_thumbs_út + = 0; + +245  +NULL +; + +248 +®bum_™em +-> +cov”_thumbs_út + = +GL_ALBUM_COVER_THUMB_NUM +; + +249 +®bum_™em +-> +cov” + = +g™em +; + +250 + `GL_PROFILE_F_OUT +("__gl_albums_get_text(date)"); + +251 } ià(! + `g_¡rcmp0 +( +·¹ +, "elm.text.badge")) { + +252 ià( + `gl_g‘_v›w_mode +( +®bum_™em +-> +ad +è=ð +GL_VIEW_THUMBS_EDIT + || + +253 + `gl_g‘_v›w_mode +( +®bum_™em +-> +ad +è=ð +GL_VIEW_THUMBS_SELECT +) { + +254 ià( +®bum_™em +-> +–i¡ +) { + +255  +£l_út + = + `eša_li¡_couÁ +( +®bum_™em +-> +–i¡ +); + +256 ià( +£l_út + > 0) { + +257 + `–m_objeù_™em_sigÇl_em™ +( +®bum_™em +-> +™em +, + +260 + `¢´štf +( +buf +, (buf), "%d", +£l_út +); + +262 + `–m_objeù_™em_sigÇl_em™ +( +®bum_™em +-> +™em +, + +267 + `–m_objeù_™em_sigÇl_em™ +( +®bum_™em +-> +™em +, + +272 + `–m_objeù_™em_sigÇl_em™ +( +®bum_™em +-> +™em +, + +277  + `¡rdup +( +buf +); + +278 + } +} + +281  + $__gl_®bums_ü—‹_thumb_cb +( +medŸ_cڋÁ_”rÜ_e + +”rÜ +, + +282 cÚ¡ * +·th +, * +u£r_d©a +) + +284 + `GL_CHECK +( +u£r_d©a +); + +285 +gl_®bum_d©a_s + * +®bum_d©a + = (gl_®bum_d©a_ *) +u£r_d©a +; + +286 + `GL_CHECK +( +®bum_d©a +-> +ad +); + +287 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +®bum_d©a +->ad; + +288 +gl_þu¡” + * +®bum + = +®bum_d©a +->album; + +289 + `GL_FREE +( +®bum_d©a +); + +290 +®bum +-> +®bum_d©a + = +NULL +; + +292 ià( + `gl_g‘_v›w_mode +( +ad +è!ð +GL_VIEW_ALBUMS + && + +293 + `gl_g‘_v›w_mode +( +ad +è!ð +GL_VIEW_ALBUMS_EDIT + && + +294 + `gl_g‘_v›w_mode +( +ad +è!ð +GL_VIEW_ALBUMS_SELECT +) + +297 ià( +”rÜ + =ð +MEDIA_CONTENT_ERROR_NONE + && + `GL_FILE_EXISTS +( +·th +) && + +298 + `g_¡rcmp0 +( +·th +, +GL_ICON_DB_DEFAULT_THUMB +)) { + +299 + `GL_CHECK +( +®bum +); + +300 + `GL_CHECK +( +®bum +-> +™em +); + +301 + `–m_g’grid_™em_upd©e +( +®bum +-> +™em +); + +303 + `gl_sdbgE +("[%d]Inv®id…©h[%s]!", +”rÜ +, +·th +); + +305 + } +} + +308  + $__gl_®bums_ü—‹_thumb +( +gl_™em + * +g™em +, +gl_þu¡” + * +®bum +) + +310 + `GL_CHECK_VAL +( +g™em +, -1); + +311 + `GL_CHECK_VAL +( +g™em +-> +™em +, -1); + +312 + `GL_CHECK_VAL +( +g™em +-> +™em +-> +fže_u¾ +, -1); + +313 + `GL_CHECK_VAL +( +®bum +, -1); + +315 ià( + `GL_FILE_EXISTS +( +g™em +-> +™em +-> +fže_u¾ +)) { + +316 +gl_®bum_d©a_s + * +®bum_d©a + = +NULL +; + +317 +®bum_d©a + = ( +gl_®bum_d©a_s + *) + `ÿÎoc +(1, (gl_album_data_s)); + +318 + `GL_CHECK_VAL +( +®bum_d©a +, -1); + +319 +®bum_d©a +-> +ad + = +®bum +->ad; + +320 +®bum_d©a +-> +®bum + =‡lbum; + +321 +®bum +-> +®bum_d©a + =‡lbum_data; + +322 + `_gl_d©a_ü—‹_thumb +( +g™em +-> +™em +, +__gl_®bums_ü—‹_thumb_cb +, + +323 +®bum_d©a +); + +327 + } +} + +329  + $__gl_®bums_£t_bg_fže +( +Evas_Objeù + * +bg +, * +d©a +) + +331 + `GL_CHECK_VAL +( +d©a +, -1); + +332 +gl_™em + * +g™ + = (gl_™em *) +d©a +; + +333 + `GL_CHECK_VAL +( +g™ +-> +®bum +, -1); + +335 * +bg_·th + = +GL_ICON_NO_THUMBNAIL +; + +336 +gl_icÚ_ty³_e + +»t_v® + = -1; + +338 ià( +g™ + =ð +NULL + || g™-> +™em + == NULL) { + +339 + `gl_dbgE +("Inv®id i‹m :%p", +g™ +); + +340  +GL_ALBUMS_FAILED +; + +343 +»t_v® + = 0; + +344 +bg_·th + = +GL_ICON_NO_THUMBNAIL +; + +345 ià( + `GL_FILE_EXISTS +( +g™ +-> +™em +-> +thumb_u¾ +)) + +346 +bg_·th + = +g™ +-> +™em +-> +thumb_u¾ +; + +348 +»t_v® + = -1; + +350 +GL_ALBUMS_FAILED +: + +352 #ifdeà +_USE_ROTATE_BG + + +353 + `_gl_rÙ©e_bg_£t_image_fže +( +bg +, +bg_·th +); + +355 + `–m_bg_fže_£t +( +bg +, +bg_·th +, +NULL +); + +358  +»t_v® +; + +359 + } +} + +361  +Evas_Objeù + * + $__gl_®bums_g‘_ty³_icÚ +( +Evas_Objeù + * +obj +, +gl_þu¡” + * +®bum +) + +363 + `GL_CHECK_NULL +( +®bum +); + +364 + `GL_CHECK_NULL +( +®bum +-> +þu¡” +); + +365 + `GL_CHECK_NULL +( +obj +); + +366 +Evas_Objeù + * +_obj + = +NULL +; + +368 ià( + `_gl_d©a_is_ÿm”a_®bum +( +®bum +-> +þu¡” +)) + +369 +_obj + = + `_gl_tže_show_·¹_ty³_icÚ +( +obj +, + +370 +GL_TILE_TYPE_CAMERA +); + +371 ià( + `_gl_d©a_is_deçuÉ_®bum +( +GL_STR_ALBUM_DOWNLOADS +, +®bum +-> +þu¡” +)) + +372 +_obj + = + `_gl_tže_show_·¹_ty³_icÚ +( +obj +, + +373 +GL_TILE_TYPE_DOWNLOAD +); + +375 +_obj + = + `_gl_tže_show_·¹_ty³_icÚ +( +obj +, + +376 +GL_TILE_TYPE_FOLDER +); + +377  +_obj +; + +378 + } +} + +381 + $_gl_couÁ_£t +( +Evas_Objeù + * +Ïyout +, cÚ¡ * +‹xt +) + +383 +Evas_Objeù + * +edje +; + +384 +Edje_Mes§ge_Flßt + * +msg +; + +385 ià( +‹xt +) { + +386 + `–m_Ïyout_‹xt_£t +( +Ïyout +, "–m.sub.‹xt", +‹xt +); + +389 + `–m_Ïyout_‹xt_£t +( +Ïyout +, "elm.sub.text", ""); + +391 +edje + = + `–m_Ïyout_edje_g‘ +( +Ïyout +); + +392 +msg + = + `ÿÎoc +(1, ( +Edje_Mes§ge_Flßt +)); + +393 ià( +msg +) { + +394 +msg +-> +v® + = + `–m_cÚfig_sÿË_g‘ +(); + +395 + `edje_objeù_mes§ge_£nd +( +edje +, +EDJE_MESSAGE_FLOAT +, 0, +msg +); + +397 + } +} + +399  +Evas_Objeù + * + $__gl_®bums_g‘_cڋÁ +(* +d©a +, +Evas_Objeù + * +obj +, + +400 cÚ¡ * +·¹ +) + +402 + `GL_CHECK_NULL +( +·¹ +); + +403 + `GL_CHECK_NULL +( + `¡¾’ +( +·¹ +)); + +404 + `GL_CHECK_NULL +( +d©a +); + +405 +gl_þu¡” + * +®bum_™em + = (gl_þu¡” *) +d©a +; + +406 + `GL_CHECK_NULL +( +®bum_™em +-> +þu¡” +); + +407 + `GL_CHECK_NULL +( +®bum_™em +-> +ad +); + +408 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +®bum_™em +->ad; + +409 + `GL_CHECK_NULL +( +®bum_™em +-> +þu¡” +-> +uuid +); + +410  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +412 ià( +v›w_mode + !ð +GL_VIEW_ALBUMS + && + +413 +v›w_mode + !ð +GL_VIEW_ALBUMS_EDIT + && + +414 +v›w_mode + !ð +GL_VIEW_ALBUMS_SELECT + && + +415 +v›w_mode + !ð +GL_VIEW_THUMBS + && + +416 +v›w_mode + !ð +GL_VIEW_THUMBS_EDIT + && + +417 +v›w_mode + !ð +GL_VIEW_THUMBS_SELECT + && + +418 +v›w_mode + !ð +GL_VIEW_ALBUM_REORDER +) { + +419 + `gl_dbg +("Album i em±y, v›w modi : % d", +v›w_mode +); + +420  +NULL +; + +422 +Evas_Objeù + * +_obj + = +NULL +; + +425 ià(! + `g_¡rcmp0 +( +·¹ +, "elm.text.name.swallow")) { + +426  +út +[ +GL_ALBUM_NAME_LEN_MAX +] = { 0, }; + +427 +Evas_Objeù + * +Ïyout + = + `–m_Ïyout_add +( +obj +); + +428 + `–m_Ïyout_fže_£t +( +Ïyout +, +GL_EDJ_FILE +, "ceter_algined_text_layout"); + +429 * +i18n_Çme + = + `_gl_g‘_i18n_®bum_Çme +( +®bum_™em +-> +þu¡” +); + +430 + `–m_Ïyout_‹xt_£t +( +Ïyout +, "–m.‹xt", + `–m_’Œy_utf8_to_m¬kup +( + `_gl_¡r +( +i18n_Çme +))); + +431 + `¢´štf +( +út +, (út), "(%d)", ()( +®bum_™em +-> +þu¡” +-> +couÁ +)); + +432 + `_gl_couÁ_£t +( +Ïyout +, +út +); + +434  +Ïyout +; + +435 } ià(! + `g_¡rcmp0 +( +·¹ +, +GL_TILE_ICON +)) { + +436 ià( +®bum_™em +-> +cov”_thumbs_út + <= 0) + +437 + `gl_dbg +("Empty‡lbum"); + +439 +_obj + = + `_gl_tže_show_·¹_icÚ +( +obj +, +·¹ +, + +440 +__gl_®bums_£t_bg_fže +, + +441 (*)( +®bum_™em +-> +cov” +)); + +442  +fœ¡_út + = 2; + +443  +Ëv– + = () + `evas_objeù_d©a_g‘ +( +ad +-> +®bumšfo +. +v›w +, + +444 +GL_GESTURE_KEY_PINCH_LEVEL +); + +445 ià( +ad +-> +maššfo +. +rÙ©e_mode + =ð +APP_DEVICE_ORIENTATION_90 + || + +446 +ad +-> +maššfo +. +rÙ©e_mode + =ð +APP_DEVICE_ORIENTATION_270 + || + +447 +Ëv– + =ð +GL_ZOOM_NONE +) + +448 +fœ¡_út + = 3; + +449 ià( +®bum_™em +-> +šdex + < +fœ¡_út + &&‡lbum_™em-> +™em +) + +450 + `–m_objeù_™em_sigÇl_em™ +( +®bum_™em +-> +™em +, + +453 } ià(! + `g_¡rcmp0 +( +·¹ +, +GL_TILE_TYPE_ICON +)) { + +454 +_obj + = + `__gl_®bums_g‘_ty³_icÚ +( +obj +, +®bum_™em +); + +455 } ià(! + `g_¡rcmp0 +( +·¹ +, +GL_TILE_SD_ICON +)) { + +456 ià( +GL_STORE_T_MMC + =ð +®bum_™em +-> +þu¡” +-> +ty³ +) { + +457 +_obj + = + `_gl_tže_show_·¹_ty³_icÚ +( +obj +, + +458 +GL_TILE_TYPE_MMC_STORAGE +); + +460 + `–m_objeù_™em_sigÇl_em™ +( +®bum_™em +-> +™em +, + +464 } ià( +v›w_mode + =ð +GL_VIEW_ALBUMS_EDIT +) { + +465 +_obj + = + `_gl_®bums_ed™_add_cڋÁ +( +d©a +, +obj +, +·¹ +); + +467  +_obj +; + +468 + } +} + +470  +Evas_Objeù + * + $__gl_®bums_g‘_cڋÁ_¥l™_v›w +(* +d©a +, +Evas_Objeù + * +obj +, + +471 cÚ¡ * +·¹ +) + +473 + `GL_CHECK_NULL +( +·¹ +); + +474 + `GL_CHECK_NULL +( + `¡¾’ +( +·¹ +)); + +475 + `GL_CHECK_NULL +( +d©a +); + +476 +gl_þu¡” + * +®bum_™em + = (gl_þu¡” *) +d©a +; + +477 + `GL_CHECK_NULL +( +®bum_™em +-> +þu¡” +); + +478 + `GL_CHECK_NULL +( +®bum_™em +-> +ad +); + +479 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +®bum_™em +->ad; + +480 + `GL_CHECK_NULL +( +®bum_™em +-> +þu¡” +-> +uuid +); + +481  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +483 ià( +v›w_mode + !ð +GL_VIEW_ALBUMS + && + +484 +v›w_mode + !ð +GL_VIEW_ALBUMS_EDIT + && + +485 +v›w_mode + !ð +GL_VIEW_ALBUMS_SELECT + && + +486 +v›w_mode + !ð +GL_VIEW_THUMBS + && + +487 +v›w_mode + !ð +GL_VIEW_THUMBS_EDIT + && + +488 +v›w_mode + !ð +GL_VIEW_THUMBS_SELECT + && + +489 +v›w_mode + !ð +GL_VIEW_ALBUM_REORDER +) { + +490 + `gl_dbg +("Album i em±y, v›w modi : % d", +v›w_mode +); + +491  +NULL +; + +493 +Evas_Objeù + * +_obj + = +NULL +; + +496 ià(! + `g_¡rcmp0 +( +·¹ +, "elm.text.name.swallow")) { + +497  +út +[ +GL_ALBUM_NAME_LEN_MAX +] = { 0, }; + +498 +Evas_Objeù + * +Ïyout + = + `–m_Ïyout_add +( +obj +); + +499 + `–m_Ïyout_fže_£t +( +Ïyout +, +GL_EDJ_FILE +, "ceter_algined_text_layout_split_view"); + +500 * +i18n_Çme + = + `_gl_g‘_i18n_®bum_Çme +( +®bum_™em +-> +þu¡” +); + +501 + `–m_Ïyout_‹xt_£t +( +Ïyout +, "–m.‹xt", + `_gl_¡r +( +i18n_Çme +)); + +502 + `¢´štf +( +út +, (út), "(%d)", ()( +®bum_™em +-> +þu¡” +-> +couÁ +)); + +503 + `_gl_couÁ_£t +( +Ïyout +, +út +); + +505  +Ïyout +; + +506 } ià(! + `g_¡rcmp0 +( +·¹ +, +GL_TILE_ICON +)) { + +507 ià( +®bum_™em +-> +cov”_thumbs_út + <= 0) + +508 + `gl_dbg +("Empty‡lbum"); + +510 +_obj + = + `_gl_tže_show_·¹_icÚ +( +obj +, +·¹ +, + +511 +__gl_®bums_£t_bg_fže +, + +512 (*)( +®bum_™em +-> +cov” +)); + +513  +fœ¡_út + = 2; + +514  +Ëv– + = () + `evas_objeù_d©a_g‘ +( +ad +-> +®bumšfo +. +v›w +, + +515 +GL_GESTURE_KEY_PINCH_LEVEL +); + +516 ià( +ad +-> +maššfo +. +rÙ©e_mode + =ð +APP_DEVICE_ORIENTATION_90 + || + +517 +ad +-> +maššfo +. +rÙ©e_mode + =ð +APP_DEVICE_ORIENTATION_270 + || + +518 +Ëv– + =ð +GL_ZOOM_NONE +) + +519 +fœ¡_út + = 3; + +520 ià( +®bum_™em +-> +šdex + < +fœ¡_út + &&‡lbum_™em-> +™em +) + +521 + `–m_objeù_™em_sigÇl_em™ +( +®bum_™em +-> +™em +, + +524 } ià(! + `g_¡rcmp0 +( +·¹ +, +GL_TILE_TYPE_ICON +)) { + +525 +_obj + = + `__gl_®bums_g‘_ty³_icÚ +( +obj +, +®bum_™em +); + +526 } ià(! + `g_¡rcmp0 +( +·¹ +, +GL_TILE_SD_ICON +)) { + +527 ià( +GL_STORE_T_MMC + =ð +®bum_™em +-> +þu¡” +-> +ty³ +) { + +528 +_obj + = + `_gl_tže_show_·¹_ty³_icÚ +( +obj +, + +529 +GL_TILE_TYPE_MMC_STORAGE +); + +531 + `–m_objeù_™em_sigÇl_em™ +( +®bum_™em +-> +™em +, + +535 } ià( +v›w_mode + =ð +GL_VIEW_ALBUMS_EDIT +) { + +536 +_obj + = + `_gl_®bums_ed™_add_cڋÁ +( +d©a +, +obj +, +·¹ +); + +538  +_obj +; + +539 + } +} + +542  +Eša_BoÞ + + $__gl_®bums_þo£_®bum_cb +(* +d©a +, +Elm_Objeù_I‹m + * +™ +) + +544 + `GL_CHECK_FALSE +( +d©a +); + +545 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +546 + `gl_dbg +(""); + +547 + `_gl_®bums_þo£_®bum +( +ad +); + +548 + `_gl_®bums_check_bŠs +( +d©a +); + +549  +EINA_TRUE +; + +550 + } +} + +552  + $__gl_®bums_lÚg´es£d_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +554 + `gl_dbg +("unrealized"); + +555 + `GL_CHECK +( +ei +); + +556 + `GL_CHECK +( +d©a +); + +558 ià( +GL_VIEW_ALBUMS + !ð + `gl_g‘_v›w_mode +( +d©a +)) + +560 +Elm_Objeù_I‹m + * +™ + = (Elm_Objeù_I‹m *) +ei +; + +561 +gl_þu¡” + * +®bum + = + `–m_objeù_™em_d©a_g‘ +( +™ +); + +562 + `GL_CHECK +( +®bum +); + +563 + `_gl_®bums_£t_cu¼’t +( +d©a +, +®bum +); + +565 + `_gl_d©a_fš®ize_®bums_£Ëùed_li¡ +( +d©a +); + +566 + `_gl_d©a_®bums_£Ëùed_li¡_­³nd +( +d©a +, +®bum +); + +568 + } +} + +571  + $__gl_®bums_d–‘e_Ïyout_cb +(* +d©a +, +Evas + * +e +, +Evas_Objeù + * +obj +, + +572 * +ei +) + +574 + `gl_dbg +("Delete†ayout ---"); + +575 + `GL_CHECK +( +d©a +); + +576 + `gl_®bums_ä“_d©a +( +d©a +); + +577 + `_gl_d©a_þ—r_þu¡”_li¡ +( +d©a +, +Œue +); + +578 + `gl_dbg +("Delete†ayout +++"); + +579 + } +} + +581  + $__gl_®bums_Ãw®bum_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +583 + `GL_CHECK +( +d©a +); + +584 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +585 + `_gl_ùxpÝup_d– +( +d©a +); + +586 +ad +-> +®bumšfo +. +b_Ãw_®bum + = +Œue +; + +587 + `gl_dbg +(""); + +588 + `_gl_®bums_Ãw_ü—‹_v›w +( +d©a +, +_gl_®bums_£l_ü—‹_v›w +); + +589 + } +} + +591  + $__gl_»Üd”_soá_back_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +593 + `GL_CHECK +( +d©a +); + +594 + `__gl_®bums_pÝ_Ý +( +d©a +); + +595 + } +} + +597  + $__gl_®bums_»Üd”_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +599 + `GL_CHECK +( +d©a +); + +600 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +601 + `_gl_ùxpÝup_d– +( +d©a +); + +602  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +603 ià( +v›w_mode + =ð +GL_VIEW_ALBUMS +) { + +604 + `gl_£t_v›w_mode +( +ad +, +GL_VIEW_ALBUM_REORDER +); + +605 + `–m_g’grid_»Üd”_mode_£t +( +ad +-> +®bumšfo +. +v›w +, +EINA_TRUE +); + +606 + `_gl_ui_di§bË_m’u +( +ad +-> +ù¾šfo +. +nf_™ +, +Œue +); + +607 + `_gl_ui_chªge_Çvi_t™Ë +( +ad +-> +ù¾šfo +. +nf_™ +, +GL_STR_ID_REORDER +, +Œue +); + +608 +Evas_Objeù + * +bŠ + = + `–m_bu‰Ú_add +( +ad +-> +®bumšfo +. +v›w +); + +609 + `GL_CHECK +( +bŠ +); + +610 + `–m_objeù_¡yË_£t +( +bŠ +, "naviframe/end_btn/default"); + +611 + `evas_objeù_sm¬t_ÿÎback_add +( +bŠ +, "þicked", +__gl_»Üd”_soá_back_cb +, +d©a +); + +612 + `–m_objeù_™em_·¹_cڋÁ_£t +( +ad +-> +ù¾šfo +. +nf_™ +, +GL_NAVIFRAME_PREV_BTN +, +bŠ +); + +613 + `evas_objeù_sm¬t_ÿÎback_d– +( +ad +-> +®bumšfo +. +v›w +, "lÚg´es£d", +__gl_®bums_lÚg´es£d_cb +); + +615 + } +} + +617  + $__gl_®bums_v›was_pÝ_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +619 + `gl_dbg +("ENTRY"); + +620 + `GL_CHECK +( +d©a +); + +621 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +622  +¡©e_šdex + = 1; + +623  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +624 ià( +v›w_mode + =ð +GL_VIEW_TIMELINE +) { + +625 +¡©e_šdex + = 0; + +626 } ià( +v›w_mode + =ð +GL_VIEW_ALBUMS +) { + +627 +¡©e_šdex + = 1; + +629 + `_gl_li¡_pÝ_ü—‹ +( +d©a +, +obj +, +ei +, +GL_STR_ID_VIEW_AS +, +GL_STR_TIME_VIEW +, +GL_STR_ALBUMS +, +¡©e_šdex +); + +630 + `gl_dbg +("EXIT"); + +631 + } +} + +632  + $__gl_®bums_ed™_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +634 + `GL_CHECK +( +d©a +); + +635 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +636 + `_gl_ùxpÝup_d– +( +d©a +); + +637 ià( +ad +-> +ugšfo +. +ug +) { + +642 + `gl_dbg +("UG invoked or‡ppending gridview."); + +646  +v›w_mode + = + `gl_g‘_v›w_mode +( +d©a +); + +647 + `gl_dbg +("mode: %d", +v›w_mode +); + +648 ià( +v›w_mode + =ð +GL_VIEW_ALBUMS +) { + +649 + `_gl_®bums_chªge_mode +( +d©a +, +Œue +); + +651 + } +} + +654  + $__gl_®bums_sh¬e_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +656 + `GL_CHECK +( +d©a +); + +657 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +658 + `_gl_ùxpÝup_d– +( +d©a +); + +659 ià( +ad +-> +ugšfo +. +ug +) { + +664 + `gl_dbg +("UG invoked or‡ppending gridview."); + +667 +ad +-> +®bumšfo +. +b_sh¬e_mode + = +GL_GRID_SHARE +; + +668 + `__gl_®bums_ed™_cb +( +d©a +, +NULL +, NULL); + +669 + } +} + +672 #ifdeà +SUPPORT_SLIDESHOW + + +673  + $__gl_®bums_¡¬t_¦ideshow +(* +d©a +) + +675 + `GL_CHECK_VAL +( +d©a +, -1); + +676 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +677 +ad +-> +gridšfo +. +grid_ty³ + = +GL_GRID_T_ALLALBUMS +; + +679 +Eša_Li¡ + * +li¡ + = +NULL +; + +680 +gl_™em + * +g™em + = +NULL +; + +681 +gl_medŸ_s + * +™em + = +NULL +; + +682 +boÞ + +is_®l + = +Œue +; + +683 ià( +ad +-> +®bumšfo +. +£l_–i¡ + && + +684 + `eša_li¡_couÁ +( +ad +-> +®bumšfo +. +£l_–i¡ +) > 0) { + +685 +gl_þu¡” + * +®bum + = +NULL +; + +686 +®bum + = + `eša_li¡_Áh +( +ad +-> +®bumšfo +. +£l_–i¡ +, 0); + +687 + `_gl_d©a_g‘_™ems_®bum +( +d©a +, +®bum +, 0, 0, & +li¡ +); + +688 +g™em + = ( +gl_™em + *) + `eša_li¡_Áh +( +li¡ +, 0); + +689 +is_®l + = +çl£ +; + +691 + `_gl_d©a_g‘_™ems +( +GL_FIRST_VIEW_START_POS +, + +692 +GL_FIRST_VIEW_START_POS +, & +li¡ +); + +693 +™em + = ( +gl_medŸ_s + *) + `eša_li¡_Áh +( +li¡ +, 0); + +694 +g™em + = + `_gl_d©a_Ãw_™em_m™em +( +™em +); + +696 ià( +li¡ +) + +697 + `eša_li¡_ä“ +( +li¡ +); + +698 ià( +g™em +) { + +699 + `GL_CHECK_VAL +( +g™em +, -1); + +700 ià( +is_®l +) + +701 + `gl_ext_lßd_iv_ug +( +d©a +, +g™em +, +GL_UG_IV_SLIDESHOW_ALL +); + +703 + `gl_ext_lßd_iv_ug +( +d©a +, +g™em +, +GL_UG_IV_SLIDESHOW +); + +705 ià( +g™em +) + +706 + `_gl_d©a_utž_ä“_g™em +( +g™em +); + +707 + `_gl_d©a_fš®ize_®bums_£Ëùed_li¡ +( +d©a +); + +709 + } +} + +712 #ifdeà +_USE_APP_SLIDESHOW + + +714  + $__gl_®bums_£Ëù_¦ideshow +(* +d©a +) + +716 + `GL_CHECK_VAL +( +d©a +, -1); + +717 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +718  +™em_út + = 0; + +719  +»t + = -1; + +721 +»t + = + `_gl_d©a_g‘_™em_út +( +GL_ALBUM_ALL_ID +, +GL_STORE_T_ALL +, & +™em_út +); + +722 ià( +»t + !ð0 || +™em_út + == 0) { + +723 + `gl_dbgE +("Empty!"); + +727 +gl_þu¡” + * +þu¡” + = +NULL +; + +728 + `_gl_d©a_g‘_þu¡”_by_id +( +d©a +, +GL_ALBUM_ALL_ID +, & +þu¡” +); + +729 + `GL_CHECK_VAL +( +þu¡” +, -1); + +730 + `_gl_®bums_£t_cu¼’t +( +d©a +, +þu¡” +); + +731 +Eša_Li¡ + * +medŸs_–i¡ + = +NULL +; + +732 + `_gl_d©a_g‘_™ems_®bum +( +d©a +, +þu¡” +, +GL_FIRST_VIEW_START_POS +, + +733 +GL_FIRST_VIEW_END_POS +, & +medŸs_–i¡ +); + +734 + `_gl_thumbs_£t_ed™_mode +( +d©a +, +GL_THUMBS_EDIT_SLIDESHOW +); + +735 + `_gl_thumbs_£t_li¡ +( +ad +, +medŸs_–i¡ +); + +736 + `_gl_thumbs_ü—‹_v›w +( +d©a +, +GL_NAVI_THUMBS +, +GL_STR_ID_ALL_ALBUMS +, +Œue +, + +737 +__gl_®bums_þo£_®bum_cb +); + +739 + `gl_dbg +("Doneƒdit"); + +741 + } +} + +744 #ifdeà +SUPPORT_SLIDESHOW + + +745  + $__gl_®bums_¦ideshow +(* +d©a +, cÚ¡ * +Ïb– +) + +747 + `GL_CHECK_VAL +( +Ïb– +, -1); + +748 + `GL_CHECK_VAL +( +d©a +, -1); + +749 + `gl_dbg +("Ïb– : % ", +Ïb– +); + +750 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +752 ià(! + `g_¡rcmp0 +( +Ïb– +, + `_gl_¡r +( +GL_STR_ID_ALL_ITEMS +))) { + +753 + `__gl_®bums_¡¬t_¦ideshow +( +d©a +); + +754 } ià(! + `g_¡rcmp0 +( +Ïb– +, + `_gl_¡r +( +GL_STR_ID_SETTINGS +))) { + +755 + `evas_objeù_d©a_£t +( +ad +-> +maššfo +. +Çviäame +, + +756 +GL_NAVIFRAME_SLIDESHOW_DATA_KEY +, + +757 +__gl_®bums_¡¬t_¦ideshow +); + +758 + `gl_ext_lßd_ug +( +d©a +, +GL_UG_GALLERY_SETTING_SLIDESHOW +); + +759 } ià(! + `g_¡rcmp0 +( +Ïb– +, + `_gl_¡r +( +GL_STR_ID_SELECT_ITEMS +))) { + +760 #ifdeà +_USE_APP_SLIDESHOW + + +761 + `__gl_®bums_£Ëù_¦ideshow +( +d©a +); + +762 + `evas_objeù_d©a_£t +( +ad +-> +maššfo +. +Çviäame +, + +763 +GL_NAVIFRAME_SELECTED_SLIDESHOW_KEY +, + +764 +gl_pÝ_to_ù¾b¬_ly +); + +766 + `_gl_ext_Ïunch_g®Ëry_ug +( +d©a +); + +769 + `gl_dbgE +("Invalid†able!"); + +773 + } +} + +775  + $__gl_®bums_¦ideshow_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +777 + `GL_CHECK +( +d©a +); + +778 + `_gl_ùxpÝup_d– +( +d©a +); + +779 + `_gl_pÝup_ü—‹_¦ideshow +( +d©a +, +__gl_®bums_¦ideshow +); + +780 + } +} + +783  + $__gl_®bums_ùxpÝup_­³nd +(* +d©a +, +Evas_Objeù + * +·»Á +) + +785 + `gl_dbg +(""); + +786 + `GL_CHECK_VAL +( +·»Á +, -1); + +787 + `GL_CHECK_VAL +( +d©a +, -1); + +788 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +790 ià( +ad +-> +®bumšfo +. +–i¡ +-> +ed™_út + > 0) { + +792 + `_gl_ùxpÝup_­³nd +( +·»Á +, +GL_STR_ID_VIEW_AS +, + +793 +__gl_®bums_v›was_pÝ_cb +, +d©a +); + +795 + `_gl_ùxpÝup_­³nd +( +·»Á +, +GL_STR_ID_NEW_ALBUM +, + +796 +__gl_®bums_Ãw®bum_cb +, +d©a +); + +797 + `_gl_ùxpÝup_­³nd +( +·»Á +, +GL_STR_ID_REORDER +, + +798 +__gl_®bums_»Üd”_cb +, +d©a +); + +800 + `_gl_ùxpÝup_­³nd +( +·»Á +, +GL_STR_ID_DELETE +, +__gl_®bums_ed™_cb +, + +801 +d©a +); + +802 #ifdeà +SUPPORT_SLIDESHOW + + +804 + `_gl_ùxpÝup_­³nd +( +·»Á +, +GL_STR_ID_SLIDESHOW +, + +805 +__gl_®bums_¦ideshow_cb +, +d©a +); + +809 + } +} + +811  + $__gl_®bums_mÜe_bŠ_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +813 + `gl_dbg +("more button clicked"); + +814 + `GL_CHECK +( +d©a +); + +815 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +816 +Evas_Objeù + * +mÜe + = +NULL +; + +817 +mÜe + = + `_gl_ui_g‘_bŠ +( +NULL +, +ad +-> +ù¾šfo +. +nf_™ +, +GL_NAVIFRAME_MORE +); + +818 ià( +EINA_TRUE + =ð + `–m_objeù_di§bËd_g‘ +( +mÜe +)) { + +819 + `gl_dbg +("Menu is disabled"); + +823 + `_gl_ùxpÝup_ü—‹ +( +d©a +, +obj +, +__gl_®bums_ùxpÝup_­³nd +); + +824 + } +} + +833  + $_gl_upd©e_li¡_d©a +(* +d©a +) + +835 + `GL_CHECK +( +d©a +); + +836 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +837 +Elm_Objeù_I‹m + * +l_™ + = + `–m_g’grid_Ï¡_™em_g‘ +( +ad +-> +®bumšfo +. +v›w +); + +838 +Elm_Objeù_I‹m + * +f_™ + = + `–m_g’grid_fœ¡_™em_g‘ +( +ad +-> +®bumšfo +. +v›w +); + +839 +gl_þu¡” + * +®bum_™em + = +NULL +; + +840 +Eša_Li¡ + * +li¡ + = +NULL +; + +841 ià( +f_™ +) { + +842 +®bum_™em + = + `–m_objeù_™em_d©a_g‘ +( +f_™ +); + +843 ià( +®bum_™em +) { + +844 +li¡ + = + `eša_li¡_­³nd +Öi¡, +®bum_™em +); + +845 +®bum_™em + = +NULL +; + +848 ià( +l_™ + && +f_™ +) { + +849  +f_™ + !ð +l_™ +) { + +850 +f_™ + = + `–m_g’grid_™em_Ãxt_g‘ +(f_it); + +851 ià( +f_™ +) { + +852 +®bum_™em + = + `–m_objeù_™em_d©a_g‘ +( +f_™ +); + +853 ià( +®bum_™em +) { + +854 +li¡ + = + `eša_li¡_­³nd +Öi¡, +®bum_™em +); + +855 +®bum_™em + = +NULL +; + +860 ià( +li¡ +) { + +861 +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ + = +li¡ +; + +862 } ià( +li¡ + =ð +NULL +) { + +863 + `gl_dbg +("new†ist is‚ull"); + +865 + } +} + +867  +Eša_BoÞ + + $__gl_®bums_pÝ_Ý +(* +d©a +) + +869 + `GL_CHECK_FALSE +( +d©a +); + +870 ià( + `gl_g‘_v›w_mode +( +d©a +è=ð +GL_VIEW_ALBUMS_EDIT +) { + +871 + `gl_dbg +("EDIT"); + +872 + `_gl_®bums_chªge_mode +( +d©a +, +çl£ +); + +874  +EINA_TRUE +; + +875 } ià( + `gl_g‘_v›w_mode +( +d©a +è=ð +GL_VIEW_ALBUM_REORDER +) { + +876 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +877 + `gl_£t_v›w_mode +( +ad +, +GL_VIEW_ALBUMS +); + +878 + `–m_g’grid_»Üd”_mode_£t +( +ad +-> +®bumšfo +. +v›w +, +EINA_FALSE +); + +879 +Evas_Objeù + * +un£t + = + `–m_objeù_™em_·¹_cڋÁ_un£t +( +ad +-> +ù¾šfo +. +nf_™ +, +GL_NAVIFRAME_PREV_BTN +); + +880 + `evas_objeù_hide +( +un£t +); + +881 + `_gl_ui_di§bË_m’u +( +ad +-> +ù¾šfo +. +nf_™ +, +çl£ +); + +882 + `_gl_ui_chªge_Çvi_t™Ë +( +ad +-> +ù¾šfo +. +nf_™ +, +GL_STR_ID_ALBUM +, +Œue +); + +883 + `_gl_upd©e_li¡_d©a +( +d©a +); + +884 + `evas_objeù_sm¬t_ÿÎback_add +( +ad +-> +®bumšfo +. +v›w +, "lÚg´es£d", +__gl_®bums_lÚg´es£d_cb +, +d©a +); + +885  +EINA_TRUE +; + +887  +EINA_FALSE +; + +888 + } +} + +894  + $__gl_®bums_add_bŠs +(* +d©a +) + +896 + `gl_dbg +(""); + +897 + `GL_CHECK_VAL +( +d©a +, -1); + +898 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +899 + `GL_CHECK_VAL +( +ad +-> +maššfo +. +Çviäame +, -1); + +900 + `GL_CHECK_VAL +( +ad +-> +ù¾šfo +. +nf_™ +, -1); + +901 +Evas_Objeù + * +·»Á + = +ad +-> +maššfo +. +Çviäame +; + +902 +Elm_Objeù_I‹m + * +nf_™ + = +ad +-> +ù¾šfo +.nf_it; + +903 +Evas_Objeù + * +bŠ + = +NULL +; + +906 + `_gl_ui_þ—r_bŠs +( +d©a +); + +908 +bŠ + = + `_gl_but_ü—‹_but +( +·»Á +, +NULL +, NULL, +GL_BUTTON_STYLE_NAVI_MORE +, + +909 +__gl_®bums_mÜe_bŠ_cb +, +d©a +); + +910 + `GL_CHECK_VAL +( +bŠ +, -1); + +912 + `–m_objeù_™em_·¹_cڋÁ_£t +( +nf_™ +, +GL_NAVIFRAME_MORE +, +bŠ +); + +913 + `_gl_®bums_check_bŠs +( +d©a +); + +915 + } +} + +918  + $_gl_®bums_þo£_®bum +(* +d©a +) + +920 + `gl_dbg +(""); + +921 + `GL_CHECK_VAL +( +d©a +, -1); + +922 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +924 + `gl_£t_v›w_mode +( +ad +, +GL_VIEW_ALBUMS +); + +925 + `_gl_®bums_£t_cu¼’t +( +d©a +, +NULL +); + +926 + `gl_®bums_upd©e_™ems +( +ad +); + +928 + } +} + +931  + $gl_®bums_upd©e_™ems +(* +d©a +) + +933 +GL_PROFILE_IN +; + +934 + `GL_CHECK_VAL +( +d©a +, -1); + +935 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +936 + `GL_CHECK_VAL +( +ad +-> +®bumšfo +. +–i¡ +, -1); + +937  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +938 +ad +-> +®bumšfo +. +®bums_út + = 0; + +939 + `gl_dbg +(""); + +942 + `–m_Çviäame_™em_t™Ë_’abËd_£t +( +ad +-> +ù¾šfo +. +nf_™ +, +EINA_TRUE +, EINA_TRUE); + +943 ià( + `gl_check_g®Ëry_em±y +( +ad +)) { + +945 +GL_ALBUMS_SHOW_NOCONTENTS +: + +947 ià( +ad +-> +®bumšfo +. +v›w +) { + +949 ià( +ad +-> +®bumšfo +. +nocڋÁs + =ð +NULL +) { + +950 + `_gl_®bums_þ—r_cbs +( +ad +-> +®bumšfo +. +v›w +); + +951 + `_gl_ui_d–_süÞËr_pos +( +ad +-> +®bumšfo +. +v›w +); + +953 + `evas_objeù_d– +( +ad +-> +®bumšfo +. +v›w +); + +956 +Evas_Objeù + * +noc + = + `_gl_nocڋÁs_ü—‹ +( +ad +-> +ù¾šfo +. +ù¾b¬_v›w_ly +); + +957 +ad +-> +®bumšfo +. +nocڋÁs + = +noc +; + +958 +ad +-> +®bumšfo +. +v›w + = +noc +; + +959 + `evas_objeù_show +( +noc +); + +961 + `–m_Çviäame_™em_t™Ë_’abËd_£t +( +ad +-> +ù¾šfo +. +nf_™ +, +EINA_FALSE +, EINA_FALSE); + +962 +Evas_Objeù + * +Þd_v›w + = +NULL +; + +963 +Þd_v›w + = + `–m_objeù_·¹_cڋÁ_un£t +( +ad +-> +ù¾šfo +. +ù¾b¬_v›w_ly +, + +965 + `GL_IF_DEL_OBJ +( +Þd_v›w +); + +966 + `–m_objeù_·¹_cڋÁ_£t +( +ad +-> +ù¾šfo +. +ù¾b¬_v›w_ly +, + +967 "–m.sw®low.v›w", +noc +); + +969 ià( +v›w_mode + =ð +GL_VIEW_ALBUMS_EDIT +) { + +970 + `_gl_®bums_ü—‹_™ems +( +ad +,‡d-> +®bumšfo +. +v›w +); + +972  +út + = + `_gl_d©a_g‘_®bums_£Ëùed_út +( +ad +); + +973 + `_gl_nÙify_check_£ÏÎ +( +ad +,‡d-> +ù¾šfo +. +nf_™ +, + +974 +ad +-> +®bumšfo +. +®bums_út +, +út +); + +976 + `_gl_ui_upd©e_Çvi_t™Ë_‹xt +( +ad +-> +ù¾šfo +. +nf_™ +, +út +, +çl£ +); + +978 ià( +ad +-> +®bumšfo +. +nocڋÁs +) { + +983 + `gl_®bums_»move_nocڋÁs +( +ad +); + +985 ià( + `_gl_®bums_ü—‹_™ems +( +ad +,‡d-> +®bumšfo +. +v›w +) < 0) { + +986 + `gl_dbgW +("To show‚ocontents!"); + +987  +GL_ALBUMS_SHOW_NOCONTENTS +; + +992 +GL_PROFILE_OUT +; + +994 + } +} + +997  + $_gl_®bums_ü—‹_v›w +(* +d©a +, +Evas_Objeù + * +·»Á +) + +999 +GL_PROFILE_IN +; + +1000 + `GL_CHECK_VAL +( +·»Á +, -1); + +1001 + `GL_CHECK_VAL +( +d©a +, -1); + +1002 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1004 +Evas_Objeù + * +Ïyout_šÃr + = +NULL +; + +1005 +Ïyout_šÃr + = + `_gl_®bums_add_g’grid +( +ad +, +·»Á +); + +1006 + `GL_CHECK_VAL +( +Ïyout_šÃr +, -1); + +1007 + `–m_objeù_·¹_cڋÁ_£t +( +·»Á +, "–m.sw®low.v›w", +Ïyout_šÃr +); + +1008 +ad +-> +®bumšfo +. +v›w + = +Ïyout_šÃr +; + +1010 + `evas_objeù_ev’t_ÿÎback_add +( +·»Á +, +EVAS_CALLBACK_DEL +, + +1011 +__gl_®bums_d–‘e_Ïyout_cb +, +d©a +); + +1012 +GL_PROFILE_OUT +; + +1014 + } +} + +1017  + $gl_®bums_upd©e_v›w +(* +d©a +) + +1019 + `GL_CHECK_VAL +( +d©a +, -1); + +1020 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1021  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +1022 + `gl_dbg +("v›w_mode: %d.", +v›w_mode +); + +1024 +ad +-> +®bumšfo +. +®bums_út + = 0; + +1026 ià( +v›w_mode + =ð +GL_VIEW_ALBUMS +) { + +1027 + `gl_®bums_upd©e_™ems +( +d©a +); + +1028 + `_gl_®bums_check_bŠs +( +d©a +); + +1029 } ià( +v›w_mode + =ð +GL_VIEW_ALBUMS_EDIT +) { + +1030 + `_gl_®bums_ed™_upd©e_v›w +( +d©a +); + +1031 } ià( +v›w_mode + =ð +GL_VIEW_ALBUMS_RENAME +) { + +1032 + `_gl_®bums_»Çme_upd©e_v›w +( +d©a +); + +1035 + } +} + +1038  + $gl_®bums_chªge_to_v›w +(* +d©a +) + +1040 + `GL_CHECK_VAL +( +d©a +, -1); + +1041 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1042 + `GL_CHECK_VAL +( +ad +-> +®bumšfo +. +–i¡ +, -1); + +1043 + `gl_dbg +(""); + +1045 +ad +-> +®bumšfo +. +®bums_út + = 0; + +1046 + `GL_CHECK_VAL +( +ad +-> +®bumšfo +. +v›w +, -1); + +1047 + `gl_£t_v›w_mode +( +ad +, +GL_VIEW_ALBUMS +); + +1049 + `–m_Çviäame_™em_t™Ë_’abËd_£t +( +ad +-> +ù¾šfo +. +nf_™ +, +EINA_TRUE +, EINA_TRUE); + +1050 ià( + `gl_check_g®Ëry_em±y +( +ad +)) { + +1051 ià( +ad +-> +®bumšfo +. +v›w +) { + +1053 ià( +ad +-> +®bumšfo +. +nocڋÁs + =ð +NULL +) { + +1054 + `_gl_®bums_þ—r_cbs +( +ad +-> +®bumšfo +. +v›w +); + +1055 + `_gl_ui_d–_süÞËr_pos +( +ad +-> +®bumšfo +. +v›w +); + +1057 + `evas_objeù_d– +( +ad +-> +®bumšfo +. +v›w +); + +1060 +Evas_Objeù + * +noc + = + `_gl_nocڋÁs_ü—‹ +( +ad +-> +ù¾šfo +. +ù¾b¬_v›w_ly +); + +1061 +ad +-> +®bumšfo +. +nocڋÁs + = +noc +; + +1062 +ad +-> +®bumšfo +. +v›w + = +noc +; + +1063 + `evas_objeù_show +( +noc +); + +1065 + `–m_Çviäame_™em_t™Ë_’abËd_£t +( +ad +-> +ù¾šfo +. +nf_™ +, +EINA_FALSE +, EINA_FALSE); + +1066 +Evas_Objeù + * +Þd_v›w + = +NULL +; + +1067 +Þd_v›w + = + `–m_objeù_·¹_cڋÁ_un£t +( +ad +-> +ù¾šfo +. +ù¾b¬_v›w_ly +, + +1069 + `evas_objeù_hide +( +Þd_v›w +); + +1070 + `–m_objeù_·¹_cڋÁ_£t +( +ad +-> +ù¾šfo +. +ù¾b¬_v›w_ly +, + +1071 "–m.sw®low.v›w", +noc +); + +1073 + `_gl_®bums_ü—‹_™ems +( +ad +,‡d-> +®bumšfo +. +v›w +); + +1076 + } +} + +1085  + $gl_®bums_»move_nocڋÁs +(* +d©a +) + +1087 + `GL_CHECK_VAL +( +d©a +, -1); + +1088 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1089 +Evas_Objeù + * +v›w + = +NULL +; + +1090 + `gl_dbg +(""); + +1092 ià( +ad +-> +®bumšfo +. +nocڋÁs + && ! + `gl_check_g®Ëry_em±y +(ad)) { + +1093 + `gl_dbg +("Remove‚ocontents viewhen create‡lbums view."); + +1094 + `evas_objeù_d– +( +ad +-> +®bumšfo +. +nocڋÁs +); + +1095 +ad +-> +®bumšfo +. +nocڋÁs + = +NULL +; + +1097 +v›w + = + `_gl_®bums_add_v›w +( +ad +,‡d-> +maššfo +. +Çviäame +); + +1098 + `–m_objeù_·¹_cڋÁ_£t +( +ad +-> +ù¾šfo +. +ù¾b¬_v›w_ly +, + +1099 "–m.sw®low.v›w", +v›w +); + +1100 + `evas_objeù_show +( +v›w +); + +1101 +ad +-> +®bumšfo +. +v›w + = view; + +1102 + `_gl_®bums_check_bŠs +( +d©a +); + +1103 } ià( +ad +-> +®bumšfo +. +nocڋÁs +) { + +1104 + `gl_dbg +("Gallery isƒmpty!"); + +1105 +boÞ + +b_upd©e + = +çl£ +; + +1106 +b_upd©e + = + `_gl_nocڋÁs_upd©e_Ïb– +( +ad +-> +®bumšfo +. +nocڋÁs +, + +1107 +GL_STR_NO_ALBUMS +); + +1109 ià( +b_upd©e +) + +1110 + `_gl_®bums_check_bŠs +( +d©a +); + +1112 + `gl_dbg +("Nocontents was„emoved!"); + +1116 + } +} + +1119  + $gl_®bums_ä“_d©a +(* +d©a +) + +1121 + `gl_dbg +(""); + +1122 + `GL_CHECK_VAL +( +d©a +, -1); + +1123 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1125 + `_gl_®bums_þ—r_cbs +( +ad +-> +®bumšfo +. +v›w +); + +1126 + `_gl_ui_d–_süÞËr_pos +( +ad +-> +®bumšfo +. +v›w +); + +1127 + `GL_FREEIF +( +ad +-> +®bumšfo +. +·th +); + +1129 + } +} + +1131  + $_gl_®bums_show_v›w_b +(* +d©a +, +Evas_Objeù + * +·»Á +) + +1133 + `GL_CHECK_VAL +( +·»Á +, -1); + +1134 + `GL_CHECK_VAL +( +d©a +, -1); + +1135 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1138 + `evas_objeù_d©a_£t +( +ad +-> +maššfo +. +Çviäame +, +GL_NAVIFRAME_POP_CB_KEY +, + +1139 (*) +__gl_®bums_pÝ_Ý +); + +1141 + `gl_£t_v›w_mode +( +d©a +, +GL_VIEW_ALBUMS +); + +1142 + `_gl_ù¾_show_t™Ë +( +d©a +, +GL_CTRL_TAB_ALBUMS +); + +1144 ià(! +ad +-> +®bumšfo +. +v›w +) { + +1145 + `gl_dbg +("Add gengrid first"); + +1146 + `_gl_®bums_ü—‹_v›w +( +ad +,‡d-> +ù¾šfo +. +ù¾b¬_v›w_ly +); + +1149 + `gl_®bums_upd©e_™ems +( +d©a +); + +1151 ià(! +ad +-> +®bumšfo +. +nocڋÁs +) { + +1152 + `evas_objeù_show +( +ad +-> +®bumšfo +. +v›w +); + +1153 + `–m_objeù_·¹_cڋÁ_£t +( +·»Á +, "elm.swallow.view", + +1154 +ad +-> +®bumšfo +. +v›w +); + +1157 + `_gl_maš_add_»g_idËr +( +d©a +); + +1161 + `__gl_®bums_add_bŠs +( +d©a +); + +1163 + } +} + +1166  + $_gl_®bums_hide_v›w_b +(* +d©a +) + +1168 + `GL_CHECK_VAL +( +d©a +, -1); + +1169 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1171 +ad +-> +®bumšfo +. +£Ëùed + = +NULL +; + +1172 + `_gl_®bums_£t_cu¼’t +( +d©a +, +NULL +); + +1173  +v›w_m + = + `gl_g‘_v›w_mode +( +d©a +); + +1175 ià( +v›w_m + =ð +GL_VIEW_ALBUMS_EDIT +) { + +1176 + `gl_dbg +("GL_VIEW_ALBUMS_EDIT"); + +1177 + `_gl_d©a_fš®ize_®bums_£Ëùed_li¡ +( +d©a +); + +1179 ià( +ad +-> +®bumšfo +. +v›w + && + +1180 +ad +-> +®bumšfo +. +v›w + !ðad->®bumšfo. +nocڋÁs +) { + +1181 + `gl_dbg +("elm_gengrid_clear view"); + +1182 + `–m_g’grid_þ—r +( +ad +-> +®bumšfo +. +v›w +); + +1184 } ià( +v›w_m + =ð +GL_VIEW_ALBUMS +) { + +1185 + `gl_dbg +("GL_VIEW_ALBUMS"); + +1187 ià( +ad +-> +®bumšfo +. +v›w + && + +1188 +ad +-> +®bumšfo +. +v›w + !ðad->®bumšfo. +nocڋÁs +) { + +1189 + `gl_dbg +("elm_gengrid_clear view"); + +1190 + `–m_g’grid_þ—r +( +ad +-> +®bumšfo +. +v›w +); + +1194 +Evas_Objeù + * +´e_v›w + = +NULL +; + +1195 +´e_v›w + = + `–m_objeù_·¹_cڋÁ_un£t +( +ad +-> +ù¾šfo +. +ù¾b¬_v›w_ly +, + +1197 + `evas_objeù_hide +( +´e_v›w +); + +1199 + } +} + +1201  + $_gl_®bums_chªge_mode +(* +d©a +, +boÞ + +b_ed™ +) + +1203 + `GL_CHECK_VAL +( +d©a +, -1); + +1204 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1206 +ad +-> +®bumšfo +. +£Ëùed + = +NULL +; + +1207 + `_gl_®bums_£t_cu¼’t +( +d©a +, +NULL +); + +1209 ià( +b_ed™ +) { + +1210 + `gl_£t_v›w_mode +( +ad +, +GL_VIEW_ALBUMS_EDIT +); + +1211 + `_gl_ui_chªge_Çvi_t™Ë +( +ad +-> +ù¾šfo +. +nf_™ +, +GL_STR_ID_SELECT_ITEM +, +çl£ +); + +1212 + `–m_objeù_sigÇl_em™ +( +ad +-> +ù¾šfo +. +ù¾b¬_v›w_ly +, "elm,selectall,state,visible,bg", "elm"); + +1213 + `–m_objeù_sigÇl_em™ +( +ad +-> +ù¾šfo +. +ù¾b¬_v›w_ly +, "elm,selectall,state,visible", "elm"); + +1214 + `_gl_®bums_ed™_add_bŠs +( +d©a +, +ad +-> +maššfo +. +Çviäame +); + +1215 #ifdeà +_USE_GRID_CHECK + + +1216 + `_gl_show_grid_checks_du® +( +ad +-> +®bumšfo +. +v›w +, +GL_TILE_CHECKBOX +, +GL_TILE_CHECKBOX_GRID +); + +1218 + `evas_objeù_sm¬t_ÿÎback_d– +( +ad +-> +®bumšfo +. +v›w +, "unrealized", + +1219 +__gl_®bums_uėlized +); + +1220 + `–m_g’grid_»®ized_™ems_upd©e +( +ad +-> +®bumšfo +. +v›w +); + +1221 + `evas_objeù_sm¬t_ÿÎback_add +( +ad +-> +®bumšfo +. +v›w +, "unrealized", + +1222 +__gl_®bums_uėlized +, +d©a +); + +1225 + `_gl_ui_chªge_Çvi_t™Ë +( +ad +-> +ù¾šfo +. +nf_™ +, +GL_STR_ID_ALBUM +, +Œue +); + +1226 + `__gl_®bums_add_bŠs +( +d©a +); + +1227 + `_gl_®bums_ed™_pÝ_v›w +( +d©a +); + +1228 + `gl_dbg +("Sending signalo EDC 1"); + +1229 + `–m_objeù_sigÇl_em™ +( +ad +-> +ù¾šfo +. +ù¾b¬_v›w_ly +, "elm,selectall,state,default", "elm"); + +1231 + `gl_®bums_upd©e_v›w +( +d©a +); + +1233 + } +} + +1235  + $_gl_®bums_check_bŠs +(* +d©a +) + +1237 + `GL_CHECK_VAL +( +d©a +, -1); + +1238 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1239 + `GL_CHECK_VAL +( +ad +-> +ù¾šfo +. +nf_™ +, -1); + +1240 +boÞ + +b_di§bËd + = +çl£ +; + +1243 ià( + `gl_check_g®Ëry_em±y +( +d©a +è|| +ad +-> +®bumšfo +. +–i¡ +-> +ed™_út + <= 0) + +1244 +b_di§bËd + = +Œue +; + +1245 + `gl_dbg +("b_di§bË: %d", +b_di§bËd +); + +1247 + `_gl_ui_di§bË_m’u +( +ad +-> +ù¾šfo +. +nf_™ +, +çl£ +); + +1249 + } +} + +1251  + $_gl_®bums_rÙ©e_v›w +(* +d©a +) + +1253 + `GL_CHECK_VAL +( +d©a +, -1); + +1254 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1256 ià( +ad +-> +®bumšfo +. +v›w + =ðad->®bumšfo. +nocڋÁs +) + +1258 +Elm_Objeù_I‹m + * +™em + = + `–m_g’grid_fœ¡_™em_g‘ +( +ad +-> +®bumšfo +. +v›w +); + +1259 ià( +™em +) { + +1260 +™em + = + `–m_g’grid_™em_Ãxt_g‘ +(item); + +1261 ià( +™em +) { + +1262 +™em + = + `–m_g’grid_™em_Ãxt_g‘ +(item); + +1263 ià( +™em +) + +1264 + `–m_objeù_™em_sigÇl_em™ +( +™em +, + +1269  + `_gl_tže_upd©e_™em_size +( +d©a +, +ad +-> +®bumšfo +. +v›w +, +Œue +); + +1270 + } +} + +1272  + $_gl_®bums_£t_cu¼’t +(* +d©a +, +gl_þu¡” + * +cu¼’t +) + +1274 + `GL_CHECK_VAL +( +d©a +, -1); + +1275 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1276 +ad +-> +®bumšfo +. +cu¼’t + = current; + +1278 + } +} + +1280 +gl_þu¡” + * + $_gl_®bums_g‘_cu¼’t +(* +d©a +) + +1282 + `GL_CHECK_NULL +( +d©a +); + +1283 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1284  +ad +-> +®bumšfo +. +cu¼’t +; + +1285 + } +} + +1288  + $_gl_®bums_þ—r_cbs +( +Evas_Objeù + * +v›w +) + +1290 + `gl_dbg +(""); + +1291 + `GL_CHECK_VAL +( +v›w +, -1); + +1292 + `evas_objeù_sm¬t_ÿÎback_d– +( +v›w +, "»®ized", +__gl_®bums_»®ized +); + +1293 + `evas_objeù_sm¬t_ÿÎback_d– +( +v›w +, "unrealized", + +1294 +__gl_®bums_uėlized +); + +1295 + `evas_objeù_sm¬t_ÿÎback_d– +( +v›w +, "longpressed", + +1296 +__gl_®bums_lÚg´es£d_cb +); + +1298 + } +} + +1300  + $_gl_add_®bum_d©a +( +gl_þu¡” + * +®bum +, +Eša_Li¡ + * +medŸs_–i¡ +) + +1302 + `GL_CHECK +( +®bum +); + +1303 + `GL_CHECK +( +medŸs_–i¡ +); + +1304  +út + = + `eša_li¡_couÁ +( +medŸs_–i¡ +); + +1305  +i +; + +1306 +gl_™em + * +g™em + = +NULL +; + +1307  +i + = 0; i < +út +; i++) { + +1308 +g™em + = + `eša_li¡_Áh +( +medŸs_–i¡ +, +i +); + +1309 ià( +g™em +) { + +1310 +g™em +-> +®bum + =‡lbum; + +1313 + } +} + +1315  + $gl_®bums_ݒ_®bum +( +gl_þu¡” + * +®bum +) + +1317 + `GL_CHECK_VAL +( +®bum +, -1); + +1318 + `GL_CHECK_VAL +( +®bum +-> +þu¡” +, -1); + +1319 + `GL_CHECK_VAL +( +®bum +-> +þu¡” +-> +uuid +, -1); + +1320 + `GL_CHECK_VAL +( +®bum +-> +ad +, -1); + +1321 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +®bum +->ad; + +1322 + `GL_CHECK_VAL +( +ad +-> +®bumšfo +. +–i¡ +, -1); + +1323 + `GL_CHECK_VAL +( +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ +, -1); + +1324 +gl_™em + * +g™em + = +NULL +; + +1325 +gl_™em + * +d©a + = +NULL +; + +1326  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +1327  +i +; + +1329 ià( +®bum +-> +cov” +) { + +1330 + `_gl_d©a_utž_ä“_g™em +( +®bum +-> +cov” +); + +1331 +®bum +-> +cov” + = +NULL +; + +1334 ià( +v›w_mode + =ð +GL_VIEW_ALBUMS +) { + +1335 + `gl_dbg +("View mode!"); + +1336 } ià( +v›w_mode + =ð +GL_VIEW_ALBUMS_SELECT + || v›w_mod=ð +GL_VIEW_THUMBS_SELECT +) { + +1337 + `gl_dbg +("Select mode!"); + +1338 + `_gl_®bums_£t_cu¼’t +( +ad +, +®bum +); + +1339 + `_gl_thumbs_£l_ü—‹_v›w +( +ad +, +®bum +); + +1341 } ià( +v›w_mode + =ð +GL_VIEW_THUMBS +) { + +1342 + `gl_dbg +("Split view!"); + +1343 * +i18n_Çme + = + `_gl_g‘_i18n_®bum_Çme +( +®bum +-> +þu¡” +); + +1344 + `gl_sdbg +("Album: %s, UUID: %s", +i18n_Çme +, +®bum +-> +þu¡” +-> +uuid +); + +1345 + `_gl_®bums_£t_cu¼’t +( +ad +, +®bum +); + +1346 +Eša_Li¡ + * +medŸs_–i¡ + = +NULL +; + +1347 + `_gl_d©a_g‘_™ems_®bum +( +ad +, +®bum +, +GL_FIRST_VIEW_START_POS +, + +1348 +GL_GET_UNTIL_LAST_RECORD + - 1, & +medŸs_–i¡ +); + +1349 + `_gl_add_®bum_d©a +( +®bum +, +medŸs_–i¡ +); + +1350 + `EINA_LIST_FREE +( +®bum +-> +–i¡ +, +d©a +) { + +1351 ià( +d©a +) { + +1352 +d©a +-> +checked + = +çl£ +; + +1355 + `_gl_thumbs_£t_li¡ +( +ad +, +medŸs_–i¡ +); + +1356 + `_gl_thumbs_upd©e_¥l™_v›w +( +ad +, +GL_NAVI_THUMBS +, +i18n_Çme +, +Œue +, + +1357 +__gl_®bums_þo£_®bum_cb +); + +1359 } ià( +v›w_mode + =ð +GL_VIEW_THUMBS_EDIT +) { + +1360 + `gl_dbg +("Splitƒdit view!"); + +1361 * +i18n_Çme + = + `_gl_g‘_i18n_®bum_Çme +( +®bum +-> +þu¡” +); + +1362 + `gl_sdbg +("Album: %s, UUID: %s", +i18n_Çme +, +®bum +-> +þu¡” +-> +uuid +); + +1363 + `_gl_®bums_£t_cu¼’t +( +ad +, +®bum +); + +1364 +Eša_Li¡ + * +£l_id_li¡ + = +NULL +; + +1366 +Eša_Li¡ + * +medŸs_–i¡ + = +NULL +; + +1367 + `_gl_d©a_g‘_™ems_®bum +( +ad +, +®bum +, +GL_FIRST_VIEW_START_POS +, + +1368 +GL_GET_UNTIL_LAST_RECORD + - 1, & +medŸs_–i¡ +); + +1369 + `_gl_add_®bum_d©a +( +®bum +, +medŸs_–i¡ +); + +1370 + `EINA_LIST_FREE +( +®bum +-> +–i¡ +, +d©a +) { + +1371 ià( +d©a +) { + +1372 +d©a +-> +checked + = +çl£ +; + +1376 + `_gl_thumbs_£t_li¡ +( +ad +, +medŸs_–i¡ +); + +1377  +couÁ + = + `eša_li¡_couÁ +( +medŸs_–i¡ +); + +1378  +i + = 0; i < +couÁ + ; i++) { + +1379 +g™em + = + `eša_li¡_Áh +( +medŸs_–i¡ +, +i +); + +1380 + `_gl_d©a_»¡Üe_£Ëùed +( +ad +-> +£lšfo +. +–i¡ +, +g™em +); + +1382 + `_gl_thumbs_upd©e_ed™_¥l™_v›w +( +ad +, +GL_NAVI_THUMBS +, +i18n_Çme +, +Œue +, + +1383 +__gl_®bums_þo£_®bum_cb +); + +1386 + `gl_dbgW +("Wrong view mode"); + +1389 * +i18n_Çme + = + `_gl_g‘_i18n_®bum_Çme +( +®bum +-> +þu¡” +); + +1390 + `gl_sdbg +("Album: %s, UUID: %s", +i18n_Çme +, +®bum +-> +þu¡” +-> +uuid +); + +1391 + `_gl_®bums_£t_cu¼’t +( +ad +, +®bum +); + +1392 +Eša_Li¡ + * +medŸs_–i¡ + = +NULL +; + +1393 + `_gl_d©a_g‘_™ems_®bum +( +ad +, +®bum +, +GL_FIRST_VIEW_START_POS +, + +1394 +GL_FIRST_VIEW_END_POS +, & +medŸs_–i¡ +); + +1395 + `_gl_add_®bum_d©a +( +®bum +, +medŸs_–i¡ +); + +1396 + `EINA_LIST_FREE +( +®bum +-> +–i¡ +, +d©a +) { + +1397 ià( +d©a +) { + +1398 +d©a +-> +checked + = +çl£ +; + +1401 + `_gl_thumbs_£t_li¡ +( +ad +, +medŸs_–i¡ +); + +1402 + `_gl_thumbs_ü—‹_v›w +( +ad +, +GL_NAVI_THUMBS +, +i18n_Çme +, +Œue +, + +1403 +__gl_®bums_þo£_®bum_cb +); + +1404 + `gl_dbg +("®bums_v›w 0x%x cˬed", +ad +-> +®bumšfo +. +v›w +); + +1405 + `gl_dbg +("Done‡lbums selected"); + +1407 + } +} + +1409 +Evas_Objeù + * + $_gl_®bums_add_g’grid +(* +d©a +, +Evas_Objeù + * +·»Á +) + +1411 +GL_PROFILE_IN +; + +1412 + `GL_CHECK_NULL +( +·»Á +); + +1413 + `GL_CHECK_NULL +( +d©a +); + +1414 +Evas_Objeù + * +grid + = + `_gl_tže_add_g’grid +( +·»Á +); + +1415 + `evas_objeù_sm¬t_ÿÎback_add +( +grid +, "»®ized", +__gl_®bums_»®ized +, + +1416 +d©a +); + +1417 + `evas_objeù_sm¬t_ÿÎback_add +( +grid +, "unrealized", + +1418 +__gl_®bums_uėlized +, +d©a +); + +1420 + `evas_objeù_sm¬t_ÿÎback_add +( +grid +, "language,changed", + +1421 +__gl_®bums_Ïng_chªged +, +d©a +); + +1423 + `evas_objeù_sm¬t_ÿÎback_add +( +grid +, "longpressed", + +1424 +__gl_®bums_lÚg´es£d_cb +, +d©a +); + +1425 + `evas_objeù_show +( +grid +); + +1426 + `_gl_ui_»£t_süÞËr_pos +( +grid +); + +1427 +GL_PROFILE_OUT +; + +1428  +grid +; + +1429 + } +} + +1431 +Evas_Objeù + * + $_gl_®bums_ü—‹_®bum_£l_g’grid +(* +d©a +) + +1433 + `GL_CHECK_VAL +( +d©a +, +NULL +); + +1434 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1435 +Evas_Objeù + * +Ïyout_šÃr + = + `–m_g’grid_add +( +ad +-> +maššfo +. +wš +); + +1437 + `–m_g’grid_®ign_£t +( +Ïyout_šÃr +, 0.5f, 0.0); + +1438 + `–m_g’grid_hÜizڏl_£t +( +Ïyout_šÃr +, +EINA_FALSE +); + +1439 + `–m_süÞËr_bounû_£t +( +Ïyout_šÃr +, +EINA_FALSE +, +EINA_TRUE +); + +1440 + `–m_süÞËr_pÞicy_£t +( +Ïyout_šÃr +, +ELM_SCROLLER_POLICY_OFF +, + +1441 +ELM_SCROLLER_POLICY_AUTO +); + +1442 + `–m_g’grid_muÉi_£Ëù_£t +( +Ïyout_šÃr +, +EINA_TRUE +); + +1443 + `evas_objeù_size_hšt_weight_£t +( +Ïyout_šÃr +, +EVAS_HINT_EXPAND +, + +1444 +EVAS_HINT_EXPAND +); + +1445  +Ïyout_šÃr +; + +1446 + } +} + +1448 +Evas_Objeù + * + $_gl_®bums_£l_add_v›w +(* +d©a +, +Evas_Objeù + * +·»Á +) + +1450 + `GL_CHECK_NULL +( +·»Á +); + +1451 + `GL_CHECK_NULL +( +d©a +); + +1452 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1453 + `GL_CHECK_NULL +( +ad +-> +®bumšfo +. +–i¡ +); + +1454 + `gl_dbg +(""); + +1456 +ad +-> +®bumšfo +. +®bums_út + = 0; + +1458 +Evas_Objeù + * +grid + = + `_gl_®bums_ü—‹_®bum_£l_g’grid +( +d©a +); + +1459 + `GL_CHECK_NULL +( +grid +); + +1460  +»t + = + `_gl_®bums_ü—‹_™ems +( +ad +, +grid +); + +1462  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +1463 + `gl_dbg +("v›w_mode: %d", +v›w_mode +); + +1464 ià( +v›w_mode + =ð +GL_VIEW_ALBUMS_SELECT +) { + +1465 ià( +ad +-> +®bumšfo +. +®bums_út + == 0) { + +1466 + `gl_dbgE +("None‡lbums!"); + +1467 + `evas_objeù_d– +( +grid +); + +1468 +grid + = +NULL +; + +1470 + `evas_objeù_show +( +grid +); + +1472  +grid +; + +1476 ià( +»t + < 0 || + `gl_check_g®Ëry_em±y +( +ad +)) { + +1477 + `_gl_ui_d–_süÞËr_pos +( +grid +); + +1478 + `evas_objeù_d– +( +grid +); + +1479 +grid + = +NULL +; + +1481 +Evas_Objeù + * +noc + = + `_gl_nocڋÁs_ü—‹ +( +ad +-> +ù¾šfo +. +ù¾b¬_v›w_ly +); + +1482 + `evas_objeù_show +( +noc +); + +1483 +ad +-> +®bumšfo +. +nocڋÁs + = +noc +; + +1484 + `–m_Çviäame_™em_t™Ë_’abËd_£t +( +ad +-> +ù¾šfo +. +nf_™ +, +EINA_FALSE +, EINA_FALSE); + +1486  +noc +; + +1488 +ad +-> +®bumšfo +. +nocڋÁs + = +NULL +; + +1489 + `–m_Çviäame_™em_t™Ë_’abËd_£t +( +ad +-> +ù¾šfo +. +nf_™ +, +EINA_TRUE +, EINA_TRUE); + +1492 + `gl_dbg +("done"); + +1493  +grid +; + +1494 + } +} + +1497 +Evas_Objeù + * + $_gl_®bums_add_v›w +(* +d©a +, +Evas_Objeù + * +·»Á +) + +1499 + `GL_CHECK_NULL +( +·»Á +); + +1500 + `GL_CHECK_NULL +( +d©a +); + +1501 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1502 + `GL_CHECK_NULL +( +ad +-> +®bumšfo +. +–i¡ +); + +1503 + `gl_dbg +(""); + +1505 +ad +-> +®bumšfo +. +®bums_út + = 0; + +1507 +Evas_Objeù + * +grid + = + `_gl_®bums_add_g’grid +( +d©a +, +·»Á +); + +1508 + `GL_CHECK_NULL +( +grid +); + +1509  +»t + = + `_gl_®bums_ü—‹_™ems +( +ad +, +grid +); + +1511  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +1512 + `gl_dbg +("v›w_mode: %d", +v›w_mode +); + +1513 ià( +v›w_mode + =ð +GL_VIEW_ALBUMS_SELECT +) { + +1514 ià( +ad +-> +®bumšfo +. +®bums_út + == 0) { + +1515 + `gl_dbgE +("None‡lbums!"); + +1516 + `evas_objeù_d– +( +grid +); + +1517 +grid + = +NULL +; + +1519 + `evas_objeù_show +( +grid +); + +1521  +grid +; + +1525 ià( +»t + < 0 || + `gl_check_g®Ëry_em±y +( +ad +)) { + +1526 + `_gl_ui_d–_süÞËr_pos +( +grid +); + +1527 + `evas_objeù_d– +( +grid +); + +1528 +grid + = +NULL +; + +1530 +Evas_Objeù + * +noc + = + `_gl_nocڋÁs_ü—‹ +( +ad +-> +ù¾šfo +. +ù¾b¬_v›w_ly +); + +1531 + `evas_objeù_show +( +noc +); + +1532 +ad +-> +®bumšfo +. +nocڋÁs + = +noc +; + +1533 + `–m_Çviäame_™em_t™Ë_’abËd_£t +( +ad +-> +ù¾šfo +. +nf_™ +, +EINA_FALSE +, EINA_FALSE); + +1535  +noc +; + +1537 +ad +-> +®bumšfo +. +nocڋÁs + = +NULL +; + +1538 + `–m_Çviäame_™em_t™Ë_’abËd_£t +( +ad +-> +ù¾šfo +. +nf_™ +, +EINA_TRUE +, EINA_TRUE); + +1541 + `gl_dbg +("done"); + +1542  +grid +; + +1543 + } +} + +1545  + $_gl_¥l™_®bums_ü—‹_™ems +(* +d©a +, +Evas_Objeù + * +·»Á +) + +1547 +GL_PROFILE_IN +; + +1548 + `GL_CHECK_VAL +( +·»Á +, -1); + +1549 + `GL_CHECK_VAL +( +d©a +, -1); + +1550 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1551  +i + = 0; + +1552 +gl_þu¡” + * +®bum_™em + = +NULL +; + +1553  +Ëngth + = 0; + +1554 + `gl_dbg +(""); + +1555 + `evas_objeù_sm¬t_ÿÎback_add +( +·»Á +, "»®ized", +__gl_¥l™_®bums_»®ized +, + +1556 +d©a +); + +1557 ià( + `–m_g’grid_™ems_couÁ +( +·»Á +) > 0) { + +1559 + `_gl_ui_§ve_süÞËr_pos +( +·»Á +); + +1561 + `–m_g’grid_þ—r +( +·»Á +); + +1563 +ad +-> +®bumšfo +. +gic +. +™em_¡yË + = +GL_GENGRID_STYLE_ALBUM_SPLIT_VIEW +; + +1564 +ad +-> +®bumšfo +. +gic +. +func +. +‹xt_g‘ + = +__gl_®bums_g‘_‹xt +; + +1565 +ad +-> +®bumšfo +. +gic +. +func +. +cڋÁ_g‘ + = +__gl_®bums_g‘_cڋÁ_¥l™_v›w +; + +1566 +Elm_G’grid_I‹m_CÏss + * +pgic + = &( +ad +-> +®bumšfo +. +gic +); + +1567 + `GL_CHECK_VAL +( +ad +-> +®bumšfo +. +–i¡ +, -1); + +1568 + `GL_CHECK_VAL +( +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ +, -1); + +1569 +Eša_Li¡ + * +þi¡ + = +ad +-> +®bumšfo +. +–i¡ +->clist; + +1570 +Ëngth + = + `eša_li¡_couÁ +( +þi¡ +); + +1571 + `gl_dbg +("Album Ëngth: %d", +Ëngth +); + +1572 +ad +-> +®bumšfo +. +–i¡ +-> +ed™_út + = 0; + +1573  +™em_út + = 0; + +1575  +i + = 0; i < +Ëngth +; i++) { + +1576 +®bum_™em + = + `eša_li¡_Áh +( +þi¡ +, +i +); + +1577 + `GL_CHECK_VAL +( +®bum_™em +, -1); + +1578 + `GL_CHECK_VAL +( +®bum_™em +-> +þu¡” +, -1); + +1579 + `GL_CHECK_VAL +( +®bum_™em +-> +þu¡” +-> +di¥Ïy_Çme +, -1); + +1580 + `GL_CHECK_VAL +( +®bum_™em +-> +þu¡” +-> +uuid +, -1); + +1581 ià( +®bum_™em +-> +þu¡” +-> +ty³ + < +GL_STORE_T_ALL +) { + +1582 +ad +-> +®bumšfo +. +–i¡ +-> +ed™_út +++; + +1584  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +1585 ià( +v›w_mode + =ð +GL_VIEW_ALBUMS + + +1586 || +v›w_mode + =ð +GL_VIEW_ALBUMS_EDIT + + +1587 || +v›w_mode + =ð +GL_VIEW_TIMELINE + + +1588 || +v›w_mode + =ð +GL_VIEW_THUMBS_EDIT + + +1589 || +v›w_mode + =ð +GL_VIEW_THUMBS_SELECT + + +1591 + `gl_dbg +("skiphe item"); + +1595 +®bum_™em +-> +™em + = + `–m_g’grid_™em_­³nd +( +·»Á +, +pgic +, + +1596 +®bum_™em +, + +1597 +__gl_®bums_£l_cb +, + +1598 +®bum_™em +); + +1599 +®bum_™em +-> +šdex + = +™em_út +; + +1600 +™em_út +++; + +1601 + `gl_sdbg +("Aµ’d[%s], id=%s.", +®bum_™em +-> +þu¡” +-> +di¥Ïy_Çme +, + +1602 +®bum_™em +-> +þu¡” +-> +uuid +); + +1605 + `_gl_ui_»¡Üe_süÞËr_pos +( +·»Á +); + +1606 +ad +-> +®bumšfo +. +®bums_út + = +™em_út +; + +1607 +GL_PROFILE_OUT +; + +1608 ià( +™em_út +) { + +1609 + `gl_sdbg +("Item count is 0"); + +1614 + } +} + +1616  + $_gl_®bums_ü—‹_™ems +(* +d©a +, +Evas_Objeù + * +·»Á +) + +1618 +GL_PROFILE_IN +; + +1619 + `GL_CHECK_VAL +( +·»Á +, -1); + +1620 + `GL_CHECK_VAL +( +d©a +, -1); + +1621 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1622  +i + = 0; + +1623 +gl_þu¡” + * +®bum_™em + = +NULL +; + +1624  +Ëngth + = 0; + +1625 + `gl_dbg +(""); + +1627 ià( + `–m_g’grid_™ems_couÁ +( +·»Á +) > 0) { + +1629 + `_gl_ui_§ve_süÞËr_pos +( +·»Á +); + +1630 + `evas_objeù_sm¬t_ÿÎback_d– +( +·»Á +, "unrealized", + +1631 +__gl_®bums_uėlized +); + +1633 + `–m_g’grid_þ—r +( +·»Á +); + +1634 + `evas_objeù_sm¬t_ÿÎback_add +( +·»Á +, "unrealized", + +1635 +__gl_®bums_uėlized +, +d©a +); + +1637 +ad +-> +®bumšfo +. +gic +. +™em_¡yË + = +GL_GENGRID_STYLE_ALBUM_VIEW +; + +1638 +ad +-> +®bumšfo +. +gic +. +func +. +‹xt_g‘ + = +__gl_®bums_g‘_‹xt +; + +1639 +ad +-> +®bumšfo +. +gic +. +func +. +cڋÁ_g‘ + = +__gl_®bums_g‘_cڋÁ +; + +1640 +Elm_G’grid_I‹m_CÏss + * +pgic + = &( +ad +-> +®bumšfo +. +gic +); + +1641 + `GL_CHECK_VAL +( +ad +-> +®bumšfo +. +–i¡ +, -1); + +1642 + `GL_CHECK_VAL +( +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ +, -1); + +1643 +Eša_Li¡ + * +þi¡ + = +ad +-> +®bumšfo +. +–i¡ +->clist; + +1644 +Ëngth + = + `eša_li¡_couÁ +( +þi¡ +); + +1645 + `gl_dbg +("Album Ëngth: %d", +Ëngth +); + +1646 +ad +-> +®bumšfo +. +–i¡ +-> +ed™_út + = 0; + +1647  +™em_út + = 0; + +1649  +i + = 0; i < +Ëngth +; i++) { + +1650 +®bum_™em + = + `eša_li¡_Áh +( +þi¡ +, +i +); + +1651 + `GL_CHECK_VAL +( +®bum_™em +, -1); + +1652 + `GL_CHECK_VAL +( +®bum_™em +-> +þu¡” +, -1); + +1653 + `GL_CHECK_VAL +( +®bum_™em +-> +þu¡” +-> +di¥Ïy_Çme +, -1); + +1654 + `GL_CHECK_VAL +( +®bum_™em +-> +þu¡” +-> +uuid +, -1); + +1656 ià( +®bum_™em +-> +þu¡” +-> +ty³ + < +GL_STORE_T_ALL +) { + +1657 +ad +-> +®bumšfo +. +–i¡ +-> +ed™_út +++; + +1659 if( + `gl_g‘_v›w_mode +( +ad +è!ð +GL_VIEW_ALBUMS +) { + +1663 +®bum_™em +-> +™em + = + `–m_g’grid_™em_­³nd +( +·»Á +, +pgic +, + +1664 +®bum_™em +, + +1665 +__gl_®bums_£l_cb +, + +1666 +®bum_™em +); + +1667 +®bum_™em +-> +šdex + = +™em_út +; + +1668 +™em_út +++; + +1669 + `gl_sdbg +("Aµ’d[%s], id=%s.", +®bum_™em +-> +þu¡” +-> +di¥Ïy_Çme +, + +1670 +®bum_™em +-> +þu¡” +-> +uuid +); + +1673 + `_gl_ui_»¡Üe_süÞËr_pos +( +·»Á +); + +1675 +ad +-> +®bumšfo +. +®bums_út + = +™em_út +; + +1676 + `_gl_tže_upd©e_™em_size +( +d©a +, +·»Á +, +çl£ +); + +1677 +GL_PROFILE_OUT +; + +1678 ià( +™em_út +) + +1682 + } +} + + @src/features/gl-entry.c + +18  + ~"gl-’Œy.h +" + +19  + ~"gl-ui-utž.h +" + +20  + ~"gl-utž.h +" + +21  + ~"gl-bu‰Ú.h +" + +22  + ~"gl-ed™f›ld.h +" + +23  + ~"gl-cڌÞb¬.h +" + +24  + ~"gl-debug.h +" + +25  + ~"gl-¡ršgs.h +" + +26  + ~"gl-fs.h +" + +27  + ~"gl-pÝup.h +" + +28  + ~"gl-nÙify.h +" + +30  +_gl_’Œy_t + + tgl_’Œy_s +; + +31  + s_gl_’Œy_t + { + +32 +Evas_Objeù + * + mÏyout +; + +33 +Elm_Objeù_I‹m + * + mnf_™ +; + +34 +Elm_Objeù_I‹m + * + m´e_nf_™ +; + +35 +Evas_Objeù + * + mdÚe_bŠ +; + +37 * + mad +; + +42  + $__gl_’Œy_Ïyout_d–_cb +(* +d©a +, +Evas + * +e +, +Evas_Objeù + * +obj +, + +43 * +ei +) + +45 + `gl_dbg +("Deleteƒntry†ayout ---"); + +46 + `GL_FREEIF +( +d©a +); + +47 + `gl_dbg +("Deleteƒntry†ayout +++"); + +48 + } +} + +50  +Eša_BoÞ + + $__gl_’Œy_pÝ_cb +(* +d©a +, +Elm_Objeù_I‹m + * +™ +) + +52 + `GL_CHECK_FALSE +( +d©a +); + +53 +gl_’Œy_s + * +’Œy_d + = (gl_’Œy_ *) +d©a +; + +54 + `GL_CHECK_FALSE +( +’Œy_d +-> +ad +); + +55 + `gl_dbg +(""); + +58 +Evas_Objeù + * +’Œy + = + `_gl_ed™f›ld_g‘_’Œy +( +’Œy_d +-> +ad +); + +59 + `GL_CHECK_FALSE +( +’Œy +); + +60 + `Eša_BoÞ + (* +pÝ_cb +)(* +d©a +, +Elm_Objeù_I‹m + * +™ +); + +61 +pÝ_cb + = + `evas_objeù_d©a_g‘ +( +’Œy +, "gl_entry_pop_cb_key"); + +63 + `_gl_ed™f›ld_de¡roy_imf +( +’Œy_d +-> +ad +); + +64 ià( +pÝ_cb +) + +65  + `pÝ_cb +( +’Œy_d +-> +ad +, +™ +); + +67  +EINA_TRUE +; + +68 + } +} + +71  + $__gl_’Œy_dÚe_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +73 + `GL_CHECK +( +d©a +); + +74 +gl_’Œy_s + * +’Œy_d + = (gl_’Œy_ *) +d©a +; + +75 + `GL_CHECK +( +’Œy_d +-> +ad +); + +76 + `gl_dbg +(""); + +78 + `_gl_ed™f›ld_hide_imf +( +’Œy_d +-> +ad +); + +79 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +’Œy_d +->ad; + +81 +Evas_Objeù + * +’Œy + = + `_gl_ed™f›ld_g‘_’Œy +( +’Œy_d +-> +ad +); + +82 + `GL_CHECK +( +’Œy +); + +84 (* +´oûss_cb +)(* +d©a +, +boÞ + +b_’‹r +); + +85 +´oûss_cb + = + `evas_objeù_d©a_g‘ +( +’Œy +, "gl_entry_process_cb_key"); + +86 + `GL_CHECK +( +´oûss_cb +); + +88 ià( + `´oûss_cb +( +’Œy_d +-> +ad +, +çl£ +) == 0) + +89 + `evas_objeù_sm¬t_ÿÎback_d– +( +obj +, "clicked", + +90 +__gl_’Œy_dÚe_cb +); + +92 +ad +-> +’Œyšfo +. +nf_™ + = +NULL +; + +93 + `GL_FREEIF +( +ad +-> +®bumšfo +. +‹mp_®bum_Çme +); + +94 + } +} + +96  + $__gl_’Œy_ÿnûl_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +98 + `GL_CHECK +( +obj +); + +99 + `GL_CHECK +( +d©a +); + +100 + `gl_dbg +(""); + +102 + `_gl_ed™f›ld_hide_imf +( +d©a +); + +103 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +104 + `GL_IF_DEL_OBJ +( +ad +-> +pÝupšfo +. +pÝup +); + +105 + `GL_FREEIF +( +ad +-> +®bumšfo +. +‹mp_®bum_Çme +); + +106 + } +} + +109  + $__gl_’Œy_Œªs_fšished_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +111 + `evas_objeù_sm¬t_ÿÎback_d– +( +obj +, +GL_TRANS_FINISHED +, + +112 +__gl_’Œy_Œªs_fšished_cb +); + +113 + `GL_CHECK +( +d©a +); + +114 + `gl_dbg +(""); + +116 +Evas_Objeù + * +’Œy + = + `_gl_ed™f›ld_g‘_’Œy +( +d©a +); + +117 + `GL_CHECK +( +’Œy +); + +119 (* +Œªs™_cb +)(* +d©a +); + +120 +Œªs™_cb + = + `evas_objeù_d©a_g‘ +( +’Œy +, "gl_entry_transit_cb_key"); + +121 ià( +Œªs™_cb +) + +122 + `Œªs™_cb +( +d©a +); + +124 + } +} + +131  + $__gl_’Œy_push_v›w +(* +d©a +, +Evas_Objeù + * +·»Á +, + +132 +Evas_Objeù + * +obj +, * +t™Ë +, + +133 +gl_’Œy_s + * +’Œy_d +) + +135 + `gl_dbg +(""); + +136 + `GL_CHECK_VAL +( +·»Á +, -1); + +137 + `GL_CHECK_VAL +( +d©a +, -1); + +138 + `GL_CHECK_VAL +( +’Œy_d +, -1); + +139 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +140 +Evas_Objeù + * +Ëá_bŠ + = +NULL +; + +141 +Evas_Objeù + * +right_bŠ + = +NULL +; + +143 +right_bŠ + = + `_gl_but_ü—‹_image_but +( +·»Á +, +NULL +, +GL_STR_ID_SAVE +, + +144 +NULL +, +__gl_’Œy_dÚe_cb +, +’Œy_d +, +EINA_FALSE +); + +145 + `GL_CHECK_VAL +( +right_bŠ +, -1); + +146 +ad +-> +’Œyšfo +. +dÚe_bŠ + = +right_bŠ +; + +147 +’Œy_d +-> +dÚe_bŠ + = +right_bŠ +; + +150 +Ëá_bŠ + = + `_gl_but_ü—‹_image_but +( +·»Á +, +NULL +, +GL_STR_ID_CANCEL +, + +151 +NULL +, +__gl_’Œy_ÿnûl_cb +, +d©a +, +EINA_FALSE +); + +152 + `GL_CHECK_VAL +( +Ëá_bŠ +, -1); + +154 + `–m_objeù_·¹_cڋÁ_£t +( +·»Á +, "bu‰Ú1", +Ëá_bŠ +); + +155 + `–m_objeù_·¹_cڋÁ_£t +( +·»Á +, "bu‰Ú2", +right_bŠ +); + +162 + } +} + +164  + $_gl_pÝup_ü—‹_fÞd”_imf_chªged_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ev’t_šfo +) + +166 + `GL_CHECK +( +d©a +); + +167 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +168 cÚ¡ * +’Œy_d©a + = +NULL +; + +169 * +Çme + = +NULL +; + +170  +Ãw_¡r +[ +GL_ALBUM_NAME_LEN_MAX +] = {0,}; + +172 +’Œy_d©a + = + `–m_’Œy_’Œy_g‘ +( +ad +-> +’Œyšfo +. +’Œy +); + +173 +Çme + = + `–m_’Œy_m¬kup_to_utf8 +( +’Œy_d©a +); + +174 + `GL_CHECK +( +Çme +); + +176 ià(! + `_gl_fs_v®id©e_Çme +( +Çme +)) { + +177 + `¡ºýy +( +Ãw_¡r +, +Çme +, +GL_ALBUM_NAME_LEN_MAX + - 1); + +178  +pos™iÚ + = + `–m_’Œy_cursÜ_pos_g‘ +( +ad +-> +’Œyšfo +. +’Œy +); + +179 + `–m_’Œy_’Œy_£t +( +ad +-> +’Œyšfo +. +’Œy +, + `–m_’Œy_utf8_to_m¬kup +×d-> +®bumšfo +. +‹mp_®bum_Çme +)); + +180 + `–m_’Œy_cursÜ_begš_£t +( +ad +-> +’Œyšfo +. +’Œy +); + +181 + `–m_’Œy_cursÜ_pos_£t +( +ad +-> +’Œyšfo +. +’Œy +, +pos™iÚ + - 1); + +182 + `_gl_nÙify_ü—‹_nÙišfo +( + `_gl_¡r +( +GL_STR_ID_INVALID_INPUT_PARAMETER +)); + +183 + `GL_FREEIF +( +Çme +); + +186 + `GL_FREEIF +( +ad +-> +®bumšfo +. +‹mp_®bum_Çme +); + +187 +ad +-> +®bumšfo +. +‹mp_®bum_Çme + = + `¡rdup +( +Çme +); + +188 + `ä“ +( +Çme +); + +189 + } +} + +191  + $_showFšishedCb +(* +d©a +, +Evas_Objeù + * +obj +, * +ev’t_šfo +) + +193 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +194 + `_gl_ed™f›ld_show_imf +( +ad +); + +195 + `evas_objeù_sm¬t_ÿÎback_d– +( +ad +-> +pÝupšfo +. +pÝup +, "show,finished", + +196 +_showFšishedCb +); + +197 + } +} + +199  + $_gl_’Œy_ü—‹_v›w +(* +d©a +, * +Çme +, * +t™Ë +) + +201 + `GL_CHECK_VAL +( +d©a +, -1); + +202 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +203 +Evas_Objeù + * +’Œy_ly + = +NULL +; + +204 + `gl_dbg +(""); + +206 +gl_’Œy_s + * +’Œy_d + = +NULL +; + +207 +’Œy_d + = ( +gl_’Œy_s + *) + `ÿÎoc +(1, (gl_entry_s)); + +208 + `GL_CHECK_VAL +( +’Œy_d +, -1); + +210 ià( +ad +-> +pÝupšfo +. +pÝup +) { + +211 + `GL_IF_DEL_OBJ +( +ad +-> +pÝupšfo +. +pÝup +); + +212 +ad +-> +pÝupšfo +. +pÝup + = +NULL +; + +215 +Evas_Objeù + * +pÝup + = +NULL +; + +216 +pÝup + = + `–m_pÝup_add +( +ad +-> +maššfo +. +Ïyout +); + +217 +ad +-> +pÝupšfo +. +pÝup + =…opup; + +218 + `evas_objeù_size_hšt_weight_£t +( +pÝup +, +EVAS_HINT_EXPAND +, + +219 +EVAS_HINT_EXPAND +); + +221 + `_gl_ui_£t_Œª¦©e_·¹_¡r +( +pÝup +, "t™Ë,‹xt", +t™Ë +); + +223 +’Œy_ly + = + `–m_Ïyout_add +( +pÝup +); + +224 + `–m_Ïyout_fže_£t +( +’Œy_ly +, +GL_EDJ_FILE +, "popup_input_text"); + +226 +Evas_Objeù + * +’Œy + = + `–m_’Œy_add +( +’Œy_ly +); + +227 ià( +’Œy + =ð +NULL +) { + +228 + `GL_IF_DEL_OBJ +( +’Œy_ly +); + +229 + `GL_IF_DEL_OBJ +( +pÝup +); + +230 ià( +’Œy_d +) { + +231 + `ä“ +( +’Œy_d +); + +236 + `–m_’Œy_sšgË_lše_£t +( +’Œy +, +EINA_TRUE +); + +237 + `–m_’Œy_süÞÏbË_£t +( +’Œy +, +EINA_TRUE +); + +238 + `–m_objeù_·¹_cڋÁ_£t +( +’Œy_ly +, "–m.sw®low.cڋÁ", +’Œy +); + +239 + `–m_’Œy_úp_mode_£t +( +’Œy +, +ELM_CNP_MODE_PLAINTEXT +); + +240 + `–m_’Œy_šput_·Ãl_Ïyout_£t +( +’Œy +, +ELM_INPUT_PANEL_LAYOUT_NORMAL +); + +241 + `–m_’Œy_šput_·Ãl_Ïyout_v¬ŸtiÚ_£t +( +’Œy +, +ELM_INPUT_PANEL_LAYOUT_NORMAL_VARIATION_FILENAME +); + +243 +ad +-> +’Œyšfo +. +’Œy + =ƒntry; + +244 +ad +-> +’Œyšfo +. +cڋxt + = + `–m_’Œy_imf_cڋxt_g‘ +×d->’Œyšfo. +’Œy +); + +245 +ad +-> +’Œyšfo +. +ed™f›ld + = +’Œy_ly +; + +246 + `evas_objeù_sm¬t_ÿÎback_add +( +’Œy +, "chªged", ( +Evas_Sm¬t_Cb +) +_gl_pÝup_ü—‹_fÞd”_imf_chªged_cb +, +ad +); + +248 * +Ãw_Çme + = +NULL +; + +249 * +fuÎ_·th + = +NULL +; + +250 +fuÎ_·th + = (*) + `_gl_fs_g‘_unique_Ãw_®bum_Çme +( +GL_DEFAULT_PATH_IMAGES +, +GL_STR_ID_ALBUM_DEFAULT +, & +Ãw_Çme +); + +251 + `__gl_ed™f›ld_£t_’Œy +( +ad +, +’Œy_ly +, +’Œy +, +Ãw_Çme +); + +252 + `–m_’Œy_£Ëù_®l +( +’Œy +); + +253 + `GL_FREEIF +( +Ãw_Çme +); + +254 + `GL_FREEIF +( +fuÎ_·th +); + +255 + `–m_objeù_cڋÁ_£t +( +pÝup +, +’Œy_ly +); + +256 + `evas_objeù_show +( +pÝup +); + +258 +’Œy_d +-> +ad + =‡d; + +260 + `__gl_’Œy_push_v›w +( +ad +, +pÝup +, +NULL +, +t™Ë +, + +261 +’Œy_d +); + +264 + `“xt_objeù_ev’t_ÿÎback_add +( +pÝup +, +EEXT_CALLBACK_BACK +, + +265 +__gl_’Œy_ÿnûl_cb +, +’Œy_d +-> +ad +); + +266 + `evas_objeù_sm¬t_ÿÎback_add +( +pÝup +, "show,finished", + +267 +_showFšishedCb +, +’Œy_d +-> +ad +); + +268 +ad +-> +’Œyšfo +. +b_hide_s + = +Œue +; + +271 + } +} + +273  + $_gl_’Œy_»sume_v›w +(* +d©a +) + +275 + `GL_CHECK_VAL +( +d©a +, -1); + +276 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +277 +Elm_Objeù_I‹m + * +tÝ_nf_™ + = +NULL +; + +279 ià(! +ad +-> +’Œyšfo +. +nf_™ +) + +282 +tÝ_nf_™ + = + `–m_Çviäame_tÝ_™em_g‘ +( +ad +-> +maššfo +. +Çviäame +); + +283 ià( +ad +-> +’Œyšfo +. +nf_™ + !ð +tÝ_nf_™ +) { + +284 + `gl_dbg +("Hide Entry cursor‡nd IMF"); + +285 + `_gl_ed™f›ld_hide_imf +( +ad +); + +286 } ià( +ad +-> +’Œyšfo +. +ed™f›ld +) { + +288 ià( +ad +-> +pÝupšfo +. +pÝup +) { + +289 + `gl_dbg +("Hide Entry cursor‡nd IMF"); + +290 + `_gl_ed™f›ld_hide_imf +( +ad +); + +292 + `gl_dbg +("Show Entry cursor‡nd IMF"); + +293 + `_gl_ed™f›ld_show_imf +( +ad +); + +297 + } +} + + @src/features/gl-main.c + +18  + ~"gl-debug.h +" + +19  + ~"gl-maš.h +" + +20  + ~"gl-cڌÞb¬.h +" + +21  + ~"gl-ui-utž.h +" + +22  + ~"gl-utž.h +" + +23  + ~"gl-®bums.h +" + +24  + ~"gl-ùxpÝup.h +" + +25  + ~"gl-ed™f›ld.h +" + +26  + ~"gl-nÙify.h +" + +27  + ~"gl-th»ad-utž.h +" + +28  + ~"gl-pÝup.h +" + +29  + ~"gl-¡ršgs.h +" + +30  + ~"gl-thumbs.h +" + +31  + ~"gl-bu‰Ú.h +" + +32  + ~"gl-tže.h +" + +33  + ~"gl-db-upd©e.h +" + +34  + ~"gl-tim–še.h +" + +36  + #GL_BG_COLOR_DEFAULT + 0 + + ) + +37  + #GL_BG_COLOR_A + 255 + + ) + +39  + $__gl_maš_wš_d–_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +41 + `gl_dbgW +("_gl_main_win_del_cb!!"); + +42 + `GL_CHECK +( +d©a +); + +44 + `–m_ex™ +(); + +45 + } +} + +56  + $__gl_maš_wš_rÙ_chªged_cb +(* +d©a +, +Evas_Objeù + * +obj +, + +57 * +ev’t +) + +59 + `GL_CHECK +( +d©a +); + +60 + `GL_CHECK +( +obj +); + +61 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +62 + `GL_CHECK +( +ad +-> +maššfo +. +wš +); + +65  +chªged_ªg + = + `–m_wš_rÙ©iÚ_g‘ +( +obj +); + +66 + `gl_dbg +("New‡ngË: %d, old‡ngË: %d", +chªged_ªg +, + +67 +ad +-> +maššfo +. +rÙ©e_mode +); + +68 ià( +chªged_ªg + =ð +ad +-> +maššfo +. +rÙ©e_mode +) + +71 +ad +-> +maššfo +. +rÙ©e_mode + = +chªged_ªg +; + +73 +ug_ev’t + +evt + = +UG_EVENT_NONE +; + +75  +chªged_ªg +) { + +76  +APP_DEVICE_ORIENTATION_0 +: + +77 +evt + = +UG_EVENT_ROTATE_PORTRAIT +; + +79  +APP_DEVICE_ORIENTATION_90 +: + +80 +evt + = +UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN +; + +82  +APP_DEVICE_ORIENTATION_180 +: + +83 +evt + = +UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN +; + +85  +APP_DEVICE_ORIENTATION_270 +: + +86 +evt + = +UG_EVENT_ROTATE_LANDSCAPE +; + +89 + `ug_£nd_ev’t +( +evt +); + +91  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +92 + `_gl_ui_rÙ©e_v›w +( +d©a +, +v›w_mode +); + +93 + `_gl_tim–še_rÙ©e_v›w +( +d©a +); + +97 ià( +ad +-> +’Œyšfo +. +b_hide_toÞb¬ +) { + +98 + `_gl_ui_£t_toÞb¬_¡©e +( +d©a +, +ad +-> +’Œyšfo +. +b_hide_toÞb¬ +); + +100 + } +} + +103  +Evas_Objeù + * + $__gl_maš_ü—‹_bg +( +Evas_Objeù + * +·»Á +) + +105 +GL_PROFILE_IN +; + +106 + `GL_CHECK_NULL +( +·»Á +); + +107 +Evas_Objeù + * +bg + = +NULL +; + +109 +bg + = + `evas_objeù_»ùªgË_add +( + `evas_objeù_evas_g‘ +( +·»Á +)); + +110 + `evas_objeù_cÞÜ_£t +( +bg +, +GL_BG_COLOR_DEFAULT +, GL_BG_COLOR_DEFAULT, + +111 +GL_BG_COLOR_DEFAULT +, +GL_BG_COLOR_A +); + +112 + `evas_objeù_size_hšt_weight_£t +( +bg +, +EVAS_HINT_EXPAND +, + +113 +EVAS_HINT_EXPAND +); + +114 + `–m_wš_»size_objeù_add +( +·»Á +, +bg +); + +115 + `evas_objeù_show +( +bg +); + +117 +GL_PROFILE_OUT +; + +118  +bg +; + +119 + } +} + +122  +Evas_Objeù + * + $__gl_maš_ü—‹_cÚfÜm +( +Evas_Objeù + * +·»Á +) + +124 +GL_PROFILE_IN +; + +125 + `GL_CHECK_NULL +( +·»Á +); + +126 +Evas_Objeù + * +cÚfÜm + = +NULL +; + +127 +cÚfÜm + = + `–m_cÚfÜmªt_add +( +·»Á +); + +128 + `evas_objeù_size_hšt_weight_£t +( +cÚfÜm +, +EVAS_HINT_EXPAND +, + +129 +EVAS_HINT_EXPAND +); + +130 + `evas_objeù_size_hšt_®ign_£t +( +cÚfÜm +, +EVAS_HINT_FILL +, EVAS_HINT_FILL); + +131 + `–m_wš_»size_objeù_add +( +·»Á +, +cÚfÜm +); + +132 + `evas_objeù_show +( +cÚfÜm +); + +133 +GL_PROFILE_OUT +; + +134  +cÚfÜm +; + +135 + } +} + +137  + $__gl_maš_ü—‹_ù¾_ly +( +gl_­pd©a + * +ad +, +Evas_Objeù + * +·»Á +) + +139 +GL_PROFILE_IN +; + +140 + `GL_CHECK_VAL +( +·»Á +, -1); + +141 + `GL_CHECK_VAL +( +ad +, -1); + +143 +Evas_Objeù + * +Ïyout + = + `_gl_ù¾_add_Ïyout +( +·»Á +); + +144 + `GL_CHECK_VAL +( +Ïyout +, -1); + +145 +ad +-> +ù¾šfo +. +ù¾b¬_v›w_ly + = +Ïyout +; + +148 + `–m_objeù_·¹_cڋÁ_£t +( +·»Á +, "–m.sw®low.cڋÁ", +Ïyout +); + +149 +GL_PROFILE_OUT +; + +151 + } +} + +153  +Evas_Objeù + * + $__gl_maš_ü—‹_ly +( +Evas_Objeù + * +·»Á +) + +155 +GL_PROFILE_IN +; + +156 + `GL_CHECK_NULL +( +·»Á +); + +157 +Evas_Objeù + * +Ïyout + = +NULL +; + +159 +Ïyout + = + `–m_Ïyout_add +( +·»Á +); + +160 + `GL_CHECK_NULL +( +Ïyout +); + +162 + `–m_Ïyout_theme_£t +( +Ïyout +, "layout", "application", "default"); + +163 + `evas_objeù_size_hšt_weight_£t +( +Ïyout +, +EVAS_HINT_EXPAND +, + +164 +EVAS_HINT_EXPAND +); + +165 + `evas_objeù_show +( +Ïyout +); + +166 +GL_PROFILE_OUT +; + +167  +Ïyout +; + +168 + } +} + +170  +Evas_Objeù + * + $__gl_maš_ü—‹_Çviäame +( +Evas_Objeù + * +·»Á +) + +172 +GL_PROFILE_IN +; + +173 + `GL_CHECK_NULL +( +·»Á +); + +174 +Evas_Objeù + * +nf + = +NULL +; + +175 +nf + = + `–m_Çviäame_add +( +·»Á +); + +177 + `–m_Çviäame_´ev_bŠ_auto_pushed_£t +( +nf +, +EINA_FALSE +); + +179 + `“xt_objeù_ev’t_ÿÎback_add +( +nf +, +EEXT_CALLBACK_BACK +, +“xt_Çviäame_back_cb +, + +180 +NULL +); + +182 + `“xt_objeù_ev’t_ÿÎback_add +( +nf +, +EEXT_CALLBACK_MORE +, +“xt_Çviäame_mÜe_cb +, + +183 +NULL +); + +184 + `evas_objeù_show +( +nf +); + +185 + `gl_dbg +("naviframe‡dded"); + +186 +GL_PROFILE_OUT +; + +187  +nf +; + +188 + } +} + +190  +Eša_BoÞ + + $__gl_maš_»g_idËr_cb +(* +d©a +) + +192 + `gl_dbg +("start"); + +193 + `GL_CHECK_CANCEL +( +d©a +); + +194 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +197 ià(! +ad +-> +maššfo +. +b_»ged_idËr +) { + +198 +ad +-> +maššfo +. +b_»ged_idËr + = +Œue +; + +199 + `gl_dbg +("next idler"); + +200  +ECORE_CALLBACK_PASS_ON +; + +204 + `_gl_d©a_š™ +( +ad +); + +206 + `_gl_db_upd©e_»g_cb +( +d©a +); + +207 #ifdeà +_USE_SVI + + +209 + `_gl_š™_svi +( +d©a +); + +212 + `_gl_dlݒ_imagev›w” +( +d©a +); + +214 + `GL_IF_DEL_TIMER +( +ad +-> +maššfo +. +»g_idËr +); + +215 + `gl_dbg +("done"); + +216  +ECORE_CALLBACK_CANCEL +; + +217 + } +} + +222  +Eša_BoÞ + + $__gl_maš_pÝ_Ý +(* +d©a +) + +224 + `GL_CHECK_FALSE +( +d©a +); + +225 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +227 * +pÝ_cb + = + `evas_objeù_d©a_g‘ +( +ad +-> +maššfo +. +Çviäame +, + +228 +GL_NAVIFRAME_POP_CB_KEY +); + +229 ià( +pÝ_cb +) { + +230 + `Eša_BoÞ + (* +_pÝ_cb +è(* +d©a +); + +231 +_pÝ_cb + = +pÝ_cb +; + +233 ià( + `_pÝ_cb +( +d©a +)) { + +235  +EINA_FALSE +; + +239 + `GL_CHECK_FALSE +( +ad +-> +maššfo +. +wš +); + +240 + `gl_dbgW +("Lower Galleryo background!"); + +241 + `–m_wš_low” +( +ad +-> +maššfo +. +wš +); + +242  +EINA_FALSE +; + +243 + } +} + +245  +Eša_BoÞ + + $__gl_maš_pÝ_cb +(* +d©a +, +Elm_Objeù_I‹m + * +™ +) + +247 + `GL_CHECK_FALSE +( +d©a +); + +248  + `__gl_maš_pÝ_Ý +( +d©a +); + +249 + } +} + +255  + $__gl_maš_push_v›w +(* +d©a +, +Evas_Objeù + * +·»Á +, Evas_Objeù * +obj +) + +257 +GL_PROFILE_IN +; + +258 + `GL_CHECK_VAL +( +obj +, -1); + +259 + `GL_CHECK_VAL +( +·»Á +, -1); + +260 + `GL_CHECK_VAL +( +d©a +, -1); + +261 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +262 +Elm_Objeù_I‹m + * +nf_™ + = +NULL +; + +263 +Evas_Objeù + * +´ev_bŠ + = +NULL +; + +274 + `GL_CHECK_VAL +( +ad +-> +maššfo +. +wš +, -1); + +275 +´ev_bŠ + = + `_gl_but_ü—‹_but +( +·»Á +, +NULL +, NULL, + +276 +GL_BUTTON_STYLE_NAVI_PRE +, +NULL +, NULL); + +277 + `GL_CHECK_VAL +( +´ev_bŠ +, -1); + +279 +nf_™ + = + `–m_Çviäame_™em_push +( +·»Á +, +NULL +, +´ev_bŠ +, NULL, +obj +, + +280 +NULL +); + +281 +Evas_Objeù + * +un£t + = + `–m_objeù_™em_·¹_cڋÁ_un£t +( +nf_™ +, +GL_NAVIFRAME_PREV_BTN +); + +282 + `evas_objeù_hide +( +un£t +); + +283 +ad +-> +ù¾šfo +. +nf_™ + =‚f_it; + +284 + `–m_Çviäame_™em_pÝ_cb_£t +( +nf_™ +, +__gl_maš_pÝ_cb +, +d©a +); + +286 +GL_PROFILE_OUT +; + +288 + } +} + +291  + $__gl_maš_add_v›w +(* +d©a +, +Evas_Objeù + * +·»Á +) + +293 +GL_PROFILE_IN +; + +294 + `GL_CHECK_VAL +( +·»Á +, -1); + +295 + `GL_CHECK_VAL +( +d©a +, -1); + +296 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +299 +Evas_Objeù + * +ge¡u» + = + `_gl_tže_add_ge¡u» +( +d©a +, +·»Á +); + +300 ià( +ge¡u» + =ð +NULL +) + +301 + `gl_dbgE +("Failedo create gesture!"); + +303 + `–m_objeù_·¹_cڋÁ_£t +( +·»Á +, "ge¡u»", +ge¡u» +); + +305 + `__gl_maš_push_v›w +( +d©a +, +ad +-> +maššfo +. +Çviäame +, + +306 +ad +-> +ù¾šfo +. +ù¾b¬_ly +); + +308 +GL_PROFILE_OUT +; + +310 + } +} + +312  +Evas_Objeù + * + $__gl_maš_ü—‹_wš +(* +d©a +, cÚ¡ * +Çme +) + +314 +GL_PROFILE_IN +; + +315 + `GL_CHECK_NULL +( +Çme +); + +316 + `GL_CHECK_NULL +( +d©a +); + +317 +Evas_Objeù + * +wš + = +NULL +; + +319 +wš + = + `–m_wš_add +( +NULL +, +Çme +, +ELM_WIN_BASIC +); + +320 + `GL_CHECK_NULL +( +wš +); + +338 ià( + `–m_wš_wm_rÙ©iÚ_suµÜ‹d_g‘ +( +wš +)) { + +339 cÚ¡  +rÙs +[3] = { +APP_DEVICE_ORIENTATION_0 +, + +340 +APP_DEVICE_ORIENTATION_90 +, + +341 +APP_DEVICE_ORIENTATION_270 + }; + +342 + `–m_wš_wm_rÙ©iÚ_avažabË_rÙ©iÚs_£t +( +wš +, +rÙs +, 3); + +345 + `–m_wš_wm_rÙ©iÚ_´eã¼ed_rÙ©iÚ_£t +( +wš +, -1); + +347 + `–m_wš_autod–_£t +( +wš +, +EINA_TRUE +); + +348 + `–m_wš_t™Ë_£t +( +wš +, +Çme +); + +349 + `evas_objeù_sm¬t_ÿÎback_add +( +wš +, "delete,request", + +350 +__gl_maš_wš_d–_cb +, +d©a +); + +351 + `evas_objeù_sm¬t_ÿÎback_add +( +wš +, "wm,rotation,changed", + +352 +__gl_maš_wš_rÙ_chªged_cb +, +d©a +); + +353 + `evas_objeù_show +( +wš +); + +354 +GL_PROFILE_OUT +; + +355  +wš +; + +356 + } +} + +359  + $_gl_maš_add_»g_idËr +(* +d©a +) + +361 + `GL_CHECK_VAL +( +d©a +, -1); + +362 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +363 ià(! +ad +-> +maššfo +. +b_»ged_idËr + && !ad->maššfo. +»g_idËr +) { + +364 + `gl_dbgW +("Register idler!"); + +365 +ad +-> +maššfo +. +»g_idËr + = + `ecÜe_tim”_add +(0.6f, +__gl_maš_»g_idËr_cb +, + +366 +d©a +); + +369 + } +} + +382  + $_gl_maš_ü—‹_v›w +( +gl_­pd©a + * +ad +) + +384 +GL_PROFILE_IN +; + +385 + `GL_CHECK_VAL +( +ad +, -1); + +387 + `–m_theme_ex‹nsiÚ_add +( +NULL +, +GL_EDJ_FILE +); + +389 +ad +-> +maššfo +. +rÙ©e_mode + = +APP_DEVICE_ORIENTATION_0 +; + +390 + `gl_dbg +("In™ŸÈrÙ©iÚ mode: %d", +ad +-> +maššfo +. +rÙ©e_mode +); + +392 +ad +-> +maššfo +. +wš + = + `__gl_maš_ü—‹_wš +×d, +PACKAGE +); + +393 + `GL_CHECK_FALSE +( +ad +-> +maššfo +. +wš +); + +395 +ad +-> +maššfo +. +bg + = + `__gl_maš_ü—‹_bg +×d->maššfo. +wš +); + +396 + `GL_CHECK_VAL +( +ad +-> +maššfo +. +bg +, -1); + +398 cÚ¡ * +¡r + = "mobile"; + +399 + `–m_wš_´ofžes_£t +( +ad +-> +maššfo +. +wš +, & +¡r +, 1); + +406 + `–m_wš_šdiÿtÜ_mode_£t +( +ad +-> +maššfo +. +wš +, +ELM_WIN_INDICATOR_SHOW +); + +407 + `–m_wš_šdiÿtÜ_Ýac™y_£t +( +ad +-> +maššfo +. +wš +, + +408 +ELM_WIN_INDICATOR_TRANSPARENT +); + +410 +Evas_Objeù + * +cÚfÜm + = + `__gl_maš_ü—‹_cÚfÜm +( +ad +-> +maššfo +. +wš +); + +411 + `GL_CHECK_VAL +( +cÚfÜm +, -1); + +413 + `–m_wš_cÚfÜmªt_£t +( +ad +-> +maššfo +. +wš +, +EINA_TRUE +); + +415 + `–m_objeù_sigÇl_em™ +( +cÚfÜm +, "elm,state,indicator,overlap", ""); + +416 + `evas_objeù_d©a_£t +( +cÚfÜm +, "ov”Ïp", (*) +EINA_TRUE +); + +418 +ad +-> +maššfo +. +Ïyout + = + `__gl_maš_ü—‹_ly +( +cÚfÜm +); + +419 + `GL_CHECK_VAL +( +ad +-> +maššfo +. +Ïyout +, -1); + +421 + `–m_objeù_cڋÁ_£t +( +cÚfÜm +, +ad +-> +maššfo +. +Ïyout +); + +423 +ad +-> +maššfo +. +Çviäame + = + `__gl_maš_ü—‹_Çviäame +×d->maššfo. +Ïyout +); + +424 + `GL_CHECK_VAL +( +ad +-> +maššfo +. +Çviäame +, -1); + +426 + `–m_objeù_·¹_cڋÁ_£t +( +ad +-> +maššfo +. +Ïyout +, "elm.swallow.content", + +427 +ad +-> +maššfo +. +Çviäame +); + +429 + `evas_objeù_d©a_£t +( +ad +-> +maššfo +. +Çviäame +, +GL_NAVIFRAME_OBJ_DATA_KEY +, + +430 +cÚfÜm +); + +432 + `evas_objeù_d©a_£t +( +ad +-> +maššfo +. +Çviäame +, "gl_obj_key_gallery_paused", (*)0); + +435 +ad +-> +ù¾šfo +. +ù¾b¬_ly + = + `_gl_ù¾_add_maš_Ïyout +×d-> +maššfo +. +Çviäame +); + +436 + `GL_CHECK_VAL +( +ad +-> +ù¾šfo +. +ù¾b¬_ly +, -1); + +438 + `__gl_maš_ü—‹_ù¾_ly +( +ad +,‡d-> +ù¾šfo +. +ù¾b¬_ly +); + +443 + `__gl_maš_add_v›w +( +ad +,‡d-> +ù¾šfo +. +ù¾b¬_v›w_ly +); + +448 + `_gl_ù¾_£t_b_mode +( +ad +, +GL_CTRL_TAB_INIT +); + +449 + `gl_dbg +("done"); + +450 +GL_PROFILE_OUT +; + +452 + } +} + +454  + $_gl_maš_þ—r_v›w +( +gl_­pd©a + * +ad +) + +456 + `GL_CHECK_VAL +( +ad +, -1); + +458 + `evas_objeù_sm¬t_ÿÎback_d– +( +ad +-> +maššfo +. +wš +, "wm,rotation,changed", + +459 +__gl_maš_wš_rÙ_chªged_cb +); + +460 + `_gl_ùxpÝup_d– +( +ad +); + +461 + `–m_theme_ex‹nsiÚ_d– +( +NULL +, +GL_EDJ_FILE +); + +463 + } +} + +465 +Eša_BoÞ + + $_gl_maš_upd©e_v›w +(* +d©a +) + +467 +GL_PROFILE_IN +; + +468 + `GL_CHECK_CANCEL +( +d©a +); + +469 + `gl_dbg +("start"); + +471 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +473 + `_gl_d©a_š™ +( +ad +); + +474 + `gl_dbg +("DB initialization:done"); + +476 + `_gl_d©a_g‘_þu¡”_li¡ +( +ad +); + +477 + `GL_CHECK_FALSE +( +ad +-> +®bumšfo +. +–i¡ +); + +478 + `gl_dbg +("_gl_data_get_cluster_list:done"); + +479 + `_gl_ù¾_show_v›w +( +d©a +, +GL_STR_ALBUMS +); + +480 + `gl_dbg +("done"); + +481 +GL_PROFILE_OUT +; + +482  +ECORE_CALLBACK_CANCEL +; + +483 + } +} + +485  + $_gl_maš_»£t_v›w +(* +d©a +) + +487 + `GL_CHECK_VAL +( +d©a +, -1); + +488 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +489 + `GL_CHECK_VAL +( +ad +-> +maššfo +. +wš +, -1); + +490  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +491 + `gl_dbg +(""); + +493 ià( +v›w_mode + =ð +GL_VIEW_NONE +) { + +495 + `_gl_d©a_š™ +( +ad +); + +496 + `gl_dbg +("Launch gallery‡the firstime"); + +497 + `_gl_d©a_g‘_þu¡”_li¡ +( +ad +); + +498 + `GL_CHECK_VAL +( +ad +-> +®bumšfo +. +–i¡ +, -1); + +500 + `gl_£t_v›w_mode +( +ad +, +GL_VIEW_ALBUMS +); + +502 + `_gl_ù¾_show_v›w +( +d©a +, +GL_STR_ALBUMS +); + +504 + `_gl_maš_add_»g_idËr +( +d©a +); + +507 + `–m_wš_aùiv©e +( +ad +-> +maššfo +. +wš +); + +509 + } +} + + @src/features/gl-pinchzoom.c + +18  + ~"g®Ëry.h +" + +19  + ~"gl-pšchzoom.h +" + +20  + ~"gl-ge¡u».h +" + +21  + ~"gl-thumbs.h +" + +22  + ~"gl-utž.h +" + +23  + ~"gl-debug.h +" + +24  + ~"gl-thumbs-£l.h +" + +26  +Eša_BoÞ + + $__gl_pšch_zoom_out_cb +( +Evas_Objeù + * +ge¡u» +, * +d©a +) + +28 + `GL_CHECK_CANCEL +( +d©a +); + +29 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +30  +v›w_m + = + `gl_g‘_v›w_mode +( +ad +); + +31 + `gl_dbg +("v›w_m: %d", +v›w_m +); + +33 ià( +ad +-> +pšchšfo +. +zoom_Ëv– + > +GL_ZOOM_DEFAULT +) { + +35 ià( +v›w_m + !ð +GL_VIEW_THUMBS + && v›w_m !ð +GL_VIEW_THUMBS_EDIT + && + +36 +v›w_m + !ð +GL_VIEW_THUMBS_SELECT +) + +37  +PINCH_ZOOM_OUT_OVER +; + +39 ià( +v›w_m + =ð +GL_VIEW_THUMBS + && ! + `_gl_thumbs_g‘_v›w +( +ad +, +NULL +)) + +40  +PINCH_ZOOM_OUT_OVER +; + +42 #ifdeà +_USE_SCROL_HORIZONRAL + + +43 ià( +ad +-> +maššfo +. +rÙ©e_mode + =ð +APP_DEVICE_ORIENTATION_270 + || + +44 +ad +-> +maššfo +. +rÙ©e_mode + =ð +APP_DEVICE_ORIENTATION_90 +) { + +46  +PINCH_ZOOM_OUT_OVER +; + +49 +ad +-> +pšchšfo +. +zoom_Ëv– +--; + +50 ià( + `_gl_thumbs_upd©e_size +( +d©a +, +NULL +) < 0) + +51 +ad +-> +pšchšfo +. +zoom_Ëv– + = +GL_ZOOM_DEFAULT +; + +52  +PINCH_ZOOM_OUT_OVER +; + +55 +PINCH_ZOOM_OUT_OVER +: + +57 + `gl_dbgW +("Pšch zoom out: %d", +ad +-> +pšchšfo +. +zoom_Ëv– +); + +58  +ECORE_CALLBACK_CANCEL +; + +59 + } +} + +61  +Eša_BoÞ + + $__gl_pšch_zoom_š_cb +( +Evas_Objeù + * +ge¡u» +, * +d©a +) + +63 + `GL_CHECK_CANCEL +( +d©a +); + +64 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +65  +v›w_m + = + `gl_g‘_v›w_mode +( +ad +); + +66 + `gl_dbg +("v›w_m: %d", +v›w_m +); + +68 ià(( +ad +-> +pšchšfo +. +zoom_Ëv– + >ð +GL_ZOOM_DEFAULT +) && + +69 ( +ad +-> +pšchšfo +. +zoom_Ëv– + < ( +GL_ZOOM_MAX + - 1))) { + +71 ià( +v›w_m + !ð +GL_VIEW_THUMBS + && v›w_m !ð +GL_VIEW_THUMBS_EDIT + && + +72 +v›w_m + !ð +GL_VIEW_THUMBS_SELECT +) + +73  +PINCH_ZOOM_IN_OVER +; + +75 ià( +v›w_m + =ð +GL_VIEW_THUMBS + && ! + `_gl_thumbs_g‘_v›w +( +ad +, +NULL +)) + +76  +PINCH_ZOOM_IN_OVER +; + +78 #ifdeà +_USE_SCROL_HORIZONRAL + + +79 ià( +ad +-> +maššfo +. +rÙ©e_mode + =ð +APP_DEVICE_ORIENTATION_270 + || + +80 +ad +-> +maššfo +. +rÙ©e_mode + =ð +APP_DEVICE_ORIENTATION_90 +) { + +82  +PINCH_ZOOM_IN_OVER +; + +85 +ad +-> +pšchšfo +. +zoom_Ëv– +++; + +86 ià( + `_gl_thumbs_upd©e_size +( +d©a +, +NULL +) < 0) + +87 +ad +-> +pšchšfo +. +zoom_Ëv– + = +GL_ZOOM_IN_TWO +; + +88  +PINCH_ZOOM_IN_OVER +; + +90 +PINCH_ZOOM_IN_OVER +: + +92 + `gl_dbgW +("Pšch zoom in: %d", +ad +-> +pšchšfo +. +zoom_Ëv– +); + +93  +ECORE_CALLBACK_CANCEL +; + +94 + } +} + +96  + $_gl_pšch_add_ev’t +(* +d©a +, +Evas_Objeù + * +Ïyout +) + +98 + `GL_CHECK_VAL +( +Ïyout +, -1); + +99 + `GL_CHECK_VAL +( +d©a +, -1); + +100 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +102 + `gl_dbg +("Zoom†ev–: %d", +ad +-> +pšchšfo +. +zoom_Ëv– +); + +104 ià( +ad +-> +pšchšfo +. +zoom_Ëv– + !ð +GL_ZOOM_DEFAULT + && + +105 +ad +-> +pšchšfo +. +zoom_Ëv– + !ð +GL_ZOOM_IN_ONE + && + +106 +ad +-> +pšchšfo +. +zoom_Ëv– + !ð +GL_ZOOM_IN_TWO +) { + +107 +ad +-> +pšchšfo +. +zoom_Ëv– + = +GL_ZOOM_IN_ONE +; + +108 + `gl_dbg +("Zoom†evel„eset: GL_ZOOM_IN_ONE"); + +111 +Evas_Objeù + * +ge¡u» + = + `_gl_ge¡u»_add +( +d©a +, +Ïyout +); + +112 + `GL_CHECK_VAL +( +ge¡u» +, -1); + +113 + `_gl_ge¡u»_£t_zoom_š_cb +( +ge¡u» +, +__gl_pšch_zoom_š_cb +, +d©a +); + +114 + `_gl_ge¡u»_£t_zoom_out_cb +( +ge¡u» +, +__gl_pšch_zoom_out_cb +, +d©a +); + +115 + `–m_objeù_·¹_cڋÁ_£t +( +Ïyout +, "ge¡u»", +ge¡u» +); + +116  +mode + = + `gl_g‘_v›w_mode +( +d©a +); + +117 ià( +mode + =ð +GL_VIEW_THUMBS_SELECT +) + +118 +ad +-> +pšchšfo +. +ge¡u»_£l + = +ge¡u» +; + +120 +ad +-> +pšchšfo +. +ge¡u» + = gesture; + +122 + } +} + +124  + $_gl_pšch_»£t_æag +(* +d©a +) + +126 + `GL_CHECK_VAL +( +d©a +, -1); + +127 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +129 + `gl_dbg +("Zoom†ev–: %d", +ad +-> +pšchšfo +. +zoom_Ëv– +); + +131 ià( +ad +-> +pšchšfo +. +zoom_Ëv– + !ð +GL_ZOOM_DEFAULT + && + +132 +ad +-> +pšchšfo +. +zoom_Ëv– + !ð +GL_ZOOM_IN_ONE + && + +133 +ad +-> +pšchšfo +. +zoom_Ëv– + !ð +GL_ZOOM_IN_TWO +) { + +134 +ad +-> +pšchšfo +. +zoom_Ëv– + = +GL_ZOOM_IN_ONE +; + +135 + `gl_dbg +("Zoom†evel„eset: GL_ZOOM_IN_ONE"); + +137  +mode + = + `gl_g‘_v›w_mode +( +d©a +); + +138 +Evas_Objeù + * +ge¡u» + = +NULL +; + +139 ià( +mode + =ð +GL_VIEW_THUMBS_SELECT +) + +140 +ge¡u» + = +ad +-> +pšchšfo +. +ge¡u»_£l +; + +142 +ge¡u» + = +ad +-> +pšchšfo +.gesture; + +143 ià( +ge¡u» +) + +144 + `_gl_ge¡u»_»£t_æags +( +ge¡u» +); + +146 + } +} + + @src/features/gl-thumbs-edit.c + +18  + ~"gl-thumbs-ed™.h +" + +19  + ~"gl-thumbs.h +" + +20  + ~"gl-thumb.h +" + +21  + ~"gl-pšchzoom.h +" + +22  + ~"gl-debug.h +" + +23  + ~"gl-¡ršgs.h +" + +24  + ~"gl-ui-utž.h +" + +25  + ~"gl-utž.h +" + +26  + ~"gl-d©a.h +" + +27  + ~"gl-icÚs.h +" + +28  + ~"gl-cڌÞb¬.h +" + +29  + ~"gl-ùxpÝup.h +" + +30  + ~"gl-´og»ssb¬.h +" + +31  + ~"gl-bu‰Ú.h +" + +32  + ~"gl-nÙify.h +" + +33  + ~"gl-pÝup.h +" + +34  + ~"gl-Ïng.h +" + +35  + ~"gl-ext-exec.h +" + +36  + ~"gl-ext-ug-lßd.h +" + +37  + ~"gl-fs.h +" + +38  + ~"gl-®bums.h +" + +40  + $_gl_thumbs_ed™_g‘_·th +(* +d©a +, ** +fžes +) + +42 + `GL_CHECK_VAL +( +fžes +, 0); + +43 + `GL_CHECK_VAL +( +d©a +, 0); + +44 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +45 + `GL_CHECK_VAL +( +ad +-> +£lšfo +. +–i¡ +, 0); + +46  +i + = 0; + +47 +gl_™em + * +cu¼’t + = +NULL +; + +48 +Eša_Li¡ + * +l + = +NULL +; + +50 + `EINA_LIST_FOREACH +( +ad +-> +£lšfo +. +–i¡ +, +l +, +cu¼’t +) { + +51 ià( +cu¼’t + =ð +NULL + || cu¼’t-> +™em + == NULL || + +52 +cu¼’t +-> +™em +-> +fže_u¾ + =ð +NULL +) { + +53 + `gl_dbgE +("Invalid gitem!"); + +57 +fžes +[ +i +++] = + `g_¡rdup +( +cu¼’t +-> +™em +-> +fže_u¾ +); + +58 + `gl_sdbg +("fže_u¾: %s!", +fžes +[ +i + - 1]); + +60  +i +; + +61 + } +} + +63 #ifdeà +GL_EXTENDED_FEATURES + + +64  + $__gl_thumbs_ed™_sh¬e_cb +(* +d©a +, +Evas_Objeù + * +obj +, + +65 * +ei +) + +67 + `–m_toÞb¬_™em_£Ëùed_£t +(( +Elm_Objeù_I‹m + *) +ei +, +EINA_FALSE +); + +68 + `GL_CHECK +( +d©a +); + +69 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +70 + `gl_dbg +(""); + +72 ià( +ad +-> +ugšfo +. +ug + ||‡d->ugšfo. +b_­p_ÿÎed +) { + +73 + `gl_dbgW +("UG or APP is‡lready†oaded!"); + +77  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +78  +út + = + `_gl_d©a_£Ëùed_li¡_couÁ +( +ad +); + +80 ià( +v›w_mode + =ð +GL_VIEW_THUMBS_EDIT +) { + +81 ià( +út + == 0) { + +82 + `gl_dbg +("Nohumbs selected,„eturn!"); + +83 + `gl_pÝup_ü—‹_pÝup +( +ad +, +GL_POPUP_NOBUT +, + +84 +GL_STR_NO_FILES_SELECTED +); + +88 + `gl_dbgE +("Unknow mode!"); + +91 + `_gl_ext_Ïunch_sh¬e +( +d©a +, +út +, +_gl_thumbs_ed™_g‘_·th +); + +93 + `_gl_thumbs_ed™_pÝ_v›w +( +d©a +); + +94 + } +} + +97  + $__gl_thumbs_ed™_›_cb +(* +d©a +, +Evas_Objeù + * +obj +, + +98 * +ei +) + +100 + `GL_CHECK +( +d©a +); + +101 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +102 + `gl_dbg +(""); + +104 ià( +ad +-> +ugšfo +. +ug + ||‡d->ugšfo. +b_­p_ÿÎed +) { + +105 + `gl_dbgW +("UG or APP is‡lready†oaded!"); + +108 + `_gl_ùxpÝup_d– +( +d©a +); + +110 ià( + `_gl_d©a_£Ëùed_li¡_couÁ +( +ad +) == 0) { + +111 + `gl_dbgW +("Nohumbs selected!"); + +112 + `gl_pÝup_ü—‹_pÝup +( +ad +, +GL_POPUP_NOBUT +, + +113 +GL_STR_NO_FILES_SELECTED +); + +117  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +118 ià( +v›w_mode + =ð +GL_VIEW_THUMBS_EDIT +) { + +119 + `_gl_ext_lßd_› +( +d©a +, +gl_g‘_£Ëùed_fžes_·th_¡r +); + +121 + `gl_dbgE +("Unkonw mode!"); + +124 + `_gl_thumbs_ed™_pÝ_v›w +( +d©a +); + +125 + } +} + +128  + $__gl_thumbs_ed™_cÝy_cb +(* +d©a +, +Evas_Objeù + * +obj +, + +129 * +ei +) + +131 + `GL_CHECK +( +d©a +); + +132 + `_gl_ùxpÝup_d– +( +d©a +); + +133 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +134  +v›w_mode + = + `gl_g‘_v›w_mode +( +d©a +); + +135 + `gl_dbg +(""); + +137 ià( +ad +-> +ugšfo +. +ug + ||‡d->ugšfo. +b_­p_ÿÎed +) { + +138 + `gl_dbgW +("UG or APP is‡lready†oaded!"); + +142 ià( +v›w_mode + =ð +GL_VIEW_THUMBS_EDIT +) { + +143 ià( + `_gl_d©a_£Ëùed_li¡_couÁ +( +d©a +) == 0) { + +144 + `gl_dbgW +("Nohumbs selected!"); + +145 + `gl_pÝup_ü—‹_pÝup +( +d©a +, +GL_POPUP_NOBUT +, + +146 +GL_STR_NO_FILES_SELECTED +); + +150 +ad +-> +®bumšfo +. +fže_mc_mode + = +GL_MC_COPY +; + +151 + `_gl_pÝup_ü—‹_cÝy +( +d©a +, +gl_move_cÝy_to_®bum +); + +153 + `gl_dbgE +("Unknow mode!"); + +155 + } +} + +158  + $__gl_thumbs_ed™_move_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +160 + `–m_toÞb¬_™em_£Ëùed_£t +(( +Elm_Objeù_I‹m + *) +ei +, +EINA_FALSE +); + +161 + `GL_CHECK +( +d©a +); + +162 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +163  +v›w_mode + = + `gl_g‘_v›w_mode +( +d©a +); + +164 + `gl_dbg +(""); + +166 ià( +ad +-> +ugšfo +. +ug + ||‡d->ugšfo. +b_­p_ÿÎed +) { + +167 + `gl_dbgW +("UG or APP is‡lready†oaded!"); + +171 ià( +v›w_mode + =ð +GL_VIEW_THUMBS_EDIT +) { + +172 ià( + `_gl_d©a_£Ëùed_li¡_couÁ +( +d©a +) == 0) { + +173 + `gl_dbgW +("Nohumbs selected!"); + +174 + `gl_pÝup_ü—‹_pÝup +( +d©a +, +GL_POPUP_NOBUT +, + +175 +GL_STR_NO_FILES_SELECTED +); + +179 +ad +-> +®bumšfo +. +fže_mc_mode + = +GL_MC_MOVE +; + +180 + `_gl_pÝup_ü—‹_move +( +d©a +, +gl_move_cÝy_to_®bum +); + +182 + `gl_dbgE +("Unknow mode!"); + +184 + } +} + +186 #ifdeà +_USE_ROTATE_BG + + +187  + $__gl_thumbs_ed™_rÙ©e_Ëá_cb +(* +d©a +, +Evas_Objeù + * +obj +, + +188 * +ei +) + +190 + `GL_CHECK +( +d©a +); + +191 ià( + `_gl_d©a_£Ëùed_li¡_couÁ +( +d©a +) == 0) { + +192 + `gl_dbgW +("Nohumbs selected!"); + +193 + `gl_pÝup_ü—‹_pÝup +( +d©a +, +GL_POPUP_NOBUT +, + +194 +GL_STR_NO_FILES_SELECTED +); + +197 + `_gl_ùxpÝup_d– +( +d©a +); + +198 + `_gl_rÙ©e_images +( +d©a +, +Œue +); + +199 + } +} + +201  + $__gl_thumbs_ed™_rÙ©e_right_cb +(* +d©a +, +Evas_Objeù + * +obj +, + +202 * +ei +) + +204 + `GL_CHECK +( +d©a +); + +205 ià( + `_gl_d©a_£Ëùed_li¡_couÁ +( +d©a +) == 0) { + +206 + `gl_dbgW +("Nohumbs selected!"); + +207 + `gl_pÝup_ü—‹_pÝup +( +d©a +, +GL_POPUP_NOBUT +, + +208 +GL_STR_NO_FILES_SELECTED +); + +211 + `_gl_ùxpÝup_d– +( +d©a +); + +212 + `_gl_rÙ©e_images +( +d©a +, +çl£ +); + +213 + } +} + +216  + $__gl_thumbs_ed™_ùxpÝup_­³nd +(* +d©a +, +Evas_Objeù + * +·»Á +) + +218 + `gl_dbg +(""); + +219 + `GL_CHECK_VAL +( +·»Á +, -1); + +220 + `GL_CHECK_VAL +( +d©a +, -1); + +221 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +222  +sh¬e_m + = + `gl_g‘_sh¬e_mode +( +ad +); + +224  +ad +-> +gridšfo +. +grid_ty³ +) { + +225  +GL_GRID_T_LOCAL +: + +226  +GL_GRID_T_ALLALBUMS +: + +229 ià( +sh¬e_m + >ð +GL_SHARE_IMAGE_ONE + && + +230 +sh¬e_m + <ð +GL_SHARE_IMAGE_MULTI_JPEG +) + +231 + `_gl_ùxpÝup_­³nd +( +·»Á +, +GL_STR_ID_EDIT_IMAGE +, + +232 +__gl_thumbs_ed™_›_cb +, +d©a +); + +233 + `_gl_ùxpÝup_­³nd +( +·»Á +, +GL_STR_ID_COPY +, + +234 +__gl_thumbs_ed™_cÝy_cb +, +d©a +); + +235 #ifdeà +_USE_ROTATE_BG + + +237 ià( +sh¬e_m + =ð +GL_SHARE_IMAGE_ONE_JPEG + || + +238 +sh¬e_m + =ð +GL_SHARE_IMAGE_MULTI_JPEG +) { + +239 + `_gl_ùxpÝup_­³nd +( +·»Á +, +GL_STR_ID_ROTATE_LEFT +, + +240 +__gl_thumbs_ed™_rÙ©e_Ëá_cb +, + +241 +d©a +); + +242 + `_gl_ùxpÝup_­³nd +( +·»Á +, +GL_STR_ID_ROTATE_RIGHT +, + +243 +__gl_thumbs_ed™_rÙ©e_right_cb +, + +244 +d©a +); + +252 + } +} + +254  + $__gl_thumbs_ed™_mÜe_cb +(* +d©a +, +Evas_Objeù + * +obj +, + +255 * +ei +) + +258 + `GL_CHECK +( +d©a +); + +259 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +260 +Evas_Objeù + * +mÜe + = +NULL +; + +261 +mÜe + = + `_gl_ui_g‘_bŠ +( +NULL +, +ad +-> +gridšfo +. +nf_™ +, +GL_NAVIFRAME_MORE +); + +262 ià( +EINA_TRUE + =ð + `–m_objeù_di§bËd_g‘ +( +mÜe +)) { + +263 + `gl_dbg +("Menu is disabled"); + +267 + `gl_dbg +("Menu is clicked"); + +268 + `_gl_ùxpÝup_ü—‹ +( +d©a +, +obj +, +__gl_thumbs_ed™_ùxpÝup_­³nd +); + +269 + } +} + +272  + $__gl_thumbs_ed™_d– +(* +d©a +) + +274 + `GL_CHECK +( +d©a +); + +275 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +276 + `gl_dbg +(""); + +278 ià( +ad +-> +ugšfo +. +ug + ||‡d->ugšfo. +b_­p_ÿÎed +) { + +279 + `gl_dbgW +("UG or APP is‡lready†oaded!"); + +283  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +284 ià( +v›w_mode + =ð +GL_VIEW_THUMBS_EDIT +) { + +285  +út + = + `_gl_d©a_£Ëùed_li¡_couÁ +( +ad +); + +286 ià( +út + == 0) { + +287 + `gl_dbgW +("Nohumbs selected!"); + +288 + `gl_pÝup_ü—‹_pÝup +( +ad +, +GL_POPUP_NOBUT +, +GL_STR_NO_FILES_SELECTED +); + +292 + `_gl_pÝup_ü—‹_d– +( +d©a +, +GL_POPUP_DEL_FILE +, + +293 +_gl_d©a_£Ëùed_li¡_couÁ +, + +294 +gl_d–_medŸs +, +d©a +); + +296 + `gl_dbgW +("Unknow mode!"); + +298 + } +} + +300  + $__gl_thumbs_ed™_cÝy_move +(* +d©a +) + +302 + `GL_CHECK +( +d©a +); + +303 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +304 + `gl_dbg +(""); + +306 ià( +ad +-> +ugšfo +. +ug + ||‡d->ugšfo. +b_­p_ÿÎed +) { + +307 + `gl_dbgW +("UG or APP is‡lready†oaded!"); + +311  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +312 ià( +v›w_mode + =ð +GL_VIEW_THUMBS_EDIT +) { + +313  +út + = + `_gl_d©a_£Ëùed_li¡_couÁ +( +ad +); + +314 ià( +út + == 0) { + +315 + `gl_dbgW +("Nohumbs selected!"); + +316 + `gl_pÝup_ü—‹_pÝup +( +ad +, +GL_POPUP_NOBUT +, +GL_STR_NO_FILES_SELECTED +); + +320 +ad +-> +gridšfo +. +™ + = +NULL +; + +321 + `_gl_pÝup_ü—‹_cÝy_move +( +d©a +, +_gl_d©a_£Ëùed_li¡_couÁ +, data); + +323 + `gl_dbgW +("Unknow mode!"); + +325 + } +} + +327  + $__gl_thumbs_ed™_ÿnûl_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +329 + `–m_toÞb¬_™em_£Ëùed_£t +(( +Elm_Objeù_I‹m + *) +ei +, +EINA_FALSE +); + +330 + `GL_CHECK +( +d©a +); + +331 + `gl_dbg +(""); + +332 + `_gl_thumbs_ed™_pÝ_v›w +( +d©a +); + +333 + } +} + +335  + $__gl_thumbs_ed™_dÚe_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +337 + `–m_toÞb¬_™em_£Ëùed_£t +(( +Elm_Objeù_I‹m + *) +ei +, +EINA_FALSE +); + +338 + `GL_CHECK +( +d©a +); + +339 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +341 ià( + `_gl_thumbs_g‘_ed™_mode +( +d©a +è=ð +GL_THUMBS_EDIT_COPY + || _gl_thumbs_g‘_ed™_mode(d©aè=ð +GL_THUMBS_EDIT_MOVE +) { + +342 + `__gl_thumbs_ed™_cÝy_move +( +ad +); + +344 + `__gl_thumbs_ed™_d– +( +ad +); + +346 + } +} + +349  + $__gl_thumbs_ed™_£ÏÎ_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +351 + `GL_CHECK +( +d©a +); + +352 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +353  +i + = 0; + +354  +™em_út + = 0; + +355  +£l_®l_út + = 0; + +356  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +357 + `gl_dbg +("v›w_mode: %d.", +v›w_mode +); + +359 +ad +-> +£lšfo +. +ck_¡©e + = ! + `–m_check_¡©e_g‘ +×d->£lšfo. +£Ëù®l_ck +); + +360 ià( +ad +-> +£lšfo +. +£Ëù®l_ck +) { + +361 + `–m_check_¡©e_£t +( +ad +-> +£lšfo +. +£Ëù®l_ck +,‡d->£lšfo. +ck_¡©e +); + +363 + `gl_dbg +("Checkbox s‹: %d", +ad +-> +£lšfo +. +ck_¡©e +); + +364 +Eša_Li¡ + * +medŸs_–i¡ + = +NULL +; + +365 + `_gl_thumbs_g‘_li¡ +( +ad +, &( +medŸs_–i¡ +)); + +367 +™em_út + = + `eša_li¡_couÁ +( +medŸs_–i¡ +); + +368 +£l_®l_út + = +™em_út +; + +369 +gl_™em + * +g™em + = +NULL +; + +370  +i + = 0; i < +™em_út +; i++) { + +371 +g™em + = + `eša_li¡_Áh +( +medŸs_–i¡ +, +i +); + +372 + `GL_CHECK +( +g™em +); + +373 + `GL_CHECK +( +g™em +-> +™em +); + +375 ià( +g™em +-> +checked + =ð +ad +-> +£lšfo +. +ck_¡©e +) + +378 +g™em +-> +checked + = +ad +-> +£lšfo +. +ck_¡©e +; + +379 ià( +ad +-> +£lšfo +. +ck_¡©e + =ð +EINA_TRUE +) { + +380 + `_gl_d©a_£Ëùed_li¡_­³nd +( +ad +, +g™em +); + +381 +g™em +-> +®bum +-> +–i¡ + = + `eša_li¡_­³nd +(gitem->album->elist, gitem); + +383 + `_gl_d©a_£Ëùed_li¡_»move +( +ad +, +g™em +); + +384 +g™em +-> +®bum +-> +–i¡ + = + `eša_li¡_»move +(gitem->album->elist, gitem); + +388 ià( +v›w_mode + =ð +GL_VIEW_THUMBS_EDIT +) + +389 + `_gl_ui_upd©e_»®ized_grid_ck +( +ad +-> +gridšfo +. +v›w +, + +390 +GL_THUMB_CHECKBOX +, +NULL +, + +391 +ad +-> +£lšfo +. +ck_¡©e +); + +393 ià( +ad +-> +£lšfo +. +ck_¡©e +) + +394 +™em_út + = +£l_®l_út +; + +396 +£l_®l_út + = 0; + +398  +tÙ®_£Ëùed_couÁ + = + `eša_li¡_couÁ +( +ad +-> +£lšfo +. +–i¡ +); + +399 + `_gl_nÙify_check_£ÏÎ +( +ad +,‡d-> +gridšfo +. +nf_™ +, +™em_út +, +£l_®l_út +); + +400 ià( +g™em +-> +®bum +-> +™em +) { + +401  +buf +[ +GL_ALBUM_NAME_LEN_MAX +] = { 0, }; + +402 ià( +£l_®l_út + > 0) { + +403 + `–m_objeù_™em_sigÇl_em™ +( +g™em +-> +®bum +-> +™em +, + +406 + `¢´štf +( +buf +, (buf), "%d", +£l_®l_út +); + +408 + `–m_objeù_™em_sigÇl_em™ +( +g™em +-> +®bum +-> +™em +, + +412 + `–m_g’grid_™em_f›lds_upd©e +( +g™em +-> +®bum +-> +™em +, "–m.‹xt.badge", +ELM_GENGRID_ITEM_FIELD_TEXT +); + +415 + `_gl_thumbs_upd©e_Ïb–_‹xt +( +ad +-> +gridšfo +. +nf_™ +, +tÙ®_£Ëùed_couÁ +, +çl£ +); + +416 + } +} + +418 #ifdeà +_USE_APP_SLIDESHOW + + +419  + $__gl_thumbs_ed™_£Ëùed_¦ideshow_cb +(* +d©a +, +Evas_Objeù + * +obj +, + +420 * +ei +) + +422 + `–m_toÞb¬_™em_£Ëùed_£t +(( +Elm_Objeù_I‹m + *) +ei +, +EINA_FALSE +); + +423 + `GL_CHECK +( +d©a +); + +424 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +425 +gl_™em + * +cur_™em + = +NULL +; + +426 +medŸ_cڋÁ_ty³_e + +ty³ + = +MEDIA_CONTENT_TYPE_OTHERS +; + +428 + `_gl_d©a_g‘_fœ¡_™em +( +ty³ +, +ad +-> +£lšfo +. +–i¡ +, & +cur_™em +); + +429 + `GL_CHECK_VAL +( +cur_™em +, -1); + +430 + `gl_ext_lßd_iv_ug +( +ad +, +cur_™em +, +GL_UG_IV_SLIDESHOW_SELECTED +); + +431 + } +} + +434 #ifdeà +GL_EXTENDED_FEATURES + + +435  + $_gl_thumbs_ed™_add_mÜe +(* +d©a +, +Evas_Objeù + * +·»Á +, + +436 +Elm_Objeù_I‹m + * +nf_™ +) + +438 +Evas_Objeù + * +bŠ + = +NULL +; + +440 +bŠ + = + `_gl_but_ü—‹_but +( +·»Á +, +NULL +, NULL, +GL_BUTTON_STYLE_NAVI_MORE +, + +441 +__gl_thumbs_ed™_mÜe_cb +, +d©a +); + +442 + `GL_CHECK_VAL +( +bŠ +, -1); + +444 + `–m_objeù_™em_·¹_cڋÁ_£t +( +nf_™ +, +GL_NAVIFRAME_MORE +, +bŠ +); + +445 + `_gl_ui_di§bË_bŠ +( +bŠ +); + +447 + } +} + +451  + $_gl_thumbs_ed™_add_bŠs +(* +d©a +, +Evas_Objeù + * +·»Á +, + +452 +Elm_Objeù_I‹m + * +nf_™ +) + +454 + `GL_CHECK_VAL +( +nf_™ +, -1); + +455 + `GL_CHECK_VAL +( +·»Á +, -1); + +456 + `GL_CHECK_VAL +( +d©a +, -1); + +457 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +459 + `_gl_ui_þ—r_bŠs +( +d©a +); + +461  +w + = -1, +h + = -1; + +462 + `evas_objeù_geom‘ry_g‘ +( +ad +-> +maššfo +. +wš +, +NULL +, NULL, & +w +, & +h +); + +463 +Edje_Mes§ge_IÁ + * +msg + = (Edje_Mes§ge_IÁ *) + `m®loc +((Edje_Message_Int) + ()); + +464 + `GL_CHECK_VAL +( +msg +, -1); + +465 ià( +ad +-> +gridšfo +. +¥l™_v›w_mode + =ð +DETAIL_VIEW +) { + +466 +msg +-> +v® + = +w +; + +468 +msg +-> +v® + = (( +w + < +h +) ? (w - (w / 3)) : (w - (h / 3))); + +470 + `edje_objeù_mes§ge_£nd +( + `–m_Ïyout_edje_g‘ +( +ad +-> +gridšfo +. +Ïyout +), +EDJE_MESSAGE_INT +, 2, +msg +); + +471 + `ä“ +( +msg +); + +472 + `–m_objeù_sigÇl_em™ +( +ad +-> +gridšfo +. +Ïyout +, "elm,selectall,state,visible", "elm"); + +473 + `_gl_ui_add_£ÏÎ_ck +( +ad +-> +gridšfo +. +Ïyout +, "select.all.area.check", "select.all.area.check", + +474 +__gl_thumbs_ed™_£ÏÎ_cb +, +d©a +); + +476 #ifdeà +_USE_APP_SLIDESHOW + + +478 ià( + `_gl_thumbs_g‘_ed™_mode +( +d©a +è=ð +GL_THUMBS_EDIT_SLIDESHOW +) { + +479 + `gl_dbg +("only displayhe done button for selected slideshow"); + +480 +tb_™ + = + `_gl_ù¾_­³nd_™em +( +toÞb¬ +, +NULL +, +GL_STR_ID_START +, + +481 +__gl_thumbs_ed™_£Ëùed_¦ideshow_cb +, + +482 +d©a +); + +483 + `_gl_ù¾_di§bË_™em +( +tb_™ +, +Œue +); + +489 #ifdeà +GL_EXTENDED_FEATURES + + +491 ià( + `_gl_thumbs_g‘_ed™_mode +( +d©a +è=ð +GL_THUMBS_EDIT_SHARE +) { + +494 +Evas_Objeù + * +bŠ1 + = + `–m_bu‰Ú_add +( +Ïyout +); + +495 +Evas_Objeù + * +bŠ2 + = + `–m_bu‰Ú_add +( +Ïyout +); + +496 + `–m_objeù_¡yË_£t +( +bŠ1 +, "transparent"); + +497 + `–m_objeù_¡yË_£t +( +bŠ2 +, "transparent"); + +498 + `evas_objeù_size_hšt_weight_£t +( +bŠ1 +, +EVAS_HINT_EXPAND +, EVAS_HINT_EXPAND); + +499 + `evas_objeù_size_hšt_weight_£t +( +bŠ2 +, +EVAS_HINT_EXPAND +, EVAS_HINT_EXPAND); + +500 + `evas_objeù_size_hšt_®ign_£t +( +bŠ1 +, 1, 1); + +501 + `evas_objeù_size_hšt_®ign_£t +( +bŠ2 +, 1, 1); + +502 + `evas_objeù_show +( +bŠ1 +); + +503 + `evas_objeù_show +( +bŠ2 +); + +504 + `–m_objeù_·¹_cڋÁ_£t +( +Ïyout +, "–m.sw®low.Ëá", +bŠ1 +); + +505 + `–m_objeù_·¹_cڋÁ_£t +( +Ïyout +, "–m.sw®low.right", +bŠ2 +); + +506 + `evas_objeù_sm¬t_ÿÎback_add +( +bŠ1 +, "þicked", +__gl_thumbs_ed™_ÿnûl_cb +, +ad +); + +507 + `evas_objeù_sm¬t_ÿÎback_add +( +bŠ2 +, "þicked", +__gl_thumbs_ed™_sh¬e_cb +, +ad +); + +508 + `_gl_ui_£t_Œª¦©e_·¹_¡r +( +Ïyout +, "t™Ë_Ëá_‹xt", +GL_STR_ID_CANCEL +); + +509 + `_gl_ui_£t_Œª¦©e_·¹_¡r +( +Ïyout +, "t™Ë_right_‹xt", +GL_STR_ID_SHARE +); + +510 + `_gl_ù¾_­³nd_™em +( +toÞb¬ +, +NULL +, +GL_STR_ID_CANCEL +, + +511 +__gl_thumbs_ed™_ÿnûl_cb +, +d©a +); + +513 +tb_™ + = + `_gl_ù¾_­³nd_™em +( +toÞb¬ +, +NULL +, +GL_STR_ID_SHARE +, + +514 +__gl_thumbs_ed™_sh¬e_cb +, +d©a +); + +515 + `_gl_ù¾_di§bË_™em +( +tb_™ +, +Œue +); + +521 +Evas_Objeù + * +bŠ1 + = + `–m_bu‰Ú_add +( +·»Á +); + +522 +Evas_Objeù + * +bŠ2 + = + `–m_bu‰Ú_add +( +·»Á +); + +523 + `GL_CHECK_VAL +( +bŠ1 +, -1); + +524 + `GL_CHECK_VAL +( +bŠ2 +, -1); + +526 + `–m_objeù_¡yË_£t +( +bŠ1 +, "naviframe/title_left"); + +527 + `–m_objeù_™em_·¹_cڋÁ_£t +( +nf_™ +, +GL_NAVIFRAME_TITLE_LEFT_BTN +, +bŠ1 +); + +528 + `_gl_ui_£t_Œª¦©e_¡r +( +bŠ1 +, +GL_STR_ID_CANCEL_CAP +); + +529 + `evas_objeù_sm¬t_ÿÎback_add +( +bŠ1 +, "þicked", +__gl_thumbs_ed™_ÿnûl_cb +, +ad +); + +532 + `–m_objeù_¡yË_£t +( +bŠ2 +, "naviframe/title_right"); + +533 + `–m_objeù_™em_·¹_cڋÁ_£t +( +nf_™ +, +GL_NAVIFRAME_TITLE_RIGHT_BTN +, +bŠ2 +); + +534 + `_gl_ui_£t_Œª¦©e_¡r +( +bŠ2 +, +GL_STR_ID_DONE_CAP +); + +535 + `evas_objeù_sm¬t_ÿÎback_add +( +bŠ2 +, "þicked", +__gl_thumbs_ed™_dÚe_cb +, +ad +); + +536 + `–m_objeù_di§bËd_£t +( +bŠ2 +, +EINA_TRUE +); + +539 + } +} + +541  + $_gl_thumbs_ed™_ü—‹_v›w +(* +d©a +) + +543 + `GL_CHECK_VAL +( +d©a +, -1); + +544 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +545  +v›w_mode + = + `gl_g‘_v›w_mode +( +d©a +); + +546 + `gl_dbg +("mode: %d", +v›w_mode +); + +548 ià( +v›w_mode + =ð +GL_VIEW_THUMBS_EDIT + && + +549 + `_gl_thumbs_g‘_ed™_mode +( +d©a +è< +GL_THUMBS_EDIT_FIRST +) { + +556 + `gl_dbg +("Already inƒdit mode,„eturn."); + +560 +ad +-> +®bumšfo +. +fže_mc_mode + = +GL_MC_NONE +; + +562 + `gl_£t_v›w_mode +( +ad +, +GL_VIEW_THUMBS_EDIT +); + +563 +Evas_Objeù + * +gv + = +NULL +; + +564 +boÞ + +b_v›w + = +çl£ +; + +565 +b_v›w + = + `_gl_thumbs_g‘_v›w +( +ad +, & +gv +); + +566 + `GL_CHECK_FALSE +( +gv +); + +567 + `_gl_thumbs_£t_size +( +ad +, +gv +); + +569 + `_gl_thumbs_ed™_add_bŠs +( +d©a +, +ad +-> +maššfo +. +Çviäame +, + +570 +ad +-> +gridšfo +. +nf_™ +); + +572 + `_gl_thumbs_upd©e_Ïb– +( +ad +-> +gridšfo +. +nf_™ +, +GL_STR_ID_SELECT_ITEM +); + +574 ià( + `_gl_thumbs_g‘_ed™_mode +( +d©a +è< +GL_THUMBS_EDIT_FIRST +) + +575 #ifdeà +_USE_GRID_CHECK + + +576 + `_gl_show_grid_checks +( +ad +-> +gridšfo +. +v›w +, +GL_THUMB_CHECKBOX +); + +578 + `_gl_thumbs_upd©e_»®ized_™ems +( +d©a +); + +580 + `_gl_thumb_upd©e_¥l™_v›w +( +d©a +); + +581 + `gl_dbg +("Done"); + +583 + } +} + +586  + $_gl_thumbs_ed™_upd©e_v›w +(* +d©a +) + +588 + `GL_CHECK_VAL +( +d©a +, -1); + +589 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +590 + `gl_sdbg +("grid_ty³: %d", +ad +-> +gridšfo +. +grid_ty³ +); + +592  +ad +-> +gridšfo +. +grid_ty³ +) { + +593  +GL_GRID_T_LOCAL +: + +594  +GL_GRID_T_ALLALBUMS +: + +596 + `_gl_thumbs_upd©e_™ems +( +ad +); + +599 + `gl_dbgE +("Wrong gridype!"); + +603 + } +} + +605  + $_gl_thumbs_ed™_pÝ_v›w +(* +d©a +) + +607 + `GL_CHECK_VAL +( +d©a +, -1); + +608 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +611 + `–m_Çviäame_™em_pÝ_to +( +ad +-> +gridšfo +. +nf_™ +); + +613 + `_gl_d©a_£Ëùed_li¡_fš®ize +( +d©a +); + +615 + `_gl_ui_þ—r_bŠs +( +d©a +); + +616 + `_gl_thumbs_£t_ed™_mode +( +d©a +, +GL_THUMBS_EDIT_NONE +); + +618 + `gl_£t_v›w_mode +( +d©a +, +GL_VIEW_THUMBS +); + +619 ià( + `_gl_thumbs_g‘_ed™_mode +( +d©a +è< +GL_THUMBS_EDIT_FIRST +) { + +621 + `_gl_thumbs_upd©e_Ïb– +( +ad +-> +gridšfo +. +nf_™ +,‡d->gridšfo. +t™Ë +); + +623 + `edje_objeù_sigÇl_em™ +( + `_EDJ +( +ad +-> +gridšfo +. +Ïyout +), + +624 +GL_SIGNAL_GESTURE_DEFAULT +, "elm"); + +626 + `–m_objeù_sigÇl_em™ +( +ad +-> +gridšfo +. +Ïyout +, "elm,selectall,state,default", "elm"); + +627 #ifdeà +_USE_GRID_CHECK + + +628 + `_gl_show_grid_checks +( +ad +-> +gridšfo +. +v›w +, +GL_THUMB_CHECKBOX +); + +630 + `_gl_thumbs_upd©e_»®ized_™ems +( +d©a +); + +632 + `_gl_thumbs_add_bŠs +( +d©a +); + +633 +ad +-> +gridšfo +. +upd©e_¥l™_v›w + = +Œue +; + +634 + `_gl_thumb_upd©e_¥l™_v›w +( +d©a +); + +635 ià( + `_gl_thumbs_check_z”o +( +d©a +)) { + +636 + `gl_dbg +("show‚ocontents"); + +637 + `_gl_thumbs_show_nocڋÁs +( +ad +); + +641 + } +} + +643  + $_gl_thumbs_ed™_upd©e_Ïng +(* +d©a +) + +645 + `GL_CHECK_VAL +( +d©a +, -1); + +646 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +647 + `GL_CHECK_VAL +( +ad +-> +gridšfo +. +nf_™ +, -1); + +648  +út + = + `_gl_d©a_£Ëùed_li¡_couÁ +( +ad +); + +650 if( +út + == 0) { + +651 + `_gl_ui_chªge_Çvi_t™Ë +( +ad +-> +gridšfo +. +nf_™ +, +GL_STR_ID_SELECT_ITEM +, +Œue +); + +653 + `_gl_thumbs_upd©e_Ïb–_‹xt +( +ad +-> +gridšfo +. +nf_™ +, +út +, +Œue +); + +655 + } +} + +660  + $_gl_thumbs_ed™_di§bË_bŠs +(* +d©a +, +boÞ + +b_di§bË +) + +662 + `GL_CHECK_VAL +( +d©a +, -1); + +663 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +664 +boÞ + +b_di§bË_mÜe + = +çl£ +; + +665 + `gl_dbg +("b_di§bË: %d", +b_di§bË +); + +666 +Elm_Objeù_I‹m + * +nf_™ + = + `–m_Çviäame_tÝ_™em_g‘ +( +ad +-> +maššfo +. +Çviäame +); + +668 ià(! +b_di§bË +) { + +669 #ifdeà +_USE_APP_SLIDESHOW + + +670 ià( + `_gl_thumbs_g‘_ed™_mode +( +d©a +è=ð +GL_THUMBS_EDIT_SLIDESHOW +) { + +671 + `_gl_ù¾_di§bË_™ems +( +nf_™ +, +çl£ +); + +675 + `_gl_ù¾_di§bË_™ems +( +nf_™ +, +çl£ +); + +676 + `gl_dbg +("b_di§bË_mÜe: %d", +b_di§bË_mÜe +); + +677 + `_gl_ui_di§bË_m’u +( +nf_™ +, +b_di§bË_mÜe +); + +679 + `_gl_ui_di§bË_m’u +( +nf_™ +, +Œue +); + +680 + `_gl_ù¾_di§bË_™ems +( +nf_™ +, +Œue +); + +683 + } +} + + @src/features/gl-thumbs-sel.c + +17  + ~"gl-debug.h +" + +18  + ~"gl-thumbs-£l.h +" + +19  + ~"gl-®bums-£l.h +" + +20  + ~"gl-thumbs.h +" + +21  + ~"gl-thumb.h +" + +22  + ~"gl-®bums.h +" + +23  + ~"gl-ui-utž.h +" + +24  + ~"gl-utž.h +" + +25  + ~"gl-d©a.h +" + +26  + ~"gl-cڌÞb¬.h +" + +27  + ~"gl-bu‰Ú.h +" + +28  + ~"gl-pšchzoom.h +" + +29  + ~"gl-pÝup.h +" + +30  + ~"gl-nÙify.h +" + +31  + ~"gl-¡ršgs.h +" + +34  + $__gl_thumbs_£l_Œªs_fšished_cb +(* +d©a +, +Evas_Objeù + * +obj +, + +35 * +ev’t_šfo +) + +37 + `GL_CHECK +( +d©a +); + +38 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +39  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +40 + `gl_dbgW +("v›w_mode: %d", +v›w_mode +); + +41 + `evas_objeù_sm¬t_ÿÎback_d– +( +obj +, +GL_TRANS_FINISHED +, + +42 +__gl_thumbs_£l_Œªs_fšished_cb +); + +45 ià( +v›w_mode + =ð +GL_VIEW_THUMBS_SELECT +) + +46 + `–m_g’grid_þ—r +( +ad +-> +®bumšfo +. +£Ëù_v›w +); + +48 + `gl_dbgE +("Wrong view mode!"); + +50 ià( +ad +-> +gridšfo +. +is_­³nd +) { + +51 + `_gl_thumbs_­³nd_™ems +( +d©a +); + +52 +ad +-> +gridšfo +. +is_­³nd + = +çl£ +; + +54 + } +} + +56  +Eša_BoÞ + + $__gl_thumbs_£l_pÝ_cb +(* +d©a +, +Elm_Objeù_I‹m + * +™ +) + +58 + `GL_CHECK_FALSE +( +d©a +); + +59 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +60 + `gl_dbg +(""); + +61 +ad +-> +gridšfo +. +is_­³nd + = +çl£ +; + +71 + `_gl_thumbs_£l_pÝ_v›w +( +d©a +, +çl£ +); + +74 + `_gl_d©a_þ—r_£Ëùed_šfo +( +d©a +); + +76  +EINA_TRUE +; + +77 + } +} + +80  + $__gl_thumbs_£l_pÝup_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +82 + `GL_CHECK +( +obj +); + +83 + `GL_CHECK +( +d©a +); + +84 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +85 cÚ¡ * +‹xt + = +NULL +; + +87 +‹xt + = + `–m_objeù_‹xt_g‘ +( +obj +); + +88 + `GL_CHECK +( +‹xt +); + +89 + `gl_dbg +("Bu‰Ú: %s", +‹xt +); + +91 ià(! + `g_¡rcmp0 +( +‹xt +, + `_gl_¡r +( +GL_STR_ID_CANCEL_ABB +))) { + +92 + `GL_IF_DEL_OBJ +( +ad +-> +pÝupšfo +. +pÝup +); + +94 } ià(! + `g_¡rcmp0 +( +‹xt +, + `_gl_¡r +( +GL_STR_ID_MOVE +))) { + +95 +ad +-> +®bumšfo +. +fže_mc_mode + = +GL_MC_MOVE +; + +97 +ad +-> +®bumšfo +. +fže_mc_mode + = +GL_MC_COPY +; + +100 + `gl_move_cÝy_to_®bum +( +d©a +); + +101 + `GL_IF_DEL_OBJ +( +ad +-> +pÝupšfo +. +pÝup +); + +102 + } +} + +104  + $__gl_thumbs_£l_dÚe_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +106 + `GL_CHECK +( +d©a +); + +107 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +108 +ad +-> +£lšfo +. +–i¡ + = + `eša_li¡_m”ge +×d->£lšfo.–i¡,‡d->£lšfo. +çv_–i¡ +); + +109 +ad +-> +£lšfo +. +çv_–i¡ + = +NULL +; + +110  +út + = + `_gl_d©a_£Ëùed_li¡_couÁ +( +ad +); + +111 ià( +út + == 0) { + +112 + `gl_dbgW +("Nohumbs selected!"); + +113 + `gl_pÝup_ü—‹_pÝup +( +ad +, +GL_POPUP_NOBUT +, +GL_STR_NO_FILES_SELECTED +); + +117 + `_gl_pÝup_ü—‹ +( +d©a +, +GL_STR_ID_NEW_ALBUM +, + +118 +GL_STR_ID_NEW_ALBUM_CONFIRMATION +, +GL_STR_ID_CANCEL_ABB +, + +119 +__gl_thumbs_£l_pÝup_cb +, +d©a +, +GL_STR_ID_MOVE +, + +120 +__gl_thumbs_£l_pÝup_cb +, +d©a +, +GL_STR_ID_COPY +, + +121 +__gl_thumbs_£l_pÝup_cb +, +d©a +); + +122 + } +} + +124  + $__gl_thumbs_£l_ÿnûl_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +126 + `–m_toÞb¬_™em_£Ëùed_£t +(( +Elm_Objeù_I‹m + *) +ei +, +EINA_FALSE +); + +127 + `GL_CHECK +( +d©a +); + +128 + `gl_dbg +(""); + +129 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +130 +ad +-> +£lšfo +. +çv_–i¡ + = +NULL +; + +131 + `–m_Çviäame_™em_pÝ +( +ad +-> +maššfo +. +Çviäame +); + +132 + } +} + +139  + $__gl_thumbs_£l_push_v›w +(* +d©a +, +Evas_Objeù + * +·»Á +, + +140 +Evas_Objeù + * +obj +, * +t™Ë +) + +142 + `gl_dbg +("GL_NAVI_THUMBS_SELECT"); + +143 + `GL_CHECK_VAL +( +obj +, -1); + +144 + `GL_CHECK_VAL +( +·»Á +, -1); + +145 + `GL_CHECK_VAL +( +d©a +, -1); + +146 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +147 +Elm_Objeù_I‹m + * +nf_™ + = +NULL +; + +150 + `evas_objeù_sm¬t_ÿÎback_add +( +·»Á +, +GL_TRANS_FINISHED +, + +151 +__gl_thumbs_£l_Œªs_fšished_cb +, +d©a +); + +154 +nf_™ + = + `–m_Çviäame_™em_push +( +·»Á +, +t™Ë +, +NULL +, NULL, +obj +, + +155 +NULL +); + +157 + `–m_Çviäame_™em_pÝ_cb_£t +( +nf_™ +, +__gl_thumbs_£l_pÝ_cb +, +d©a +); + +158 + `_gl_ui_£t_Œª¦©abË_™em +( +nf_™ +, +t™Ë +); + +159 +ad +-> +gridšfo +. +nf_™_£Ëù + = +nf_™ +; + +161 +Elm_Objeù_I‹m + * +tb_™ + = +NULL +; + +162 +Evas_Objeù + * +toÞb¬ + = + `_gl_ù¾_add_toÞb¬ +( +·»Á +); + +164 + `_gl_ù¾_­³nd_™em +( +toÞb¬ +, +NULL +, +GL_STR_ID_CANCEL +, + +165 +__gl_thumbs_£l_ÿnûl_cb +, +d©a +); + +166 * +¡r + = +GL_STR_ID_DONE +; + +168 +tb_™ + = + `_gl_ù¾_­³nd_™em +( +toÞb¬ +, +NULL +, +¡r +, + +169 +__gl_thumbs_£l_dÚe_cb +, +d©a +); + +170 + `_gl_ù¾_di§bË_™em +( +tb_™ +, +Œue +); + +171 + `–m_objeù_™em_·¹_cڋÁ_£t +( +nf_™ +, "toÞb¬", +toÞb¬ +); + +173 + } +} + +177  + $__gl_thumbs_£l_d–‘e_Ïyout_cb +(* +d©a +, +Evas + * +e +, + +178 +Evas_Objeù + * +obj +, * +ei +) + +180 + `gl_dbg +("Delete†ayout ---"); + +181 + `GL_CHECK +( +d©a +); + +182 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +184 +Elm_G’grid_I‹m_CÏss + * +gic + = +NULL +; + +185 +gic + = + `evas_objeù_d©a_g‘ +( +ad +-> +gridšfo +. +£Ëù_v›w +, + +187 + `GL_CHECK +( +gic +); + +188 +gic +-> +func +. +d– + = +NULL +; + +190 + `_gl_thumbs_þ—r_cbs +( +ad +-> +gridšfo +. +£Ëù_v›w +); + +191 + `–m_g’grid_þ—r +( +ad +-> +gridšfo +. +£Ëù_v›w +); + +192 + `_gl_ui_d–_süÞËr_pos +( +ad +-> +gridšfo +. +£Ëù_v›w +); + +194 +ad +-> +gridšfo +. +is_­³nd + = +çl£ +; + +195 +ad +-> +gridšfo +. +£Ëù_v›w + = +NULL +; + +196 +ad +-> +gridšfo +. +£Ëù_Ïyout + = +NULL +; + +197 +ad +-> +gridšfo +. +nf_™_£Ëù + = +NULL +; + +199 + `_gl_d©a_þ—r_£Ëùed_šfo +( +d©a +); + +201 + `_gl_thumbs_þ—r_ªd_£t_li¡ +( +d©a +, +NULL +); + +202 + `_gl_®bums_£t_cu¼’t +( +d©a +, +NULL +); + +204 + `_gl_pšch_»£t_æag +( +d©a +); + +205 + `gl_dbg +("Delete†ayout +++"); + +206 + } +} + +209  + $__gl_thumbs_£l_£ÏÎ_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +211 + `GL_CHECK +( +d©a +); + +212 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +213  +i + = 0; + +214  +™em_út + = 0; + +215  +£l_®l_út + = 0; + +216 +gl_™em + * +g™em + = +NULL +; + +218 +ad +-> +£lšfo +. +ck_¡©e + = ! + `–m_check_¡©e_g‘ +×d->£lšfo. +£Ëù®l_ck +); + +219 ià( +ad +-> +£lšfo +. +£Ëù®l_ck +) { + +220 + `–m_check_¡©e_£t +( +ad +-> +£lšfo +. +£Ëù®l_ck +,‡d->£lšfo. +ck_¡©e +); + +222  +¡©e + = +ad +-> +£lšfo +. +ck_¡©e +; + +223 + `gl_dbg +("Checkbox s‹: %d.", +¡©e +); + +224 +Eša_Li¡ + * +medŸs_–i¡ + = +NULL +; + +225 + `_gl_thumbs_g‘_li¡ +( +ad +, &( +medŸs_–i¡ +)); + +227 +™em_út + = + `eša_li¡_couÁ +( +medŸs_–i¡ +); + +229  +i + = 0; i < +™em_út +; i++) { + +230 +g™em + = + `eša_li¡_Áh +( +medŸs_–i¡ +, +i +); + +231 + `GL_CHECK +( +g™em +); + +232 + `GL_CHECK +( +g™em +-> +™em +); + +234 ià( +g™em +-> +checked + =ð +¡©e +) + +237 +g™em +-> +checked + = +¡©e +; + +239 ià( +¡©e + =ð +EINA_TRUE +) { + +240 ià( + `¡rcmp +( +g™em +-> +®bum +-> +þu¡” +-> +uuid +, +GL_ALBUM_FAVOURITE_ID +)==0) { + +241 +Eša_Li¡ + * +£l_li¡1 + = +ad +-> +£lšfo +. +çv_–i¡ +; + +242 +£l_li¡1 + = + `eša_li¡_­³nd +(£l_li¡1, +g™em +); + +243 +ad +-> +£lšfo +. +çv_–i¡ + = +£l_li¡1 +; + +245 + `_gl_d©a_£Ëùed_li¡_­³nd +( +ad +, +g™em +); + +247 +g™em +-> +®bum +-> +–i¡ + = + `eša_li¡_­³nd +(gitem->album->elist, gitem); + +249 ià( + `¡rcmp +( +g™em +-> +®bum +-> +þu¡” +-> +uuid +, +GL_ALBUM_FAVOURITE_ID +)==0) { + +250 + `_gl_d©a_£Ëùed_çv_li¡_»move +( +ad +, +g™em +); + +252 + `_gl_d©a_£Ëùed_li¡_»move +( +ad +, +g™em +); + +254 +g™em +-> +®bum +-> +–i¡ + = + `eša_li¡_»move +(gitem->album->elist, gitem); + +258 + `_gl_ui_upd©e_»®ized_grid_ck +( +ad +-> +gridšfo +. +£Ëù_v›w +, + +259 +GL_THUMB_CHECKBOX +, +NULL +, + +260 +ad +-> +£lšfo +. +ck_¡©e +); + +262 ià( +¡©e + =ð +EINA_FALSE +) + +263 +£l_®l_út + = 0; + +265 +£l_®l_út + = +™em_út +; + +267  +£l_út + = + `eša_li¡_couÁ +( +ad +-> +£lšfo +. +–i¡ +); + +268  +çv_£l_út + = + `eša_li¡_couÁ +( +ad +-> +£lšfo +. +çv_–i¡ +); + +269  +tÙ®_£l_couÁ + = +£l_út + + +çv_£l_út +; + +270 + `_gl_nÙify_check_£ÏÎ +( +ad +,‡d-> +®bumšfo +. +nf_™_£Ëù +, +™em_út +, + +271 +£l_®l_út +); + +272 ià( +g™em +-> +®bum +-> +™em +) { + +273 + `–m_g’grid_™em_upd©e +( +g™em +-> +®bum +-> +™em +); + +276 + `_gl_ui_upd©e_Çvi_t™Ë_‹xt +( +ad +-> +®bumšfo +. +nf_™_£Ëù +, +tÙ®_£l_couÁ +, +çl£ +); + +277 + } +} + +279  + $_gl_thumb_£l_add_®bum_d©a +( +gl_þu¡” + * +®bum +, +Eša_Li¡ + * +medŸs_–i¡ +) + +281 + `GL_CHECK +( +®bum +); + +282 + `GL_CHECK +( +medŸs_–i¡ +); + +283  +út + = + `eša_li¡_couÁ +( +medŸs_–i¡ +); + +284  +i +; + +285 +gl_™em + * +g™em + = +NULL +; + +286  +i + = 0; i < +út +; i++) { + +287 +g™em + = + `eša_li¡_Áh +( +medŸs_–i¡ +, +i +); + +288 ià( +g™em +) { + +289 +g™em +-> +®bum + =‡lbum; + +292 + } +} + +297  + $_gl_thumbs_£l_ü—‹_v›w +(* +d©a +, +gl_þu¡” + * +®bum_™em +) + +299 + `GL_CHECK_VAL +( +®bum_™em +, -1); + +300 + `GL_CHECK_VAL +( +d©a +, -1); + +301 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +302 +ad +-> +gridšfo +. +is_­³nd + = +çl£ +; + +303 +Eša_Li¡ + * +£l_id_li¡ + = +NULL +; + +304 +gl_™em + * +g™em + = +NULL +; + +305 + `EINA_LIST_FREE +( +®bum_™em +-> +–i¡ +, +g™em +) { + +309 +Eša_Li¡ + * +medŸs_–i¡ + = +NULL +; + +310 + `_gl_d©a_g‘_™ems_®bum +( +ad +, +®bum_™em +, +GL_FIRST_VIEW_START_POS +, + +311 +GL_GET_UNTIL_LAST_RECORD +, & +medŸs_–i¡ +); + +312 +ad +-> +gridšfo +. +is_­³nd + = +Œue +; + +313 + `_gl_thumbs_£t_li¡ +( +ad +, +medŸs_–i¡ +); + +314 + `_gl_thumb_£l_add_®bum_d©a +( +®bum_™em +, +medŸs_–i¡ +); + +315  +couÁ + = + `eša_li¡_couÁ +( +medŸs_–i¡ +); + +316  +i +; + +318 ià( + `¡rcmp +( +®bum_™em +-> +þu¡” +-> +uuid +, +GL_ALBUM_FAVOURITE_ID +)== 0) + +320  +i + = 0; i < +couÁ + ; i++) { + +321 +g™em + = + `eša_li¡_Áh +( +medŸs_–i¡ +, +i +); + +322 + `_gl_d©a_»¡Üe_£Ëùed +( +ad +-> +£lšfo +. +çv_–i¡ +, +g™em +); + +325  +i + = 0; i < +couÁ + ; i++) { + +326 +g™em + = + `eša_li¡_Áh +( +medŸs_–i¡ +, +i +); + +327 + `_gl_d©a_»¡Üe_£Ëùed +( +ad +-> +£lšfo +. +–i¡ +, +g™em +); + +330 ià( + `eša_li¡_couÁ +( +medŸs_–i¡ +) <= 0) { + +331 + `gl_dbgW +("All medias‡reagged!"); + +333 + `_gl_nÙify_ü—‹_nÙišfo +( +GL_STR_ADDED +); + +337 +Evas_Objeù + * +Ïyout + = +NULL +; + +339 +Ïyout + = + `_gl_ù¾_add_Ïyout +( +ad +-> +maššfo +. +Çviäame +); + +340 + `GL_CHECK_VAL +( +Ïyout +, -1); + +341 + `evas_objeù_size_hšt_weight_£t +( +Ïyout +, +EVAS_HINT_EXPAND +, + +342 +EVAS_HINT_EXPAND +); + +343 + `evas_objeù_size_hšt_®ign_£t +( +Ïyout +, +EVAS_HINT_FILL +, EVAS_HINT_FILL); + +345 + `evas_objeù_ev’t_ÿÎback_add +( +Ïyout +, +EVAS_CALLBACK_DEL +, + +346 +__gl_thumbs_£l_d–‘e_Ïyout_cb +, +d©a +); + +348  +´e_v›w_m + = + `gl_g‘_v›w_mode +( +d©a +); + +350 + `gl_£t_v›w_mode +( +d©a +, +GL_VIEW_THUMBS_SELECT +); + +352 + `_gl_pšch_add_ev’t +( +d©a +, +Ïyout +); + +354 +Evas_Objeù + * +v›w + = +NULL +; + +355 +v›w + = + `_gl_thumbs_add_grid +( +d©a +, +Ïyout +, +GL_THUMB_ALL +); + +356 ià( +v›w + =ð +NULL +) { + +357 + `evas_objeù_d– +( +Ïyout +); + +358 + `gl_pÝup_ü—‹_pÝup +( +d©a +, +GL_POPUP_NOBUT +, +GL_STR_NO_ALBUMS +); + +360 + `gl_£t_v›w_mode +( +d©a +, +´e_v›w_m +); + +365 + `–m_objeù_·¹_cڋÁ_£t +( +ad +-> +®bumšfo +. +£Ëù_Ïyout +, "–m.sw®low.v›w", +v›w +); + +367 + `–m_objeù_™em_·¹_‹xt_£t +( +ad +-> +®bumšfo +. +nf_™_£Ëù +, "–m.‹xt.t™Ë", + `_gl_¡r +( +GL_STR_ID_SELECT_ITEM +)); + +369 +Evas_Objeù + * +bŠ1 + = + `–m_bu‰Ú_add +( +Ïyout +); + +370 +Evas_Objeù + * +bŠ2 + = + `–m_bu‰Ú_add +( +Ïyout +); + +372 + `GL_CHECK_VAL +( +bŠ1 +, -1); + +373 + `GL_CHECK_VAL +( +bŠ2 +, -1); + +376 + `–m_objeù_¡yË_£t +( +bŠ1 +, "naviframe/title_left"); + +377 + `–m_objeù_™em_·¹_cڋÁ_£t +( +ad +-> +®bumšfo +. +nf_™_£Ëù +, +GL_NAVIFRAME_TITLE_LEFT_BTN +, +bŠ1 +); + +378 + `_gl_ui_£t_Œª¦©e_¡r +( +bŠ1 +, +GL_STR_ID_CANCEL_CAP +); + +379 + `evas_objeù_sm¬t_ÿÎback_add +( +bŠ1 +, "þicked", +__gl_thumbs_£l_ÿnûl_cb +, +ad +); + +382 + `–m_objeù_¡yË_£t +( +bŠ2 +, "naviframe/title_right"); + +383 + `–m_objeù_™em_·¹_cڋÁ_£t +( +ad +-> +®bumšfo +. +nf_™_£Ëù +, +GL_NAVIFRAME_TITLE_RIGHT_BTN +, +bŠ2 +); + +384 + `_gl_ui_£t_Œª¦©e_¡r +( +bŠ2 +, +GL_STR_ID_DONE_CAP +); + +385 + `evas_objeù_sm¬t_ÿÎback_add +( +bŠ2 +, "þicked", +__gl_thumbs_£l_dÚe_cb +, +ad +); + +386 + `–m_objeù_di§bËd_£t +( +bŠ2 +, +EINA_TRUE +); + +388 +ad +-> +gridšfo +. +£Ëù_v›w + = +v›w +; + +389 +ad +-> +gridšfo +. +£Ëù_Ïyout + = +Ïyout +; + +392  +w + = -1; + +393  +h + = -1; + +394 + `evas_objeù_geom‘ry_g‘ +( +ad +-> +maššfo +. +wš +, +NULL +, NULL, & +w +, & +h +); + +395 +Edje_Mes§ge_IÁ + * +msg + = (Edje_Mes§ge_IÁ *) + `m®loc +((Edje_Message_Int) + ()); + +396 +msg +-> +v® + = (( +w + < +h +) ? (w - (w / 3)) : (w - (h / 3))); + +397 + `gl_dbgE +("msg v®u: %d", +msg +-> +v® +); + +398 + `edje_objeù_mes§ge_£nd +( + `–m_Ïyout_edje_g‘ +( +ad +-> +®bumšfo +. +£Ëù_Ïyout +), +EDJE_MESSAGE_INT +, 2, +msg +); + +399 + `ä“ +( +msg +); + +400 + `–m_objeù_sigÇl_em™ +( +ad +-> +®bumšfo +. +£Ëù_Ïyout +, "elm,selectall,state,visible,bg", "elm"); + +401 + `–m_objeù_sigÇl_em™ +( +ad +-> +®bumšfo +. +£Ëù_Ïyout +, "elm,selectall,state,visible", "elm"); + +402 + `_gl_ui_add_£ÏÎ_ck +( +ad +-> +®bumšfo +. +£Ëù_Ïyout +, "select.all.area.check", "select.all.area.check", + +403 +__gl_thumbs_£l_£ÏÎ_cb +, +d©a +); + +405  +£l_út + = + `_gl_d©a_£Ëùed_li¡_couÁ +( +ad +); + +407  +çv_£l_út + = + `eša_li¡_couÁ +( +ad +-> +£lšfo +. +çv_–i¡ +); + +408  +tÙ®_£l_couÁ + = +£l_út + + +çv_£l_út +; + +410 + `_gl_thumbs_upd©e_Ïb–_‹xt +( +ad +-> +®bumšfo +. +nf_™_£Ëù +, +tÙ®_£l_couÁ +, +çl£ +); + +412 +gl_™em + * +g™em_tmp + = + `eša_li¡_Áh +( +ad +-> +gridšfo +. +medŸs_–i¡ +, 0); + +413 + `GL_CHECK_VAL +( +g™em_tmp +-> +®bum +-> +–i¡ +, -1); + +414 ià( +g™em_tmp +-> +®bum +-> +–i¡ +) { + +415  +®bum_£Ëù_couÁ + = + `eša_li¡_couÁ +( +g™em_tmp +-> +®bum +-> +–i¡ +); + +416 + `gl_dbgW +("®bum s– cڈ: %d !", +®bum_£Ëù_couÁ +); + +417 + `_gl_nÙify_check_£ÏÎ +( +ad +,‡d-> +®bumšfo +. +nf_™_£Ëù +,‡d-> +gridšfo +. +couÁ +, +®bum_£Ëù_couÁ +); + +419 + `gl_dbg +("Done"); + +421 + } +} + +424  + $_gl_thumbs_£l_upd©e_v›w +(* +d©a +) + +426 + `GL_CHECK_VAL +( +d©a +, -1); + +427 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +428  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +430 + `gl_dbg +("v›w_mode: %d", +v›w_mode +); + +431 ià( +v›w_mode + !ð +GL_VIEW_THUMBS_SELECT +) { + +432 + `gl_dbg +("Not in Select view."); + +436 #ifdeà +_USE_ROTATE_BG + + +437 +boÞ + +is_£Ëù + = +Œue +; + +438 ià( + `_gl_ù¾_g‘_b_mode +( +d©a +è=ð +GL_CTRL_TAB_ALBUMS + || + +439 + `_gl_ù¾_g‘_b_mode +( +d©a +è=ð +GL_CTRL_TAB_TIMELINE +) + +440 +is_£Ëù + = +çl£ +; + +441 + `_gl_»äesh_®bums_li¡ +( +d©a +, +çl£ +, +is_£Ëù +); + +444 +Eša_Li¡ + * +£l_id_li¡ + = +NULL +; + +445 +Eša_Li¡ + * +medŸ_–i¡ + = +NULL +; + +446 + `_gl_d©a_§ve_£Ëùed_¡r_ids +( +d©a +, & +£l_id_li¡ +); + +447 + `_gl_d©a_þ—r_£Ëùed_šfo +( +ad +); + +448 + `_gl_d©a_upd©e_™em_li¡ +( +ad +, & +£l_id_li¡ +, & +medŸ_–i¡ +); + +449 + `_gl_thumbs_þ—r_ªd_£t_li¡ +( +ad +, +medŸ_–i¡ +); + +452 ià( + `_gl_thumbs_check_z”o +( +d©a +)) { + +453  +”r + = -1; + +454  +™em_út + = 0; + +455 +”r + = + `_gl_d©a_g‘_™em_út +( +GL_ALBUM_ALL_ID +, +GL_STORE_T_ALL +, & +™em_út +); + +457 ià( +”r + !ð0 || +™em_út + == 0) { + +458 + `gl_dbg +("None†ocal‡lbums."); + +459 + `_gl_®bums_£l_pÝ_v›w +( +ad +); + +461 + `gl_dbg +("Empty‡lbum."); + +462 + `_gl_thumbs_£l_pÝ_v›w +( +ad +, +Œue +); + +466 + `_gl_thumbs_show_ed™_v›w +( +ad +); + +469  +£l_út + = + `_gl_d©a_£Ëùed_li¡_couÁ +( +ad +); + +471  +couÁ + = + `eša_li¡_couÁ +( +ad +-> +gridšfo +. +medŸs_–i¡ +); + +472  +i +; + +473 +gl_™em + * +g™em + = +NULL +; + +474 +g™em + = + `eša_li¡_Áh +( +ad +-> +gridšfo +. +medŸs_–i¡ +, 0); + +475  +®bum_£l_couÁ + = + `eša_li¡_couÁ +( +g™em +-> +®bum +-> +–i¡ +); + +478 + `_gl_nÙify_check_£ÏÎ +( +ad +,‡d-> +®bumšfo +. +nf_™_£Ëù +, + +479 +ad +-> +gridšfo +. +couÁ +, +®bum_£l_couÁ +); + +482 + `_gl_ui_upd©e_Ïb–_‹xt +( +ad +-> +®bumšfo +. +nf_™_£Ëù +, +£l_út +, + +483 +çl£ +); + +487 + } +} + +489  + $_gl_thumbs_£l_pÝ_v›w +(* +d©a +, +boÞ + +b_pÝ +) + +491 + `GL_CHECK_VAL +( +d©a +, -1); + +492 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +494 ià( +b_pÝ +) { + +496 + `–m_Çviäame_™em_pÝ +( +ad +-> +maššfo +. +Çviäame +); + +499 + `gl_£t_v›w_mode +( +d©a +, +GL_VIEW_ALBUMS_SELECT +); + +501 + `_gl_®bums_£l_upd©e_v›w +( +d©a +); + +503 + } +} + +505  + $_gl_thumbs_£l_upd©e_Ïng +(* +d©a +) + +507 + `GL_CHECK_VAL +( +d©a +, -1); + +508 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +509 + `gl_dbg +(""); + +510  +£l_út + = + `_gl_d©a_£Ëùed_li¡_couÁ +( +ad +); + +512 + `_gl_ui_upd©e_Çvi_t™Ë_‹xt +( +ad +-> +®bumšfo +. +nf_™_£Ëù +, +£l_út +, +çl£ +); + +514 + } +} + +516  + $_gl_thumbs_£l_di§bË_bŠs +(* +d©a +, +boÞ + +b_di§bËd +) + +518 + `GL_CHECK_VAL +( +d©a +, -1); + +519 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +520 + `gl_dbg +("di§bËd: %d", +b_di§bËd +); + +521 + `_gl_ù¾_di§bË_™ems +( +ad +-> +gridšfo +. +nf_™_£Ëù +, +b_di§bËd +); + +523 + } +} + + @src/features/gl-thumbs.c + +18  + ~"gl-debug.h +" + +19  + ~"gl-thumbs.h +" + +20  + ~"gl-thumbs-ed™.h +" + +21  + ~"gl-ui-utž.h +" + +22  + ~"gl-utž.h +" + +23  + ~"gl-®bums.h +" + +24  + ~"gl-®bums-£l.h +" + +25  + ~"gl-d©a.h +" + +26  + ~"gl-ext-ug-lßd.h +" + +27  + ~"gl-ext-exec.h +" + +28  + ~"gl-pšchzoom.h +" + +29  + ~"gl-´og»ssb¬.h +" + +30  + ~"gl-cڌÞb¬.h +" + +31  + ~"gl-nocڋÁs.h +" + +32  + ~"gl-nÙify.h +" + +33  + ~"gl-¡ršgs.h +" + +34  + ~"gl-icÚs.h +" + +35  + ~"gl-thumb.h +" + +36  + ~"gl-bu‰Ú.h +" + +37  + ~"gl-ùxpÝup.h +" + +38  + ~"gl-ed™f›ld.h +" + +39  + ~"gl-fs.h +" + +40  + ~"gl-ge¡u».h +" + +41  + ~"gl-pÝup.h +" + +42  + ~"gl-fže-utž.h +" + +44  +__gl_thumbs_check_chªged +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +); + +45  + $_gl_thumbs_ݒ_fže +(* +d©a +) + +47 + `gl_dbg +(""); + +48 + `GL_CHECK +( +d©a +); + +49 +gl_™em + * +g™em + = (gl_™em *) +d©a +; + +50 + `GL_CHECK +( +g™em +-> +™em +); + +51 + `GL_CHECK +( +g™em +-> +™em +-> +fže_u¾ +); + +52 + `GL_CHECK +( + `¡¾’ +( +g™em +-> +™em +-> +fže_u¾ +)); + +53 + `GL_CHECK +( +g™em +-> +ad +); + +54 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +g™em +->ad; + +55  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +56 ià( +v›w_mode + !ð +GL_VIEW_THUMBS +) { + +57 + `gl_dbgE +("Error view mode!"); + +61 + `gl_dbg +("Loading UG-IMAGE-VIEWER"); + +62 + `gl_ext_lßd_iv_ug +( +ad +, +g™em +, +GL_UG_IV +); + +63 + } +} + +65  + $_gl_thumbs_ݒ_fže_£Ëù_mode +(* +d©a +) + +67 + `gl_dbg +(""); + +68 + `GL_CHECK +( +d©a +); + +69 +gl_™em + * +g™em + = (gl_™em *) +d©a +; + +70 + `GL_CHECK +( +g™em +-> +™em +); + +71 + `GL_CHECK +( +g™em +-> +™em +-> +fže_u¾ +); + +72 + `GL_CHECK +( + `¡¾’ +( +g™em +-> +™em +-> +fže_u¾ +)); + +73 + `GL_CHECK +( +g™em +-> +ad +); + +74 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +g™em +->ad; + +76 + `gl_dbg +("Loading UG-IMAGE-VIEWER-SELECT-MODE"); + +77 + `gl_ext_lßd_iv_ug_£Ëù_mode +( +ad +, +g™em +-> +™em +, +GL_UG_IV +); + +78 + } +} + +80  + $__gl_thumbs_chªge_check +(* +d©a +, +Elm_Objeù_I‹m + * +™ +) + +82 + `GL_CHECK_VAL +( +™ +, -1); + +83 + `GL_CHECK_VAL +( +d©a +, -1); + +84 +Evas_Objeù + * +ck + = +NULL +; + +85 + `gl_dbg +(""); + +87 +ck + = + `–m_objeù_™em_·¹_cڋÁ_g‘ +( +™ +, +GL_THUMB_CHECKBOX +); + +88 + `GL_CHECK_VAL +( +ck +, -1); + +90 + `–m_check_¡©e_£t +( +ck +, ! + `–m_check_¡©e_g‘ +(ck)); + +91 + `__gl_thumbs_check_chªged +( +d©a +, +ck +, +NULL +); + +93 + } +} + +95  + $__gl_thumbs_£l_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +97 + `GL_CHECK +( +d©a +); + +98 +gl_™em + * +g™em + = (gl_™em *) +d©a +; + +99 + `GL_CHECK +( +g™em +-> +ad +); + +100 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +g™em +->ad; + +101  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +103 + `–m_g’grid_™em_£Ëùed_£t +(( +Elm_Objeù_I‹m + *) +ei +, +EINA_FALSE +); + +104 ià( +v›w_mode + !ð +GL_VIEW_THUMBS +) { + +105 + `__gl_thumbs_chªge_check +( +d©a +, ( +Elm_Objeù_I‹m + *) +ei +); + +109 + `_gl_ui_§ve_süÞËr_pos +( +obj +); + +110 + `_gl_thumbs_ݒ_fže +( +d©a +); + +111 + } +} + +113  + $__gl_thumbs_»®ized +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +115 + `gl_dbg +("realized"); + +116 + `GL_CHECK +( +ei +); + +117 + `GL_CHECK +( +d©a +); + +118 +Elm_Objeù_I‹m + * +™ + = (Elm_Objeù_I‹m *) +ei +; + +119 +Elm_G’grid_I‹m_CÏss + * +gic + = +NULL +; + +120 +gic + = + `evas_objeù_d©a_g‘ +( +obj +, "gl_thumbs_item_style_key"); + +122 ià( + `–m_g’grid_™em_™em_þass_g‘ +( +™ +è!ð +gic +) + +125 +gl_™em + * +g™em + = + `–m_objeù_™em_d©a_g‘ +( +™ +); + +126 + `GL_CHECK +( +g™em +); + +127 + `GL_CHECK +( +g™em +-> +™em +); + +129 ià( +g™em +-> +¡Üe_ty³ + =ð +GL_STORE_T_MMC + || + +130 +g™em +-> +¡Üe_ty³ + =ð +GL_STORE_T_ALL + || + +131 +g™em +-> +¡Üe_ty³ + =ð +GL_STORE_T_PHONE +) { + +133 ià(! + `GL_FILE_EXISTS +( +g™em +-> +™em +-> +thumb_u¾ +)) { + +134 + `_gl_thumbs_ü—‹_thumb +( +g™em +); + +137 + } +} + +139  + $__gl_thumbs_uėlized +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +141 + `gl_dbg +("unrealized"); + +142 + `GL_CHECK +( +ei +); + +143 + `GL_CHECK +( +d©a +); + +144 +Elm_Objeù_I‹m + * +™ + = (Elm_Objeù_I‹m *) +ei +; + +145 +Elm_G’grid_I‹m_CÏss + * +gic + = +NULL +; + +146 +gic + = + `evas_objeù_d©a_g‘ +( +obj +, "gl_thumbs_item_style_key"); + +148 ià( + `–m_g’grid_™em_™em_þass_g‘ +( +™ +è!ð +gic +) + +151 +gl_™em + * +g™em + = + `–m_objeù_™em_d©a_g‘ +( +™ +); + +152 + `GL_CHECK +( +g™em +); + +153 + `GL_CHECK +( +g™em +-> +™em +); + +155 ià( +g™em +-> +¡Üe_ty³ + =ð +GL_STORE_T_MMC + || + +156 +g™em +-> +¡Üe_ty³ + =ð +GL_STORE_T_ALL + || + +157 +g™em +-> +¡Üe_ty³ + =ð +GL_STORE_T_PHONE +) { + +158 ià( +g™em +-> +™em +-> +b_ü—‹_thumb +) { + +159 + `_gl_d©a_ÿnûl_thumb +( +g™em +-> +™em +); + +162 + } +} + +164  + $__gl_thumbs_lÚg´es£d_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +166 + `gl_dbg +("longpressed"); + +167 + `GL_CHECK +( +ei +); + +168 +Elm_G’grid_I‹m_CÏss + * +gic + = +NULL +; + +169 +gic + = + `evas_objeù_d©a_g‘ +( +obj +, "gl_thumbs_item_style_key"); + +171 ià( + `–m_g’grid_™em_™em_þass_g‘ +(( +Elm_Objeù_I‹m + *) +ei +è!ð +gic +) + +173 ià( +GL_VIEW_THUMBS + !ð + `gl_g‘_v›w_mode +( +d©a +) || + +174 +GL_CTRL_TAB_ALBUMS + !ð + `_gl_ù¾_g‘_b_mode +( +d©a +)) + +178 +gl_™em + * +g™em + = (gl_™em *) + `–m_objeù_™em_d©a_g‘ +( +ei +); + +179 + `GL_CHECK +( +g™em +); + +180 + `GL_CHECK +( +g™em +-> +™em +); + +181 + `GL_CHECK +( +g™em +-> +™em +-> +di¥Ïy_Çme +); + +183 + `_gl_d©a_£Ëùed_li¡_fš®ize +( +d©a +); + +184 + `_gl_d©a_£Ëùed_li¡_­³nd +( +d©a +, +g™em +); + +185 +Eša_Li¡ + * +medŸs_–i¡ + = +NULL +; + +186 + `_gl_thumbs_g‘_li¡ +( +d©a +, & +medŸs_–i¡ +); + +187 + `_gl_d©a_£Ëùed_add_bur¡shÙ +( +d©a +, +g™em +, +medŸs_–i¡ +); + +189 + } +} + +191  + $__gl_thumbs_Ïng_chªged +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +193 + `GL_CHECK +( +obj +); + +194 +Eša_Li¡ + * +™s + = +NULL +; + +195 +Eša_Li¡ + * +l + = +NULL +; + +196 +Elm_Objeù_I‹m + * +™ + = +NULL +; + +197 cÚ¡ +Elm_G’grid_I‹m_CÏss + * +™c + = +NULL +; + +199 +™s + = + `–m_g’grid_»®ized_™ems_g‘ +( +obj +); + +200 + `EINA_LIST_FOREACH +( +™s +, +l +, +™ +) { + +201 +™c + = + `–m_g’grid_™em_™em_þass_g‘ +( +™ +); + +202 ià( +™c + && itc-> +func +. +‹xt_g‘ +) + +203 + `–m_g’grid_™em_upd©e +( +™ +); + +204 +™ + = +NULL +; + +206 + } +} + +208  + $__gl_thumbs_check_chªged +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +210 + `GL_CHECK +( +obj +); + +211 + `GL_CHECK +( +d©a +); + +212 +gl_™em + * +g™em + = (gl_™em *) +d©a +; + +213 + `GL_CHECK +( +g™em +-> +ad +); + +214 + `GL_CHECK +( +g™em +-> +®bum +); + +215 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +g™em +->ad; + +216  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +217 +Elm_Objeù_I‹m + * +nf_™ + = +NULL +; + +218 (* +upd©e_‹xt +è( +Elm_Objeù_I‹m + * +nf_™ +,  +£l_út +, +boÞ + +b_Ïng +); + +219 + `gl_dbg +(""); + +221 ià( +v›w_mode + =ð +GL_VIEW_THUMBS_EDIT +) { + +222 +nf_™ + = +ad +-> +gridšfo +.nf_it; + +223 +upd©e_‹xt + = +_gl_thumbs_upd©e_Ïb–_‹xt +; + +224 } ià( +v›w_mode + =ð +GL_VIEW_THUMBS_SELECT +) { + +225 +nf_™ + = +ad +-> +®bumšfo +. +nf_™_£Ëù +; + +226 +upd©e_‹xt + = +_gl_ui_upd©e_Çvi_t™Ë_‹xt +; + +231 +Eša_BoÞ + +checked + = + `–m_check_¡©e_g‘ +( +obj +); + +232 +g™em +-> +checked + = checked; + +233 ià( +checked +) { + +234 ià( + `¡rcmp +( +g™em +-> +®bum +-> +þu¡” +-> +uuid +, +GL_ALBUM_FAVOURITE_ID +)==0) { + +235 +Eša_Li¡ + * +£l_li¡1 + = +ad +-> +£lšfo +. +çv_–i¡ +; + +236 +£l_li¡1 + = + `eša_li¡_­³nd +(£l_li¡1, +g™em +); + +237 +ad +-> +£lšfo +. +çv_–i¡ + = +£l_li¡1 +; + +239 + `_gl_d©a_£Ëùed_li¡_­³nd +( +ad +, +g™em +); + +240 +Eša_Li¡ + * +medŸs_–i¡ + = +NULL +; + +241 + `_gl_thumbs_g‘_li¡ +( +ad +, & +medŸs_–i¡ +); + +242 + `_gl_d©a_£Ëùed_add_bur¡shÙ +( +ad +, +g™em +, +medŸs_–i¡ +); + +244 +g™em +-> +®bum +-> +–i¡ + = + `eša_li¡_­³nd +(gitem->album->elist, gitem); + +246 + `gl_sdbg +("Remove:%s", +g™em +-> +™em +-> +fže_u¾ +); + +247 ià( + `¡rcmp +( +g™em +-> +®bum +-> +þu¡” +-> +uuid +, +GL_ALBUM_FAVOURITE_ID +)==0) { + +248 + `_gl_d©a_£Ëùed_çv_li¡_»move +( +ad +, +g™em +); + +250 + `_gl_d©a_£Ëùed_li¡_»move +( +ad +, +g™em +); + +252 +g™em +-> +®bum +-> +–i¡ + = + `eša_li¡_»move +(gitem->album->elist, gitem); + +255  +£l_út + = + `_gl_d©a_£Ëùed_li¡_couÁ +( +ad +); + +256  +çv_£l_út + = + `eša_li¡_couÁ +( +ad +-> +£lšfo +. +çv_–i¡ +); + +257  +tÙ®_£l_couÁ + = +£l_út + + +çv_£l_út +; + +258  +®bum_£Ëù_couÁ + = + `eša_li¡_couÁ +( +g™em +-> +®bum +-> +–i¡ +); + +259 ià( +g™em +-> +®bum +-> +™em +) { + +260  +buf +[ +GL_ALBUM_NAME_LEN_MAX +] = { 0, }; + +261 ià( +®bum_£Ëù_couÁ + > 0) { + +262 + `–m_objeù_™em_sigÇl_em™ +( +g™em +-> +®bum +-> +™em +, + +265 + `¢´štf +( +buf +, (buf), "%d", +®bum_£Ëù_couÁ +); + +267 + `–m_objeù_™em_sigÇl_em™ +( +g™em +-> +®bum +-> +™em +, + +271 + `–m_g’grid_™em_f›lds_upd©e +( +g™em +-> +®bum +-> +™em +, "–m.‹xt.badge", +ELM_GENGRID_ITEM_FIELD_TEXT +); + +273 + `_gl_nÙify_check_£ÏÎ +( +ad +, +nf_™ +,‡d-> +gridšfo +. +couÁ +, +®bum_£Ëù_couÁ +); + +276 + `gl_sdbg +("£l_út:%d", +tÙ®_£l_couÁ +); + +277 + `upd©e_‹xt +( +nf_™ +, +tÙ®_£l_couÁ +, +çl£ +); + +279 + } +} + +281 #ifdeà +_USE_SHRINK_EFFECT + + +284  + $__gl_thumbs_shršk_cb +(* +d©a +, +Evas_Objeù + * +obj +, + +285 cÚ¡ * +emissiÚ +, cÚ¡ * +sourû +) + +287 + `GL_CHECK +( +d©a +); + +288 +gl_™em + * +g™em + = (gl_™em *è +d©a +; + +289 + `GL_CHECK +( +g™em +-> +ad +); + +290 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +g™em +->ad; + +291 + `gl_dbg +(""); + +293 + `_gl_thumbs_ݒ_fže +( +d©a +); + +295 + `edje_objeù_sigÇl_ÿÎback_d– +( +obj +, "shrink,expand,done", "bg", + +296 +__gl_thumbs_shršk_cb +); + +297 + } +} + +301  + $__gl_thumbs_ü—‹_thumb_cb +( +medŸ_cڋÁ_”rÜ_e + +”rÜ +, + +302 cÚ¡ * +·th +, * +u£r_d©a +) + +304 + `GL_CHECK +( +u£r_d©a +); + +305 +gl_thumb_d©a_s + * +thumb_d©a + = (gl_thumb_d©a_ *) +u£r_d©a +; + +306 + `GL_CHECK +( +thumb_d©a +-> +ad +); + +307 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +thumb_d©a +->ad; + +308 +gl_™em + * +g™em + = +thumb_d©a +-> +™em +; + +309 + `GL_FREE +( +thumb_d©a +); + +310 +g™em +-> +thumb_d©a + = +NULL +; + +312 ià( + `gl_g‘_v›w_mode +( +ad +è!ð +GL_VIEW_THUMBS + && + +313 + `gl_g‘_v›w_mode +( +ad +è!ð +GL_VIEW_THUMBS_EDIT + && + +314 + `gl_g‘_v›w_mode +( +ad +è!ð +GL_VIEW_THUMBS_SELECT +) + +317 ià( +”rÜ + =ð +MEDIA_CONTENT_ERROR_NONE + && + `GL_FILE_EXISTS +( +·th +) && + +318 + `g_¡rcmp0 +( +·th +, +GL_ICON_DB_DEFAULT_THUMB +)) { + +319 + `GL_CHECK +( +g™em +); + +320 + `GL_CHECK +( +g™em +-> +™em +); + +321 + `gl_dbg +("Upd©™em w™h‚ewhumb…©h[%s]", +·th +); + +323 + `GL_FREEIF +( +g™em +-> +™em +-> +thumb_u¾ +); + +324 +g™em +-> +™em +-> +thumb_u¾ + = + `¡rdup +( +·th +); + +325 + `–m_g’grid_™em_upd©e +( +g™em +-> +–m_™em +); + +327 + `gl_dbgE +("[%d]Inv®id…©h[%s]!", +”rÜ +, +·th +); + +329 + } +} + +332  + $_gl_thumbs_ü—‹_thumb +( +gl_™em + * +g™em +) + +334 + `GL_CHECK_VAL +( +g™em +, -1); + +335 + `GL_CHECK_VAL +( +g™em +-> +™em +, -1); + +336 + `GL_CHECK_VAL +( +g™em +-> +™em +-> +fže_u¾ +, -1); + +338 ià( + `GL_FILE_EXISTS +( +g™em +-> +™em +-> +fže_u¾ +)) { + +339 +gl_thumb_d©a_s + * +thumb_d©a + = +NULL +; + +340 +thumb_d©a + = ( +gl_thumb_d©a_s + *) + `ÿÎoc +(1, (gl_thumb_data_s)); + +341 + `GL_CHECK_VAL +( +thumb_d©a +, -1); + +342 +thumb_d©a +-> +ad + = +g™em +->ad; + +343 +thumb_d©a +-> +™em + = +g™em +; + +344 +g™em +-> +thumb_d©a + =humb_data; + +345 + `_gl_d©a_ü—‹_thumb +( +g™em +-> +™em +, +__gl_thumbs_ü—‹_thumb_cb +, + +346 +thumb_d©a +); + +350 + } +} + +366  + $ݒ_image_š_£Ëù_mode +(* +d©a +, +Evas_Objeù + * +obj +, * +ev’t_šfo +) + +368 + `GL_CHECK +( +d©a +); + +369 + `_gl_thumbs_ݒ_fže_£Ëù_mode +( +d©a +); + +370 + } +} + +372  +Evas_Objeù + * + $__gl_thumbs_g‘_cڋÁ +(* +d©a +, +Evas_Objeù + * +obj +, + +373 cÚ¡ * +·¹ +) + +375 + `GL_CHECK_NULL +( +·¹ +); + +376 + `GL_CHECK_NULL +( + `¡¾’ +( +·¹ +)); + +377 + `GL_CHECK_NULL +( +d©a +); + +378 +gl_™em + * +g™em + = (gl_™em *) +d©a +; + +379 + `GL_CHECK_NULL +( +g™em +-> +™em +); + +380 + `GL_CHECK_NULL +( +g™em +-> +ad +); + +381 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +g™em +->ad; + +382  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +384 ià(! + `g_¡rcmp0 +( +·¹ +, +GL_THUMB_ICON +)) { + +385 +Evas_Objeù + * +Ïyout + = + `_gl_thumbs_g‘_cڋÁ +( +ad +, +obj +, +g™em +, + +386 +ad +-> +gridšfo +. +icÚ_w +, + +387 +ad +-> +gridšfo +. +icÚ_h +); + +389 #ifdeà +_USE_SHRINK_EFFECT + + +390 + `evas_objeù_ev’t_ÿÎback_add +( +Ïyout +, +EVAS_CALLBACK_MOUSE_DOWN +, + +391 +_gl_thumbs_mou£_down +, +g™em +); + +392 + `evas_objeù_ev’t_ÿÎback_add +( +Ïyout +, +EVAS_CALLBACK_MOUSE_UP +, + +393 +_gl_thumbs_mou£_up +, +g™em +); + +395  +Ïyout +; + +396 } ià(! + `g_¡rcmp0 +( +·¹ +, +GL_THUMB_CHECKBOX +)) { + +397 +Evas_Objeù + * +ck + = +NULL +; + +398 ià( +v›w_mode + =ð +GL_VIEW_THUMBS_EDIT + || + +399 +v›w_mode + =ð +GL_VIEW_THUMBS_SELECT +) { + +400 +boÞ + +checked + = +Œue +; + +401 ià(! +g™em +-> +checked +) { + +402 +checked + = + `_gl_d©a_g‘_bur¡shÙ_¡©us +( +ad +, +g™em +); + +404 +checked + = +g™em +->checked; + +406 +ck + = + `_gl_thumb_show_checkbox +( +obj +, +checked +, + +407 +__gl_thumbs_check_chªged +, +d©a +); + +408 + `–m_objeù_™em_sigÇl_em™ +( +g™em +-> +–m_™em +, "show_image_icon", "elm_image_open_icon_rect"); + +410 +ck + = + `–m_objeù_™em_·¹_cڋÁ_g‘ +( +g™em +-> +–m_™em +, + +411 +GL_THUMB_CHECKBOX +); + +412 + `–m_objeù_™em_sigÇl_em™ +( +g™em +-> +–m_™em +, "hide_image_icon", "elm_image_open_icon_rect"); + +413 ià( +ck +) { + +414 + `evas_objeù_d– +( +ck +); + +415 +ck + = +NULL +; + +418  +ck +; + +419 } ià(! + `g_¡rcmp0 +( +·¹ +, "elm_image_open_icon_swallow_blocker")) { + +420 +Evas_Objeù + * +bŠ1 + = +NULL +; + +421 ià( +v›w_mode + =ð +GL_VIEW_THUMBS_EDIT + || + +422 +v›w_mode + =ð +GL_VIEW_THUMBS_SELECT +) { + +423 +bŠ1 + = + `evas_objeù_»ùªgË_add +( + `evas_objeù_evas_g‘ +( +obj +)); + +424 + `evas_objeù_cÞÜ_£t +( +bŠ1 +, 0, 255, 0, 0); + +425 + `evas_objeù_´Ýag©e_ev’ts_£t +( +bŠ1 +, +EINA_FALSE +); + +428 +bŠ1 + = + `–m_objeù_™em_·¹_cڋÁ_g‘ +( +g™em +-> +–m_™em +, + +430 ià( +bŠ1 +) { + +431 + `evas_objeù_d– +( +bŠ1 +); + +432 +bŠ1 + = +NULL +; + +435  +bŠ1 +; + +436 } ià(! + `g_¡rcmp0 +( +·¹ +, "elm_image_open_icon_swallow")) { + +437 +Evas_Objeù + * +bŠ + = +NULL +; + +438 ià( +v›w_mode + =ð +GL_VIEW_THUMBS_EDIT + || + +439 +v›w_mode + =ð +GL_VIEW_THUMBS_SELECT +) { + +440 +bŠ + = + `–m_bu‰Ú_add +( +obj +); + +441 + `–m_objeù_¡yË_£t +( +bŠ +, "transparent"); + +442 + `evas_objeù_show +( +bŠ +); + +443 + `evas_objeù_´Ýag©e_ev’ts_£t +( +bŠ +, +EINA_FALSE +); + +444 + `evas_objeù_sm¬t_ÿÎback_add +( +bŠ +, "þicked", +ݒ_image_š_£Ëù_mode +, +g™em +); + +446 +bŠ + = + `–m_objeù_™em_·¹_cڋÁ_g‘ +( +g™em +-> +–m_™em +, + +448 ià( +bŠ +) { + +449 + `evas_objeù_d– +( +bŠ +); + +450 +bŠ + = +NULL +; + +453  +bŠ +; + +454 } ià(! + `g_¡rcmp0 +( +·¹ +, +GL_THUMB_MODE +)) { + +455  + `_gl_thumb_show_mode +( +obj +, +g™em +-> +™em +-> +mode +); + +457  +NULL +; + +458 + } +} + +460 * + $__gl_thumbs_g‘_‹xt +(* +d©a +, +Evas_Objeù + * +obj +, + +461 cÚ¡ * +·¹ +) + +463 + `GL_CHECK_NULL +( +·¹ +); + +464 + `GL_CHECK_NULL +( + `¡¾’ +( +·¹ +)); + +465 + `GL_CHECK_NULL +( +d©a +); + +466 +gl_™em + * +g™em + = (gl_™em *) +d©a +; + +467 + `GL_CHECK_NULL +( +g™em +-> +™em +); + +469  +tm + +time +; + +470 + `loÿÉime_r +(( +time_t + *è&( +g™em +-> +™em +-> +mtime +), & +time +); + +472 ià(! + `g_¡rcmp0 +( +·¹ +, +GL_THUMB_YEAR +)) { + +473  +buf +[ +GL_DATE_INFO_LEN_MAX +] = {0}; + +474 + `¢´štf +( +buf +, (buf), "%d", +GL_DEFAULT_YEAR ++ +time +. +tm_y—r +); + +475  + `¡rdup +( +buf +); + +476 } ià(! + `g_¡rcmp0 +( +·¹ +, +GL_THUMB_MONTH +)) { + +477 * +mÚ_Çme +[12] = { + +478 +GL_STR_ID_JAN +, +GL_STR_ID_FEB +, +GL_STR_ID_MAR +, + +479 +GL_STR_ID_APR +, +GL_STR_ID_MAY +, +GL_STR_ID_JUN +, + +480 +GL_STR_ID_JUL +, +GL_STR_ID_AUG +, +GL_STR_ID_SEP +, + +481 +GL_STR_ID_OCT +, +GL_STR_ID_NOV +, +GL_STR_ID_DEC + }; + +482  + `g_ascii_¡rup +( + `_gl_¡r +( +mÚ_Çme +[ +time +. +tm_mÚ +]), -1); + +485  +NULL +; + +486 + } +} + +488  + $__gl_thumbs_£t_ty³ +(* +d©a +) + +490 + `GL_CHECK_VAL +( +d©a +, -1); + +491 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +493 +ad +-> +gridšfo +. +grid_ty³ + = +GL_GRID_T_NONE +; + +494 +gl_þu¡” + * +cur_®bum + = + `_gl_®bums_g‘_cu¼’t +( +d©a +); + +495 + `GL_CHECK_VAL +( +cur_®bum +, -1); + +496 + `GL_CHECK_VAL +( +cur_®bum +-> +þu¡” +, -1); + +498  +cur_®bum +-> +þu¡” +-> +ty³ +) { + +499  +GL_STORE_T_PHONE +: + +500  +GL_STORE_T_MMC +: + +501 +ad +-> +gridšfo +. +grid_ty³ + = +GL_GRID_T_LOCAL +; + +503  +GL_STORE_T_ALL +: + +504 +ad +-> +gridšfo +. +grid_ty³ + = +GL_GRID_T_ALLALBUMS +; + +506  +GL_STORE_T_FAV +: + +507 +ad +-> +gridšfo +. +grid_ty³ + = +GL_GRID_T_FAV +; + +510 + `gl_dbgE +("Wrong cluster storageype!"); + +512 + `gl_dbg +("Gridv›wy³: %d", +ad +-> +gridšfo +. +grid_ty³ +); + +514 + } +} + +516  + $__gl_thumbs_£t_™em_¡yË +(* +d©a +) + +518 + `GL_CHECK_VAL +( +d©a +, -1); + +519 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +521 ià( +ad +-> +gridšfo +. +d©e_gic +. +™em_¡yË + =ð +NULL + || + +522 +ad +-> +gridšfo +. +d©e_gic +. +func +. +‹xt_g‘ + =ð +NULL +) { + +523 +ad +-> +gridšfo +. +d©e_gic +. +™em_¡yË + = +GL_GENGRID_ITEM_STYLE_DATE +; + +524 +ad +-> +gridšfo +. +d©e_gic +. +func +. +‹xt_g‘ + = +__gl_thumbs_g‘_‹xt +; + +525 +ad +-> +gridšfo +. +d©e_gic +. +func +. +cڋÁ_g‘ + = +NULL +; + +528 + } +} + +530  +boÞ + + $__gl_thumbs_ü—‹_™ems +(* +d©a +, +Evas_Objeù + * +·»Á +) + +532 + `GL_CHECK_FALSE +( +d©a +); + +533 + `GL_CHECK_FALSE +( +·»Á +); + +534 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +535  +i + = 0; + +536  +™em_út + = 0; + +537 +gl_™em + * +g™em + = +NULL +; + +538  +»t + = -1; + +539 * +bur¡shÙ_id + = +NULL +; + +541 +Eša_Li¡ + * +medŸ_–i¡ + = +NULL +; + +542 + `_gl_thumbs_g‘_li¡ +( +d©a +, & +medŸ_–i¡ +); + +543 ià( +ad +-> +gridšfo +. +medŸ_di¥Ïy_Üd” + =ð +ORDER_ASC +) { + +544 +medŸ_–i¡ + = + `eša_li¡_»v”£ +(media_elist); + +547  +út + = + `eša_li¡_couÁ +( +medŸ_–i¡ +); + +548 + `gl_dbg +("Li¡ couÁ : %d", +út +); + +549 +Elm_G’grid_I‹m_CÏss + * +gic + = +NULL +; + +550 +gic + = + `evas_objeù_d©a_g‘ +( +·»Á +, "gl_thumbs_item_style_key"); + +551 + `GL_CHECK_FALSE +( +gic +); + +553 ià( + `–m_g’grid_™ems_couÁ +( +·»Á +) > 0) { + +555 + `_gl_ui_§ve_süÞËr_pos +( +·»Á +); + +556 + `evas_objeù_sm¬t_ÿÎback_d– +( +·»Á +, "unrealized", + +557 +__gl_thumbs_uėlized +); + +558 + `–m_g’grid_þ—r +( +·»Á +); + +559 + `evas_objeù_sm¬t_ÿÎback_add +( +·»Á +, "unrealized", + +560 +__gl_thumbs_uėlized +, +ad +); + +562  +i + = 0; i < +út +; i++) { + +563 +g™em + = + `eša_li¡_Áh +( +medŸ_–i¡ +, +i +); + +564 ià( +g™em + =ð +NULL + || g™em-> +™em + == NULL || + +565 +g™em +-> +™em +-> +uuid + =ð +NULL +) { + +566 + `gl_dbgE +("Invalid gitem. continue..."); + +570 ià(! +g™em +-> +™em +-> +fže_u¾ +) { + +571 + `gl_dbg +("file_url is invalid."); + +572 +»t + = + `_gl_d©a_d–‘e_medŸ +( +ad +, +g™em +-> +™em +); + +573 ià( +»t + != 0) + +575 + `_gl_d©a_£Ëùed_li¡_»move +( +ad +, +g™em +); + +576 +medŸ_–i¡ + = + `eša_li¡_»move +(medŸ_–i¡, +g™em +); + +577 + `_gl_thumbs_£t_li¡ +( +d©a +, +medŸ_–i¡ +); + +578 +út +--; + +579 +i +--; + +580 +g™em + = +NULL +; + +584 ià( +ad +-> +gridšfo +. +back_to_nÜm® +) { + +585 +g™em +-> +checked + = +çl£ +; + +587 ià( + `_gl_thumbs_is_­³nd +( +g™em +, & +bur¡shÙ_id +)) { + +588 +g™em +-> +–m_™em + = + `–m_g’grid_™em_­³nd +( +·»Á +, +gic +, + +589 +g™em +, + +590 +__gl_thumbs_£l_cb +, + +591 +g™em +); + +592 +g™em +-> +´—µ’d + = +çl£ +; + +594 +™em_út +++; + +595 +g™em +-> +£qu’û + = +™em_út +; + +597 ià( +ad +-> +gridšfo +. +medŸ_di¥Ïy_Üd” + =ð +ORDER_ASC +) { + +598 +medŸ_–i¡ + = + `eša_li¡_»v”£ +(media_elist); + +601 + `_gl_ui_»¡Üe_süÞËr_pos +( +·»Á +); + +603 #ifdeà +_USE_SHRINK_EFFECT + + +605 + `–m_g’grid_£Ëù_mode_£t +( +·»Á +, +ELM_OBJECT_SELECT_MODE_NONE +); + +607 +ad +-> +gridšfo +. +couÁ + = +™em_út +; + +608 +ad +-> +gridšfo +. +back_to_nÜm® + = +çl£ +; + +610 ià( +™em_út + == 0) + +611  +EINA_FALSE +; + +613  +EINA_TRUE +; + +614 + } +} + +621  + $__gl_thumbs_£t_v›w +(* +d©a +, +Evas_Objeù + * +v›w +, +boÞ + +b_noc +) + +623 + `GL_CHECK_VAL +( +d©a +, -1); + +624 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +625 +ad +-> +gridšfo +. +v›w + = view; + +626 ià( +b_noc +) + +627 + `_gl_thumbs_£t_nocڋÁs +( +ad +, +v›w +); + +629 + `_gl_thumbs_£t_nocڋÁs +( +ad +, +NULL +); + +631 + } +} + +633  + $_gl_thumbs_add_®bum_d©a +( +gl_þu¡” + * +®bum +, +Eša_Li¡ + * +medŸs_–i¡ +) + +635 + `GL_CHECK +( +®bum +); + +636 + `GL_CHECK +( +medŸs_–i¡ +); + +637  +út + = + `eša_li¡_couÁ +( +medŸs_–i¡ +); + +638  +i +; + +639 +gl_™em + * +g™em + = +NULL +; + +640  +i + = 0; i < +út +; i++) { + +641 +g™em + = + `eša_li¡_Áh +( +medŸs_–i¡ +, +i +); + +642 + `GL_CHECK +( +g™em +); + +643 +g™em +-> +®bum + =‡lbum; + +645 + } +} + +656  + $__gl_thumbs_idËr_­³nd_™ems +(* +d©a +) + +658 + `GL_CHECK_VAL +( +d©a +, -1); + +659 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +660 + `GL_CHECK_VAL +( + `_gl_®bums_g‘_cu¼’t +( +d©a +), -1); + +661  +i + = 0; + +662  +™em_út + = 0; + +663 +gl_™em + * +g™em + = +NULL +; + +664 +gl_þu¡” + * +®bum + = +NULL +; + +665  +»t + = -1; + +666 * +bur¡shÙ_id + = +NULL +; + +667 +Evas_Objeù + * +v›w + = +ad +-> +gridšfo +.view; + +669 ià( + `gl_g‘_v›w_mode +( +d©a +è=ð +GL_VIEW_THUMBS_SELECT +) { + +670 +v›w + = +ad +-> +gridšfo +. +£Ëù_v›w +; + +672 + `GL_CHECK_VAL +( +v›w +, -1); + +674 +Elm_G’grid_I‹m_CÏss + * +gic + = +NULL +; + +675 +gic + = + `evas_objeù_d©a_g‘ +( +v›w +, "gl_thumbs_item_style_key"); + +676 + `GL_CHECK_VAL +( +gic +, -1); + +679 +Eša_Li¡ + * +medŸ_–i¡ + = +NULL +; + +680 + `_gl_thumbs_g‘_li¡ +( +d©a +, & +medŸ_–i¡ +); + +681  +út + = + `eša_li¡_couÁ +( +medŸ_–i¡ +); + +682 + `gl_dbg +("Fœ¡ v›w medŸ couÁ: %d", +út +); + +683 ià( +út + !ð( +GL_FIRST_VIEW_END_POS + + 1)) { + +684 + `gl_dbg +("No‡ny more items,„eturn!"); + +688 +»t + = + `_gl_d©a_g‘_™ems_®bum +( +ad +, + `_gl_®bums_g‘_cu¼’t +( +d©a +), + +689 ( +GL_FIRST_VIEW_END_POS + + 1), + +690 +GL_GET_UNTIL_LAST_RECORD +, & +medŸ_–i¡ +); + +691 ià( +»t + < 0) { + +692 + `gl_dbgE +("G‘ i‹m li¡ fažed[%d]!", +»t +); + +693  +»t +; + +696 + `_gl_thumbs_£t_li¡ +( +d©a +, +medŸ_–i¡ +); + +697 +út + = + `eša_li¡_couÁ +( +medŸ_–i¡ +); + +698 + `gl_dbg +("Grid v›w‡Î medŸ couÁ: %d", +út +); + +701 +g™em + = + `eša_li¡_Áh +( +medŸ_–i¡ +, 0); + +702 ià( +g™em +) { + +703 +®bum + = +g™em +->album; + +707 +i + = +GL_FIRST_VIEW_END_POS + + 1; + +710 +g™em + = + `eša_li¡_Áh +( +medŸ_–i¡ +, +i + - 1); + +711 ià( +g™em + && g™em-> +™em + && + +712 +g™em +-> +™em +-> +ty³ + =ð +MEDIA_CONTENT_TYPE_IMAGE + && + +713 +g™em +-> +™em +-> +image_šfo + && + +714 +g™em +-> +™em +-> +image_šfo +-> +bur¡shÙ_id +) { + +715 +bur¡shÙ_id + = +g™em +-> +™em +-> +image_šfo +->burstshot_id; + +716 + `gl_dbgW +("Update burstshot item!"); + +717 + `–m_g’grid_™em_upd©e +( +g™em +-> +–m_™em +); + +719 +g™em + = +NULL +; + +720 ; +i + < +út +; i++) { + +721 +g™em + = + `eša_li¡_Áh +( +medŸ_–i¡ +, +i +); + +722 ià( +g™em + =ð +NULL + || g™em-> +™em + == NULL || + +723 +g™em +-> +™em +-> +uuid + =ð +NULL +) { + +724 + `gl_dbgE +("Invalid gitem, continue..."); + +728 ià(! +g™em +-> +™em +-> +fže_u¾ +) { + +729 + `gl_dbg +("file_url is invalid."); + +730 + `_gl_d©a_d–‘e_medŸ +( +ad +, +g™em +-> +™em +); + +731 + `_gl_d©a_£Ëùed_li¡_»move +( +ad +, +g™em +); + +732 +medŸ_–i¡ + = + `eša_li¡_»move +(medŸ_–i¡, +g™em +); + +733 + `_gl_thumbs_£t_li¡ +( +d©a +, +medŸ_–i¡ +); + +734 +út +--; + +735 +i +--; + +736 +g™em + = +NULL +; + +739 ià( + `_gl_thumbs_is_­³nd +( +g™em +, & +bur¡shÙ_id +)) { + +740 +g™em +-> +–m_™em + = + `–m_g’grid_™em_­³nd +( +v›w +, +gic +, + +741 +g™em +, + +742 +__gl_thumbs_£l_cb +, + +743 +g™em +); + +744 +g™em +-> +´—µ’d + = +çl£ +; + +747 +™em_út +++; + +748 +g™em +-> +£qu’û + = +™em_út + + +GL_FIRST_VIEW_END_POS + + 1; + +750 + `_gl_thumbs_add_®bum_d©a +( +®bum +, +medŸ_–i¡ +); + +752 + `gl_dbgW +("Use idlero‡ppend other medias--Done!"); + +753 ià( +™em_út + == 0) { + +756 +ad +-> +gridšfo +. +couÁ + = +™em_út + + +GL_FIRST_VIEW_END_POS + + 1; + +757 + `gl_dbg +("AÎ couÁ‡µ’ded: %d", +ad +-> +gridšfo +. +couÁ +); + +760 + } +} + +762  + $__gl_thumbs_mode_»£t_bŠs +(* +d©a +) + +764 + `GL_CHECK_VAL +( +d©a +, -1); + +765 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +768 ià( + `_gl_thumbs_check_z”o +( +d©a +)) { + +769 + `_gl_thumbs_di§bË_sh¬e +( +ad +, +Œue +); + +770 + `_gl_thumbs_di§bË_¦ideshow +( +ad +, +Œue +); + +771 + `_gl_ui_di§bË_m’u +( +ad +-> +gridšfo +. +nf_™ +, +Œue +); + +773 + `_gl_thumbs_di§bË_sh¬e +( +ad +, +çl£ +); + +774 + `_gl_thumbs_di§bË_¦ideshow +( +ad +, +çl£ +); + +775 + `_gl_ui_di§bË_m’u +( +ad +-> +gridšfo +. +nf_™ +, +çl£ +); + +778 + } +} + +780  + $__gl_thumbs_Œªs_fšished_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +782 + `GL_CHECK +( +d©a +); + +783 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +784  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +785 + `gl_dbgW +("v›w_mode: %d", +v›w_mode +); + +786 + `evas_objeù_sm¬t_ÿÎback_d– +( +obj +, +GL_TRANS_FINISHED +, + +787 +__gl_thumbs_Œªs_fšished_cb +); + +790 ià( +v›w_mode + =ð +GL_VIEW_THUMBS + || v›w_mod=ð +GL_VIEW_THUMBS_EDIT +) { + +791 ià( + `_gl_ù¾_g‘_b_mode +( +ad +è=ð +GL_CTRL_TAB_ALBUMS +) + +792 + `–m_g’grid_þ—r +( +ad +-> +®bumšfo +. +v›w +); + +794 + `gl_dbgE +("Wrong view mode!"); + +797 ià( +ad +-> +gridšfo +. +is_­³nd +) { + +798 + `_gl_thumbs_­³nd_™ems +( +d©a +); + +799 +ad +-> +gridšfo +. +is_­³nd + = +çl£ +; + +801 + } +} + +803  +Eša_BoÞ + + $__gl_thumbs_pÝ_cb +(* +d©a +, +Elm_Objeù_I‹m + * +™ +) + +805 + `GL_CHECK_FALSE +( +d©a +); + +806 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +808 ià( + `gl_g‘_v›w_mode +( +d©a +è=ð +GL_VIEW_THUMBS_EDIT +) { + +809 + `gl_dbg +("GL_VIEW_THUMBS_EDIT"); + +810 + `_gl_thumbs_ed™_pÝ_v›w +( +d©a +); + +812 ià( + `_gl_thumbs_g‘_ed™_mode +( +d©a +è< +GL_THUMBS_EDIT_FIRST +) + +813  +EINA_FALSE +; + +817 +Elm_Naviäame_I‹m_PÝ_Cb + +func + = +NULL +; + +818 +func + = ( +Elm_Naviäame_I‹m_PÝ_Cb +) + `–m_objeù_™em_d©a_g‘ +( +ad +-> +gridšfo +. +nf_™ +); + +820 + `gl_dbg +("func: %p", +func +); + +821 ià( +func +) + +822 + `func +( +d©a +, +™ +); + +824 ià( +ad +-> +®bumšfo +. +£Ëùed_uuid +) { + +825 + `ä“ +( +ad +-> +®bumšfo +. +£Ëùed_uuid +); + +826 +ad +-> +®bumšfo +. +£Ëùed_uuid + = +NULL +; + +828  +EINA_TRUE +; + +829 + } +} + +831  + $__gl_thumbs_ed™_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +833 + `GL_CHECK +( +d©a +); + +834 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +835 + `_gl_ùxpÝup_d– +( +d©a +); + +836 ià( +ad +-> +ugšfo +. +ug + ||‡d-> +gridšfo +. +is_­³nd +) { + +842 + `gl_dbg +("UG invoked or‡ppending gridview."); + +846 +ad +-> +gridšfo +. +b_¦ideshow_di§bË + = +çl£ +; + +848  +v›w_mode + = + `gl_g‘_v›w_mode +( +d©a +); + +849 + `gl_dbg +("mode: %d", +v›w_mode +); + +850 ià( +v›w_mode + =ð +GL_VIEW_THUMBS +) { + +851 + `_gl_thumbs_£t_ed™_mode +( +d©a +, +GL_THUMBS_EDIT_NORMAL +); + +852 +gl_™em + * +g™em + = + `eša_li¡_Áh +( +ad +-> +gridšfo +. +medŸs_–i¡ +, 0); + +853 +gl_™em + * +tmp + = +NULL +; + +855 + `GL_CHECK +( +g™em +); + +856 + `GL_CHECK +( +g™em +-> +®bum +); + +857 ià( +g™em + && g™em-> +®bum + && g™em->®bum-> +–i¡ +) { + +858 + `EINA_LIST_FREE +( +g™em +-> +®bum +-> +–i¡ +, +tmp +) { + +859 ià( +tmp +) { + +860 +tmp +-> +checked + = +çl£ +; + +864 + `_gl_thumbs_ed™_ü—‹_v›w +( +d©a +); + +866 + } +} + +868  + $__gl_thumbs_cÝy_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +870 + `GL_CHECK +( +d©a +); + +871 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +872 + `_gl_ùxpÝup_d– +( +d©a +); + +873 ià( +ad +-> +ugšfo +. +ug + ||‡d-> +gridšfo +. +is_­³nd +) { + +874 + `gl_dbg +("UG invoked or‡ppending gridview."); + +878 +ad +-> +gridšfo +. +b_¦ideshow_di§bË + = +çl£ +; + +880  +v›w_mode + = + `gl_g‘_v›w_mode +( +d©a +); + +881 + `gl_dbg +("mode: %d", +v›w_mode +); + +882 ià( +v›w_mode + =ð +GL_VIEW_THUMBS +) { + +883 + `_gl_thumbs_£t_ed™_mode +( +d©a +, +GL_THUMBS_EDIT_COPY +); + +884 +gl_™em + * +g™em + = + `eša_li¡_Áh +( +ad +-> +gridšfo +. +medŸs_–i¡ +, 0); + +885 +gl_™em + * +tmp + = +NULL +; + +886 ià( +g™em + && g™em-> +®bum +) { + +887 + `EINA_LIST_FREE +( +g™em +-> +®bum +-> +–i¡ +, +tmp +) { + +888 ià( +tmp +) { + +889 +tmp +-> +checked + = +çl£ +; + +893 + `_gl_thumbs_ed™_ü—‹_v›w +( +d©a +); + +895 + } +} + +897  + $__gl_thumbs_move_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +899 + `GL_CHECK +( +d©a +); + +900 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +901 + `_gl_ùxpÝup_d– +( +d©a +); + +902 ià( +ad +-> +ugšfo +. +ug + ||‡d-> +gridšfo +. +is_­³nd +) { + +903 + `gl_dbg +("UG invoked or‡ppending gridview."); + +907 +ad +-> +gridšfo +. +b_¦ideshow_di§bË + = +çl£ +; + +909  +v›w_mode + = + `gl_g‘_v›w_mode +( +d©a +); + +910 + `gl_dbg +("mode: %d", +v›w_mode +); + +911 ià( +v›w_mode + =ð +GL_VIEW_THUMBS +) { + +912 + `_gl_thumbs_£t_ed™_mode +( +d©a +, +GL_THUMBS_EDIT_MOVE +); + +913 +gl_™em + * +g™em + = + `eša_li¡_Áh +( +ad +-> +gridšfo +. +medŸs_–i¡ +, 0); + +914 +gl_™em + * +tmp + = +NULL +; + +915 ià( +g™em + && g™em-> +®bum +) { + +916 + `EINA_LIST_FREE +( +g™em +-> +®bum +-> +–i¡ +, +tmp +) { + +917 ià( +tmp +) { + +918 +tmp +-> +checked + = +çl£ +; + +922 + `_gl_thumbs_ed™_ü—‹_v›w +( +d©a +); + +924 + } +} + +926  + $__gl_thumbs_sÜtby_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +928 + `gl_dbg +("ENTRY"); + +929 + `GL_CHECK +( +d©a +); + +930 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +931  +¡©e_šdex + = -1; + +932 +¡©e_šdex + = +ad +-> +gridšfo +. +medŸ_di¥Ïy_Üd” + =ð +ORDER_ASC + ? 1 : 0; + +933 + `_gl_li¡_pÝ_ü—‹ +( +d©a +, +obj +, +ei +, +GL_STR_SORT +, +GL_STR_DATE_MOST_RECENT +, +GL_STR_DATE_OLDEST +, +¡©e_šdex +); + +934 + `gl_dbg +("EXIT"); + +935 + } +} + +938  + $__gl_thumbs_sh¬e_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +940 + `GL_CHECK +( +d©a +); + +941 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +942 ià( +ad +-> +ugšfo +. +ug + ||‡d-> +gridšfo +. +is_­³nd +) { + +948 + `gl_dbg +("UG invoked or‡ppending gridview."); + +952  +v›w_mode + = + `gl_g‘_v›w_mode +( +d©a +); + +953 + `gl_dbg +("mode: %d", +v›w_mode +); + +954 ià( +v›w_mode + =ð +GL_VIEW_THUMBS +) { + +955 + `_gl_thumbs_£t_ed™_mode +( +d©a +, +GL_THUMBS_EDIT_SHARE +); + +956 + `_gl_thumbs_ed™_ü—‹_v›w +( +d©a +); + +958 + } +} + +961  + $__gl_thumbs_soá_back_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +963 + `GL_CHECK +( +d©a +); + +964 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +965 + `GL_CHECK +( +ad +-> +maššfo +. +Çviäame +); + +966 + `–m_Çviäame_™em_pÝ +( +ad +-> +maššfo +. +Çviäame +); + +967 + } +} + +969 #ifdeà +SUPPORT_SLIDESHOW + + +970  + $__gl_thumbs_¦ideshow_Ý +(* +d©a +) + +972 + `GL_CHECK_VAL +( +d©a +, -1); + +973 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +974 +Eša_Li¡ + * +medŸs_–i¡ + = +NULL +; + +975 +gl_™em + * +cur_™em + = +NULL +; + +976 +medŸ_cڋÁ_ty³_e + +ty³ + = +MEDIA_CONTENT_TYPE_OTHERS +; + +978 + `_gl_thumbs_g‘_li¡ +( +d©a +, & +medŸs_–i¡ +); + +979 + `_gl_d©a_g‘_fœ¡_™em +( +ty³ +, +medŸs_–i¡ +, & +cur_™em +); + +980 + `GL_CHECK_VAL +( +cur_™em +, -1); + +981  + `gl_ext_lßd_iv_ug +( +ad +, +cur_™em +, +GL_UG_IV_SLIDESHOW +); + +982 + } +} + +984  + $__gl_thumbs_¦ideshow +(* +d©a +, cÚ¡ * +Ïb– +) + +986 + `GL_CHECK_VAL +( +Ïb– +, -1); + +987 + `GL_CHECK_VAL +( +d©a +, -1); + +988 + `gl_dbg +("Ïb– : % ", +Ïb– +); + +989 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +991 ià(! + `g_¡rcmp0 +( +Ïb– +, + `_gl_¡r +( +GL_STR_ID_ALL_ITEMS +))) { + +992 + `__gl_thumbs_¦ideshow_Ý +( +d©a +); + +993 } ià(! + `g_¡rcmp0 +( +Ïb– +, + `_gl_¡r +( +GL_STR_ID_SETTINGS +))) { + +994 + `evas_objeù_d©a_£t +( +ad +-> +maššfo +. +Çviäame +, + +995 +GL_NAVIFRAME_SLIDESHOW_DATA_KEY +, + +996 +__gl_thumbs_¦ideshow_Ý +); + +997 + `gl_ext_lßd_ug +( +d©a +, +GL_UG_GALLERY_SETTING_SLIDESHOW +); + +998 } ià(! + `g_¡rcmp0 +( +Ïb– +, + `_gl_¡r +( +GL_STR_ID_SELECT_ITEMS +))) { + +999 #ifdeà +_USE_APP_SLIDESHOW + + +1000 + `_gl_thumbs_ed™_ü—‹_v›w +( +d©a +); + +1001 + `evas_objeù_d©a_£t +( +ad +-> +maššfo +. +Çviäame +, + +1002 +GL_NAVIFRAME_SELECTED_SLIDESHOW_KEY +, + +1003 +_gl_thumbs_ed™_pÝ_v›w +); + +1005 + `_gl_ext_Ïunch_g®Ëry_ug +( +d©a +); + +1008 + `gl_dbgE +("Invalid†able!"); + +1012 + } +} + +1014  + $__gl_thumbs_¦ideshow_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +1016 + `GL_CHECK +( +d©a +); + +1017 + `_gl_ùxpÝup_d– +( +d©a +); + +1018 + `_gl_pÝup_ü—‹_¦ideshow +( +d©a +, +__gl_thumbs_¦ideshow +); + +1019 + } +} + +1031  + $__gl_thumbs_ùxpÝup_­³nd +(* +d©a +, +Evas_Objeù + * +·»Á +) + +1033 + `GL_CHECK_VAL +( +·»Á +, -1); + +1034 + `GL_CHECK_VAL +( +d©a +, -1); + +1035 #ifdeà +SUPPORT_SLIDESHOW + + +1036 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1038 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1041 ià( +ad +-> +gridšfo +. +grid_ty³ + =ð +GL_GRID_T_FAV +) { + +1043 ià(! + `_gl_thumbs_check_z”o +( +d©a +)) + +1044 + `_gl_ùxpÝup_­³nd +( +·»Á +, +GL_STR_SORT +, + +1045 +__gl_thumbs_sÜtby_cb +, +d©a +); + +1050 ià(! + `_gl_thumbs_check_z”o +( +d©a +)) + +1051 + `_gl_ùxpÝup_­³nd +( +·»Á +, +GL_STR_ID_DELETE +, + +1052 +__gl_thumbs_ed™_cb +, +d©a +); + +1054 ià(! + `_gl_thumbs_check_z”o +( +d©a +)) + +1055 + `_gl_ùxpÝup_­³nd +( +·»Á +, +GL_STR_SORT +, + +1056 +__gl_thumbs_sÜtby_cb +, +d©a +); + +1058 ià(! + `_gl_thumbs_check_z”o +( +d©a +)) + +1059 + `_gl_ùxpÝup_­³nd +( +·»Á +, +GL_STR_ID_COPY_TO_ALBUM +, + +1060 +__gl_thumbs_cÝy_cb +, +d©a +); + +1062 ià(! + `_gl_thumbs_check_z”o +( +d©a +)) + +1063 + `_gl_ùxpÝup_­³nd +( +·»Á +, +GL_STR_ID_MOVE_TO_ALBUM +, + +1064 +__gl_thumbs_move_cb +, +d©a +); + +1065 #ifdeà +SUPPORT_SLIDESHOW + + +1067 ià(! +ad +-> +gridšfo +. +b_¦ideshow_di§bË +) + +1068 + `_gl_ùxpÝup_­³nd +( +·»Á +, +GL_STR_ID_SLIDESHOW +, + +1069 +__gl_thumbs_¦ideshow_cb +, +d©a +); + +1072 + } +} + +1074  + $__gl_thumbs_mÜe_bŠ_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +1076 + `gl_dbg +("more button clicked"); + +1077 + `GL_CHECK +( +d©a +); + +1078 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1079 +Evas_Objeù + * +mÜe + = +NULL +; + +1080 +mÜe + = + `_gl_ui_g‘_bŠ +( +NULL +, +ad +-> +gridšfo +. +nf_™ +, +GL_NAVIFRAME_MORE +); + +1081 ià( +EINA_TRUE + =ð + `–m_objeù_di§bËd_g‘ +( +mÜe +)) { + +1082 + `gl_dbg +("Menu is disabled"); + +1086 + `_gl_ùxpÝup_ü—‹ +( +d©a +, +obj +, +__gl_thumbs_ùxpÝup_­³nd +); + +1087 + } +} + +1090  + $__gl_thumbs_ÿm”a_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +1092 + `GL_CHECK +( +d©a +); + +1093 + `gl_dbg +(""); + +1094 + `_gl_ext_lßd_ÿm”a +( +d©a +); + +1095 + } +} + +1102  + $__gl_thumbs_add_bŠs +(* +d©a +, +Evas_Objeù + * +·»Á +, + +1103 +Elm_Objeù_I‹m + * +nf_™ +) + +1105 + `gl_dbg +("GL_NAVI_THUMBS"); + +1106 + `GL_CHECK_VAL +( +nf_™ +, -1); + +1107 + `GL_CHECK_VAL +( +·»Á +, -1); + +1108 + `GL_CHECK_VAL +( +d©a +, -1); + +1109 +Evas_Objeù + * +bŠ + = +NULL +; + +1112 +bŠ + = + `_gl_but_ü—‹_but +( +·»Á +, +NULL +, NULL, +GL_BUTTON_STYLE_NAVI_MORE +, + +1113 +__gl_thumbs_mÜe_bŠ_cb +, +d©a +); + +1114 + `GL_CHECK_VAL +( +bŠ +, -1); + +1116 + `–m_objeù_™em_·¹_cڋÁ_£t +( +nf_™ +, +GL_NAVIFRAME_MORE +, +bŠ +); + +1118 +bŠ + = + `–m_bu‰Ú_add +( +·»Á +); + +1119 + `–m_objeù_¡yË_£t +( +bŠ +, "naviframe/end_btn/default"); + +1120 + `evas_objeù_sm¬t_ÿÎback_add +( +bŠ +, "þicked", +__gl_thumbs_soá_back_cb +, +d©a +); + +1121 + `GL_CHECK_VAL +( +bŠ +, -1); + +1122 + `–m_objeù_™em_·¹_cڋÁ_£t +( +nf_™ +, +GL_NAVIFRAME_PREV_BTN +, +bŠ +); + +1123 + `__gl_thumbs_mode_»£t_bŠs +( +d©a +); + +1125 + } +} + +1128  + $__gl_thumbs_þ—r_d©a +(* +d©a +) + +1130 + `GL_CHECK_VAL +( +d©a +, -1); + +1131 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1134 + `GL_IF_DEL_TIMER +( +ad +-> +gridšfo +. +þicked_tim” +); + +1136 ià( +ad +-> +gridšfo +. +v›w +) { + +1137 ià( +ad +-> +gridšfo +. +v›w + !ðad->gridšfo. +nocڋÁs +) { + +1138 + `_gl_thumbs_þ—r_cbs +( +ad +-> +gridšfo +. +v›w +); + +1139 + `_gl_ui_d–_süÞËr_pos +( +ad +-> +gridšfo +. +v›w +); + +1141 ià( +ad +-> +gridšfo +. +medŸs_–i¡ + && + +1142 + `eša_li¡_couÁ +( +ad +-> +gridšfo +. +medŸs_–i¡ +) > 0) + +1143 + `–m_g’grid_þ—r +( +ad +-> +gridšfo +. +v›w +); + +1145 +ad +-> +gridšfo +. +v›w + = +NULL +; + +1147 +ad +-> +gridšfo +. +grid_ty³ + = +GL_GRID_T_NONE +; + +1148 +ad +-> +gridšfo +. +nocڋÁs + = +NULL +; + +1149 +ad +-> +gridšfo +. +Ïyout + = +NULL +; + +1150 +ad +-> +gridšfo +. +b_¦ideshow_di§bË + = +çl£ +; + +1151 +ad +-> +gridšfo +. +nf_™ + = +NULL +; + +1152 +ad +-> +gridšfo +. +couÁ + = 0; + +1153 + `_gl_thumbs_£t_ed™_mode +( +d©a +, +GL_THUMBS_EDIT_NONE +); + +1155 + `GL_FREEIF +( +ad +-> +gridšfo +. +t™Ë +); + +1157 + } +} + +1160  + $__gl_thumbs_d–‘e_Ïyout_cb +(* +d©a +, +Evas + * +e +, +Evas_Objeù + * +obj +, + +1161 * +ei +) + +1163 + `gl_dbg +("Delete†ayout ---"); + +1164 + `GL_CHECK +( +d©a +); + +1165 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1167 + `__gl_thumbs_þ—r_d©a +( +d©a +); + +1169 + `_gl_d©a_þ—r_£Ëùed_šfo +( +d©a +); + +1171 + `_gl_d©a_utž_þ—r_™em_li¡ +(&( +ad +-> +gridšfo +. +medŸs_–i¡ +)); + +1172 + `gl_dbg +("Delete†ayout +++"); + +1173 + } +} + +1175  + $__gl_thumbs_push_v›w +(* +d©a +, +Evas_Objeù + * +·»Á +, + +1176 +Evas_Objeù + * +obj +, +gl_Çvi_mode + +mode +, + +1177 * +t™Ë +) + +1179 + `GL_CHECK_VAL +( +obj +, -1); + +1180 + `GL_CHECK_VAL +( +·»Á +, -1); + +1181 + `GL_CHECK_VAL +( +d©a +, -1); + +1182 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1183 +Elm_Objeù_I‹m + * +nf_™ + = +NULL +; + +1186 + `evas_objeù_sm¬t_ÿÎback_add +( +·»Á +, +GL_TRANS_FINISHED +, + +1187 +__gl_thumbs_Œªs_fšished_cb +, +d©a +); + +1189 +nf_™ + = + `–m_Çviäame_™em_push +( +·»Á +, +t™Ë +, +NULL +, NULL, +obj +, NULL); + +1190 + `–m_objeù_™em_·¹_‹xt_£t +( +nf_™ +, "–m.‹xt.t™Ë", + `_gl_¡r +( +t™Ë +)); + +1191 +ad +-> +gridšfo +. +nf_™ + =‚f_it; + +1192 + `–m_Çviäame_™em_pÝ_cb_£t +( +nf_™ +, +__gl_thumbs_pÝ_cb +, +d©a +); + +1194 ià( + `_gl_thumbs_g‘_ed™_mode +( +d©a +è> +GL_THUMBS_EDIT_FIRST +) { + +1195 + `_gl_thumbs_ed™_ü—‹_v›w +( +d©a +); + +1198 + `GL_FREEIF +( +ad +-> +gridšfo +. +t™Ë +); + +1199 ià( +t™Ë +) + +1200 +ad +-> +gridšfo +. +t™Ë + = + `¡rdup +(title); + +1202 + `__gl_thumbs_add_bŠs +( +d©a +, +·»Á +, +nf_™ +); + +1203 + `gl_dbg +("Done"); + +1205 + } +} + +1208  + $__gl_thumbs_d–_v›w_cb +(* +d©a +, +Evas + * +e +, +Evas_Objeù + * +obj +, + +1209 * +ei +) + +1211 +Elm_G’grid_I‹m_CÏss + * +gic + = +NULL +; + +1212 +gic + = + `evas_objeù_d©a_g‘ +( +obj +, "gl_thumbs_item_style_key"); + +1213 + `evas_objeù_d©a_£t +( +obj +, "gl_thumbs_™em_¡yË_key", (*) +NULL +); + +1214 ià( +gic +) + +1215 + `–m_g’grid_™em_þass_ä“ +( +gic +); + +1216 + } +} + +1218 +Eša_BoÞ + + $_gl_thumbs_­³nd_™ems +(* +d©a +) + +1220 + `GL_CHECK_CANCEL +( +d©a +); + +1223 ià( + `__gl_thumbs_idËr_­³nd_™ems +( +d©a +) < 0) { + +1224 + `gl_dbgE +("Failedo‡ppend grid items!"); + +1226 + `gl_dbg +("Successfulo‡ppend grid items!"); + +1229 + `_gl_thumbs_£t_size +( +d©a +, +NULL +); + +1230  +ECORE_CALLBACK_CANCEL +; + +1231 + } +} + +1233 +Elm_G’grid_I‹m_CÏss + * + $_gl_thumbs_Ãw_™em_¡yË +( +Evas_Objeù + * +·»Á +) + +1235 + `GL_CHECK_NULL +( +·»Á +); + +1237 +Elm_G’grid_I‹m_CÏss + * +gic + = +NULL +; + +1239 +gic + = + `–m_g’grid_™em_þass_Ãw +(); + +1240 + `GL_CHECK_NULL +( +gic +); + +1242 + `evas_objeù_ev’t_ÿÎback_add +( +·»Á +, +EVAS_CALLBACK_DEL +, + +1243 +__gl_thumbs_d–_v›w_cb +, +gic +); + +1244 + `evas_objeù_d©a_£t +( +·»Á +, "gl_thumbs_™em_¡yË_key", (*) +gic +); + +1245 +gic +-> +™em_¡yË + = +GL_GENGRID_ITEM_STYLE_THUMBNAIL +; + +1246 +gic +-> +func +. +‹xt_g‘ + = +NULL +; + +1247 +gic +-> +func +. +cڋÁ_g‘ + = +__gl_thumbs_g‘_cڋÁ +; + +1248 +gic +-> +func +. +d– + = +NULL +; + +1249  +gic +; + +1250 + } +} + +1252  + $_gl_thumbs_upd©e_»®ized_™ems +(* +d©a +) + +1254 + `GL_CHECK_VAL +( +d©a +, -1); + +1255 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1258 + `evas_objeù_sm¬t_ÿÎback_d– +( +ad +-> +gridšfo +. +v›w +, "unrealized", + +1259 +__gl_thumbs_uėlized +); + +1260 + `_gl_thumbs_£t_size +( +ad +, +NULL +); + +1261 + `–m_g’grid_»®ized_™ems_upd©e +( +ad +-> +gridšfo +. +v›w +); + +1262 + `evas_objeù_sm¬t_ÿÎback_add +( +ad +-> +gridšfo +. +v›w +, "unrealized", + +1263 +__gl_thumbs_uėlized +, +ad +); + +1265 + } +} + +1267 +Evas_Objeù + * + $_gl_thumbs_g‘_cڋÁ +(* +d©a +, +Evas_Objeù + * +·»Á +, + +1268 +gl_™em + * +g™em +,  +w +,  +h +) + +1270 + `GL_CHECK_NULL +( +g™em +); + +1271 + `GL_CHECK_NULL +( +g™em +-> +™em +); + +1272 + `GL_CHECK_NULL +( +·»Á +); + +1273 + `GL_CHECK_NULL +( +d©a +); + +1274 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1275 * +·th + = +NULL +; + +1276 +Evas_Objeù + * +Ïyout + = +NULL +; + +1278 ià( + `GL_FILE_EXISTS +( +g™em +-> +™em +-> +thumb_u¾ +)) { + +1279 +·th + = +g™em +-> +™em +-> +thumb_u¾ +; + +1282 +·th + = +GL_ICON_NO_THUMBNAIL +; + +1285  +zoom_Ëv– + = +ad +-> +pšchšfo +.zoom_level; + +1287 ià( +g™em +-> +™em +-> +ty³ + =ð +MEDIA_CONTENT_TYPE_VIDEO +) { + +1288  +v_dur + = 0; + +1289 ià( +g™em +-> +™em +-> +video_šfo +) { + +1290 +v_dur + = +g™em +-> +™em +-> +video_šfo +-> +du¿tiÚ +; + +1292 +Ïyout + = + `_gl_thumb_show_video +( +·»Á +, +·th +, +v_dur +, +w +, +h +, + +1293 +zoom_Ëv– +); + +1295 ià( +g™em +-> +™em +-> +image_šfo + && + +1296 +g™em +-> +™em +-> +image_šfo +-> +bur¡shÙ_id +) { + +1297 +Ïyout + = + `_gl_thumb_show_image +( +·»Á +, +·th +, 0, +w +, +h +, + +1298 +zoom_Ëv– +); + +1299 +g™em +-> +™em +-> +mode + = +GL_CM_MODE_BURSTSHOT +; + +1301 +Ïyout + = + `_gl_thumb_show_image +( +·»Á +, +·th +, 0, +w +, +h +, + +1302 +zoom_Ëv– +); + +1305  +Ïyout +; + +1306 + } +} + +1308  + $_gl_thumbs_add_bŠs +(* +d©a +) + +1310 + `GL_CHECK_VAL +( +d©a +, -1); + +1311 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1312 + `__gl_thumbs_add_bŠs +( +d©a +, +ad +-> +maššfo +. +Çviäame +,‡d-> +gridšfo +. +nf_™ +); + +1314 + } +} + +1316  + $_gl_thumbs_mou£_down +(* +d©a +, +Evas + * +e +, +Evas_Objeù + * +obj +, * +ei +) + +1318 + `GL_CHECK +( +obj +); + +1319 + `GL_CHECK +( +ei +); + +1320 + `GL_CHECK +( +d©a +); + +1321 +gl_™em + * +g™em + = (gl_™em *è +d©a +; + +1322 + `GL_CHECK +( +g™em +-> +ad +); + +1323 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +g™em +->ad; + +1324 +Evas_Ev’t_Mou£_Down + * +ev + = (Evas_Ev’t_Mou£_DowÀ*) +ei +; + +1326 +ad +-> +gridšfo +. +mou£ +. +x + = +ev +-> +ouut +.x; + +1327 +ad +-> +gridšfo +. +mou£ +. +y + = +ev +-> +ouut +.y; + +1329 #ifdeà +_USE_SHRINK_EFFECT + + +1330 ià( +ad +-> +ugšfo +. +ug + =ð +NULL +) { + +1331 + `edje_objeù_sigÇl_em™ +( + `_EDJ +( +obj +), "mouse,down,shrink", "bg"); + +1332 +ad +-> +gridšfo +. +mou£ +. +b_´es£d + = +Œue +; + +1335 + } +} + +1337  + $_gl_thumbs_mou£_up +(* +d©a +, +Evas + * +e +, +Evas_Objeù + * +obj +, * +ei +) + +1339 + `GL_CHECK +( +d©a +); + +1340 +gl_™em + * +g™em + = (gl_™em *) +d©a +; + +1341 + `GL_CHECK +( +g™em +-> +ad +); + +1342 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +g™em +->ad; + +1344 ià(! +ei + || ! +obj +) + +1345  +RET_WO_EXEC +; + +1347 +Evas_Ev’t_Mou£_Up + * +ev + = (Evas_Ev’t_Mou£_U°*) +ei +; + +1348 ià( +ev +-> +ev’t_æags + & +EVAS_EVENT_FLAG_ON_HOLD + || + +1349 +ev +-> +ev’t_æags + & +EVAS_EVENT_FLAG_ON_SCROLL +) + +1350  +RET_WO_EXEC +; + +1352 ià(( + `abs +( +ad +-> +gridšfo +. +mou£ +. +x + - +ev +-> +ouut +.xè> +GL_MOUSE_RANGE +) || + +1353 ( + `abs +( +ad +-> +gridšfo +. +mou£ +. +y + - +ev +-> +ouut +.yè> +GL_MOUSE_RANGE +)) + +1354  +RET_WO_EXEC +; + +1356 + `gl_dbg +(""); + +1358 #ifdeà +_USE_SHRINK_EFFECT + + +1359 ià( +ad +-> +gridšfo +. +mou£ +. +b_´es£d +) { + +1360 + `edje_objeù_sigÇl_em™ +( + `_EDJ +( +obj +), "mouse,up,expand", "bg"); + +1361 + `edje_objeù_sigÇl_ÿÎback_add +( + `_EDJ +( +obj +), "shrink,expand,done", + +1362 "bg", +__gl_thumbs_shršk_cb +, + +1363 +d©a +); + +1364 +ad +-> +gridšfo +. +mou£ +. +b_´es£d + = +çl£ +; + +1368 +RET_WO_EXEC +: + +1370 ià( +ad +-> +gridšfo +. +mou£ +. +b_´es£d +) { + +1371 + `edje_objeù_sigÇl_em™ +( + `_EDJ +( +obj +), "mouse,up,expand", "bg"); + +1372 +ad +-> +gridšfo +. +mou£ +. +b_´es£d + = +çl£ +; + +1375 + `_gl_thumbs_ݒ_fže +( +d©a +); + +1378 +RET_WO_EXEC +: + +1381 + } +} + +1383 +Evas_Objeù + * + $_gl_thumbs_add_grid +(* +d©a +, +Evas_Objeù + * +·»Á +, + +1384 +gl_thumb_mode + +mode +) + +1386 + `GL_CHECK_NULL +( +·»Á +); + +1387 + `GL_CHECK_NULL +( +d©a +); + +1388 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1389 +Evas_Objeù + * +grid + = +NULL +; + +1391  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +1392 +grid + = + `_gl_thumb_add_g’grid +( +·»Á +); + +1393 + `evas_objeù_sm¬t_ÿÎback_add +( +grid +, "»®ized", +__gl_thumbs_»®ized +, + +1394 +d©a +); + +1395 + `evas_objeù_sm¬t_ÿÎback_add +( +grid +, "unrealized", + +1396 +__gl_thumbs_uėlized +, +d©a +); + +1397 + `evas_objeù_sm¬t_ÿÎback_add +( +grid +, "longpressed", + +1398 +__gl_thumbs_lÚg´es£d_cb +, +d©a +); + +1399 + `evas_objeù_sm¬t_ÿÎback_add +( +grid +, "language,changed", + +1400 +__gl_thumbs_Ïng_chªged +, +NULL +); + +1402 + `__gl_thumbs_£t_ty³ +( +ad +); + +1403 + `_gl_ui_»£t_süÞËr_pos +( +grid +); + +1405 + `__gl_thumbs_£t_™em_¡yË +( +d©a +); + +1406 + `_gl_thumbs_Ãw_™em_¡yË +( +grid +); + +1408 ià(! + `__gl_thumbs_ü—‹_™ems +( +ad +, +grid +)) { + +1409 + `_gl_ui_d–_süÞËr_pos +( +grid +); + +1410 + `evas_objeù_d– +( +grid +); + +1411 +grid + = +NULL +; + +1412 +Evas_Objeù + * +noc + = + `_gl_nocڋÁs_ü—‹ +( +·»Á +); + +1413 + `_gl_thumbs_£t_nocڋÁs +( +ad +, +noc +); + +1414 + `evas_objeù_show +( +noc +); + +1415  +noc +; + +1418 + `gl_dbg +("thumbs_úˆ: %d", +ad +-> +gridšfo +. +couÁ +); + +1419 + `_gl_thumbs_£t_size +( +ad +, +grid +); + +1420 ià( +v›w_mode + !ð +GL_VIEW_THUMBS_SELECT +) + +1421 + `_gl_thumbs_£t_nocڋÁs +( +ad +, +NULL +); + +1422 + `evas_objeù_show +( +grid +); + +1424  +grid +; + +1425 + } +} + +1427  + $_gl_thumbs_show_ed™_v›w +(* +d©a +) + +1429 + `GL_CHECK_VAL +( +d©a +, -1); + +1430 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1431  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +1432 +boÞ + +b_»t + = +çl£ +; + +1433 +Evas_Objeù + * +v›w + = +NULL +; + +1434 + `gl_dbg +("v›w_mode: %d", +v›w_mode +); + +1436 ià( +v›w_mode + =ð +GL_VIEW_THUMBS_EDIT +) { + +1437 +v›w + = +ad +-> +gridšfo +.view; + +1438 } ià( +v›w_mode + =ð +GL_VIEW_THUMBS_SELECT +) { + +1439 +v›w + = +ad +-> +gridšfo +. +£Ëù_v›w +; + +1441 + `gl_dbgE +("Wrong view mode!"); + +1444 + `GL_CHECK_VAL +( +v›w +, -1); + +1445 +b_»t + = + `__gl_thumbs_ü—‹_™ems +( +ad +, +v›w +); + +1446 + `_gl_thumbs_£t_size +( +ad +, +NULL +); + +1448 ià(! +b_»t +) { + +1449 + `gl_dbgE +("Create items failed!"); + +1454 + } +} + +1456  + $_gl_thumbs_show_v›w +(* +d©a +) + +1458 + `GL_CHECK_VAL +( +d©a +, -1); + +1459 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1460 +boÞ + +b_»t + = +çl£ +; + +1461 + `gl_dbg +(""); + +1463 ià( +ad +-> +gridšfo +. +v›w + =ð +NULL +) { + +1464 + `gl_dbg +("Error : Any gridview doesn'tƒxist"); + +1469 +ad +-> +gridšfo +. +back_to_nÜm® + = +Œue +; + +1470 +b_»t + = + `__gl_thumbs_ü—‹_™ems +( +ad +,‡d-> +gridšfo +. +v›w +); + +1471 + `_gl_thumbs_£t_size +( +ad +, +NULL +); + +1473 ià(! +b_»t +) { + +1474 + `gl_dbgE +("Create items failed!"); + +1479 + } +} + +1481 +Eša_BoÞ + + $_gl_thumbs_show_™ems +(* +d©a +) + +1483 + `GL_CHECK_FALSE +( +d©a +); + +1484 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1485 +Eša_BoÞ + +»s + = +EINA_FALSE +; + +1486 +Evas_Objeù + * +gv + = +NULL +; + +1487 +boÞ + +b_v›w + = +çl£ +; + +1488 + `gl_dbg +(""); + +1490 +b_v›w + = + `_gl_thumbs_g‘_v›w +( +ad +, & +gv +); + +1491 + `GL_CHECK_FALSE +( +gv +); + +1492 ià( +b_v›w +) { + +1493 +»s + = + `__gl_thumbs_ü—‹_™ems +( +ad +, +gv +); + +1494 ià(! +»s +) { + +1495 + `gl_dbgW +("create items failed!"); + +1496 + `–m_objeù_·¹_cڋÁ_un£t +( +ad +-> +gridšfo +. +Ïyout +, + +1498 + `_gl_thumbs_d–‘e_v›w +( +d©a +); + +1499 + `__gl_thumbs_£t_v›w +( +ad +, +NULL +, +çl£ +); + +1500 +Evas_Objeù + * +noc + = + `_gl_nocڋÁs_ü—‹ +( +ad +-> +gridšfo +. +Ïyout +); + +1501 + `evas_objeù_show +( +noc +); + +1502 + `__gl_thumbs_£t_v›w +( +ad +, +noc +, +Œue +); + +1504 + `–m_objeù_·¹_cڋÁ_£t +( +ad +-> +gridšfo +. +Ïyout +, + +1505 "–m.sw®low.v›w", +noc +); + +1507 + `_gl_thumbs_£t_size +( +ad +, +gv +); + +1510 + `gl_dbg +("Remove‚ocontents view."); + +1511 + `–m_objeù_·¹_cڋÁ_un£t +( +ad +-> +gridšfo +. +Ïyout +, + +1513 + `evas_objeù_hide +( +gv +); + +1514 + `evas_objeù_d– +( +gv +); + +1515 + `__gl_thumbs_£t_v›w +( +ad +, +NULL +, +çl£ +); + +1516 +boÞ + +b_noc + = +çl£ +; + +1518 +Evas_Objeù + * +v›w + = +NULL +; + +1519 +v›w + = + `_gl_thumbs_add_grid +( +ad +,‡d-> +gridšfo +. +Ïyout +, 0); + +1520 ià( +ad +-> +gridšfo +. +nocڋÁs +) { + +1521 +b_noc + = +Œue +; + +1524 + `__gl_thumbs_£t_v›w +( +ad +, +v›w +, +b_noc +); + +1526 + `–m_objeù_·¹_cڋÁ_£t +( +ad +-> +gridšfo +. +Ïyout +, + +1527 "–m.sw®low.v›w", +v›w +); + +1530  +»s +; + +1531 + } +} + +1533  + $_gl_thumbs_£t_li¡ +(* +d©a +, +Eša_Li¡ + * +–i¡ +) + +1535 + `GL_CHECK_VAL +( +d©a +, -1); + +1536 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1537 +ad +-> +gridšfo +. +medŸs_–i¡ + = +–i¡ +; + +1539 + } +} + +1541  + $_gl_thumbs_þ—r_ªd_£t_li¡ +(* +d©a +, +Eša_Li¡ + * +–i¡ +) + +1543 + `GL_CHECK_VAL +( +d©a +, -1); + +1544 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1545  +v›w_mode + = + `gl_g‘_v›w_mode +( +d©a +); + +1546 ià( +v›w_mode + =ð +GL_VIEW_THUMBS_SELECT + && +ad +-> +gridšfo +. +£Ëù_v›w +) { + +1547 + `_gl_ui_§ve_süÞËr_pos +( +ad +-> +gridšfo +. +£Ëù_v›w +); + +1548 + `–m_g’grid_þ—r +( +ad +-> +gridšfo +. +£Ëù_v›w +); + +1549 } ià( +ad +-> +gridšfo +. +v›w + && (ad->gridšfo.v›w !ðad->gridšfo. +nocڋÁs +)) { + +1550 + `_gl_ui_§ve_süÞËr_pos +( +ad +-> +gridšfo +. +v›w +); + +1551 + `–m_g’grid_þ—r +( +ad +-> +gridšfo +. +v›w +); + +1553 + `_gl_d©a_utž_þ—r_™em_li¡ +(&( +ad +-> +gridšfo +. +medŸs_–i¡ +)); + +1554 +ad +-> +gridšfo +. +medŸs_–i¡ + = +–i¡ +; + +1556 + } +} + +1558  + $_gl_thumbs_g‘_li¡ +(* +d©a +, +Eša_Li¡ + ** +p_–i¡ +) + +1560 + `GL_CHECK_VAL +( +p_–i¡ +, -1); + +1561 + `GL_CHECK_VAL +( +d©a +, -1); + +1562 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1563 * +p_–i¡ + = +ad +-> +gridšfo +. +medŸs_–i¡ +; + +1565 + } +} + +1567  + $_gl_thumbs_upd©e_ed™_¥l™_v›w +(* +d©a +,  +nf_mode +, * +t™Ë +, +boÞ + +b_idËr +, + +1568 +Elm_Naviäame_I‹m_PÝ_Cb + +func +) + +1570 + `GL_CHECK_VAL +( +d©a +, -1); + +1571 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1572 + `GL_CHECK_VAL +( +ad +-> +maššfo +. +Çviäame +, -1); + +1573 +Evas_Objeù + * +Ïyout + = +NULL +; + +1574 +Evas_Objeù + * +v›w + = +NULL +; + +1576 + `gl_£t_v›w_mode +( +d©a +, +GL_VIEW_THUMBS +); + +1577 +v›w + = + `_gl_thumbs_add_grid +( +ad +,‡d-> +gridšfo +. +Ïyout +, +GL_THUMB_ALL +); + +1578 ià( +v›w + =ð +NULL +) { + +1579 + `evas_objeù_d– +( +Ïyout +); + +1580 + `gl_dbgE +("Failedo‡dd gridview!"); + +1583 +ad +-> +gridšfo +. +upd©e_¥l™_v›w + = +çl£ +; + +1584 + `–m_objeù_·¹_cڋÁ_£t +( +ad +-> +gridšfo +. +Ïyout +, "–m.sw®low.v›w", +v›w +); + +1585 +ad +-> +gridšfo +. +v›w + = view; + +1586 + `–m_objeù_™em_d©a_£t +( +ad +-> +gridšfo +. +nf_™ +, (*) +func +); + +1587 + `–m_objeù_™em_‹xt_£t +( +ad +-> +gridšfo +. +nf_™ +, +t™Ë +); + +1588 + `GL_FREEIF +( +ad +-> +gridšfo +. +t™Ë +); + +1589 ià( +t™Ë +) { + +1590 +ad +-> +gridšfo +. +t™Ë + = + `¡rdup +(title); + +1592 ià( + `_gl_thumbs_g‘_ed™_mode +( +d©a +è=ð +GL_THUMBS_EDIT_NORMAL +) + +1593 + `__gl_thumbs_ed™_cb +( +ad +,‡d-> +gridšfo +. +v›w +, +NULL +); + +1594 ià( + `_gl_thumbs_g‘_ed™_mode +( +d©a +è=ð +GL_THUMBS_EDIT_COPY +) + +1595 + `__gl_thumbs_cÝy_cb +( +ad +,‡d-> +gridšfo +. +v›w +, +NULL +); + +1596 ià( + `_gl_thumbs_g‘_ed™_mode +( +d©a +è=ð +GL_THUMBS_EDIT_MOVE +) + +1597 + `__gl_thumbs_move_cb +( +ad +,‡d-> +gridšfo +. +v›w +, +NULL +); + +1599  +£l_út + = + `_gl_d©a_£Ëùed_li¡_couÁ +( +ad +); + +1601 + `_gl_thumbs_upd©e_Ïb–_‹xt +( +ad +-> +gridšfo +. +nf_™ +, +£l_út +, +çl£ +); + +1602 +gl_™em + * +g™em + = +NULL +; + +1603  +i +; + +1604  +couÁ + = + `eša_li¡_couÁ +( +ad +-> +gridšfo +. +medŸs_–i¡ +); + +1605  +i + = 0; i < +couÁ + ; i++) { + +1606 +g™em + = + `eša_li¡_Áh +( +ad +-> +gridšfo +. +medŸs_–i¡ +, +i +); + +1607 ià( +g™em +) { + +1608 + `_gl_d©a_»¡Üe_£Ëùed +( +ad +-> +£lšfo +. +–i¡ +, +g™em +); + +1611 ià( +g™em + && g™em-> +®bum +-> +–i¡ +) { + +1612  +®bum_£Ëù_couÁ + = + `eša_li¡_couÁ +( +g™em +-> +®bum +-> +–i¡ +); + +1613 + `_gl_nÙify_check_£ÏÎ +( +ad +,‡d-> +gridšfo +. +nf_™ +,‡d->gridšfo. +couÁ +, +®bum_£Ëù_couÁ +); + +1617 + } +} + +1619  + $_gl_thumbs_upd©e_¥l™_v›w +(* +d©a +,  +nf_mode +, * +t™Ë +, +boÞ + +b_idËr +, + +1620 +Elm_Naviäame_I‹m_PÝ_Cb + +func +) + +1622 + `GL_CHECK_VAL +( +d©a +, -1); + +1623 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1624 + `GL_CHECK_VAL +( +ad +-> +maššfo +. +Çviäame +, -1); + +1625 +Evas_Objeù + * +Ïyout + = +NULL +; + +1626 +Evas_Objeù + * +v›w + = +NULL +; + +1628 +v›w + = + `_gl_thumbs_add_grid +( +ad +,‡d-> +gridšfo +. +Ïyout +, +GL_THUMB_ALL +); + +1629 ià( +v›w + =ð +NULL +) { + +1630 + `evas_objeù_d– +( +Ïyout +); + +1631 + `gl_dbgE +("Failedo‡dd gridview!"); + +1634 + `–m_objeù_·¹_cڋÁ_£t +( +ad +-> +gridšfo +. +Ïyout +, "–m.sw®low.v›w", +v›w +); + +1635 +ad +-> +gridšfo +. +v›w + = view; + +1636 + `gl_dbgE +("T™Ë i : %s", +t™Ë +); + +1637 + `–m_objeù_™em_d©a_£t +( +ad +-> +gridšfo +. +nf_™ +, (*) +func +); + +1638 + `–m_objeù_™em_‹xt_£t +( +ad +-> +gridšfo +. +nf_™ +, + `_gl_¡r +( +t™Ë +)); + +1639 + `GL_FREEIF +( +ad +-> +gridšfo +. +t™Ë +); + +1640 ià( +t™Ë +) { + +1641 +ad +-> +gridšfo +. +t™Ë + = + `¡rdup +(title); + +1644 + } +} + +1646 +Evas_Objeù + * + +1647 + $_ü—‹_g’grid +(* +d©a +) + +1649 + `GL_CHECK_VAL +( +d©a +, +NULL +); + +1650 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1651 +Evas_Objeù + * +Ïyout_šÃr + = + `–m_g’grid_add +( +ad +-> +maššfo +. +wš +); + +1653 + `–m_g’grid_®ign_£t +( +Ïyout_šÃr +, 0.5f, 0.0); + +1654 + `–m_g’grid_hÜizڏl_£t +( +Ïyout_šÃr +, +EINA_FALSE +); + +1655 + `–m_süÞËr_bounû_£t +( +Ïyout_šÃr +, +EINA_FALSE +, +EINA_TRUE +); + +1656 + `–m_süÞËr_pÞicy_£t +( +Ïyout_šÃr +, +ELM_SCROLLER_POLICY_OFF +, + +1657 +ELM_SCROLLER_POLICY_AUTO +); + +1658 + `–m_g’grid_muÉi_£Ëù_£t +( +Ïyout_šÃr +, +EINA_TRUE +); + +1659 + `evas_objeù_size_hšt_weight_£t +( +Ïyout_šÃr +, +EVAS_HINT_EXPAND +, + +1660 +EVAS_HINT_EXPAND +); + +1661  +Ïyout_šÃr +; + +1662 + } +} + +1665 + $_ü—‹_¥l™_®bum_v›w +(* +d©a +, +Evas_Objeù + * +Ïyout_šÃr +) + +1667 + `GL_CHECK_VAL +( +d©a +, -1); + +1668 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1669 ià( + `_gl_¥l™_®bums_ü—‹_™ems +( +ad +, +Ïyout_šÃr +) < 0) { + +1670 + `gl_dbgE +("Failedo‡dd Split‡lbum view!"); + +1673  +w + = -1, +h + = -1; + +1674 + `evas_objeù_geom‘ry_g‘ +( +ad +-> +maššfo +. +wš +, +NULL +, NULL, & +w +, & +h +); + +1675 ià( +w + < +h +) { + +1676 + `–m_g’grid_™em_size_£t +( +Ïyout_šÃr +, ( +w +/3)-40, (w/3)-20); + +1678 + `–m_g’grid_™em_size_£t +( +Ïyout_šÃr +, ( +h +/3)-20, (h/3)-40); + +1681 + } +} + +1683  + $_gl_thumbs_ü—‹_v›w +(* +d©a +,  +nf_mode +, * +t™Ë +, +boÞ + +b_idËr +, + +1684 +Elm_Naviäame_I‹m_PÝ_Cb + +func +) + +1686 + `GL_CHECK_VAL +( +d©a +, -1); + +1687 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1688 + `GL_CHECK_VAL +( +ad +-> +maššfo +. +Çviäame +, -1); + +1689 +Evas_Objeù + * +Ïyout + = +NULL +; + +1690 +Evas_Objeù + * +v›w + = +NULL +; + +1691 +Evas_Objeù + * +Ïyout_šÃr + = +NULL +; + +1692 +Ïyout_šÃr + = + `_ü—‹_g’grid +( +ad +); + +1693 + `GL_CHECK_VAL +( +Ïyout_šÃr +, -1); + +1695 ià( + `_gl_thumbs_g‘_ed™_mode +( +d©a +è> +GL_THUMBS_EDIT_FIRST +) + +1696 + `gl_£t_v›w_mode +( +d©a +, +GL_VIEW_THUMBS_EDIT +); + +1698 + `gl_£t_v›w_mode +( +d©a +, +GL_VIEW_THUMBS +); + +1700 ià( + `_ü—‹_¥l™_®bum_v›w +( +ad +, +Ïyout_šÃr +) == -1) { + +1701 + `gl_dbgE +("Failedo‡dd‡lbum split view!"); + +1705 +ad +-> +gridšfo +. +upd©e_¥l™_v›w + = +Œue +; + +1706 +ad +-> +gridšfo +. +medŸ_di¥Ïy_Üd” + = +ORDER_DESC +; + +1707 +Ïyout + = + `_gl_ù¾_add_Ïyout +( +ad +-> +maššfo +. +Çviäame +); + +1708 + `GL_CHECK_VAL +( +Ïyout +, -1); + +1709 + `evas_objeù_size_hšt_weight_£t +( +Ïyout +, +EVAS_HINT_EXPAND +, + +1710 +EVAS_HINT_EXPAND +); + +1711 + `evas_objeù_size_hšt_®ign_£t +( +Ïyout +, +EVAS_HINT_FILL +, EVAS_HINT_FILL); + +1713 ià( +ad +-> +gridšfo +. +¥l™_v›w_mode +) { + +1714  +w + = -1, +h + = -1; + +1715 + `evas_objeù_geom‘ry_g‘ +( +ad +-> +maššfo +. +wš +, +NULL +, NULL, & +w +, & +h +); + +1716 +Edje_Mes§ge_IÁ + * +msg + = (Edje_Mes§ge_IÁ *) + `m®loc +((Edje_Message_Int) + ()); + +1717 + `GL_CHECK_VAL +( +msg +, -1); + +1718 +msg +-> +v® + = (( +w + < +h +) ? (w / 3) : (h / 3)); + +1719 + `edje_objeù_mes§ge_£nd +( + `–m_Ïyout_edje_g‘ +( +Ïyout +), +EDJE_MESSAGE_INT +, 1, +msg +); + +1720 + `ä“ +( +msg +); + +1721 + `–m_objeù_sigÇl_em™ +( +Ïyout +, "elm,splitview,state,visible", "elm"); + +1723 + `–m_objeù_sigÇl_em™ +( +Ïyout +, "elm,splitview,state,default", "elm"); + +1727 + `_gl_pšch_add_ev’t +( +ad +, +Ïyout +); + +1728 +ad +-> +gridšfo +. +is_­³nd + = +b_idËr +; + +1730 +v›w + = + `_gl_thumbs_add_grid +( +ad +, +Ïyout +, +GL_THUMB_ALL +); + +1731 ià( +v›w + =ð +NULL +) { + +1732 + `evas_objeù_d– +( +Ïyout +); + +1733 + `gl_dbgE +("Failedo‡dd gridview!"); + +1736 + `–m_objeù_·¹_cڋÁ_£t +( +Ïyout +, "–m.sw®low.v›w", +v›w +); + +1737 +ad +-> +gridšfo +. +v›w + = view; + +1738 +ad +-> +gridšfo +. +Ïyout + =†ayout; + +1740 + `–m_objeù_·¹_cڋÁ_£t +( +Ïyout +, "¥l™.v›w", +Ïyout_šÃr +); + +1741 + `__gl_thumbs_push_v›w +( +ad +,‡d-> +maššfo +. +Çviäame +, +Ïyout +, +nf_mode +, + +1742 +t™Ë +); + +1743 + `–m_objeù_™em_d©a_£t +( +ad +-> +gridšfo +. +nf_™ +, (*) +func +); + +1745 + `evas_objeù_ev’t_ÿÎback_add +( +Ïyout +, +EVAS_CALLBACK_DEL +, + +1746 +__gl_thumbs_d–‘e_Ïyout_cb +, +d©a +); + +1747 + `gl_dbg +("Done"); + +1749 + } +} + +1760  + $_gl_thumbs_upd©e_™ems +(* +d©a +) + +1762 + `GL_CHECK_VAL +( +d©a +, -1); + +1763 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1764  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +1765 +boÞ + +b_ed™_m + = +çl£ +; + +1767 + `gl_dbg +("v›w_mode: %d", +v›w_mode +); + +1768 ià( +v›w_mode + =ð +GL_VIEW_THUMBS_EDIT +) { + +1769 + `gl_dbg +("Edit view."); + +1770 +b_ed™_m + = +Œue +; + +1772 ià( + `_gl_thumbs_check_z”o +( +d©a +)) { + +1774 + `gl_pÝ_to_ù¾b¬_ly +( +ad +); + +1776 ià( + `_gl_thumbs_check_z”o +( +d©a +)) { + +1777 + `gl_dbg +("none video/image, show‚ocontents"); + +1778 + `_gl_thumbs_show_nocڋÁs +( +ad +); + +1780 + `gl_d–_šv®id_widg‘s +( +ad +, +GL_INVALID_NEW_ENTRY_NOC +); + +1781 } ià( +v›w_mode + =ð +GL_VIEW_THUMBS +) { + +1782 + `_gl_thumbs_show_™ems +( +ad +); + +1784 + `_gl_thumbs_check_bŠs +( +d©a +); + +1785 } ià( +v›w_mode + =ð +GL_VIEW_THUMBS_EDIT +) { + +1786 + `_gl_thumbs_show_ed™_v›w +( +ad +); + +1790 ià(! +b_ed™_m +) + +1794  +£l_út + = + `_gl_d©a_£Ëùed_li¡_couÁ +( +ad +); + +1796 ià( +£l_út + == 0) + +1797 + `gl_d–_šv®id_widg‘s +( +ad +, +GL_INVALID_NEW_ENTRY +); + +1800 +gl_™em + * +g™em + = +NULL +; + +1801 +g™em + = + `eša_li¡_Áh +( +ad +-> +gridšfo +. +medŸs_–i¡ +, 0); + +1802  +®bum_£l_couÁ + = + `eša_li¡_couÁ +( +g™em +-> +®bum +-> +–i¡ +); + +1803 + `_gl_nÙify_check_£ÏÎ +( +ad +,‡d-> +gridšfo +. +nf_™ +, + +1804 +ad +-> +gridšfo +. +couÁ +, +®bum_£l_couÁ +); + +1805 + `_gl_thumbs_upd©e_Ïb–_‹xt +( +ad +-> +gridšfo +. +nf_™ +, +£l_út +, +çl£ +); + +1809 + } +} + +1811  + $_gl_thumbs_upd©e_v›w +(* +d©a +) + +1813 + `GL_CHECK_VAL +( +d©a +, -1); + +1814 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1815 + `gl_sdbg +("grid_ty³: %d", +ad +-> +gridšfo +. +grid_ty³ +); + +1817  +ad +-> +gridšfo +. +grid_ty³ +) { + +1818  +GL_GRID_T_LOCAL +: + +1819  +GL_GRID_T_ALLALBUMS +: + +1820  +GL_GRID_T_FAV +: + +1823 + `gl_dbgE +(" creating split‡lbum view!"); + +1824 +Evas_Objeù + * +Ïyout_šÃr + = + `–m_objeù_·¹_cڋÁ_g‘ +( +ad +-> +gridšfo +. +Ïyout +, "split.view"); + +1825 ià(! +Ïyout_šÃr +) { + +1826 + `gl_dbgE +("Failedo‡dd split‡lbum view!"); + +1828 + `_ü—‹_¥l™_®bum_v›w +( +ad +, +Ïyout_šÃr +); + +1829 + `–m_objeù_·¹_cڋÁ_£t +( +ad +-> +gridšfo +. +Ïyout +, "¥l™.v›w", +Ïyout_šÃr +); + +1832 + `_gl_thumbs_upd©e_™ems +( +ad +); + +1836 + `gl_dbgE +("Wrong gridype!"); + +1840 + } +} + +1842  + $_gl_thumbs_de¡roy_v›w +(* +d©a +, +boÞ + +b_pÝ +) + +1844 + `GL_CHECK_VAL +( +d©a +, -1); + +1845 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1846  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +1847 + `gl_dbg +("v›w_mode: %d.", +v›w_mode +); + +1849 + `gl_d–_šv®id_widg‘s +( +ad +, +GL_INVALID_NONE +); + +1850 + `_gl_®bums_£t_cu¼’t +( +d©a +, +NULL +); + +1853 ià( +b_pÝ +) { + +1855 + `–m_Çviäame_™em_pÝ_to +( +ad +-> +gridšfo +. +nf_™ +); + +1857 ià( +v›w_mode + =ð +GL_VIEW_THUMBS_EDIT +) + +1858 + `gl_£t_v›w_mode +( +d©a +, +GL_VIEW_THUMBS +); + +1859 + `–m_Çviäame_™em_pÝ_to +( +ad +-> +ù¾šfo +. +nf_™ +); + +1862 + } +} + +1864  + $_gl_thumbs_de¡roy_v›w_w™h_cb +(* +d©a +, * +cb +) + +1866 + `GL_CHECK_VAL +( +d©a +, -1); + +1867 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1868 + `gl_dbg +("start"); + +1871 + `_gl_thumbs_de¡roy_v›w +( +d©a +, +çl£ +); + +1873 + `_gl_ui_d–_nf_™ems +( +ad +-> +maššfo +. +Çviäame +,‡d-> +ù¾šfo +. +nf_™ +); + +1874 ià( +cb +) { + +1875 (* +þo£_cb +è(* +d©a +); + +1876 +þo£_cb + = +cb +; + +1877 + `þo£_cb +( +d©a +); + +1879 + `gl_dbg +("done"); + +1881 + } +} + +1888 +boÞ + + $_gl_thumbs_g‘_v›w +(* +d©a +, +Evas_Objeù + ** +v›w +) + +1890 + `GL_CHECK_FALSE +( +d©a +); + +1891 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1892 +Evas_Objeù + * +gv + = +NULL +; + +1893 +boÞ + +b_v›w + = +çl£ +; + +1895 +gv + = +ad +-> +gridšfo +. +v›w +; + +1896 ià( +gv + && +ad +-> +gridšfo +. +nocڋÁs + =ð +NULL +) + +1897 +b_v›w + = +Œue +; + +1900 ià(! +b_v›w +) + +1901 + `gl_dbg +("Previous view is Nocontents..."); + +1904 ià( +v›w +) + +1905 * +v›w + = +gv +; + +1907  +b_v›w +; + +1908 + } +} + +1913 +boÞ + + $_gl_thumbs_show_nocڋÁs +(* +d©a +) + +1915 + `GL_CHECK_FALSE +( +d©a +); + +1916 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1919 + `_gl_thumbs_d–‘e_v›w +( +ad +); + +1921 +Evas_Objeù + * +noc + = +NULL +; + +1922 +noc + = + `_gl_nocڋÁs_ü—‹ +( +ad +-> +gridšfo +. +Ïyout +); + +1923 +ad +-> +gridšfo +. +v›w + = +noc +; + +1924 +ad +-> +gridšfo +. +nocڋÁs + = +noc +; + +1925 + `–m_objeù_·¹_cڋÁ_un£t +( +ad +-> +gridšfo +. +Ïyout +, "elm.swallow.view"); + +1926 + `evas_objeù_show +( +ad +-> +gridšfo +. +v›w +); + +1927 + `–m_objeù_·¹_cڋÁ_£t +( +ad +-> +gridšfo +. +Ïyout +, "elm.swallow.view", + +1928 +ad +-> +gridšfo +. +v›w +); + +1929 + `_gl_thumbs_check_bŠs +( +ad +); + +1930  +Œue +; + +1931 + } +} + +1934  + $_gl_thumbs_£t_nocڋÁs +(* +d©a +, +Evas_Objeù + * +noc +) + +1936 + `GL_CHECK_VAL +( +d©a +, -1); + +1937 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1938 +ad +-> +gridšfo +. +nocڋÁs + = +noc +; + +1940 + } +} + +1942  + $_gl_thumbs_£t_size +(* +d©a +, +Evas_Objeù + * +gridv›w +) + +1944 + `GL_CHECK_VAL +( +d©a +, -1); + +1945 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1946 +Evas_Objeù + * +gv + = +NULL +; + +1948 ià( +gridv›w +) { + +1949 +gv + = +gridv›w +; + +1951 +boÞ + +b_v›w + = +çl£ +; + +1952 ià( + `gl_g‘_v›w_mode +( +d©a +è=ð +GL_VIEW_THUMBS_SELECT +) { + +1953 +b_v›w + = +Œue +; + +1954 +gv + = +ad +-> +gridšfo +. +£Ëù_v›w +; + +1956 +b_v›w + = + `_gl_thumbs_g‘_v›w +( +ad +, & +gv +); + +1959 ià(! +b_v›w + || ! +gv +) { + +1960 + `gl_dbgE +("gridview is invalid!"); + +1964 ià( +ad +-> +gridšfo +. +¥l™_v›w_mode + =ð +DETAIL_VIEW +) { + +1965 + `_gl_thumb_£t_size +( +ad +, +gv +, &×d-> +gridšfo +. +icÚ_w +), + +1966 &( +ad +-> +gridšfo +. +icÚ_h +)); + +1967 } ià( +ad +-> +gridšfo +. +¥l™_v›w_mode + =ð +SPLIT_VIEW +) { + +1968 + `_gl_thumb_¥l™_£t_size +( +ad +, +gv +); + +1971 ià( + `gl_g‘_v›w_mode +( +ad +è=ð +GL_VIEW_THUMBS_SELECT +) { + +1972 + `_gl_thumb_¥l™_£t_size +( +ad +, +gv +); + +1976 + } +} + +1978  + $_gl_thumbs_þ—r_cbs +( +Evas_Objeù + * +grid +) + +1980 + `GL_CHECK_VAL +( +grid +, -1); + +1981 + `evas_objeù_sm¬t_ÿÎback_d– +( +grid +, "»®ized", +__gl_thumbs_»®ized +); + +1982 + `evas_objeù_sm¬t_ÿÎback_d– +( +grid +, "unrealized", + +1983 +__gl_thumbs_uėlized +); + +1984 + `evas_objeù_sm¬t_ÿÎback_d– +( +grid +, "longpressed", + +1985 +__gl_thumbs_lÚg´es£d_cb +); + +1987 + } +} + +1989  + $_gl_thumbs_d–‘e_v›w +(* +d©a +) + +1991 + `GL_CHECK_VAL +( +d©a +, -1); + +1992 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1994 ià( +ad +-> +gridšfo +. +v›w +) { + +1995 + `_gl_thumbs_þ—r_cbs +( +ad +-> +gridšfo +. +v›w +); + +1996 + `_gl_ui_d–_süÞËr_pos +( +ad +-> +gridšfo +. +v›w +); + +1997 + `evas_objeù_d– +( +ad +-> +gridšfo +. +v›w +); + +1998 +ad +-> +gridšfo +. +v›w + = +NULL +; + +2001 + } +} + +2004  + $_gl_thumbs_upd©e_size +(* +d©a +, +Evas_Objeù + * +v›w +) + +2006 + `GL_CHECK_VAL +( +d©a +, -1); + +2007 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +2008 +Evas_Objeù + * +_v›w + = +NULL +; + +2009  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +2010 + `gl_dbg +(""); + +2012 ià( +v›w +) { + +2013 +_v›w + = +v›w +; + +2015 +boÞ + +b_v›w + = +çl£ +; + +2016 ià( +v›w_mode + =ð +GL_VIEW_THUMBS_SELECT +) { + +2017 +b_v›w + = +Œue +; + +2018 +_v›w + = +ad +-> +gridšfo +. +£Ëù_v›w +; + +2020 +b_v›w + = + `_gl_thumbs_g‘_v›w +( +ad +, & +_v›w +); + +2023 ià(! +b_v›w + || ! +_v›w +) { + +2024 + `gl_dbgE +("gridview is invalid!"); + +2029 + `_gl_thumbs_£t_size +( +d©a +, +_v›w +); + +2031 + `_gl_thumb_upd©e_g’grid +( +_v›w +); + +2034 + } +} + +2040 +boÞ + + $_gl_thumbs_is_­³nd +( +gl_™em + * +g™em +, ** +bur¡shÙ_id +) + +2042 + `GL_CHECK_FALSE +( +g™em +); + +2043 + `GL_CHECK_FALSE +( +g™em +-> +™em +); + +2044 + `GL_CHECK_FALSE +( +bur¡shÙ_id +); + +2045 +boÞ + +b_to_­³nd + = +çl£ +; + +2047 ià( +g™em +-> +™em +-> +ty³ + =ð +MEDIA_CONTENT_TYPE_IMAGE + && + +2048 +g™em +-> +™em +-> +image_šfo + && + +2049 +g™em +-> +™em +-> +image_šfo +-> +bur¡shÙ_id +) { + +2051 ià(* +bur¡shÙ_id + =ð +NULL + || + +2052 + `g_¡rcmp0 +(* +bur¡shÙ_id +, +g™em +-> +™em +-> +image_šfo +->burstshot_id)) { + +2053 * +bur¡shÙ_id + = +g™em +-> +™em +-> +image_šfo +->burstshot_id; + +2054 +b_to_­³nd + = +Œue +; + +2058 +b_to_­³nd + = +Œue +; + +2059 * +bur¡shÙ_id + = +NULL +; + +2061  +b_to_­³nd +; + +2062 + } +} + +2064 +boÞ + + $_gl_thumbs_check_z”o +(* +d©a +) + +2066 + `GL_CHECK_VAL +( +d©a +, -1); + +2067 +Eša_Li¡ + * +medŸs_–i¡ + = +NULL +; + +2069 + `_gl_thumbs_g‘_li¡ +( +d©a +, & +medŸs_–i¡ +); + +2070  ( + `eša_li¡_couÁ +( +medŸs_–i¡ +) <= 0); + +2071 + } +} + +2074  + $_gl_thumbs_upd©e_Ïb– +( +Elm_Objeù_I‹m + * +nf_™ +, * +t™Ë +) + +2076 + `GL_CHECK_VAL +( +nf_™ +, -1); + +2077 + `–m_objeù_™em_·¹_‹xt_£t +( +nf_™ +, "–m.‹xt.t™Ë", + `_gl_¡r +( +t™Ë +)); + +2078 ià( + `_gl_is_¡r_id +( +t™Ë +)) + +2079 + `_gl_ui_£t_Œª¦©abË_™em +( +nf_™ +, +t™Ë +); + +2081 + } +} + +2084  + $_gl_thumbs_upd©e_Ïb–_‹xt +( +Elm_Objeù_I‹m + * +nf_™ +,  +£l_út +, + +2085 +boÞ + +b_Ïng +) + +2087 + `GL_CHECK_VAL +( +nf_™ +, -1); + +2088 + `gl_dbg +("CouÁ: %d,†ªg: %d", +£l_út +, +b_Ïng +); + +2089 * +pd_£Ëùed + = +GL_STR_PD_SELECTED +; + +2091 +Evas_Objeù + * +bŠ + = + `–m_objeù_™em_·¹_cڋÁ_g‘ +( +nf_™ +, +GL_NAVIFRAME_TITLE_RIGHT_BTN +); + +2093 ià( +bŠ +) { + +2094 ià( +£l_út + > 0) { + +2095 + `–m_objeù_di§bËd_£t +( +bŠ +, +EINA_FALSE +); + +2097 + `–m_objeù_di§bËd_£t +( +bŠ +, +EINA_TRUE +); + +2102 ià( +£l_út + > 0) { + +2103 * +‹xt + = +NULL +; + +2104 +‹xt + = + `g_¡rdup_´štf +( +pd_£Ëùed +, +£l_út +); + +2105 + `_gl_thumbs_upd©e_Ïb– +( +nf_™ +, +‹xt +); + +2106 + `GL_GFREEIF +( +‹xt +); + +2107 } ià(! +b_Ïng +) { + +2109 + `_gl_thumbs_upd©e_Ïb– +( +nf_™ +, +GL_STR_ID_SELECT_ITEM +); + +2112 + } +} + +2114  + $_gl_thumbs_upd©e_Ïng +(* +d©a +) + +2116 + `GL_CHECK_VAL +( +d©a +, -1); + +2118 + } +} + +2120  + $_gl_thumbs_di§bË_¦ideshow +(* +d©a +, +boÞ + +b_di§bËd +) + +2122 + `GL_CHECK_VAL +( +d©a +, -1); + +2123 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +2124 + `gl_dbg +("b_di§bË: %d", +b_di§bËd +); + +2125 +ad +-> +gridšfo +. +b_¦ideshow_di§bË + = +b_di§bËd +; + +2127 + } +} + +2129  + $_gl_thumbs_di§bË_sh¬e +(* +d©a +, +boÞ + +b_di§bËd +) + +2131 + `GL_CHECK_VAL +( +d©a +, -1); + +2132 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +2133 + `gl_dbg +("b_di§bË: %d", +b_di§bËd +); + +2134 + `GL_CHECK_VAL +( +ad +-> +gridšfo +. +nf_™ +, -1); + +2135 +Evas_Objeù + * +bŠ + = +NULL +; + +2136 +bŠ + = + `–m_objeù_™em_·¹_cڋÁ_g‘ +( +ad +-> +gridšfo +. +nf_™ +, + +2137 +GL_NAVIFRAME_TITLE_LEFT_BTN +); + +2138 ià( +bŠ +) + +2139 + `–m_objeù_di§bËd_£t +( +bŠ +, +b_di§bËd +); + +2141 + `gl_dbgE +("Failedo get share button!"); + +2143 + } +} + +2146  + $_gl_thumbs_check_bŠs +(* +d©a +) + +2148 + `GL_CHECK_VAL +( +d©a +, -1); + +2149 + `__gl_thumbs_mode_»£t_bŠs +( +d©a +); + +2151 + } +} + +2153  + $_gl_thumbs_upd©e_£qu’û +(* +d©a +) + +2155 + `GL_CHECK_VAL +( +d©a +, -1); + +2156 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +2157 +gl_™em + * +g™em + = +NULL +; + +2158 +Elm_Objeù_I‹m + * +fœ¡_™ + = +NULL +; + +2159 +Elm_Objeù_I‹m + * +Ãxt_™ + = +NULL +; + +2160 +Elm_Objeù_I‹m + * +Ï¡_™ + = +NULL +; + +2162 +Evas_Objeù + * +v›w + = +ad +-> +gridšfo +.view; + +2163 ià( + `gl_g‘_v›w_mode +( +d©a +è=ð +GL_VIEW_THUMBS_SELECT +) + +2164 +v›w + = +ad +-> +gridšfo +. +£Ëù_v›w +; + +2165 + `GL_CHECK_VAL +( +v›w +, -1); + +2166 +fœ¡_™ + = + `–m_g’grid_fœ¡_™em_g‘ +( +v›w +); + +2167 +Ï¡_™ + = + `–m_g’grid_Ï¡_™em_g‘ +( +v›w +); + +2169  +£qu’û + = 1; + +2170  +fœ¡_™ +) { + +2171 +Ãxt_™ + = + `–m_g’grid_™em_Ãxt_g‘ +( +fœ¡_™ +); + +2173 ià( + `–m_g’grid_™em_™em_þass_g‘ +( +fœ¡_™ +è=ð&( +ad +-> +gridšfo +. +d©e_gic +)) + +2174  +GL_THUMBS_NEXT +; + +2176 +g™em + = + `–m_objeù_™em_d©a_g‘ +( +fœ¡_™ +); + +2177 ià( +g™em +) + +2178 +g™em +-> +£qu’û + = sequence++; + +2179 +g™em + = +NULL +; + +2181 +GL_THUMBS_NEXT +: + +2183 ià( +Ï¡_™ + =ð +fœ¡_™ +) { + +2184 + `gl_dbg +("done!"); + +2187 +fœ¡_™ + = +Ãxt_™ +; + +2191 + } +} + +2193  + $_gl_thumbs_£t_ed™_mode +(* +d©a +,  +mode +) + +2195 + `GL_CHECK_VAL +( +d©a +, -1); + +2196 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +2197 +ad +-> +gridšfo +. +ed™_mode + = +mode +; + +2199 + } +} + +2201  + $_gl_thumbs_g‘_ed™_mode +(* +d©a +) + +2203 + `GL_CHECK_FALSE +( +d©a +); + +2204 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +2205  +ad +-> +gridšfo +. +ed™_mode +; + +2206 + } +} + +2208  + $_gl_thumbs_rÙ©e_v›w +(* +d©a +) + +2210 + `GL_CHECK_VAL +( +d©a +, -1); + +2211 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +2212 +Eša_Li¡ + * +™s + = +NULL +; + +2213 +Eša_Li¡ + * +l + = +NULL +; + +2214 +Elm_Objeù_I‹m + * +™ + = +NULL +; + +2215 +gl_™em + * +g™em + = +NULL +; + +2217 ià( +ad +-> +gridšfo +. +v›w + =ðad->gridšfo. +nocڋÁs +) + +2220  +w + = -1; + +2221  +h + = -1; + +2222 ià( + `gl_g‘_v›w_mode +( +ad +è=ð +GL_VIEW_THUMBS_EDIT +) { + +2223 + `evas_objeù_geom‘ry_g‘ +( +ad +-> +maššfo +. +wš +, +NULL +, NULL, & +w +, & +h +); + +2224 +Edje_Mes§ge_IÁ + * +msg + = (Edje_Mes§ge_IÁ *) + `m®loc +((Edje_Message_Int) + ()); + +2225 + `GL_CHECK_VAL +( +msg +, -1); + +2226 ià( +ad +-> +gridšfo +. +¥l™_v›w_mode + =ð +DETAIL_VIEW +) { + +2227 +msg +-> +v® + = +h +; + +2229 +msg +-> +v® + = (( +w + < +h +) ? (h - (w / 3)) : (w - (h / 3))); + +2231 + `gl_dbgE +("msg v®u: %d", +msg +-> +v® +); + +2232 + `edje_objeù_mes§ge_£nd +( + `–m_Ïyout_edje_g‘ +( +ad +-> +gridšfo +. +Ïyout +), +EDJE_MESSAGE_INT +, 2, +msg +); + +2233 + `ä“ +( +msg +); + +2234 + `–m_objeù_sigÇl_em™ +( +ad +-> +gridšfo +. +Ïyout +, "elm,selectall,state,visible", "elm"); + +2236 + `_gl_thumbs_£t_size +( +d©a +, +NULL +); + +2238 +™s + = + `–m_g’grid_»®ized_™ems_g‘ +( +ad +-> +gridšfo +. +v›w +); + +2239 + `GL_CHECK_VAL +( +™s +, -1); + +2241 + `EINA_LIST_FOREACH +( +™s +, +l +, +™ +) { + +2242 ià( +™ + =ð +NULL +) { + +2243 + `gl_dbgE +("Invalid item!"); + +2247 +g™em + = + `–m_objeù_™em_d©a_g‘ +( +™ +); + +2248 ià( +g™em + && g™em-> +™em + &&g™em->™em-> +image_šfo + && + +2249 +g™em +-> +™em +-> +image_šfo +-> +bur¡shÙ_id +) { + +2251 + `–m_g’grid_™em_upd©e +( +™ +); + +2255 + } +} + +2257  + $_gl_thumbs_chªge_v›w +(* +d©a +,  +´ev_x +,  +cu¼’t_x +) + +2259 + `GL_CHECK +( +d©a +); + +2260 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +2261  +diff + = 0; + +2262  +w + = -1; + +2263  +h + = -1; + +2265 + `evas_objeù_geom‘ry_g‘ +( +ad +-> +maššfo +. +wš +, +NULL +, NULL, & +w +, & +h +); + +2266  +off£t + = (( +w + < +h +) ? (w / 8) : (h / 8)); + +2267 +diff + = ( +cu¼’t_x + - +´ev_x +); + +2268  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +2269 ià( +v›w_mode + =ð +GL_VIEW_THUMBS_EDIT + || v›w_mod=ð +GL_VIEW_THUMBS +) { + +2270 ià(( +diff + + +off£t +) < 0) { + +2271 + `–m_objeù_sigÇl_em™ +( +ad +-> +gridšfo +. +Ïyout +, "elm,splitview,state,default", "elm"); + +2272 +ad +-> +gridšfo +. +¥l™_v›w_mode + = +DETAIL_VIEW +; + +2273 + `_gl_thumbs_£t_size +( +ad +, +NULL +); + +2274 } ià(( +diff + - +off£t +) > 0) { + +2275 ià( +ad +-> +gridšfo +. +¥l™_v›w_mode + !ð +SPLIT_VIEW +) { + +2276 + `evas_objeù_geom‘ry_g‘ +( +ad +-> +maššfo +. +wš +, +NULL +, NULL, & +w +, & +h +); + +2277 +Edje_Mes§ge_IÁ + * +msg + = (Edje_Mes§ge_IÁ *) + `m®loc +((Edje_Message_Int) + ()); + +2278 + `GL_CHECK +( +msg +); + +2279 +msg +-> +v® + = (( +w + < +h +) ? (w / 3) : (h / 3)); + +2280 + `edje_objeù_mes§ge_£nd +( + `–m_Ïyout_edje_g‘ +( +ad +-> +gridšfo +. +Ïyout +), +EDJE_MESSAGE_INT +, 1, +msg +); + +2281 + `ä“ +( +msg +); + +2282 + `–m_objeù_sigÇl_em™ +( +ad +-> +gridšfo +. +Ïyout +, "elm,splitview,state,default", "elm"); + +2283 + `–m_objeù_sigÇl_em™ +( +ad +-> +gridšfo +. +Ïyout +, "elm,splitview,state,visible", "elm"); + +2284 +ad +-> +gridšfo +. +¥l™_v›w_mode + = +SPLIT_VIEW +; + +2285 + `_gl_thumbs_£t_size +( +ad +, +NULL +); + +2288 ià( +v›w_mode + =ð +GL_VIEW_THUMBS_EDIT +) { + +2289 +Edje_Mes§ge_IÁ + * +msg + = (Edje_Mes§ge_IÁ *) + `m®loc +((Edje_Message_Int) + ()); + +2290 + `GL_CHECK +( +msg +); + +2291 ià( +ad +-> +gridšfo +. +¥l™_v›w_mode + =ð +DETAIL_VIEW +) { + +2292 +msg +-> +v® + = +w +; + +2294 +msg +-> +v® + = (( +w + < +h +) ? (w - (w / 3)) : (w - (h / 3))); + +2296 + `gl_dbgE +("msg v®u: %d", +msg +-> +v® +); + +2297 + `edje_objeù_mes§ge_£nd +( + `–m_Ïyout_edje_g‘ +( +ad +-> +gridšfo +. +Ïyout +), +EDJE_MESSAGE_INT +, 2, +msg +); + +2298 + `ä“ +( +msg +); + +2299 + `–m_objeù_sigÇl_em™ +( +ad +-> +gridšfo +. +Ïyout +, "elm,selectall,state,visible", "elm"); + +2302 + } +} + +2304  + $_gl_thumb_upd©e_¥l™_v›w_badge +(* +d©a +) { + +2305 + `GL_CHECK +( +d©a +); + +2306 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +2307 + `GL_CHECK +( +ad +-> +®bumšfo +. +–i¡ +); + +2308 + `GL_CHECK +( +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ +); + +2309 +gl_þu¡” + * +®bum_™em + = +NULL +; + +2310 +gl_™em + * +™em + = +NULL +; + +2311  +Ëngth +, +i +; + +2312 +Eša_Li¡ + * +þi¡ + = +ad +-> +®bumšfo +. +–i¡ +->clist; + +2313 +Ëngth + = + `eša_li¡_couÁ +( +þi¡ +); + +2315  +i + = 0; i < +Ëngth +; i++) { + +2316 +®bum_™em + = + `eša_li¡_Áh +( +þi¡ +, +i +); + +2317 ià( +®bum_™em + &&‡lbum_™em-> +–i¡ +) { + +2318 + `EINA_LIST_FREE +( +®bum_™em +-> +–i¡ +, +™em +) { + +2319 ià( +™em +) { + +2320 +™em +-> +checked + = +çl£ +; + +2325 + } +} + +2327  + $_gl_thumb_upd©e_¥l™_v›w +(* +d©a +) { + +2328 + `GL_CHECK +( +d©a +); + +2329 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +2330 if( +ad +-> +gridšfo +. +upd©e_¥l™_v›w +) { + +2332 ià( +ad +-> +gridšfo +. +Ïyout +) { + +2333 +Evas_Objeù + * +Ïyout_šÃr + = + `–m_objeù_·¹_cڋÁ_g‘ +( +ad +-> +gridšfo +. +Ïyout +, "split.view"); + +2334 ià(! +Ïyout_šÃr +) { + +2335 + `gl_dbgE +("Failedo‡dd split‡lbum view!"); + +2337 + `_ü—‹_¥l™_®bum_v›w +( +ad +, +Ïyout_šÃr +); + +2338 + `–m_objeù_·¹_cڋÁ_£t +( +ad +-> +gridšfo +. +Ïyout +, "¥l™.v›w", +Ïyout_šÃr +); + +2339 + `_gl_thumb_upd©e_¥l™_v›w_badge +( +d©a +); + +2343 +ad +-> +gridšfo +. +upd©e_¥l™_v›w + = +Œue +; + +2345 + } +} + + @src/gallery.c + +17  + ~ + +18  + ~ + +19  + ~"gl-maš.h +" + +20  + ~"gl-debug.h +" + +21  + ~"gl-ui-utž.h +" + +22  + ~"gl-Ïng.h +" + +23  + ~"gl-utž.h +" + +24  + ~"gl-d©a.h +" + +25  + ~"gl-ext-ug-lßd.h +" + +26  + ~"gl-ext-exec.h +" + +27  + ~"gl-pÝup.h +" + +28  + ~"gl-’Œy.h +" + +29  + ~"gl-db-upd©e.h +" + +30  + ~"gl-®bums.h +" + +40  +boÞ + +_g®Ëry_ü—‹ +(* +d©a +); + +41  + $__g®Ëry_sig‹rm_hªdËr +( +signum +) + +44 + `gl_dbgW +(">>>>>>>>>>>>>>>>> SIGTERM >>>>>>>>>>>>>>> Gallery "); + +45 + `–m_ex™ +(); + +46 + } +} + +48  + $_g®Ëry_Ïng_chªged_cb +( +­p_ev’t_šfo_h + +ev’t_šfo +, * +d©a +) + +50 + `GL_CHECK +( +d©a +); + +51 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +52 + `evas_objeù_sm¬t_ÿÎback_ÿÎ +( +ad +-> +maššfo +. +Çviäame +, + +53 "g®Ëry,Ïnguage,chªged", +d©a +); + +55 + `_gl_Ïng_upd©e +( +d©a +); + +56 + } +} + +58  + $_g®Ëry_»sume +(* +d©a +) + +60 + `gl_dbgW +("==Resume=="); + +62 + `GL_CHECK +( +d©a +); + +63 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +65 + `evas_objeù_d©a_£t +( +ad +-> +maššfo +. +Çviäame +, + +68 ià( +ad +-> +maššfo +. +b_·u£d +) { + +69 + `evas_objeù_sm¬t_ÿÎback_ÿÎ +( +ad +-> +maššfo +. +Çviäame +, + +70 "g®Ëry,v›w,»sumed", +d©a +); + +71 +ad +-> +maššfo +. +b_·u£d + = +çl£ +; + +74 ià( +ad +-> +ugšfo +. +b_ug_Ïunched +) { + +75 + `–m_objeù_Œ“_focus_®low_£t +( +ad +-> +maššfo +. +Ïyout +, +EINA_TRUE +); + +76 + `–m_objeù_focus_£t +( +ad +-> +maššfo +. +Ïyout +, +EINA_TRUE +); + +77 +ad +-> +ugšfo +. +b_ug_Ïunched + = +çl£ +; + +83 +ad +-> +ugšfo +. +b_­p_ÿÎed + = +çl£ +; + +84 + `_gl_’Œy_»sume_v›w +( +ad +); + +85 + } +} + +87  + $_g®Ëry_þo£_­p +(* +d©a +) + +89 + `GL_CHECK_VAL +( +d©a +, -1); + +90 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +92 + `_gl_maš_þ—r_v›w +( +ad +); + +94 + `GL_IF_DEL_TIMER +( +ad +-> +pb¬šfo +. +pb¬_tim” +); + +96 + `GL_IF_DEL_PIPE +( +ad +-> +pb¬šfo +. +sync_pe +); + +97 + `GL_IF_DEL_TIMER +( +ad +-> +pb¬šfo +. +¡¬t_th»ad_tim” +); + +98 + `GL_IF_DEL_TIMER +( +ad +-> +pb¬šfo +. +d–_pb¬_tim” +); + +99 + `GL_IF_DEL_TIMER +( +ad +-> +ù¾šfo +. +avoid_muÉi_p +); + +100 + `GL_IF_DEL_JOB +( +ad +-> +pb¬šfo +. +d–_pb¬_job +); + +102 + `GL_IF_DEL_TIMER +( +ad +-> +pÝupšfo +. +d–_tim” +); + +104 + `GL_IF_DEL_EVENT_HANDLER +( +ad +-> +maššfo +. +keydown_hªdËr +); + +106 + `GL_IF_DEL_EVENT_HANDLER +( +ad +-> +maššfo +. +fÚt_hªdËr +); + +108 + `GL_IF_DEL_IDLER +( +ad +-> +maššfo +. +mmc_idËr +); + +109 + `GL_IF_DEL_TIMER +( +ad +-> +maššfo +. +»g_idËr +); + +111 + `_gl_d”eg_¡Üage_¡©e_chªge_nÙify +( +d©a +); + +112 #ifdeà +_USE_SVI + + +114 + `_gl_fši_svi +( +d©a +); + +117 + `_gl_dlþo£_imagev›w” +( +d©a +); + +119 + `_gl_db_upd©e_fš®ize +( +d©a +); + +121 + `_gl_d©a_fš®ize +( +ad +); + +123 + `gl_dbgW +("==Cleaning done=="); + +125 + } +} + +127  + $_g®Ëry_‹rmš©e +(* +d©a +) + +129 + `gl_dbgW +("==Terminate=="); + +130 + `GL_CHECK +( +d©a +); + +131 + `_g®Ëry_þo£_­p +( +d©a +); + +132 + } +} + +156  +Eša_BoÞ + + $__g®Ëry_key_down_cb +(* +d©a +,  +ty³ +, * +ev’t +) + +158 ià(! +d©a +) { + +159 + `gl_dbgE +("Invalid…arameter!"); + +160  +ECORE_CALLBACK_PASS_ON +; + +163 +EcÜe_Ev’t_Key + * +key_ev’t + = (EcÜe_Ev’t_Key *) +ev’t +; + +165 ià(! +key_ev’t +) { + +166  +ECORE_CALLBACK_PASS_ON +; + +168 ià(! + `g_¡rcmp0 +( +key_ev’t +-> +keyÇme +, "XF86PowerOff")) { + +169 + `gl_sdbgW +("Power key"); + +170 } ià(! + `g_¡rcmp0 +( +key_ev’t +-> +keyÇme +, "XF86Menu")) { + +171 + `gl_sdbgW +("menu key is…ressed"); + +172 } + `gl_sdbg +("Key dowÀ: %s", +key_ev’t +-> +keyÇme +); + +174  +ECORE_CALLBACK_PASS_ON +; + +175 + } +} + +177  + $_g®Ëry_low_b©‹ry_cb +( +­p_ev’t_šfo_h + +ev’t_šfo +, * +d©a +) + +179 + `gl_dbg +(""); + +183 + } +} + +185  +boÞ + + $_g®Ëry_ü—‹ +(* +d©a +) + +187 +GL_PROFILE_IN +; + +188 + `gl_dbgW +("==Create=="); + +189 + `GL_CHECK_FALSE +( +d©a +); + +190 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +191 +ad +-> +maššfo +. +»’Œªt + = +TRUE +; + +192 +ad +-> +ugšfo +. +b_ug_Ïunched + = +çl£ +; + +195 ià( + `sigÇl +( +SIGTERM +, +__g®Ëry_sig‹rm_hªdËr +è=ð +SIG_IGN +) { + +196 + `gl_dbgW +("SIG_IGN"); + +197 + `sigÇl +( +SIGTERM +, +SIG_IGN +); + +199 + `bšd‹xtdomaš +( +PACKAGE +, "/usr/apps/org.tizen.gallery/res/locale"); + +200 #ifdeà +_USE_OPENGL_BACKEND + + +201 + `–m_cÚfig_´eã¼ed_’gše_£t +("opengl_x11"); + +203 + `–m_cÚfig_´eã¼ed_’gše_£t +("software_x11"); + +206 ià( + `_gl_maš_ü—‹_v›w +( +d©a +) != 0) { + +207 + `gl_dbgE +("_gl_main_create_view failed"); + +208  +çl£ +; + +211 + `GL_PROFILE_F_IN +("register‚oti callback"); + +213 + `_gl_db_upd©e_š™ +( +d©a +); + +215 + `_gl_»g_¡Üage_¡©e_chªge_nÙify +( +d©a +); + +218 +ad +-> +maššfo +. +keydown_hªdËr + = + `ecÜe_ev’t_hªdËr_add +( + +219 +ECORE_EVENT_KEY_DOWN +, + +220 +__g®Ëry_key_down_cb +, + +221 +d©a +); + +223 + `GL_PROFILE_F_OUT +("register‚oti callback"); + +224 +GL_PROFILE_OUT +; + +225  +Œue +; + +226 + } +} + +228  + $_g®Ëry_·u£ +(* +d©a +) + +230 + `gl_dbgW +("==Pause=="); + +232 + `GL_CHECK +( +d©a +); + +233 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +234 +ad +-> +maššfo +. +»’Œªt + = +TRUE +; + +236 + `evas_objeù_d©a_£t +( +ad +-> +maššfo +. +Çviäame +, + +239 + `evas_objeù_sm¬t_ÿÎback_ÿÎ +( +ad +-> +maššfo +. +Çviäame +, + +240 "g®Ëry,v›w,·u£d", +d©a +); + +241 +ad +-> +maššfo +. +b_·u£d + = +Œue +; + +244 + } +} + +248  + $__g®Ëry_·r£_·¿m +(* +d©a +, +­p_cڌÞ_h + +£rviû +) + +250 + `GL_CHECK_VAL +( +£rviû +, -1); + +251 + `GL_CHECK_VAL +( +d©a +, -1); + +252 + `gl_dbg +(""); + +254 * +v®ue + = +NULL +; + +255 + `­p_cڌÞ_g‘_exŒa_d©a +( +£rviû +, + +256 "h‰p://tiz’.Üg/­pcڌÞ/d©a/muÉiwšdow", & +v®ue +); + +257 ià( +v®ue +) { + +258 ià(! + `¡rcmp +( +v®ue +, "on")) { + +259 + `gl_dbg +("muÉiwšdow v®uð%s", +v®ue +); + +261 + `ä“ +( +v®ue +); + +265 + } +} + +267  + $_g®Ëry_»£t +( +­p_cڌÞ_h + +£rviû +, * +d©a +) + +269 +GL_PROFILE_IN +; + +270 + `gl_dbgW +("==Reset=="); + +271 + `GL_CHECK +( +d©a +); + +272 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +273 + `GL_CHECK +( +ad +-> +maššfo +. +wš +); + +275 ià( +ad +-> +maššfo +. +»’Œªt +) { + +276 +ad +-> +maššfo +. +»’Œªt + = +FALSE +; + +278 + `gl_dbgW +("Gallery„eentrant is‚ot‡llowed!"); + +282 ià( +ad +-> +maššfo +. +b_·u£d +) { + +283 + `evas_objeù_sm¬t_ÿÎback_ÿÎ +( +ad +-> +maššfo +. +Çviäame +, + +284 "g®Ëry,v›w,»sumed", +d©a +); + +285 +ad +-> +maššfo +. +b_·u£d + = +çl£ +; + +289 ià( + `__g®Ëry_·r£_·¿m +( +d©a +, +£rviû +) != 0) { + +290  +v›w_m + = + `gl_g‘_v›w_mode +( +ad +); + +291 + `gl_dbg +("v›w_m: %d", +v›w_m +); + +294 ià( +v›w_m + =ð +GL_VIEW_NONE +) { + +295 + `_gl_maš_upd©e_v›w +( +ad +); + +298 + `gl_dbgW +("Checkme: Needo Update view????"); + +301 + `–m_wš_aùiv©e +( +ad +-> +maššfo +. +wš +); + +302 +GL_PROFILE_OUT +; + +306 + `_gl_maš_»£t_v›w +( +d©a +); + +307 +GL_PROFILE_OUT +; + +308 + } +} + +310 +EXPORT_API +  + $maš +( +¬gc +, * +¬gv +[]) + +312 + `gl_dbgW +("==Gallery=="); + +313 +gl_­pd©a + +gl_ad +; + +314  +»t + = +APP_ERROR_NONE +; + +316 +ui_­p_liãcyþe_ÿÎback_s + +ev’t_ÿÎback +; + +318 +­p_ev’t_hªdËr_h + +hLowB©‹ryHªdË +; + +319 +­p_ev’t_hªdËr_h + +hLªguageChªgedHªdË +; + +321 +ev’t_ÿÎback +. +ü—‹ + = +_g®Ëry_ü—‹ +; + +322 +ev’t_ÿÎback +. +‹rmš©e + = +_g®Ëry_‹rmš©e +; + +323 +ev’t_ÿÎback +. +·u£ + = +_g®Ëry_·u£ +; + +324 +ev’t_ÿÎback +. +»sume + = +_g®Ëry_»sume +; + +325 +ev’t_ÿÎback +. +­p_cÚŒÞ + = +_g®Ëry_»£t +; + +327 +»t + = + `ui_­p_add_ev’t_hªdËr +(& +hLowB©‹ryHªdË +, + +328 +APP_EVENT_LOW_BATTERY +, +_g®Ëry_low_b©‹ry_cb +, (*)& +gl_ad +); + +329 ià( +»t + !ð +APP_ERROR_NONE +) { + +330 + `gl_dbgE +("çžedØadd LOW_BATTERYƒv’t_hªdËr: [%d]", +»t +); + +334 +»t + = + `ui_­p_add_ev’t_hªdËr +(& +hLªguageChªgedHªdË +, + +335 +APP_EVENT_LANGUAGE_CHANGED +, +_g®Ëry_Ïng_chªged_cb +, + +336 (*)& +gl_ad +); + +337 ià( +»t + !ð +APP_ERROR_NONE +) { + +338 + `gl_dbgE +("failedo‡dd LANGUAGE_CHANGEDƒvent_handler: [%d]", + +339 +»t +); + +348 + `mem£t +(& +gl_ad +, 0x00, ( +gl_­pd©a +)); + +350 +»t + = + `ui_­p_maš +( +¬gc +, +¬gv +, & +ev’t_ÿÎback +, & +gl_ad +); + +352 + `gl_dbgW +("==Gallery gone=="); + +353  +»t +; + +354 + } +} + + @src/util/gl-db-update.c + +18  + ~ + +19  + ~"g®Ëry.h +" + +20  + ~"gl-utž.h +" + +21  + ~"gl-debug.h +" + +22  + ~"gl-db-upd©e.h +" + +23  + ~"gl-d©a.h +" + +25  + #GL_MONITOE_TIME_DELAY + 1.0f + + ) + +29 + mGL_DU_LOCK_NONE +, + +30 + mGL_DU_LOCK_ONCE +, + +31 + mGL_DU_LOCK_ALWAYS +, + +32 } + tgl_du_lock_e +; + +34  + sgl_db_nÙi_t + { + +35 * + mad +; + +36 +EcÜe_Tim” + * + mdb_tim” +; + +38 +EcÜe_IdËr + * + mdb_idl +; + +40 +gl_du_lock_e + + mlock_¡©e +; + +41  + mcouÁ +; + +43 +medŸ_cڋÁ_db_upd©e_™em_ty³_e + + mupd©e_™em +; + +44 +medŸ_cڋÁ_db_upd©e_ty³_e + + mupd©e_ty³ +; + +45 +GLi¡ + * + muuids +; + +48  +Eša_BoÞ + + $__gl_db_upd©e_idËr +(* +d©a +) + +50 + `GL_CHECK_FALSE +( +d©a +); + +51 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +52 + `GL_CHECK_FALSE +( +ad +-> +db_nÙi_d +); + +53 +gl_db_nÙi_s + * +db_nÙi + = +ad +-> +db_nÙi_d +; + +54 + `gl_upd©e_v›w +( +ad +, +GL_UPDATE_VIEW_INOTIFY +); + +55 + `evas_objeù_sm¬t_ÿÎback_ÿÎ +( +ad +-> +maššfo +. +Çviäame +, + +56 "g®Ëry,db,d©a,upd©ed", +d©a +); + +57 + `GL_IF_DEL_IDLER +( +db_nÙi +-> +db_idl +); + +58  +ECORE_CALLBACK_CANCEL +; + +59 + } +} + +61  +Eša_BoÞ + + $__gl_db_upd©e_tim”_cb +(* +d©a +) + +63 + `GL_CHECK_FALSE +( +d©a +); + +64 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +65 + `GL_CHECK_FALSE +( +ad +-> +db_nÙi_d +); + +66 +gl_db_nÙi_s + * +db_nÙi + = +ad +-> +db_nÙi_d +; + +68 + `gl_dbg +("db_upd©e[%d]", +db_nÙi +-> +lock_¡©e +); + +69 ià( +db_nÙi +-> +lock_¡©e +) { + +70 + `gl_dbgW +("Don't update,†ocked!"); + +71 ià( +db_nÙi +-> +lock_¡©e + =ð +GL_DU_LOCK_ONCE +) + +72 +db_nÙi +-> +lock_¡©e + = +GL_DU_LOCK_NONE +; + +74 + `GL_IF_DEL_IDLER +( +db_nÙi +-> +db_idl +); + +75 +db_nÙi +-> +db_idl + = + `ecÜe_idËr_add +( +__gl_db_upd©e_idËr +, +d©a +); + +78 + `GL_IF_DEL_TIMER +( +db_nÙi +-> +db_tim” +); + +79  +ECORE_CALLBACK_CANCEL +; + +80 + } +} + +82  + $__gl_db_upd©e_Ý +( +medŸ_cڋÁ_”rÜ_e + +”rÜ +,  +pid +, + +83 +medŸ_cڋÁ_db_upd©e_™em_ty³_e + +upd©e_™em +, + +84 +medŸ_cڋÁ_db_upd©e_ty³_e + +upd©e_ty³ +, + +85 +medŸ_cڋÁ_ty³_e + +medŸ_ty³ +, * +uuid +, + +86 * +·th +, * +mime_ty³ +, * +d©a +) + +88 + `GL_CHECK_VAL +( +d©a +, -1); + +89 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +90 + `GL_CHECK_VAL +( +ad +-> +db_nÙi_d +, -1); + +91 +gl_db_nÙi_s + * +db_nÙi + = +ad +-> +db_nÙi_d +; + +93 ià( +MEDIA_CONTENT_ERROR_NONE + !ð +”rÜ +) { + +94 + `gl_dbgE +("Upd©dbƒ¼Ü[%d]!", +”rÜ +); + +97 ià( +upd©e_™em + =ð +MEDIA_ITEM_FILE + && + +98 +MEDIA_CONTENT_TYPE_IMAGE + !ð +medŸ_ty³ + && + +99 +MEDIA_CONTENT_TYPE_VIDEO + !ð +medŸ_ty³ +) { + +100 + `gl_dbg +("Mediaype is wrong"); + +102 } ià( +upd©e_™em + =ð +MEDIA_ITEM_DIRECTORY +) { + +104  +út + = 0; + +105  +»t + = -1; + +106 +»t + = + `_gl_d©a_g‘_™em_út +( +GL_ALBUM_ALL_ID +, +GL_STORE_T_ALL +, & +út +); + +107 ià( +»t + !ð0 || +út + == 0) { + +108 + `gl_dbgE +("Empty!"); + +110 + `gl_dbg +("Þd: %d,‚ew: %d", +db_nÙi +-> +couÁ +, +út +); + +111 ià( +út + =ð +db_nÙi +-> +couÁ +) { + +112 + `gl_dbg +("Nothing changed"); + +113 ià( +·th +) { + +114 +gl_®bum_s + * +®bum + = +NULL +; + +115 + `_gl_loÿl_d©a_g‘_®bum_by_·th +( +·th +, & +®bum +); + +116 ià(! +®bum +) { + +119 + `_gl_d©a_ty³_ä“_gl™em +((**)& +®bum +); + +120 + `gl_dbgW +("Updated‡lbum contains images"); + +128 +db_nÙi +-> +upd©e_™em + = update_item; + +129 +db_nÙi +-> +upd©e_ty³ + = update_type; + +130 ià( +uuid + && +upd©e_™em + =ð +MEDIA_ITEM_FILE + && + +131 +upd©e_ty³ + =ð +MEDIA_CONTENT_DELETE +) { + +132 + `gl_dbgW +("Aµ’d: %s", +uuid +); + +133 +db_nÙi +-> +uuids + = + `g_li¡_­³nd +(db_nÙi->uuids, ( +gpoš‹r +) + `g_¡rdup +( +uuid +)); + +136 + `_gl_db_upd©e_add_tim” +( +d©a +); + +138 + } +} + +140  + $__gl_db_upd©e_cb +( +medŸ_cڋÁ_”rÜ_e + +”rÜ +,  +pid +, + +141 +medŸ_cڋÁ_db_upd©e_™em_ty³_e + +upd©e_™em +, + +142 +medŸ_cڋÁ_db_upd©e_ty³_e + +upd©e_ty³ +, + +143 +medŸ_cڋÁ_ty³_e + +medŸ_ty³ +, * +uuid +, + +144 * +·th +, * +mime_ty³ +, * +d©a +) + +146 + `gl_dbg +("upd©e_™em[%d], upd©e_ty³[%d], medŸ_ty³[%d]", +upd©e_™em +, + +147 +upd©e_ty³ +, +medŸ_ty³ +); + +148 + `GL_CHECK +( +d©a +); + +149 + `gl_dbg +("uuid[%s],…©h[%s]", +uuid +, +·th +); + +150 + `__gl_db_upd©e_Ý +( +”rÜ +, +pid +, +upd©e_™em +, +upd©e_ty³ +, +medŸ_ty³ +, + +151 +uuid +, +·th +, +mime_ty³ +, +d©a +); + +152 + } +} + +169  + $_gl_db_upd©e_add_tim” +(* +d©a +) + +171 + `GL_CHECK_VAL +( +d©a +, -1); + +172 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +173 + `GL_CHECK_VAL +( +ad +-> +db_nÙi_d +, -1); + +174 +gl_db_nÙi_s + * +db_nÙi + = +ad +-> +db_nÙi_d +; + +176 + `GL_IF_DEL_TIMER +( +db_nÙi +-> +db_tim” +); + +177 +db_nÙi +-> +db_tim” + = + `ecÜe_tim”_add +( +GL_MONITOE_TIME_DELAY +, + +178 +__gl_db_upd©e_tim”_cb +, +d©a +); + +179 + `gl_dbgW +("TIMER[1.0f]‡dded!"); + +181 + } +} + +183 +boÞ + + $_gl_db_upd©e_lock_Úû +(* +d©a +, +boÞ + +¡©us +) + +185 + `gl_dbg +(""); + +186 + `GL_CHECK_FALSE +( +d©a +); + +187 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +188 + `GL_CHECK_FALSE +( +ad +-> +db_nÙi_d +); + +189 +gl_db_nÙi_s + * +db_nÙi + = +ad +-> +db_nÙi_d +; + +190 ià( +¡©us +) + +191 +db_nÙi +-> +lock_¡©e + = +GL_DU_LOCK_ONCE +; + +193 +db_nÙi +-> +lock_¡©e + = +GL_DU_LOCK_NONE +; + +194  +Œue +; + +195 + } +} + +197 +boÞ + + $_gl_db_upd©e_lock_®ways +(* +d©a +, +boÞ + +¡©us +) + +199 + `gl_dbg +(""); + +200 + `GL_CHECK_FALSE +( +d©a +); + +201 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +202 + `GL_CHECK_FALSE +( +ad +-> +db_nÙi_d +); + +203 +gl_db_nÙi_s + * +db_nÙi + = +ad +-> +db_nÙi_d +; + +204 ià( +¡©us +) + +205 +db_nÙi +-> +lock_¡©e + = +GL_DU_LOCK_ALWAYS +; + +207 +db_nÙi +-> +lock_¡©e + = +GL_DU_LOCK_NONE +; + +208  +Œue +; + +209 + } +} + +211 +boÞ + + $_gl_db_upd©e_£t_couÁ +(* +d©a +,  +couÁ +) + +213 + `gl_dbg +("couÁ: %d", +couÁ +); + +214 + `GL_CHECK_FALSE +( +d©a +); + +215 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +216 + `GL_CHECK_FALSE +( +ad +-> +db_nÙi_d +); + +217 +gl_db_nÙi_s + * +db_nÙi + = +ad +-> +db_nÙi_d +; + +218 +db_nÙi +-> +couÁ + = count; + +219  +Œue +; + +220 + } +} + +222  + $_gl_db_upd©e_g‘_šfo +(* +d©a +, + +223 +medŸ_cڋÁ_db_upd©e_™em_ty³_e + * +upd©e_™em +, + +224 +medŸ_cڋÁ_db_upd©e_ty³_e + * +upd©e_ty³ +, + +225 +GLi¡ + ** +uuids +) + +227 + `GL_CHECK_VAL +( +d©a +, -1); + +228 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +229 + `GL_CHECK_VAL +( +ad +-> +db_nÙi_d +, -1); + +231 ià( +upd©e_™em +) + +232 * +upd©e_™em + = +ad +-> +db_nÙi_d +->update_item; + +233 ià( +upd©e_ty³ +) + +234 * +upd©e_ty³ + = +ad +-> +db_nÙi_d +->update_type; + +235 ià( +ad +-> +db_nÙi_d +-> +uuids + && uuids) { + +236 * +uuids + = +ad +-> +db_nÙi_d +->uuids; + +237 +ad +-> +db_nÙi_d +-> +uuids + = +NULL +; + +241 + } +} + +244 +boÞ + + $_gl_db_upd©e_»g_cb +(* +d©a +) + +246 + `GL_CHECK_FALSE +( +d©a +); + +247 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +248 + `GL_CHECK_FALSE +( +ad +-> +db_nÙi_d +); + +249  +»t + = -1; + +251 + `gl_dbg +("Set db updated callback"); + +252 +»t + = + `medŸ_cڋÁ_£t_db_upd©ed_cb +( +__gl_db_upd©e_cb +, +d©a +); + +253 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE +) + +254 + `gl_dbgE +("S‘ db upd©ed cb fažed[%d]!", +»t +); + +260  +Œue +; + +261 + } +} + +264 +boÞ + + $_gl_db_upd©e_š™ +(* +d©a +) + +266 + `GL_CHECK_FALSE +( +d©a +); + +267 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +268 +gl_db_nÙi_s + * +db_nÙi + = (gl_db_nÙi_ *) + `ÿÎoc +(1, (gl_db_noti_s)); + +269 + `GL_CHECK_FALSE +( +db_nÙi +); + +271 +ad +-> +db_nÙi_d + = +db_nÙi +; + +272 + `gl_dbg +("DB updated intialization"); + +273  +Œue +; + +274 + } +} + +276 +boÞ + + $_gl_db_upd©e_fš®ize +(* +d©a +) + +278  +»t + = -1; + +279 + `gl_dbg +("Unset db updated callback"); + +281 +»t + = + `medŸ_cڋÁ_un£t_db_upd©ed_cb +(); + +282 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE +) + +283 + `gl_dbgE +("UNS‘ db upd©ed cb fažed[%d]!", +»t +); + +285 + `GL_CHECK_FALSE +( +d©a +); + +286 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +287 + `GL_CHECK_FALSE +( +ad +-> +db_nÙi_d +); + +288 +gl_db_nÙi_s + * +db_nÙi + = +ad +-> +db_nÙi_d +; + +296 ià( +db_nÙi +-> +uuids +) { + +297 + `g_li¡_ä“_fuÎ +( +db_nÙi +-> +uuids +, +g_ä“ +); + +298 +db_nÙi +-> +uuids + = +NULL +; + +300 + `GL_IF_DEL_TIMER +( +db_nÙi +-> +db_tim” +); + +301 + `GL_IF_DEL_IDLER +( +db_nÙi +-> +db_idl +); + +302 + `GL_FREE +( +ad +-> +db_nÙi_d +); + +303  +Œue +; + +304 + } +} + + @src/util/gl-debug.c + +18  + ~ + +19  + ~<¡ršg.h +> + +21  + ~"gl-debug.h +" + +23 #ifdeà +_USE_LOG_FILE_ + + +24  +FILE + * + gg_log_å + = +NULL +; + +25  + g_g_fže_·th +[12285] = { 0, }; + +28 #ifdeà +_PERFORMANCE_CHECK_ + + +29  + gg_time_u£c + = 0L; + + @src/util/gl-exif.c + +60 #ifdeà +_USE_ROTATE_BG + + +62  + ~<¡dlib.h +> + +63  + ~<¡ršg.h +> + +64  + ~ + +65  + ~ + +66  + ~"gl-exif.h +" + +67  + ~"gl-debug.h +" + +68  + ~"g®Ëry.h +" + +69  + ~"gl-fže-utž.h +" + +71  + #GL_EXIF_BUF_LEN_MAX + 65536L + + ) + +72  + #GL_EXIF_BUF_TIME_LEN_MAX + 20 + + ) + +73  + #GL_EXIF_DEFAULT_YEAR + 1900 + + ) + +75  + #GL_EXIF_SOI + 0xD8 + + ) + +76  + #GL_EXIF_TAG + 0xFF + + ) + +77  + #GL_EXIF_APP0 + 0xE0 + + ) + +78  + #GL_EXIF_APP1 + 0xE1 + + ) + +79  + #GL_EXIF_JFIF_00 + 0x00 + + ) + +80  + #GL_EXIF_JFIF_01 + 0x01 + + ) + +81  + #GL_EXIF_JFIF_02 + 0x02 + + ) + +83  + #GL_EXIF_IFD_DATA_FORMAT_UNSIGNED_BYTE + 1 + + ) + +84  + #GL_EXIF_IFD_DATA_FORMAT_ASCII_STRINGS + 1 + + ) + +85  + #GL_EXIF_IFD_DATA_FORMAT_UNSIGNED_SHORT + 2 + + ) + +86  + #GL_EXIF_IFD_DATA_FORMAT_UNSIGNED_LONG + 4 + + ) + +87  + #GL_EXIF_IFD_DATA_FORMAT_UNSIGNED_RATIONAL + 8 + + ) + +88  + #GL_EXIF_IFD_DATA_FORMAT_SIGNED_BYTE + 1 + + ) + +89  + #GL_EXIF_IFD_DATA_FORMAT_UNDEFINED + 1 + + ) + +90  + #GL_EXIF_IFD_DATA_FORMAT_SIGNED_SHORT + 2 + + ) + +91  + #GL_EXIF_IFD_DATA_FORMAT_SIGNED_LONG + 4 + + ) + +92  + #GL_EXIF_IFD_DATA_FORMAT_SIGNED_RATIONAL + 8 + + ) + +93  + #GL_EXIF_IFD_DATA_FORMAT_SIGNED_FLOAT + 4 + + ) + +94  + #GL_EXIF_IFD_DATA_FORMAT_DOUBLE_FLOAT + 8 + + ) + +96  + #GL_EXI_TMP_JPEG_FILE + +GL_DATA_FOLDER_PATH +"/.g®Ëry_tmp_wr™e_exif.jpg" + + ) + +99  + $__gl_exif_wr™e_1_by‹ +( +FILE + * +fd +,  +c +) + +101 ià( + `åutc +( +c +, +fd +) < 0) { + +102 + `gl_dbgE +("fputc failed!"); + +107 + } +} + +110  + $__gl_exif_»ad_1_by‹ +( +FILE + * +fd +) + +112  +c + = 0; + +115 +c + = + `g‘c +( +fd +); + +116 ià( +c + =ð +EOF +) { + +117 + `gl_dbgE +("Premature EOF in JPEG file!"); + +121  +c +; + +122 + } +} + +126  + $__gl_exif_»ad_2_by‹s +( +FILE + * +fd +, * +Ën +) + +128  +c1 + = 0; + +129  +c2 + = 0; + +132 +c1 + = + `g‘c +( +fd +); + +133 ià( +c1 + =ð +EOF +) { + +134 + `gl_dbgE +("Premature EOF in JPEG file!"); + +139 +c2 + = + `g‘c +( +fd +); + +140 ià( +c2 + =ð +EOF +) { + +141 + `gl_dbgE +("Premature EOF in JPEG file!"); + +145 ià( +Ën +) + +146 * +Ën + = ((() +c1 +è<< 8è+ (() +c2 +); + +149 + } +} + +152  + $__gl_exif_add_h—d” +( +FILE + * +fd +, * +ܛÁ©iÚ +) + +154 + `GL_CHECK_VAL +( +ܛÁ©iÚ +, -1); + +155 + `GL_CHECK_VAL +( +fd +, -1); + +156  +i + = 0; + +157  +»t + = -1; + +158 * +time_buf + = +NULL +; + +159  +off£t + = 0; + +162 cÚ¡  +exif1 +[] = { + +163 +GL_EXIF_TAG +, +GL_EXIF_SOI +, GL_EXIF_TAG, +GL_EXIF_APP1 + + +166  +i + = 0; i < 4; i++) { + +167 ià( + `__gl_exif_wr™e_1_by‹ +( +fd +, +exif1 +[ +i +]) < 0) + +168  +GL_EXIF_FAILED +; + +173 cÚ¡  +exif2 +[] = { 0x00, 0x42 }; + +174  +i + = 0; i < 2; i++) { + +175 ià( + `__gl_exif_wr™e_1_by‹ +( +fd +, +exif2 +[ +i +]) < 0) + +176  +GL_EXIF_FAILED +; + +180 cÚ¡  +exif3 +[] = { 0x45, 0x78, 0x69, 0x66, 0x00, 0x00 }; + +181  +i + = 0; i < 6; i++) { + +182 ià( + `__gl_exif_wr™e_1_by‹ +( +fd +, +exif3 +[ +i +]) < 0) + +183  +GL_EXIF_FAILED +; + +187 cÚ¡  +exif4 +[] = { 0x49, 0x49, 0x2A, 0x00 }; + +188  +i + = 0; i < 4; i++) { + +189 ià( + `__gl_exif_wr™e_1_by‹ +( +fd +, +exif4 +[ +i +]) < 0) + +190  +GL_EXIF_FAILED +; + +192 +off£t + += 4; + +195 cÚ¡  +exif5 +[] = { 0x08, 0x00, 0x00, 0x00 }; + +196  +i + = 0; i < 4; i++) { + +197 ià( + `__gl_exif_wr™e_1_by‹ +( +fd +, +exif5 +[ +i +]) < 0) + +198  +GL_EXIF_FAILED +; + +200 +off£t + += 4; + +205 cÚ¡  +exif6 +[] = { 0x02, 0x00 }; + +206  +i + = 0; i < 2; i++) { + +207 ià( + `__gl_exif_wr™e_1_by‹ +( +fd +, +exif6 +[ +i +]) < 0) + +208  +GL_EXIF_FAILED +; + +210 +off£t + += 2; + +213 cÚ¡  +exif7 +[] = { 0x12, 0x01 }; + +214  +i + = 0; i < 2; i++) { + +215 ià( + `__gl_exif_wr™e_1_by‹ +( +fd +, +exif7 +[ +i +]) < 0) + +216  +GL_EXIF_FAILED +; + +218 +off£t + += 2; + +220 + `gl_dbg +("Wr™e: %d", * +ܛÁ©iÚ +); + +221 cÚ¡  +exif8 +[] = { 0x03, 0x00, 0x01, 0x00, 0x00, 0x00 }; + +222  +i + = 0; i < 6; i++) { + +223 ià( + `__gl_exif_wr™e_1_by‹ +( +fd +, +exif8 +[ +i +]) < 0) + +224  +GL_EXIF_FAILED +; + +226 +off£t + += 6; + +229 ià( + `__gl_exif_wr™e_1_by‹ +( +fd +, ()(* +ܛÁ©iÚ +)) < 0) + +230  +GL_EXIF_FAILED +; + +232 cÚ¡  +exif9 +[] = { 0x00, 0x00, 0x00 }; + +233  +i + = 0; i < 3; i++) { + +234 ià( + `__gl_exif_wr™e_1_by‹ +( +fd +, +exif9 +[ +i +]) < 0) + +235  +GL_EXIF_FAILED +; + +237 +off£t + += 4; + +240 cÚ¡  +exif10 +[] = { 0x32, 0x01 }; + +241  +i + = 0; i < 2; i++) { + +242 ià( + `__gl_exif_wr™e_1_by‹ +( +fd +, +exif10 +[ +i +]) < 0) + +243  +GL_EXIF_FAILED +; + +245 +off£t + += 2; + +248 cÚ¡  +exif11 +[] = { 0x02, 0x00 }; + +249  +i + = 0; i < 2; i++) { + +250 ià( + `__gl_exif_wr™e_1_by‹ +( +fd +, +exif11 +[ +i +]) < 0) + +251  +GL_EXIF_FAILED +; + +253 +off£t + += 2; + +256 cÚ¡  +exif12 +[] = { 0x14, 0x00, 0x00, 0x00 }; + +257  +i + = 0; i < 4; i++) { + +258 ià( + `__gl_exif_wr™e_1_by‹ +( +fd +, +exif12 +[ +i +]) < 0) + +259  +GL_EXIF_FAILED +; + +261 +off£t + += 8; + +266 + `gl_dbg +("off£t: %2X", +off£t + + 8); + +268 ià( + `__gl_exif_wr™e_1_by‹ +( +fd +, ()( +off£t + + 4)) < 0) + +269  +GL_EXIF_FAILED +; + +271 cÚ¡  +exif13 +[] = { 0x00, 0x00, 0x00 }; + +272  +i + = 0; i < 3; i++) { + +273 ià( + `__gl_exif_wr™e_1_by‹ +( +fd +, +exif13 +[ +i +]) < 0) + +274  +GL_EXIF_FAILED +; + +280 cÚ¡  +exif14 +[] = { 0x00, 0x00, 0x00, 0x00 }; + +281  +i + = 0; i < 4; i++) { + +282 ià( + `__gl_exif_wr™e_1_by‹ +( +fd +, +exif14 +[ +i +]) < 0) + +283  +GL_EXIF_FAILED +; + +289 +time_t + +t +; + +290  +tm + +tms +; + +291  +tm + *tm; + +293 +t + = + `time + ( +NULL +); + +294 +tm + = + `loÿÉime_r +(& +t +, & +tms +); + +295 ià(! +tm +) { + +296 + `gl_dbgE +("Faildo‡llocate memory!"); + +297  +GL_EXIF_FAILED +; + +300 +time_buf + = (*) + `ÿÎoc +(1, +GL_EXIF_BUF_TIME_LEN_MAX +); + +301 ià(! +time_buf +) { + +302 + `gl_dbgE +("Faildo‡llocate memory!"); + +303  +GL_EXIF_FAILED +; + +305 + `¢´štf +( +time_buf +, +GL_EXIF_BUF_TIME_LEN_MAX +, + +307 +tm +-> +tm_y—r + + +GL_EXIF_DEFAULT_YEAR +,m-> +tm_mÚ + + 1, + +308 +tm +-> +tm_mday +,m-> +tm_hour +,m-> +tm_mš +,m-> +tm_£c +); + +310 + `gl_dbg +("time_buf: %s", +time_buf +); + +311 ià( + `fwr™e +( +time_buf +, 1, +GL_EXIF_BUF_TIME_LEN_MAX +, +fd +) != GL_EXIF_BUF_TIME_LEN_MAX) { + +312 + `gl_dbgW +("Write size‡re diff!"); + +313  +GL_EXIF_FAILED +; + +316 +»t + = 0; + +318 +GL_EXIF_FAILED +: + +320 + `gl_dbg +("All done"); + +321 + `GL_FREEIF +( +time_buf +); + +322  +»t +; + +323 + } +} + +326  + $__gl_exif_add_exif_to_jfif +(* +fže_·th +, * +ܛÁ©iÚ +) + +328 + `GL_CHECK_VAL +( +ܛÁ©iÚ +, -1); + +329 + `GL_CHECK_VAL +( +fže_·th +, -1); + +330  +tmp +[ +GL_EXIF_BUF_LEN_MAX +] = { 0, }; + +331 +FILE + * +fd + = +NULL +; + +332  +»t + = -1; + +334 ià(( +fd + = + `fݒ +( +fže_·th +, "rb+")è=ð +NULL +) { + +335 + `gl_sdbgE +("Cª'ˆÝ’ %s!", +fže_·th +); + +339 * +tmp_fže + = +GL_EXI_TMP_JPEG_FILE +; + +340 +FILE + * +tmp_fd + = +NULL +; + +341 ià(( +tmp_fd + = + `fݒ +( +tmp_fže +, "wb+")è=ð +NULL +) { + +342 + `gl_dbgE +("Cª'ˆÝ’ %s!", +tmp_fže +); + +343  +GL_EXIF_FAILED +; + +347 ià( + `__gl_exif_add_h—d” +( +tmp_fd +, +ܛÁ©iÚ +) < 0) + +348  +GL_EXIF_FAILED +; + +350 +size_t + +r_size + = 0; + +352 +r_size + = + `ä—d +( +tmp +, (), 20, +fd +); + +354 + `mem£t +( +tmp +, 0x00, +GL_EXIF_BUF_LEN_MAX +); + +356 ( +r_size + = + `ä—d +( +tmp +, 1, Ñmp), +fd +)) > 0) { + +357 + `gl_dbg +("r_size: %ld", +r_size +); + +358 ià( + `fwr™e +( +tmp +, 1, +r_size +, +tmp_fd +) !=„_size) + +359 + `gl_dbgW +("Write‡nd„ead size‡re diff!"); + +361 + `mem£t +( +tmp +, 0x00, +GL_EXIF_BUF_LEN_MAX +); + +364 + `fþo£ +( +fd +); + +365 +fd + = + `fݒ +( +fže_·th +, "wb"); + +366 ià(! +fd +) { + +367 + `gl_sdbgE +("E¼Ü c»©šg fž%s!", +fže_·th +); + +368  +GL_EXIF_FAILED +; + +371 + `mem£t +( +tmp +, 0x00, +GL_EXIF_BUF_LEN_MAX +); + +373 + `f£ek +( +tmp_fd +, 0, +SEEK_SET +); + +374 ( +r_size + = + `ä—d +( +tmp +, 1, Ñmp), +tmp_fd +)) > 0) { + +375 + `gl_dbg +("r_size: %ld", +r_size +); + +376 ià( + `fwr™e +( +tmp +, 1, +r_size +, +fd +) !=„_size) + +377 + `gl_dbgW +("Write‡nd„ead size‡re diff!"); + +379 + `mem£t +( +tmp +, 0x00, +GL_EXIF_BUF_LEN_MAX +); + +382 +»t + = 0; + +384 +GL_EXIF_FAILED +: + +386 ià( +fd +) + +387 + `fþo£ +( +fd +); + +388 ià( +tmp_fd +) + +389 + `fþo£ +( +tmp_fd +); + +392 ià(! + `gl_fže_uƚk +( +tmp_fže +)) + +393 + `gl_dbgE +("Delete file failed"); + +395 + `gl_dbg +("All done"); + +396  +»t +; + +397 + } +} + +402  + $__gl_exif_add_ܛÁ©iÚ_g +(* +fže_·th +, + +403 * +ܛÁ©iÚ +) { + +405 + `GL_CHECK_VAL +( +ܛÁ©iÚ +, -1); + +406 + `GL_CHECK_VAL +( +fže_·th +, -1); + +407  +tmp +[ +GL_EXIF_BUF_LEN_MAX +] = { 0, }; + +408 +FILE + * +fd + = +NULL +; + +409  +»t + = -1; + +410  +tmp_exif + = -1; + +411  +i + = 0; + +412  +Ëngth + = 0; + +413 +boÞ + +is_mÙÜÞa + = +çl£ +; + +414  +off£t + = 0; + +415 +size_t + +r_size + = 0; + +416 cÚ¡  +ifd_d©a_fÜm© +[13] = { + +419 +GL_EXIF_IFD_DATA_FORMAT_UNSIGNED_BYTE +, + +420 +GL_EXIF_IFD_DATA_FORMAT_ASCII_STRINGS +, + +421 +GL_EXIF_IFD_DATA_FORMAT_UNSIGNED_SHORT +, + +422 +GL_EXIF_IFD_DATA_FORMAT_UNSIGNED_LONG +, + +423 +GL_EXIF_IFD_DATA_FORMAT_UNSIGNED_RATIONAL +, + +424 +GL_EXIF_IFD_DATA_FORMAT_SIGNED_BYTE +, + +425 +GL_EXIF_IFD_DATA_FORMAT_UNDEFINED +, + +426 +GL_EXIF_IFD_DATA_FORMAT_SIGNED_SHORT +, + +427 +GL_EXIF_IFD_DATA_FORMAT_SIGNED_LONG +, + +428 +GL_EXIF_IFD_DATA_FORMAT_SIGNED_RATIONAL +, + +429 +GL_EXIF_IFD_DATA_FORMAT_SIGNED_FLOAT +, + +430 +GL_EXIF_IFD_DATA_FORMAT_DOUBLE_FLOAT + + +434 ià(( +fd + = + `fݒ +( +fže_·th +, "rb+")è=ð +NULL +) { + +435 + `gl_sdbgE +("Cª'ˆÝ’ %s!", +fže_·th +); + +439 * +tmp_fže + = +GL_EXI_TMP_JPEG_FILE +; + +440 +FILE + * +tmp_fd + = +NULL +; + +441 ià(( +tmp_fd + = + `fݒ +( +tmp_fže +, "wb+")è=ð +NULL +) { + +442 + `gl_dbgE +("Cª'ˆÝ’ %s!", +tmp_fže +); + +443  +GL_EXIF_FAILED +; + +446 +boÞ + +b_g_ff + = +çl£ +; + +448 +tmp_exif + = + `__gl_exif_»ad_1_by‹ +( +fd +); + +449 ià( +tmp_exif + < 0) + +450  +GL_EXIF_FAILED +; + +453 ià( + `__gl_exif_wr™e_1_by‹ +( +tmp_fd +, +tmp_exif +) < 0) + +454  +GL_EXIF_FAILED +; + +456 +tmp +[0] = () +tmp_exif +; + +458 + `gl_dbg +("- %02X", +tmp +[0]); + +459 ià(! +b_g_ff +) { + +461 ià( +tmp +[0] =ð +GL_EXIF_TAG +) { + +462 + `gl_dbgW +("0xFF!"); + +463 +b_g_ff + = +Œue +; + +469 ià( +tmp +[0] =ð +GL_EXIF_APP1 +) { + +470 + `gl_dbgW +("Exif in APP1!"); + +473 + `gl_dbgW +("0x%02X!", +tmp +[0]); + +474 +b_g_ff + = +çl£ +; + +479 ià( + `__gl_exif_»ad_2_by‹s +( +fd +, & +Ëngth +) < 0) + +480  +GL_EXIF_FAILED +; + +481 + `gl_dbg +("Ëngth: %d", +Ëngth +); + +484 ià( +Ëngth + < 8) { + +485 + `gl_dbgE +("length < 8"); + +486  +GL_EXIF_FAILED +; + +489 +Ëngth + += 12; + +490 + `gl_dbgW +("modif›d†’gth: %d", +Ëngth +); + +491 +tmp +[0] = ( +Ëngth + >> 8)& 0xff ; + +492 +tmp +[1] = +Ëngth + & 0xff ; + +493  +i + = 0; i < 2; i++) { + +494 ià( + `__gl_exif_wr™e_1_by‹ +( +tmp_fd +, +tmp +[ +i +]) < 0) + +495  +GL_EXIF_FAILED +; + +498  +i + = 0; i < 6; i++) { + +499 +tmp_exif + = + `__gl_exif_»ad_1_by‹ +( +fd +); + +500 ià( +tmp_exif + < 0) + +501  +GL_EXIF_FAILED +; + +503 +tmp +[ +i +] = () +tmp_exif +; + +504 + `gl_dbg +("- %02X", +tmp +[ +i +]); + +505 ià( + `__gl_exif_wr™e_1_by‹ +( +tmp_fd +, +tmp +[ +i +]) < 0) + +506  +GL_EXIF_FAILED +; + +508 ià( +tmp +[0] == 0x45 &&mp[1] == 0x78 &&mp[2] == 0x69 &&mp[3] == 0x66 && + +509 +tmp +[4] == 0x00 &&mp[5] == 0x00) { + +510 + `gl_dbgW +("Met Exif!"); + +512 + `gl_dbgW +("Not met Exif!"); + +513  +GL_EXIF_FAILED +; + +516  +i + = 0; i < 4; i++) { + +517 +tmp_exif + = + `__gl_exif_»ad_1_by‹ +( +fd +); + +518 ià( +tmp_exif + < 0) + +519  +GL_EXIF_FAILED +; + +520 +tmp +[ +i +] = () +tmp_exif +; + +521 ià( + `__gl_exif_wr™e_1_by‹ +( +tmp_fd +, +tmp +[ +i +]) < 0) + +522  +GL_EXIF_FAILED +; + +526 ià( +tmp +[0] == 0x49 &&mp[1] == 0x49 &&mp[2] == 0x2A && + +527 +tmp +[3] == 0x00) { + +528 + `gl_dbg +("Intel"); + +529 +is_mÙÜÞa + = +çl£ +; + +530 } ià( +tmp +[0] == 0x4D &&mp[1] == 0x4D &&mp[2] == 0x00 && + +531 +tmp +[3] == 0x2A) { + +532 + `gl_dbg +("Motorola"); + +533 +is_mÙÜÞa + = +Œue +; + +535  +GL_EXIF_FAILED +; + +538  +i + = 0; i < 4; i++) { + +539 +tmp_exif + = + `__gl_exif_»ad_1_by‹ +( +fd +); + +540 ià( +tmp_exif + < 0) + +541  +GL_EXIF_FAILED +; + +543 +tmp +[ +i +] = () +tmp_exif +; + +544 + `gl_dbg +("- %02X", +tmp +[ +i +]); + +545 ià( + `__gl_exif_wr™e_1_by‹ +( +tmp_fd +, +tmp +[ +i +]) < 0) + +546  +GL_EXIF_FAILED +; + +550 ià( +is_mÙÜÞa +) { + +551 ià( +tmp +[0] != 0 &&mp[1] != 0) + +552  +GL_EXIF_FAILED +; + +553 +off£t + = +tmp +[2]; + +554 +off£t + <<= 8; + +555 +off£t + +ð +tmp +[3]; + +557 ià( +tmp +[3] != 0 &&mp[2] != 0) + +558  +GL_EXIF_FAILED +; + +559 +off£t + = +tmp +[1]; + +560 +off£t + <<= 8; + +561 +off£t + +ð +tmp +[0]; + +563 + `gl_dbg +("off£t: %d", +off£t +); + +565 ià( +off£t + > 8) { + +566  +i + = 0; i < ( +off£t + - 8); i++) { + +567 +tmp_exif + = + `__gl_exif_»ad_1_by‹ +( +fd +); + +568 ià( +tmp_exif + < 0) + +569  +GL_EXIF_FAILED +; + +571 +tmp +[ +i +] = () +tmp_exif +; + +572 + `gl_dbg +("- %02X", +tmp +[ +i +]); + +573 ià( + `__gl_exif_wr™e_1_by‹ +( +tmp_fd +, +tmp +[ +i +]) < 0) + +574  +GL_EXIF_FAILED +; + +580  +gs_út + = 0; + +581  +i + = 0; i < 2; i++) { + +582 +tmp_exif + = + `__gl_exif_»ad_1_by‹ +( +fd +); + +583 ià( +tmp_exif + < 0) + +584  +GL_EXIF_FAILED +; + +586 +tmp +[ +i +] = () +tmp_exif +; + +588 ià( +is_mÙÜÞa +) { + +589 +gs_út + = +tmp +[0]; + +590 +gs_út + <<= 8; + +591 +gs_út + +ð +tmp +[1]; + +593 +gs_út + = +tmp +[1]; + +594 +gs_út + <<= 8; + +595 +gs_út + +ð +tmp +[0]; + +597 + `gl_dbg +("gs_út: %d", +gs_út +); + +599 +gs_út + += 1; + +600 + `gl_dbg +("modif›dags_út: %d", +gs_út +); + +601 ià( +is_mÙÜÞa +) { + +602 +tmp +[0] = ( +gs_út + >> 8) & 0xff; + +603 +tmp +[1] = +gs_út + & 0xff; + +605 +tmp +[0] = +gs_út + & 0xff; + +606 +tmp +[1] = ( +gs_út + >> 8) & 0xff; + +608  +i + = 0; i < 2; i++) { + +609 + `gl_dbg +("modif›d- %02X", +tmp +[ +i +]); + +610 ià( + `__gl_exif_wr™e_1_by‹ +( +tmp_fd +, +tmp +[ +i +]) < 0) + +611  +GL_EXIF_FAILED +; + +615  +g_num + = 0; + +616  +ܛÁ©iÚ_g +[12] = { 0, }; + +617 +boÞ + +b_found_pos™iÚ + = +çl£ +; + +618  +j + = 0; + +619  +d©a_ty³ + = 0; + +620  +un™_num + = 0; + +621  +d©a_Ëngth + = 0; + +622  +off£t_v®ue + = 0; + +624 ià( +is_mÙÜÞa +) { + +625 +ܛÁ©iÚ_g +[0] = 0x01; + +626 +ܛÁ©iÚ_g +[1] = 0x12; + +628 +ܛÁ©iÚ_g +[2] = 0x00; + +629 +ܛÁ©iÚ_g +[3] = 0x03; + +631 +ܛÁ©iÚ_g +[4] = 0x00; + +632 +ܛÁ©iÚ_g +[5] = 0x00; + +633 +ܛÁ©iÚ_g +[6] = 0x00; + +634 +ܛÁ©iÚ_g +[7] = 0x01; + +636 +ܛÁ©iÚ_g +[8] = 0x00; + +637 +ܛÁ©iÚ_g +[9] = ()(* +ܛÁ©iÚ +); + +638 +ܛÁ©iÚ_g +[10] = 0x00; + +639 +ܛÁ©iÚ_g +[11] = 0x00; + +642 +ܛÁ©iÚ_g +[0] = 0x12; + +643 +ܛÁ©iÚ_g +[1] = 0x01; + +644 +ܛÁ©iÚ_g +[2] = 0x03; + +645 +ܛÁ©iÚ_g +[3] = 0x00; + +646 +ܛÁ©iÚ_g +[4] = 0x01; + +647 +ܛÁ©iÚ_g +[5] = 0x00; + +648 +ܛÁ©iÚ_g +[6] = 0x00; + +649 +ܛÁ©iÚ_g +[7] = 0x00; + +650 +ܛÁ©iÚ_g +[8] = ()(* +ܛÁ©iÚ +); + +651 +ܛÁ©iÚ_g +[9] = 0x00; + +652 +ܛÁ©iÚ_g +[10] = 0x00; + +653 +ܛÁ©iÚ_g +[11] = 0x00; + +656 ià( +gs_út + == 1) { + +657  +j + = 0; j < 12 ;j++) { + +658 + `gl_dbg +("ܛÁ©iÚ_g- %02X", +ܛÁ©iÚ_g +[ +j +]); + +659 ià( + `__gl_exif_wr™e_1_by‹ +( +tmp_fd +, +ܛÁ©iÚ_g +[ +j +]) < 0) + +660  +GL_EXIF_FAILED +; + +664 ià(-- +gs_út + == 0) { + +669  +i + = 0; i < 12; i++) { + +670 +tmp_exif + = + `__gl_exif_»ad_1_by‹ +( +fd +); + +671 ià( +tmp_exif + < 0) + +672  +GL_EXIF_FAILED +; + +674 +tmp +[ +i +] = () +tmp_exif +; + +677 ià( +is_mÙÜÞa +) { + +678 +g_num + = +tmp +[0]; + +679 +g_num + <<= 8; + +680 +g_num + +ð +tmp +[1]; + +682 +g_num + = +tmp +[1]; + +683 +g_num + <<= 8; + +684 +g_num + +ð +tmp +[0]; + +686 + `gl_dbgW +("g‚um %02X!" , +g_num +); + +688 ià( +g_num + < 0x0112) { + +690 } ià( +g_num + > 0x0112) { + +691 ià(! +b_found_pos™iÚ +) { + +692  +j + = 0; j < 12 ;j++) { + +693 + `gl_dbg +("ܛÁ©iÚ_g- %02X", +ܛÁ©iÚ_g +[ +j +]); + +694 ià( + `__gl_exif_wr™e_1_by‹ +( +tmp_fd +, +ܛÁ©iÚ_g +[ +j +]) < 0) + +695  +GL_EXIF_FAILED +; + +697 +b_found_pos™iÚ + = +Œue +; + +699 ià( +is_mÙÜÞa +) { + +700 +d©a_ty³ + = +tmp +[2]; + +701 +d©a_ty³ + <<= 8; + +702 +d©a_ty³ + +ð +tmp +[3]; + +704 +un™_num + = +tmp +[4]; + +705 +un™_num + <<= 8; + +706 +un™_num + +ð +tmp +[5]; + +707 +un™_num + <<= 8; + +708 +un™_num + +ð +tmp +[6]; + +709 +un™_num + <<= 8; + +710 +un™_num + +ð +tmp +[7]; + +712 +d©a_ty³ + = +tmp +[3]; + +713 +d©a_ty³ + <<= 8; + +714 +d©a_ty³ + +ð +tmp +[2]; + +716 +un™_num + = +tmp +[7]; + +717 +un™_num + <<= 8; + +718 +un™_num + +ð +tmp +[6]; + +719 +un™_num + <<= 8; + +720 +un™_num + +ð +tmp +[5]; + +721 +un™_num + <<= 8; + +722 +un™_num + +ð +tmp +[4]; + +724 + `gl_dbgW +("d©a_ty³ %02X!" , +d©a_ty³ +); + +725 + `gl_dbgW +("un™_num %02X!" , +un™_num +); + +726 ià(( +d©a_ty³ + < 1) ||(data_type > 12)) { + +727 + `gl_dbgE +("Wrong dataype!"); + +728  +GL_EXIF_FAILED +; + +731 +d©a_Ëngth + = +ifd_d©a_fÜm© +[ +d©a_ty³ +] * +un™_num +; + +732 + `gl_dbgW +("d©a_Ëngth %02X!" , +d©a_Ëngth +); + +734 ià( +d©a_Ëngth + > 4) { + +735 ià( +is_mÙÜÞa +) { + +736 +off£t_v®ue + = +tmp +[8]; + +737 +off£t_v®ue + <<= 8; + +738 +off£t_v®ue + +ð +tmp +[9]; + +739 +off£t_v®ue + <<= 8; + +740 +off£t_v®ue + +ð +tmp +[10]; + +741 +off£t_v®ue + <<= 8; + +742 +off£t_v®ue + +ð +tmp +[11]; + +743 + `gl_dbgW +("off£t_v®u%02X!" , +off£t_v®ue +); + +745 +off£t_v®ue + += 12; + +746 + `gl_dbgW +("chªged off£t_v®u%02X!" , +off£t_v®ue +); + +747 +tmp +[8] = ( +off£t_v®ue + >> 24) & 0xff; + +748 +tmp +[9] = ( +off£t_v®ue + >> 16) & 0xff; + +749 +tmp +[10] = ( +off£t_v®ue + >> 8) & 0xff; + +750 +tmp +[11] = +off£t_v®ue + & 0xff; + +751 + `gl_dbg +("tmp[8] %02X!" , +tmp +[8]); + +752 + `gl_dbg +("tmp[9] %02X!" , +tmp +[9]); + +753 + `gl_dbg +("tmp[10] %02X!" , +tmp +[10]); + +754 + `gl_dbg +("tmp[11] %02X!" , +tmp +[11]); + +756 +off£t_v®ue + = +tmp +[11]; + +757 +off£t_v®ue + <<= 8; + +758 +off£t_v®ue + +ð +tmp +[10]; + +759 +off£t_v®ue + <<= 8; + +760 +off£t_v®ue + +ð +tmp +[9]; + +761 +off£t_v®ue + <<= 8; + +762 +off£t_v®ue + +ð +tmp +[8]; + +763 + `gl_dbgW +("off£t_v®u%02X!" , +off£t_v®ue +); + +765 +off£t_v®ue + += 12; + +766 + `gl_dbgW +("chªged off£t_v®u%02X!" , +off£t_v®ue +); + +768 +tmp +[11] = ( +off£t_v®ue + >> 24) & 0xff; + +769 +tmp +[10] = ( +off£t_v®ue + >> 16) & 0xff; + +770 +tmp +[9] = ( +off£t_v®ue + >> 8) & 0xff; + +771 +tmp +[8] = +off£t_v®ue + & 0xff; + +772 + `gl_dbg +("tmp[8] %02X!" , +tmp +[8]); + +773 + `gl_dbg +("tmp[9] %02X!" , +tmp +[9]); + +774 + `gl_dbg +("tmp[10] %02X!" , +tmp +[10]); + +775 + `gl_dbg +("tmp[11] %02X!" , +tmp +[11]); + +782  +i + = 0; i < 12 ;i++) { + +783 + `gl_dbg +("- %02X", +tmp +[ +i +]); + +784 ià( + `__gl_exif_wr™e_1_by‹ +( +tmp_fd +, +tmp +[ +i +]) < 0) + +785  +GL_EXIF_FAILED +; + +788 + `mem£t +( +tmp +, 0x00, 12); + +791 + `mem£t +( +tmp +, 0x00, +GL_EXIF_BUF_LEN_MAX +); + +793 ( +r_size + = + `ä—d +( +tmp +, 1, Ñmp), +fd +)) > 0) { + +794 + `gl_dbg +("r_size: %ld", +r_size +); + +795 ià( + `fwr™e +( +tmp +, 1, +r_size +, +tmp_fd +) !=„_size) + +796 + `gl_dbgW +("Write‡nd„ead size‡re diff!"); + +798 + `mem£t +( +tmp +, 0x00, +GL_EXIF_BUF_LEN_MAX +); + +800 + `fþo£ +( +fd +); + +801 +fd + = +NULL +; + +802 +fd + = + `fݒ +( +fže_·th +, "wb"); + +803 ià(! +fd +) { + +804 + `gl_sdbgE +("E¼Ü c»©šg fž%s!", +fže_·th +); + +805  +GL_EXIF_FAILED +; + +808 + `mem£t +( +tmp +, 0x00, +GL_EXIF_BUF_LEN_MAX +); + +810 + `f£ek +( +tmp_fd +, 0, +SEEK_SET +); + +811 ( +r_size + = + `ä—d +( +tmp +, 1, Ñmp), +tmp_fd +)) > 0) { + +812 + `gl_dbg +("r_size: %ld", +r_size +); + +813 ià( + `fwr™e +( +tmp +, 1, +r_size +, +fd +) !=„_size) + +814 + `gl_dbgW +("Write‡nd„ead size‡re diff!"); + +815 + `mem£t +( +tmp +, 0x00, +GL_EXIF_BUF_LEN_MAX +); + +818 +»t + = 0; + +820 +GL_EXIF_FAILED +: + +822 ià( +fd +) { + +823 + `fþo£ +( +fd +); + +824 +fd + = +NULL +; + +827 ià( +tmp_fd +) { + +828 + `fþo£ +( +tmp_fd +); + +829 +tmp_fd + = +NULL +; + +833 ià(! + `gl_fže_uƚk +( +tmp_fže +)) + +834 + `gl_dbgE +("Delete file failed"); + +836 + `gl_dbg +("All done"); + +837  +»t +; + +838 + } +} + +840  + $__gl_exif_rw_jfif +( +FILE + * +fd +, * +fže_·th +, + +841 * +ܛÁ©iÚ +, +boÞ + +b_wr™e +) + +843 + `GL_CHECK_VAL +( +fd +, -1); + +844 + `GL_CHECK_VAL +( +fže_·th +, -1); + +845 + `GL_CHECK_VAL +( +ܛÁ©iÚ +, -1); + +846  +tmp +[ +GL_EXIF_BUF_LEN_MAX +] = { 0, }; + +847  +i + = 0; + +848  +Ëngth + = 0; + +849  +tmp_exif + = -1; + +850 +boÞ + +is_mÙÜÞa + = +çl£ +; + +851  +off£t + = 0; + +852  +»t + = -1; + +855 ià( + `__gl_exif_»ad_2_by‹s +( +fd +, & +Ëngth +) < 0) + +856  +GL_EXIF_FAILED +; + +857 + `gl_dbg +("Ëngth: %d", +Ëngth +); + +859  +i + = 0; i < 5; i++) { + +860 +tmp_exif + = + `__gl_exif_»ad_1_by‹ +( +fd +); + +861 ià( +tmp_exif + < 0) + +862  +GL_EXIF_FAILED +; + +863 +tmp +[ +i +] = () +tmp_exif +; + +867 ià( +tmp +[0] != 0x4A ||mp[1] != 0x46 ||mp[2] != 0x49 || + +868 +tmp +[3] != 0x46 ||mp[4] != 0x00) { + +869 + `gl_dbgE +("Not met Jfif!"); + +870  +GL_EXIF_FAILED +; + +873  +i + = 0; i < 2; i++) { + +874 +tmp_exif + = + `__gl_exif_»ad_1_by‹ +( +fd +); + +875 ià( +tmp_exif + < 0) + +876  +GL_EXIF_FAILED +; + +877 +tmp +[ +i +] = () +tmp_exif +; + +881 ià( +tmp +[0] =ð0x01 &&mp[1] =ð +GL_EXIF_JFIF_00 +) { + +882 + `gl_dbg +("Jfif 1.00"); + +883 } ià( +tmp +[0] =ð0x01 &&mp[1] =ð +GL_EXIF_JFIF_01 +) { + +884 + `gl_dbg +("Jfif 1.01"); + +885 } ià( +tmp +[0] =ð0x01 &&mp[1] =ð +GL_EXIF_JFIF_02 +) { + +886 + `gl_dbg +("Jfif 1.02"); + +888 + `gl_dbgE +("Unknow Jfiàv”siÚ[%d.%d]!", +tmp +[0],mp[1]); + +889  +GL_EXIF_FAILED +; + +896 +boÞ + +b_g_ff + = +çl£ +; + +898 +tmp_exif + = + `__gl_exif_»ad_1_by‹ +( +fd +); + +899 ià( +tmp_exif + < 0) + +900  +GL_EXIF_FAILED +; + +902 +tmp +[0] = () +tmp_exif +; + +904 + `gl_dbg +("- %02X", +tmp +[0]); + +905 ià(! +b_g_ff +) { + +907 ià( +tmp +[0] =ð +GL_EXIF_TAG +) { + +908 + `gl_dbgW +("0xFF!"); + +909 +b_g_ff + = +Œue +; + +915 ià( +tmp +[0] =ð +GL_EXIF_APP1 +) { + +916 + `gl_dbgW +("Exif in APP1!"); + +920 + `gl_dbgW +("No Exif in APP1!"); + +923 + `fþo£ +( +fd +); + +924 ià(! +b_wr™e +) { + +926 * +ܛÁ©iÚ + = 1; + +929  + `__gl_exif_add_exif_to_jfif +( +fže_·th +, +ܛÁ©iÚ +); + +934  +i + = 0; i < 6; i++) { + +935 +tmp_exif + = + `__gl_exif_»ad_1_by‹ +( +fd +); + +936 ià( +tmp_exif + < 0) { + +937 + `gl_dbgW +("Not met Exif!"); + +938  +GL_EXIF_FAILED +; + +941 +tmp +[ +i +] = () +tmp_exif +; + +942 + `gl_dbg +("- %02X", +tmp +[ +i +]); + +944 ià( +tmp +[0] == 0x45 &&mp[1] == 0x78 &&mp[2] == 0x69 &&mp[3] == 0x66 && + +945 +tmp +[4] == 0x00 &&mp[5] == 0x00) { + +946 + `gl_dbgW +("Met Exif!"); + +949 + `gl_dbg +("Not met Exif!"); + +950 ià( + `f£ek +( +fd +, -5, +SEEK_CUR +) < 0) { + +951 + `gl_dbgE +("fseek failed!"); + +952  +GL_EXIF_FAILED +; + +959  +i + = 0; i < 4; i++) { + +960 +tmp_exif + = + `__gl_exif_»ad_1_by‹ +( +fd +); + +961 ià( +tmp_exif + < 0) + +962  +GL_EXIF_FAILED +; + +963 +tmp +[ +i +] = () +tmp_exif +; + +967 ià( +tmp +[0] == 0x49 &&mp[1] == 0x49 &&mp[2] == 0x2A && + +968 +tmp +[3] == 0x00) { + +969 + `gl_dbg +("Intel"); + +970 +is_mÙÜÞa + = +çl£ +; + +971 } ià( +tmp +[0] == 0x4D &&mp[1] == 0x4D &&mp[2] == 0x00 && + +972 +tmp +[3] == 0x2A) { + +973 + `gl_dbg +("Motorola"); + +974 +is_mÙÜÞa + = +Œue +; + +976  +GL_EXIF_FAILED +; + +979  +i + = 0; i < 4; i++) { + +980 +tmp_exif + = + `__gl_exif_»ad_1_by‹ +( +fd +); + +981 ià( +tmp_exif + < 0) + +982  +GL_EXIF_FAILED +; + +984 +tmp +[ +i +] = () +tmp_exif +; + +985 + `gl_dbg +("- %02X", +tmp +[ +i +]); + +989 ià( +is_mÙÜÞa +) { + +990 ià( +tmp +[0] != 0 &&mp[1] != 0) + +991  +GL_EXIF_FAILED +; + +992 +off£t + = +tmp +[2]; + +993 +off£t + <<= 8; + +994 +off£t + +ð +tmp +[3]; + +996 ià( +tmp +[3] != 0 &&mp[2] != 0) + +997  +GL_EXIF_FAILED +; + +998 +off£t + = +tmp +[1]; + +999 +off£t + <<= 8; + +1000 +off£t + +ð +tmp +[0]; + +1002 + `gl_dbg +("off£t: %d", +off£t +); + +1006  +gs_út + = 0; + +1007  +i + = 0; i < 2; i++) { + +1008 +tmp_exif + = + `__gl_exif_»ad_1_by‹ +( +fd +); + +1009 ià( +tmp_exif + < 0) + +1010  +GL_EXIF_FAILED +; + +1012 +tmp +[ +i +] = () +tmp_exif +; + +1014 ià( +is_mÙÜÞa +) { + +1015 +gs_út + = +tmp +[0]; + +1016 +gs_út + <<= 8; + +1017 +gs_út + +ð +tmp +[1]; + +1019 +gs_út + = +tmp +[1]; + +1020 +gs_út + <<= 8; + +1021 +gs_út + +ð +tmp +[0]; + +1023 + `gl_dbg +("gs_út: %d", +gs_út +); + +1024 ià( +gs_út + == 0) { + +1025 + `gl_dbgE +("tags_cnt == 0,no found orientationag!"); + +1026 ià( +b_wr™e +) { + +1027 + `gl_dbgW +("to‡dd‡n orientationag!"); + +1028 + `fþo£ +( +fd +); + +1029 +fd + = +NULL +; + +1030  + `__gl_exif_add_ܛÁ©iÚ_g +( +fže_·th +, +ܛÁ©iÚ +); + +1034 * +ܛÁ©iÚ + = 1; + +1035 +»t + = 0; + +1037  +GL_EXIF_FAILED +; + +1041  +g_num + = 0; + +1044  +i + = 0; i < 12; i++) { + +1045 +tmp_exif + = + `__gl_exif_»ad_1_by‹ +( +fd +); + +1046 ià( +tmp_exif + < 0) + +1047  +GL_EXIF_FAILED +; + +1049 +tmp +[ +i +] = () +tmp_exif +; + +1052 ià( +is_mÙÜÞa +) { + +1053 +g_num + = +tmp +[0]; + +1054 +g_num + <<= 8; + +1055 +g_num + +ð +tmp +[1]; + +1057 +g_num + = +tmp +[1]; + +1058 +g_num + <<= 8; + +1059 +g_num + +ð +tmp +[0]; + +1062 ià( +g_num + == 0x0112) { + +1063 + `gl_dbgW +("Found orientationag!"); + +1066 ià(-- +gs_út + == 0) { + +1067 + `gl_dbgW +("tags_cnt == 0,‚o found orientationag!"); + +1068 ià( +b_wr™e +) { + +1069 + `gl_dbgW +("to‡dd‡n orientationag!"); + +1070 + `fþo£ +( +fd +); + +1071 +fd + = +NULL +; + +1072  + `__gl_exif_add_ܛÁ©iÚ_g +( +fže_·th +, +ܛÁ©iÚ +); + +1076 * +ܛÁ©iÚ + = 1; + +1077 +»t + = 0; + +1079  +GL_EXIF_FAILED +; + +1085 ià( +b_wr™e +) { + +1086 + `gl_dbg +("Wr™e: %d", * +ܛÁ©iÚ +); + +1088 ià( +is_mÙÜÞa +) + +1089 +tmp +[9] = ()(* +ܛÁ©iÚ +); + +1091 +tmp +[8] = ()(* +ܛÁ©iÚ +); + +1094 ià( + `f£ek +( +fd +, -12, +SEEK_CUR +) < 0) { + +1095 + `gl_dbgE +("fseek failed!"); + +1096  +GL_EXIF_FAILED +; + +1098 + `fwr™e +( +tmp +, 1, 10, +fd +); + +1101 ià( +is_mÙÜÞa +) { + +1102 ià( +tmp +[8] != 0) { + +1103 + `gl_dbgE +("tmp[8] != 0"); + +1104  +GL_EXIF_FAILED +; + +1106 * +ܛÁ©iÚ + = () +tmp +[9]; + +1108 ià( +tmp +[9] != 0) { + +1109 + `gl_dbgE +("tmp[9] != 0"); + +1110  +GL_EXIF_FAILED +; + +1112 * +ܛÁ©iÚ + = () +tmp +[8]; + +1114 ià(* +ܛÁ©iÚ + > 8) { + +1115 + `gl_dbgE +("*orient > 8"); + +1116  +GL_EXIF_FAILED +; + +1118 + `gl_dbg +("R—d: %d", * +ܛÁ©iÚ +); + +1121 +»t + = 0; + +1123 +GL_EXIF_FAILED +: + +1125 + `fþo£ +( +fd +); + +1126 + `gl_dbg +("All done"); + +1127  +»t +; + +1128 + } +} + +1129 +boÞ + + $_gl_exif_check_img_ty³ +(* +fže_·th +) + +1131 + `GL_CHECK_VAL +( +fže_·th +, -1); + +1132  +tmp_exif + = -1; + +1133  +i + = 0; + +1134  +exif_d©a +[4] = { 0, }; + +1135 +FILE + * +fd + = +NULL +; + +1136 +boÞ + +»t + = +çl£ +; + +1138 ià(( +fd + = + `fݒ +( +fže_·th +, "rb")è=ð +NULL +) { + +1139 + `gl_sdbgE +("Cª'ˆÝ’ %s!", +fže_·th +); + +1145  +i + = 0; i < 4; i++) { + +1146 +tmp_exif + = + `__gl_exif_»ad_1_by‹ +( +fd +); + +1147 ià( +tmp_exif + < 0) + +1148  +GL_EXIF_FAILED +; + +1150 +exif_d©a +[ +i +] = () +tmp_exif +; + +1153 ià( +exif_d©a +[0] =ð +GL_EXIF_TAG + &&ƒxif_d©a[1] =ð +GL_EXIF_SOI +) { + +1154 + `gl_dbg +("JPEG file"); + +1156 + `gl_dbgE +("Not‡ JPEG file!"); + +1157  +GL_EXIF_FAILED +; + +1160 ià( +exif_d©a +[2] =ð +GL_EXIF_TAG + &&ƒxif_d©a[3] =ð +GL_EXIF_APP1 +) { + +1161 + `gl_dbgW +("Exif in APP1!"); + +1162 +»t + = +Œue +; + +1163 } ià( +exif_d©a +[2] =ð +GL_EXIF_TAG + && + +1164 +exif_d©a +[3] =ð +GL_EXIF_APP0 +) { + +1165 + `gl_dbgW +("Jfif in APP0!"); + +1166 +»t + = +Œue +; + +1168 + `gl_dbgE +("Nه Exiàš APP1 o¸Jifàš APP2[%d]!", +exif_d©a +[3]); + +1169 +»t + = +çl£ +; + +1171 +GL_EXIF_FAILED +: + +1173 + `fþo£ +( +fd +); + +1174 + `gl_dbg +(""); + +1175  +»t +; + +1176 + } +} + +1178  + $__gl_exif_rw_ܛÁ +(* +fže_·th +, * +ܛÁ +, +boÞ + +b_wr™e +) + +1180 + `GL_CHECK_VAL +( +fže_·th +, -1); + +1181 + `gl_dbg +("b_wr™e: %d", +b_wr™e +); + +1182  +Ëngth + = 0; + +1183  +i + = 0; + +1184 +boÞ + +is_mÙÜÞa + = +çl£ +; + +1185  +off£t + = 0; + +1186  +jfif_off£t + = 0; + +1187  +gs_út + = 0; + +1188  +g_num + = 0; + +1189  +tmp_exif + = -1; + +1190  +exif_d©a +[ +GL_EXIF_BUF_LEN_MAX +] = { 0, }; + +1191 +FILE + * +fd + = +NULL +; + +1192  +»t + = -1; + +1194 ià( +b_wr™e +) { + +1195 ià(( +fd + = + `fݒ +( +fže_·th +, "rb+")è=ð +NULL +) { + +1196 + `gl_sdbgE +("Cª'ˆÝ’ %s!", +fže_·th +); + +1200 ià(( +fd + = + `fݒ +( +fže_·th +, "rb")è=ð +NULL +) { + +1201 + `gl_sdbgE +("Cª'ˆÝ’ %s!", +fže_·th +); + +1207  +i + = 0; i < 4; i++) { + +1208 +tmp_exif + = + `__gl_exif_»ad_1_by‹ +( +fd +); + +1209 ià( +tmp_exif + < 0) + +1210  +GL_EXIF_FAILED +; + +1212 +exif_d©a +[ +i +] = () +tmp_exif +; + +1215 ià( +exif_d©a +[0] =ð +GL_EXIF_TAG + &&ƒxif_d©a[1] =ð +GL_EXIF_SOI +) { + +1216 + `gl_dbg +("JPEG file"); + +1218 + `gl_dbgE +("Not‡ JPEG file!"); + +1219  +GL_EXIF_FAILED +; + +1222 ià( +exif_d©a +[2] =ð +GL_EXIF_TAG + &&ƒxif_d©a[3] =ð +GL_EXIF_APP1 +) { + +1223 + `gl_dbgW +("Exif in APP1!"); + +1224 } ià( +exif_d©a +[2] =ð +GL_EXIF_TAG + && + +1225 +exif_d©a +[3] =ð +GL_EXIF_APP0 +) { + +1226 + `gl_dbgW +("Jfif in APP0!"); + +1227  +»t + = + `__gl_exif_rw_jfif +( +fd +, +fže_·th +, +ܛÁ +, +b_wr™e +); + +1228  +»t +; + +1230 + `gl_dbgE +("Nه Exiàš APP1 o¸Jifàš APP2[%d]!", +exif_d©a +[3]); + +1231  +GL_EXIF_FAILED +; + +1235 ià( + `__gl_exif_»ad_2_by‹s +( +fd +, & +Ëngth +) < 0) + +1236  +GL_EXIF_FAILED +; + +1237 + `gl_dbg +("Ëngth: %d", +Ëngth +); + +1240 ià( +Ëngth + < 8) { + +1241 + `gl_dbgE +("length < 8"); + +1242  +GL_EXIF_FAILED +; + +1244 +Ëngth + -= 8; + +1247 ià( +Ëngth + < 12) { + +1248 + `gl_dbgE +("length < 12"); + +1249  +GL_EXIF_FAILED +; + +1253  +i + = 0; i < 6; i++) { + +1254 +tmp_exif + = + `__gl_exif_»ad_1_by‹ +( +fd +); + +1255 ià( +tmp_exif + < 0) + +1256  +GL_EXIF_FAILED +; + +1258 +exif_d©a +[ +i +] = () +tmp_exif +; + +1261 ià( +exif_d©a +[0] != 0x45 ||ƒxif_data[1] != 0x78 || + +1262 +exif_d©a +[2] != 0x69 ||ƒxif_data[3] != 0x66 || + +1263 +exif_d©a +[4] != 0x00 ||ƒxif_data[5] != 0x00) { + +1264 + `gl_dbgE +("Not met Exif!"); + +1265  +i + = 0; i < 6; i++) + +1266 + `gl_dbg +("- %02X", +exif_d©a +[ +i +]); + +1267  +GL_EXIF_FAILED +; + +1271  +i + = 0; i < +Ëngth +; i++) { + +1272 +tmp_exif + = + `__gl_exif_»ad_1_by‹ +( +fd +); + +1273 ià( +tmp_exif + < 0) + +1274  +GL_EXIF_FAILED +; + +1275 +exif_d©a +[ +i +] = () +tmp_exif +; + +1279 ià( +exif_d©a +[0] == 0x49 &&ƒxif_data[1] == 0x49 && + +1280 +exif_d©a +[2] == 0x2A &&ƒxif_data[3] == 0x00) { + +1281 + `gl_dbg +("Intel"); + +1282 +is_mÙÜÞa + = +çl£ +; + +1283 } ià( +exif_d©a +[0] == 0x4D &&ƒxif_data[1] == 0x4D && + +1284 +exif_d©a +[2] == 0x00 &&ƒxif_data[3] == 0x2A) { + +1285 + `gl_dbg +("Motorola"); + +1286 +is_mÙÜÞa + = +Œue +; + +1288  +GL_EXIF_FAILED +; + +1292 ià( +is_mÙÜÞa +) { + +1293 ià( +exif_d©a +[4] != 0 &&ƒxif_data[5] != 0) + +1294  +GL_EXIF_FAILED +; + +1295 +off£t + = +exif_d©a +[6]; + +1296 +off£t + <<= 8; + +1297 +off£t + +ð +exif_d©a +[7]; + +1299 ià( +exif_d©a +[7] != 0 &&ƒxif_data[6] != 0) + +1300  +GL_EXIF_FAILED +; + +1301 +off£t + = +exif_d©a +[5]; + +1302 +off£t + <<= 8; + +1303 +off£t + +ð +exif_d©a +[4]; + +1306 ià( +off£t + > +Ëngth + - 2) { + +1307 + `gl_dbgE +("offset >†ength - 2"); + +1308  +GL_EXIF_FAILED +; + +1313 ià( +is_mÙÜÞa +) { + +1314 +gs_út + = +exif_d©a +[ +off£t +]; + +1315 +gs_út + <<= 8; + +1316 +gs_út + +ð +exif_d©a +[ +off£t ++1]; + +1318 +gs_út + = +exif_d©a +[ +off£t ++1]; + +1319 +gs_út + <<= 8; + +1320 +gs_út + +ð +exif_d©a +[ +off£t +]; + +1322 ià( +gs_út + == 0) { + +1323 + `gl_dbgE +("tags_cnt == 0 - 2"); + +1324  +GL_EXIF_FAILED +; + +1326 +off£t + += 2; + +1329 ià( +off£t + > +Ëngth + - 12) { + +1330 + `gl_dbgE +("offset >†ength - 12"); + +1331  +GL_EXIF_FAILED +; + +1337 ià( +is_mÙÜÞa +) { + +1338 +g_num + = +exif_d©a +[ +off£t +]; + +1339 +g_num + <<= 8; + +1340 +g_num + +ð +exif_d©a +[ +off£t ++1]; + +1342 +g_num + = +exif_d©a +[ +off£t ++1]; + +1343 +g_num + <<= 8; + +1344 +g_num + +ð +exif_d©a +[ +off£t +]; + +1347 ià( +g_num + == 0x0112) { + +1348 + `gl_dbgW +("Found orientationag!"); + +1351 ià(-- +gs_út + == 0) { + +1352 + `gl_dbgW +("tags_cnt == 0,‚o found orientationag!"); + +1353 ià( +b_wr™e +) { + +1354 + `gl_dbgW +("to‡dd‡n orientationag!"); + +1355 + `fþo£ +( +fd +); + +1356 +fd + = +NULL +; + +1357  + `__gl_exif_add_ܛÁ©iÚ_g +( +fže_·th +, +ܛÁ +); + +1361 * +ܛÁ + = 1; + +1362 +»t + = 0; + +1364  +GL_EXIF_FAILED +; + +1368 +off£t + += 12; + +1371 ià( +b_wr™e +) { + +1372 + `gl_dbg +("Wr™e: %d", * +ܛÁ +); + +1374 ià( +is_mÙÜÞa +) + +1375 +exif_d©a +[ +off£t ++9] = ()(* +ܛÁ +); + +1377 +exif_d©a +[ +off£t ++8] = ()(* +ܛÁ +); + +1379 ià( + `f£ek +( +fd +, +jfif_off£t + + (4 + 2 + 6 + 2è+ +off£t +, +SEEK_SET +) < 0) { + +1380 + `gl_dbgE +("fseek failed!"); + +1381  +GL_EXIF_FAILED +; + +1383 + `fwr™e +( +exif_d©a + + 2 + +off£t +, 1, 10, +fd +); + +1386 ià( +is_mÙÜÞa +) { + +1387 ià( +exif_d©a +[ +off£t ++8] != 0) { + +1388 + `gl_dbgE +("exif_data[offset+8] != 0"); + +1389  +GL_EXIF_FAILED +; + +1391 * +ܛÁ + = () +exif_d©a +[ +off£t ++9]; + +1393 ià( +exif_d©a +[ +off£t ++9] != 0) { + +1394 + `gl_dbgE +("exif_data[offset+9] != 0"); + +1395  +GL_EXIF_FAILED +; + +1397 * +ܛÁ + = () +exif_d©a +[ +off£t ++8]; + +1399 ià(* +ܛÁ + > 8) { + +1400 + `gl_dbgE +("*orient > 8"); + +1401  +GL_EXIF_FAILED +; + +1403 + `gl_dbg +("R—d: %d", * +ܛÁ +); + +1406 +»t + = 0; + +1408 +GL_EXIF_FAILED +: + +1410 + `fþo£ +( +fd +); + +1411 + `gl_dbg +("All done"); + +1412  +»t +; + +1413 + } +} + +1415  + $_gl_exif_g‘_ܛÁ©iÚ +(* +fže_·th +, * +ܛÁ©iÚ +) + +1417 + `GL_CHECK_VAL +( +ܛÁ©iÚ +, -1); + +1418 + `GL_CHECK_VAL +( +fže_·th +, -1); + +1419 + `gl_sdbg +("fže_·th: %s", +fže_·th +); + +1421  + `__gl_exif_rw_ܛÁ +( +fže_·th +, +ܛÁ©iÚ +, +çl£ +); + +1422 + } +} + +1424  + $_gl_exif_£t_ܛÁ©iÚ +(* +fže_·th +,  +ܛÁ©iÚ +) + +1426 + `GL_CHECK_VAL +( +fže_·th +, -1); + +1427 + `gl_sdbg +("fže_·th: %s", +fže_·th +); + +1429  + `__gl_exif_rw_ܛÁ +( +fže_·th +, & +ܛÁ©iÚ +, +Œue +); + +1430 + } +} + +1432  + $_gl_exif_g‘_rÙ©ed_ܛÁ©iÚ +( +ܛÁ©iÚ +, +boÞ + +b_Ëá +) + +1434  +rÙ©ed_ܛÁ©aiÚ +; + +1435 + `gl_dbg +("b_Ëá: %d", +b_Ëá +); + +1437  +ܛÁ©iÚ +) { + +1438  +GL_ORIENTATION_ROT_0 +: + +1440 ià( +b_Ëá +) + +1441 +rÙ©ed_ܛÁ©aiÚ + = +GL_ORIENTATION_ROT_270 +; + +1443 +rÙ©ed_ܛÁ©aiÚ + = +GL_ORIENTATION_ROT_90 +; + +1445  +GL_ORIENTATION_ROT_90 +: + +1447 ià( +b_Ëá +) + +1448 +rÙ©ed_ܛÁ©aiÚ + = +GL_ORIENTATION_ROT_0 +; + +1450 +rÙ©ed_ܛÁ©aiÚ + = +GL_ORIENTATION_ROT_180 +; + +1452  +GL_ORIENTATION_ROT_180 +: + +1454 ià( +b_Ëá +) + +1455 +rÙ©ed_ܛÁ©aiÚ + = +GL_ORIENTATION_ROT_90 +; + +1457 +rÙ©ed_ܛÁ©aiÚ + = +GL_ORIENTATION_ROT_270 +; + +1459  +GL_ORIENTATION_ROT_270 +: + +1461 ià( +b_Ëá +) + +1462 +rÙ©ed_ܛÁ©aiÚ + = +GL_ORIENTATION_ROT_180 +; + +1464 +rÙ©ed_ܛÁ©aiÚ + = +GL_ORIENTATION_ROT_0 +; + +1467 + `gl_dbgE +("WrÚg or›ù©iÚ: %d!", +ܛÁ©iÚ +); + +1469 ià( +b_Ëá +) + +1470 +rÙ©ed_ܛÁ©aiÚ + = +GL_ORIENTATION_ROT_270 +; + +1472 +rÙ©ed_ܛÁ©aiÚ + = +GL_ORIENTATION_ROT_90 +; + +1476 + `gl_dbg +("New or›Á©iÚ: %d", +rÙ©ed_ܛÁ©aiÚ +); + +1477  +rÙ©ed_ܛÁ©aiÚ +; + +1478 + } +} + + @src/util/gl-ext-exec.c + +18  + ~ + +19  + ~"gl-ext-exec.h +" + +20  + ~"gl-debug.h +" + +21  + ~"g®Ëry.h +" + +22  + ~"gl-d©a.h +" + +23  + ~"gl-utž.h +" + +24  + ~"gl-pÝup.h +" + +25  + ~"gl-cڌÞb¬.h +" + +26  + ~"gl-®bums.h +" + +27  + ~"gl-thumbs.h +" + +28  + ~"gl-¡ršgs.h +" + +29  + ~"gl-nÙify.h +" + +31  + #GL_APP_PKG_VIDEOPLAYER + "Üg.tiz’.videos-l™e" + + ) + +32  + #GL_APP_PKG_CAMERA_EFL + "Üg.tiz’.ÿm”a-­p-l™e" + + ) + +33  + #GL_APP_PKG_IE + "com.§msung.image-ed™Ü" + + ) + +34  + #GL_SEPERATOR_IE + '|' + + ) + +35  + #GL_ARGV_VIDEO_LIST_TYPE + "video_li¡_ty³" + + ) + +36  + #GL_ARGV_VIDEO_ALL_FOLDER_VIDEO + "®l_fÞd”_video" + + ) + +37  + #GL_ARGV_VIDEO_FOLDER + "fÞd”" + + ) + +39  + #GL_ARGV_VIDEO_ORDER_TYPE + "Üd”_ty³" + + ) + +40  + #GL_ARGV_VIDEO_ORDER_DATE_DESC + "d©e_desc" + + ) + +41  + #GL_ARGV_VIDEO_START_POS + "¡¬t_pos_time" + + ) + +43  + #GL_ARGV_VIDEO_LAUNCH_APP + "Ïunchšg_­¶iÿtiÚ" + + ) + +44  + #GL_ARGV_VIDEO_LAUNCH_GALLERY + "g®Ëry" + + ) + +46  + #GL_ARGV_PATH + "·th" + + ) + +48  + #GL_SHARE_FILE_PREFIX + "fže://" + + ) + +49  + #GL_SHARE_OPERATION_SINGLE + "h‰p://tiz’.Üg/­pcڌÞ/ݔ©iÚ/sh¬e" + + ) + +50  + #GL_SHARE_OPERATION_MULTIPLE + "h‰p://tiz’.Üg/­pcڌÞ/ݔ©iÚ/muÉi_sh¬e" + + ) + +51  + #GL_SHARE_SVC_FILE_PATH + "h‰p://tiz’.Üg/­pcڌÞ/d©a/·th" + + ) + +54  + $__gl_ext_Ïunch_video_¶ay” +(* +d©a +, +­p_cڌÞ_h + +£rviû +) + +56 + `GL_CHECK_VAL +( +£rviû +, -1); + +57 + `GL_CHECK_VAL +( +d©a +, -1); + +58 +gl_™em + * +g™em + = (gl_™em *) +d©a +; + +59 + `GL_CHECK_VAL +( +g™em +-> +ad +, -1); + +60 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +g™em +->ad; + +61 + `GL_CHECK_VAL +( +g™em +-> +™em +, -1); + +62 + `GL_CHECK_VAL +( +g™em +-> +™em +-> +uuid +, -1); + +63 + `GL_CHECK_VAL +( +g™em +-> +™em +-> +fže_u¾ +, -1); + +65  +Ï¡_pos + = 0; + +66  +Ï¡_pos_¡r +[ +GL_INTERGER_LEN_MAX +] = { 0, }; + +68 + `GL_CHECK_VAL +( +g™em +-> +™em +-> +video_šfo +, -1); + +69 +Ï¡_pos + = +g™em +-> +™em +-> +video_šfo +-> +Ï¡_¶ayed_pos +; + +70 + `eša_cÚv”t_™ß +( +Ï¡_pos +, +Ï¡_pos_¡r +); + +71 + `gl_dbg +("Ï¡_po : %d", +Ï¡_pos +); + +73 cÚ¡ * +video_·th + = +g™em +-> +™em +-> +fže_u¾ +; + +75 +gl_þu¡” + * +cur_þu¡” + = + `_gl_®bums_g‘_cu¼’t +( +ad +); + +76 ià( +cur_þu¡” + && cur_þu¡”-> +þu¡” +) { + +77 + `gl_sdbg +("Album: %s", +cur_þu¡” +-> +þu¡” +-> +di¥Ïy_Çme +); + +78 ià( +cur_þu¡” +-> +þu¡” +-> +ty³ + =ð +GL_STORE_T_ALL +) { + +79 + `gl_dbg +("All‡lbum"); + +80 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, + +81 +GL_ARGV_VIDEO_LIST_TYPE +, + +82 +GL_ARGV_VIDEO_ALL_FOLDER_VIDEO +); + +83 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, + +84 +GL_ARGV_VIDEO_ORDER_TYPE +, + +85 +GL_ARGV_VIDEO_ORDER_DATE_DESC +); + +86 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, + +87 +GL_ARGV_VIDEO_LAUNCH_APP +, + +88 +GL_ARGV_VIDEO_LAUNCH_GALLERY +); + +89 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, + +90 +GL_ARGV_VIDEO_START_POS +, + +91 +Ï¡_pos_¡r +); + +92 } ià( +cur_þu¡” +-> +þu¡” +-> +ty³ + =ð +GL_STORE_T_PHONE + || + +93 +cur_þu¡” +-> +þu¡” +-> +ty³ + =ð +GL_STORE_T_MMC +) { + +94 + `gl_dbg +("Real‡lbum"); + +95 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, + +96 +GL_ARGV_VIDEO_LIST_TYPE +, + +97 +GL_ARGV_VIDEO_FOLDER +); + +98 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, + +99 +GL_ARGV_VIDEO_ORDER_TYPE +, + +100 +GL_ARGV_VIDEO_ORDER_DATE_DESC +); + +101 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, + +102 +GL_ARGV_VIDEO_LAUNCH_APP +, + +103 +GL_ARGV_VIDEO_LAUNCH_GALLERY +); + +104 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, + +105 +GL_ARGV_VIDEO_START_POS +, + +106 +Ï¡_pos_¡r +); + +108 + `gl_dbg +("Web‡lbum? Under construction..."); + +112 + `gl_dbgE +("Invalid current‡lbum,„eturn?"); + +115  +»t + = 0; + +118 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, +GL_ARGV_PATH +, +video_·th +); + +119 + `­p_cڌÞ_£t_ݔ©iÚ +( +£rviû +, +APP_CONTROL_OPERATION_DEFAULT +); + +120 ià( +APP_CONTROL_ERROR_NONE + !ð + `­p_cڌÞ_£t_­p_id +( +£rviû +, +GL_APP_PKG_VIDEOPLAYER +)) { + +121 + `gl_dbgE +("app_control_set_app_id failed"); + +123 +»t + = + `­p_cڌÞ_£nd_Ïunch_»que¡ +( +£rviû +, +NULL +, NULL); + +125 ià( +»t + =ð +APP_CONTROL_ERROR_NONE +) + +129 + } +} + +131  + $__gl_ext_compo£_exec_cmd +(* +d©a +, +gl_ext_­p_ty³ + +ty³ +, + +132 * +·th +, ** +pkg_Çme +, + +133 +­p_cڌÞ_h + +£rviû +) + +135 + `GL_CHECK_VAL +( +d©a +, -1); + +136 + `gl_sdbg +("ty³:%d,…©h:%s", +ty³ +, +·th +); + +138  +ty³ +) { + +139  +GL_APP_VIDEOPLAYER +: + +140 + `GL_CHECK_VAL +( +·th +, -1); + +141 * +pkg_Çme + = +GL_APP_PKG_VIDEOPLAYER +; + +144 * +pkg_Çme + = +NULL +; + +148 + } +} + +150 #ifdeà +GL_EXTENDED_FEATURES + + +151  + $__gl_ext_­p_cڌÞ_»¶y_cb +( +­p_cڌÞ_h + +»que¡ +,‡µ_cڌÞ_h +»¶y +, + +152 +­p_cڌÞ_»suÉ_e + +»suÉ +, * +u£r_d©a +) + +154 + `gl_dbg +(""); + +155  +»suÉ +) { + +156  +APP_CONTROL_RESULT_SUCCEEDED +: + +157 + `gl_dbg +("APP_CONTROL_RESULT_SUCCEEDED"); + +159  +APP_CONTROL_RESULT_FAILED +: + +160 + `gl_dbg +("APP_CONTROL_RESULT_FAILED"); + +162  +APP_CONTROL_RESULT_CANCELED +: + +163 + `gl_dbg +("APP_CONTROL_RESULT_CANCELED"); + +166 + `gl_dbgE +("UnhªdËd v®ue: %d!", +»suÉ +); + +169 + } +} + +172  + $gl_ext_exec +(* +d©a +, +gl_ext_­p_ty³ + +ty³ +) + +174 + `GL_CHECK_VAL +( +d©a +, -1); + +175 +gl_™em + * +g™em + = (gl_™em *) +d©a +; + +176 + `GL_CHECK_VAL +( +g™em +-> +ad +, -1); + +177 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +g™em +->ad; + +178 + `GL_CHECK_VAL +( +g™em +-> +™em +, -1); + +179 + `GL_CHECK_VAL +( +g™em +-> +™em +-> +fže_u¾ +, -1); + +180 * +·th + = +g™em +-> +™em +-> +fže_u¾ +; + +181 +­p_cڌÞ_h + +£rviû + = +NULL +; + +182 * +pkg_Çme + = +NULL +; + +184 ià( +ad +-> +ugšfo +. +b_­p_ÿÎed +) { + +185 + `gl_dbgE +("APP†aunched,„eturn!"); + +186  +GL_LAUNCH_FAIL +; + +189 + `­p_cڌÞ_ü—‹ +(& +£rviû +); + +190 + `GL_CHECK_VAL +( +£rviû +, +GL_LAUNCH_FAIL +); + +192 + `__gl_ext_compo£_exec_cmd +( +ad +, +ty³ +, +·th +, & +pkg_Çme +, +£rviû +); + +193 ià( +pkg_Çme + =ð +NULL +) { + +194 + `­p_cڌÞ_de¡roy +( +£rviû +); + +195  +GL_LAUNCH_FAIL +; + +198  +»t + = 0; + +199 ià( +ty³ + =ð +GL_APP_VIDEOPLAYER +) { + +200 ià( +·th + =ð +NULL +) { + +201 + `­p_cڌÞ_de¡roy +( +£rviû +); + +202  +GL_LAUNCH_FAIL +; + +204 ià( + `__gl_ext_Ïunch_video_¶ay” +( +d©a +, +£rviû +) != 0) { + +205 + `­p_cڌÞ_de¡roy +( +£rviû +); + +206  +GL_LAUNCH_FAIL +; + +209 + `­p_cڌÞ_£t_ݔ©iÚ +( +£rviû +, +APP_CONTROL_OPERATION_DEFAULT +); + +210 + `­p_cڌÞ_£t_­p_id +( +£rviû +, +pkg_Çme +); + +211 +»t + = + `­p_cڌÞ_£nd_Ïunch_»que¡ +( +£rviû +, +NULL +, NULL); + +212 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +213 + `­p_cڌÞ_de¡roy +( +£rviû +); + +214 + `gl_dbgE +("­p_cڌÞ_£nd_Ïunch_»que¡ fažed[%d]!", +»t +); + +215  +GL_LAUNCH_FAIL +; + +219 +»t + = + `­p_cڌÞ_de¡roy +( +£rviû +); + +220 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +221 +ad +-> +ugšfo +. +b_­p_ÿÎed + = +Œue +; + +222  +GL_LAUNCH_SUCCESS +; + +224  +GL_LAUNCH_FAIL +; + +226 + } +} + +228 #ifdeà +GL_EXTENDED_FEATURES + + +229  + $__gl_ext_pÝup_»¥_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +231 + `GL_CHECK +( +obj +); + +232 + `GL_CHECK +( +d©a +); + +233 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +234 + `GL_IF_DEL_OBJ +( +ad +-> +pÝupšfo +. +pÝup +); + +235 + } +} + +237  +Eša_BoÞ + + $__gl_ext_avoid_muÉi_þick_tim”_cb +(* +d©a +) + +239 + `GL_CHECK_FALSE +( +d©a +); + +240 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +241 + `gl_dbg +(""); + +242 + `GL_IF_DEL_TIMER +( +ad +-> +ù¾šfo +. +avoid_muÉi_p +); + +243  +ECORE_CALLBACK_CANCEL +; + +244 + } +} + +249  + $_gl_ext_lßd_ÿm”a +(* +d©a +) + +251 + `gl_dbg +(""); + +252 + `GL_CHECK_VAL +( +d©a +, -1); + +253 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +254 ià( +ad +-> +ù¾šfo +. +avoid_muÉi_p +) + +256 +EcÜe_Tim” + * +tim” + = +NULL +; + +257 +tim” + = + `ecÜe_tim”_add +(2.0, +__gl_ext_avoid_muÉi_þick_tim”_cb +, +d©a +); + +258 +ad +-> +ù¾šfo +. +avoid_muÉi_p + = +tim” +; + +260  +»t + = -1; + +261  +de¡roy_»t + = -1; + +262 +­p_cڌÞ_h + +hªdË +; + +264 +»t + = + `­p_cڌÞ_ü—‹ +(& +hªdË +); + +265 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +266 + `gl_dbgE +("­p_cڌÞ_ü—‹ fažed[%d]!", +»t +); + +267  +GL_LAUNCH_FAIL +; + +270 +»t + = + `­p_cڌÞ_£t_ݔ©iÚ +( +hªdË +, +APP_CONTROL_OPERATION_DEFAULT +); + +271 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +272 + `gl_dbgE +("­p_cڌÞ_£t_ݔ©iÚ [%s] fažed[%d]!", +APP_CONTROL_OPERATION_DEFAULT +, +»t +); + +273  +GL_EXT_LOAD_CAMERA_FINISHED +; + +276 +»t + = + `­p_cڌÞ_£t_­p_id +( +hªdË +, +GL_APP_PKG_CAMERA_EFL +); + +277 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +278 + `gl_dbgE +("­p_cڌÞ_£t_­p_id [%s] fažed[%d]!", +GL_APP_PKG_CAMERA_EFL +, +»t +); + +279  +GL_EXT_LOAD_CAMERA_FINISHED +; + +282 +»t + = + `­p_cڌÞ_add_exŒa_d©a +( +hªdË +, "CALLER", "gallery"); + +283 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +284 + `gl_dbgE +("­p_cڌÞ_add_exŒa_d©¨çžed[%d]!", +»t +); + +285  +GL_EXT_LOAD_CAMERA_FINISHED +; + +288 +»t + = + `­p_cڌÞ_£nd_Ïunch_»que¡ +( +hªdË +, +__gl_ext_­p_cڌÞ_»¶y_cb +, +NULL +); + +289 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +290 + `gl_dbgE +("­p_cڌÞ_£nd_Ïunch_»que¡ fažed[%d]!", +»t +); + +291  +GL_EXT_LOAD_CAMERA_FINISHED +; + +294 +GL_EXT_LOAD_CAMERA_FINISHED +: + +295 +de¡roy_»t + = + `­p_cڌÞ_de¡roy +( +hªdË +); + +296 ià( +de¡roy_»t + !ð +APP_CONTROL_ERROR_NONE +) { + +297 + `gl_dbgE +("­p_cڌÞ_de¡roy fažed[%d]!", +de¡roy_»t +); + +298  +GL_LAUNCH_FAIL +; + +301  ( +»t + =ð +APP_CONTROL_ERROR_NONE + ? +GL_LAUNCH_SUCCESS + : +GL_LAUNCH_FAIL +); + +303 + } +} + +308  + $_gl_ext_lßd_› +(* +d©a +, * +g‘_·th_cb +) + +310 + `GL_CHECK_VAL +( +g‘_·th_cb +, -1); + +311 + `GL_CHECK_VAL +( +d©a +, -1); + +312 * +fž•©h_¬g + = +NULL +; + +314 (* +_g‘_·th_cb +è(* +d©a +, +gch¬ + +£p_c +, ** +·th_¡r +, * +£l_út +); + +315 +_g‘_·th_cb + = +g‘_·th_cb +; + +317 + `_g‘_·th_cb +( +d©a +, +GL_SEPERATOR_IE +, & +fž•©h_¬g +, +NULL +); + +318 ià( +fž•©h_¬g + =ð +NULL +) { + +319 + `gl_dbgE +("Failedo get…ath string!"); + +320  +GL_LAUNCH_FAIL +; + +323 + `gl_dbg +("Launch Image-editor"); + +324  +»t + = +GL_LAUNCH_FAIL +; + +325 +»t + = + `_gl_ext_lßd +( +fž•©h_¬g +, +APP_CONTROL_OPERATION_EDIT +, +GL_APP_PKG_IE +, + +326 +NULL +, NULL); + +327 ià( +fž•©h_¬g +) { + +328 + `g_ä“ +( +fž•©h_¬g +); + +329 +fž•©h_¬g + = +NULL +; + +332  +»t +; + +333 + } +} + +335  + $_gl_ext_lßd +(cÚ¡ * +uri +, cÚ¡ * +ݔ©iÚ +, cÚ¡ * +pkg +, + +336 cÚ¡ * +pkg_id +, cÚ¡ * +mime +) + +338 + `gl_dbg +("ݔ©iÚ: %s,…kg: %s, uri: %s", +ݔ©iÚ +, +pkg +, +uri +); + +339  +»t + = -1; + +340  +de¡roy_»t + = -1; + +341 +­p_cڌÞ_h + +hªdË +; + +343 +»t + = + `­p_cڌÞ_ü—‹ +(& +hªdË +); + +344 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +345 + `gl_dbgE +("­p_cڌÞ_ü—‹ fažed[%d]!", +»t +); + +346  +GL_LAUNCH_FAIL +; + +349 +»t + = + `­p_cڌÞ_£t_ݔ©iÚ +( +hªdË +, +ݔ©iÚ +); + +350 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +351 + `gl_dbgE +("­p_cڌÞ_£t_ݔ©iÚ [%s] fažed[%d]!", +ݔ©iÚ +, + +352 +»t +); + +353  +GL_EXT_FAILED +; + +356 ià( +mime +) { + +357 +»t + = + `­p_cڌÞ_£t_mime +( +hªdË +, +mime +); + +358 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +359 + `gl_dbgE +("­p_cڌÞ_£t_mim[%s] fažed[%d]!", +mime +, +»t +); + +360  +GL_EXT_FAILED +; + +364 ià( +uri +) { + +365 +»t + = + `­p_cڌÞ_£t_uri +( +hªdË +, +uri +); + +366 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +367 + `gl_dbgE +("­p_cڌÞ_£t_ur˜[%s] fažed[%d]!", +uri +, +»t +); + +368  +GL_EXT_FAILED +; + +372 ià( +pkg +) { + +373 +»t + = + `­p_cڌÞ_£t_­p_id +( +hªdË +, +pkg +); + +374 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +375 + `gl_dbgE +("­p_cڌÞ_£t_­p_id [%s] fažed[%d]!", +pkg +, + +376 +»t +); + +377  +GL_EXT_FAILED +; + +381 ià( +pkg_id +) { + +382 +»t + = + `­p_cڌÞ_£t_­p_id +( +hªdË +, +pkg_id +); + +383 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +384 + `gl_dbgE +("­p_cڌÞ_£t_­p_id [%s] fažed[%d]!", +pkg_id +, + +385 +»t +); + +386  +GL_EXT_FAILED +; + +390 +»t + = + `­p_cڌÞ_£nd_Ïunch_»que¡ +( +hªdË +, +__gl_ext_­p_cڌÞ_»¶y_cb +, + +391 +NULL +); + +392 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +393 + `gl_dbgE +("­p_cڌÞ_£nd_Ïunch_»que¡ fažed[%d]!", +»t +); + +394  +GL_EXT_FAILED +; + +397 +GL_EXT_FAILED +: + +398 +de¡roy_»t + = + `­p_cڌÞ_de¡roy +( +hªdË +); + +399 ià( +de¡roy_»t + !ð +APP_CONTROL_ERROR_NONE +) { + +400 + `gl_dbgE +("­p_cڌÞ_de¡roy fažed[%d]!", +de¡roy_»t +); + +401  +GL_LAUNCH_FAIL +; + +404  ( +»t + =ð +APP_CONTROL_ERROR_NONE + ? +GL_LAUNCH_SUCCESS + : +GL_LAUNCH_FAIL +); + +405 + } +} + +407  + $_gl_ext_Ïunch_sh¬e +(* +d©a +,  +tÙ®_út +, * +g‘_·th_cb +) + +409  + #GL_SHARE_CNT_MAX + 500 + + ) + +411 + `GL_CHECK_VAL +( +g‘_·th_cb +, -1); + +412 + `GL_CHECK_VAL +( +d©a +, -1); + +413 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +415 ià( +tÙ®_út + == 0) { + +416 + `gl_dbgE +("nothing selected!"); + +418 } ià( +tÙ®_út + > +GL_SHARE_CNT_MAX +) { + +419 * +sh¬e_lim™_nÙi + = + `g_¡rdup_´štf +( +GL_STR_ID_SHARE_LIMIT +, +GL_SHARE_CNT_MAX +); + +420 + `_gl_nÙify_ü—‹_nÙišfo +( +sh¬e_lim™_nÙi +); + +421 + `GL_FREEIF +( +sh¬e_lim™_nÙi +); + +425 ** +fžes + = +NULL +; + +426 * +ݔ©iÚ + = +NULL +; + +427  +»t + = -1; + +428 +fžes + = (**) + `ÿÎoc +(1, (*è* +tÙ®_út +); + +429 + `GL_CHECK_VAL +( +fžes +, -1); + +431 (* +_g‘_·th_cb +è(* +d©a +, ** +fžes +); + +432 +_g‘_·th_cb + = +g‘_·th_cb +; + +433  +»®_út + = + `_g‘_·th_cb +( +d©a +, +fžes +); + +434 +­p_cڌÞ_h + +£rviû + = +NULL +; + +435 ià( +»®_út + == 0) { + +436 + `gl_dbgE +("nothing selected!"); + +437  +SHARE_PANEL_END +; + +440 +»t + = + `­p_cڌÞ_ü—‹ +(& +£rviû +); + +441 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +442 + `gl_dbgE +("FažedØü—‹ s”viû[%d]", +»t +); + +443  +SHARE_PANEL_END +; + +445  +´efix_fže +[ +GL_ARRAY_LEN_MAX +] = {0,}; + +446 + `¢´štf +( +´efix_fže +, +GL_ARRAY_LEN_MAX +, "%s%s", +GL_SHARE_FILE_PREFIX +, + +447 +fžes +[0]); + +448 +»t + = + `­p_cڌÞ_£t_uri +( +£rviû +, +´efix_fže +); + +449 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +450 + `gl_dbgE +("­p_cڌÞ_£t_ur˜çžed[%d]", +»t +); + +451  +SHARE_PANEL_END +; + +453 ià( +»®_út + == 1) + +454 +ݔ©iÚ + = +GL_SHARE_OPERATION_SINGLE +; + +456 +ݔ©iÚ + = +GL_SHARE_OPERATION_MULTIPLE +; + +457 +»t + = + `­p_cڌÞ_£t_ݔ©iÚ +( +£rviû +, +ݔ©iÚ +); + +458 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +459 + `gl_dbgE +("­p_cڌÞ_£t_ݔ©iÚ fažed[%d]", +»t +); + +460  +SHARE_PANEL_END +; + +462 ià( +»®_út + > 1) { + +463 +»t + = + `­p_cڌÞ_add_exŒa_d©a_¬¿y +( +£rviû +, +GL_SHARE_SVC_FILE_PATH +, + +464 (cÚ¡ **) +fžes +, + +465 +»®_út +); + +466 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +467 + `gl_dbgE +("­p_cڌÞ_add_exŒa_d©a_¬¿y fažed[%d]", +»t +); + +468  +SHARE_PANEL_END +; + +472 +»t + = + `­p_cڌÞ_£t_wšdow +( +£rviû +, + `–m_wš_xwšdow_g‘ +( +ad +-> +maššfo +. +wš +)); + +473 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +474 + `gl_dbgE +("­p_cڌÞ_£t_wšdow fažed[%d]", +»t +); + +475  +SHARE_PANEL_END +; + +477 +»t + = + `­p_cڌÞ_£nd_Ïunch_»que¡ +( +£rviû +, +NULL +, NULL); + +478 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) + +479 + `gl_dbgE +("­p_cڌÞ_£nd_Ïunch_»que¡ fažed[%d]!", +»t +); + +481 +SHARE_PANEL_END +: + +483 ià( +£rviû +) + +484 + `­p_cڌÞ_de¡roy +( +£rviû +); + +485 ià( +fžes +) { + +486 ; +»®_út + > 0; --real_cnt) + +487 + `GL_FREEIF +( +fžes +[ +»®_út + - 1]); + +488 + `GL_FREE +( +fžes +); + +490 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +491 + `_gl_pÝup_ü—‹ +( +d©a +, +NULL +, +GL_STR_ID_OPERATION_FAILED +, + +492 +GL_STR_ID_CLOSE +, +__gl_ext_pÝup_»¥_cb +, +d©a +, + +493 +NULL +, NULL, NULL, NULL, NULL, NULL); + +497 + } +} + +499  + $_gl_ext_is_Ïrg”_thª_sh¬e_max +( +tÙ®_út +) + +501  + #GL_SHARE_CNT_MAX + 500 + + ) + +503 ià( +tÙ®_út + > +GL_SHARE_CNT_MAX +) { + +504  +lim™_¡r +[256] = {0}; + +505 + `¢´štf +( +lim™_¡r +, Öim™_¡r), +GL_STR_ID_SHARE_LIMIT +, + +506 +GL_SHARE_CNT_MAX +); + +507 + `_gl_nÙify_ü—‹_nÙišfo +( +lim™_¡r +); + +508  +Œue +; + +510  +çl£ +; + +511 + } +} + +513  + $_gl_ext_Ïunch_sh¬e_w™h_fžes +(* +d©a +,  +tÙ®_út +, ** +fžes +) + +515 + `GL_CHECK_VAL +( +fžes +, -1); + +516 + `GL_CHECK_VAL +( +d©a +, -1); + +517 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +518 * +ݔ©iÚ + = +NULL +; + +519  +»t + = -1; + +520 +­p_cڌÞ_h + +£rviû + = +NULL +; + +522 ià( +tÙ®_út + == 0) { + +523 + `gl_dbgE +("nothing selected!"); + +524  +SHARE_PANEL_END +; + +527 +»t + = + `­p_cڌÞ_ü—‹ +(& +£rviû +); + +528 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +529 + `gl_dbgE +("FažedØü—‹ s”viû[%d]", +»t +); + +530  +SHARE_PANEL_END +; + +532  +´efix_fže +[ +GL_ARRAY_LEN_MAX +] = {0,}; + +533 + `¢´štf +( +´efix_fže +, +GL_ARRAY_LEN_MAX +, "%s%s", +GL_SHARE_FILE_PREFIX +, + +534 +fžes +[0]); + +535 +»t + = + `­p_cڌÞ_£t_uri +( +£rviû +, +´efix_fže +); + +536 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +537 + `gl_dbgE +("­p_cڌÞ_£t_ur˜çžed[%d]", +»t +); + +538  +SHARE_PANEL_END +; + +540 ià( +tÙ®_út + == 1) + +541 +ݔ©iÚ + = +GL_SHARE_OPERATION_SINGLE +; + +543 +ݔ©iÚ + = +GL_SHARE_OPERATION_MULTIPLE +; + +544 +»t + = + `­p_cڌÞ_£t_ݔ©iÚ +( +£rviû +, +ݔ©iÚ +); + +545 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +546 + `gl_dbgE +("­p_cڌÞ_£t_ݔ©iÚ fažed[%d]", +»t +); + +547  +SHARE_PANEL_END +; + +549 ià( +tÙ®_út + > 1) { + +550 +»t + = + `­p_cڌÞ_add_exŒa_d©a_¬¿y +( +£rviû +, +GL_SHARE_SVC_FILE_PATH +, + +551 (cÚ¡ **) +fžes +, + +552 +tÙ®_út +); + +553 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +554 + `gl_dbgE +("­p_cڌÞ_add_exŒa_d©a_¬¿y fažed[%d]", +»t +); + +555  +SHARE_PANEL_END +; + +559 +»t + = + `­p_cڌÞ_£t_wšdow +( +£rviû +, + `–m_wš_xwšdow_g‘ +( +ad +-> +maššfo +. +wš +)); + +560 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +561 + `gl_dbgE +("­p_cڌÞ_£t_wšdow fažed[%d]", +»t +); + +562  +SHARE_PANEL_END +; + +564 +»t + = + `­p_cڌÞ_£nd_Ïunch_»que¡ +( +£rviû +, +NULL +, NULL); + +565 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) + +566 + `gl_dbgE +("­p_cڌÞ_£nd_Ïunch_»que¡ fažed[%d]!", +»t +); + +568 +SHARE_PANEL_END +: + +570 ià( +£rviû +) + +571 + `­p_cڌÞ_de¡roy +( +£rviû +); + +572 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +573 + `_gl_pÝup_ü—‹ +( +d©a +, +NULL +, +GL_STR_ID_OPERATION_FAILED +, + +574 +GL_STR_ID_CLOSE +, +__gl_ext_pÝup_»¥_cb +, +d©a +, + +575 +NULL +, NULL, NULL, NULL, NULL, NULL); + +579 + } +} + +581  + $_gl_ext_Ïunch_image_ed™Ü +(cÚ¡ * +·th_¡ršg +) + +583 + `GL_CHECK_VAL +( +·th_¡ršg +, -1); + +585 + `gl_dbg +("Launch Image-editor"); + +586  +»t + = +GL_LAUNCH_FAIL +; + +587 +»t + = + `_gl_ext_lßd +( +·th_¡ršg +, +APP_CONTROL_OPERATION_EDIT +, +GL_APP_PKG_IE +, + +588 +NULL +, NULL); + +589  +»t +; + +590 + } +} + +592 #iâdeà +_USE_APP_SLIDESHOW + + +593  + $_gl_ext_Ïunch_g®Ëry_ug +(* +d©a +) + +595  + #GL_GALLERY_UG + "g®Ëry-eæ-l™e" + + ) + +596  + #GL_FILE_TYPE + "fže-ty³" + + ) + +597  + #GL_VIEW_BY + "v›w-by" + + ) + +598  + #GL_EXT_STR_BUNDLE_LEN + 48 + + ) + +599 + `GL_CHECK_VAL +( +d©a +, -1); + +600 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +601  +»t + = -1; + +602 +­p_cڌÞ_h + +£rviû + = +NULL +; + +604 +»t + = + `­p_cڌÞ_ü—‹ +(& +£rviû +); + +605 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +606 + `gl_dbgE +("­p_cڌÞ_ü—‹ fažed: 0x%x", +»t +); + +607  +çl£ +; + +610 +»t + = + `­p_cڌÞ_£t_wšdow +( +£rviû +, + `–m_wš_xwšdow_g‘ +( +ad +-> +maššfo +. +wš +)); + +611 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +612 + `gl_dbgE +("£t_wšdow fažed[%d]", +»t +); + +613  +GL_EXT_FAILED +; + +615 +»t + = + `­p_cڌÞ_£t_­p_id +( +£rviû +, +GL_GALLERY_UG +); + +616 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +617 + `gl_dbgE +("£t_­p_id Fažed: 0x%x", +»t +); + +618  +GL_EXT_FAILED +; + +620 +»t + = + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, "launch-type", + +622 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +623 + `gl_dbgE +("Add†aunchedy³ fažed: 0x%x", +»t +); + +624  +GL_EXT_FAILED +; + +626 +»t + = + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, "indicator-state", "hide"); + +627 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +628 + `gl_dbgE +("Add indiÿtÜ s‹ fažed: 0x%x", +»t +); + +629  +GL_EXT_FAILED +; + +632  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +633 + `gl_dbg +("v›w_mode: %d", +v›w_mode +); + +634 +»t + = + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, +GL_FILE_TYPE +, "all"); + +635 + `gl_dbg +("Mediaype: All"); + +636 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +637 + `gl_dbgE +("Add medŸy³ fažed: 0x%x", +»t +); + +638  +GL_EXT_FAILED +; + +641  +b_mode + = + `_gl_ù¾_g‘_b_mode +( +ad +); + +642 + `gl_dbg +("b_mode: %d", +b_mode +); + +643  +b_mode +) { + +644  +GL_CTRL_TAB_ALBUMS +: + +646 * +®bum_id + = +NULL +; + +647 +gl_þu¡” + * +cur_®bum + = + `_gl_®bums_g‘_cu¼’t +( +d©a +); + +648 ià( +cur_®bum + && cur_®bum-> +þu¡” + && + +649 +cur_®bum +-> +þu¡” +-> +uuid +) { + +650 +®bum_id + = + `g_¡rdup +( +cur_®bum +-> +þu¡” +-> +uuid +); + +652 ià( +®bum_id +) { + +653 +»t + = + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, +GL_VIEW_BY +, + +655 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +656 + `gl_dbgE +("Add v›w by fažed: 0x%x", +»t +); + +657  +GL_EXT_FAILED +; + +659 +»t + = + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, "album-id", + +660 +®bum_id +); + +661 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +662 + `gl_dbgE +("Add‡lbum id fažed: 0x%x", +»t +); + +663  +GL_EXT_FAILED +; + +665 + `GL_GFREE +( +®bum_id +); + +667 + `gl_dbg +("Albums2"); + +668 +»t + = + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, +GL_VIEW_BY +, + +670 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +671 + `gl_dbgE +("Add v›w by fažed: 0x%x", +»t +); + +672  +GL_EXT_FAILED +; + +677  +GL_CTRL_TAB_TIMELINE +: + +678 +»t + = + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, +GL_VIEW_BY +, "all"); + +679 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +680 + `gl_dbgE +("Add v›w by fažed: 0x%x", +»t +); + +681  +GL_EXT_FAILED +; + +685 + `gl_dbgE +("Wrongab mode!"); + +686  +GL_EXT_FAILED +; + +689 +»t + = + `­p_cڌÞ_£nd_Ïunch_»que¡ +( +£rviû +, +__gl_ext_­p_cڌÞ_»¶y_cb +, + +690 +NULL +); + +691 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +692 + `gl_dbgE +("­p_cڌÞ_£nd_Ïunch_»que¡ Fažed: 0x%x", +»t +); + +693  +GL_EXT_FAILED +; + +696 + `­p_cڌÞ_de¡roy +( +£rviû +); + +699 +GL_EXT_FAILED +: + +701 + `­p_cڌÞ_de¡roy +( +£rviû +); + +703 + } +} + + @src/util/gl-ext-ug-load.c + +18  + ~ + +19  + ~"gl-ext-ug-lßd.h +" + +20  + ~"gl-ext-exec.h +" + +21  + ~"gl-debug.h +" + +22  + ~"gl-ui-utž.h +" + +23  + ~"gl-utž.h +" + +24  + ~"gl-®bums.h +" + +25  + ~"gl-thumbs.h +" + +26  + ~"gl-thumbs-ed™.h +" + +27  + ~"g®Ëry.h +" + +28  + ~"gl-pÝup.h +" + +29  + ~"gl-¡ršgs.h +" + +30  + ~"gl-cڌÞb¬.h +" + +31  + ~"gl-db-upd©e.h +" + +32  + ~"gl-nÙify.h +" + +33  + ~"gl-tim–še.h +" + +35  + #GL_EXT_STR_BUNDLE_LEN + 48 + + ) + +37  + #GL_UG_PKG_IV + "image-v›w”-eæ" + + ) + +38  + #GL_UG_PKG_GALLERY_SETTING + "£‰šg-g®Ëry-eæ" + + ) + +40  + #GL_ARGV_IV_VIEW_MODE + "V›w Mode" + + ) + +41  + #GL_ARGV_IV_VIEW_GALLERY + "GALLERY" + + ) + +42  + #GL_ARGV_IV_VIEW_SLIDESHOW + "SLIDESHOW" + + ) + +43  + #GL_ARGV_IV_PATH + "P©h" + + ) + +44  + #GL_ARGV_IV_INDEX + "Index" + + ) + +45  + #GL_ARGV_IV_VIEW_BY + "V›w By" + + ) + +46  + #GL_ARGV_IV_VIEW_BY_FOLER + "By FÞd”" + + ) + +47  + #GL_ARGV_IV_VIEW_BY_ALL + "AÎ" + + ) + +48  + #GL_ARGV_IV_MEDIA_TYPE + "MedŸy³" + + ) + +49  + #GL_ARGV_IV_MEDIA_ALL + "AÎ" + + ) + +50  + #GL_ARGV_IV_MEDIA_IMAGE + "Image" + + ) + +51  + #GL_ARGV_IV_MEDIA_VIDEO + "Video" + + ) + +52  + #GL_ARGV_IV_ALBUM_INDEX + "Album index" + + ) + +53  + #GL_ARGV_IV_SORT_BY + "S܈By" + + ) + +54  + #GL_ARGV_IV_SORT_NAME + "Name" + + ) + +55  + #GL_ARGV_IV_SORT_NAMEDESC + "NameDesc" + + ) + +56  + #GL_ARGV_IV_SORT_DATE + "D©e" + + ) + +57  + #GL_ARGV_IV_SORT_DATEDESC + "D©eDesc" + + ) + +58  + #GL_ARGV_IV_FOOTSTEPS + "FoÙ¡•s" + + ) + +59  + #GL_ARGV_IV_TRUE + "TRUE" + + ) + +60  + #GL_ARGV_IV_VIEW_BY_FAVORITES + "Favܙes" + + ) + +62  + #GL_ARGC_SELECTED_FILES + "S–eùed index" + + ) + +63  + #GL_ARGV_IV_INDEX_VALUE + "1" + + ) + +65  + $__gl_­pcڌÞ_£Ëù_»suÉ_cb +( +­p_cڌÞ_h + +»que¡ +,‡µ_cڌÞ_h +»¶y +, +­p_cڌÞ_»suÉ_e + +»suÉ +, * +u£r_d©a +) + +67 + `GL_CHECK +( +u£r_d©a +); + +68 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +u£r_d©a +; + +69  +i +; + +70 +boÞ + +š_li¡ + = +çl£ +; + +71 ** +£Ëù_»suÉ + = +NULL +; + +72  +couÁ + = 0; + +73 +Eša_Li¡ + * +l + = +NULL +; + +74 +gl_™em + * +d©a + = +NULL +; + +75  +£l_couÁ + = 0; + +76  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +77 +gl_™em + * +g™em + = +NULL +; + +79 +g™em + = + `eša_li¡_Áh + ( +ad +-> +gridšfo +. +medŸs_–i¡ +,0); + +80 if( +g™em + && + `¡rcmp +(g™em-> +®bum +-> +þu¡” +-> +uuid +, +GL_ALBUM_FAVOURITE_ID +) == 0) { + +81 + `­p_cڌÞ_g‘_exŒa_d©a_¬¿y +( +»¶y +, "S–eùed index fav", & +£Ëù_»suÉ +, & +couÁ +); + +83 + `­p_cڌÞ_g‘_exŒa_d©a_¬¿y +( +»¶y +, "S–eùed index", & +£Ëù_»suÉ +, & +couÁ +); + +86  +b_mode + = + `_gl_ù¾_g‘_b_mode +( +ad +); + +87 ià( +b_mode + =ð +GL_CTRL_TAB_TIMELINE +) { + +88 + `_gl_upd©e_timev›w_iv_£Ëù_mode_»¶y +( +ad +, +£Ëù_»suÉ +, +couÁ +); + +92 ià( +£Ëù_»suÉ +) { + +93 if( +g™em + && + `¡rcmp +(g™em-> +®bum +-> +þu¡” +-> +uuid +, +GL_ALBUM_FAVOURITE_ID +) == 0) { + +94 + `EINA_LIST_FOREACH +( +ad +-> +gridšfo +. +medŸs_–i¡ +, +l +, +d©a +) { + +95 ià(! +d©a + || !d©a-> +™em +) { + +98 +š_li¡ + = +çl£ +; + +99  +i + = 0; i < +couÁ +; i++) { + +100 ià(! + `¡rcmp +( +£Ëù_»suÉ +[ +i +], +d©a +-> +™em +-> +fže_u¾ +)) { + +101 ià(! +d©a +-> +checked +) { + +102 +Eša_Li¡ + * +£l_li¡1 + = +ad +-> +£lšfo +. +çv_–i¡ +; + +103 +£l_li¡1 + = + `eša_li¡_­³nd +(£l_li¡1, +d©a +); + +104 +ad +-> +£lšfo +. +çv_–i¡ + = +£l_li¡1 +; + +105 +d©a +-> +®bum +-> +–i¡ + = + `eša_li¡_­³nd +(data->album->elist, data); + +106 +d©a +-> +checked + = +Œue +; + +108 +š_li¡ + = +Œue +; + +109 +£l_couÁ +++; + +113 ià(! +š_li¡ +) { + +114 ià( +d©a +-> +checked +) { + +115 + `_gl_d©a_£Ëùed_çv_li¡_»move +( +ad +, +d©a +); + +116 +d©a +-> +®bum +-> +–i¡ + = + `eša_li¡_»move +(data->album->elist, data); + +117 +d©a +-> +checked + = +çl£ +; + +122 + `EINA_LIST_FOREACH +( +ad +-> +gridšfo +. +medŸs_–i¡ +, +l +, +d©a +) { + +123 ià(! +d©a + || !d©a-> +™em +) { + +126 +š_li¡ + = +çl£ +; + +127  +i + = 0; i < +couÁ +; i++) { + +128 ià(! + `¡rcmp +( +£Ëù_»suÉ +[ +i +], +d©a +-> +™em +-> +fže_u¾ +)) { + +129 ià(! +d©a +-> +checked +) { + +130 + `_gl_d©a_£Ëùed_li¡_­³nd +( +ad +, +d©a +); + +131 +d©a +-> +®bum +-> +–i¡ + = + `eša_li¡_­³nd +(data->album->elist, data); + +132 +d©a +-> +checked + = +Œue +; + +134 +š_li¡ + = +Œue +; + +135 +£l_couÁ +++; + +139 ià(! +š_li¡ +) { + +140 ià( +d©a +-> +checked +) { + +141 + `_gl_d©a_£Ëùed_li¡_»move +( +ad +, +d©a +); + +142 +d©a +-> +®bum +-> +–i¡ + = + `eša_li¡_»move +(data->album->elist, data); + +143 +d©a +-> +checked + = +çl£ +; + +149 if( +g™em + && + `¡rcmp +(g™em-> +®bum +-> +þu¡” +-> +uuid +, +GL_ALBUM_FAVOURITE_ID +) == 0) { + +150 + `EINA_LIST_FOREACH +( +ad +-> +gridšfo +. +medŸs_–i¡ +, +l +, +d©a +) { + +151 ià(! +d©a + || !d©a-> +™em +) { + +154 ià( +d©a +-> +checked +) { + +155 + `_gl_d©a_£Ëùed_çv_li¡_»move +( +ad +, +d©a +); + +156 +d©a +-> +®bum +-> +–i¡ + = + `eša_li¡_»move +(data->album->elist, data); + +157 +d©a +-> +checked + = +çl£ +; + +161 + `EINA_LIST_FOREACH +( +ad +-> +gridšfo +. +medŸs_–i¡ +, +l +, +d©a +) { + +162 ià(! +d©a + || !d©a-> +™em +) { + +165 ià( +d©a +-> +checked +) { + +166 + `_gl_d©a_£Ëùed_li¡_»move +( +ad +, +d©a +); + +167 +d©a +-> +®bum +-> +–i¡ + = + `eša_li¡_»move +(data->album->elist, data); + +168 +d©a +-> +checked + = +çl£ +; + +174 +d©a + = + `eša_li¡_Áh +( +ad +-> +gridšfo +. +medŸs_–i¡ +, 0); + +175 ià( +d©a + && d©a-> +®bum + && d©a->®bum-> +™em +) { + +176  +buf +[ +GL_ALBUM_NAME_LEN_MAX +] = { 0, }; + +177 ià( +£l_couÁ + > 0) { + +178 + `–m_objeù_™em_sigÇl_em™ +( +d©a +-> +®bum +-> +™em +, + +182 + `–m_objeù_™em_sigÇl_em™ +( +d©a +-> +®bum +-> +™em +, + +186 + `–m_g’grid_™em_f›lds_upd©e +( +d©a +-> +®bum +-> +™em +, "–m.‹xt.badge", +ELM_GENGRID_ITEM_FIELD_TEXT +); + +188  +tÙ®_£Ëùed_couÁ + = + `eša_li¡_couÁ +( +ad +-> +£lšfo +. +–i¡ +)+eša_li¡_couÁ×d->£lšfo. +çv_–i¡ +); + +189  +™em_út + = + `eša_li¡_couÁ +( +ad +-> +gridšfo +. +medŸs_–i¡ +); + +190 ià( +v›w_mode + =ð +GL_VIEW_THUMBS_EDIT +) { + +191 + `_gl_nÙify_check_£ÏÎ +( +ad +,‡d-> +gridšfo +. +nf_™ +, +™em_út +, +£l_couÁ +); + +193 + `_gl_thumbs_upd©e_Ïb–_‹xt +( +ad +-> +gridšfo +. +nf_™ +, +tÙ®_£Ëùed_couÁ +, +çl£ +); + +194 + `–m_g’grid_»®ized_™ems_upd©e +( +ad +-> +gridšfo +. +v›w +); + +195 } ià( +v›w_mode + =ð +GL_VIEW_THUMBS_SELECT +) { + +196 + `_gl_nÙify_check_£ÏÎ +( +ad +,‡d-> +®bumšfo +. +nf_™_£Ëù +, +™em_út +, + +197 +£l_couÁ +); + +199 + `_gl_ui_upd©e_Çvi_t™Ë_‹xt +( +ad +-> +®bumšfo +. +nf_™_£Ëù +, +tÙ®_£Ëùed_couÁ +, +çl£ +); + +200 + `–m_g’grid_»®ized_™ems_upd©e +( +ad +-> +gridšfo +. +£Ëù_v›w +); + +203  +i + = 0; i < +couÁ +; i++) { + +204 ià( +£Ëù_»suÉ +[ +i +]) { + +205 + `ä“ + ( +£Ëù_»suÉ +[ +i +]); + +208 ià( +£Ëù_»suÉ +) { + +209 + `ä“ +( +£Ëù_»suÉ +); + +211 + } +} + +214  + $__gl_­pcڌÞ_»suÉ_cb +( +­p_cڌÞ_h + +»que¡ +,‡µ_cڌÞ_h +»¶y +, +­p_cڌÞ_»suÉ_e + +»suÉ +, * +u£r_d©a +) + +216 + `GL_CHECK +( +u£r_d©a +); + +217 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +u£r_d©a +; + +218 * +d–‘e_»suÉ + = +NULL +; + +219 + `­p_cڌÞ_g‘_exŒa_d©a +( +»¶y +, "d–‘fže", & +d–‘e_»suÉ +); + +220 ià( +d–‘e_»suÉ +) { + +221 + `_gl_db_upd©e_lock_Úû +( +ad +, +Œue +); + +222 + `gl_upd©e_v›w +( +ad +, +GL_UPDATE_VIEW_INOTIFY +); + +223 + `_gl_db_upd©e_lock_Úû +( +ad +, +çl£ +); + +224 + `GL_FREE +( +d–‘e_»suÉ +); + +227 ià( +ad +-> +ugšfo +. +ug_ty³ + =ð +GL_UG_GALLERY_SETTING_SLIDESHOW +) { + +228 * +¡¬t + = +NULL +; + +229 + `­p_cڌÞ_g‘_exŒa_d©a +( +»¶y +, "ResuÉ", & +¡¬t +); + +230 ià( +¡¬t +) { + +231 + `gl_dbg +("¡¬ˆ¡ršg:%s", +¡¬t +); + +232 ià(! + `g_¡rcmp0 +( +¡¬t +, "StartSlideShow")) { + +233 +ad +-> +ugšfo +. +b_¡¬t_¦ideshow + = +Œue +; + +235 +ad +-> +ugšfo +. +b_¡¬t_¦ideshow + = +çl£ +; + +237 + `GL_FREE +( +¡¬t +); + +240 * +cb + = + `evas_objeù_d©a_g‘ +( +ad +-> +maššfo +. +Çviäame +, + +241 +GL_NAVIFRAME_UG_RESULT_KEY +); + +242 + `gl_sdbg +("»suÉ_cb [%p]", +cb +); + +243 ià( +cb +) { + +244 (* +»suÉ_cb +è(* +d©a +, +­p_cڌÞ_h + +»t_h +); + +245 +»suÉ_cb + = +cb +; + +246 + `»suÉ_cb +( +ad +, +»¶y +); + +249 + `GL_CHECK +( +ad +-> +ugšfo +. +ug +); + +250 + `­p_cڌÞ_de¡roy +( +ad +-> +ugšfo +. +ug +); + +251 +ad +-> +ugšfo +. +ug + = +NULL +; + +253 +ad +-> +ugšfo +. +ug_ty³ + = -1; + +254 +ad +-> +ugšfo +. +iv_ty³ + = -1; + +256 +cb + = + `evas_objeù_d©a_g‘ +( +ad +-> +maššfo +. +Çviäame +, + +257 +GL_NAVIFRAME_UG_UPDATE_KEY +); + +258 + `gl_sdbg +("upd©e_cb [%p]", +cb +); + +259 ià( +cb +) { + +260 (* +upd©e_cb +è(* +d©a +); + +261 +upd©e_cb + = +cb +; + +262 + `upd©e_cb +( +ad +); + +265 + `–m_objeù_Œ“_focus_®low_£t +( +ad +-> +maššfo +. +Ïyout +, +EINA_TRUE +); + +266 + `–m_objeù_focus_£t +( +ad +-> +maššfo +. +Ïyout +, +EINA_TRUE +); + +268 + `–m_wš_šdiÿtÜ_mode_£t +( +ad +-> +maššfo +. +wš +, +ELM_WIN_INDICATOR_SHOW +); + +269 + `–m_wš_šdiÿtÜ_Ýac™y_£t +( +ad +-> +maššfo +. +wš +, +ELM_WIN_INDICATOR_TRANSPARENT +); + +270 + `_gl_ui_£t_cÚfÜm_ov”Ïp +( +ad +-> +maššfo +. +Çviäame +); + +272 ià( +ad +-> +ugšfo +. +b_¡¬t_¦ideshow +) { + +273 +ad +-> +ugšfo +. +b_¡¬t_¦ideshow + = +çl£ +; + +274 +ad +-> +ugšfo +. +ug + = +NULL +; + +276 +ad +-> +ugšfo +. +ug_ty³ + = -1; + +277 +ad +-> +ugšfo +. +iv_ty³ + = -1; + +278 * +cb + = + `evas_objeù_d©a_g‘ +( +ad +-> +maššfo +. +Çviäame +, + +279 +GL_NAVIFRAME_SLIDESHOW_DATA_KEY +); + +280 + `gl_sdbg +("S¹SlideShow[%p]", +cb +); + +281 ià( +cb +) { + +282 + `evas_objeù_d©a_£t +( +ad +-> +maššfo +. +Çviäame +, + +283 +GL_NAVIFRAME_SLIDESHOW_DATA_KEY +, + +284 +NULL +); + +285 (* +¡¬t_¦ideshow +è(* +d©a +); + +286 +¡¬t_¦ideshow + = +cb +; + +287 + `¡¬t_¦ideshow +( +u£r_d©a +); + +290 #ifdeà +_USE_APP_SLIDESHOW + + +291 ià( +ad +-> +ugšfo +. +b_£Ëùed_¦ideshow +) { + +292 +ad +-> +ugšfo +. +b_£Ëùed_¦ideshow + = +çl£ +; + +293 +cb + = + `evas_objeù_d©a_g‘ +( +ad +-> +maššfo +. +Çviäame +, + +294 +GL_NAVIFRAME_SELECTED_SLIDESHOW_KEY +); + +295 + `gl_sdbg +("£Ëùed_¦ideshow [%p]", +cb +); + +296 ià( +cb +) { + +297 + `evas_objeù_d©a_£t +( +ad +-> +maššfo +. +Çviäame +, + +298 +GL_NAVIFRAME_SELECTED_SLIDESHOW_KEY +, + +299 +NULL +); + +300 (* +£Ëùed_¦ideshow_upd©e +è(* +d©a +); + +301 +£Ëùed_¦ideshow_upd©e + = +cb +; + +302 + `£Ëùed_¦ideshow_upd©e +( +u£r_d©a +); + +306 + `evas_objeù_d©a_£t +( +ad +-> +maššfo +. +Çviäame +, + +307 +GL_NAVIFRAME_UG_RESULT_KEY +, +NULL +); + +308 + `evas_objeù_d©a_£t +( +ad +-> +maššfo +. +Çviäame +, + +309 +GL_NAVIFRAME_UG_UPDATE_KEY +, +NULL +); + +310 + } +} + +312 #ifdeà +_USE_APP_SLIDESHOW + + +313 ** + $__gl_ext_g‘_£Ëù_šdex +(* +d©a +, * +size +) + +315 + `GL_CHECK_NULL +( +d©a +); + +316 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +317 + `GL_CHECK_NULL +( +ad +-> +£lšfo +. +–i¡ +); + +318 +gl_™em + * +cu¼’t + = +NULL +; + +319 * +šdex + = +NULL +; + +320  +i + = 0; + +321 ** +medŸ_šdex + = +NULL +; + +322  +pos + = 0; + +323  +£l_út + = + `_gl_d©a_£Ëùed_li¡_couÁ +( +ad +); + +325 +medŸ_šdex + = (**) + `ÿÎoc +( +£l_út +, (*)); + +326 + `GL_CHECK_NULL +( +medŸ_šdex +); + +327 + `gl_dbg +("£Ëù medŸ couÁ: %d", +£l_út +); + +329  +i + = 0; i < +£l_út +; ++i) { + +330 +cu¼’t + = + `eša_li¡_Áh +( +ad +-> +£lšfo +. +–i¡ +, +i +); + +331 +šdex + = (*) + `ÿÎoc +(1, +GL_INTERGER_LEN_MAX +); + +332 ià( +cu¼’t + =ð +NULL + || cu¼’t-> +™em + =ðNULL || +šdex + == NULL) { + +333  +pos + = 0;…o < +i +; ++pos) { + +334 + `GL_FREEIF +( +medŸ_šdex +[ +pos +]); + +337 + `GL_FREEIF +( +šdex +); + +338 + `GL_FREE +( +medŸ_šdex +); + +339  +NULL +; + +341 + `gl_dbg +("Sequ’û: %d", +cu¼’t +-> +£qu’û +); + +342 + `¢´štf +( +šdex +, +GL_INTERGER_LEN_MAX +, "%d", + +343 +cu¼’t +-> +£qu’û + - 1); + +344 +medŸ_šdex +[ +i +] = +šdex +; + +345 +šdex + = +NULL +; + +348 ià( +size +) + +349 * +size + = +£l_út +; + +352 + `_gl_d©a_£Ëùed_li¡_fš®ize +( +ad +); + +353  +medŸ_šdex +; + +354 + } +} + +357  + $__gl_ext_¦ideshow_£Ëùed +(* +d©a +, +­p_cڌÞ_h + +£rviû +) + +359 + `GL_CHECK_VAL +( +£rviû +, +GL_UG_FAIL +); + +360 + `GL_CHECK_VAL +( +d©a +, +GL_UG_FAIL +); + +361 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +362 ** +medŸ_šdex + = +NULL +; + +363  +medŸ_size + = 0; + +365 +medŸ_šdex + = + `__gl_ext_g‘_£Ëù_šdex +( +ad +, & +medŸ_size +); + +366 ià( +medŸ_šdex + =ð +NULL +) { + +367 + `gl_dbgE +("Invalid select index!"); + +368  +GL_UG_FAIL +; + +370 + `gl_dbg +("S‘ s–eùed medŸs, medŸ_šdex[%p], size[%d]", +medŸ_šdex +, + +371 +medŸ_size +); + +372 + `­p_cڌÞ_add_exŒa_d©a_¬¿y +( +£rviû +, +GL_ARGC_SELECTED_FILES +, + +373 (cÚ¡ **) +medŸ_šdex +, +medŸ_size +); + +375  +i + = 0; + +376  +i + = 0; i < +medŸ_size +; ++i) { + +377 + `GL_FREEIF +( +medŸ_šdex +[ +i +]); + +379 + `GL_FREE +( +medŸ_šdex +); + +380 +medŸ_šdex + = +NULL +; + +382 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, +GL_ARGV_IV_INDEX +, + +383 +GL_ARGV_IV_INDEX_VALUE +); + +384  +GL_UG_SUCCESS +; + +385 + } +} + +388  + $__gl_ext_add_sÜtby +( +­p_cڌÞ_h + +£rviû +,  +sÜt +) + +390 + `GL_CHECK_VAL +( +£rviû +, +GL_UG_FAIL +); + +392  +sÜt +) { + +393  +GL_SORT_BY_NAME_DESC +: + +395 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, +GL_ARGV_IV_SORT_BY +, + +396 +GL_ARGV_IV_SORT_NAMEDESC +); + +397 + `gl_dbg +("Name descending"); + +399  +GL_SORT_BY_NAME_ASC +: + +401 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, +GL_ARGV_IV_SORT_BY +, + +402 +GL_ARGV_IV_SORT_NAME +); + +403 + `gl_dbg +("Name‡scending"); + +405  +GL_SORT_BY_DATE_DESC +: + +407 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, +GL_ARGV_IV_SORT_BY +, + +408 +GL_ARGV_IV_SORT_DATEDESC +); + +409 + `gl_dbg +("Date descending"); + +411  +GL_SORT_BY_DATE_ASC +: + +413 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, +GL_ARGV_IV_SORT_BY +, + +414 +GL_ARGV_IV_SORT_DATE +); + +415 + `gl_dbg +("Date‡scending"); + +419 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, +GL_ARGV_IV_SORT_BY +, + +420 +GL_ARGV_IV_SORT_NAME +); + +421 + `gl_dbg +("no sort, use default Name‡scending"); + +425 + } +} + +427  + $__gl_ext_pÝup_»¥_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +429 + `GL_CHECK +( +obj +); + +430 + `GL_CHECK +( +d©a +); + +431 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +432 + `GL_IF_DEL_OBJ +( +ad +-> +pÝupšfo +. +pÝup +); + +433 + } +} + +435  + $__gl_ext_£t_thumbs_mode +(* +d©a +, +­p_cڌÞ_h + +£rviû +,  +ty³ +) + +437 + `GL_CHECK_VAL +( +£rviû +, +GL_UG_FAIL +); + +438 + `GL_CHECK_VAL +( +d©a +, +GL_UG_FAIL +); + +441 ià( +GL_UG_IV_SLIDESHOW + =ð +ty³ + || + +442 #ifdeà +_USE_APP_SLIDESHOW + + +443 +GL_UG_IV_SLIDESHOW_SELECTED + =ð +ty³ + || + +445 +GL_UG_IV_SLIDESHOW_ALL + =ð +ty³ +) + +446 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, +GL_ARGV_IV_VIEW_MODE +, + +447 +GL_ARGV_IV_VIEW_SLIDESHOW +); + +449 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, +GL_ARGV_IV_VIEW_MODE +, + +450 +GL_ARGV_IV_VIEW_GALLERY +); + +452 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, +GL_ARGV_IV_MEDIA_TYPE +, + +453 +GL_ARGV_IV_MEDIA_ALL +); + +454 + `gl_dbg +("Mediaype: All"); + +455  +GL_UG_SUCCESS +; + +456 + } +} + +457  + $__gl_ext_®bums_£t_iv +(* +d©a +, +­p_cڌÞ_h + +£rviû +,  +ty³ +, +gl_™em + * +™em +) + +459 + `GL_CHECK_VAL +( +£rviû +, +GL_UG_FAIL +); + +460 + `GL_CHECK_VAL +( +d©a +, +GL_UG_FAIL +); + +461 +gl_þu¡” + * +cur_®bum + = + `_gl_®bums_g‘_cu¼’t +( +d©a +); + +462 + `gl_dbg +("ty³: %d", +ty³ +); + +465 ià( + `__gl_ext_£t_thumbs_mode +( +d©a +, +£rviû +, +ty³ +è=ð +GL_UG_FAIL +) + +466  +GL_UG_FAIL +; + +468 ià( +ty³ + =ð +GL_UG_IV_SLIDESHOW_ALL +) { + +469 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, +GL_ARGV_IV_ALBUM_INDEX +, + +470 +GL_ALBUM_ALL_ID +); + +471 } ià( +cur_®bum + && cur_®bum-> +þu¡” + && + +472 +cur_®bum +-> +þu¡” +-> +uuid +) { + +473 + `gl_sdbg +("®bum id: %s", +cur_®bum +-> +þu¡” +-> +uuid +); + +475 ià(! + `¡rcmp +( +GL_ALBUM_FAVOURITE_ID +, +cur_®bum +-> +þu¡” +-> +uuid +)) { + +476 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, +GL_ARGV_IV_VIEW_BY +, +GL_ARGV_IV_VIEW_BY_FAVORITES +); + +478 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, +GL_ARGV_IV_VIEW_BY +, +GL_ARGV_IV_VIEW_BY_FOLER +); + +481 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, +GL_ARGV_IV_ALBUM_INDEX +, + +482 +cur_®bum +-> +þu¡” +-> +uuid +); + +484  +GL_UG_SUCCESS +; + +485 + } +} + +487  + $__gl_ext_®bums_£t_iv_£Ëù_mode +(* +d©a +, +­p_cڌÞ_h + +£rviû +,  +ty³ +) + +489 + `GL_CHECK_VAL +( +£rviû +, +GL_UG_FAIL +); + +490 + `GL_CHECK_VAL +( +d©a +, +GL_UG_FAIL +); + +491 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +492 +gl_þu¡” + * +cur_®bum + = + `_gl_®bums_g‘_cu¼’t +( +d©a +); + +493 + `gl_dbg +("ty³: %d", +ty³ +); + +496 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, +GL_ARGV_IV_VIEW_MODE +, + +499 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, +GL_ARGV_IV_MEDIA_TYPE +, + +500 +GL_ARGV_IV_MEDIA_ALL +); + +502  +b_mode + = + `_gl_ù¾_g‘_b_mode +( +ad +); + +503  +b_mode +) { + +504  +GL_CTRL_TAB_ALBUMS +: + +505 ià( +cur_®bum + && cur_®bum-> +þu¡” + && + +506 +cur_®bum +-> +þu¡” +-> +uuid +) { + +507 ià(! + `¡rcmp +( +GL_ALBUM_ALL_ID +, +cur_®bum +-> +þu¡” +-> +uuid +)) { + +508 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, +GL_ARGV_IV_VIEW_BY +, +GL_ARGV_IV_VIEW_BY_ALL +); + +509 } ià(! + `¡rcmp +( +GL_ALBUM_FAVOURITE_ID +, +cur_®bum +-> +þu¡” +-> +uuid +)) { + +510 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, +GL_ARGV_IV_VIEW_BY +, +GL_ARGV_IV_VIEW_BY_FAVORITES +); + +512 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, +GL_ARGV_IV_VIEW_BY +, +GL_ARGV_IV_VIEW_BY_FOLER +); + +515 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, +GL_ARGV_IV_ALBUM_INDEX +, + +516 +cur_®bum +-> +þu¡” +-> +uuid +); + +517 ià( +ad +-> +gridšfo +. +medŸ_di¥Ïy_Üd” + =ð +ORDER_ASC +) { + +518 +ad +-> +ugšfo +. +sÜt_ty³ + = +GL_SORT_BY_DATE_ASC +; + +519 } ià( +ad +-> +gridšfo +. +medŸ_di¥Ïy_Üd” + =ð +ORDER_DESC +) { + +520 +ad +-> +ugšfo +. +sÜt_ty³ + = +GL_SORT_BY_DATE_DESC +; + +524  +GL_CTRL_TAB_TIMELINE +: + +525 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, +GL_ARGV_IV_VIEW_BY +, +GL_ARGV_IV_VIEW_BY_ALL +); + +526 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, +GL_ARGV_IV_ALBUM_INDEX +, +GL_ALBUM_ALL_ID +); + +529 + `gl_dbgE +("Wrongab mode!"); + +531  +GL_UG_SUCCESS +; + +532 + } +} + +534  + $_gl_ext_lßd_iv_£Ëùed_li¡ +( +­p_cڌÞ_h + +£rviû +, * +d©a +) + +536 + `GL_CHECK_VAL +( +d©a +, +GL_UG_FAIL +); + +537 + `GL_CHECK_VAL +( +£rviû +, +GL_UG_FAIL +); + +538 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +539  +i +; + +540 +gl_™em + * +g™em + = +NULL +; + +541  +couÁ + = + `eša_li¡_couÁ +( +ad +-> +£lšfo +. +–i¡ +); + +542  +couÁ_çv +ð + `eša_li¡_couÁ +( +ad +-> +£lšfo +. +çv_–i¡ +); + +544 ** +v®ue + = +NULL +; + +545 ** +v®ue_çv + = +NULL +; + +546 ià( +couÁ + > 0) { + +547 ( +v®ue +èð(**) + `m®loc +Ð +couÁ + *  (*)); + +548 ià(! +v®ue +) { + +549  +GL_UG_FAIL +; + +552 ià( +couÁ_çv + > 0) { + +553 ( +v®ue_çv +èð(**) + `m®loc +Ð +couÁ_çv + *  (*)); + +554 ià(! +v®ue_çv +) { + +555  +GL_UG_FAIL +; + +559  +i + = 0; i < +couÁ +; i++) { + +560 +g™em + = + `eša_li¡_Áh +( +ad +-> +£lšfo +. +–i¡ +, +i +); + +561 ià( +g™em +) { + +562 ià( +g™em +-> +™em +) { + +563 ( +v®ue +)[ +i +] = + `¡rdup +( +g™em +-> +™em +-> +fže_u¾ +); + +567  +i + = 0; i < +couÁ_çv +; i++) { + +568 +g™em + = + `eša_li¡_Áh +( +ad +-> +£lšfo +. +çv_–i¡ +, +i +); + +569 ià( +g™em +) { + +570 ià( +g™em +-> +™em +) { + +571 ( +v®ue_çv +)[ +i +] = + `¡rdup +( +g™em +-> +™em +-> +fže_u¾ +); + +575 ià( +couÁ + > 0) { + +576 + `­p_cڌÞ_add_exŒa_d©a_¬¿y +( +£rviû +, "Selected index", + +577 +v®ue +, +couÁ +); + +579 ià( +couÁ_çv + > 0) { + +580 + `­p_cڌÞ_add_exŒa_d©a_¬¿y +( +£rviû +, "Selected index fav", + +581 +v®ue_çv +, +couÁ_çv +); + +585 ià( +v®ue +) { + +586  +i + = 0; i < +couÁ +; i++) { + +587 + `ä“ +( +v®ue +[ +i +]); + +589 + `ä“ +( +v®ue +); + +592 ià( +v®ue_çv +) { + +593  +i + = 0; i < +couÁ_çv +; i++) { + +594 + `ä“ +( +v®ue_çv +[ +i +]); + +596 + `ä“ +( +v®ue_çv +); + +599  +GL_UG_SUCCESS +; + +600 + } +} + +602  + $gl_ext_lßd_iv_time_ug_£Ëù_mode +(* +d©a +, +gl_medŸ_s + * +™em +, +gl_ext_iv_ty³ + +ty³ +,  +sÜt_ty³ +) + +604 + `GL_CHECK_VAL +( +d©a +, +GL_UG_FAIL +); + +605 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +607  +»t +; + +608 ià( +sÜt_ty³ + =ð +ORDER_ASC +) { + +609 +ad +-> +ugšfo +. +sÜt_ty³ + = +GL_SORT_BY_DATE_ASC +; + +610 } ià( +sÜt_ty³ + =ð +ORDER_DESC +) { + +611 +ad +-> +ugšfo +. +sÜt_ty³ + = +GL_SORT_BY_DATE_DESC +; + +613 +»t + = + `gl_ext_lßd_iv_ug_£Ëù_mode + ( +d©a +, +™em +, +ty³ +); + +615  +»t +; + +616 + } +} + +618  + $gl_ext_lßd_iv_ug_£Ëù_mode +(* +d©a +, +gl_medŸ_s + * +™em +, +gl_ext_iv_ty³ + +ty³ +) + +620 + `GL_CHECK_VAL +( +™em +, +GL_UG_FAIL +); + +621 + `GL_CHECK_VAL +( +d©a +, +GL_UG_FAIL +); + +622 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +623 +­p_cڌÞ_h + +£rviû + = +NULL +; + +625 ià( +ad +-> +ugšfo +. +ug +) { + +626 + `gl_dbgE +("A̗dyƒx™ somUG c®Ëd by me,y³(%d)!", +ty³ +); + +627  +GL_UG_FAIL +; + +630 + `­p_cڌÞ_ü—‹ +(& +£rviû +); + +631 + `GL_CHECK_VAL +( +£rviû +, +GL_UG_FAIL +); + +633 +ad +-> +ugšfo +. +ug_ty³ + = +GL_UG_IMAGEVIEWER +; + +634 +ad +-> +ugšfo +. +iv_ty³ + = +ty³ +; + +636  +»t + = +GL_UG_FAIL +; + +637 +»t + = + `__gl_ext_®bums_£t_iv_£Ëù_mode +( +d©a +, +£rviû +, +ty³ +); + +639 ià( +»t + =ð +GL_UG_FAIL +) { + +640 + `gl_dbgW +("Service data setting failed!"); + +641 + `­p_cڌÞ_de¡roy +( +£rviû +); + +642  +GL_UG_FAIL +; + +645 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, +GL_ARGV_IV_PATH +, +™em +-> +fže_u¾ +); + +646 + `__gl_ext_add_sÜtby +( +£rviû +, +ad +-> +ugšfo +. +sÜt_ty³ +); + +648  +b_mode + = + `_gl_ù¾_g‘_b_mode +( +ad +); + +649  +b_mode +) { + +650  +GL_CTRL_TAB_ALBUMS +: + +651 + `_gl_ext_lßd_iv_£Ëùed_li¡ +( +£rviû +, +ad +); + +653  +GL_CTRL_TAB_TIMELINE +: + +654 + `_gl_ext_lßd_time_iv_£Ëùed_li¡ +( +£rviû +, +ad +); + +657 + `gl_dbgE +("Wrongab mode!"); + +660 +»t + = + `­p_cڌÞ_£t_Ïunch_mode +( +£rviû +, +APP_CONTROL_LAUNCH_MODE_GROUP +); + +661 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +662 + `gl_dbgE +("set†aunch mode failed"); + +664 +»t + = + `­p_cڌÞ_£t_­p_id +( +£rviû +, +GL_UG_PKG_IV +); + +665 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +666 + `gl_dbgE +("set‡ppid failed"); + +668 +»t + = + `­p_cڌÞ_£nd_Ïunch_»que¡ +( +£rviû +, +__gl_­pcڌÞ_£Ëù_»suÉ_cb +, (*) +ad +); + +671 + `­p_cڌÞ_de¡roy +( +£rviû +); + +673 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +674 + `gl_dbgE +("ug_create failed!"); + +675 + `_gl_pÝup_ü—‹ +( +d©a +, +NULL +, +GL_STR_ID_OPERATION_FAILED +, + +676 +GL_STR_ID_CLOSE +, +__gl_ext_pÝup_»¥_cb +, +d©a +, + +677 +NULL +, NULL, NULL, NULL, NULL, NULL); + +678  +GL_UG_FAIL +; + +680 + `–m_objeù_Œ“_focus_®low_£t +( +ad +-> +maššfo +. +Ïyout +, +EINA_FALSE +); + +681 +ad +-> +ugšfo +. +b_ug_Ïunched + = +Œue +; + +682  +GL_UG_SUCCESS +; + +684 + } +} + +687  + $gl_ext_lßd_iv_ug +(* +d©a +, +gl_™em + * +™em +, +gl_ext_iv_ty³ + +ty³ +) + +689 + `GL_CHECK_VAL +( +™em +, +GL_UG_FAIL +); + +690 + `GL_CHECK_VAL +( +™em +->™em, +GL_UG_FAIL +); + +691 + `GL_CHECK_VAL +( +d©a +, +GL_UG_FAIL +); + +692 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +695 +­p_cڌÞ_h + +£rviû + = +NULL +; + +696 + `gl_dbg +("ty³: %d", +ty³ +); + +698 ià( +ad +-> +ugšfo +. +ug +) { + +699 + `gl_dbgE +("A̗dyƒx™ somUG c®Ëd by me,y³(%d)!", +ty³ +); + +700  +GL_UG_FAIL +; + +703 + `­p_cڌÞ_ü—‹ +(& +£rviû +); + +704 + `GL_CHECK_VAL +( +£rviû +, +GL_UG_FAIL +); + +707 +ad +-> +ugšfo +. +ug_ty³ + = +GL_UG_IMAGEVIEWER +; + +708 +ad +-> +ugšfo +. +iv_ty³ + = +ty³ +; + +710  +»t + = +GL_UG_FAIL +; + +711  +b_mode + = + `_gl_ù¾_g‘_b_mode +( +ad +); + +712  +b_mode +) { + +713  +GL_CTRL_TAB_ALBUMS +: + +714 +»t + = + `__gl_ext_®bums_£t_iv +( +d©a +, +£rviû +, +ty³ +, +™em +); + +716  +GL_CTRL_TAB_TIMELINE +: + +717 +»t + = + `__gl_ext_®bums_£t_iv +( +d©a +, +£rviû +, +ty³ +, +™em +); + +720 + `gl_dbgE +("Wrongab mode!"); + +723 ià( +»t + =ð +GL_UG_FAIL +) { + +724 + `gl_dbgW +("Service data setting failed!"); + +725 + `­p_cڌÞ_de¡roy +( +£rviû +); + +726  +GL_UG_FAIL +; + +729 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, +GL_ARGV_IV_PATH +, +™em +->™em-> +fže_u¾ +); + +732 ià( +ad +-> +gridšfo +. +medŸ_di¥Ïy_Üd” + =ð +ORDER_ASC +) { + +733 +ad +-> +ugšfo +. +sÜt_ty³ + = +GL_SORT_BY_DATE_ASC +; + +734 } ià( +ad +-> +gridšfo +. +medŸ_di¥Ïy_Üd” + =ð +ORDER_DESC +) { + +735 +ad +-> +ugšfo +. +sÜt_ty³ + = +GL_SORT_BY_DATE_DESC +; + +737 + `__gl_ext_add_sÜtby +( +£rviû +, +ad +-> +ugšfo +. +sÜt_ty³ +); + +739 #ifdeà +_USE_APP_SLIDESHOW + + +740 ià( +ty³ + =ð +GL_UG_IV_SLIDESHOW_SELECTED +) { + +741 ià( + `__gl_ext_¦ideshow_£Ëùed +( +ad +, +£rviû +è=ð +GL_UG_FAIL +) { + +742 + `gl_dbgE +("Failedo slideshow selected files!"); + +743 + `­p_cڌÞ_de¡roy +( +£rviû +); + +744  +GL_UG_FAIL +; + +746 +ad +-> +ugšfo +. +b_£Ëùed_¦ideshow + = +Œue +; + +749 ià( +ty³ + =ð +GL_UG_IV_SLIDESHOW_ALL + || + +750 +GL_VIEW_ALBUMS + =ð + `gl_g‘_v›w_mode +( +d©a +)) { + +751 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, +GL_ARGV_IV_INDEX +, + +752 +GL_ARGV_IV_INDEX_VALUE +); + +753 } ià( +ty³ + =ð +GL_UG_IV + ||y³ =ð +GL_UG_IV_SLIDESHOW +) { + +754  +£qu’û_¡r +[ +GL_INTERGER_LEN_MAX +] = { 0, }; + +755 + `eša_cÚv”t_™ß +( +™em +-> +£qu’û +, +£qu’û_¡r +); + +756 + `gl_dbg +("£qu’û : %s", +£qu’û_¡r +); + +757 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, +GL_ARGV_IV_INDEX +, +£qu’û_¡r +); + +759 +»t + = + `­p_cڌÞ_£t_Ïunch_mode +( +£rviû +, +APP_CONTROL_LAUNCH_MODE_GROUP +); + +760 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +761 + `gl_dbgE +("set†aunch mode failed"); + +763 +»t + = + `­p_cڌÞ_£t_­p_id +( +£rviû +, +GL_UG_PKG_IV +); + +764 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +765 + `gl_dbgE +("set‡ppid failed"); + +767 +»t + = + `­p_cڌÞ_£nd_Ïunch_»que¡ +( +£rviû +, +__gl_­pcڌÞ_»suÉ_cb +, (*) +ad +); + +770 + `­p_cڌÞ_de¡roy +( +£rviû +); + +772 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +773 + `gl_dbgE +("ug_create failed!"); + +774 + `_gl_pÝup_ü—‹ +( +d©a +, +NULL +, +GL_STR_ID_OPERATION_FAILED +, + +775 +GL_STR_ID_CLOSE +, +__gl_ext_pÝup_»¥_cb +, +d©a +, + +776 +NULL +, NULL, NULL, NULL, NULL, NULL); + +777  +GL_UG_FAIL +; + +779 + `–m_objeù_Œ“_focus_®low_£t +( +ad +-> +maššfo +. +Ïyout +, +EINA_FALSE +); + +780 +ad +-> +ugšfo +. +b_ug_Ïunched + = +Œue +; + +781  +GL_UG_SUCCESS +; + +783 + } +} + +786  + $_gl_ext_lßd_iv_tim–še +(* +d©a +, cÚ¡ * +·th +,  +£qu’û +,  +sÜt_ty³ +) + +788 + `GL_CHECK_VAL +( +d©a +, +GL_UG_FAIL +); + +789  +»t + = +GL_UG_FAIL +; + +790 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +793 +­p_cڌÞ_h + +£rviû + = +NULL +; + +795 ià( +ad +-> +ugšfo +. +ug +) { + +796 + `gl_dbgE +("Alreadyƒxits some UG called by me!"); + +797  +GL_UG_FAIL +; + +800 + `­p_cڌÞ_ü—‹ +(& +£rviû +); + +801 + `GL_CHECK_VAL +( +£rviû +, +GL_UG_FAIL +); + +804 +ad +-> +ugšfo +. +ug_ty³ + = +GL_UG_IMAGEVIEWER +; + +805 +ad +-> +ugšfo +. +iv_ty³ + = +GL_UG_IV +; + +808 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, +GL_ARGV_IV_MEDIA_TYPE +, + +809 +GL_ARGV_IV_MEDIA_ALL +); + +810 + `gl_dbg +("Mediaype: All"); + +812 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, +GL_ARGV_IV_VIEW_BY +, + +813 +GL_ARGV_IV_VIEW_BY_ALL +); + +814 + `gl_dbg +("View By: All"); + +816 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, +GL_ARGV_IV_PATH +, +·th +); + +819 ià( +sÜt_ty³ + =ð +ORDER_ASC +) { + +820 +ad +-> +ugšfo +. +sÜt_ty³ + = +GL_SORT_BY_DATE_ASC +; + +821 } ià( +sÜt_ty³ + =ð +ORDER_DESC +) { + +822 +ad +-> +ugšfo +. +sÜt_ty³ + = +GL_SORT_BY_DATE_DESC +; + +824 + `__gl_ext_add_sÜtby +( +£rviû +, +ad +-> +ugšfo +. +sÜt_ty³ +); + +825  +£qu’û_¡r +[ +GL_INTERGER_LEN_MAX +] = { 0, }; + +826 + `eša_cÚv”t_™ß +( +£qu’û +, +£qu’û_¡r +); + +827 + `gl_dbg +("£qu’û: %s", +£qu’û_¡r +); + +828 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, +GL_ARGV_IV_INDEX +, +£qu’û_¡r +); + +829 +»t + = + `­p_cڌÞ_£t_Ïunch_mode +( +£rviû +, +APP_CONTROL_LAUNCH_MODE_GROUP +); + +830 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +831 + `gl_dbgE +("set†aunch mode failed"); + +834 +»t + = + `­p_cڌÞ_£t_­p_id +( +£rviû +, +GL_UG_PKG_IV +); + +835 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +836 + `gl_dbgE +("set‡ppid failed"); + +838 +»t + = + `­p_cڌÞ_£nd_Ïunch_»que¡ +( +£rviû +, +__gl_­pcڌÞ_»suÉ_cb +, (*) +ad +); + +841 + `­p_cڌÞ_de¡roy +( +£rviû +); + +843 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +844 + `gl_dbgE +("ug_create failed!"); + +845 + `_gl_pÝup_ü—‹ +( +d©a +, +NULL +, +GL_STR_ID_OPERATION_FAILED +, + +846 +GL_STR_ID_CLOSE +, +__gl_ext_pÝup_»¥_cb +, +d©a +, + +847 +NULL +, NULL, NULL, NULL, NULL, NULL); + +848  +GL_UG_FAIL +; + +853 + `–m_objeù_Œ“_focus_®low_£t +( +ad +-> +maššfo +. +Ïyout +, +EINA_FALSE +); + +854 +ad +-> +ugšfo +. +b_ug_Ïunched + = +Œue +; + +855  +GL_UG_SUCCESS +; + +858 + } +} + +860  + $gl_ext_lßd_ug +(* +d©a +, +gl_ext_ug_ty³ + +ty³ +) + +862 + `GL_CHECK_VAL +( +d©a +, +GL_UG_FAIL +); + +863  +»t + = +GL_UG_FAIL +; + +864 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +865 + `GL_CHECK_VAL +( +ad +-> +maššfo +. +wš +, +GL_UG_FAIL +); + +866 +­p_cڌÞ_h + +£rviû + = +NULL +; + +868 ià( +ad +-> +ugšfo +. +ug +) { + +869 + `gl_dbg +("A̗dyƒx™ somUG, Reque¡y³(%d)", +ty³ +); + +870  +GL_UG_FAIL +; + +873 +ad +-> +ugšfo +. +ug_ty³ + = +ty³ +; + +874 +ad +-> +ugšfo +. +d©a + = +NULL +; + +876 + `­p_cڌÞ_ü—‹ +(& +£rviû +); + +877 + `GL_CHECK_VAL +( +£rviû +, +GL_UG_FAIL +); + +879  +ty³ +) { + +880  +GL_UG_GALLERY_SETTING_SLIDESHOW +: + +881 +ad +-> +ugšfo +. +b_¡¬t_¦ideshow + = +çl£ +; + +882 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, "ShowStartBtn", "TRUE"); + +883 +»t + = + `­p_cڌÞ_£t_­p_id +( +£rviû +, +GL_UG_PKG_GALLERY_SETTING +); + +884 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +885 + `gl_dbgE +("service create failed"); + +887 +»t + = + `­p_cڌÞ_£nd_Ïunch_»que¡ +( +£rviû +, +__gl_­pcڌÞ_»suÉ_cb +, (*) +ad +); + +889  +GL_UG_GALLERY_SETTING +: + +890 +»t + = + `­p_cڌÞ_£t_­p_id +( +£rviû +, +GL_UG_PKG_GALLERY_SETTING +); + +891 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +892 + `gl_dbgE +("service create failed"); + +894 +»t + = + `­p_cڌÞ_£nd_Ïunch_»que¡ +( +£rviû +, +__gl_­pcڌÞ_»suÉ_cb +, (*) +ad +); + +897 + `gl_dbgE +("Wrong UGype!"); + +898  +EXT_UG_FAILED +; + +900 +ad +-> +ugšfo +. +ug + = +£rviû +; + +902 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +903 + `gl_dbgE +("ug_create failed!"); + +904 + `_gl_pÝup_ü—‹ +( +d©a +, +NULL +, +GL_STR_ID_OPERATION_FAILED +, + +905 +GL_STR_ID_CLOSE +, +__gl_ext_pÝup_»¥_cb +, +d©a +, + +906 +NULL +, NULL, NULL, NULL, NULL, NULL); + +907  +GL_UG_FAIL +; + +909 + `gl_dbgW +("ug_create success!"); + +912 + `–m_objeù_Œ“_focus_®low_£t +( +ad +-> +maššfo +. +Ïyout +, +EINA_FALSE +); + +913  +GL_UG_SUCCESS +; + +916 +EXT_UG_FAILED +: + +918 + `gl_dbgE +("EXT_UG_FAILED!"); + +919 + `­p_cڌÞ_de¡roy +( +£rviû +); + +920 + `_gl_pÝup_ü—‹ +( +d©a +, +NULL +, +GL_STR_ID_OPERATION_FAILED +, + +921 +GL_STR_ID_CLOSE +, +__gl_ext_pÝup_»¥_cb +, +d©a +, + +922 +NULL +, NULL, NULL, NULL, NULL, NULL); + +923  +GL_UG_FAIL +; + +924 + } +} + + @src/util/gl-file-util.c + +18  + ~"gl-fže-utž.h +" + +19  + ~"gl-debug.h +" + +20  + ~ + +21  + ~ + +23  +mode_t + + gdeçuÉ_mode + = +S_IRUSR + | +S_IWUSR + | +S_IXUSR + | +S_IRGRP + | +S_IXGRP + | +S_IROTH + | +S_IXOTH +; + +25 * + $gl_fže_dœ_g‘ +(cÚ¡  +·th +[]) + +27 * +p + = +NULL +; + +28  +buf +[256] = {0,}; + +29  +¡© + +šfo + = {0,}; + +31 ià( + `¡© +( +·th +, & +šfo +) == 0) { + +32 + `¡ºýy +( +buf +, +·th +, 256); + +33 +buf +[256 - 1] = 0; + +34 +p + = + `dœÇme +( +buf +); + +35  + `¡rdup +( +p +); + +39 + } +} + +41  + $gl_fže_exi¡s +(cÚ¡ * +·th +) + +43  +¡© + +šfo + = {0,}; + +45 ià( + `¡© +( +·th +, & +šfo +) == 0) + +49 + } +} + +51  + $gl_fže_is_dœ +(cÚ¡ * +·th +) + +53  +¡© + +šfo + = {0,}; + +55 ià( + `¡© +( +·th +, & +šfo +) == 0) { + +56 ià( + `S_ISDIR +( +šfo +. +¡_mode +)) { + +62 + } +} + +64  + $gl_fže_dœ_is_em±y +(cÚ¡ * +·th +) + +66  +dœ’t + * +dp + = +NULL +; + +67 +DIR + * +dœp + = +NULL +; + +68  +dœ’t + +’t_¡ruù +; + +70 +dœp + = + `ݒdœ +( +·th +); + +71 ià(! +dœp +) + +74 ( + `»addœ_r +( +dœp +, & +’t_¡ruù +, & +dp +) == 0) && dp) { + +75 ià(( + `¡rcmp +( +dp +-> +d_Çme +, ".")) && (strcmp(dp->d_name, ".."))) { + +76 + `þo£dœ +( +dœp +); + +80 + `þo£dœ +( +dœp +); + +82 + } +} + +84  + $gl_mkdœ +(cÚ¡ * +dœ +) + +86 ià( + `mkdœ +( +dœ +, +deçuÉ_mode +) < 0) + +90 + } +} + +93 + $gl_mk·th_if_nÙ_exi¡s +(cÚ¡ * +·th +) + +95  +¡© + +¡ + = {0,}; + +96 ià( + `¡© +( +·th +, & +¡ +) < 0) + +97  + `gl_mkdœ +( +·th +); + +98 ià(! + `S_ISDIR +( +¡ +. +¡_mode +)) + +102 + } +} + +104  + $gl_fže_mk·th +(cÚ¡ * +·th +) + +106  +ss +[500] = {0,}; + +107  +i + = 0; + +109 ià( + `gl_fže_is_dœ +( +·th +)) + +112  +i + = 0; +·th +[i] !ð'\0'; +ss +[i] =…ath[i], i++) { + +113 ià( +i + =ð( +ss +) - 1) + +116 ià(( +·th +[ +i +] == '/') && (i > 0)) { + +117 +ss +[ +i +] = '\0'; + +118 ià(! + `gl_mk·th_if_nÙ_exi¡s +( +ss +)) + +122 +ss +[ +i +] = '\0'; + +124  + `gl_mk·th_if_nÙ_exi¡s +( +ss +); + +125 + } +} + +127  + $gl_fže_uƚk + (cÚ¡ * +fž’ame +) + +129  +¡©us + = + `uƚk +( +fž’ame +); + +130 ià( +¡©us + < 0) + +134 + } +} + +136  + $gl_fže_size +(cÚ¡ * +fž’ame +) + +138  +¡© + +šfo + = {0,}; + +139 ià( + `¡© +( +fž’ame +, & +šfo +) == 0) { + +140 ià(! + `S_ISDIR +( +šfo +. +¡_mode +)) + +141  +šfo +. +¡_size +; + +145 + } +} + +147  + $gl_fže_rmdœ +(cÚ¡ * +fž’ame +) + +149  +¡©us + = + `rmdœ +( +fž’ame +); + +150 ià( +¡©us + < 0) + +154 + } +} + +156 +Eša_Li¡ + * + $gl_fže_ls +(cÚ¡ * +dœ +) + +158 * +f +; + +159 +DIR + * +dœp + = +NULL +; + +160  +dœ’t + * +dp + = +NULL +; + +161 +Eša_Li¡ + * +li¡ + = +NULL +; + +162  +dœ’t + +’t_¡ruù +; + +164 +dœp + = + `ݒdœ +( +dœ +); + +165 ià(! +dœp +) + +166  +NULL +; + +168 ( + `»addœ_r +( +dœp +, & +’t_¡ruù +, & +dp +) == 0) && dp) { + +169 ià(( + `¡rcmp +( +dp +-> +d_Çme + , ".")) && (strcmp(dp->d_name , ".."))) { + +170 +f + = + `¡rdup +( +dp +-> +d_Çme +); + +171 +li¡ + = + `eša_li¡_­³nd +Öi¡ , +f +); + +174 + `þo£dœ +( +dœp +); + +176 +li¡ + = + `eša_li¡_sÜt +Öi¡, + `eša_li¡_couÁ +Öi¡), + `EINA_COMPARE_CB +( +¡rcÞl +)); + +178  +li¡ +; + +179 + } +} + +181  + $gl_fže_»cursive_rm +(cÚ¡ * +dœ +) + +183  +buf +[ +PATH_MAX +] = {0,}; + +184  +dœ’t + * +dp + = +NULL +; + +185 +DIR + * +dœp + = +NULL +; + +186  +dœ’t + +’t_¡ruù +; + +188 ià( + `»adlšk +( +dœ +, +buf +, (buf)) > 0) { + +189  + `gl_fže_uƚk +( +dœ +); + +192  +»t + = + `gl_fže_is_dœ +( +dœ +); + +193 ià( +»t +) { + +194 +»t + = 1; + +195 +dœp + = + `ݒdœ +( +dœ +); + +196 ià( +dœp +) { + +197 ( + `»addœ_r +( +dœp +, & +’t_¡ruù +, & +dp +) == 0) + +198 && +dp +) { + +199 ià(( + `¡rcmp +( +dp +-> +d_Çme + , ".")) && (strcmp(dp->d_name, ".."))) { + +200 ià(! + `gl_fže_»cursive_rm +( +dp +-> +d_Çme +)) + +201 +»t + = 0; + +204 + `þo£dœ +( +dœp +); + +207 ià(! + `gl_fže_rmdœ +( +dœ +)) + +208 +»t + = 0; + +210  +»t +; + +212  + `gl_fže_uƚk +( +dœ +); + +214 + } +} + +216  + $gl_fže_ý +(cÚ¡ * +¤c +,cÚ¡ * +d¡ +) + +218 +FILE + * +f1 + = +NULL +; + +219 +FILE + * +f2 + = +NULL +; + +220  +buf +[16384] = {0,}; + +221  +»®·th1 +[256] = {0,}; + +222  +»®·th2 +[256] = {0,}; + +223 +size_t + +num +; + +224  +»t + = 1; + +226 ià(! + `»®·th +( +¤c +, +»®·th1 +)) + +229 ià( + `»®·th +( +d¡ +, +»®·th2 +è&& ! + `¡rcmp +( +»®·th1 +,„ealpath2)) + +232 +f1 + = + `fݒ +( +¤c +, "rb"); + +233 ià(! +f1 +) + +236 +f2 + = + `fݒ +( +d¡ +, "wb"); + +237 ià(! +f2 +) { + +238 + `fþo£ +( +f1 +); + +242 ( +num + = + `ä—d +( +buf +, 1, (buf), +f1 +)) > 0) { + +243 ià( + `fwr™e +( +buf +, 1, +num +, +f2 +) !=‚um) + +244 +»t + = 0; + +247 + `fþo£ +( +f1 +); + +248 + `fþo£ +( +f2 +); + +250  +»t +; + +251 + } +} + +253  + $gl_fže_mv +(cÚ¡ * +¤c +, cÚ¡ * +d¡ +) + +255  +¡© + +šfo + = {0,}; + +256 ià( + `¡© +( +d¡ +, & +šfo +) == 0) + +259 ià( + `»Çme +( +¤c +, +d¡ +)) { + +260 + `mem£t +(& +šfo +, 0x00, ( +¡© +)); + +261 ià( + `¡© +( +¤c +, & +šfo +) == 0) { + +262 ià( + `S_ISREG +( +šfo +. +¡_mode +)) { + +263 + `gl_fže_ý +( +¤c +, +d¡ +); + +264 + `chmod +( +d¡ +, +šfo +. +¡_mode +); + +265 + `uƚk +( +¤c +); + +272 + } +} + + @src/util/gl-fs.c + +18  + ~ + +19  + ~ + +20  + ~ + +21  + ~<”ºo.h +> + +22  + ~ + +23  + ~ + +24  + ~"gl-fs.h +" + +25  + ~"g®Ëry.h +" + +26  + ~"gl-debug.h +" + +27  + ~"gl-th»ad-utž.h +" + +28  + ~"gl-fže-utž.h +" + +30  + $__gl_fs_ä“_node +( +gl_node_šfo_s + * +²ode +) + +32 + `GL_CHECK_VAL +( +²ode +, -1); + +33 ià( +²ode +-> +·th +) { + +34 + `g_ä“ +( +²ode +-> +·th +); + +35 +²ode +-> +·th + = +NULL +; + +37 ià( +²ode +-> +Çme +) { + +38 + `g_ä“ +( +²ode +-> +Çme +); + +39 +²ode +-> +Çme + = +NULL +; + +41 + `g_ä“ +( +²ode +); + +43 + } +} + +45  + $__gl_fs_þ—r_li¡ +( +Eša_Li¡ + ** +–i¡ +) + +47 + `GL_CHECK_VAL +( +–i¡ +, -1); + +48 +gl_node_šfo_s + * +²ode + = +NULL +; + +49 ià(* +–i¡ +) { + +50 + `EINA_LIST_FREE +(* +–i¡ +, +²ode +) { + +51 + `__gl_fs_ä“_node +( +²ode +); + +52 +²ode + = +NULL +; + +54 * +–i¡ + = +NULL +; + +57 + } +} + +60  + $__gl_fs_com·» +(cÚ¡ * +d©a1 +, cÚ¡ * +d©a2 +) + +62 +gl_node_šfo_s + * +²ode1 + = (gl_node_šfo_ *) +d©a1 +; + +63 +gl_node_šfo_s + * +²ode2 + = (gl_node_šfo_ *) +d©a2 +; + +65  +»suÉ + = -( +²ode1 +-> +mtime + - +²ode2 +->mtime); + +66 + `gl_dbg +("mtime1[%d], mtime2[%d],„esuÉ[%d]", +²ode1 +-> +mtime +, + +67 +²ode2 +-> +mtime +, +»suÉ +); + +68  +»suÉ +; + +69 + } +} + +71  + $__gl_fs_»ad_dœ +(* +·th +, +Eša_Li¡ + ** +dœ_li¡ +, + +72 +Eša_Li¡ + ** +fže_li¡ +) + +74 + `GL_CHECK_VAL +( +fže_li¡ +, -1); + +75 + `GL_CHECK_VAL +( +dœ_li¡ +, -1); + +76 + `GL_CHECK_VAL +( +·th +, -1); + +78 +DIR + * +pdœ + = +NULL +; + +79  +dœ’t + * +’t + = +NULL +; + +80  +dœ’t + +’t_¡ruù +; + +81  +couÁ + = 0; + +82 * +chžd·th + = +NULL +; + +83  +ý_Ën + = 0; + +84 +gl_node_šfo_s + * +²ode + = +NULL +; + +85  +cݛdnum + = 0; + +87 +pdœ + = + `ݒdœ +( +·th +); + +88 + `GL_CHECK_VAL +( +pdœ +, -1); + +90 ( + `»addœ_r +( +pdœ +, & +’t_¡ruù +, & +’t +) == 0) &&ƒnt) { + +91 ià( + `g_¡rcmp0 +( +’t +-> +d_Çme +, ".") == 0 || + +92 + `g_¡rcmp0 +( +’t +-> +d_Çme +, "..") == 0) { + +96 ià(( +’t +-> +d_ty³ + & +DT_DIR +è=ð0 && (’t->d_ty³ & +DT_REG +) == 0) + +100 +ý_Ën + = + `¡¾’ +( +·th +è+ 1 + sŒËn( +’t +-> +d_Çme +) + 1; + +101 +chžd·th + = + `g_Ãw0 +(, +ý_Ën +); + +102 ià( +chžd·th + =ð +NULL +) + +105 +cݛdnum + = + `g_¢´štf +( +chžd·th +, +ý_Ën +, "%s/%s", +·th +, + +106 +’t +-> +d_Çme +); + +107 ià( +cݛdnum + < 0) { + +108 + `g_ä“ +( +chžd·th +); + +109 +chžd·th + = +NULL +; + +113 +²ode + = + `g_Ãw0 +( +gl_node_šfo_s +, 1); + +114 ià( +²ode + =ð +NULL +) { + +115 + `g_ä“ +( +chžd·th +); + +116 +chžd·th + = +NULL +; + +120 +²ode +-> +·th + = + `g_¡rdup +(path); + +122 +²ode +-> +Çme + = + `g_¡rdup +( +’t +-> +d_Çme +); + +124 ià( + `_gl_fs_g‘_fže_¡© +( +chžd·th +, & +²ode +) < 0) { + +125 + `g_ä“ +( +²ode +); + +126 +²ode + = +NULL +; + +127 + `g_ä“ +( +chžd·th +); + +128 +chžd·th + = +NULL +; + +131 + `g_ä“ +( +chžd·th +); + +132 +chžd·th + = +NULL +; + +134 ià( +’t +-> +d_ty³ + & +DT_DIR +) + +135 * +dœ_li¡ + = + `eša_li¡_­³nd +(*dœ_li¡, +²ode +); + +137 * +fže_li¡ + = + `eša_li¡_­³nd +(*fže_li¡, +²ode +); + +138 +couÁ +++; + +140 + `þo£dœ +( +pdœ +); + +143 + } +} + +145  + $__gl_fs_g‘_fže_li¡ +( +GSŒšg + * +fÞd”_Çme +, +Eša_Li¡ + ** +dœ_li¡ +, + +146 +Eša_Li¡ + ** +fže_li¡ +) + +148 + `GL_CHECK_VAL +( +fÞd”_Çme +, -1); + +149 + `GL_CHECK_VAL +( +fÞd”_Çme +-> +¡r +, -1); + +150 + `GL_CHECK_VAL +( +fÞd”_Çme +-> +Ën +, -1); + +151  + `__gl_fs_»ad_dœ +( +fÞd”_Çme +-> +¡r +, +dœ_li¡ +, +fže_li¡ +); + +152 + } +} + +155  + $__gl_fs_sÜt_fÞd”s_by_mtime +(* +·th +, + +156 +Eša_Li¡ + ** +s܋d_li¡ +) + +158 ià(! + `gl_fže_is_dœ +( +·th +)) { + +159 + `gl_dbgE +("Not‡ directory!"); + +163  +size + = 0; + +164  +sub_size + = 0; + +165 +GSŒšg + * +fuηth + = + `g_¡ršg_Ãw +( +·th +); + +166 +Eša_Li¡ + * +dœ_li¡ + = +NULL +; + +167 +Eša_Li¡ + * +fže_li¡ + = +NULL +; + +168  +”rÜ_code + = 0; + +169 +”rÜ_code + = + `__gl_fs_g‘_fže_li¡ +( +fuηth +, & +dœ_li¡ +, & +fže_li¡ +); + +171 ià( +”rÜ_code + == 0) { + +172  +i + = 0; + +173  +dœ_út + = + `eša_li¡_couÁ +( +dœ_li¡ +); + +174  +fže_út + = + `eša_li¡_couÁ +( +fže_li¡ +); + +175 +gl_node_šfo_s + * +²ode + = +NULL +; + +176  +i + = 0; i < +fže_út +; i++) { + +177 +²ode + = ( +gl_node_šfo_s + *) + `eša_li¡_Áh +( +fže_li¡ +, +i +); + +178 ià( +²ode + =ð +NULL +) { + +179 + `gl_dbgE +("Invalid‚ode!"); + +182 +size + +ð +²ode +->size; + +183 +²ode + = +NULL +; + +185 + `gl_dbg +("fže_út[%d], size[%Îu]", +fže_út +, +size +); + +187 +i + = 0; + +188 +²ode + = +NULL +; + +189 * +sub_fÞd” + = +NULL +; + +190 + `gl_dbg +("dœ_út[%d]", +dœ_út +); + +191  +i + = 0; i < +dœ_út +; i++) { + +192 +²ode + = ( +gl_node_šfo_s + *) + `eša_li¡_Áh +( +dœ_li¡ +, +i +); + +193 ià( +²ode + =ð +NULL +) { + +194 + `gl_dbgE +("Invalid‚ode!"); + +197 +sub_fÞd” + = + `g_¡rcÚÿt +( +²ode +-> +·th +, "/",…node-> +Çme +, + +198 +NULL +); + +199 ià( +sub_fÞd” +) { + +200 + `gl_sdbg +("sub_fÞd”[%s]", +²ode +-> +Çme +); + +201 +sub_size + = + `__gl_fs_sÜt_fÞd”s_by_mtime +( +sub_fÞd” +, + +202 +s܋d_li¡ +); + +203 +²ode +-> +size + = +sub_size +; + +204 +size + +ð +sub_size +; + +205 + `gl_dbg +("mtime[%d]", +²ode +-> +mtime +); + +206 * +s܋d_li¡ + = + `eša_li¡_s܋d_𣹠+(*sorted_list, + +207 +__gl_fs_com·» +, + +208 +²ode +); + +209 + `g_ä“ +( +sub_fÞd” +); + +210 +sub_fÞd” + = +NULL +; + +212 + `gl_dbgE +("Invalid sub folder!"); + +214 +²ode + = +NULL +; + +218 ià( +fuηth +) { + +219 + `g_¡ršg_ä“ +( +fuηth +, +Œue +); + +220 +fuηth + = +NULL +; + +223 ià( +fže_li¡ +) + +224 + `__gl_fs_þ—r_li¡ +(& +fže_li¡ +); + +226 ià( +dœ_li¡ +) { + +227 + `eša_li¡_ä“ +( +dœ_li¡ +); + +228 +dœ_li¡ + = +NULL +; + +231  +size +; + +232 + } +} + +234  + $gl_fs_g‘_ä“_¥aû +( +¡©e +) + +236  +¡©vfs + +šfo +; + +237 * +·th + = +NULL +; + +239 ià( +¡©e + =ð +GL_STORE_T_PHONE +) + +240 +·th + = +GL_ROOT_PATH_PHONE +; + +241 ià( +¡©e + =ð +GL_STORE_T_MMC +) + +242 +·th + = +GL_ROOT_PATH_MMC +; + +246 ià(-1 =ð + `¡©vfs +( +·th +, & +šfo +)) + +249  (()( +šfo +. +f_bsize +)è* (()(šfo. +f_bavaž +)); + +250 + } +} + +253 +Eša_BoÞ + + $__gl_fs_ý_fže +(* +d©a +, cÚ¡ * +¤c +, cÚ¡ * +d¡ +) + +255  + #PATH_MAX + 4096 + + ) + +256  + #BUF_MAX + 16384 + + ) + +257 +FILE + * +f1 + = +NULL +; + +258 +FILE + * +f2 + = +NULL +; + +259  +buf +[ +BUF_MAX +] = { 0, }; + +260  +»®·th1 +[ +PATH_MAX +] = { 0, }; + +261  +»®·th2 +[ +PATH_MAX +] = { 0, }; + +262 +size_t + +num + = 0; + +263 +Eša_BoÞ + +»t + = +EINA_TRUE +; + +265 ià(! + `»®·th +( +¤c +, +»®·th1 +)) + +266  +EINA_FALSE +; + +267 ià( + `»®·th +( +d¡ +, +»®·th2 +è&& ! + `g_¡rcmp0 +( +»®·th1 +,„ealpath2)) + +268  +EINA_FALSE +; + +270 +f1 + = + `fݒ +( +¤c +, "rb"); + +271 ià(! +f1 +) + +272  +EINA_FALSE +; + +273 +f2 + = + `fݒ +( +d¡ +, "wb"); + +274 ià(! +f2 +) { + +275 + `fþo£ +( +f1 +); + +276  +EINA_FALSE +; + +278 ( +num + = + `ä—d +( +buf +, 1, (buf), +f1 +)) > 0) { + +279  +pb¬_ÿnûl + = +çl£ +; + +280 + `gl_th»ad_g‘_ÿnûl_¡©e +( +d©a +, & +pb¬_ÿnûl +); + +281 ià( +pb¬_ÿnûl + > +GL_PB_CANCEL_NORMAL +) { + +282 + `gl_dbgW +("CªûÎed[%d]!", +pb¬_ÿnûl +); + +283 + `fþo£ +( +f1 +); + +284 + `fþo£ +( +f2 +); + +285 + `gl_fže_uƚk +( +d¡ +); + +286  +EINA_FALSE +; + +288 ià( + `fwr™e +( +buf +, 1, +num +, +f2 +) !=‚um) + +289 +»t + = +EINA_FALSE +; + +291 + `fþo£ +( +f1 +); + +292 + `fþo£ +( +f2 +); + +293  +»t +; + +294 + } +} + +297  + $_gl_fs_upd©e_fže_mtime +(cÚ¡ * +·th +) + +299 + `GL_CHECK_VAL +( +·th +, -1); + +300  +timev® + +tv +; + +301 + `g‘timeofday +(& +tv +, +NULL +); + +302  +timev® + +times +[2] = { {0, 0}, {0, 0} }; + +303 +times +[0]. +tv_£c + = +tv +.tv_sec; + +304 +times +[0]. +tv_u£c + = +tv +.tv_usec; + +305 +times +[1]. +tv_£c + = +tv +.tv_sec; + +306 +times +[1]. +tv_u£c + = +tv +.tv_usec; + +307 ià( + `utimes +( +·th +, +times +) < 0) { + +308 + `gl_dbgE +("utimes failed!"); + +312 + } +} + +315  + $_gl_fs_g‘_fže_¡© +(cÚ¡ * +fž’ame +, +gl_node_šfo_s + ** +node +) + +317  +¡© + +¡©buf +; + +318 + `GL_CHECK_VAL +( +node +, -1); + +319 + `GL_CHECK_VAL +(* +node +, -1); + +320 + `GL_CHECK_VAL +( +fž’ame +, -1); + +322 ià( + `¡© +( +fž’ame +, & +¡©buf +) == -1) + +326 (* +node +)-> +size + = +¡©buf +. +¡_size +; + +327 (* +node +)-> +mtime + = +¡©buf +. +¡_mtime +; + +329 + } +} + +331  + $_gl_fs_g‘_fÞd”_size +(* +·th +) + +333 ià(! + `gl_fže_is_dœ +( +·th +)) { + +334 + `gl_dbgE +("Not‡ directory!"); + +338  +size + = 0; + +339  +sub_size + = 0; + +340 +GSŒšg + * +fuηth + = + `g_¡ršg_Ãw +( +·th +); + +341 +Eša_Li¡ + * +fže_li¡ + = +NULL +; + +342 +Eša_Li¡ + * +dœ_li¡ + = +NULL +; + +343  +”rÜ_code + = 0; + +344 +”rÜ_code + = + `__gl_fs_g‘_fže_li¡ +( +fuηth +, & +dœ_li¡ +, & +fže_li¡ +); + +346 ià( +”rÜ_code + == 0) { + +347  +i + = 0; + +348  +dœ_út + = + `eša_li¡_couÁ +( +dœ_li¡ +); + +349  +fže_út + = + `eša_li¡_couÁ +( +fže_li¡ +); + +350 +gl_node_šfo_s + * +²ode + = +NULL +; + +351  +i + = 0; i < +fže_út +; i++) { + +352 +²ode + = ( +gl_node_šfo_s + *) + `eša_li¡_Áh +( +fže_li¡ +, +i +); + +353 ià( +²ode + =ð +NULL +) { + +354 + `gl_dbgE +("Invalid‚ode!"); + +357 +size + +ð +²ode +->size; + +358 +²ode + = +NULL +; + +360 + `gl_dbg +("fže_út[%d], size[%Îu]", +fže_út +, +size +); + +362 + `gl_dbg +("dœ_út[%d]", +dœ_út +); + +363 +i + = 0; + +364 +²ode + = +NULL +; + +365 * +sub_fÞd” + = +NULL +; + +366  +i + = 0; i < +dœ_út +; i++) { + +367 +²ode + = ( +gl_node_šfo_s + *) + `eša_li¡_Áh +( +dœ_li¡ +, +i +); + +368 ià( +²ode + =ð +NULL +) { + +369 + `gl_dbgE +("Invalid‚ode!"); + +372 +sub_fÞd” + = + `g_¡rcÚÿt +( +²ode +-> +·th +, "/",…node-> +Çme +, + +373 +NULL +); + +374 ià( +sub_fÞd” +) { + +375 + `gl_sdbg +("sub_fÞd”[%s]", +²ode +-> +Çme +); + +376 +sub_size + = + `_gl_fs_g‘_fÞd”_size +( +sub_fÞd” +); + +377 +²ode +-> +size + = +sub_size +; + +378 +size + +ð +sub_size +; + +379 + `gl_dbg +("mtime[%d]", +²ode +-> +mtime +); + +380 + `g_ä“ +( +sub_fÞd” +); + +381 +sub_fÞd” + = +NULL +; + +383 + `gl_dbgE +("Invalid sub folder!"); + +385 +²ode + = +NULL +; + +389 ià( +fuηth +) { + +390 + `g_¡ršg_ä“ +( +fuηth +, +Œue +); + +391 +fuηth + = +NULL +; + +394 ià( +fže_li¡ +) + +395 + `__gl_fs_þ—r_li¡ +(& +fže_li¡ +); + +397 ià( +dœ_li¡ +) + +398 + `__gl_fs_þ—r_li¡ +(& +dœ_li¡ +); + +399  +size +; + +400 + } +} + +402  + $_gl_fs_rm_fÞd” +(* +·th +,  +cut_size +,  +max_size +, + +403  +expœed_time +) + +405 + `GL_CHECK_VAL +( +·th +, -1); + +406 +gl_node_šfo_s + * +²ode + = +NULL +; + +407 +Eša_Li¡ + * +dœ_li¡ + = +NULL +; + +408 +Eša_Li¡ + * +l + = +NULL +; + +409  +size + = 0; + +410 + `gl_dbg +("Sizcut/max[%Îd/%Îd]", +cut_size +, +max_size +); + +412 +size + = + `__gl_fs_sÜt_fÞd”s_by_mtime +( +·th +, & +dœ_li¡ +); + +413 + `GL_CHECK_VAL +( +dœ_li¡ +, -1); + +415 * +fÞd” + = +NULL +; + +416  +_cut_size + = 0; + +417 ià( +size + > +max_size +) + +418 +_cut_size + = +size + - +max_size + + +cut_size +; + +419 ià( +size + + +cut_size + > +max_size +) + +420 +_cut_size + = +cut_size +; + +421 + `gl_dbg +("Sizcut/tÙ®[%Îu/%Îu]", +_cut_size +, +size +); + +423  +cu¼’t_t + = 0; + +424  +timev® + +tv +; + +425 + `g‘timeofday +(& +tv +, +NULL +); + +426 +cu¼’t_t + = +tv +. +tv_£c + +v. +tv_u£c + / +GL_TIME_USEC_PER_SEC +; + +427 + `gl_dbg +("cu¼’ˆtime[%d],ƒxpœedime[%d]", +cu¼’t_t +, +expœed_time +); + +428  +rm_size + = 0; + +430 + `EINA_LIST_FOREACH +( +dœ_li¡ +, +l +, +²ode +) { + +431 ià( +²ode + =ð +NULL + ||…node-> +·th + =ðNULL ||…node-> +Çme + == NULL) + +435 +fÞd” + = + `g_¡rcÚÿt +( +²ode +-> +·th +, "/",…node-> +Çme +, +NULL +); + +436 ià( +fÞd” + =ð +NULL +) + +439 + `gl_sdbg +("mtime[%d],…©h[%s]", +²ode +-> +mtime +, +fÞd” +); + +440 ià( +²ode +-> +mtime + + +expœed_time + < +cu¼’t_t +) { + +442 + `gl_dbgW +("Remove!"); + +443 + `gl_fže_»cursive_rm +( +fÞd” +); + +444 + `g_ä“ +( +fÞd” +); + +445 +fÞd” + = +NULL +; + +446 +rm_size + +ð +²ode +-> +size +; + +448 } ià( +_cut_size + =ð0 || +rm_size + >= _cut_size) { + +449 + `gl_dbgW +("Done!"); + +454 + `gl_fže_»cursive_rm +( +fÞd” +); + +455 + `g_ä“ +( +fÞd” +); + +456 +fÞd” + = +NULL +; + +458 + `gl_dbg +("size[cut/dœ]=%Îu/%Îu", +_cut_size +, +²ode +-> +size +); + +459 ià( +²ode +-> +size + >ð +_cut_size +) { + +460 + `gl_dbgW +("Done!"); + +464 +²ode + = +NULL +; + +466 + `__gl_fs_þ—r_li¡ +(& +dœ_li¡ +); + +468 + } +} + +470 #ifdeà +_RENAME_ALBUM_SENSITIVE + + +471 +boÞ + + $_gl_fs_check_Çme_ÿ£ +(* +dœ +, * +exi¡_Çme +) + +473 + `GL_CHECK_FALSE +( +dœ +); + +474 + `GL_CHECK_FALSE +( +exi¡_Çme +); + +475 + `gl_dbg +(""); + +477  +de¡_dœ +[ +GL_DIR_PATH_LEN_MAX +] = {0}; + +478  +de¡_fž’ame +[ +GL_FILE_NAME_LEN_MAX +] = {0}; + +479 * +tmp + = +NULL +; + +480 +tmp + = + `¡¼chr +( +dœ +, '/'); + +481 ià( +tmp +) { + +482 + `g_¡¾ýy +( +de¡_fž’ame +, +tmp + + 1, +GL_FILE_NAME_LEN_MAX +); + +483 +tmp +[0] = '\0'; + +484 + `g_¡¾ýy +( +de¡_dœ +, +dœ +, +GL_DIR_PATH_LEN_MAX +); + +485 +tmp +[0] = '/'; + +487  +çl£ +; + +490 +boÞ + +»t + = +çl£ +; + +491 +Eša_Li¡ + * +Çme_li¡ + = +NULL +; + +492 ià(( +Çme_li¡ + = + `gl_fže_ls +( +de¡_dœ +)è=ð +NULL +) { + +493 + `gl_dbgE +("open dir failed!"); + +494  +çl£ +; + +496 * +dœ_Çme + = +NULL +; + +497 + `EINA_LIST_FREE +( +Çme_li¡ +, +dœ_Çme +) { + +498 ià( +dœ_Çme + && + +499 + `¡rÿ£cmp +( +dœ_Çme +, +de¡_fž’ame +) == 0) { + +500 + `gl_dbg +("Have same‚ame directory"); + +501 +»t + = +Œue +; + +502 + `mem£t +( +exi¡_Çme +, 0x00, +GL_ALBUM_NAME_LEN_MAX +); + +503 + `g_¡¾ýy +( +exi¡_Çme +, +dœ_Çme +, + +504 +GL_ALBUM_NAME_LEN_MAX +); + +507 + `GL_FREEIF +( +dœ_Çme +); + +510  +»t +; + +511 + } +} + +514 +boÞ + + $_gl_fs_is_low_memÜy +( +tÙ®_size +) + +516  +ä“_size + = + `gl_fs_g‘_ä“_¥aû +( +GL_STORE_T_PHONE +); + +517 ià( +tÙ®_size + && +ä“_size + <otal_size) { + +518 + `gl_dbgE +("Low memory: Free(%llu Byte) <„equired(%llu Byte)!", + +519 +ä“_size +, +tÙ®_size +); + +520  +Œue +; + +523  +çl£ +; + +524 + } +} + +526  + $_gl_fs_g‘_fže_ext +(cÚ¡ * +fže_·th +, * +fže_ext +,  +max_Ën +) + +528  +i + = 0; + +530  +i + = + `¡¾’ +( +fže_·th +); i >= 0; i--) { + +531 ià(( +fže_·th +[ +i +] =ð'.'è&& (˜< + `¡¾’ +(file_path))) { + +532 + `¡ºýy +( +fže_ext +, & +fže_·th +[ +i + + 1], +max_Ën +); + +537 ià( +fže_·th +[ +i +] == '/') { + +543 + } +} + +548 +boÞ + + $_gl_fs_g‘_·th_w™hout_ext +(cÚ¡ * +fže_·th +, * +fže_ext +, + +549 * +Ãw_·th +) + +551  +i + = 0; + +552  +i + = + `¡¾’ +( +fže_·th +); i >= 0; i--) { + +553 ià(( +fže_·th +[ +i +] =ð'.'è&& (˜< +GL_FILE_PATH_LEN_MAX +)) { + +554 + `g_¡¾ýy +( +fže_ext +, & +fže_·th +[ +i + + 1], +GL_FILE_EXT_LEN_MAX +); + +555 + `g_¡¾ýy +( +Ãw_·th +, +fže_·th +, +i + + 1); + +556 +Ãw_·th +[ +i +] = '\0'; + +557 + `gl_sdbg +("·th w™houˆex‹nsiÚ :%s", +Ãw_·th +); + +558  +Œue +; + +562 ià( +fže_·th +[ +i +] == '/') + +563  +Œue +; + +565  +Œue +; + +566 + } +} + +568 +Eša_BoÞ + + $_gl_fs_cÝy +(* +d©a +, cÚ¡ * +¤c +, cÚ¡ * +d¡ +) + +570 + `GL_CHECK_FALSE +( +¤c +); + +571 + `GL_CHECK_FALSE +( +d¡ +); + +572 + `GL_CHECK_FALSE +( +d©a +); + +574 + `gl_sdbg +("\tSrc: %s", +¤c +); + +575 + `gl_sdbg +("\tDe¡: %s", +d¡ +); + +576  +¡© + +¡ +; + +582 ià( + `¡© +( +¤c +, & +¡ +) < 0) { + +583 + `gl_dbgE +("¡© faž[%d]!", +”ºo +); + +584  +EINA_FALSE +; + +586 ià( + `S_ISREG +( +¡ +. +¡_mode +)) { + +590 ià(! + `__gl_fs_ý_fže +( +d©a +, +¤c +, +d¡ +)) { + +591 + `gl_dbgE +("CÝy fžçžed[%d]!", +”ºo +); + +592  +EINA_FALSE +; + +594 + `sync +(); + +595  +EINA_TRUE +; + +597 + `gl_dbgE +("S_ISREG faž[%d]!", +”ºo +); + +598  +EINA_FALSE +; + +599 + } +} + +614 +Eša_BoÞ + + $_gl_fs_move +(* +d©a +, cÚ¡ * +¤c +, cÚ¡ * +d¡ +) + +616 + `GL_CHECK_FALSE +( +¤c +); + +617 + `GL_CHECK_FALSE +( +d¡ +); + +618 + `GL_CHECK_FALSE +( +d©a +); + +620 + `gl_sdbg +("\tSrc: %s", +¤c +); + +621 + `gl_sdbg +("\tDe¡: %s", +d¡ +); + +625 ià( + `»Çme +( +¤c +, +d¡ +)) { + +630 ià( +”ºo + =ð +EXDEV +) { + +634 + `gl_dbgW +("”ºØðEXDEV(%d): Cross-deviû†šk", +”ºo +); + +635  +¡© + +¡ +; + +641 ià( + `¡© +( +¤c +, & +¡ +) < 0) { + +642 + `gl_dbgE +("¡© faž[%d]!", +”ºo +); + +643  +EINA_FALSE +; + +645 ià( + `S_ISREG +( +¡ +. +¡_mode +)) { + +649 ià(! + `__gl_fs_ý_fže +( +d©a +, +¤c +, +d¡ +)) { + +650 + `gl_dbgE +("CÝy fžçžed[%d]!", +”ºo +); + +651  +EINA_FALSE +; + +658 ià(! + `gl_fže_uƚk +( +¤c +)) + +659 + `gl_dbgE +("D–‘fžçžed[%d]!", +”ºo +); + +662 + `sync +(); + +663  +EINA_TRUE +; + +665 + `gl_dbgE +("S_ISREG faž[%d]!", +”ºo +); + +666  +EINA_FALSE +; + +669 + `gl_dbgE +("Faž[%d]!", +”ºo +); + +670  +EINA_FALSE +; + +673 + `sync +(); + +674  +EINA_TRUE +; + +675 + } +} + +677 * + $_gl_fs_g‘_unique_fuÎ_·th +(* +fže_·th +, * +ext +) + +679 * +fže_Çme + = +fže_·th +; + +680 * +ex‹nsiÚ + = +ext +; + +681 * +fš®_·th + = +NULL +; + +682  +fš®_·th_Ën + = 0; + +683  +ex‹nsiÚ_Ën + = 0; + +684  +suffix_couÁ + = 0; + +686 cÚ¡  +max_suffix_couÁ + = 99999; + +688  +suffix_Ën + = () + `log10 +( +max_suffix_couÁ + + 1) + 1; + +690 ià(! +fže_·th +) + +691  +NULL +; + +693 + `gl_sdbg +("fže_·th=[%s],ƒxt=[%s]", +fže_·th +, +ext +); + +695 ià( +ex‹nsiÚ +) + +696 +ex‹nsiÚ_Ën + = + `¡¾’ +( +ex‹nsiÚ +); + +699 +fš®_·th_Ën + = + `¡¾’ +( +fže_Çme +è+ 1 + +suffix_Ën + + +ex‹nsiÚ_Ën + + 1; + +701 +fš®_·th + = (*) + `ÿÎoc +(1, +fš®_·th_Ën +); + +702 ià(! +fš®_·th +) { + +703 + `gl_dbgE +("calloc failed!"); + +704  +NULL +; + +710 ià(0 =ð +ex‹nsiÚ_Ën +) { + +711 ià( +suffix_couÁ + == 0) { + +712 + `¢´štf +( +fš®_·th +, +fš®_·th_Ën +, "%s", + +713 +fže_Çme +); + +715 + `¢´štf +( +fš®_·th +, +fš®_·th_Ën +, "%s_%d", + +716 +fže_Çme +, +suffix_couÁ +); + +719 ià( +suffix_couÁ + == 0) { + +720 + `¢´štf +( +fš®_·th +, +fš®_·th_Ën +, "%s.%s", + +721 +fže_Çme +, +ex‹nsiÚ +); + +723 + `¢´štf +( +fš®_·th +, +fš®_·th_Ën +, "%s_%d.%s", + +724 +fže_Çme +, +suffix_couÁ +, +ex‹nsiÚ +); + +728 ià( + `gl_fže_exi¡s +( +fš®_·th +)) { + +729 +suffix_couÁ +++; + +730 ià( +suffix_couÁ + > +max_suffix_couÁ +) { + +731 + `gl_dbgE +("Max suffix count!"); + +732 + `GL_FREE +( +fš®_·th +); + +735 + `mem£t +( +fš®_·th +, 0x00, +fš®_·th_Ën +); + +743 + `gl_sdbg +("Decided…©h = [%s]", +fš®_·th +); + +744  +fš®_·th +; + +745 + } +} + +747 * + $_gl_fs_g‘_unique_Ãw_®bum_Çme +(* +·»Á_·th +, * +deçuÉ_Çme +, + +748 ** +Ãw_Çme +) + +750 * +fš®_·th + = +NULL +; + +751 * +fš®_Çme + = +NULL +; + +752  +fš®_·th_Ën + = 0; + +753  +fš®_Çme_Ën + = 0; + +754  +suffix_couÁ + = 0; + +756 cÚ¡  +max_suffix_couÁ + = 99999; + +758  +suffix_Ën + = () + `log10 +( +max_suffix_couÁ + + 1) + 1; + +760 ià(! +·»Á_·th + || ! +deçuÉ_Çme + || ! +Ãw_Çme +) + +761  +NULL +; + +763 + `gl_sdbg +("·»Á_·th=[%s], deçuÉ_Çme=[%s]", +·»Á_·th +, +deçuÉ_Çme +); + +766 +fš®_Çme_Ën + = + `¡¾’ +( +deçuÉ_Çme +è+ +suffix_Ën + + 1; + +768 +fš®_·th_Ën + = + `¡¾’ +( +·»Á_·th +è+ 1 + +fš®_Çme_Ën +; + +770 +fš®_·th + = (*) + `ÿÎoc +(1, +fš®_·th_Ën +); + +771 ià(! +fš®_·th +) { + +772 + `gl_dbgE +("calloc failed!"); + +773  +NULL +; + +775 +fš®_Çme + = (*) + `ÿÎoc +(1, +fš®_Çme_Ën +); + +776 ià(! +fš®_Çme +) { + +777 + `gl_dbgE +("calloc failed!"); + +778 + `GL_FREE +( +fš®_·th +); + +779  +NULL +; + +783 ià( +suffix_couÁ + == 0) { + +784 + `¢´štf +( +fš®_Çme +, +fš®_Çme_Ën +, "%s", +deçuÉ_Çme +); + +786 + `¢´štf +( +fš®_Çme +, +fš®_Çme_Ën +, "%s %d", + +787 +deçuÉ_Çme +, +suffix_couÁ +); + +789 + `¢´štf +( +fš®_·th +, +fš®_·th_Ën +, "%s/%s", +·»Á_·th +, + +790 +fš®_Çme +); + +797 ià( + `gl_fže_dœ_is_em±y +( +fš®_·th +) == 0) { + +798 +suffix_couÁ +++; + +799 ià( +suffix_couÁ + > +max_suffix_couÁ +) { + +800 + `gl_dbgE +("Max suffix count!"); + +801 + `GL_FREE +( +fš®_·th +); + +802 + `GL_FREE +( +fš®_Çme +); + +805 + `mem£t +( +fš®_·th +, 0x00, +fš®_·th_Ën +); + +806 + `mem£t +( +fš®_Çme +, 0x00, +fš®_Çme_Ën +); + +814 * +Ãw_Çme + = +fš®_Çme +; + +815 + `gl_sdbg +("Decided…©h = [%s][%s]", +fš®_·th +, +fš®_Çme +); + +816  +fš®_·th +; + +817 + } +} + +819 +boÞ + + $_gl_fs_v®id©e_Çme +(cÚ¡ * +Ãw_Çme +) + +821 + `GL_CHECK_FALSE +( +Ãw_Çme +); + +822  +šv®id_ch¬s +[] = { '/', '\\', ':', '*', '?', '"', '<', '>', '|', '\0' }; + +823 * +±r + = +šv®id_ch¬s +; + +825 ià( + `¡ºcmp +( +Ãw_Çme +, ".", + `¡¾’ +(".")) == 0) { + +826  +çl£ +; + +829 + `gl_sdbg +("Ãw‡lbum‚ami %s\n", +Ãw_Çme +); + +830 * +±r + != '\0') { + +831 ià( + `¡rchr +( +Ãw_Çme +, (* +±r +)è!ð +NULL +) { + +832 + `gl_dbg +("šv®id ch¬aù” i %c", * +±r +); + +833  +çl£ +; + +835 ++ +±r +; + +838  +Œue +; + +839 + } +} + +841 +boÞ + + $_gl_fs_v®id©e_ch¬aù” +(cÚ¡  +Çme_ch¬ +) + +843  +šv®id_ch¬s +[] = { '/', '\\', ':', '*', '?', '"', '<', '>', '|', '\0' }; + +844 * +±r + = +šv®id_ch¬s +; + +846 + `gl_dbg +("ch¬aù” i %c", +Çme_ch¬ +); + +847 * +±r + != '\0') { + +848 ià( +Çme_ch¬ + =ð* +±r +) { + +849 + `gl_dbg +("šv®id ch¬aù” i %c", * +±r +); + +850  +çl£ +; + +852 ++ +±r +; + +855  +Œue +; + +856 + } +} + +858  + $_gl_fs_g‘_deçuÉ_fÞd” +(* +·th +) + +860  +Ën + = 0; + +861 + `GL_CHECK_VAL +( +·th +, -1); + +863 +Ën + = + `¢´štf +( +·th +, +GL_DIR_PATH_LEN_MAX +, "%s", + +864 +GL_ROOT_PATH_PHONE +); + +865 ià( +Ën + < 0) { + +866 + `gl_dbgE +("snprintf„eturns failure!"); + +869 +·th +[ +Ën +] = '\0'; + +870 +Ën + = -1; + +873 +Ën + = + `g_¡¾ÿt +( +·th +, +GL_DEFAULT_PATH_IMAGES +, + +874 +GL_DIR_PATH_LEN_MAX +); + +875 ià( +Ën + >ð +GL_DIR_PATH_LEN_MAX +) { + +876 + `gl_dbgE +("¡¾ÿˆ»tuº çžu»(%d)!", +Ën +); + +879 + `gl_sdbg +("DeçuÉ image ·th: %s.", +·th +); + +882 + } +} + +884 +boÞ + + $_gl_fs_mkdœ +(cÚ¡ * +·th +) + +886 + `GL_CHECK_FALSE +( +·th +); + +887  +¡© + +¡ +; + +888 ià( + `¡© +( +·th +, & +¡ +) < 0) { + +889 ià(! + `gl_fže_mk·th +( +·th +)) { + +890 + `gl_sdbgE +("FažedØmkdœ[%s]!", +·th +); + +891  +çl£ +; + +894  +Œue +; + +895 + } +} + + @src/util/gl-lang.c + +18  + ~ + +19  + ~"g®Ëry.h +" + +20  + ~"gl-Ïng.h +" + +21  + ~"gl-¡ršgs.h +" + +22  + ~"gl-ùxpÝup.h +" + +23  + ~"gl-debug.h +" + +24  + ~"gl-ui-utž.h +" + +25  + ~"gl-utž.h +" + +26  + ~"gl-´og»ssb¬.h +" + +27  + ~"gl-cڌÞb¬.h +" + +28  + ~"gl-nÙify.h +" + +29  + ~"gl-®bums-£l.h +" + +30  + ~"gl-tim–še.h +" + +31  + ~"gl-®bums-ed™.h +" + +32  + ~"gl-®bums-»Çme.h +" + +33  + ~"gl-thumbs.h +" + +34  + ~"gl-thumbs-£l.h +" + +35  + ~"gl-thumbs-ed™.h +" + +36  + ~"gl-nocڋÁs.h +" + +38  + $__gl_Ïng_upd©e_®bums +(* +d©a +) + +40 + `GL_CHECK_VAL +( +d©a +, -1); + +41 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +42 + `GL_CHECK_VAL +( +ad +-> +ù¾šfo +. +nf_™ +, -1); + +43 + `_gl_ui_chªge_Çvi_t™Ë +( +ad +-> +ù¾šfo +. +nf_™ +, +GL_STR_ID_ALBUM +, +Œue +); + +45 + } +} + +47  + $_gl_Ïng_upd©e +(* +d©a +) + +49 * +loÿË + = +NULL +; + +50  +»tcode + = + `sy¡em_£‰šgs_g‘_v®ue_¡ršg +( +SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE +, & +loÿË +); + +52 ià( +»tcode + !ð +SYSTEM_SETTINGS_ERROR_NONE +) { + +53 + `gl_dbgW +("çžedØg‘†ªguage[%d]", +»tcode +); + +56 ià( +loÿË +) { + +57 + `–m_Ïnguage_£t +( +loÿË +); + +58 + `GL_FREE +( +loÿË +); + +61 + `GL_CHECK_VAL +( +d©a +, -1); + +62 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +63  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +66 + `_gl_ùxpÝup_d– +( +d©a +); + +68  +v›w_mode +) { + +69  +GL_VIEW_ALBUMS +: + +70 + `__gl_Ïng_upd©e_®bums +( +d©a +); + +72  +GL_VIEW_ALBUMS_EDIT +: + +73 + `_gl_®bums_ed™_upd©e_Ïng +( +d©a +); + +75  +GL_VIEW_ALBUMS_RENAME +: + +76 + `__gl_Ïng_upd©e_®bums +( +d©a +); + +77 + `_gl_®bums_ed™_upd©e_Ïng +( +d©a +); + +79  +GL_VIEW_ALBUMS_SELECT +: + +80 + `__gl_Ïng_upd©e_®bums +( +d©a +); + +82  +GL_VIEW_TIMELINE +: + +83 + `_gl_tim–še_upd©e_Ïng +( +d©a +); + +85  +GL_VIEW_THUMBS +: + +86 ià( + `_gl_ù¾_g‘_b_mode +( +ad +è=ð +GL_CTRL_TAB_ALBUMS +) + +87 + `__gl_Ïng_upd©e_®bums +( +d©a +); + +88 + `_gl_thumbs_upd©e_Ïng +( +d©a +); + +90  +GL_VIEW_THUMBS_EDIT +: + +91 ià( + `_gl_ù¾_g‘_b_mode +( +ad +è=ð +GL_CTRL_TAB_ALBUMS +) + +92 + `__gl_Ïng_upd©e_®bums +( +d©a +); + +93 + `_gl_thumbs_ed™_upd©e_Ïng +( +d©a +); + +95  +GL_VIEW_THUMBS_SELECT +: + +96 ià( + `_gl_ù¾_g‘_b_mode +( +ad +è=ð +GL_CTRL_TAB_ALBUMS +) + +97 + `__gl_Ïng_upd©e_®bums +( +d©a +); + +98 + `_gl_thumbs_upd©e_Ïng +( +d©a +); + +99 + `_gl_thumbs_£l_upd©e_Ïng +( +d©a +); + +102 + `gl_dbgW +("Oth” v›w_mode[%d]", +v›w_mode +); + +106 + } +} + + @src/util/gl-ta.c + +17 #ifdeà +_ENABLE_TA + + +18  + ~<¡dio.h +> + +19  + ~ + +20  + ~<¡ršg.h +> + +21  + ~ + +22  + ~ + +23  + ~ + +24  + ~ + +25  + ~ + +26  + ~ + +27  + ~<¡d¬g.h +> + +28  + ~"gl-.h +" + +29  + ~ + +30  + ~"g®Ëry.h +" + +31  + ~"gl-debug.h +" + +33  + #GL_TA_BUF_LEN_MAX + 512 + + ) + +34  + #GL_TA_NAME_LEN_EXT + 100 + + ) + +35  + #GL_TA_HOST_NAME_LEN_MAX + 256 + + ) + +36  + #GL_TA_FORMAT_LEN_MAX + 256 + + ) + +40 +__ä“_ýs +(); + +42 +__g‘_ý_šdex +(* +Çme +); + +44 +__ä“_accums +(); + +46 +__g‘_accum_šdex +(* +Çme +); + +49 +gl__checkpošt + ** + ggl_g_ýs + = +NULL +; + +50  + ggl_g_ý_šdex + = 0; + +52 +gl__accum_™em + ** + ggl_g_accums + = +NULL +; + +53  + ggl_g_accum_šdex + = 0; + +54  + ggl_g_accum_lÚge¡_Çme + = 0; + +55  + ggl_g_accum_fœ¡_time + = 0xFFFFFFFF; + +56  + ggl_g_’abË + = 1; + +59 + $gl__š™ +() + +61 ià( +gl_g_accums +) + +64 +gl_g_ýs + = ( +gl__checkpošt + **è + `m®loc +( +GL_TA_MAX_CHECKPOINT + * (gl_ta_checkpoint *)); + +65 ià(! +gl_g_ýs +) + +67 + `mem£t +( +gl_g_ýs +, 0x00, +GL_TA_MAX_CHECKPOINT + * ( +gl__checkpošt + *)); + +68 +gl_g_accums + = ( +gl__accum_™em + **è + `m®loc +( +GL_TA_MAX_CHECKPOINT + * (gl_ta_accum_item *)); + +69 ià(! +gl_g_accums +) + +71 + `mem£t +( +gl_g_accums +, 0x00, +GL_TA_MAX_CHECKPOINT + * ( +gl__accum_™em + *)); + +73 +gl_g_accum_fœ¡_time + = 0xFFFFFFFF; + +76 + } +} + +79 + $gl__»Ëa£ +() + +81 ià(! +gl_g_accums +) + +84 + `__ä“_ýs +(); + +85 + `__ä“_accums +(); + +87 +gl_g_accum_fœ¡_time + = 0xFFFFFFFF; + +90 + } +} + +93 + $gl__£t_’abË +( +’abË +) + +95 + `gl_dbg +("GL_TA : s‘tšgƒÇbˁØ%d\n", +’abË +); + +96 +gl_g_’abË + = +’abË +; + +97 + } +} + +100 + $gl__g‘_numof_checkpošts +() + +102  +gl_g_ý_šdex +; + +103 + } +} + +106 + $gl__fmt +(cÚ¡ * +fmt +, ...) + +108  +_buf +[ +GL_TA_BUF_LEN_MAX +] = { 0, }; + +109 +va_li¡ + +¬gs +; + +111 + `va_¡¬t +( +¬gs +, +fmt +); + +112 + `v¢´štf +( +_buf +, +GL_TA_BUF_LEN_MAX +, +fmt +, +¬gs +); + +113 + `va_’d +( +¬gs +); + +115  +_buf +; + +116 + } +} + +120 + $gl__add_checkpošt +(* +Çme +,  +show +, * +fž’ame +,  +lše +) + +122 +gl__checkpošt + * +ý + = +NULL +; + +123  +timev® + +t +; + +125 ià(! +gl_g_’abË +) + +128 ià(! +gl_g_accums +) + +131 ià( +gl_g_ý_šdex + =ð +GL_TA_MAX_CHECKPOINT +) + +134 ià(! +Çme +) + +137 ià( + `¡¾’ +( +Çme +) == 0) + +140 +ý + = ( +gl__checkpošt + *è + `m®loc +((gl_ta_checkpoint)); + +141 ià(! +ý +) + +143 + `mem£t +( +ý +, 0x00, ( +gl__checkpošt +)); + +144 +ý +-> +Çme + = (*) + `m®loc +( + `¡¾’ +(name) + 1); + +145 ià(! +ý +-> +Çme +) + +147 + `ä“ +( +ý +); + +150 + `mem£t +( +ý +-> +Çme +, 0x00, ( + `¡¾’ +(name) + 1)); + +151 + `g_¡¾ýy +( +ý +-> +Çme +,‚ame, + `¡¾’ +(cp->name)); + +152 ià( +show +) + +153 + `gl_sdbg +("[CHECK-POINT] %s...(%s:%d)\n", +Çme +, +fž’ame +, +lše +); + +155 + `mem£t +(& +t +,0x00,( +timev® +)); + +156 + `g‘timeofday +(& +t +, +NULL +); + +157 +ý +-> +time¡amp + = +t +. +tv_£c + * +GL_TIME_USEC_PER_SEC + +. +tv_u£c +; + +158 #ifdeà +GL_TA_UNIT_MSEC + + +159 +ý +-> +time¡amp + = (ý->time¡am°>ð +GL_TIME_MSEC_PER_SEC +) ? cp->timestamp / GL_TIME_MSEC_PER_SEC : 0; + +162 +gl_g_ýs +[ +gl_g_ý_šdex +] = +ý +; + +164 +gl_g_ý_šdex +++; + +167 + } +} + +170 + $gl__show_checkpošts +() + +172  +i + = 0; + +174 ià(! +gl_g_accums +) + +177 + `gl_dbg +("BEGIN RESULT ============================\n"); + +178  +i + = 0; i < +gl_g_ý_šdex +; i++) + +180 + `gl_sdbg +("[%d] % : %ld us.\n", +i +, +gl_g_ýs +[i]-> +Çme +, gl_g_ýs[i]-> +time¡amp +); + +182 + `gl_dbg +("END RESULT ============================\n"); + +183 + } +} + +186 + $gl__show_diff +(* +Çme1 +, * +Çme2 +) + +188 ià(! +gl_g_accums +) + +192 + `gl_sdbg +("Timke äom [%s]Ø[%s] : %ld us.\n", +Çme1 +, +Çme2 +, + `gl__g‘_diff +(name1,‚ame2)); + +193 + } +} + +196 + $gl__g‘_diff +(* +Çme1 +, * +Çme2 +) + +198  +ý1 +, +ý2 +; + +200 ià(! +gl_g_accums +) + +205 ià(! +Çme1 + || ! +Çme2 +) + +209 ià( + `¡rcmp +( +Çme1 +, +Çme2 +) == 0) + +213 ià(( +ý1 + = + `__g‘_ý_šdex +( +Çme1 +)) == -1) + +216 ià(( +ý2 + = + `__g‘_ý_šdex +( +Çme2 +)) == -1) + +222  +gl_g_ýs +[ +ý2 +]-> +time¡amp + - gl_g_ýs[ +ý1 +]->timestamp; + +224 + } +} + +227 + $__g‘_ý_šdex +(* +Çme +) + +229  +i +; + +232 ià(! +Çme +) + +236  +i + = 0; i < +gl_g_ý_šdex +; i++) + +238 ià( + `¡rcmp +( +Çme +, +gl_g_ýs +[ +i +]->name) == 0) + +239  +i +; + +243 + } +} + +246 + $__g‘_accum_šdex +(* +Çme +) + +248  +i +; + +251 ià(! +Çme +) + +256  +i + = 0; i < +gl_g_accum_šdex +; i++) + +258 ià( + `¡rcmp +( +Çme +, +gl_g_accums +[ +i +]->name) == 0) + +259  +i +; + +263 + } +} + +266 + $__ä“_ýs +() + +268  +i + = 0; + +270 ià(! +gl_g_ýs +) + +273  +i + = 0; i < +gl_g_ý_šdex +; i++) + +275 ià( +gl_g_ýs +[ +i +]) + +277 ià( +gl_g_ýs +[ +i +]-> +Çme +) + +278 + `ä“ +( +gl_g_ýs +[ +i +]-> +Çme +); + +280 + `ä“ +( +gl_g_ýs +[ +i +]); + +282 +gl_g_ýs +[ +i +] = +NULL +; + +286 + `ä“ +( +gl_g_ýs +); + +287 +gl_g_ýs + = +NULL +; + +289 +gl_g_ý_šdex + = 0; + +290 + } +} + +293 + $__ä“_accums +() + +295  +i + = 0; + +297 ià(! +gl_g_accums +) + +300  +i + = 0; i < +gl_g_accum_šdex +; i++) + +302 ià( +gl_g_accums +[ +i +]) + +304 ià( +gl_g_accums +[ +i +]-> +Çme +) + +305 + `ä“ +( +gl_g_accums +[ +i +]-> +Çme +); + +307 + `ä“ +( +gl_g_accums +[ +i +]); + +309 +gl_g_accums +[ +i +] = +NULL +; + +313 +gl_g_accum_šdex + = 0; + +314 +gl_g_accum_lÚge¡_Çme + = 0; + +316 + `ä“ +( +gl_g_accums +); + +317 +gl_g_accums + = +NULL +; + +318 + } +} + +322 + $gl__accum_™em_begš +(* +Çme +,  +show +, * +fž’ame +,  +lše +) + +324 +gl__accum_™em + * +accum + = +NULL +; + +325  +šdex + = 0; + +326  +Çme_Ën + = 0; + +327  +timev® + +t +; + +329 ià(! +gl_g_’abË +) + +332 ià(! +gl_g_accums +) + +337 ià( +gl_g_accum_šdex + =ð +GL_TA_MAX_ACCUM +) + +340 ià(! +Çme +) + +343 +Çme_Ën + = + `¡¾’ +( +Çme +); + +344 ià( +Çme_Ën + == 0) + +348 ià(( +šdex + = + `__g‘_accum_šdex +( +Çme +)) == -1) + +350 +accum + = ( +gl__accum_™em + *è + `m®loc +((gl_ta_accum_item)); + +351 ià(! +accum +) + +355 + `mem£t +( +accum +, 0x00, ( +gl__accum_™em +)); + +356 +accum +-> +–­£d_mš + = 0xFFFFFFFF; + +358 +accum +-> +Çme + = (*) + `m®loc +( +Çme_Ën + + +GL_TA_NAME_LEN_EXT +); + +359 ià(! +accum +-> +Çme +) + +361 + `ä“ +( +accum +); + +364 + `mem£t +( +accum +-> +Çme +, 0x00, +Çme_Ën + + +GL_TA_NAME_LEN_EXT +); + +365 + `g_¡¾ýy +( +accum +-> +Çme +,‚ame, +Çme_Ën +); + +367 +gl_g_accums +[ +gl_g_accum_šdex +] = +accum +; + +368 +gl_g_accum_šdex +++; + +370 ià( +gl_g_accum_lÚge¡_Çme + < +Çme_Ën +) + +371 +gl_g_accum_lÚge¡_Çme + = +Çme_Ën +; + +376 +accum + = +gl_g_accums +[ +šdex +]; + +380 ià( +accum +-> +Ú_e¡im©e +) + +382 + `gl_sdbg +("[%s] i nÙ '’d'ed!\n", +accum +-> +Çme +); + +383 +accum +-> +num_uÅaœ +++; + +387 + `mem£t +(& +t +,0x00,( +timev® +)); + +389 + `g‘timeofday +(& +t +, +NULL +); + +390 +accum +-> +time¡amp + = +t +. +tv_£c + * +GL_TIME_USEC_PER_SEC + +. +tv_u£c +; + +391 #ifdeà +GL_TA_UNIT_MSEC + + +392 +accum +-> +time¡amp + = (accum->time¡am°>ð +GL_TIME_MSEC_PER_SEC +) ?‡ccum->timestamp / GL_TIME_MSEC_PER_SEC : 0; + +394 +accum +-> +Ú_e¡im©e + = 1; + +396 ià( +accum +-> +fœ¡_¡¬t + == 0) + +398 +accum +-> +fœ¡_¡¬t + =‡ccum-> +time¡amp +; + +400 ià( +gl_g_accum_fœ¡_time + > +accum +-> +fœ¡_¡¬t +) + +401 +gl_g_accum_fœ¡_time + = +accum +-> +fœ¡_¡¬t +; + +404 ià( +show +) + +405 + `gl_sdbg +("[ACCUM BEGIN] % : %ld ---(%s:%d)\n", +Çme +, +accum +-> +time¡amp +, +fž’ame +, +lše +); + +407 +accum +-> +num_ÿÎs +++; + +410 + } +} + +413 + $gl__accum_™em_’d +(* +Çme +,  +show +, * +fž’ame +,  +lše +) + +415 +gl__accum_™em + * +accum + = +NULL +; + +416  +tv® + = 0; + +417  +šdex + = 0; + +418  +timev® + +t +; + +420 ià(! +gl_g_’abË +) + +423 ià(! +gl_g_accums +) + +426 + `mem£t +(& +t +,0x00,( +timev® +)); + +428 + `g‘timeofday +(& +t +, +NULL +); + +430 ià( +gl_g_accum_šdex + =ð +GL_TA_MAX_ACCUM +) + +433 ià(! +Çme +) + +436 ià( + `¡¾’ +( +Çme +) == 0) + +440 ià(( +šdex + = + `__g‘_accum_šdex +( +Çme +)) == -1) + +446 +accum + = +gl_g_accums +[ +šdex +]; + +449 ià(! +accum +-> +Ú_e¡im©e +) + +451 + `gl_sdbg +("[%s] i nÙ 'begš' y‘!\n", +accum +-> +Çme +); + +452 +accum +-> +num_uÅaœ +++; + +457 +tv® + = +t +. +tv_£c + * +GL_TIME_USEC_PER_SEC + +. +tv_u£c +; + +458 #ifdeà +GL_TA_UNIT_MSEC + + +459 +tv® + = (tv® >ð +GL_TIME_MSEC_PER_SEC +) ?val / GL_TIME_MSEC_PER_SEC : 0; + +463 +accum +-> +Ï¡_’d + = +tv® +; + +466 +tv® + =v® - +accum +-> +time¡amp +; + +469 +accum +-> +–­£d_max + = +tv® + >‡ccum->elapsed_max ?val :‡ccum->elapsed_max; + +470 +accum +-> +–­£d_mš + = +tv® + <‡ccum->elapsed_min ?val :‡ccum->elapsed_min; + +472 ià( +show +) + +473 + `gl_sdbg +("[ACCUM END] % : %ld + %ld ---(%s:%d)\n", +Çme +, +accum +-> +–­£d_accum +, +tv® +, +fž’ame +, +lše +); + +476 +accum +-> +–­£d_accum + +ð +tv® +; + +477 +accum +-> +Ú_e¡im©e + = 0; + +480 + } +} + +483 + $__´št_some_šfo +( +FILE + * +å +) + +485 ià(! +å +) + +490 + `gl_dbg +("\nb~ b~ b~\n\n"); + +495 +time_t + +t_v® +; + +496  +ho¡Çme +[ +GL_TA_HOST_NAME_LEN_MAX +] = { 0, }; + +497  +time_buf +[ +GL_TA_TIME_BUF_LEN +] = { 0,}; + +498  +ut¢ame + +uts +; + +499  +ru§ge + +r_u§ge +; + +501 + `gl_dbg +("\n[[ General info ]]\n"); + +504 + `time +(& +t_v® +); + +505 + `gl_dbg +("D©: %s", + `ùime_r +(& +t_v® +, +time_buf +)); + +507 + `mem£t +(& +uts +,0x00,( +ut¢ame +)); + +509 ià( + `g‘ho¡Çme +( +ho¡Çme +, +GL_TA_HOST_NAME_LEN_MAX + - 1è=ð0 && + `uÇme +(& +uts +) >= 0) + +511 + `gl_dbg +("Ho¡Çm: %s\n", +ho¡Çme +); + +512 + `gl_dbg +("Sy¡em : %s\n", +uts +. +sy¢ame +); + +513 + `gl_dbg +("Machš: %s\n", +uts +. +machše +); + +514 + `gl_dbg +("Nod’am: %s\n", +uts +. +nod’ame +); + +515 + `gl_dbg +("R–—£ : % \n", +uts +. +»Ëa£ +); + +516 + `gl_dbg +("V”siÚ : % \n", +uts +. +v”siÚ +); + +519 + `mem£t +(& +r_u§ge +,0x00,( +ru§ge +)); + +521 + `gl_dbg +("Proûs ´iܙy : %d\n", + `g‘´iܙy +( +PRIO_PROCESS +, + `g‘pid +())); + +522 + `g‘ru§ge +( +RUSAGE_SELF +, & +r_u§ge +); + +523 + `gl_dbg +("CPU usage : User = %ld.%06ld, System = %ld.%06ld\n", + +524 +r_u§ge +. +ru_utime +. +tv_£c +,„_u§ge.ru_utime. +tv_u£c +, + +525 +r_u§ge +. +ru_¡ime +. +tv_£c +,„_u§ge.ru_¡ime. +tv_u£c +); + +532 ** +’vœÚ +; + +533 ** +’v + = +’vœÚ +; + +535 + `gl_dbg +("\n[[ Hostƒnvironment variables ]]\n"); + +536 * +’v +) + +538 + `gl_dbg +("%s\n", * +’v +); + +539 +’v +++; + +548 + } +} + +551 + $gl__accum_show_»suÉ +( +dœeùiÚ +) + +553  +i + = 0; + +554  +fÜm© +[ +GL_TA_FORMAT_LEN_MAX +] = { 0, }; + +555 +FILE + * +å + = +¡d”r +; + +557 ià(! +gl_g_accums +) + +560  +dœeùiÚ +) + +562  +GL_TA_SHOW_STDOUT +: + +563 +å + = +¡dout +; + +565  +GL_TA_SHOW_STDERR +: + +566 +å + = +¡d”r +; + +568  +GL_TA_SHOW_FILE +: + +570 +å + = + `fݒ +( +GL_TA_RESULT_FILE +, "wt"); + +571 ià(! +å +) + +575 + `__´št_some_šfo +( +å +); + +577 #ifdeà +GL_TA_UNIT_MSEC + + +578 + `¢´štf +( +fÜm© +, (format), + +580 +gl_g_accum_lÚge¡_Çme +); + +581 + `gl_dbg +("BEGIN RESULT ACCUM===========================ð: NumOfI‹m : %d, un™(m£c)\n", +gl_g_accum_šdex +); + +583 + `¢´štf +( +fÜm© +, (format), + +585 +gl_g_accum_lÚge¡_Çme +); + +586 + `gl_dbg +("BEGIN RESULT ACCUM===========================ð: NumOfI‹m : %d, un™(u£c)\n", +gl_g_accum_šdex +); + +589  +i + = 0; i < +gl_g_accum_šdex +; i++) + +592 ià( +gl_g_accums +[ +i +]-> +num_ÿÎs + == 0) + +593 +gl_g_accums +[ +i +]-> +num_ÿÎs + = 1; + +608 + `gl_dbg +("END RESULT ACCUM ============================\n"); + +610 ià( +dœeùiÚ + =ð +GL_TA_SHOW_FILE +) + +611 + `fþo£ +( +å +); + +612 + } +} + + @src/util/gl-thread-util.c + +18  + ~<¡ršg.h +> + +19  + ~ + +20  + ~ + +21  + ~<±h»ad.h +> + +22  + ~"gl-th»ad-utž.h +" + +23  + ~"gl-ui-utž.h +" + +24  + ~"gl-utž.h +" + +25  + ~"gl-debug.h +" + +26  + ~"gl-d©a.h +" + +27  + ~"gl-pÝup.h +" + +28  + ~"gl-´og»ssb¬.h +" + +29  + ~"gl-¡ršgs.h +" + +30  + ~"gl-nÙify.h +" + +31  + ~"gl-®bums.h +" + +32  + ~"gl-thumbs.h +" + +34  + #GALLERY_MAGIC_MAIN_CONTEXT + (0x1983cdaf) + + ) + +35  + #GALLERY_MAGIC_DETAIL_LIST_ITEM + (0x1977abcd) + + ) + +36  + #GALLERY_MAGIC_PIPE_DATA + (0x0716ffcc) + + ) + +38  + #GALLERY_MAGIC +  +__magic + + + ) + +39  + #GALLERY_MAGIC_SET +( +d +, +m +è(d)-> +__magic + = (m) + + ) + +40  + #GALLERY_MAGIC_CHECK +( +d +, +m +è((dè&& ((d)-> +__magic + =ð(m))) + + ) + +42  + #GL_THREAD_PBAR_TIMER_INC + 0.5 + + ) + +46 + mGALLERY_MAGIC +; + +47  + mfšished_út +; + +48  + m¡©e +; + +49  + mpÝup_Ý +; + +50 } + tgl_th»ad_pe_d©a +; + +52  + #GL_TID + + `sysÿÎ +( +__NR_g‘tid +) + + ) + +54  + $_gl_th»ad_ݔ©e_medŸs +(* +d©a +) + +56 + `GL_CHECK_VAL +( +d©a +, -1); + +57 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +58  +»t + = -1; + +60 (* +Ý_cb +è(* +d©a +); + +61 +Ý_cb + = +ad +-> +pb¬šfo +.op_cb; + +62 +ad +-> +pb¬šfo +. +Ý_cb + = +NULL +; + +63 + `gl_dbg +("O³¿tiÚ: %p", +Ý_cb +); + +64 ià( +Ý_cb +) + +65 +»t + = + `Ý_cb +( +d©a +); + +66 ià( +»t + < 0) { + +67 + `gl_th»ad_£t_ÿnûl_¡©e +( +ad +, +GL_PB_CANCEL_ERROR +); + +68 + `gl_dbgE +("Operation failed!"); + +73 + } +} + +75  + $_gl_th»ad_upd©e_v›w +(* +d©a +) + +77 + `GL_CHECK_VAL +( +d©a +, -1); + +78 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +80 (* +upd©e_cb +è(* +d©a +); + +81 +upd©e_cb + = +ad +-> +pb¬šfo +.update_cb; + +82 +ad +-> +pb¬šfo +. +upd©e_cb + = +NULL +; + +83 +ad +-> +pb¬šfo +. +d–_™em_cb + = +NULL +; + +84 +ad +-> +pb¬šfo +. +tÙ®_út + = 0; + +85 + `gl_dbg +("Upd©e: %p", +upd©e_cb +); + +86 ià( +upd©e_cb +) + +87 + `upd©e_cb +( +d©a +); + +89 + } +} + +91 * + $_gl_th»ad_d©a_th»ad +(* +d©a +) + +93 + `GL_CHECK_NULL +( +d©a +); + +94 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +95  +ÿnûl_æag + = 0; + +97 + `gl_dbg +("@@@@@@@@@@ :::: Chždh»ad ID = %d :::: @@@@@@@@@@", +GL_TID +); + +99 + `gl_dbgW +("Waiting for start signal ==="); + +103 + `gl_dbgW +("Received start signal +++"); + +106 + `_gl_th»ad_ݔ©e_medŸs +( +d©a +); + +108 +gl_th»ad_pe_d©a + +pe_d©a +; + +109 + `mem£t +(& +pe_d©a +, 0x00, ( +gl_th»ad_pe_d©a +)); + +110 + `GALLERY_MAGIC_SET +(& +pe_d©a +, +GALLERY_MAGIC_PIPE_DATA +); + +112 +pe_d©a +. +¡©e + = 0; + +113 + `gl_th»ad_g‘_ÿnûl_¡©e +( +ad +, & +ÿnûl_æag +); + +115 + `ecÜe_pe_wr™e +( +ad +-> +pb¬šfo +. +sync_pe +, & +pe_d©a +, ( +gl_th»ad_pe_d©a +)); + +117 + `gl_dbg +("@@@@@@@@@@ :::: Childhread done :::: @@@@@@@@@@"); + +120 + } +} + +122  +Eša_BoÞ + + $_gl_th»ad_d–_pb¬_idËr_cb +(* +d©a +) + +124 + `gl_dbg +("Delete…rogressbar..."); + +125 + `GL_CHECK_CANCEL +( +d©a +); + +126 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +128 + `gl_th»ad_£t_ÿnûl_¡©e +( +ad +, +GL_PB_CANCEL_NONE +); + +130 + `gl_th»ad_de¡roy_lock +( +ad +); + +132 + `gl_pb_d–_pb¬ +( +ad +); + +134 + `GL_IF_DEL_TIMER +( +ad +-> +pb¬šfo +. +d–_pb¬_tim” +); + +135  +ECORE_CALLBACK_CANCEL +; + +136 + } +} + +138  + $_gl_th»ad_pe_cb +(* +d©a +, * +bufãr +,  +nby‹ +) + +140 + `gl_dbg +(":::::::::: Mašh»ad ID = %d ::::::::::", +GL_TID +); + +141 + `GL_CHECK +( +d©a +); + +142 + `GL_CHECK +( +bufãr +); + +143 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +144 +gl_th»ad_pe_d©a + * +p_pe_d©a + = (gl_th»ad_pe_d©¨*è +bufãr +; + +145 + `gl_dbg +("P¡©i %d", +p_pe_d©a +-> +¡©e +); + +147 ià(! + `GALLERY_MAGIC_CHECK +( +p_pe_d©a +, +GALLERY_MAGIC_PIPE_DATA +)) { + +148 + `gl_dbgE +("##### :: Check…_pipe_data Magic failed :: #####"); + +152  +ÿnûl_æag + = +çl£ +; + +153 + `gl_th»ad_g‘_ÿnûl_¡©e +( +ad +, & +ÿnûl_æag +); + +155 ià( +p_pe_d©a +-> +pÝup_Ý +) + +157 ià( +p_pe_d©a +-> +¡©e +) + +160 ià( +ÿnûl_æag + !ð +GL_PB_CANCEL_NORMAL +) { + +161 + `gl_dbgE +("Failedo killhread,ry‡gain!"); + +162 + `gl_th»ad_em™_Ãxt_sigÇl +( +ad +); + +169 ià( +p_pe_d©a +-> +¡©e +) { + +177 ià( +ÿnûl_æag + !ð +GL_PB_CANCEL_NORMAL +) { + +178 + `gl_dbgE +("Failedo killhread,ry‡gain!"); + +179 + `gl_th»ad_em™_Ãxt_sigÇl +( +ad +); + +184 + `gl_pb_»äesh_th»ad_pb¬ +( +ad +, +p_pe_d©a +-> +fšished_út +, + +185 +ad +-> +pb¬šfo +. +tÙ®_út +); + +186 + `gl_dbg +("@@@ finished/all = %d/%d, updating…rogressbar @@@", + +187 +p_pe_d©a +-> +fšished_út +, +ad +-> +pb¬šfo +. +tÙ®_út +); + +189 + `gl_dbg +("Emit‚ext signal..."); + +190 + `gl_th»ad_em™_Ãxt_sigÇl +( +ad +); + +193 + `gl_dbg +("@@@ finished: %d, updating…rogressbar @@@", + +194 +ad +-> +pb¬šfo +. +fšished_út +); + +195 + `gl_pb_»äesh_th»ad_pb¬ +( +ad +,‡d-> +pb¬šfo +. +fšished_út +, + +196 +ad +-> +pb¬šfo +. +fšished_út +); + +197 +ad +-> +pb¬šfo +. +fšished_út + = 0; + +198 + `gl_dbg +("@@@@@@@ :::: Pipe close && Update view :::: @@@@@@@"); + +200 + `GL_IF_DEL_TIMER +( +ad +-> +pb¬šfo +. +¡¬t_th»ad_tim” +); + +202  +ÿnûl_æag + = +çl£ +; + +203 + `gl_th»ad_g‘_ÿnûl_¡©e +( +ad +, & +ÿnûl_æag +); + +204 ià( +ÿnûl_æag + =ð +GL_PB_CANCEL_RESET +) { + +206 +ad +-> +maššfo +. +medŸs_Ý_ty³ + = +GL_MEDIA_OP_NONE +; + +207 + `gl_dbgW +("Cancelƒrror case, set„eset state!"); + +208 } ià( +ÿnûl_æag + =ð +GL_PB_CANCEL_ERROR +) { + +209 + `gl_dbgW +("Operationƒrror!"); + +210 + `_gl_nÙify_ü—‹_nÙišfo +( +GL_STR_OPERATION_FAILED +); + +213 ià( +ÿnûl_æag + !ð +GL_PB_CANCEL_BUTTON +) { + +215 + `GL_IF_DEL_TIMER +( +ad +-> +pb¬šfo +. +d–_pb¬_tim” +); + +216 +EcÜe_Tim” + * +tim” + = +NULL +; + +217 +tim” + = + `ecÜe_tim”_add +(0.5f, +_gl_th»ad_d–_pb¬_idËr_cb +, + +218 +ad +); + +219 +ad +-> +pb¬šfo +. +d–_pb¬_tim” + = +tim” +; + +222 + `gl_dbg +("MMC s‹: %d, OPy³: %d.", +ad +-> +maššfo +. +mmc_¡©e +, + +223 +ad +-> +maššfo +. +medŸs_Ý_ty³ +); + +225 ià( +ad +-> +maššfo +. +mmc_¡©e + =ð +GL_MMC_STATE_REMOVED_MOVING +) { + +226 +ad +-> +maššfo +. +mmc_¡©e + = +GL_MMC_STATE_REMOVED +; + +236 +gl_þu¡” + * +cur_®bum + = + `_gl_®bums_g‘_cu¼’t +( +d©a +); + +237 ià( +cur_®bum + && cur_®bum-> +þu¡” + && + +238 +cur_®bum +-> +þu¡” +-> +ty³ + =ð +GL_STORE_T_MMC +) { + +239 + `gl_dbgW +("MMC„emoved, changeo‡lbums view!"); + +240 + `gl_pÝ_to_ù¾b¬_ly +( +ad +); + +242 + `_gl_th»ad_upd©e_v›w +( +ad +); + +246 ià( +ad +-> +maššfo +. +mmc_¡©e + =ð +GL_MMC_STATE_ADDED_MOVING +) { + +247 +ad +-> +maššfo +. +mmc_¡©e + = +GL_MMC_STATE_ADDED +; + +248 } ià( +ad +-> +maššfo +. +mmc_¡©e + =ð +GL_MMC_STATE_ADDING_MOVING +) { + +249 +ad +-> +maššfo +. +mmc_¡©e + = +GL_MMC_STATE_ADDED +; + +252 + `_gl_th»ad_upd©e_v›w +( +ad +); + +256 + `GL_IF_DEL_PIPE +( +ad +-> +pb¬šfo +. +sync_pe +); + +258 +ad +-> +maššfo +. +medŸs_Ý_ty³ + = +GL_MEDIA_OP_NONE +; + +260 + } +} + +277  + $gl_th»ad_em™_Ãxt_sigÇl +(* +d©a +) + +279 + `GL_CHECK_VAL +( +d©a +, -1); + +280 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +282 + `±h»ad_mu‹x_lock +(&( +ad +-> +pb¬šfo +. +»äesh_lock +)); + +283 + `gl_dbg +("»äesh_æag: %d.", +ad +-> +pb¬šfo +. +»äesh_æag +); + +284 ià( +ad +-> +pb¬šfo +. +»äesh_æag + == 0) + +286 +ad +-> +pb¬šfo +. +»äesh_æag + = 1; + +287 + `±h»ad_cÚd_sigÇl +(&( +ad +-> +pb¬šfo +. +»äesh_cÚd +)); + +289 + `±h»ad_mu‹x_uÆock +(&( +ad +-> +pb¬šfo +. +»äesh_lock +)); + +292 + } +} + +309  + $gl_th»ad_wa™_Ãxt_sigÇl +(* +d©a +) + +311 + `GL_CHECK_VAL +( +d©a +, -1); + +312 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +314 + `±h»ad_mu‹x_lock +(&( +ad +-> +pb¬šfo +. +»äesh_lock +)); + +315 + `gl_dbg +("»äesh_æag: %d.", +ad +-> +pb¬šfo +. +»äesh_æag +); + +316  +ad +-> +pb¬šfo +. +»äesh_æag + == 0) + +318 + `gl_dbg +("Thread waiting..."); + +319 + `±h»ad_cÚd_wa™ +(&( +ad +-> +pb¬šfo +. +»äesh_cÚd +), &×d->pb¬šfo. +»äesh_lock +)); + +321 +ad +-> +pb¬šfo +. +»äesh_æag + = 0; + +322 + `±h»ad_mu‹x_uÆock +(&( +ad +-> +pb¬šfo +. +»äesh_lock +)); + +325 + } +} + +344 + $gl_th»ad_£t_ÿnûl_¡©e +(* +d©a +,  +v® +) + +346 + `GL_CHECK_VAL +( +d©a +, -1); + +347 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +349 + `±h»ad_mu‹x_lock +(&( +ad +-> +pb¬šfo +. +pb¬_lock +)); + +350 +ad +-> +pb¬šfo +. +pb¬_ÿnûl + = +v® +; + +351 + `±h»ad_mu‹x_uÆock +(&( +ad +-> +pb¬šfo +. +pb¬_lock +)); + +354 + } +} + +372 + $gl_th»ad_g‘_ÿnûl_¡©e +(* +d©a +, * +v® +) + +374 + `GL_CHECK_VAL +( +v® +, -1); + +375 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +377 + `±h»ad_mu‹x_lock +(&( +ad +-> +pb¬šfo +. +pb¬_lock +)); + +378 * +v® + = +ad +-> +pb¬šfo +. +pb¬_ÿnûl +; + +379 + `±h»ad_mu‹x_uÆock +(&( +ad +-> +pb¬šfo +. +pb¬_lock +)); + +382 + } +} + +402  + $gl_th»ad_wr™e_pe +(* +d©a +,  +fšished_út +,  +pÝup_Ý +) + +404 + `GL_CHECK +( +d©a +); + +405 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +406  +ÿnûl_æag + = +çl£ +; + +407 + `gl_dbg +("Wait‚ext signal..."); + +408 + `gl_th»ad_wa™_Ãxt_sigÇl +( +ad +); + +409 + `gl_dbg +("Receive‚ext signal..."); + +410 +gl_th»ad_pe_d©a + +pe_d©a +; + +411 + `mem£t +(& +pe_d©a +, 0x00, ( +gl_th»ad_pe_d©a +)); + +412 + `GALLERY_MAGIC_SET +(& +pe_d©a +, +GALLERY_MAGIC_PIPE_DATA +); + +414 +pe_d©a +. +¡©e + = 1; + +415 +pe_d©a +. +fšished_út + = finished_cnt; + +416 +pe_d©a +. +pÝup_Ý + =…opup_op; + +418 + `gl_th»ad_g‘_ÿnûl_¡©e +( +ad +, & +ÿnûl_æag +); + +420 ià( +ÿnûl_æag + =ð +GL_PB_CANCEL_BUTTON + || + +421 +ÿnûl_æag + =ð +GL_PB_CANCEL_MMC + || + +422 +ÿnûl_æag + =ð +GL_PB_CANCEL_ERROR + || + +423 +ÿnûl_æag + =ð +GL_PB_CANCEL_RESET +) + +426 +pe_d©a +. +fšished_út + = -1; + +428 +pe_d©a +. +¡©e + = 0; + +429 + `ecÜe_pe_wr™e +( +ad +-> +pb¬šfo +. +sync_pe +, & +pe_d©a +, ( +gl_th»ad_pe_d©a +)); + +431 ià( +ÿnûl_æag + =ð +GL_PB_CANCEL_BUTTON +) + +433 + `gl_dbg +("Cancel buttonapped, childhreadƒxit!"); + +435 ià( +ÿnûl_æag + =ð +GL_PB_CANCEL_MMC +) + +437 + `gl_dbg +("MMC„emoved, childhreadƒxit!"); + +439 ià( +ÿnûl_æag + =ð +GL_PB_CANCEL_ERROR +) + +441 + `gl_dbg +("Error happened, childhreadƒxit!"); + +443 ià( +ÿnûl_æag + =ð +GL_PB_CANCEL_RESET +) { + +444 + `gl_dbg +("Reset gallery, childhreadƒxit!"); + +447 + `±h»ad_ex™ +((*)1); + +451 + `gl_dbg +("Writing…ipe..."); + +452 + `ecÜe_pe_wr™e +( +ad +-> +pb¬šfo +. +sync_pe +, & +pe_d©a +, ( +gl_th»ad_pe_d©a +)); + +454 + } +} + +472 + $gl_th»ad_g’_d©a_th»ad +(* +d©a +) + +474 + `GL_CHECK_VAL +( +d©a +, -1); + +475 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +476 +±h»ad_t + +tid +; + +477 +±h»ad_©Œ_t + +©Œ +; + +478  +»t + = -1; + +480 + `gl_dbg +("Creating childhread."); + +482 +ad +-> +pb¬šfo +. +sync_pe + = + `ecÜe_pe_add +( +_gl_th»ad_pe_cb +,‡d); + +484 +»t + = + `±h»ad_©Œ_š™ +(& +©Œ +); + +485 ià( +»t + == 0) + +487 +»t + = + `±h»ad_©Œ_£td‘ach¡©e +(& +©Œ +, +PTHREAD_CREATE_DETACHED +); + +488 ià( +»t + == 0) + +491 +»t + = + `±h»ad_ü—‹ +(& +tid +, & +©Œ +, +_gl_th»ad_d©a_th»ad +, +ad +); + +492 ià( +»t + != 0) + +494 + `gl_dbgE +("[Error] ##### ::…thread_create failed :: #####"); + +495 + `±h»ad_©Œ_de¡roy +(& +©Œ +); + +501 + `gl_dbg +("\n\n[Done] @@@@@@@@@@ ::::…thread_create successfull :::: @@@@@@@@@@\n"); + +502 + `±h»ad_©Œ_de¡roy +(& +©Œ +); + +505 + } +} + +523 + $gl_th»ad_de¡roy_lock +(* +d©a +) + +525 + `GL_CHECK_VAL +( +d©a +, -1); + +526 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +527 + `gl_dbg +("@@@@@@@@@@ :::: Destroy MUTEX :::: @@@@@@@@@@"); + +534 + `±h»ad_mu‹x_lock +(&( +ad +-> +pb¬šfo +. +»äesh_lock +)); + +535 +ad +-> +pb¬šfo +. +»äesh_æag + = 0; + +536 + `±h»ad_mu‹x_uÆock +(&( +ad +-> +pb¬šfo +. +»äesh_lock +)); + +538 + `±h»ad_cÚd_de¡roy +(&( +ad +-> +pb¬šfo +. +»äesh_cÚd +)); + +539 + `±h»ad_mu‹x_de¡roy +(&( +ad +-> +pb¬šfo +. +pb¬_lock +)); + +540 + `±h»ad_mu‹x_de¡roy +(&( +ad +-> +pb¬šfo +. +»äesh_lock +)); + +543 + } +} + +560  + $gl_th»ad_š™_lock +(* +d©a +) + +562 + `GL_CHECK_VAL +( +d©a +, -1); + +563 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +564 + `gl_dbg +("@@@@@@@@@@ :::: Initialize MUTEX :::: @@@@@@@@@@"); + +566 + `±h»ad_mu‹x_š™ +(&( +ad +-> +pb¬šfo +. +pb¬_lock +), +NULL +); + +567 + `±h»ad_mu‹x_š™ +(&( +ad +-> +pb¬šfo +. +»äesh_lock +), +NULL +); + +568 + `±h»ad_cÚd_š™ +(&( +ad +-> +pb¬šfo +. +»äesh_cÚd +), +NULL +); + +575 + `±h»ad_mu‹x_lock +(&( +ad +-> +pb¬šfo +. +»äesh_lock +)); + +576 +ad +-> +pb¬šfo +. +»äesh_æag + = 0; + +577 + `±h»ad_mu‹x_uÆock +(&( +ad +-> +pb¬šfo +. +»äesh_lock +)); + +580 + } +} + +582  + $_gl_th»ad_£t_Ý_cb +(* +d©a +, * +Ý_cb +) + +584 + `GL_CHECK_VAL +( +d©a +, -1); + +585 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +586 +ad +-> +pb¬šfo +. +Ý_cb + = op_cb; + +588 + } +} + +590  + $_gl_th»ad_£t_upd©e_cb +(* +d©a +, * +upd©e_cb +) + +592 + `GL_CHECK_VAL +( +d©a +, -1); + +593 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +594 +ad +-> +pb¬šfo +. +upd©e_cb + = update_cb; + +596 + } +} + +598  + $_gl_th»ad_£t_d–_™em_cb +(* +d©a +, * +d–_™em_cb +) + +600 + `GL_CHECK_VAL +( +d©a +, -1); + +601 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +602 +ad +-> +pb¬šfo +. +d–_™em_cb + = del_item_cb; + +604 + } +} + +606  + $_gl_th»ad_£t_tÙ®_út +(* +d©a +,  +tÙ®_út +) + +608 + `GL_CHECK_VAL +( +d©a +, -1); + +609 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +610 +ad +-> +pb¬šfo +. +tÙ®_út + =otal_cnt; + +612 + } +} + + @src/util/gl-ui-util.c + +17  + ~<¡ršg.h +> + +18  + ~ + +19  + ~"gl-fs.h +" + +20  + ~"gl-ui-utž.h +" + +21  + ~"gl-utž.h +" + +22  + ~"gl-ext-ug-lßd.h +" + +23  + ~"gl-ext-exec.h +" + +24  + ~"gl-bu‰Ú.h +" + +25  + ~"gl-thumbs.h +" + +26  + ~"gl-cڌÞb¬.h +" + +27  + ~"gl-®bums.h +" + +28  + ~"gl-debug.h +" + +29  + ~"gl-d©a.h +" + +30  + ~"gl-th»ad-utž.h +" + +31  + ~"gl-pšchzoom.h +" + +32  + ~"gl-pÝup.h +" + +33  + ~"gl-ùxpÝup.h +" + +34  + ~"gl-´og»ssb¬.h +" + +35  + ~"gl-®bums-£l.h +" + +36  + ~"gl-thumbs-ed™.h +" + +37  + ~"gl-thumbs-£l.h +" + +38  + ~"gl-¡ršgs.h +" + +39  + ~"gl-icÚs.h +" + +40  + ~"gl-nÙify.h +" + +41  + ~"gl-fže-utž.h +" + +42  + ~"gl-tim–še.h +" + +44  + #GL_NAVIBAR_STYLE_DEFAULT + +GL_CHECKBOX_STYLE_DEFAULT + + + ) + +45  + #GL_SELALL_TIMER_INT + 0.3 + + ) + +47  + $_gl_ui_hide_back_bu‰Ú +( +Elm_Objeù_I‹m + * +nf_™ +) + +49 + `GL_CHECK_VAL +( +nf_™ +, -1); + +50 + `–m_objeù_™em_·¹_cڋÁ_£t +( +nf_™ +, +GL_NAVIFRAME_PREV_BTN +, +NULL +); + +52 + } +} + +54  + $__gl_ui_show_t™Ë_toÞb¬ +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +56 + `GL_CHECK +( +d©a +); + +57 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +58 +ad +-> +’Œyšfo +. +b_hide_s + = +Œue +; + +59 +Evas_Objeù + * +nf + = +ad +-> +maššfo +. +Çviäame +; + +60 +Elm_Objeù_I‹m + * +Çvi_™ + = + `–m_Çviäame_tÝ_™em_g‘ +( +nf +); + +61 + `GL_CHECK +( +Çvi_™ +); + +62  +ad +-> +maššfo +. +rÙ©e_mode +) { + +63  +APP_DEVICE_ORIENTATION_90 +: + +64  +APP_DEVICE_ORIENTATION_270 +: + +65 + `–m_Çviäame_™em_t™Ë_’abËd_£t +( +Çvi_™ +, +EINA_FALSE +, EINA_FALSE); + +70 + } +} + +72  + $__gl_ui_hide_t™Ë_toÞb¬ +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +74 + `GL_CHECK +( +d©a +); + +75 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +76 +ad +-> +’Œyšfo +. +b_hide_s + = +çl£ +; + +77 +Evas_Objeù + * +nf + = +ad +-> +maššfo +. +Çviäame +; + +78 +Elm_Objeù_I‹m + * +Çvi_™ + = + `–m_Çviäame_tÝ_™em_g‘ +( +nf +); + +79 + `GL_CHECK +( +Çvi_™ +); + +80 + `–m_Çviäame_™em_t™Ë_’abËd_£t +( +Çvi_™ +, +EINA_TRUE +, +EINA_FALSE +); + +81 + } +} + +83  + $_gl_ui_þ—r_bŠs +(* +d©a +) + +85 + `GL_CHECK_VAL +( +d©a +, -1); + +86 +Evas_Objeù + * +bŠ + = +NULL +; + +87 + `gl_dbg +(""); + +90 +bŠ + = + `_gl_ui_g‘_bŠ +( +d©a +, +NULL +, +GL_NAVIFRAME_MORE +); + +91 + `GL_IF_DEL_OBJ +( +bŠ +); + +93 +bŠ + = + `_gl_ui_g‘_bŠ +( +d©a +, +NULL +, +GL_NAVIFRAME_TOOLBAR +); + +94 + `GL_IF_DEL_OBJ +( +bŠ +); + +95 +bŠ + = + `_gl_ui_g‘_bŠ +( +d©a +, +NULL +, +GL_NAVIFRAME_TITLE_RIGHT_BTN +); + +96 + `GL_IF_DEL_OBJ +( +bŠ +); + +97 +bŠ + = + `_gl_ui_g‘_bŠ +( +d©a +, +NULL +, +GL_NAVIFRAME_TITLE_LEFT_BTN +); + +98 + `GL_IF_DEL_OBJ +( +bŠ +); + +100 + } +} + +102 +Evas_Objeù + * + $gl_ui_lßd_edj +( +Evas_Objeù + * +·»Á +, cÚ¡ * +fže +, cÚ¡ * +group +) + +104 +Evas_Objeù + * +eo + = +NULL +; + +105 +eo + = + `–m_Ïyout_add +( +·»Á +); + +106 + `GL_CHECK_NULL +( +eo +); + +108  +r + = 0; + +109 +r + = + `–m_Ïyout_fže_£t +( +eo +, +fže +, +group +); + +110 ià(! +r +) { + +111 + `evas_objeù_d– +( +eo +); + +112  +NULL +; + +115 + `evas_objeù_size_hšt_weight_£t +( +eo +, +EVAS_HINT_EXPAND +, EVAS_HINT_EXPAND); + +116 + `evas_objeù_size_hšt_®ign_£t +( +eo +, +EVAS_HINT_FILL +, EVAS_HINT_FILL); + +117  +eo +; + +118 + } +} + +120  + $_gl_ui_rm_£ÏÎ_bŠ +( +Elm_Objeù_I‹m + * +nf_™ +) + +122 + `GL_CHECK_VAL +( +nf_™ +, -1); + +123 +Evas_Objeù + * +bŠ + = +NULL +; + +124 +bŠ + = + `–m_objeù_™em_·¹_cڋÁ_g‘ +( +nf_™ +, + +125 +GL_NAVIFRAME_TITLE_RIGHT_BTN +); + +126 + `GL_IF_DEL_OBJ +( +bŠ +); + +128 + } +} + +130  + $_gl_ui_add_£ÏÎ_bŠ +( +Evas_Objeù + * +Çviäame +, +Elm_Objeù_I‹m + * +nf_™ +, + +131 +Evas_Sm¬t_Cb + +cb_func +, * +d©a +) + +133 + `GL_CHECK_VAL +( +d©a +, -1); + +134 + `GL_CHECK_VAL +( +Çviäame +, -1); + +135 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +136 +Elm_Objeù_I‹m + * +_nf_™ + = +nf_™ +; + +138 ià( +_nf_™ + =ð +NULL +) { + +139 +_nf_™ + = + `–m_Çviäame_tÝ_™em_g‘ +( +Çviäame +); + +140 + `GL_CHECK_VAL +( +_nf_™ +, -1); + +142 +Evas_Objeù + * +£l_®l_bŠ + = +NULL +; + +143 +£l_®l_bŠ + = + `_gl_but_ü—‹_image_but +( +Çviäame +, + +144 +GL_ICON_TITLE_SELECT_ALL +, +NULL +, + +145 +GL_BUTTON_STYLE_NAVI_TITLE_ICON +, + +146 +cb_func +, +d©a +, +EINA_FALSE +); + +147 + `GL_CHECK_VAL +( +£l_®l_bŠ +, -1); + +148 + `–m_objeù_™em_·¹_cڋÁ_£t +( +_nf_™ +, +GL_NAVIFRAME_TITLE_RIGHT_BTN +, + +149 +£l_®l_bŠ +); + +150 +ad +-> +£lšfo +. +ck_¡©e + = +çl£ +; + +152 + } +} + +155  + $_gl_ui_add_x±_bŠs +( +Elm_Objeù_I‹m + * +nf_™ +, +gl_ui_x±_bŠ_e + +x±_bŠ +, + +156 +Evas_Sm¬t_Cb + +r_cb +, Evas_Sm¬t_Cb +l_cb +, * +d©a +) + +159 +Evas_Objeù + * +t™Ë + = +NULL +; + +160 +t™Ë + = + `–m_objeù_™em_·¹_cڋÁ_g‘ +( +nf_™ +, "title"); + +161 + `GL_CHECK_VAL +( +t™Ë +, -1); + +163 ià( +x±_bŠ + & +GL_UI_XPT_CAMERA +) { + +165 ià( +x±_bŠ + & +GL_UI_XPT_SHARE +) + +166 + `_gl_ex²_t™Ë_add_Ëá_bŠ +( +t™Ë +, +GL_ICON_SHARE +, + +167 + `_gl_¡r +( +GL_STR_ID_NEW_ALBUM +), + +168 +l_cb +, +d©a +); + +169 + `_gl_ex²_t™Ë_add_right_bŠ +( +t™Ë +, +GL_ICON_CAMERA +, + +170 + `_gl_¡r +( +GL_STR_ID_CAMERA +), +r_cb +, + +171 +d©a +); + +173 } ià( +x±_bŠ + & +GL_UI_XPT_SEL_ALL +) { + +174 ià( +x±_bŠ + & +GL_UI_XPT_DONE +) + +175 + `_gl_ex²_t™Ë_add_Ëá_bŠ +( +t™Ë +, +GL_ICON_DONE +, + +176 + `_gl_¡r +( +GL_STR_ID_DONE +), + +177 +l_cb +, +d©a +); + +178 + `_gl_ex²_t™Ë_add_right_bŠ +( +t™Ë +, +GL_ICON_TITLE_SELECT_ALL +, + +179 +GL_STR_SELECT_ALL +, +r_cb +, +d©a +); + +181 + `gl_dbgE +("Wrong mode!"); + +183 + `_gl_ex²_t™Ë_£t_‰s +( +t™Ë +); + +185 + } +} + +187 +Evas_Objeù + * + $_gl_ui_g‘_x±_bŠ +( +Elm_Objeù_I‹m + * +nf_™ +, +gl_ui_x±_bŠ_e + +ui_bŠ +) + +190 +Evas_Objeù + * +t™Ë + = +NULL +; + +191 +t™Ë + = + `–m_objeù_™em_·¹_cڋÁ_g‘ +( +nf_™ +, "title"); + +192 + `GL_CHECK_NULL +( +t™Ë +); + +193 +gl_x_bŠ_e + +x±_bŠ + = +GL_XPT_BTN_RIGHT +; + +194 ià( +ui_bŠ + & +GL_UI_XPT_SHARE +) + +195 +x±_bŠ + = +GL_XPT_BTN_LEFT +; + +196  + `_gl_ex²_t™Ë_g‘_bŠ +( +t™Ë +, +x±_bŠ +); + +197 + } +} + +199  + $_gl_ui_di§bË_x±_bŠ +( +Elm_Objeù_I‹m + * +nf_™ +, +gl_ui_x±_bŠ_e + +ui_bŠ +, +boÞ + +b_di§bËd +) + +201 +Evas_Objeù + * +bŠ + = +NULL +; + +202 +bŠ + = + `_gl_ui_g‘_x±_bŠ +( +nf_™ +, +ui_bŠ +); + +203 ià( +bŠ +) + +204 + `–m_objeù_di§bËd_£t +( +bŠ +, +b_di§bËd +); + +206 + `gl_dbgE +("Failedo get xpt button!"); + +208 + } +} + +210  + $_gl_ui_þ—r_x±_bŠs +( +Elm_Objeù_I‹m + * +nf_™ +) + +213 +Evas_Objeù + * +t™Ë + = +NULL +; + +214 +t™Ë + = + `–m_objeù_™em_·¹_cڋÁ_g‘ +( +nf_™ +, "title"); + +215 + `GL_CHECK_VAL +( +t™Ë +, -1); + +216 + `_gl_ex²_t™Ë_þ—r_bŠs +( +t™Ë +); + +218 + } +} + +221 +Evas_Objeù + * + $_gl_ui_ü—‹_gridv›w_ly +(* +d©a +, +Evas_Objeù + * +·»Á +) + +223 + `GL_CHECK_NULL +( +·»Á +); + +224 + `GL_CHECK_NULL +( +d©a +); + +225 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +226 + `gl_dbg +(""); + +228 +Evas_Objeù + * +Ïyout + = +NULL +; + +229 +Ïyout + = + `gl_ui_lßd_edj +( +ad +-> +maššfo +. +Çviäame +, +GL_EDJ_FILE +, + +230 +GL_GRP_GRIDVIEW +); + +231 + `evas_objeù_show +( +Ïyout +); + +233  +Ïyout +; + +234 + } +} + +236 +gl_icÚ_ty³_e + + $_gl_ui_–m_bg_fže_£t +( +Evas_Objeù + * +bg +, +gl_™em + * +g™ +) + +238 ià( +g™ + =ð +NULL + || g™-> +™em + == NULL) { + +239 + `gl_dbgE +("Inv®id i‹m :%p", +g™ +); + +240 + `–m_bg_fže_£t +( +bg +, +GL_ICON_CONTENTS_BROKEN +, +NULL +); + +241  +GL_ICON_CORRUPTED_FILE +; + +244 + `–m_bg_fže_£t +( +bg +, + `_GET_ICON +( +g™ +-> +™em +-> +thumb_u¾ +), +NULL +); + +245  +GL_ICON_NORMAL +; + +246 + } +} + +248  + $_gl_ui_£t_cڋÁ +( +Evas_Objeù + * +Ïyout +, cÚ¡ * +·¹ +, + +249 +Evas_Objeù + * +Ãw_cڋÁ +) + +251 + `GL_CHECK_VAL +( +Ïyout +, -1); + +252 + `GL_CHECK_VAL +( +Ãw_cڋÁ +, -1); + +253 +Evas_Objeù + * +Þd_cڋÁ + = +NULL +; + +255 +Þd_cڋÁ + = + `–m_objeù_·¹_cڋÁ_g‘ +( +Ïyout +, +·¹ +); + +256 ià( +Þd_cڋÁ + && old_cڋÁ =ð +Ãw_cڋÁ +) { + +257 + `gl_dbg +("Already set"); + +261 + `gl_dbg +("Set content"); + +262 + `–m_objeù_·¹_cڋÁ_£t +( +Ïyout +, +·¹ +, +Ãw_cڋÁ +); + +265 + } +} + +267  + $_gl_ui_£t_toÞb¬_¡©e +(* +d©a +, +boÞ + +b_hide +) + +269 + `GL_CHECK_VAL +( +d©a +, -1); + +270 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +271 + `GL_CHECK_VAL +( +ad +-> +maššfo +. +Çviäame +, -1); + +272 +Elm_Objeù_I‹m + * +Çvi_™ + = + `–m_Çviäame_tÝ_™em_g‘ +( +ad +-> +maššfo +. +Çviäame +); + +273 + `GL_CHECK_VAL +( +Çvi_™ +, -1); + +274 ià( +b_hide +) + +275 + `–m_objeù_™em_sigÇl_em™ +( +Çvi_™ +, "elm,state,toolbar,instant_close", + +278 + `–m_objeù_™em_sigÇl_em™ +( +Çvi_™ +, "elm,state,toolbar,instant_open", + +282 + } +} + +284 +boÞ + + $_gl_ui_hide_key·d +(* +d©a +) + +286 + `GL_CHECK_VAL +( +d©a +, -1); + +287 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +288 ià( +ad +-> +’Œyšfo +. +b_hide_s +) { + +289 ià( +ad +-> +’Œyšfo +. +cڋxt +) { + +290 +ad +-> +’Œyšfo +. +b_hide_s + = +çl£ +; + +291  +Œue +; + +294  +çl£ +; + +296 + } +} + +298  + $_gl_ui_add_cÚfÜm_cbs +(* +d©a +) + +300 + `GL_CHECK_VAL +( +d©a +, -1); + +302 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +303 +Evas_Objeù + * +Çviäame + = +ad +-> +maššfo +.naviframe; + +304 +Evas_Objeù + * +cÚfÜm + = +NULL +; + +307 +cÚfÜm + = ( +Evas_Objeù + *) + `evas_objeù_d©a_g‘ +( +Çviäame +, + +308 +GL_NAVIFRAME_OBJ_DATA_KEY +); + +309 + `GL_CHECK_VAL +( +cÚfÜm +, -1); + +311 + `evas_objeù_sm¬t_ÿÎback_add +( +cÚfÜm +, +GL_IMF_ON +, + +312 +__gl_ui_show_t™Ë_toÞb¬ +, +d©a +); + +313 + `evas_objeù_sm¬t_ÿÎback_add +( +cÚfÜm +, +GL_IMF_OFF +, + +314 +__gl_ui_hide_t™Ë_toÞb¬ +, +d©a +); + +315 + `evas_objeù_sm¬t_ÿÎback_add +( +cÚfÜm +, +GL_STA_ON +, + +316 +__gl_ui_show_t™Ë_toÞb¬ +, +d©a +); + +317 + `evas_objeù_sm¬t_ÿÎback_add +( +cÚfÜm +, +GL_STA_OFF +, + +318 +__gl_ui_hide_t™Ë_toÞb¬ +, +d©a +); + +320 + } +} + +322  + $_gl_ui_d–_cÚfÜm_cbs +( +Evas_Objeù + * +Çviäame +) + +324 + `GL_CHECK_VAL +( +Çviäame +, -1); + +325 +Evas_Objeù + * +cÚfÜm + = +NULL +; + +328 +cÚfÜm + = ( +Evas_Objeù + *) + `evas_objeù_d©a_g‘ +( +Çviäame +, + +329 +GL_NAVIFRAME_OBJ_DATA_KEY +); + +330 + `GL_CHECK_VAL +( +cÚfÜm +, -1); + +332 + `evas_objeù_sm¬t_ÿÎback_d– +( +cÚfÜm +, +GL_IMF_ON +, + +333 +__gl_ui_show_t™Ë_toÞb¬ +); + +334 + `evas_objeù_sm¬t_ÿÎback_d– +( +cÚfÜm +, +GL_IMF_OFF +, + +335 +__gl_ui_hide_t™Ë_toÞb¬ +); + +336 + `evas_objeù_sm¬t_ÿÎback_d– +( +cÚfÜm +, +GL_STA_ON +, + +337 +__gl_ui_show_t™Ë_toÞb¬ +); + +338 + `evas_objeù_sm¬t_ÿÎback_d– +( +cÚfÜm +, +GL_STA_OFF +, + +339 +__gl_ui_hide_t™Ë_toÞb¬ +); + +341 + } +} + +344  + $_gl_ui_£t_cÚfÜm_ov”Ïp +( +Evas_Objeù + * +Çviäame +) + +346 + `GL_CHECK_VAL +( +Çviäame +, -1); + +347 +Evas_Objeù + * +cÚfÜm + = +NULL +; + +350 +cÚfÜm + = ( +Evas_Objeù + *) + `evas_objeù_d©a_g‘ +( +Çviäame +, + +351 +GL_NAVIFRAME_OBJ_DATA_KEY +); + +352 + `GL_CHECK_VAL +( +cÚfÜm +, -1); + +354 + `–m_objeù_sigÇl_em™ +( +cÚfÜm +, "elm,state,indicator,overlap", ""); + +355 + `evas_objeù_d©a_£t +( +cÚfÜm +, "ov”Ïp", (*) +EINA_TRUE +); + +357 + } +} + +359  + $_gl_ui_di§bË_bŠ +( +Evas_Objeù + * +bŠ +) + +361 ià( +bŠ +) + +362 + `–m_objeù_di§bËd_£t +( +bŠ +, +EINA_TRUE +); + +364 + } +} + +366  + $_gl_ui_’abË_bŠ +( +Evas_Objeù + * +bŠ +) + +368 ià( +bŠ +) + +369 + `–m_objeù_di§bËd_£t +( +bŠ +, +EINA_FALSE +); + +371 + } +} + +374  + $_gl_ui_di§bË_m’u +( +Elm_Objeù_I‹m + * +nf_™ +, +boÞ + +b_di§bËd +) + +376 + `GL_CHECK_VAL +( +nf_™ +, -1); + +377 +Evas_Objeù + * +bŠ + = +NULL +; + +378 + `gl_dbg +("mÜe: %d", +b_di§bËd +); + +379 +bŠ + = + `–m_objeù_™em_·¹_cڋÁ_g‘ +( +nf_™ +, +GL_NAVIFRAME_MORE +); + +380 ià( +bŠ +) + +381 + `–m_objeù_di§bËd_£t +( +bŠ +, +b_di§bËd +); + +383 + } +} + +386 +Evas_Objeù + * + $_gl_ui_g‘_bŠ +(* +d©a +, +Elm_Objeù_I‹m + * +nf_™ +, + +387 cÚ¡ * +·¹ +) + +389 +Elm_Objeù_I‹m + * +_nf_™ + = +nf_™ +; + +391 ià( +_nf_™ + =ð +NULL +) { + +392 + `GL_CHECK_NULL +( +d©a +); + +393 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +394 +_nf_™ + = + `–m_Çviäame_tÝ_™em_g‘ +( +ad +-> +maššfo +. +Çviäame +); + +395 + `GL_CHECK_NULL +( +_nf_™ +); + +398  + `–m_objeù_™em_·¹_cڋÁ_g‘ +( +_nf_™ +, +·¹ +); + +399 + } +} + +402  + $_gl_ui_upd©e_»®ized_li¡_ck +( +Evas_Objeù + * +v›w +, cÚ¡ * +·¹ +, + +403 +Eša_BoÞ + +¡©e +) + +405 + `GL_CHECK_VAL +( +·¹ +, -1); + +406 + `GL_CHECK_VAL +( +v›w +, -1); + +407 +Eša_Li¡ + * +li¡ + = +NULL +; + +408 +Eša_Li¡ + * +l + = +NULL +; + +409 +Elm_Objeù_I‹m + * +™ + = +NULL +; + +411 +li¡ + = + `–m_g’li¡_»®ized_™ems_g‘ +( +v›w +); + +412 + `GL_CHECK_VAL +( +li¡ +, -1); + +414 + `EINA_LIST_FOREACH +( +li¡ +, +l +, +™ +) { + +415 ià( +™ + =ð +NULL +) { + +416 + `gl_dbgE +("Invalid item!"); + +419 + `_gl_ui_£t_checkbox_¡©e +( +™ +, +·¹ +, +¡©e +); + +422 + } +} + +424  + $_gl_ui_upd©e_»®ized_grid_ck +( +Evas_Objeù + * +v›w +, cÚ¡ * +·¹1 +, + +425 cÚ¡ * +·¹2 +, +Eša_BoÞ + +¡©e +) + +427 + `GL_CHECK_VAL +( +v›w +, -1); + +428 +Eša_Li¡ + * +grid + = +NULL +; + +429 +Eša_Li¡ + * +l + = +NULL +; + +430 +Elm_Objeù_I‹m + * +™ + = +NULL +; + +432 +grid + = + `–m_g’grid_»®ized_™ems_g‘ +( +v›w +); + +433 + `GL_CHECK_VAL +( +grid +, -1); + +435 + `EINA_LIST_FOREACH +( +grid +, +l +, +™ +) { + +436 ià( +™ + =ð +NULL +) { + +437 + `gl_dbgE +("Invalid item!"); + +440 ià( +·¹1 +) + +441 + `_gl_ui_£t_checkbox_¡©e +( +™ +, +·¹1 +, +¡©e +); + +442 ià( +·¹2 +) + +443 + `_gl_ui_£t_checkbox_¡©e +( +™ +, +·¹2 +, +¡©e +); + +446 + } +} + +448  + $_gl_ui_£t_checkbox_¡©e +( +Elm_Objeù_I‹m + * +™ +, cÚ¡ * +·¹ +, + +449 +Eša_BoÞ + +¡©e +) + +451 + `GL_CHECK_VAL +( +·¹ +, -1); + +452 + `GL_CHECK_VAL +( +™ +, -1); + +453 +Evas_Objeù + * +ck + = +NULL +; + +455 +ck + = + `–m_objeù_™em_·¹_cڋÁ_g‘ +( +™ +, +·¹ +); + +456 ià( +ck + =ð +NULL +) { + +457 + `gl_dbgE +("Invalid checkbox!"); + +461 ià( + `–m_check_¡©e_g‘ +( +ck +è!ð +¡©e +) + +462 + `–m_check_¡©e_£t +( +ck +, +¡©e +); + +464 + } +} + +467  + $_gl_ui_upd©e_»®ized_li¡_f›ld +( +Evas_Objeù + * +v›w +, cÚ¡ * +·¹ +) + +469 + `GL_CHECK_VAL +( +·¹ +, -1); + +470 + `GL_CHECK_VAL +( +v›w +, -1); + +471 +Eša_Li¡ + * +li¡ + = +NULL +; + +472 +Eša_Li¡ + * +l + = +NULL +; + +473 +Elm_Objeù_I‹m + * +™ + = +NULL +; + +475 +li¡ + = + `–m_g’li¡_»®ized_™ems_g‘ +( +v›w +); + +476 + `GL_CHECK_VAL +( +li¡ +, -1); + +478 + `EINA_LIST_FOREACH +( +li¡ +, +l +, +™ +) { + +479 ià( + `_gl_ui_upd©e_li¡_f›ld +( +™ +, +·¹ +) < 0) + +483 + } +} + +485  + $_gl_ui_upd©e_li¡_f›ld +( +Elm_Objeù_I‹m + * +™ +, cÚ¡ * +·¹ +) + +487 + `GL_CHECK_VAL +( +·¹ +, -1); + +488 + `GL_CHECK_VAL +( +™ +, -1); + +489 + `–m_g’li¡_™em_f›lds_upd©e +( +™ +, +·¹ +, + +490 +ELM_GENLIST_ITEM_FIELD_CONTENT +); + +492 + } +} + +494  + $_gl_ui_»£t_süÞËr_pos +( +Evas_Objeù + * +obj +) + +496 + `GL_CHECK_VAL +( +obj +, -1); + +497 + `evas_objeù_d©a_£t +( +obj +, "prev_scroller_x", (*)0); + +498 + `evas_objeù_d©a_£t +( +obj +, "prev_scroller_y", (*)0); + +499 + `evas_objeù_d©a_£t +( +obj +, "prev_scroller_w", (*)0); + +500 + `evas_objeù_d©a_£t +( +obj +, "prev_scroller_h", (*)0); + +502 + } +} + +504  + $_gl_ui_d–_süÞËr_pos +( +Evas_Objeù + * +obj +) + +506 + `GL_CHECK_VAL +( +obj +, -1); + +507 + `evas_objeù_d©a_d– +( +obj +, "prev_scroller_x"); + +508 + `evas_objeù_d©a_d– +( +obj +, "prev_scroller_y"); + +509 + `evas_objeù_d©a_d– +( +obj +, "prev_scroller_w"); + +510 + `evas_objeù_d©a_d– +( +obj +, "prev_scroller_h"); + +512 + } +} + +514  + $_gl_ui_§ve_süÞËr_pos +( +Evas_Objeù + * +obj +) + +516 + `GL_CHECK_VAL +( +obj +, -1); + +517 +Evas_CoÜd + +x + = 0; + +518 +Evas_CoÜd + +y + = 0; + +519 +Evas_CoÜd + +w + = 0; + +520 +Evas_CoÜd + +h + = 0; + +522 + `–m_süÞËr_»giÚ_g‘ +( +obj +, & +x +, & +y +, & +w +, & +h +); + +523 + `gl_dbg +("(%dx%d), (%dx%d)", +x +, +y +, +w +, +h +); + +524 + `evas_objeù_d©a_£t +( +obj +, "´ev_süÞËr_x", (*) +x +); + +525 + `evas_objeù_d©a_£t +( +obj +, "´ev_süÞËr_y", (*) +y +); + +526 + `evas_objeù_d©a_£t +( +obj +, "´ev_süÞËr_w", (*) +w +); + +527 + `evas_objeù_d©a_£t +( +obj +, "´ev_süÞËr_h", (*) +h +); + +529 + } +} + +531  + $_gl_ui_»¡Üe_süÞËr_pos +( +Evas_Objeù + * +obj +) + +533 + `GL_CHECK_VAL +( +obj +, -1); + +534 +Evas_CoÜd + +x + = 0; + +535 +Evas_CoÜd + +y + = 0; + +536 +Evas_CoÜd + +w + = 0; + +537 +Evas_CoÜd + +h + = 0; + +539 +x + = ( +Evas_CoÜd +) + `evas_objeù_d©a_g‘ +( +obj +, "prev_scroller_x"); + +540 +y + = ( +Evas_CoÜd +) + `evas_objeù_d©a_g‘ +( +obj +, "prev_scroller_y"); + +541 +w + = ( +Evas_CoÜd +) + `evas_objeù_d©a_g‘ +( +obj +, "prev_scroller_w"); + +542 +h + = ( +Evas_CoÜd +) + `evas_objeù_d©a_g‘ +( +obj +, "prev_scroller_h"); + +543 + `gl_dbg +("(%dx%d), (%dx%d)", +x +, +y +, +w +, +h +); + +544 ià( +w + > 0 && +h + > 0) + +545 + `–m_süÞËr_»giÚ_show +( +obj +, +x +, +y +, +w +, +h +); + +547 + } +} + +549  + $_gl_ui_rÙ©e_v›w +(* +d©a +,  +v›w_mode +) + +551 + `GL_CHECK_VAL +( +d©a +, -1); + +552 + `gl_dbg +("v›w_mode: %d", +v›w_mode +); + +554  +v›w_mode +) { + +555  +GL_VIEW_ALBUMS +: + +556  +GL_VIEW_ALBUMS_EDIT +: + +557  +GL_VIEW_ALBUM_REORDER +: + +558 + `_gl_®bums_rÙ©e_v›w +( +d©a +); + +560  +GL_VIEW_ALBUMS_SELECT +: + +561 + `_gl_®bums_£l_rÙ©e_v›w +( +d©a +); + +563  +GL_VIEW_THUMBS +: + +564  +GL_VIEW_THUMBS_EDIT +: + +565  +GL_VIEW_THUMBS_SELECT +: + +566 + `_gl_thumbs_rÙ©e_v›w +( +d©a +); + +568  +GL_VIEW_TIMELINE +: + +569 + `_gl_tim–še_v›w_rÙ©e +( +d©a +); + +575 + } +} + +578  + $_gl_ui_d–_nf_™ems +( +Evas_Objeù + * +nf +, +Elm_Objeù_I‹m + * +to_™ +) + +580 + `GL_CHECK_VAL +( +nf +, -1); + +581 +Eša_Li¡ + * +nf_™ems + = +NULL +; + +582 +Eša_Li¡ + * +l + = +NULL +; + +583 +Elm_Objeù_I‹m + * +™ + = +NULL +; + +585 +nf_™ems + = + `–m_Çviäame_™ems_g‘ +( +nf +); + +586 + `EINA_LIST_REVERSE_FOREACH +( +nf_™ems +, +l +, +™ +) { + +587 ià( +™ + !ð +to_™ +) { + +588 + `gl_dbg +("Delete one item!"); + +589 + `–m_objeù_™em_d– +( +™ +); + +590 +™ + = +NULL +; + +595 + `eša_li¡_ä“ +( +nf_™ems +); + +597 + } +} + +599  + $_gl_ui_£t_Œª¦©e_¡r +( +Evas_Objeù + * +obj +, cÚ¡ * +¡r +) + +601 + `GL_CHECK_VAL +( +¡r +, -1); + +602 + `GL_CHECK_VAL +( +obj +, -1); + +603 * +domaš + = +GL_STR_DOMAIN_LOCAL +; + +604 ià( + `¡r¡r +( +¡r +, "IDS_COM")) + +605 +domaš + = +GL_STR_DOMAIN_SYS +; + +606 + `–m_objeù_domaš_Œª¦©abË_‹xt_£t +( +obj +, +domaš +, +¡r +); + +608 + } +} + +610  + $_gl_ui_£t_Œª¦©abË_™em +( +Elm_Objeù_I‹m + * +nf_™ +, cÚ¡ * +¡r +) + +612 + `GL_CHECK_VAL +( +¡r +, -1); + +613 + `GL_CHECK_VAL +( +nf_™ +, -1); + +614 * +domaš + = +GL_STR_DOMAIN_LOCAL +; + +615 ià( + `¡r¡r +( +¡r +, "IDS_COM")) + +616 +domaš + = +GL_STR_DOMAIN_SYS +; + +617 + `–m_objeù_™em_domaš_‹xt_Œª¦©abË_£t +( +nf_™ +, +domaš +, +EINA_TRUE +); + +619 + } +} + +621  + $_gl_ui_£t_Œª¦©abË_™em_·¹ +( +Elm_Objeù_I‹m + * +nf_™ +, cÚ¡ * +·¹ +, + +622 cÚ¡ * +¡r +) + +624 + `GL_CHECK_VAL +( +¡r +, -1); + +625 + `GL_CHECK_VAL +( +nf_™ +, -1); + +626 * +domaš + = +GL_STR_DOMAIN_LOCAL +; + +627 ià( + `¡r¡r +( +¡r +, "IDS_COM")) + +628 +domaš + = +GL_STR_DOMAIN_SYS +; + +629 + `–m_objeù_™em_domaš_·¹_‹xt_Œª¦©abË_£t +( +nf_™ +, +·¹ +, +domaš +, + +630 +EINA_TRUE +); + +632 + } +} + +634  + $_gl_ui_£t_Œª¦©e_·¹_¡r +( +Evas_Objeù + * +obj +, cÚ¡ * +·¹ +, + +635 cÚ¡ * +¡r +) + +637 + `GL_CHECK_VAL +( +¡r +, -1); + +638 + `GL_CHECK_VAL +( +·¹ +, -1); + +639 + `GL_CHECK_VAL +( +obj +, -1); + +641 * +domaš + = +GL_STR_DOMAIN_LOCAL +; + +642 ià( + `¡r¡r +( +¡r +, "IDS_COM")) + +643 +domaš + = +GL_STR_DOMAIN_SYS +; + +644 + `–m_objeù_domaš_Œª¦©abË_·¹_‹xt_£t +( +obj +, +·¹ +, +domaš +, +¡r +); + +646 + } +} + +649  + $_gl_ui_chªge_t™Ë +( +Elm_Objeù_I‹m + * +nf_™ +, cÚ¡ * +‹xt +) + +651 + `GL_CHECK_VAL +( +‹xt +, -1); + +652 + `GL_CHECK_VAL +( +nf_™ +, -1); + +653 + `–m_objeù_™em_‹xt_£t +( +nf_™ +, +‹xt +); + +654 + `_gl_ui_£t_Œª¦©abË_™em +( +nf_™ +, +‹xt +); + +656 + } +} + +659  + $_gl_ui_upd©e_Ïb–_‹xt +( +Elm_Objeù_I‹m + * +nf_™ +,  +£l_út +, +boÞ + +b_Ïng +) + +661 + `GL_CHECK_VAL +( +nf_™ +, -1); + +662 + `gl_dbg +("CouÁ: %d,†ªg: %d", +£l_út +, +b_Ïng +); + +663 * +pd_£Ëùed + = +GL_STR_PD_SELECTED +; + +666 ià( +£l_út + > 0) { + +667 * +‹xt + = +NULL +; + +668 +‹xt + = + `g_¡rdup_´štf +( + `_gl_¡r +( +pd_£Ëùed +), +£l_út +); + +669 + `–m_objeù_™em_‹xt_£t +( +nf_™ +, +‹xt +); + +670 + `GL_GFREEIF +( +‹xt +); + +671 } ià(! +b_Ïng +) { + +673 + `–m_objeù_™em_‹xt_£t +( +nf_™ +, +GL_STR_ID_SELECT_ITEM +); + +674 + `_gl_ui_£t_Œª¦©abË_™em +( +nf_™ +, +GL_STR_ID_SELECT_ITEM +); + +677 + } +} + +680  + $_gl_ui_chªge_Çvi_t™Ë +( +Elm_Objeù_I‹m + * +nf_™ +, * +‹xt +, +boÞ + +b_drÝdown +) + +682 + `GL_CHECK_VAL +( +‹xt +, -1); + +683 + `GL_CHECK_VAL +( +nf_™ +, -1); + +685 + `–m_objeù_™em_·¹_‹xt_£t +( +nf_™ +, "–m.‹xt.t™Ë", + `_gl_¡r +( +‹xt +)); + +687 + } +} + +690  + $_gl_ui_upd©e_Çvi_t™Ë_‹xt +( +Elm_Objeù_I‹m + * +nf_™ +,  +£l_út +, +boÞ + +b_Ïng +) + +692 + `GL_CHECK_VAL +( +nf_™ +, -1); + +693 + `gl_dbg +("CouÁ: %d,†ªg: %d", +£l_út +, +b_Ïng +); + +694 * +pd_£Ëùed + = +GL_STR_PD_SELECTED +; + +696 +Evas_Objeù + * +bŠ + = + `–m_objeù_™em_·¹_cڋÁ_g‘ +( +nf_™ +, +GL_NAVIFRAME_TITLE_RIGHT_BTN +); + +698 ià( +bŠ +) { + +699 ià( +£l_út + > 0) { + +700 + `–m_objeù_di§bËd_£t +( +bŠ +, +EINA_FALSE +); + +702 + `–m_objeù_di§bËd_£t +( +bŠ +, +EINA_TRUE +); + +707 ià( +£l_út + > 0) { + +708 * +‹xt + = +NULL +; + +709 +‹xt + = + `g_¡rdup_´štf +( + `_gl_¡r +( +pd_£Ëùed +), +£l_út +); + +710 + `–m_objeù_™em_·¹_‹xt_£t +( +nf_™ +, "–m.‹xt.t™Ë", + `_gl_¡r +( +‹xt +)); + +711 + `gl_dbg +("Texˆi : %s", +‹xt +); + +712 + `GL_GFREEIF +( +‹xt +); + +713 } ià(! +b_Ïng +) { + +715 + `gl_dbg +("Texˆi : %s", +GL_STR_ID_SELECT_ITEM +); + +716 + `–m_objeù_™em_·¹_‹xt_£t +( +nf_™ +, "–m.‹xt.t™Ë", + `_gl_¡r +( +GL_STR_ID_SELECT_ITEM +)); + +719 + } +} + +721  + $_gl_ui_add_£ÏÎ_ck +( +Evas_Objeù + * +·»Á +, * +·¹ +, * +·¹_bŠ +, + +722 +Evas_Sm¬t_Cb + +cb_func +, * +d©a +) + +724 + `GL_CHECK_VAL +( +d©a +, -1); + +725 + `GL_CHECK_VAL +( +·»Á +, -1); + +726 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +727 +Evas_Objeù + * +£l_®l_bŠ + = +NULL +; + +728 +Evas_Objeù + * +£l_®l_ck + = +NULL +; + +730 + `_gl_ui_£t_Œª¦©e_·¹_¡r +( +·»Á +, "£Ëù.®l.¬—.Ïb–", +GL_STR_ID_SELECT_ALL +); + +731 ià( +·¹ +) { + +732 +£l_®l_ck + = + `–m_check_add +( +·»Á +); + +733 + `GL_CHECK_VAL +( +£l_®l_ck +, -1); + +734 + `–m_check_¡©e_£t +( +£l_®l_ck +, +EINA_FALSE +); + +735 + `–m_objeù_·¹_cڋÁ_£t +( +·»Á +, "£Ëù.®l.¬—.check", +£l_®l_ck +); + +736 +ad +-> +£lšfo +. +£Ëù®l_ck + = +£l_®l_ck +; + +737 ià( +·¹_bŠ +) { + +738 +£l_®l_bŠ + = + `–m_bu‰Ú_add +( +·»Á +); + +739 + `GL_CHECK_VAL +( +£l_®l_bŠ +, -1); + +740 + `–m_objeù_·¹_cڋÁ_£t +( +·»Á +, "£Ëù.®l.¬—.check.fg", +£l_®l_bŠ +); + +741 + `–m_objeù_¡yË_£t +( +£l_®l_bŠ +, "transparent"); + +742 + `evas_objeù_sm¬t_ÿÎback_add +( +£l_®l_bŠ +, "þicked", +cb_func +, +d©a +); + +746 + } +} + +748 #ifdeà +_USE_GRID_CHECK + + +749  + $_gl_show_grid_checks +( +Evas_Objeù + * +v›w +, cÚ¡ * +ck_·¹ +) + +751 + `GL_CHECK_VAL +( +ck_·¹ +, -1); + +752 + `GL_CHECK_VAL +( +v›w +, -1); + +754 +Elm_Objeù_I‹m + * +fœ¡_™ + = +NULL +; + +755 +Elm_Objeù_I‹m + * +Ãxt_™ + = +NULL +; + +756 +Elm_Objeù_I‹m + * +Ï¡_™ + = +NULL +; + +757 +fœ¡_™ + = + `–m_g’grid_fœ¡_™em_g‘ +( +v›w +); + +758 +Ï¡_™ + = + `–m_g’grid_Ï¡_™em_g‘ +( +v›w +); + +759 ià( +fœ¡_™ +) + +760 + `–m_g’grid_™em_upd©e +( +fœ¡_™ +); + +761  +fœ¡_™ +) { + +762 +Ãxt_™ + = + `–m_g’grid_™em_Ãxt_g‘ +( +fœ¡_™ +); + +763 ià( +Ãxt_™ + =ð +NULL +) { + +764 + `gl_dbgE +("Invalid item! Break!"); + +767 + `–m_g’grid_™em_upd©e +( +Ãxt_™ +); + +768 +fœ¡_™ + = +Ãxt_™ +; + +769 ià( +Ï¡_™ + =ð +fœ¡_™ +) { + +770 + `gl_dbg +("done!"); + +775 + } +} + +777  + $_gl_show_grid_checks_du® +( +Evas_Objeù + * +v›w +, cÚ¡ * +ck_·¹ +, cÚ¡ * +ck_·¹2 +) + +779 + `GL_CHECK_VAL +( +ck_·¹ +, -1); + +780 + `GL_CHECK_VAL +( +v›w +, -1); + +782 +Elm_Objeù_I‹m + * +fœ¡_™ + = +NULL +; + +783 +Elm_Objeù_I‹m + * +Ãxt_™ + = +NULL +; + +784 +Elm_Objeù_I‹m + * +Ï¡_™ + = +NULL +; + +785 +fœ¡_™ + = + `–m_g’grid_fœ¡_™em_g‘ +( +v›w +); + +786 +Ï¡_™ + = + `–m_g’grid_Ï¡_™em_g‘ +( +v›w +); + +787 ià( +fœ¡_™ +) + +788 + `–m_g’grid_™em_upd©e +( +fœ¡_™ +); + +789  +fœ¡_™ +) { + +790 +Ãxt_™ + = + `–m_g’grid_™em_Ãxt_g‘ +( +fœ¡_™ +); + +791 ià( +Ãxt_™ + =ð +NULL +) { + +792 + `gl_dbgE +("Invalid item! Break!"); + +795 + `–m_g’grid_™em_upd©e +( +Ãxt_™ +); + +796 +fœ¡_™ + = +Ãxt_™ +; + +797 ià( +Ï¡_™ + =ð +fœ¡_™ +) { + +798 + `gl_dbg +("done!"); + +803 + } +} + + @src/util/gl-util.c + +18  + ~ + +19 #ifdeà +_USE_SVI + + +20  + ~ + +22  + ~ + +23  + ~ + +24  + ~<¡Üage.h +> + +25  + ~"gl-debug.h +" + +26  + ~"g®Ëry.h +" + +27  + ~"gl-®bums.h +" + +28  + ~"gl-thumbs.h +" + +29  + ~"gl-utž.h +" + +30  + ~"gl-ui-utž.h +" + +31  + ~"gl-cڌÞb¬.h +" + +32  + ~"gl-th»ad-utž.h +" + +33  + ~"gl-pÝup.h +" + +34  + ~"gl-ùxpÝup.h +" + +35  + ~"gl-´og»ssb¬.h +" + +36  + ~"gl-ext-ug-lßd.h +" + +37  + ~"gl-ext-exec.h +" + +38  + ~"gl-pšchzoom.h +" + +39  + ~"gl-®bums-£l.h +" + +40  + ~"gl-thumbs-£l.h +" + +41  + ~"gl-thumbs-ed™.h +" + +42  + ~"gl-nÙify.h +" + +43  + ~"gl-ed™f›ld.h +" + +44  + ~"gl-¡ršgs.h +" + +45  + ~"gl-icÚs.h +" + +46  + ~"gl-d©a-ty³.h +" + +47  + ~"gl-fs.h +" + +48  + ~"gl-db-upd©e.h +" + +49 #ifdeà +_USE_ROTATE_BG + + +50  + ~"gl-exif.h +" + +52  + ~"gl-tim–še.h +" + +53  + ~"gl-fže-utž.h +" + +55  + #GL_FILE_COPY_BUF_MAX + 16384 + + ) + +57  + #GL_TIMER_INTERVAL_PBAR_SHOWED + 0.5 + + ) + +58  + #GL_TIMER_INTERVAL_VIBRATION + 0.5 + + ) + +59 #ifdeà +_USE_ROTATE_BG + + +60  + #GL_ROTATE_DELAY + 0.25 + + ) + +62  + #GL_SO_PATH_IMAGEVIEWER + "/u¤/ug/lib/libug-image-v›w”-eæ.so" + + ) + +63  + #GL_FS_MIN_SIZE + (500 * 1024) + + ) + +66  +Eša_BoÞ + + $_gl_¡¬t_th»ad_Ý_tim”_cb +(* +d©a +) + +68 + `gl_dbg +("Emit START signal..."); + +69 + `GL_CHECK_CANCEL +( +d©a +); + +70 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +72 + `gl_th»ad_em™_Ãxt_sigÇl +( +ad +); + +73 + `GL_IF_DEL_TIMER +( +ad +-> +pb¬šfo +. +¡¬t_th»ad_tim” +); + +74  +ECORE_CALLBACK_CANCEL +; + +75 + } +} + +81  + $_gl_u£_th»ad_ݔ©e_medŸs +(* +d©a +, * +pb¬_t™Ë +,  +®l_út +, + +82  +Ý_ty³ +) + +84 + `gl_dbg +("®l_út: %d, op_ty³: %d.", +®l_út +, +Ý_ty³ +); + +85 + `GL_CHECK_VAL +( +d©a +, -1); + +86 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +89 + `gl_th»ad_š™_lock +( +ad +); + +91 + `gl_pb_make_th»ad_pb¬_wh“l +( +ad +,‡d-> +maššfo +. +wš +, +pb¬_t™Ë +); + +93 + `gl_th»ad_£t_ÿnûl_¡©e +( +ad +, +GL_PB_CANCEL_NORMAL +); + +95 + `gl_pb_»äesh_th»ad_pb¬ +( +ad +, 0, +®l_út +); + +97 + `GL_IF_DEL_TIMER +( +ad +-> +pb¬šfo +. +¡¬t_th»ad_tim” +); + +98 +EcÜe_Tim” + * +tim” + = +NULL +; + +99 +tim” + = + `ecÜe_tim”_add +( +GL_TIMER_INTERVAL_PBAR_SHOWED +, + +100 +_gl_¡¬t_th»ad_Ý_tim”_cb +, +ad +); + +101 +ad +-> +pb¬šfo +. +¡¬t_th»ad_tim” + = +tim” +; + +103 +ad +-> +maššfo +. +medŸs_Ý_ty³ + = +Ý_ty³ +; + +105 + `gl_th»ad_g’_d©a_th»ad +( +ad +); + +107 + } +} + +109 +boÞ + + $__gl_utž_g‘_suµÜ‹d_¡Üages_ÿÎback +( +¡ÜageId +, +¡Üage_ty³_e + +ty³ +, +¡Üage_¡©e_e + +¡©e +, cÚ¡ * +·th +, * +d©a +) + +111 + `GL_CHECK_FALSE +( +d©a +); + +113 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +114 ià( +ty³ + =ð +STORAGE_TYPE_EXTERNAL +) { + +115 +ad +-> +maššfo +. +ex‹º®StÜageId + = +¡ÜageId +; + +116  +çl£ +; + +118  +Œue +; + +119 + } +} + +121  +Eša_BoÞ + + $__gl_db_upd©e_nÙi_idËr_cb +(* +d©a +) + +123 + `GL_CHECK_FALSE +( +d©a +); + +124 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +125 + `gl_dbgW +("Storage state changed!"); + +126  +”rÜ_code + = -1; + +128 +”rÜ_code + = + `¡Üage_fܗch_deviû_suµÜ‹d +( +__gl_utž_g‘_suµÜ‹d_¡Üages_ÿÎback +, +ad +); + +129 ià( +”rÜ_code + =ð +STORAGE_ERROR_NONE +) { + +130 +¡Üage_¡©e_e + +¡©e +; + +131 +”rÜ_code + = + `¡Üage_g‘_¡©e +( +ad +-> +maššfo +. +ex‹º®StÜageId +, & +¡©e +); + +132 ià( +”rÜ_code + =ð +STORAGE_ERROR_NONE +) { + +133 ià( +¡©e + =ð +STORAGE_STATE_MOUNTED +) { + +134 + `gl_dbg +("¡©e[%d] : STORAGE_STATE_MOUNTED", +¡©e +); + +135 ià( +ad +-> +maššfo +. +mmc_¡©e + =ð +GL_MMC_STATE_REMOVED +) + +136 +ad +-> +maššfo +. +mmc_¡©e + = +GL_MMC_STATE_ADDING_MOVING +; + +138 +ad +-> +maššfo +. +mmc_¡©e + = +GL_MMC_STATE_ADDED +; + +140 + `gl_upd©e_v›w +( +ad +, +GL_UPDATE_VIEW_MMC_ADDED +); + +144 + `_gl_ùxpÝup_d– +( +ad +); + +145 } ià( +¡©e + =ð +STORAGE_STATE_REMOVED + || + +146 +¡©e + =ð +STORAGE_STATE_UNMOUNTABLE +) { + +147 + `gl_dbg +("¡©e[%d] : STORAGE_STATE_REMOVED", +¡©e +); + +148 ià( +ad +-> +maššfo +. +mmc_¡©e + =ð +GL_MMC_STATE_ADDED_MOVING +) { + +153 + `gl_th»ad_£t_ÿnûl_¡©e +( +ad +, +GL_PB_CANCEL_MMC +); + +155 +ad +-> +maššfo +. +mmc_¡©e + = +GL_MMC_STATE_REMOVED_MOVING +; + +156 } ià( +ad +-> +maššfo +. +mmc_¡©e + =ð +GL_MMC_STATE_REMOVED_MOVING +) { + +157 + `gl_dbgW +("View updated on GL_MMC_STATE_ADDED_MOVING"); + +158 + `GL_IF_DEL_IDLER +( +ad +-> +maššfo +. +mmc_idËr +); + +159  +ECORE_CALLBACK_CANCEL +; + +162 +ad +-> +maššfo +. +mmc_¡©e + = +GL_MMC_STATE_REMOVED +; + +164 + `gl_upd©e_v›w +( +ad +, +GL_UPDATE_VIEW_MMC_REMOVED +); + +168 + `_gl_ùxpÝup_d– +( +ad +); + +172 + `gl_dbgE +("Error when check MMC Status"); + +173 + `GL_IF_DEL_IDLER +( +ad +-> +maššfo +. +mmc_idËr +); + +174  +ECORE_CALLBACK_CANCEL +; + +175 + } +} + +177  + $_gl_db_upd©e_sdÿrd_šfo +( +¡Üage_id +, +¡Üage_¡©e_e + +¡©e +, * +u£r_d©a +) { + +179 + `GL_CHECK +( +u£r_d©a +); + +180 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +u£r_d©a +; + +181 + `GL_IF_DEL_IDLER +( +ad +-> +maššfo +. +mmc_idËr +); + +182 + `gl_dbg +("mmc_idËr: %p", +ad +-> +maššfo +. +mmc_idËr +); + +183 +ad +-> +maššfo +. +mmc_idËr + = + `ecÜe_idËr_add +( +__gl_db_upd©e_nÙi_idËr_cb +, + +184 +u£r_d©a +); + +185 + } +} + +187  +šlše +  + $__gl_£t_sound_¡©us +(* +d©a +,  +¡©us +) + +189 + `GL_CHECK_VAL +( +d©a +, -1); + +190 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +191 +ad +-> +maššfo +. +sound_¡©us + = +¡©us +; + +193 + } +} + +195  + $__gl_g‘_sound_¡©us +(* +d©a +) + +197 + `GL_CHECK_VAL +( +d©a +, -1); + +199 +boÞ + +check + = +çl£ +; + +200  +»tcode + = + `sy¡em_£‰šgs_g‘_v®ue_boÞ +( +SYSTEM_SETTINGS_KEY_SOUND_SILENT_MODE +, & +check +); + +201 ià( +»tcode + !ð +SYSTEM_SETTINGS_ERROR_NONE +) { + +202 + `gl_dbgE +("Failedo get sound status!"); + +206 + `gl_dbg +("sound: %d", +check +); + +207 + `__gl_£t_sound_¡©us +( +d©a +, ( +check + =ð +Œue +) ? 0 : 1); + +209 + } +} + +211  + $__gl_chªge_sound_¡©us_cb +( +sy¡em_£‰šgs_key_e + +key +, * +d©a +) + +213 + `__gl_g‘_sound_¡©us +( +d©a +); + +214 + } +} + +216  + $__gl_»g_svi_nÙi +(* +d©a +) + +218 + `GL_CHECK_VAL +( +d©a +, -1); + +219  +»tcode + = + `sy¡em_£‰šgs_£t_chªged_cb +( +SYSTEM_SETTINGS_KEY_SOUND_SILENT_MODE +, + +220 +__gl_chªge_sound_¡©us_cb +, +d©a +); + +221 ià( +»tcode + !ð +SYSTEM_SETTINGS_ERROR_NONE +) { + +222 + `gl_dbgE +("Failedo„egisterhe sound status callback"); + +226 + } +} + +228  + $__gl_d”eg_svi_nÙi +() + +230  +»tcode + = + `sy¡em_£‰šgs_un£t_chªged_cb + ( +SYSTEM_SETTINGS_KEY_SOUND_SILENT_MODE +); + +231 ià( +»tcode + !ð +SYSTEM_SETTINGS_ERROR_NONE +) { + +232 + `gl_dbgE +("Failedo un-registerhe sound status callback"); + +236 + } +} + +239  +boÞ + + $_gl_check_mmc_fže_£Ëùed +(* +d©a +) + +241 + `gl_dbg +(""); + +242 + `GL_CHECK_FALSE +( +d©a +); + +243 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +244 +gl_™em + * +g™em + = +NULL +; + +245  +i + = 0; + +246  +Ú_mmc + = -1; + +247  +út + = + `_gl_d©a_£Ëùed_li¡_couÁ +( +ad +); + +248  +i + = 0; i < +út +; i++) { + +249 +g™em + = +NULL +; + +250 +Ú_mmc + = -1; + +252 +g™em + = + `_gl_d©a_£Ëùed_li¡_g‘_Áh +( +ad +, +i +); + +254 ià( +g™em + && g™em-> +™em + && g™em->™em-> +fže_u¾ +) { + +255 +Ú_mmc + = + `¡ºcmp +( +GL_ROOT_PATH_MMC +, + +256 +g™em +-> +™em +-> +fže_u¾ +, + +257 + `¡¾’ +( +GL_ROOT_PATH_MMC +)); + +258 ià( +Ú_mmc + == 0) + +259  +Œue +; + +262  +çl£ +; + +263 + } +} + +266  +Eša_BoÞ + + $__gl_fže_ý +(* +d©a +, cÚ¡ * +¤c +, cÚ¡ * +d¡ +) + +268 + `GL_CHECK_FALSE +( +¤c +); + +269 + `GL_CHECK_FALSE +( +d¡ +); + +271 ià( + `_gl_fs_cÝy +( +d©a +, +¤c +, +d¡ +)) { + +272 ià( + `_gl_loÿl_d©a_add_medŸ +( +d¡ +, +NULL +) < 0) { + +273 + `gl_dbgE +("Copy mediahumbnail failed!"); + +274  +EINA_FALSE +; + +277 + `gl_dbgE +("Copy file failed!"); + +278  +EINA_FALSE +; + +280  +EINA_TRUE +; + +281 + } +} + +284  +Eša_BoÞ + + $__gl_fže_mv +(* +d©a +, +gl_™em + * +g™em +, cÚ¡ * +¤c +, cÚ¡ * +d¡ +,  +mc_mode +) + +286 + `GL_CHECK_FALSE +( +¤c +); + +287 + `GL_CHECK_FALSE +( +d¡ +); + +288 + `GL_CHECK_FALSE +( +g™em +); + +289 + `GL_CHECK_FALSE +( +d©a +); + +291 ià( + `_gl_fs_move +( +d©a +, +¤c +, +d¡ +)) { + +292 ià( + `_gl_loÿl_d©a_move_medŸ +( +g™em +-> +™em +, +d¡ +) < 0) { + +293 + `gl_dbgE +("Move mediahumbnail failed!"); + +294  +EINA_FALSE +; + +297 + `gl_dbgE +("Move file failed!"); + +298  +EINA_FALSE +; + +301  +EINA_TRUE +; + +302 + } +} + +304  + $gl_g‘_’Œy_‹xt +( +Evas_Objeù + * +’Œy +, * +’Œy_‹xt +,  +Ën_max +) + +306 + `gl_dbg +(""); + +307 + `GL_CHECK_VAL +( +’Œy_‹xt +, -1); + +308 + `GL_CHECK_VAL +( +’Œy +, -1); + +310 + `mem£t +( +’Œy_‹xt +, 0x00, +Ën_max +); + +312 * +’Œy_¡r + = (*) + `–m_’Œy_’Œy_g‘ +( +’Œy +); + +313 ià( +’Œy_¡r +) + +315 ià( + `¡¾’ +( +’Œy_¡r +) == 0) + +317 + `gl_dbg +("Entry string isƒmpty!"); + +321 * +’Œy_utf8 + = + `–m_’Œy_m¬kup_to_utf8 +( +’Œy_¡r +); + +322 ià( +’Œy_utf8 + =ð +NULL +) + +324 + `gl_dbgE +("Makeƒntry stringo UTF8 failed!"); + +327 ià( + `¡¾’ +( +’Œy_utf8 +) == 0) + +329 + `gl_dbg +("Entryext isƒmpty!"); + +333 + `g_¡¾ýy +( +’Œy_‹xt +, +’Œy_utf8 +, +Ën_max +); + +334 +’Œy_‹xt +[ +Ën_max + - 1] = '\0'; + +337 + `GL_FREE +( +’Œy_utf8 +); + +342 + `gl_dbgE +("Getƒntry string failed!"); + +347 + } +} + +354  + $gl_£t_’Œy_‹xt +( +Evas_Objeù + * +’Œy +, * +’Œy_‹xt +) + +356 + `GL_CHECK_VAL +( +’Œy +, -1); + +357 * +’Œy_makeup + = +NULL +; + +358 + `gl_dbg +("EÁry UTF8ext: %s.", +’Œy_‹xt +); + +360 ià( +’Œy_‹xt +) { + +361 +’Œy_makeup + = + `–m_’Œy_utf8_to_m¬kup +( +’Œy_‹xt +); + +362 ià( +’Œy_makeup + =ð +NULL +) { + +363 + `gl_dbgE +("Make utf8 stringo makeup failed!"); + +366 + `gl_dbg +("EÁry makeu°‹xt: %s.", +’Œy_makeup +); + +369 + `–m_’Œy_’Œy_£t +( +’Œy +, +’Œy_makeup +); + +371 + `GL_FREEIF +( +’Œy_makeup +); + +373 + } +} + +387  + $_gl_g‘_v®id_®bum_Çme +(* +d©a +, * +®bum_Çme +, +boÞ + +b_Ãw +, + +388 +boÞ + +b_’‹r +) + +390 + `GL_CHECK_VAL +( +®bum_Çme +, -1); + +391 + `GL_CHECK_VAL +( +d©a +, -1); + +392 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +393  +mode + = 0; + +394 + `gl_sdbg +("IÅuˆ®bum‚ame: %s", +®bum_Çme +); + +395 * +pÝup_desc +; + +396 +pÝup_desc + = (*) + `ÿÎoc +( +GL_POPUP_STRING_MAX +, ()); + +397 ià( +pÝup_desc + =ð +NULL +) { + +398 + `gl_dbg +("memory‡llocation fail"); + +402 ià( + `¡¾’ +( +®bum_Çme +) == 0) { + +403 + `gl_dbgW +("Insertedext isƒmpty!"); + +404 ià( +b_’‹r +) { + +405 + `gl_dbg +("Enter key…ressed."); + +406  +INVALID_ALBUM_NAME +; + +409 ià( +b_Ãw +) + +410 +mode + = +GL_POPUP_ALBUM_NEW_EMPTY +; + +412 +mode + = +GL_POPUP_ALBUM_RENAME_EMPTY +; + +413 + `¢´štf +( +pÝup_desc +, +GL_POPUP_STRING_MAX +, "%s
%s", + +414 +GL_STR_ENTRY_IS_EMPTY +, +GL_STR_RETRY_Q +); + +415 + `gl_pÝup_ü—‹_pÝup +( +ad +, +mode +, +pÝup_desc +); + +416  +INVALID_ALBUM_NAME +; + +418 + `gl_sdbg +("In£¹ed‡lbum‚ame: %s,†’gth: %d", +®bum_Çme +, + `¡¾’ +(album_name)); + +421 + `g_¡r¡r +(( +gch¬ + *) +®bum_Çme +); + +422 ià( + `¡¾’ +( +®bum_Çme +) == 0) { + +423 + `gl_dbgW +("Album‚ame includes only space!"); + +424 ià( +b_’‹r +) { + +425 + `gl_dbg +("Enter key…ressed."); + +426  +INVALID_ALBUM_NAME +; + +429 ià( +b_Ãw +) + +430 +mode + = +GL_POPUP_ALBUM_NEW_EMPTY +; + +432 +mode + = +GL_POPUP_ALBUM_RENAME_EMPTY +; + +433 + `¢´štf +( +pÝup_desc +, +GL_POPUP_STRING_MAX +, "%s
%s", + +434 +GL_STR_INVALID_INPUT_PARAMETER +, +GL_STR_RETRY_Q +); + +435 + `gl_pÝup_ü—‹_pÝup +( +ad +, +mode +, +pÝup_desc +); + +436  +INVALID_ALBUM_NAME +; + +440 ià( + `_gl_fs_v®id©e_Çme +( +®bum_Çme +è=ð +çl£ +) { + +441 + `gl_dbgW +("Album‚ame includes invalid character!"); + +442 ià( +b_Ãw +) + +443 +mode + = +GL_POPUP_ALBUM_NEW_INVALID +; + +445 +mode + = +GL_POPUP_ALBUM_RENAME_INVALID +; + +446 + `¢´štf +( +pÝup_desc +, +GL_POPUP_STRING_MAX +, "%s
%s", + +447 +GL_STR_INVALID_INPUT_PARAMETER +, +GL_STR_RETRY_Q +); + +448 + `gl_pÝup_ü—‹_pÝup +( +ad +, +mode +, +pÝup_desc +); + +449  +INVALID_ALBUM_NAME +; + +452 + `GL_FREE +( +pÝup_desc +); + +456 +INVALID_ALBUM_NAME +: + +457 + `GL_FREE +( +pÝup_desc +); + +459 + } +} + +461  + $_gl_v®id©e_®bum_Çme +(* +d©a +, * +®bum_Çme +) + +463 + `GL_CHECK_VAL +( +®bum_Çme +, -1); + +464 + `GL_CHECK_VAL +( +d©a +, -1); + +465 + `gl_sdbg +("IÅuˆ®bum‚ame: %s", +®bum_Çme +); + +468 ià( + `¡¾’ +( +®bum_Çme +) == 0) { + +469 + `gl_dbgW +("Insertedext isƒmpty!"); + +470 + `_gl_pÝup_ü—‹_loÿl +( +d©a +, +GL_POPUP_NOBUT +, +GL_STR_ID_ENTRY_IS_EMPTY +); + +471  +INVALID_ALBUM_NAME +; + +475 + `g_¡r¡r +(( +gch¬ + *) +®bum_Çme +); + +476 + `gl_sdbg +("In£¹ed‡lbum‚ame: %s,†’gth: %d", +®bum_Çme +, + `¡¾’ +(album_name)); + +478 ià( + `¡¾’ +( +®bum_Çme +) == 0) { + +479 + `gl_dbgW +("Album‚ame includes only space!"); + +480 + `_gl_pÝup_ü—‹_loÿl +( +d©a +, +GL_POPUP_NOBUT +, +GL_STR_ID_INVALID_INPUT_PARAMETER +); + +481  +INVALID_ALBUM_NAME +; + +485 ià( + `_gl_fs_v®id©e_Çme +( +®bum_Çme +è=ð +çl£ +) { + +486 + `gl_dbgW +("Album‚ame includes invalid character!"); + +487 + `_gl_pÝup_ü—‹_loÿl +( +d©a +, +GL_POPUP_NOBUT +, +GL_STR_ID_INVALID_INPUT_PARAMETER +); + +488  +INVALID_ALBUM_NAME +; + +493 +INVALID_ALBUM_NAME +: + +496 + } +} + +498  + $_gl_v®id©e_šput_ch¬aù” +(* +d©a +, * +®bum_Çme +) + +500 + `GL_CHECK_VAL +( +®bum_Çme +, -1); + +501 + `GL_CHECK_VAL +( +d©a +, -1); + +502 + `gl_sdbg +("IÅuˆ®bum‚ame: %s", +®bum_Çme +); + +505 ià( + `_gl_fs_v®id©e_ch¬aù” +( +®bum_Çme +[ + `¡¾’ +×lbum_Çmeè- 1]è=ð +çl£ +) { + +506 + `gl_dbgW +("Album‚ame includes invalid character!"); + +507 + `_gl_pÝup_ü—‹_loÿl +( +d©a +, +GL_POPUP_NOBUT +, +GL_STR_ID_INVALID_INPUT_PARAMETER +); + +508  +INVALID_ALBUM_NAME +; + +513 +INVALID_ALBUM_NAME +: + +516 + } +} + +527 * + $_gl_g‘_i18n_®bum_Çme +( +gl_®bum_s + * +þu¡” +) + +529 + `GL_CHECK_NULL +( +þu¡” +); + +530 * +i18n_Çme + = +NULL +; + +532 ià( + `_gl_d©a_is_ÿm”a_®bum +( +þu¡” +)) { + +534 +i18n_Çme + = +GL_STR_ID_CAMERA +; + +535 } ià( + `_gl_d©a_is_deçuÉ_®bum +( +GL_STR_ALBUM_DOWNLOADS +, +þu¡” +)) { + +537 +i18n_Çme + = +GL_STR_ID_DOWNLOADS +; + +538 } ià( + `_gl_d©a_is_sü“nshÙ_®bum +( +GL_STR_ALBUM_SCREENSHOTS +, +þu¡” +)) { + +540 +i18n_Çme + = +GL_STR_ID_SCREENSHOTS +; + +541 } ià( +þu¡” +-> +ty³ + =ð +GL_STORE_T_ALL +) { + +542 + `GL_FREEIF +( +þu¡” +-> +di¥Ïy_Çme +); + +543 +þu¡” +-> +di¥Ïy_Çme + = + `¡rdup +( +GL_STR_ID_ALL_ALBUMS +); + +544 +i18n_Çme + = +þu¡” +-> +di¥Ïy_Çme +; + +545 } ià( +þu¡” +-> +ty³ + =ð +GL_STORE_T_PHONE + || + +546 +þu¡” +-> +ty³ + =ð +GL_STORE_T_MMC +) { + +547 ià( + `_gl_d©a_is_roÙ_·th +( +þu¡” +-> +·th +)) { + +549 +i18n_Çme + = +GL_STR_ID_NO_NAME +; + +552 +i18n_Çme + = +þu¡” +-> +di¥Ïy_Çme +; + +556 +i18n_Çme + = +þu¡” +-> +di¥Ïy_Çme +; + +559 ià( +i18n_Çme + =ð +NULL + || + `¡¾’ +(i18n_name) <= 0) + +560 +i18n_Çme + = +GL_STR_ID_NO_NAME +; + +562  +i18n_Çme +; + +563 + } +} + +565  + $gl_g‘_£Ëùed_fžes_·th_¡r +(* +d©a +, +gch¬ + +£p_c +, ** +·th_¡r +, + +566 * +£l_út +) + +568 + `GL_CHECK_VAL +( +·th_¡r +, -1); + +569 + `GL_CHECK_VAL +( +d©a +, -1); + +570 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +571 + `GL_CHECK_VAL +( +ad +-> +£lšfo +. +–i¡ +, -1); + +572 +GSŒšg + * +£Ëùed_·th_li¡ + = + `g_¡ršg_Ãw +( +NULL +); + +573 +gl_™em + * +cu¼’t + = +NULL +; + +574  +£Ëùed_™em_út + = 0; + +575 +Eša_Li¡ + * +l + = +NULL +; + +577 + `EINA_LIST_FOREACH +( +ad +-> +£lšfo +. +–i¡ +, +l +, +cu¼’t +) { + +578 ià( +cu¼’t + =ð +NULL + || cu¼’t-> +™em + == NULL) { + +579 ià( +£Ëùed_·th_li¡ +) { + +580 + `g_¡ršg_ä“ +( +£Ëùed_·th_li¡ +, +Œue +); + +581 +£Ëùed_·th_li¡ + = +NULL +; + +586 ià( + `¡r¡r +( +£Ëùed_·th_li¡ +-> +¡r +, +cu¼’t +-> +™em +-> +fže_u¾ +)) { + +587 + `gl_dbgW +("Already‡ppended!"); + +589 +£Ëùed_™em_út +++; + +590 + `g_¡ršg_­³nd +( +£Ëùed_·th_li¡ +, + +591 +cu¼’t +-> +™em +-> +fže_u¾ +); + +592 + `g_¡ršg_­³nd_c +( +£Ëùed_·th_li¡ +, +£p_c +); + +596 + `gl_dbg +("S–eùed i‹m couÁ: %d.", +£Ëùed_™em_út +); + +597 ià( +£l_út +) + +598 * +£l_út + = +£Ëùed_™em_út +; + +599  +Ën + = + `¡¾’ +( +£Ëùed_·th_li¡ +-> +¡r +); + +600 + `g_¡ršg_Œunÿ‹ +( +£Ëùed_·th_li¡ +, +Ën + - 1); + +607 * +·th_¡r + = + `g_¡ršg_ä“ +( +£Ëùed_·th_li¡ +, +çl£ +); + +608 + `GL_CHECK_VAL +(* +·th_¡r +, -1); + +609 + `gl_dbg +("TÙ® sŒšg:\n\n\t>>@@:> % <:@@<<\n", * +·th_¡r +); + +611 + } +} + +613 +boÞ + + $gl_make_Ãw_®bum +(cÚ¡ * +Çme +) + +615 + `gl_dbg +(""); + +616  +·th +[ +GL_DIR_PATH_LEN_MAX +] = { 0, }; + +618 + `¢´štf +( +·th +, +GL_DIR_PATH_LEN_MAX +, "%s/%s", +GL_DEFAULT_PATH_IMAGES +, +Çme +); + +619 +·th +[ + `¡¾’ +(path)] = '\0'; + +620 + `gl_sdbg +("Makšg % dœeùÜy", +·th +); + +622 + `_gl_fs_mkdœ +( +GL_DEFAULT_PATH_IMAGES +); + +623 +boÞ + +isSucûssful + = + `_gl_fs_mkdœ +( +·th +); + +624  +isSucûssful +; + +625 + } +} + +628  + $_gl_move_medŸ_thumb +(* +d©a +, +gl_™em + * +g™em +, * +Ãw_dœ_Çme +, + +629 +boÞ + +is_fuÎ_·th +, * +pÝup_Ý +,  +mc_mode +) + +631 + `gl_dbg +("Move/CÝy[%d] medŸ i‹m START>>>", +mc_mode +); + +632  +Ãw_·th +[ +GL_FILE_PATH_LEN_MAX +] = { 0, }; + +633  +ext +[ +GL_FILE_EXT_LEN_MAX +] = { 0, }; + +634  +Ãw_·th_nÛxt +[ +GL_FILE_PATH_LEN_MAX +] = { 0, }; + +636 ià( +g™em + =ð +NULL + || g™em-> +™em + =ðNULL || +pÝup_Ý + == NULL) { + +637 + `gl_dbgE +("Invalid…arameters!"); + +641 * +pÝup_Ý + = +GL_POPUP_OP_NONE +; + +643 ià( +is_fuÎ_·th +) { + +644 ià(! +g™em +-> +™em +-> +fže_u¾ + || ! + `¡¾’ +(gitem->item->file_url) || + +645 ! +g™em +-> +™em +-> +di¥Ïy_Çme +) { + +646 + `gl_dbgE +("Invalid file!"); + +649 + `¢´štf +( +Ãw_·th +, Òew_·th), "%s/%s", +Ãw_dœ_Çme +, + +650 (*)( +g™em +-> +™em +-> +di¥Ïy_Çme +)); + +651 + `gl_sdbg +("New…©h : %s", +Ãw_·th +); + +653 ià( +mc_mode + =ð +GL_MC_MOVE + && ! + `g_¡rcmp0 +( +Ãw_·th +, +g™em +-> +™em +-> +fže_u¾ +)) { + +654 * +pÝup_Ý + = +GL_POPUP_OP_SAME_ALBUM +; + +655 + `gl_dbg +("File‡lready in destination"); + +657 } ià( + `gl_fže_exi¡s +( +Ãw_·th +)) { + +658 + `_gl_fs_g‘_·th_w™hout_ext +( +Ãw_·th +, +ext +, +Ãw_·th_nÛxt +); + +659 * +fš®_·th + = +NULL +; + +660 +fš®_·th + = + `_gl_fs_g‘_unique_fuÎ_·th +( +Ãw_·th_nÛxt +, +ext +); + +661 ià( +fš®_·th + =ð +NULL +) + +663 + `gl_dbg +("C»©ed uniqu·th: %s", +fš®_·th +); + +664 + `mem£t +( +Ãw_·th +, 0x00, +GL_FILE_PATH_LEN_MAX +); + +665 + `g_¡¾ýy +( +Ãw_·th +, +fš®_·th +, +GL_FILE_PATH_LEN_MAX +); + +666 + `GL_FREE +( +fš®_·th +); + +667 * +pÝup_Ý + = +GL_POPUP_OP_DUPLICATED_NAME +; + +670 + `¢´štf +( +Ãw_·th +, +GL_FILE_PATH_LEN_MAX +, "%s/%s/%s", + +671 +GL_DEFAULT_PATH_IMAGES +, +Ãw_dœ_Çme +, + +672 (*)( +g™em +-> +™em +-> +di¥Ïy_Çme +)); + +675 +Ãw_·th +[ + `¡¾’ +(new_path)] = '\0'; + +677 +Eša_BoÞ + +»t + = +EINA_FALSE +; + +678  +mc_mode +) { + +679  +GL_MC_MOVE +: + +681 +»t + = + `__gl_fže_mv +( +d©a +, +g™em +, g™em-> +™em +-> +fže_u¾ +, +Ãw_·th +, +mc_mode +); + +683  +GL_MC_COPY +: + +684 +»t + = + `__gl_fže_ý +( +g™em +-> +ad +, g™em-> +™em +-> +fže_u¾ +, +Ãw_·th +); + +687 + `gl_dbgE +("Wrong mode!"); + +690 + `gl_dbg +("Move/Copy media item OVER<<<"); + +691 ià(! +»t +) + +695 + } +} + +698  + $_gl_move_medŸ_thumb_by_id +(* +d©a +, cÚ¡ * +uuid +, * +Ãw_dœ_Çme +, + +699 * +pÝup_Ý +,  +mc_mode +) + +701 + `gl_dbg +("Move/CÝy[%d] medŸ i‹m START>>>", +mc_mode +); + +702  +Ãw_·th +[ +GL_FILE_PATH_LEN_MAX +] = { 0, }; + +703  +ext +[ +GL_FILE_EXT_LEN_MAX +] = { 0, }; + +704  +Ãw_·th_nÛxt +[ +GL_FILE_PATH_LEN_MAX +] = { 0, }; + +706 ià( +uuid + =ð +NULL + || +pÝup_Ý + == NULL) { + +707 + `gl_dbgE +("Invalid…arameters!"); + +711 * +pÝup_Ý + = +GL_POPUP_OP_NONE +; + +712 +medŸ_šfo_h + +medŸ_h + = +NULL +; + +713  +»t + = -1; + +714 * +·th + = +NULL +; + +715 * +Çme + = +NULL +; + +717 +»t + = + `medŸ_šfo_g‘_medŸ_äom_db +( +uuid +, & +medŸ_h +); + +718 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE +) { + +719 + `gl_dbgE +("G‘ medŸ fažed[%d]!", +»t +); + +720  +GL_DONE +; + +722 +»t + = + `medŸ_šfo_g‘_di¥Ïy_Çme +( +medŸ_h +, & +Çme +); + +723 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE +) { + +724 + `gl_dbgE +("Get storageype failed!"); + +725  +GL_DONE +; + +727 +»t + = + `medŸ_šfo_g‘_fže_·th +( +medŸ_h +, & +·th +); + +728 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE +) { + +729 + `gl_dbgE +("Get media file…ath failed!"); + +730  +GL_DONE +; + +733 + `¢´štf +( +Ãw_·th +, Òew_·th), "%s/%s", +Ãw_dœ_Çme +, +Çme +); + +734 + `gl_sdbg +("New…©h : %s", +Ãw_·th +); + +737 ià(! + `g_¡rcmp0 +( +Ãw_·th +, +·th +)) { + +738 * +pÝup_Ý + = +GL_POPUP_OP_SAME_ALBUM +; + +739 + `gl_dbg +("File‡lready in destination"); + +740 +»t + = 0; + +741  +GL_DONE +; + +742 } ià( + `gl_fže_exi¡s +( +Ãw_·th +)) { + +743 + `_gl_fs_g‘_·th_w™hout_ext +( +Ãw_·th +, +ext +, +Ãw_·th_nÛxt +); + +744 * +fš®_·th + = +NULL +; + +745 +fš®_·th + = + `_gl_fs_g‘_unique_fuÎ_·th +( +Ãw_·th_nÛxt +, +ext +); + +746 ià( +fš®_·th + =ð +NULL +) + +747  +GL_DONE +; + +748 + `gl_dbg +("C»©ed uniqu·th: %s", +fš®_·th +); + +749 + `mem£t +( +Ãw_·th +, 0x00, +GL_FILE_PATH_LEN_MAX +); + +750 + `g_¡¾ýy +( +Ãw_·th +, +fš®_·th +, +GL_FILE_PATH_LEN_MAX +); + +751 + `GL_FREE +( +fš®_·th +); + +752 * +pÝup_Ý + = +GL_POPUP_OP_DUPLICATED_NAME +; + +755 +Ãw_·th +[ + `¡¾’ +(new_path)] = '\0'; + +757  +mc_mode +) { + +758  +GL_MC_MOVE +: + +759 ià(! + `_gl_fs_move +( +d©a +, +·th +, +Ãw_·th +)) { + +760 +»t + = -1; + +761  +GL_DONE +; + +763 +»t + = + `medŸ_šfo_move_to_db +( +medŸ_h +, +Ãw_·th +); + +765  +GL_MC_COPY +: + +766 ià(! + `__gl_fže_ý +( +d©a +, +·th +, +Ãw_·th +)) { + +767 +»t + = -1; + +768  +GL_DONE +; + +772 + `gl_dbgE +("Wrong mode!"); + +775 +GL_DONE +: + +776 + `GL_FREEIF +( +Çme +); + +777 + `GL_FREEIF +( +·th +); + +778 ià( +medŸ_h +) + +779 + `medŸ_šfo_de¡roy +( +medŸ_h +); + +781 + `gl_dbg +("Move/Copy media item OVER<<<"); + +782 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE +) + +786 + } +} + +789  + $_gl_move_medŸ +( +gl_™em + * +g™em +, * +Ãw_dœ_Çme +, +boÞ + +is_fuÎ_·th +) + +791 + `gl_dbg +("Move media START>>>"); + +792  +Ãw_·th +[ +GL_FILE_PATH_LEN_MAX +] = { 0, }; + +793  +ext +[ +GL_FILE_EXT_LEN_MAX +] = { 0, }; + +794  +Ãw_·th_nÛxt +[ +GL_FILE_PATH_LEN_MAX +] = { 0, }; + +795 ià(! +g™em + || !g™em-> +™em +) { + +796 + `gl_dbgE +("Invalid gitem!"); + +800 ià( +is_fuÎ_·th +) { + +801 ià(! +g™em +-> +™em +-> +fže_u¾ + || ! + `¡¾’ +(gitem->item->file_url) || + +802 ! +g™em +-> +™em +-> +di¥Ïy_Çme +) { + +803 + `gl_dbgE +("file url or‚ame is invalid!"); + +806 + `¢´štf +( +Ãw_·th +, (new_path), "%s/%s", + +807 +Ãw_dœ_Çme +, (*)( +g™em +-> +™em +-> +di¥Ïy_Çme +)); + +808 + `gl_dbg +("New…©h : %s", +Ãw_·th +); + +810 ià(! + `g_¡rcmp0 +( +Ãw_·th +, +g™em +-> +™em +-> +fže_u¾ +)) { + +811 + `gl_dbgW +("Fileƒxists!"); + +813 } ià( + `gl_fže_exi¡s +( +Ãw_·th +)) { + +814 + `_gl_fs_g‘_·th_w™hout_ext +( +Ãw_·th +, +ext +, +Ãw_·th_nÛxt +); + +815 * +fš®_·th + = +NULL +; + +816 +fš®_·th + = + `_gl_fs_g‘_unique_fuÎ_·th +( +Ãw_·th_nÛxt +, +ext +); + +817 ià( +fš®_·th + =ð +NULL +) + +819 + `gl_dbg +("C»©ed uniqu·th: %s", +fš®_·th +); + +820 + `mem£t +( +Ãw_·th +, 0x00, +GL_FILE_PATH_LEN_MAX +); + +821 + `g_¡¾ýy +( +Ãw_·th +, +fš®_·th +, +GL_FILE_PATH_LEN_MAX +); + +822 + `GL_FREE +( +fš®_·th +); + +825 + `¢´štf +( +Ãw_·th +, +GL_FILE_PATH_LEN_MAX +, "%s/%s/%s", + +826 +GL_DEFAULT_PATH_IMAGES +, +Ãw_dœ_Çme +, + +827 (*)( +g™em +-> +™em +-> +di¥Ïy_Çme +)); + +830 +Ãw_·th +[ + `¡¾’ +(new_path)] = '\0'; + +832 ià(! + `_gl_fs_move +( +g™em +-> +ad +, g™em-> +™em +-> +fže_u¾ +, +Ãw_·th +)) { + +833 + `gl_dbg +("Move media OVER<<<"); + +836 ià( + `_gl_loÿl_d©a_add_medŸ +( +Ãw_·th +, +NULL +) < 0) { + +837 + `gl_dbgE +("Move mediahumbnail failed!"); + +838  +EINA_FALSE +; + +840 + `gl_dbg +("Move media OVER<<<"); + +843 + } +} + +850 +boÞ + + $gl_check_g®Ëry_em±y +(* +d©a +) + +852 + `GL_CHECK_FALSE +( +d©a +); + +853 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +855 ià( +ad +-> +®bumšfo +. +–i¡ + =ð +NULL +) { + +856 + `gl_dbgE +("ad->albuminfo.elist isƒmpty!"); + +857  +Œue +; + +860 +Eša_Li¡ + * +þi¡ + = +ad +-> +®bumšfo +. +–i¡ +->clist; + +861 ià( +þi¡ + =ð +NULL +) { + +862 + `gl_dbgW +("Albums†ist is invalid!"); + +863  +Œue +; + +866  +Ën + = + `eša_li¡_couÁ +( +þi¡ +); + +867 ià( +Ën + == 0) { + +868 + `gl_dbgW +("Albums†ist isƒmpty!"); + +869  +Œue +; + +871  +çl£ +; + +872 + } +} + +874 +boÞ + + $gl_is_image_v®id +(* +d©a +, * +fž•©h +) + +876 + `GL_CHECK_FALSE +( +d©a +); + +877 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +878 + `GL_CHECK_FALSE +( +fž•©h +); + +880 +Evas_Objeù + * +image + = +NULL +; + +881  +width + = 0; + +882  +height + = 0; + +883 +Evas + * +evas + = +NULL +; + +885 +evas + = + `evas_objeù_evas_g‘ +( +ad +-> +maššfo +. +wš +); + +886 + `GL_CHECK_FALSE +( +evas +); + +888 +image + = + `evas_objeù_image_add +( +evas +); + +889 + `GL_CHECK_FALSE +( +image +); + +891 + `evas_objeù_image_fžËd_£t +( +image +, 0); + +892 + `evas_objeù_image_lßd_sÿË_down_£t +( +image +, 0); + +893 + `evas_objeù_image_fže_£t +( +image +, +fž•©h +, +NULL +); + +894 + `evas_objeù_image_size_g‘ +( +image +, & +width +, & +height +); + +895 + `evas_objeù_d– +( +image +); + +896 +image + = +NULL +; + +898 ià( +width + <ð0 || +height + <= 0) { + +899 + `gl_sdbg +("Cªnنßd fž: %s", +fž•©h +); + +900  +çl£ +; + +903  +Œue +; + +904 + } +} + +909  + $gl_check_mmc_¡©e +(* +d©a +, * +de¡_fÞd” +) + +911 + `GL_CHECK_VAL +( +d©a +, -1); + +912 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +915 ià( +ad +-> +maššfo +. +mmc_¡©e + =ð +GL_MMC_STATE_REMOVED +) + +918  +Ú_mmc + = -1; + +925 ià( +de¡_fÞd” +) { + +926 +Ú_mmc + = + `¡ºcmp +( +GL_ROOT_PATH_MMC +, +de¡_fÞd” +, + +927 + `¡¾’ +( +GL_ROOT_PATH_MMC +)); + +928 ià( +Ú_mmc + == 0) + +929  +ON_MMC +; + +932 +gl_þu¡” + * +cur_®bum + = + `_gl_®bums_g‘_cu¼’t +( +d©a +); + +933  +¤c_fÞd”_·th +[ +GL_DIR_PATH_LEN_MAX +] = { 0, }; + +934 + `GL_CHECK_VAL +( +cur_®bum +, -1); + +935 + `GL_CHECK_VAL +( +cur_®bum +-> +þu¡” +, -1); + +937 + `GL_CHECK_VAL +( +cur_®bum +-> +þu¡” +-> +uuid +, -1); + +938 + `g_¡¾ýy +( +¤c_fÞd”_·th +, +cur_®bum +-> +þu¡” +-> +·th +, + +939 +GL_DIR_PATH_LEN_MAX +); + +940 +Ú_mmc + = + `¡ºcmp +( +GL_ROOT_PATH_MMC +, +¤c_fÞd”_·th +, + +941 + `¡¾’ +( +GL_ROOT_PATH_MMC +)); + +943 ià( +Ú_mmc + == 0) { + +944  +ON_MMC +; + +945 } ià( +cur_®bum +-> +þu¡” +-> +ty³ + =ð +GL_STORE_T_ALL +) { + +946 + `gl_dbg +("In‡lbum [All‡lbums]."); + +947 ià( + `_gl_check_mmc_fže_£Ëùed +( +ad +)) + +948  +ON_MMC +; + +952 +ON_MMC +: + +953 + `gl_dbgW +("Operate medias on MMC!"); + +954 +ad +-> +maššfo +. +mmc_¡©e + = +GL_MMC_STATE_ADDED_MOVING +; + +956 + } +} + +958  + $__gl_»g_db_nÙi +(* +d©a +) + +960 + `GL_CHECK_VAL +( +d©a +, -1); + +961 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +962  +”rÜ_code + = -1; + +964 +”rÜ_code + = + `¡Üage_fܗch_deviû_suµÜ‹d +( +__gl_utž_g‘_suµÜ‹d_¡Üages_ÿÎback +, +ad +); + +966 ià( +”rÜ_code + =ð +STORAGE_ERROR_NONE +) { + +967 +¡Üage_¡©e_e + +¡©e +; + +968 +”rÜ_code + = + `¡Üage_g‘_¡©e +( +ad +-> +maššfo +. +ex‹º®StÜageId +, & +¡©e +); + +969 ià( +”rÜ_code + =ð +STORAGE_ERROR_NONE +) { + +970 ià( +¡©e + =ð +STORAGE_STATE_MOUNTED +) { + +971 + `gl_dbg +("###### :::::: MMC†oaded! :::::: ######"); + +972 +ad +-> +maššfo +. +mmc_¡©e + = +GL_MMC_STATE_ADDED +; + +973 } ià( +¡©e + =ð +STORAGE_STATE_REMOVED + || + +974 +¡©e + =ð +STORAGE_STATE_UNMOUNTABLE +) { + +975 + `gl_dbg +("###### :::::: MMC„emoved! :::::: ######"); + +976 +ad +-> +maššfo +. +mmc_¡©e + = +GL_MMC_STATE_REMOVED +; + +981 + `gl_dbg +("Enablehe‚oti handle for DB update status!"); + +983 +”rÜ_code + = + `¡Üage_£t_¡©e_chªged_cb +( +ad +-> +maššfo +. +ex‹º®StÜageId +, +_gl_db_upd©e_sdÿrd_šfo +,‡d); + +984 ià( +”rÜ_code + !ð +STORAGE_ERROR_NONE +) { + +985 + `gl_dbgE +("storage_set_state_changed_cb failed!"); + +988 + } +} + +990  + $__gl_d”eg_db_nÙi +(* +d©a +) + +992 + `GL_CHECK_VAL +( +d©a +, -1); + +993 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +994  +”rÜ_code + = -1; + +996 + `gl_dbg +("Disablehe‚oti handle for DB update status!"); + +997 +”rÜ_code + = + `¡Üage_un£t_¡©e_chªged_cb +( +ad +-> +maššfo +. +ex‹º®StÜageId +, +_gl_db_upd©e_sdÿrd_šfo +); + +998 ià( +”rÜ_code + !ð +STORAGE_ERROR_NONE +) { + +999 + `gl_dbgE +("storage_unset_state_changed_cb failed!"); + +1002 + } +} + +1007  + $gl_g‘_v›w_mode +(* +d©a +) + +1009 + `GL_CHECK_VAL +( +d©a +, +GL_VIEW_NONE +); + +1010 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1011  +ad +-> +maššfo +. +v›w_mode +; + +1012 + } +} + +1017  + $gl_£t_v›w_mode +(* +d©a +,  +mode +) + +1019 + `GL_CHECK_VAL +( +d©a +, -1); + +1020 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1021 +ad +-> +maššfo +. +v›w_mode + = +mode +; + +1023 + } +} + +1025  + $gl_d–_šv®id_widg‘s +(* +d©a +,  +šv®id_m +) + +1027 + `GL_CHECK_VAL +( +d©a +, -1); + +1028 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1029 + `gl_dbg +(""); + +1030 ià( +ad +-> +pÝupšfo +. +pÝup +) { + +1032 + `evas_objeù_d– +( +ad +-> +pÝupšfo +. +pÝup +); + +1033 +ad +-> +pÝupšfo +. +pÝup + = +NULL +; + +1034 } ià( +ad +-> +ugšfo +. +ug +) { + +1036 + `gl_dbg +("Destroy UG!"); + +1037 ià( +ad +-> +ugšfo +. +ug +) { + +1038 + `­p_cڌÞ_de¡roy +( +ad +-> +ugšfo +. +ug +); + +1039 +ad +-> +ugšfo +. +ug + = +NULL +; + +1040 +ad +-> +ugšfo +. +ug_ty³ + = -1; + +1044  +šv®id_m +) { + +1045  +GL_INVALID_NEW_ENTRY +: + +1046  +GL_INVALID_NEW_ENTRY_NOC +: + +1047 ià( +ad +-> +’Œyšfo +. +mode + =ð +GL_ENTRY_NEW_ALBUM +) { + +1048 + `gl_dbg +("Destroy New‡lbum/tag view!"); + +1049 ià( +šv®id_m + =ð +GL_INVALID_NEW_ENTRY +) { + +1050 + `gl_dbg +("Popo‚f_it_edit"); + +1051 + `–m_Çviäame_™em_pÝ_to +( +ad +-> +gridšfo +. +nf_™ +); + +1056 +ad +-> +’Œyšfo +. +mode + = +GL_ENTRY_NONE +; + +1060 + } +} + +1063  + $__gl_d–_medŸs_Ý +(* +d©a +) + +1065 + `GL_CHECK_VAL +( +d©a +, -1); + +1066 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1068  +út + = + `_gl_d©a_£Ëùed_li¡_couÁ +( +ad +); + +1069 +gl_™em + * +g™em + = +NULL +; + +1070  +i + = 0; + +1071  +pÝup_Ý + = +GL_POPUP_OP_NONE +; + +1074 +Eša_Li¡ + * +medŸ_–i¡ + = +NULL +; + +1075  +i + = 0; i < +út +; i++) { + +1076 +g™em + = + `eša_li¡_Áh +( +ad +-> +£lšfo +. +–i¡ +, +i +); + +1077 ià( +g™em + !ð +NULL + && g™em-> +™em + != NULL) { + +1078 ià( + `_gl_d©a_d–‘e_fže +( +g™em +-> +™em +-> +fže_u¾ +, g™em->™em-> +uuid +, +çl£ +) < 0) + +1079 + `gl_dbgE +("Failedo delete file!"); + +1080 + `_gl_thumbs_g‘_li¡ +( +d©a +, & +medŸ_–i¡ +); + +1081 +medŸ_–i¡ + = + `eša_li¡_»move +(medŸ_–i¡, +g™em +); + +1082 + `_gl_thumbs_£t_li¡ +( +d©a +, +medŸ_–i¡ +); + +1083 + `gl_dbgE +("–m_™em: %p", +g™em +-> +–m_™em +); + +1084 +g™em +-> +b_d–‘ed + = +Œue +; + +1086 + `gl_dbgE +("Invalid item!"); + +1089 + `gl_dbg +("Write…ipe, make…rogressbar updated!"); + +1090 + `gl_th»ad_wr™e_pe +( +ad +, +i ++1, +pÝup_Ý +); + +1091 +g™em + = +NULL +; + +1094 + } +} + +1116  + $_gl_upd©e_ݔ©iÚ_v›w +(* +d©a +, cÚ¡ * +nÙi_¡r +) + +1118 + `GL_CHECK_VAL +( +d©a +, -1); + +1119 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1120  +ÿnûl_æag + = +çl£ +; + +1121 + `gl_th»ad_g‘_ÿnûl_¡©e +( +ad +, & +ÿnûl_æag +); + +1122 + `gl_dbgW +("======================"); + +1124 ià( +GL_VIEW_THUMBS + =ð + `gl_g‘_v›w_mode +( +d©a +)) { + +1125 + `–m_Çviäame_™em_pÝ_to +( +ad +-> +gridšfo +. +nf_™ +); + +1126 + `_gl_thumbs_upd©e_™ems +( +d©a +); + +1127 } ià(! +ad +-> +®bumšfo +. +b_Ãw_®bum + && ! + `_gl_thumbs_check_z”o +( +d©a +)) { + +1129 + `_gl_thumbs_ed™_pÝ_v›w +( +ad +); + +1131 + `gl_dbgW +("Empty‡lbum, changeo Albums view!"); + +1132 +Elm_Objeù_I‹m + * +nf_™ + = + `–m_Çviäame_tÝ_™em_g‘ +( +ad +-> +maššfo +. +Çviäame +); + +1133 ià( +nf_™ + =ð +ad +-> +gridšfo +.nf_it) { + +1135 + `gl_£t_v›w_mode +( +d©a +, +GL_VIEW_THUMBS +); + +1137 + `–m_Çviäame_™em_pÝ_to +( +ad +-> +ù¾šfo +. +nf_™ +); + +1138 +ad +-> +®bumšfo +. +b_Ãw_®bum + = +çl£ +; + +1140 ià( + `_gl_ù¾_g‘_b_mode +( +ad +è=ð +GL_CTRL_TAB_TIMELINE +) { + +1141 + `gl_£t_v›w_mode +( +d©a +, +GL_VIEW_TIMELINE +); + +1142 + `_gl_tim–še_upd©e_v›w +( +d©a +); + +1143 } ià( + `_gl_ù¾_g‘_b_mode +( +ad +è=ð +GL_CTRL_TAB_ALBUMS +) { + +1144 + `gl_£t_v›w_mode +( +d©a +, +GL_VIEW_ALBUMS +); + +1145 + `gl_®bums_upd©e_v›w +( +d©a +); + +1149 + `_gl_nÙify_ü—‹_nÙišfo +( +nÙi_¡r +); + +1152 ià( +nÙi_¡r + && +ÿnûl_æag + !ð +GL_PB_CANCEL_ERROR +) + +1153 + `_gl_nÙify_ü—‹_nÙišfo +( +nÙi_¡r +); + +1155 + } +} + +1158  + $__gl_upd©e_d–_medŸs_v›w +(* +d©a +) + +1160 + `GL_CHECK_VAL +( +d©a +, -1); + +1161 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1164 + `_gl_d©a_£Ëùed_li¡_fš®ize +( +d©a +); + +1165 +Eša_Li¡ + * +medŸ_–i¡ + = +NULL +; + +1166 + `_gl_d©a_upd©e_™em_li¡ +( +ad +, +NULL +, & +medŸ_–i¡ +); + +1167 + `_gl_thumbs_þ—r_ªd_£t_li¡ +( +ad +, +medŸ_–i¡ +); + +1169 ià( + `_gl_thumbs_check_z”o +( +d©a +)) { + +1170 + `gl_sdbg +("is_zero"); + +1171 + `_gl_upd©e_®bums_li¡ +( +ad +); + +1174 + `_gl_thumbs_upd©e_v›w +( +ad +); + +1177 + `_gl_upd©e_ݔ©iÚ_v›w +( +ad +, +GL_STR_DELETED +); + +1179 + `_gl_db_upd©e_lock_Úû +( +d©a +, +çl£ +); + +1181 + } +} + +1183 * + $_gl_d–‘e_fÞd” +(* +·th +) + +1185 + `GL_CHECK_NULL +( +·th +); + +1186 * +d–_·th + = + `¡rdup +( +·th +); + +1187 ià( +NULL + =ð +d–_·th +) + +1188  +NULL +; + +1189 * +sub_·th + = +d–_·th +; + +1190  + `gl_fže_dœ_is_em±y +( +d–_·th +) == 1) { + +1191 + `gl_dbg +("this dir isƒmpty,„m it!"); + +1192 ià( + `gl_fže_rmdœ +( +d–_·th +è=ð +EINA_FALSE +) { + +1193 + `gl_dbgE +("file_rmdir failed!"); + +1194 + `GL_FREE +( +d–_·th +); + +1195  +NULL +; + +1197 +sub_·th + = + `¡¼chr +( +d–_·th +, '/'); + +1198 ià( +sub_·th +) { + +1199 * +sub_·th + = '\0'; + +1202 + `GL_FREE +( +d–_·th +); + +1203  +·th +; + +1204 + } +} + +1206  + $gl_d–_medŸs +(* +d©a +) + +1208 + `gl_dbg +(""); + +1209 + `GL_CHECK_VAL +( +d©a +, -1); + +1210 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1212  +út + = + `_gl_d©a_£Ëùed_li¡_couÁ +( +ad +); + +1213 ià( +út + != 0) { + +1214 + `_gl_db_upd©e_lock_®ways +( +d©a +, +Œue +); + +1217 + `gl_check_mmc_¡©e +( +ad +, +NULL +); + +1218 + `gl_dbg +("MMC s‹: %d.", +ad +-> +maššfo +. +mmc_¡©e +); + +1219 + `_gl_£t_fže_Ý_cbs +( +d©a +, +__gl_d–_medŸs_Ý +, +NULL +, + +1220 +__gl_upd©e_d–_medŸs_v›w +, +út +); + +1221 + `_gl_u£_th»ad_ݔ©e_medŸs +( +ad +, +GL_STR_ID_DELETING +, +út +, + +1222 +GL_MEDIA_OP_DELETE +); + +1225 + } +} + +1228  + $_gl_d–_medŸ_by_id +(* +d©a +, cÚ¡ * +uuid +) + +1230 + `GL_CHECK_VAL +( +uuid +, -1); + +1231 + `GL_CHECK_VAL +( +d©a +, -1); + +1232 +medŸ_šfo_h + +medŸ_h + = +NULL +; + +1233 +medŸ_cڋÁ_¡Üage_e + +¡Üage_ty³ + = 0; + +1234  +»t + = -1; + +1236 +»t + = + `medŸ_šfo_g‘_medŸ_äom_db +( +uuid +, & +medŸ_h +); + +1237 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE + || +medŸ_h + =ð +NULL +) { + +1238 + `gl_dbgE +("G‘ medŸ fažed[%d]!", +»t +); + +1239  +DEL_MEDIA_BY_ID_FAILED +; + +1241 +»t + = + `medŸ_šfo_g‘_¡Üage_ty³ +( +medŸ_h +, & +¡Üage_ty³ +); + +1242 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE +) { + +1243 + `gl_dbgE +("Get storageype failed!"); + +1244  +DEL_MEDIA_BY_ID_FAILED +; + +1246 * +·th + = +NULL +; + +1247 +»t + = + `medŸ_šfo_g‘_fže_·th +( +medŸ_h +, & +·th +); + +1248 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE +) { + +1249 + `gl_dbgE +("Get media file…ath failed!"); + +1250 + `GL_FREEIF +( +·th +); + +1251  +DEL_MEDIA_BY_ID_FAILED +; + +1253 ià(! + `gl_fže_uƚk +( +·th +)) { + +1254 * +”rÜ_msg + = + `ÿÎoc +(1, +GL_ARRAY_LEN_MAX +); + +1255 ià( +”rÜ_msg + !ð +NULL +) { + +1256 + `¡»¼Ü_r +( +”ºo +, +”rÜ_msg +, +GL_ARRAY_LEN_MAX +); + +1257 + `gl_dbgE +("fže_uƚk fažed[%s]!", +”rÜ_msg +); + +1258 + `GL_FREE +( +”rÜ_msg +); + +1260 + `GL_FREEIF +( +·th +); + +1261  +DEL_MEDIA_BY_ID_FAILED +; + +1265 +»t + = + `medŸ_šfo_d–‘e_äom_db +( +uuid +); + +1266 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE +) { + +1267 + `gl_dbgE +("medŸ_šfo_d–‘e_äom_db fažed[%d]!", +»t +); + +1268  +DEL_MEDIA_BY_ID_FAILED +; + +1271 + `GL_FREEIF +( +·th +); + +1273 ià( +medŸ_h +) { + +1274 + `medŸ_šfo_de¡roy +( +medŸ_h +); + +1275 +medŸ_h + = +NULL +; + +1279 +DEL_MEDIA_BY_ID_FAILED +: + +1281 + `GL_FREEIF +( +·th +); + +1283 ià( +medŸ_h +) { + +1284 + `medŸ_šfo_de¡roy +( +medŸ_h +); + +1285 +medŸ_h + = +NULL +; + +1288 + } +} + +1290  + $gl_»move_®bum +(* +d©a +, +gl_þu¡” + * +®bum_™em +, +boÞ + +is_hide +) + +1292 + `GL_CHECK_VAL +( +d©a +, -1); + +1294 ià( +®bum_™em + =ð +NULL + ||‡lbum_™em-> +þu¡” + == NULL || + +1295 +®bum_™em +-> +þu¡” +-> +uuid + =ð +NULL +) { + +1296 + `gl_dbgE +("Invalid‡lbum!"); + +1300 + `gl_sdbg +("Remov®bum: %s, id=%s", +®bum_™em +-> +þu¡” +-> +di¥Ïy_Çme +, + +1301 +®bum_™em +-> +þu¡” +-> +uuid +); + +1303 ià( + `_gl_loÿl_d©a_d–‘e_®bum +( +®bum_™em +-> +þu¡” +, + +1304 +NULL +, +d©a +, +is_hide +) != 0) { + +1305 + `gl_dbgE +("delete‡lbum failed!"); + +1309 + `_gl_d–‘e_fÞd” +( +®bum_™em +-> +þu¡” +-> +·th +); + +1311 + } +} + +1313  + $__gl_upd©e_d–_®bums_v›w +(* +d©a +) + +1315 + `GL_CHECK_VAL +( +d©a +, -1); + +1316 + `_gl_upd©e_®bums_li¡ +( +d©a +); + +1318 + `_gl_®bums_chªge_mode +( +d©a +, +çl£ +); + +1319 + `_gl_db_upd©e_lock_®ways +( +d©a +, +çl£ +); + +1321 + } +} + +1324  + $__gl_d–_®bums_Ý +(* +d©a +) + +1326 + `GL_CHECK_VAL +( +d©a +, -1); + +1327 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1328 + `GL_CHECK_VAL +( +ad +-> +®bumšfo +. +£l_–i¡ +, -1); + +1329 +gl_þu¡” + * +®bum + = +NULL +; + +1330  +út + = + `_gl_d©a_g‘_®bums_£Ëùed_út +( +ad +); + +1331  +i + = 0; + +1332  +»t + = -1; + +1334 ià( +út + == 0) { + +1335 + `gl_dbgE +("Empty†ist!"); + +1338 + `gl_dbg +("útð%d", +út +); + +1339  +i + = 0; i < +út +; i++) { + +1340 +®bum + = + `eša_li¡_Áh +( +ad +-> +®bumšfo +. +£l_–i¡ +, +i +); + +1342 ià( +®bum + &&‡lbum-> +þu¡” + &&‡lbum->þu¡”-> +uuid +) { + +1343 ià(( +»t + = + `gl_»move_®bum +( +ad +, +®bum +, +çl£ +)) < 0) + +1344 + `gl_dbgE +("»mov®bum fažed[%d]!", +»t +); + +1346 + `gl_th»ad_wr™e_pe +( +ad +, +i ++1, +GL_POPUP_OP_NONE +); + +1349 + } +} + +1351  + $_gl_d–_®bums +(* +d©a +) + +1353 + `gl_dbg +(""); + +1354 + `GL_CHECK_VAL +( +d©a +, -1); + +1355 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1357  +út + = + `_gl_d©a_g‘_®bums_£Ëùed_út +( +ad +); + +1358 ià( +út + !=0) { + +1359 + `_gl_db_upd©e_lock_®ways +( +d©a +, +Œue +); + +1361 + `gl_check_mmc_¡©e +( +ad +, +NULL +); + +1362 + `gl_dbg +("MMC s‹: %d.", +ad +-> +maššfo +. +mmc_¡©e +); + +1363 + `_gl_£t_fže_Ý_cbs +( +d©a +, +__gl_d–_®bums_Ý +, +NULL +, + +1364 +__gl_upd©e_d–_®bums_v›w +, +út +); + +1365 + `_gl_u£_th»ad_ݔ©e_medŸs +( +ad +, +GL_STR_ID_DELETING +, +út +, + +1366 +GL_MEDIA_OP_DELETE_ALBUM +); + +1370 + } +} + +1372  + $_gl_d©a_upd©e_£l_™em_li¡ +(* +d©a +, +Eša_Li¡ + * +p_–i¡ +) + +1374 + `GL_CHECK_VAL +( +d©a +, -1); + +1375 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1376 +gl_™em + * +g™em + = +NULL +; + +1377  +couÁ + = + `eša_li¡_couÁ +( +p_–i¡ +); + +1378  +i +; + +1379 +g™em + = + `eša_li¡_Áh +( +p_–i¡ +, 0); + +1380 ià( +g™em +) { + +1381 +g™em +-> +®bum +-> +–i¡ + = +NULL +; + +1383  +i + = 0; i < +couÁ + ; i++) { + +1384 +g™em + = + `eša_li¡_Áh +( +p_–i¡ +, +i +); + +1385 + `_gl_d©a_»¡Üe_upd©e_£Ëùed +( +ad +-> +£lšfo +. +–i¡ +, +g™em +); + +1388 + } +} + +1390 #ifdeà +_USE_ROTATE_BG + + +1394  + $_gl_»äesh_®bums_li¡ +(* +d©a +, +boÞ + +b_·th +, boÞ +b_£Ëù +) + +1396 + `GL_CHECK_VAL +( +d©a +, -1); + +1397 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1398 +gl_þu¡” + * +cur_®bum + = + `_gl_®bums_g‘_cu¼’t +( +d©a +); + +1399 * +uuid + = +NULL +; + +1400 +boÞ + +b_g‘_cur_®bum + = +çl£ +; + +1402 ià( +ad +-> +®bumšfo +. +v›w +) { + +1403 + `–m_g’grid_þ—r +( +ad +-> +®bumšfo +. +v›w +); + +1405 ià( +ad +-> +®bumšfo +. +£Ëù_v›w +) { + +1406 + `–m_g’grid_þ—r +( +ad +-> +®bumšfo +. +£Ëù_v›w +); + +1409 ià( +cur_®bum + && cur_®bum-> +þu¡” + && cur_®bum->þu¡”-> +uuid +) { + +1410 +uuid + = + `¡rdup +( +cur_®bum +-> +þu¡” +->uuid); + +1411 +b_g‘_cur_®bum + = +Œue +; + +1412 ià( +ad +-> +gridšfo +. +v›w + && + +1413 +ad +-> +gridšfo +. +v›w + !ðad->gridšfo. +nocڋÁs +) { + +1414 + `–m_g’grid_þ—r +( +ad +-> +gridšfo +. +v›w +); + +1416 ià( +ad +-> +gridšfo +. +£Ëù_v›w + && + +1417 +ad +-> +gridšfo +. +£Ëù_v›w + !ðad->gridšfo. +nocڋÁs +) { + +1418 + `–m_g’grid_þ—r +( +ad +-> +gridšfo +. +£Ëù_v›w +); + +1421 ià( + `_gl_ù¾_g‘_b_mode +( +ad +è=ð +GL_CTRL_TAB_ALBUMS +) { + +1422 + `gl_dbgW +("Current‡lbum is unavailable!"); + +1423 } ià(! + `_gl_thumbs_check_z”o +( +d©a +)) { + +1425 +Eša_Li¡ + * +£l_id_li¡ +ð +NULL +; + +1426 +Eša_Li¡ + * +medŸ_–i¡ + = +NULL +; + +1427  +v›w_m + = + `gl_g‘_v›w_mode +( +ad +); + +1428 ià( +v›w_m + =ð +GL_VIEW_THUMBS_EDIT + || + +1429 +v›w_m + =ð +GL_VIEW_THUMBS_SELECT +) { + +1430 + `gl_dbg +("Edit view."); + +1432 + `_gl_d©a_§ve_£Ëùed_¡r_ids +( +d©a +, & +£l_id_li¡ +); + +1434 + `_gl_d©a_þ—r_£Ëùed_šfo +( +ad +); + +1435 + `_gl_d©a_upd©e_™em_li¡ +( +ad +, & +£l_id_li¡ +, & +medŸ_–i¡ +); + +1436 + `_gl_thumbs_þ—r_ªd_£t_li¡ +( +ad +, +medŸ_–i¡ +); + +1440 + `_gl_d©a_g‘_þu¡”_li¡_ed™_mode +( +ad +); + +1442 + `_gl_®bums_£t_cu¼’t +( +d©a +, +NULL +); + +1443 +cur_®bum + = +NULL +; + +1445 ià( +b_g‘_cur_®bum +) { + +1446 ià( +b_·th +) { + +1447 + `gl_dbg +("P©h: %s", +ad +-> +®bumšfo +. +de¡_fÞd” +); + +1448 ià( + `¡¾’ +( +ad +-> +®bumšfo +. +de¡_fÞd” +) > 0 && + +1449 + `GL_FILE_EXISTS +( +ad +-> +®bumšfo +. +de¡_fÞd” +)) { + +1450 + `gl_dbgW +("Cluster„ecord updated!"); + +1451 + `_gl_d©a_g‘_þu¡”_by_·th +( +ad +, + +1452 +ad +-> +®bumšfo +. +de¡_fÞd” +, + +1453 & +cur_®bum +); + +1455 + `gl_dbgE +("Invalid folder…ath!"); + +1456 + `_gl_d©a_g‘_þu¡”_by_id +( +ad +, +uuid +, & +cur_®bum +); + +1459 + `_gl_d©a_g‘_þu¡”_by_id +( +ad +, +uuid +, & +cur_®bum +); + +1462 ià( +cur_®bum + && cur_®bum-> +þu¡” +) { + +1463 + `_gl_®bums_£t_cu¼’t +( +d©a +, +cur_®bum +); + +1464 + `gl_sdbg +("Reset current‡lbum: %s", + +1465 +cur_®bum +-> +þu¡” +-> +di¥Ïy_Çme +); + +1467  +v›w_m + = + `gl_g‘_v›w_mode +( +ad +); + +1468 +Eša_Li¡ + * +£l_id_li¡ + = +NULL +; + +1469 +Eša_Li¡ + * +medŸ_–i¡ + = +NULL +; + +1470 ià( +v›w_m + =ð +GL_VIEW_THUMBS_EDIT + || + +1471 +v›w_m + =ð +GL_VIEW_THUMBS_SELECT +) { + +1472 + `_gl_d©a_cÝy_£Ëùed_šfo_§ve_cu¼’t_£Ëùed +( +ad +, & +£l_id_li¡ +); + +1474 + `_gl_d©a_upd©e_™em_li¡ +( +ad +, & +£l_id_li¡ +, & +medŸ_–i¡ +); + +1475 + `_gl_d©a_upd©e_£l_™em_li¡ +( +ad +, +medŸ_–i¡ +); + +1476 + `_gl_thumbs_þ—r_ªd_£t_li¡ +( +ad +, +medŸ_–i¡ +); + +1479 + `_gl_d©a_þ—r_£Ëùed_šfo +( +ad +); + +1481 + `_gl_thumbs_þ—r_ªd_£t_li¡ +( +ad +, +NULL +); + +1485 + `GL_FREEIF +( +uuid +); + +1487 + } +} + +1491  + $_gl_upd©e_®bums_d©a +(* +d©a +) + +1493 + `GL_CHECK_VAL +( +d©a +, -1); + +1494 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1495 +gl_þu¡” + * +cur_®bum + = + `_gl_®bums_g‘_cu¼’t +( +d©a +); + +1496 * +uuid + = +NULL +; + +1498 ià( +cur_®bum + && cur_®bum-> +þu¡” + && cur_®bum->þu¡”-> +uuid +) + +1499 +uuid + = + `¡rdup +( +cur_®bum +-> +þu¡” +->uuid); + +1501 + `_gl_d©a_g‘_þu¡”_li¡ +( +ad +); + +1503 + `_gl_®bums_£t_cu¼’t +( +d©a +, +NULL +); + +1504 +cur_®bum + = +NULL +; + +1506 ià( +uuid +) { + +1507 + `_gl_d©a_g‘_þu¡”_by_id +( +ad +, +uuid +, & +cur_®bum +); + +1508 ià( +cur_®bum +) + +1509 + `_gl_®bums_£t_cu¼’t +( +d©a +, +cur_®bum +); + +1510 + `GL_FREE +( +uuid +); + +1514 + } +} + +1516  + $_gl_upd©e_®bums_li¡ +(* +d©a +) + +1518 #ifdeà +_USE_ROTATE_BG + + +1519  + `_gl_»äesh_®bums_li¡ +( +d©a +, +çl£ +, false); + +1521 + `GL_CHECK_VAL +( +d©a +, -1); + +1522 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1523 +gl_þu¡” + * +cur_®bum + = + `_gl_®bums_g‘_cu¼’t +( +d©a +); + +1524  +þu¡”_id +[ +GL_MTYPE_ITEN_ID_LEN_MAX +] = { 0, }; + +1525 +boÞ + +b_g‘_cur_®bum + = +çl£ +; + +1528 ià( +cur_®bum + && cur_®bum-> +þu¡” + && cur_®bum->þu¡”-> +uuid +) { + +1529 + `g_¡¾ýy +( +þu¡”_id +, +cur_®bum +-> +þu¡” +-> +uuid +, + +1530 +GL_MTYPE_ITEN_ID_LEN_MAX +); + +1531 +b_g‘_cur_®bum + = +Œue +; + +1533 + `gl_dbg +("None‡lbum selected, current‡lbum is unavailable."); + +1536 + `_gl_d©a_g‘_þu¡”_li¡ +( +ad +); + +1538 + `_gl_®bums_£t_cu¼’t +( +d©a +, +NULL +); + +1539 +cur_®bum + = +NULL +; + +1541 ià( +b_g‘_cur_®bum +) { + +1542 + `_gl_d©a_g‘_þu¡”_by_id +( +ad +, +þu¡”_id +, & +cur_®bum +); + +1543 ià( +cur_®bum + && cur_®bum-> +þu¡” +) { + +1544 + `_gl_®bums_£t_cu¼’t +( +d©a +, +cur_®bum +); + +1545 + `gl_sdbg +("Reset current‡lbum: %s", + +1546 +cur_®bum +-> +þu¡” +-> +di¥Ïy_Çme +); + +1547 +Eša_Li¡ + * +£l_id_li¡ +ð +NULL +; + +1548 +Eša_Li¡ + * +medŸ_–i¡ + = +NULL +; + +1549  +v›w_m + = + `gl_g‘_v›w_mode +( +ad +); + +1550 ià( +v›w_m + =ð +GL_VIEW_THUMBS_EDIT + || + +1551 +v›w_m + =ð +GL_VIEW_THUMBS_SELECT +) { + +1552 + `gl_dbg +("Edit view."); + +1554 + `_gl_d©a_§ve_£Ëùed_¡r_ids +( +d©a +, & +£l_id_li¡ +); + +1556 + `_gl_d©a_þ—r_£Ëùed_šfo +( +ad +); + +1557 + `_gl_d©a_upd©e_™em_li¡ +( +ad +, & +£l_id_li¡ +, & +medŸ_–i¡ +); + +1558 + `_gl_thumbs_þ—r_ªd_£t_li¡ +( +ad +, +medŸ_–i¡ +); + +1562 ià( +ad +-> +£lšfo +. +–i¡ +) + +1563 + `_gl_d©a_þ—r_£Ëùed_šfo +( +ad +); + +1569 + } +} + +1575  + $gl_move_roÙ_®bum +(* +d©a +, +gl_þu¡” + * +cur_®bum +, * +de¡_·th +) + +1577 + `GL_CHECK_VAL +( +d©a +, -1); + +1578 + `GL_CHECK_VAL +( +cur_®bum +, -1); + +1579 + `GL_CHECK_VAL +( +cur_®bum +-> +þu¡” +, -1); + +1580 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1581 +Eša_Li¡ + * +medŸs_–i¡ + = +NULL +; + +1584 + `_gl_d©a_g‘_™ems_®bum +( +ad +, +cur_®bum +, +GL_GET_ALL_RECORDS +, + +1585 +GL_GET_ALL_RECORDS +, & +medŸs_–i¡ +); + +1586 + `GL_CHECK_VAL +( +medŸs_–i¡ +, -1); + +1588 +Eša_Li¡ + * +l + = +NULL +; + +1589 +gl_™em + * +g™em + = +NULL +; + +1590  +pÝup_Ý + = +GL_POPUP_OP_NONE +; + +1593 + `EINA_LIST_FOREACH +( +medŸs_–i¡ +, +l +, +g™em +) { + +1594 ià( +g™em + && g™em-> +™em +) { + +1595 + `gl_sdbg +("Mov[%s]", +g™em +-> +™em +-> +fže_u¾ +); + +1596 ià( + `_gl_move_medŸ_thumb +( +d©a +, +g™em +, +de¡_·th +, +Œue +, & +pÝup_Ý +, +GL_MC_MOVE +) != 0) + +1597 + `gl_dbgW +("Failedo movehis item"); + +1599 +g™em + = +NULL +; + +1601 + `gl_dbgE +("Invalid item!"); + +1606 + `_gl_d©a_utž_þ—r_™em_li¡ +(&( +medŸs_–i¡ +)); + +1608 + } +} + +1611  + $__gl_move_cÝy_Ý +(* +d©a +) + +1613 + `GL_CHECK_VAL +( +d©a +, -1); + +1614 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1615  +i + = 0; + +1617  +út + = + `_gl_d©a_£Ëùed_li¡_couÁ +( +ad +); + +1618 +gl_™em + * +g™em + = +NULL +; + +1619  +pÝup_Ý + = +GL_POPUP_OP_NONE +; + +1621  +i + = 0; i < +út +; i++) { + +1622 +g™em + = + `eša_li¡_Áh +( +ad +-> +£lšfo +. +–i¡ +, +i +); + +1623 ià( +g™em + && g™em-> +™em +) { + +1624 + `gl_sdbg +("S–eùed [%s]", +g™em +-> +™em +-> +fže_u¾ +); + +1626 ià( +ad +-> +maššfo +. +medŸs_Ý_ty³ + =ð +GL_MEDIA_OP_COPY +) { + +1627 ià( + `_gl_move_medŸ_thumb +( +d©a +, +g™em +, +ad +-> +®bumšfo +. +de¡_fÞd” +, +Œue +, & +pÝup_Ý +, +GL_MC_COPY +) != 0) + +1628 + `gl_dbg +("Failedo copyhis item"); + +1629 + `gl_dbg +("FžCݛd:::::::%d/%d-->ŒyØupd©´og»ssb¬", +i +, +út +); + +1630 } ià( +ad +-> +maššfo +. +medŸs_Ý_ty³ + =ð +GL_MEDIA_OP_MOVE +) { + +1631 ià( + `_gl_move_medŸ_thumb +( +d©a +, +g™em +, +ad +-> +®bumšfo +. +de¡_fÞd” +, +Œue +, & +pÝup_Ý +,‡d->®bumšfo. +fže_mc_mode +) != 0) + +1632 + `gl_dbg +("Failedo movehis item"); + +1639 + `gl_dbg +("FžMoved:::::::%d/%d-->ŒyØupd©´og»ssb¬", +i +, +út +); + +1641 + `gl_dbg +("Inv®id medŸs_Ý_ty³: %d!", +ad +-> +maššfo +. +medŸs_Ý_ty³ +); + +1644 + `gl_dbg +("Invalid item!"); + +1647 + `gl_dbg +("Write…ipe, make…rogressbar updated!"); + +1648 + `gl_th»ad_wr™e_pe +( +ad +, +i ++1, +pÝup_Ý +); + +1650 +pÝup_Ý + = +GL_POPUP_OP_NONE +; + +1653 + } +} + +1656  + $__gl_upd©e_move_cÝy_v›w +(* +d©a +) + +1658 + `GL_CHECK_VAL +( +d©a +, -1); + +1659 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1660  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +1661 + `gl_dbg +("v›w_mode: %d", +v›w_mode +); + +1663 cÚ¡ * +nÙi_¡r + = +NULL +; + +1664 ià( +v›w_mode + =ð +GL_VIEW_THUMBS_SELECT +) { + +1665 +nÙi_¡r + = +GL_STR_ADDED +; + +1667 + `_gl_d©a_þ—r_£Ëùed_šfo +( +d©a +); + +1668 + `_gl_®bums_£t_cu¼’t +( +d©a +, +NULL +); + +1670 + `_gl_upd©e_®bums_d©a +( +ad +); + +1671 } ià( +ad +-> +maššfo +. +medŸs_Ý_ty³ + =ð +GL_MEDIA_OP_COPY +) { + +1672 +nÙi_¡r + = +GL_STR_COPIED +; + +1674 + `_gl_d©a_£Ëùed_li¡_fš®ize +( +d©a +); + +1676 + `_gl_upd©e_®bums_d©a +( +ad +); + +1677 } ià( +ad +-> +maššfo +. +medŸs_Ý_ty³ + =ð +GL_MEDIA_OP_MOVE +) { + +1678 +nÙi_¡r + = +GL_STR_MOVED +; + +1680 + `_gl_d©a_£Ëùed_li¡_fš®ize +( +d©a +); + +1682 ià( + `_gl_thumbs_check_z”o +( +d©a +)) { + +1683 + `gl_sdbg +("is_zero"); + +1684 + `_gl_upd©e_®bums_li¡ +( +ad +); + +1686 + `_gl_upd©e_®bums_li¡ +( +ad +); + +1688 + `_gl_thumbs_upd©e_v›w +( +ad +); + +1692 + `gl_dbgE +("Wrong mode!"); + +1695 + `_gl_upd©e_ݔ©iÚ_v›w +( +ad +, +nÙi_¡r +); + +1697 + `_gl_db_upd©e_lock_®ways +( +d©a +, +çl£ +); + +1699 + } +} + +1701  + $gl_move_cÝy_to_®bum +(* +d©a +) + +1703 + `GL_CHECK_VAL +( +d©a +, -1); + +1704 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1705  +fÞd”_fuηth +[ +GL_DIR_PATH_LEN_MAX +] = { 0, }; + +1706 +gl_þu¡” + * +cur_®bum + = + `_gl_®bums_g‘_cu¼’t +( +d©a +); + +1707  +út + = + `_gl_d©a_£Ëùed_li¡_couÁ +( +ad +); + +1709 + `_gl_db_upd©e_lock_®ways +( +d©a +, +Œue +); + +1711 ià( +ad +-> +®bumšfo +. +fže_mc_mode + =ð +GL_MC_COPY +) { + +1713  +ä“_size + = + `gl_fs_g‘_ä“_¥aû +( +GL_STORE_T_PHONE +); + +1714 + `gl_dbg +("F»¥aû i %Îd", +ä“_size +); + +1716 ià( +ä“_size + <ð +GL_FS_MIN_SIZE +) { + +1717 + `gl_dbgW +("Low memory."); + +1718 + `gl_pÝup_ü—‹_pÝup +( +ad +, +GL_POPUP_ALBUM_MEMORY_FULL +, + +1719 +GL_DEVICE_MEMORY_FULL +); + +1720  +GL_FAILED +; + +1728 ià( +ad +-> +®bumšfo +. +·th + =ð +NULL +) { + +1729 + `gl_dbg +("---Popup†ist item: New‡lbum---"); + +1730 ià( + `gl_make_Ãw_®bum +( +ad +-> +®bumšfo +. +Ãw_Çme +è=ð +çl£ +) { + +1731 + `gl_pÝup_ü—‹_pÝup +( +ad +, +GL_POPUP_NOBUT +, + +1732 +GL_STR_SAME_NAME_ALREADY_IN_USE +); + +1733 + `gl_dbgE +("Failedo make‡‚ew directory!"); + +1734  +GL_FAILED +; + +1736 + `¢´štf +( +fÞd”_fuηth +, +GL_DIR_PATH_LEN_MAX +, "%s/%s", + +1737 +GL_DEFAULT_PATH_IMAGES +, +ad +-> +®bumšfo +. +Ãw_Çme +); + +1739 + `g_¡¾ýy +( +fÞd”_fuηth +, +ad +-> +®bumšfo +. +·th +, + +1740 +GL_DIR_PATH_LEN_MAX +); + +1741 + `GL_FREE +( +ad +-> +®bumšfo +. +·th +); + +1744 ià(! +ad +-> +®bumšfo +. +b_Ãw_®bum + && + +1745 ( +cur_®bum + =ð +NULL + || cur_®bum-> +þu¡” + == NULL)) { + +1746 + `gl_dbgE +("[Error] Current‡lbum is NULL!"); + +1747  +GL_FAILED +; + +1750 + `mem£t +( +ad +-> +®bumšfo +. +de¡_fÞd” +, 0x00, +GL_DIR_PATH_LEN_MAX +); + +1751 + `g_¡¾ýy +( +ad +-> +®bumšfo +. +de¡_fÞd” +, +fÞd”_fuηth +, + +1752 +GL_DIR_PATH_LEN_MAX +); + +1754 + `gl_check_mmc_¡©e +( +ad +, +fÞd”_fuηth +); + +1755 + `gl_dbg +("MMC s‹: %d.", +ad +-> +maššfo +. +mmc_¡©e +); + +1756 ià( +út + != 0) { + +1757 ià( +ad +-> +®bumšfo +. +fže_mc_mode + =ð +GL_MC_MOVE +) { + +1758 + `_gl_£t_fže_Ý_cbs +( +d©a +, +__gl_move_cÝy_Ý +, + +1759 +NULL +, +__gl_upd©e_move_cÝy_v›w +, +út +); + +1760 + `_gl_u£_th»ad_ݔ©e_medŸs +( +ad +, +GL_STR_ID_MOVING +, +út +, + +1761 +GL_MEDIA_OP_MOVE +); + +1762 } ià( +ad +-> +®bumšfo +. +fže_mc_mode + =ð +GL_MC_COPY +) { + +1763 + `_gl_£t_fže_Ý_cbs +( +d©a +, +__gl_move_cÝy_Ý +, +NULL +, + +1764 +__gl_upd©e_move_cÝy_v›w +, +út +); + +1765 + `_gl_u£_th»ad_ݔ©e_medŸs +( +ad +, +GL_STR_ID_COPYING +, +út +, + +1766 +GL_MEDIA_OP_COPY +); + +1768 + `gl_dbgE +("Wrong mode!"); + +1773 +GL_FAILED +: + +1775 + `_gl_nÙify_check_£ÏÎ +( +ad +,‡d-> +gridšfo +. +nf_™ +,‡d->gridšfo. +couÁ +, + +1776 + `_gl_d©a_£Ëùed_li¡_couÁ +( +ad +)); + +1778 + `_gl_thumbs_upd©e_Ïb–_‹xt +( +ad +-> +gridšfo +. +nf_™ +, + +1779 + `_gl_d©a_£Ëùed_li¡_couÁ +( +ad +), +çl£ +); + +1780 + `_gl_db_upd©e_lock_®ways +( +d©a +, +çl£ +); + +1782 + } +} + +1784 #ifdeà +_USE_ROTATE_BG + + +1786  + $_gl_d–ay +( +£c +) + +1788 + `gl_dbg +("Start"); + +1789  +timev® + +tv +; + +1790  +¡¬t_t + = 0; + +1791  +’d_t + = 0; + +1792  +d–ay_t + = ()( +£c + * +GL_TIME_USEC_PER_SEC +); + +1794 + `g‘timeofday +(& +tv +, +NULL +); + +1795 +¡¬t_t + = +tv +. +tv_£c + * +GL_TIME_USEC_PER_SEC + +v. +tv_u£c +; + +1797  +’d_t + = +¡¬t_t +;ƒnd_ˆ- s¹_ˆ< +d–ay_t +;) { + +1798 + `g‘timeofday +(& +tv +, +NULL +); + +1799 +’d_t + = +tv +. +tv_£c + * +GL_TIME_USEC_PER_SEC + +v. +tv_u£c +; + +1802 + `gl_dbg +("End"); + +1804 + } +} + +1806  + $_gl_rÙ©e_Ý +(* +d©a +) + +1808 + `GL_CHECK_VAL +( +d©a +, -1); + +1809 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1811  +út + = + `_gl_d©a_£Ëùed_li¡_couÁ +( +ad +); + +1812 +gl_™em + * +g™em + = +NULL +; + +1813  +i + = 0; + +1814  +pÝup_Ý + = +GL_POPUP_OP_NONE +; + +1815  +ܛÁ + = +GL_ORIENTATION_ROT_ERR +; + +1816  +Ãw_ܛÁ + = +GL_ORIENTATION_ROT_ERR +; + +1817  +»t + = -1; + +1818 +boÞ + +b_Ëá + = +çl£ +; + +1820 ià( +ad +-> +maššfo +. +medŸs_Ý_ty³ + =ð +GL_MEDIA_OP_ROTATING_LEFT +) + +1821 +b_Ëá + = +Œue +; + +1823 +gl_þu¡” + * +cu¼’t_®bum + = + `_gl_®bums_g‘_cu¼’t +( +d©a +); + +1825 ià( +cu¼’t_®bum + && cu¼’t_®bum-> +þu¡” + && + +1826 +cu¼’t_®bum +-> +þu¡” +-> +·th + && + +1827 + `¡¾’ +( +cu¼’t_®bum +-> +þu¡” +-> +·th +)) + +1828 + `g_¡¾ýy +( +ad +-> +®bumšfo +. +de¡_fÞd” +, + +1829 +cu¼’t_®bum +-> +þu¡” +-> +·th +, +GL_DIR_PATH_LEN_MAX +); + +1831 + `gl_dbgE +("Invalid folder…ath!"); + +1834  +i + = 0; i < +út +; i++) { + +1835 +g™em + = + `eša_li¡_Áh +( +ad +-> +£lšfo +. +–i¡ +, +i +); + +1836 ià( +g™em + !ð +NULL + && g™em-> +™em + != NULL && + +1837 +g™em +-> +™em +-> +fže_u¾ + && + +1838 +g™em +-> +™em +-> +ty³ + =ð +MEDIA_CONTENT_TYPE_IMAGE + && + +1839 + `GL_FILE_EXISTS +( +g™em +-> +™em +-> +fže_u¾ +)) { + +1841 +»t + = + `_gl_exif_g‘_ܛÁ©iÚ +( +g™em +-> +™em +-> +fže_u¾ +, + +1842 & +ܛÁ +); + +1843 ià( +»t + == 0) { + +1844 +Ãw_ܛÁ + = + `_gl_exif_g‘_rÙ©ed_ܛÁ©iÚ +( +ܛÁ +, + +1845 +b_Ëá +); + +1846 + `_gl_exif_£t_ܛÁ©iÚ +( +g™em +-> +™em +-> +fže_u¾ +, + +1847 +Ãw_ܛÁ +); + +1849 + `medŸ_šfo_»äesh_m‘ad©a_to_db +( +g™em +-> +™em +-> +uuid +); + +1852 + `gl_dbgE +("Invalid item!"); + +1856 ià( +i + > +út + - 2) + +1857 + `_gl_d–ay +( +GL_ROTATE_DELAY +); + +1859 ià( +i + =ð +út +) { + +1860 + `gl_dbgW +("Last image„otated!"); + +1862 + `_gl_d–ay +( +GL_ROTATE_DELAY +); + +1864 + `gl_dbg +("Write…ipe, make…rogressbar updated!"); + +1865 + `gl_th»ad_wr™e_pe +( +ad +, +i ++1, +pÝup_Ý +); + +1866 +g™em + = +NULL +; + +1869 + } +} + +1872  + $_gl_upd©e_rÙ©e_v›w +(* +d©a +) + +1874 + `GL_CHECK_VAL +( +d©a +, -1); + +1875 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1877 +gl_™em + * +g™em + = +NULL +; + +1878 +Eša_Li¡ + * +tmp + = +NULL +; + +1879 + `EINA_LIST_FOREACH +( +ad +-> +£lšfo +. +–i¡ +, +tmp +, +g™em +) { + +1880 ià( +g™em + && g™em-> +–m_™em +) { + +1881 +g™em +-> +checked + = +çl£ +; + +1882 + `–m_g’grid_™em_upd©e +( +g™em +-> +–m_™em +); + +1887 + `_gl_d©a_£Ëùed_li¡_fš®ize +( +d©a +); + +1889 + `mem£t +( +ad +-> +®bumšfo +. +de¡_fÞd” +, 0x00, +GL_DIR_PATH_LEN_MAX +); + +1891 + `_gl_upd©e_ݔ©iÚ_v›w +( +ad +, +NULL +); + +1892 + `_gl_db_upd©e_lock_®ways +( +d©a +, +çl£ +); + +1894 + } +} + +1896  + $_gl_rÙ©e_images +(* +d©a +, +boÞ + +b_Ëá +) + +1898 + `gl_dbg +(""); + +1899 + `GL_CHECK_VAL +( +d©a +, -1); + +1900 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1902  +út + = + `_gl_d©a_£Ëùed_li¡_couÁ +( +ad +); + +1904 + `gl_check_mmc_¡©e +( +ad +, +NULL +); + +1905 + `gl_dbg +("MMC s‹: %d.", +ad +-> +maššfo +. +mmc_¡©e +); + +1907  +Ý_ty³ + = +GL_MEDIA_OP_ROTATING_LEFT +; + +1909 ià(! +b_Ëá +) + +1910 +Ý_ty³ + = +GL_MEDIA_OP_ROTATING_RIGHT +; + +1911 + `_gl_db_upd©e_lock_®ways +( +d©a +, +Œue +); + +1912 + `_gl_£t_fže_Ý_cbs +( +d©a +, +_gl_rÙ©e_Ý +, +NULL +, +_gl_upd©e_rÙ©e_v›w +, + +1913 +út +); + +1914 + `_gl_u£_th»ad_ݔ©e_medŸs +( +ad +, +GL_STR_ID_ROTATING +, +út +, +Ý_ty³ +); + +1917 + } +} + +1919  + $_gl_rÙ©e_image_by_id +(* +d©a +, cÚ¡ * +uuid +, +boÞ + +b_Ëá +) + +1921 + `GL_CHECK_VAL +( +uuid +, -1); + +1922 + `GL_CHECK_VAL +( +d©a +, -1); + +1923  +ܛÁ + = +GL_ORIENTATION_ROT_ERR +; + +1924  +Ãw_ܛÁ + = +GL_ORIENTATION_ROT_ERR +; + +1925  +»t + = -1; + +1926 +medŸ_šfo_h + +medŸ_h + = +NULL +; + +1927 * +·th + = +NULL +; + +1928 +medŸ_cڋÁ_ty³_e + +medŸ_ty³ + = 0; + +1930 +»t + = + `medŸ_šfo_g‘_medŸ_äom_db +( +uuid +, & +medŸ_h +); + +1931 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE + || +medŸ_h + =ð +NULL +) { + +1932 + `gl_dbgE +("G‘ medŸ fažed[%d]!", +»t +); + +1933 ià( +medŸ_h +) + +1934 + `medŸ_šfo_de¡roy +( +medŸ_h +); + +1937 +»t + = + `medŸ_šfo_g‘_medŸ_ty³ +( +medŸ_h +, & +medŸ_ty³ +); + +1938 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE +) { + +1939 + `gl_dbgE +("Get storageype failed!"); + +1940 + `medŸ_šfo_de¡roy +( +medŸ_h +); + +1943 +»t + = + `medŸ_šfo_g‘_fže_·th +( +medŸ_h +, & +·th +); + +1944 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE +) { + +1945 + `gl_dbgE +("Get media file…ath failed!"); + +1946 + `medŸ_šfo_de¡roy +( +medŸ_h +); + +1949 ià( +medŸ_ty³ + =ð +MEDIA_CONTENT_TYPE_IMAGE + && + `GL_FILE_EXISTS +( +·th +)) { + +1951 +»t + = + `_gl_exif_g‘_ܛÁ©iÚ +( +·th +, & +ܛÁ +); + +1952 ià( +»t + == 0) { + +1953 +Ãw_ܛÁ + = + `_gl_exif_g‘_rÙ©ed_ܛÁ©iÚ +( +ܛÁ +, + +1954 +b_Ëá +); + +1955 + `_gl_exif_£t_ܛÁ©iÚ +( +·th +, +Ãw_ܛÁ +); + +1957 + `medŸ_šfo_»äesh_m‘ad©a_to_db +( +uuid +); + +1961 + `GL_FREE +( +·th +); + +1962 + `medŸ_šfo_de¡roy +( +medŸ_h +); + +1963 +medŸ_h + = +NULL +; + +1965 + } +} + +1968 +Eša_BoÞ + + $gl_upd©e_v›w +(* +d©a +,  +mode +) + +1970 + `GL_CHECK_FALSE +( +d©a +); + +1971 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1972  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +1973 + `gl_dbg +("v›w_mode: %d", +v›w_mode +); + +1974 ià( +mode + =ð +GL_UPDATE_VIEW_NONE +) { + +1975 + `gl_dbg +("Don't‚eedo update"); + +1976  +EINA_FALSE +; + +1980 ià( +mode + >ð +GL_UPDATE_VIEW_MMC_REMOVED + && + +1981 +v›w_mode + !ð +GL_VIEW_THUMBS_SELECT +) { + +1983 + `_gl_upd©e_®bums_li¡ +( +d©a +); + +1986 ià( +v›w_mode + =ð +GL_VIEW_ALBUMS + || + +1987 +v›w_mode + =ð +GL_VIEW_ALBUMS_EDIT + || + +1988 +v›w_mode + =ð +GL_VIEW_ALBUMS_RENAME +) { + +1990 + `gl_®bums_upd©e_v›w +( +ad +); + +1991 } ià( +v›w_mode + =ð +GL_VIEW_THUMBS +) { + +1992 +gl_þu¡” + * +cur + = + `_gl_®bums_g‘_cu¼’t +( +d©a +); + +1994 ià( +mode + =ð +GL_UPDATE_VIEW_MMC_REMOVED + && + +1995 + `_gl_ù¾_g‘_b_mode +( +ad +è=ð +GL_CTRL_TAB_ALBUMS + && +cur + && + +1996 +cur +-> +þu¡” + && cur->þu¡”-> +ty³ + =ð +GL_STORE_T_MMC +) { + +1997 + `gl_dbgW +("MMC„emoved, changeo‡lbums view!"); + +1998 + `gl_pÝ_to_ù¾b¬_ly +( +ad +); + +1999  +EINA_TRUE +; + +2002 + `_gl_thumbs_upd©e_v›w +( +d©a +); + +2003  +EINA_TRUE +; + +2004 } ià( +v›w_mode + =ð +GL_VIEW_THUMBS_EDIT +) { + +2006 ià( +ad +-> +pb¬šfo +. +sync_pe +) { + +2007 + `gl_dbgW +("Thread operation is in…rocess!"); + +2008  +EINA_TRUE +; + +2011 +gl_þu¡” + * +cur + = + `_gl_®bums_g‘_cu¼’t +( +d©a +); + +2012 ià( +mode + =ð +GL_UPDATE_VIEW_MMC_REMOVED + && + +2013 + `_gl_ù¾_g‘_b_mode +( +ad +è=ð +GL_CTRL_TAB_ALBUMS + && +cur + && + +2014 +cur +-> +þu¡” + && cur->þu¡”-> +ty³ + =ð +GL_STORE_T_MMC +) { + +2016 + `gl_dbgW +("MMC„emoved, changeo‡lbums view!"); + +2017 + `gl_pÝ_to_ù¾b¬_ly +( +ad +); + +2018  +EINA_TRUE +; + +2021 + `_gl_thumbs_upd©e_v›w +( +d©a +); + +2022  +EINA_TRUE +; + +2023 } ià( +v›w_mode + =ð +GL_VIEW_ALBUMS_SELECT +) { + +2024 + `_gl_®bums_£l_upd©e_v›w +( +ad +); + +2025 } ià( +v›w_mode + =ð +GL_VIEW_THUMBS_SELECT +) { + +2026 +Evas_Objeù + * +Ïyout_šÃr + = + `–m_objeù_·¹_cڋÁ_g‘ +( +ad +-> +®bumšfo +. +£Ëù_Ïyout +, "split.view"); + +2027 ià(! +Ïyout_šÃr +) { + +2028 + `gl_dbgE +("Failedo‡dd split‡lbum view!"); + +2030 + `_ü—‹_¥l™_®bum_v›w +( +ad +, +Ïyout_šÃr +); + +2031 + `–m_objeù_·¹_cڋÁ_£t +( +ad +-> +®bumšfo +. +£Ëù_Ïyout +, "¥l™.v›w", +Ïyout_šÃr +); + +2033 + `_gl_thumbs_£l_upd©e_v›w +( +ad +); + +2034 } ià( +v›w_mode + =ð +GL_VIEW_TIMELINE +) { + +2035 + `_gl_tim–še_upd©e_v›w +( +d©a +); + +2037  +EINA_TRUE +; + +2038 + } +} + +2044  + $gl_g‘_sh¬e_mode +(* +d©a +) + +2046 + `GL_CHECK_VAL +( +d©a +, -1); + +2047 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +2048  +sh¬e_mode + = +GL_SHARE_NONE +; + +2049  +image_út + = 0; + +2050  +video_út + = 0; + +2051  +£l_út + = 0; + +2052  +v›w_m + = + `gl_g‘_v›w_mode +( +ad +); + +2053 ià( +v›w_m + =ð +GL_VIEW_ALBUMS_EDIT +) { + +2054 +£l_út + = +ad +-> +£lšfo +.sel_cnt; + +2055 } ià( +v›w_m + =ð +GL_VIEW_ALBUMS +) { + +2056 +£l_út + = +ad +-> +£lšfo +.sel_cnt; + +2058 + `GL_CHECK_VAL +( +ad +-> +£lšfo +. +–i¡ +, -1); + +2059 +£l_út + = + `eša_li¡_couÁ +( +ad +-> +£lšfo +. +–i¡ +); + +2061 +image_út + = +ad +-> +£lšfo +. +images_út +; + +2062 ià( +image_út + > +£l_út +) { + +2063 + `gl_dbgE +("Images count is wrong!"); + +2067 +video_út + = +£l_út + - +image_út +; + +2068 + `gl_dbg +("Selected items count: %d, image count: %d, video count: %d.", + +2069 +£l_út +, +image_út +, +video_út +); + +2071 ià( +image_út + && +video_út +) { + +2072 +sh¬e_mode + = +GL_SHARE_IMAGE_VIDEO +; + +2073 } ià( +image_út +) { + +2074 ià( +ad +-> +£lšfo +. +j³g_út + =ð +£l_út +) { + +2075 ià( +image_út + == 1) + +2076 +sh¬e_mode + = +GL_SHARE_IMAGE_ONE_JPEG +; + +2078 +sh¬e_mode + = +GL_SHARE_IMAGE_MULTI_JPEG +; + +2080 ià( +image_út + == 1) + +2081 +sh¬e_mode + = +GL_SHARE_IMAGE_ONE +; + +2083 +sh¬e_mode + = +GL_SHARE_IMAGE_MULTI +; + +2085 } ià( +video_út +) { + +2086 ià( +video_út + == 1) { + +2087 +sh¬e_mode + = +GL_SHARE_VIDEO_ONE +; + +2089 +sh¬e_mode + = +GL_SHARE_VIDEO_MULTI +; + +2092 + `gl_dbgE +("Error:‚o video‡nd image!"); + +2095 + `gl_dbg +("sh¬e_modi %d.", +sh¬e_mode +); + +2097  +sh¬e_mode +; + +2098 + } +} + +2106  + $gl_pÝ_to_ù¾b¬_ly +(* +d©a +) + +2108 + `GL_CHECK_VAL +( +d©a +, -1); + +2109 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +2110 + `gl_dbg +(""); + +2113 + `_gl_thumbs_de¡roy_v›w +( +d©a +, +Œue +); + +2115 ià( + `gl_check_g®Ëry_em±y +( +ad +)) { + +2117 + `gl_dbgW +("Empty Gallery, changeo Albums view."); + +2118 ià( + `_gl_ù¾_g‘_b_mode +( +ad +è!ð +GL_CTRL_TAB_ALBUMS +) { + +2120 + `gl_dbg +("Not in Albumsab."); + +2121 + `_gl_ù¾_£l_b +( +d©a +, +GL_CTRL_TAB_ALBUMS +); + +2125 + `_gl_®bums_check_bŠs +( +d©a +); + +2128 + `gl_dbg +("Changeo Albums view."); + +2130 + `_gl_®bums_check_bŠs +( +d©a +); + +2133 + } +} + +2135 +time_t + + $gl_utž_g‘_cu¼’t_sy¡emtime +() + +2137  +timev® + +now +; + +2138 + `mem£t +(& +now +, 0x00, ( +timev® +)); + +2139  +tm + +loÿl_time +; + +2140 + `mem£t +(& +loÿl_time +, 0x00, ( +tm +)); + +2143 + `g‘timeofday +(& +now +, +NULL +); + +2144 + `loÿÉime_r +(( +time_t + *)(&( +now +. +tv_£c +)), & +loÿl_time +); + +2146  + `mktime +(& +loÿl_time +); + +2147 + } +} + +2150 * + $_gl_g‘_du¿tiÚ_¡ršg +( +v_dur +) + +2152 * +dur_¡r + = + `ÿÎoc +(1, +GL_FILE_PATH_LEN_MAX +); + +2153 + `GL_CHECK_NULL +( +dur_¡r +); + +2154 ià( +v_dur + > 0) { + +2155  +du¿tiÚ + = + `æoÜ +( +v_dur + / +GL_TIME_MSEC_PER_SEC +); + +2156  +dur_hr + = 0; + +2157  +dur_mš + = 0; + +2158  +dur_£c + = 0; + +2159  +tmp + = 0; + +2161 ià( +du¿tiÚ + >ð +GL_TIME_SEC_PER_HOUR +) { + +2162 +dur_£c + = +du¿tiÚ + % +GL_TIME_SEC_PER_MIN +; + +2163 +tmp + = + `æoÜ +( +du¿tiÚ + / +GL_TIME_SEC_PER_MIN +); + +2164 +dur_mš + = +tmp + % +GL_TIME_MIN_PER_HOUR +; + +2165 +dur_hr + = + `æoÜ +( +tmp + / +GL_TIME_MIN_PER_HOUR +); + +2166 } ià( +du¿tiÚ + >ð +GL_TIME_SEC_PER_MIN +) { + +2167 +dur_hr + = 0; + +2168 +dur_mš + = + `æoÜ +( +du¿tiÚ + / +GL_TIME_SEC_PER_MIN +); + +2169 +dur_£c + = +du¿tiÚ + % +GL_TIME_SEC_PER_MIN +; + +2171 +dur_hr + = 0; + +2172 +dur_mš + = 0; + +2173 +dur_£c + = +du¿tiÚ + % +GL_TIME_SEC_PER_MIN +; + +2176 + `¢´štf +( +dur_¡r +, +GL_FILE_PATH_LEN_MAX +, "%02d:%02d:%02d", + +2177 +dur_hr +, +dur_mš +, +dur_£c +); + +2179 + `¢´štf +( +dur_¡r +, +GL_FILE_PATH_LEN_MAX +, "00:00:00"); + +2181 +dur_¡r +[ + `¡¾’ +(dur_str)] = '\0'; + +2182  +dur_¡r +; + +2183 + } +} + +2185 +gl_icÚ_ty³_e + + $_gl_g‘_icÚ_ty³ +( +gl_™em + * +g™ +) + +2187 ià( +g™ + =ð +NULL + || g™-> +™em + =ðNULL || g™->™em-> +fže_u¾ + == NULL) { + +2188 + `gl_dbgE +("Inv®id i‹m :%p", +g™ +); + +2189  +GL_ICON_CORRUPTED_FILE +; + +2192  +GL_ICON_NORMAL +; + +2193 + } +} + +2195 * + $_gl_¡r +(* +¡r_id +) + +2197 + `GL_CHECK_NULL +( +¡r_id +); + +2198 ià( + `¡r¡r +( +¡r_id +, "IDS_COM")) + +2199  + `dg‘‹xt +( +GL_STR_DOMAIN_SYS +, +¡r_id +); + +2200 ià( + `¡r¡r +( +¡r_id +, "IDS_")) + +2201  + `dg‘‹xt +( +GL_STR_DOMAIN_LOCAL +, +¡r_id +); + +2203  +¡r_id +; + +2204 + } +} + +2206 +boÞ + + $_gl_is_¡r_id +(cÚ¡ * +¡r_id +) + +2208 + `GL_CHECK_NULL +( +¡r_id +); + +2209 ià( + `¡r¡r +( +¡r_id +, "IDS_")) + +2210  +Œue +; + +2212  +çl£ +; + +2213 + } +} + +2215  + $_gl_g‘_wš_çùÜ +( +Evas_Objeù + * +wš +, * +width +, * +height +) + +2217 ià( +wš + =ð +NULL +) { + +2218 + `gl_dbgE +("Invalid window!"); + +2222  +çùÜ + = 1.0f; + +2223  +wš_x + = 0; + +2224  +wš_y + = 0; + +2225  +wš_w + = 0; + +2226  +wš_h + = 0; + +2228 + `–m_wš_sü“n_size_g‘ +( +wš +, & +wš_x +, & +wš_y +, & +wš_w +, & +wš_h +); + +2229 + `gl_dbg +("Wšdow size: %dx%d, %dx%d", +wš_x +, +wš_y +, +wš_w +, +wš_h +); + +2230  +wš_p_h + = +wš_w + > +wš_h + ? win_w : win_h; + +2231  +sÿË + = + `–m_cÚfig_sÿË_g‘ +(); + +2232 + `gl_dbg +("sÿË: %f", +sÿË +); + +2234 ià( +wš_p_h + < +GL_WIN_HEIGHT +) { + +2235 +çùÜ + = ()( +wš_p_h + - ()( +GL_FIXED_HEIGHT + * +sÿË +)è/ ()( +GL_WIN_HEIGHT + - GL_FIXED_HEIGHT); + +2236 } ià( +sÿË + > +çùÜ +) { + +2237 +çùÜ + = ( +GL_WIN_HEIGHT + - +GL_FIXED_HEIGHT + * +sÿË +) / (GL_WIN_HEIGHT - GL_FIXED_HEIGHT); + +2238 } ià( +sÿË + < +çùÜ +) { + +2239 +çùÜ + = ( +GL_WIN_HEIGHT + - +GL_FIXED_HEIGHT +è/ (GL_WIN_HEIGHT - GL_FIXED_HEIGHT * +sÿË +); + +2241 +çùÜ + = +sÿË +; + +2243 + `gl_dbg +("çùÜ: %f", +çùÜ +); + +2244 ià( +width +) + +2245 * +width + = +wš_w +; + +2246 ià( +height +) + +2247 * +height + = +wš_h +; + +2248  +çùÜ +; + +2249 + } +} + +2260  + $_gl_g‘_fÚt_size +() + +2262  +mode + = -1; + +2263  +»tcode + = + `sy¡em_£‰šgs_g‘_v®ue_št +( +SYSTEM_SETTINGS_KEY_FONT_SIZE +, & +mode +); + +2264 + `gl_dbg +("mode: %d", +mode +); + +2265 ià( +»tcode + !ð +SYSTEM_SETTINGS_ERROR_NONE +) { + +2266 + `gl_dbgE +("Failedo get font size!"); + +2269  +mode +; + +2270 + } +} + +2272 #ifdeà +_USE_SVI + + +2273  + $_gl_š™_svi +(* +d©a +) + +2275 + `GL_CHECK_VAL +( +d©a +, -1); + +2276 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +2278 ià( + `svi_š™ +(&( +ad +-> +maššfo +. +svi_hªdË +)) != 0) { + +2279 + `gl_dbgE +("svi_init failed!"); + +2283  + `__gl_g‘_sound_¡©us +( +d©a +); + +2284 + } +} + +2286  + $_gl_fši_svi +(* +d©a +) + +2288 + `GL_CHECK_VAL +( +d©a +, -1); + +2289 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +2290 ià( +ad +-> +maššfo +. +svi_hªdË +) { + +2291 + `svi_fši +( +ad +-> +maššfo +. +svi_hªdË +); + +2292 +ad +-> +maššfo +. +svi_hªdË + = 0; + +2295 + } +} + +2297  + $_gl_¶ay_sound +(* +d©a +) + +2299 + `GL_CHECK_VAL +( +d©a +, -1); + +2300 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +2301 ià( +ad +-> +maššfo +. +sound_¡©us +) + +2302 + `svi_¶ay +( +ad +-> +maššfo +. +svi_hªdË +, +SVI_VIB_NONE +, + +2303 +SVI_SND_TOUCH_TOUCH1 +); + +2305 + } +} + +2307  + $_gl_¶ay_vib¿tiÚ +(* +d©a +) + +2309 + `GL_CHECK_VAL +( +d©a +, -1); + +2310 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +2311 + `svi_¶ay +( +ad +-> +maššfo +. +svi_hªdË +, +SVI_VIB_TOUCH_TOUCH +, +SVI_SND_NONE +); + +2313 + } +} + +2316  + $_gl_»g_¡Üage_¡©e_chªge_nÙify +(* +d©a +) + +2318 + `__gl_»g_db_nÙi +( +d©a +); + +2319 + `__gl_»g_svi_nÙi +( +d©a +); + +2321 + } +} + +2323  + $_gl_d”eg_¡Üage_¡©e_chªge_nÙify +(* +d©a +) + +2325 + `__gl_d”eg_db_nÙi +( +d©a +); + +2326 + `__gl_d”eg_svi_nÙi +(); + +2328 + } +} + +2330  + $_gl_£t_fže_Ý_cbs +(* +d©a +, * +Ý_cb +, * +d–_™em_cb +, + +2331 * +upd©e_cb +,  +tÙ®_út +) + +2333 + `GL_CHECK_VAL +( +d©a +, -1); + +2334 + `_gl_th»ad_£t_Ý_cb +( +d©a +, +Ý_cb +); + +2335 + `_gl_th»ad_£t_upd©e_cb +( +d©a +, +upd©e_cb +); + +2336 + `_gl_th»ad_£t_d–_™em_cb +( +d©a +, +d–_™em_cb +); + +2337 + `_gl_th»ad_£t_tÙ®_út +( +d©a +, +tÙ®_út +); + +2339 + } +} + +2341  + $_gl_­³nd_®bum_images_·th +(* +d©a +, +gl_medŸ_s + * +™em +) + +2343 + `GL_CHECK_VAL +( +™em +, -1); + +2344 + `GL_CHECK_VAL +( +™em +-> +fže_u¾ +, -1); + +2345 + `GL_CHECK_VAL +( +d©a +, -1); + +2347 +gl_g‘_®bum_images_·th_s + * +g‘_d + = (gl_g‘_®bum_images_·th_ *) +d©a +; + +2348 + `GL_CHECK_VAL +( +g‘_d +-> +fžes +, -1); + +2350 ** +fžes + = +g‘_d +->files; + +2351 +fžes +[ +g‘_d +-> +šdex +++] = + `g_¡rdup +( +™em +-> +fže_u¾ +); + +2352 + `gl_sdbg +("fže_u¾: %s!", +fžes +[ +g‘_d +-> +šdex + - 1]); + +2354 + } +} + +2356  + $_gl_g‘_®bum_images_·th +(* +d©a +, ** +fžes +, +boÞ + +b_hide +) + +2358 + `GL_CHECK_VAL +( +d©a +, 0); + +2359 + `GL_CHECK_VAL +( +fžes +, 0); + +2360 +gl_g‘_®bum_images_·th_s + * +g‘_d + = + `g_Ãw0 +(gl_get_album_images_path_s, 1); + +2361 + `GL_CHECK_VAL +( +g‘_d +, 0); + +2362 +g‘_d +-> +fžes + = files; + +2363  +couÁ + = + `_gl_d©a_g‘_®bums_£Ëùed_fžes +( +d©a +, + +2364 +_gl_­³nd_®bum_images_·th +, + +2365 (*) +g‘_d +); + +2366 + `GL_GFREE +( +g‘_d +); + +2367  +couÁ +; + +2368 + } +} + +2370  + $_gl_ä“_£Ëùed_li¡ +(* +d©a +) + +2372 + `GL_CHECK_VAL +( +d©a +, -1); + +2373  +v›w_mode + = + `gl_g‘_v›w_mode +( +d©a +); + +2374 ià( +GL_VIEW_ALBUMS + =ð +v›w_mode +) + +2375 + `_gl_d©a_fš®ize_®bums_£Ëùed_li¡ +( +d©a +); + +2376 ià( +GL_VIEW_THUMBS + =ð +v›w_mode +) + +2377 + `_gl_d©a_£Ëùed_li¡_fš®ize +( +d©a +); + +2379 + } +} + +2381  + $_gl_dlݒ_imagev›w” +(* +d©a +) + +2383 + `GL_CHECK_VAL +( +d©a +, -1); + +2384 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +2386 ià( +ad +-> +maššfo +. +dlݒ_iv_hªdË +) { + +2387 + `gl_dbgE +("Already opened imageviewer so†ib!"); + +2391 +ad +-> +maššfo +. +dlݒ_iv_hªdË + = + `dlݒ +( +GL_SO_PATH_IMAGEVIEWER +, +RTLD_NOW +); + +2392 ià( +ad +-> +maššfo +. +dlݒ_iv_hªdË + =ð +NULL +) { + +2393 + `gl_sdbgE +("Lib % i nÙ o³Ãd, %s!", +GL_SO_PATH_IMAGEVIEWER +, + +2394 + `dË¼Ü +()); + +2397 + `gl_sdbg +("dlݒ % dÚe", +GL_SO_PATH_IMAGEVIEWER +); + +2399 + } +} + +2401  + $_gl_dlþo£_imagev›w” +(* +d©a +) + +2403 + `GL_CHECK_VAL +( +d©a +, -1); + +2404 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +2406 ià( +ad +-> +maššfo +. +dlݒ_iv_hªdË +) { + +2407 + `dlþo£ +( +ad +-> +maššfo +. +dlݒ_iv_hªdË +); + +2408 +ad +-> +maššfo +. +dlݒ_iv_hªdË + = +NULL +; + +2409 + `gl_sdbg +("dlþo£ % dÚe", +GL_SO_PATH_IMAGEVIEWER +); + +2413 + } +} + + @src/widget/gl-button.c + +18  + ~"gl-debug.h +" + +19  + ~"gl-ui-utž.h +" + +20  + ~"gl-bu‰Ú.h +" + +21  + ~"gl-¡ršgs.h +" + +22  + ~"gl-utž.h +" + +24  + #GL_BTN_POPUP + "pÝup" + + ) + +46 +Evas_Objeù + * + $_gl_but_ü—‹_but +( +Evas_Objeù + * +·»Á +, cÚ¡ * +icÚ +, + +47 cÚ¡ * +‹xt +, cÚ¡ * +¡yË +, + +48 +Evas_Sm¬t_Cb + +cb_func +, cÚ¡ * +d©a +) + +50 +Evas_Objeù + * +bŠ + = +NULL +; + +51 + `GL_CHECK_NULL +( +·»Á +); + +53 +bŠ + = + `–m_bu‰Ú_add +( +·»Á +); + +54 + `GL_CHECK_NULL +( +bŠ +); + +55 ià( +¡yË +) + +56 + `–m_objeù_¡yË_£t +( +bŠ +, +¡yË +); + +57 + `evas_objeù_size_hšt_®ign_£t +( +bŠ +, +EVAS_HINT_FILL +, EVAS_HINT_FILL); + +59 ià( +icÚ +) { + +60 + `gl_sdbg +("Bu‰Ú icÚ: %s", +icÚ +); + +61 +Evas_Objeù + * +ic + = +NULL +; + +62 +ic + = + `–m_icÚ_add +( +bŠ +); + +63 + `GL_CHECK_NULL +( +ic +); + +64 + `GL_ICON_SET_FILE +( +ic +, +icÚ +); + +65 + `–m_image_a¥eù_fixed_£t +( +ic +, +EINA_TRUE +); + +66 + `–m_image_fžl_outside_£t +( +ic +, +EINA_TRUE +); + +67 + `evas_objeù_size_hšt_a¥eù_£t +( +ic +, + +68 +EVAS_ASPECT_CONTROL_VERTICAL +, + +70 + `evas_objeù_size_hšt_®ign_£t +( +ic +, +EVAS_HINT_FILL +, + +71 +EVAS_HINT_FILL +); + +72 + `evas_objeù_size_hšt_weight_£t +( +ic +, +EVAS_HINT_EXPAND +, + +73 +EVAS_HINT_EXPAND +); + +74 + `–m_image_»sizabË_£t +( +ic +, +EINA_TRUE +, EINA_TRUE); + +75 + `–m_objeù_cڋÁ_£t +( +bŠ +, +ic +); + +78 ià( +‹xt +) { + +79 + `gl_sdbg +("Bu‰Úext: %s", +‹xt +); + +80 + `_gl_ui_£t_Œª¦©e_¡r +( +bŠ +, +‹xt +); + +83 ià( +cb_func +) + +84 + `evas_objeù_sm¬t_ÿÎback_add +( +bŠ +, "þicked", +cb_func +, +d©a +); + +86  +bŠ +; + +87 + } +} + +89 +Evas_Objeù + * + $_gl_but_ü—‹_image_but +( +Evas_Objeù + * +·»Á +, cÚ¡ * +icÚ +, + +90 cÚ¡ * +‹xt +, cÚ¡ * +¡yË +, + +91 +Evas_Sm¬t_Cb + +cb_func +, * +d©a +, + +92 +Eša_BoÞ + +æag_´Ýag©e +) + +94 + `GL_CHECK_NULL +( +·»Á +); + +95 +Evas_Objeù + * +bŠ +; + +96 +bŠ + = + `–m_bu‰Ú_add +( +·»Á +); + +97 + `GL_CHECK_NULL +( +bŠ +); + +99 ià( +¡yË +) { + +100 + `–m_objeù_¡yË_£t +( +bŠ +, +¡yË +); + +102 ià( +‹xt +) { + +103 + `gl_sdbg +("Bu‰Úext: %s", +‹xt +); + +104 + `_gl_ui_£t_Œª¦©e_¡r +( +bŠ +, +‹xt +); + +107 ià( +icÚ +) { + +108 +Evas_Objeù + * +ic + = + `–m_image_add +( +·»Á +); + +109 + `GL_CHECK_NULL +( +ic +); + +110 + `GL_ICON_SET_FILE +( +ic +, +icÚ +); + +111 + `–m_image_»sizabË_£t +( +ic +, +EINA_TRUE +, EINA_TRUE); + +112 + `evas_objeù_show +( +ic +); + +113 + `–m_objeù_cڋÁ_£t +( +bŠ +, +ic +); + +116 + `evas_objeù_´Ýag©e_ev’ts_£t +( +bŠ +, +æag_´Ýag©e +); + +117 ià( +cb_func +) + +118 + `evas_objeù_sm¬t_ÿÎback_add +( +bŠ +, "þicked", +cb_func +, +d©a +); + +119  +bŠ +; + +120 + } +} + +122 +Evas_Objeù + * + $_gl_but_ü—‹_but_pÝup +( +Evas_Objeù + * +·»Á +, cÚ¡ * +‹xt +, + +123 +Evas_Sm¬t_Cb + +cb_func +, cÚ¡ * +d©a +) + +125  + `_gl_but_ü—‹_but +( +·»Á +, +NULL +, +‹xt +, +GL_BTN_POPUP +, +cb_func +, +d©a +); + +126 + } +} + + @src/widget/gl-controlbar.c + +18  + ~"gl-debug.h +" + +19  + ~"gl-ui-utž.h +" + +20  + ~"gl-utž.h +" + +21  + ~"gl-cڌÞb¬.h +" + +22  + ~"gl-®bums.h +" + +23  + ~"gl-thumbs.h +" + +24  + ~"gl-d©a.h +" + +25  + ~"gl-¡ršgs.h +" + +26  + ~"gl-icÚs.h +" + +27  + ~"gl-´og»ssb¬.h +" + +28  + ~"gl-ùxpÝup.h +" + +29  + ~"gl-thumbs-ed™.h +" + +30  + ~"gl-tim–še.h +" + +31  + ~"gl-®bums-ed™.h +" + +33  + $__gl_ù¾_»£t_´evious_b +(* +d©a +) + +35 + `GL_CHECK_VAL +( +d©a +, -1); + +36 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +37  +b_mode + = + `_gl_ù¾_g‘_b_mode +( +ad +); + +39  +b_mode +) { + +40  +GL_CTRL_TAB_ALBUMS +: + +41 + `_gl_®bums_hide_v›w_b +( +d©a +); + +43  +GL_CTRL_TAB_TIMELINE +: + +44 + `_gl_tim–še_hide_v›w +( +d©a +); + +47 + `gl_dbgW +("Wrongabbar mode!"); + +51 +Evas_Objeù + * +´e_v›w + = +NULL +; + +52 +´e_v›w + = + `–m_objeù_·¹_cڋÁ_un£t +( +ad +-> +ù¾šfo +. +ù¾b¬_v›w_ly +, + +54 + `evas_objeù_hide +( +´e_v›w +); + +56 + } +} + +58  + $_gl_ù¾_show_v›w +(* +d©a +, cÚ¡ * +Ïb– +) + +60 +GL_PROFILE_IN +; + +61 + `GL_CHECK_VAL +( +d©a +, -1); + +62 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +63  +b_mode + = + `_gl_ù¾_g‘_b_mode +( +ad +); + +64 + `gl_dbg +("b_mode: %d,†ab–: %s", +b_mode +, +Ïb– +); + +66 ià(! + `g_¡rcmp0 +( +Ïb– +, +GL_STR_ALBUMS +)) { + +67 + `gl_dbg +("Albums"); + +68 ià( +b_mode + =ð +GL_CTRL_TAB_ALBUMS +) { + +69 + `gl_dbg +("Already in Albums Tab."); + +72 + `__gl_ù¾_»£t_´evious_b +( +ad +); + +73 + `_gl_ù¾_£t_b_mode +( +ad +, +GL_CTRL_TAB_ALBUMS +); + +74 + `_gl_®bums_show_v›w_b +( +d©a +, +ad +-> +ù¾šfo +. +ù¾b¬_v›w_ly +); + +75 } ià(! + `g_¡rcmp0 +( +Ïb– +, "Timeline" )) { + +77 + `gl_dbg +(" Timeline"); + +78 ià( +b_mode + =ð +GL_CTRL_TAB_TIMELINE +) { + +79 + `gl_dbg +("Already in Timeline Tab."); + +83 + `__gl_ù¾_»£t_´evious_b +( +ad +); + +84 + `_gl_ù¾_£t_b_mode +( +ad +, +GL_CTRL_TAB_TIMELINE +); + +85 + `_gl_tim–še_ü—‹_v›w +( +d©a +, +ad +-> +ù¾šfo +. +ù¾b¬_v›w_ly +); + +87 +GL_PROFILE_OUT +; + +89 + } +} + +92  + $__gl_ù¾_’abË_bŠs +( +gl_­pd©a + * +ad +, +Elm_Objeù_I‹m + * +nf_™ +) + +94 + `gl_dbg +(""); + +95 + `GL_CHECK_VAL +( +ad +, -1); + +96 + `GL_CHECK_VAL +( +nf_™ +, -1); + +97  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +99 ià( +v›w_mode + =ð +GL_VIEW_THUMBS_EDIT +) { + +100 + `_gl_thumbs_ed™_di§bË_bŠs +( +ad +, +çl£ +); + +101 } ià( +v›w_mode + =ð +GL_VIEW_ALBUMS_EDIT +) { + +102 + `_gl_®bums_ed™_di§bË_bŠs +( +ad +, +çl£ +); + +104 + `_gl_ui_di§bË_m’u +( +nf_™ +, +çl£ +); + +105 + `_gl_ù¾_di§bË_™ems +( +nf_™ +, +çl£ +); + +108 + } +} + +110 +Evas_Objeù + * + $_gl_ù¾_add_Ïyout +( +Evas_Objeù + * +·»Á +) + +112 + `GL_CHECK_NULL +( +·»Á +); + +113 +Evas_Objeù + * +Ïyout + = +NULL +; + +114 +Ïyout + = + `gl_ui_lßd_edj +( +·»Á +, +GL_EDJ_FILE +, +GL_GRP_CONTROLBAR +); + +115 + `GL_CHECK_NULL +( +Ïyout +); + +116 + `evas_objeù_show +( +Ïyout +); + +117  +Ïyout +; + +118 + } +} + +120 +Evas_Objeù + * + $_gl_ù¾_add_maš_Ïyout +( +Evas_Objeù + * +·»Á +) + +122 +GL_PROFILE_IN +; + +123 + `GL_CHECK_NULL +( +·»Á +); + +125 +Evas_Objeù + * +Ïyout + = + `–m_Ïyout_add +( +·»Á +); + +126 + `GL_CHECK_NULL +( +Ïyout +); + +127 + `evas_objeù_size_hšt_weight_£t +( +Ïyout +, +EVAS_HINT_EXPAND +, + +128 +EVAS_HINT_EXPAND +); + +129 + `evas_objeù_size_hšt_®ign_£t +( +Ïyout +, +EVAS_HINT_FILL +, EVAS_HINT_FILL); + +130 + `–m_Ïyout_theme_£t +( +Ïyout +, "layout", "application", "default"); + +131 + `evas_objeù_show +( +Ïyout +); + +133 +GL_PROFILE_OUT +; + +134  +Ïyout +; + +135 + } +} + +137  + $_gl_ù¾_show_t™Ë +(* +d©a +,  +b_mode +) + +139 +GL_PROFILE_IN +; + +140 + `GL_CHECK_VAL +( +d©a +, -1); + +141 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +142 + `GL_CHECK_VAL +( +ad +-> +ù¾šfo +. +ù¾b¬_ly +, -1); + +143 * +‹xt + = +NULL +; + +144 + `gl_dbg +("b_mode: %d", +b_mode +); + +146  +b_mode +) { + +147  +GL_CTRL_TAB_ALBUMS +: + +148 +‹xt + = +GL_STR_ID_ALBUMS +; + +150  +GL_CTRL_TAB_TIMELINE +: + +152 +‹xt + = +GL_STR_TIME_VIEW +; + +155 + `gl_dbgE +("Wrong mode!"); + +159 ià( +‹xt +) { + +160 + `gl_sdbg +("‹xt: %s", +‹xt +); + +161 + `_gl_ui_chªge_Çvi_t™Ë +( +ad +-> +ù¾šfo +. +nf_™ +, +‹xt +, +Œue +); + +163 + `gl_dbgE +("Invalidext!"); + +166 +GL_PROFILE_OUT +; + +168 + } +} + +170  + $_gl_ù¾_£l_b +(* +d©a +,  +b_mode +) + +172 + `gl_dbg +("_gl_ctrl_sel_tab"); + +173 + `GL_CHECK_VAL +( +d©a +, -1); + +174 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +175 + `GL_CHECK_VAL +( +ad +-> +ù¾šfo +. +ù¾b¬_ly +, -1); + +176 cÚ¡ * +‹xt + = +NULL +; + +178  +b_mode +) { + +179  +GL_CTRL_TAB_ALBUMS +: + +180 +‹xt + = +GL_STR_ALBUMS +; + +182  +GL_CTRL_TAB_TIMELINE +: + +183 + `gl_dbg +("GL_CTRL_TAB_TIMELINE"); + +185 +‹xt + = "Timeline"; + +188 + `gl_dbgE +("Wrong mode!"); + +192 + `gl_dbg +("‹xt: %s[%d]", +‹xt +, +b_mode +); + +193 + `_gl_ù¾_show_v›w +( +d©a +, +‹xt +); + +195 + } +} + +197  + $_gl_ù¾_£t_b_mode +(* +d©a +,  +mode +) + +199 + `GL_CHECK_VAL +( +d©a +, -1); + +200 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +201 + `gl_dbg +("mode: %d", +mode +); + +202 +ad +-> +ù¾šfo +. +b_mode + = +mode +; + +204 + } +} + +206  + $_gl_ù¾_g‘_b_mode +(* +d©a +) + +208 + `GL_CHECK_VAL +( +d©a +, -1); + +209 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +210  +ad +-> +ù¾šfo +. +b_mode +; + +211 + } +} + +213  + $_gl_ù¾_chªge_—symode +(* +d©a +) + +215 + `GL_CHECK_VAL +( +d©a +, -1); + +218 + `_gl_ùxpÝup_d– +( +d©a +); + +220 + `gl_pÝ_to_ù¾b¬_ly +( +d©a +); + +222 + `__gl_ù¾_»£t_´evious_b +( +d©a +); + +224 + `_gl_ù¾_£t_b_mode +( +d©a +, +GL_CTRL_TAB_INIT +); + +225 + `_gl_ù¾_show_v›w +( +d©a +, +GL_STR_ALBUMS +); + +227 + } +} + +229  + $_gl_ù¾_’abË_bŠs +(* +d©a +, +Elm_Objeù_I‹m + * +nf_™ +) + +231  + `__gl_ù¾_’abË_bŠs +( +d©a +, +nf_™ +); + +232 + } +} + +234 +Evas_Objeù + * + $_gl_ù¾_add_toÞb¬ +( +Evas_Objeù + * +·»Á +) + +236 +Evas_Objeù + * +toÞb¬ + = + `–m_toÞb¬_add +( +·»Á +); + +237 + `GL_CHECK_NULL +( +toÞb¬ +); + +238 + `–m_objeù_¡yË_£t +( +toÞb¬ +, "default"); + +239 + `–m_toÞb¬_shršk_mode_£t +( +toÞb¬ +, +ELM_TOOLBAR_SHRINK_EXPAND +); + +240 + `–m_toÞb¬_Œªsv”£_ex·nded_£t +( +toÞb¬ +, +EINA_TRUE +); + +241 + `–m_toÞb¬_£Ëù_mode_£t +( +toÞb¬ +, +ELM_OBJECT_SELECT_MODE_NONE +); + +242  +toÞb¬ +; + +243 + } +} + +245 +Elm_Objeù_I‹m + * + $_gl_ù¾_­³nd_™em +( +Evas_Objeù + * +obj +, cÚ¡ * +icÚ +, + +246 cÚ¡ * +Ïb– +, +Evas_Sm¬t_Cb + +func +, + +247 cÚ¡ * +d©a +) + +249 +Elm_Objeù_I‹m + * +™ + = +NULL +; + +250 +™ + = + `–m_toÞb¬_™em_­³nd +( +obj +, +icÚ +, +Ïb– +, +func +, +d©a +); + +251 ià( +Ïb– +) + +252 + `_gl_ui_£t_Œª¦©abË_™em +( +™ +, +Ïb– +); + +253  +™ +; + +254 + } +} + +256  + $_gl_ù¾_di§bË_™ems +( +Elm_Objeù_I‹m + * +nf_™ +, +boÞ + +b_di§bËd +) + +258 + `GL_CHECK_VAL +( +nf_™ +, -1); + +259 +Evas_Objeù + * +toÞb¬ + = +NULL +; + +261 +toÞb¬ + = + `–m_objeù_™em_·¹_cڋÁ_g‘ +( +nf_™ +, "toolbar"); + +262 + `GL_CHECK_VAL +( +toÞb¬ +, -1); + +264 +Elm_Objeù_I‹m + * +™ + = +NULL +; + +265 +Elm_Objeù_I‹m + * +Ãxt_™ + = +NULL +; + +266 * +‹xt + = +NULL +; + +267 +™ + = + `–m_toÞb¬_fœ¡_™em_g‘ +( +toÞb¬ +); + +268  +™ +) { + +269 +Ãxt_™ + = + `–m_toÞb¬_™em_Ãxt_g‘ +( +™ +); + +270 +‹xt + = (*) + `–m_objeù_™em_‹xt_g‘ +( +™ +); + +271 ià( +‹xt + && ! + `g_¡rcmp0 +Ñext, + `_gl_¡r +( +GL_STR_ID_CANCEL +))) { + +272 +™ + = +Ãxt_™ +; + +275 + `_gl_ù¾_di§bË_™em +( +™ +, +b_di§bËd +); + +276 +™ + = +Ãxt_™ +; + +279 + } +} + +281  + $_gl_ù¾_di§bË_™ems_w™h_check +( +Elm_Objeù_I‹m + * +nf_™ +, +boÞ + +b_di§bËd +, + +282 * +check_¡r +, +boÞ + +b_check_di§bËd +) + +284 + `GL_CHECK_VAL +( +nf_™ +, -1); + +285 +Evas_Objeù + * +toÞb¬ + = +NULL +; + +286 +toÞb¬ + = + `–m_objeù_™em_·¹_cڋÁ_g‘ +( +nf_™ +, "toolbar"); + +287 + `GL_CHECK_VAL +( +toÞb¬ +, -1); + +289 +Elm_Objeù_I‹m + * +™ + = +NULL +; + +290 +Elm_Objeù_I‹m + * +Ãxt_™ + = +NULL +; + +291 * +‹xt + = +NULL +; + +292 +™ + = + `–m_toÞb¬_fœ¡_™em_g‘ +( +toÞb¬ +); + +293  +™ +) { + +294 +Ãxt_™ + = + `–m_toÞb¬_™em_Ãxt_g‘ +( +™ +); + +295 +‹xt + = (*) + `–m_objeù_™em_‹xt_g‘ +( +™ +); + +296 ià( +‹xt + && ! + `g_¡rcmp0 +Ñext, + `_gl_¡r +( +GL_STR_ID_CANCEL +))) { + +297 +™ + = +Ãxt_™ +; + +300 ià( +check_¡r +) { + +301 ià( +‹xt + && ! + `g_¡rcmp0 +Ñext, + `_gl_¡r +( +check_¡r +))) + +302 + `_gl_ù¾_di§bË_™em +( +™ +, +b_check_di§bËd +); + +304 + `_gl_ù¾_di§bË_™em +( +™ +, +b_di§bËd +); + +306 + `_gl_ù¾_di§bË_™em +( +™ +, +b_di§bËd +); + +308 +™ + = +Ãxt_™ +; + +311 + } +} + +313  + $_gl_ù¾_di§bË_™em_w™h_check +( +Elm_Objeù_I‹m + * +nf_™ +, * +check_¡r +, + +314 +boÞ + +b_di§bËd +) + +316 + `GL_CHECK_VAL +( +check_¡r +, -1); + +317 + `GL_CHECK_VAL +( +nf_™ +, -1); + +318 +Evas_Objeù + * +toÞb¬ + = +NULL +; + +319 +toÞb¬ + = + `–m_objeù_™em_·¹_cڋÁ_g‘ +( +nf_™ +, "toolbar"); + +320 + `GL_CHECK_VAL +( +toÞb¬ +, -1); + +322 +Elm_Objeù_I‹m + * +™ + = +NULL +; + +323 +Elm_Objeù_I‹m + * +Ãxt_™ + = +NULL +; + +324 * +‹xt + = +NULL +; + +325 +™ + = + `–m_toÞb¬_fœ¡_™em_g‘ +( +toÞb¬ +); + +326  +™ +) { + +327 +Ãxt_™ + = + `–m_toÞb¬_™em_Ãxt_g‘ +( +™ +); + +328 +‹xt + = (*) + `–m_objeù_™em_‹xt_g‘ +( +™ +); + +329 ià( +‹xt + && ! + `g_¡rcmp0 +Ñext, + `_gl_¡r +( +check_¡r +))) { + +330 + `_gl_ù¾_di§bË_™em +( +™ +, +b_di§bËd +); + +333 +™ + = +Ãxt_™ +; + +336 + } +} + +338  + $_gl_ù¾_di§bË_™em +( +Elm_Objeù_I‹m + * +™ +, +Eša_BoÞ + +b_di§bËd +) + +340 + `GL_CHECK_VAL +( +™ +, -1); + +342 + `–m_objeù_™em_di§bËd_£t +( +™ +, +b_di§bËd +); + +344 + } +} + + @src/widget/gl-ctxpopup.c + +17  + ~"g®Ëry.h +" + +18  + ~"gl-ùxpÝup.h +" + +19  + ~"gl-ui-utž.h +" + +20  + ~"gl-utž.h +" + +21  + ~"gl-debug.h +" + +22  + ~"gl-¡ršgs.h +" + +23  + ~"gl-bu‰Ú.h +" + +24  + ~"gl-cڌÞb¬.h +" + +25  + ~"gl-thumbs.h +" + +26  + ~"gl-®bums.h +" + +28  + #GL_CTXPOPUP_OBJ_DATA_KEY + "gl_ùxpÝup_d©a_key" + + ) + +29  + #GL_CTXPOPUP_OBJ_MORE_BTN_KEY + "gl_ùxpÝup_mÜe_bŠ_key" + + ) + +30  + #GL_CTXPOPUP_OBJ_ROTATE_KEY + "gl_ùxpÝup_rÙ©e_key" + + ) + +31  + #GL_CTXPOPUP_STYLE_MORE + "mÜe/deçuÉ" + + ) + +33  +_gl_ùx_d©a_t + + tgl_ùx_d©a_s +; + +34  + s_gl_ùx_d©a_t + { + +35  + m™ems_couÁ +; + +38  + $__gl_ùxpÝup_move_fÜ_hwkey +(* +d©a +, +Evas_Objeù + * +ùxpÝup +) + +40 + `GL_CHECK +( +ùxpÝup +); + +41 + `GL_CHECK +( +d©a +); + +42 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +43  +wš_w + = 0; + +44  +wš_h + = 0; + +45  +move_x + = 0; + +46  +move_y + = 0; + +48 + `–m_wš_sü“n_size_g‘ +( +ad +-> +maššfo +. +wš +, +NULL +, NULL, & +wš_w +, & +wš_h +); + +49  +chªged_ªg + = + `–m_wš_rÙ©iÚ_g‘ +( +ad +-> +maššfo +. +wš +); + +50 + `gl_dbg +("New‡ngË: %d", +chªged_ªg +); + +52  +chªged_ªg +) { + +53  +APP_DEVICE_ORIENTATION_0 +: + +54  +APP_DEVICE_ORIENTATION_180 +: + +55 +move_x + = +wš_w +/2; + +56 +move_y + = +wš_h +; + +58  +APP_DEVICE_ORIENTATION_90 +: + +59 +move_x + = +wš_h +/2; + +60 +move_y + = +wš_w +; + +62  +APP_DEVICE_ORIENTATION_270 +: + +63 +move_x + = +wš_h +/2; + +64 +move_y + = +wš_w +; + +68 + `gl_dbg +("move_x: %d, move_y: %d", +move_x +, +move_y +); + +69 + `evas_objeù_move +( +ùxpÝup +, +move_x +, +move_y +); + +70 + } +} + +72  +boÞ + + $__gl_ùxpÝup_check_bŠ_pos +(* +d©a +, +Evas_Objeù + * +bŠ +,  +x +, + +73  +y +,  +w +,  +h +) + +75 + `GL_CHECK_FALSE +( +d©a +); + +76 + `GL_CHECK_FALSE +( +bŠ +); + +77 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +78  +wš_w + = 0, +wš_h + = 0; + +80 + `–m_wš_sü“n_size_g‘ +( +ad +-> +maššfo +. +wš +, +NULL +, NULL, & +wš_w +, & +wš_h +); + +82 ià((( +x + > 0è&& (x < +wš_w +)è&& (( +y + > 0è&& (y < +wš_h +)) && + +83 (( +w + > 0è&& ( +h + > 0))) { + +85  +Œue +; + +88  +çl£ +; + +89 + } +} + +91 * + $__gl_ùxpÝup_g‘_icÚ +(* +Ïb–_id +) + +93 + `GL_CHECK_NULL +( +Ïb–_id +); + +94 * +·th + = +NULL +; + +96 ià(! + `g_¡rcmp0 +( +GL_STR_ID_EDIT_IMAGE +, +Ïb–_id +)) { + +97 +·th + = +GL_ICON_EDIT_IMAGE +; + +98 } ià(! + `g_¡rcmp0 +( +GL_STR_ID_DELETE +, +Ïb–_id +)) { + +99 +·th + = +GL_ICON_DELETE +; + +100 } ià(! + `g_¡rcmp0 +( +GL_STR_ID_MOVE +, +Ïb–_id +)) { + +101 +·th + = +GL_ICON_MOVE +; + +102 } ià(! + `g_¡rcmp0 +( +GL_STR_ID_COPY +, +Ïb–_id +)) { + +103 +·th + = +GL_ICON_COPY +; + +104 } ià(! + `g_¡rcmp0 +( +GL_STR_ID_ROTATE_LEFT +, +Ïb–_id +)) { + +105 +·th + = +GL_ICON_ROTATE_LEFT +; + +106 } ià(! + `g_¡rcmp0 +( +GL_STR_ID_ROTATE_RIGHT +, +Ïb–_id +)) { + +107 +·th + = +GL_ICON_ROTATE_RIGHT +; + +109 #ifdeà +SUPPORT_SLIDESHOW + + +110 ià(! + `g_¡rcmp0 +( +GL_STR_ID_SLIDESHOW +, +Ïb–_id +)) { + +111 +·th + = +GL_ICON_SLIDESHOW +; + +114 ià(! + `g_¡rcmp0 +( +GL_STR_ID_NEW_ALBUM +, +Ïb–_id +)) { + +115 +·th + = +GL_ICON_NEW_ALBUM +; + +116 } ià(! + `g_¡rcmp0 +( +GL_STR_ID_SHARE +, +Ïb–_id +)) { + +117 +·th + = +GL_ICON_SHARE +; + +118 } ià(! + `g_¡rcmp0 +( +GL_STR_ID_EDIT +, +Ïb–_id +)) { + +119 +·th + = +GL_ICON_EDIT +; + +120 } ià(! + `g_¡rcmp0 +( +GL_STR_ID_RENAME +, +Ïb–_id +)) { + +121 +·th + = +GL_ICON_RENAME +; + +122 } ià(! + `g_¡rcmp0 +( +GL_STR_ID_SETTINGS +, +Ïb–_id +)) { + +123 +·th + = +GL_ICON_SETTINGS +; + +125  +·th +; + +126 + } +} + +128  + $__gl_ùxpÝup_hide_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +130 + `GL_CHECK +( +obj +); + +131 + `GL_CHECK +( +d©a +); + +132 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +134 +boÞ + +ù_rÙ©e + = (boÞ) + `evas_objeù_d©a_g‘ +( +obj +, + +135 +GL_CTXPOPUP_OBJ_ROTATE_KEY +); + +137 ià(! +ù_rÙ©e +) { + +138 + `gl_dbg +("ctxpopup is dismissed"); + +139 + `evas_objeù_d– +( +obj +); + +140 +ad +-> +maššfo +. +ùxpÝup + = +NULL +; + +142 + `gl_dbg +("ctxpopup is‚ot dismissed"); + +145 + `evas_objeù_d©a_£t +( +obj +, +GL_CTXPOPUP_OBJ_ROTATE_KEY +, + +146 (*) +çl£ +); + +149 + `evas_objeù_show +( +ad +-> +maššfo +. +ùxpÝup +); + +151 + } +} + +154  + $__gl_ùxpÝup_show +(* +d©a +, +Evas_Objeù + * +bŠ +, Evas_Objeù * +ùxpÝup +) + +156 + `GL_CHECK_VAL +( +ùxpÝup +, -1); + +157 + `GL_CHECK_VAL +( +bŠ +, -1); + +158 + `GL_CHECK_VAL +( +d©a +, -1); + +159 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +160  +x_pos™iÚ + = 0; + +161  +y_pos™iÚ + = 0; + +162  +w + = 0; + +163  +h + = 0; + +165 + `–m_ùxpÝup_dœeùiÚ_´iܙy_£t +( +ùxpÝup +, +ELM_CTXPOPUP_DIRECTION_UP +, + +166 +ELM_CTXPOPUP_DIRECTION_LEFT +, + +167 +ELM_CTXPOPUP_DIRECTION_RIGHT +, + +168 +ELM_CTXPOPUP_DIRECTION_DOWN +); + +170 + `evas_objeù_geom‘ry_g‘ +( +bŠ +, & +x_pos™iÚ +, & +y_pos™iÚ +, & +w +, & +h +); + +171 ià( + `__gl_ùxpÝup_check_bŠ_pos +( +d©a +, +bŠ +, +x_pos™iÚ +, +y_pos™iÚ +, +w +, +h +è=ð +Œue +) { + +173 + `evas_objeù_move +( +ùxpÝup +, +x_pos™iÚ ++ +w +/2, +y_pos™iÚ + + +h +/2); + +174 + `gl_dbg +("(%d, %dè- (%d, %d)", +x_pos™iÚ +, +y_pos™iÚ +, +w +, +h +); + +178 + `__gl_ùxpÝup_move_fÜ_hwkey +( +d©a +, +ùxpÝup +); + +181 + `evas_objeù_show +( +ùxpÝup +); + +182 +ad +-> +maššfo +. +ùxpÝup + = ctxpopup; + +184 + } +} + +186  + $__gl_ùxpÝup_·»Á_»size_cb +(* +d©a +, +Evas + * +e +, + +187 +Evas_Objeù + * +obj +, * +ei +) + +189 + `gl_dbg +(""); + +190 + `GL_CHECK +( +d©a +); + +191 + `evas_objeù_d©a_£t +(( +Evas_Objeù + *) +d©a +, +GL_CTXPOPUP_OBJ_ROTATE_KEY +, + +192 (*) +Œue +); + +193 + } +} + +195  + $__gl_ùxpÝup_™ems_upd©e_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +197 + `gl_dbg +(""); + +198 + `GL_CHECK +( +d©a +); + +199 (* +upd©e_cb +)(* +d©a +, +Evas_Objeù + * +·»Á +); + +200 +upd©e_cb + = + `evas_objeù_d©a_g‘ +(( +Evas_Objeù + *) +d©a +, + +202 + `gl_sdbg +("ÿÎback: %p", +upd©e_cb +); + +203 ià( +upd©e_cb +) + +204 + `upd©e_cb +( +ei +, ( +Evas_Objeù + *) +d©a +); + +205 + } +} + +208  + $__gl_ùxpÝup_rÙ©e_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +210 + `gl_dbg +(""); + +211 + `GL_CHECK +( +d©a +); + +212 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +214 +Evas_Objeù + * +mÜe_bŠ + = +NULL +; + +215 +mÜe_bŠ + = ( +Evas_Objeù + *) + `evas_objeù_d©a_g‘ +( +ad +-> +maššfo +. +ùxpÝup +, + +216 +GL_CTXPOPUP_OBJ_MORE_BTN_KEY +); + +217 + `GL_CHECK +( +mÜe_bŠ +); + +218 + `__gl_ùxpÝup_show +( +d©a +, +mÜe_bŠ +, +ad +-> +maššfo +. +ùxpÝup +); + +219 + } +} + +221  + $__gl_ùxpÝup_d–_cb +(* +d©a +, +Evas + * +e +, +Evas_Objeù + * +obj +, * +ei +) + +223 + `GL_CHECK +( +d©a +); + +224 + `GL_CHECK +( +obj +); + +225 +Evas_Objeù + * +ùxpÝup + = +obj +; + +226 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +227 + `GL_CHECK +( +ad +-> +maššfo +. +Çviäame +); + +229 + `evas_objeù_d©a_d– +( +ùxpÝup +, +GL_CTXPOPUP_OBJ_MORE_BTN_KEY +); + +230 + `evas_objeù_d©a_d– +( +ùxpÝup +, +GL_CTXPOPUP_OBJ_ROTATE_KEY +); + +231 + `evas_objeù_sm¬t_ÿÎback_d– +( +ùxpÝup +, "dismissed", + +232 +__gl_ùxpÝup_hide_cb +); + +233 + `evas_objeù_ev’t_ÿÎback_d– +( +ùxpÝup +, +EVAS_CALLBACK_DEL +, + +234 +__gl_ùxpÝup_d–_cb +); + +235 + `evas_objeù_ev’t_ÿÎback_d– +( +ad +-> +maššfo +. +Çviäame +, + +236 +EVAS_CALLBACK_RESIZE +, + +237 +__gl_ùxpÝup_·»Á_»size_cb +); + +238 + `evas_objeù_sm¬t_ÿÎback_d– +( +ad +-> +maššfo +. +Çviäame +, + +240 +__gl_ùxpÝup_™ems_upd©e_cb +); + +241 + `evas_objeù_sm¬t_ÿÎback_d– +( + `–m_objeù_tÝ_widg‘_g‘ +( +ùxpÝup +), + +243 +__gl_ùxpÝup_rÙ©e_cb +); + +244 * +ùx_d©a + = + `evas_objeù_d©a_g‘ +( +ùxpÝup +, +GL_CTXPOPUP_OBJ_DATA_KEY +); + +245 + `GL_FREEIF +( +ùx_d©a +); + +246 + `gl_dbg +("done"); + +247 + } +} + +249  + $__gl_ùxpÝup_add_ÿÎbacks +(* +d©a +, +Evas_Objeù + * +ùxpÝup +) + +251 + `GL_CHECK_VAL +( +d©a +, -1); + +252 + `GL_CHECK_VAL +( +ùxpÝup +, -1); + +253 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +254 + `GL_CHECK_VAL +( +ad +-> +maššfo +. +Çviäame +, -1); + +256 + `evas_objeù_sm¬t_ÿÎback_add +( +ùxpÝup +, "dismissed", + +257 +__gl_ùxpÝup_hide_cb +, +d©a +); + +258 + `evas_objeù_ev’t_ÿÎback_add +( +ùxpÝup +, +EVAS_CALLBACK_DEL +, + +259 +__gl_ùxpÝup_d–_cb +, +d©a +); + +260 + `evas_objeù_ev’t_ÿÎback_add +( +ad +-> +maššfo +. +Çviäame +, + +261 +EVAS_CALLBACK_RESIZE +, + +262 +__gl_ùxpÝup_·»Á_»size_cb +, + +263 +ùxpÝup +); + +264 + `evas_objeù_sm¬t_ÿÎback_add +( +ad +-> +maššfo +. +Çviäame +, + +266 +__gl_ùxpÝup_™ems_upd©e_cb +, +ùxpÝup +); + +267 + `evas_objeù_sm¬t_ÿÎback_add +( + `–m_objeù_tÝ_widg‘_g‘ +( +ùxpÝup +), + +269 +__gl_ùxpÝup_rÙ©e_cb +, +d©a +); + +271 + `gl_dbg +("done"); + +273 + } +} + +275 +Elm_Objeù_I‹m + * + $_gl_ùxpÝup_­³nd +( +Evas_Objeù + * +obj +, * +Ïb–_id +, + +276 +Evas_Sm¬t_Cb + +func +, cÚ¡ * +d©a +) + +278 +Evas_Objeù + * +ic + = +NULL +; + +279 * +·th + = + `__gl_ùxpÝup_g‘_icÚ +( +Ïb–_id +); + +281 ià( +·th +) { + +282 +ic + = + `–m_image_add +( +obj +); + +283 + `GL_CHECK_NULL +( +ic +); + +284 + `GL_ICON_SET_FILE +( +ic +, +·th +); + +287 +gl_ùx_d©a_s + * +ùx_d©a + = +NULL +; + +288 +ùx_d©a + = ( +gl_ùx_d©a_s + *) + `evas_objeù_d©a_g‘ +( +obj +, + +289 +GL_CTXPOPUP_OBJ_DATA_KEY +); + +290 ià( +ùx_d©a +) { + +291 +ùx_d©a +-> +™ems_couÁ +++; + +293  + `–m_ùxpÝup_™em_­³nd +( +obj +, + `_gl_¡r +( +Ïb–_id +), +NULL +, +func +, +d©a +); + +294 + } +} + +296 +Elm_Objeù_I‹m + * + $_gl_ùxpÝup_­³nd_w™h_icÚ +( +Evas_Objeù + * +obj +, * +Ïb– +, + +297 * +icÚ_·th +, +Evas_Sm¬t_Cb + +func +, cÚ¡ * +d©a +) + +299 +Evas_Objeù + * +ic + = +NULL +; + +301 ià( +icÚ_·th +) { + +302 +ic + = + `–m_image_add +( +obj +); + +303 + `GL_CHECK_NULL +( +ic +); + +304 + `GL_ICON_SET_FILE +( +ic +, +icÚ_·th +); + +307 +gl_ùx_d©a_s + * +ùx_d©a + = +NULL +; + +308 +ùx_d©a + = ( +gl_ùx_d©a_s + *) + `evas_objeù_d©a_g‘ +( +obj +, + +309 +GL_CTXPOPUP_OBJ_DATA_KEY +); + +310 ià( +ùx_d©a +) { + +311 +ùx_d©a +-> +™ems_couÁ +++; + +313  + `–m_ùxpÝup_™em_­³nd +( +obj +, +Ïb– +, +ic +, +func +, +d©a +); + +314 + } +} + +316  + $_gl_ùxpÝup_ü—‹ +(* +d©a +, +Evas_Objeù + * +but +, +ùx_­³nd_cb + +­³nd_cb +) + +318 + `gl_dbg +(""); + +319 + `GL_CHECK_VAL +( +­³nd_cb +, -1); + +320 + `GL_CHECK_VAL +( +but +, -1); + +321 + `GL_CHECK_VAL +( +d©a +, -1); + +322 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +323 + `GL_CHECK_VAL +( +ad +-> +maššfo +. +Çviäame +, -1); + +325 + `_gl_ùxpÝup_d– +( +d©a +); + +327 +gl_ùx_d©a_s + * +ùx_d©a + = (gl_ùx_d©a_ *) + `ÿÎoc +(1, (gl_ctx_data_s)); + +328 + `GL_CHECK_VAL +( +ùx_d©a +, -1); + +330 +Evas_Objeù + * +ùxpÝup + = + `–m_ùxpÝup_add +( +ad +-> +maššfo +. +Çviäame +); + +331 + `“xt_objeù_ev’t_ÿÎback_add +( +ùxpÝup +, +EEXT_CALLBACK_BACK +, +“xt_ùxpÝup_back_cb +, +NULL +); + +332 + `“xt_objeù_ev’t_ÿÎback_add +( +ùxpÝup +, +EEXT_CALLBACK_MORE +, +“xt_ùxpÝup_back_cb +, +NULL +); + +333 + `–m_objeù_¡yË_£t +( +ùxpÝup +, +GL_CTXPOPUP_STYLE_MORE +); + +335 + `evas_objeù_d©a_£t +( +ùxpÝup +, +GL_CTXPOPUP_OBJ_MORE_BTN_KEY +, +but +); + +336 + `evas_objeù_d©a_£t +( +ùxpÝup +, +GL_CTXPOPUP_OBJ_ROTATE_KEY +, + +337 (*) +çl£ +); + +338 + `evas_objeù_d©a_£t +( +ùxpÝup +, +GL_CTXPOPUP_OBJ_DATA_KEY +, + +339 (*) +ùx_d©a +); + +342 + `__gl_ùxpÝup_add_ÿÎbacks +( +d©a +, +ùxpÝup +); + +345 + `­³nd_cb +( +d©a +, +ùxpÝup +); + +348 ià( +ùx_d©a +-> +™ems_couÁ + == 0) { + +349 + `gl_dbgW +("Removeƒmpty ctxpopup"); + +350 + `evas_objeù_d– +( +ùxpÝup +); + +354  + `__gl_ùxpÝup_show +( +d©a +, +but +, +ùxpÝup +); + +355 + } +} + +357  + $_gl_ùxpÝup_d– +(* +d©a +) + +359 + `GL_CHECK_VAL +( +d©a +, -1); + +360 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +361 ià( +ad +-> +maššfo +. +ùxpÝup +) { + +362 + `evas_objeù_d– +( +ad +-> +maššfo +. +ùxpÝup +); + +363 +ad +-> +maššfo +. +ùxpÝup + = +NULL +; + +364 + `gl_dbg +("Ctxpopup„emoved"); + +367 + } +} + + @src/widget/gl-editfield.c + +18  + ~"gl-ed™f›ld.h +" + +19  + ~"gl-ui-utž.h +" + +20  + ~"gl-utž.h +" + +21  + ~"gl-pÝup.h +" + +22  + ~"gl-d©a.h +" + +23  + ~"gl-¡ršgs.h +" + +24  + ~"gl-debug.h +" + +25  + ~"gl-nÙify.h +" + +28  + #GL_ENTRY_STR_CHAR_MAX + 50 + + ) + +31  + $__gl_ed™f›ld_maxËn_»ached_cb +(* +d©a +, +Evas_Objeù + * +obj +, + +32 * +ei +) + +34 + `gl_dbg +("Entry maximum†ength„eached, show‚otification."); + +35 + `GL_CHECK +( +d©a +); + +37 + `_gl_nÙify_ü—‹_nÙišfo +( + `_gl_¡r +( +GL_STR_ID_MAX_NO_CHARS_REACHED +)); + +38 + } +} + +45  + $__gl_ed™f›ld_¥aû_check_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +47 + `GL_CHECK +( +obj +); + +48 + `GL_CHECK +( +d©a +); + +49 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +51 + `GL_CHECK +( +ad +-> +’Œyšfo +. +dÚe_bŠ +); + +52 cÚ¡ * +’Œy_¡r + = +NULL +; + +55 +’Œy_¡r + = + `–m_’Œy_’Œy_g‘ +( +obj +); + +56 + `GL_CHECK +( +’Œy_¡r +); + +61 * +’Œy_utf8 + = + `–m_’Œy_m¬kup_to_utf8 +( +’Œy_¡r +); + +62 + `GL_CHECK +( +’Œy_utf8 +); + +69 + `g_¡r¡r +(( +gch¬ + *) +’Œy_utf8 +); + +70 + `GL_CHECK +( +’Œy_utf8 +); + +71 + `gl_sdbg +("NewƒÁry sŒšg w™houˆ¥aû: [%s]", +’Œy_utf8 +); + +73 +boÞ + +b_di§bËd + = +çl£ +; + +78 ià(! + `¡¾’ +( +’Œy_utf8 +)) { + +79 + `gl_dbg +("Entry string isƒmpty!"); + +80 +b_di§bËd + = +Œue +; + +82 (* +v®Ÿ‹_cb +)(* +d©a +, * +‹xt +); + +83 +v®Ÿ‹_cb + = + `evas_objeù_d©a_g‘ +( +obj +, "gl_entry_validate_cb_key"); + +84 + `gl_dbgW +("v®Ÿ‹_cb[%p]", +v®Ÿ‹_cb +); + +85 ià( +v®Ÿ‹_cb + && + `v®Ÿ‹_cb +( +d©a +, +’Œy_utf8 +) < 0) { + +86 +’Œy_utf8 +[ + `¡¾’ +(entry_utf8)-1] = '\0'; + +87 + `–m_’Œy_’Œy_£t +( +obj +, +’Œy_utf8 +); + +88 + `–m_’Œy_cursÜ_’d_£t +( +obj +); + +89 ià(! + `¡¾’ +( +’Œy_utf8 +)) + +90 +b_di§bËd + = +Œue +; + +94 + `gl_dbg +("En/Di§bË Dڐbu‰Ú[%d]", +b_di§bËd +); + +95 + `–m_objeù_di§bËd_£t +( +ad +-> +’Œyšfo +. +dÚe_bŠ +, +b_di§bËd +); + +98 + `GL_FREEIF +( +’Œy_utf8 +); + +99 + } +} + +104  + $__gl_ed™f›ld_’‹r_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +106 + `gl_dbg +(""); + +107 + `GL_CHECK +( +obj +); + +108 + `GL_CHECK +( +d©a +); + +110 + `_gl_ed™f›ld_hide_imf +( +d©a +); + +111 (* +´oûss_cb +)(* +d©a +, +boÞ + +b_’‹r +); + +112 +´oûss_cb + = + `evas_objeù_d©a_g‘ +( +obj +, "gl_entry_process_cb_key"); + +113 + `gl_dbgW +("´oûss_cb[%p]", +´oûss_cb +); + +114 ià( +´oûss_cb +) + +115 + `´oûss_cb +( +d©a +, +Œue +); + +117 + `gl_dbgW +("Invalid…rocess_cb"); + +118 + } +} + +120  + $__gl_ed™f›ld_£t_’Œy +(* +d©a +, +Evas_Objeù + * +Ïyout +, + +121 +Evas_Objeù + * +’Œy +, * +deçuÉ_Ïb– +) + +123 + `GL_CHECK_VAL +( +d©a +, -1); + +124 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +125 + `gl_dbg +(""); + +127 + `GL_FREEIF +( +ad +-> +’Œyšfo +. +lim™_fž‹r +); + +128 +Elm_EÁry_Fž‹r_Lim™_Size + * +lim™_fž‹r + = (Elm_EÁry_Fž‹r_Lim™_Siz*) + `ÿÎoc +(1, (Elm_Entry_Filter_Limit_Size)); + +129 + `GL_CHECK_VAL +( +lim™_fž‹r +, -1); + +130 +ad +-> +’Œyšfo +. +lim™_fž‹r + =†imit_filter; + +132 +lim™_fž‹r +-> +max_ch¬_couÁ + = +GL_ENTRY_STR_CHAR_MAX +; + +133 +lim™_fž‹r +-> +max_by‹_couÁ + = 0; + +135 + `–m_’Œy_m¬kup_fž‹r_­³nd +( +’Œy +, +–m_’Œy_fž‹r_lim™_size +, + +136 +lim™_fž‹r +); + +137 + `–m_’Œy_šput_·Ãl_»tuº_key_ty³_£t +( +’Œy +, + +138 +ELM_INPUT_PANEL_RETURN_KEY_TYPE_DONE +); + +139 + `–m_’Œy_autoÿp™®_ty³_£t +( +’Œy +, +ELM_AUTOCAPITAL_TYPE_SENTENCE +); + +141 ià( + `gl_£t_’Œy_‹xt +( +’Œy +, +deçuÉ_Ïb– +) != 0) { + +142 + `gl_dbgE +("gl_set_entry_text failed!"); + +145 + `–m_’Œy_cursÜ_’d_£t +( +’Œy +); + +146 + `evas_objeù_sm¬t_ÿÎback_add +( +’Œy +, "maxlength,reached", + +147 +__gl_ed™f›ld_maxËn_»ached_cb +, +ad +); + +148 + `evas_objeù_sm¬t_ÿÎback_add +( +’Œy +, "activated", + +149 +__gl_ed™f›ld_’‹r_cb +, +ad +); + +151 + `evas_objeù_sm¬t_ÿÎback_add +( +’Œy +, "changed", + +152 +__gl_ed™f›ld_¥aû_check_cb +, +ad +); + +153 + `evas_objeù_sm¬t_ÿÎback_add +( +’Œy +, "preedit,changed", + +154 +__gl_ed™f›ld_¥aû_check_cb +, +ad +); + +156 + } +} + +158 +Evas_Objeù + * + $_gl_ed™f›ld_ü—‹ +(* +d©a +, +Evas_Objeù + * +·»Á +, + +159 * +deçuÉ_Ïb– +) + +161 + `GL_CHECK_NULL +( +d©a +); + +162 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +163 + `GL_CHECK_NULL +( +·»Á +); + +164 +Evas_Objeù + * +Ïyout + = +NULL +; + +165 +Evas_Objeù + * +’Œy_Ïyout + = +NULL +; + +166 +Evas_Objeù + * +’Œy + = +NULL +; + +168 +Ïyout + = + `–m_Ïyout_add +( +·»Á +); + +169 + `GL_CHECK_NULL +( +Ïyout +); + +170 + `–m_Ïyout_theme_£t +( +Ïyout +, "layout", "application", "searchbar_base"); + +171 + `–m_objeù_sigÇl_em™ +( +Ïyout +, "elm,state,show,searchbar", "elm"); + +173 +’Œy_Ïyout + = + `–m_Ïyout_add +( +Ïyout +); + +174 ià( +’Œy_Ïyout + =ð +NULL +) { + +175 + `evas_objeù_d– +( +Ïyout +); + +176  +NULL +; + +179 + `–m_Ïyout_theme_£t +( +’Œy_Ïyout +, "layout", "searchbar", "default"); + +180 + `–m_objeù_·¹_cڋÁ_£t +( +Ïyout +, "£¬chb¬", +’Œy_Ïyout +); + +182 +’Œy + = + `–m_’Œy_add +( +’Œy_Ïyout +); + +183 ià( +’Œy + =ð +NULL +) { + +184 + `evas_objeù_d– +( +’Œy_Ïyout +); + +185  +NULL +; + +188 + `–m_’Œy_sšgË_lše_£t +( +’Œy +, +EINA_TRUE +); + +189 + `–m_’Œy_süÞÏbË_£t +( +’Œy +, +EINA_TRUE +); + +190 + `–m_objeù_·¹_cڋÁ_£t +( +’Œy_Ïyout +, "–m.sw®low.cڋÁ", +’Œy +); + +191 + `–m_’Œy_úp_mode_£t +( +’Œy +, +ELM_CNP_MODE_PLAINTEXT +); + +192 + `–m_’Œy_šput_·Ãl_Ïyout_£t +( +’Œy +, +ELM_INPUT_PANEL_LAYOUT_NORMAL +); + +194 +ad +-> +’Œyšfo +. +’Œy + =ƒntry; + +195 +ad +-> +’Œyšfo +. +cڋxt + = + `–m_’Œy_imf_cڋxt_g‘ +×d->’Œyšfo. +’Œy +); + +196 +ad +-> +’Œyšfo +. +ed™f›ld + = +’Œy_Ïyout +; + +198 + `__gl_ed™f›ld_£t_’Œy +( +ad +, +’Œy_Ïyout +, +’Œy +, +deçuÉ_Ïb– +); + +199 + `evas_objeù_show +( +’Œy_Ïyout +); + +201  +Ïyout +; + +202 + } +} + +205 +Evas_Objeù + * + $_gl_ed™f›ld_ü—‹_g’li¡ +(* +d©a +, +Evas_Objeù + * +·»Á +, + +206 +Elm_Objeù_I‹m + * +™ +, * +Ïb– +) + +208 + `GL_CHECK_NULL +( +Ïb– +); + +209 + `GL_CHECK_NULL +( +·»Á +); + +210 + `GL_CHECK_NULL +( +d©a +); + +211 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +212 + `gl_dbg +(""); + +213 +Evas_Objeù + * +’Œy + = +NULL +; + +215 + `_gl_ed™f›ld_de¡roy_imf +( +ad +); + +216 +’Œy + = + `–m_’Œy_add +( +·»Á +); + +217 ià( +’Œy + =ð +NULL +) { + +218 + `gl_dbgE +("elm_entry_add failed!"); + +219  +NULL +; + +222 + `–m_’Œy_sšgË_lše_£t +( +’Œy +, +EINA_TRUE +); + +223 + `–m_’Œy_süÞÏbË_£t +( +’Œy +, +EINA_TRUE +); + +224 + `GL_FREEIF +( +ad +-> +’Œyšfo +. +lim™_fž‹r +); + +225 +Elm_EÁry_Fž‹r_Lim™_Size + * +lim™_fž‹r + = (Elm_EÁry_Fž‹r_Lim™_Siz*) + `ÿÎoc +(1, (Elm_Entry_Filter_Limit_Size)); + +226 + `GL_CHECK_NULL +( +lim™_fž‹r +); + +227 +ad +-> +’Œyšfo +. +lim™_fž‹r + =†imit_filter; + +229 +lim™_fž‹r +-> +max_ch¬_couÁ + = +GL_ENTRY_STR_CHAR_MAX +; + +230 +lim™_fž‹r +-> +max_by‹_couÁ + = 0; + +231 + `–m_’Œy_úp_mode_£t +( +’Œy +, +ELM_CNP_MODE_PLAINTEXT +); + +232 + `–m_’Œy_šput_·Ãl_»tuº_key_ty³_£t +( +’Œy +, + +233 +ELM_INPUT_PANEL_RETURN_KEY_TYPE_DONE +); + +234 + `–m_’Œy_autoÿp™®_ty³_£t +( +’Œy +, +ELM_AUTOCAPITAL_TYPE_SENTENCE +); + +235 + `–m_’Œy_m¬kup_fž‹r_­³nd +( +’Œy +, +–m_’Œy_fž‹r_lim™_size +, + +236 +lim™_fž‹r +); + +237 + `evas_objeù_sm¬t_ÿÎback_add +( +’Œy +, "maxlength,reached", + +238 +__gl_ed™f›ld_maxËn_»ached_cb +, +ad +); + +239 + `evas_objeù_sm¬t_ÿÎback_add +( +’Œy +, "activated", + +240 +__gl_ed™f›ld_’‹r_cb +, +ad +); + +245 +ad +-> +’Œyšfo +. +’Œy + =ƒntry; + +246 +ad +-> +’Œyšfo +. +cڋxt + = + `–m_’Œy_imf_cڋxt_g‘ +( +’Œy +); + +248 + `_gl_ed™f›ld_show_imf +( +d©a +); + +249 + `gl_£t_’Œy_‹xt +( +’Œy +, +Ïb– +); + +250 + `–m_’Œy_cursÜ_’d_£t +( +’Œy +); + +252 ià(! +ad +-> +’Œyšfo +. +b_hide_toÞb¬ +) { + +253 +ad +-> +’Œyšfo +. +b_hide_toÞb¬ + = +Œue +; + +254 + `_gl_ui_£t_toÞb¬_¡©e +( +d©a +, +ad +-> +’Œyšfo +. +b_hide_toÞb¬ +); + +256  +’Œy +; + +257 + } +} + +259 +Evas_Objeù + * + $_gl_ed™f›ld_ü—‹_’Œy +(* +d©a +, +Evas_Objeù + * +Ïyout +, * +‹xt +) + +261 + `GL_CHECK_NULL +( +d©a +); + +262 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +263  +Elm_EÁry_Fž‹r_Lim™_Size + +lim™_fž‹r_d©a +; + +265 +Evas_Objeù + * +’Œy + = + `–m_’Œy_add +( +Ïyout +); + +266 + `GL_CHECK_NULL +( +’Œy +); + +268 + `–m_’Œy_sšgË_lše_£t +( +’Œy +, +EINA_TRUE +); + +269 + `–m_’Œy_süÞÏbË_£t +( +’Œy +, +EINA_TRUE +); + +271 +lim™_fž‹r_d©a +. +max_ch¬_couÁ + = +GL_ENTRY_STR_CHAR_MAX +; + +272 ià( +‹xt +) + +273 + `–m_’Œy_’Œy_£t +( +’Œy +, +‹xt +); + +274 + `–m_’Œy_cursÜ_’d_£t +( +’Œy +); + +276 + `–m_’Œy_m¬kup_fž‹r_­³nd +( +’Œy +, +–m_’Œy_fž‹r_lim™_size +, + +277 & +lim™_fž‹r_d©a +); + +279 + `evas_objeù_sm¬t_ÿÎback_add +( +’Œy +, "maxlength,reached", + +280 +__gl_ed™f›ld_maxËn_»ached_cb +, +d©a +); + +281 + `evas_objeù_sm¬t_ÿÎback_add +( +’Œy +, "changed", + +282 +__gl_ed™f›ld_¥aû_check_cb +, +d©a +); + +283 + `evas_objeù_sm¬t_ÿÎback_add +( +’Œy +, "preedit,changed", + +284 +__gl_ed™f›ld_¥aû_check_cb +, +d©a +); + +285 + `evas_objeù_sm¬t_ÿÎback_add +( +’Œy +, "activated", + +286 +__gl_ed™f›ld_’‹r_cb +, +d©a +); + +287 + `–m_’Œy_úp_mode_£t +( +’Œy +, +ELM_CNP_MODE_PLAINTEXT +); + +288 + `–m_’Œy_šput_·Ãl_»tuº_key_ty³_£t +( +’Œy +, + +289 +ELM_INPUT_PANEL_RETURN_KEY_TYPE_DONE +); + +290 + `–m_’Œy_autoÿp™®_ty³_£t +( +’Œy +, +ELM_AUTOCAPITAL_TYPE_SENTENCE +); + +291 +ad +-> +’Œyšfo +. +’Œy + =ƒntry; + +292 +ad +-> +’Œyšfo +. +cڋxt + = + `–m_’Œy_imf_cڋxt_g‘ +( +’Œy +); + +294  +’Œy +; + +295 + } +} + +298  + $_gl_ed™f›ld_hide_imf +(* +d©a +) + +300 + `GL_CHECK_VAL +( +d©a +, -1); + +301 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +302 + `gl_dbg +(""); + +305 ià( +ad +-> +’Œyšfo +. +’Œy +) + +306 + `–m_objeù_focus_£t +( +ad +-> +’Œyšfo +. +’Œy +, +EINA_FALSE +); + +309 + } +} + +312  + $_gl_ed™f›ld_show_imf +(* +d©a +) + +314 + `GL_CHECK_VAL +( +d©a +, -1); + +315 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +316 + `gl_dbg +(""); + +318 ià( +ad +-> +’Œyšfo +. +’Œy +) { + +319 + `evas_objeù_show +( +ad +-> +’Œyšfo +. +’Œy +); + +320 + `–m_objeù_focus_£t +( +ad +-> +’Œyšfo +. +’Œy +, +EINA_TRUE +); + +324 + } +} + +326  + $_gl_ed™f›ld_de¡roy_imf +(* +d©a +) + +328 + `GL_CHECK_VAL +( +d©a +, -1); + +329 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +331 ià( +ad +-> +’Œyšfo +. +’Œy + =ð +NULL +) + +334 + `_gl_ui_d–_cÚfÜm_cbs +( +ad +-> +maššfo +. +Çviäame +); + +336 + `evas_objeù_sm¬t_ÿÎback_d– +( +ad +-> +’Œyšfo +. +’Œy +, + +338 +__gl_ed™f›ld_maxËn_»ached_cb +); + +339 + `evas_objeù_sm¬t_ÿÎback_d– +( +ad +-> +’Œyšfo +. +’Œy +, + +340 "aùiv©ed", +__gl_ed™f›ld_’‹r_cb +); + +342 + `evas_objeù_sm¬t_ÿÎback_d– +( +ad +-> +’Œyšfo +. +’Œy +, + +344 +__gl_ed™f›ld_¥aû_check_cb +); + +345 + `evas_objeù_sm¬t_ÿÎback_d– +( +ad +-> +’Œyšfo +. +’Œy +, + +347 +__gl_ed™f›ld_¥aû_check_cb +); + +348 +ad +-> +’Œyšfo +. +mode + = +GL_ENTRY_NONE +; + +350 + `GL_IF_DEL_OBJ +( +ad +-> +’Œyšfo +. +pÝup +); + +351 + `GL_IF_DEL_OBJ +( +ad +-> +’Œyšfo +. +ed™f›ld +); + +352 + `GL_FREEIF +( +ad +-> +’Œyšfo +. +lim™_fž‹r +); + +353 +ad +-> +’Œyšfo +. +’Œy + = +NULL +; + +354 +ad +-> +’Œyšfo +. +cڋxt + = +NULL +; + +355 +ad +-> +’Œyšfo +. +dÚe_bŠ + = +NULL +; + +356 +ad +-> +’Œyšfo +. +nf_™ + = +NULL +; + +357 +ad +-> +’Œyšfo +. +Ý_cb + = +NULL +; + +358 + `GL_FREEIF +( +ad +-> +®bumšfo +. +‹mp_®bum_Çme +); + +360 + } +} + +362  + $_gl_ed™f›ld_chªge_Çvi_t™Ë +(* +d©a +,  +r +) + +364 + `GL_CHECK_VAL +( +d©a +, -1); + +365 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +366 ià( +ad +-> +’Œyšfo +. +nf_™ +) { + +367 + `gl_dbg +("entryinfo.nf_it created"); + +368 ià(! +ad +-> +’Œyšfo +. +b_hide_s +) { + +369 + `gl_dbg +("SIP is hided,‚o‚eed hideheitle"); + +373 + `gl_dbg +("entryinfo.nf_it‚ot created"); + +376 + `GL_CHECK_VAL +( +ad +-> +maššfo +. +Çviäame +, -1); + +377 +Elm_Objeù_I‹m + * +Çvi_™ + = + `–m_Çviäame_tÝ_™em_g‘ +( +ad +-> +maššfo +. +Çviäame +); + +378 + `GL_CHECK_VAL +( +Çvi_™ +, -1); + +379  +r +) { + +380  +APP_DEVICE_ORIENTATION_0 +: + +381  +APP_DEVICE_ORIENTATION_180 +: + +382 + `–m_Çviäame_™em_t™Ë_’abËd_£t +( +Çvi_™ +, +EINA_TRUE +, +EINA_FALSE +); + +384  +APP_DEVICE_ORIENTATION_90 +: + +385  +APP_DEVICE_ORIENTATION_270 +: + +386 + `–m_Çviäame_™em_t™Ë_’abËd_£t +( +Çvi_™ +, +EINA_FALSE +, EINA_FALSE); + +392 + } +} + +394 +Evas_Objeù + * + $_gl_ed™f›ld_g‘_’Œy +(* +d©a +) + +396 + `GL_CHECK_NULL +( +d©a +); + +397 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +398  +ad +-> +’Œyšfo +. +’Œy +; + +399 + } +} + + @src/widget/gl-gesture.c + +18  + ~"gl-ge¡u».h +" + +19  + ~"gl-utž.h +" + +20  + ~"gl-debug.h +" + +21  + ~"gl-thumbs.h +" + +22  + ~"gl-tim–še.h +" + +24  + #GL_PINCH_TOUCH_HOLD_RANGE + 80 + + ) + +25  + #GL_PINCH_TOUCH_FACTOR + 4 + + ) + +26  + #GL_PINCH_HOLD_TIME_DELAY + 0.35f + + ) + +27  + #GL_GESTURE_KEY_DATA + "ge¡u»_d©a" + + ) + +29  +_gl_ge¡u»_t + + tgl_ge¡u»_s +; + +30  +_gl_pšch_ev’t_t + + tgl_pšch_ev’t_s +; + +31  +_gl_pšch_¶ª_t + + tgl_pšch_¶ª_e +; + +33  + s_gl_ge¡u»_t + { + +34 +gl_­pd©a + * + mad +; + +35 +Evas_Objeù + * + m·»Á +; + +36 +Evas_Objeù + * + mge¡u» +; + +37 +gl_ge¡u»_cb + + mzoom_š_cb +; + +38 +gl_ge¡u»_cb + + mzoom_out_cb +; + +39 * + mzoom_š_d©a +; + +40 * + mzoom_out_d©a +; + +42  + mdis_Þd +; + +43  + mpšch_dis_Þd +; + +44 +Eša_Li¡ + * + ms_ev’t_–i¡ +; + +45 +EcÜe_Job + * + mpšch_job +; + +46  + mÃxt_¶ª +; + +49  + s_gl_pšch_ev’t_t + { + +50  + mdeviû +; + +52  + sgl_´ev + { + +53 +Evas_CoÜd + + mx +; + +54 +Evas_CoÜd + + my +; + +55 } + m´ev +; + +57 +Evas_CoÜd + + mx +; + +58 +Evas_CoÜd + + my +; + +59 +Evas_CoÜd + + mw +; + +60 +Evas_CoÜd + + mh +; + +61 +Evas_Objeù + * + mobjeù +; + +62 +EcÜe_Tim” + * + mhÞd_tim” +; + +63  + mts +; + +64  + mv +; + +65  + mpšch_dis +; + +66 +Evas_Objeù + * + mpšch_obj +; + +67 +Evas_Objeù + * + m‹¡ +; + +70 + e_gl_pšch_¶ª_t + { + +71 + mGL_PINCH_PLAN_NONE +, + +72 + mGL_PINCH_PLAN_OUT +, + +73 + mGL_PINCH_PLAN_IN +, + +74 + mGL_PINCH_PLAN_MAX + + +77  +gl_pšch_ev’t_s + * + $__gl_ge¡u»_ü—‹_ev’t_obj +(* +d©a +, + +78 +Evas_Objeù + * +objeù +, + +79  +deviû +) + +81 + `GL_CHECK_NULL +( +d©a +); + +82 +gl_ge¡u»_s + * +ge¡u»_d + = (gl_ge¡u»_ *) +d©a +; + +83 +gl_pšch_ev’t_s + * +ev + = +NULL +; + +86 +ev + = + `ÿÎoc +(1, ( +gl_pšch_ev’t_s +)); + +87 ià( +ev + =ð +NULL +) { + +88 + `gl_dbg +("Cannot‡llocateƒvent_t"); + +89  +NULL +; + +92 +ev +-> +objeù + = object; + +93 +ev +-> +deviû + = device; + +94 + `evas_objeù_geom‘ry_g‘ +( +objeù +, & +ev +-> +x +, &ev-> +y +, &ev-> +w +, &ev-> +h +); + +96 +ge¡u»_d +-> +s_ev’t_–i¡ + = + `eša_li¡_­³nd +(gesture_d->s_event_elist, + +97 +ev +); + +98  +ev +; + +99 + } +} + +101  + $__gl_ge¡u»_de¡roy_ev’t_obj +(* +d©a +, +gl_pšch_ev’t_s + * +ev +) + +103 + `GL_CHECK_VAL +( +ev +, -1); + +104 + `GL_CHECK_VAL +( +d©a +, -1); + +105 +gl_ge¡u»_s + * +ge¡u»_d + = (gl_ge¡u»_ *) +d©a +; + +108 +ev +-> +pšch_obj + = +NULL +; + +109 +ev +-> +pšch_dis + = 0; + +110 +ge¡u»_d +-> +s_ev’t_–i¡ + = + `eša_li¡_»move +(gesture_d->s_event_elist, + +111 +ev +); + +112 + `GL_IF_DEL_TIMER +( +ev +-> +hÞd_tim” +); + +115 + `GL_FREE +( +ev +); + +117 + } +} + +119  +gl_pšch_ev’t_s + * + $__gl_ge¡u»_g‘_ev’t_obj +(* +d©a +,  +deviû +) + +121 + `GL_CHECK_NULL +( +d©a +); + +122 +gl_ge¡u»_s + * +ge¡u»_d + = (gl_ge¡u»_ *) +d©a +; + +123 +Eša_Li¡ + * +l + = +NULL +; + +124 +gl_pšch_ev’t_s + * +ev + = +NULL +; + +126 + `EINA_LIST_FOREACH +( +ge¡u»_d +-> +s_ev’t_–i¡ +, +l +, +ev +) { + +127 ià( +ev + &&ƒv-> +deviû + == device) + +129 +ev + = +NULL +; + +132  +ev +; + +133 + } +} + +135  + $__gl_ge¡u»_g‘_di¡ªû +( +Evas_CoÜd + +x1 +, Evas_CoÜd +y1 +, Evas_CoÜd +x2 +, + +136 +Evas_CoÜd + +y2 +) + +138  +dis +, +dx +, +dy +; + +140 +dx + = +x1 + - +x2 +; + +141 +dy + = +y1 + - +y2 +; + +143 +dis + = () + `sq¹ +( +dx + * dx + +dy + * dy); + +144  +dis +; + +145 + } +} + +147  +Eša_BoÞ + + $__gl_ge¡u»_hÞd_tim”_cb +(* +d©a +) + +149 +gl_pšch_ev’t_s + * +ev0 + = (gl_pšch_ev’t_ *) +d©a +; + +150 + `GL_IF_DEL_TIMER +( +ev0 +-> +hÞd_tim” +); + +151  +ECORE_CALLBACK_CANCEL +; + +152 + } +} + +154  + $__gl_ge¡u»_g‘_muÉi_deviû +(* +d©a +) + +156 + `GL_CHECK_VAL +( +d©a +, -1); + +157 +gl_ge¡u»_s + * +ge¡u»_d + = (gl_ge¡u»_ *) +d©a +; + +158 +Eša_Li¡ + * +l + = +NULL +; + +159 +gl_pšch_ev’t_s + * +ev + = +NULL +; + +161 + `EINA_LIST_FOREACH +( +ge¡u»_d +-> +s_ev’t_–i¡ +, +l +, +ev +) { + +162 ià( +ev + &&ƒv-> +deviû + != 0) + +163  +ev +-> +deviû +; + +166 + } +} + +168  + $__gl_ge¡u»_mou£_down_ev’t +(* +d©a +, +Evas + * +e +, + +169 +Evas_Objeù + * +evas_obj +, * +ei +) + +171 + `GL_CHECK +( +ei +); + +172 + `GL_CHECK +( +d©a +); + +173 +Evas_Ev’t_Mou£_Down + * +ev + = (Evas_Ev’t_Mou£_DowÀ*) +ei +; + +176 +gl_pšch_ev’t_s + * +ev0 +; + +177 +ev0 + = + `__gl_ge¡u»_g‘_ev’t_obj +( +d©a +, 0); + +178 ià( +ev0 +) + +181 +ev0 + = + `__gl_ge¡u»_ü—‹_ev’t_obj +( +d©a +, +evas_obj +, 0); + +182 ià(! +ev0 +) + +185 +ev0 +-> +hÞd_tim” + = +NULL +; + +186 +ev0 +-> +´ev +. +x + = +ev +-> +ouut +.x; + +187 +ev0 +-> +´ev +. +y + = +ev +-> +ouut +.y; + +188 + } +} + +190  + $__gl_ge¡u»_muÉi_down_ev’t +(* +d©a +, +Evas + * +evas +, + +191 +Evas_Objeù + * +obj +, * +ei +) + +193 + `GL_CHECK +( +ei +); + +194 + `GL_CHECK +( +d©a +); + +195 +gl_pšch_ev’t_s + * +ev +; + +196 +Evas_Ev’t_MuÉi_Down + * +down + = (Evas_Ev’t_MuÉi_DowÀ*) +ei +; + +199 +ev + = + `__gl_ge¡u»_g‘_ev’t_obj +( +d©a +, +down +-> +deviû +); + +200 ià( +ev +) + +203 +ev + = + `__gl_ge¡u»_ü—‹_ev’t_obj +( +d©a +, +obj +, +down +-> +deviû +); + +204 ià(! +ev +) + +207 +ev +-> +hÞd_tim” + = +NULL +; + +208 +ev +-> +´ev +. +x + = +down +-> +ouut +.x; + +209 +ev +-> +´ev +. +y + = +down +-> +ouut +.y; + +210 + } +} + +212  + $__gl_ge¡u»_mou£_up_ev’t +(* +d©a +, +Evas + * +e +, + +213 +Evas_Objeù + * +obj +, * +ei +) + +215 + `GL_CHECK +( +d©a +); + +216 +gl_ge¡u»_s + * +ge¡u»_d + = (gl_ge¡u»_ *) +d©a +; + +217  +mdeviû +; + +218 +gl_pšch_ev’t_s + * +ev0 +; + +219 +gl_pšch_ev’t_s + * +ev + = +NULL +; + +221 +Evas_Ev’t_Mou£_Up + * +p_ev + = (Evas_Ev’t_Mou£_U°*) +ei +; + +223 +ev0 + = + `__gl_ge¡u»_g‘_ev’t_obj +( +d©a +, 0); + +224 ià( +ev0 + =ð +NULL +) { + +225 + `gl_dbg +("Cannot getƒvent0"); + +229 +mdeviû + = + `__gl_ge¡u»_g‘_muÉi_deviû +( +d©a +); + +231 ià( +mdeviû + == 0) { + +235 +ev + = + `__gl_ge¡u»_g‘_ev’t_obj +( +d©a +, +mdeviû +); + +236 ià( +ev + =ð +NULL +) { + +237 + `gl_dbg +("Cannot getƒvent multi"); + +241 + `GL_IF_DEL_TIMER +( +ev +-> +hÞd_tim” +); + +242 +ev +-> +hÞd_tim” + = + `ecÜe_tim”_add +( +GL_PINCH_HOLD_TIME_DELAY +, + +243 +__gl_ge¡u»_hÞd_tim”_cb +, +ev +); + +246 ià(! +ge¡u»_d +-> +ad +-> +gridšfo +. +muÉi_touch +) { + +247 + `_gl_thumbs_chªge_v›w +( +ge¡u»_d +-> +ad +, +ev0 +-> +´ev +. +x +, +p_ev +-> +ouut +.x); + +249 +ge¡u»_d +-> +ad +-> +gridšfo +. +muÉi_touch + = +çl£ +; + +251 + `__gl_ge¡u»_de¡roy_ev’t_obj +( +d©a +, +ev0 +); + +252 + } +} + +254  + $__gl_ge¡u»_muÉi_up_ev’t +(* +d©a +, +Evas + * +evas +, + +255 +Evas_Objeù + * +obj +, * +ei +) + +257 + `GL_CHECK +( +ei +); + +258 + `GL_CHECK +( +d©a +); + +259 +gl_ge¡u»_s + * +ge¡u»_d + = (gl_ge¡u»_ *) +d©a +; + +260 +Evas_Ev’t_MuÉi_Up + * +up + = (Evas_Ev’t_MuÉi_U°*) +ei +; + +261 +gl_pšch_ev’t_s + * +ev0 + = +NULL +; + +262 +gl_pšch_ev’t_s + * +ev + = +NULL +; + +265 +ev + = + `__gl_ge¡u»_g‘_ev’t_obj +( +d©a +, +up +-> +deviû +); + +266 ià( +ev + =ð +NULL +) { + +267 + `gl_dbg +("Cannot get device multi"); + +271 +ge¡u»_d +-> +dis_Þd + = 0; + +272 +ge¡u»_d +-> +pšch_dis_Þd + = 0; + +276 +ev0 + = + `__gl_ge¡u»_g‘_ev’t_obj +( +d©a +, 0); + +277 ià( +ev0 +) { + +280 + `GL_IF_DEL_TIMER +( +ev0 +-> +hÞd_tim” +); + +281 +ev0 +-> +hÞd_tim” + = + `ecÜe_tim”_add +( +GL_PINCH_HOLD_TIME_DELAY +, + +282 +__gl_ge¡u»_hÞd_tim”_cb +, + +283 +ev0 +); + +287 + `__gl_ge¡u»_de¡roy_ev’t_obj +( +d©a +, +ev +); + +288 + } +} + +290  + $__gl_ge¡u»_mou£_move_ev’t +(* +d©a +, +Evas + * +e +, + +291 +Evas_Objeù + * +obj +, * +ei +) + +293 + `GL_CHECK +( +ei +); + +294 + `GL_CHECK +( +d©a +); + +296 +gl_pšch_ev’t_s + * +ev0 +; + +299 +ev0 + = + `__gl_ge¡u»_g‘_ev’t_obj +( +d©a +, 0); + +300 ià( +ev0 + =ð +NULL +) { + +305 + `__gl_ge¡u»_g‘_muÉi_deviû +( +d©a +); + +306 + } +} + +308  + $__gl_ge¡u»_zoom_out_job_cb +(* +d©a +) + +310 + `GL_CHECK +( +d©a +); + +311 +gl_ge¡u»_s + * +ge¡u»_d + = (gl_ge¡u»_ *) +d©a +; + +312 ià( +ge¡u»_d +-> +Ãxt_¶ª + !ð +GL_PINCH_PLAN_OUT +) { + +313 + `gl_dbgW +("S‹ i wrÚg[¶ª:%d]!", +ge¡u»_d +-> +Ãxt_¶ª +); + +314 + `GL_IF_DEL_JOB +( +ge¡u»_d +-> +pšch_job +); + +317 + `gl_dbg +("Pinch zoom out"); + +319 ià( +ge¡u»_d +-> +zoom_out_cb +) + +320 +ge¡u»_d +-> + `zoom_out_cb +(ge¡u»_d-> +ge¡u» +, + +321 +ge¡u»_d +-> +zoom_out_d©a +); + +323 + `GL_IF_DEL_JOB +( +ge¡u»_d +-> +pšch_job +); + +324 + } +} + +326  + $__gl_ge¡u»_zoom_š_job_cb +(* +d©a +) + +328 + `GL_CHECK +( +d©a +); + +329 +gl_ge¡u»_s + * +ge¡u»_d + = (gl_ge¡u»_ *) +d©a +; + +330 ià( +ge¡u»_d +-> +Ãxt_¶ª + !ð +GL_PINCH_PLAN_IN +) { + +331 + `gl_dbgW +("S‹ i wrÚg[¶ª:%d]!", +ge¡u»_d +-> +Ãxt_¶ª +); + +332 + `GL_IF_DEL_JOB +( +ge¡u»_d +-> +pšch_job +); + +335 + `gl_dbg +("Pinch zoom in"); + +337 ià( +ge¡u»_d +-> +zoom_š_cb +) + +338 +ge¡u»_d +-> + `zoom_š_cb +(ge¡u»_d-> +ge¡u» +, + +339 +ge¡u»_d +-> +zoom_š_d©a +); + +341 + `GL_IF_DEL_JOB +( +ge¡u»_d +-> +pšch_job +); + +342 + } +} + +344  + $__gl_ge¡u»_muÉi_move_ev’t +(* +d©a +, +Evas + * +evas +, + +345 +Evas_Objeù + * +obj +, * +ei +) + +347 + `GL_CHECK +( +d©a +); + +348 +gl_ge¡u»_s + * +ge¡u»_d + = (gl_ge¡u»_ *) +d©a +; + +349 +Evas_Ev’t_MuÉi_Move + * +move + = (Evas_Ev’t_MuÉi_Mov*) +ei +; + +350  +dis_Ãw +; + +351 +gl_pšch_ev’t_s + * +ev0 +; + +352 +gl_pšch_ev’t_s + * +ev +; + +355 +ev + = + `__gl_ge¡u»_g‘_ev’t_obj +( +d©a +, +move +-> +deviû +); + +356 ià( +ev + =ð +NULL +) { + +357 + `gl_dbg +("Cannot get multi device"); + +360 +ge¡u»_d +-> +ad +-> +gridšfo +. +muÉi_touch + = +Œue +; + +362 ià( + `_gl_is_tim–še_ed™_mode +( +ge¡u»_d +-> +ad +)) { + +363 + `gl_dbg +("Prevent multi move inimelineƒdit mode"); + +367 ià( + `gl_g‘_v›w_mode +( +ge¡u»_d +-> +ad +è=ð +GL_VIEW_THUMBS + + +368 || + `gl_g‘_v›w_mode +( +ge¡u»_d +-> +ad +è=ð +GL_VIEW_THUMBS_EDIT + + +369 || + `gl_g‘_v›w_mode +( +ge¡u»_d +-> +ad +è=ð +GL_VIEW_THUMBS_SELECT +) { + +370 ià( + `gl_g‘_v›w_mode +( +ge¡u»_d +-> +ad +è=ð +GL_VIEW_THUMBS_EDIT +) { + +371 + `gl_dbg +("Prevent multi move inhumbsƒdit view"); + +374 ià( +ge¡u»_d +-> +ad +-> +gridšfo +. +¥l™_v›w_mode + =ð +SPLIT_VIEW +) { + +375 + `gl_dbg +("Prevent multi move in split view"); + +378 ià( + `gl_g‘_v›w_mode +( +ge¡u»_d +-> +ad +è=ð +GL_VIEW_THUMBS_SELECT +) { + +379 + `gl_dbg +("Prevent multi move inhumbs select view"); + +383 +ev +-> +´ev +. +x + = +move +-> +cur +. +ouut +.x; + +384 +ev +-> +´ev +. +y + = +move +-> +cur +. +ouut +.y; + +386 +ev0 + = + `__gl_ge¡u»_g‘_ev’t_obj +( +d©a +, 0); + +387 ià( +ev0 + =ð +NULL +) { + +388 + `gl_dbg +("Cannot get device0"); + +392 +dis_Ãw + = + `__gl_ge¡u»_g‘_di¡ªû +( +ev0 +-> +´ev +. +x +,ƒv0->´ev. +y +, + +393 +ev +-> +´ev +. +x +,ƒv->´ev. +y +); + +395  +dis_Þd + = +ge¡u»_d +->dis_old; + +396 ià( +dis_Þd + != 0) { + +397 ià( +dis_Þd + - +dis_Ãw + > 0 && + +398 +ev +-> +pšch_dis + > +GL_PINCH_TOUCH_HOLD_RANGE +) { + +399 ià( +ge¡u»_d +-> +pšch_dis_Þd + && + +400 +ev +-> +pšch_dis + < ( +ge¡u»_d +-> +pšch_dis_Þd + * +GL_PINCH_TOUCH_FACTOR +)) { + +401 +ev +-> +pšch_dis + +ð( +dis_Þd + - +dis_Ãw +); + +402 +ge¡u»_d +-> +dis_Þd + = +dis_Ãw +; + +406 +ge¡u»_d +-> +Ãxt_¶ª + = +GL_PINCH_PLAN_OUT +; + +407 ià(! +ge¡u»_d +-> +pšch_job +) { + +408 + `gl_dbgW +("Add job…inch zoom out"); + +409 +ge¡u»_d +-> +pšch_job + = + `ecÜe_job_add +( +__gl_ge¡u»_zoom_out_job_cb +, + +410 +d©a +); + +412 + `gl_dbgW +("Added job…inch zoom out"); + +415 +ge¡u»_d +-> +pšch_dis_Þd + = +ev +-> +pšch_dis +; + +416 +ev +-> +pšch_dis + = 0; + +417 } ià( +dis_Þd + - +dis_Ãw + < 0 && + +418 +ev +-> +pšch_dis + < - +GL_PINCH_TOUCH_HOLD_RANGE +) { + +419 ià( +ge¡u»_d +-> +pšch_dis_Þd + && + +420 +ev +-> +pšch_dis + > ( +ge¡u»_d +-> +pšch_dis_Þd + * +GL_PINCH_TOUCH_FACTOR +)) { + +421 +ev +-> +pšch_dis + +ð( +dis_Þd + - +dis_Ãw +); + +422 +ge¡u»_d +-> +dis_Þd + = +dis_Ãw +; + +426 +ge¡u»_d +-> +Ãxt_¶ª + = +GL_PINCH_PLAN_IN +; + +427 ià(! +ge¡u»_d +-> +pšch_job +) { + +428 + `gl_dbgW +("Add job…inch zoom in"); + +429 +ge¡u»_d +-> +pšch_job + = + `ecÜe_job_add +( +__gl_ge¡u»_zoom_š_job_cb +, + +430 +d©a +); + +432 + `gl_dbgW +("Added job…inch zoom in"); + +435 +ge¡u»_d +-> +pšch_dis_Þd + = +ev +-> +pšch_dis +; + +436 +ev +-> +pšch_dis + = 0; + +438 +ev +-> +pšch_dis + +ð( +dis_Þd + - +dis_Ãw +); + +440 + `gl_dbg +("dis_Ãw: %d, dis_Þd: %d,…šch_di %d", +dis_Ãw +, +dis_Þd +, + +441 +ev +-> +pšch_dis +); + +444 +ge¡u»_d +-> +dis_Þd + = +dis_Ãw +; + +445 + } +} + +447  + $__gl_ge¡u»_d–_cb +(* +d©a +, +Evas + * +e +, +Evas_Objeù + * +obj +, + +448 * +ei +) + +450 + `gl_dbg +("Delete gesture ---"); + +451 ià( +d©a +) { + +452 +gl_ge¡u»_s + * +ge¡u»_d + = (gl_ge¡u»_ *) +d©a +; + +453 + `GL_IF_DEL_JOB +( +ge¡u»_d +-> +pšch_job +); + +454 + `evas_objeù_d©a_d– +( +ge¡u»_d +-> +ge¡u» +, +GL_GESTURE_KEY_DATA +); + +455 + `GL_FREE +( +ge¡u»_d +); + +457 + `gl_dbg +("Delete gesture +++"); + +458 + } +} + +460 +Evas_Objeù + * + $_gl_ge¡u»_add +(* +d©a +, +Evas_Objeù + * +·»Á +) + +462 + `GL_CHECK_NULL +( +·»Á +); + +463 + `GL_CHECK_NULL +( +d©a +); + +464 +Evas_Objeù + * +ge¡u» + = +NULL +; + +466 +ge¡u» + = + `evas_objeù_»ùªgË_add +( + `evas_objeù_evas_g‘ +( +·»Á +)); + +467 + `GL_CHECK_NULL +( +ge¡u» +); + +468 + `evas_objeù_cÞÜ_£t +( +ge¡u» +, 0, 0, 0, 0); + +470 +gl_ge¡u»_s + * +ge¡u»_d + = (gl_ge¡u»_ *) + `ÿÎoc +(1, (gl_gesture_s)); + +471 ià( +ge¡u»_d + =ð +NULL +) { + +472 + `evas_objeù_d– +( +ge¡u» +); + +473  +NULL +; + +476 +ge¡u»_d +-> +ad + = +d©a +; + +477 +ge¡u»_d +-> +·»Á + =…arent; + +478 +ge¡u»_d +-> +ge¡u» + = gesture; + +480 + `evas_objeù_ev’t_ÿÎback_add +( +ge¡u» +, +EVAS_CALLBACK_MOUSE_DOWN +, + +481 +__gl_ge¡u»_mou£_down_ev’t +, + +482 +ge¡u»_d +); + +483 + `evas_objeù_ev’t_ÿÎback_add +( +ge¡u» +, +EVAS_CALLBACK_MOUSE_UP +, + +484 +__gl_ge¡u»_mou£_up_ev’t +, +ge¡u»_d +); + +485 + `evas_objeù_ev’t_ÿÎback_add +( +ge¡u» +, +EVAS_CALLBACK_MOUSE_MOVE +, + +486 +__gl_ge¡u»_mou£_move_ev’t +, + +487 +ge¡u»_d +); + +489 + `evas_objeù_ev’t_ÿÎback_add +( +ge¡u» +, +EVAS_CALLBACK_MULTI_DOWN +, + +490 +__gl_ge¡u»_muÉi_down_ev’t +, + +491 +ge¡u»_d +); + +492 + `evas_objeù_ev’t_ÿÎback_add +( +ge¡u» +, +EVAS_CALLBACK_MULTI_UP +, + +493 +__gl_ge¡u»_muÉi_up_ev’t +, +ge¡u»_d +); + +494 + `evas_objeù_ev’t_ÿÎback_add +( +ge¡u» +, +EVAS_CALLBACK_MULTI_MOVE +, + +495 +__gl_ge¡u»_muÉi_move_ev’t +, + +496 +ge¡u»_d +); + +498 + `evas_objeù_d©a_£t +( +ge¡u» +, +GL_GESTURE_KEY_DATA +, (*) +ge¡u»_d +); + +499 + `evas_objeù_ev’t_ÿÎback_add +( +ge¡u» +, +EVAS_CALLBACK_DEL +, + +500 +__gl_ge¡u»_d–_cb +, +ge¡u»_d +); + +501  +ge¡u» +; + +502 + } +} + +504  + $_gl_ge¡u»_£t_zoom_š_cb +( +Evas_Objeù + * +ge¡u» +, +gl_ge¡u»_cb + +cb +, + +505 * +d©a +) + +507 + `GL_CHECK_VAL +( +cb +, -1); + +508 + `GL_CHECK_VAL +( +ge¡u» +, -1); + +509 +gl_ge¡u»_s + * +ge¡u»_d + = +NULL +; + +511 +ge¡u»_d + = ( +gl_ge¡u»_s + *) + `evas_objeù_d©a_g‘ +( +ge¡u» +, + +512 +GL_GESTURE_KEY_DATA +); + +513 + `GL_CHECK_VAL +( +ge¡u»_d +, -1); + +514 +ge¡u»_d +-> +zoom_š_cb + = +cb +; + +515 +ge¡u»_d +-> +zoom_š_d©a + = +d©a +; + +517 + } +} + +519  + $_gl_ge¡u»_£t_zoom_out_cb +( +Evas_Objeù + * +ge¡u» +, +gl_ge¡u»_cb + +cb +, + +520 * +d©a +) + +522 + `GL_CHECK_VAL +( +cb +, -1); + +523 + `GL_CHECK_VAL +( +ge¡u» +, -1); + +524 +gl_ge¡u»_s + * +ge¡u»_d + = +NULL +; + +526 +ge¡u»_d + = ( +gl_ge¡u»_s + *) + `evas_objeù_d©a_g‘ +( +ge¡u» +, + +527 +GL_GESTURE_KEY_DATA +); + +528 + `GL_CHECK_VAL +( +ge¡u»_d +, -1); + +529 +ge¡u»_d +-> +zoom_out_cb + = +cb +; + +530 +ge¡u»_d +-> +zoom_out_d©a + = +d©a +; + +532 + } +} + +534  + $_gl_ge¡u»_»£t_æags +( +Evas_Objeù + * +ge¡u» +) + +536 + `GL_CHECK_VAL +( +ge¡u» +, -1); + +537 +gl_ge¡u»_s + * +ge¡u»_d + = +NULL +; + +539 +ge¡u»_d + = ( +gl_ge¡u»_s + *) + `evas_objeù_d©a_g‘ +( +ge¡u» +, + +540 +GL_GESTURE_KEY_DATA +); + +541 + `GL_CHECK_VAL +( +ge¡u»_d +, -1); + +542 + `GL_IF_DEL_JOB +( +ge¡u»_d +-> +pšch_job +); + +543 +ge¡u»_d +-> +Ãxt_¶ª + = +GL_PINCH_PLAN_NONE +; + +545 + } +} + +547 +Evas_Objeù + * + $_gl_ge¡u»_g‘_·»Á +( +Evas_Objeù + * +ge¡u» +) + +549 + `GL_CHECK_NULL +( +ge¡u» +); + +550 +gl_ge¡u»_s + * +ge¡u»_d + = +NULL +; + +552 +ge¡u»_d + = ( +gl_ge¡u»_s + *) + `evas_objeù_d©a_g‘ +( +ge¡u» +, + +553 +GL_GESTURE_KEY_DATA +); + +554 + `GL_CHECK_NULL +( +ge¡u»_d +); + +555  +ge¡u»_d +-> +·»Á +; + +556 + } +} + + @src/widget/gl-nocontents.c + +18  + ~"gl-nocڋÁs.h +" + +19  + ~"gl-ui-utž.h +" + +20  + ~"gl-utž.h +" + +21  + ~"gl-icÚs.h +" + +22  + ~"gl-¡ršgs.h +" + +23  + ~"gl-debug.h +" + +28 +Evas_Objeù + * + $_gl_nocڋÁs_ü—‹ +( +Evas_Objeù + * +·»Á +) + +30 + `GL_CHECK_NULL +( +·»Á +); + +31 +Evas_Objeù + * +noc_Ïy + = +NULL +; + +33 +noc_Ïy + = + `–m_Ïyout_add +( +·»Á +); + +34 + `GL_CHECK_NULL +( +noc_Ïy +); + +35 + `–m_Ïyout_theme_£t +( +noc_Ïy +, "layout", "nocontents", "text"); + +36 +Evas_Objeù + * +icÚ + = + `–m_image_add +( +noc_Ïy +); + +37 + `GL_ICON_SET_FILE +( +icÚ +, +GL_ICON_NOCONGENTS_VIDEOS +); + +38 + `–m_objeù_·¹_cڋÁ_£t +( +noc_Ïy +, "nocڋÁs.image", +icÚ +); + +40 + `_gl_ui_£t_Œª¦©e_·¹_¡r +( +noc_Ïy +, "–m.‹xt", + `_gl_¡r +( +GL_STR_ID_NO_ITEMS +)); + +41 + `_gl_ui_£t_Œª¦©e_·¹_¡r +( +noc_Ïy +, "–m.h–p.‹xt", + `_gl_¡r +( +GL_STR_ID_NO_ITEMS_SECOND +)); + +42 + `–m_Ïyout_sigÇl_em™ +( +noc_Ïy +, "text,disabled", ""); + +43 + `–m_Ïyout_sigÇl_em™ +( +noc_Ïy +, "align.center", "elm"); + +44  +noc_Ïy +; + +45 + } +} + +50 +boÞ + + $_gl_nocڋÁs_upd©e_Ïb– +( +Evas_Objeù + * +noc +, cÚ¡ * +Ãw_Ïb– +) + +52 + `GL_CHECK_VAL +( +Ãw_Ïb– +, -1); + +53 + `GL_CHECK_VAL +( +noc +, -1); + +54 cÚ¡ * +Ïb– + = +NULL +; + +56 +Ïb– + = + `–m_objeù_·¹_‹xt_g‘ +( +noc +, +GL_NOCONTENTS_TEXT +); + +57 + `GL_CHECK_VAL +( +Ïb– +, -1); + +58 + `gl_dbg +("NocڋÁ Ïb–: %s", +Ïb– +); + +60 ià( + `g_¡rcmp0 +( +Ïb– +, +GL_STR_NO_ALBUMS +)) { + +61 + `gl_dbgW +("Update‚ocontents†abel!"); + +62 + `–m_objeù_·¹_‹xt_£t +( +noc +, +GL_NOCONTENTS_TEXT +, +Ãw_Ïb– +); + +63  +Œue +; + +65  +çl£ +; + +66 + } +} + + @src/widget/gl-notify.c + +17  + ~ + +18  + ~ + +19  + ~ + +20  + ~ + +21  + ~"gl-nÙify.h +" + +22  + ~"gl-thumbs.h +" + +23  + ~"gl-thumbs-£l.h +" + +24  + ~"gl-pšchzoom.h +" + +25  + ~"gl-cڌÞb¬.h +" + +26  + ~"gl-th»ad-utž.h +" + +27  + ~"gl-ui-utž.h +" + +28  + ~"gl-utž.h +" + +29  + ~"gl-¡ršgs.h +" + +30  + ~"gl-debug.h +" + +31  + ~"gl-ext-exec.h +" + +33  +_gl_nÙi_t + + tgl_nÙi_s +; + +34  + s_gl_nÙi_t + { + +35 +nÙifiÿtiÚ_h + + mhªdË +; + +36  + m´iv_id +; + +39  + $_gl_nÙify_ü—‹_nÙišfo +(cÚ¡ * +‹xt +) + +41 + `GL_CHECK_VAL +( +‹xt +, -1); + +42  +»t + = + `nÙifiÿtiÚ_¡©us_mes§ge_po¡ +( +‹xt +); + +43 ià( +»t + != 0) + +44 + `gl_sdbgE +("¡©us_mes§ge_po¡()... [0x%x]!", +»t +); + +45  +»t +; + +46 + } +} + +51  + $_gl_nÙify_check_£ÏÎ +(* +d©a +, +Elm_Objeù_I‹m + * +nf_™ +,  +®l_út +, + +52  +£Ëùed_út +) + +54 + `GL_CHECK_VAL +( +d©a +, -1); + +55 + `GL_CHECK_VAL +( +nf_™ +, -1); + +56 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +57  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +59 + `gl_dbg +("£Ëùed_út/®l_úˆð%d/%d", +£Ëùed_út +, +®l_út +); + +60 ià( +£Ëùed_út + > +®l_út +) { + +61 + `gl_dbgE +("selected_cnt >‡ll_cnt!"); + +63 } ià( +£Ëùed_út + =ð +®l_út +) { + +64 +ad +-> +£lšfo +. +ck_¡©e + = +EINA_TRUE +; + +66 +ad +-> +£lšfo +. +ck_¡©e + = +EINA_FALSE +; + +69 ià( +ad +-> +£lšfo +. +£Ëù®l_ck +) { + +70 + `–m_check_¡©e_£t +( +ad +-> +£lšfo +. +£Ëù®l_ck +,‡d->£lšfo. +ck_¡©e +); + +72 ià( +£Ëùed_út + > 0) { + +74 + `_gl_ù¾_’abË_bŠs +( +ad +, +nf_™ +); + +75 + `_gl_thumbs_di§bË_¦ideshow +( +ad +, +çl£ +); + +76 } ià( +v›w_mode + =ð +GL_VIEW_THUMBS_SELECT +) { + +78 + `_gl_thumbs_£l_di§bË_bŠs +( +d©a +, +Œue +); + +81 + `_gl_ui_di§bË_m’u +( +nf_™ +, +Œue +); + +82 + `_gl_ù¾_di§bË_™ems +( +nf_™ +, +Œue +); + +83 + `_gl_thumbs_di§bË_¦ideshow +( +ad +, +Œue +); + +87 + } +} + +89  + $_gl_nÙify_de¡roy +(* +nÙi +) + +91 + `GL_CHECK_VAL +( +nÙi +, -1); + +92 +gl_nÙi_s + * +nÙi_d + = +nÙi +; + +94 ià( +nÙi_d +-> +hªdË +) { + +95  +”r + = 0; + +96 +”r + = + `nÙifiÿtiÚ_d–‘e +( +nÙi_d +-> +hªdË +); + +97 ià( +”r + !ð +NOTIFICATION_ERROR_NONE +) { + +98 + `gl_dbgE +("nÙifiÿtiÚ_d–‘e().. [0x%x]", +”r +); + +101 +”r + = + `nÙifiÿtiÚ_ä“ +( +nÙi_d +-> +hªdË +); + +102 ià( +”r + !ð +NOTIFICATION_ERROR_NONE +) { + +103 + `gl_dbgE +("nÙifiÿtiÚ_ä“().. [0x%x]", +”r +); + +106 +nÙi_d +-> +hªdË + = +NULL +; + +107 + `GL_GFREE +( +nÙi_d +); + +109 + } +} + +111  + $_gl_nÙify_upd©e_size +(* +nÙi +,  +tÙ® +) + +113 + `GL_CHECK_VAL +( +nÙi +, -1); + +114 +gl_nÙi_s + * +nÙi_d + = +nÙi +; + +115 + `GL_CHECK_VAL +( +nÙi_d +-> +hªdË +, -1); + +116 + `gl_dbg +("%Îd", +tÙ® +); + +118  +”r + = 0; + +119 +”r + = + `nÙifiÿtiÚ_£t_size +( +nÙi_d +-> +hªdË +, () +tÙ® +); + +120 ià( +”r + !ð +NOTIFICATION_ERROR_NONE +) { + +121 + `gl_dbgE +("nÙifiÿtiÚ_upd©e_size().. [0x%x]", +”r +); + +125 + } +} + +127  + $_gl_nÙify_upd©e_´og»ss +(* +nÙi +,  +tÙ® +, + +128  +by‹ +) + +130 + `GL_CHECK_VAL +( +nÙi +, -1); + +131 +gl_nÙi_s + * +nÙi_d + = +nÙi +; + +132 + `GL_CHECK_VAL +( +nÙi_d +-> +hªdË +, -1); + +133 + `gl_dbg +("%Îd/%Îd", +by‹ +, +tÙ® +); + +135  +”r + = 0; + +136  +´og»ss + = () +by‹ + / +tÙ® +; + +137 +”r + = + `nÙifiÿtiÚ_£t_´og»ss +( +nÙi_d +-> +hªdË +, +´og»ss +); + +138 ià( +”r + !ð +NOTIFICATION_ERROR_NONE +) { + +139 + `gl_dbgE +("nÙifiÿtiÚ_upd©e_´og»ss().. [0x%x]", +”r +); + +143 + } +} + + @src/widget/gl-popup.c + +17  + ~"g®Ëry.h +" + +18  + ~"gl-pÝup.h +" + +19  + ~"gl-ui-utž.h +" + +20  + ~"gl-utž.h +" + +21  + ~"gl-debug.h +" + +22  + ~"gl-®bums.h +" + +23  + ~"gl-®bums-Ãw.h +" + +24  + ~"gl-´og»ssb¬.h +" + +25  + ~"gl-¡ršgs.h +" + +26  + ~"gl-bu‰Ú.h +" + +27  + ~"gl-cڌÞb¬.h +" + +28  + ~"gl-ed™f›ld.h +" + +29  + ~"gl-ùxpÝup.h +" + +30  + ~"gl-thumbs.h +" + +31  + ~"gl-tim–še.h +" + +33 + egl_pÝup_obj_d–_cb_ty³ +{ + +34 + mGL_POPUP_OBJ_DEL_CB_TYPE_ITEM +, + +35 + mGL_POPUP_OBJ_DEL_CB_TYPE_ALBUM + + +38  + #GL_POPUP_GENLIST_ITEM_W + 618 + + ) + +40  + #GL_POPUP_TIMEOUT_1S + 1.0 + + ) + +41  + #GL_POPUP_TIMEOUT_2S + 2.0 + + ) + +42  + #GL_POPUP_TIMEOUT_3S + 3.0 + + ) + +43  + #GL_POPUP_OBJ_DATA_KEY + "gl_pÝup_d©a_key" + + ) + +44  + #GL_POPUP_OBJ_DEL_CB_KEY + "gl_pÝup_cb_key" + + ) + +45  + #GL_POPUP_OBJ_DEL_CB_DATA_KEY + "gl_pÝup_cb_d©a_key" + + ) + +46  + #GL_POPUP_OBJ_DEL_CB_TYPE_KEY + "gl_pÝup_cb_ty³_key" + + ) + +47  + #GL_POPUP_GENLIST_DATA_KEY + "gl_pÝup_g’li¡_d©a_key" + + ) + +48  + #SETTINGS_STORAGE_UG_NAME + "£‰šg-¡Üage-eæ" + + ) + +49  + #GL_POPUP_GENLIST_HEIGHT_HD + 260 + + ) + +50  + #GL_POPUP_GENLIST_WIDTH_HD + 630 + + ) + +51  + #GL_POPUP_GENLIST_HEIGHT_QHD + 185 + + ) + +52  + #GL_POPUP_GENLIST_WIDTH_QHD + 450 + + ) + +53  + #GL_POPUP_GENLIST_HEIGHT_WVGA + 202 + + ) + +54  + #GL_POPUP_GENLIST_WIDTH_WVGA + 480 + + ) + +56  +_gl_pÝup_t + + tgl_pÝup_s +; + +57  +_gl_pÝup_m’u_t + + tgl_pÝup_m’u_s +; + +58  +_gl_pÝup_»size_t + + tgl_pÝup_»size_s +; + +60  + s_gl_pÝup_t + { + +61 +gl_­pd©a + * + mad +; + +62 +Evas_Objeù + * + mpÝup +; + +63 +Evas_Sm¬t_Cb + + mcb1 +; + +64 +Evas_Sm¬t_Cb + + mcb2 +; + +65 +Evas_Sm¬t_Cb + + mcb3 +; + +66 cÚ¡ * + md©a1 +; + +67 cÚ¡ * + md©a2 +; + +68 cÚ¡ * + md©a3 +; + +71  + s_gl_pÝup_m’u_t + { + +72 +gl_­pd©a + * + mad +; + +73 +Evas_Objeù + * + mpÝup +; + +74 * + mÝ_func +; + +77  + s_gl_pÝup_»size_t + { + +78 +gl_­pd©a + * + mad +; + +79 +Evas_Objeù + * + mg’li¡ +; + +80 +Evas_Objeù + * + mbox +; + +81 +EcÜe_Job + * + mjob +; + +82  + m™em_height +; + +85  +__gl_pÝup_»¥ +(* +d©a +, cÚ¡ * +‹xt +); + +87  + $__gl_pÝup_g’li¡_Ïng_chªged +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +89 + `GL_CHECK +( +obj +); + +90 + `–m_g’li¡_»®ized_™ems_upd©e +( +obj +); + +91 + } +} + +94  + $__gl_pÝup_þ—r_cڋÁ +( +Evas_Objeù + * +pÝup +) + +96 + `GL_CHECK_VAL +( +pÝup +, -1); + +97 + `gl_dbg +(""); + +99 +Evas_Objeù + * +cڋÁ + = + `–m_objeù_cڋÁ_g‘ +( +pÝup +); + +100 + `GL_CHECK_VAL +( +cڋÁ +, -1); + +101 +Eša_Li¡ + * +chid»n + = + `–m_box_chžd»n_g‘ +( +cڋÁ +); + +102 + `GL_CHECK_VAL +( +chid»n +, -1); + +103 +Evas_Objeù + * +g’li¡ + = + `eša_li¡_Áh +( +chid»n +, 0); + +104 + `GL_CHECK_VAL +( +g’li¡ +, -1); + +105 + `–m_g’li¡_þ—r +( +g’li¡ +); + +106 + `–m_box_þ—r +( +cڋÁ +); + +108 + } +} + +110  +Eša_BoÞ + + $__gl_pÝup_timeout_cb +(* +d©a +) + +112 + `GL_CHECK_FALSE +( +d©a +); + +113 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +114 + `GL_IF_DEL_TIMER +( +ad +-> +pÝupšfo +. +d–_tim” +); + +115 + `GL_IF_DEL_OBJ +( +ad +-> +pÝupšfo +. +pÝup +); + +116  +ECORE_CALLBACK_CANCEL +; + +117 + } +} + +119  + $__gl_pÝup_add_tim” +(* +d©a +,  +to_šc +) + +121 + `GL_CHECK_VAL +( +d©a +, -1); + +122 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +123 + `GL_IF_DEL_TIMER +( +ad +-> +pÝupšfo +. +d–_tim” +); + +124 +ad +-> +pÝupšfo +. +d–_tim” + = + `ecÜe_tim”_add +( +to_šc +, +__gl_pÝup_timeout_cb +, + +125 +d©a +); + +127 + } +} + +129  + $__gl_pÝup_d–_»¥_cb +(* +d©a +, +Evas_Objeù + * +obj +, + +130 * +ev’t_šfo +) + +132 + `GL_CHECK +( +obj +); + +133 + `GL_CHECK +( +d©a +); + +134 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +135 cÚ¡ * +‹xt + = +NULL +; + +137 +‹xt + = + `–m_objeù_‹xt_g‘ +( +obj +); + +138 + `GL_CHECK +( +‹xt +); + +139 + `gl_dbg +("Bu‰Ú: %s", +‹xt +); + +141 ià(! + `g_¡rcmp0 +( +‹xt +, +GL_STR_DELETE +)) { + +142 * +d–_cb + = + `evas_objeù_d©a_g‘ +( +ad +-> +pÝupšfo +. +pÝup +, + +143 +GL_POPUP_OBJ_DEL_CB_KEY +); + +144 * +cb_d©a + = + `evas_objeù_d©a_g‘ +( +ad +-> +pÝupšfo +. +pÝup +, + +145 +GL_POPUP_OBJ_DEL_CB_DATA_KEY +); + +146 + `GL_IF_DEL_OBJ +( +ad +-> +pÝupšfo +. +pÝup +); + +147 ià( +d–_cb + && +cb_d©a +) { + +148 (* +_d–_cb +è(* +cb_d©a +); + +149 +_d–_cb + = +d–_cb +; + +150 + `_d–_cb +( +cb_d©a +); + +152 + `gl_dbgE +("Invalid callback!"); + +155 + `__gl_pÝup_»¥ +( +d©a +, +‹xt +); + +157 + } +} + +159  + $__gl_pÝup_»¥ +(* +d©a +, cÚ¡ * +‹xt +) + +161 + `GL_CHECK +( +d©a +); + +162 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +163  +mode + = +ad +-> +pÝupšfo +.mode; + +164 + `GL_CHECK +( +‹xt +); + +165 + `gl_dbg +("Bu‰Ú: %s, mode: %d", +‹xt +, +mode +); + +167  +mode +) { + +168  +GL_POPUP_ALBUM_NEW_EMPTY +: + +169  +GL_POPUP_ALBUM_NEW_DUPLICATE +: + +170  +GL_POPUP_ALBUM_NEW_INVALID +: + +171  +GL_POPUP_ALBUM_RENAME_EMPTY +: + +172  +GL_POPUP_ALBUM_RENAME_DUPLICATE +: + +173  +GL_POPUP_ALBUM_RENAME_INVALID +: + +174 ià(! + `g_¡rcmp0 +( +‹xt +, + `_gl_¡r +( +GL_STR_ID_YES +)) || + +175 ! + `g_¡rcmp0 +( +‹xt +, + `_gl_¡r +( +GL_STR_ID_OK +))) + +176 + `_gl_ed™f›ld_show_imf +( +d©a +); + +177 ià(! + `g_¡rcmp0 +( +‹xt +, + `_gl_¡r +( +GL_STR_ID_NO +)) || + +178 ! + `g_¡rcmp0 +( +‹xt +, + `_gl_¡r +( +GL_STR_ID_CANCEL +))) + +179 + `–m_Çviäame_™em_pÝ +( +ad +-> +maššfo +. +Çviäame +); + +181  +GL_POPUP_NOBUT_APPEXIT +: + +182 ià( +ad +-> +pÝupšfo +. +pÝup +) { + +183 + `__gl_pÝup_þ—r_cڋÁ +( +ad +-> +pÝupšfo +. +pÝup +); + +184 + `evas_objeù_d– +( +ad +-> +pÝupšfo +. +pÝup +); + +185 +ad +-> +pÝupšfo +. +pÝup + = +NULL +; + +187 + `–m_ex™ +(); + +189  +GL_POPUP_SLIDESHOW +: + +190  +GL_POPUP_LONGPRESSED +: + +191  +GL_POPUP_MEDIA_DELETE +: { + +192 + `_gl_ä“_£Ëùed_li¡ +( +d©a +); + +195  +GL_POPUP_ALBUM_MEMORY_FULL +: + +196 + `GL_IF_DEL_OBJ +( +ad +-> +pÝupšfo +. +memÜy_fuÎ_pÝup +); + +197 + `–m_Çviäame_™em_pÝ +( +ad +-> +maššfo +. +Çviäame +); + +199 ià(! + `g_¡rcmp0 +( +‹xt +, + `_gl_¡r +( +GL_STR_SETTINGS +))) { + +200 +­p_cڌÞ_h + +­p_cÚŒÞ +; + +201  +»t + = 0; + +203 +»t + = + `­p_cڌÞ_ü—‹ +(& +­p_cÚŒÞ +); + +205 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +206 + `gl_dbgE +("app_control create failed"); + +210 +»t + = + `­p_cڌÞ_£t_ݔ©iÚ +( +­p_cÚŒÞ +, +APP_CONTROL_OPERATION_VIEW +); + +211 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +212 + `gl_dbgE +("­p_cڌÞ_£t_ݔ©iÚ()... [0x%x]", +»t +); + +213  +END +; + +216 +»t + = + `­p_cڌÞ_£t_­p_id +( +­p_cÚŒÞ +, +SETTINGS_STORAGE_UG_NAME +); + +217 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +218 + `gl_dbgE +("­p_cڌÞ_£t_uri()... [0x%x]", +»t +); + +219  +END +; + +222 +»t + = + `­p_cڌÞ_£nd_Ïunch_»que¡ +( +­p_cÚŒÞ +, +NULL +, NULL); + +223 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +224 + `gl_dbgE +("­p_cڌކaunch Fažed... [0x%x]", +»t +); + +225  +END +; + +227 +END +: + +228 ià( +­p_cÚŒÞ +) { + +229 + `­p_cڌÞ_de¡roy +( +­p_cÚŒÞ +); + +237 + `GL_IF_DEL_OBJ +( +ad +-> +pÝupšfo +. +pÝup +); + +238 + } +} + +240  + $__gl_pÝup_»¥_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +242 + `GL_CHECK +( +d©a +); + +243 + `GL_CHECK +( +obj +); + +245 cÚ¡ * +‹xt + = +NULL +; + +247 +‹xt + = + `–m_objeù_‹xt_g‘ +( +obj +); + +248 + `GL_CHECK +( +‹xt +); + +249 + `gl_dbg +("Bu‰Ú: %s", +‹xt +); + +250 + `__gl_pÝup_»¥ +( +d©a +, +‹xt +); + +251 + } +} + +253  + $__gl_pÝup_block_þicked_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +255 + `GL_CHECK +( +d©a +); + +256 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +257 + `_gl_ä“_£Ëùed_li¡ +( +d©a +); + +258 + `GL_IF_DEL_OBJ +( +ad +-> +pÝupšfo +. +pÝup +); + +259 + } +} + +261  + $__gl_pÝup_g’li¡_d–‘e_cb +(* +d©a +, +Evas + * +e +, +Evas_Objeù + * +obj +, + +262 * +ei +) + +264 + `gl_dbg +("Delete genlist ---"); + +265 ià( +obj +) { + +266 + `evas_objeù_d©a_d– +( +obj +, +GL_POPUP_OBJ_DATA_KEY +); + +267 +gl_pÝup_»size_s + * +»size_d + = + `evas_objeù_d©a_g‘ +( +obj +, + +268 +GL_POPUP_GENLIST_DATA_KEY +); + +269 ià( +»size_d +) { + +270 + `GL_IF_DEL_JOB +( +»size_d +-> +job +); + +271 + `GL_FREE +( +»size_d +); + +274 ià( +d©a +) + +275 + `–m_g’li¡_™em_þass_ä“ +(( +Elm_G’li¡_I‹m_CÏss + *) +d©a +); + +277 + `gl_dbg +("Delete genlist +++"); + +278 + } +} + +281  + $__gl_pÝup_£t_mš_size +( +Evas_Objeù + * +box +,  +út +) + +283 + `GL_CHECK_VAL +( +box +, -1); + +287  + #GL_POPUP_GENLIST_ITEM_H + 114 + + ) + +288  + #GL_POPUP_GENLIST_ITEM_H2 + 136 + + ) + +290  +™em_height + = +GL_POPUP_GENLIST_ITEM_H +; + +291  +fÚt_size + = + `_gl_g‘_fÚt_size +(); + +292 + `gl_dbg +("fڈsize: %d", +fÚt_size +); + +293 ià( +fÚt_size + == 4) + +294 +™em_height + = +GL_POPUP_GENLIST_ITEM_H2 +; + +295  +mš_h + = 0; + +296 ià( +út + > 3) + +297 +mš_h + = +™em_height + * 4; + +299 +mš_h + = +™em_height + * +út +; + +301 + `evas_objeù_size_hšt_mš_£t +( +box +, + +302 +GL_POPUP_GENLIST_ITEM_W + * + `–m_cÚfig_sÿË_g‘ +(), + +303 +mš_h + * + `–m_cÚfig_sÿË_g‘ +()); + +304  +™em_height +; + +305 + } +} + +307  + $__gl_pÝup_mou£up_cb +(* +d©a +, +Evas + * +e +, +Evas_Objeù + * +obj +, + +308 * +ev’t_šfo +) + +310 + `gl_dbg +(""); + +311 + `GL_CHECK +( +d©a +); + +312 + `GL_CHECK +( +ev’t_šfo +); + +313 +Evas_Ev’t_Mou£_Up + * +ev + = +ev’t_šfo +; + +314 ià( +ev +-> +bu‰Ú + == 3) { + +315 + `gl_dbg +("Delete…opup!"); + +316 + `__gl_pÝup_»¥ +( +d©a +, +GL_STR_ID_CANCEL +); + +318 + } +} + +335  +šlše +  + $__gl_pÝup_—_back_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +337 + `gl_dbg +("Use customized callback"); + +338 + `__gl_pÝup_»¥ +( +d©a +, + `_gl_¡r +( +GL_STR_ID_CANCEL +)); + +339 + } +} + +341  + $__gl_pÝup_loÿl_»¥_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +343 + `evas_objeù_d– +(( +Evas_Objeù + *) +d©a +); + +344 + } +} + +346  + $__gl_pÝup_loÿl_mou£up_cb +(* +d©a +, +Evas + * +e +, +Evas_Objeù + * +obj +, * +ei +) + +348 + `gl_dbg +(""); + +349 + `GL_CHECK +( +d©a +); + +350 + `GL_CHECK +( +ei +); + +351 +Evas_Ev’t_Mou£_Up + * +ev + = +ei +; + +352 ià( +ev +-> +bu‰Ú + == 3) { + +353 + `gl_dbg +("Delete…opup!"); + +354 + `GL_IF_DEL_OBJ +( +obj +); + +356 + } +} + +370  + $__gl_pÝup_loÿl_d–‘e_cb +(* +d©a +, +Evas + * +e +, +Evas_Objeù + * +obj +, * +ei +) + +372 + `gl_dbg +("Delete…opup ---"); + +373 + `GL_CHECK +( +d©a +); + +374 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +375 + `GL_IF_DEL_TIMER +( +ad +-> +pÝupšfo +. +d–_tim” +); + +376 + `evas_objeù_ev’t_ÿÎback_d– +( +obj +, +EVAS_CALLBACK_MOUSE_UP +, + +377 +__gl_pÝup_loÿl_mou£up_cb +); + +381 + `_gl_ed™f›ld_show_imf +( +d©a +); + +382 + `gl_dbg +("Delete…opup +++"); + +383 + } +} + +385  + $__gl_pÝup_loÿl_block_þicked_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +387 + `GL_IF_DEL_OBJ +( +obj +); + +388 + } +} + +390  +Eša_BoÞ + + $__gl_pÝup_loÿl_timeout_cb +(* +d©a +) + +392 + `GL_CHECK_CANCEL +( +d©a +); + +393 +Evas_Objeù + * +pÝup + = (Evas_Objeù *) +d©a +; + +394 +gl_­pd©a + * +ad + = (gl_­pd©¨*) + `evas_objeù_d©a_g‘ +( +pÝup +, + +395 +GL_POPUP_OBJ_DATA_KEY +); + +396 + `GL_IF_DEL_OBJ +( +pÝup +); + +398 + `GL_CHECK_CANCEL +( +ad +); + +399 + `GL_IF_DEL_TIMER +( +ad +-> +pÝupšfo +. +d–_tim” +); + +400  +ECORE_CALLBACK_CANCEL +; + +401 + } +} + +403  +Evas_Objeù + * + $__gl_pÝup_add +( +Evas_Objeù + * +·»Á +, cÚ¡ * +¡yË +, + +404 cÚ¡ * +t™Ë +, cÚ¡ * +‹xt +, + +405 * +d©a +) + +407 + `GL_CHECK_NULL +( +·»Á +); + +408 +Evas_Objeù + * +pÝup + = + `–m_pÝup_add +( +·»Á +); + +409 + `GL_CHECK_NULL +( +pÝup +); + +410 ià( +¡yË +) + +411 + `–m_objeù_¡yË_£t +( +pÝup +, +¡yË +); + +412 ià( +t™Ë +) + +413 + `_gl_ui_£t_Œª¦©e_·¹_¡r +( +pÝup +, "t™Ë,‹xt", +t™Ë +); + +414 ià( +‹xt +) + +415 + `_gl_ui_£t_Œª¦©e_¡r +( +pÝup +, +‹xt +); + +416 + `evas_objeù_size_hšt_weight_£t +( +pÝup +, +EVAS_HINT_EXPAND +, + +417 +EVAS_HINT_EXPAND +); + +420 + `evas_objeù_ev’t_ÿÎback_add +( +pÝup +, +EVAS_CALLBACK_MOUSE_UP +, + +421 +__gl_pÝup_mou£up_cb +, +d©a +); + +426 + `“xt_objeù_ev’t_ÿÎback_add +( +pÝup +, +EEXT_CALLBACK_BACK +, + +427 +__gl_pÝup_—_back_cb +, +d©a +); + +428  +pÝup +; + +429 + } +} + +431  +Evas_Objeù + * + $__gl_pÝup_add_loÿl +( +Evas_Objeù + * +·»Á +, cÚ¡ * +¡yË +, + +432 cÚ¡ * +t™Ë +, cÚ¡ * +‹xt +, + +433 * +d©a +) + +435 + `GL_CHECK_NULL +( +·»Á +); + +436 +Evas_Objeù + * +pÝup + = + `–m_pÝup_add +( +·»Á +); + +437 + `GL_CHECK_NULL +( +pÝup +); + +438 ià( +¡yË +) + +439 + `–m_objeù_¡yË_£t +( +pÝup +, +¡yË +); + +440 ià( +t™Ë +) + +441 + `_gl_ui_£t_Œª¦©e_·¹_¡r +( +pÝup +, "t™Ë,‹xt", +t™Ë +); + +442 ià( +‹xt +) + +443 + `_gl_ui_£t_Œª¦©e_¡r +( +pÝup +, +‹xt +); + +444 + `evas_objeù_size_hšt_weight_£t +( +pÝup +, +EVAS_HINT_EXPAND +, + +445 +EVAS_HINT_EXPAND +); + +448 + `evas_objeù_ev’t_ÿÎback_add +( +pÝup +, +EVAS_CALLBACK_MOUSE_UP +, + +449 +__gl_pÝup_loÿl_mou£up_cb +, +d©a +); + +454 + `“xt_objeù_ev’t_ÿÎback_add +( +pÝup +, +EEXT_CALLBACK_BACK +, + +455 +“xt_pÝup_back_cb +, +NULL +); + +456  +pÝup +; + +457 + } +} + +459  + $__gl_pÝup_g’li¡_»®ized +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +461 ià( + `–m_g’li¡_fœ¡_™em_g‘ +( +obj +è=ð +ei +) { + +462 + `gl_dbg +("Emit signal"); + +463 + `evas_objeù_sm¬t_ÿÎback_ÿÎ +( +obj +, "popup,genlist,realized", + +464 +d©a +); + +466 + } +} + +468  +Evas_Objeù + * + $__gl_pÝup_add_g’li¡ +(* +d©a +, +Evas_Objeù + * +·»Á +, + +469 cÚ¡ * +¡yË +, + +470 +Elm_G’_I‹m_Text_G‘_Cb + +‹xt_g‘ +, + +471 +Elm_G’_I‹m_CڋÁ_G‘_Cb + +cڋÁ_g‘ +, + +472 * +­³nd_func +) + +474 + `GL_CHECK_NULL +( +·»Á +); + +477 +Elm_G’li¡_I‹m_CÏss + * +gic + = +NULL +; + +478 +gic + = + `–m_g’li¡_™em_þass_Ãw +(); + +479 + `GL_CHECK_NULL +( +gic +); + +480 +gic +-> +™em_¡yË + = +¡yË +; + +481 +gic +-> +func +. +‹xt_g‘ + =ext_get; + +482 +gic +-> +func +. +cڋÁ_g‘ + = content_get; + +483 +gic +-> +func +. +¡©e_g‘ + = +NULL +; + +484 +gic +-> +func +. +d– + = +NULL +; + +487 +Evas_Objeù + * +g’li¡ + = + `–m_g’li¡_add +( +·»Á +); + +488 ià( +g’li¡ + =ð +NULL +) { + +489 + `–m_g’li¡_™em_þass_ä“ +( +gic +); + +490  +NULL +; + +492 + `evas_objeù_sm¬t_ÿÎback_add +( +g’li¡ +, "realized", + +493 +__gl_pÝup_g’li¡_»®ized +, +d©a +); + +495 + `evas_objeù_ev’t_ÿÎback_add +( +g’li¡ +, +EVAS_CALLBACK_DEL +, + +496 +__gl_pÝup_g’li¡_d–‘e_cb +, + +497 (*) +gic +); + +498 + `evas_objeù_sm¬t_ÿÎback_add +( +g’li¡ +, "language,changed", + +499 +__gl_pÝup_g’li¡_Ïng_chªged +, +NULL +); + +500 + `evas_objeù_size_hšt_weight_£t +( +g’li¡ +, +EVAS_HINT_EXPAND +, + +501 +EVAS_HINT_EXPAND +); + +502 + `evas_objeù_size_hšt_®ign_£t +( +g’li¡ +, +EVAS_HINT_FILL +, + +503 +EVAS_HINT_FILL +); + +504 ià( +­³nd_func +) { + +505 (* +­³nd_cb +è(* +pÝup_d©a +, +Evas_Objeù + * +gl +, +Elm_G’li¡_I‹m_CÏss + * +gic +); + +506 +­³nd_cb + = +­³nd_func +; + +507 + `­³nd_cb +( +d©a +, +g’li¡ +, +gic +); + +510 ià( + `–m_g’li¡_™ems_couÁ +( +g’li¡ +) <= 3) + +511 + `–m_süÞËr_pÞicy_£t +( +g’li¡ +, +ELM_SCROLLER_POLICY_OFF +, + +512 +ELM_SCROLLER_POLICY_OFF +); + +513  +g’li¡ +; + +514 + } +} + +516  + $__gl_pÝup_d–‘e_cb +(* +d©a +, +Evas + * +e +, +Evas_Objeù + * +obj +, * +ei +) + +518 + `gl_dbg +("Delete…opup ---"); + +519 + `evas_objeù_ev’t_ÿÎback_d– +( +obj +, +EVAS_CALLBACK_MOUSE_UP +, + +520 +__gl_pÝup_mou£up_cb +); + +524 + `GL_FREEIF +( +d©a +); + +525 + `gl_dbg +("Delete…opup +++"); + +526 + } +} + +528  + $__gl_pÝup_m’u_d–‘e_cb +(* +d©a +, +Evas + * +e +, +Evas_Objeù + * +obj +, + +529 * +ei +) + +531 + `gl_dbg +("Delete…opup ---"); + +533 + `evas_objeù_ev’t_ÿÎback_d– +( +obj +, +EVAS_CALLBACK_MOUSE_UP +, + +534 +__gl_pÝup_mou£up_cb +); + +539 + `evas_objeù_d©a_d– +( +obj +, +GL_POPUP_OBJ_DATA_KEY +); + +541 + `GL_FREEIF +( +d©a +); + +542 + `gl_dbg +("Delete…opup +++"); + +543 + } +} + +545  + $__gl_pÝup_m’u_£l_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +547 + `GL_CHECK +( +ei +); + +548 + `GL_CHECK +( +d©a +); + +549 +gl_pÝup_m’u_s + * +sh¬e_d + = (gl_pÝup_m’u_ *) +d©a +; + +550 + `GL_CHECK +( +sh¬e_d +-> +ad +); + +551 +gl_­pd©a + * +ad + = +sh¬e_d +->ad; + +552 * +id + = +NULL +; + +554 +id + = (*) + `–m_objeù_™em_d©a_g‘ +( +ei +); + +555 + `GL_CHECK +( +id +); + +556 + `gl_sdbg +("Ïb– id: %s", +id +); + +558 (* +Ý_cb +è(* +d©a +, cÚ¡ * +Ïb– +èð +NULL +; + +559 ià( +sh¬e_d +-> +Ý_func +) { + +560 +Ý_cb + = +sh¬e_d +-> +Ý_func +; + +562 + `GL_IF_DEL_OBJ +( +ad +-> +pÝupšfo +. +pÝup +); + +563 +ad +-> +pÝupšfo +. +mode + = +GL_POPUP_NOBUT +; + +564 ià( +Ý_cb +) + +565 + `Ý_cb +( +ad +, + `_gl_¡r +( +id +)); + +566 + } +} + +568 * + $__gl_pÝup_m’u_g‘_‹xt +(* +d©a +, +Evas_Objeù + * +obj +, + +569 cÚ¡ * +·¹ +) + +571 ià(! + `¡rcmp +( +·¹ +, "elm.text")) { + +572 * +¡r + = +NULL +; + +573 + `GL_CHECK_NULL +( +d©a +); + +574 +¡r + = + `_gl_¡r +((*) +d©a +); + +575 ià( +¡r +) + +576  + `¡rdup +( +¡r +); + +578  +NULL +; + +579 + } +} + +581 #ifdeà +SUPPORT_SLIDESHOW + + +582  + $__gl_pÝup_¦ideshow_­³nd +(* +d©a +, +Evas_Objeù + * +gl +, + +583 +Elm_G’li¡_I‹m_CÏss + * +gic +) + +585 + `GL_CHECK +( +gic +); + +586 + `GL_CHECK +( +gl +); + +587 + `GL_CHECK +( +d©a +); + +588 + `gl_dbg +("append items"); + +590 + `–m_g’li¡_™em_­³nd +( +gl +, +gic +, (*) +GL_STR_ID_ALL_ITEMS +, + +591 +NULL +, +ELM_GENLIST_ITEM_NONE +, + +592 +__gl_pÝup_m’u_£l_cb +, +d©a +); + +593 + `–m_g’li¡_™em_­³nd +( +gl +, +gic +, (*) +GL_STR_ID_SELECT_ITEMS +, + +594 +NULL +, +ELM_GENLIST_ITEM_NONE +, + +595 +__gl_pÝup_m’u_£l_cb +, +d©a +); + +596 + `–m_g’li¡_™em_­³nd +( +gl +, +gic +, (*) +GL_STR_ID_SETTINGS +, + +597 +NULL +, +ELM_GENLIST_ITEM_NONE +, + +598 +__gl_pÝup_m’u_£l_cb +, +d©a +); + +599 + } +} + +603  + $__gl_pÝup_®bum_lÚg´es£d_­³nd +(* +d©a +, +Evas_Objeù + * +gl +, + +604 +Elm_G’li¡_I‹m_CÏss + * +gic +) + +606 + `GL_CHECK +( +gic +); + +607 + `GL_CHECK +( +gl +); + +608 + `GL_CHECK +( +d©a +); + +609 + `gl_dbg +("append items"); + +610 +gl_pÝup_m’u_s + * +sh¬e_d + = (gl_pÝup_m’u_ *) +d©a +; + +611 + `GL_CHECK +( +sh¬e_d +-> +ad +); + +612 +gl_­pd©a + * +ad + = +sh¬e_d +->ad; + +613 +gl_þu¡” + * +®bum + = + `_gl_®bums_g‘_cu¼’t +( +ad +); + +614 + `GL_CHECK +( +®bum +); + +616 + `–m_g’li¡_™em_­³nd +( +gl +, +gic +, (*) +GL_STR_ID_SHARE +, + +617 +NULL +, +ELM_GENLIST_ITEM_NONE +, + +618 +__gl_pÝup_m’u_£l_cb +, +d©a +); + +619 #ifdeà +SUPPORT_SLIDESHOW + + +620 + `–m_g’li¡_™em_­³nd +( +gl +, +gic +, (*) +GL_STR_ID_SLIDESHOW +, + +621 +NULL +, +ELM_GENLIST_ITEM_NONE +, + +622 +__gl_pÝup_m’u_£l_cb +, +d©a +); + +625 ià( +GL_STORE_T_ALL + !ð +®bum +-> +þu¡” +-> +ty³ +) + +626 + `–m_g’li¡_™em_­³nd +( +gl +, +gic +, (*) +GL_STR_ID_DELETE +, + +627 +NULL +, +ELM_GENLIST_ITEM_NONE +, + +628 +__gl_pÝup_m’u_£l_cb +, +d©a +); + +629 ià(( +GL_STORE_T_PHONE + =ð +®bum +-> +þu¡” +-> +ty³ + || + +630 +GL_STORE_T_MMC + =ð +®bum +-> +þu¡” +-> +ty³ +) && + +631 ! + `_gl_d©a_is_ÿm”a_®bum +( +®bum +-> +þu¡” +)) + +632 + `–m_g’li¡_™em_­³nd +( +gl +, +gic +, (*) +GL_STR_ID_RENAME +, + +633 +NULL +, +ELM_GENLIST_ITEM_NONE +, + +634 +__gl_pÝup_m’u_£l_cb +, +d©a +); + +635 + } +} + +638  + $__gl_pÝup_thumb_lÚg´es£d_­³nd +(* +d©a +, +Evas_Objeù + * +gl +, + +639 +Elm_G’li¡_I‹m_CÏss + * +gic +) + +641 + `GL_CHECK +( +gic +); + +642 + `GL_CHECK +( +gl +); + +643 + `GL_CHECK +( +d©a +); + +644 + `gl_dbg +("append items"); + +645 +gl_pÝup_m’u_s + * +sh¬e_d + = (gl_pÝup_m’u_ *) +d©a +; + +646 + `GL_CHECK +( +sh¬e_d +-> +ad +); + +647 +gl_­pd©a + * +ad + = +sh¬e_d +->ad; + +648 + `GL_CHECK +( +ad +-> +£lšfo +. +–i¡ +); + +649 +gl_™em + * +g™em + = (gl_™em *) + `eša_li¡_Áh +( +ad +-> +£lšfo +. +–i¡ +, 0); + +650 + `GL_CHECK +( +g™em +); + +651 + `GL_CHECK +( +g™em +-> +™em +); + +652 + `gl_dbg +("™em stÜagty³: %d", +g™em +-> +™em +-> +¡Üage_ty³ +); + +653 + `–m_g’li¡_™em_­³nd +( +gl +, +gic +, (*) +GL_STR_ID_SHARE +, + +654 +NULL +, +ELM_GENLIST_ITEM_NONE +, + +655 +__gl_pÝup_m’u_£l_cb +, +d©a +); + +656 ià(( +GL_STORE_T_PHONE + =ð +g™em +-> +™em +-> +¡Üage_ty³ + || + +657 +GL_STORE_T_MMC + =ð +g™em +-> +™em +-> +¡Üage_ty³ +) && + +658 +MEDIA_CONTENT_TYPE_IMAGE + =ð +g™em +-> +™em +-> +ty³ +) + +659 + `–m_g’li¡_™em_­³nd +( +gl +, +gic +, (*) +GL_STR_ID_EDIT +, + +660 +NULL +, +ELM_GENLIST_ITEM_NONE +, + +661 +__gl_pÝup_m’u_£l_cb +, +d©a +); + +662 ià( +GL_STORE_T_PHONE + =ð +g™em +-> +™em +-> +¡Üage_ty³ + || + +663 +GL_STORE_T_MMC + =ð +g™em +-> +™em +-> +¡Üage_ty³ +) { + +664 + `–m_g’li¡_™em_­³nd +( +gl +, +gic +, (*) +GL_STR_ID_DELETE +, + +665 +NULL +, +ELM_GENLIST_ITEM_NONE +, + +666 +__gl_pÝup_m’u_£l_cb +, +d©a +); + +669 ià(( +GL_STORE_T_PHONE + =ð +g™em +-> +™em +-> +¡Üage_ty³ + || + +670 +GL_STORE_T_MMC + =ð +g™em +-> +™em +-> +¡Üage_ty³ +)) { + +671 + `–m_g’li¡_™em_­³nd +( +gl +, +gic +, (*) +GL_STR_ID_MOVE +, + +672 +NULL +, +ELM_GENLIST_ITEM_NONE +, + +673 +__gl_pÝup_m’u_£l_cb +, +d©a +); + +674 + `–m_g’li¡_™em_­³nd +( +gl +, +gic +, (*) +GL_STR_ID_COPY +, + +675 +NULL +, +ELM_GENLIST_ITEM_NONE +, + +676 +__gl_pÝup_m’u_£l_cb +, +d©a +); + +683 + } +} + +685  + $__gl_pÝup_bŠ_Ãw_®bum_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +687 + `gl_dbg +(""); + +688 + `GL_CHECK +( +d©a +); + +689 +gl_pÝup_m’u_s + * +m’u_d + = +NULL +; + +690 +m’u_d + = ( +gl_pÝup_m’u_s + *) +d©a +; + +691 + `GL_CHECK +( +m’u_d +-> +ad +); + +692 +gl_­pd©a + * +ad + = +m’u_d +->ad; + +694 + `_gl_®bums_Ãw_ü—‹_v›w +( +ad +, +m’u_d +-> +Ý_func +); + +695 +ad +-> +pÝupšfo +. +mode + = +GL_POPUP_NOBUT +; + +696 + } +} + +698  + $__gl_pÝup_move_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +700 + `gl_dbg +(""); + +702 + `GL_CHECK +( +obj +); + +703 +gl_pÝup_m’u_s + * +m’u_d + = +NULL +; + +704 +m’u_d + = ( +gl_pÝup_m’u_s + *) + `evas_objeù_d©a_g‘ +( +obj +, +GL_POPUP_OBJ_DATA_KEY +); + +705 + `GL_CHECK +( +m’u_d +); + +706 + `GL_CHECK +( +m’u_d +-> +ad +); + +707 +gl_­pd©a + * +ad + = +m’u_d +->ad; + +708 + `GL_FREEIF +( +ad +-> +®bumšfo +. +·th +); + +710 ià( +d©a +) { + +711 + `GL_CHECK +( +m’u_d +-> +Ý_func +); + +712 +ad +-> +®bumšfo +. +·th + = + `¡rdup +((*) +d©a +); + +713 + `gl_sdbg +("De¡‡lbum…©h: %s", +ad +-> +®bumšfo +. +·th +); + +714 (* +mc_cb +)(* +d©a +); + +715 +mc_cb + = +m’u_d +-> +Ý_func +; + +716 + `mc_cb +( +ad +); + +719 + `GL_IF_DEL_OBJ +( +ad +-> +pÝupšfo +. +pÝup +); + +720 +ad +-> +pÝupšfo +. +mode + = +GL_POPUP_NOBUT +; + +721 + } +} + +723  + $__gl_pÝup_move_­³nd +(* +d©a +, +Evas_Objeù + * +gl +, + +724 +Elm_G’li¡_I‹m_CÏss + * +gic +) + +726 + `GL_CHECK +( +gic +); + +727 + `GL_CHECK +( +gl +); + +728 + `GL_CHECK +( +d©a +); + +729 +gl_pÝup_m’u_s + * +m’u_d + = (gl_pÝup_m’u_ *) +d©a +; + +730 + `GL_CHECK +( +m’u_d +-> +ad +); + +731 +gl_­pd©a + * +ad + = +m’u_d +->ad; + +732 + `GL_CHECK +( +m’u_d +-> +Ý_func +); + +733 + `GL_CHECK +( +ad +-> +maššfo +. +Çviäame +); + +734  +i + = 0; + +735 +Eša_Li¡ + * +®bum_li¡ + = +NULL +; + +736  +®l_couÁ + = 0; + +737 * +Ïb– + = +NULL +; + +738 +gl_þu¡” + * +®bum + = +NULL +; + +739 +gl_þu¡” + * +cur_®bum + = + `_gl_®bums_g‘_cu¼’t +( +ad +); + +740 + `evas_objeù_d©a_£t +( +gl +, +GL_POPUP_OBJ_DATA_KEY +, +m’u_d +); + +745 ià( +ad +-> +®bumšfo +. +–i¡ + &&‡d->®bumšfo.–i¡-> +þi¡ +) { + +746 +®bum_li¡ + = +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ +; + +747 +®l_couÁ + = + `eša_li¡_couÁ +( +®bum_li¡ +); + +749 + `gl_dbgE +("cluster†ist is NULL"); + +753 + `gl_dbg +("þu¡”†i¡†’gth: %d", +®l_couÁ +); + +754  +i + = 0; i < +®l_couÁ +; i++) { + +755 +®bum + = + `eša_li¡_Áh +( +®bum_li¡ +, +i +); + +756 + `GL_CHECK +( +®bum +); + +757 + `GL_CHECK +( +®bum +-> +þu¡” +); + +758 + `GL_CHECK +( +®bum +-> +þu¡” +-> +di¥Ïy_Çme +); + +759 + `GL_CHECK +( +®bum +-> +þu¡” +-> +uuid +); + +761 ià( +cur_®bum + && cur_®bum-> +þu¡” + && + +762 +cur_®bum +-> +þu¡” +-> +uuid + && + +763 ! + `g_¡rcmp0 +( +®bum +-> +þu¡” +-> +uuid +, +cur_®bum +->cluster->uuid)) + +765 ià( +®bum +-> +þu¡” +-> +ty³ + =ð +GL_STORE_T_MMC + || + +766 +®bum +-> +þu¡” +-> +ty³ + =ð +GL_STORE_T_PHONE +) { + +767 +Ïb– + = + `_gl_g‘_i18n_®bum_Çme +( +®bum +-> +þu¡” +); + +768 + `–m_g’li¡_™em_­³nd +( +gl +, +gic +, (*) +Ïb– +, + +769 +NULL +, +ELM_GENLIST_ITEM_NONE +, + +770 +__gl_pÝup_move_cb +, + +771 +®bum +-> +þu¡” +-> +·th +); + +774 + } +} + +776  + $__gl_pÝup_g’li¡_»size_job_cb +(* +d©a +) + +778 + `GL_CHECK +( +d©a +); + +779 +gl_pÝup_»size_s + * +»size_d + = (gl_pÝup_»size_ *) +d©a +; + +780 +Evas_Objeù + * +Œack + = +NULL +; + +781 +Elm_Objeù_I‹m + * +™em + = + `–m_g’li¡_fœ¡_™em_g‘ +( +»size_d +-> +g’li¡ +); + +782 +Œack + = + `–m_objeù_™em_Œack +( +™em +); + +783 ià( +Œack +) { + +784 +Evas_CoÜd + +h + = 0; + +785 + `evas_objeù_geom‘ry_g‘ +( +Œack +, +NULL +, NULL, NULL, & +h +); + +786 + `gl_dbg +("sizdiff: %d-%d", +h +, +»size_d +-> +™em_height +); + +787 ià( +»size_d +-> +™em_height + !ð +h +) { + +788  +út + = + `–m_g’li¡_™ems_couÁ +( +»size_d +-> +g’li¡ +); + +789  +mš_h + = 0; + +790 ià( +út + > 3) + +791 +mš_h + = +h + * 4; + +793 +mš_h + = +h + * +út +; + +795 + `evas_objeù_size_hšt_mš_£t +( +»size_d +-> +box +, + +796 +GL_POPUP_GENLIST_ITEM_W + * + `–m_cÚfig_sÿË_g‘ +(), + +797 +mš_h +); + +800 + `–m_objeù_™em_uÁ¿ck +( +™em +); + +801 + `GL_IF_DEL_JOB +( +»size_d +-> +job +); + +802 + } +} + +804  + $__gl_pÝup_g’li¡_»®ized_»size +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +806 + `GL_CHECK +( +d©a +); + +807 +gl_pÝup_»size_s + * +»size_d + = (gl_pÝup_»size_ *) +d©a +; + +808 + `GL_IF_DEL_JOB +( +»size_d +-> +job +); + +809 +»size_d +-> +job + = + `ecÜe_job_add +( +__gl_pÝup_g’li¡_»size_job_cb +, +d©a +); + +810 + } +} + +812  + $__gl_pÝup_add_»size_Ý +( +gl_­pd©a + * +ad +, +Evas_Objeù + * +box +, Evas_Objeù * +g’li¡ +) + +814 +gl_pÝup_»size_s + * +»size_d + = +NULL +; + +815 +»size_d + = ( +gl_pÝup_»size_s + *) + `ÿÎoc +(1, (gl_popup_resize_s)); + +816 + `GL_CHECK_VAL +( +»size_d +, -1); + +818 +»size_d +-> +box + = box; + +819 +»size_d +-> +g’li¡ + = genlist; + +820 +»size_d +-> +ad + =‡d; + +821 + `evas_objeù_sm¬t_ÿÎback_add +( +g’li¡ +, "popup,genlist,realized", + +822 +__gl_pÝup_g’li¡_»®ized_»size +, + +823 (*) +»size_d +); + +824 + `evas_objeù_d©a_£t +( +g’li¡ +, +GL_POPUP_GENLIST_DATA_KEY +, + +825 (*) +»size_d +); + +827 +»size_d +-> +™em_height + = + `__gl_pÝup_£t_mš_size +( +box +, + +828 + `–m_g’li¡_™ems_couÁ +( +g’li¡ +)); + +830 + } +} + +833  + $__gl_pÝup_ü—‹_m’u +(* +d©a +, cÚ¡ * +t™Ë +, + +834 * +­³nd_func +, * +Ý_func +,  +mode +) + +836 + `gl_dbg +(""); + +837 + `GL_CHECK_VAL +( +d©a +, -1); + +838 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +840 ià( +ad +-> +pÝupšfo +. +pÝup +) { + +841 + `gl_dbg +("Theƒxisted…opup is deleted"); + +842 + `evas_objeù_d– +( +ad +-> +pÝupšfo +. +pÝup +); + +843 +ad +-> +pÝupšfo +. +pÝup + = +NULL +; + +846 +gl_pÝup_m’u_s + * +m’u_d + = +NULL +; + +847 +m’u_d + = ( +gl_pÝup_m’u_s + *) + `ÿÎoc +(1, (gl_popup_menu_s)); + +848 + `GL_CHECK_VAL +( +m’u_d +, -1); + +850 +Evas_Objeù + * +box + = +NULL +; + +851 +Evas_Objeù + * +g’li¡ + = +NULL +; + +852 +Evas_Objeù + * +pÝup + = + `__gl_pÝup_add +( +ad +-> +maššfo +. +wš +, + +854 +t™Ë +, +NULL +, +d©a +); + +855 ià( +pÝup + =ð +NULL +) { + +856 + `GL_FREE +( +m’u_d +); + +860 + `evas_objeù_ev’t_ÿÎback_add +( +pÝup +, +EVAS_CALLBACK_DEL +, + +861 +__gl_pÝup_m’u_d–‘e_cb +, +m’u_d +); + +862 +m’u_d +-> +ad + =‡d; + +863 +m’u_d +-> +pÝup + =…opup; + +864 +m’u_d +-> +Ý_func + = op_func; + +865 + `evas_objeù_d©a_£t +( +pÝup +, +GL_POPUP_OBJ_DATA_KEY +, +m’u_d +); + +867 +box + = + `–m_box_add +( +pÝup +); + +868 + `evas_objeù_size_hšt_weight_£t +( +box +, +EVAS_HINT_EXPAND +, + +869 +EVAS_HINT_EXPAND +); + +871 +g’li¡ + = + `__gl_pÝup_add_g’li¡ +( +m’u_d +, +box +, "1text/popup", + +872 +__gl_pÝup_m’u_g‘_‹xt +, +NULL +, + +873 +­³nd_func +); + +874 + `__gl_pÝup_add_»size_Ý +( +ad +, +box +, +g’li¡ +); + +876 + `–m_box_·ck_’d +( +box +, +g’li¡ +); + +877 + `evas_objeù_show +( +g’li¡ +); + +878 + `evas_objeù_show +( +box +); + +879 + `–m_objeù_cڋÁ_£t +( +pÝup +, +box +); + +880 + `evas_objeù_show +( +pÝup +); + +881 +ad +-> +pÝupšfo +. +pÝup + =…opup; + +882 +ad +-> +pÝupšfo +. +mode + = mode; + +884 + } +} + +887  + $__gl_pÝup_ü—‹_®bum_m’u +(* +d©a +, cÚ¡ * +t™Ë +, + +888 * +­³nd_func +, * +Ý_func +,  +mode +) + +890 + `gl_dbg +(""); + +891 + `GL_CHECK_VAL +( +d©a +, -1); + +892 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +894 ià( +ad +-> +pÝupšfo +. +pÝup +) { + +895 + `gl_dbg +("Theƒxisted…opup is deleted"); + +896 + `evas_objeù_d– +( +ad +-> +pÝupšfo +. +pÝup +); + +897 +ad +-> +pÝupšfo +. +pÝup + = +NULL +; + +900 +gl_pÝup_m’u_s + * +m’u_d + = +NULL +; + +901 +m’u_d + = ( +gl_pÝup_m’u_s + *) + `ÿÎoc +(1, (gl_popup_menu_s)); + +902 + `GL_CHECK_VAL +( +m’u_d +, -1); + +904 +Evas_Objeù + * +box + = +NULL +; + +905 +Evas_Objeù + * +g’li¡ + = +NULL +; + +906 +Evas_Objeù + * +pÝup + = + `__gl_pÝup_add +( +ad +-> +maššfo +. +wš +, +NULL +, + +907 +t™Ë +, +NULL +, +d©a +); + +908 ià( +pÝup + =ð +NULL +) { + +909 + `GL_FREE +( +m’u_d +); + +913 + `evas_objeù_ev’t_ÿÎback_add +( +pÝup +, +EVAS_CALLBACK_DEL +, + +914 +__gl_pÝup_m’u_d–‘e_cb +, +m’u_d +); + +915 +m’u_d +-> +ad + =‡d; + +916 +m’u_d +-> +pÝup + =…opup; + +917 +m’u_d +-> +Ý_func + = op_func; + +918 + `evas_objeù_d©a_£t +( +pÝup +, +GL_POPUP_OBJ_DATA_KEY +, +m’u_d +); + +920 +box + = + `–m_box_add +( +pÝup +); + +921 + `evas_objeù_size_hšt_weight_£t +( +box +, +EVAS_HINT_EXPAND +, + +922 +EVAS_HINT_EXPAND +); + +924 +g’li¡ + = + `__gl_pÝup_add_g’li¡ +( +m’u_d +, +box +, "1text/popup", + +925 +__gl_pÝup_m’u_g‘_‹xt +, +NULL +, + +926 +­³nd_func +); + +928 ià( + `–m_g’li¡_™ems_couÁ +( +g’li¡ +) > 0) { + +930 + `–m_box_·ck_’d +( +box +, +g’li¡ +); + +931 + `evas_objeù_show +( +g’li¡ +); + +932 + `evas_objeù_show +( +box +); + +934 + `–m_objeù_¡yË_£t +( +pÝup +, "content_no_vhpad"); + +935 + `–m_objeù_cڋÁ_£t +( +pÝup +, +box +); + +937 + `GL_IF_DEL_OBJ +( +g’li¡ +); + +938 + `GL_IF_DEL_OBJ +( +box +); + +940 + `_gl_ui_£t_Œª¦©e_¡r +( +pÝup +, +GL_STR_ID_THERE_IS_ONLY_ONE_ALBUM +); + +943 + `evas_objeù_show +( +pÝup +); + +944 +ad +-> +pÝupšfo +. +pÝup + =…opup; + +945 +ad +-> +pÝupšfo +. +mode + = mode; + +947 + } +} + +949  + $_gl_pÝup_ü—‹ +(* +d©a +, cÚ¡ * +t™Ë +, cÚ¡ * +‹xt +, + +950 cÚ¡ * +¡r1 +, +Evas_Sm¬t_Cb + +cb1 +, cÚ¡ * +d©a1 +, + +951 cÚ¡ * +¡r2 +, +Evas_Sm¬t_Cb + +cb2 +, cÚ¡ * +d©a2 +, + +952 cÚ¡ * +¡r3 +, +Evas_Sm¬t_Cb + +cb3 +, cÚ¡ * +d©a3 +) + +954 + `GL_CHECK_VAL +( +d©a +, -1); + +955 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +957 ià( +ad +-> +pÝupšfo +. +pÝup +) { + +958 + `gl_dbg +("Delteheƒxisted…opup first"); + +959 + `evas_objeù_d– +( +ad +-> +pÝupšfo +. +pÝup +); + +960 +ad +-> +pÝupšfo +. +pÝup + = +NULL +; + +963 +Evas_Objeù + * +pÝup + = +NULL +; + +964 +pÝup + = + `__gl_pÝup_add +( +ad +-> +maššfo +. +wš +, +NULL +, +t™Ë +, +‹xt +, +d©a +); + +965 + `GL_CHECK_VAL +( +pÝup +, -1); + +966 +gl_pÝup_s + * +pÝup_d + = (gl_pÝup_ *) + `ÿÎoc +(1, (gl_popup_s)); + +967 ià( +pÝup_d + =ð +NULL +) { + +968 + `gl_dbgE +("Calloc failed!"); + +969 + `evas_objeù_d– +( +pÝup +); + +972 + `evas_objeù_d©a_£t +( +pÝup +, +GL_POPUP_OBJ_DATA_KEY +, +pÝup_d +); + +974 + `evas_objeù_ev’t_ÿÎback_add +( +pÝup +, +EVAS_CALLBACK_DEL +, + +975 +__gl_pÝup_d–‘e_cb +, +pÝup_d +); + +976 +pÝup_d +-> +ad + =‡d; + +977 +pÝup_d +-> +pÝup + =…opup; + +979 ià( +¡r1 + && +cb1 +) { + +980 +Evas_Objeù + * +bŠ1 + = +NULL +; + +981 +bŠ1 + = + `_gl_but_ü—‹_but_pÝup +( +pÝup +, +¡r1 +, +cb1 +, + +982 +d©a1 +); + +983 + `–m_objeù_·¹_cڋÁ_£t +( +pÝup +, "bu‰Ú1", +bŠ1 +); + +984 +pÝup_d +-> +cb1 + = cb1; + +985 +pÝup_d +-> +d©a1 + = data1; + +987 ià( +¡r2 + && +cb2 +) { + +988 +Evas_Objeù + * +bŠ2 + = +NULL +; + +989 +bŠ2 + = + `_gl_but_ü—‹_but_pÝup +( +pÝup +, +¡r2 +, +cb2 +, + +990 +d©a2 +); + +991 + `–m_objeù_·¹_cڋÁ_£t +( +pÝup +, "bu‰Ú2", +bŠ2 +); + +992 +pÝup_d +-> +cb2 + = cb2; + +993 +pÝup_d +-> +d©a2 + = data2; + +995 ià( +¡r3 + && +cb3 +) { + +996 +Evas_Objeù + * +bŠ3 + = +NULL +; + +997 +bŠ3 + = + `_gl_but_ü—‹_but_pÝup +( +pÝup +, +¡r3 +, +cb3 +, + +998 +d©a3 +); + +999 + `–m_objeù_·¹_cڋÁ_£t +( +pÝup +, "bu‰Ú3", +bŠ3 +); + +1000 +pÝup_d +-> +cb3 + = cb3; + +1001 +pÝup_d +-> +d©a3 + = data3; + +1004 + `evas_objeù_show +( +pÝup +); + +1005 +ad +-> +pÝupšfo +. +pÝup + =…opup; + +1007 + } +} + +1009  + $__gl_pÝup_d–_Ïng_chªged +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +1011 + `GL_CHECK +( +obj +); + +1012  +£l_út + = () +d©a +; + +1013 ià( +£l_út + < 1) { + +1014 + `gl_dbg +("Do‚ot‚eedo updatehe†aungue manual"); + +1017  +d–_ty³ + = () + `evas_objeù_d©a_g‘ +( +obj +, + +1018 +GL_POPUP_OBJ_DEL_CB_TYPE_KEY +); + +1019 * +pÝup_¡r + = +NULL +; + +1020 ià( +d–_ty³ + =ð +GL_POPUP_OBJ_DEL_CB_TYPE_ITEM +) { + +1021 +pÝup_¡r + = + `g_¡rdup_´štf +( +GL_STR_DELETE_PD_FILES +, +£l_út +); + +1023 +pÝup_¡r + = + `g_¡rdup_´štf +( +GL_STR_DELETE_PD_ALBUMS +, +£l_út +); + +1025 + `–m_objeù_‹xt_£t +( +obj +, +pÝup_¡r +); + +1026 + } +} + +1028  + $_gl_pÝup_ü—‹_d– +(* +d©a +,  +mode +, * +£l_cb +, * +d–_cb +, + +1029 * +cb_d©a +) + +1031 + `GL_CHECK_VAL +( +cb_d©a +, -1); + +1032 + `GL_CHECK_VAL +( +d–_cb +, -1); + +1033 + `GL_CHECK_VAL +( +d©a +, -1); + +1034 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1035  +£l_út + = 0; + +1036 * +fmt_¡r + = +NULL +; + +1037 * +pÝup_¡r + = +NULL +; + +1038 * +Úe_£Ëùed + = +NULL +; + +1039 * +mul_£Ëùed + = +NULL +; + +1041 ià( +ad +-> +pÝupšfo +. +pÝup + !ð +NULL +) { + +1042 + `gl_dbg +("Theƒxisted…opup is deleted"); + +1043 + `evas_objeù_d– +( +ad +-> +pÝupšfo +. +pÝup +); + +1046 ià( +£l_cb +) { + +1047 (* +_£l_cb +è(* +d©a +); + +1048 +_£l_cb + = +£l_cb +; + +1049 +£l_út + = + `_£l_cb +( +cb_d©a +); + +1050 + `gl_dbg +("mode: %d", +mode +); + +1051  +mode +) { + +1052  +GL_POPUP_DEL_FILE + : + +1053 +Úe_£Ëùed + = +GL_STR_ID_DELETE_1_FILE +; + +1054 +mul_£Ëùed + = +GL_STR_DELETE_PD_FILES +; + +1056  +GL_POPUP_DEL_ALBUM +: + +1057 +Úe_£Ëùed + = +GL_STR_ID_DELETE_1_ALBUM +; + +1058 +mul_£Ëùed + = +GL_STR_DELETE_PD_ALBUMS +; + +1061 + `gl_dbgE +("Wrong delete mode!"); + +1065 ià( +£l_út + == 1) { + +1066 +pÝup_¡r + = + `g_¡rdup +( +Úe_£Ëùed +); + +1068 +fmt_¡r + = +mul_£Ëùed +; + +1069 +pÝup_¡r + = + `g_¡rdup_´štf +( +fmt_¡r +, +£l_út +); + +1072 +pÝup_¡r + = + `g_¡rdup +( +GL_STR_ID_DELETE_COMFIRMATION +); + +1074 + `gl_dbg +("pÝu°¡ršg: %s", +pÝup_¡r +); + +1076 +Evas_Objeù + * +pÝup + = + `__gl_pÝup_add +( +ad +-> +maššfo +. +wš +, +NULL +, + +1077 +GL_STR_ID_DELETE +, + +1078 +pÝup_¡r +, +d©a +); + +1079 + `GL_CHECK_VAL +( +pÝup +, -1); + +1080 + `evas_objeù_ev’t_ÿÎback_add +( +pÝup +, +EVAS_CALLBACK_DEL +, + +1081 +__gl_pÝup_d–‘e_cb +, +NULL +); + +1085 ià( +£l_út + > 1) { + +1086 + `evas_objeù_sm¬t_ÿÎback_add +( +pÝup +, "language,changed", + +1087 +__gl_pÝup_d–_Ïng_chªged +, + +1088 (*) +£l_út +); + +1089 ià( +mode + =ð +GL_POPUP_DEL_FILE +) + +1090 + `evas_objeù_d©a_£t +( +pÝup +, + +1091 +GL_POPUP_OBJ_DEL_CB_TYPE_KEY +, + +1092 (*) +GL_POPUP_OBJ_DEL_CB_TYPE_ITEM +); + +1094 + `evas_objeù_d©a_£t +( +pÝup +, + +1095 +GL_POPUP_OBJ_DEL_CB_TYPE_KEY +, + +1096 (*) +GL_POPUP_OBJ_DEL_CB_TYPE_ALBUM +); + +1098 + `evas_objeù_d©a_£t +( +pÝup +, +GL_POPUP_OBJ_DEL_CB_KEY +, +d–_cb +); + +1099 + `evas_objeù_d©a_£t +( +pÝup +, +GL_POPUP_OBJ_DEL_CB_DATA_KEY +, +cb_d©a +); + +1101 +Evas_Objeù + * +bŠ1 + = +NULL +; + +1102 +Evas_Objeù + * +bŠ2 + = +NULL +; + +1103 +bŠ1 + = + `_gl_but_ü—‹_but_pÝup +( +pÝup +, +GL_STR_ID_CANCEL +, + +1104 +__gl_pÝup_d–_»¥_cb +, +d©a +); + +1105 +bŠ2 + = + `_gl_but_ü—‹_but_pÝup +( +pÝup +, +GL_STR_ID_DELETE +, + +1106 +__gl_pÝup_d–_»¥_cb +, +d©a +); + +1107 + `–m_objeù_·¹_cڋÁ_£t +( +pÝup +, "bu‰Ú1", +bŠ1 +); + +1108 + `–m_objeù_·¹_cڋÁ_£t +( +pÝup +, "bu‰Ú2", +bŠ2 +); + +1110 + `evas_objeù_show +( +pÝup +); + +1111 +ad +-> +pÝupšfo +. +pÝup + =…opup; + +1112 +ad +-> +pÝupšfo +. +mode + = +GL_POPUP_MEDIA_DELETE +; + +1114 + `GL_FREE +( +pÝup_¡r +); + +1116 + } +} + +1118  + $gl_pÝup_ü—‹_pÝup +(* +d©a +, +gl_pÝup_mode + +mode +, * +desc +) + +1120 + `GL_CHECK_VAL +( +d©a +, -1); + +1121 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1122 + `gl_dbg +(""); + +1124 ià( +ad +-> +pÝupšfo +. +pÝup +) { + +1125 + `gl_dbg +("Theƒxisted…opup is deleted"); + +1126 + `evas_objeù_d– +( +ad +-> +pÝupšfo +. +pÝup +); + +1127 +ad +-> +pÝupšfo +. +pÝup + = +NULL +; + +1130 + `gl_pb_d–_pb¬ +( +ad +); + +1131 +Evas_Objeù + * +pÝup + = +NULL +; + +1133 ià( +mode + =ð +GL_POPUP_ALBUM_MEMORY_FULL +) { + +1134 +pÝup + = + `__gl_pÝup_add +( +ad +-> +maššfo +. +wš +, +NULL +, +GL_DATA_SAVE_FAILED +, +desc +, + +1135 +d©a +); + +1137 +pÝup + = + `__gl_pÝup_add +( +ad +-> +maššfo +. +wš +, +NULL +, NULL, +desc +, + +1138 +d©a +); + +1141 + `GL_CHECK_VAL +( +pÝup +, -1); + +1142 + `evas_objeù_ev’t_ÿÎback_add +( +pÝup +, +EVAS_CALLBACK_DEL +, + +1143 +__gl_pÝup_d–‘e_cb +, +NULL +); + +1145 +Evas_Objeù + * +bŠ1 + = +NULL +; + +1146 +Evas_Objeù + * +bŠ2 + = +NULL +; + +1148  +mode +) { + +1149  +GL_POPUP_NOBUT +: + +1150  +GL_POPUP_NOBUT_APPEXIT +: + +1151 + `__gl_pÝup_add_tim” +( +ad +, +GL_POPUP_TIMEOUT_3S +); + +1153  +GL_POPUP_ONEBUT +: + +1154 +bŠ1 + = + `_gl_but_ü—‹_but_pÝup +( +pÝup +, +GL_STR_ID_CLOSE +, + +1155 +__gl_pÝup_»¥_cb +, +d©a +); + +1156 + `–m_objeù_·¹_cڋÁ_£t +( +pÝup +, "bu‰Ú1", +bŠ1 +); + +1158  +GL_POPUP_ALBUM_NEW_EMPTY +: + +1159  +GL_POPUP_ALBUM_NEW_DUPLICATE +: + +1160  +GL_POPUP_ALBUM_NEW_INVALID +: + +1161  +GL_POPUP_ALBUM_RENAME_EMPTY +: + +1162  +GL_POPUP_ALBUM_RENAME_DUPLICATE +: + +1163  +GL_POPUP_ALBUM_RENAME_INVALID +: + +1164 +bŠ1 + = + `_gl_but_ü—‹_but_pÝup +( +pÝup +, +GL_STR_ID_NO +, + +1165 +__gl_pÝup_»¥_cb +, +d©a +); + +1166 + `–m_objeù_·¹_cڋÁ_£t +( +pÝup +, "bu‰Ú1", +bŠ1 +); + +1167 +bŠ2 + = + `_gl_but_ü—‹_but_pÝup +( +pÝup +, +GL_STR_ID_YES +, + +1168 +__gl_pÝup_»¥_cb +, +d©a +); + +1169 + `–m_objeù_·¹_cڋÁ_£t +( +pÝup +, "bu‰Ú2", +bŠ2 +); + +1170 + `gl_dbg +("Hide Entry cursor‡nd IMF"); + +1171 + `_gl_ed™f›ld_hide_imf +( +ad +); + +1173  +GL_POPUP_ALBUM_MEMORY_FULL +: + +1174 +bŠ1 + = + `_gl_but_ü—‹_but_pÝup +( +pÝup +, +GL_STR_ID_CANCEL_ABB +, + +1175 +__gl_pÝup_»¥_cb +, +d©a +); + +1176 + `–m_objeù_·¹_cڋÁ_£t +( +pÝup +, "bu‰Ú1", +bŠ1 +); + +1177 +bŠ2 + = + `_gl_but_ü—‹_but_pÝup +( +pÝup +, +GL_STR_SETTINGS +, + +1178 +__gl_pÝup_»¥_cb +, +d©a +); + +1179 + `–m_objeù_·¹_cڋÁ_£t +( +pÝup +, "bu‰Ú2", +bŠ2 +); + +1183 + `gl_dbgE +("Other…opup mode..."); + +1187 + `evas_objeù_show +( +pÝup +); + +1190 + `–m_objeù_focus_£t +( +pÝup +, +EINA_TRUE +); + +1192 ià( +mode + =ð +GL_POPUP_ALBUM_MEMORY_FULL +) { + +1193 +ad +-> +pÝupšfo +. +memÜy_fuÎ_pÝup + = +pÝup +; + +1195 +ad +-> +pÝupšfo +. +pÝup + =…opup; + +1197 +ad +-> +pÝupšfo +. +mode + = mode; + +1200 + } +} + +1202 +Evas_Objeù + * + $_gl_pÝup_ü—‹_loÿl +(* +d©a +, +gl_pÝup_mode + +mode +, * +desc +) + +1204 + `GL_CHECK_NULL +( +d©a +); + +1205 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1206 + `gl_dbg +(""); + +1208 +Evas_Objeù + * +wš + = +ad +-> +maššfo +.win; + +1209 ià( +ad +-> +maššfo +. +’Œy_wš +) + +1210 +wš + = +ad +-> +maššfo +. +’Œy_wš +; + +1212 +Evas_Objeù + * +pÝup + = + `__gl_pÝup_add_loÿl +( +wš +, +NULL +, NULL, +desc +, +d©a +); + +1213 + `GL_CHECK_NULL +( +pÝup +); + +1214 + `evas_objeù_d©a_£t +( +pÝup +, +GL_POPUP_OBJ_DATA_KEY +, +d©a +); + +1215 + `evas_objeù_ev’t_ÿÎback_add +( +pÝup +, +EVAS_CALLBACK_DEL +, + +1216 +__gl_pÝup_loÿl_d–‘e_cb +, +d©a +); + +1217 +Evas_Objeù + * +bŠ1 + = +NULL +; + +1219  +mode +) { + +1220  +GL_POPUP_NOBUT +: + +1221 + `GL_IF_DEL_TIMER +( +ad +-> +pÝupšfo +. +d–_tim” +); + +1222 +ad +-> +pÝupšfo +. +d–_tim” + = + `ecÜe_tim”_add +( +GL_POPUP_TIMEOUT_3S +, + +1223 +__gl_pÝup_loÿl_timeout_cb +, + +1224 +pÝup +); + +1225 + `evas_objeù_sm¬t_ÿÎback_add +( +pÝup +, "block,clicked", + +1226 +__gl_pÝup_loÿl_block_þicked_cb +, + +1227 +pÝup +); + +1229  +GL_POPUP_ONEBUT +: + +1230 +bŠ1 + = + `_gl_but_ü—‹_but_pÝup +( +pÝup +, +GL_STR_ID_OK +, + +1231 +__gl_pÝup_loÿl_»¥_cb +, +pÝup +); + +1232 + `–m_objeù_·¹_cڋÁ_£t +( +pÝup +, "bu‰Ú1", +bŠ1 +); + +1235 + `gl_dbgW +("Oth”…Ýu°mode[%d]", +mode +); + +1239 + `evas_objeù_show +( +pÝup +); + +1240 + `–m_objeù_focus_£t +( +pÝup +, +EINA_FALSE +); + +1241  +pÝup +; + +1242 + } +} + +1244 #ifdeà +SUPPORT_SLIDESHOW + + +1245  + $_gl_pÝup_ü—‹_¦ideshow +(* +d©a +, * +Ý_func +) + +1247 + `gl_dbg +(""); + +1248 + `GL_CHECK_VAL +( +d©a +, -1); + +1249 + `__gl_pÝup_ü—‹_m’u +( +d©a +, +GL_STR_ID_SLIDESHOW +, + +1250 +__gl_pÝup_¦ideshow_­³nd +, +Ý_func +, + +1251 +GL_POPUP_SLIDESHOW +); + +1252 + `_gl_pÝup_add_block_ÿÎback +( +d©a +); + +1254 + } +} + +1257  + $_gl_pÝup_ü—‹_move +(* +d©a +, * +Ý_func +) + +1259 + `gl_dbg +(""); + +1260 + `GL_CHECK_VAL +( +d©a +, -1); + +1261 + `__gl_pÝup_ü—‹_®bum_m’u +( +d©a +, +GL_STR_ID_MOVE +, + +1262 +__gl_pÝup_move_­³nd +, +Ý_func +, + +1263 +GL_POPUP_MEDIA_MOVE +); + +1264 + `_gl_pÝup_add_bu‰Ús +( +d©a +, +GL_STR_ID_NEW_ALBUM +, + +1265 +__gl_pÝup_bŠ_Ãw_®bum_cb +); + +1267 + } +} + +1269  + $_gl_pÝup_ü—‹_cÝy +(* +d©a +, * +Ý_func +) + +1271 + `gl_dbg +(""); + +1272 + `GL_CHECK_VAL +( +d©a +, -1); + +1273 + `__gl_pÝup_ü—‹_®bum_m’u +( +d©a +, +GL_STR_ID_COPY +, + +1274 +__gl_pÝup_move_­³nd +, +Ý_func +, + +1275 +GL_POPUP_MEDIA_MOVE +); + +1276 + `_gl_pÝup_add_bu‰Ús +( +d©a +, +GL_STR_ID_NEW_ALBUM +, + +1277 +__gl_pÝup_bŠ_Ãw_®bum_cb +); + +1279 + } +} + +1281  + $_gl_pÝup_ü—‹_move_w™h_­³nd +(* +d©a +, * +Ý_func +, * +­³nd_func +, cÚ¡ * +t™Ë +) + +1283 + `gl_dbg +(""); + +1284 + `GL_CHECK_VAL +( +d©a +, -1); + +1285 + `__gl_pÝup_ü—‹_®bum_m’u +( +d©a +, +t™Ë +, +­³nd_func +, +Ý_func +, + +1286 +GL_POPUP_MEDIA_MOVE +); + +1288 + } +} + +1290  + $_gl_pÝup_ü—‹_lÚg´es£d_®bum_w™h_­³nd +(* +d©a +, * +Ý_func +, * +­³nd_func +, cÚ¡ * +t™Ë +) + +1292 + `gl_dbg +(""); + +1293 + `GL_CHECK_VAL +( +d©a +, -1); + +1294 + `__gl_pÝup_ü—‹_m’u +( +d©a +, +t™Ë +, +­³nd_func +, +Ý_func +, + +1295 +GL_POPUP_LONGPRESSED +); + +1296 + `_gl_pÝup_add_block_ÿÎback +( +d©a +); + +1298 + } +} + +1300  + $_gl_pÝup_ü—‹_lÚg´es£d_thumb_w™h_­³nd +(* +d©a +, * +Ý_func +, * +­³nd_func +, cÚ¡ * +t™Ë +) + +1302 + `gl_dbg +(""); + +1303 + `GL_CHECK_VAL +( +d©a +, -1); + +1304 + `__gl_pÝup_ü—‹_m’u +( +d©a +, +t™Ë +, +­³nd_func +, +Ý_func +, + +1305 +GL_POPUP_LONGPRESSED +); + +1306 + `_gl_pÝup_add_block_ÿÎback +( +d©a +); + +1308 + } +} + +1310  + $_gl_pÝup_ü—‹_lÚg´es£d_thumb +(* +d©a +, * +Ý_func +, * +fže_Çme +) + +1312 + `gl_dbg +(""); + +1313 + `GL_CHECK_VAL +( +d©a +, -1); + +1314 + `__gl_pÝup_ü—‹_m’u +( +d©a +, +fže_Çme +, + +1315 +__gl_pÝup_thumb_lÚg´es£d_­³nd +, +Ý_func +, + +1316 +GL_POPUP_LONGPRESSED +); + +1317 + `_gl_pÝup_add_block_ÿÎback +( +d©a +); + +1319 + } +} + +1321  + $_gl_pÝup_add_bu‰Ús +(* +d©a +, cÚ¡ * +‹xt +, +Evas_Sm¬t_Cb + +cb_func +) + +1323 +Evas_Objeù + * +bŠ1 + = +NULL +; + +1324 +Evas_Objeù + * +bŠ2 + = +NULL +; + +1325 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1327 +bŠ1 + = + `_gl_but_ü—‹_but_pÝup +( +ad +-> +pÝupšfo +. +pÝup +, +GL_STR_ID_CANCEL +, + +1328 +__gl_pÝup_»¥_cb +, +d©a +); + +1329 + `–m_objeù_·¹_cڋÁ_£t +( +ad +-> +pÝupšfo +. +pÝup +, "bu‰Ú1", +bŠ1 +); + +1331 * +m’u_d©a + = + `evas_objeù_d©a_g‘ +( +ad +-> +pÝupšfo +. +pÝup +, + +1332 +GL_POPUP_OBJ_DATA_KEY +); + +1333 +bŠ2 + = + `_gl_but_ü—‹_but_pÝup +( +ad +-> +pÝupšfo +. +pÝup +, +‹xt +, +cb_func +, + +1334 +m’u_d©a +); + +1335 + `–m_objeù_·¹_cڋÁ_£t +( +ad +-> +pÝupšfo +. +pÝup +, "bu‰Ú2", +bŠ2 +); + +1337 + } +} + +1339  + $_gl_pÝup_add_block_ÿÎback +(* +d©a +) + +1341 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1342 + `evas_objeù_sm¬t_ÿÎback_add +( +ad +-> +pÝupšfo +. +pÝup +, "block,clicked", + +1343 +__gl_pÝup_block_þicked_cb +, +d©a +); + +1345 + } +} + +1347  + $_gl_time_v›w_£Ëùed_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ev’t_šfo +) + +1349 + `gl_dbg +("ENTRY"); + +1350 + `GL_CHECK +( +d©a +); + +1351 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1352 ià( +ad +-> +pÝupšfo +. +pÝup +) { + +1353 + `evas_objeù_d– +( +ad +-> +pÝupšfo +. +pÝup +); + +1354 +ad +-> +pÝupšfo +. +pÝup + = +NULL +; + +1356  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +1357 ià( +v›w_mode + =ð +GL_VIEW_TIMELINE +) { + +1358 + `gl_dbg +("EXIT 1"); + +1361 + `_gl_ù¾_show_v›w +( +d©a +, "Timeline"); + +1362 + `gl_dbg +("EXIT"); + +1363 + } +} + +1365  + $_gl_®bum_v›w_£Ëùed_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ev’t_šfo +) + +1367 + `gl_dbg +("ENTRY"); + +1368 + `GL_CHECK +( +d©a +); + +1369 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1370 ià( +ad +-> +pÝupšfo +. +pÝup +) { + +1371 + `evas_objeù_d– +( +ad +-> +pÝupšfo +. +pÝup +); + +1372 +ad +-> +pÝupšfo +. +pÝup + = +NULL +; + +1374  +v›w_mode + = + `gl_g‘_v›w_mode +( +ad +); + +1375 ià( +v›w_mode + =ð +GL_VIEW_ALBUMS +) { + +1376 + `gl_dbg +("EXIT 1"); + +1379 + `_gl_ù¾_show_v›w +( +d©a +, +GL_STR_ALBUMS +); + +1380 + `gl_dbg +("EXIT"); + +1381 + } +} + +1383  + $_gl_asc_sÜt_£Ëùed_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ev’t_šfo +) + +1385 + `gl_dbg +("ENTRY"); + +1386 + `GL_CHECK +( +d©a +); + +1387 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1388 ià( +ad +-> +pÝupšfo +. +pÝup +) { + +1389 + `evas_objeù_d– +( +ad +-> +pÝupšfo +. +pÝup +); + +1390 +ad +-> +pÝupšfo +. +pÝup + = +NULL +; + +1392 ià( +ad +-> +maššfo +. +v›w_mode + =ð +GL_VIEW_THUMBS +) { + +1393 ià( +ad +-> +gridšfo +. +medŸ_di¥Ïy_Üd” + =ð +ORDER_ASC +) { + +1394 + `gl_dbg +("EXIT 1"); + +1397 +ad +-> +gridšfo +. +medŸ_di¥Ïy_Üd” + = +ORDER_ASC +; + +1398 + `_gl_thumbs_upd©e_™ems +( +ad +); + +1399 } ià( +ad +-> +maššfo +. +v›w_mode + =ð +GL_VIEW_TIMELINE +) { + +1400 + `__gl_tim–še_asc_mode_£t +( +ad +); + +1402 + `gl_dbg +("EXIT"); + +1403 + } +} + +1405  + $_gl_desc_sÜt_£Ëùed_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ev’t_šfo +) + +1407 + `gl_dbg +("ENTRY"); + +1408 + `GL_CHECK +( +d©a +); + +1409 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1410 ià( +ad +-> +pÝupšfo +. +pÝup +) { + +1411 + `evas_objeù_d– +( +ad +-> +pÝupšfo +. +pÝup +); + +1412 +ad +-> +pÝupšfo +. +pÝup + = +NULL +; + +1414 ià( +ad +-> +maššfo +. +v›w_mode + =ð +GL_VIEW_THUMBS +) { + +1415 ià( +ad +-> +gridšfo +. +medŸ_di¥Ïy_Üd” + =ð +ORDER_DESC +) { + +1416 + `gl_dbg +("EXIT 1"); + +1419 +ad +-> +gridšfo +. +medŸ_di¥Ïy_Üd” + = +ORDER_DESC +; + +1420 + `_gl_thumbs_upd©e_™ems +( +ad +); + +1421 } ià( +ad +-> +maššfo +. +v›w_mode + =ð +GL_VIEW_TIMELINE +) { + +1422 + `__gl_tim–še_desc_mode_£t +( +ad +); + +1424 + `gl_dbg +("EXIT"); + +1425 + } +} + +1427  + $_gl_li¡_v›was_pÝup_cb_add +( +Evas_Objeù + * +bŠ +, Evas_Objeù * +bŠ1 +, * +ad +) + +1429 + `evas_objeù_sm¬t_ÿÎback_add +( +bŠ +, "þicked", +_gl_time_v›w_£Ëùed_cb +, +ad +); + +1430 + `evas_objeù_sm¬t_ÿÎback_add +( +bŠ1 +, "þicked", +_gl_®bum_v›w_£Ëùed_cb +, +ad +); + +1431 + } +} + +1433  + $_gl_li¡_sÜtby_pÝup_cb_add +( +Evas_Objeù + * +bŠ +, Evas_Objeù * +bŠ1 +, * +ad +) + +1435 + `evas_objeù_sm¬t_ÿÎback_add +( +bŠ +, "þicked", +_gl_desc_sÜt_£Ëùed_cb +, +ad +); + +1436 + `evas_objeù_sm¬t_ÿÎback_add +( +bŠ1 +, "þicked", +_gl_asc_sÜt_£Ëùed_cb +, +ad +); + +1437 + } +} + +1439  + $_gl_li¡_pÝ_ü—‹ +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +, * +t™Ë +, * +fœ¡_‹xt +, * +£cÚd_‹xt +,  +¡©e_šdex +) + +1441 + `gl_dbg +("ENTRY"); + +1442 + `GL_CHECK +( +d©a +); + +1443 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1444  +w +, +h +; + +1445 + `_gl_ùxpÝup_d– +( +d©a +); + +1446 +Evas_Objeù + * +pÝup + = + `–m_pÝup_add +( +ad +-> +maššfo +. +wš +); + +1447 + `evas_objeù_size_hšt_weight_£t +( +pÝup +, +EVAS_HINT_EXPAND +, + +1448 +EVAS_HINT_EXPAND +); + +1449 + `_gl_ui_£t_Œª¦©e_·¹_¡r +( +pÝup +, "t™Ë,‹xt", +t™Ë +); + +1451 +Evas_Objeù + * +ly + = + `–m_Ïyout_add +( +pÝup +); + +1452 +Evas_Objeù + * +ly1 + = + `–m_Ïyout_add +( +ly +); + +1453 + `–m_Ïyout_fže_£t +( +ly +, +GL_EDJ_FILE +, "list_popup_swallow_ly"); + +1454 + `–m_Ïyout_fže_£t +( +ly1 +, +GL_EDJ_FILE +, "list_popup_content_ly"); + +1455 + `_gl_ui_£t_Œª¦©e_·¹_¡r +( +ly1 +, "–m.‹xt", +fœ¡_‹xt +); + +1456 + `_gl_ui_£t_Œª¦©e_·¹_¡r +( +ly1 +, "–m.‹xt.£cÚd", +£cÚd_‹xt +); + +1458 +Evas_Objeù + * +group_¿dio + = + `–m_¿dio_add +( +ly1 +); + +1459 + `–m_¿dio_¡©e_v®ue_£t +( +group_¿dio +, 0); + +1460 + `–m_¿dio_v®ue_£t +( +group_¿dio +, 0); + +1462 +Evas_Objeù + * +¿dio + = + `–m_¿dio_add +( +ly1 +); + +1463 +Evas_Objeù + * +¿dio1 + = + `–m_¿dio_add +( +ly1 +); + +1464 + `–m_¿dio_group_add +( +¿dio +, +group_¿dio +); + +1465 + `–m_¿dio_¡©e_v®ue_£t +( +¿dio +, 0); + +1466 + `evas_objeù_´Ýag©e_ev’ts_£t +( +¿dio +, +EINA_TRUE +); + +1467 + `evas_objeù_show +( +¿dio +); + +1468 + `–m_objeù_·¹_cڋÁ_£t +( +ly1 +,"–m.sw®low", +¿dio +); + +1470 + `–m_¿dio_group_add +( +¿dio1 +, +group_¿dio +); + +1471 + `–m_¿dio_¡©e_v®ue_£t +( +¿dio1 +, 1); + +1472 + `–m_¿dio_v®ue_£t +( +group_¿dio +, +¡©e_šdex +); + +1473 + `evas_objeù_´Ýag©e_ev’ts_£t +( +¿dio1 +, +EINA_TRUE +); + +1474 + `evas_objeù_show +( +¿dio1 +); + +1475 + `–m_objeù_·¹_cڋÁ_£t +( +ly1 +, "–m.sw®low.£cÚd", +¿dio1 +); + +1477 +Evas_Objeù + * +bŠ + = + `–m_bu‰Ú_add +( +ly1 +); + +1478 +Evas_Objeù + * +bŠ1 + = + `–m_bu‰Ú_add +( +ly1 +); + +1479 + `–m_objeù_¡yË_£t +( +bŠ +, "transparent"); + +1480 + `–m_objeù_¡yË_£t +( +bŠ1 +, "transparent"); + +1481 + `–m_objeù_·¹_cڋÁ_£t +( +ly1 +, "bu‰Ú1", +bŠ +); + +1482 + `–m_objeù_·¹_cڋÁ_£t +( +ly1 +, "bu‰Ú2", +bŠ1 +); + +1484 ià( + `¡rcmp +( +t™Ë +, +GL_STR_SORT +)) { + +1485 + `_gl_li¡_v›was_pÝup_cb_add +( +bŠ +, +bŠ1 +, +ad +); + +1487 + `_gl_li¡_sÜtby_pÝup_cb_add +( +bŠ +, +bŠ1 +, +ad +); + +1489 +ad +-> +pÝupšfo +. +pÝup + =…opup; + +1490 + `–m_objeù_·¹_cڋÁ_£t +( +ly +,"li¡", +ly1 +); + +1491 + `–m_objeù_cڋÁ_£t +( +pÝup +, +ly +); + +1492 + `evas_objeù_show +( +pÝup +); + +1493 + `evas_objeù_geom‘ry_g‘ +( +ad +-> +maššfo +. +wš +, +NULL +, NULL, & +w +, & +h +); + +1494 +Edje_Mes§ge_IÁ + * +msg + = (Edje_Mes§ge_IÁ *) + `m®loc +((Edje_Message_Int) + ()); + +1495 + `GL_CHECK +( +msg +); + +1496 ià(( +w + =ð +GL_STR_SCREEN_WIDTH_WVGA + && +h + =ð +GL_STR_SCREEN_HEIGHT_WVGA +) || (w == GL_STR_SCREEN_HEIGHT_WVGA && h == GL_STR_SCREEN_WIDTH_WVGA)) { + +1497 +msg +-> +v® + = +GL_POPUP_GENLIST_HEIGHT_WVGA +; + +1498 + `edje_objeù_mes§ge_£nd +( + `–m_Ïyout_edje_g‘ +( +ly +è, +EDJE_MESSAGE_INT +, 2, +msg +); + +1499 } ià(( +w + =ð +GL_STR_SCREEN_WIDTH_QHD + && +h + =ð +GL_STR_SCREEN_HEIGHT_QHD +) || (w == GL_STR_SCREEN_HEIGHT_QHD && h == GL_STR_SCREEN_WIDTH_QHD)) { + +1500 +msg +-> +v® + = +GL_POPUP_GENLIST_HEIGHT_QHD +; + +1501 + `edje_objeù_mes§ge_£nd +( + `–m_Ïyout_edje_g‘ +( +ly +), +EDJE_MESSAGE_INT +, 2, +msg +); + +1502 } ià(( +w + =ð +GL_STR_SCREEN_WIDTH_HD + && +h + =ð +GL_STR_SCREEN_HEIGHT_HD +) || (w == GL_STR_SCREEN_HEIGHT_HD && h == GL_STR_SCREEN_WIDTH_HD)) { + +1503 +msg +-> +v® + = +GL_POPUP_GENLIST_HEIGHT_HD +; + +1504 + `edje_objeù_mes§ge_£nd +( + `–m_Ïyout_edje_g‘ +( +ly +), +EDJE_MESSAGE_INT +, 2, +msg +); + +1506 + `ä“ +( +msg +); + +1507 + `“xt_objeù_ev’t_ÿÎback_add +( +pÝup +, +EEXT_CALLBACK_BACK +, + +1508 +“xt_pÝup_back_cb +, +NULL +); + +1509 + `evas_objeù_»³©_ev’ts_£t +( +pÝup +, +EINA_FALSE +); + +1510 + `gl_dbg +("EXIT"); + +1511 + } +} + +1513  + $__gl_thumbs_ed™_ÿnûl_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +1515 + `GL_CHECK +( +d©a +); + +1516 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1517 + `gl_dbg +(""); + +1518 ià( +ad +-> +pÝupšfo +. +pÝup +) { + +1519 + `evas_objeù_d– +( +ad +-> +pÝupšfo +. +pÝup +); + +1521 +ad +-> +pÝupšfo +. +pÝup + = +NULL +; + +1522 + } +} + +1524  + $__gl_thumbs_ed™_move_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +1526 + `GL_CHECK +( +d©a +); + +1527 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1528 + `gl_dbg +(""); + +1530 ià( +ad +-> +pÝupšfo +. +pÝup +) { + +1531 + `evas_objeù_d– +( +ad +-> +pÝupšfo +. +pÝup +); + +1533 +ad +-> +pÝupšfo +. +pÝup + = +NULL +; + +1534 +ad +-> +®bumšfo +. +fže_mc_mode + = +GL_MC_MOVE +; + +1535 ià( +ad +-> +gridšfo +. +™ +) { + +1536 +gl_™em + * +g™em + = +NULL +; + +1537  +út + = + `_gl_d©a_£Ëùed_li¡_couÁ +( +ad +); + +1538  +i +; + +1539  +i + = 0; i < +út +; i++) { + +1540 +g™em + = + `eša_li¡_Áh +( +ad +-> +£lšfo +. +–i¡ +, +i +); + +1541 + `GL_CHECK +( +g™em +); + +1542 + `GL_CHECK +( +g™em +-> +®bum +); + +1543 + `GL_CHECK +( +g™em +-> +®bum +-> +þu¡” +); + +1544 ià(! + `¡rcmp +( +ad +-> +®bumšfo +. +·th +, +g™em +-> +®bum +-> +þu¡” +->path)) { + +1545 + `_gl_pÝup_ü—‹_loÿl +( +d©a +, +GL_POPUP_NOBUT +, + +1546 +GL_STR_ID_SAME_DESTINATION_ERROR_MSG +); + +1550 + `gl_move_cÝy_to_®bum +( +ad +); + +1552 + } +} + +1554  + $__gl_thumbs_ed™_ü—‹_®bum_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +1556 + `GL_CHECK +( +d©a +); + +1557 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1558 + `gl_dbg +(""); + +1560 ià( +ad +-> +pÝupšfo +. +pÝup +) { + +1561 + `evas_objeù_d– +( +ad +-> +pÝupšfo +. +pÝup +); + +1563 +ad +-> +pÝupšfo +. +pÝup + = +NULL +; + +1564 +ad +-> +®bumšfo +. +·th + = +NULL +; + +1565 +ad +-> +®bumšfo +. +fže_mc_mode + = +GL_MC_COPY +; + +1566 ià( + `_gl_thumbs_g‘_ed™_mode +( +d©a +è=ð +GL_THUMBS_EDIT_COPY +) { + +1567 +ad +-> +®bumšfo +. +fže_mc_mode + = +GL_MC_COPY +; + +1568 } ià( + `_gl_thumbs_g‘_ed™_mode +( +d©a +è=ð +GL_THUMBS_EDIT_MOVE +) { + +1569 +ad +-> +®bumšfo +. +fže_mc_mode + = +GL_MC_MOVE +; + +1571 + `_gl_®bums_Ãw_ü—‹_v›w +( +ad +, +gl_move_cÝy_to_®bum +); + +1573 + } +} + +1575  + $__gl_thumbs_ed™_cÝy_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +1577 + `GL_CHECK +( +d©a +); + +1578 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1579 + `gl_dbg +(""); + +1581 ià( +ad +-> +pÝupšfo +. +pÝup +) { + +1582 + `evas_objeù_d– +( +ad +-> +pÝupšfo +. +pÝup +); + +1584 +ad +-> +pÝupšfo +. +pÝup + = +NULL +; + +1585 +ad +-> +®bumšfo +. +fže_mc_mode + = +GL_MC_COPY +; + +1586 ià( +ad +-> +gridšfo +. +™ +) { + +1587 + `gl_move_cÝy_to_®bum +( +ad +); + +1589 + } +} + +1591  + $__gl_pÝup_move_cÝy_£l_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +1593 + `gl_dbg +(""); + +1594 + `GL_CHECK +( +obj +); + +1595 + `GL_CHECK +( +d©a +); + +1596 +gl_pÝup_m’u_s + * +m’u_d + = + `evas_objeù_d©a_g‘ +( +obj +, +GL_POPUP_OBJ_DATA_KEY +); + +1597 + `GL_CHECK +( +m’u_d +); + +1598 + `GL_CHECK +( +m’u_d +-> +ad +); + +1599 +gl_­pd©a + * +ad + = +m’u_d +->ad; + +1600 + `GL_FREEIF +( +ad +-> +®bumšfo +. +·th +); + +1602 +Elm_Objeù_I‹m + * +™ + = (Elm_Objeù_I‹m *) +ei +; + +1603 +Elm_Objeù_I‹m + * +™_f + = +NULL +; + +1604 +Elm_Objeù_I‹m + * +™_l + = +NULL +; + +1605 +boÞ + +æag + = +çl£ +; + +1607 +™_f + = + `–m_g’li¡_fœ¡_™em_g‘ +( +obj +); + +1608 +™_l + = + `–m_g’li¡_Ï¡_™em_g‘ +( +obj +); + +1610 ià( +™_f + && +™_l +) { + +1611 ià( + `–m_g’li¡_™em_£Ëùed_g‘ +( +™_l +)) { + +1612 +æag + = +Œue +; + +1614  +™_f + !ð +NULL + && it_à!ð +™_l + && ! +æag +) { + +1615 ià( + `–m_g’li¡_™em_£Ëùed_g‘ +( +™_f +)) { + +1616 +æag + = +Œue +; + +1619 +™_f + = + `–m_g’li¡_™em_Ãxt_g‘ +(it_f); + +1623 ià( +æag +) { + +1624 +ad +-> +gridšfo +. +™ + = it; + +1625 ià( +d©a +) { + +1626 +ad +-> +®bumšfo +. +·th + = + `¡rdup +((*) +d©a +); + +1628 ià( + `_gl_thumbs_g‘_ed™_mode +( +ad +è=ð +GL_THUMBS_EDIT_COPY +) { + +1629 + `__gl_thumbs_ed™_cÝy_cb +( +ad +, +NULL +, NULL); + +1630 } ià( + `_gl_thumbs_g‘_ed™_mode +( +ad +è=ð +GL_THUMBS_EDIT_MOVE +) { + +1631 + `__gl_thumbs_ed™_move_cb +( +ad +, +NULL +, NULL); + +1635 + } +} + +1637 * + $__gl_pÝup_m’u_g‘_g’li¡_‹xt +(* +d©a +, +Evas_Objeù + * +obj +, + +1638 cÚ¡ * +·¹ +) + +1640 + `gl_dbg +(""); + +1641 +gl_þu¡” + * +®bum + = (gl_þu¡” *) +d©a +; + +1642 * +Ïb– + = +NULL +; + +1643 +Ïb– + = + `_gl_g‘_i18n_®bum_Çme +( +®bum +-> +þu¡” +); + +1645 ià(! + `¡rcmp +( +·¹ +, "elm.text")) { + +1646 * +¡r + = +NULL +; + +1647 + `GL_CHECK_NULL +( +Ïb– +); + +1648 +¡r + = + `_gl_¡r +((*) +Ïb– +); + +1649 ià( +¡r +) + +1650  + `¡rdup +( +¡r +); + +1652  +NULL +; + +1653 + } +} + +1655 +Evas_Objeù + * + $__gl_pÝup_m’u_g‘_g’li¡_cڋÁ +(* +d©a +, +Evas_Objeù + * +obj +, + +1656 cÚ¡ * +·¹ +) + +1658 +gl_þu¡” + * +®bum_™em + = (gl_þu¡” *) +d©a +; + +1659 +Evas_Objeù + * +ic + = + `–m_icÚ_add +( +obj +); + +1661 ià(! + `¡rcmp +( +·¹ +, "elm.swallow.icon")) { + +1662 ià( +GL_STORE_T_MMC + =ð +®bum_™em +-> +þu¡” +-> +ty³ +) { + +1663 + `GL_ICON_SET_FILE +( +ic +, +GL_ICON_MMC +); + +1664 + `evas_objeù_size_hšt_a¥eù_£t +( +ic +, +EVAS_ASPECT_CONTROL_VERTICAL +, 1, 1); + +1666 + `GL_ICON_SET_FILE +( +ic +, +GL_ICON_FOLDER +); + +1667 + `evas_objeù_size_hšt_a¥eù_£t +( +ic +, +EVAS_ASPECT_CONTROL_VERTICAL +, 1, 1); + +1670  +ic +; + +1671 + } +} + +1673  + $_gl_g’li¡_™em_­’d +(* +d©a +, +Evas_Objeù + * +gl +, +Elm_G’li¡_I‹m_CÏss + * +gic +) + +1675 + `GL_CHECK +( +gic +); + +1676 + `GL_CHECK +( +gl +); + +1677 + `GL_CHECK +( +d©a +); + +1678 +gl_pÝup_m’u_s + * +m’u_d + = (gl_pÝup_m’u_ *) +d©a +; + +1679 + `GL_CHECK +( +m’u_d +-> +ad +); + +1680 +gl_­pd©a + * +ad + = +m’u_d +->ad; + +1681 + `GL_CHECK +( +ad +-> +maššfo +. +wš +); + +1682  +i + = 0; + +1683 +Eša_Li¡ + * +®bum_li¡ + = +NULL +; + +1684  +®l_couÁ + = 0; + +1685 +gl_þu¡” + * +®bum + = +NULL +; + +1687 + `evas_objeù_d©a_£t +( +gl +, +GL_POPUP_OBJ_DATA_KEY +, +m’u_d +); + +1688 ià( +ad +-> +®bumšfo +. +–i¡ + &&‡d->®bumšfo.–i¡-> +þi¡ +) { + +1689 +®bum_li¡ + = +ad +-> +®bumšfo +. +–i¡ +-> +þi¡ +; + +1690 +®l_couÁ + = + `eša_li¡_couÁ +( +®bum_li¡ +); + +1692 + `gl_dbgE +("cluster†ist is NULL"); + +1696  +i + = 0; i < +®l_couÁ +; i++) { + +1697 +®bum + = + `eša_li¡_Áh +( +®bum_li¡ +, +i +); + +1698 + `GL_CHECK +( +®bum +); + +1699 + `GL_CHECK +( +®bum +-> +þu¡” +); + +1700 + `GL_CHECK +( +®bum +-> +þu¡” +-> +di¥Ïy_Çme +); + +1701 + `GL_CHECK +( +®bum +-> +þu¡” +-> +uuid +); + +1703 ià( +®bum +-> +þu¡” +-> +ty³ + =ð +GL_STORE_T_MMC + || + +1704 +®bum +-> +þu¡” +-> +ty³ + =ð +GL_STORE_T_PHONE +) { + +1705 + `–m_g’li¡_™em_­³nd +( +gl +, +gic +, (*) +®bum +, + +1706 +NULL +, +ELM_GENLIST_ITEM_NONE +, + +1707 +__gl_pÝup_move_cÝy_£l_cb +, + +1708 +®bum +-> +þu¡” +-> +·th +); + +1711 + } +} + +1713  + $_gl_pÝup_ü—‹_cÝy_move +(* +d©a +, * +£l_cb +, * +cb_d©a +) + +1715 + `GL_CHECK_VAL +( +cb_d©a +, -1); + +1716 + `GL_CHECK_VAL +( +d©a +, -1); + +1717 + `gl_dbg +(""); + +1718 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +1720 +Evas_Objeù + * +·»Á + = +ad +-> +maššfo +. +wš +; + +1721 +Evas_Objeù + * +pÝup + = + `–m_pÝup_add +( +·»Á +); + +1722 + `evas_objeù_size_hšt_weight_£t +( +pÝup +, +EVAS_HINT_EXPAND +, + +1723 +EVAS_HINT_EXPAND +); + +1724 ià( + `_gl_thumbs_g‘_ed™_mode +( +d©a +è=ð +GL_THUMBS_EDIT_COPY +) { + +1725 + `_gl_ui_£t_Œª¦©e_·¹_¡r +( +pÝup +, "t™Ë,‹xt", +GL_STR_ID_COPY +); + +1726 } ià( + `_gl_thumbs_g‘_ed™_mode +( +d©a +è=ð +GL_THUMBS_EDIT_MOVE +) { + +1727 + `_gl_ui_£t_Œª¦©e_·¹_¡r +( +pÝup +, "t™Ë,‹xt", +GL_STR_ID_MOVE +); + +1729 + `evas_objeù_show +( +pÝup +); + +1730 +ad +-> +pÝupšfo +. +pÝup + =…opup; + +1732 +Evas_Objeù + * +bŠ1 + = + `–m_bu‰Ú_add +( +·»Á +); + +1733 +Evas_Objeù + * +bŠ2 + = + `–m_bu‰Ú_add +( +·»Á +); + +1734 + `–m_objeù_¡yË_£t +( +bŠ1 +, "default"); + +1735 + `–m_objeù_¡yË_£t +( +bŠ2 +, "default"); + +1736 + `evas_objeù_size_hšt_weight_£t +( +bŠ1 +, +EVAS_HINT_EXPAND +, EVAS_HINT_EXPAND); + +1737 + `evas_objeù_size_hšt_weight_£t +( +bŠ2 +, +EVAS_HINT_EXPAND +, EVAS_HINT_EXPAND); + +1738 + `evas_objeù_size_hšt_®ign_£t +( +bŠ1 +, 1, 1); + +1739 + `evas_objeù_size_hšt_®ign_£t +( +bŠ2 +, 1, 1); + +1740 + `–m_objeù_·¹_cڋÁ_£t +( +pÝup +, "bu‰Ú1", +bŠ1 +); + +1741 + `–m_objeù_·¹_cڋÁ_£t +( +pÝup +, "bu‰Ú2", +bŠ2 +); + +1742 + `evas_objeù_sm¬t_ÿÎback_add +( +bŠ1 +, "þicked", +__gl_thumbs_ed™_ÿnûl_cb +, +ad +); + +1743 + `evas_objeù_sm¬t_ÿÎback_add +( +bŠ2 +, "þicked", +__gl_thumbs_ed™_ü—‹_®bum_cb +, +ad +); + +1744 + `_gl_ui_£t_Œª¦©e_·¹_¡r +( +bŠ1 +, "deçuÉ", +GL_STR_ID_CANCEL +); + +1745 + `_gl_ui_£t_Œª¦©e_·¹_¡r +( +bŠ2 +, "deçuÉ", +GL_STR_ID_NEW_ALBUM +); + +1747 +gl_pÝup_m’u_s + * +m’u_d + = +NULL +; + +1748 +m’u_d + = ( +gl_pÝup_m’u_s + *) + `ÿÎoc +(1, (gl_popup_menu_s)); + +1749 + `GL_CHECK_VAL +( +m’u_d +, -1); + +1750 +m’u_d +-> +ad + =‡d; + +1751 +Evas_Objeù + * +g’li¡ + = + `__gl_pÝup_add_g’li¡ +( +m’u_d +, +pÝup +, "default", + +1752 +__gl_pÝup_m’u_g‘_g’li¡_‹xt +, +__gl_pÝup_m’u_g‘_g’li¡_cڋÁ +, + +1753 +_gl_g’li¡_™em_­’d +); + +1754 +Evas_Objeù + * +ly + = + `–m_Ïyout_add +( +pÝup +); + +1755 + `–m_Ïyout_fže_£t +( +ly +, +GL_EDJ_FILE +, "list_popup_swallow_ly"); + +1756 +Evas_Objeù + * +ly1 + = + `–m_Ïyout_add +( +pÝup +); + +1757 + `–m_Ïyout_fže_£t +( +ly1 +, +GL_EDJ_FILE +, "list_popup_content_ly"); + +1758 + `–m_objeù_·¹_cڋÁ_£t +( +ly +,"li¡", +g’li¡ +); + +1759 + `–m_objeù_cڋÁ_£t +( +pÝup +, +ly +); + +1760  +w +, +h +; + +1761 + `evas_objeù_geom‘ry_g‘ +( +ad +-> +maššfo +. +wš +, +NULL +, NULL, & +w +, & +h +); + +1762 +Edje_Mes§ge_IÁ + * +msg + = (Edje_Mes§ge_IÁ *) + `m®loc +((Edje_Message_Int) + ()); + +1763 + `GL_CHECK_VAL +( +msg +, -1); + +1764 ià(( +w + =ð +GL_STR_SCREEN_WIDTH_WVGA + && +h + =ð +GL_STR_SCREEN_HEIGHT_WVGA +) || (w == GL_STR_SCREEN_HEIGHT_WVGA && h == GL_STR_SCREEN_WIDTH_WVGA)) { + +1765 +msg +-> +v® + = +GL_POPUP_GENLIST_HEIGHT_WVGA +; + +1766 + `edje_objeù_mes§ge_£nd +( + `–m_Ïyout_edje_g‘ +( +ly +è, +EDJE_MESSAGE_INT +, 2, +msg +); + +1767 } ià(( +w + =ð +GL_STR_SCREEN_WIDTH_QHD + && +h + =ð +GL_STR_SCREEN_HEIGHT_QHD +) || (w == GL_STR_SCREEN_HEIGHT_QHD && h == GL_STR_SCREEN_WIDTH_QHD)) { + +1768 +msg +-> +v® + = +GL_POPUP_GENLIST_HEIGHT_QHD +; + +1769 + `edje_objeù_mes§ge_£nd +( + `–m_Ïyout_edje_g‘ +( +ly +), +EDJE_MESSAGE_INT +, 2, +msg +); + +1770 } ià(( +w + =ð +GL_STR_SCREEN_WIDTH_HD + && +h + =ð +GL_STR_SCREEN_HEIGHT_HD +) || (w == GL_STR_SCREEN_HEIGHT_HD && h == GL_STR_SCREEN_WIDTH_HD)) { + +1771 +msg +-> +v® + = +GL_POPUP_GENLIST_HEIGHT_HD +; + +1772 + `edje_objeù_mes§ge_£nd +( + `–m_Ïyout_edje_g‘ +( +ly +), +EDJE_MESSAGE_INT +, 2, +msg +); + +1774 + `ä“ +( +msg +); + +1775 + `evas_objeù_show +( +g’li¡ +); + +1776 + `“xt_objeù_ev’t_ÿÎback_add +( +pÝup +, +EEXT_CALLBACK_BACK +, + +1777 +“xt_pÝup_back_cb +, +NULL +); + +1780 + } +} + + @src/widget/gl-progressbar.c + +18  + ~"g®Ëry.h +" + +19  + ~"gl-´og»ssb¬.h +" + +20  + ~"gl-ui-utž.h +" + +21  + ~"gl-utž.h +" + +22  + ~"gl-debug.h +" + +23  + ~"gl-®bums.h +" + +24  + ~"gl-thumbs.h +" + +25  + ~"gl-cڌÞb¬.h +" + +26  + ~"gl-th»ad-utž.h +" + +27  + ~"gl-¡ršgs.h +" + +28  + ~"gl-bu‰Ú.h +" + +30  + #GL_ALBUMS_PBAR_BG_COLOR_VAL + 48 + + ) + +31  + #GL_WEB_DOWNLOAD_INVALID_ID + 0 + +32  + #GL_PBAR_STATUS_LEN_MAX + 128 + + ) + +33  + #GL_PBAR_WIDTH_MIN_INC + (576* + `–m_cÚfig_sÿË_g‘ +()) + +34 + + ) + +35  + #GL_PROGRESSBAR_STYLE_GALLERY_PROGRESS + "g®Ëry/li¡_´og»ss" + + ) + +36  + #GL_PROGRESSBAR_STYLE_PROGRESS + "li¡_´og»ss" + + ) + +37  + #GL_PROGRESSBAR_STYLE_WHEEL + "wh“l" + + ) + +38  + #GL_LABEL_STYLE_DEFAULT + +GL_CHECKBOX_STYLE_DEFAULT + + + ) + +39  + #GL_PROGRESSBAR_STYLE_PROCESS + "li¡_´oûss" + + ) + +41  + #GL_FONT_STYLE_ALBUM_S + "" + + ) + +42  + #GL_FONT_STYLE_ALBUM_E + "" + + ) + +44  + $__gl_pb_ÿnûl_th»ad_pb¬_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +46 + `gl_dbg +(""); + +48 + `gl_th»ad_£t_ÿnûl_¡©e +( +d©a +, +GL_PB_CANCEL_BUTTON +); + +50 + `gl_pb_d–_pb¬ +( +d©a +); + +51 + } +} + +53  +Eša_BoÞ + + $__gl_pb_pb¬_tim”_cb +(* +d©a +) + +55 + `gl_dbg +("Timeout, destroy…rogressbar‡ndimer."); + +56 + `gl_pb_d–_pb¬ +( +d©a +); + +57  +ECORE_CALLBACK_CANCEL +; + +58 + } +} + +62  +šlše +  + $__gl_pb_—_back_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ei +) + +64 + `gl_dbg +("Use customized callback"); + +65 +Evas_Objeù + * +bŠ_ÿnûl + = +NULL +; + +66 +bŠ_ÿnûl + = + `–m_objeù_·¹_cڋÁ_g‘ +( +obj +, "button1"); + +67 + `GL_CHECK +( +bŠ_ÿnûl +); + +68 + `evas_objeù_sm¬t_ÿÎback_ÿÎ +( +bŠ_ÿnûl +, "þicked", +NULL +); + +69 + } +} + +72  + $gl_pb_make_th»ad_pb¬_wh“l +(* +d©a +, +Evas_Objeù + * +·»Á +, * +t™Ë +) + +74 + `GL_CHECK_VAL +( +d©a +, -1); + +75 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +76 +Evas_Objeù + * +pÝup + = +NULL +; + +77 +Evas_Objeù + * +´og»ssb¬ + = +NULL +; + +79 + `gl_pb_d–_pb¬ +( +ad +); + +80 +pÝup + = + `–m_pÝup_add +( +·»Á +); + +83 + `“xt_objeù_ev’t_ÿÎback_add +( +pÝup +, +EEXT_CALLBACK_BACK +, + +84 +__gl_pb_ÿnûl_th»ad_pb¬_cb +, +d©a +); + +85 +Evas_Objeù + * +pÝupLayout + = + `–m_Ïyout_add +( +pÝup +); + +86 + `–m_Ïyout_fže_£t +( +pÝupLayout +, +GL_EDJ_FILE +, "popup_text_progressbar_view_layout"); + +87 + `evas_objeù_size_hšt_weight_£t +( +pÝupLayout +, +EVAS_HINT_EXPAND +, EVAS_HINT_EXPAND); + +88 + `evas_objeù_show +( +pÝupLayout +); + +90 +´og»ssb¬ + = + `–m_´og»ssb¬_add +( +pÝup +); + +91 + `–m_objeù_¡yË_£t +( +´og»ssb¬ +, +GL_PROGRESSBAR_STYLE_WHEEL +); + +92 + `evas_objeù_size_hšt_®ign_£t +( +´og»ssb¬ +, +EVAS_HINT_FILL +, EVAS_HINT_FILL); + +93 + `evas_objeù_size_hšt_weight_£t +( +´og»ssb¬ +, +EVAS_HINT_EXPAND +, EVAS_HINT_EXPAND); + +94 + `–m_´og»ssb¬_pul£ +( +´og»ssb¬ +, +EINA_TRUE +); + +95 + `evas_objeù_show +( +´og»ssb¬ +); + +97 ià( +t™Ë + && (! + `¡rcmp +( +GL_STR_ID_MOVING +,™Ëè|| !¡rcmp( +GL_STR_ID_COPYING +,itle))) { + +98 + `–m_objeù_·¹_cڋÁ_£t +( +pÝupLayout +, "´og»ssb¬", +´og»ssb¬ +); + +100 + `–m_objeù_·¹_cڋÁ_£t +( +pÝupLayout +, "´og»ssb¬_Ëá", +´og»ssb¬ +); + +101 + `_gl_ui_£t_Œª¦©e_·¹_¡r +( +pÝupLayout +, "–m.‹xt.desütiÚ", +t™Ë +); + +103 + `–m_objeù_cڋÁ_£t +( +pÝup +, +pÝupLayout +); + +104 + `evas_objeù_show +( +pÝup +); + +106 +ad +-> +pb¬šfo +. +pÝup + =…opup; + +107 +ad +-> +pb¬šfo +. +pb¬ + = +´og»ssb¬ +; + +108 +ad +-> +pb¬šfo +. +fšished_út + = 0; + +112 + } +} + +114  + $gl_pb_»äesh_th»ad_pb¬ +(* +d©a +,  +cur_út +,  +tÙ®_út +) + +116 + `GL_CHECK_VAL +( +d©a +, -1); + +117  +¡©us_šfo +[ +GL_POPUP_DESC_LEN_MAX +] = { 0, }; + +118  +³rûÁ + = 0.0; + +119 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +120 + `GL_CHECK_VAL +( +ad +-> +pb¬šfo +. +pb¬ +, -1); + +121 + `GL_CHECK_VAL +( +ad +-> +pb¬šfo +. +¡©us_Ïb– +, -1); + +123 + `¢´štf +( +¡©us_šfo +, (status_info), + +124 +GL_FONT_STYLE_POP_S +"%d/%d" +GL_FONT_STYLE_POP_E +, +cur_út +, + +125 +tÙ®_út +); + +127 +ad +-> +pb¬šfo +. +fšished_út + = +cur_út +; + +128 + `–m_objeù_‹xt_£t +( +ad +-> +pb¬šfo +. +¡©us_Ïb– +, +¡©us_šfo +); + +129 + `evas_objeù_show +( +ad +-> +pb¬šfo +. +¡©us_Ïb– +); + +131 ià( +tÙ®_út + != 0) { + +132 +³rûÁ + = () +cur_út + / () +tÙ®_út +; + +133 + `–m_´og»ssb¬_v®ue_£t +( +ad +-> +pb¬šfo +. +pb¬ +, +³rûÁ +); + +137 + } +} + +140  + $gl_pb_add_pb¬_tim” +(* +d©a +) + +142 + `GL_CHECK_VAL +( +d©a +, -1); + +143 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +144 +ad +-> +pb¬šfo +. +pb¬_tim” + = + `ecÜe_tim”_add +(1.0f, +__gl_pb_pb¬_tim”_cb +, + +145 +d©a +); + +147 + } +} + +149  + $gl_pb_d–_pb¬ +(* +d©a +) + +151 + `GL_CHECK_VAL +( +d©a +, -1); + +152 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +153 + `gl_dbg +("destroy…rogressbar"); + +155 ià( +ad +-> +pb¬šfo +. +pÝup +) { + +156 + `evas_objeù_d– +( +ad +-> +pb¬šfo +. +pÝup +); + +157 +ad +-> +pb¬šfo +. +pÝup + = +NULL +; + +158 +ad +-> +pb¬šfo +. +pb¬ + = +NULL +; + +159 +ad +-> +pb¬šfo +. +¡©us_Ïb– + = +NULL +; + +160 +ad +-> +pb¬šfo +. +fšished_út + = 0; + +162 + `GL_IF_DEL_TIMER +( +ad +-> +pb¬šfo +. +pb¬_tim” +); + +164 + } +} + +166 +Evas_Objeù + * + $gl_pb_make_pb¬ +(* +d©a +, +Evas_Objeù + * +·»Á +, * +¡©e +) + +168 + `GL_CHECK_NULL +( +d©a +); + +169 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +170 + `gl_dbg +("Mak´og»ssb¬, s‹:%s", +¡©e +); + +171  +Ïb–_¡r +[ +GL_POPUP_DESC_LEN_MAX +] = { 0, }; + +173 ià( +ad +-> +pb¬šfo +. +pÝup +) { + +174 ià( +ad +-> +pb¬šfo +. +pb¬_tim” +) { + +175 + `gl_dbg +("Del…barimer in update case!"); + +176 + `ecÜe_tim”_d– +( +ad +-> +pb¬šfo +. +pb¬_tim” +); + +177 +ad +-> +pb¬šfo +. +pb¬_tim” + = +NULL +; + +179 + `gl_dbg +("Progressbar‡lready created, update its†abel."); + +180 + `¢´štf +( +Ïb–_¡r +, (label_str), + +181 +GL_FONT_STYLE_POP_S +"%s" +GL_FONT_STYLE_POP_E +, +¡©e +); + +182 + `–m_objeù_‹xt_£t +( +ad +-> +pb¬šfo +. +¡©us_Ïb– +, +Ïb–_¡r +); + +183  +ad +-> +pb¬šfo +. +pÝup +; + +185 + `gl_pb_d–_pb¬ +( +ad +); + +186 +Evas_Objeù + * +pÝup + = +NULL +; + +187 +Evas_Objeù + * +´og»ssb¬ + = +NULL +; + +188 +Evas_Objeù + * +Ïyout + = +NULL +; + +189 +Evas_Objeù + * +Ïb– + = +NULL +; + +191 +pÝup + = + `–m_pÝup_add +( +·»Á +); + +194 + `“xt_objeù_ev’t_ÿÎback_add +( +pÝup +, +EEXT_CALLBACK_BACK +, +“xt_pÝup_back_cb +, + +195 +NULL +); + +197 + `–m_objeù_¡yË_£t +( +pÝup +, "content_no_vhpad"); + +199 +Ïb– + = + `–m_Ïb–_add +( +pÝup +); + +200 + `–m_objeù_¡yË_£t +( +Ïb– +, "popup/default"); + +201 + `¢´štf +( +Ïb–_¡r +, (label_str), + +202 +GL_FONT_STYLE_POP_S +"%s" +GL_FONT_STYLE_POP_E +, +¡©e +); + +203 + `–m_objeù_‹xt_£t +( +Ïb– +, +Ïb–_¡r +); + +211 + `–m_Ïb–_lše_w¿p_£t +( +Ïb– +, +ELM_WRAP_MIXED +); + +212 + `evas_objeù_size_hšt_®ign_£t +( +Ïb– +, +EVAS_HINT_FILL +, EVAS_HINT_FILL); + +213 + `evas_objeù_size_hšt_weight_£t +( +Ïb– +, +EVAS_HINT_EXPAND +, 0.0); + +214 + `evas_objeù_show +( +Ïb– +); + +216 +Ïyout + = + `–m_Ïyout_add +( +pÝup +); + +217 + `–m_Ïyout_fže_£t +( +Ïyout +, +GL_EDJ_FILE +, "popup_processing"); + +218 + `evas_objeù_size_hšt_weight_£t +( +Ïyout +, +EVAS_HINT_EXPAND +, + +219 +EVAS_HINT_EXPAND +); + +221 +´og»ssb¬ + = + `–m_´og»ssb¬_add +( +pÝup +); + +222 + `–m_objeù_¡yË_£t +( +´og»ssb¬ +, +GL_PROGRESSBAR_STYLE_PROCESS +); + +223 + `–m_´og»ssb¬_hÜizڏl_£t +( +´og»ssb¬ +, +EINA_TRUE +); + +224 + `–m_´og»ssb¬_un™_fÜm©_£t +( +´og»ssb¬ +, +NULL +); + +225 + `–m_´og»ssb¬_pul£ +( +´og»ssb¬ +, +EINA_TRUE +); + +226 + `evas_objeù_size_hšt_®ign_£t +( +´og»ssb¬ +, +EVAS_HINT_FILL +, + +227 +EVAS_HINT_FILL +); + +228 + `evas_objeù_size_hšt_weight_£t +( +´og»ssb¬ +, +EVAS_HINT_EXPAND +, + +229 +EVAS_HINT_EXPAND +); + +230 + `evas_objeù_show +( +´og»ssb¬ +); + +232 + `–m_objeù_·¹_cڋÁ_£t +( +Ïyout +, "–m.sw®low.cڋÁ", +´og»ssb¬ +); + +233 + `–m_objeù_·¹_cڋÁ_£t +( +Ïyout +, "–m.sw®low.‹xt", +Ïb– +); + +235 + `–m_objeù_cڋÁ_£t +( +pÝup +, +Ïyout +); + +236 + `evas_objeù_show +( +pÝup +); + +238 +ad +-> +pb¬šfo +. +pÝup + =…opup; + +239 +ad +-> +pb¬šfo +. +pb¬ + = +´og»ssb¬ +; + +240 +ad +-> +pb¬šfo +. +¡©us_Ïb– + = +Ïb– +; + +241  +pÝup +; + +242 + } +} + +244 +Evas_Objeù + * + $_gl_pb_make_¶aû_pb¬ +( +Evas_Objeù + * +·»Á +) + +246 + `GL_CHECK_NULL +( +·»Á +); + +247 + `gl_dbg +(""); + +249 +Evas_Objeù + * +´og»ssb¬ + = +NULL +; + +250 +´og»ssb¬ + = + `–m_´og»ssb¬_add +( +·»Á +); + +251 + `–m_objeù_¡yË_£t +( +´og»ssb¬ +, +GL_PROGRESSBAR_STYLE_PROCESS +); + +252 + `–m_´og»ssb¬_un™_fÜm©_£t +( +´og»ssb¬ +, +NULL +); + +253 + `–m_´og»ssb¬_pul£ +( +´og»ssb¬ +, +EINA_TRUE +); + +254 + `evas_objeù_size_hšt_®ign_£t +( +´og»ssb¬ +, +EVAS_HINT_FILL +, + +255 +EVAS_HINT_FILL +); + +256 + `evas_objeù_size_hšt_weight_£t +( +´og»ssb¬ +, +EVAS_HINT_EXPAND +, + +257 +EVAS_HINT_EXPAND +); + +258 + `evas_objeù_show +( +´og»ssb¬ +); + +259  +´og»ssb¬ +; + +260 + } +} + + @src/widget/gl-rotate-bg.c + +18 #ifdeà +_USE_ROTATE_BG + + +20  + ~"gl-rÙ©e-bg.h +" + +21  + ~"gl-exif.h +" + +22  + ~"gl-debug.h +" + +23  + ~"gl-icÚs.h +" + +25  + #GL_ROTATE_BG_DATA_KEY + "gl_bg_d©a" + + ) + +26  + #GL_ROTATE_BG_GROUP + "gl_bg_Ïyout" + + ) + +28  + s_gl_bg + { + +29 +Evas_Objeù + * + mba£ +; + +30 +Evas_Objeù + * + mimg +; + +31 * + mfže +; + +32 +boÞ + + mb_´–ßd +; + +33 * + mu£r_d©a +; + +34 } + tgl_bg +; + +36  + $__gl_rÙ©e_bg_image_rÙ©e_180 +( +Evas_Objeù + * +obj +) + +38 + `GL_CHECK_VAL +( +obj +, -1); + +39 * +d©a + = +NULL +; + +40 * +d©a2 + = +NULL +; + +41 * +to + = +NULL +; + +42 * +äom + = +NULL +; + +43  +x + = 0; + +44  +hw + = 0; + +45  +iw + = 0; + +46  +ih + = 0; + +48 + `evas_objeù_image_size_g‘ +( +obj +, & +iw +, & +ih +); + +49  +size + = +iw + * +ih + * (); + +52 +d©a + = + `evas_objeù_image_d©a_g‘ +( +obj +, +EINA_FALSE +); + +54 +d©a2 + = + `ÿÎoc +(1, +size +); + +55 + `GL_CHECK_VAL +( +d©a2 +, -1); + +56 + `memýy +( +d©a2 +, +d©a +, +size +); + +58 +d©a + = + `evas_objeù_image_d©a_g‘ +( +obj +, +EINA_TRUE +); + +60 +hw + = +iw + * +ih +; + +61 +x + = +hw +; + +62 +to + = +d©a +; + +63 +äom + = +d©a2 + + +hw + - 1; + +64 ; -- +x + >= 0;) { + +65 * +to + = * +äom +; + +66 +to +++; + +67 +äom +--; + +71 + `GL_FREE +( +d©a2 +); + +73 + `evas_objeù_image_d©a_£t +( +obj +, +d©a +); + +74 + `evas_objeù_image_d©a_upd©e_add +( +obj +, 0, 0, +iw +, +ih +); + +76 + } +} + +78  + $__gl_rÙ©e_bg_image_rÙ©e_90 +( +Evas_Objeù + * +obj +) + +80 + `GL_CHECK_VAL +( +obj +, -1); + +81 * +d©a + = +NULL +; + +82 * +d©a2 + = +NULL +; + +83 * +to + = +NULL +; + +84 * +äom + = +NULL +; + +85  +x + = 0; + +86  +y + = 0; + +87  +w + = 0; + +88  +hw + = 0; + +89  +iw + = 0; + +90  +ih + = 0; + +92 + `evas_objeù_image_size_g‘ +( +obj +, & +iw +, & +ih +); + +93  +size + = +iw + * +ih + * (); + +96 +d©a + = + `evas_objeù_image_d©a_g‘ +( +obj +, +EINA_FALSE +); + +98 +d©a2 + = + `ÿÎoc +(1, +size +); + +99 + `GL_CHECK_VAL +( +d©a2 +, -1); + +100 + `memýy +( +d©a2 +, +d©a +, +size +); + +103 +w + = +ih +; + +104 +ih + = +iw +; + +105 +iw + = +w +; + +106 +hw + = +w + * +ih +; + +109 + `evas_objeù_image_size_£t +( +obj +, +iw +, +ih +); + +110 +d©a + = + `evas_objeù_image_d©a_g‘ +( +obj +, +EINA_TRUE +); + +111 +to + = +d©a + + +w + - 1; + +112 +hw + = -hw - 1; + +113 +äom + = +d©a2 +; + +115  +x + = +iw +; --x >= 0;) { + +116  +y + = +ih +; --y >= 0;) { + +117 * +to + = * +äom +; + +118 +äom +++; + +119 +to + +ð +w +; + +122 +to + +ð +hw +; + +125 + `GL_FREE +( +d©a2 +); + +127 + `evas_objeù_image_d©a_£t +( +obj +, +d©a +); + +128 + `evas_objeù_image_d©a_upd©e_add +( +obj +, 0, 0, +iw +, +ih +); + +130 + } +} + +132  + $__gl_rÙ©e_bg_image_rÙ©e_270 +( +Evas_Objeù + * +obj +) + +134 + `GL_CHECK_VAL +( +obj +, -1); + +135 * +d©a + = +NULL +; + +136 * +d©a2 + = +NULL +; + +137 * +to + = +NULL +; + +138 * +äom + = +NULL +; + +139  +x + = 0; + +140  +y + = 0; + +141  +w + = 0; + +142  +hw + = 0; + +143  +iw + = 0; + +144  +ih + = 0; + +146 + `evas_objeù_image_size_g‘ +( +obj +, & +iw +, & +ih +); + +147  +size + = +iw + * +ih + * (); + +150 +d©a + = + `evas_objeù_image_d©a_g‘ +( +obj +, +EINA_FALSE +); + +152 +d©a2 + = + `ÿÎoc +(1, +size +); + +153 + `GL_CHECK_VAL +( +d©a2 +, -1); + +154 + `memýy +( +d©a2 +, +d©a +, +size +); + +157 +w + = +ih +; + +158 +ih + = +iw +; + +159 +iw + = +w +; + +160 +hw + = +w + * +ih +; + +163 + `evas_objeù_image_size_£t +( +obj +, +iw +, +ih +); + +164 +d©a + = + `evas_objeù_image_d©a_g‘ +( +obj +, +EINA_TRUE +); + +166 +to + = +d©a + + +hw + - +w +; + +167 +w + = -w; + +168 +hw + = hw + 1; + +169 +äom + = +d©a2 +; + +171  +x + = +iw +; --x >= 0;) { + +172  +y + = +ih +; --y >= 0;) { + +173 * +to + = * +äom +; + +174 +äom +++; + +175 +to + +ð +w +; + +178 +to + +ð +hw +; + +181 + `GL_FREE +( +d©a2 +); + +183 + `evas_objeù_image_d©a_£t +( +obj +, +d©a +); + +184 + `evas_objeù_image_d©a_upd©e_add +( +obj +, 0, 0, +iw +, +ih +); + +186 + } +} + +189  + $__gl_rÙ©e_bg_rÙ©e_image +( +Evas_Objeù + * +obj +,  +ܛÁ +) + +191  +ܛÁ +) { + +192  +GL_ORIENTATION_ROT_90 +: + +193 + `__gl_rÙ©e_bg_image_rÙ©e_90 +( +obj +); + +195  +GL_ORIENTATION_ROT_180 +: + +196 + `__gl_rÙ©e_bg_image_rÙ©e_180 +( +obj +); + +198  +GL_ORIENTATION_ROT_270 +: + +199 + `__gl_rÙ©e_bg_image_rÙ©e_270 +( +obj +); + +206 + } +} + +208  + $__gl_rÙ©e_bg_d–‘e_cb +(* +d©a +, +Evas + * +e +, +Evas_Objeù + * +obj +, * +ev’t_šfo +) + +210 ià( +d©a +) { + +211 +gl_bg + * +bg_d©a + = (gl_bg *) +d©a +; + +212 + `GL_FREEIF +( +bg_d©a +-> +fže +); + +213 + `GL_FREE +( +d©a +); + +215 + } +} + +217  + $__gl_rÙ©e_bg_cu¡om_»size +(* +d©a +, +Evas + * +e +, +Evas_Objeù + * +obj +, * +ev’t_šfo +) + +219 + `GL_CHECK +( +d©a +); + +220 +gl_bg + * +bg_d©a + = (gl_bg *) +d©a +; + +221 +Evas_CoÜd + +bx + = 0; + +222 +Evas_CoÜd + +by + = 0; + +223 +Evas_CoÜd + +bw + = 0; + +224 +Evas_CoÜd + +bh + = 0; + +225 +Evas_CoÜd + +iw + = 0; + +226 +Evas_CoÜd + +ih + = 0; + +227 +Evas_CoÜd + +fx + = 0; + +228 +Evas_CoÜd + +fy + = 0; + +229 +Evas_CoÜd + +fw + = 0; + +230 +Evas_CoÜd + +fh + = 0; + +231 +Evas_CoÜd + +nx + = 0; + +232 +Evas_CoÜd + +ny + = 0; + +233 +Evas_CoÜd + +nw + = 0; + +234 +Evas_CoÜd + +nh + = 0; + +236 ià((! +bg_d©a +-> +img +è|| (!bg_d©a-> +ba£ +)) { + +237 + `gl_dbgE +("Invalid object!"); + +241 + `evas_objeù_image_size_g‘ +( +bg_d©a +-> +img +, & +iw +, & +ih +); + +242 ià(( +iw + < 1è|| ( +ih + < 1)) { + +243 + `gl_dbgE +("(iw < 1) || (ih < 1)!"); + +248 + `evas_objeù_geom‘ry_g‘ +( +bg_d©a +-> +ba£ +, & +bx +, & +by +, & +bw +, & +bh +); + +251 +nx + = +bx +; + +252 +ny + = +by +; + +253 +nw + = +bw +; + +254 +nh + = +bh +; + +257 +fw + = +bw +; + +258 +fh + = (( +ih + * +fw +è/ +iw +); + +259 ià( +fh + < +bh +) { + +260 +fh + = +bh +; + +261 +fw + = (( +iw + * +fh +è/ +ih +); + +263 +fx + = (( +bw + - +fw +) / 2); + +264 +fy + = (( +bh + - +fh +) / 2); + +266 + `evas_objeù_move +( +bg_d©a +-> +img +, +nx +, +ny +); + +267 + `evas_objeù_»size +( +bg_d©a +-> +img +, +nw +, +nh +); + +268 + `evas_objeù_image_fžl_£t +( +bg_d©a +-> +img +, +fx +, +fy +, +fw +, +fh +); + +269 + } +} + +271 +Evas_Objeù + * + $_gl_rÙ©e_bg_add_Ïyout +( +Evas_Objeù + * +·»Á +, cÚ¡ * +fže +, cÚ¡ * +group +) + +273 +Evas_Objeù + * +eo + = +NULL +; + +274  +r + = 0; + +276 +eo + = + `–m_Ïyout_add +( +·»Á +); + +277 ià( +eo +) { + +278 +r + = + `–m_Ïyout_fže_£t +( +eo +, +fže +, +group +); + +279 ià(! +r +) { + +280 + `evas_objeù_d– +( +eo +); + +281  +NULL +; + +284 + `evas_objeù_size_hšt_weight_£t +( +eo +, +EVAS_HINT_EXPAND +, EVAS_HINT_EXPAND); + +285 + `evas_objeù_size_hšt_®ign_£t +( +eo +, +EVAS_HINT_FILL +, EVAS_HINT_FILL); + +288  +eo +; + +289 + } +} + +291 +Evas_Objeù + * + $_gl_rÙ©e_bg_add +( +Evas_Objeù + * +·»Á +, +boÞ + +b_´–ßd +) + +293 + `GL_CHECK_NULL +( +·»Á +); + +295 +gl_bg + * +bg_d©a + = (gl_bg *) + `ÿÎoc +(1, (gl_bg)); + +296 + `GL_CHECK_NULL +( +bg_d©a +); + +298 +Evas_Objeù + * +ba£ + = +NULL +; + +299 +ba£ + = + `_gl_rÙ©e_bg_add_Ïyout +( +·»Á +, +GL_EDJ_FILE +, + +300 +GL_ROTATE_BG_GROUP +); + +301 ià( +ba£ + =ð +NULL +) { + +302 + `GL_FREE +( +bg_d©a +); + +303  +NULL +; + +306 +bg_d©a +-> +ba£ += base; + +307 +bg_d©a +-> +b_´–ßd + = b_preload; + +308 ià(! +b_´–ßd +) + +309 + `evas_objeù_ev’t_ÿÎback_add +( +ba£ +, +EVAS_CALLBACK_RESIZE +, + +310 +__gl_rÙ©e_bg_cu¡om_»size +, + +311 +bg_d©a +); + +312 + `evas_objeù_ev’t_ÿÎback_add +( +ba£ +, +EVAS_CALLBACK_DEL +, + +313 +__gl_rÙ©e_bg_d–‘e_cb +, +bg_d©a +); + +315 + `evas_objeù_d©a_£t +( +ba£ +, +GL_ROTATE_BG_DATA_KEY +, +bg_d©a +); + +316  +ba£ +; + +317 + } +} + +319  + $_gl_rÙ©e_bg_£t_d©a +( +Evas_Objeù + * +bg +, * +d©a +) + +321 + `GL_CHECK_VAL +( +bg +, -1); + +323 +gl_bg + * +bg_d©a + = + `evas_objeù_d©a_g‘ +( +bg +, +GL_ROTATE_BG_DATA_KEY +); + +324 + `GL_CHECK_VAL +( +bg_d©a +, -1); + +325 +bg_d©a +-> +u£r_d©a + = +d©a +; + +327 + } +} + +329  + $_gl_rÙ©e_bg_g‘_d©a +( +Evas_Objeù + * +bg +, ** +d©a +) + +331 + `GL_CHECK_VAL +( +d©a +, -1); + +332 + `GL_CHECK_VAL +( +bg +, -1); + +334 +gl_bg + * +bg_d©a + = + `evas_objeù_d©a_g‘ +( +bg +, +GL_ROTATE_BG_DATA_KEY +); + +335 + `GL_CHECK_VAL +( +bg_d©a +, -1); + +336 * +d©a + = +bg_d©a +-> +u£r_d©a +; + +338 + } +} + +340  + $_gl_rÙ©e_bg_£t_fže +( +Evas_Objeù + * +bg +, cÚ¡ * +fže +,  +w +,  +h +) + +342 + `GL_CHECK_VAL +( +fže +, -1); + +343 + `GL_CHECK_VAL +( +bg +, -1); + +345 +gl_bg + * +bg_d©a + = + `evas_objeù_d©a_g‘ +( +bg +, +GL_ROTATE_BG_DATA_KEY +); + +346 + `GL_CHECK_VAL +( +bg_d©a +, -1); + +348 +Evas_Objeù + * +image_obj + = +NULL +; + +349 ià(! +bg_d©a +-> +b_´–ßd +) { + +350 +image_obj + = + `evas_objeù_image_add +( + `evas_objeù_evas_g‘ +( +bg +)); + +351 + `evas_objeù_»³©_ev’ts_£t +( +image_obj +, +EINA_TRUE +); + +352 +bg_d©a +-> +img + = +image_obj +; + +353 +bg_d©a +-> +fže + = + `¡rdup +(file); + +354 + `–m_objeù_·¹_cڋÁ_£t +( +bg +, "–m.sw®low.image", +image_obj +); + +355 + `evas_objeù_image_lßd_size_£t +( +image_obj +, +w +, +h +); + +356 + `evas_objeù_image_fže_£t +( +image_obj +, +fže +, +NULL +); + +357 + `evas_objeù_image_´–ßd +( +image_obj +, +EINA_TRUE +); + +359 +image_obj + = + `–m_image_add +( +bg +); + +360 + `evas_objeù_»³©_ev’ts_£t +( +image_obj +, +EINA_TRUE +); + +361 +bg_d©a +-> +img + = +image_obj +; + +362 +bg_d©a +-> +fže + = + `¡rdup +(file); + +363 + `–m_objeù_·¹_cڋÁ_£t +( +bg +, "–m.sw®low.image", +image_obj +); + +364 + `–m_image_fžl_outside_£t +( +image_obj +, +EINA_TRUE +); + +365 + `–m_image_fže_£t +( +image_obj +, +fže +, +NULL +); + +366 + `–m_image_´–ßd_di§bËd_£t +( +image_obj +, +EINA_FALSE +); + +367 + `–m_image_smoÙh_£t +( +image_obj +, +EINA_FALSE +); + +370 + } +} + +372  + $_gl_rÙ©e_bg_g‘_fže +( +Evas_Objeù + * +bg +, ** +fže +) + +374 + `GL_CHECK_VAL +( +fže +, -1); + +375 + `GL_CHECK_VAL +( +bg +, -1); + +377 +gl_bg + * +bg_d©a + = + `evas_objeù_d©a_g‘ +( +bg +, +GL_ROTATE_BG_DATA_KEY +); + +378 + `GL_CHECK_VAL +( +bg_d©a +, -1); + +379 * +fže + = +bg_d©a +->file; + +381 + } +} + +383  + $_gl_rÙ©e_bg_rÙ©e_image +( +Evas_Objeù + * +bg +,  +ܛÁ +) + +385 + `GL_CHECK_VAL +( +bg +, -1); + +387 +gl_bg + * +bg_d©a + = + `evas_objeù_d©a_g‘ +( +bg +, +GL_ROTATE_BG_DATA_KEY +); + +388 + `GL_CHECK_VAL +( +bg_d©a +, -1); + +390 ià( +bg_d©a +-> +fže + && + `g_¡rcmp0 +(bg_d©a->fže, +GL_ICON_NO_THUMBNAIL +) && + +391 + `g_¡rcmp0 +( +bg_d©a +-> +fže +, +GL_ICON_CONTENTS_BROKEN +)) + +392 + `__gl_rÙ©e_bg_rÙ©e_image +( +bg_d©a +-> +img +, +ܛÁ +); + +394 + `__gl_rÙ©e_bg_rÙ©e_image +( +bg_d©a +-> +img +, +GL_ORIENTATION_ROT_0 +); + +395 ià(! +bg_d©a +-> +b_´–ßd +) + +396 + `__gl_rÙ©e_bg_cu¡om_»size +( +bg_d©a +, +NULL +, NULL, NULL); + +398 + } +} + +400  + $_gl_rÙ©e_bg_add_image +( +Evas_Objeù + * +bg +,  +w +,  +h +) + +402 + `GL_CHECK_VAL +( +bg +, -1); + +404 +gl_bg + * +bg_d©a + = + `evas_objeù_d©a_g‘ +( +bg +, +GL_ROTATE_BG_DATA_KEY +); + +405 + `GL_CHECK_VAL +( +bg_d©a +, -1); + +407 +Evas_Objeù + * +image_obj + = +NULL +; + +408 ià(! +bg_d©a +-> +b_´–ßd +) { + +409 +image_obj + = + `evas_objeù_image_add +( + `evas_objeù_evas_g‘ +( +bg +)); + +410 + `evas_objeù_»³©_ev’ts_£t +( +image_obj +, +EINA_TRUE +); + +411 +bg_d©a +-> +img + = +image_obj +; + +412 + `–m_objeù_·¹_cڋÁ_£t +( +bg +, "–m.sw®low.image", +image_obj +); + +413 + `evas_objeù_image_lßd_size_£t +( +image_obj +, +w +, +h +); + +415 +image_obj + = + `–m_image_add +( +bg +); + +416 + `evas_objeù_»³©_ev’ts_£t +( +image_obj +, +EINA_TRUE +); + +417 +bg_d©a +-> +img + = +image_obj +; + +418 + `–m_objeù_·¹_cڋÁ_£t +( +bg +, "–m.sw®low.image", +image_obj +); + +421 + } +} + +423  + $_gl_rÙ©e_bg_£t_image_fže +( +Evas_Objeù + * +bg +, cÚ¡ * +fže +) + +425 + `GL_CHECK_VAL +( +bg +, -1); + +427 +gl_bg + * +bg_d©a + = + `evas_objeù_d©a_g‘ +( +bg +, +GL_ROTATE_BG_DATA_KEY +); + +428 + `GL_CHECK_VAL +( +bg_d©a +, -1); + +429 + `GL_CHECK_VAL +( +bg_d©a +-> +img +, -1); + +431 ià(! +bg_d©a +-> +b_´–ßd +) { + +432 + `evas_objeù_image_fže_£t +( +bg_d©a +-> +img +, +fže +, +NULL +); + +433 + `evas_objeù_image_´–ßd +( +bg_d©a +-> +img +, +EINA_FALSE +); + +434 + `__gl_rÙ©e_bg_cu¡om_»size +( +bg_d©a +, +NULL +, NULL, NULL); + +436 + `–m_image_fžl_outside_£t +( +bg_d©a +-> +img +, +EINA_TRUE +); + +437 + `–m_image_fže_£t +( +bg_d©a +-> +img +, +fže +, +NULL +); + +438 + `–m_image_´–ßd_di§bËd_£t +( +bg_d©a +-> +img +, +EINA_FALSE +); + +439 + `–m_image_smoÙh_£t +( +bg_d©a +-> +img +, +EINA_FALSE +); + +443 + } +} + + @src/widget/gl-thumb.c + +18  + ~"gl-debug.h +" + +19  + ~"gl-thumb.h +" + +20  + ~"gl-utž.h +" + +21  + ~"gl-pšchzoom.h +" + +22  + ~"gl-¡ršgs.h +" + +23  + ~"gl-icÚs.h +" + +24 #ifdeà +_USE_ROTATE_BG + + +25  + ~"gl-rÙ©e-bg.h +" + +26  + ~"gl-exif.h +" + +28  + ~"gl-ge¡u».h +" + +31  + #GL_GRID_W + 180 + + ) + +32  + #GL_GRID_H + 133 + + ) + +34  + #GL_GRID_W_ZOOM_03 + 240 + + ) + +35  + #GL_GRID_H_ZOOM_03 + 178 + + ) + +37  + #GL_GRID_W_ZOOM_02 + 360 + + ) + +38  + #GL_GRID_H_ZOOM_02 + 267 + + ) + +40  + #GL_GRID_5_PER_ROW + 5 + + ) + +41  + #GL_GRID_8_PER_ROW + 8 + + ) + +42  + #GL_GRID_4_PER_ROW + 4 + + ) + +43  + #GL_GRID_3_PER_ROW + 3 + + ) + +44  + #GL_GRID_2_PER_ROW + 2 + + ) + +46  + #GL_GRID_6_PER_ROW + 6 + + ) + +47  + #GL_GRID_7_PER_ROW + 7 + + ) + +48  + #GL_GRID_10_PER_ROW + 10 + + ) + +50  + #GL_GRID_L_W + +GL_GRID_W_ZOOM_02 + + + ) + +51  + #GL_GRID_L_H + +GL_GRID_H_ZOOM_02 + + + ) + +53  + #GL_GRID_ITEM_L_CNT + 6 + + ) + +54  + #GL_GRID_ITEM_ZOOM_02_CNT + 8 + + ) + +55  + #GL_GRID_ITEM_ZOOM_03_CNT + 18 + + ) + +57  + #GL_PHOTOFRAME_VIDEO + "video" + + ) + +58  + #GL_PHOTOFRAME_VIDEO2 + "video2" + + ) + +59  + #GL_PHOTOFRAME_VIDEO3 + "video3" + + ) + +60  + #GL_PHOTOFRAME_DEFAULT + "Ïyout" + + ) + +61  + #GL_PHOTOFRAME_DEFAULT2 + "Ïyout2" + + ) + +62  + #GL_PHOTOFRAME_DEFAULT3 + "Ïyout3" + + ) + +63  + #GL_PHOTOFRAME_BURSTSHOT + "bur¡shÙ" + + ) + +64  + #GL_PHOTOFRAME_BURSTSHOT1 + "bur¡shÙ1" + + ) + +65  + #GL_PHOTOFRAME_BURSTSHOT2 + "bur¡shÙ2" + + ) + +67  +Evas_Objeù + * + $__gl_thumb_add_image +( +Evas_Objeù + * +·»Á +, * +·th +, + +68  +ܛÁ +,  +w +,  +h +) + +70 + `GL_CHECK_NULL +( +·»Á +); + +72 #ifdeà +_USE_ROTATE_BG + + +73 +Evas_Objeù + * +bg + = + `_gl_rÙ©e_bg_add +( +·»Á +, +Œue +); + +75 +Evas_Objeù + * +bg + = + `–m_bg_add +( +·»Á +); + +77 ià( +bg + =ð +NULL +) + +78  +NULL +; + +80 #ifdeà +_USE_ROTATE_BG + + +81 + `_gl_rÙ©e_bg_£t_fže +( +bg +, +·th +, +w +, +h +); + +82 + `_gl_rÙ©e_bg_rÙ©e_image +( +bg +, +ܛÁ +); + +84 + `–m_bg_fže_£t +( +bg +, +·th +, +NULL +); + +85 + `–m_bg_lßd_size_£t +( +bg +, +w +, +h +); + +86 + `evas_objeù_size_hšt_max_£t +( +bg +, +w +, +h +); + +87 + `evas_objeù_size_hšt_a¥eù_£t +( +bg +, +EVAS_ASPECT_CONTROL_VERTICAL +, 1, 1); + +88 + `evas_objeù_size_hšt_weight_£t +( +bg +, +EVAS_HINT_EXPAND +, EVAS_HINT_EXPAND); + +89 + `evas_objeù_size_hšt_®ign_£t +( +bg +, +EVAS_HINT_FILL +, EVAS_HINT_FILL); + +91  +bg +; + +92 + } +} + +94 +Evas_Objeù + * + $_gl_thumb_show_image +( +Evas_Objeù + * +obj +, * +·th +,  +ܛÁ +, + +95  +w +,  +h +,  +zoom_Ëv– +) + +97 + `GL_CHECK_NULL +( +obj +); + +99 +Evas_Objeù + * +Ïyout + = + `–m_Ïyout_add +( +obj +); + +100 + `GL_CHECK_NULL +( +Ïyout +); + +102 +Evas_Objeù + * +bg + = + `__gl_thumb_add_image +( +Ïyout +, +·th +, +ܛÁ +, +w +, +h +); + +103 ià( +bg + =ð +NULL +) { + +104 + `evas_objeù_d– +( +Ïyout +); + +105  +NULL +; + +108 * +bs_¡yË + = +GL_PHOTOFRAME_DEFAULT +; + +109 ià( +zoom_Ëv– + =ð +GL_ZOOM_IN_ONE +) + +110 +bs_¡yË + = +GL_PHOTOFRAME_DEFAULT2 +; + +111 ià( +zoom_Ëv– + =ð +GL_ZOOM_IN_TWO +) + +112 +bs_¡yË + = +GL_PHOTOFRAME_DEFAULT3 +; + +113 + `–m_Ïyout_theme_£t +( +Ïyout +, +GL_CLASS_GENGRID +, +GL_GRP_PHOTOFRAME +, + +114 +bs_¡yË +); + +115 + `–m_objeù_·¹_cڋÁ_£t +( +Ïyout +, "–m.sw®low.icÚ", +bg +); + +117 + `evas_objeù_show +( +Ïyout +); + +119  +Ïyout +; + +120 + } +} + +122 +Evas_Objeù + * + $_gl_thumb_show_bur¡shÙ +( +Evas_Objeù + * +obj +, * +·th1 +, + +123 * +·th2 +, * +·th3 +, + +124  +ܛÁ +,  +w +,  +h +, + +125  +zoom_Ëv– +) + +127 + `GL_CHECK_NULL +( +obj +); + +128 +Evas_Objeù + * +bg + = +NULL +; + +129 * +·¹ + = +NULL +; + +130 * +·th + = +NULL +; + +131  +i + = 0; + +133 +Evas_Objeù + * +Ïyout + = + `–m_Ïyout_add +( +obj +); + +134 + `GL_CHECK_NULL +( +Ïyout +); + +135 cÚ¡ * +bs_¡yË + = +GL_PHOTOFRAME_BURSTSHOT +; + +136 ià( +zoom_Ëv– + =ð +GL_ZOOM_IN_ONE +) + +137 +bs_¡yË + = +GL_PHOTOFRAME_BURSTSHOT1 +; + +138 ià( +zoom_Ëv– + =ð +GL_ZOOM_IN_TWO +) + +139 +bs_¡yË + = +GL_PHOTOFRAME_BURSTSHOT2 +; + +140 + `–m_Ïyout_theme_£t +( +Ïyout +, +GL_CLASS_GENGRID +, +GL_GRP_PHOTOFRAME +, + +141 +bs_¡yË +); + +144  +i + = 0; i < 3; i++) { + +145  +i +) { + +147 +·¹ + = "elm.swallow.icon1"; + +148 +·th + = +·th1 +; + +151 +·¹ + = "elm.swallow.icon2"; + +152 +·th + = +·th2 +; + +155 +·¹ + = "elm.swallow.icon3"; + +156 +·th + = +·th3 +; + +160 +bg + = + `__gl_thumb_add_image +( +Ïyout +, +·th +, +ܛÁ +, +w +, +h +); + +161 ià( +bg + =ð +NULL +) { + +162 + `evas_objeù_d– +( +Ïyout +); + +163  +NULL +; + +165 + `–m_objeù_·¹_cڋÁ_£t +( +Ïyout +, +·¹ +, +bg +); + +167 + `evas_objeù_show +( +Ïyout +); + +168  +Ïyout +; + +169 + } +} + +171 +Evas_Objeù + * + $_gl_thumb_show_video +( +Evas_Objeù + * +obj +, * +·th +, + +172  +v_dur +,  +w +,  +h +, + +173  +zoom_Ëv– +) + +175 + `GL_CHECK_NULL +( +obj +); + +177 +Evas_Objeù + * +Ïyout + = + `–m_Ïyout_add +( +obj +); + +178 + `GL_CHECK_NULL +( +Ïyout +); + +180 #ifdeà +_USE_ROTATE_BG + + +181 +Evas_Objeù + * +bg + = + `_gl_rÙ©e_bg_add +( +Ïyout +, +Œue +); + +183 +Evas_Objeù + * +bg + = + `–m_bg_add +( +Ïyout +); + +185 ià( +bg + =ð +NULL +) { + +186 + `evas_objeù_d– +( +Ïyout +); + +187  +NULL +; + +190 #ifdeà +_USE_ROTATE_BG + + +191 + `_gl_rÙ©e_bg_£t_fže +( +bg +, +·th +, +w +, +h +); + +192 + `_gl_rÙ©e_bg_rÙ©e_image +( +bg +, +GL_ORIENTATION_ROT_0 +); + +194 + `–m_bg_fže_£t +( +bg +, +·th +, +NULL +); + +195 + `–m_bg_lßd_size_£t +( +bg +, +w +, +h +); + +196 + `evas_objeù_size_hšt_max_£t +( +bg +, +w +, +h +); + +197 + `evas_objeù_size_hšt_a¥eù_£t +( +bg +, +EVAS_ASPECT_CONTROL_VERTICAL +, 1, 1); + +198 + `evas_objeù_size_hšt_weight_£t +( +bg +, +EVAS_HINT_EXPAND +, EVAS_HINT_EXPAND); + +199 + `evas_objeù_size_hšt_®ign_£t +( +bg +, +EVAS_HINT_FILL +, EVAS_HINT_FILL); + +202 * +bs_¡yË + = +GL_PHOTOFRAME_VIDEO +; + +203 ià( +zoom_Ëv– + =ð +GL_ZOOM_IN_ONE +) + +204 +bs_¡yË + = +GL_PHOTOFRAME_VIDEO2 +; + +205 ià( +zoom_Ëv– + =ð +GL_ZOOM_IN_TWO +) + +206 +bs_¡yË + = +GL_PHOTOFRAME_VIDEO3 +; + +207 + `–m_Ïyout_theme_£t +( +Ïyout +, +GL_CLASS_GENGRID +, +GL_GRP_PHOTOFRAME +, + +208 +bs_¡yË +); + +209 + `–m_objeù_·¹_cڋÁ_£t +( +Ïyout +, "–m.sw®low.icÚ", +bg +); + +211 * +dur_¡r + = + `_gl_g‘_du¿tiÚ_¡ršg +( +v_dur +); + +212 + `GL_CHECK_NULL +( +dur_¡r +); + +213 + `–m_objeù_·¹_‹xt_£t +( +Ïyout +, +GL_GRID_TEXT +, +dur_¡r +); + +214 + `GL_FREE +( +dur_¡r +); + +216 + `evas_objeù_show +( +Ïyout +); + +217  +Ïyout +; + +218 + } +} + +220 +Evas_Objeù + * + $_gl_thumb_show_checkbox +( +Evas_Objeù + * +obj +, +boÞ + +checked +, + +221 +Evas_Sm¬t_Cb + +func +, cÚ¡ * +d©a +) + +223 + `GL_CHECK_NULL +( +func +); + +224 + `GL_CHECK_NULL +( +obj +); + +225 +Evas_Objeù + * +ck + = +NULL +; + +227 +ck + = + `–m_check_add +( +obj +); + +228 + `GL_CHECK_NULL +( +ck +); + +230 #ifdeà +_USE_GRID_CHECK + + +231 + `–m_objeù_¡yË_£t +( +ck +, "grid"); + +233 + `–m_objeù_¡yË_£t +( +ck +, +GL_CHECKBOX_STYLE_THUMB +); + +235 + `evas_objeù_´Ýag©e_ev’ts_£t +( +ck +, +EINA_FALSE +); + +237 + `–m_check_¡©e_£t +( +ck +, +checked +); + +239 + `evas_objeù_sm¬t_ÿÎback_add +( +ck +, "chªged", +func +, +d©a +); + +241 + `evas_objeù_show +( +ck +); + +242  +ck +; + +243 + } +} + +245 +Evas_Objeù + * + $_gl_thumb_show_mode +( +Evas_Objeù + * +obj +, +gl_cm_mode_e + +mode +) + +247 +Evas_Objeù + * +icÚ + = +NULL +; + +248 cÚ¡ * +fže + = +NULL +; + +250  +mode +) { + +251  +GL_CM_MODE_PANORAMA +: + +252 +fže + = +GL_ICON_PANORAMA +; + +254  +GL_CM_MODE_BURSTSHOT +: + +255 +fže + = +GL_ICON_BURSTSHOT +; + +257  +GL_CM_MODE_SOUND +: + +258 +fže + = +GL_ICON_SOUND_SHOT +; + +260  +GL_CM_MODE_ANIMATE +: + +261 +fže + = +GL_ICON_SOUND_SHOT +; + +263  +GL_CM_MODE_BEST +: + +264 +fže + = +GL_ICON_SOUND_SHOT +; + +270 ià( +fže +) { + +271 + `GL_CHECK_NULL +( +obj +); + +272 +icÚ + = + `–m_icÚ_add +( +obj +); + +273 + `GL_CHECK_NULL +( +icÚ +); + +274 + `GL_ICON_SET_FILE +( +icÚ +, +fže +); + +275 + `evas_objeù_show +( +icÚ +); + +277  +icÚ +; + +278 + } +} + +280 +Evas_Objeù + * + $_gl_thumb_add_g’grid +( +Evas_Objeù + * +·»Á +) + +282 + `GL_CHECK_NULL +( +·»Á +); + +283 +Evas_Objeù + * +grid + = + `–m_g’grid_add +( +·»Á +); + +284 + `GL_CHECK_NULL +( +grid +); + +286 #ifdeà +_USE_CUSTOMIZED_GENGRID_STYLE + + +287 + `–m_objeù_¡yË_£t +( +grid +, +GL_GENGRID_STYLE_GALLERY +); + +289 #ifdeà +_USE_SCROL_HORIZONRAL + + +290 + `–m_g’grid_®ign_£t +( +grid +, 0.5, 0.5); + +291 + `–m_g’grid_hÜizڏl_£t +( +grid +, +EINA_TRUE +); + +292 + `–m_süÞËr_bounû_£t +( +grid +, +EINA_TRUE +, +EINA_FALSE +); + +294 + `–m_g’grid_®ign_£t +( +grid +, 0.0, 0.0); + +295 + `–m_g’grid_hÜizڏl_£t +( +grid +, +EINA_FALSE +); + +296 + `–m_süÞËr_bounû_£t +( +grid +, +EINA_FALSE +, +EINA_TRUE +); + +298 + `–m_süÞËr_pÞicy_£t +( +grid +, +ELM_SCROLLER_POLICY_OFF +, + +299 +ELM_SCROLLER_POLICY_AUTO +); + +300 + `–m_g’grid_muÉi_£Ëù_£t +( +grid +, +EINA_TRUE +); + +301 + `evas_objeù_size_hšt_weight_£t +( +grid +, +EVAS_HINT_EXPAND +, + +302 +EVAS_HINT_EXPAND +); + +303  +grid +; + +304 + } +} + +307  + $_gl_thumb_upd©e_g’grid +( +Evas_Objeù + * +v›w +) + +309 + `GL_CHECK_VAL +( +v›w +, -1); + +311 +Elm_Objeù_I‹m + * +_fœ¡_™ + = +NULL +; + +312 +_fœ¡_™ + = + `–m_g’grid_fœ¡_™em_g‘ +( +v›w +); + +313  +_fœ¡_™ +) { + +314 + `–m_g’grid_™em_upd©e +( +_fœ¡_™ +); + +315 +_fœ¡_™ + = + `–m_g’grid_™em_Ãxt_g‘ +(_first_it); + +319 + } +} + +321 #ifdeà +_USE_SCROL_HORIZONRAL + + +323  + $_gl_thumb_£t_size +(* +d©a +, +Evas_Objeù + * +v›w +, * +size_w +, * +size_h +) + +325 + `GL_CHECK_VAL +( +v›w +, -1); + +326 + `GL_CHECK_VAL +( +d©a +, -1); + +327 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +328  +rÙ©e_mode + = +ad +-> +maššfo +.rotate_mode; + +329  +_w + = 0; + +330  +_h + = 0; + +331  +_w_l + = 0; + +332  +_h_l + = 0; + +333  +®ign_c + = 0; + +334  +couÁ + = + `–m_g’grid_™ems_couÁ +( +v›w +); + +335  +wš_w + = 0; + +336  +wš_h + = 0; + +337  +sÿË + = + `_gl_g‘_wš_çùÜ +( +ad +-> +maššfo +. +wš +, & +wš_w +, & +wš_h +); + +338 + `gl_dbg +("rÙ©e_mode: %d, zoom†ev–: %d", +rÙ©e_mode +, + +339 +ad +-> +pšchšfo +. +zoom_Ëv– +); + +341 +_w_l + = ()( +GL_GRID_L_W + * +sÿË +); + +342 +_h_l + = ()( +GL_GRID_L_H + * +sÿË +); + +344 ià( +ad +-> +pšchšfo +. +zoom_Ëv– + =ð +GL_ZOOM_IN_TWO +) { + +345 +_w + = ()( +wš_w + / +GL_GRID_3_PER_ROW +); + +346 +_h + = ()( +GL_GRID_H_ZOOM_02 + * +sÿË +); + +347 +®ign_c + = +GL_GRID_ITEM_ZOOM_02_CNT +; + +348 } ià( +ad +-> +pšchšfo +. +zoom_Ëv– + =ð +GL_ZOOM_IN_ONE +) { + +349 +GL_THUMB_SIZE +: + +350 +_w + = ()( +wš_w + / +GL_GRID_4_PER_ROW +); + +351 +_h + = ()( +GL_GRID_H_ZOOM_03 + * +sÿË +); + +352 +®ign_c + = +GL_GRID_ITEM_ZOOM_03_CNT +; + +353 } ià( +ad +-> +pšchšfo +. +zoom_Ëv– + =ð +GL_ZOOM_DEFAULT +) { + +354 +_w + = ()( +wš_w + / +GL_GRID_8_PER_ROW +); + +355 +_h + = ()( +GL_GRID_H + * +sÿË +); + +358  +GL_THUMB_SIZE +; + +361 ià(( +rÙ©e_mode + =ð +APP_DEVICE_ORIENTATION_270 +) || + +362 ( +rÙ©e_mode + =ð +APP_DEVICE_ORIENTATION_90 +)) { + +363 +®ign_c + = +GL_GRID_ITEM_L_CNT +; + +364 + `–m_g’grid_™em_size_£t +( +v›w +, +_w_l +, +_h_l +); + +365 ià( +size_w +) + +366 * +size_w + = +_w_l +-4; + +367 ià( +size_h +) + +368 * +size_h + = +_h_l +-4; + +370 + `–m_g’grid_™em_size_£t +( +v›w +, +_w +, +_h +); + +371 ià( +size_w +) + +372 * +size_w + = +_w +-4; + +373 ià( +size_h +) + +374 * +size_h + = +_h +-4; + +376 ià( +couÁ + <ð +®ign_c +) + +377 + `–m_g’grid_®ign_£t +( +v›w +, 0.5, 0.5); + +379 + `–m_g’grid_®ign_£t +( +v›w +, 0.0, 0.5); + +380 ià( +size_w + && +size_h +) + +381 + `gl_dbg +("P: %dx%d, size_w: %d,size_h: %d", +_w +, +_h +, * +size_w +, * +size_h +); + +383 + } +} + +386  + $_gl_thumb_£t_size +(* +d©a +, +Evas_Objeù + * +v›w +, * +size_w +, * +size_h +) + +388 + `GL_CHECK_VAL +( +v›w +, -1); + +389 + `GL_CHECK_VAL +( +d©a +, -1); + +390 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +391  +rÙ©e_mode + = +ad +-> +maššfo +.rotate_mode; + +392  +_w + = 0; + +393  +_h + = 0; + +394  +_w_l + = 0; + +395  +_h_l + = 0; + +396  +wš_w + = 0; + +397  +wš_h + = 0; + +398  +sÿË + = + `_gl_g‘_wš_çùÜ +( +ad +-> +maššfo +. +wš +, & +wš_w +, & +wš_h +); + +400 ià( + `gl_g‘_v›w_mode +( +ad +è=ð +GL_VIEW_THUMBS_EDIT +) { + +401 +ad +-> +pšchšfo +. +zoom_Ëv– + = +GL_ZOOM_IN_ONE +; + +403 + `gl_dbg +("rÙ©e_mode: %d, zoom†ev–: %d", +rÙ©e_mode +, + +404 +ad +-> +pšchšfo +. +zoom_Ëv– +); + +406 ià( +ad +-> +pšchšfo +. +zoom_Ëv– + =ð +GL_ZOOM_IN_TWO +) { + +407 +_w + = ()( +wš_w + / +GL_GRID_3_PER_ROW +); + +408 +_w_l + = ()( +wš_h + / +GL_GRID_6_PER_ROW +); + +409 } ià( +ad +-> +pšchšfo +. +zoom_Ëv– + =ð +GL_ZOOM_IN_ONE +) { + +410 +GL_THUMB_SIZE +: + +411 +_w + = ()( +wš_w + / +GL_GRID_4_PER_ROW +); + +412 +_w_l + = ()( +wš_h + / +GL_GRID_7_PER_ROW +); + +413 } ià( +ad +-> +pšchšfo +. +zoom_Ëv– + =ð +GL_ZOOM_DEFAULT +) { + +414 +_w + = ()( +wš_w + / +GL_GRID_8_PER_ROW +); + +415 +_w_l + = ()( +wš_h + / +GL_GRID_10_PER_ROW +); + +418  +GL_THUMB_SIZE +; + +421 +_h_l + = +_w_l +; + +422 +_h + = +_w +; + +423 ià(( +rÙ©e_mode + =ð +APP_DEVICE_ORIENTATION_270 +) || + +424 ( +rÙ©e_mode + =ð +APP_DEVICE_ORIENTATION_90 +)) { + +425 + `–m_g’grid_™em_size_£t +( +v›w +, +_w_l +, +_h_l +); + +426 ià( +size_w +) + +427 * +size_w + = +_w_l +-4; + +428 ià( +size_h +) + +429 * +size_h + = +_h_l +-4; + +431 + `–m_g’grid_™em_size_£t +( +v›w +, +_w +, +_h +); + +432 ià( +size_w +) + +433 * +size_w + = +_w +-4; + +434 ià( +size_h +) + +435 * +size_h + = +_h +-4; + +441 ià( +size_w + && +size_h +) + +442 + `gl_dbg +("P: %dx%d, size_w: %d,size_h: %d", +_w +, +_h +, * +size_w +, * +size_h +); + +444 + } +} + +447  + $_gl_thumb_¥l™_£t_size +(* +d©a +, +Evas_Objeù + * +v›w +) + +449 + `GL_CHECK_VAL +( +v›w +, -1); + +450 + `GL_CHECK_VAL +( +d©a +, -1); + +451 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +452  +rÙ©e_mode + = +ad +-> +maššfo +.rotate_mode; + +453  +_w + = 0; + +454  +_h + = 0; + +455  +_w_l + = 0; + +456  +_h_l + = 0; + +457  +wš_w + = 0; + +458  +wš_h + = 0; + +459  +sÿË + = + `_gl_g‘_wš_çùÜ +( +ad +-> +maššfo +. +wš +, & +wš_w +, & +wš_h +); + +460 + `gl_dbg +("rÙ©e_mode: %d, zoom†ev–: %d, sÿË : %f", +rÙ©e_mode +, + +461 +ad +-> +pšchšfo +. +zoom_Ëv– +, +sÿË +); + +463 +_w + = ()((2* +wš_w +è/ (3* +GL_GRID_2_PER_ROW +)); + +464 +_h + = +_w +; + +465 +_w_l + = ()(( +wš_h +- +wš_w +/3è/ +GL_GRID_5_PER_ROW +); + +466 +_h_l + = +_w_l +; + +468 ià(( +rÙ©e_mode + =ð +APP_DEVICE_ORIENTATION_270 +) || + +469 ( +rÙ©e_mode + =ð +APP_DEVICE_ORIENTATION_90 +)) { + +470 + `–m_g’grid_™em_size_£t +( +v›w +, +_w_l +, +_h_l +); + +472 + `–m_g’grid_™em_size_£t +( +v›w +, +_w +, +_h +); + +476 + } +} + +479 +boÞ + + $_gl_thumb_š£¹_d©e +(* +d©a +, +Evas_Objeù + * +·»Á +) + +481 + `GL_CHECK_FALSE +( +d©a +); + +482 + `GL_CHECK_FALSE +( +·»Á +); + +483 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +484 +boÞ + +b_»move + = +çl£ +; + +486 ià( +ad +-> +pšchšfo +. +zoom_Ëv– + !ð +GL_ZOOM_DEFAULT +) + +487 +b_»move + = +Œue +; + +489 +gl_™em + * +g™em + = +NULL +; + +490 +gl_™em + * +´e_g™em + = +NULL +; + +491 +gl_™em + * +š£¹ed_g™em + = +NULL +; + +492 +boÞ + +b_𣹠+ = +çl£ +; + +493 +Elm_Objeù_I‹m + * +–m_™em + = +NULL +; + +494 +Elm_Objeù_I‹m + * +Ãxt_–m_™em + = +NULL +; + +495 +Elm_G’grid_I‹m_CÏss + * +dgic + = &( +ad +-> +gridšfo +. +d©e_gic +); + +497 +–m_™em + = + `–m_g’grid_fœ¡_™em_g‘ +( +·»Á +); + +498  +–m_™em +) { + +499 +Ãxt_–m_™em + = + `–m_g’grid_™em_Ãxt_g‘ +( +–m_™em +); + +500 +g™em + = + `–m_objeù_™em_d©a_g‘ +( +–m_™em +); + +501 ià( +g™em + =ð +NULL +) { + +502 + `gl_dbgE +("Invalid data item!"); + +504 } ià( +b_»move +) { + +505 ià( + `–m_g’grid_™em_™em_þass_g‘ +( +–m_™em +è=ð +dgic +) { + +506 + `gl_dbg +("Removd©™em %p", +dgic +); + +507 +g™em +-> +´—µ’d + = +çl£ +; + +508 + `–m_objeù_™em_d– +( +–m_™em +); + +510  +GL_THUMB_NEXT +; + +511 } ià( +´e_g™em + =ð +NULL +) { + +512 +b_𣹠+ = +Œue +; + +513 } ià( +g™em +-> +–m_™em + && !g™em-> +´—µ’d + && + +514 +´e_g™em +-> +™em +) { + +515  +tm + +t1 +; + +516  +tm + +t2 +; + +517  +mth + = 0; + +518  +yth + = 0; + +519 + `loÿÉime_r +(( +time_t + *)&( +´e_g™em +-> +™em +-> +mtime +), + +520 & +t1 +); + +521 +mth + = +t1 +. +tm_mÚ +; + +522 +yth + = +t1 +. +tm_y—r +; + +523 + `loÿÉime_r +(( +time_t + *è&( +g™em +-> +™em +-> +mtime +), & +t2 +); + +524 ià( +mth + !ð +t2 +. +tm_mÚ + || +yth + !ðt2. +tm_y—r +) + +525 +b_𣹠+ = +Œue +; + +527 ià( +b_𣹠+ && +g™em +-> +–m_™em + && !g™em-> +´—µ’d +) { + +528 + `–m_g’grid_™em_š£¹_befÜe +( +·»Á +, +dgic +, + +529 +g™em +, g™em-> +–m_™em +, + +530 +NULL +, NULL); + +531 +g™em +-> +´—µ’d + = +Œue +; + +532 +g™em +-> +´e_g™em + = gitem; + +533 +š£¹ed_g™em + = +g™em +; + +534 } ià( +š£¹ed_g™em +) { + +535 +g™em +-> +´e_g™em + = +š£¹ed_g™em +; + +538 +´e_g™em + = +g™em +; + +539 +b_𣹠+ = +çl£ +; + +541 +GL_THUMB_NEXT +: + +543 +g™em +-> +´e_g™em + = +NULL +; + +544 +–m_™em + = +Ãxt_–m_™em +; + +547  +Œue +; + +548 + } +} + + @src/widget/gl-tile.c + +18  + ~"gl-debug.h +" + +19  + ~"gl-tže.h +" + +20  + ~"gl-utž.h +" + +21  + ~"gl-bu‰Ú.h +" + +22  + ~"gl-cڌÞb¬.h +" + +23  + ~"g®Ëry.h +" + +24  + ~"gl-icÚs.h +" + +25 #ifdeà +_USE_ROTATE_BG + + +26  + ~"gl-rÙ©e-bg.h +" + +28  + ~"gl-ge¡u».h +" + +29  + ~"gl-¡ršgs.h +" + +30  + ~"gl-tim–še.h +" + +33  + #GL_TILE_ITEM_WIDTH + 360 + + ) + +34  + #GL_TILE_ITEM_HEIGHT + 354 + + ) + +35  + #GL_TILE_ITEM_L_W + 426 + + ) + +36  + #GL_TILE_ITEM_L_H + 426 + + ) + +37  + #GL_TILE_2_PER_ROW + 2 + + ) + +38  + #GL_TILE_3_PER_ROW + 3 + + ) + +39  + #GL_TILE_ITEM_CNT + 6 + + ) + +40  + #GL_TILE_ITEM_CNT2 + 12 + + ) + +41  + #GL_TILE_ITEM_L_CNT + 3 + + ) + +43  + #GL_TILE_ITEM_C_CNT + 3 + + ) + +44  + #GL_TILE_ALIGN_LEFT + 0.0f + + ) + +45  + #GL_TILE_ALIGN_CON1 + 0.25f + + ) + +46  + #GL_TILE_ALIGN_CON2 + 0.75f + + ) + +47  + #GL_TILE_ALIGN_MID + 0.5f + + ) + +48  + #GL_TILE_ALIGN_BOT + 1.0f + + ) + +50  + #GL_TILE_W + ( +GL_TILE_ITEM_WIDTH +-8) + + ) + +51  + #GL_TILE_H + ( +GL_TILE_ITEM_HEIGHT +-8) + + ) + +53  + #GL_CHECKBOX_STYLE_ALBUM + "g®Ëry/®bum" + + ) + +54  + #GL_CHECKBOX_STYLE_ALBUM_GRID + "g®Ëry/®bum/grid" + + ) + +56  +Evas_Objeù + * + $__gl_tže_add_icÚ_bg +( +Evas_Objeù + * +obj +, +bg_fže_£t_cb + +func +, + +57 * +d©a +) + +59 + `GL_CHECK_NULL +( +func +); + +60 + `GL_CHECK_NULL +( +obj +); + +61 +Evas_Objeù + * +bg + = +NULL +; + +63 #ifdeà +_USE_ROTATE_BG + + +64 +bg + = + `_gl_rÙ©e_bg_add +( +obj +, +Œue +); + +66 +bg + = + `–m_bg_add +( +obj +); + +68 + `GL_CHECK_NULL +( +bg +); + +70 ià( +d©a +) { + +71  +sÿË + = + `–m_cÚfig_sÿË_g‘ +(); + +72  +wid + = 0; + +73  +hei + = 0; + +74 +wid + = ()( +GL_TILE_W + * +sÿË +); + +75 +hei + = ()( +GL_TILE_H + * +sÿË +); + +76 #ifdeà +_USE_ROTATE_BG + + +77 + `_gl_rÙ©e_bg_add_image +( +bg +, +wid +, +hei +); + +79 + `–m_bg_lßd_size_£t +( +bg +, +wid +, +hei +); + +82 + `func +( +bg +, +d©a +); + +85 + `evas_objeù_size_hšt_weight_£t +( +bg +, +EVAS_HINT_EXPAND +, EVAS_HINT_EXPAND); + +86 + `evas_objeù_size_hšt_®ign_£t +( +bg +, 0.5, 0.5); + +87 + `evas_objeù_show +( +bg +); + +89  +bg +; + +90 + } +} + +92  +Eša_BoÞ + + $__gl_tže_zoom_out_cb +( +Evas_Objeù + * +ge¡u» +, * +d©a +) + +94 + `GL_CHECK_FALSE +( +d©a +); + +95 +Evas_Objeù + * +·»Á + = +NULL +; + +96 +Evas_Objeù + * +v›w + = +NULL +; + +97 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +98  +v›w_m + = + `gl_g‘_v›w_mode +( +d©a +); + +99 + `gl_dbg +("v›w_m: %d", +v›w_m +); + +101 ià( +v›w_m + =ð +GL_VIEW_TIMELINE +) { + +102 ià(( +ad +-> +pšchšfo +. +zoom_Ëv– + > +GL_ZOOM_DEFAULT +)) { + +104 +ad +-> +pšchšfo +. +zoom_Ëv– +--; + +105 + `gl_dbg +("Updateime view size"); + +106 + `_gl_tim–še_upd©e_grid_size +( +d©a +); + +108 + `gl_dbg +("A̗dy‡ˆmax zoom†ev– : %d", +ad +-> +pšchšfo +. +zoom_Ëv– +); + +110  +çl£ +; + +112 ià(( +ad +-> +maššfo +. +rÙ©e_mode + =ð +APP_DEVICE_ORIENTATION_270 +) || + +113 ( +ad +-> +maššfo +. +rÙ©e_mode + =ð +APP_DEVICE_ORIENTATION_90 +)) { + +114 + `gl_dbg +("Skip in†andscape mode"); + +116  +çl£ +; + +119 +·»Á + = + `_gl_ge¡u»_g‘_·»Á +( +ge¡u» +); + +120 + `GL_CHECK_FALSE +( +·»Á +); + +121 +v›w + = + `–m_objeù_·¹_cڋÁ_g‘ +( +·»Á +, "elm.swallow.view"); + +122 + `GL_CHECK_CANCEL +( +v›w +); + +125 ià( + `–m_g’grid_™ems_couÁ +( +v›w +) <= 0) + +126  +çl£ +; + +128  +Ëv– + = () + `evas_objeù_d©a_g‘ +( +v›w +, +GL_GESTURE_KEY_PINCH_LEVEL +); + +129 ià( +GL_ZOOM_NONE + =ð +Ëv– +) + +130  +çl£ +; + +131 ià( +Ëv– + >ð +GL_ZOOM_DEFAULT +) { + +132 +Ëv– +--; + +133 + `evas_objeù_d©a_£t +( +v›w +, +GL_GESTURE_KEY_PINCH_LEVEL +, + +134 (*) +Ëv– +); + +136 + `gl_dbg +("Ëv–: %d", +Ëv– +); + +138 + `_gl_tže_upd©e_™em_size +( +d©a +, +v›w +, +Œue +); + +139  +çl£ +; + +140 + } +} + +142  +Eša_BoÞ + + $__gl_tže_zoom_š_cb +( +Evas_Objeù + * +ge¡u» +, * +d©a +) + +144 + `GL_CHECK_FALSE +( +d©a +); + +145 +Evas_Objeù + * +·»Á + = +NULL +; + +146 +Evas_Objeù + * +v›w + = +NULL +; + +147 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +148  +v›w_m + = + `gl_g‘_v›w_mode +( +d©a +); + +149 + `gl_dbg +("v›w_m: %d", +v›w_m +); + +151 ià( +v›w_m + =ð +GL_VIEW_TIMELINE +) { + +152 ià(( +ad +-> +pšchšfo +. +zoom_Ëv– + >ð +GL_ZOOM_DEFAULT +) && + +153 ( +ad +-> +pšchšfo +. +zoom_Ëv– + < ( +GL_ZOOM_MAX + - 1))) { + +155 +ad +-> +pšchšfo +. +zoom_Ëv– +++; + +156 + `gl_dbg +("Updateime view size"); + +157 + `_gl_tim–še_upd©e_grid_size +( +d©a +); + +159 + `gl_dbg +("A̗dy‡ˆmax zoom†ev– : %d", +ad +-> +pšchšfo +. +zoom_Ëv– +); + +161  +çl£ +; + +164 ià(( +ad +-> +maššfo +. +rÙ©e_mode + =ð +APP_DEVICE_ORIENTATION_270 +) || + +165 ( +ad +-> +maššfo +. +rÙ©e_mode + =ð +APP_DEVICE_ORIENTATION_90 +)) { + +166 + `gl_dbg +("Skip in†andscape mode"); + +168  +çl£ +; + +171 +·»Á + = + `_gl_ge¡u»_g‘_·»Á +( +ge¡u» +); + +172 + `GL_CHECK_CANCEL +( +·»Á +); + +173 +v›w + = + `–m_objeù_·¹_cڋÁ_g‘ +( +·»Á +, "elm.swallow.view"); + +174 + `GL_CHECK_FALSE +( +v›w +); + +177 ià( + `–m_g’grid_™ems_couÁ +( +v›w +) <= 0) + +178  +çl£ +; + +180  +Ëv– + = () + `evas_objeù_d©a_g‘ +( +v›w +, +GL_GESTURE_KEY_PINCH_LEVEL +); + +181 ià( +GL_ZOOM_DEFAULT + =ð +Ëv– +) + +182  +çl£ +; + +183 ià( +Ëv– + < +GL_ZOOM_DEFAULT +) { + +184 +Ëv– +++; + +185 + `evas_objeù_d©a_£t +( +v›w +, +GL_GESTURE_KEY_PINCH_LEVEL +, + +186 (*) +Ëv– +); + +188 + `gl_dbg +("Ëv–: %d", +Ëv– +); + +190 + `_gl_tže_upd©e_™em_size +( +d©a +, +v›w +, +Œue +); + +191  +çl£ +; + +192 + } +} + +194  + $__gl_t™Ë_grid_d–_cb +(* +d©a +, +Evas + * +e +, +Evas_Objeù + * +obj +, + +195 * +ei +) + +197 + `gl_dbg +("Delete grid ---"); + +198 ià( +obj +) { + +199 + `evas_objeù_d©a_d– +( +obj +, +GL_GESTURE_KEY_PINCH_LEVEL +); + +201 + `gl_dbg +("Delete grid +++"); + +202 + } +} + +204 +Evas_Objeù + * + $_gl_tže_show_·¹_icÚ +( +Evas_Objeù + * +obj +, cÚ¡ * +·¹ +, + +205 +bg_fže_£t_cb + +func +, * +d©a +) + +207 + `GL_CHECK_NULL +( +·¹ +); + +208 + `GL_CHECK_NULL +( + `¡¾’ +( +·¹ +)); + +209 + `GL_CHECK_NULL +( +obj +); + +211 ià(! + `g_¡rcmp0 +( +·¹ +, +GL_TILE_ICON +)) { + +212 +Evas_Objeù + * +bg + = +NULL +; + +213 +bg + = + `__gl_tže_add_icÚ_bg +( +obj +, +func +, +d©a +); + +214  +bg +; + +216  +NULL +; + +217 + } +} + +219 +Evas_Objeù + * + $_gl_tže_show_·¹_dim +( +Evas_Objeù + * +obj +) + +221 + `GL_CHECK_NULL +( +obj +); + +223 +Evas + * +evas + = + `evas_objeù_evas_g‘ +( +obj +); + +224 + `GL_CHECK_NULL +( +evas +); + +225 +Evas_Objeù + * +bg + = +NULL +; + +226 +bg + = + `evas_objeù_»ùªgË_add +( +evas +); + +227 + `GL_CHECK_NULL +( +bg +); + +229 + `evas_objeù_cÞÜ_£t +( +bg +, 220, 218, 211, 153); + +230 + `evas_objeù_size_hšt_weight_£t +( +bg +, +EVAS_HINT_EXPAND +, EVAS_HINT_EXPAND); + +231 + `evas_objeù_size_hšt_®ign_£t +( +bg +, +EVAS_HINT_FILL +, EVAS_HINT_FILL); + +232 + `evas_objeù_show +( +bg +); + +233  +bg +; + +234 + } +} + +236 +Evas_Objeù + * + $_gl_tže_show_·¹_checkbox_grid +( +Evas_Objeù + * +obj +, +boÞ + +checked +, + +237 +Evas_Sm¬t_Cb + +func +, + +238 cÚ¡ * +d©a +) + +240 + `GL_CHECK_NULL +( +func +); + +241 + `GL_CHECK_NULL +( +obj +); + +242 +Evas_Objeù + * +ck + = +NULL +; + +244 +ck + = + `–m_check_add +( +obj +); + +245 + `GL_CHECK_NULL +( +ck +); + +246 + `–m_objeù_¡yË_£t +( +ck +, +GL_CHECKBOX_STYLE_ALBUM_GRID +); + +247 + `evas_objeù_»³©_ev’ts_£t +( +ck +, +EINA_TRUE +); + +248 + `–m_check_¡©e_£t +( +ck +, +checked +); + +249 + `evas_objeù_sm¬t_ÿÎback_add +( +ck +, "chªged", +func +, +d©a +); + +250 + `evas_objeù_show +( +ck +); + +251  +ck +; + +252 + } +} + +254 +Evas_Objeù + * + $_gl_tže_show_·¹_checkbox +( +Evas_Objeù + * +obj +, +boÞ + +checked +, + +255 +Evas_Sm¬t_Cb + +func +, cÚ¡ * +d©a +) + +257 + `GL_CHECK_NULL +( +func +); + +258 + `GL_CHECK_NULL +( +obj +); + +259 +Evas_Objeù + * +ck + = +NULL +; + +261 +ck + = + `–m_check_add +( +obj +); + +262 + `GL_CHECK_NULL +( +ck +); + +263 + `evas_objeù_´Ýag©e_ev’ts_£t +( +ck +, +EINA_FALSE +); + +264 + `–m_check_¡©e_£t +( +ck +, +checked +); + +265 + `evas_objeù_sm¬t_ÿÎback_add +( +ck +, "chªged", +func +, +d©a +); + +266 + `evas_objeù_show +( +ck +); + +267  +ck +; + +268 + } +} + +270 +Evas_Objeù + * + $_gl_tže_show_·¹_»Çme +( +Evas_Objeù + * +obj +, +Evas_Sm¬t_Cb + +func +, + +271 cÚ¡ * +d©a +) + +273 + `GL_CHECK_NULL +( +func +); + +274 + `GL_CHECK_NULL +( +obj +); + +275 +Evas_Objeù + * +bŠ + = +NULL +; + +276 +bŠ + = + `_gl_but_ü—‹_but +( +obj +, +NULL +, NULL, +GL_BUTTON_STYLE_RENAME +, +func +, + +277 +d©a +); + +278 + `GL_CHECK_NULL +( +bŠ +); + +279 + `evas_objeù_´Ýag©e_ev’ts_£t +( +bŠ +, +EINA_FALSE +); + +280  +bŠ +; + +281 + } +} + +283 +Evas_Objeù + * + $_gl_tže_show_·¹_ty³_icÚ +( +Evas_Objeù + * +obj +,  +¢s_ty³ +) + +285 + `GL_CHECK_NULL +( +obj +); + +286 +Evas_Objeù + * +icÚ + = + `–m_icÚ_add +( +obj +); + +287 + `GL_CHECK_NULL +( +icÚ +); + +289  +¢s_ty³ +) { + +290  +GL_TILE_TYPE_CAMERA +: + +291 + `GL_ICON_SET_FILE +( +icÚ +, +GL_ICON_ALBUM_CAMERA +); + +293  +GL_TILE_TYPE_DOWNLOAD +: + +294 + `GL_ICON_SET_FILE +( +icÚ +, +GL_ICON_ALBUM_DOWNLOAD +); + +296  +GL_TILE_TYPE_FOLDER +: + +297 + `GL_ICON_SET_FILE +( +icÚ +, +GL_ICON_ALBUM_FOLDER +); + +299  +GL_TILE_TYPE_MMC_STORAGE +: + +300 + `GL_ICON_SET_FILE +( +icÚ +, +GL_ICON_ALBUM_MMC +); + +303 + `gl_dbgE +("Unknow sns_ty³[%d]!", +¢s_ty³ +); + +306 + `evas_objeù_show +( +icÚ +); + +307  +icÚ +; + +308 + } +} + +310  + $_gl_tže_g‘_mtime +( +time_t + * +mtime1 +,ime_ˆ* +mtime2 +, * +buf +,  +max_Ën +) + +312 * +d©e1 + = +NULL +; + +313 * +d©e2 + = +NULL +; + +314 * +d©e3 + = +NULL +; + +316 +d©e1 + = (*) + `ÿÎoc +(1, +GL_DATE_INFO_LEN_MAX +); + +317 + `GL_CHECK_VAL +( +d©e1 +, -1); + +319 +d©e2 + = (*) + `ÿÎoc +(1, +GL_DATE_INFO_LEN_MAX +); + +320 ià( +d©e2 + =ð +NULL +) + +321  +GL_TILE_ERROR +; + +323 +d©e3 + = (*) + `ÿÎoc +(1, +GL_DATE_INFO_LEN_MAX +); + +324 ià( +d©e3 + =ð +NULL +) + +325  +GL_TILE_ERROR +; + +327  +tm + +t1 +; + +328 + `mem£t +(& +t1 +, 0x00, ( +tm +)); + +329 + `loÿÉime_r +( +mtime1 +, & +t1 +); + +330 + `¡ráime +( +d©e1 +, +GL_DATE_INFO_LEN_MAX +, "%Y.%m.%d", & +t1 +); + +331 + `¡ráime +( +d©e3 +, +GL_DATE_INFO_LEN_MAX +, "%Y.%m", & +t1 +); + +333  +tm + +t2 +; + +334 + `mem£t +(& +t2 +, 0x00, ( +tm +)); + +335 + `loÿÉime_r +( +mtime2 +, & +t2 +); + +336 + `¡ráime +( +d©e2 +, +GL_DATE_INFO_LEN_MAX +, "%Y.%m.%d", & +t2 +); + +338 ià(! + `g_¡rcmp0 +( +d©e1 +, +d©e2 +)) { + +339 + `g_¡¾ýy +( +buf +, +d©e1 +, +max_Ën +); + +341 + `¡ráime +( +d©e2 +, +GL_DATE_INFO_LEN_MAX +, "%Y.%m", & +t2 +); + +342 + `¢´štf +( +buf +, +max_Ën +, "% - %s", +d©e2 +, +d©e3 +); + +345 + `GL_FREEIF +( +d©e1 +); + +346 + `GL_FREEIF +( +d©e2 +); + +347 + `GL_FREEIF +( +d©e3 +); + +350 +GL_TILE_ERROR +: + +352 + `GL_FREEIF +( +d©e1 +); + +353 + `GL_FREEIF +( +d©e2 +); + +354 + `GL_FREEIF +( +d©e3 +); + +356 + } +} + +358 +Evas_Objeù + * + $_gl_tže_add_g’grid +( +Evas_Objeù + * +·»Á +) + +360 + `GL_CHECK_NULL +( +·»Á +); + +361 +Evas_Objeù + * +grid + = + `–m_g’grid_add +( +·»Á +); + +362 + `GL_CHECK_NULL +( +grid +); + +364 #ifdeà +_USE_CUSTOMIZED_GENGRID_STYLE + + +365 + `–m_objeù_¡yË_£t +( +grid +, +GL_GENGRID_STYLE_GALLERY +); + +368 #ifdeà +_USE_SCROL_HORIZONRAL + + +369 + `–m_g’grid_®ign_£t +( +grid +, +GL_TILE_ALIGN_MID +, GL_TILE_ALIGN_MID); + +370 + `–m_g’grid_hÜizڏl_£t +( +grid +, +EINA_TRUE +); + +371 + `–m_süÞËr_bounû_£t +( +grid +, +EINA_TRUE +, +EINA_FALSE +); + +373 + `–m_g’grid_®ign_£t +( +grid +, +GL_TILE_ALIGN_MID +, 0.0); + +374 + `–m_g’grid_hÜizڏl_£t +( +grid +, +EINA_FALSE +); + +375 + `–m_süÞËr_bounû_£t +( +grid +, +EINA_FALSE +, +EINA_TRUE +); + +377 + `–m_süÞËr_pÞicy_£t +( +grid +, +ELM_SCROLLER_POLICY_OFF +, + +378 +ELM_SCROLLER_POLICY_AUTO +); + +380 + `–m_g’grid_muÉi_£Ëù_£t +( +grid +, +EINA_TRUE +); + +381 + `evas_objeù_size_hšt_weight_£t +( +grid +, +EVAS_HINT_EXPAND +, + +382 +EVAS_HINT_EXPAND +); + +383 + `evas_objeù_d©a_£t +( +grid +, +GL_GESTURE_KEY_PINCH_LEVEL +, + +384 (*) +GL_ZOOM_DEFAULT +); + +385 + `evas_objeù_ev’t_ÿÎback_add +( +grid +, +EVAS_CALLBACK_DEL +, + +386 +__gl_t™Ë_grid_d–_cb +, +grid +); + +387  +grid +; + +388 + } +} + +390 #ifdeà +_USE_SCROL_HORIZONRAL + + +392  + $_gl_tže_upd©e_™em_size +(* +d©a +, +Evas_Objeù + * +grid +, +boÞ + +b_upd©e +) + +394 + `GL_CHECK_VAL +( +grid +, -1); + +395 + `GL_CHECK_VAL +( +d©a +, -1); + +396 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +397  +rÙ©e_mode + = +ad +-> +maššfo +.rotate_mode; + +398  +w + = 0; + +399  +h + = 0; + +400  +c + = 0; + +401  +c2 + = 0; + +402  +w_l + = 0; + +403  +h_l + = 0; + +404  +c_l + = 0; + +405  +wš_w + = 0; + +406  +wš_h + = 0; + +407  +sÿË + = + `_gl_g‘_wš_çùÜ +( +ad +-> +maššfo +. +wš +, & +wš_w +, & +wš_h +); + +408 + `gl_dbg +("rÙ©e_mode: %d, b_upd©e: %d", +rÙ©e_mode +, +b_upd©e +); + +410 +w + = ()( +wš_w + / +GL_TILE_2_PER_ROW +); + +411 +h + = ()( +GL_TILE_ITEM_HEIGHT + * +sÿË +); + +412 +w_l +ð()( +wš_h + / +GL_TILE_3_PER_ROW +); + +413 +h_l + = ()( +GL_TILE_ITEM_L_H + * +sÿË +); + +414 +c + = +GL_TILE_ITEM_CNT +; + +415 +c_l + = +GL_TILE_ITEM_L_CNT +; + +416 +c2 + = +GL_TILE_ITEM_C_CNT +; + +419  +Ëv– + = () + `evas_objeù_d©a_g‘ +( +grid +, +GL_GESTURE_KEY_PINCH_LEVEL +); + +420 ià( +Ëv– + < +GL_ZOOM_DEFAULT +) { + +421 + `gl_dbg +("Use smaller size"); + +422 +w + = ()( +wš_w + / +GL_TILE_3_PER_ROW +); + +423 +h + *= 0.75f; + +424 +c + = +GL_TILE_ITEM_CNT2 +; + +425 +c2 + = +GL_TILE_ITEM_C_CNT + + 1; + +427 + `gl_dbg +("P %dx%d L %dx%d C %dx%d", +w +, +h +, +w_l +, +h_l +, +c +, +c_l +); + +429  +®ign_x + = 0.0f; + +430  +®ign_y + = 0.0f; + +431  +couÁ + = 0; + +432 +couÁ + = + `–m_g’grid_™ems_couÁ +( +grid +); + +433 + `–m_g’grid_®ign_g‘ +( +grid +, & +®ign_x +, & +®ign_y +); + +434 + `gl_dbg +("couÁ: %d,‡lign_x: %f,‡lign_y: %f", +couÁ +, +®ign_x +, +®ign_y +); + +436 ià(( +rÙ©e_mode + =ð +APP_DEVICE_ORIENTATION_270 +) || + +437 ( +rÙ©e_mode + =ð +APP_DEVICE_ORIENTATION_90 +)) { + +439 ià( +couÁ + >ð +c_l + && ( +®ign_x + > +GL_TILE_ALIGN_CON1 + || + +440 +®ign_y + > +GL_TILE_ALIGN_CON2 +)) + +441 + `–m_g’grid_®ign_£t +( +grid +, +GL_TILE_ALIGN_LEFT +, + +442 +GL_TILE_ALIGN_MID +); + +443 ià( +couÁ + < +c_l + && ( +®ign_x + < +GL_TILE_ALIGN_CON1 + || + +444 +®ign_y + > +GL_TILE_ALIGN_CON2 +)) + +445 + `–m_g’grid_®ign_£t +( +grid +, +GL_TILE_ALIGN_MID +, + +446 +GL_TILE_ALIGN_MID +); + +448 + `–m_g’grid_™em_size_£t +( +grid +, +w_l +, +h_l +); + +451 ià( +couÁ + >ð +c + && ( +®ign_x + > +GL_TILE_ALIGN_CON1 + || + +452 +®ign_y + < +GL_TILE_ALIGN_CON2 +)) { + +453 + `–m_g’grid_®ign_£t +( +grid +, +GL_TILE_ALIGN_LEFT +, + +454 +GL_TILE_ALIGN_MID +); + +455 } ià( +couÁ + < +c +) { + +456 ià( +couÁ + < +c2 + && + +457 ( +®ign_x + < +GL_TILE_ALIGN_CON1 + || + +458 +®ign_y + > +GL_TILE_ALIGN_CON2 +)) + +459 + `–m_g’grid_®ign_£t +( +grid +, +GL_TILE_ALIGN_MID +, + +460 +GL_TILE_ALIGN_MID +); + +461 ià( +couÁ + >ð +c2 + && + +462 ( +®ign_x + < +GL_TILE_ALIGN_CON1 + || + +463 +®ign_y + < +GL_TILE_ALIGN_CON2 +)) + +464 + `–m_g’grid_®ign_£t +( +grid +, +GL_TILE_ALIGN_MID +, + +465 +GL_TILE_ALIGN_MID +); + +467 + `–m_g’grid_™em_size_£t +( +grid +, +w +, +h +); + +470 ià( +b_upd©e +) + +471 + `–m_g’grid_»®ized_™ems_upd©e +( +grid +); + +473 + } +} + +476  + $_gl_tže_upd©e_™em_size +(* +d©a +, +Evas_Objeù + * +grid +, +boÞ + +b_upd©e +) + +478 + `GL_CHECK_VAL +( +grid +, -1); + +479 + `GL_CHECK_VAL +( +d©a +, -1); + +480 +gl_­pd©a + * +ad + = (gl_­pd©¨*) +d©a +; + +481  +rÙ©e_mode + = +ad +-> +maššfo +.rotate_mode; + +482  +w + = 0; + +483  +h + = 0; + +484  +c + = 0; + +485  +w_l + = 0; + +486  +h_l + = 0; + +487  +c_l + = 0; + +488  +wš_w + = 0; + +489  +wš_h + = 0; + +490  +sÿË + = + `_gl_g‘_wš_çùÜ +( +ad +-> +maššfo +. +wš +, & +wš_w +, & +wš_h +); + +491 + `gl_dbg +("rÙ©e_mode: %d, b_upd©e: %d", +rÙ©e_mode +, +b_upd©e +); + +493 +w + = ()( +wš_w + / +GL_TILE_2_PER_ROW +); + +494 +h + = ()(298 * +sÿË +); + +495 +w_l +ð()( +wš_h + / +GL_TILE_3_PER_ROW +); + +496 +h_l + = +w_l +; + +497 +c + = +GL_TILE_ITEM_CNT +; + +498 +c_l + = +GL_TILE_ITEM_L_CNT +; + +501  +Ëv– + = () + `evas_objeù_d©a_g‘ +( +grid +, +GL_GESTURE_KEY_PINCH_LEVEL +); + +502 ià( +Ëv– + < +GL_ZOOM_DEFAULT +) { + +503 + `gl_dbg +("Use smaller size"); + +504 +w + = ()( +wš_w + / +GL_TILE_3_PER_ROW +); + +505 +h + = ()(200 * +sÿË +); + +506 +c + = +GL_TILE_ITEM_CNT2 +; + +508 +h + = +w + + +wš_w +/9; + +509 +h_l + = +w_l + + +wš_h +/9; + +510 + `gl_dbg +("P %dx%d L %dx%d C %dx%d", +w +, +h +, +w_l +, +h_l +, +c +, +c_l +); + +512  +®ign_x + = 0.0f; + +513  +®ign_y + = 0.0f; + +514  +couÁ + = 0; + +515 +couÁ + = + `–m_g’grid_™ems_couÁ +( +grid +); + +516 + `–m_g’grid_®ign_g‘ +( +grid +, & +®ign_x +, & +®ign_y +); + +517 + `gl_dbg +("couÁ: %d,‡lign_x: %f,‡lign_y: %f", +couÁ +, +®ign_x +, +®ign_y +); + +519 ià(( +rÙ©e_mode + =ð +APP_DEVICE_ORIENTATION_270 +) || + +520 ( +rÙ©e_mode + =ð +APP_DEVICE_ORIENTATION_90 +)) { + +522 ià( +couÁ + >ð +c_l + && +®ign_y + > +GL_TILE_ALIGN_CON1 +) + +523 + `–m_g’grid_®ign_£t +( +grid +, +GL_TILE_ALIGN_MID +, 0.0); + +524 ià( +couÁ + < +c_l + && +®ign_y + < +GL_TILE_ALIGN_CON1 +) + +525 + `–m_g’grid_®ign_£t +( +grid +, +GL_TILE_ALIGN_MID +, 0.0); + +527 + `–m_g’grid_™em_size_£t +( +grid +, +w_l +, +h_l +); + +530 ià( +couÁ + >ð +c + && ( +®ign_x + > +GL_TILE_ALIGN_CON1 + || + +531 +®ign_y + < +GL_TILE_ALIGN_CON2 +)) { + +532 + `–m_g’grid_®ign_£t +( +grid +, +GL_TILE_ALIGN_MID +, 0.0); + +533 } ià( +couÁ + < +c + && +®ign_y + < +GL_TILE_ALIGN_CON1 +) { + +534 + `–m_g’grid_®ign_£t +( +grid +, +GL_TILE_ALIGN_MID +, 0.0); + +536 + `–m_g’grid_™em_size_£t +( +grid +, +w +, +h +); + +539 ià( +b_upd©e +) + +540 + `–m_g’grid_»®ized_™ems_upd©e +( +grid +); + +542 + } +} + +545 +Evas_Objeù + * + $_gl_tže_add_ge¡u» +(* +d©a +, +Evas_Objeù + * +·»Á +) + +547 + `GL_CHECK_NULL +( +·»Á +); + +548 + `GL_CHECK_NULL +( +d©a +); + +549 +Evas_Objeù + * +ge¡u» + = + `_gl_ge¡u»_add +( +d©a +, +·»Á +); + +550 + `GL_CHECK_NULL +( +ge¡u» +); + +551 + `_gl_ge¡u»_£t_zoom_š_cb +( +ge¡u» +, +__gl_tže_zoom_š_cb +, +d©a +); + +552 + `_gl_ge¡u»_£t_zoom_out_cb +( +ge¡u» +, +__gl_tže_zoom_out_cb +, +d©a +); + +553  +ge¡u» +; + +554 + } +} + + @widget/include/gl_widget.h + +18 #iâdeà +GL_WIDGET_H + + +19  + #GL_WIDGET_H + + + ) + +21  + swidg‘_d©a + { + +22 +Evas_Objeù + * + mwš +; + +23 +Evas_Objeù + * + mÏyout +; + +24 +Evas_Objeù + * + mbg +; + +25 +Evas_Objeù + * + mcÚfÜmªt +; + +26 * + mcڋÁ +; + +27 +Evas_Objeù + * + m·»Á +; + +28 +EcÜe_Tim” + * + mtim” +; + +29 +boÞ + + mis_ed™ +; + +30 +boÞ + + mshowAlbumD‘ažs +; + +31 +boÞ + + mshowD©eD‘ažs +; + +32 } + t_widg‘_d©a +; + +34  +gl_widg‘_ü—‹ +( +_widg‘_d©a + * +d©a +,  +w +,  +h +); + + @widget/include/gl_widget_debug.h + +18 #iâdeà +GL_WIDGET_DEBUG_H + + +19  + #GL_WIDGET_DEBUG_H + + + ) + +21 #ià! +defšed +( +FLOG +) + +22  + #DbgPršt +( +fÜm© +, +¬g +...è + `LOGD +(fÜm©, ##¬g) + + ) + +23  + #E¼Pršt +( +fÜm© +, +¬g +...è + `LOGE +(fÜm©, ##¬g) + + ) + +24  + #W¬nPršt +( +fÜm© +, +¬g +...è + `LOGW +(fÜm©, ##¬g) + + ) + +26 +FILE + * +__fže_log_å +; + +27  + #DbgPršt +( +fÜm© +, +¬g +...èdØ{ + `årštf +( +__fže_log_å +, "[LOG] [%s/%s:%d] " fÜm©, + `utž_ba£Çme +( +__FILE__ +), +__func__ +, +__LINE__ +, ##¬g); + `fæush +(__fže_log_å); } 0) + + ) + +28  + #E¼Pršt +( +fÜm© +, +¬g +...èdØ{ + `årštf +( +__fže_log_å +, "[ERR] [%s/%s:%d] " fÜm©, + `utž_ba£Çme +( +__FILE__ +), +__func__ +, +__LINE__ +, ##¬g); + `fæush +(__fže_log_å); } 0) + + ) + +29  + #W¬nPršt +( +fÜm© +, +¬g +...èdØ{ + `årštf +( +__fže_log_å +, "[WRN] [%s/%s:%d] " fÜm©, + `utž_ba£Çme +( +__FILE__ +), +__func__ +, +__LINE__ +, ##¬g); + `fæush +(__fže_log_å); } 0) + + ) + +33  + #DbgF»e +( +a +) do { \ + +34 + `ä“ +( +a +); \ + +35 } 0) + + ) + +37  + #DbgXF»e +( +a +) do { \ + +38 + `DbgPršt +("XFree\n"); \ + +39 + `XF»e +( +a +); \ + +40 } 0) + + ) + +43 #ià +defšed +( +_ENABLE_PERF +) + +44  + #PERF_INIT +() \ + +45  +timev® + +__¡v +; \ + +46  +timev® + +__‘v +; \ + +47  +timev® + +__¹v + + + ) + +49  + #PERF_BEGIN +() do { \ + +50 ià( + `g‘timeofday +(& +__¡v +, +NULL +) < 0) { \ + +51 + `E¼Pršt +("g‘timeofday: %s\n", + `¡»¼Ü +( +”ºo +)); \ + +53 } 0) + + ) + +55  + #PERF_MARK +( +g +) do { \ + +56 ià( + `g‘timeofday +(& +__‘v +, +NULL +) < 0) { \ + +57 + `E¼Pršt +("g‘timeofday: %s\n", + `¡»¼Ü +( +”ºo +)); \ + +59 + `tim”sub +(& +__‘v +, & +__¡v +, & +__¹v +); \ + +60 + `DbgPršt +("[%s] %u.%06u\n", +g +, +__¹v +. +tv_£c +, __¹v. +tv_u£c +); \ + +61 } 0) + + ) + +63  + #PERF_INIT +() + + ) + +64  + #PERF_BEGIN +() + + ) + +65  + #PERF_MARK +( +g +) + + ) + + @widget/src/gl_widget_create.c + +18  + ~ + +19  + ~ + +20  + ~ + +21  + ~<­p.h +> + +22  + ~<¡dlib.h +> + +23  + ~ + +24  + ~ + +25  + ~"gl_widg‘_debug.h +" + +26  + ~"gl-d©a-ty³.h +" + +27  + ~"gl_widg‘.h +" + +29  + #NUMBER_OF_ITERATION + 4 + + ) + +30  + #IMAGES_THRESHOLD + 5 + + ) + +31  + #SWALLOWS_COUNT + 7 + + ) + +32  + #TIMER_INTERVAL + 5 + + ) + +33  + #WIDGET_HEIGHT + 500 + + ) + +34  + #WIDGET_WIDTH + 500 + + ) + +35  + #EDJE_FILE + "edje/g®Ërywidg‘.edj" + + ) + +36  + #GL_WIDGET_ARGV_IV_VIEW_BY + "V›w By" + + ) + +37  + #GL_WIDGET_ARGV_IV_VIEW_BY_FOLER + "By FÞd”" + + ) + +38  + #GL_WIDGET_ARGV_IV_PATH + "P©h" + + ) + +39  + #GL_WIDGET_UG_PKG_IV + "image-v›w”-eæ" + + ) + +41  + #GL_STR_ID_JAN + + `dg‘‹xt +("sys_¡ršg", "IDS_COM_BODY_JANUARY") + + ) + +42  + #GL_STR_ID_FEB + + `dg‘‹xt +("sys_¡ršg", "IDS_COM_BODY_FEBRUARY") + + ) + +43  + #GL_STR_ID_MAR + + `dg‘‹xt +("sys_¡ršg", "IDS_COM_BODY_MARCH") + + ) + +44  + #GL_STR_ID_APR + + `dg‘‹xt +("sys_¡ršg", "IDS_COM_BODY_APRIL") + + ) + +45  + #GL_STR_ID_MAY + + `dg‘‹xt +("sys_¡ršg", "IDS_COM_BODY_MAY") + + ) + +46  + #GL_STR_ID_JUN + + `dg‘‹xt +("sys_¡ršg", "IDS_COM_BODY_JUNE") + + ) + +47  + #GL_STR_ID_JUL + + `dg‘‹xt +("sys_¡ršg", "IDS_COM_BODY_JULY") + + ) + +48  + #GL_STR_ID_AUG + + `dg‘‹xt +("sys_¡ršg", "IDS_COM_BODY_AUGUST") + + ) + +49  + #GL_STR_ID_SEP + + `dg‘‹xt +("sys_¡ršg", "IDS_COM_BODY_SEPTEMBER") + + ) + +50  + #GL_STR_ID_OCT + + `dg‘‹xt +("sys_¡ršg", "IDS_COM_BODY_OCTOBER") + + ) + +51  + #GL_STR_ID_NOV + + `dg‘‹xt +("sys_¡ršg", "IDS_COM_BODY_NOVEMBER") + + ) + +52  + #GL_STR_ID_DEC + + `dg‘‹xt +("sys_¡ršg", "IDS_COM_BODY_DECEMBER") + + ) + +54 ** + g£Ëùed_images + = +NULL +; + +55  + gimages_š_loÝs +[] = {3, 2, 1,4}; + +56  + gsw®lows_š_loÝs +[5][10] = {{1, 1, 0, 0, 0, 1 ,0}, {0, 0, 0, 0, 1, 1, 0}, {0, 0, 0, 0, 0, 0, 1}, {1, 1, 1, 1, 0, 0, 0}}; + +57  + gimages_couÁ + = 0; + +58  + g£Ëùed_couÁ + = 0; + +59  + gloÝ_couÁ + = 0; + +61  +gl_widg‘_Ú_no_image_cb +(* +d©a +, +Evas_Objeù + * +obj +, + +62 cÚ¡ * +emissiÚ +, cÚ¡ * +sourû +); + +64  + $gl_widg‘_wš_d–_cb +(* +d©a +, +Evas + * +evas +, +Evas_Objeù + * +obj +, + +65 * +ev’t_šfo +) + +67 + `ecÜe_tim”_d– +( +d©a +); + +68 + } +} + +70  + $gl_widg‘_key_down_cb +(* +d©a +, +Evas + * +evas +, +Evas_Objeù + * +obj +, + +71 * +ev’t_šfo +) + +73 + `–m_ex™ +(); + +74 + } +} + +76  + $gl_widg‘_­p_g‘_»sourû +(cÚ¡ * +edj_fže_š +, * +edj_·th_out +, + +77  +edj_·th_max +) + +79 * +»s_·th + = + `­p_g‘_»sourû_·th +(); + +80 ià( +»s_·th +) { + +81 + `¢´štf +( +edj_·th_out +, +edj_·th_max +, "%s%s", +»s_·th +, + +82 +edj_fže_š +); + +83 + `ä“ +( +»s_·th +); + +85 + } +} + +87  + $_gl_Ïunch_iv +(* +d©a +, +Evas_Objeù + * +obj +, * +ev’t_šfo +) + +89 ià(! +obj +) { + +90 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "Invalid object!!"); + +94 * +fže_Çme + = +NULL +; + +95 * +group_Çme + = +NULL +; + +96 + `–m_image_fže_g‘ + ( +obj +, & +fže_Çme +, & +group_Çme +); + +97 ià( +fže_Çme +) { + +98  +»t +; + +99 +­p_cڌÞ_h + +£rviû + = +NULL +; + +100 + `­p_cڌÞ_ü—‹ +(& +£rviû +); + +101 ià(! +£rviû +) { + +102 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "failo create service"); + +105 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, +GL_WIDGET_ARGV_IV_VIEW_BY +, + +106 +GL_WIDGET_ARGV_IV_VIEW_BY_FOLER +); + +107 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, +GL_WIDGET_ARGV_IV_PATH +, +fže_Çme +); + +108 + `­p_cڌÞ_£t_­p_id +( +£rviû +, +GL_WIDGET_UG_PKG_IV +); + +109 +»t + = + `­p_cڌÞ_£nd_Ïunch_»que¡ +( +£rviû +, +NULL +, NULL); + +110 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +111 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "image†oad failed"); + +112 + `­p_cڌÞ_de¡roy +( +£rviû +); + +115 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "image…ath could‚ot be„etrieved"); + +117 + } +} + +119  +Eša_BoÞ + + $gl_widg‘_ªim©Ü_cb +(* +d©a +) + +121 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "ENTRY gl_widget_animator_cb"); + +122 +Evas_Objeù + * +Ïyout + = (Evas_Objeù *) +d©a +; + +123  +bufãr +[50] = {0,}; + +124  +i + = 0; + +126 ià(! +Ïyout +) { + +127 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "Invalid†ayout!!"); + +128  +EINA_FALSE +; + +131 + `–m_objeù_sigÇl_em™ +( +Ïyout +, "hideall", "elm"); + +133  +i + = 0 ; i < +SWALLOWS_COUNT +; i++) { + +134 + `¢´štf +( +bufãr +, (bufãr), "image%d", +i +); + +135 +Evas_Objeù + * +cڋÁ + = + `–m_objeù_·¹_cڋÁ_g‘ +( +Ïyout +, +bufãr +); + +136 + `–m_objeù_·¹_cڋÁ_un£t +( +Ïyout +, +bufãr +); + +137 + `evas_objeù_hide +( +cڋÁ +); + +139 ià( +sw®lows_š_loÝs +[ +loÝ_couÁ + % +NUMBER_OF_ITERATION +][ +i +] == 1) { + +140 +images_couÁ + = images_couÁ % +£Ëùed_couÁ +; + +141 +Evas_Objeù + * +image_objeù + = + `–m_image_add +( +Ïyout +); + +142 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "gl_widget_animator_cb Image is %s", + +143 +£Ëùed_images +[ +images_couÁ +]); + +145 ià(! + `–m_image_fže_£t +( +image_objeù +, +£Ëùed_images +[ +images_couÁ +], +NULL +)) { + +146 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "File Set Failed"); + +149 + `–m_image_a¥eù_fixed_£t +( +image_objeù +, +EINA_FALSE +); + +150 + `¢´štf +( +bufãr +, (bufãr), "image%d", +i +); + +151 + `–m_objeù_·¹_cڋÁ_£t +( +Ïyout +, +bufãr +, +image_objeù +); + +152 + `¢´štf +( +bufãr +, (bufãr), "show%d", +i +); + +153 + `–m_objeù_sigÇl_em™ +( +Ïyout +, +bufãr +, "elm"); + +154 +images_couÁ +++; + +155 + `evas_objeù_sm¬t_ÿÎback_add + ( +image_objeù +, + +156 "þicked", +_gl_Ïunch_iv +, +Ïyout +); + +159  +EINA_TRUE +; + +160 + } +} + +162  +Eša_BoÞ + + $gl_widg‘_ªim©Ü_cb_fÜ_Ëss_thª_five_images +(* +d©a +) + +164 +Evas_Objeù + * +Ïyout + = (Evas_Objeù *) +d©a +; + +166 ià(! +Ïyout +) { + +167 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "Invalid†ayout!!"); + +168  +EINA_FALSE +; + +171 + `–m_objeù_sigÇl_em™ +( +Ïyout +, "hideall", "elm"); + +172 +Evas_Objeù + * +cڋÁ + = + `–m_objeù_·¹_cڋÁ_g‘ +( +Ïyout +, "image6"); + +173 + `–m_objeù_·¹_cڋÁ_un£t +( +Ïyout +, "image6"); + +174 + `evas_objeù_hide +( +cڋÁ +); + +176 +Evas_Objeù + * +image_objeù + = + `–m_image_add +( +Ïyout +); + +177 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "selected images: %s", + +178 +£Ëùed_images +[ +images_couÁ +]); + +179 + `–m_image_fže_£t +( +image_objeù +, +£Ëùed_images +[ +images_couÁ +], +NULL +); + +180 + `–m_image_a¥eù_fixed_£t +( +image_objeù +, +EINA_FALSE +); + +181 + `–m_objeù_·¹_cڋÁ_£t +( +Ïyout +, "image6", +image_objeù +); + +182 + `–m_objeù_sigÇl_em™ +( +Ïyout +, "show6", "elm"); + +183 +images_couÁ +++; + +184 +images_couÁ + = images_couÁ % +£Ëùed_couÁ +; + +185 + `evas_objeù_sm¬t_ÿÎback_add +( +image_objeù +, "clicked", + +186 +_gl_Ïunch_iv +, +Ïyout +); + +188  +EINA_TRUE +; + +189 + } +} + +191  +Eša_BoÞ + + $gl_widg‘_tim”_cb +(* +d©a +) + +193 ià(! +d©a +) { + +194 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "Invalid userdata!!"); + +195  +EINA_FALSE +; + +198 ià( +£Ëùed_couÁ + >ð +IMAGES_THRESHOLD +) { + +199 + `gl_widg‘_ªim©Ü_cb +( +d©a +); + +201 + `gl_widg‘_ªim©Ü_cb_fÜ_Ëss_thª_five_images +( +d©a +); + +204 +loÝ_couÁ +++; + +205  +EINA_TRUE +; + +206 + } +} + +208  +Eša_BoÞ + + $gl_widg‘_check_®bumInfo +(** +·th¬¿y +,  +couÁ +) + +210  +»fcouÁ + = 0; + +211 ià(! +·th¬¿y + || +couÁ + <= 0) { + +212 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "Invalid data!!"); + +213  +EINA_FALSE +; + +216 * +ba£·th + = +NULL +; + +217 * +»f + = + `¡¼chr +( +·th¬¿y +[0], '/'); + +218  +»æ’gth + = +»f + - +·th¬¿y +[0]; + +220 +ba£·th + = (*) + `m®loc +((è* ( +»æ’gth + + 1)); + +221 ià(! +ba£·th +) { + +222 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "allocation failed!!"); + +223  +EINA_FALSE +; + +226 + `¡ºýy +( +ba£·th +, +·th¬¿y +[0], +»æ’gth +); + +227 +ba£·th +[ +»æ’gth +] = '\0'; + +229  +»fcouÁ + = 1;„efcouÁ < +couÁ +;„efcount++) { + +230 ià( + `¡r¡r +( +·th¬¿y +[ +»fcouÁ +], +ba£·th +è=ð +NULL +) { + +231 + `ä“ +( +ba£·th +); + +232 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "different selection!!"); + +233  +EINA_FALSE +; + +237 + `ä“ +( +ba£·th +); + +238  +EINA_TRUE +; + +239 + } +} + +241 * + $_gl_widg‘_g‘_fže_d©e +(cÚ¡ * +fž’ame +) + +243  +¡© + +¡©buf + = {0}; + +244  +tm + +tmtime +; + +246 ià(! +fž’ame +) + +247  +NULL +; + +249 ià( + `¡© +( +fž’ame +, & +¡©buf +) == -1) + +250  +NULL +; + +252 +time_t + +‹m±ime + = +¡©buf +. +¡_mtime +; + +253 + `mem£t +(& +tmtime +, 0x00, ( +tm +)); + +254 + `loÿÉime_r +(& +‹m±ime +, & +tmtime +); + +256  +tm + +ù +; + +257 +time_t + +ùime + = 0; + +258 + `mem£t +(& +ù +, 0x00, ( +tm +)); + +259 + `time +(& +ùime +); + +260 + `loÿÉime_r +(& +ùime +, & +ù +); + +262 * +mÚth +[12] = { +GL_STR_ID_JAN +, +GL_STR_ID_FEB +, +GL_STR_ID_MAR +, +GL_STR_ID_APR +, +GL_STR_ID_MAY +, +GL_STR_ID_JUN +, + +263 +GL_STR_ID_JUL +, +GL_STR_ID_AUG +, +GL_STR_ID_SEP +, +GL_STR_ID_OCT +, +GL_STR_ID_NOV +, +GL_STR_ID_DEC +}; + +265 * +¡r + = + `g_¡rdup_´štf +("%s%02d, %s %d", "", + +266 +tmtime +. +tm_mday +, +mÚth +[tmtime. +tm_mÚ +], 1900 +mtime. +tm_y—r +); + +267  +¡r +; + +268 + } +} + +270  +Eša_BoÞ + + $gl_widg‘_check_d©eInfo +(** +·th¬¿y +,  +couÁ +) + +272  +»fcouÁ + = 0; + +273 ià(! +·th¬¿y + || +couÁ + <= 0) { + +274 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "Invalid data!!"); + +275  +EINA_FALSE +; + +278 * +d©e + = +NULL +; + +280 * +Ãxt_d©e + = +NULL +; + +281 +d©e + = + `_gl_widg‘_g‘_fže_d©e +( +·th¬¿y +[0]); + +282 ià(! +d©e +) { + +283 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "failedoƒxtract date!!"); + +284  +EINA_FALSE +; + +287  +»fcouÁ + = 1;„efcouÁ < +couÁ +;„efcount++) { + +288 +Ãxt_d©e + = + `_gl_widg‘_g‘_fže_d©e +( +·th¬¿y +[ +»fcouÁ +]); + +289 ià(! +Ãxt_d©e +) { + +290 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "failedoƒxtract date!!"); + +291 + `ä“ +( +d©e +); + +292  +EINA_FALSE +; + +294 ià( + `¡rcmp +( +d©e +, +Ãxt_d©e +)) { + +295 + `ä“ +( +d©e +); + +296 + `ä“ +( +Ãxt_d©e +); + +297  +EINA_FALSE +; + +299 + `ä“ +( +Ãxt_d©e +); + +302  +EINA_TRUE +; + +303 + } +} + +305 * + $gl_widg‘_exŒaù_®bum_·th +(* +·thInfo +) + +307 ià(! +·thInfo +) { + +308 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "Invalid…ath!!"); + +309  +NULL +; + +312 * +®bumÇme + = +NULL +; + +313 * +®bum·th + = +NULL +; + +314 * +roÙ·th + = +NULL +; + +315 * +»åŒ + = +NULL +; + +316 +Eša_BoÞ + +u£¿lbum + = +EINA_FALSE +; + +318 +»åŒ + = + `¡¼chr +( +·thInfo +, '/'); + +319 ià(! +»åŒ +) { + +320  +NULL +; + +323  +®bum·thËngth + = +»åŒ + - +·thInfo +; + +324 +®bum·th + = (*) + `m®loc +(( +®bum·thËngth + + 1) * ()); + +325 ià(! +®bum·th +) { + +326  +NULL +; + +329 + `¡ºýy +( +®bum·th +, +·thInfo +, +®bum·thËngth +); + +330 +®bum·th +[ +®bum·thËngth +] = '\0'; + +332 +»åŒ + = + `¡¼chr +( +®bum·th +, '/'); + +333 ià(! +»åŒ +) { + +334 + `ä“ +( +®bum·th +); + +335  +NULL +; + +338  +®bum·th +; + +339 + } +} + +341  +Eša_BoÞ + + $gl_widg‘_check_deçuÉ_®bum +(* +·thInfo +) + +343 ià(! +·thInfo +) { + +344 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "Invalid…ath!!"); + +345  +EINA_FALSE +; + +347 * +·th + = + `gl_widg‘_exŒaù_®bum_·th +( +·thInfo +); + +348 ià(! +·th +) { + +349 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "Failedoƒxtract…ath!!"); + +350  +EINA_FALSE +; + +353 ià(! + `¡rcmp +("/Ýt/u¤/medŸ/Piùu»s/", +·th +) || + +354 ! + `¡rcmp +("/Ýt/u¤/medŸ/Images/", +·th +) || + +355 ! + `¡rcmp +("/Ýt/u¤/medŸ/DCIM/Cam”a", +·th +) || + +356 ! + `¡rcmp +("/Ýt/u¤/medŸ/DowÆßds/", +·th +) || + +357 ! + `¡rcmp +("/Ýt/¡Üage/sdÿrd/DCIM/", +·th +)) { + +358 + `ä“ +( +·th +); + +359  +EINA_TRUE +; + +362 + `ä“ +( +·th +); + +364  +EINA_FALSE +; + +365 + } +} + +367 * + $gl_widg‘_exŒaù_®bum_šfo +(* +·thInfo +) + +369 ià(! +·thInfo +) { + +370 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "Invalid…ath!!"); + +371  +NULL +; + +374 * +®bumÇme + = +NULL +; + +375 * +®bum·th + = +NULL +; + +376 * +roÙ·th + = +NULL +; + +377 * +»åŒ + = +NULL +; + +378 +Eša_BoÞ + +u£¿lbum + = +EINA_FALSE +; + +380 +»åŒ + = + `¡¼chr +( +·thInfo +, '/'); + +381 ià(! +»åŒ +) { + +382  +NULL +; + +385  +®bum·thËngth + = +»åŒ + - +·thInfo +; + +386 +®bum·th + = (*) + `m®loc +(( +®bum·thËngth + + 1) * ()); + +387 ià(! +®bum·th +) { + +388  +NULL +; + +391 + `¡ºýy +( +®bum·th +, +·thInfo +, +®bum·thËngth +); + +392 +®bum·th +[ +®bum·thËngth +] = '\0'; + +394 +»åŒ + = + `¡¼chr +( +®bum·th +, '/'); + +395 ià(! +»åŒ +) { + +396 + `ä“ +( +®bum·th +); + +397  +NULL +; + +400  +®bumÇm–’gth + = + `¡¾’ +( +®bum·th +è- ( +»åŒ + -‡lbumpath); + +401 +®bumÇme + = (*) + `m®loc +(( +®bumÇm–’gth + + 1) * ()); + +402 ià(! +®bumÇme +) { + +403 + `ä“ +( +®bum·th +); + +404  +NULL +; + +407 + `¡ºýy +( +®bumÇme +, +»åŒ + + 1, +®bumÇm–’gth +); + +408 +®bumÇme +[ +®bumÇm–’gth +] = '\0'; + +410 + `ä“ +( +®bum·th +); + +412  +®bumÇme +; + +413 + } +} + +415 * + $gl_widg‘_exŒaù_d©e_šfo +(** +·th¬¿y +,  +couÁ +) + +417  +»fcouÁ + = 0; + +418 ià(! +·th¬¿y + || +couÁ + <= 0) { + +419 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "Invalid data!!"); + +420  +NULL +; + +422 * +d©e + = + `_gl_widg‘_g‘_fže_d©e +( +·th¬¿y +[0]); + +423  +d©e +; + +424 + } +} + +426  + $_gl_widg‘_show_®bum_d©e_šfo +( +¬¿yL’gth +, ** +·thA¼ay +, + +427 +_widg‘_d©a +* +widg‘_d©a +, +Evas_Objeù +* +Ïyout +) { + +429 +Eša_BoÞ + +isSameAlbum + = + `gl_widg‘_check_®bumInfo +( +·thA¼ay +, +¬¿yL’gth +); + +430 +Eša_BoÞ + +isDeçuÉAlbum + = +çl£ +; + +431 ià( +isSameAlbum +) { + +432 +isDeçuÉAlbum + = + `gl_widg‘_check_deçuÉ_®bum +( +·thA¼ay +[0]); + +434 +widg‘_d©a +-> +showAlbumD‘ažs + = +isSameAlbum + && ! +isDeçuÉAlbum +; + +435 +widg‘_d©a +-> +showD©eD‘ažs + = + `gl_widg‘_check_d©eInfo +( +·thA¼ay +, + +436 +¬¿yL’gth +); + +437 ià( +widg‘_d©a +-> +showAlbumD‘ažs +) { + +438 * +®bumšfo + = + `gl_widg‘_exŒaù_®bum_šfo +( +·thA¼ay +[0]); + +439 ià( +®bumšfo +) { + +440 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "showAlbumDetails!!"); + +441 + `–m_objeù_·¹_‹xt_£t +( +Ïyout +, "AlbumInfo", +®bumšfo +); + +442 + `–m_objeù_sigÇl_em™ +( +Ïyout +, "showAlbumInfo", "elm"); + +445 + `–m_objeù_·¹_‹xt_£t +( +Ïyout +, "AlbumInfo", ""); + +446 + `–m_objeù_sigÇl_em™ +( +Ïyout +, "hideAlbumInfo", "elm"); + +448 ià( +widg‘_d©a +-> +showD©eD‘ažs +) { + +449 * +d©ešfo + = + `gl_widg‘_exŒaù_d©e_šfo +( +·thA¼ay +, +¬¿yL’gth +); + +450 ià( +d©ešfo +) { + +451 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "showDateDetails!!"); + +452 + `–m_objeù_·¹_‹xt_£t +( +Ïyout +, "D©eInfo", +d©ešfo +); + +453 + `–m_objeù_sigÇl_em™ +( +Ïyout +, "showDateInfo", "elm"); + +456 + `–m_objeù_·¹_‹xt_£t +( +Ïyout +, "DateInfo", ""); + +457 + `–m_objeù_sigÇl_em™ +( +Ïyout +, "hideDateInfo", "elm"); + +459 + } +} + +461  + $gl_widg‘_»suÉ_cb +( +­p_cڌÞ_h + +»que¡ +,‡µ_cڌÞ_h +»¶y +, + +462 +­p_cڌÞ_»suÉ_e + +»suÉ +, * +d©a +) + +464 +_widg‘_d©a + * +widg‘_d©a + = (_widg‘_d©¨*) +d©a +; + +465 ià(! +widg‘_d©a +) { + +466 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "Invalid userdata!!"); + +469 +Evas_Objeù + * +Ïyout + = +widg‘_d©a +->layout; + +470 ià(! +Ïyout +) { + +473 ** +·thA¼ay + = +NULL +; + +474  +¬¿yL’gth + = 0; + +475  +i + = 0; + +476  +j + = 0; + +477  +bufãr +[100] = {0,}; + +479 * +dbP©h + = "/opt/usr/media/selectedimages.eet"; + +480 +E‘_Fže + * +å + = +NULL +; + +482 + `­p_cڌÞ_g‘_exŒa_d©a_¬¿y +( +»¶y +, +APP_CONTROL_DATA_PATH +, + +483 & +·thA¼ay +, & +¬¿yL’gth +); + +484 ià( +¬¿yL’gth + > 0) { + +485 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "ResuÉ L’gth %d", +¬¿yL’gth +); + +486 +£Ëùed_images + = (**) + `m®loc +( +¬¿yL’gth + * (*)); + +487 +å + = + `“t_ݒ +( +dbP©h +, +EET_FILE_MODE_READ_WRITE +); + +488 ià(! +å +) { + +489 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "File open failed"); + +492 + `¢´štf +( +bufãr +, (bufãr), "%d", +¬¿yL’gth +); + +493 + `“t_wr™e +( +å +, "imageCÁ", +bufãr +, + `¡¾’ +(buffer) + 1, 0); + +494 ià( +£Ëùed_images +) { + +495  +j + = 0 ; j < +¬¿yL’gth +; j++) { + +496 +£Ëùed_images +[ +j +] = + `¡rdup + ( +·thA¼ay +[j]); + +497 + `¢´štf +( +bufãr +, (bufãr), "image%d", +j +); + +498 + `“t_wr™e +( +å +, +bufãr +, +·thA¼ay +[ +j +], + +499 + `¡¾’ +( +·thA¼ay +[ +j +]) + 1, 0); + +501 + `“t_þo£ +( +å +); + +503 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "Selected Image is NULL"); + +505 ià(! +widg‘_d©a +-> +is_ed™ +) { + +506 + `_gl_widg‘_ü—‹_ed™_bŠ +( +widg‘_d©a +); + +509 ià(! +widg‘_d©a +-> +is_ed™ +) { + +510 +Evas_Objeù + * +bŠ + = + `–m_objeù_·¹_cڋÁ_un£t +( + +511 +widg‘_d©a +-> +Ïyout +, + +513 ià( +bŠ +) { + +514 + `evas_objeù_hide +( +bŠ +); + +519 ià( +widg‘_d©a +-> +is_ed™ +) { + +520 ià( +widg‘_d©a +-> +tim” +) { + +521 + `ecÜe_tim”_d– +( +widg‘_d©a +-> +tim” +); + +523 +widg‘_d©a +-> +is_ed™ + = +çl£ +; + +526 + `_gl_widg‘_show_®bum_d©e_šfo +( +¬¿yL’gth +, +·thA¼ay +, +widg‘_d©a +, + +527 +Ïyout +); + +528  +i + = 0; i < +¬¿yL’gth +; i++) { + +529 ià( +·thA¼ay +[ +i +]) { + +530 + `ä“ + ( +·thA¼ay +[ +i +]); + +533 ià( +·thA¼ay +) { + +534 + `ä“ +( +·thA¼ay +); + +536 +£Ëùed_couÁ + = +¬¿yL’gth +; + +537 ià( +£Ëùed_couÁ + >ð +IMAGES_THRESHOLD +) { + +538 + `gl_widg‘_ªim©Ü_cb +( +Ïyout +); + +540 + `gl_widg‘_ªim©Ü_cb_fÜ_Ëss_thª_five_images +( +Ïyout +); + +543 +loÝ_couÁ +++; + +544 + `–m_objeù_sigÇl_ÿÎback_d– +( +Ïyout +, "mouse,clicked,1", + +545 "bg", +gl_widg‘_Ú_no_image_cb +); + +547 ià( +£Ëùed_couÁ + > 1) { + +548 +widg‘_d©a +-> +tim” + = + `ecÜe_tim”_loÝ_add +( +TIMER_INTERVAL +, + +549 +gl_widg‘_tim”_cb +, +Ïyout +); + +551 + } +} + +553  + $gl_widg‘_Ú_ed™_cb +(* +d©a +, +Evas_Objeù + * +obj +, * +ev’t_šfo +) + +555 ià(! +d©a +) { + +556 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "Invalid userdata!!"); + +559 +_widg‘_d©a + * +widg‘_d©a + = (_widg‘_d©¨*) +d©a +; + +560 +widg‘_d©a +-> +is_ed™ + = +Œue +; + +561 +­p_cڌÞ_h + +£rviû + = +NULL +; + +562  +»t + = -1; + +564 +»t + = + `­p_cڌÞ_ü—‹ +(& +£rviû +); + +565 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +566 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "Failedo create‡pp control!!"); + +568 + `­p_cڌÞ_£t_ݔ©iÚ +( +£rviû +, +APP_CONTROL_OPERATION_PICK +); + +569 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, + +572 + `­p_cڌÞ_£t_mime +( +£rviû +, "image/*"); + +573 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, "launch-type", "multiple"); + +574 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, "file-type", "image"); + +575 + `­p_cڌÞ_£t_­p_id +( +£rviû +,"ug-gallery-efl"); + +577 +»t + = + `­p_cڌÞ_£nd_Ïunch_»que¡ +( +£rviû +, + +578 +gl_widg‘_»suÉ_cb +, (*) +widg‘_d©a +); + +579 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +580 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, + +582 +»t + = -1; + +584 +»t + = 0; + +587 + `­p_cڌÞ_de¡roy +( +£rviû +); + +589 + } +} + +591  + $_gl_widg‘_ü—‹_ed™_bŠ +( +_widg‘_d©a +* +widg‘_d©a +) { + +593 ià( +widg‘_d©a +) { + +594 +Evas_Objeù +* +boxTÝ + = + `–m_box_add +( +widg‘_d©a +-> +Ïyout +); + +595 + `evas_objeù_size_hšt_weight_£t +( +boxTÝ +, +EVAS_HINT_EXPAND +, + +596 +EVAS_HINT_EXPAND +); + +597 + `evas_objeù_size_hšt_®ign_£t +( +boxTÝ +, +EVAS_HINT_FILL +, EVAS_HINT_FILL); + +598 + `–m_box_hÜizڏl_£t +( +boxTÝ +, +EINA_TRUE +); + +599 + `–m_box_homog’eous_£t +( +boxTÝ +, +EINA_FALSE +); + +600 +Evas_Objeù +* +bu‰Ú + = + `–m_bu‰Ú_add +( +boxTÝ +); + +601 + `–m_objeù_¡yË_£t +( +bu‰Ú +, "transparent"); + +602 +Evas_Objeù +* +ÏyoutBu‰Ú + = + `–m_Ïyout_add +( +bu‰Ú +); + +603 + `evas_objeù_size_hšt_weight_£t +( +ÏyoutBu‰Ú +, +EVAS_HINT_EXPAND +, + +604 +EVAS_HINT_EXPAND +); + +605 + `evas_objeù_size_hšt_®ign_£t +( +ÏyoutBu‰Ú +, +EVAS_HINT_FILL +, + +606 +EVAS_HINT_FILL +); + +607 + `–m_Ïyout_fže_£t +( +ÏyoutBu‰Ú +, + +610 + `–m_objeù_domaš_Œª¦©abË_·¹_‹xt_£t +( +ÏyoutBu‰Ú +, "elm.text", + +612 + `evas_objeù_show +( +ÏyoutBu‰Ú +); + +613 + `–m_objeù_cڋÁ_£t +( +bu‰Ú +, +ÏyoutBu‰Ú +); + +614 + `–m_box_·ck_’d +( +boxTÝ +, +bu‰Ú +); + +615 + `evas_objeù_show +( +boxTÝ +); + +616 + `evas_objeù_show +( +bu‰Ú +); + +617 + `–m_objeù_·¹_cڋÁ_£t +( +widg‘_d©a +-> +Ïyout +, "Ed™_bu‰Ú", +boxTÝ +); + +618 + `evas_objeù_sm¬t_ÿÎback_add +( +bu‰Ú +, "þicked", +gl_widg‘_Ú_ed™_cb +, + +619 +widg‘_d©a +); + +621 + } +} + +623  + $gl_widg‘_Ïunch_g®Ëry_ug +( +_widg‘_d©a + * +widg‘_d©a +) + +625 +­p_cڌÞ_h + +£rviû + = +NULL +; + +626  +»t + = -1; + +628 +»t + = + `­p_cڌÞ_ü—‹ +(& +£rviû +); + +629 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +630 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "Failedo create‡pp control!!"); + +632 + `­p_cڌÞ_£t_ݔ©iÚ +( +£rviû +, +APP_CONTROL_OPERATION_PICK +); + +633 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, + +636 + `­p_cڌÞ_£t_mime +( +£rviû +, "image/*"); + +637 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, "launch-type", "multiple"); + +638 + `­p_cڌÞ_add_exŒa_d©a +( +£rviû +, "file-type", "image"); + +639 + `­p_cڌÞ_£t_­p_id +( +£rviû +,"ug-gallery-efl"); + +641 +»t + = + `­p_cڌÞ_£nd_Ïunch_»que¡ +( +£rviû +, + +642 +gl_widg‘_»suÉ_cb +, + +643 (*) +widg‘_d©a +); + +644 ià( +»t + !ð +APP_CONTROL_ERROR_NONE +) { + +645 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "lauching operation…ic failed"); + +646 +»t + = -1; + +648 +»t + = 0; + +651 + `­p_cڌÞ_de¡roy +( +£rviû +); + +653  +»t +; + +654 + } +} + +656  + $gl_widg‘_Ú_no_image_cb +(* +d©a +, +Evas_Objeù + * +obj +, + +657 cÚ¡ * +emissiÚ +, cÚ¡ * +sourû +) + +659 +_widg‘_d©a + * +widg‘_d©a + = (_widg‘_d©¨*) +d©a +; + +660 ià(! +widg‘_d©a +) { + +661 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "Invalid userdata!!"); + +665 +Evas_Objeù + * +Ïyout + = +widg‘_d©a +->layout; + +666 ià(! +Ïyout +) { + +667 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "Invalid†ayout!!"); + +671 + `gl_widg‘_Ïunch_g®Ëry_ug +( +widg‘_d©a +); + +672 + } +} + +674 +Eša_BoÞ + + $gl_widg‘_lßd_´e£Ëùed_images +() + +676 * +dbP©h + = "/opt/usr/media/selectedimages.eet"; + +677 +E‘_Fže + * +å + = +NULL +; + +679 +å + = + `“t_ݒ +( +dbP©h +, +EET_FILE_MODE_READ +); + +680 ià( +å +) { + +681  +size + = 0; + +682  +i + = 0; + +683  +¬¿yL’gth + = 0; + +684  +bufãr +[100] = {0,}; + +685 * +d©a + = +NULL +; + +687 +d©a + = + `“t_»ad +( +å +, "imageCÁ", & +size +); + +688 ià( +d©a + !ð +NULL +) { + +689 + `¢´štf +( +bufãr +, (bufãr), "%s", +d©a +); + +690 +¬¿yL’gth + = + `©oi +( +bufãr +); + +691 +£Ëùed_couÁ + = +¬¿yL’gth +; + +692 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "£Ëùed_couÁ %d -‡¼ayL’gth %d", +£Ëùed_couÁ +, +¬¿yL’gth +); + +693 + `ä“ +( +d©a +); + +695 +£Ëùed_images + = (**) + `m®loc +( +¬¿yL’gth + * (*)); + +696 ià(! +£Ëùed_images +) { + +697 + `“t_þo£ +( +å +); + +698  +EINA_FALSE +; + +701  +i + = 0 ; i < +¬¿yL’gth +; i++) { + +702 +£Ëùed_images +[ +i +] = (*) + `m®loc +(100 * ()); + +703 ià( +£Ëùed_images +[ +i +]) { + +704 + `¢´štf +( +bufãr +, (bufãr), "image%d", +i +); + +705 +d©a + = + `“t_»ad +( +å +, +bufãr +, & +size +); + +706 ià( +d©a +) { + +707 + `¡ºýy +( +£Ëùed_images +[ +i +], +d©a +, 100); + +708 + `ä“ +( +d©a +); + +713 + `“t_þo£ +( +å +); + +714  +EINA_TRUE +; + +716  +EINA_FALSE +; + +717 + } +} + +719  + $_gl_widg‘_db_upd©e_cb +( +medŸ_cڋÁ_”rÜ_e + +”rÜ +,  +pid +, + +720 +medŸ_cڋÁ_db_upd©e_™em_ty³_e + +upd©e_™em +, + +721 +medŸ_cڋÁ_db_upd©e_ty³_e + +upd©e_ty³ +, + +722 +medŸ_cڋÁ_ty³_e + +medŸ_ty³ +, * +uuid +, + +723 * +·th +, * +mime_ty³ +, * +d©a +) + +725 + `dlog_´št +( +DLOG_INFO +, +LOG_TAG +, "upd©e_™em[%d], upd©e_ty³[%d], medŸ_ty³[%d]", +upd©e_™em +, + +726 +upd©e_ty³ +, +medŸ_ty³ +); + +727 ià(! +d©a +) { + +728 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "Invalid userdata!!"); + +731 ià( +upd©e_™em + =ð +MEDIA_ITEM_FILE + && +upd©e_ty³ + =ð +MEDIA_CONTENT_DELETE +) { + +732 +_widg‘_d©a + * +widg‘_d©a + = (_widg‘_d©¨*) +d©a +; + +733 ià( +£Ëùed_couÁ + == 1) { + +734 ià(! + `¡rcmp +( +£Ëùed_images +[0], +·th +)) { + +735 +Evas_Objeù + * +bŠ + = + `–m_objeù_·¹_cڋÁ_un£t +( + +736 +widg‘_d©a +-> +Ïyout +, + +738 ià( +bŠ +) { + +739 + `evas_objeù_hide +( +bŠ +); + +741 + `–m_objeù_sigÇl_em™ +( +widg‘_d©a +-> +Ïyout +, "hideall", "elm"); + +742 + `–m_objeù_sigÇl_em™ +( +widg‘_d©a +-> +Ïyout +, "hide_album_date_info", "elm"); + +744 + `–m_objeù_sigÇl_ÿÎback_add +( +widg‘_d©a +-> +Ïyout +, "mou£,þicked,1", "bg", +gl_widg‘_Ú_no_image_cb +, widget_data); + +747 + } +} + +749  + $gl_widg‘_ü—‹ +( +_widg‘_d©a + * +widg‘_d©a +,  +w +,  +h +) + +751 ià(! +widg‘_d©a +) { + +752 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "Invalid userdata!!"); + +755  +edj_·th +[ +PATH_MAX +] = {0,}; + +756 +Evas_Objeù + * +Ïyout + = +NULL +; + +757 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "h”e0 - %x", +widg‘_d©a +-> +wš +); + +758 +Ïyout + = + `–m_Ïyout_add +( +widg‘_d©a +-> +wš +); + +759 ià(! +Ïyout +) { + +760 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "Invalid†ayout!!"); + +764 + `–m_Ïyout_fže_£t +( +Ïyout +, + +767 + `evas_objeù_size_hšt_weight_£t +( +Ïyout +, +EVAS_HINT_EXPAND +, EVAS_HINT_EXPAND); + +768 + `evas_objeù_»size +( +Ïyout +, +WIDGET_WIDTH +, +WIDGET_HEIGHT +); + +769 + `evas_objeù_show +( +Ïyout +); + +770 +widg‘_d©a +-> +Ïyout + =†ayout; + +772 ià(! + `gl_widg‘_lßd_´e£Ëùed_images +()) { + +773 + `–m_objeù_domaš_Œª¦©abË_·¹_‹xt_£t +( +Ïyout +, "TitleText", "gallery", + +775 + `–m_objeù_domaš_Œª¦©abË_·¹_‹xt_£t +( +Ïyout +, "HelpText", "gallery", + +777 + `–m_objeù_sigÇl_ÿÎback_add +( +Ïyout +, "mou£,þicked,1", "bg", +gl_widg‘_Ú_no_image_cb +, +widg‘_d©a +); + +779 ià( +£Ëùed_couÁ + >ð +IMAGES_THRESHOLD +) { + +780 + `gl_widg‘_ªim©Ü_cb +( +Ïyout +); + +782 + `gl_widg‘_ªim©Ü_cb_fÜ_Ëss_thª_five_images +( +Ïyout +); + +784 +loÝ_couÁ +++; + +785 ià( +£Ëùed_couÁ + > 1) { + +786 +widg‘_d©a +-> +tim” + = + `ecÜe_tim”_loÝ_add +( +TIMER_INTERVAL +, +gl_widg‘_tim”_cb +, +Ïyout +); + +788 + `_gl_widg‘_ü—‹_ed™_bŠ +( +widg‘_d©a +); + +789 + `_gl_widg‘_show_®bum_d©e_šfo +( +£Ëùed_couÁ +, +£Ëùed_images +, +widg‘_d©a +, + +790 +Ïyout +); + +793 + `evas_objeù_»size +( +Ïyout +, +w +, +h +); + +794 + `evas_objeù_ev’t_ÿÎback_add +( +widg‘_d©a +-> +wš +, +EVAS_CALLBACK_KEY_DOWN +, + +795 +gl_widg‘_key_down_cb +, +NULL +); + +797  +»t + = + `medŸ_cڋÁ_£t_db_upd©ed_cb +( +_gl_widg‘_db_upd©e_cb +, +widg‘_d©a +); + +798 ià( +»t + !ð +MEDIA_CONTENT_ERROR_NONE +) { + +799 + `dlog_´št +( +DLOG_ERROR +, +LOG_TAG +, "S‘ db upd©ed cb fažed[%d]!", +»t +); + +802 + } +} + + @widget/src/gl_widget_main.c + +18  + ~ + +19  + ~ + +20  + ~<­p.h +> + +21  + ~ + +23  + ~ + +24  + ~ + +25  + ~ + +26  + ~ + +27  + ~ + +28  + ~ + +30  + ~"gl_widg‘.h +" + +31  + ~"gl_widg‘_debug.h +" + +33 * + $g‘Widg‘D©a +( +widg‘_cڋxt_h + +cڋxt +) + +35 * +d©a + = +NULL +; + +36 + `widg‘_­p_cڋxt_g‘_g +( +cڋxt +, & +d©a +); + +37  +d©a +; + +38 + } +} + +40  + $widg‘_C»©e +( +widg‘_cڋxt_h + +cڋxt +, +bundË + * +cڋÁ +,  +w +,  +h +, * +d©a +) + +42 +Evas_Objeù + * +wš + = +NULL +; + +43  +»t + = + `widg‘_­p_g‘_–m_wš +( +cڋxt +, & +wš +); + +44 ià( +»t + !ð +WIDGET_ERROR_NONE +) { + +45 + `DbgPršt +("çžedØg‘ wšdow.ƒ¼ = %d", +»t +); + +47 + `–m_cÚfig_acûl_´eã»nû_£t +("3d"); + +49  +widg‘_d©a + *widg‘_d©¨ð +NULL +; + +51 +widg‘_d©a + = + `ÿÎoc +(1, (*widget_data)); + +52 ià(! +widg‘_d©a +) { + +53 + `DbgPršt +("failedo create instance"); + +54  +WIDGET_ERROR_OUT_OF_MEMORY +; + +56 + `bšd‹xtdomaš +( +PACKAGE +, "/usr/apps/org.tizen.gallery/res/locale"); + +58 +widg‘_d©a +-> +wš + = win; + +60 + `evas_objeù_»size +( +widg‘_d©a +-> +wš +, +w +, +h +); + +61 + `evas_objeù_cÞÜ_£t +( +widg‘_d©a +-> +wš +, 0, 0, 0, 0); + +62 + `evas_objeù_show +( +widg‘_d©a +-> +wš +); + +64 +widg‘_d©a +-> +is_ed™ + = +çl£ +; + +65 + `gl_widg‘_ü—‹ +( +widg‘_d©a +, +w +, +h +); + +66 + `DbgPršt +("ResizedØ%dx%d\n", +w +, +h +); + +68 + `widg‘_­p_cڋxt_£t_g +( +cڋxt +, +widg‘_d©a +); + +70  +WIDGET_ERROR_NONE +; + +71 + } +} + +73  + $widg‘_De¡roy +( +widg‘_cڋxt_h + +cڋxt +, +widg‘_­p_de¡roy_ty³_e + +»asÚ +, +bundË + * +cڋÁ +, * +d©a +) + +75 ià( +»asÚ + !ð +WIDGET_APP_DESTROY_TYPE_PERMANENT +) { + +78  +widg‘_d©a + *widg‘_d©¨ð +NULL +; + +80 +widg‘_d©a + = (widg‘_d©¨*) + `g‘Widg‘D©a +( +cڋxt +); + +81 ià(! +widg‘_d©a +) { + +82  +WIDGET_ERROR_INVALID_PARAMETER +; + +84 + `widg‘_­p_cڋxt_£t_g +( +cڋxt +, +NULL +); + +86 + `evas_objeù_d– +( +widg‘_d©a +-> +wš +); + +87 + `ä“ +( +widg‘_d©a +-> +cڋÁ +); + +89 ià( +widg‘_d©a +-> +tim” +) { + +90 + `ecÜe_tim”_d– +( +widg‘_d©a +-> +tim” +); + +92 + `ä“ +( +widg‘_d©a +); + +94 + `»move +("/opt/usr/media/selectedimages.eet"); + +96  +WIDGET_ERROR_NONE +; + +97 + } +} + +99  + $widg‘_Pau£ +( +widg‘_cڋxt_h + +cڋxt +, * +d©a +) + +101  +WIDGET_ERROR_NONE +; + +102 + } +} + +104  + $widg‘_Resume +( +widg‘_cڋxt_h + +cڋxt +, * +d©a +) + +106  +WIDGET_ERROR_NONE +; + +107 + } +} + +109  + $widg‘_Resize +( +widg‘_cڋxt_h + +cڋxt +,  +w +,  +h +, * +d©a +) + +111  +widg‘_d©a + *widg‘_d©¨ð +NULL +; + +113 +widg‘_d©a + = (widg‘_d©¨*) + `g‘Widg‘D©a +( +cڋxt +); + +114 ià(! +widg‘_d©a +) { + +115  +WIDGET_ERROR_INVALID_PARAMETER +; + +118 + `evas_objeù_»size +( +widg‘_d©a +-> +wš +, +w +, +h +); + +119 + `evas_objeù_»size +( +widg‘_d©a +-> +bg +, +w +, +h +); + +120 + `evas_objeù_»size +( +widg‘_d©a +-> +cÚfÜmªt +, +w +, +h +); + +122 + `DbgPršt +("ResizedØ%dx%d\n", +w +, +h +); + +124  +WIDGET_ERROR_NONE +; + +125 + } +} + +127  + $widg‘_Upd©e +( +widg‘_cڋxt_h + +cڋxt +, +bundË + * +cڋÁ +,  +fÜû +, * +d©a +) + +129  +WIDGET_ERROR_NONE +; + +130 + } +} + +132  + $­p_Ïnguage_chªged +( +­p_ev’t_šfo_h + +ev’t_šfo +, * +d©a +) + +134 + `DbgPršt +("language changeriggered"); + +135 * +Ïng + = +NULL +; + +136 + `­p_ev’t_g‘_Ïnguage +( +ev’t_šfo +, & +Ïng +); + +137 ià( +Ïng +) { + +138 + `–m_Ïnguage_£t +( +Ïng +); + +139 + `ä“ +( +Ïng +); + +141 + } +} + +143  + $­p_»giÚ_chªged +( +­p_ev’t_šfo_h + +ev’t_šfo +, * +d©a +) + +145 + `DbgPršt +("region changeriggered"); + +146 + } +} + +148 +widg‘_þass_h + + $­p_ü—‹ +(* +d©a +) + +150 +­p_ev’t_hªdËr_h + +Ïng_chªged_hªdËr +; + +151 +­p_ev’t_hªdËr_h + +»giÚ_chªged_hªdËr +; + +153 + `widg‘_­p_add_ev’t_hªdËr +(& +Ïng_chªged_hªdËr +, +APP_EVENT_LANGUAGE_CHANGED +, + +154 & +­p_Ïnguage_chªged +, +d©a +); + +155 + `widg‘_­p_add_ev’t_hªdËr +(& +»giÚ_chªged_hªdËr +, +APP_EVENT_REGION_FORMAT_CHANGED +, + +156 & +­p_»giÚ_chªged +, +d©a +); + +158 +widg‘_š¡ªû_liãcyþe_ÿÎback_s + +Ýs +; + +159 +Ýs +. +ü—‹ + = +widg‘_C»©e +; + +160 +Ýs +. +de¡roy + = +widg‘_De¡roy +; + +161 +Ýs +. +·u£ + = +widg‘_Pau£ +; + +162 +Ýs +. +»sume + = +widg‘_Resume +; + +163 +Ýs +. +»size + = +widg‘_Resize +; + +164 +Ýs +. +upd©e + = +widg‘_Upd©e +; + +166  + `widg‘_­p_þass_ü—‹ +( +Ýs +, +d©a +); + +167 + } +} + +169  + $­p_‹rmš©e +(* +d©a +) + +174 + } +} + +176  + $maš +( +¬gc +, * +¬gv +[]) + +178  +»suÉ + = +WIDGET_ERROR_NONE +; + +180 +widg‘_­p_liãcyþe_ÿÎback_s + +Ýs + = {0,}; + +181 +Ýs +. +ü—‹ + = +­p_ü—‹ +; + +182 +Ýs +. +‹rmš©e + = +­p_‹rmš©e +; + +184 +»suÉ + = + `widg‘_­p_maš +( +¬gc +, +¬gv +, & +Ýs +, +NULL +); + +185 ià( +»suÉ + !ð +WIDGET_ERROR_NONE +) { + +186 + `DbgPršt +("widg‘_­p_maš(èi çžed.ƒ¼ = %d", +»suÉ +); + +189  +»suÉ +; + +190 + } +} + + @/usr/include/assert.h + +22 #ifdef +_ASSERT_H + + +24 #undeà +_ASSERT_H + + +25 #undeà +as£¹ + + +26 #undeà +__ASSERT_VOID_CAST + + +28 #ifdef +__USE_GNU + + +29 #undeà +as£¹_³¼Ü + + +34  + #_ASSERT_H + 1 + + ) + +35  + ~<ã©u»s.h +> + +37 #ià +defšed + +__ýlu¥lus + && +__GNUC_PREREQ + (2,95) + +38  + #__ASSERT_VOID_CAST + +¡©ic_ÿ¡ +<> + + ) + +40  + #__ASSERT_VOID_CAST + () + + ) + +48 #ifdef +NDEBUG + + +50  + #as£¹ +( +ex´ +è( + `__ASSERT_VOID_CAST + (0)) + + ) + +58 #ifdef +__USE_GNU + + +59  + #as£¹_³¼Ü +( +”ºum +è( + `__ASSERT_VOID_CAST + (0)) + + ) + +64 #iâdeà +_ASSERT_H_DECLS + + +65  + #_ASSERT_H_DECLS + + + ) + +66 +__BEGIN_DECLS + + +69  + $__as£¹_çž + (cÚ¡ * +__as£¹iÚ +, cÚ¡ * +__fže +, + +70  +__lše +, cÚ¡ * +__funùiÚ +) + +71 +__THROW + + `__©Œibu‹__ + (( +__nܑuº__ +)); + +74  + $__as£¹_³¼Ü_çž + ( +__”ºum +, cÚ¡ * +__fže +, + +75  +__lše +, cÚ¡ * +__funùiÚ +) + +76 +__THROW + + `__©Œibu‹__ + (( +__nܑuº__ +)); + +81  + $__as£¹ + (cÚ¡ * +__as£¹iÚ +, cÚ¡ * +__fže +,  +__lše +) + +82 +__THROW + + `__©Œibu‹__ + (( +__nܑuº__ +)); + +85 +__END_DECLS + + +88  + #as£¹ +( +ex´ +) \ + +89 (( +ex´ +) \ + +90 ? + `__ASSERT_VOID_CAST + (0) \ + +91 : + `__as£¹_çž + ( + `__STRING +( +ex´ +), +__FILE__ +, +__LINE__ +, +__ASSERT_FUNCTION +)) + + ) + +93 #ifdef +__USE_GNU + + +94  + #as£¹_³¼Ü +( +”ºum +) \ + +95 (!( +”ºum +) \ + +96 ? + `__ASSERT_VOID_CAST + (0) \ + +97 : + `__as£¹_³¼Ü_çž + (( +”ºum +), +__FILE__ +, +__LINE__ +, +__ASSERT_FUNCTION +)) + + ) + +105 #ià +defšed + +__ýlu¥lus + ? + `__GNUC_PREREQ + (2, 6) : __GNUC_PREREQ (2, 4) + +106  + #__ASSERT_FUNCTION + +__PRETTY_FUNCTION__ + + + ) + +108 #ià +defšed + +__STDC_VERSION__ + && __STDC_VERSION__ >= 199901L + +109  + #__ASSERT_FUNCTION + +__func__ + + + ) + +111  + #__ASSERT_FUNCTION + ((cÚ¡ *è0) + + ) + +118 #ià +defšed + +__USE_ISOC11 + && !defšed +__ýlu¥lus + + +120 #undeà +¡©ic_as£¹ + + +121  + #¡©ic_as£¹ + +_Stic_as£¹ + + + ) + + @/usr/include/dirent.h + +22 #iâdef +_DIRENT_H + + +23  + #_DIRENT_H + 1 + + ) + +25  + ~<ã©u»s.h +> + +27 + g__BEGIN_DECLS + + +29  + ~ + +31 #ifdeà +__USE_XOPEN + + +32 #iâdeà +__šo_t_defšed + + +33 #iâdeà +__USE_FILE_OFFSET64 + + +34  +__šo_t + + tšo_t +; + +36  +__šo64_t + + tšo_t +; + +38  + #__šo_t_defšed + + + ) + +40 #ià +defšed + +__USE_LARGEFILE64 + && !defšed +__šo64_t_defšed + + +41  +__šo64_t + + tšo64_t +; + +42  + #__šo64_t_defšed + + + ) + +61  + ~ + +63 #ià( +defšed + +__USE_BSD + || defšed +__USE_MISC +è&& !defšed +d_fž’o + + +64  + #d_šo + +d_fž’o + + + ) + +81 #ifdeà +_DIRENT_HAVE_D_NAMLEN + + +82  + #_D_EXACT_NAMLEN +( +d +è((d)-> +d_ÇmËn +) + + ) + +83  + #_D_ALLOC_NAMLEN +( +d +è( + `_D_EXACT_NAMLEN + (dè+ 1) + + ) + +85  + #_D_EXACT_NAMLEN +( +d +è( + `¡¾’ + ((d)-> +d_Çme +)) + + ) + +86 #ifdeà +_DIRENT_HAVE_D_RECLEN + + +87  + #_D_ALLOC_NAMLEN +( +d +è(((*è(dè+ (d)-> +d_»þ’ +è- &(d)-> +d_Çme +[0]) + + ) + +89  + #_D_ALLOC_NAMLEN +( +d +è( (d)-> +d_Çme + > 1 ?  (d)->d_name : \ + +90 + `_D_EXACT_NAMLEN + ( +d +è+ 1) + + ) + +95 #ifdeà +__USE_BSD + + +99 + mDT_UNKNOWN + = 0, + +100  + #DT_UNKNOWN + +DT_UNKNOWN + + + ) + +101 + mDT_FIFO + = 1, + +102  + #DT_FIFO + +DT_FIFO + + + ) + +103 + mDT_CHR + = 2, + +104  + #DT_CHR + +DT_CHR + + + ) + +105 + mDT_DIR + = 4, + +106  + #DT_DIR + +DT_DIR + + + ) + +107 + mDT_BLK + = 6, + +108  + #DT_BLK + +DT_BLK + + + ) + +109 + mDT_REG + = 8, + +110  + #DT_REG + +DT_REG + + + ) + +111 + mDT_LNK + = 10, + +112  + #DT_LNK + +DT_LNK + + + ) + +113 + mDT_SOCK + = 12, + +114  + #DT_SOCK + +DT_SOCK + + + ) + +115 + mDT_WHT + = 14 + +116  + #DT_WHT + +DT_WHT + + + ) + +120  + #IFTODT +( +mode +è(((modeè& 0170000è>> 12) + + ) + +121  + #DTTOIF +( +dœty³ +è((dœty³è<< 12) + + ) + +127  +__dœ¡»am + + tDIR +; + +134 +DIR + * + $ݒdœ + (cÚ¡ * +__Çme +è + `__nÚnuÎ + ((1)); + +136 #ifdeà +__USE_XOPEN2K8 + + +141 +DIR + * + `fdݒdœ + ( +__fd +); + +149  + $þo£dœ + ( +DIR + * +__dœp +è + `__nÚnuÎ + ((1)); + +161 #iâdeà +__USE_FILE_OFFSET64 + + +162  +dœ’t + * + $»addœ + ( +DIR + * +__dœp +è + `__nÚnuÎ + ((1)); + +164 #ifdeà +__REDIRECT + + +165  +dœ’t + * + `__REDIRECT + ( +»addœ +, ( +DIR + * +__dœp +), +»addœ64 +) + +166 + `__nÚnuÎ + ((1)); + +168  + #»addœ + +»addœ64 + + + ) + +172 #ifdeà +__USE_LARGEFILE64 + + +173  +dœ’t64 + * + $»addœ64 + ( +DIR + * +__dœp +è + `__nÚnuÎ + ((1)); + +176 #ià +defšed + +__USE_POSIX + || defšed +__USE_MISC + + +182 #iâdeà +__USE_FILE_OFFSET64 + + +183  + $»addœ_r + ( +DIR + * +__»¡riù + +__dœp +, + +184  +dœ’t + * +__»¡riù + +__’Œy +, + +185  +dœ’t + ** +__»¡riù + +__»suÉ +) + +186 + `__nÚnuÎ + ((1, 2, 3)); + +188 #ifdeà +__REDIRECT + + +189  + `__REDIRECT + ( +»addœ_r +, + +190 ( +DIR + * +__»¡riù + +__dœp +, + +191  +dœ’t + * +__»¡riù + +__’Œy +, + +192  +dœ’t + ** +__»¡riù + +__»suÉ +), + +193 +»addœ64_r +è + `__nÚnuÎ + ((1, 2, 3)); + +195  + #»addœ_r + +»addœ64_r + + + ) + +199 #ifdeà +__USE_LARGEFILE64 + + +200  + $»addœ64_r + ( +DIR + * +__»¡riù + +__dœp +, + +201  +dœ’t64 + * +__»¡riù + +__’Œy +, + +202  +dœ’t64 + ** +__»¡riù + +__»suÉ +) + +203 + `__nÚnuÎ + ((1, 2, 3)); + +208  + $»wšddœ + ( +DIR + * +__dœp +è +__THROW + + `__nÚnuÎ + ((1)); + +210 #ià +defšed + +__USE_BSD + || defšed +__USE_MISC + || defšed +__USE_XOPEN + + +211  + ~ + +214  + $£ekdœ + ( +DIR + * +__dœp +,  +__pos +è +__THROW + + `__nÚnuÎ + ((1)); + +217  + $‹Îdœ + ( +DIR + * +__dœp +è +__THROW + + `__nÚnuÎ + ((1)); + +220 #ià +defšed + +__USE_BSD + || defšed +__USE_MISC + || defšed +__USE_XOPEN2K8 + + +223  + $dœfd + ( +DIR + * +__dœp +è +__THROW + + `__nÚnuÎ + ((1)); + +225 #ià +defšed + +__OPTIMIZE__ + && defšed +_DIR_dœfd + + +226  + #dœfd +( +dœp +è + `_DIR_dœfd + (dœp) + + ) + +229 #ià +defšed + +__USE_BSD + || defšed +__USE_MISC + + +230 #iâdeà +MAXNAMLEN + + +232  + ~ + +235 #ifdeà +NAME_MAX + + +236  + #MAXNAMLEN + +NAME_MAX + + + ) + +238  + #MAXNAMLEN + 255 + + ) + +243  + #__Ãed_size_t + + + ) + +244  + ~<¡ddef.h +> + +253 #iâdeà +__USE_FILE_OFFSET64 + + +254  + `sÿndœ + (cÚ¡ * +__»¡riù + +__dœ +, + +255  +dœ’t + *** +__»¡riù + +__Çm–i¡ +, + +256 (* +__£ËùÜ +è(cÚ¡  +dœ’t + *), + +257 (* +__cmp +è(cÚ¡  +dœ’t + **, + +258 cÚ¡  +dœ’t + **)) + +259 + `__nÚnuÎ + ((1, 2)); + +261 #ifdeà +__REDIRECT + + +262  + `__REDIRECT + ( +sÿndœ +, + +263 (cÚ¡ * +__»¡riù + +__dœ +, + +264  +dœ’t + *** +__»¡riù + +__Çm–i¡ +, + +265 (* +__£ËùÜ +è(cÚ¡  +dœ’t + *), + +266 (* +__cmp +è(cÚ¡  +dœ’t + **, + +267 cÚ¡  +dœ’t + **)), + +268 +sÿndœ64 +è + `__nÚnuÎ + ((1, 2)); + +270  + #sÿndœ + +sÿndœ64 + + + ) + +274 #ià +defšed + +__USE_GNU + && defšed +__USE_LARGEFILE64 + + +277  + `sÿndœ64 + (cÚ¡ * +__»¡riù + +__dœ +, + +278  +dœ’t64 + *** +__»¡riù + +__Çm–i¡ +, + +279 (* +__£ËùÜ +è(cÚ¡  +dœ’t64 + *), + +280 (* +__cmp +è(cÚ¡  +dœ’t64 + **, + +281 cÚ¡  +dœ’t64 + **)) + +282 + `__nÚnuÎ + ((1, 2)); + +285 #ifdeà +__USE_GNU + + +291 #iâdeà +__USE_FILE_OFFSET64 + + +292  + `sÿndœ© + ( +__dfd +, cÚ¡ * +__»¡riù + +__dœ +, + +293  +dœ’t + *** +__»¡riù + +__Çm–i¡ +, + +294 (* +__£ËùÜ +è(cÚ¡  +dœ’t + *), + +295 (* +__cmp +è(cÚ¡  +dœ’t + **, + +296 cÚ¡  +dœ’t + **)) + +297 + `__nÚnuÎ + ((2, 3)); + +299 #ifdeà +__REDIRECT + + +300  + `__REDIRECT + ( +sÿndœ© +, + +301 ( +__dfd +, cÚ¡ * +__»¡riù + +__dœ +, + +302  +dœ’t + *** +__»¡riù + +__Çm–i¡ +, + +303 (* +__£ËùÜ +è(cÚ¡  +dœ’t + *), + +304 (* +__cmp +è(cÚ¡  +dœ’t + **, + +305 cÚ¡  +dœ’t + **)), + +306 +sÿndœ©64 +è + `__nÚnuÎ + ((2, 3)); + +308  + #sÿndœ© + +sÿndœ©64 + + + ) + +314  + `sÿndœ©64 + ( +__dfd +, cÚ¡ * +__»¡riù + +__dœ +, + +315  +dœ’t64 + *** +__»¡riù + +__Çm–i¡ +, + +316 (* +__£ËùÜ +è(cÚ¡  +dœ’t64 + *), + +317 (* +__cmp +è(cÚ¡  +dœ’t64 + **, + +318 cÚ¡  +dœ’t64 + **)) + +319 + `__nÚnuÎ + ((2, 3)); + +323 #iâdeà +__USE_FILE_OFFSET64 + + +324  + $®phasÜt + (cÚ¡  +dœ’t + ** +__e1 +, + +325 cÚ¡  +dœ’t + ** +__e2 +) + +326 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +328 #ifdeà +__REDIRECT + + +329  + `__REDIRECT_NTH + ( +®phasÜt +, + +330 (cÚ¡  +dœ’t + ** +__e1 +, + +331 cÚ¡  +dœ’t + ** +__e2 +), + +332 +®phasÜt64 +è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +334  + #®phasÜt + +®phasÜt64 + + + ) + +338 #ià +defšed + +__USE_GNU + && defšed +__USE_LARGEFILE64 + + +339  + $®phasÜt64 + (cÚ¡  +dœ’t64 + ** +__e1 +, + +340 cÚ¡  +dœ’t64 + ** +__e2 +) + +341 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +346 #ià +defšed + +__USE_BSD + || defšed +__USE_MISC + + +351 #iâdeà +__USE_FILE_OFFSET64 + + +352 +__ssize_t + + $g‘dœ’Œ›s + ( +__fd +, * +__»¡riù + +__buf +, + +353 +size_t + +__nby‹s +, + +354 +__off_t + * +__»¡riù + +__ba£p +) + +355 +__THROW + + `__nÚnuÎ + ((2, 4)); + +357 #ifdeà +__REDIRECT + + +358 +__ssize_t + + `__REDIRECT_NTH + ( +g‘dœ’Œ›s +, + +359 ( +__fd +, * +__»¡riù + +__buf +, + +360 +size_t + +__nby‹s +, + +361 +__off64_t + * +__»¡riù + +__ba£p +), + +362 +g‘dœ’Œ›s64 +è + `__nÚnuÎ + ((2, 4)); + +364  + #g‘dœ’Œ›s + +g‘dœ’Œ›s64 + + + ) + +368 #ifdeà +__USE_LARGEFILE64 + + +369 +__ssize_t + + $g‘dœ’Œ›s64 + ( +__fd +, * +__»¡riù + +__buf +, + +370 +size_t + +__nby‹s +, + +371 +__off64_t + * +__»¡riù + +__ba£p +) + +372 +__THROW + + `__nÚnuÎ + ((2, 4)); + +376 #ifdeà +__USE_GNU + + +378 #iâdeà +__USE_FILE_OFFSET64 + + +379  + $v”siÚsÜt + (cÚ¡  +dœ’t + ** +__e1 +, + +380 cÚ¡  +dœ’t + ** +__e2 +) + +381 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +383 #ifdeà +__REDIRECT + + +384  + `__REDIRECT_NTH + ( +v”siÚsÜt +, + +385 (cÚ¡  +dœ’t + ** +__e1 +, + +386 cÚ¡  +dœ’t + ** +__e2 +), + +387 +v”siÚsÜt64 +) + +388 +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +390  + #v”siÚsÜt + +v”siÚsÜt64 + + + ) + +394 #ifdeà +__USE_LARGEFILE64 + + +395  + $v”siÚsÜt64 + (cÚ¡  +dœ’t64 + ** +__e1 +, + +396 cÚ¡  +dœ’t64 + ** +__e2 +) + +397 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +401 +__END_DECLS + + + @/usr/include/dlfcn.h + +19 #iâdef +_DLFCN_H + + +20  + #_DLFCN_H + 1 + + ) + +22  + ~<ã©u»s.h +> + +23  + #__Ãed_size_t + + + ) + +24  + ~<¡ddef.h +> + +27  + ~ + +30 #ifdeà +__USE_GNU + + +35  + #RTLD_NEXT + ((*è-1l) + + ) + +40  + #RTLD_DEFAULT + ((*è0) + + ) + +44  + tLmid_t +; + +47  + #LM_ID_BASE + 0 + + ) + +48  + #LM_ID_NEWLM + -1 + + ) + +52 +__BEGIN_DECLS + + +56 * + $dlݒ + (cÚ¡ * +__fže +,  +__mode +è +__THROWNL +; + +60  + $dlþo£ + (* +__hªdË +è +__THROWNL + + `__nÚnuÎ + ((1)); + +64 * + $dlsym + (* +__»¡riù + +__hªdË +, + +65 cÚ¡ * +__»¡riù + +__Çme +è +__THROW + + `__nÚnuÎ + ((2)); + +67 #ifdeà +__USE_GNU + + +69 * + $dlmݒ + ( +Lmid_t + +__nsid +, cÚ¡ * +__fže +,  +__mode +è +__THROWNL +; + +73 * + $dlvsym + (* +__»¡riù + +__hªdË +, + +74 cÚ¡ * +__»¡riù + +__Çme +, + +75 cÚ¡ * +__»¡riù + +__v”siÚ +) + +76 +__THROW + + `__nÚnuÎ + ((2, 3)); + +82 * + $dË¼Ü + (è +__THROW +; + +85 #ifdeà +__USE_GNU + + +90 cÚ¡ * +dli_âame +; + +91 * +dli_fba£ +; + +92 cÚ¡ * +dli_¢ame +; + +93 * +dli_§ddr +; + +94 } + tDl_šfo +; + +98  + $dÏddr + (cÚ¡ * +__add»ss +, +Dl_šfo + * +__šfo +) + +99 +__THROW + + `__nÚnuÎ + ((2)); + +102  + $dÏddr1 + (cÚ¡ * +__add»ss +, +Dl_šfo + * +__šfo +, + +103 ** +__exŒa_šfo +,  +__æags +è +__THROW + + `__nÚnuÎ + ((2)); + +111 +RTLD_DL_SYMENT + = 1, + +114 +RTLD_DL_LINKMAP + = 2 + +123  + $dlšfo + (* +__»¡riù + +__hªdË +, + +124  +__»que¡ +, * +__»¡riù + +__¬g +) + +125 +__THROW + + `__nÚnuÎ + ((1, 3)); + +131 +RTLD_DI_LMID + = 1, + +135 +RTLD_DI_LINKMAP + = 2, + +137 +RTLD_DI_CONFIGADDR + = 3, + +144 +RTLD_DI_SERINFO + = 4, + +145 +RTLD_DI_SERINFOSIZE + = 5, + +149 +RTLD_DI_ORIGIN + = 6, + +151 +RTLD_DI_PROFILENAME + = 7, + +152 +RTLD_DI_PROFILEOUT + = 8, + +157 +RTLD_DI_TLS_MODID + = 9, + +163 +RTLD_DI_TLS_DATA + = 10, + +165 +RTLD_DI_MAX + = 10 + +173 * +dls_Çme +; + +174  +dls_æags +; + +175 } + tDl_£½©h +; + +181 +size_t + +dls_size +; + +182  +dls_út +; + +183 +Dl_£½©h + +dls_£½©h +[1]; + +184 } + tDl_£ršfo +; + +188 +__END_DECLS + + + @/usr/include/errno.h + +22 #iâdef +_ERRNO_H + + +26 #iâdef +__Ãed_Em©h + + +27  + #_ERRNO_H + 1 + + ) + +28  + ~<ã©u»s.h +> + +31 + g__BEGIN_DECLS + + +35  + ~ + +36 #undeà +__Ãed_Em©h + + +38 #ifdef +_ERRNO_H + + +45 #iâdef +”ºo + + +46  +”ºo +; + +49 #ifdeà +__USE_GNU + + +54 * +´og¿m_švoÿtiÚ_Çme +, * +´og¿m_švoÿtiÚ_shÜt_Çme +; + +58 + g__END_DECLS + + +66 #ià +defšed + +__USE_GNU + || defšed +__Ãed_”rÜ_t + + +67 #iâdeà +__”rÜ_t_defšed + + +68  + t”rÜ_t +; + +69  + #__”rÜ_t_defšed + 1 + + ) + +71 #undeà +__Ãed_”rÜ_t + + + @/usr/include/libgen.h + +18 #iâdeà +_LIBGEN_H + + +19  + #_LIBGEN_H + 1 + + ) + +21  + ~<ã©u»s.h +> + +23 +__BEGIN_DECLS + + +26 * + $dœÇme + (* +__·th +è +__THROW +; + +34 * + $__xpg_ba£Çme + (* +__·th +è +__THROW +; + +35  + #ba£Çme + +__xpg_ba£Çme + + + ) + +37 +__END_DECLS + + + @/usr/include/linux/fs.h + +1 #iâdeà +_LINUX_FS_H + + +2  + #_LINUX_FS_H + + + ) + +9  + ~ + +10  + ~ + +11  + ~ + +24 #undeà +NR_OPEN + + +25  + #INR_OPEN_CUR + 1024 + + ) + +26  + #INR_OPEN_MAX + 4096 + + ) + +28  + #BLOCK_SIZE_BITS + 10 + + ) + +29  + #BLOCK_SIZE + (1<< +BLOCK_SIZE_BITS +) + + ) + +31  + #SEEK_SET + 0 + + ) + +32  + #SEEK_CUR + 1 + + ) + +33  + #SEEK_END + 2 + + ) + +34  + #SEEK_DATA + 3 + + ) + +35  + #SEEK_HOLE + 4 + + ) + +36  + #SEEK_MAX + +SEEK_HOLE + + + ) + +38  + sf¡rim_¿nge + { + +39 +__u64 + + m¡¬t +; + +40 +__u64 + + mËn +; + +41 +__u64 + + mmšËn +; + +45  + sfžes_¡©_¡ruù + { + +46  + mÄ_fžes +; + +47  + mÄ_ä“_fžes +; + +48  + mmax_fžes +; + +51  + sšodes_¡©_t + { + +52  + mÄ_šodes +; + +53  + mÄ_unu£d +; + +54  + mdummy +[5]; + +58  + #NR_FILE + 8192 + + ) + +64  + #MS_RDONLY + 1 + + ) + +65  + #MS_NOSUID + 2 + + ) + +66  + #MS_NODEV + 4 + + ) + +67  + #MS_NOEXEC + 8 + + ) + +68  + #MS_SYNCHRONOUS + 16 + + ) + +69  + #MS_REMOUNT + 32 + + ) + +70  + #MS_MANDLOCK + 64 + + ) + +71  + #MS_DIRSYNC + 128 + + ) + +72  + #MS_NOATIME + 1024 + + ) + +73  + #MS_NODIRATIME + 2048 + + ) + +74  + #MS_BIND + 4096 + + ) + +75  + #MS_MOVE + 8192 + + ) + +76  + #MS_REC + 16384 + + ) + +77  + #MS_VERBOSE + 32768 + + ) + +79  + #MS_SILENT + 32768 + + ) + +80  + #MS_POSIXACL + (1<<16è + + ) + +81  + #MS_UNBINDABLE + (1<<17è + + ) + +82  + #MS_PRIVATE + (1<<18è + + ) + +83  + #MS_SLAVE + (1<<19è + + ) + +84  + #MS_SHARED + (1<<20è + + ) + +85  + #MS_RELATIME + (1<<21è + + ) + +86  + #MS_KERNMOUNT + (1<<22è + + ) + +87  + #MS_I_VERSION + (1<<23è + + ) + +88  + #MS_STRICTATIME + (1<<24è + + ) + +91  + #MS_NOSEC + (1<<28) + + ) + +92  + #MS_BORN + (1<<29) + + ) + +93  + #MS_ACTIVE + (1<<30) + + ) + +94  + #MS_NOUSER + (1<<31) + + ) + +99  + #MS_RMT_MASK + ( +MS_RDONLY +| +MS_SYNCHRONOUS +| +MS_MANDLOCK +| +MS_I_VERSION +) + + ) + +104  + #MS_MGC_VAL + 0xC0ED0000 + + ) + +105  + #MS_MGC_MSK + 0xffff0000 + + ) + +110  + #BLKROSET + + `_IO +(0x12,93è + + ) + +111  + #BLKROGET + + `_IO +(0x12,94è + + ) + +112  + #BLKRRPART + + `_IO +(0x12,95è + + ) + +113  + #BLKGETSIZE + + `_IO +(0x12,96è + + ) + +114  + #BLKFLSBUF + + `_IO +(0x12,97è + + ) + +115  + #BLKRASET + + `_IO +(0x12,98è + + ) + +116  + #BLKRAGET + + `_IO +(0x12,99è + + ) + +117  + #BLKFRASET + + `_IO +(0x12,100) + + ) + +118  + #BLKFRAGET + + `_IO +(0x12,101) + + ) + +119  + #BLKSECTSET + + `_IO +(0x12,102) + + ) + +120  + #BLKSECTGET + + `_IO +(0x12,103) + + ) + +121  + #BLKSSZGET + + `_IO +(0x12,104) + + ) + +123  + #BLKPG + + `_IO +(0x12,105) + + ) + +127  + #BLKELVGET + + `_IOR +(0x12,106, +size_t +) + + ) + +128  + #BLKELVSET + + `_IOW +(0x12,107, +size_t +) + + ) + +133  + #BLKBSZGET + + `_IOR +(0x12,112, +size_t +) + + ) + +134  + #BLKBSZSET + + `_IOW +(0x12,113, +size_t +) + + ) + +135  + #BLKGETSIZE64 + + `_IOR +(0x12,114, +size_t +è + + ) + +136  + #BLKTRACESETUP + + `_IOWR +(0x12,115, +blk_u£r_Œaû_£tup +) + + ) + +137  + #BLKTRACESTART + + `_IO +(0x12,116) + + ) + +138  + #BLKTRACESTOP + + `_IO +(0x12,117) + + ) + +139  + #BLKTRACETEARDOWN + + `_IO +(0x12,118) + + ) + +140  + #BLKDISCARD + + `_IO +(0x12,119) + + ) + +141  + #BLKIOMIN + + `_IO +(0x12,120) + + ) + +142  + #BLKIOOPT + + `_IO +(0x12,121) + + ) + +143  + #BLKALIGNOFF + + `_IO +(0x12,122) + + ) + +144  + #BLKPBSZGET + + `_IO +(0x12,123) + + ) + +145  + #BLKDISCARDZEROES + + `_IO +(0x12,124) + + ) + +146  + #BLKSECDISCARD + + `_IO +(0x12,125) + + ) + +147  + #BLKROTATIONAL + + `_IO +(0x12,126) + + ) + +148  + #BLKZEROOUT + + `_IO +(0x12,127) + + ) + +150  + #BMAP_IOCTL + 1 + + ) + +151  + #FIBMAP + + `_IO +(0x00,1è + + ) + +152  + #FIGETBSZ + + `_IO +(0x00,2è + + ) + +153  + #FIFREEZE + + `_IOWR +('X', 119, è + + ) + +154  + #FITHAW + + `_IOWR +('X', 120, è + + ) + +155  + #FITRIM + + `_IOWR +('X', 121,  +f¡rim_¿nge +è + + ) + +157  + #FS_IOC_GETFLAGS + + `_IOR +('f', 1, ) + + ) + +158  + #FS_IOC_SETFLAGS + + `_IOW +('f', 2, ) + + ) + +159  + #FS_IOC_GETVERSION + + `_IOR +('v', 1, ) + + ) + +160  + #FS_IOC_SETVERSION + + `_IOW +('v', 2, ) + + ) + +161  + #FS_IOC_FIEMAP + + `_IOWR +('f', 11,  +f›m­ +) + + ) + +162  + #FS_IOC32_GETFLAGS + + `_IOR +('f', 1, ) + + ) + +163  + #FS_IOC32_SETFLAGS + + `_IOW +('f', 2, ) + + ) + +164  + #FS_IOC32_GETVERSION + + `_IOR +('v', 1, ) + + ) + +165  + #FS_IOC32_SETVERSION + + `_IOW +('v', 2, ) + + ) + +170  + #FS_SECRM_FL + 0x00000001 + + ) + +171  + #FS_UNRM_FL + 0x00000002 + + ) + +172  + #FS_COMPR_FL + 0x00000004 + + ) + +173  + #FS_SYNC_FL + 0x00000008 + + ) + +174  + #FS_IMMUTABLE_FL + 0x00000010 + + ) + +175  + #FS_APPEND_FL + 0x00000020 + + ) + +176  + #FS_NODUMP_FL + 0x00000040 + + ) + +177  + #FS_NOATIME_FL + 0x00000080 + + ) + +179  + #FS_DIRTY_FL + 0x00000100 + + ) + +180  + #FS_COMPRBLK_FL + 0x00000200 + + ) + +181  + #FS_NOCOMP_FL + 0x00000400 + + ) + +182  + #FS_ECOMPR_FL + 0x00000800 + + ) + +184  + #FS_BTREE_FL + 0x00001000 + + ) + +185  + #FS_INDEX_FL + 0x00001000 + + ) + +186  + #FS_IMAGIC_FL + 0x00002000 + + ) + +187  + #FS_JOURNAL_DATA_FL + 0x00004000 + + ) + +188  + #FS_NOTAIL_FL + 0x00008000 + + ) + +189  + #FS_DIRSYNC_FL + 0x00010000 + + ) + +190  + #FS_TOPDIR_FL + 0x00020000 + + ) + +191  + #FS_EXTENT_FL + 0x00080000 + + ) + +192  + #FS_DIRECTIO_FL + 0x00100000 + + ) + +193  + #FS_NOCOW_FL + 0x00800000 + + ) + +194  + #FS_RESERVED_FL + 0x80000000 + + ) + +196  + #FS_FL_USER_VISIBLE + 0x0003DFFF + + ) + +197  + #FS_FL_USER_MODIFIABLE + 0x000380FF + + ) + +200  + #SYNC_FILE_RANGE_WAIT_BEFORE + 1 + + ) + +201  + #SYNC_FILE_RANGE_WRITE + 2 + + ) + +202  + #SYNC_FILE_RANGE_WAIT_AFTER + 4 + + ) + + @/usr/include/linux/unistd.h + +1 #iâdeà +_LINUX_UNISTD_H_ + + +2  + #_LINUX_UNISTD_H_ + + + ) + +7  + ~ + + @/usr/include/malloc.h + +19 #iâdeà +_MALLOC_H + + +20  + #_MALLOC_H + 1 + + ) + +22  + ~<ã©u»s.h +> + +23  + ~<¡ddef.h +> + +24  + ~<¡dio.h +> + +26 #ifdeà +_LIBC + + +27  + #__MALLOC_HOOK_VOLATILE + + + ) + +28  + #__MALLOC_DEPRECATED + + + ) + +30  + #__MALLOC_HOOK_VOLATILE + vÞ©že + + ) + +31  + #__MALLOC_DEPRECATED + +__©Œibu‹_d•»ÿ‹d__ + + + ) + +35 +__BEGIN_DECLS + + +38 * + $m®loc + ( +size_t + +__size +è +__THROW + +__©Œibu‹_m®loc__ + +__wur +; + +41 * + $ÿÎoc + ( +size_t + +__nmemb +, size_ˆ +__size +) + +42 +__THROW + +__©Œibu‹_m®loc__ + +__wur +; + +49 * + $»®loc + (* +__±r +, +size_t + +__size +) + +50 +__THROW + +__©Œibu‹_w¬n_unu£d_»suÉ__ +; + +53  + $ä“ + (* +__±r +è +__THROW +; + +56  + $cä“ + (* +__±r +è +__THROW +; + +59 * + $mem®ign + ( +size_t + +__®ignm’t +, size_ˆ +__size +) + +60 +__THROW + +__©Œibu‹_m®loc__ + +__wur +; + +63 * + $v®loc + ( +size_t + +__size +è +__THROW + +__©Œibu‹_m®loc__ + +__wur +; + +67 * + $pv®loc + ( +size_t + +__size +è +__THROW + +__©Œibu‹_m®loc__ + +__wur +; + +71 *(* +__mÜecÜe +è( +±rdiff_t + +__size +); + +74 * + $__deçuÉ_mÜecÜe + ( +±rdiff_t + +__size +) + +75 +__THROW + +__©Œibu‹_m®loc__ +; + +79  + sm®lšfo + + +81  +¬’a +; + +82  +Üdblks +; + +83  +smblks +; + +84  +hblks +; + +85  +hblkhd +; + +86  +usmblks +; + +87  +fsmblks +; + +88  +uÜdblks +; + +89  +fÜdblks +; + +90  +k“pco¡ +; + +94  +m®lšfo + + $m®lšfo + (è +__THROW +; + +97 #iâdeà +M_MXFAST + + +98  + #M_MXFAST + 1 + + ) + +100 #iâdeà +M_NLBLKS + + +101  + #M_NLBLKS + 2 + + ) + +103 #iâdeà +M_GRAIN + + +104  + #M_GRAIN + 3 + + ) + +106 #iâdeà +M_KEEP + + +107  + #M_KEEP + 4 + + ) + +111  + #M_TRIM_THRESHOLD + -1 + + ) + +112  + #M_TOP_PAD + -2 + + ) + +113  + #M_MMAP_THRESHOLD + -3 + + ) + +114  + #M_MMAP_MAX + -4 + + ) + +115  + #M_CHECK_ACTION + -5 + + ) + +116  + #M_PERTURB + -6 + + ) + +117  + #M_ARENA_TEST + -7 + + ) + +118  + #M_ARENA_MAX + -8 + + ) + +121  + $m®lÝt + ( +__·¿m +,  +__v® +è +__THROW +; + +125  + $m®loc_Œim + ( +size_t + +__·d +è +__THROW +; + +129 +size_t + + $m®loc_u§bË_size + (* +__±r +è +__THROW +; + +132  + $m®loc_¡©s + (è +__THROW +; + +135  + $m®loc_šfo + ( +__ÝtiÚs +, +FILE + * +__å +è +__THROW +; + +138 * + $m®loc_g‘_¡©e + (è +__THROW +; + +142  + $m®loc_£t_¡©e + (* +__±r +è +__THROW +; + +147 (* +__MALLOC_HOOK_VOLATILE + +__m®loc_š™Ÿlize_hook +) () + +148 +__MALLOC_DEPRECATED +; + +150 (* +__MALLOC_HOOK_VOLATILE + +__ä“_hook +è(* +__±r +, + +152 +__MALLOC_DEPRECATED +; + +153 *(* +__MALLOC_HOOK_VOLATILE + +__m®loc_hook +)( +size_t + +__size +, + +155 +__MALLOC_DEPRECATED +; + +156 *(* +__MALLOC_HOOK_VOLATILE + +__»®loc_hook +)(* +__±r +, + +157 +size_t + +__size +, + +159 +__MALLOC_DEPRECATED +; + +160 *(* +__MALLOC_HOOK_VOLATILE + +__mem®ign_hook +)( +size_t + +__®ignm’t +, + +161 +size_t + +__size +, + +163 +__MALLOC_DEPRECATED +; + +164 (* +__MALLOC_HOOK_VOLATILE + +__aá”_mÜecÜe_hook +) (); + +167  + $__m®loc_check_š™ + (è +__THROW + +__MALLOC_DEPRECATED +; + +170 +__END_DECLS + + + @/usr/include/pthread.h + +18 #iâdeà +_PTHREAD_H + + +19  + #_PTHREAD_H + 1 + + ) + +21  + ~<ã©u»s.h +> + +22  + ~<’dŸn.h +> + +23  + ~ + +24  + ~ + +26  + ~ + +27  + ~ + +28  + ~ + +34 + mPTHREAD_CREATE_JOINABLE +, + +35  + #PTHREAD_CREATE_JOINABLE + +PTHREAD_CREATE_JOINABLE + + + ) + +36 + mPTHREAD_CREATE_DETACHED + + +37  + #PTHREAD_CREATE_DETACHED + +PTHREAD_CREATE_DETACHED + + + ) + +44 + mPTHREAD_MUTEX_TIMED_NP +, + +45 + mPTHREAD_MUTEX_RECURSIVE_NP +, + +46 + mPTHREAD_MUTEX_ERRORCHECK_NP +, + +47 + mPTHREAD_MUTEX_ADAPTIVE_NP + + +48 #ià +defšed + +__USE_UNIX98 + || defšed +__USE_XOPEN2K8 + + +50 + mPTHREAD_MUTEX_NORMAL + = +PTHREAD_MUTEX_TIMED_NP +, + +51 + mPTHREAD_MUTEX_RECURSIVE + = +PTHREAD_MUTEX_RECURSIVE_NP +, + +52 + mPTHREAD_MUTEX_ERRORCHECK + = +PTHREAD_MUTEX_ERRORCHECK_NP +, + +53 + mPTHREAD_MUTEX_DEFAULT + = +PTHREAD_MUTEX_NORMAL + + +55 #ifdeà +__USE_GNU + + +57 , + mPTHREAD_MUTEX_FAST_NP + = +PTHREAD_MUTEX_TIMED_NP + + +62 #ifdeà +__USE_XOPEN2K + + +66 + mPTHREAD_MUTEX_STALLED +, + +67 + mPTHREAD_MUTEX_STALLED_NP + = +PTHREAD_MUTEX_STALLED +, + +68 + mPTHREAD_MUTEX_ROBUST +, + +69 + mPTHREAD_MUTEX_ROBUST_NP + = +PTHREAD_MUTEX_ROBUST + + +74 #ià +defšed + +__USE_POSIX199506 + || defšed +__USE_UNIX98 + + +78 + mPTHREAD_PRIO_NONE +, + +79 + mPTHREAD_PRIO_INHERIT +, + +80 + mPTHREAD_PRIO_PROTECT + + +86 #ià +__PTHREAD_MUTEX_HAVE_ELISION + == 1 + +87  + #__PTHREAD_SPINS + 0, 0 + + ) + +88 #–ià +__PTHREAD_MUTEX_HAVE_ELISION + == 2 + +89  + #__PTHREAD_SPINS + { 0, 0 } + + ) + +91  + #__PTHREAD_SPINS + 0 + + ) + +94 #ifdeà +__PTHREAD_MUTEX_HAVE_PREV + + +95  + #PTHREAD_MUTEX_INITIALIZER + \ + +96 { { 0, 0, 0, 0, 0, +__PTHREAD_SPINS +, { 0, 0 } } } + + ) + +97 #ifdeà +__USE_GNU + + +98  + #PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP + \ + +99 { { 0, 0, 0, 0, +PTHREAD_MUTEX_RECURSIVE_NP +, +__PTHREAD_SPINS +, { 0, 0 } } } + + ) + +100  + #PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP + \ + +101 { { 0, 0, 0, 0, +PTHREAD_MUTEX_ERRORCHECK_NP +, +__PTHREAD_SPINS +, { 0, 0 } } } + + ) + +102  + #PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP + \ + +103 { { 0, 0, 0, 0, +PTHREAD_MUTEX_ADAPTIVE_NP +, +__PTHREAD_SPINS +, { 0, 0 } } } + + ) + +104  + #PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP + \ + +105 { { 0, 0, 0, 0, +PTHREAD_MUTEX_ADAPTIVE_NP +, +__PTHREAD_SPINS +, { 0, 0 } } } + + ) + +109  + #PTHREAD_MUTEX_INITIALIZER + \ + +110 { { 0, 0, 0, 0, 0, { +__PTHREAD_SPINS + } } } + + ) + +111 #ifdeà +__USE_GNU + + +112  + #PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP + \ + +113 { { 0, 0, 0, +PTHREAD_MUTEX_RECURSIVE_NP +, 0, { +__PTHREAD_SPINS + } } } + + ) + +114  + #PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP + \ + +115 { { 0, 0, 0, +PTHREAD_MUTEX_ERRORCHECK_NP +, 0, { +__PTHREAD_SPINS + } } } + + ) + +116  + #PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP + \ + +117 { { 0, 0, 0, +PTHREAD_MUTEX_ADAPTIVE_NP +, 0, { +__PTHREAD_SPINS + } } } + + ) + +124 #ià +defšed + +__USE_UNIX98 + || defšed +__USE_XOPEN2K + + +127 + mPTHREAD_RWLOCK_PREFER_READER_NP +, + +128 + mPTHREAD_RWLOCK_PREFER_WRITER_NP +, + +129 + mPTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP +, + +130 + mPTHREAD_RWLOCK_DEFAULT_NP + = +PTHREAD_RWLOCK_PREFER_READER_NP + + +136 #iâdeà +__PTHREAD_RWLOCK_INT_FLAGS_SHARED + + +137 #ià +__WORDSIZE + == 64 + +138  + #__PTHREAD_RWLOCK_INT_FLAGS_SHARED + 1 + + ) + +143  + #PTHREAD_RWLOCK_INITIALIZER + \ + +144 { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } } + + ) + +145 #ifdeà +__USE_GNU + + +146 #ifdeà +__PTHREAD_RWLOCK_INT_FLAGS_SHARED + + +147  + #PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP + \ + +149 +PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP + } } + + ) + +151 #ià +__BYTE_ORDER + =ð +__LITTLE_ENDIAN + + +152  + #PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP + \ + +153 { { 0, 0, 0, 0, 0, 0, +PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP +, \ + +154 0, 0, 0, 0 } } + + ) + +156  + #PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP + \ + +157 { { 0, 0, 0, 0, 0, 0, 0, 0, 0, +PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP +,\ + +158 0 } } + + ) + +168 + mPTHREAD_INHERIT_SCHED +, + +169  + #PTHREAD_INHERIT_SCHED + +PTHREAD_INHERIT_SCHED + + + ) + +170 + mPTHREAD_EXPLICIT_SCHED + + +171  + #PTHREAD_EXPLICIT_SCHED + +PTHREAD_EXPLICIT_SCHED + + + ) + +178 + mPTHREAD_SCOPE_SYSTEM +, + +179  + #PTHREAD_SCOPE_SYSTEM + +PTHREAD_SCOPE_SYSTEM + + + ) + +180 + mPTHREAD_SCOPE_PROCESS + + +181  + #PTHREAD_SCOPE_PROCESS + +PTHREAD_SCOPE_PROCESS + + + ) + +188 + mPTHREAD_PROCESS_PRIVATE +, + +189  + #PTHREAD_PROCESS_PRIVATE + +PTHREAD_PROCESS_PRIVATE + + + ) + +190 + mPTHREAD_PROCESS_SHARED + + +191  + #PTHREAD_PROCESS_SHARED + +PTHREAD_PROCESS_SHARED + + + ) + +197  + #PTHREAD_COND_INITIALIZER + { { 0, 0, 0, 0, 0, (*è0, 0, 0 } } + + ) + +201  + s_±h»ad_þ—nup_bufãr + + +203 (* + m__routše +) (*); + +204 * + m__¬g +; + +205  + m__ÿnûÉy³ +; + +206  +_±h»ad_þ—nup_bufãr + * + m__´ev +; + +212 + mPTHREAD_CANCEL_ENABLE +, + +213  + #PTHREAD_CANCEL_ENABLE + +PTHREAD_CANCEL_ENABLE + + + ) + +214 + mPTHREAD_CANCEL_DISABLE + + +215  + #PTHREAD_CANCEL_DISABLE + +PTHREAD_CANCEL_DISABLE + + + ) + +219 + mPTHREAD_CANCEL_DEFERRED +, + +220  + #PTHREAD_CANCEL_DEFERRED + +PTHREAD_CANCEL_DEFERRED + + + ) + +221 + mPTHREAD_CANCEL_ASYNCHRONOUS + + +222  + #PTHREAD_CANCEL_ASYNCHRONOUS + +PTHREAD_CANCEL_ASYNCHRONOUS + + + ) + +224  + #PTHREAD_CANCELED + ((*è-1) + + ) + +228  + #PTHREAD_ONCE_INIT + 0 + + ) + +231 #ifdeà +__USE_XOPEN2K + + +235  + #PTHREAD_BARRIER_SERIAL_THREAD + -1 + + ) + +239 +__BEGIN_DECLS + + +244  +±h»ad_ü—‹ + ( +±h»ad_t + * +__»¡riù + +__Ãwth»ad +, + +245 cÚ¡ +±h»ad_©Œ_t + * +__»¡riù + +__©Œ +, + +246 *(* +__¡¬t_routše +) (*), + +247 * +__»¡riù + +__¬g +è +__THROWNL + +__nÚnuÎ + ((1, 3)); + +253  + $±h»ad_ex™ + (* +__»tv® +è + `__©Œibu‹__ + (( +__nܑuº__ +)); + +261  + `±h»ad_još + ( +±h»ad_t + +__th +, ** +__th»ad_»tuº +); + +263 #ifdeà +__USE_GNU + + +266  + $±h»ad_Œyjoš_Å + ( +±h»ad_t + +__th +, ** +__th»ad_»tuº +è +__THROW +; + +274  + `±h»ad_timedjoš_Å + ( +±h»ad_t + +__th +, ** +__th»ad_»tuº +, + +275 cÚ¡  +time¥ec + * +__ab¡ime +); + +282  + $±h»ad_d‘ach + ( +±h»ad_t + +__th +è +__THROW +; + +286 +±h»ad_t + + $±h»ad_£lf + (è +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)); + +289  + $±h»ad_equ® + ( +±h»ad_t + +__th»ad1 +,…th»ad_ˆ +__th»ad2 +) + +290 +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)); + +298  + $±h»ad_©Œ_š™ + ( +±h»ad_©Œ_t + * +__©Œ +è +__THROW + + `__nÚnuÎ + ((1)); + +301  + $±h»ad_©Œ_de¡roy + ( +±h»ad_©Œ_t + * +__©Œ +) + +302 +__THROW + + `__nÚnuÎ + ((1)); + +305  + $±h»ad_©Œ_g‘d‘ach¡©e + (cÚ¡ +±h»ad_©Œ_t + * +__©Œ +, + +306 * +__d‘ach¡©e +) + +307 +__THROW + + `__nÚnuÎ + ((1, 2)); + +310  + $±h»ad_©Œ_£td‘ach¡©e + ( +±h»ad_©Œ_t + * +__©Œ +, + +311  +__d‘ach¡©e +) + +312 +__THROW + + `__nÚnuÎ + ((1)); + +316  + $±h»ad_©Œ_g‘gu¬dsize + (cÚ¡ +±h»ad_©Œ_t + * +__©Œ +, + +317 +size_t + * +__gu¬dsize +) + +318 +__THROW + + `__nÚnuÎ + ((1, 2)); + +321  + $±h»ad_©Œ_£tgu¬dsize + ( +±h»ad_©Œ_t + * +__©Œ +, + +322 +size_t + +__gu¬dsize +) + +323 +__THROW + + `__nÚnuÎ + ((1)); + +327  + $±h»ad_©Œ_g‘sched·¿m + (cÚ¡ +±h»ad_©Œ_t + * +__»¡riù + +__©Œ +, + +328  +sched_·¿m + * +__»¡riù + +__·¿m +) + +329 +__THROW + + `__nÚnuÎ + ((1, 2)); + +332  + $±h»ad_©Œ_£tsched·¿m + ( +±h»ad_©Œ_t + * +__»¡riù + +__©Œ +, + +333 cÚ¡  +sched_·¿m + * +__»¡riù + + +334 +__·¿m +è +__THROW + + `__nÚnuÎ + ((1, 2)); + +337  + $±h»ad_©Œ_g‘schedpÞicy + (cÚ¡ +±h»ad_©Œ_t + * +__»¡riù + + +338 +__©Œ +, * +__»¡riù + +__pÞicy +) + +339 +__THROW + + `__nÚnuÎ + ((1, 2)); + +342  + $±h»ad_©Œ_£tschedpÞicy + ( +±h»ad_©Œ_t + * +__©Œ +,  +__pÞicy +) + +343 +__THROW + + `__nÚnuÎ + ((1)); + +346  + $±h»ad_©Œ_g‘šh”™sched + (cÚ¡ +±h»ad_©Œ_t + * +__»¡riù + + +347 +__©Œ +, * +__»¡riù + +__šh”™ +) + +348 +__THROW + + `__nÚnuÎ + ((1, 2)); + +351  + $±h»ad_©Œ_£tšh”™sched + ( +±h»ad_©Œ_t + * +__©Œ +, + +352  +__šh”™ +) + +353 +__THROW + + `__nÚnuÎ + ((1)); + +357  + $±h»ad_©Œ_g‘scÝe + (cÚ¡ +±h»ad_©Œ_t + * +__»¡riù + +__©Œ +, + +358 * +__»¡riù + +__scÝe +) + +359 +__THROW + + `__nÚnuÎ + ((1, 2)); + +362  + $±h»ad_©Œ_£tscÝe + ( +±h»ad_©Œ_t + * +__©Œ +,  +__scÝe +) + +363 +__THROW + + `__nÚnuÎ + ((1)); + +366  + $±h»ad_©Œ_g‘¡ackaddr + (cÚ¡ +±h»ad_©Œ_t + * +__»¡riù + + +367 +__©Œ +, ** +__»¡riù + +__¡ackaddr +) + +368 +__THROW + + `__nÚnuÎ + ((1, 2)è +__©Œibu‹_d•»ÿ‹d__ +; + +374  + $±h»ad_©Œ_£t¡ackaddr + ( +±h»ad_©Œ_t + * +__©Œ +, + +375 * +__¡ackaddr +) + +376 +__THROW + + `__nÚnuÎ + ((1)è +__©Œibu‹_d•»ÿ‹d__ +; + +379  + $±h»ad_©Œ_g‘¡acksize + (cÚ¡ +±h»ad_©Œ_t + * +__»¡riù + + +380 +__©Œ +, +size_t + * +__»¡riù + +__¡acksize +) + +381 +__THROW + + `__nÚnuÎ + ((1, 2)); + +386  + $±h»ad_©Œ_£t¡acksize + ( +±h»ad_©Œ_t + * +__©Œ +, + +387 +size_t + +__¡acksize +) + +388 +__THROW + + `__nÚnuÎ + ((1)); + +390 #ifdeà +__USE_XOPEN2K + + +392  + $±h»ad_©Œ_g‘¡ack + (cÚ¡ +±h»ad_©Œ_t + * +__»¡riù + +__©Œ +, + +393 ** +__»¡riù + +__¡ackaddr +, + +394 +size_t + * +__»¡riù + +__¡acksize +) + +395 +__THROW + + `__nÚnuÎ + ((1, 2, 3)); + +400  + $±h»ad_©Œ_£t¡ack + ( +±h»ad_©Œ_t + * +__©Œ +, * +__¡ackaddr +, + +401 +size_t + +__¡acksize +è +__THROW + + `__nÚnuÎ + ((1)); + +404 #ifdeà +__USE_GNU + + +407  + $±h»ad_©Œ_£ffš™y_Å + ( +±h»ad_©Œ_t + * +__©Œ +, + +408 +size_t + +__ýu£tsize +, + +409 cÚ¡ +ýu_£t_t + * +__ýu£t +) + +410 +__THROW + + `__nÚnuÎ + ((1, 3)); + +414  + $±h»ad_©Œ_g‘affš™y_Å + (cÚ¡ +±h»ad_©Œ_t + * +__©Œ +, + +415 +size_t + +__ýu£tsize +, + +416 +ýu_£t_t + * +__ýu£t +) + +417 +__THROW + + `__nÚnuÎ + ((1, 3)); + +420  + $±h»ad_g‘©Œ_deçuÉ_Å + ( +±h»ad_©Œ_t + * +__©Œ +) + +421 +__THROW + + `__nÚnuÎ + ((1)); + +425  + $±h»ad_£‰r_deçuÉ_Å + (cÚ¡ +±h»ad_©Œ_t + * +__©Œ +) + +426 +__THROW + + `__nÚnuÎ + ((1)); + +431  + $±h»ad_g‘©Œ_Å + ( +±h»ad_t + +__th +, +±h»ad_©Œ_t + * +__©Œ +) + +432 +__THROW + + `__nÚnuÎ + ((2)); + +440  + $±h»ad_£tsched·¿m + ( +±h»ad_t + +__rg‘_th»ad +,  +__pÞicy +, + +441 cÚ¡  +sched_·¿m + * +__·¿m +) + +442 +__THROW + + `__nÚnuÎ + ((3)); + +445  + $±h»ad_g‘sched·¿m + ( +±h»ad_t + +__rg‘_th»ad +, + +446 * +__»¡riù + +__pÞicy +, + +447  +sched_·¿m + * +__»¡riù + +__·¿m +) + +448 +__THROW + + `__nÚnuÎ + ((2, 3)); + +451  + $±h»ad_£tsched´io + ( +±h»ad_t + +__rg‘_th»ad +,  +__´io +) + +452 +__THROW +; + +455 #ifdeà +__USE_GNU + + +457  + $±h»ad_g‘Çme_Å + ( +±h»ad_t + +__rg‘_th»ad +, * +__buf +, + +458 +size_t + +__buæ’ +) + +459 +__THROW + + `__nÚnuÎ + ((2)); + +462  + $±h»ad_£Šame_Å + ( +±h»ad_t + +__rg‘_th»ad +, cÚ¡ * +__Çme +) + +463 +__THROW + + `__nÚnuÎ + ((2)); + +467 #ifdeà +__USE_UNIX98 + + +469  + $±h»ad_g‘cÚcu¼’cy + (è +__THROW +; + +472  + $±h»ad_£tcÚcu¼’cy + ( +__Ëv– +è +__THROW +; + +475 #ifdeà +__USE_GNU + + +480  + $±h»ad_y›ld + (è +__THROW +; + +485  + $±h»ad_£ffš™y_Å + ( +±h»ad_t + +__th +, +size_t + +__ýu£tsize +, + +486 cÚ¡ +ýu_£t_t + * +__ýu£t +) + +487 +__THROW + + `__nÚnuÎ + ((3)); + +490  + $±h»ad_g‘affš™y_Å + ( +±h»ad_t + +__th +, +size_t + +__ýu£tsize +, + +491 +ýu_£t_t + * +__ýu£t +) + +492 +__THROW + + `__nÚnuÎ + ((3)); + +505  + `±h»ad_Úû + ( +±h»ad_Úû_t + * +__Úû_cÚŒÞ +, + +506 (* +__š™_routše +è()è + `__nÚnuÎ + ((1, 2)); + +517  + `±h»ad_£tÿnûl¡©e + ( +__¡©e +, * +__Þd¡©e +); + +521  + `±h»ad_£tÿnûÉy³ + ( +__ty³ +, * +__Þdty³ +); + +524  + `±h»ad_ÿnûl + ( +±h»ad_t + +__th +); + +529  + `±h»ad_‹¡ÿnûl + (); + +538 +__jmp_buf + +__ÿnûl_jmp_buf +; + +539  +__mask_was_§ved +; + +540 } +__ÿnûl_jmp_buf +[1]; + +541 * +__·d +[4]; + +542 } + t__±h»ad_unwšd_buf_t + + t__©Œibu‹__ + (( + t__®igÃd__ +)); + +545 #iâdeà +__þ—nup_fù_©Œibu‹ + + +546  + #__þ—nup_fù_©Œibu‹ + + + ) + +551  + s__±h»ad_þ—nup_äame + + +553 (* +__ÿnûl_routše +) (*); + +554 * +__ÿnûl_¬g +; + +555  +__do_™ +; + +556  +__ÿnûl_ty³ +; + +559 #ià +defšed + +__GNUC__ + && defšed +__EXCEPTIONS + + +560 #ifdeà +__ýlu¥lus + + +562 þas  + c__±h»ad_þ—nup_þass + + +564 (* +__ÿnûl_routše +) (*); + +565 * +__ÿnûl_¬g +; + +566  +__do_™ +; + +567  +__ÿnûl_ty³ +; + +569 +public +: + +570 + `__±h»ad_þ—nup_þass + ((* +__fù +è(*), * +__¬g +) + +571 : + `__ÿnûl_routše + ( +__fù +), + `__ÿnûl_¬g + ( +__¬g +), + $__do_™ + (1) { } + +572 ~ + $__±h»ad_þ—nup_þass + (è{ ià( +__do_™ +è + `__ÿnûl_routše + ( +__ÿnûl_¬g +); + } +} + +573  + $__£tdo™ + ( +__Ãwv® +è{ +__do_™ + = __Ãwv®; + } +} + +574  + $__deãr + (è{ + `±h»ad_£tÿnûÉy³ + ( +PTHREAD_CANCEL_DEFERRED +, + +575 & +__ÿnûl_ty³ +); + } +} + +576  + $__»¡Üe + (ècÚ¡ { + `±h»ad_£tÿnûÉy³ + ( +__ÿnûl_ty³ +, 0); + } +} + +586  + #±h»ad_þ—nup_push +( +routše +, +¬g +) \ + +588 +__±h»ad_þ—nup_þass + + `__þäame + ( +routše +, +¬g +) + + ) + +592  + #±h»ad_þ—nup_pÝ +( +execu‹ +) \ + +593 +__þäame +. + `__£tdo™ + ( +execu‹ +); \ + +594 } 0) + + ) + +596 #ifdeà +__USE_GNU + + +600  + #±h»ad_þ—nup_push_deãr_Å +( +routše +, +¬g +) \ + +602 +__±h»ad_þ—nup_þass + + `__þäame + ( +routše +, +¬g +); \ + +603 +__þäame +. + `__deãr + () + + ) + +608  + #±h»ad_þ—nup_pÝ_»¡Üe_Å +( +execu‹ +) \ + +609 +__þäame +. + `__»¡Üe + (); \ + +610 +__þäame +. + `__£tdo™ + ( +execu‹ +); \ + +611 } 0) + + ) + +618 +__ex‹º_šlše +  + +619 + $__±h»ad_þ—nup_routše + ( +__±h»ad_þ—nup_äame + * +__äame +) + +621 ià( +__äame +-> +__do_™ +) + +622 +__äame +-> + `__ÿnûl_routše + (__äame-> +__ÿnûl_¬g +); + +623 + } +} + +632  + #±h»ad_þ—nup_push +( +routše +, +¬g +) \ + +634  +__±h»ad_þ—nup_äame + +__þäame + \ + +635 + `__©Œibu‹__ + (( + `__þ—nup__ + ( +__±h»ad_þ—nup_routše +))) \ + +636 ð{ . +__ÿnûl_routše + = ( +routše +), . +__ÿnûl_¬g + = ( +¬g +), \ + +637 . +__do_™ + = 1 }; + + ) + +641  + #±h»ad_þ—nup_pÝ +( +execu‹ +) \ + +642 +__þäame +. +__do_™ + = ( +execu‹ +); \ + +643 } 0) + + ) + +645 #ifdeà +__USE_GNU + + +649  + #±h»ad_þ—nup_push_deãr_Å +( +routše +, +¬g +) \ + +651  +__±h»ad_þ—nup_äame + +__þäame + \ + +652 + `__©Œibu‹__ + (( + `__þ—nup__ + ( +__±h»ad_þ—nup_routše +))) \ + +653 ð{ . +__ÿnûl_routše + = ( +routše +), . +__ÿnûl_¬g + = ( +¬g +), \ + +654 . +__do_™ + = 1 }; \ + +655 (è + `±h»ad_£tÿnûÉy³ + ( +PTHREAD_CANCEL_DEFERRED +, \ + +656 & +__þäame +. +__ÿnûl_ty³ +) + + ) + +661  + #±h»ad_þ—nup_pÝ_»¡Üe_Å +( +execu‹ +) \ + +662 (è + `±h»ad_£tÿnûÉy³ + ( +__þäame +. +__ÿnûl_ty³ +, +NULL +); \ + +663 +__þäame +. +__do_™ + = ( +execu‹ +); \ + +664 } 0) + + ) + +675  + #±h»ad_þ—nup_push +( +routše +, +¬g +) \ + +677 +__±h»ad_unwšd_buf_t + +__ÿnûl_buf +; \ + +678 (* +__ÿnûl_routše +è(*èð( +routše +); \ + +679 * +__ÿnûl_¬g + = ( +¬g +); \ + +680  +__nÙ_fœ¡_ÿÎ + = + `__sig£tjmp + (( +__jmp_buf_g + *) (*) \ + +681 +__ÿnûl_buf +. +__ÿnûl_jmp_buf +, 0); \ + +682 ià( + `__glibc_uÆik–y + ( +__nÙ_fœ¡_ÿÎ +)) \ + +684 + `__ÿnûl_routše + ( +__ÿnûl_¬g +); \ + +685 + `__±h»ad_unwšd_Ãxt + (& +__ÿnûl_buf +); \ + +689 + `__±h»ad_»gi¡”_ÿnûl + (& +__ÿnûl_buf +); \ + +690 dØ{ + + ) + +691  +__±h»ad_»gi¡”_ÿnûl + ( +__±h»ad_unwšd_buf_t + * +__buf +) + +692 +__þ—nup_fù_©Œibu‹ +; + +696  + #±h»ad_þ—nup_pÝ +( +execu‹ +) \ + +699 + `__±h»ad_uÄegi¡”_ÿnûl + (& +__ÿnûl_buf +); \ + +700 ià( +execu‹ +) \ + +701 + `__ÿnûl_routše + ( +__ÿnûl_¬g +); \ + +702 } 0) + + ) + +703  + $__±h»ad_uÄegi¡”_ÿnûl + ( +__±h»ad_unwšd_buf_t + * +__buf +) + +704 +__þ—nup_fù_©Œibu‹ +; + +706 #ifdeà +__USE_GNU + + +710  + #±h»ad_þ—nup_push_deãr_Å +( +routše +, +¬g +) \ + +712 +__±h»ad_unwšd_buf_t + +__ÿnûl_buf +; \ + +713 (* +__ÿnûl_routše +è(*èð( +routše +); \ + +714 * +__ÿnûl_¬g + = ( +¬g +); \ + +715  +__nÙ_fœ¡_ÿÎ + = + `__sig£tjmp + (( +__jmp_buf_g + *) (*) \ + +716 +__ÿnûl_buf +. +__ÿnûl_jmp_buf +, 0); \ + +717 ià( + `__glibc_uÆik–y + ( +__nÙ_fœ¡_ÿÎ +)) \ + +719 + `__ÿnûl_routše + ( +__ÿnûl_¬g +); \ + +720 + `__±h»ad_unwšd_Ãxt + (& +__ÿnûl_buf +); \ + +724 + `__±h»ad_»gi¡”_ÿnûl_deãr + (& +__ÿnûl_buf +); \ + +725 dØ{ + + ) + +726  + `__±h»ad_»gi¡”_ÿnûl_deãr + ( +__±h»ad_unwšd_buf_t + * +__buf +) + +727 +__þ—nup_fù_©Œibu‹ +; + +732  + #±h»ad_þ—nup_pÝ_»¡Üe_Å +( +execu‹ +) \ + +735 + `__±h»ad_uÄegi¡”_ÿnûl_»¡Üe + (& +__ÿnûl_buf +); \ + +736 ià( +execu‹ +) \ + +737 + `__ÿnûl_routše + ( +__ÿnûl_¬g +); \ + +738 + } +} 0) + + ) + +739  + $__±h»ad_uÄegi¡”_ÿnûl_»¡Üe + ( +__±h»ad_unwšd_buf_t + * +__buf +) + +740 +__þ—nup_fù_©Œibu‹ +; + +744  + $__±h»ad_unwšd_Ãxt + ( +__±h»ad_unwšd_buf_t + * +__buf +) + +745 +__þ—nup_fù_©Œibu‹ + + `__©Œibu‹__ + (( +__nܑuº__ +)) + +746 #iâdeà +SHARED + + +747 + `__©Œibu‹__ + (( +__w—k__ +)) + +753  +__jmp_buf_g +; + +754  + $__sig£tjmp + ( +__jmp_buf_g + * +__’v +,  +__§vemask +è +__THROWNL +; + +760  + $±h»ad_mu‹x_š™ + ( +±h»ad_mu‹x_t + * +__mu‹x +, + +761 cÚ¡ +±h»ad_mu‹x©Œ_t + * +__mu‹x©Œ +) + +762 +__THROW + + `__nÚnuÎ + ((1)); + +765  + $±h»ad_mu‹x_de¡roy + ( +±h»ad_mu‹x_t + * +__mu‹x +) + +766 +__THROW + + `__nÚnuÎ + ((1)); + +769  + $±h»ad_mu‹x_Œylock + ( +±h»ad_mu‹x_t + * +__mu‹x +) + +770 +__THROWNL + + `__nÚnuÎ + ((1)); + +773  + $±h»ad_mu‹x_lock + ( +±h»ad_mu‹x_t + * +__mu‹x +) + +774 +__THROWNL + + `__nÚnuÎ + ((1)); + +776 #ifdeà +__USE_XOPEN2K + + +778  + $±h»ad_mu‹x_timedlock + ( +±h»ad_mu‹x_t + * +__»¡riù + +__mu‹x +, + +779 cÚ¡  +time¥ec + * +__»¡riù + + +780 +__ab¡ime +è +__THROWNL + + `__nÚnuÎ + ((1, 2)); + +784  + $±h»ad_mu‹x_uÆock + ( +±h»ad_mu‹x_t + * +__mu‹x +) + +785 +__THROWNL + + `__nÚnuÎ + ((1)); + +789  + $±h»ad_mu‹x_g‘´ioûžšg + (cÚ¡ +±h»ad_mu‹x_t + * + +790 +__»¡riù + +__mu‹x +, + +791 * +__»¡riù + +__´ioûžšg +) + +792 +__THROW + + `__nÚnuÎ + ((1, 2)); + +796  + $±h»ad_mu‹x_£rioûžšg + ( +±h»ad_mu‹x_t + * +__»¡riù + +__mu‹x +, + +797  +__´ioûžšg +, + +798 * +__»¡riù + +__Þd_ûžšg +) + +799 +__THROW + + `__nÚnuÎ + ((1, 3)); + +802 #ifdeà +__USE_XOPEN2K8 + + +804  + $±h»ad_mu‹x_cÚsi¡’t + ( +±h»ad_mu‹x_t + * +__mu‹x +) + +805 +__THROW + + `__nÚnuÎ + ((1)); + +806 #ifdeà +__USE_GNU + + +807  + $±h»ad_mu‹x_cÚsi¡’t_Å + ( +±h»ad_mu‹x_t + * +__mu‹x +) + +808 +__THROW + + `__nÚnuÎ + ((1)); + +817  + $±h»ad_mu‹x©Œ_š™ + ( +±h»ad_mu‹x©Œ_t + * +__©Œ +) + +818 +__THROW + + `__nÚnuÎ + ((1)); + +821  + $±h»ad_mu‹x©Œ_de¡roy + ( +±h»ad_mu‹x©Œ_t + * +__©Œ +) + +822 +__THROW + + `__nÚnuÎ + ((1)); + +825  + $±h»ad_mu‹x©Œ_g‘psh¬ed + (cÚ¡ +±h»ad_mu‹x©Œ_t + * + +826 +__»¡riù + +__©Œ +, + +827 * +__»¡riù + +__psh¬ed +) + +828 +__THROW + + `__nÚnuÎ + ((1, 2)); + +831  + $±h»ad_mu‹x©Œ_£sh¬ed + ( +±h»ad_mu‹x©Œ_t + * +__©Œ +, + +832  +__psh¬ed +) + +833 +__THROW + + `__nÚnuÎ + ((1)); + +835 #ià +defšed + +__USE_UNIX98 + || defšed +__USE_XOPEN2K8 + + +837  + $±h»ad_mu‹x©Œ_g‘ty³ + (cÚ¡ +±h»ad_mu‹x©Œ_t + * +__»¡riù + + +838 +__©Œ +, * +__»¡riù + +__kšd +) + +839 +__THROW + + `__nÚnuÎ + ((1, 2)); + +844  + $±h»ad_mu‹x©Œ_£‰y³ + ( +±h»ad_mu‹x©Œ_t + * +__©Œ +,  +__kšd +) + +845 +__THROW + + `__nÚnuÎ + ((1)); + +849  + $±h»ad_mu‹x©Œ_g‘´ÙocÞ + (cÚ¡ +±h»ad_mu‹x©Œ_t + * + +850 +__»¡riù + +__©Œ +, + +851 * +__»¡riù + +__´ÙocÞ +) + +852 +__THROW + + `__nÚnuÎ + ((1, 2)); + +856  + $±h»ad_mu‹x©Œ_£rÙocÞ + ( +±h»ad_mu‹x©Œ_t + * +__©Œ +, + +857  +__´ÙocÞ +) + +858 +__THROW + + `__nÚnuÎ + ((1)); + +861  + $±h»ad_mu‹x©Œ_g‘´ioûžšg + (cÚ¡ +±h»ad_mu‹x©Œ_t + * + +862 +__»¡riù + +__©Œ +, + +863 * +__»¡riù + +__´ioûžšg +) + +864 +__THROW + + `__nÚnuÎ + ((1, 2)); + +867  + $±h»ad_mu‹x©Œ_£rioûžšg + ( +±h»ad_mu‹x©Œ_t + * +__©Œ +, + +868  +__´ioûžšg +) + +869 +__THROW + + `__nÚnuÎ + ((1)); + +871 #ifdeà +__USE_XOPEN2K + + +873  + $±h»ad_mu‹x©Œ_g‘robu¡ + (cÚ¡ +±h»ad_mu‹x©Œ_t + * +__©Œ +, + +874 * +__robu¡Ãss +) + +875 +__THROW + + `__nÚnuÎ + ((1, 2)); + +876 #ifdeà +__USE_GNU + + +877  + $±h»ad_mu‹x©Œ_g‘robu¡_Å + (cÚ¡ +±h»ad_mu‹x©Œ_t + * +__©Œ +, + +878 * +__robu¡Ãss +) + +879 +__THROW + + `__nÚnuÎ + ((1, 2)); + +883  + $±h»ad_mu‹x©Œ_£Œobu¡ + ( +±h»ad_mu‹x©Œ_t + * +__©Œ +, + +884  +__robu¡Ãss +) + +885 +__THROW + + `__nÚnuÎ + ((1)); + +886 #ifdeà +__USE_GNU + + +887  + $±h»ad_mu‹x©Œ_£Œobu¡_Å + ( +±h»ad_mu‹x©Œ_t + * +__©Œ +, + +888  +__robu¡Ãss +) + +889 +__THROW + + `__nÚnuÎ + ((1)); + +894 #ià +defšed + +__USE_UNIX98 + || defšed +__USE_XOPEN2K + + +899  + $±h»ad_rwlock_š™ + ( +±h»ad_rwlock_t + * +__»¡riù + +__rwlock +, + +900 cÚ¡ +±h»ad_rwlock©Œ_t + * +__»¡riù + + +901 +__©Œ +è +__THROW + + `__nÚnuÎ + ((1)); + +904  + $±h»ad_rwlock_de¡roy + ( +±h»ad_rwlock_t + * +__rwlock +) + +905 +__THROW + + `__nÚnuÎ + ((1)); + +908  + $±h»ad_rwlock_rdlock + ( +±h»ad_rwlock_t + * +__rwlock +) + +909 +__THROWNL + + `__nÚnuÎ + ((1)); + +912  + $±h»ad_rwlock_Œyrdlock + ( +±h»ad_rwlock_t + * +__rwlock +) + +913 +__THROWNL + + `__nÚnuÎ + ((1)); + +915 #ifdeà +__USE_XOPEN2K + + +917  + $±h»ad_rwlock_timedrdlock + ( +±h»ad_rwlock_t + * +__»¡riù + +__rwlock +, + +918 cÚ¡  +time¥ec + * +__»¡riù + + +919 +__ab¡ime +è +__THROWNL + + `__nÚnuÎ + ((1, 2)); + +923  + $±h»ad_rwlock_w¾ock + ( +±h»ad_rwlock_t + * +__rwlock +) + +924 +__THROWNL + + `__nÚnuÎ + ((1)); + +927  + $±h»ad_rwlock_Œyw¾ock + ( +±h»ad_rwlock_t + * +__rwlock +) + +928 +__THROWNL + + `__nÚnuÎ + ((1)); + +930 #ifdeà +__USE_XOPEN2K + + +932  + $±h»ad_rwlock_timedw¾ock + ( +±h»ad_rwlock_t + * +__»¡riù + +__rwlock +, + +933 cÚ¡  +time¥ec + * +__»¡riù + + +934 +__ab¡ime +è +__THROWNL + + `__nÚnuÎ + ((1, 2)); + +938  + $±h»ad_rwlock_uÆock + ( +±h»ad_rwlock_t + * +__rwlock +) + +939 +__THROWNL + + `__nÚnuÎ + ((1)); + +945  + $±h»ad_rwlock©Œ_š™ + ( +±h»ad_rwlock©Œ_t + * +__©Œ +) + +946 +__THROW + + `__nÚnuÎ + ((1)); + +949  + $±h»ad_rwlock©Œ_de¡roy + ( +±h»ad_rwlock©Œ_t + * +__©Œ +) + +950 +__THROW + + `__nÚnuÎ + ((1)); + +953  + $±h»ad_rwlock©Œ_g‘psh¬ed + (cÚ¡ +±h»ad_rwlock©Œ_t + * + +954 +__»¡riù + +__©Œ +, + +955 * +__»¡riù + +__psh¬ed +) + +956 +__THROW + + `__nÚnuÎ + ((1, 2)); + +959  + $±h»ad_rwlock©Œ_£sh¬ed + ( +±h»ad_rwlock©Œ_t + * +__©Œ +, + +960  +__psh¬ed +) + +961 +__THROW + + `__nÚnuÎ + ((1)); + +964  + $±h»ad_rwlock©Œ_g‘kšd_Å + (cÚ¡ +±h»ad_rwlock©Œ_t + * + +965 +__»¡riù + +__©Œ +, + +966 * +__»¡riù + +__´ef +) + +967 +__THROW + + `__nÚnuÎ + ((1, 2)); + +970  + $±h»ad_rwlock©Œ_£tkšd_Å + ( +±h»ad_rwlock©Œ_t + * +__©Œ +, + +971  +__´ef +è +__THROW + + `__nÚnuÎ + ((1)); + +979  + $±h»ad_cÚd_š™ + ( +±h»ad_cÚd_t + * +__»¡riù + +__cÚd +, + +980 cÚ¡ +±h»ad_cÚd©Œ_t + * +__»¡riù + +__cÚd_©Œ +) + +981 +__THROW + + `__nÚnuÎ + ((1)); + +984  + $±h»ad_cÚd_de¡roy + ( +±h»ad_cÚd_t + * +__cÚd +) + +985 +__THROW + + `__nÚnuÎ + ((1)); + +988  + $±h»ad_cÚd_sigÇl + ( +±h»ad_cÚd_t + * +__cÚd +) + +989 +__THROWNL + + `__nÚnuÎ + ((1)); + +992  + $±h»ad_cÚd_brßdÿ¡ + ( +±h»ad_cÚd_t + * +__cÚd +) + +993 +__THROWNL + + `__nÚnuÎ + ((1)); + +1000  + $±h»ad_cÚd_wa™ + ( +±h»ad_cÚd_t + * +__»¡riù + +__cÚd +, + +1001 +±h»ad_mu‹x_t + * +__»¡riù + +__mu‹x +) + +1002 + `__nÚnuÎ + ((1, 2)); + +1011  + $±h»ad_cÚd_timedwa™ + ( +±h»ad_cÚd_t + * +__»¡riù + +__cÚd +, + +1012 +±h»ad_mu‹x_t + * +__»¡riù + +__mu‹x +, + +1013 cÚ¡  +time¥ec + * +__»¡riù + +__ab¡ime +) + +1014 + `__nÚnuÎ + ((1, 2, 3)); + +1019  + $±h»ad_cÚd©Œ_š™ + ( +±h»ad_cÚd©Œ_t + * +__©Œ +) + +1020 +__THROW + + `__nÚnuÎ + ((1)); + +1023  + $±h»ad_cÚd©Œ_de¡roy + ( +±h»ad_cÚd©Œ_t + * +__©Œ +) + +1024 +__THROW + + `__nÚnuÎ + ((1)); + +1027  + $±h»ad_cÚd©Œ_g‘psh¬ed + (cÚ¡ +±h»ad_cÚd©Œ_t + * + +1028 +__»¡riù + +__©Œ +, + +1029 * +__»¡riù + +__psh¬ed +) + +1030 +__THROW + + `__nÚnuÎ + ((1, 2)); + +1033  + $±h»ad_cÚd©Œ_£sh¬ed + ( +±h»ad_cÚd©Œ_t + * +__©Œ +, + +1034  +__psh¬ed +è +__THROW + + `__nÚnuÎ + ((1)); + +1036 #ifdeà +__USE_XOPEN2K + + +1038  + $±h»ad_cÚd©Œ_g‘þock + (cÚ¡ +±h»ad_cÚd©Œ_t + * + +1039 +__»¡riù + +__©Œ +, + +1040 +__þockid_t + * +__»¡riù + +__þock_id +) + +1041 +__THROW + + `__nÚnuÎ + ((1, 2)); + +1044  + $±h»ad_cÚd©Œ_£tþock + ( +±h»ad_cÚd©Œ_t + * +__©Œ +, + +1045 +__þockid_t + +__þock_id +) + +1046 +__THROW + + `__nÚnuÎ + ((1)); + +1050 #ifdeà +__USE_XOPEN2K + + +1055  + $±h»ad_¥š_š™ + ( +±h»ad_¥šlock_t + * +__lock +,  +__psh¬ed +) + +1056 +__THROW + + `__nÚnuÎ + ((1)); + +1059  + $±h»ad_¥š_de¡roy + ( +±h»ad_¥šlock_t + * +__lock +) + +1060 +__THROW + + `__nÚnuÎ + ((1)); + +1063  + $±h»ad_¥š_lock + ( +±h»ad_¥šlock_t + * +__lock +) + +1064 +__THROWNL + + `__nÚnuÎ + ((1)); + +1067  + $±h»ad_¥š_Œylock + ( +±h»ad_¥šlock_t + * +__lock +) + +1068 +__THROWNL + + `__nÚnuÎ + ((1)); + +1071  + $±h»ad_¥š_uÆock + ( +±h»ad_¥šlock_t + * +__lock +) + +1072 +__THROWNL + + `__nÚnuÎ + ((1)); + +1079  + $±h»ad_b¬r›r_š™ + ( +±h»ad_b¬r›r_t + * +__»¡riù + +__b¬r›r +, + +1080 cÚ¡ +±h»ad_b¬r›¿‰r_t + * +__»¡riù + + +1081 +__©Œ +,  +__couÁ +) + +1082 +__THROW + + `__nÚnuÎ + ((1)); + +1085  + $±h»ad_b¬r›r_de¡roy + ( +±h»ad_b¬r›r_t + * +__b¬r›r +) + +1086 +__THROW + + `__nÚnuÎ + ((1)); + +1089  + $±h»ad_b¬r›r_wa™ + ( +±h»ad_b¬r›r_t + * +__b¬r›r +) + +1090 +__THROWNL + + `__nÚnuÎ + ((1)); + +1094  + $±h»ad_b¬r›¿‰r_š™ + ( +±h»ad_b¬r›¿‰r_t + * +__©Œ +) + +1095 +__THROW + + `__nÚnuÎ + ((1)); + +1098  + $±h»ad_b¬r›¿‰r_de¡roy + ( +±h»ad_b¬r›¿‰r_t + * +__©Œ +) + +1099 +__THROW + + `__nÚnuÎ + ((1)); + +1102  + $±h»ad_b¬r›¿‰r_g‘psh¬ed + (cÚ¡ +±h»ad_b¬r›¿‰r_t + * + +1103 +__»¡riù + +__©Œ +, + +1104 * +__»¡riù + +__psh¬ed +) + +1105 +__THROW + + `__nÚnuÎ + ((1, 2)); + +1108  + $±h»ad_b¬r›¿‰r_£sh¬ed + ( +±h»ad_b¬r›¿‰r_t + * +__©Œ +, + +1109  +__psh¬ed +) + +1110 +__THROW + + `__nÚnuÎ + ((1)); + +1122  + `±h»ad_key_ü—‹ + ( +±h»ad_key_t + * +__key +, + +1123 (* +__de¡r_funùiÚ +) (*)) + +1124 +__THROW + + `__nÚnuÎ + ((1)); + +1127  + $±h»ad_key_d–‘e + ( +±h»ad_key_t + +__key +è +__THROW +; + +1130 * + $±h»ad_g‘¥ecific + ( +±h»ad_key_t + +__key +è +__THROW +; + +1133  + $±h»ad_£t¥ecific + ( +±h»ad_key_t + +__key +, + +1134 cÚ¡ * +__poš‹r +è +__THROW + ; + +1137 #ifdeà +__USE_XOPEN2K + + +1139  + $±h»ad_g‘ýuþockid + ( +±h»ad_t + +__th»ad_id +, + +1140 +__þockid_t + * +__þock_id +) + +1141 +__THROW + + `__nÚnuÎ + ((2)); + +1156  + `±h»ad_©fÜk + ((* +__´•¬e +) (), + +1157 (* +__·»Á +) (), + +1158 (* +__chžd +è()è +__THROW +; + +1161 #ifdeà +__USE_EXTERN_INLINES + + +1163 +__ex‹º_šlše +  + +1164 + `__NTH + ( + $±h»ad_equ® + ( +±h»ad_t + +__th»ad1 +,…th»ad_ˆ +__th»ad2 +)) + +1166  +__th»ad1 + =ð +__th»ad2 +; + +1167 + } +} + +1170 + g__END_DECLS + + + @/usr/include/signal.h + +22 #iâdef +_SIGNAL_H + + +24 #ià! +defšed + +__Ãed_sig_©omic_t + && !defšed +__Ãed_sig£t_t + + +25  + #_SIGNAL_H + + + ) + +28  + ~<ã©u»s.h +> + +30 + g__BEGIN_DECLS + + +32  + ~ + +36 #ià +defšed + +__Ãed_sig_©omic_t + || defšed +_SIGNAL_H + + +37 #iâdeà +__sig_©omic_t_defšed + + +38  + #__sig_©omic_t_defšed + + + ) + +39 +__BEGIN_NAMESPACE_STD + + +40  +__sig_©omic_t + + tsig_©omic_t +; + +41 + g__END_NAMESPACE_STD + + +43 #undeà +__Ãed_sig_©omic_t + + +46 #ià +defšed + +__Ãed_sig£t_t + || (defšed +_SIGNAL_H + && defšed +__USE_POSIX +) + +47 #iâdeà +__sig£t_t_defšed + + +48  + #__sig£t_t_defšed + + + ) + +49  +__sig£t_t + + tsig£t_t +; + +51 #undeà +__Ãed_sig£t_t + + +54 #ifdeà +_SIGNAL_H + + +56  + ~ + +57  + ~ + +59 #ià +defšed + +__USE_XOPEN + || defšed +__USE_XOPEN2K + + +60 #iâdeà +__pid_t_defšed + + +61  +__pid_t + + tpid_t +; + +62  + #__pid_t_defšed + + + ) + +64 #ifdeà +__USE_XOPEN + + +66 #iâdeà +__uid_t_defšed + + +67  +__uid_t + + tuid_t +; + +68  + #__uid_t_defšed + + + ) + +72 #ifdeà +__USE_POSIX199309 + + +74  + #__Ãed_time¥ec + + + ) + +75  + ~ + +78 #ià +defšed + +__USE_POSIX199309 + || defšed +__USE_XOPEN_EXTENDED + + +80  + ~ + +85 (* + t__sighªdËr_t +) (); + +90 +__sighªdËr_t + + $__sysv_sigÇl + ( +__sig +, +__sighªdËr_t + +__hªdËr +) + +91 +__THROW +; + +92 #ifdeà +__USE_GNU + + +93 +__sighªdËr_t + + $sysv_sigÇl + ( +__sig +, +__sighªdËr_t + +__hªdËr +) + +94 +__THROW +; + +100 +__BEGIN_NAMESPACE_STD + + +101 #ifdeà +__USE_BSD + + +102 +__sighªdËr_t + + $sigÇl + ( +__sig +, +__sighªdËr_t + +__hªdËr +) + +103 +__THROW +; + +106 #ifdeà +__REDIRECT_NTH + + +107 +__sighªdËr_t + + `__REDIRECT_NTH + ( +sigÇl +, + +108 ( +__sig +, +__sighªdËr_t + +__hªdËr +), + +109 +__sysv_sigÇl +); + +111  + #sigÇl + +__sysv_sigÇl + + + ) + +114 +__END_NAMESPACE_STD + + +116 #ifdeà +__USE_XOPEN + + +119 +__sighªdËr_t + + $bsd_sigÇl + ( +__sig +, +__sighªdËr_t + +__hªdËr +) + +120 +__THROW +; + +126 #ifdeà +__USE_POSIX + + +127  + $kžl + ( +__pid_t + +__pid +,  +__sig +è +__THROW +; + +130 #ià +defšed + +__USE_BSD + || defšed +__USE_XOPEN_EXTENDED + + +134  + $kžÍg + ( +__pid_t + +__pg½ +,  +__sig +è +__THROW +; + +137 +__BEGIN_NAMESPACE_STD + + +139  + $¿i£ + ( +__sig +è +__THROW +; + +140 +__END_NAMESPACE_STD + + +142 #ifdeà +__USE_SVID + + +144 +__sighªdËr_t + + $ssigÇl + ( +__sig +, +__sighªdËr_t + +__hªdËr +) + +145 +__THROW +; + +146  + $gsigÇl + ( +__sig +è +__THROW +; + +149 #ià +defšed + +__USE_MISC + || defšed +__USE_XOPEN2K + + +151  + `psigÇl + ( +__sig +, cÚ¡ * +__s +); + +154 #ifdeà +__USE_XOPEN2K + + +156  + `psigšfo + (cÚ¡ +sigšfo_t + * +__pšfo +, cÚ¡ * +__s +); + +167  + `__sig·u£ + ( +__sig_Ü_mask +,  +__is_sig +); + +169 #ifdeà +__USE_XOPEN + + +170 #ifdeà +__GNUC__ + + +171  + $sig·u£ + ( +__sig +è + `__asm__ + ("__xpg_sigpause"); + +174  + #sig·u£ +( +sig +è + `__sig·u£ + ((sig), 1) + + ) + +179 #ifdeà +__USE_BSD + + +186  + #sigmask +( +sig +è + `__sigmask +(sig) + + ) + +189  + $sigblock + ( +__mask +è +__THROW + +__©Œibu‹_d•»ÿ‹d__ +; + +192  + $sig£tmask + ( +__mask +è +__THROW + +__©Œibu‹_d•»ÿ‹d__ +; + +195  + $sigg‘mask + (è +__THROW + +__©Œibu‹_d•»ÿ‹d__ +; + +199 #ifdeà +__USE_MISC + + +200  + #NSIG + +_NSIG + + + ) + +203 #ifdeà +__USE_GNU + + +204  +__sighªdËr_t + + tsighªdËr_t +; + +208 #ifdeà +__USE_BSD + + +209  +__sighªdËr_t + + tsig_t +; + +212 #ifdeà +__USE_POSIX + + +215  + $sigem±y£t + ( +sig£t_t + * +__£t +è +__THROW + + `__nÚnuÎ + ((1)); + +218  + $sigfžl£t + ( +sig£t_t + * +__£t +è +__THROW + + `__nÚnuÎ + ((1)); + +221  + $sigadd£t + ( +sig£t_t + * +__£t +,  +__signo +è +__THROW + + `__nÚnuÎ + ((1)); + +224  + $sigd–£t + ( +sig£t_t + * +__£t +,  +__signo +è +__THROW + + `__nÚnuÎ + ((1)); + +227  + $sigismemb” + (cÚ¡ +sig£t_t + * +__£t +,  +__signo +) + +228 +__THROW + + `__nÚnuÎ + ((1)); + +230 #ifdeà +__USE_GNU + + +232  + $sigi£m±y£t + (cÚ¡ +sig£t_t + * +__£t +è +__THROW + + `__nÚnuÎ + ((1)); + +235  + $sigªd£t + ( +sig£t_t + * +__£t +, cÚ¡ sig£t_ˆ* +__Ëá +, + +236 cÚ¡ +sig£t_t + * +__right +è +__THROW + + `__nÚnuÎ + ((1, 2, 3)); + +239  + $sigÜ£t + ( +sig£t_t + * +__£t +, cÚ¡ sig£t_ˆ* +__Ëá +, + +240 cÚ¡ +sig£t_t + * +__right +è +__THROW + + `__nÚnuÎ + ((1, 2, 3)); + +245  + ~ + +248  + $sig´ocmask + ( +__how +, cÚ¡ +sig£t_t + * +__»¡riù + +__£t +, + +249 +sig£t_t + * +__»¡riù + +__o£t +è +__THROW +; + +256  + $sigsu¥’d + (cÚ¡ +sig£t_t + * +__£t +è + `__nÚnuÎ + ((1)); + +259  + $sigaùiÚ + ( +__sig +, cÚ¡  +sigaùiÚ + * +__»¡riù + +__aù +, + +260  +sigaùiÚ + * +__»¡riù + +__ßù +è +__THROW +; + +263  + $sig³ndšg + ( +sig£t_t + * +__£t +è +__THROW + + `__nÚnuÎ + ((1)); + +270  + $sigwa™ + (cÚ¡ +sig£t_t + * +__»¡riù + +__£t +, *__»¡riù +__sig +) + +271 + `__nÚnuÎ + ((1, 2)); + +273 #ifdeà +__USE_POSIX199309 + + +278  + $sigwa™šfo + (cÚ¡ +sig£t_t + * +__»¡riù + +__£t +, + +279 +sigšfo_t + * +__»¡riù + +__šfo +è + `__nÚnuÎ + ((1)); + +286  + $sigtimedwa™ + (cÚ¡ +sig£t_t + * +__»¡riù + +__£t +, + +287 +sigšfo_t + * +__»¡riù + +__šfo +, + +288 cÚ¡  +time¥ec + * +__»¡riù + +__timeout +) + +289 + `__nÚnuÎ + ((1)); + +293  + $sigqueue + ( +__pid_t + +__pid +,  +__sig +, cÚ¡  +sigv® + +__v® +) + +294 +__THROW +; + +299 #ifdeà +__USE_BSD + + +303 cÚ¡ *cÚ¡ +_sys_sigli¡ +[ +_NSIG +]; + +304 cÚ¡ *cÚ¡ +sys_sigli¡ +[ +_NSIG +]; + +307  + ssigvec + + +309 +__sighªdËr_t + +sv_hªdËr +; + +310  +sv_mask +; + +312  +sv_æags +; + +313  + #sv_Ú¡ack + +sv_æags + + + ) + +317  + #SV_ONSTACK + (1 << 0) + + ) + +318  + #SV_INTERRUPT + (1 << 1) + + ) + +319  + #SV_RESETHAND + (1 << 2) + + ) + +327  + $sigvec + ( +__sig +, cÚ¡  +sigvec + * +__vec +, + +328  +sigvec + * +__ovec +è +__THROW +; + +332  + ~ + +335  + $sig»tuº + ( +sigcڋxt + * +__sý +è +__THROW +; + +340 #ià +defšed + +__USE_BSD + || defšed +__USE_XOPEN_EXTENDED + || defšed +__USE_XOPEN2K8 + + +341  + #__Ãed_size_t + + + ) + +342  + ~<¡ddef.h +> + +347  + $sigš‹¼u± + ( +__sig +,  +__š‹¼u± +è +__THROW +; + +349  + ~ + +350 #ià +defšed + +__USE_XOPEN + || defšed +__USE_XOPEN2K8 + + +352  + ~ + +358  + $sig¡ack + ( +sig¡ack + * +__ss +, sig¡ack * +__oss +) + +359 +__THROW + +__©Œibu‹_d•»ÿ‹d__ +; + +363  + $sig®t¡ack + (cÚ¡  +sig®t¡ack + * +__»¡riù + +__ss +, + +364  +sig®t¡ack + * +__»¡riù + +__oss +è +__THROW +; + +368 #ifdeà +__USE_XOPEN_EXTENDED + + +372  + $sighÞd + ( +__sig +è +__THROW +; + +375  + $sig»l£ + ( +__sig +è +__THROW +; + +378  + $sigignÜe + ( +__sig +è +__THROW +; + +381 +__sighªdËr_t + + $sig£t + ( +__sig +, +__sighªdËr_t + +__di¥ +è +__THROW +; + +384 #ià +defšed + +__USE_POSIX199506 + || defšed +__USE_UNIX98 + + +387  + ~ + +388  + ~ + +395  + $__libc_cu¼’t_sig¹mš + (è +__THROW +; + +397  + $__libc_cu¼’t_sig¹max + (è +__THROW +; + +401 +__END_DECLS + + + @/usr/include/stdio.h + +23 #iâdeà +_STDIO_H + + +25 #ià! +defšed + +__Ãed_FILE + && !defšed +__Ãed___FILE + + +26  + #_STDIO_H + 1 + + ) + +27  + ~<ã©u»s.h +> + +29 + g__BEGIN_DECLS + + +31  + #__Ãed_size_t + + + ) + +32  + #__Ãed_NULL + + + ) + +33  + ~<¡ddef.h +> + +35  + ~ + +36  + #__Ãed_FILE + + + ) + +37  + #__Ãed___FILE + + + ) + +41 #ià! +defšed + +__FILE_defšed + && defšed +__Ãed_FILE + + +44  + g_IO_FILE +; + +46 +__BEGIN_NAMESPACE_STD + + +48  +_IO_FILE + + tFILE +; + +49 + g__END_NAMESPACE_STD + + +50 #ià +defšed + +__USE_LARGEFILE64 + || defšed +__USE_SVID + || defšed +__USE_POSIX + \ + +51 || +defšed + + g__USE_BSD + || defšed + g__USE_ISOC99 + || defšed + g__USE_XOPEN + \ + +52 || +defšed + +__USE_POSIX2 + + +53 + $__USING_NAMESPACE_STD +( +FILE +) + +56  + #__FILE_defšed + 1 + + ) + +58 #undeà +__Ãed_FILE + + +61 #ià! +defšed + +____FILE_defšed + && defšed +__Ãed___FILE + + +64  +_IO_FILE + + t__FILE +; + +66  + #____FILE_defšed + 1 + + ) + +68 #undeà +__Ãed___FILE + + +71 #ifdef +_STDIO_H + + +72  + #_STDIO_USES_IOSTREAM + + + ) + +74  + ~ + +76 #ià +defšed + +__USE_XOPEN + || defšed +__USE_XOPEN2K8 + + +77 #ifdeà +__GNUC__ + + +78 #iâdeà +_VA_LIST_DEFINED + + +79  +_G_va_li¡ + + tva_li¡ +; + +80  + #_VA_LIST_DEFINED + + + ) + +83  + ~<¡d¬g.h +> + +87 #ifdeà +__USE_XOPEN2K8 + + +88 #iâdeà +__off_t_defšed + + +89 #iâdeà +__USE_FILE_OFFSET64 + + +90  +__off_t + + toff_t +; + +92  +__off64_t + + toff_t +; + +94  + #__off_t_defšed + + + ) + +96 #ià +defšed + +__USE_LARGEFILE64 + && !defšed +__off64_t_defšed + + +97  +__off64_t + + toff64_t +; + +98  + #__off64_t_defšed + + + ) + +101 #iâdeà +__ssize_t_defšed + + +102  +__ssize_t + + tssize_t +; + +103  + #__ssize_t_defšed + + + ) + +108 +__BEGIN_NAMESPACE_STD + + +109 #iâdeà +__USE_FILE_OFFSET64 + + +110  +_G_åos_t + + tåos_t +; + +112  +_G_åos64_t + + tåos_t +; + +114 +__END_NAMESPACE_STD + + +115 #ifdeà +__USE_LARGEFILE64 + + +116  +_G_åos64_t + + tåos64_t +; + +120  + #_IOFBF + 0 + + ) + +121  + #_IOLBF + 1 + + ) + +122  + #_IONBF + 2 + + ) + +126 #iâdeà +BUFSIZ + + +127  + #BUFSIZ + +_IO_BUFSIZ + + + ) + +133 #iâdeà +EOF + + +134  + #EOF + (-1) + + ) + +140  + #SEEK_SET + 0 + + ) + +141  + #SEEK_CUR + 1 + + ) + +142  + #SEEK_END + 2 + + ) + +143 #ifdeà +__USE_GNU + + +144  + #SEEK_DATA + 3 + + ) + +145  + #SEEK_HOLE + 4 + + ) + +149 #ià +defšed + +__USE_SVID + || defšed +__USE_XOPEN + + +151  + #P_tmpdœ + "/tmp" + + ) + +164  + ~ + +168  +_IO_FILE + * +¡dš +; + +169  +_IO_FILE + * +¡dout +; + +170  +_IO_FILE + * +¡d”r +; + +172  + #¡dš + +¡dš + + + ) + +173  + #¡dout + +¡dout + + + ) + +174  + #¡d”r + +¡d”r + + + ) + +176 +__BEGIN_NAMESPACE_STD + + +178  + $»move + (cÚ¡ * +__fž’ame +è +__THROW +; + +180  + $»Çme + (cÚ¡ * +__Þd +, cÚ¡ * +__Ãw +è +__THROW +; + +181 +__END_NAMESPACE_STD + + +183 #ifdeà +__USE_ATFILE + + +185  + $»Çm—t + ( +__Þdfd +, cÚ¡ * +__Þd +,  +__Ãwfd +, + +186 cÚ¡ * +__Ãw +è +__THROW +; + +189 +__BEGIN_NAMESPACE_STD + + +194 #iâdeà +__USE_FILE_OFFSET64 + + +195 +FILE + * + $tmpfže + (è +__wur +; + +197 #ifdeà +__REDIRECT + + +198 +FILE + * + `__REDIRECT + ( +tmpfže +, (), +tmpfže64 +è +__wur +; + +200  + #tmpfže + +tmpfže64 + + + ) + +204 #ifdeà +__USE_LARGEFILE64 + + +205 +FILE + * + $tmpfže64 + (è +__wur +; + +209 * + $tm²am + (* +__s +è +__THROW + +__wur +; + +210 +__END_NAMESPACE_STD + + +212 #ifdeà +__USE_MISC + + +215 * + $tm²am_r + (* +__s +è +__THROW + +__wur +; + +219 #ià +defšed + +__USE_SVID + || defšed +__USE_XOPEN + + +227 * + $‹m²am + (cÚ¡ * +__dœ +, cÚ¡ * +__pfx +) + +228 +__THROW + +__©Œibu‹_m®loc__ + +__wur +; + +232 +__BEGIN_NAMESPACE_STD + + +237  + `fþo£ + ( +FILE + * +__¡»am +); + +242  + `fæush + ( +FILE + * +__¡»am +); + +243 +__END_NAMESPACE_STD + + +245 #ifdeà +__USE_MISC + + +252  + `fæush_uÆocked + ( +FILE + * +__¡»am +); + +255 #ifdeà +__USE_GNU + + +262  + `fþo£®l + (); + +266 +__BEGIN_NAMESPACE_STD + + +267 #iâdeà +__USE_FILE_OFFSET64 + + +272 +FILE + * + $fݒ + (cÚ¡ * +__»¡riù + +__fž’ame +, + +273 cÚ¡ * +__»¡riù + +__modes +è +__wur +; + +278 +FILE + * + $äeݒ + (cÚ¡ * +__»¡riù + +__fž’ame +, + +279 cÚ¡ * +__»¡riù + +__modes +, + +280 +FILE + * +__»¡riù + +__¡»am +è +__wur +; + +282 #ifdeà +__REDIRECT + + +283 +FILE + * + `__REDIRECT + ( +fݒ +, (cÚ¡ * +__»¡riù + +__fž’ame +, + +284 cÚ¡ * +__»¡riù + +__modes +), +fݒ64 +) + +285 +__wur +; + +286 +FILE + * + `__REDIRECT + ( +äeݒ +, (cÚ¡ * +__»¡riù + +__fž’ame +, + +287 cÚ¡ * +__»¡riù + +__modes +, + +288 +FILE + * +__»¡riù + +__¡»am +), +äeݒ64 +) + +289 +__wur +; + +291  + #fݒ + +fݒ64 + + + ) + +292  + #äeݒ + +äeݒ64 + + + ) + +295 +__END_NAMESPACE_STD + + +296 #ifdeà +__USE_LARGEFILE64 + + +297 +FILE + * + $fݒ64 + (cÚ¡ * +__»¡riù + +__fž’ame +, + +298 cÚ¡ * +__»¡riù + +__modes +è +__wur +; + +299 +FILE + * + $äeݒ64 + (cÚ¡ * +__»¡riù + +__fž’ame +, + +300 cÚ¡ * +__»¡riù + +__modes +, + +301 +FILE + * +__»¡riù + +__¡»am +è +__wur +; + +304 #ifdef +__USE_POSIX + + +306 +FILE + * + $fdݒ + ( +__fd +, cÚ¡ * +__modes +è +__THROW + +__wur +; + +309 #ifdef +__USE_GNU + + +312 +FILE + * + $fݒcook› + (* +__»¡riù + +__magic_cook› +, + +313 cÚ¡ * +__»¡riù + +__modes +, + +314 +_IO_cook›_io_funùiÚs_t + +__io_funcs +è +__THROW + +__wur +; + +317 #ifdeà +__USE_XOPEN2K8 + + +319 +FILE + * + $fmemݒ + (* +__s +, +size_t + +__Ën +, cÚ¡ * +__modes +) + +320 +__THROW + +__wur +; + +325 +FILE + * + $ݒ_mem¡»am + (** +__buæoc +, +size_t + * +__siz–oc +è +__THROW + +__wur +; + +329 +__BEGIN_NAMESPACE_STD + + +332  + $£tbuf + ( +FILE + * +__»¡riù + +__¡»am +, *__»¡riù +__buf +è +__THROW +; + +336  + $£tvbuf + ( +FILE + * +__»¡riù + +__¡»am +, *__»¡riù +__buf +, + +337  +__modes +, +size_t + +__n +è +__THROW +; + +338 +__END_NAMESPACE_STD + + +340 #ifdef +__USE_BSD + + +343  + $£tbufãr + ( +FILE + * +__»¡riù + +__¡»am +, *__»¡riù +__buf +, + +344 +size_t + +__size +è +__THROW +; + +347  + $£Žšebuf + ( +FILE + * +__¡»am +è +__THROW +; + +351 +__BEGIN_NAMESPACE_STD + + +356  + `årštf + ( +FILE + * +__»¡riù + +__¡»am +, + +357 cÚ¡ * +__»¡riù + +__fÜm© +, ...); + +362  + `´štf + (cÚ¡ * +__»¡riù + +__fÜm© +, ...); + +364  + $¥rštf + (* +__»¡riù + +__s +, + +365 cÚ¡ * +__»¡riù + +__fÜm© +, ...è +__THROWNL +; + +371  + `vårštf + ( +FILE + * +__»¡riù + +__s +, cÚ¡ *__»¡riù +__fÜm© +, + +372 +_G_va_li¡ + +__¬g +); + +377  + `v´štf + (cÚ¡ * +__»¡riù + +__fÜm© +, +_G_va_li¡ + +__¬g +); + +379  + $v¥rštf + (* +__»¡riù + +__s +, cÚ¡ *__»¡riù +__fÜm© +, + +380 +_G_va_li¡ + +__¬g +è +__THROWNL +; + +381 +__END_NAMESPACE_STD + + +383 #ià +defšed + +__USE_BSD + || defšed +__USE_ISOC99 + || defšed +__USE_UNIX98 + + +384 +__BEGIN_NAMESPACE_C99 + + +386  + $¢´štf + (* +__»¡riù + +__s +, +size_t + +__maxËn +, + +387 cÚ¡ * +__»¡riù + +__fÜm© +, ...) + +388 +__THROWNL + + `__©Œibu‹__ + (( + `__fÜm©__ + ( +__´štf__ +, 3, 4))); + +390  + $v¢´štf + (* +__»¡riù + +__s +, +size_t + +__maxËn +, + +391 cÚ¡ * +__»¡riù + +__fÜm© +, +_G_va_li¡ + +__¬g +) + +392 +__THROWNL + + `__©Œibu‹__ + (( + `__fÜm©__ + ( +__´štf__ +, 3, 0))); + +393 +__END_NAMESPACE_C99 + + +396 #ifdeà +__USE_GNU + + +399  + $va¥rštf + (** +__»¡riù + +__±r +, cÚ¡ *__»¡riù +__f +, + +400 +_G_va_li¡ + +__¬g +) + +401 +__THROWNL + + `__©Œibu‹__ + (( + $__fÜm©__ + ( +__´štf__ +, 2, 0))è +__wur +; + +402  + $__a¥rštf + (** +__»¡riù + +__±r +, + +403 cÚ¡ * +__»¡riù + +__fmt +, ...) + +404 +__THROWNL + + `__©Œibu‹__ + (( + $__fÜm©__ + ( +__´štf__ +, 2, 3))è +__wur +; + +405  + $a¥rštf + (** +__»¡riù + +__±r +, + +406 cÚ¡ * +__»¡riù + +__fmt +, ...) + +407 +__THROWNL + + `__©Œibu‹__ + (( + $__fÜm©__ + ( +__´štf__ +, 2, 3))è +__wur +; + +410 #ifdeà +__USE_XOPEN2K8 + + +412  + $vd´štf + ( +__fd +, cÚ¡ * +__»¡riù + +__fmt +, + +413 +_G_va_li¡ + +__¬g +) + +414 + `__©Œibu‹__ + (( + `__fÜm©__ + ( +__´štf__ +, 2, 0))); + +415  + $d´štf + ( +__fd +, cÚ¡ * +__»¡riù + +__fmt +, ...) + +416 + `__©Œibu‹__ + (( + `__fÜm©__ + ( +__´štf__ +, 2, 3))); + +420 +__BEGIN_NAMESPACE_STD + + +425  + $fsÿnf + ( +FILE + * +__»¡riù + +__¡»am +, + +426 cÚ¡ * +__»¡riù + +__fÜm© +, ...è +__wur +; + +431  + $sÿnf + (cÚ¡ * +__»¡riù + +__fÜm© +, ...è +__wur +; + +433  + $ssÿnf + (cÚ¡ * +__»¡riù + +__s +, + +434 cÚ¡ * +__»¡riù + +__fÜm© +, ...è +__THROW +; + +436 #ià +defšed + +__USE_ISOC99 + && !defšed +__USE_GNU + \ + +437 && (! +defšed + +__LDBL_COMPAT + || !defšed +__REDIRECT +) \ + +438 && ( +defšed + +__STRICT_ANSI__ + || defšed +__USE_XOPEN2K +) + +439 #ifdeà +__REDIRECT + + +443  + `__REDIRECT + ( +fsÿnf +, ( +FILE + * +__»¡riù + +__¡»am +, + +444 cÚ¡ * +__»¡riù + +__fÜm© +, ...), + +445 +__isoc99_fsÿnf +è +__wur +; + +446  + `__REDIRECT + ( +sÿnf +, (cÚ¡ * +__»¡riù + +__fÜm© +, ...), + +447 +__isoc99_sÿnf +è +__wur +; + +448  + `__REDIRECT_NTH + ( +ssÿnf +, (cÚ¡ * +__»¡riù + +__s +, + +449 cÚ¡ * +__»¡riù + +__fÜm© +, ...), + +450 +__isoc99_ssÿnf +); + +452  + $__isoc99_fsÿnf + ( +FILE + * +__»¡riù + +__¡»am +, + +453 cÚ¡ * +__»¡riù + +__fÜm© +, ...è +__wur +; + +454  + $__isoc99_sÿnf + (cÚ¡ * +__»¡riù + +__fÜm© +, ...è +__wur +; + +455  + $__isoc99_ssÿnf + (cÚ¡ * +__»¡riù + +__s +, + +456 cÚ¡ * +__»¡riù + +__fÜm© +, ...è +__THROW +; + +457  + #fsÿnf + +__isoc99_fsÿnf + + + ) + +458  + #sÿnf + +__isoc99_sÿnf + + + ) + +459  + #ssÿnf + +__isoc99_ssÿnf + + + ) + +463 +__END_NAMESPACE_STD + + +465 #ifdef +__USE_ISOC99 + + +466 +__BEGIN_NAMESPACE_C99 + + +471  + $vfsÿnf + ( +FILE + * +__»¡riù + +__s +, cÚ¡ *__»¡riù +__fÜm© +, + +472 +_G_va_li¡ + +__¬g +) + +473 + `__©Œibu‹__ + (( + $__fÜm©__ + ( +__sÿnf__ +, 2, 0))è +__wur +; + +479  + $vsÿnf + (cÚ¡ * +__»¡riù + +__fÜm© +, +_G_va_li¡ + +__¬g +) + +480 + `__©Œibu‹__ + (( + $__fÜm©__ + ( +__sÿnf__ +, 1, 0))è +__wur +; + +483  + $vssÿnf + (cÚ¡ * +__»¡riù + +__s +, + +484 cÚ¡ * +__»¡riù + +__fÜm© +, +_G_va_li¡ + +__¬g +) + +485 +__THROW + + `__©Œibu‹__ + (( + `__fÜm©__ + ( +__sÿnf__ +, 2, 0))); + +487 #ià! +defšed + +__USE_GNU + \ + +488 && (! +defšed + +__LDBL_COMPAT + || !defšed +__REDIRECT +) \ + +489 && ( +defšed + +__STRICT_ANSI__ + || defšed +__USE_XOPEN2K +) + +490 #ifdeà +__REDIRECT + + +494  + `__REDIRECT + ( +vfsÿnf +, + +495 ( +FILE + * +__»¡riù + +__s +, + +496 cÚ¡ * +__»¡riù + +__fÜm© +, +_G_va_li¡ + +__¬g +), + +497 +__isoc99_vfsÿnf +) + +498 + `__©Œibu‹__ + (( + $__fÜm©__ + ( +__sÿnf__ +, 2, 0))è +__wur +; + +499  + `__REDIRECT + ( +vsÿnf +, (cÚ¡ * +__»¡riù + +__fÜm© +, + +500 +_G_va_li¡ + +__¬g +), +__isoc99_vsÿnf +) + +501 + `__©Œibu‹__ + (( + $__fÜm©__ + ( +__sÿnf__ +, 1, 0))è +__wur +; + +502  + `__REDIRECT_NTH + ( +vssÿnf +, + +503 (cÚ¡ * +__»¡riù + +__s +, + +504 cÚ¡ * +__»¡riù + +__fÜm© +, + +505 +_G_va_li¡ + +__¬g +), +__isoc99_vssÿnf +) + +506 + `__©Œibu‹__ + (( + `__fÜm©__ + ( +__sÿnf__ +, 2, 0))); + +508  + $__isoc99_vfsÿnf + ( +FILE + * +__»¡riù + +__s +, + +509 cÚ¡ * +__»¡riù + +__fÜm© +, + +510 +_G_va_li¡ + +__¬g +è +__wur +; + +511  + $__isoc99_vsÿnf + (cÚ¡ * +__»¡riù + +__fÜm© +, + +512 +_G_va_li¡ + +__¬g +è +__wur +; + +513  + $__isoc99_vssÿnf + (cÚ¡ * +__»¡riù + +__s +, + +514 cÚ¡ * +__»¡riù + +__fÜm© +, + +515 +_G_va_li¡ + +__¬g +è +__THROW +; + +516  + #vfsÿnf + +__isoc99_vfsÿnf + + + ) + +517  + #vsÿnf + +__isoc99_vsÿnf + + + ) + +518  + #vssÿnf + +__isoc99_vssÿnf + + + ) + +522 +__END_NAMESPACE_C99 + + +526 +__BEGIN_NAMESPACE_STD + + +531  + `fg‘c + ( +FILE + * +__¡»am +); + +532  + `g‘c + ( +FILE + * +__¡»am +); + +538  + `g‘ch¬ + (); + +539 +__END_NAMESPACE_STD + + +543  + #g‘c +( +_å +è + `_IO_g‘c + (_å) + + ) + +545 #ià +defšed + +__USE_POSIX + || defšed +__USE_MISC + + +550  + `g‘c_uÆocked + ( +FILE + * +__¡»am +); + +551  + `g‘ch¬_uÆocked + (); + +554 #ifdeà +__USE_MISC + + +561  + `fg‘c_uÆocked + ( +FILE + * +__¡»am +); + +565 +__BEGIN_NAMESPACE_STD + + +573  + `åutc + ( +__c +, +FILE + * +__¡»am +); + +574  + `putc + ( +__c +, +FILE + * +__¡»am +); + +580  + `putch¬ + ( +__c +); + +581 +__END_NAMESPACE_STD + + +585  + #putc +( +_ch +, +_å +è + `_IO_putc + (_ch, _å) + + ) + +587 #ifdeà +__USE_MISC + + +594  + `åutc_uÆocked + ( +__c +, +FILE + * +__¡»am +); + +597 #ià +defšed + +__USE_POSIX + || defšed +__USE_MISC + + +602  + `putc_uÆocked + ( +__c +, +FILE + * +__¡»am +); + +603  + `putch¬_uÆocked + ( +__c +); + +607 #ià +defšed + +__USE_SVID + || defšed +__USE_MISC + \ + +608 || ( +defšed + +__USE_XOPEN + && !defšed +__USE_XOPEN2K +) + +610  + `g‘w + ( +FILE + * +__¡»am +); + +613  + `putw + ( +__w +, +FILE + * +__¡»am +); + +617 +__BEGIN_NAMESPACE_STD + + +622 * + $fg‘s + (* +__»¡riù + +__s +,  +__n +, +FILE + *__»¡riù +__¡»am +) + +623 +__wur +; + +625 #ià! +defšed + +__USE_ISOC11 + \ + +626 || ( +defšed + +__ýlu¥lus + && __cplusplus <= 201103L) + +638 * + $g‘s + (* +__s +è +__wur + +__©Œibu‹_d•»ÿ‹d__ +; + +640 +__END_NAMESPACE_STD + + +642 #ifdeà +__USE_GNU + + +649 * + $fg‘s_uÆocked + (* +__»¡riù + +__s +,  +__n +, + +650 +FILE + * +__»¡riù + +__¡»am +è +__wur +; + +654 #ifdef +__USE_XOPEN2K8 + + +665 +_IO_ssize_t + + $__g‘d–im + (** +__»¡riù + +__lš•Œ +, + +666 +size_t + * +__»¡riù + +__n +,  +__d–im™” +, + +667 +FILE + * +__»¡riù + +__¡»am +è +__wur +; + +668 +_IO_ssize_t + + $g‘d–im + (** +__»¡riù + +__lš•Œ +, + +669 +size_t + * +__»¡riù + +__n +,  +__d–im™” +, + +670 +FILE + * +__»¡riù + +__¡»am +è +__wur +; + +678 +_IO_ssize_t + + $g‘lše + (** +__»¡riù + +__lš•Œ +, + +679 +size_t + * +__»¡riù + +__n +, + +680 +FILE + * +__»¡riù + +__¡»am +è +__wur +; + +684 +__BEGIN_NAMESPACE_STD + + +689  + `åuts + (cÚ¡ * +__»¡riù + +__s +, +FILE + *__»¡riù +__¡»am +); + +695  + `puts + (cÚ¡ * +__s +); + +702  + `ung‘c + ( +__c +, +FILE + * +__¡»am +); + +709 +size_t + + $ä—d + (* +__»¡riù + +__±r +, +size_t + +__size +, + +710 +size_t + +__n +, +FILE + * +__»¡riù + +__¡»am +è +__wur +; + +715 +size_t + + `fwr™e + (cÚ¡ * +__»¡riù + +__±r +, size_ˆ +__size +, + +716 +size_t + +__n +, +FILE + * +__»¡riù + +__s +); + +717 +__END_NAMESPACE_STD + + +719 #ifdeà +__USE_GNU + + +726  + `åuts_uÆocked + (cÚ¡ * +__»¡riù + +__s +, + +727 +FILE + * +__»¡riù + +__¡»am +); + +730 #ifdeà +__USE_MISC + + +737 +size_t + + $ä—d_uÆocked + (* +__»¡riù + +__±r +, +size_t + +__size +, + +738 +size_t + +__n +, +FILE + * +__»¡riù + +__¡»am +è +__wur +; + +739 +size_t + + `fwr™e_uÆocked + (cÚ¡ * +__»¡riù + +__±r +, size_ˆ +__size +, + +740 +size_t + +__n +, +FILE + * +__»¡riù + +__¡»am +); + +744 +__BEGIN_NAMESPACE_STD + + +749  + `f£ek + ( +FILE + * +__¡»am +,  +__off +,  +__wh’û +); + +754  + $á–l + ( +FILE + * +__¡»am +è +__wur +; + +759  + `»wšd + ( +FILE + * +__¡»am +); + +760 +__END_NAMESPACE_STD + + +767 #ià +defšed + +__USE_LARGEFILE + || defšed +__USE_XOPEN2K + + +768 #iâdeà +__USE_FILE_OFFSET64 + + +773  + `f£eko + ( +FILE + * +__¡»am +, +__off_t + +__off +,  +__wh’û +); + +778 +__off_t + + $á–lo + ( +FILE + * +__¡»am +è +__wur +; + +780 #ifdeà +__REDIRECT + + +781  + `__REDIRECT + ( +f£eko +, + +782 ( +FILE + * +__¡»am +, +__off64_t + +__off +,  +__wh’û +), + +783 +f£eko64 +); + +784 +__off64_t + + `__REDIRECT + ( +á–lo +, ( +FILE + * +__¡»am +), +á–lo64 +); + +786  + #f£eko + +f£eko64 + + + ) + +787  + #á–lo + +á–lo64 + + + ) + +792 +__BEGIN_NAMESPACE_STD + + +793 #iâdeà +__USE_FILE_OFFSET64 + + +798  + `fg‘pos + ( +FILE + * +__»¡riù + +__¡»am +, +åos_t + *__»¡riù +__pos +); + +803  + `f£os + ( +FILE + * +__¡»am +, cÚ¡ +åos_t + * +__pos +); + +805 #ifdeà +__REDIRECT + + +806  + `__REDIRECT + ( +fg‘pos +, ( +FILE + * +__»¡riù + +__¡»am +, + +807 +åos_t + * +__»¡riù + +__pos +), +fg‘pos64 +); + +808  + `__REDIRECT + ( +f£os +, + +809 ( +FILE + * +__¡»am +, cÚ¡ +åos_t + * +__pos +), +f£os64 +); + +811  + #fg‘pos + +fg‘pos64 + + + ) + +812  + #f£os + +f£os64 + + + ) + +815 +__END_NAMESPACE_STD + + +817 #ifdeà +__USE_LARGEFILE64 + + +818  + `f£eko64 + ( +FILE + * +__¡»am +, +__off64_t + +__off +,  +__wh’û +); + +819 +__off64_t + + $á–lo64 + ( +FILE + * +__¡»am +è +__wur +; + +820  + `fg‘pos64 + ( +FILE + * +__»¡riù + +__¡»am +, +åos64_t + *__»¡riù +__pos +); + +821  + `f£os64 + ( +FILE + * +__¡»am +, cÚ¡ +åos64_t + * +__pos +); + +824 +__BEGIN_NAMESPACE_STD + + +826  + $þ—»¼ + ( +FILE + * +__¡»am +è +__THROW +; + +828  + $ãof + ( +FILE + * +__¡»am +è +__THROW + +__wur +; + +830  + $ã¼Ü + ( +FILE + * +__¡»am +è +__THROW + +__wur +; + +831 +__END_NAMESPACE_STD + + +833 #ifdeà +__USE_MISC + + +835  + $þ—»¼_uÆocked + ( +FILE + * +__¡»am +è +__THROW +; + +836  + $ãof_uÆocked + ( +FILE + * +__¡»am +è +__THROW + +__wur +; + +837  + $ã¼Ü_uÆocked + ( +FILE + * +__¡»am +è +__THROW + +__wur +; + +841 +__BEGIN_NAMESPACE_STD + + +846  + `³¼Ü + (cÚ¡ * +__s +); + +847 +__END_NAMESPACE_STD + + +853  + ~ + +856 #ifdef +__USE_POSIX + + +858  + $fž’o + ( +FILE + * +__¡»am +è +__THROW + +__wur +; + +861 #ifdeà +__USE_MISC + + +863  + $fž’o_uÆocked + ( +FILE + * +__¡»am +è +__THROW + +__wur +; + +867 #ià( +defšed + +__USE_POSIX2 + || defšed +__USE_SVID + || defšed +__USE_BSD + || \ + +868 +defšed + +__USE_MISC +) + +873 +FILE + * + $pݒ + (cÚ¡ * +__commªd +, cÚ¡ * +__modes +è +__wur +; + +879  + `pþo£ + ( +FILE + * +__¡»am +); + +883 #ifdef +__USE_POSIX + + +885 * + $ù”mid + (* +__s +è +__THROW +; + +889 #ifdeà +__USE_XOPEN + + +891 * + `cu£rid + (* +__s +); + +895 #ifdef +__USE_GNU + + +896  +ob¡ack +; + +899  + $ob¡ack_´štf + ( +ob¡ack + * +__»¡riù + +__ob¡ack +, + +900 cÚ¡ * +__»¡riù + +__fÜm© +, ...) + +901 +__THROWNL + + `__©Œibu‹__ + (( + `__fÜm©__ + ( +__´štf__ +, 2, 3))); + +902  + $ob¡ack_v´štf + ( +ob¡ack + * +__»¡riù + +__ob¡ack +, + +903 cÚ¡ * +__»¡riù + +__fÜm© +, + +904 +_G_va_li¡ + +__¬gs +) + +905 +__THROWNL + + `__©Œibu‹__ + (( + `__fÜm©__ + ( +__´štf__ +, 2, 0))); + +909 #ià +defšed + +__USE_POSIX + || defšed +__USE_MISC + + +913  + $æockfže + ( +FILE + * +__¡»am +è +__THROW +; + +917  + $árylockfže + ( +FILE + * +__¡»am +è +__THROW + +__wur +; + +920  + $fuÆockfže + ( +FILE + * +__¡»am +è +__THROW +; + +923 #ià +defšed + +__USE_XOPEN + && !defšed +__USE_XOPEN2K + && !defšed +__USE_GNU + + +927  + #__Ãed_g‘Ýt + + + ) + +928  + ~ + +933 #ifdeà +__USE_EXTERN_INLINES + + +934  + ~ + +936 #ià +__USE_FORTIFY_LEVEL + > 0 && +defšed + +__ex‹º_®ways_šlše + + +937  + ~ + +939 #ifdeà +__LDBL_COMPAT + + +940  + ~ + +943 +__END_DECLS + + + @/usr/include/stdlib.h + +22 #iâdef +_STDLIB_H + + +24  + ~<ã©u»s.h +> + +27  + #__Ãed_size_t + + + ) + +28 #iâdeà +__Ãed_m®loc_ªd_ÿÎoc + + +29  + #__Ãed_wch¬_t + + + ) + +30  + #__Ãed_NULL + + + ) + +32  + ~<¡ddef.h +> + +34 + g__BEGIN_DECLS + + +36 #iâdeà +__Ãed_m®loc_ªd_ÿÎoc + + +37  + #_STDLIB_H + 1 + + ) + +39 #ià( +defšed + +__USE_XOPEN + || defšed +__USE_XOPEN2K8 +è&& !defšed +_SYS_WAIT_H + + +41  + ~ + +42  + ~ + +44 #ifdeà +__USE_BSD + + +49 #ià +defšed + +__GNUC__ + && !defšed +__ýlu¥lus + + +50  + #__WAIT_INT +( +¡©us +) \ + +51 ( + `__ex‹nsiÚ__ + (((uniÚ { + `__ty³of +( +¡©us +è +__š +;  +__i +; }) \ + +52 { . +__š + = ( +¡©us +è}). +__i +)) + + ) + +54  + #__WAIT_INT +( +¡©us +è(*(*è&(¡©us)) + + ) + +62 #ià! +defšed + +__GNUC__ + || __GNUC__ < 2 || defšed +__ýlu¥lus + + +63  + #__WAIT_STATUS + * + + ) + +64  + #__WAIT_STATUS_DEFN + * + + ) + +69  +wa™ + * + m__u±r +; + +70 * + m__Œ +; + +71 } + t__WAIT_STATUS + + t__©Œibu‹__ + (( + t__Œª¥¬’t_uniÚ__ +)); + +72  + #__WAIT_STATUS_DEFN + * + + ) + +77  + #__WAIT_INT +( +¡©us +è(¡©us) + + ) + +78  + #__WAIT_STATUS + * + + ) + +79  + #__WAIT_STATUS_DEFN + * + + ) + +84  + #WEXITSTATUS +( +¡©us +è + `__WEXITSTATUS + ( + `__WAIT_INT + (¡©us)) + + ) + +85  + #WTERMSIG +( +¡©us +è + `__WTERMSIG + ( + `__WAIT_INT + (¡©us)) + + ) + +86  + #WSTOPSIG +( +¡©us +è + `__WSTOPSIG + ( + `__WAIT_INT + (¡©us)) + + ) + +87  + #WIFEXITED +( +¡©us +è + `__WIFEXITED + ( + `__WAIT_INT + (¡©us)) + + ) + +88  + #WIFSIGNALED +( +¡©us +è + `__WIFSIGNALED + ( + `__WAIT_INT + (¡©us)) + + ) + +89  + #WIFSTOPPED +( +¡©us +è + `__WIFSTOPPED + ( + `__WAIT_INT + (¡©us)) + + ) + +90 #ifdeà +__WIFCONTINUED + + +91  + #WIFCONTINUED +( +¡©us +è + `__WIFCONTINUED + ( + `__WAIT_INT + (¡©us)) + + ) + +95 +__BEGIN_NAMESPACE_STD + + +99  + mquÙ +; + +100  + m»m +; + +101 } + tdiv_t +; + +104 #iâdeà +__ldiv_t_defšed + + +107  + mquÙ +; + +108  + m»m +; + +109 } + tldiv_t +; + +110  + #__ldiv_t_defšed + 1 + + ) + +112 + g__END_NAMESPACE_STD + + +114 #ià +defšed + +__USE_ISOC99 + && !defšed +__Îdiv_t_defšed + + +115 +__BEGIN_NAMESPACE_C99 + + +117 +__ex‹nsiÚ__ + struct + +119  + mquÙ +; + +120  + m»m +; + +121 } + tÎdiv_t +; + +122  + #__Îdiv_t_defšed + 1 + + ) + +123 + g__END_NAMESPACE_C99 + + +128  + #RAND_MAX + 2147483647 + + ) + +133  + #EXIT_FAILURE + 1 + + ) + +134  + #EXIT_SUCCESS + 0 + + ) + +138  + #MB_CUR_MAX + ( + `__ùy³_g‘_mb_cur_max + ()) + + ) + +139 +size_t + + $__ùy³_g‘_mb_cur_max + (è +__THROW + +__wur +; + +142 +__BEGIN_NAMESPACE_STD + + +144  + $©of + (cÚ¡ * +__Ō +) + +145 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)è +__wur +; + +147  + $©oi + (cÚ¡ * +__Ō +) + +148 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)è +__wur +; + +150  + $©Þ + (cÚ¡ * +__Ō +) + +151 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)è +__wur +; + +152 +__END_NAMESPACE_STD + + +154 #ià +defšed + +__USE_ISOC99 + || defšed +__USE_MISC + + +155 +__BEGIN_NAMESPACE_C99 + + +157 +__ex‹nsiÚ__ +  + $©Þl + (cÚ¡ * +__Ō +) + +158 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)è +__wur +; + +159 +__END_NAMESPACE_C99 + + +162 +__BEGIN_NAMESPACE_STD + + +164  + $¡¹od + (cÚ¡ * +__»¡riù + +__Ō +, + +165 ** +__»¡riù + +__’d±r +) + +166 +__THROW + + `__nÚnuÎ + ((1)); + +167 +__END_NAMESPACE_STD + + +169 #ifdef +__USE_ISOC99 + + +170 +__BEGIN_NAMESPACE_C99 + + +172  + $¡¹of + (cÚ¡ * +__»¡riù + +__Ō +, + +173 ** +__»¡riù + +__’d±r +è +__THROW + + `__nÚnuÎ + ((1)); + +175  + $¡¹Þd + (cÚ¡ * +__»¡riù + +__Ō +, + +176 ** +__»¡riù + +__’d±r +) + +177 +__THROW + + `__nÚnuÎ + ((1)); + +178 +__END_NAMESPACE_C99 + + +181 +__BEGIN_NAMESPACE_STD + + +183  + $¡¹Þ + (cÚ¡ * +__»¡riù + +__Ō +, + +184 ** +__»¡riù + +__’d±r +,  +__ba£ +) + +185 +__THROW + + `__nÚnuÎ + ((1)); + +187  + $¡¹oul + (cÚ¡ * +__»¡riù + +__Ō +, + +188 ** +__»¡riù + +__’d±r +,  +__ba£ +) + +189 +__THROW + + `__nÚnuÎ + ((1)); + +190 +__END_NAMESPACE_STD + + +192 #ifdeà +__USE_BSD + + +194 +__ex‹nsiÚ__ + + +195  + $¡¹oq + (cÚ¡ * +__»¡riù + +__Ō +, + +196 ** +__»¡riù + +__’d±r +,  +__ba£ +) + +197 +__THROW + + `__nÚnuÎ + ((1)); + +199 +__ex‹nsiÚ__ + + +200  + $¡¹ouq + (cÚ¡ * +__»¡riù + +__Ō +, + +201 ** +__»¡riù + +__’d±r +,  +__ba£ +) + +202 +__THROW + + `__nÚnuÎ + ((1)); + +205 #ià +defšed + +__USE_ISOC99 + || defšed +__USE_MISC + + +206 +__BEGIN_NAMESPACE_C99 + + +208 +__ex‹nsiÚ__ + + +209  + $¡¹Þl + (cÚ¡ * +__»¡riù + +__Ō +, + +210 ** +__»¡riù + +__’d±r +,  +__ba£ +) + +211 +__THROW + + `__nÚnuÎ + ((1)); + +213 +__ex‹nsiÚ__ + + +214  + $¡¹ouÎ + (cÚ¡ * +__»¡riù + +__Ō +, + +215 ** +__»¡riù + +__’d±r +,  +__ba£ +) + +216 +__THROW + + `__nÚnuÎ + ((1)); + +217 +__END_NAMESPACE_C99 + + +221 #ifdeà +__USE_GNU + + +235  + ~ + +239  + $¡¹Þ_l + (cÚ¡ * +__»¡riù + +__Ō +, + +240 ** +__»¡riù + +__’d±r +,  +__ba£ +, + +241 +__loÿË_t + +__loc +è +__THROW + + `__nÚnuÎ + ((1, 4)); + +243  + $¡¹oul_l + (cÚ¡ * +__»¡riù + +__Ō +, + +244 ** +__»¡riù + +__’d±r +, + +245  +__ba£ +, +__loÿË_t + +__loc +) + +246 +__THROW + + `__nÚnuÎ + ((1, 4)); + +248 +__ex‹nsiÚ__ + + +249  + $¡¹Þl_l + (cÚ¡ * +__»¡riù + +__Ō +, + +250 ** +__»¡riù + +__’d±r +,  +__ba£ +, + +251 +__loÿË_t + +__loc +) + +252 +__THROW + + `__nÚnuÎ + ((1, 4)); + +254 +__ex‹nsiÚ__ + + +255  + $¡¹ouÎ_l + (cÚ¡ * +__»¡riù + +__Ō +, + +256 ** +__»¡riù + +__’d±r +, + +257  +__ba£ +, +__loÿË_t + +__loc +) + +258 +__THROW + + `__nÚnuÎ + ((1, 4)); + +260  + $¡¹od_l + (cÚ¡ * +__»¡riù + +__Ō +, + +261 ** +__»¡riù + +__’d±r +, +__loÿË_t + +__loc +) + +262 +__THROW + + `__nÚnuÎ + ((1, 3)); + +264  + $¡¹of_l + (cÚ¡ * +__»¡riù + +__Ō +, + +265 ** +__»¡riù + +__’d±r +, +__loÿË_t + +__loc +) + +266 +__THROW + + `__nÚnuÎ + ((1, 3)); + +268  + $¡¹Þd_l + (cÚ¡ * +__»¡riù + +__Ō +, + +269 ** +__»¡riù + +__’d±r +, + +270 +__loÿË_t + +__loc +) + +271 +__THROW + + `__nÚnuÎ + ((1, 3)); + +275 #ifdeà +__USE_EXTERN_INLINES + + +276 +__BEGIN_NAMESPACE_STD + + +277 +__ex‹º_šlše +  + +278 + `__NTH + ( + $©oi + (cÚ¡ * +__Ō +)) + +280  (è + `¡¹Þ + ( +__Ō +, (**è +NULL +, 10); + +281 + } +} + +282 +__ex‹º_šlše +  + +283 +__NTH + ( + $©Þ + (cÚ¡ * +__Ō +)) + +285  + `¡¹Þ + ( +__Ō +, (**è +NULL +, 10); + +286 + } +} + +287 + g__END_NAMESPACE_STD + + +289 #ià +defšed + +__USE_MISC + || defšed +__USE_ISOC99 + + +290 +__BEGIN_NAMESPACE_C99 + + +291 +__ex‹nsiÚ__ + +__ex‹º_šlše +  + +292 +__NTH + ( + $©Þl + (cÚ¡ * +__Ō +)) + +294  + `¡¹Þl + ( +__Ō +, (**è +NULL +, 10); + +295 + } +} + +296 + g__END_NAMESPACE_C99 + + +301 #ià +defšed + +__USE_SVID + || defšed +__USE_XOPEN_EXTENDED + + +305 * + $l64a + ( +__n +è +__THROW + +__wur +; + +308  + $a64l + (cÚ¡ * +__s +) + +309 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)è +__wur +; + +313 #ià +defšed + +__USE_SVID + || defšed +__USE_XOPEN_EXTENDED + || defšed +__USE_BSD + + +314  + ~ + +321  + $¿ndom + (è +__THROW +; + +324  + $¤ªdom + ( +__£ed +è +__THROW +; + +330 * + $𙡩e + ( +__£ed +, * +__¡©ebuf +, + +331 +size_t + +__¡©–’ +è +__THROW + + `__nÚnuÎ + ((2)); + +335 * + $£t¡©e + (* +__¡©ebuf +è +__THROW + + `__nÚnuÎ + ((1)); + +338 #ifdeà +__USE_MISC + + +343  + s¿ndom_d©a + + +345 +št32_t + * +åŒ +; + +346 +št32_t + * +½Œ +; + +347 +št32_t + * +¡©e +; + +348  +¿nd_ty³ +; + +349  +¿nd_deg +; + +350  +¿nd_£p +; + +351 +št32_t + * +’d_±r +; + +354  + $¿ndom_r + ( +¿ndom_d©a + * +__»¡riù + +__buf +, + +355 +št32_t + * +__»¡riù + +__»suÉ +è +__THROW + + `__nÚnuÎ + ((1, 2)); + +357  + $¤ªdom_r + ( +__£ed +,  +¿ndom_d©a + * +__buf +) + +358 +__THROW + + `__nÚnuÎ + ((2)); + +360  + $𙡩e_r + ( +__£ed +, * +__»¡riù + +__¡©ebuf +, + +361 +size_t + +__¡©–’ +, + +362  +¿ndom_d©a + * +__»¡riù + +__buf +) + +363 +__THROW + + `__nÚnuÎ + ((2, 4)); + +365  + $£t¡©e_r + (* +__»¡riù + +__¡©ebuf +, + +366  +¿ndom_d©a + * +__»¡riù + +__buf +) + +367 +__THROW + + `__nÚnuÎ + ((1, 2)); + +372 +__BEGIN_NAMESPACE_STD + + +374  + $¿nd + (è +__THROW +; + +376  + $¤ªd + ( +__£ed +è +__THROW +; + +377 +__END_NAMESPACE_STD + + +379 #ifdeà +__USE_POSIX + + +381  + $¿nd_r + (* +__£ed +è +__THROW +; + +385 #ià +defšed + +__USE_SVID + || defšed +__USE_XOPEN + + +389  + $d¿nd48 + (è +__THROW +; + +390  + $”ªd48 + ( +__xsubi +[3]è +__THROW + + `__nÚnuÎ + ((1)); + +393  + $̪d48 + (è +__THROW +; + +394  + $Īd48 + ( +__xsubi +[3]) + +395 +__THROW + + `__nÚnuÎ + ((1)); + +398  + $m¿nd48 + (è +__THROW +; + +399  + $j¿nd48 + ( +__xsubi +[3]) + +400 +__THROW + + `__nÚnuÎ + ((1)); + +403  + $¤ªd48 + ( +__£edv® +è +__THROW +; + +404 * + $£ed48 + ( +__£ed16v +[3]) + +405 +__THROW + + `__nÚnuÎ + ((1)); + +406  + $lcÚg48 + ( +__·¿m +[7]è +__THROW + + `__nÚnuÎ + ((1)); + +408 #ifdeà +__USE_MISC + + +412  + sd¿nd48_d©a + + +414  +__x +[3]; + +415  +__Þd_x +[3]; + +416  +__c +; + +417  +__š™ +; + +418 +__ex‹nsiÚ__ +  +__a +; + +423  + $d¿nd48_r + ( +d¿nd48_d©a + * +__»¡riù + +__bufãr +, + +424 * +__»¡riù + +__»suÉ +è +__THROW + + `__nÚnuÎ + ((1, 2)); + +425  + $”ªd48_r + ( +__xsubi +[3], + +426  +d¿nd48_d©a + * +__»¡riù + +__bufãr +, + +427 * +__»¡riù + +__»suÉ +è +__THROW + + `__nÚnuÎ + ((1, 2)); + +430  + $̪d48_r + ( +d¿nd48_d©a + * +__»¡riù + +__bufãr +, + +431 * +__»¡riù + +__»suÉ +) + +432 +__THROW + + `__nÚnuÎ + ((1, 2)); + +433  + $Īd48_r + ( +__xsubi +[3], + +434  +d¿nd48_d©a + * +__»¡riù + +__bufãr +, + +435 * +__»¡riù + +__»suÉ +) + +436 +__THROW + + `__nÚnuÎ + ((1, 2)); + +439  + $m¿nd48_r + ( +d¿nd48_d©a + * +__»¡riù + +__bufãr +, + +440 * +__»¡riù + +__»suÉ +) + +441 +__THROW + + `__nÚnuÎ + ((1, 2)); + +442  + $j¿nd48_r + ( +__xsubi +[3], + +443  +d¿nd48_d©a + * +__»¡riù + +__bufãr +, + +444 * +__»¡riù + +__»suÉ +) + +445 +__THROW + + `__nÚnuÎ + ((1, 2)); + +448  + $¤ªd48_r + ( +__£edv® +,  +d¿nd48_d©a + * +__bufãr +) + +449 +__THROW + + `__nÚnuÎ + ((2)); + +451  + $£ed48_r + ( +__£ed16v +[3], + +452  +d¿nd48_d©a + * +__bufãr +è +__THROW + + `__nÚnuÎ + ((1, 2)); + +454  + $lcÚg48_r + ( +__·¿m +[7], + +455  +d¿nd48_d©a + * +__bufãr +) + +456 +__THROW + + `__nÚnuÎ + ((1, 2)); + +462 #iâdeà +__m®loc_ªd_ÿÎoc_defšed + + +463  + #__m®loc_ªd_ÿÎoc_defšed + + + ) + +464 +__BEGIN_NAMESPACE_STD + + +466 * + $m®loc + ( +size_t + +__size +è +__THROW + +__©Œibu‹_m®loc__ + +__wur +; + +468 * + $ÿÎoc + ( +size_t + +__nmemb +, size_ˆ +__size +) + +469 +__THROW + +__©Œibu‹_m®loc__ + +__wur +; + +470 +__END_NAMESPACE_STD + + +473 #iâdeà +__Ãed_m®loc_ªd_ÿÎoc + + +474 +__BEGIN_NAMESPACE_STD + + +480 * + $»®loc + (* +__±r +, +size_t + +__size +) + +481 +__THROW + +__©Œibu‹_w¬n_unu£d_»suÉ__ +; + +483  + $ä“ + (* +__±r +è +__THROW +; + +484 +__END_NAMESPACE_STD + + +486 #ifdef +__USE_MISC + + +488  + $cä“ + (* +__±r +è +__THROW +; + +491 #ià +defšed + +__USE_GNU + || defšed +__USE_BSD + || defšed +__USE_MISC + + +492  + ~<®loÿ.h +> + +495 #ià( +defšed + +__USE_XOPEN_EXTENDED + && !defšed +__USE_XOPEN2K +) \ + +496 || +defšed + +__USE_BSD + + +498 * + $v®loc + ( +size_t + +__size +è +__THROW + +__©Œibu‹_m®loc__ + +__wur +; + +501 #ifdeà +__USE_XOPEN2K + + +503  + $posix_mem®ign + (** +__mem±r +, +size_t + +__®ignm’t +, size_ˆ +__size +) + +504 +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +507 #ifdeà +__USE_ISOC11 + + +509 * + $®igÃd_®loc + ( +size_t + +__®ignm’t +, size_ˆ +__size +) + +510 +__THROW + +__©Œibu‹_m®loc__ + + `__©Œibu‹_®loc_size__ + ((2)è +__wur +; + +513 +__BEGIN_NAMESPACE_STD + + +515  + $abÜt + (è +__THROW + + `__©Œibu‹__ + (( +__nܑuº__ +)); + +519  + `©ex™ + ((* +__func +è()è +__THROW + + `__nÚnuÎ + ((1)); + +521 #ià +defšed + +__USE_ISOC11 + || defšed +__USE_ISOCXX11 + + +523 #ifdeà +__ýlu¥lus + + +524 "C++"  + `©_quick_ex™ + ((* +__func +) ()) + +525 +__THROW + + `__asm + ("©_quick_ex™"è + `__nÚnuÎ + ((1)); + +527  + `©_quick_ex™ + ((* +__func +è()è +__THROW + + `__nÚnuÎ + ((1)); + +530 +__END_NAMESPACE_STD + + +532 #ifdef +__USE_MISC + + +535  + `Ú_ex™ + ((* +__func +è( +__¡©us +, * +__¬g +), *__arg) + +536 +__THROW + + `__nÚnuÎ + ((1)); + +539 +__BEGIN_NAMESPACE_STD + + +543  + $ex™ + ( +__¡©us +è +__THROW + + `__©Œibu‹__ + (( +__nܑuº__ +)); + +545 #ià +defšed + +__USE_ISOC11 + || defšed +__USE_ISOCXX11 + + +549  + $quick_ex™ + ( +__¡©us +è +__THROW + + `__©Œibu‹__ + (( +__nܑuº__ +)); + +551 +__END_NAMESPACE_STD + + +553 #ifdeà +__USE_ISOC99 + + +554 +__BEGIN_NAMESPACE_C99 + + +557  + $_Ex™ + ( +__¡©us +è +__THROW + + `__©Œibu‹__ + (( +__nܑuº__ +)); + +558 +__END_NAMESPACE_C99 + + +562 +__BEGIN_NAMESPACE_STD + + +564 * + $g‘’v + (cÚ¡ * +__Çme +è +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +565 +__END_NAMESPACE_STD + + +567 #ifdeà +__USE_GNU + + +570 * + $£cu»_g‘’v + (cÚ¡ * +__Çme +) + +571 +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +574 #ià +defšed + +__USE_SVID + || defšed +__USE_XOPEN + + +578  + $pu‹nv + (* +__¡ršg +è +__THROW + + `__nÚnuÎ + ((1)); + +581 #ià +defšed + +__USE_BSD + || defšed +__USE_XOPEN2K + + +584  + $£‹nv + (cÚ¡ * +__Çme +, cÚ¡ * +__v®ue +,  +__»¶aû +) + +585 +__THROW + + `__nÚnuÎ + ((2)); + +588  + $un£‹nv + (cÚ¡ * +__Çme +è +__THROW + + `__nÚnuÎ + ((1)); + +591 #ifdef +__USE_MISC + + +595  + $þ—»nv + (è +__THROW +; + +599 #ià +defšed + +__USE_MISC + \ + +600 || ( +defšed + +__USE_XOPEN_EXTENDED + && !defšed +__USE_XOPEN2K8 +) + +606 * + $mk‹mp + (* +__‹m¶©e +è +__THROW + + `__nÚnuÎ + ((1)); + +609 #ià +defšed + +__USE_MISC + || defšed +__USE_XOPEN_EXTENDED + \ + +610 || +defšed + +__USE_XOPEN2K8 + + +619 #iâdeà +__USE_FILE_OFFSET64 + + +620  + $mk¡emp + (* +__‹m¶©e +è + `__nÚnuÎ + ((1)è +__wur +; + +622 #ifdeà +__REDIRECT + + +623  + `__REDIRECT + ( +mk¡emp +, (* +__‹m¶©e +), +mk¡emp64 +) + +624 + `__nÚnuÎ + ((1)è +__wur +; + +626  + #mk¡emp + +mk¡emp64 + + + ) + +629 #ifdeà +__USE_LARGEFILE64 + + +630  + $mk¡emp64 + (* +__‹m¶©e +è + `__nÚnuÎ + ((1)è +__wur +; + +634 #ifdeà +__USE_MISC + + +641 #iâdeà +__USE_FILE_OFFSET64 + + +642  + $mk¡emps + (* +__‹m¶©e +,  +__suffixËn +è + `__nÚnuÎ + ((1)è +__wur +; + +644 #ifdeà +__REDIRECT + + +645  + `__REDIRECT + ( +mk¡emps +, (* +__‹m¶©e +,  +__suffixËn +), + +646 +mk¡emps64 +è + `__nÚnuÎ + ((1)è +__wur +; + +648  + #mk¡emps + +mk¡emps64 + + + ) + +651 #ifdeà +__USE_LARGEFILE64 + + +652  + $mk¡emps64 + (* +__‹m¶©e +,  +__suffixËn +) + +653 + `__nÚnuÎ + ((1)è +__wur +; + +657 #ià +defšed + +__USE_BSD + || defšed +__USE_XOPEN2K8 + + +663 * + $mkd‹mp + (* +__‹m¶©e +è +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +666 #ifdeà +__USE_GNU + + +673 #iâdeà +__USE_FILE_OFFSET64 + + +674  + $mko¡emp + (* +__‹m¶©e +,  +__æags +è + `__nÚnuÎ + ((1)è +__wur +; + +676 #ifdeà +__REDIRECT + + +677  + `__REDIRECT + ( +mko¡emp +, (* +__‹m¶©e +,  +__æags +), +mko¡emp64 +) + +678 + `__nÚnuÎ + ((1)è +__wur +; + +680  + #mko¡emp + +mko¡emp64 + + + ) + +683 #ifdeà +__USE_LARGEFILE64 + + +684  + $mko¡emp64 + (* +__‹m¶©e +,  +__æags +è + `__nÚnuÎ + ((1)è +__wur +; + +693 #iâdeà +__USE_FILE_OFFSET64 + + +694  + $mko¡emps + (* +__‹m¶©e +,  +__suffixËn +,  +__æags +) + +695 + `__nÚnuÎ + ((1)è +__wur +; + +697 #ifdeà +__REDIRECT + + +698  + `__REDIRECT + ( +mko¡emps +, (* +__‹m¶©e +,  +__suffixËn +, + +699  +__æags +), +mko¡emps64 +) + +700 + `__nÚnuÎ + ((1)è +__wur +; + +702  + #mko¡emps + +mko¡emps64 + + + ) + +705 #ifdeà +__USE_LARGEFILE64 + + +706  + $mko¡emps64 + (* +__‹m¶©e +,  +__suffixËn +,  +__æags +) + +707 + `__nÚnuÎ + ((1)è +__wur +; + +712 +__BEGIN_NAMESPACE_STD + + +717  + $sy¡em + (cÚ¡ * +__commªd +è +__wur +; + +718 +__END_NAMESPACE_STD + + +721 #ifdef +__USE_GNU + + +724 * + $ÿnÚiÿlize_fže_Çme + (cÚ¡ * +__Çme +) + +725 +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +728 #ià +defšed + +__USE_BSD + || defšed +__USE_XOPEN_EXTENDED + + +734 * + $»®·th + (cÚ¡ * +__»¡riù + +__Çme +, + +735 * +__»¡riù + +__»sÞved +è +__THROW + +__wur +; + +740 #iâdeà +__COMPAR_FN_T + + +741  + #__COMPAR_FN_T + + + ) + +742 (* + t__com·r_â_t +) (const *, const *); + +744 #ifdef +__USE_GNU + + +745  +__com·r_â_t + + tcom·risÚ_â_t +; + +748 #ifdeà +__USE_GNU + + +749 (* + t__com·r_d_â_t +) (const *, const *, *); + +752 +__BEGIN_NAMESPACE_STD + + +755 * + $b£¬ch + (cÚ¡ * +__key +, cÚ¡ * +__ba£ +, + +756 +size_t + +__nmemb +, size_ˆ +__size +, +__com·r_â_t + +__com·r +) + +757 + `__nÚnuÎ + ((1, 2, 5)è +__wur +; + +759 #ifdeà +__USE_EXTERN_INLINES + + +760  + ~ + +765  + $qsÜt + (* +__ba£ +, +size_t + +__nmemb +, size_ˆ +__size +, + +766 +__com·r_â_t + +__com·r +è + `__nÚnuÎ + ((1, 4)); + +767 #ifdeà +__USE_GNU + + +768  + $qsÜt_r + (* +__ba£ +, +size_t + +__nmemb +, size_ˆ +__size +, + +769 +__com·r_d_â_t + +__com·r +, * +__¬g +) + +770 + `__nÚnuÎ + ((1, 4)); + +775  + $abs + ( +__x +è +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)è +__wur +; + +776  + $Ïbs + ( +__x +è +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)è +__wur +; + +777 +__END_NAMESPACE_STD + + +779 #ifdeà +__USE_ISOC99 + + +780 +__ex‹nsiÚ__ +  + $Îabs + ( +__x +) + +781 +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)è +__wur +; + +785 +__BEGIN_NAMESPACE_STD + + +789 +div_t + + $div + ( +__num” +,  +__d’om +) + +790 +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)è +__wur +; + +791 +ldiv_t + + $ldiv + ( +__num” +,  +__d’om +) + +792 +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)è +__wur +; + +793 +__END_NAMESPACE_STD + + +795 #ifdeà +__USE_ISOC99 + + +796 +__BEGIN_NAMESPACE_C99 + + +797 +__ex‹nsiÚ__ + +Îdiv_t + + $Îdiv + ( +__num” +, + +798  +__d’om +) + +799 +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)è +__wur +; + +800 +__END_NAMESPACE_C99 + + +804 #ià( +defšed + +__USE_XOPEN_EXTENDED + && !defšed +__USE_XOPEN2K8 +) \ + +805 || +defšed + +__USE_SVID + + +812 * + $ecvt + ( +__v®ue +,  +__ndig™ +, * +__»¡riù + +__deýt +, + +813 * +__»¡riù + +__sign +è +__THROW + + `__nÚnuÎ + ((3, 4)è +__wur +; + +818 * + $fcvt + ( +__v®ue +,  +__ndig™ +, * +__»¡riù + +__deýt +, + +819 * +__»¡riù + +__sign +è +__THROW + + `__nÚnuÎ + ((3, 4)è +__wur +; + +824 * + $gcvt + ( +__v®ue +,  +__ndig™ +, * +__buf +) + +825 +__THROW + + `__nÚnuÎ + ((3)è +__wur +; + +828 #ifdeà +__USE_MISC + + +830 * + $qecvt + ( +__v®ue +,  +__ndig™ +, + +831 * +__»¡riù + +__deýt +, *__»¡riù +__sign +) + +832 +__THROW + + `__nÚnuÎ + ((3, 4)è +__wur +; + +833 * + $qfcvt + ( +__v®ue +,  +__ndig™ +, + +834 * +__»¡riù + +__deýt +, *__»¡riù +__sign +) + +835 +__THROW + + `__nÚnuÎ + ((3, 4)è +__wur +; + +836 * + $qgcvt + ( +__v®ue +,  +__ndig™ +, * +__buf +) + +837 +__THROW + + `__nÚnuÎ + ((3)è +__wur +; + +842  + $ecvt_r + ( +__v®ue +,  +__ndig™ +, * +__»¡riù + +__deýt +, + +843 * +__»¡riù + +__sign +, *__»¡riù +__buf +, + +844 +size_t + +__Ën +è +__THROW + + `__nÚnuÎ + ((3, 4, 5)); + +845  + $fcvt_r + ( +__v®ue +,  +__ndig™ +, * +__»¡riù + +__deýt +, + +846 * +__»¡riù + +__sign +, *__»¡riù +__buf +, + +847 +size_t + +__Ën +è +__THROW + + `__nÚnuÎ + ((3, 4, 5)); + +849  + $qecvt_r + ( +__v®ue +,  +__ndig™ +, + +850 * +__»¡riù + +__deýt +, *__»¡riù +__sign +, + +851 * +__»¡riù + +__buf +, +size_t + +__Ën +) + +852 +__THROW + + `__nÚnuÎ + ((3, 4, 5)); + +853  + $qfcvt_r + ( +__v®ue +,  +__ndig™ +, + +854 * +__»¡riù + +__deýt +, *__»¡riù +__sign +, + +855 * +__»¡riù + +__buf +, +size_t + +__Ën +) + +856 +__THROW + + `__nÚnuÎ + ((3, 4, 5)); + +860 +__BEGIN_NAMESPACE_STD + + +863  + $mbËn + (cÚ¡ * +__s +, +size_t + +__n +è +__THROW +; + +866  + $mbtowc + ( +wch¬_t + * +__»¡riù + +__pwc +, + +867 cÚ¡ * +__»¡riù + +__s +, +size_t + +__n +è +__THROW +; + +870  + $wùomb + (* +__s +, +wch¬_t + +__wch¬ +è +__THROW +; + +874 +size_t + + $mb¡owcs + ( +wch¬_t + * +__»¡riù + +__pwcs +, + +875 cÚ¡ * +__»¡riù + +__s +, +size_t + +__n +è +__THROW +; + +877 +size_t + + $wc¡ombs + (* +__»¡riù + +__s +, + +878 cÚ¡ +wch¬_t + * +__»¡riù + +__pwcs +, +size_t + +__n +) + +879 +__THROW +; + +880 +__END_NAMESPACE_STD + + +883 #ifdeà +__USE_SVID + + +888  + $½m©ch + (cÚ¡ * +__»¥Ú£ +è +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +892 #ià +defšed + +__USE_XOPEN_EXTENDED + || defšed +__USE_XOPEN2K8 + + +899  + $g‘subÝt + (** +__»¡riù + +__ÝtiÚp +, + +900 *cÚ¡ * +__»¡riù + +__tok’s +, + +901 ** +__»¡riù + +__v®u• +) + +902 +__THROW + + `__nÚnuÎ + ((1, 2, 3)è +__wur +; + +906 #ifdeà +__USE_XOPEN + + +908  + $£tkey + (cÚ¡ * +__key +è +__THROW + + `__nÚnuÎ + ((1)); + +914 #ifdeà +__USE_XOPEN2KXSI + + +916  + $posix_ݒ± + ( +__oæag +è +__wur +; + +919 #ifdeà +__USE_XOPEN + + +924  + $g¿Á± + ( +__fd +è +__THROW +; + +928  + $uÆock± + ( +__fd +è +__THROW +; + +933 * + $±¢ame + ( +__fd +è +__THROW + +__wur +; + +936 #ifdeà +__USE_GNU + + +940  + $±¢ame_r + ( +__fd +, * +__buf +, +size_t + +__buæ’ +) + +941 +__THROW + + `__nÚnuÎ + ((2)); + +944  + `g‘± + (); + +947 #ifdeà +__USE_BSD + + +951  + $g‘lßdavg + ( +__lßdavg +[],  +__ÃËm +) + +952 +__THROW + + `__nÚnuÎ + ((1)); + +955  + ~ + +958 #ià +__USE_FORTIFY_LEVEL + > 0 && +defšed + +__fÜtify_funùiÚ + + +959  + ~ + +961 #ifdeà +__LDBL_COMPAT + + +962  + ~ + +966 #undeà +__Ãed_m®loc_ªd_ÿÎoc + + +968 +__END_DECLS + + + @/usr/include/string.h + +22 #iâdef +_STRING_H + + +23  + #_STRING_H + 1 + + ) + +25  + ~<ã©u»s.h +> + +27 + g__BEGIN_DECLS + + +30  + #__Ãed_size_t + + + ) + +31  + #__Ãed_NULL + + + ) + +32  + ~<¡ddef.h +> + +39 #ià +defšed + +__ýlu¥lus + && (__ýlu¥lu >ð199711L || +__GNUC_PREREQ + (4, 4)) + +40  + #__CORRECT_ISO_CPP_STRING_H_PROTO + + + ) + +44 +__BEGIN_NAMESPACE_STD + + +46 * + $memýy + (* +__»¡riù + +__de¡ +, cÚ¡ *__»¡riù +__¤c +, + +47 +size_t + +__n +è +__THROW + + `__nÚnuÎ + ((1, 2)); + +50 * + $memmove + (* +__de¡ +, cÚ¡ * +__¤c +, +size_t + +__n +) + +51 +__THROW + + `__nÚnuÎ + ((1, 2)); + +52 +__END_NAMESPACE_STD + + +57 #ià +defšed + +__USE_SVID + || defšed +__USE_BSD + || defšed +__USE_XOPEN + + +58 * + $memcýy + (* +__»¡riù + +__de¡ +, cÚ¡ *__»¡riù +__¤c +, + +59  +__c +, +size_t + +__n +) + +60 +__THROW + + `__nÚnuÎ + ((1, 2)); + +64 +__BEGIN_NAMESPACE_STD + + +66 * + $mem£t + (* +__s +,  +__c +, +size_t + +__n +è +__THROW + + `__nÚnuÎ + ((1)); + +69  + $memcmp + (cÚ¡ * +__s1 +, cÚ¡ * +__s2 +, +size_t + +__n +) + +70 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +73 #ifdeà +__CORRECT_ISO_CPP_STRING_H_PROTO + + +76 * + `memchr + (* +__s +,  +__c +, +size_t + +__n +) + +77 +__THROW + + `__asm + ("memchr"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +78 cÚ¡ * + `memchr + (cÚ¡ * +__s +,  +__c +, +size_t + +__n +) + +79 +__THROW + + `__asm + ("memchr"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +81 #ifdeà +__OPTIMIZE__ + + +82 +__ex‹º_®ways_šlše + * + +83 + `memchr + (* +__s +,  +__c +, +size_t + +__n +è +__THROW + + +85  + `__bužtš_memchr + ( +__s +, +__c +, +__n +); + +88 +__ex‹º_®ways_šlše + const * + +89 + `memchr + (cÚ¡ * +__s +,  +__c +, +size_t + +__n +è +__THROW + + +91  + `__bužtš_memchr + ( +__s +, +__c +, +__n +); + +94 + } +} + +96 * + $memchr + (cÚ¡ * +__s +,  +__c +, +size_t + +__n +) + +97 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +99 +__END_NAMESPACE_STD + + +101 #ifdeà +__USE_GNU + + +104 #ifdeà +__CORRECT_ISO_CPP_STRING_H_PROTO + + +105 "C++" * + $¿wmemchr + (* +__s +,  +__c +) + +106 +__THROW + + `__asm + ("¿wmemchr"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +107 "C++" cÚ¡ * + $¿wmemchr + (cÚ¡ * +__s +,  +__c +) + +108 +__THROW + + `__asm + ("¿wmemchr"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +110 * + $¿wmemchr + (cÚ¡ * +__s +,  +__c +) + +111 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +115 #ifdeà +__CORRECT_ISO_CPP_STRING_H_PROTO + + +116 "C++" * + $memrchr + (* +__s +,  +__c +, +size_t + +__n +) + +117 +__THROW + + `__asm + ("memrchr"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +118 "C++" cÚ¡ * + $memrchr + (cÚ¡ * +__s +,  +__c +, +size_t + +__n +) + +119 +__THROW + + `__asm + ("memrchr"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +121 * + $memrchr + (cÚ¡ * +__s +,  +__c +, +size_t + +__n +) + +122 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +127 +__BEGIN_NAMESPACE_STD + + +129 * + $¡rýy + (* +__»¡riù + +__de¡ +, cÚ¡ *__»¡riù +__¤c +) + +130 +__THROW + + `__nÚnuÎ + ((1, 2)); + +132 * + $¡ºýy + (* +__»¡riù + +__de¡ +, + +133 cÚ¡ * +__»¡riù + +__¤c +, +size_t + +__n +) + +134 +__THROW + + `__nÚnuÎ + ((1, 2)); + +137 * + $¡rÿt + (* +__»¡riù + +__de¡ +, cÚ¡ *__»¡riù +__¤c +) + +138 +__THROW + + `__nÚnuÎ + ((1, 2)); + +140 * + $¡ºÿt + (* +__»¡riù + +__de¡ +, cÚ¡ *__»¡riù +__¤c +, + +141 +size_t + +__n +è +__THROW + + `__nÚnuÎ + ((1, 2)); + +144  + $¡rcmp + (cÚ¡ * +__s1 +, cÚ¡ * +__s2 +) + +145 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +147  + $¡ºcmp + (cÚ¡ * +__s1 +, cÚ¡ * +__s2 +, +size_t + +__n +) + +148 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +151  + $¡rcÞl + (cÚ¡ * +__s1 +, cÚ¡ * +__s2 +) + +152 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +154 +size_t + + $¡rxäm + (* +__»¡riù + +__de¡ +, + +155 cÚ¡ * +__»¡riù + +__¤c +, +size_t + +__n +) + +156 +__THROW + + `__nÚnuÎ + ((2)); + +157 +__END_NAMESPACE_STD + + +159 #ifdeà +__USE_XOPEN2K8 + + +163  + ~ + +166  + $¡rcÞl_l + (cÚ¡ * +__s1 +, cÚ¡ * +__s2 +, +__loÿË_t + +__l +) + +167 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2, 3)); + +169 +size_t + + $¡rxäm_l + (* +__de¡ +, cÚ¡ * +__¤c +, +size_t + +__n +, + +170 +__loÿË_t + +__l +è +__THROW + + `__nÚnuÎ + ((2, 4)); + +173 #ià +defšed + +__USE_SVID + || defšed +__USE_BSD + || defšed +__USE_XOPEN_EXTENDED + \ + +174 || +defšed + +__USE_XOPEN2K8 + + +176 * + $¡rdup + (cÚ¡ * +__s +) + +177 +__THROW + +__©Œibu‹_m®loc__ + + `__nÚnuÎ + ((1)); + +183 #ià +defšed + +__USE_XOPEN2K8 + + +184 * + $¡ºdup + (cÚ¡ * +__¡ršg +, +size_t + +__n +) + +185 +__THROW + +__©Œibu‹_m®loc__ + + `__nÚnuÎ + ((1)); + +188 #ià +defšed + +__USE_GNU + && defšed +__GNUC__ + + +190  + #¡rdu· +( +s +) \ + +191 ( +__ex‹nsiÚ__ + \ + +193 cÚ¡ * +__Þd + = ( +s +); \ + +194 +size_t + +__Ën + = + `¡¾’ + ( +__Þd +) + 1; \ + +195 * +__Ãw + = (*è + `__bužtš_®loÿ + ( +__Ën +); \ + +196 (*è + `memýy + ( +__Ãw +, +__Þd +, +__Ën +); \ + +197 + } +})) + + ) + +200  + #¡ºdu· +( +s +, +n +) \ + +201 ( +__ex‹nsiÚ__ + \ + +203 cÚ¡ * +__Þd + = ( +s +); \ + +204 +size_t + +__Ën + = + `¡ºËn + ( +__Þd +, ( +n +)); \ + +205 * +__Ãw + = (*è + `__bužtš_®loÿ + ( +__Ën + + 1); \ + +206 +__Ãw +[ +__Ën +] = '\0'; \ + +207 (*è + `memýy + ( +__Ãw +, +__Þd +, +__Ën +); \ + +208 })) + + ) + +211 + g__BEGIN_NAMESPACE_STD + + +213 #ifdeà +__CORRECT_ISO_CPP_STRING_H_PROTO + + +216 * +¡rchr + (* +__s +,  +__c +) + +217 +__THROW + +__asm + ("¡rchr"è +__©Œibu‹_pu»__ + +__nÚnuÎ + ((1)); + +218 cÚ¡ * +¡rchr + (cÚ¡ * +__s +,  +__c +) + +219 +__THROW + +__asm + ("¡rchr"è +__©Œibu‹_pu»__ + +__nÚnuÎ + ((1)); + +221 #ifdeà +__OPTIMIZE__ + + +222 +__ex‹º_®ways_šlše + * + +223 +¡rchr + (* +__s +,  +__c +è + g__THROW + + +225  +__bužtš_¡rchr + ( +__s +, +__c +); + +228 +__ex‹º_®ways_šlše + const * + +229 +¡rchr + (cÚ¡ * +__s +,  +__c +è + g__THROW + + +231  +__bužtš_¡rchr + ( +__s +, +__c +); + +236 * + $¡rchr + (cÚ¡ * +__s +,  +__c +) + +237 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +240 #ifdeà +__CORRECT_ISO_CPP_STRING_H_PROTO + + +243 * + `¡¼chr + (* +__s +,  +__c +) + +244 +__THROW + + `__asm + ("¡¼chr"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +245 cÚ¡ * + `¡¼chr + (cÚ¡ * +__s +,  +__c +) + +246 +__THROW + + `__asm + ("¡¼chr"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +248 #ifdeà +__OPTIMIZE__ + + +249 +__ex‹º_®ways_šlše + * + +250 + `¡¼chr + (* +__s +,  +__c +è +__THROW + + +252  + `__bužtš_¡¼chr + ( +__s +, +__c +); + +255 +__ex‹º_®ways_šlše + const * + +256 + `¡¼chr + (cÚ¡ * +__s +,  +__c +è +__THROW + + +258  + `__bužtš_¡¼chr + ( +__s +, +__c +); + +261 + } +} + +263 * + $¡¼chr + (cÚ¡ * +__s +,  +__c +) + +264 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +266 +__END_NAMESPACE_STD + + +268 #ifdeà +__USE_GNU + + +271 #ifdeà +__CORRECT_ISO_CPP_STRING_H_PROTO + + +272 "C++" * + $¡rchºul + (* +__s +,  +__c +) + +273 +__THROW + + `__asm + ("¡rchºul"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +274 "C++" cÚ¡ * + $¡rchºul + (cÚ¡ * +__s +,  +__c +) + +275 +__THROW + + `__asm + ("¡rchºul"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +277 * + $¡rchºul + (cÚ¡ * +__s +,  +__c +) + +278 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +282 +__BEGIN_NAMESPACE_STD + + +285 +size_t + + $¡rc¥n + (cÚ¡ * +__s +, cÚ¡ * +__»jeù +) + +286 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +289 +size_t + + $¡r¥n + (cÚ¡ * +__s +, cÚ¡ * +__acû± +) + +290 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +292 #ifdeà +__CORRECT_ISO_CPP_STRING_H_PROTO + + +295 * + `¡½brk + (* +__s +, cÚ¡ * +__acû± +) + +296 +__THROW + + `__asm + ("¡½brk"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +297 cÚ¡ * + `¡½brk + (cÚ¡ * +__s +, cÚ¡ * +__acû± +) + +298 +__THROW + + `__asm + ("¡½brk"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +300 #ifdeà +__OPTIMIZE__ + + +301 +__ex‹º_®ways_šlše + * + +302 + `¡½brk + (* +__s +, cÚ¡ * +__acû± +è +__THROW + + +304  + `__bužtš_¡½brk + ( +__s +, +__acû± +); + +307 +__ex‹º_®ways_šlše + const * + +308 + `¡½brk + (cÚ¡ * +__s +, cÚ¡ * +__acû± +è +__THROW + + +310  + `__bužtš_¡½brk + ( +__s +, +__acû± +); + +313 + } +} + +315 * + $¡½brk + (cÚ¡ * +__s +, cÚ¡ * +__acû± +) + +316 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +319 #ifdeà +__CORRECT_ISO_CPP_STRING_H_PROTO + + +322 * + `¡r¡r + (* +__hay¡ack +, cÚ¡ * +__ÃedË +) + +323 +__THROW + + `__asm + ("¡r¡r"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +324 cÚ¡ * + `¡r¡r + (cÚ¡ * +__hay¡ack +, cÚ¡ * +__ÃedË +) + +325 +__THROW + + `__asm + ("¡r¡r"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +327 #ifdeà +__OPTIMIZE__ + + +328 +__ex‹º_®ways_šlše + * + +329 + `¡r¡r + (* +__hay¡ack +, cÚ¡ * +__ÃedË +è +__THROW + + +331  + `__bužtš_¡r¡r + ( +__hay¡ack +, +__ÃedË +); + +334 +__ex‹º_®ways_šlše + const * + +335 + `¡r¡r + (cÚ¡ * +__hay¡ack +, cÚ¡ * +__ÃedË +è +__THROW + + +337  + `__bužtš_¡r¡r + ( +__hay¡ack +, +__ÃedË +); + +340 + } +} + +342 * + $¡r¡r + (cÚ¡ * +__hay¡ack +, cÚ¡ * +__ÃedË +) + +343 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +348 * + $¡¹ok + (* +__»¡riù + +__s +, cÚ¡ *__»¡riù +__d–im +) + +349 +__THROW + + `__nÚnuÎ + ((2)); + +350 +__END_NAMESPACE_STD + + +354 * + $__¡¹ok_r + (* +__»¡riù + +__s +, + +355 cÚ¡ * +__»¡riù + +__d–im +, + +356 ** +__»¡riù + +__§ve_±r +) + +357 +__THROW + + `__nÚnuÎ + ((2, 3)); + +358 #ià +defšed + +__USE_POSIX + || defšed +__USE_MISC + + +359 * + $¡¹ok_r + (* +__»¡riù + +__s +, cÚ¡ *__»¡riù +__d–im +, + +360 ** +__»¡riù + +__§ve_±r +) + +361 +__THROW + + `__nÚnuÎ + ((2, 3)); + +364 #ifdeà +__USE_GNU + + +366 #ifdeà +__CORRECT_ISO_CPP_STRING_H_PROTO + + +367 "C++" * + $¡rÿ£¡r + (* +__hay¡ack +, cÚ¡ * +__ÃedË +) + +368 +__THROW + + `__asm + ("¡rÿ£¡r"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +369 "C++" cÚ¡ * + $¡rÿ£¡r + (cÚ¡ * +__hay¡ack +, + +370 cÚ¡ * +__ÃedË +) + +371 +__THROW + + `__asm + ("¡rÿ£¡r"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +373 * + $¡rÿ£¡r + (cÚ¡ * +__hay¡ack +, cÚ¡ * +__ÃedË +) + +374 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +378 #ifdeà +__USE_GNU + + +382 * + $memmem + (cÚ¡ * +__hay¡ack +, +size_t + +__hay¡ackËn +, + +383 cÚ¡ * +__ÃedË +, +size_t + +__ÃedËËn +) + +384 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 3)); + +388 * + $__mempýy + (* +__»¡riù + +__de¡ +, + +389 cÚ¡ * +__»¡riù + +__¤c +, +size_t + +__n +) + +390 +__THROW + + `__nÚnuÎ + ((1, 2)); + +391 * + $mempýy + (* +__»¡riù + +__de¡ +, + +392 cÚ¡ * +__»¡riù + +__¤c +, +size_t + +__n +) + +393 +__THROW + + `__nÚnuÎ + ((1, 2)); + +397 +__BEGIN_NAMESPACE_STD + + +399 +size_t + + $¡¾’ + (cÚ¡ * +__s +) + +400 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +401 +__END_NAMESPACE_STD + + +403 #ifdef +__USE_XOPEN2K8 + + +406 +size_t + + $¡ºËn + (cÚ¡ * +__¡ršg +, +size_t + +__maxËn +) + +407 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +411 +__BEGIN_NAMESPACE_STD + + +413 * + $¡»¼Ü + ( +__”ºum +è +__THROW +; + +414 +__END_NAMESPACE_STD + + +415 #ià +defšed + +__USE_XOPEN2K + || defšed +__USE_MISC + + +423 #ià +defšed + +__USE_XOPEN2K + && !defšed +__USE_GNU + + +426 #ifdeà +__REDIRECT_NTH + + +427  + `__REDIRECT_NTH + ( +¡»¼Ü_r +, + +428 ( +__”ºum +, * +__buf +, +size_t + +__buæ’ +), + +429 +__xpg_¡»¼Ü_r +è + `__nÚnuÎ + ((2)); + +431  + $__xpg_¡»¼Ü_r + ( +__”ºum +, * +__buf +, +size_t + +__buæ’ +) + +432 +__THROW + + `__nÚnuÎ + ((2)); + +433  + #¡»¼Ü_r + +__xpg_¡»¼Ü_r + + + ) + +438 * + $¡»¼Ü_r + ( +__”ºum +, * +__buf +, +size_t + +__buæ’ +) + +439 +__THROW + + `__nÚnuÎ + ((2)è +__wur +; + +443 #ifdeà +__USE_XOPEN2K8 + + +445 * + $¡»¼Ü_l + ( +__”ºum +, +__loÿË_t + +__l +è +__THROW +; + +451  + $__bz”o + (* +__s +, +size_t + +__n +è +__THROW + + `__nÚnuÎ + ((1)); + +453 #ifdeà +__USE_BSD + + +455  + $bcÝy + (cÚ¡ * +__¤c +, * +__de¡ +, +size_t + +__n +) + +456 +__THROW + + `__nÚnuÎ + ((1, 2)); + +459  + $bz”o + (* +__s +, +size_t + +__n +è +__THROW + + `__nÚnuÎ + ((1)); + +462  + $bcmp + (cÚ¡ * +__s1 +, cÚ¡ * +__s2 +, +size_t + +__n +) + +463 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +466 #ifdeà +__CORRECT_ISO_CPP_STRING_H_PROTO + + +469 * + `šdex + (* +__s +,  +__c +) + +470 +__THROW + + `__asm + ("šdex"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +471 cÚ¡ * + `šdex + (cÚ¡ * +__s +,  +__c +) + +472 +__THROW + + `__asm + ("šdex"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +474 #ià +defšed + +__OPTIMIZE__ + && !defšed +__CORRECT_ISO_CPP_STRINGS_H_PROTO + + +475 +__ex‹º_®ways_šlše + * + +476 + `šdex + (* +__s +,  +__c +è +__THROW + + +478  + `__bužtš_šdex + ( +__s +, +__c +); + +481 +__ex‹º_®ways_šlše + const * + +482 + `šdex + (cÚ¡ * +__s +,  +__c +è +__THROW + + +484  + `__bužtš_šdex + ( +__s +, +__c +); + +487 + } +} + +489 * + $šdex + (cÚ¡ * +__s +,  +__c +) + +490 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +494 #ifdeà +__CORRECT_ISO_CPP_STRING_H_PROTO + + +497 * + `ršdex + (* +__s +,  +__c +) + +498 +__THROW + + `__asm + ("ršdex"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +499 cÚ¡ * + `ršdex + (cÚ¡ * +__s +,  +__c +) + +500 +__THROW + + `__asm + ("ršdex"è +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +502 #ià +defšed + +__OPTIMIZE__ + && !defšed +__CORRECT_ISO_CPP_STRINGS_H_PROTO + + +503 +__ex‹º_®ways_šlše + * + +504 + `ršdex + (* +__s +,  +__c +è +__THROW + + +506  + `__bužtš_ršdex + ( +__s +, +__c +); + +509 +__ex‹º_®ways_šlše + const * + +510 + `ršdex + (cÚ¡ * +__s +,  +__c +è +__THROW + + +512  + `__bužtš_ršdex + ( +__s +, +__c +); + +515 + } +} + +517 * + $ršdex + (cÚ¡ * +__s +,  +__c +) + +518 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1)); + +523  + $ffs + ( +__i +è +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)); + +527 #ifdef +__USE_GNU + + +528  + $ff¦ + ( +__l +è +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)); + +529 +__ex‹nsiÚ__ +  + $ff¦l + ( +__Î +) + +530 +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)); + +534  + $¡rÿ£cmp + (cÚ¡ * +__s1 +, cÚ¡ * +__s2 +) + +535 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +538  + $¡ºÿ£cmp + (cÚ¡ * +__s1 +, cÚ¡ * +__s2 +, +size_t + +__n +) + +539 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +542 #ifdef +__USE_GNU + + +545  + $¡rÿ£cmp_l + (cÚ¡ * +__s1 +, cÚ¡ * +__s2 +, + +546 +__loÿË_t + +__loc +) + +547 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2, 3)); + +549  + $¡ºÿ£cmp_l + (cÚ¡ * +__s1 +, cÚ¡ * +__s2 +, + +550 +size_t + +__n +, +__loÿË_t + +__loc +) + +551 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2, 4)); + +554 #ifdef +__USE_BSD + + +557 * + $¡r£p + (** +__»¡riù + +__¡ršgp +, + +558 cÚ¡ * +__»¡riù + +__d–im +) + +559 +__THROW + + `__nÚnuÎ + ((1, 2)); + +562 #ifdef +__USE_XOPEN2K8 + + +564 * + $¡rsigÇl + ( +__sig +è +__THROW +; + +567 * + $__¡pýy + (* +__»¡riù + +__de¡ +, cÚ¡ *__»¡riù +__¤c +) + +568 +__THROW + + `__nÚnuÎ + ((1, 2)); + +569 * + $¡pýy + (* +__»¡riù + +__de¡ +, cÚ¡ *__»¡riù +__¤c +) + +570 +__THROW + + `__nÚnuÎ + ((1, 2)); + +574 * + $__¡²ýy + (* +__»¡riù + +__de¡ +, + +575 cÚ¡ * +__»¡riù + +__¤c +, +size_t + +__n +) + +576 +__THROW + + `__nÚnuÎ + ((1, 2)); + +577 * + $¡²ýy + (* +__»¡riù + +__de¡ +, + +578 cÚ¡ * +__»¡riù + +__¤c +, +size_t + +__n +) + +579 +__THROW + + `__nÚnuÎ + ((1, 2)); + +582 #ifdef +__USE_GNU + + +584  + $¡rv”scmp + (cÚ¡ * +__s1 +, cÚ¡ * +__s2 +) + +585 +__THROW + +__©Œibu‹_pu»__ + + `__nÚnuÎ + ((1, 2)); + +588 * + $¡räy + (* +__¡ršg +è +__THROW + + `__nÚnuÎ + ((1)); + +591 * + $memäob + (* +__s +, +size_t + +__n +è +__THROW + + `__nÚnuÎ + ((1)); + +593 #iâdeà +ba£Çme + + +598 #ifdeà +__CORRECT_ISO_CPP_STRING_H_PROTO + + +599 "C++" * + $ba£Çme + (* +__fž’ame +) + +600 +__THROW + + `__asm + ("ba£Çme"è + `__nÚnuÎ + ((1)); + +601 "C++" cÚ¡ * + $ba£Çme + (cÚ¡ * +__fž’ame +) + +602 +__THROW + + `__asm + ("ba£Çme"è + `__nÚnuÎ + ((1)); + +604 * + $ba£Çme + (cÚ¡ * +__fž’ame +è +__THROW + + `__nÚnuÎ + ((1)); + +610 #ià +defšed + +__GNUC__ + && __GNUC__ >= 2 + +611 #ià +defšed + +__OPTIMIZE__ + && !defšed +__OPTIMIZE_SIZE__ + \ + +612 && ! +defšed + +__NO_INLINE__ + && !defšed +__ýlu¥lus + + +632  + ~ + +635  + ~ + +638 #ià +__USE_FORTIFY_LEVEL + > 0 && +defšed + +__fÜtify_funùiÚ + + +640  + ~ + +644 +__END_DECLS + + + @/usr/include/time.h + +22 #iâdef +_TIME_H + + +24 #ià(! +defšed + +__Ãed_time_t + && !defšed +__Ãed_þock_t + && \ + +25 ! +defšed + + g__Ãed_time¥ec +) + +26  + #_TIME_H + 1 + + ) + +27  + ~<ã©u»s.h +> + +29 + g__BEGIN_DECLS + + +33 #ifdef +_TIME_H + + +35  + #__Ãed_size_t + + + ) + +36  + #__Ãed_NULL + + + ) + +37  + ~<¡ddef.h +> + +41  + ~ + +44 #ià! +defšed + +__STRICT_ANSI__ + && !defšed +__USE_XOPEN2K + + +45 #iâdeà +CLK_TCK + + +46  + #CLK_TCK + +CLOCKS_PER_SEC + + + ) + +52 #ià! +defšed + +__þock_t_defšed + && (defšed +_TIME_H + || defšed +__Ãed_þock_t +) + +53  + #__þock_t_defšed + 1 + + ) + +55  + ~ + +57 +__BEGIN_NAMESPACE_STD + + +59  +__þock_t + + tþock_t +; + +60 + g__END_NAMESPACE_STD + + +61 #ià +defšed + +__USE_XOPEN + || defšed +__USE_POSIX + || defšed +__USE_MISC + + +62 + $__USING_NAMESPACE_STD +( +þock_t +) + +66 #undeà +__Ãed_þock_t + + +68 #ià! +defšed + +__time_t_defšed + && (defšed +_TIME_H + || defšed +__Ãed_time_t +) + +69  + #__time_t_defšed + 1 + + ) + +71  + ~ + +73 +__BEGIN_NAMESPACE_STD + + +75  +__time_t + + ttime_t +; + +76 +__END_NAMESPACE_STD + + +77 #ià +defšed + +__USE_POSIX + || defšed +__USE_MISC + || defšed +__USE_SVID + + +78 + $__USING_NAMESPACE_STD +( +time_t +) + +82 #undeà +__Ãed_time_t + + +84 #ià! +defšed + +__þockid_t_defšed + && \ + +85 (( +defšed + +_TIME_H + && defšed +__USE_POSIX199309 +è|| defšed +__Ãed_þockid_t +) + +86  + #__þockid_t_defšed + 1 + + ) + +88  + ~ + +91  +__þockid_t + + tþockid_t +; + +94 #undeà +__þockid_time_t + + +96 #ià! +defšed + +__tim”_t_defšed + && \ + +97 (( +defšed + +_TIME_H + && defšed +__USE_POSIX199309 +è|| defšed +__Ãed_tim”_t +) + +98  + #__tim”_t_defšed + 1 + + ) + +100  + ~ + +103  +__tim”_t + + ttim”_t +; + +106 #undeà +__Ãed_tim”_t + + +109 #ià(! +defšed + +__time¥ec_defšed + \ + +110 && (( +defšed + +_TIME_H + \ + +111 && ( +defšed + +__USE_POSIX199309 + || defšed +__USE_MISC + \ + +112 || +defšed + +__USE_ISOC11 +)) \ + +113 || +defšed + +__Ãed_time¥ec +)) + +114  + #__time¥ec_defšed + 1 + + ) + +116  + ~ + +120  + stime¥ec + + +122 +__time_t + +tv_£c +; + +123 +__sysÿÎ_¦Úg_t + +tv_n£c +; + +127 #undeà +__Ãed_time¥ec + + +130 #ifdef +_TIME_H + + +131 +__BEGIN_NAMESPACE_STD + + +133  + stm + + +135  +tm_£c +; + +136  +tm_mš +; + +137  +tm_hour +; + +138  +tm_mday +; + +139  +tm_mÚ +; + +140  +tm_y—r +; + +141  +tm_wday +; + +142  +tm_yday +; + +143  +tm_isd¡ +; + +145 #ifdef +__USE_BSD + + +146  +tm_gmtoff +; + +147 cÚ¡ * +tm_zÚe +; + +149  +__tm_gmtoff +; + +150 cÚ¡ * +__tm_zÚe +; + +153 +__END_NAMESPACE_STD + + +154 #ià +defšed + +__USE_XOPEN + || defšed +__USE_POSIX + || defšed +__USE_MISC + + +155 + $__USING_NAMESPACE_STD +( +tm +) + +159 #ifdeà +__USE_POSIX199309 + + +161  + s™im”¥ec + + +163  +time¥ec + +™_š‹rv® +; + +164  +time¥ec + +™_v®ue +; + +168  +sigev’t +; + +172 #ifdeà +__USE_XOPEN2K + + +173 #iâdeà +__pid_t_defšed + + +174  +__pid_t + + tpid_t +; + +175  + #__pid_t_defšed + + + ) + +180 #ifdeà +__USE_ISOC11 + + +182  + #TIME_UTC + 1 + + ) + +186 +__BEGIN_NAMESPACE_STD + + +189 +þock_t + + $þock + (è +__THROW +; + +192 +time_t + + $time + ( +time_t + * +__tim” +è +__THROW +; + +195  + $difáime + ( +time_t + +__time1 +,ime_ˆ +__time0 +) + +196 +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)); + +199 +time_t + + $mktime + ( +tm + * +__ +è +__THROW +; + +205 +size_t + + $¡ráime + (* +__»¡riù + +__s +, +size_t + +__maxsize +, + +206 cÚ¡ * +__»¡riù + +__fÜm© +, + +207 cÚ¡  +tm + * +__»¡riù + +__ +è +__THROW +; + +208 +__END_NAMESPACE_STD + + +210 #ifdeà +__USE_XOPEN + + +213 * + $¡½time + (cÚ¡ * +__»¡riù + +__s +, + +214 cÚ¡ * +__»¡riù + +__fmt +,  +tm + * +__ +) + +215 +__THROW +; + +218 #ifdeà +__USE_XOPEN2K8 + + +221  + ~ + +223 +size_t + + $¡ráime_l + (* +__»¡riù + +__s +, +size_t + +__maxsize +, + +224 cÚ¡ * +__»¡riù + +__fÜm© +, + +225 cÚ¡  +tm + * +__»¡riù + +__ +, + +226 +__loÿË_t + +__loc +è +__THROW +; + +229 #ifdeà +__USE_GNU + + +230 * + $¡½time_l + (cÚ¡ * +__»¡riù + +__s +, + +231 cÚ¡ * +__»¡riù + +__fmt +,  +tm + * +__ +, + +232 +__loÿË_t + +__loc +è +__THROW +; + +236 +__BEGIN_NAMESPACE_STD + + +239  +tm + * + $gmtime + (cÚ¡ +time_t + * +__tim” +è +__THROW +; + +243  +tm + * + $loÿÉime + (cÚ¡ +time_t + * +__tim” +è +__THROW +; + +244 +__END_NAMESPACE_STD + + +246 #ià +defšed + +__USE_POSIX + || defšed +__USE_MISC + + +249  +tm + * + $gmtime_r + (cÚ¡ +time_t + * +__»¡riù + +__tim” +, + +250  +tm + * +__»¡riù + +__ +è +__THROW +; + +254  +tm + * + $loÿÉime_r + (cÚ¡ +time_t + * +__»¡riù + +__tim” +, + +255  +tm + * +__»¡riù + +__ +è +__THROW +; + +258 +__BEGIN_NAMESPACE_STD + + +261 * + $asùime + (cÚ¡  +tm + * +__ +è +__THROW +; + +264 * + $ùime + (cÚ¡ +time_t + * +__tim” +è +__THROW +; + +265 +__END_NAMESPACE_STD + + +267 #ià +defšed + +__USE_POSIX + || defšed +__USE_MISC + + +272 * + $asùime_r + (cÚ¡  +tm + * +__»¡riù + +__ +, + +273 * +__»¡riù + +__buf +è +__THROW +; + +276 * + $ùime_r + (cÚ¡ +time_t + * +__»¡riù + +__tim” +, + +277 * +__»¡riù + +__buf +è +__THROW +; + +282 * +__tzÇme +[2]; + +283  +__daylight +; + +284  +__timezÚe +; + +287 #ifdef +__USE_POSIX + + +289 * +tzÇme +[2]; + +293  + $tz£t + (è +__THROW +; + +296 #ià +defšed + +__USE_SVID + || defšed +__USE_XOPEN + + +297  +daylight +; + +298  +timezÚe +; + +301 #ifdeà +__USE_SVID + + +304  + $¡ime + (cÚ¡ +time_t + * +__wh’ +è +__THROW +; + +310  + #__i¦—p +( +y—r +) \ + +311 (( +y—r +è% 4 =ð0 && ((y—rè% 100 !ð0 || (y—rè% 400 =ð0)) + + ) + +314 #ifdeà +__USE_MISC + + +319 +time_t + + $timegm + ( +tm + * +__ +è +__THROW +; + +322 +time_t + + $tim–oÿl + ( +tm + * +__ +è +__THROW +; + +325  + $dysize + ( +__y—r +è +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)); + +329 #ifdeà +__USE_POSIX199309 + + +334  + `Çno¦“p + (cÚ¡  +time¥ec + * +__»que¡ed_time +, + +335  +time¥ec + * +__»maššg +); + +339  + $þock_g‘»s + ( +þockid_t + +__þock_id +,  +time¥ec + * +__»s +è +__THROW +; + +342  + $þock_g‘time + ( +þockid_t + +__þock_id +,  +time¥ec + * +__ +è +__THROW +; + +345  + $þock_£‰ime + ( +þockid_t + +__þock_id +, cÚ¡  +time¥ec + * +__ +) + +346 +__THROW +; + +348 #ifdeà +__USE_XOPEN2K + + +353  + `þock_Çno¦“p + ( +þockid_t + +__þock_id +,  +__æags +, + +354 cÚ¡  +time¥ec + * +__»q +, + +355  +time¥ec + * +__»m +); + +358  + $þock_g‘ýuþockid + ( +pid_t + +__pid +, +þockid_t + * +__þock_id +è +__THROW +; + +363  + $tim”_ü—‹ + ( +þockid_t + +__þock_id +, + +364  +sigev’t + * +__»¡riù + +__evp +, + +365 +tim”_t + * +__»¡riù + +__tim”id +è +__THROW +; + +368  + $tim”_d–‘e + ( +tim”_t + +__tim”id +è +__THROW +; + +371  + $tim”_£‰ime + ( +tim”_t + +__tim”id +,  +__æags +, + +372 cÚ¡  +™im”¥ec + * +__»¡riù + +__v®ue +, + +373  +™im”¥ec + * +__»¡riù + +__ov®ue +è +__THROW +; + +376  + $tim”_g‘time + ( +tim”_t + +__tim”id +,  +™im”¥ec + * +__v®ue +) + +377 +__THROW +; + +380  + $tim”_g‘ov”run + ( +tim”_t + +__tim”id +è +__THROW +; + +384 #ifdeà +__USE_ISOC11 + + +386  + $time¥ec_g‘ + ( +time¥ec + * +__ts +,  +__ba£ +) + +387 +__THROW + + `__nÚnuÎ + ((1)); + +391 #ifdeà +__USE_XOPEN_EXTENDED + + +403  +g‘d©e_”r +; + +412  +tm + * + `g‘d©e + (cÚ¡ * +__¡ršg +); + +415 #ifdeà +__USE_GNU + + +426  + `g‘d©e_r + (cÚ¡ * +__»¡riù + +__¡ršg +, + +427  +tm + * +__»¡riù + +__»sbuå +); + +430 +__END_DECLS + + + @/usr/include/unistd.h + +22 #iâdef +_UNISTD_H + + +23  + #_UNISTD_H + 1 + + ) + +25  + ~<ã©u»s.h +> + +27 + g__BEGIN_DECLS + + +32 #ifdeà +__USE_XOPEN2K8 + + +34  + #_POSIX_VERSION + 200809L + + ) + +35 #–ià +defšed + +__USE_XOPEN2K + + +37  + #_POSIX_VERSION + 200112L + + ) + +38 #–ià +defšed + +__USE_POSIX199506 + + +40  + #_POSIX_VERSION + 199506L + + ) + +41 #–ià +defšed + +__USE_POSIX199309 + + +43  + #_POSIX_VERSION + 199309L + + ) + +46  + #_POSIX_VERSION + 199009L + + ) + +52 #ifdeà +__USE_XOPEN2K8 + + +53  + #__POSIX2_THIS_VERSION + 200809L + + ) + +55 #–ià +defšed + +__USE_XOPEN2K + + +57  + #__POSIX2_THIS_VERSION + 200112L + + ) + +58 #–ià +defšed + +__USE_POSIX199506 + + +60  + #__POSIX2_THIS_VERSION + 199506L + + ) + +63  + #__POSIX2_THIS_VERSION + 199209L + + ) + +67  + #_POSIX2_VERSION + +__POSIX2_THIS_VERSION + + + ) + +71  + #_POSIX2_C_BIND + +__POSIX2_THIS_VERSION + + + ) + +75  + #_POSIX2_C_DEV + +__POSIX2_THIS_VERSION + + + ) + +79  + #_POSIX2_SW_DEV + +__POSIX2_THIS_VERSION + + + ) + +83  + #_POSIX2_LOCALEDEF + +__POSIX2_THIS_VERSION + + + ) + +86 #ifdeà +__USE_XOPEN2K8 + + +87  + #_XOPEN_VERSION + 700 + + ) + +88 #–ià +defšed + +__USE_XOPEN2K + + +89  + #_XOPEN_VERSION + 600 + + ) + +90 #–ià +defšed + +__USE_UNIX98 + + +91  + #_XOPEN_VERSION + 500 + + ) + +93  + #_XOPEN_VERSION + 4 + + ) + +97  + #_XOPEN_XCU_VERSION + 4 + + ) + +100  + #_XOPEN_XPG2 + 1 + + ) + +101  + #_XOPEN_XPG3 + 1 + + ) + +102  + #_XOPEN_XPG4 + 1 + + ) + +105  + #_XOPEN_UNIX + 1 + + ) + +108  + #_XOPEN_CRYPT + 1 + + ) + +112  + #_XOPEN_ENH_I18N + 1 + + ) + +115  + #_XOPEN_LEGACY + 1 + + ) + +202  + ~ + +205 #ià +defšed + +__USE_UNIX98 + || defšed +__USE_XOPEN2K + + +206  + ~ + +210  + #STDIN_FILENO + 0 + + ) + +211  + #STDOUT_FILENO + 1 + + ) + +212  + #STDERR_FILENO + 2 + + ) + +217  + ~ + +219 #iâdef +__ssize_t_defšed + + +220  +__ssize_t + + tssize_t +; + +221  + #__ssize_t_defšed + + + ) + +224  + #__Ãed_size_t + + + ) + +225  + #__Ãed_NULL + + + ) + +226  + ~<¡ddef.h +> + +228 #ià +defšed + +__USE_XOPEN + || defšed +__USE_XOPEN2K + + +231 #iâdeà +__gid_t_defšed + + +232  +__gid_t + + tgid_t +; + +233  + #__gid_t_defšed + + + ) + +236 #iâdeà +__uid_t_defšed + + +237  +__uid_t + + tuid_t +; + +238  + #__uid_t_defšed + + + ) + +241 #iâdeà +__off_t_defšed + + +242 #iâdeà +__USE_FILE_OFFSET64 + + +243  +__off_t + + toff_t +; + +245  +__off64_t + + toff_t +; + +247  + #__off_t_defšed + + + ) + +249 #ià +defšed + +__USE_LARGEFILE64 + && !defšed +__off64_t_defšed + + +250  +__off64_t + + toff64_t +; + +251  + #__off64_t_defšed + + + ) + +254 #iâdeà +__u£cÚds_t_defšed + + +255  +__u£cÚds_t + + tu£cÚds_t +; + +256  + #__u£cÚds_t_defšed + + + ) + +259 #iâdeà +__pid_t_defšed + + +260  +__pid_t + + tpid_t +; + +261  + #__pid_t_defšed + + + ) + +265 #ià +defšed + +__USE_MISC + || defšed +__USE_XOPEN_EXTENDED + || defšed +__USE_XOPEN2K + + +266 #iâdeà +__šŒ_t_defšed + + +267  +__šŒ_t + + tšŒ_t +; + +268  + #__šŒ_t_defšed + + + ) + +272 #ià +defšed + +__USE_BSD + || defšed +__USE_XOPEN + + +273 #iâdeà +__sockËn_t_defšed + + +274  +__sockËn_t + + tsockËn_t +; + +275  + #__sockËn_t_defšed + + + ) + +281  + #R_OK + 4 + + ) + +282  + #W_OK + 2 + + ) + +283  + #X_OK + 1 + + ) + +284  + #F_OK + 0 + + ) + +287  + $acûss + (cÚ¡ * +__Çme +,  +__ty³ +è +__THROW + + `__nÚnuÎ + ((1)); + +289 #ifdeà +__USE_GNU + + +292  + $euidacûss + (cÚ¡ * +__Çme +,  +__ty³ +) + +293 +__THROW + + `__nÚnuÎ + ((1)); + +296  + $—cûss + (cÚ¡ * +__Çme +,  +__ty³ +) + +297 +__THROW + + `__nÚnuÎ + ((1)); + +300 #ifdeà +__USE_ATFILE + + +304  + $çcûs§t + ( +__fd +, cÚ¡ * +__fže +,  +__ty³ +,  +__æag +) + +305 +__THROW + + `__nÚnuÎ + ((2)è +__wur +; + +310 #iâdef +_STDIO_H + + +311  + #SEEK_SET + 0 + + ) + +312  + #SEEK_CUR + 1 + + ) + +313  + #SEEK_END + 2 + + ) + +314 #ifdeà +__USE_GNU + + +315  + #SEEK_DATA + 3 + + ) + +316  + #SEEK_HOLE + 4 + + ) + +320 #ià +defšed + +__USE_BSD + && !defšed +L_SET + + +322  + #L_SET + +SEEK_SET + + + ) + +323  + #L_INCR + +SEEK_CUR + + + ) + +324  + #L_XTND + +SEEK_END + + + ) + +333 #iâdeà +__USE_FILE_OFFSET64 + + +334 +__off_t + + $l£ek + ( +__fd +, +__off_t + +__off£t +,  +__wh’û +è +__THROW +; + +336 #ifdeà +__REDIRECT_NTH + + +337 +__off64_t + + `__REDIRECT_NTH + ( +l£ek +, + +338 ( +__fd +, +__off64_t + +__off£t +,  +__wh’û +), + +339 +l£ek64 +); + +341  + #l£ek + +l£ek64 + + + ) + +344 #ifdeà +__USE_LARGEFILE64 + + +345 +__off64_t + + $l£ek64 + ( +__fd +, +__off64_t + +__off£t +,  +__wh’û +) + +346 +__THROW +; + +353  + `þo£ + ( +__fd +); + +360 +ssize_t + + $»ad + ( +__fd +, * +__buf +, +size_t + +__nby‹s +è +__wur +; + +366 +ssize_t + + $wr™e + ( +__fd +, cÚ¡ * +__buf +, +size_t + +__n +è +__wur +; + +368 #ià +defšed + +__USE_UNIX98 + || defšed +__USE_XOPEN2K8 + + +369 #iâdeà +__USE_FILE_OFFSET64 + + +376 +ssize_t + + $´—d + ( +__fd +, * +__buf +, +size_t + +__nby‹s +, + +377 +__off_t + +__off£t +è +__wur +; + +384 +ssize_t + + $pwr™e + ( +__fd +, cÚ¡ * +__buf +, +size_t + +__n +, + +385 +__off_t + +__off£t +è +__wur +; + +387 #ifdeà +__REDIRECT + + +388 +ssize_t + + `__REDIRECT + ( +´—d +, ( +__fd +, * +__buf +, +size_t + +__nby‹s +, + +389 +__off64_t + +__off£t +), + +390 +´—d64 +è +__wur +; + +391 +ssize_t + + `__REDIRECT + ( +pwr™e +, ( +__fd +, cÚ¡ * +__buf +, + +392 +size_t + +__nby‹s +, +__off64_t + +__off£t +), + +393 +pwr™e64 +è +__wur +; + +395  + #´—d + +´—d64 + + + ) + +396  + #pwr™e + +pwr™e64 + + + ) + +400 #ifdeà +__USE_LARGEFILE64 + + +404 +ssize_t + + $´—d64 + ( +__fd +, * +__buf +, +size_t + +__nby‹s +, + +405 +__off64_t + +__off£t +è +__wur +; + +408 +ssize_t + + $pwr™e64 + ( +__fd +, cÚ¡ * +__buf +, +size_t + +__n +, + +409 +__off64_t + +__off£t +è +__wur +; + +417  + $pe + ( +__pedes +[2]è +__THROW + +__wur +; + +419 #ifdeà +__USE_GNU + + +422  + $pe2 + ( +__pedes +[2],  +__æags +è +__THROW + +__wur +; + +432  + $®¬m + ( +__£cÚds +è +__THROW +; + +444  + `¦“p + ( +__£cÚds +); + +446 #ià( +defšed + +__USE_XOPEN_EXTENDED + && !defšed +__USE_XOPEN2K8 +) \ + +447 || +defšed + +__USE_BSD + + +452 +__u£cÚds_t + + $u®¬m + ( +__u£cÚds_t + +__v®ue +, __u£cÚds_ˆ +__š‹rv® +) + +453 +__THROW +; + +460  + `u¦“p + ( +__u£cÚds_t + +__u£cÚds +); + +469  + `·u£ + (); + +473  + $chown + (cÚ¡ * +__fže +, +__uid_t + +__owÃr +, +__gid_t + +__group +) + +474 +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +476 #ià +defšed + +__USE_BSD + || defšed +__USE_XOPEN_EXTENDED + || defšed +__USE_XOPEN2K8 + + +478  + $fchown + ( +__fd +, +__uid_t + +__owÃr +, +__gid_t + +__group +è +__THROW + +__wur +; + +483  + $lchown + (cÚ¡ * +__fže +, +__uid_t + +__owÃr +, +__gid_t + +__group +) + +484 +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +488 #ifdeà +__USE_ATFILE + + +491  + $fchowÇt + ( +__fd +, cÚ¡ * +__fže +, +__uid_t + +__owÃr +, + +492 +__gid_t + +__group +,  +__æag +) + +493 +__THROW + + `__nÚnuÎ + ((2)è +__wur +; + +497  + $chdœ + (cÚ¡ * +__·th +è +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +499 #ià +defšed + +__USE_BSD + || defšed +__USE_XOPEN_EXTENDED + || defšed +__USE_XOPEN2K8 + + +501  + $fchdœ + ( +__fd +è +__THROW + +__wur +; + +511 * + $g‘cwd + (* +__buf +, +size_t + +__size +è +__THROW + +__wur +; + +513 #ifdef +__USE_GNU + + +517 * + $g‘_cu¼’t_dœ_Çme + (è +__THROW +; + +520 #ià( +defšed + +__USE_XOPEN_EXTENDED + && !defšed +__USE_XOPEN2K8 +) \ + +521 || +defšed + +__USE_BSD + + +525 * + $g‘wd + (* +__buf +) + +526 +__THROW + + `__nÚnuÎ + ((1)è +__©Œibu‹_d•»ÿ‹d__ + +__wur +; + +531  + $dup + ( +__fd +è +__THROW + +__wur +; + +534  + $dup2 + ( +__fd +,  +__fd2 +è +__THROW +; + +536 #ifdeà +__USE_GNU + + +539  + $dup3 + ( +__fd +,  +__fd2 +,  +__æags +è +__THROW +; + +543 ** +__’vœÚ +; + +544 #ifdeà +__USE_GNU + + +545 ** +’vœÚ +; + +551  + $execve + (cÚ¡ * +__·th +, *cÚ¡ +__¬gv +[], + +552 *cÚ¡ +__’vp +[]è +__THROW + + `__nÚnuÎ + ((1, 2)); + +554 #ifdeà +__USE_XOPEN2K8 + + +557  + $ãxecve + ( +__fd +, *cÚ¡ +__¬gv +[], *cÚ¡ +__’vp +[]) + +558 +__THROW + + `__nÚnuÎ + ((2)); + +563  + $execv + (cÚ¡ * +__·th +, *cÚ¡ +__¬gv +[]) + +564 +__THROW + + `__nÚnuÎ + ((1, 2)); + +568  + $exeþe + (cÚ¡ * +__·th +, cÚ¡ * +__¬g +, ...) + +569 +__THROW + + `__nÚnuÎ + ((1, 2)); + +573  + $exeþ + (cÚ¡ * +__·th +, cÚ¡ * +__¬g +, ...) + +574 +__THROW + + `__nÚnuÎ + ((1, 2)); + +578  + $execvp + (cÚ¡ * +__fže +, *cÚ¡ +__¬gv +[]) + +579 +__THROW + + `__nÚnuÎ + ((1, 2)); + +584  + $exeþp + (cÚ¡ * +__fže +, cÚ¡ * +__¬g +, ...) + +585 +__THROW + + `__nÚnuÎ + ((1, 2)); + +587 #ifdeà +__USE_GNU + + +590  + $execv³ + (cÚ¡ * +__fže +, *cÚ¡ +__¬gv +[], + +591 *cÚ¡ +__’vp +[]) + +592 +__THROW + + `__nÚnuÎ + ((1, 2)); + +596 #ià +defšed + +__USE_MISC + || defšed +__USE_XOPEN + + +598  + $niû + ( +__šc +è +__THROW + +__wur +; + +603  + $_ex™ + ( +__¡©us +è + `__©Œibu‹__ + (( +__nܑuº__ +)); + +609  + ~ + +612  + $·thcÚf + (cÚ¡ * +__·th +,  +__Çme +) + +613 +__THROW + + `__nÚnuÎ + ((1)); + +616  + $å©hcÚf + ( +__fd +,  +__Çme +è +__THROW +; + +619  + $syscÚf + ( +__Çme +è +__THROW +; + +621 #ifdef +__USE_POSIX2 + + +623 +size_t + + $cÚf¡r + ( +__Çme +, * +__buf +, +size_t + +__Ën +è +__THROW +; + +628 +__pid_t + + $g‘pid + (è +__THROW +; + +631 +__pid_t + + $g‘µid + (è +__THROW +; + +634 +__pid_t + + $g‘pg½ + (è +__THROW +; + +637 +__pid_t + + $__g‘pgid + ( +__pid_t + +__pid +è +__THROW +; + +638 #ià +defšed + +__USE_XOPEN_EXTENDED + || defšed +__USE_XOPEN2K8 + + +639 +__pid_t + + $g‘pgid + ( +__pid_t + +__pid +è +__THROW +; + +646  + $£gid + ( +__pid_t + +__pid +, __pid_ˆ +__pgid +è +__THROW +; + +648 #ià +defšed + +__USE_SVID + || defšed +__USE_BSD + || defšed +__USE_XOPEN_EXTENDED + + +660  + $£g½ + (è +__THROW +; + +667 +__pid_t + + $£tsid + (è +__THROW +; + +669 #ià +defšed + +__USE_XOPEN_EXTENDED + || defšed +__USE_XOPEN2K8 + + +671 +__pid_t + + $g‘sid + ( +__pid_t + +__pid +è +__THROW +; + +675 +__uid_t + + $g‘uid + (è +__THROW +; + +678 +__uid_t + + $g‘euid + (è +__THROW +; + +681 +__gid_t + + $g‘gid + (è +__THROW +; + +684 +__gid_t + + $g‘egid + (è +__THROW +; + +689  + $g‘groups + ( +__size +, +__gid_t + +__li¡ +[]è +__THROW + +__wur +; + +691 #ifdef +__USE_GNU + + +693  + $group_memb” + ( +__gid_t + +__gid +è +__THROW +; + +700  + $£tuid + ( +__uid_t + +__uid +è +__THROW + +__wur +; + +702 #ià +defšed + +__USE_BSD + || defšed +__USE_XOPEN_EXTENDED + + +705  + $£Œeuid + ( +__uid_t + +__ruid +, __uid_ˆ +__euid +è +__THROW + +__wur +; + +708 #ià +defšed + +__USE_BSD + || defšed +__USE_XOPEN2K + + +710  + $£‹uid + ( +__uid_t + +__uid +è +__THROW + +__wur +; + +717  + $£tgid + ( +__gid_t + +__gid +è +__THROW + +__wur +; + +719 #ià +defšed + +__USE_BSD + || defšed +__USE_XOPEN_EXTENDED + + +722  + $£Œegid + ( +__gid_t + +__rgid +, __gid_ˆ +__egid +è +__THROW + +__wur +; + +725 #ià +defšed + +__USE_BSD + || defšed +__USE_XOPEN2K + + +727  + $£‹gid + ( +__gid_t + +__gid +è +__THROW + +__wur +; + +730 #ifdeà +__USE_GNU + + +733  + $g‘»suid + ( +__uid_t + * +__ruid +, __uid_ˆ* +__euid +, __uid_ˆ* +__suid +) + +734 +__THROW +; + +738  + $g‘»sgid + ( +__gid_t + * +__rgid +, __gid_ˆ* +__egid +, __gid_ˆ* +__sgid +) + +739 +__THROW +; + +743  + $£Œesuid + ( +__uid_t + +__ruid +, __uid_ˆ +__euid +, __uid_ˆ +__suid +) + +744 +__THROW + +__wur +; + +748  + $£Œesgid + ( +__gid_t + +__rgid +, __gid_ˆ +__egid +, __gid_ˆ +__sgid +) + +749 +__THROW + +__wur +; + +756 +__pid_t + + $fÜk + (è +__THROWNL +; + +758 #ià( +defšed + +__USE_XOPEN_EXTENDED + && !defšed +__USE_XOPEN2K8 +) \ + +759 || +defšed + +__USE_BSD + + +764 +__pid_t + + $vfÜk + (è +__THROW +; + +770 * + $‰yÇme + ( +__fd +è +__THROW +; + +774  + $‰yÇme_r + ( +__fd +, * +__buf +, +size_t + +__buæ’ +) + +775 +__THROW + + `__nÚnuÎ + ((2)è +__wur +; + +779  + $i§‰y + ( +__fd +è +__THROW +; + +781 #ià +defšed + +__USE_BSD + \ + +782 || ( +defšed + +__USE_XOPEN_EXTENDED + && !defšed +__USE_UNIX98 +) + +785  + $‰y¦Ù + (è +__THROW +; + +790  + $lšk + (cÚ¡ * +__äom +, cÚ¡ * +__to +) + +791 +__THROW + + `__nÚnuÎ + ((1, 2)è +__wur +; + +793 #ifdeà +__USE_ATFILE + + +796  + $lšk© + ( +__äomfd +, cÚ¡ * +__äom +,  +__tofd +, + +797 cÚ¡ * +__to +,  +__æags +) + +798 +__THROW + + `__nÚnuÎ + ((2, 4)è +__wur +; + +801 #ià +defšed + +__USE_BSD + || defšed +__USE_XOPEN_EXTENDED + || defšed +__USE_XOPEN2K + + +803  + $symlšk + (cÚ¡ * +__äom +, cÚ¡ * +__to +) + +804 +__THROW + + `__nÚnuÎ + ((1, 2)è +__wur +; + +809 +ssize_t + + $»adlšk + (cÚ¡ * +__»¡riù + +__·th +, + +810 * +__»¡riù + +__buf +, +size_t + +__Ën +) + +811 +__THROW + + `__nÚnuÎ + ((1, 2)è +__wur +; + +814 #ifdeà +__USE_ATFILE + + +816  + $symlšk© + (cÚ¡ * +__äom +,  +__tofd +, + +817 cÚ¡ * +__to +è +__THROW + + `__nÚnuÎ + ((1, 3)è +__wur +; + +820 +ssize_t + + $»adlšk© + ( +__fd +, cÚ¡ * +__»¡riù + +__·th +, + +821 * +__»¡riù + +__buf +, +size_t + +__Ën +) + +822 +__THROW + + `__nÚnuÎ + ((2, 3)è +__wur +; + +826  + $uƚk + (cÚ¡ * +__Çme +è +__THROW + + `__nÚnuÎ + ((1)); + +828 #ifdeà +__USE_ATFILE + + +830  + $uƚk© + ( +__fd +, cÚ¡ * +__Çme +,  +__æag +) + +831 +__THROW + + `__nÚnuÎ + ((2)); + +835  + $rmdœ + (cÚ¡ * +__·th +è +__THROW + + `__nÚnuÎ + ((1)); + +839 +__pid_t + + $tcg‘pg½ + ( +__fd +è +__THROW +; + +842  + $tc£g½ + ( +__fd +, +__pid_t + +__pg½_id +è +__THROW +; + +849 * + `g‘logš + (); + +850 #ià +defšed + +__USE_REENTRANT + || defšed +__USE_POSIX199506 + + +857  + $g‘logš_r + (* +__Çme +, +size_t + +__Çme_Ën +è + `__nÚnuÎ + ((1)); + +860 #ifdef +__USE_BSD + + +862  + $£Žogš + (cÚ¡ * +__Çme +è +__THROW + + `__nÚnuÎ + ((1)); + +866 #ifdef +__USE_POSIX2 + + +870  + #__Ãed_g‘Ýt + + + ) + +871  + ~ + +875 #ià +defšed + +__USE_BSD + || defšed +__USE_UNIX98 + || defšed +__USE_XOPEN2K + + +879  + $g‘ho¡Çme + (* +__Çme +, +size_t + +__Ën +è +__THROW + + `__nÚnuÎ + ((1)); + +883 #ià +defšed + +__USE_BSD + || (defšed +__USE_XOPEN + && !defšed +__USE_UNIX98 +) + +886  + $£tho¡Çme + (cÚ¡ * +__Çme +, +size_t + +__Ën +) + +887 +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +891  + $£tho¡id + ( +__id +è +__THROW + +__wur +; + +897  + $g‘domašÇme + (* +__Çme +, +size_t + +__Ën +) + +898 +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +899  + $£tdomašÇme + (cÚ¡ * +__Çme +, +size_t + +__Ën +) + +900 +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +906  + $vhªgup + (è +__THROW +; + +909  + $»voke + (cÚ¡ * +__fže +è +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +917  + $´ofž + (* +__§m¶e_bufãr +, +size_t + +__size +, + +918 +size_t + +__off£t +,  +__sÿË +) + +919 +__THROW + + `__nÚnuÎ + ((1)); + +925  + $acù + (cÚ¡ * +__Çme +è +__THROW +; + +929 * + $g‘u£rsh–l + (è +__THROW +; + +930  + $’du£rsh–l + (è +__THROW +; + +931  + $£tu£rsh–l + (è +__THROW +; + +937  + $d«mÚ + ( +__nochdœ +,  +__noþo£ +è +__THROW + +__wur +; + +941 #ià +defšed + +__USE_BSD + || (defšed +__USE_XOPEN + && !defšed +__USE_XOPEN2K +) + +944  + $chroÙ + (cÚ¡ * +__·th +è +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +948 * + $g‘·ss + (cÚ¡ * +__´om± +è + `__nÚnuÎ + ((1)); + +956  + `fsync + ( +__fd +); + +959 #ifdeà +__USE_GNU + + +962  + $syncfs + ( +__fd +è +__THROW +; + +966 #ià +defšed + +__USE_BSD + || defšed +__USE_XOPEN_EXTENDED + + +969  + `g‘ho¡id + (); + +972  + $sync + (è +__THROW +; + +975 #ià +defšed + +__USE_BSD + || !defšed +__USE_XOPEN2K + + +978  + $g‘·gesize + (è +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)); + +983  + $g‘dbËsize + (è +__THROW +; + +989 #ià +defšed + +__USE_BSD + || defšed +__USE_XOPEN_EXTENDED + || defšed +__USE_XOPEN2K8 + + +992 #iâdeà +__USE_FILE_OFFSET64 + + +993  + $Œunÿ‹ + (cÚ¡ * +__fže +, +__off_t + +__Ëngth +) + +994 +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +996 #ifdeà +__REDIRECT_NTH + + +997  + `__REDIRECT_NTH + ( +Œunÿ‹ +, + +998 (cÚ¡ * +__fže +, +__off64_t + +__Ëngth +), + +999 +Œunÿ‹64 +è + `__nÚnuÎ + ((1)è +__wur +; + +1001  + #Œunÿ‹ + +Œunÿ‹64 + + + ) + +1004 #ifdeà +__USE_LARGEFILE64 + + +1005  + $Œunÿ‹64 + (cÚ¡ * +__fže +, +__off64_t + +__Ëngth +) + +1006 +__THROW + + `__nÚnuÎ + ((1)è +__wur +; + +1011 #ià +defšed + +__USE_BSD + || defšed +__USE_POSIX199309 + \ + +1012 || +defšed + +__USE_XOPEN_EXTENDED + || defšed +__USE_XOPEN2K + + +1015 #iâdeà +__USE_FILE_OFFSET64 + + +1016  + $árunÿ‹ + ( +__fd +, +__off_t + +__Ëngth +è +__THROW + +__wur +; + +1018 #ifdeà +__REDIRECT_NTH + + +1019  + `__REDIRECT_NTH + ( +árunÿ‹ +, ( +__fd +, +__off64_t + +__Ëngth +), + +1020 +árunÿ‹64 +è +__wur +; + +1022  + #árunÿ‹ + +árunÿ‹64 + + + ) + +1025 #ifdeà +__USE_LARGEFILE64 + + +1026  + $árunÿ‹64 + ( +__fd +, +__off64_t + +__Ëngth +è +__THROW + +__wur +; + +1032 #ià( +defšed + +__USE_XOPEN_EXTENDED + && !defšed +__USE_XOPEN2K +) \ + +1033 || +defšed + +__USE_MISC + + +1037  + $brk + (* +__addr +è +__THROW + +__wur +; + +1043 * + $sbrk + ( +šŒ_t + +__d– +è +__THROW +; + +1047 #ifdeà +__USE_MISC + + +1058  + $sysÿÎ + ( +__sy¢o +, ...è +__THROW +; + +1063 #ià( +defšed + +__USE_MISC + || defšed +__USE_XOPEN_EXTENDED +è&& !defšed +F_LOCK + + +1075  + #F_ULOCK + 0 + + ) + +1076  + #F_LOCK + 1 + + ) + +1077  + #F_TLOCK + 2 + + ) + +1078  + #F_TEST + 3 + + ) + +1080 #iâdeà +__USE_FILE_OFFSET64 + + +1081  + $lockf + ( +__fd +,  +__cmd +, +__off_t + +__Ën +è +__wur +; + +1083 #ifdeà +__REDIRECT + + +1084  + `__REDIRECT + ( +lockf +, ( +__fd +,  +__cmd +, +__off64_t + +__Ën +), + +1085 +lockf64 +è +__wur +; + +1087  + #lockf + +lockf64 + + + ) + +1090 #ifdeà +__USE_LARGEFILE64 + + +1091  + $lockf64 + ( +__fd +,  +__cmd +, +__off64_t + +__Ën +è +__wur +; + +1096 #ifdeà +__USE_GNU + + +1101  + #TEMP_FAILURE_RETRY +( +ex´essiÚ +) \ + +1102 ( +__ex‹nsiÚ__ + \ + +1103 ({  +__»suÉ +; \ + +1104 dØ +__»suÉ + = (è( +ex´essiÚ +); \ + +1105  +__»suÉ + =ð-1L && +”ºo + =ð +EINTR +); \ + +1106 +__»suÉ +; + } +})) + + ) + +1109 #ià +defšed + +__USE_POSIX199309 + || defšed +__USE_UNIX98 + + +1112  +fd©async + ( +__fždes +); + +1118 #ifdef +__USE_XOPEN + + +1120 * + $üy± + (cÚ¡ * +__key +, cÚ¡ * +__§É +) + +1121 +__THROW + + `__nÚnuÎ + ((1, 2)); + +1125  + $’üy± + (* +__glibc_block +,  +__edæag +) + +1126 +__THROW + + `__nÚnuÎ + ((1)); + +1133  + $swab + (cÚ¡ * +__»¡riù + +__äom +, *__»¡riù +__to +, + +1134 +ssize_t + +__n +è +__THROW + + `__nÚnuÎ + ((1, 2)); + +1140 #ià +defšed + +__USE_XOPEN + && !defšed +__USE_XOPEN2K + + +1142 * + $ù”mid + (* +__s +è +__THROW +; + +1147 #ià +__USE_FORTIFY_LEVEL + > 0 && +defšed + +__fÜtify_funùiÚ + + +1148  + ~ + +1151 +__END_DECLS + + + @/usr/include/alloca.h + +18 #iâdef +_ALLOCA_H + + +19  + #_ALLOCA_H + 1 + + ) + +21  + ~<ã©u»s.h +> + +23  + #__Ãed_size_t + + + ) + +24  + ~<¡ddef.h +> + +26 + g__BEGIN_DECLS + + +29 #undeà +®loÿ + + +32 * + $®loÿ + ( +size_t + +__size +è +__THROW +; + +34 #ifdef +__GNUC__ + + +35  + #®loÿ +( +size +è + `__bužtš_®loÿ + (size) + + ) + +38 +__END_DECLS + + + @/usr/include/endian.h + +18 #iâdef +_ENDIAN_H + + +19  + #_ENDIAN_H + 1 + + ) + +21  + ~<ã©u»s.h +> + +31  + #__LITTLE_ENDIAN + 1234 + + ) + +32  + #__BIG_ENDIAN + 4321 + + ) + +33  + #__PDP_ENDIAN + 3412 + + ) + +36  + ~ + +40 #iâdeà +__FLOAT_WORD_ORDER + + +41  + #__FLOAT_WORD_ORDER + +__BYTE_ORDER + + + ) + +44 #ifdef +__USE_BSD + + +45  + #LITTLE_ENDIAN + +__LITTLE_ENDIAN + + + ) + +46  + #BIG_ENDIAN + +__BIG_ENDIAN + + + ) + +47  + #PDP_ENDIAN + +__PDP_ENDIAN + + + ) + +48  + #BYTE_ORDER + +__BYTE_ORDER + + + ) + +51 #ià +__BYTE_ORDER + =ð +__LITTLE_ENDIAN + + +52  + #__LONG_LONG_PAIR +( +HI +, +LO +èLO, + ) +HI + +53 #–ià +__BYTE_ORDER + =ð +__BIG_ENDIAN + + +54  + #__LONG_LONG_PAIR +( +HI +, +LO +èHI, + ) +LO + +58 #ià +defšed + +__USE_BSD + && !defšed +__ASSEMBLER__ + + +60  + ~ + +62 #ià +__BYTE_ORDER + =ð +__LITTLE_ENDIAN + + +63  + #htobe16 +( +x +è + `__bsw­_16 + (x) + + ) + +64  + #htÞe16 +( +x +è(x) + + ) + +65  + #be16toh +( +x +è + `__bsw­_16 + (x) + + ) + +66  + #Ë16toh +( +x +è(x) + + ) + +68  + #htobe32 +( +x +è + `__bsw­_32 + (x) + + ) + +69  + #htÞe32 +( +x +è(x) + + ) + +70  + #be32toh +( +x +è + `__bsw­_32 + (x) + + ) + +71  + #Ë32toh +( +x +è(x) + + ) + +73  + #htobe64 +( +x +è + `__bsw­_64 + (x) + + ) + +74  + #htÞe64 +( +x +è(x) + + ) + +75  + #be64toh +( +x +è + `__bsw­_64 + (x) + + ) + +76  + #Ë64toh +( +x +è(x) + + ) + +79  + #htobe16 +( +x +è(x) + + ) + +80  + #htÞe16 +( +x +è + `__bsw­_16 + (x) + + ) + +81  + #be16toh +( +x +è(x) + + ) + +82  + #Ë16toh +( +x +è + `__bsw­_16 + (x) + + ) + +84  + #htobe32 +( +x +è(x) + + ) + +85  + #htÞe32 +( +x +è + `__bsw­_32 + (x) + + ) + +86  + #be32toh +( +x +è(x) + + ) + +87  + #Ë32toh +( +x +è + `__bsw­_32 + (x) + + ) + +89  + #htobe64 +( +x +è(x) + + ) + +90  + #htÞe64 +( +x +è + `__bsw­_64 + (x) + + ) + +91  + #be64toh +( +x +è(x) + + ) + +92  + #Ë64toh +( +x +è + `__bsw­_64 + (x) + + ) + + @/usr/include/features.h + +18 #iâdef +_FEATURES_H + + +19  + #_FEATURES_H + 1 + + ) + +101 #undeà +__USE_ISOC11 + + +102 #undeà +__USE_ISOC99 + + +103 #undeà +__USE_ISOC95 + + +104 #undeà +__USE_ISOCXX11 + + +105 #undeà +__USE_POSIX + + +106 #undeà +__USE_POSIX2 + + +107 #undeà +__USE_POSIX199309 + + +108 #undeà +__USE_POSIX199506 + + +109 #undeà +__USE_XOPEN + + +110 #undeà +__USE_XOPEN_EXTENDED + + +111 #undeà +__USE_UNIX98 + + +112 #undeà +__USE_XOPEN2K + + +113 #undeà +__USE_XOPEN2KXSI + + +114 #undeà +__USE_XOPEN2K8 + + +115 #undeà +__USE_XOPEN2K8XSI + + +116 #undeà +__USE_LARGEFILE + + +117 #undeà +__USE_LARGEFILE64 + + +118 #undeà +__USE_FILE_OFFSET64 + + +119 #undeà +__USE_BSD + + +120 #undeà +__USE_SVID + + +121 #undeà +__USE_MISC + + +122 #undeà +__USE_ATFILE + + +123 #undeà +__USE_GNU + + +124 #undeà +__USE_REENTRANT + + +125 #undeà +__USE_FORTIFY_LEVEL + + +126 #undeà +__KERNEL_STRICT_NAMES + + +130 #iâdeà +_LOOSE_KERNEL_NAMES + + +131  + #__KERNEL_STRICT_NAMES + + + ) + +141 #ià +defšed + +__GNUC__ + && defšed +__GNUC_MINOR__ + + +142  + #__GNUC_PREREQ +( +maj +, +mš +) \ + +143 (( +__GNUC__ + << 16è+ +__GNUC_MINOR__ + >ð(( +maj +è<< 16è+ ( +mš +)) + + ) + +145  + #__GNUC_PREREQ +( +maj +, +mš +è0 + + ) + +150 #ifdeà +_GNU_SOURCE + + +151 #undeà +_ISOC95_SOURCE + + +152  + #_ISOC95_SOURCE + 1 + + ) + +153 #undeà +_ISOC99_SOURCE + + +154  + #_ISOC99_SOURCE + 1 + + ) + +155 #undeà +_ISOC11_SOURCE + + +156  + #_ISOC11_SOURCE + 1 + + ) + +157 #undeà +_POSIX_SOURCE + + +158  + #_POSIX_SOURCE + 1 + + ) + +159 #undeà +_POSIX_C_SOURCE + + +160  + #_POSIX_C_SOURCE + 200809L + + ) + +161 #undeà +_XOPEN_SOURCE + + +162  + #_XOPEN_SOURCE + 700 + + ) + +163 #undeà +_XOPEN_SOURCE_EXTENDED + + +164  + #_XOPEN_SOURCE_EXTENDED + 1 + + ) + +165 #undeà +_LARGEFILE64_SOURCE + + +166  + #_LARGEFILE64_SOURCE + 1 + + ) + +167 #undeà +_DEFAULT_SOURCE + + +168  + #_DEFAULT_SOURCE + 1 + + ) + +169 #undeà +_BSD_SOURCE + + +170  + #_BSD_SOURCE + 1 + + ) + +171 #undeà +_SVID_SOURCE + + +172  + #_SVID_SOURCE + 1 + + ) + +173 #undeà +_ATFILE_SOURCE + + +174  + #_ATFILE_SOURCE + 1 + + ) + +179 #ià( +defšed + +_DEFAULT_SOURCE + \ + +180 || (! +defšed + + g__STRICT_ANSI__ + \ + +181 && ! +defšed + + g_ISOC99_SOURCE + \ + +182 && ! +defšed + + g_POSIX_SOURCE + && !defšed + g_POSIX_C_SOURCE + \ + +183 && ! +defšed + + g_XOPEN_SOURCE + \ + +184 && ! +defšed + + g_BSD_SOURCE + && !defšed + g_SVID_SOURCE +)) + +185 #undeà +_DEFAULT_SOURCE + + +186  + #_DEFAULT_SOURCE + 1 + + ) + +187 #undeà +_BSD_SOURCE + + +188  + #_BSD_SOURCE + 1 + + ) + +189 #undeà +_SVID_SOURCE + + +190  + #_SVID_SOURCE + 1 + + ) + +194 #ià( +defšed + +_ISOC11_SOURCE + \ + +195 || ( +defšed + + g__STDC_VERSION__ + && __STDC_VERSION__ >= 201112L)) + +196  + #__USE_ISOC11 + 1 + + ) + +200 #ià( +defšed + +_ISOC99_SOURCE + || defšed +_ISOC11_SOURCE + \ + +201 || ( +defšed + +__STDC_VERSION__ + && __STDC_VERSION__ >= 199901L)) + +202  + #__USE_ISOC99 + 1 + + ) + +206 #ià( +defšed + +_ISOC99_SOURCE + || defšed +_ISOC11_SOURCE + \ + +207 || ( +defšed + +__STDC_VERSION__ + && __STDC_VERSION__ >= 199409L)) + +208  + #__USE_ISOC95 + 1 + + ) + +215 #ià(( +defšed + +__ýlu¥lus + && __cplusplus >= 201103L) \ + +216 || +defšed + +__GXX_EXPERIMENTAL_CXX0X__ +) + +217  + #__USE_ISOCXX11 + 1 + + ) + +223 #ifdeà +_DEFAULT_SOURCE + + +224 #ià! +defšed + +_POSIX_SOURCE + && !defšed +_POSIX_C_SOURCE + + +225  + #__USE_POSIX_IMPLICITLY + 1 + + ) + +227 #undeà +_POSIX_SOURCE + + +228  + #_POSIX_SOURCE + 1 + + ) + +229 #undeà +_POSIX_C_SOURCE + + +230  + #_POSIX_C_SOURCE + 200809L + + ) + +232 #ià((! +defšed + +__STRICT_ANSI__ + || ( +_XOPEN_SOURCE + - 0) >= 500) && \ + +233 ! +defšed + +_POSIX_SOURCE + && !defšed +_POSIX_C_SOURCE +) + +234  + #_POSIX_SOURCE + 1 + + ) + +235 #ià +defšed + +_XOPEN_SOURCE + && (_XOPEN_SOURCE - 0) < 500 + +236  + #_POSIX_C_SOURCE + 2 + + ) + +237 #–ià +defšed + +_XOPEN_SOURCE + && (_XOPEN_SOURCE - 0) < 600 + +238  + #_POSIX_C_SOURCE + 199506L + + ) + +239 #–ià +defšed + +_XOPEN_SOURCE + && (_XOPEN_SOURCE - 0) < 700 + +240  + #_POSIX_C_SOURCE + 200112L + + ) + +242  + #_POSIX_C_SOURCE + 200809L + + ) + +244  + #__USE_POSIX_IMPLICITLY + 1 + + ) + +247 #ià +defšed + +_POSIX_SOURCE + || +_POSIX_C_SOURCE + >ð1 || defšed +_XOPEN_SOURCE + + +248  + #__USE_POSIX + 1 + + ) + +251 #ià +defšed + +_POSIX_C_SOURCE + && _POSIX_C_SOURCE >ð2 || defšed +_XOPEN_SOURCE + + +252  + #__USE_POSIX2 + 1 + + ) + +255 #ià( +_POSIX_C_SOURCE + - 0) >= 199309L + +256  + #__USE_POSIX199309 + 1 + + ) + +259 #ià( +_POSIX_C_SOURCE + - 0) >= 199506L + +260  + #__USE_POSIX199506 + 1 + + ) + +263 #ià( +_POSIX_C_SOURCE + - 0) >= 200112L + +264  + #__USE_XOPEN2K + 1 + + ) + +265 #undeà +__USE_ISOC95 + + +266  + #__USE_ISOC95 + 1 + + ) + +267 #undeà +__USE_ISOC99 + + +268  + #__USE_ISOC99 + 1 + + ) + +271 #ià( +_POSIX_C_SOURCE + - 0) >= 200809L + +272  + #__USE_XOPEN2K8 + 1 + + ) + +273 #undeà +_ATFILE_SOURCE + + +274  + #_ATFILE_SOURCE + 1 + + ) + +277 #ifdef +_XOPEN_SOURCE + + +278  + #__USE_XOPEN + 1 + + ) + +279 #ià( +_XOPEN_SOURCE + - 0) >= 500 + +280  + #__USE_XOPEN_EXTENDED + 1 + + ) + +281  + #__USE_UNIX98 + 1 + + ) + +282 #undeà +_LARGEFILE_SOURCE + + +283  + #_LARGEFILE_SOURCE + 1 + + ) + +284 #ià( +_XOPEN_SOURCE + - 0) >= 600 + +285 #ià( +_XOPEN_SOURCE + - 0) >= 700 + +286  + #__USE_XOPEN2K8 + 1 + + ) + +287  + #__USE_XOPEN2K8XSI + 1 + + ) + +289  + #__USE_XOPEN2K + 1 + + ) + +290  + #__USE_XOPEN2KXSI + 1 + + ) + +291 #undeà +__USE_ISOC95 + + +292  + #__USE_ISOC95 + 1 + + ) + +293 #undeà +__USE_ISOC99 + + +294  + #__USE_ISOC99 + 1 + + ) + +297 #ifdeà +_XOPEN_SOURCE_EXTENDED + + +298  + #__USE_XOPEN_EXTENDED + 1 + + ) + +303 #ifdeà +_LARGEFILE_SOURCE + + +304  + #__USE_LARGEFILE + 1 + + ) + +307 #ifdeà +_LARGEFILE64_SOURCE + + +308  + #__USE_LARGEFILE64 + 1 + + ) + +311 #ià +defšed + +_FILE_OFFSET_BITS + && _FILE_OFFSET_BITS == 64 + +312  + #__USE_FILE_OFFSET64 + 1 + + ) + +315 #ià +defšed + +_BSD_SOURCE + || defšed +_SVID_SOURCE + + +316  + #__USE_MISC + 1 + + ) + +319 #ifdef +_BSD_SOURCE + + +320  + #__USE_BSD + 1 + + ) + +323 #ifdef +_SVID_SOURCE + + +324  + #__USE_SVID + 1 + + ) + +327 #ifdef +_ATFILE_SOURCE + + +328  + #__USE_ATFILE + 1 + + ) + +331 #ifdef +_GNU_SOURCE + + +332  + #__USE_GNU + 1 + + ) + +335 #ià +defšed + +_REENTRANT + || defšed +_THREAD_SAFE + + +336  + #__USE_REENTRANT + 1 + + ) + +339 #ià +defšed + +_FORTIFY_SOURCE + && _FORTIFY_SOURCE > 0 \ + +340 && +__GNUC_PREREQ + (4, 1è&& +defšed + + g__OPTIMIZE__ + && __OPTIMIZE__ > 0 + +341 #ià +_FORTIFY_SOURCE + > 1 + +342  + #__USE_FORTIFY_LEVEL + 2 + + ) + +344  + #__USE_FORTIFY_LEVEL + 1 + + ) + +347  + #__USE_FORTIFY_LEVEL + 0 + + ) + +352  + ~<¡dc-´edef.h +> + +360 #undeà +__GNU_LIBRARY__ + + +361  + #__GNU_LIBRARY__ + 6 + + ) + +365  + #__GLIBC__ + 2 + + ) + +366  + #__GLIBC_MINOR__ + 19 + + ) + +368  + #__GLIBC_PREREQ +( +maj +, +mš +) \ + +369 (( +__GLIBC__ + << 16è+ +__GLIBC_MINOR__ + >ð(( +maj +è<< 16è+ ( +mš +)) + + ) + +372 #iâdeà +__ASSEMBLER__ + + +373 #iâdeà +_SYS_CDEFS_H + + +374  + ~ + +379 #ià +defšed + +__USE_FILE_OFFSET64 + && !defšed +__REDIRECT + + +380  + #__USE_LARGEFILE + 1 + + ) + +381  + #__USE_LARGEFILE64 + 1 + + ) + +387 #ià +__GNUC_PREREQ + (2, 7è&& +defšed + +__OPTIMIZE__ + \ + +388 && ! +defšed + + g__OPTIMIZE_SIZE__ + && !defšed + g__NO_INLINE__ + \ + +389 && +defšed + + g__ex‹º_šlše + + +390  + #__USE_EXTERN_INLINES + 1 + + ) + +398  + ~ + + @/usr/include/getopt.h + +19 #iâdeà +_GETOPT_H + + +21 #iâdeà +__Ãed_g‘Ýt + + +22  + #_GETOPT_H + 1 + + ) + +32 #ià! +defšed + +__GNU_LIBRARY__ + + +33  + ~<ùy³.h +> + +36 #iâdeà +__THROW + + +37 #iâdeà +__GNUC_PREREQ + + +38  + #__GNUC_PREREQ +( +maj +, +mš +è(0) + + ) + +40 #ià +defšed + +__ýlu¥lus + && +__GNUC_PREREQ + (2,8) + +41  + #__THROW + + `throw + () + + ) + +43  + #__THROW + + + ) + +47 #ifdef +__ýlu¥lus + + +57 * +ݏrg +; + +71  +Ýtšd +; + +76  +݋¼ +; + +80  +ÝtÝt +; + +82 #iâdeà +__Ãed_g‘Ýt + + +104  + sÝtiÚ + + +106 cÚ¡ * + gÇme +; + +109  + ghas_¬g +; + +110 * + gæag +; + +111  + gv® +; + +116  + #no_¬gum’t + 0 + + ) + +117  + #»quœed_¬gum’t + 1 + + ) + +118  + #ÝtiÚ®_¬gum’t + 2 + + ) + +146 #ifdeà +__GNU_LIBRARY__ + + +150  +g‘Ýt + ( +___¬gc +, *cÚ¡ * +___¬gv +, cÚ¡ * +__shÜtÝts +) + +151 +__THROW +; + +153 #ià +defšed + +__Ãed_g‘Ýt + && defšed +__USE_POSIX2 + \ + +154 && ! +defšed + + g__USE_POSIX_IMPLICITLY + && !defšed + g__USE_GNU + + +158 #ifdeà +__REDIRECT + + +159  +__REDIRECT_NTH + ( +g‘Ýt +, ( +___¬gc +, *cÚ¡ * +___¬gv +, + +160 cÚ¡ * +__shÜtÝts +), + +161 +__posix_g‘Ýt +); + +163  +__posix_g‘Ýt + ( +___¬gc +, *cÚ¡ * +___¬gv +, + +164 cÚ¡ * +__shÜtÝts +è +__THROW +; + +165  + #g‘Ýt + +__posix_g‘Ýt + + + ) + +169  +g‘Ýt + (); + +172 #iâdeà +__Ãed_g‘Ýt + + +173  +g‘Ýt_lÚg + ( +___¬gc +, *cÚ¡ * +___¬gv +, + +174 cÚ¡ * +__shÜtÝts +, + +175 cÚ¡  +ÝtiÚ + * +__lÚgÝts +, * +__lÚgšd +) + +176 +__THROW +; + +177  +g‘Ýt_lÚg_Úly + ( +___¬gc +, *cÚ¡ * +___¬gv +, + +178 cÚ¡ * +__shÜtÝts +, + +179 cÚ¡  +ÝtiÚ + * +__lÚgÝts +, * +__lÚgšd +) + +180 +__THROW +; + +184 #ifdef +__ýlu¥lus + + +189 #undeà +__Ãed_g‘Ýt + + + @/usr/include/libio.h + +28 #iâdeà +_IO_STDIO_H + + +29  + #_IO_STDIO_H + + + ) + +31  + ~<_G_cÚfig.h +> + +33  + #_IO_åos_t + +_G_åos_t + + + ) + +34  + #_IO_åos64_t + +_G_åos64_t + + + ) + +35  + #_IO_size_t + +size_t + + + ) + +36  + #_IO_ssize_t + +__ssize_t + + + ) + +37  + #_IO_off_t + +__off_t + + + ) + +38  + #_IO_off64_t + +__off64_t + + + ) + +39  + #_IO_pid_t + +__pid_t + + + ) + +40  + #_IO_uid_t + +__uid_t + + + ) + +41  + #_IO_icÚv_t + +_G_icÚv_t + + + ) + +42  + #_IO_HAVE_ST_BLKSIZE + +_G_HAVE_ST_BLKSIZE + + + ) + +43  + #_IO_BUFSIZ + +_G_BUFSIZ + + + ) + +44  + #_IO_va_li¡ + +_G_va_li¡ + + + ) + +45  + #_IO_wšt_t + +wšt_t + + + ) + +48  + #__Ãed___va_li¡ + + + ) + +49  + ~<¡d¬g.h +> + +50 #ifdeà +__GNUC_VA_LIST + + +51 #undeà +_IO_va_li¡ + + +52  + #_IO_va_li¡ + +__gnuc_va_li¡ + + + ) + +55 #iâdeà +__P + + +56  + ~ + +59  + #_IO_UNIFIED_JUMPTABLES + 1 + + ) + +61 #iâdeà +EOF + + +62  + #EOF + (-1) + + ) + +64 #iâdeà +NULL + + +65 #ià +defšed + +__GNUG__ + && \ + +66 ( + g__GNUC__ + > 2 || (__GNUC__ =ð2 && +__GNUC_MINOR__ + >= 8)) + +67  + #NULL + ( +__nuÎ +) + + ) + +69 #ià! +defšed +( +__ýlu¥lus +) + +70  + #NULL + ((*)0) + + ) + +72  + #NULL + (0) + + ) + +77  + #_IOS_INPUT + 1 + + ) + +78  + #_IOS_OUTPUT + 2 + + ) + +79  + #_IOS_ATEND + 4 + + ) + +80  + #_IOS_APPEND + 8 + + ) + +81  + #_IOS_TRUNC + 16 + + ) + +82  + #_IOS_NOCREATE + 32 + + ) + +83  + #_IOS_NOREPLACE + 64 + + ) + +84  + #_IOS_BIN + 128 + + ) + +92  + #_IO_MAGIC + 0xFBAD0000 + + ) + +93  + #_OLD_STDIO_MAGIC + 0xFABC0000 + + ) + +94  + #_IO_MAGIC_MASK + 0xFFFF0000 + + ) + +95  + #_IO_USER_BUF + 1 + + ) + +96  + #_IO_UNBUFFERED + 2 + + ) + +97  + #_IO_NO_READS + 4 + + ) + +98  + #_IO_NO_WRITES + 8 + + ) + +99  + #_IO_EOF_SEEN + 0x10 + + ) + +100  + #_IO_ERR_SEEN + 0x20 + + ) + +101  + #_IO_DELETE_DONT_CLOSE + 0x40 + + ) + +102  + #_IO_LINKED + 0x80 + + ) + +103  + #_IO_IN_BACKUP + 0x100 + + ) + +104  + #_IO_LINE_BUF + 0x200 + + ) + +105  + #_IO_TIED_PUT_GET + 0x400 + + ) + +106  + #_IO_CURRENTLY_PUTTING + 0x800 + + ) + +107  + #_IO_IS_APPENDING + 0x1000 + + ) + +108  + #_IO_IS_FILEBUF + 0x2000 + + ) + +109  + #_IO_BAD_SEEN + 0x4000 + + ) + +110  + #_IO_USER_LOCK + 0x8000 + + ) + +112  + #_IO_FLAGS2_MMAP + 1 + + ) + +113  + #_IO_FLAGS2_NOTCANCEL + 2 + + ) + +114 #ifdeà +_LIBC + + +115  + #_IO_FLAGS2_FORTIFY + 4 + + ) + +117  + #_IO_FLAGS2_USER_WBUF + 8 + + ) + +118 #ifdeà +_LIBC + + +119  + #_IO_FLAGS2_SCANF_STD + 16 + + ) + +120  + #_IO_FLAGS2_NOCLOSE + 32 + + ) + +121  + #_IO_FLAGS2_CLOEXEC + 64 + + ) + +125  + #_IO_SKIPWS + 01 + + ) + +126  + #_IO_LEFT + 02 + + ) + +127  + #_IO_RIGHT + 04 + + ) + +128  + #_IO_INTERNAL + 010 + + ) + +129  + #_IO_DEC + 020 + + ) + +130  + #_IO_OCT + 040 + + ) + +131  + #_IO_HEX + 0100 + + ) + +132  + #_IO_SHOWBASE + 0200 + + ) + +133  + #_IO_SHOWPOINT + 0400 + + ) + +134  + #_IO_UPPERCASE + 01000 + + ) + +135  + #_IO_SHOWPOS + 02000 + + ) + +136  + #_IO_SCIENTIFIC + 04000 + + ) + +137  + #_IO_FIXED + 010000 + + ) + +138  + #_IO_UNITBUF + 020000 + + ) + +139  + #_IO_STDIO + 040000 + + ) + +140  + #_IO_DONT_CLOSE + 0100000 + + ) + +141  + #_IO_BOOLALPHA + 0200000 + + ) + +144  +_IO_jump_t +;  + g_IO_FILE +; + +147 #ifdeà +_IO_MTSAFE_IO + + +148 #ià +defšed + +__GLIBC__ + && __GLIBC__ >= 2 + +149  + ~ + +154  + t_IO_lock_t +; + +160  + s_IO_m¬k” + { + +161  +_IO_m¬k” + * + m_Ãxt +; + +162  +_IO_FILE + * + m_sbuf +; + +166  + m_pos +; + +168  +£t_¡»ampos +( +¡»ampos + +¥ +è{ + m_¥os + = sp; } + +169  +£t_off£t +( +off£t +è{ + m_pos + = off£t; + m_¥os + = ( +¡»ampos +)(-2); } + +170 + mpublic +: + +171 +¡»amm¬k” +( +¡»ambuf + * +sb +); + +172 ~ +¡»amm¬k” +(); + +173  +§všg +(è{  + m_¥os + == -2; } + +174  +d– +( +¡»amm¬k” +&); + +175  +d– +(); + +180 + e__codecvt_»suÉ + + +182 + m__codecvt_ok +, + +183 + m__codecvt_·¹Ÿl +, + +184 + m__codecvt_”rÜ +, + +185 + m__codecvt_nocÚv + + +188 #ià +defšed + +_LIBC + || defšed +_GLIBCPP_USE_WCHAR_T + + +191  + s_IO_codecvt + + +193 (* + m__codecvt_de¡r +è( + m_IO_codecvt + *); + +194 +__codecvt_»suÉ + (* +__codecvt_do_out +è( + m_IO_codecvt + *, + +195 + m__mb¡©e_t + *, + +196 cÚ¡ + mwch¬_t + *, + +197 cÚ¡ + mwch¬_t + *, + +198 cÚ¡ + mwch¬_t + **, *, + +200 +__codecvt_»suÉ + (* +__codecvt_do_unshiá +è( + m_IO_codecvt + *, + +201 + m__mb¡©e_t + *, *, + +203 +__codecvt_»suÉ + (* +__codecvt_do_š +è( + m_IO_codecvt + *, + +204 + m__mb¡©e_t + *, + +206 cÚ¡ **, + mwch¬_t + *, + +207 + mwch¬_t + *, wchar_t **); + +208 (* + m__codecvt_do_’codšg +è( + m_IO_codecvt + *); + +209 (* + m__codecvt_do_®ways_nocÚv +è( + m_IO_codecvt + *); + +210 (* + m__codecvt_do_Ëngth +è( + m_IO_codecvt + *, + m__mb¡©e_t + *, + +211 cÚ¡ *, cÚ¡ *, + m_IO_size_t +); + +212 (* + m__codecvt_do_max_Ëngth +è( + m_IO_codecvt + *); + +214 +_IO_icÚv_t + + m__cd_š +; + +215 +_IO_icÚv_t + + m__cd_out +; + +219  + s_IO_wide_d©a + + +221 +wch¬_t + * + m_IO_»ad_±r +; + +222 +wch¬_t + * + m_IO_»ad_’d +; + +223 +wch¬_t + * + m_IO_»ad_ba£ +; + +224 +wch¬_t + * + m_IO_wr™e_ba£ +; + +225 +wch¬_t + * + m_IO_wr™e_±r +; + +226 +wch¬_t + * + m_IO_wr™e_’d +; + +227 +wch¬_t + * + m_IO_buf_ba£ +; + +228 +wch¬_t + * + m_IO_buf_’d +; + +230 +wch¬_t + * + m_IO_§ve_ba£ +; + +231 +wch¬_t + * + m_IO_backup_ba£ +; + +233 +wch¬_t + * + m_IO_§ve_’d +; + +235 +__mb¡©e_t + + m_IO_¡©e +; + +236 +__mb¡©e_t + + m_IO_Ï¡_¡©e +; + +237  +_IO_codecvt + + m_codecvt +; + +239 +wch¬_t + + m_shÜtbuf +[1]; + +241 cÚ¡  +_IO_jump_t + * + m_wide_vbË +; + +245  + s_IO_FILE + { + +246  + m_æags +; + +247  + #_IO_fže_æags + +_æags + + + ) + +251 * + m_IO_»ad_±r +; + +252 * + m_IO_»ad_’d +; + +253 * + m_IO_»ad_ba£ +; + +254 * + m_IO_wr™e_ba£ +; + +255 * + m_IO_wr™e_±r +; + +256 * + m_IO_wr™e_’d +; + +257 * + m_IO_buf_ba£ +; + +258 * + m_IO_buf_’d +; + +260 * + m_IO_§ve_ba£ +; + +261 * + m_IO_backup_ba£ +; + +262 * + m_IO_§ve_’d +; + +264  +_IO_m¬k” + * + m_m¬k”s +; + +266  +_IO_FILE + * + m_chaš +; + +268  + m_fž’o +; + +270  + m_blksize +; + +272  + m_æags2 +; + +274 +_IO_off_t + + m_Þd_off£t +; + +276  + #__HAVE_COLUMN + + + ) + +278  + m_cur_cÞumn +; + +279 sigÃd  + m_vbË_off£t +; + +280  + m_shÜtbuf +[1]; + +284 +_IO_lock_t + * + m_lock +; + +285 #ifdeà +_IO_USE_OLD_IO_FILE + + +288  + s_IO_FILE_com¶‘e + + +290  +_IO_FILE + + m_fže +; + +292 #ià +defšed + +_G_IO_IO_FILE_VERSION + && _G_IO_IO_FILE_VERSION == 0x20001 + +293 +_IO_off64_t + + m_off£t +; + +294 #ià +defšed + +_LIBC + || defšed +_GLIBCPP_USE_WCHAR_T + + +296  +_IO_codecvt + * + m_codecvt +; + +297  +_IO_wide_d©a + * + m_wide_d©a +; + +298  +_IO_FILE + * + m_䓻s_li¡ +; + +299 * + m_䓻s_buf +; + +300 +size_t + + m_䓻s_size +; + +302 * + m__·d1 +; + +303 * + m__·d2 +; + +304 * + m__·d3 +; + +305 * + m__·d4 +; + +306 +size_t + + m__·d5 +; + +308  + m_mode +; + +310  + m_unu£d2 +[15 *  (è- 4 *  (*è-  ( +size_t +)]; + +314 #iâdeà +__ýlu¥lus + + +315  +_IO_FILE + + t_IO_FILE +; + +318  + g_IO_FILE_¶us +; + +320  +_IO_FILE_¶us + +_IO_2_1_¡dš_ +; + +321  +_IO_FILE_¶us + +_IO_2_1_¡dout_ +; + +322  +_IO_FILE_¶us + +_IO_2_1_¡d”r_ +; + +323 #iâdeà +_LIBC + + +324  + #_IO_¡dš + (( +_IO_FILE +*)(& +_IO_2_1_¡dš_ +)) + + ) + +325  + #_IO_¡dout + (( +_IO_FILE +*)(& +_IO_2_1_¡dout_ +)) + + ) + +326  + #_IO_¡d”r + (( +_IO_FILE +*)(& +_IO_2_1_¡d”r_ +)) + + ) + +328 +_IO_FILE + * +_IO_¡dš + +©Œibu‹_hidd’ +; + +329 +_IO_FILE + * +_IO_¡dout + +©Œibu‹_hidd’ +; + +330 +_IO_FILE + * +_IO_¡d”r + +©Œibu‹_hidd’ +; + +338  +__ssize_t + + t__io_»ad_â + (* + t__cook› +, * + t__buf +, + tsize_t + + t__nby‹s +); + +346  +__ssize_t + + t__io_wr™e_â + (* + t__cook› +, cÚ¡ * + t__buf +, + +347 + tsize_t + + t__n +); + +355  + t__io_£ek_â + (* + t__cook› +, + t_IO_off64_t + * + t__pos +,  + t__w +); + +358  + t__io_þo£_â + (* + t__cook› +); + +361 #ifdeà +_GNU_SOURCE + + +363  +__io_»ad_â + + tcook›_»ad_funùiÚ_t +; + +364  +__io_wr™e_â + + tcook›_wr™e_funùiÚ_t +; + +365  +__io_£ek_â + + tcook›_£ek_funùiÚ_t +; + +366  +__io_þo£_â + + tcook›_þo£_funùiÚ_t +; + +371 +__io_»ad_â + * + m»ad +; + +372 +__io_wr™e_â + * + mwr™e +; + +373 +__io_£ek_â + * + m£ek +; + +374 +__io_þo£_â + * + mþo£ +; + +375 } + t_IO_cook›_io_funùiÚs_t +; + +376  +_IO_cook›_io_funùiÚs_t + + tcook›_io_funùiÚs_t +; + +378  + g_IO_cook›_fže +; + +381  +_IO_cook›_š™ + ( +_IO_cook›_fže + * +__cfže +,  +__»ad_wr™e +, + +382 * +__cook› +, +_IO_cook›_io_funùiÚs_t + +__âs +); + +386 #ifdeà +__ýlu¥lus + + +390  +__und”æow + ( +_IO_FILE + *); + +391  +__uæow + ( +_IO_FILE + *); + +392  +__ov”æow + ( +_IO_FILE + *, ); + +393 #ià +defšed + +_LIBC + || defšed +_GLIBCPP_USE_WCHAR_T + + +394 +_IO_wšt_t + +__wund”æow + ( +_IO_FILE + *); + +395 +_IO_wšt_t + +__wuæow + ( +_IO_FILE + *); + +396 +_IO_wšt_t + +__wov”æow + ( +_IO_FILE + *, _IO_wint_t); + +399 #ià +__GNUC__ + >= 3 + +400  + #_IO_BE +( +ex´ +, +»s +è + `__bužtš_ex³ù + (Óx´),„es) + + ) + +402  + #_IO_BE +( +ex´ +, +»s +èÓx´) + + ) + +405  + #_IO_g‘c_uÆocked +( +_å +) \ + +406 ( + `_IO_BE + (( +_å +)-> +_IO_»ad_±r + >ð(_å)-> +_IO_»ad_’d +, 0) \ + +407 ? + `__uæow + ( +_å +è: *(*è(_å)-> +_IO_»ad_±r +++) + + ) + +408  + #_IO_³ekc_uÆocked +( +_å +) \ + +409 ( + `_IO_BE + (( +_å +)-> +_IO_»ad_±r + >ð(_å)-> +_IO_»ad_’d +, 0) \ + +410 && + `__und”æow + ( +_å +è=ð +EOF + ? EOF \ + +411 : *(*è( +_å +)-> +_IO_»ad_±r +) + + ) + +412  + #_IO_putc_uÆocked +( +_ch +, +_å +) \ + +413 ( + `_IO_BE + (( +_å +)-> +_IO_wr™e_±r + >ð(_å)-> +_IO_wr™e_’d +, 0) \ + +414 ? + `__ov”æow + ( +_å +, (è( +_ch +)) \ + +415 : (è(*( +_å +)-> +_IO_wr™e_±r +++ = ( +_ch +))) + + ) + +417 #ià +defšed + +_LIBC + || defšed +_GLIBCPP_USE_WCHAR_T + + +418  + #_IO_g‘wc_uÆocked +( +_å +) \ + +419 ( + `_IO_BE + (( +_å +)-> +_wide_d©a + =ð +NULL + \ + +420 || (( +_å +)-> +_wide_d©a +-> +_IO_»ad_±r + \ + +421 >ð( +_å +)-> +_wide_d©a +-> +_IO_»ad_’d +), 0) \ + +422 ? + `__wuæow + ( +_å +è: ( +_IO_wšt_t +è*(_å)-> +_wide_d©a +-> +_IO_»ad_±r +++) + + ) + +423  + #_IO_putwc_uÆocked +( +_wch +, +_å +) \ + +424 ( + `_IO_BE + (( +_å +)-> +_wide_d©a + =ð +NULL + \ + +425 || (( +_å +)-> +_wide_d©a +-> +_IO_wr™e_±r + \ + +426 >ð( +_å +)-> +_wide_d©a +-> +_IO_wr™e_’d +), 0) \ + +427 ? + `__wov”æow + ( +_å +, +_wch +) \ + +428 : ( +_IO_wšt_t +è(*( +_å +)-> +_wide_d©a +-> +_IO_wr™e_±r +++ = ( +_wch +))) + + ) + +431  + #_IO_ãof_uÆocked +( +__å +è(((__å)-> +_æags + & +_IO_EOF_SEEN +è!ð0) + + ) + +432  + #_IO_ã¼Ü_uÆocked +( +__å +è(((__å)-> +_æags + & +_IO_ERR_SEEN +è!ð0) + + ) + +434  +_IO_g‘c + ( +_IO_FILE + * +__å +); + +435  +_IO_putc + ( +__c +, +_IO_FILE + * +__å +); + +436  +_IO_ãof + ( +_IO_FILE + * +__å +è +__THROW +; + +437  +_IO_ã¼Ü + ( +_IO_FILE + * +__å +è +__THROW +; + +439  +_IO_³ekc_locked + ( +_IO_FILE + * +__å +); + +442  + #_IO_PENDING_OUTPUT_COUNT +( +_å +) \ + +443 (( +_å +)-> +_IO_wr™e_±r + - (_å)-> +_IO_wr™e_ba£ +) + + ) + +445  +_IO_æockfže + ( +_IO_FILE + *è +__THROW +; + +446  +_IO_fuÆockfže + ( +_IO_FILE + *è +__THROW +; + +447  +_IO_árylockfže + ( +_IO_FILE + *è +__THROW +; + +449 #ifdeà +_IO_MTSAFE_IO + + +450  + #_IO_³ekc +( +_å +è + `_IO_³ekc_locked + (_å) + + ) + +451  + #_IO_æockfže +( +_å +) \ + +452 ià((( +_å +)-> +_æags + & +_IO_USER_LOCK +è=ð0è + `_IO_æockfže + (_å) + + ) + +453  + #_IO_fuÆockfže +( +_å +) \ + +454 ià((( +_å +)-> +_æags + & +_IO_USER_LOCK +è=ð0è + `_IO_fuÆockfže + (_å) + + ) + +456  + #_IO_³ekc +( +_å +è + `_IO_³ekc_uÆocked + (_å) + + ) + +457  + #_IO_æockfže +( +_å +è + + ) + +458  + #_IO_fuÆockfže +( +_å +è + + ) + +459  + #_IO_árylockfže +( +_å +è + + ) + +460  + #_IO_þ—nup_»giÚ_¡¬t +( +_fù +, +_å +è + + ) + +461  + #_IO_þ—nup_»giÚ_’d +( +_Do™ +è + + ) + +464  +_IO_vfsÿnf + ( +_IO_FILE + * +__»¡riù +, const * __restrict, + +465 +_IO_va_li¡ +, * +__»¡riù +); + +466  +_IO_vårštf + ( +_IO_FILE + * +__»¡riù +, const *__restrict, + +467 +_IO_va_li¡ +); + +468 +_IO_ssize_t + +_IO_·dn + ( +_IO_FILE + *, , _IO_ssize_t); + +469 +_IO_size_t + +_IO_sg‘n + ( +_IO_FILE + *, *, _IO_size_t); + +471 +_IO_off64_t + +_IO_£ekoff + ( +_IO_FILE + *, _IO_off64_t, , ); + +472 +_IO_off64_t + +_IO_£ekpos + ( +_IO_FILE + *, _IO_off64_t, ); + +474  +_IO_ä“_backup_¬— + ( +_IO_FILE + *è +__THROW +; + +476 #ià +defšed + +_LIBC + || defšed +_GLIBCPP_USE_WCHAR_T + + +477 +_IO_wšt_t + +_IO_g‘wc + ( +_IO_FILE + * +__å +); + +478 +_IO_wšt_t + +_IO_putwc + ( +wch¬_t + +__wc +, +_IO_FILE + * +__å +); + +479  +_IO_fwide + ( +_IO_FILE + * +__å +,  +__mode +è +__THROW +; + +480 #ià +__GNUC__ + >= 2 + +483 #ià +defšed + +_LIBC + && defšed +SHARED + + +484  + ~ + +485 #ià +SHLIB_COMPAT + ( +libc +, +GLIBC_2_0 +, +GLIBC_2_1 +) + +486  + #_IO_fwide_maybe_šcom·tibË + \ + +487 ( + `__bužtš_ex³ù + (& +_IO_¡dš_u£d + =ð +NULL +, 0)) + + ) + +488 cÚ¡  +_IO_¡dš_u£d +; + +489 +w—k_ex‹º + ( +_IO_¡dš_u£d +); + +492 #iâdeà +_IO_fwide_maybe_šcom·tibË + + +493  + #_IO_fwide_maybe_šcom·tibË + (0) + + ) + +497  + #_IO_fwide +( +__å +, +__mode +) \ + +498 ({  +__»suÉ + = ( +__mode +); \ + +499 ià( +__»suÉ + < 0 && ! +_IO_fwide_maybe_šcom·tibË +) \ + +501 ià(( +__å +)-> +_mode + == 0) \ + +503 ( +__å +)-> +_mode + = -1; \ + +504 +__»suÉ + = ( +__å +)-> +_mode +; \ + +506 ià( + `__bužtš_cÚ¡ªt_p + ( +__mode +) && (__mode) == 0) \ + +507 +__»suÉ + = +_IO_fwide_maybe_šcom·tibË + ? -1 : ( +__å +)-> +_mode +; \ + +509 +__»suÉ + = + `_IO_fwide + ( +__å +, __result); \ + +510 +__»suÉ +; }) + + ) + +513  +_IO_vfwsÿnf + ( +_IO_FILE + * +__»¡riù +, cÚ¡ +wch¬_t + * __restrict, + +514 +_IO_va_li¡ +, * +__»¡riù +); + +515  +_IO_vfw´štf + ( +_IO_FILE + * +__»¡riù +, cÚ¡ +wch¬_t + *__restrict, + +516 +_IO_va_li¡ +); + +517 +_IO_ssize_t + +_IO_w·dn + ( +_IO_FILE + *, +wšt_t +, _IO_ssize_t); + +518  +_IO_ä“_wbackup_¬— + ( +_IO_FILE + *è +__THROW +; + +521 #ifdeà +__LDBL_COMPAT + + +522  + ~ + +525 #ifdeà +__ýlu¥lus + + + @/usr/include/linux/ioctl.h + +1 #iâdeà +_LINUX_IOCTL_H + + +2  + #_LINUX_IOCTL_H + + + ) + +4  + ~ + + @/usr/include/linux/limits.h + +1 #iâdeà +_LINUX_LIMITS_H + + +2  + #_LINUX_LIMITS_H + + + ) + +4  + #NR_OPEN + 1024 + + ) + +6  + #NGROUPS_MAX + 65536 + + ) + +7  + #ARG_MAX + 131072 + + ) + +8  + #LINK_MAX + 127 + + ) + +9  + #MAX_CANON + 255 + + ) + +10  + #MAX_INPUT + 255 + + ) + +11  + #NAME_MAX + 255 + + ) + +12  + #PATH_MAX + 4096 + + ) + +13  + #PIPE_BUF + 4096 + + ) + +14  + #XATTR_NAME_MAX + 255 + + ) + +15  + #XATTR_SIZE_MAX + 65536 + + ) + +16  + #XATTR_LIST_MAX + 65536 + + ) + +18  + #RTSIG_MAX + 32 + + ) + + @/usr/include/linux/types.h + +1 #iâdeà +_LINUX_TYPES_H + + +2  + #_LINUX_TYPES_H + + + ) + +4  + ~ + +6 #iâdeà +__ASSEMBLY__ + + +8  + ~ + +16 #ifdeà +__CHECKER__ + + +17  + #__b™wi£__ + + `__©Œibu‹__ +(( +b™wi£ +)) + + ) + +19  + #__b™wi£__ + + + ) + +21 #ifdeà +__CHECK_ENDIAN__ + + +22  + #__b™wi£ + +__b™wi£__ + + + ) + +24  + #__b™wi£ + + + ) + +27  +__u16 + + t__b™wi£ + + t__Ë16 +; + +28  +__u16 + + t__b™wi£ + + t__be16 +; + +29  +__u32 + + t__b™wi£ + + t__Ë32 +; + +30  +__u32 + + t__b™wi£ + + t__be32 +; + +31  +__u64 + + t__b™wi£ + + t__Ë64 +; + +32  +__u64 + + t__b™wi£ + + t__be64 +; + +34  +__u16 + + t__b™wi£ + + t__sum16 +; + +35  +__u32 + + t__b™wi£ + + t__wsum +; + +46  + #__®igÃd_u64 + +__u64 + + `__©Œibu‹__ +(( + `®igÃd +(8))) + + ) + +47  + #__®igÃd_be64 + +__be64 + + `__©Œibu‹__ +(( + `®igÃd +(8))) + + ) + +48  + #__®igÃd_Ë64 + +__Ë64 + + `__©Œibu‹__ +(( + `®igÃd +(8))) + + ) + + @/usr/include/sched.h + +19 #iâdef +_SCHED_H + + +20  + #_SCHED_H + 1 + + ) + +22  + ~<ã©u»s.h +> + +25  + ~ + +27  + #__Ãed_size_t + + + ) + +28  + ~<¡ddef.h +> + +30  + #__Ãed_time_t + + + ) + +31  + #__Ãed_time¥ec + + + ) + +32  + ~ + +34 #iâdeà +__pid_t_defšed + + +35  +__pid_t + + tpid_t +; + +36  + #__pid_t_defšed + + + ) + +41  + ~ + +43  + #sched_´iܙy + +__sched_´iܙy + + + ) + +46 +__BEGIN_DECLS + + +49  + $sched_£¬am + ( +__pid_t + +__pid +, cÚ¡  +sched_·¿m + * +__·¿m +) + +50 +__THROW +; + +53  + $sched_g‘·¿m + ( +__pid_t + +__pid +,  +sched_·¿m + * +__·¿m +è +__THROW +; + +56  + $sched_£tscheduËr + ( +__pid_t + +__pid +,  +__pÞicy +, + +57 cÚ¡  +sched_·¿m + * +__·¿m +è +__THROW +; + +60  + $sched_g‘scheduËr + ( +__pid_t + +__pid +è +__THROW +; + +63  + $sched_y›ld + (è +__THROW +; + +66  + $sched_g‘_´iܙy_max + ( +__®gܙhm +è +__THROW +; + +69  + $sched_g‘_´iܙy_mš + ( +__®gܙhm +è +__THROW +; + +72  + $sched_¼_g‘_š‹rv® + ( +__pid_t + +__pid +,  +time¥ec + * +__t +è +__THROW +; + +75 #ifdeà +__USE_GNU + + +77  + #CPU_SETSIZE + +__CPU_SETSIZE + + + ) + +78  + #CPU_SET +( +ýu +, +ýu£ +è + `__CPU_SET_S + (ýu,  ( +ýu_£t_t +), cpu£) + + ) + +79  + #CPU_CLR +( +ýu +, +ýu£ +è + `__CPU_CLR_S + (ýu,  ( +ýu_£t_t +), cpu£) + + ) + +80  + #CPU_ISSET +( +ýu +, +ýu£ +è + `__CPU_ISSET_S + (ýu,  ( +ýu_£t_t +), \ + +81 +ýu£ +) + + ) + +82  + #CPU_ZERO +( +ýu£ +è + `__CPU_ZERO_S + ( ( +ýu_£t_t +), cpu£) + + ) + +83  + #CPU_COUNT +( +ýu£ +è + `__CPU_COUNT_S + ( ( +ýu_£t_t +), cpu£) + + ) + +85  + #CPU_SET_S +( +ýu +, +£tsize +, +ýu£ +è + `__CPU_SET_S + (ýu, s‘size, cpu£) + + ) + +86  + #CPU_CLR_S +( +ýu +, +£tsize +, +ýu£ +è + `__CPU_CLR_S + (ýu, s‘size, cpu£) + + ) + +87  + #CPU_ISSET_S +( +ýu +, +£tsize +, +ýu£ +è + `__CPU_ISSET_S + (cpu, setsize, \ + +88 +ýu£ +) + + ) + +89  + #CPU_ZERO_S +( +£tsize +, +ýu£ +è + `__CPU_ZERO_S + (£tsize, cpu£) + + ) + +90  + #CPU_COUNT_S +( +£tsize +, +ýu£ +è + `__CPU_COUNT_S + (£tsize, cpu£) + + ) + +92  + #CPU_EQUAL +( +ýu£1 +, +ýu£2 +) \ + +93 + `__CPU_EQUAL_S + ( ( +ýu_£t_t +), +ýu£1 +, +ýu£2 +) + + ) + +94  + #CPU_EQUAL_S +( +£tsize +, +ýu£1 +, +ýu£2 +) \ + +95 + `__CPU_EQUAL_S + ( +£tsize +, +ýu£1 +, +ýu£2 +) + + ) + +97  + #CPU_AND +( +de¡£t +, +¤c£t1 +, +¤c£t2 +) \ + +98 + `__CPU_OP_S + ( ( +ýu_£t_t +), +de¡£t +, +¤c£t1 +, +¤c£t2 +, &) + + ) + +99  + #CPU_OR +( +de¡£t +, +¤c£t1 +, +¤c£t2 +) \ + +100 + `__CPU_OP_S + ( ( +ýu_£t_t +), +de¡£t +, +¤c£t1 +, +¤c£t2 +, |) + + ) + +101  + #CPU_XOR +( +de¡£t +, +¤c£t1 +, +¤c£t2 +) \ + +102 + `__CPU_OP_S + ( ( +ýu_£t_t +), +de¡£t +, +¤c£t1 +, +¤c£t2 +, ^) + + ) + +103  + #CPU_AND_S +( +£tsize +, +de¡£t +, +¤c£t1 +, +¤c£t2 +) \ + +104 + `__CPU_OP_S + ( +£tsize +, +de¡£t +, +¤c£t1 +, +¤c£t2 +, &) + + ) + +105  + #CPU_OR_S +( +£tsize +, +de¡£t +, +¤c£t1 +, +¤c£t2 +) \ + +106 + `__CPU_OP_S + ( +£tsize +, +de¡£t +, +¤c£t1 +, +¤c£t2 +, |) + + ) + +107  + #CPU_XOR_S +( +£tsize +, +de¡£t +, +¤c£t1 +, +¤c£t2 +) \ + +108 + `__CPU_OP_S + ( +£tsize +, +de¡£t +, +¤c£t1 +, +¤c£t2 +, ^) + + ) + +110  + #CPU_ALLOC_SIZE +( +couÁ +è + `__CPU_ALLOC_SIZE + (couÁ) + + ) + +111  + #CPU_ALLOC +( +couÁ +è + `__CPU_ALLOC + (couÁ) + + ) + +112  + #CPU_FREE +( +ýu£t +è + `__CPU_FREE + (ýu£t) + + ) + +116  + $sched_£ffš™y + ( +__pid_t + +__pid +, +size_t + +__ýu£tsize +, + +117 cÚ¡ +ýu_£t_t + * +__ýu£t +è +__THROW +; + +120  + $sched_g‘affš™y + ( +__pid_t + +__pid +, +size_t + +__ýu£tsize +, + +121 +ýu_£t_t + * +__ýu£t +è +__THROW +; + +124 +__END_DECLS + + + @/usr/include/xlocale.h + +20 #iâdeà +_XLOCALE_H + + +21  + #_XLOCALE_H + 1 + + ) + +27  + s__loÿË_¡ruù + + +30  +__loÿË_d©a + * + m__loÿËs +[13]; + +33 cÚ¡ * + m__ùy³_b +; + +34 cÚ¡ * + m__ùy³_tÞow” +; + +35 cÚ¡ * + m__ùy³_touµ” +; + +38 cÚ¡ * + m__Çmes +[13]; + +39 } * + t__loÿË_t +; + +42  +__loÿË_t + + tloÿË_t +; + + @/usr/include/_G_config.h + +4 #iâdeà +_G_cÚfig_h + + +5  + #_G_cÚfig_h + 1 + + ) + +9  + ~ + +10  + #__Ãed_size_t + + + ) + +11 #ià +defšed + +_LIBC + || defšed +_GLIBCPP_USE_WCHAR_T + + +12  + #__Ãed_wch¬_t + + + ) + +14  + #__Ãed_NULL + + + ) + +15  + ~<¡ddef.h +> + +16  + #__Ãed_mb¡©e_t + + + ) + +17 #ià +defšed + +_LIBC + || defšed +_GLIBCPP_USE_WCHAR_T + + +18  + #__Ãed_wšt_t + + + ) + +20  + ~ + +23 +__off_t + + m__pos +; + +24 +__mb¡©e_t + + m__¡©e +; + +25 } + t_G_åos_t +; + +28 +__off64_t + + m__pos +; + +29 +__mb¡©e_t + + m__¡©e +; + +30 } + t_G_åos64_t +; + +31 #ià +defšed + +_LIBC + || defšed +_GLIBCPP_USE_WCHAR_T + + +32  + ~ + +35  +__gcÚv_šfo + + m__cd +; + +38  +__gcÚv_šfo + + m__cd +; + +39  +__gcÚv_¡•_d©a + + m__d©a +; + +40 } + m__combšed +; + +41 } + t_G_icÚv_t +; + +46  + #_G_va_li¡ + +__gnuc_va_li¡ + + + ) + +48  + #_G_HAVE_MMAP + 1 + + ) + +49  + #_G_HAVE_MREMAP + 1 + + ) + +51  + #_G_IO_IO_FILE_VERSION + 0x20001 + + ) + +54  + #_G_HAVE_ST_BLKSIZE + + `defšed + ( +_STATBUF_ST_BLKSIZE +) + + ) + +56  + #_G_BUFSIZ + 8192 + + ) + + @/usr/include/ctype.h + +22 #iâdef +_CTYPE_H + + +23  + #_CTYPE_H + 1 + + ) + +25  + ~<ã©u»s.h +> + +26  + ~ + +28 + g__BEGIN_DECLS + + +30 #iâdeà +_ISb™ + + +39  + ~<’dŸn.h +> + +40 #ià +__BYTE_ORDER + =ð +__BIG_ENDIAN + + +41  + #_ISb™ +( +b™ +è(1 << (b™)) + + ) + +43  + #_ISb™ +( +b™ +è((b™è< 8 ? ((1 << (b™)è<< 8è: ((1 << (b™)è>> 8)) + + ) + +48 + m_ISuµ” + = +_ISb™ + (0), + +49 + m_ISlow” + = +_ISb™ + (1), + +50 + m_IS®pha + = +_ISb™ + (2), + +51 + m_ISdig™ + = +_ISb™ + (3), + +52 + m_ISxdig™ + = +_ISb™ + (4), + +53 + m_IS¥aû + = +_ISb™ + (5), + +54 + m_IS´št + = +_ISb™ + (6), + +55 + m_ISg¿ph + = +_ISb™ + (7), + +56 + m_ISbÏnk + = +_ISb™ + (8), + +57 + m_ISúŒl + = +_ISb™ + (9), + +58 + m_ISpunù + = +_ISb™ + (10), + +59 + m_IS®num + = +_ISb™ + (11) + +79 cÚ¡ ** + $__ùy³_b_loc + () + +80 +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)); + +81 cÚ¡ +__št32_t + ** + $__ùy³_tÞow”_loc + () + +82 +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)); + +83 cÚ¡ +__št32_t + ** + $__ùy³_touµ”_loc + () + +84 +__THROW + + `__©Œibu‹__ + (( +__cÚ¡__ +)); + +87 #iâdeà +__ýlu¥lus + + +88  + #__isùy³ +( +c +, +ty³ +) \ + +89 ((* + `__ùy³_b_loc + ())[(è( +c +)] & (è +ty³ +) + + ) + +90 #–ià +defšed + +__USE_EXTERN_INLINES + + +91  + #__isùy³_f +( +ty³ +) \ + +92 +__ex‹º_šlše + \ + +93 +is +## + `ty³ + ( +__c +è +__THROW + \ + +95  (* + `__ùy³_b_loc + ())[(è( +__c +)] & (è +_IS +## +ty³ +; \ + +96 + } + + ) +} + +99  + #__i§scii +( +c +è(((cè& ~0x7fè=ð0è + + ) + +100  + #__tßscii +( +c +è((cè& 0x7fè + + ) + +102  + #__exùy³ +( +Çme +è  + `Çme + (è +__THROW + + + ) + +104 +__BEGIN_NAMESPACE_STD + + +110 +__exùy³ + ( +i§Êum +); + +111 +__exùy³ + ( +i§Íha +); + +112 +__exùy³ + ( +isúŒl +); + +113 +__exùy³ + ( +isdig™ +); + +114 +__exùy³ + ( +i¦ow” +); + +115 +__exùy³ + ( +isg¿ph +); + +116 +__exùy³ + ( +i¥ršt +); + +117 +__exùy³ + ( +i¥unù +); + +118 +__exùy³ + ( +is¥aû +); + +119 +__exùy³ + ( +isuµ” +); + +120 +__exùy³ + ( +isxdig™ +); + +124  + $tÞow” + ( +__c +è +__THROW +; + +127  + $touµ” + ( +__c +è +__THROW +; + +129 +__END_NAMESPACE_STD + + +133 #ifdef +__USE_ISOC99 + + +134 +__BEGIN_NAMESPACE_C99 + + +136 + `__exùy³ + ( +isbÏnk +); + +138 +__END_NAMESPACE_C99 + + +141 #ifdeà +__USE_GNU + + +143  + $isùy³ + ( +__c +,  +__mask +è +__THROW +; + +146 #ià +defšed + +__USE_SVID + || defšed +__USE_MISC + || defšed +__USE_XOPEN + + +150  + $i§scii + ( +__c +è +__THROW +; + +154  + $tßscii + ( +__c +è +__THROW +; + +158 + `__exùy³ + ( +_touµ” +); + +159 + `__exùy³ + ( +_tÞow” +); + +163  + #__tobody +( +c +, +f +, +a +, +¬gs +) \ + +164 ( +__ex‹nsiÚ__ + \ + +165 ({  +__»s +; \ + +166 ià( ( +c +) > 1) \ + +168 ià( + `__bužtš_cÚ¡ªt_p + ( +c +)) \ + +170  +__c + = ( +c +); \ + +171 +__»s + = +__c + < -128 || __ø> 255 ? __ø: ( +a +)[__c]; \ + +174 +__»s + = +f + +¬gs +; \ + +177 +__»s + = ( +a +)[(è( +c +)]; \ + +178 +__»s +; + } +})) + + ) + +180 #ià! +defšed + +__NO_CTYPE + + +181 #ifdeà +__isùy³_f + + +182 + $__isùy³_f + ( +®num +) + +183 + $__isùy³_f + ( +®pha +) + +184 + $__isùy³_f + ( +úŒl +) + +185 + $__isùy³_f + ( +dig™ +) + +186 + $__isùy³_f + ( +low” +) + +187 + $__isùy³_f + ( +g¿ph +) + +188 + $__isùy³_f + ( +´št +) + +189 + $__isùy³_f + ( +punù +) + +190 + $__isùy³_f + ( +¥aû +) + +191 + $__isùy³_f + ( +uµ” +) + +192 + $__isùy³_f + ( +xdig™ +) + +193 #ifdeà +__USE_ISOC99 + + +194 + $__isùy³_f + ( +bÏnk +) + +196 #–ià +defšed + +__isùy³ + + +197  + #i§Êum +( +c +è + `__isùy³ +((c), +_IS®num +) + + ) + +198  + #i§Íha +( +c +è + `__isùy³ +((c), +_IS®pha +) + + ) + +199  + #isúŒl +( +c +è + `__isùy³ +((c), +_ISúŒl +) + + ) + +200  + #isdig™ +( +c +è + `__isùy³ +((c), +_ISdig™ +) + + ) + +201  + #i¦ow” +( +c +è + `__isùy³ +((c), +_ISlow” +) + + ) + +202  + #isg¿ph +( +c +è + `__isùy³ +((c), +_ISg¿ph +) + + ) + +203  + #i¥ršt +( +c +è + `__isùy³ +((c), +_IS´št +) + + ) + +204  + #i¥unù +( +c +è + `__isùy³ +((c), +_ISpunù +) + + ) + +205  + #is¥aû +( +c +è + `__isùy³ +((c), +_IS¥aû +) + + ) + +206  + #isuµ” +( +c +è + `__isùy³ +((c), +_ISuµ” +) + + ) + +207  + #isxdig™ +( +c +è + `__isùy³ +((c), +_ISxdig™ +) + + ) + +208 #ifdeà +__USE_ISOC99 + + +209  + #isbÏnk +( +c +è + `__isùy³ +((c), +_ISbÏnk +) + + ) + +213 #ifdeà +__USE_EXTERN_INLINES + + +214 +__ex‹º_šlše +  + +215 + `__NTH + ( + $tÞow” + ( +__c +)) + +217  +__c + >ð-128 && __ø< 256 ? (* + `__ùy³_tÞow”_loc + ())[__c] : __c; + +218 + } +} + +220 +__ex‹º_šlše +  + +221 +__NTH + ( + $touµ” + ( +__c +)) + +223  +__c + >ð-128 && __ø< 256 ? (* + `__ùy³_touµ”_loc + ())[__c] : __c; + +224 + } +} + +227 #ià +__GNUC__ + >ð2 && +defšed + +__OPTIMIZE__ + && !defšed +__ýlu¥lus + + +228  + #tÞow” +( +c +è + `__tobody + (c, +tÞow” +, * + `__ùy³_tÞow”_loc + (), (c)) + + ) + +229  + #touµ” +( +c +è + `__tobody + (c, +touµ” +, * + `__ùy³_touµ”_loc + (), (c)) + + ) + +232 #ià +defšed + +__USE_SVID + || defšed +__USE_MISC + || defšed +__USE_XOPEN + + +233  + #i§scii +( +c +è + `__i§scii + (c) + + ) + +234  + #tßscii +( +c +è + `__tßscii + (c) + + ) + +236  + #_tÞow” +( +c +è((è(* + `__ùy³_tÞow”_loc + ())[(è(c)]) + + ) + +237  + #_touµ” +( +c +è((è(* + `__ùy³_touµ”_loc + ())[(è(c)]) + + ) + +243 #ifdeà +__USE_XOPEN2K8 + + +257  + ~ + +261  + #__isùy³_l +( +c +, +ty³ +, +loÿË +) \ + +262 (( +loÿË +)-> +__ùy³_b +[(è( +c +)] & (è +ty³ +) + + ) + +264  + #__exùy³_l +( +Çme +) \ + +265  + `Çme + (, +__loÿË_t +è +__THROW + + + ) + +271 +__exùy³_l + ( +i§Êum_l +); + +272 +__exùy³_l + ( +i§Íha_l +); + +273 +__exùy³_l + ( +isúŒl_l +); + +274 +__exùy³_l + ( +isdig™_l +); + +275 +__exùy³_l + ( +i¦ow”_l +); + +276 +__exùy³_l + ( +isg¿ph_l +); + +277 +__exùy³_l + ( +i¥ršt_l +); + +278 +__exùy³_l + ( +i¥unù_l +); + +279 +__exùy³_l + ( +is¥aû_l +); + +280 +__exùy³_l + ( +isuµ”_l +); + +281 +__exùy³_l + ( +isxdig™_l +); + +283 +__exùy³_l + ( +isbÏnk_l +); + +287  + $__tÞow”_l + ( +__c +, +__loÿË_t + +__l +è +__THROW +; + +288  + $tÞow”_l + ( +__c +, +__loÿË_t + +__l +è +__THROW +; + +291  + $__touµ”_l + ( +__c +, +__loÿË_t + +__l +è +__THROW +; + +292  + $touµ”_l + ( +__c +, +__loÿË_t + +__l +è +__THROW +; + +294 #ià +__GNUC__ + >ð2 && +defšed + +__OPTIMIZE__ + && !defšed +__ýlu¥lus + + +295  + #__tÞow”_l +( +c +, +loÿË +) \ + +296 + `__tobody + ( +c +, +__tÞow”_l +, ( +loÿË +)-> +__ùy³_tÞow” +, (c,†oÿË)) + + ) + +297  + #__touµ”_l +( +c +, +loÿË +) \ + +298 + `__tobody + ( +c +, +__touµ”_l +, ( +loÿË +)-> +__ùy³_touµ” +, (c,†oÿË)) + + ) + +299  + #tÞow”_l +( +c +, +loÿË +è + `__tÞow”_l + ((c), (loÿË)) + + ) + +300  + #touµ”_l +( +c +, +loÿË +è + `__touµ”_l + ((c), (loÿË)) + + ) + +304 #iâdeà +__NO_CTYPE + + +305  + #__i§Êum_l +( +c +, +l +è + `__isùy³_l +((c), +_IS®num +, (l)) + + ) + +306  + #__i§Íha_l +( +c +, +l +è + `__isùy³_l +((c), +_IS®pha +, (l)) + + ) + +307  + #__isúŒl_l +( +c +, +l +è + `__isùy³_l +((c), +_ISúŒl +, (l)) + + ) + +308  + #__isdig™_l +( +c +, +l +è + `__isùy³_l +((c), +_ISdig™ +, (l)) + + ) + +309  + #__i¦ow”_l +( +c +, +l +è + `__isùy³_l +((c), +_ISlow” +, (l)) + + ) + +310  + #__isg¿ph_l +( +c +, +l +è + `__isùy³_l +((c), +_ISg¿ph +, (l)) + + ) + +311  + #__i¥ršt_l +( +c +, +l +è + `__isùy³_l +((c), +_IS´št +, (l)) + + ) + +312  + #__i¥unù_l +( +c +, +l +è + `__isùy³_l +((c), +_ISpunù +, (l)) + + ) + +313  + #__is¥aû_l +( +c +, +l +è + `__isùy³_l +((c), +_IS¥aû +, (l)) + + ) + +314  + #__isuµ”_l +( +c +, +l +è + `__isùy³_l +((c), +_ISuµ” +, (l)) + + ) + +315  + #__isxdig™_l +( +c +, +l +è + `__isùy³_l +((c), +_ISxdig™ +, (l)) + + ) + +317  + #__isbÏnk_l +( +c +, +l +è + `__isùy³_l +((c), +_ISbÏnk +, (l)) + + ) + +319 #ià +defšed + +__USE_SVID + || defšed +__USE_MISC + + +320  + #__i§scii_l +( +c +, +l +è(Ö), + `__i§scii + (c)) + + ) + +321  + #__tßscii_l +( +c +, +l +è(Ö), + `__tßscii + (c)) + + ) + +324  + #i§Êum_l +( +c +, +l +è + `__i§Êum_l + ((c), (l)) + + ) + +325  + #i§Íha_l +( +c +, +l +è + `__i§Íha_l + ((c), (l)) + + ) + +326  + #isúŒl_l +( +c +, +l +è + `__isúŒl_l + ((c), (l)) + + ) + +327  + #isdig™_l +( +c +, +l +è + `__isdig™_l + ((c), (l)) + + ) + +328  + #i¦ow”_l +( +c +, +l +è + `__i¦ow”_l + ((c), (l)) + + ) + +329  + #isg¿ph_l +( +c +, +l +è + `__isg¿ph_l + ((c), (l)) + + ) + +330  + #i¥ršt_l +( +c +, +l +è + `__i¥ršt_l + ((c), (l)) + + ) + +331  + #i¥unù_l +( +c +, +l +è + `__i¥unù_l + ((c), (l)) + + ) + +332  + #is¥aû_l +( +c +, +l +è + `__is¥aû_l + ((c), (l)) + + ) + +333  + #isuµ”_l +( +c +, +l +è + `__isuµ”_l + ((c), (l)) + + ) + +334  + #isxdig™_l +( +c +, +l +è + `__isxdig™_l + ((c), (l)) + + ) + +336  + #isbÏnk_l +( +c +, +l +è + `__isbÏnk_l + ((c), (l)) + + ) + +338 #ià +defšed + +__USE_SVID + || defšed +__USE_MISC + + +339  + #i§scii_l +( +c +, +l +è + `__i§scii_l + ((c), (l)) + + ) + +340  + #tßscii_l +( +c +, +l +è + `__tßscii_l + ((c), (l)) + + ) + +347 +__END_DECLS + + + @/usr/include/linux/posix_types.h + +1 #iâdeà +_LINUX_POSIX_TYPES_H + + +2  + #_LINUX_POSIX_TYPES_H + + + ) + +4  + ~ + +21 #undeà +__FD_SETSIZE + + +22  + #__FD_SETSIZE + 1024 + + ) + +25  + mfds_b™s +[ +__FD_SETSIZE + / (8 * ())]; + +26 } + t__k”Ãl_fd_£t +; + +29 (* + t__k”Ãl_sighªdËr_t +)(); + +32  + t__k”Ãl_key_t +; + +33  + t__k”Ãl_mqd_t +; + +35  + ~ + + @/usr/include/stdc-predef.h + +18 #iâdef +_STDC_PREDEF_H + + +19  + #_STDC_PREDEF_H + 1 + + ) + +36 #ifdeà +__GCC_IEC_559 + + +37 #ià +__GCC_IEC_559 + > 0 + +38  + #__STDC_IEC_559__ + 1 + + ) + +41  + #__STDC_IEC_559__ + 1 + + ) + +44 #ifdeà +__GCC_IEC_559_COMPLEX + + +45 #ià +__GCC_IEC_559_COMPLEX + > 0 + +46  + #__STDC_IEC_559_COMPLEX__ + 1 + + ) + +49  + #__STDC_IEC_559_COMPLEX__ + 1 + + ) + +54  + #__STDC_ISO_10646__ + 201103L + + ) + +57  + #__STDC_NO_THREADS__ + 1 + + ) + + @/usr/include/gconv.h + +22 #iâdeà +_GCONV_H + + +23  + #_GCONV_H + 1 + + ) + +25  + ~<ã©u»s.h +> + +26  + #__Ãed_mb¡©e_t + + + ) + +27  + #__Ãed_wšt_t + + + ) + +28  + ~ + +29  + #__Ãed_size_t + + + ) + +30  + #__Ãed_wch¬_t + + + ) + +31  + ~<¡ddef.h +> + +34  + #__UNKNOWN_10646_CHAR + (( +wch¬_t +è0xfffd) + + ) + +39 + m__GCONV_OK + = 0, + +40 + m__GCONV_NOCONV +, + +41 + m__GCONV_NODB +, + +42 + m__GCONV_NOMEM +, + +44 + m__GCONV_EMPTY_INPUT +, + +45 + m__GCONV_FULL_OUTPUT +, + +46 + m__GCONV_ILLEGAL_INPUT +, + +47 + m__GCONV_INCOMPLETE_INPUT +, + +49 + m__GCONV_ILLEGAL_DESCRIPTOR +, + +50 + m__GCONV_INTERNAL_ERROR + + +57 + m__GCONV_IS_LAST + = 0x0001, + +58 + m__GCONV_IGNORE_ERRORS + = 0x0002, + +59 + m__GCONV_SWAP + = 0x0004 + +64  + g__gcÚv_¡• +; + +65  + g__gcÚv_¡•_d©a +; + +66  + g__gcÚv_lßded_objeù +; + +67  + g__gcÚv_Œªs_d©a +; + +71 (* + t__gcÚv_fù +è( + t__gcÚv_¡• + *,  + t__gcÚv_¡•_d©a + *, + +73 **, + tsize_t + *, , ); + +76  + $wšt_t + (* + t__gcÚv_btowc_fù +è( + t__gcÚv_¡• + *, ); + +79 (* + t__gcÚv_š™_fù +è( + t__gcÚv_¡• + *); + +80 (* + t__gcÚv_’d_fù +è( + t__gcÚv_¡• + *); + +84 (* + t__gcÚv_Œªs_fù +è( + t__gcÚv_¡• + *, + +85  + t__gcÚv_¡•_d©a + *, *, + +89 + tsize_t + *); + +92 (* + t__gcÚv_Œªs_cڋxt_fù +) (*, const *, + +97 (* + t__gcÚv_Œªs_qu”y_fù +) (const *, const ***, + +98 + tsize_t + *); + +101 (* + t__gcÚv_Œªs_š™_fù +) (**, const *); + +102 (* + t__gcÚv_Œªs_’d_fù +) (*); + +104  + s__gcÚv_Œªs_d©a + + +107 +__gcÚv_Œªs_fù + +__Œªs_fù +; + +108 +__gcÚv_Œªs_cڋxt_fù + +__Œªs_cڋxt_fù +; + +109 +__gcÚv_Œªs_’d_fù + +__Œªs_’d_fù +; + +110 * +__d©a +; + +111  +__gcÚv_Œªs_d©a + * +__Ãxt +; + +116  + s__gcÚv_¡• + + +118  +__gcÚv_lßded_objeù + * +__shlib_hªdË +; + +119 cÚ¡ * +__modÇme +; + +121  +__couÁ” +; + +123 * +__äom_Çme +; + +124 * +__to_Çme +; + +126 +__gcÚv_fù + +__fù +; + +127 +__gcÚv_btowc_fù + +__btowc_fù +; + +128 +__gcÚv_š™_fù + +__š™_fù +; + +129 +__gcÚv_’d_fù + +__’d_fù +; + +133  +__mš_Ãeded_äom +; + +134  +__max_Ãeded_äom +; + +135  +__mš_Ãeded_to +; + +136  +__max_Ãeded_to +; + +139  +__¡©eful +; + +141 * +__d©a +; + +146  + s__gcÚv_¡•_d©a + + +148 * +__outbuf +; + +149 * +__outbuãnd +; + +153  +__æags +; + +157  +__švoÿtiÚ_couÁ” +; + +161  +__š‹º®_u£ +; + +163 +__mb¡©e_t + * +__¡©• +; + +164 +__mb¡©e_t + +__¡©e +; + +168  +__gcÚv_Œªs_d©a + * +__Œªs +; + +173  + s__gcÚv_šfo + + +175 +size_t + +__n¡•s +; + +176  +__gcÚv_¡• + * +__¡•s +; + +177 +__ex‹nsiÚ__ +  +__gcÚv_¡•_d©a + +__d©a + +__æex¬r +; + +178 } * + t__gcÚv_t +; + + @/usr/include/linux/stddef.h + + @/usr/include/wchar.h + +23 #iâdeà +_WCHAR_H + + +25 #ià! +defšed + +__Ãed_mb¡©e_t + && !defšed +__Ãed_wšt_t + + +26  + #_WCHAR_H + 1 + + ) + +27  + ~<ã©u»s.h +> + +30 #ifdeà +_WCHAR_H + + +32  + #__Ãed___FILE + + + ) + +33 #ià +defšed + +__USE_UNIX98 + || defšed +__USE_XOPEN2K + + +34  + #__Ãed_FILE + + + ) + +36  + ~<¡dio.h +> + +38  + #__Ãed___va_li¡ + + + ) + +39  + ~<¡d¬g.h +> + +41  + ~ + +44  + #__Ãed_size_t + + + ) + +45  + #__Ãed_wch¬_t + + + ) + +46  + #__Ãed_NULL + + + ) + +48 #ià +defšed + +_WCHAR_H + || defšed +__Ãed_wšt_t + || !defšed +__WINT_TYPE__ + + +49 #undeà +__Ãed_wšt_t + + +50  + #__Ãed_wšt_t + + + ) + +51  + ~<¡ddef.h +> + +55 #iâdeà +_WINT_T + + +60  + #_WINT_T + + + ) + +61  + twšt_t +; + +65 #ià +defšed + +__ýlu¥lus + && defšed +_GLIBCPP_USE_NAMESPACES + \ + +66 && +defšed + +__WINT_TYPE__ + + +67 +__BEGIN_NAMESPACE_STD + + +68  +__WINT_TYPE__ + + twšt_t +; + +69 + g__END_NAMESPACE_STD + + +74 #ià +defšed + +__ýlu¥lus + && +__GNUC_PREREQ + (4, 4) + +75  + #__CORRECT_ISO_CPP_WCHAR_H_PROTO + + + ) + +79 #ià( +defšed + +_WCHAR_H + || defšed +__Ãed_mb¡©e_t +è&& !defšed +____mb¡©e_t_defšed + + +80  + #____mb¡©e_t_defšed + 1 + + ) + +84  + m__couÁ +; + +87 #ifdeà +__WINT_TYPE__ + + +88 +__WINT_TYPE__ + + m__wch +; + +90 +wšt_t + + m__wch +; + +92  + m__wchb +[4]; + +93 } + m__v®ue +; + +94 } + t__mb¡©e_t +; + +96 #undeà +__Ãed_mb¡©e_t + + +101 #ifdeà +_WCHAR_H + + +103 #iâdeà +__mb¡©e_t_defšed + + +104 +__BEGIN_NAMESPACE_C99 + + +106  +__mb¡©e_t + + tmb¡©e_t +; + +107 + g__END_NAMESPACE_C99 + + +108  + #__mb¡©e_t_defšed + 1 + + ) + +111 #ifdeà +__USE_GNU + + +112 + $__USING_NAMESPACE_C99 +( +mb¡©e_t +) + +115 #iâdeà +WCHAR_MIN + + +117  + #WCHAR_MIN + +__WCHAR_MIN + + + ) + +118  + #WCHAR_MAX + +__WCHAR_MAX + + + ) + +121 #iâdeà +WEOF + + +122  + #WEOF + (0xffffffffu) + + ) + +127 #ià +defšed + +__USE_XOPEN + && !defšed +__USE_UNIX98 + + +128  + ~ + +132 +__BEGIN_DECLS + + +134 +__BEGIN_NAMESPACE_STD + + +137  +tm +; + +138 +__END_NAMESPACE_STD + + +142 + $__USING_NAMESPACE_STD +( +tm +) + +145 +__BEGIN_NAMESPACE_STD + + +147 +wch¬_t + * + $wcsýy + ( +wch¬_t + * +__»¡riù + +__de¡ +, + +148 cÚ¡ +wch¬_t + * +__»¡riù + +__¤c +è +__THROW +; + +150 +wch¬_t + * + $wc¢ýy + ( +wch¬_t + * +__»¡riù + +__de¡ +, + +151 cÚ¡ +wch¬_t + * +__»¡riù + +__¤c +, +size_t + +__n +) + +152 +__THROW +; + +155 +wch¬_t + * + $wcsÿt + ( +wch¬_t + * +__»¡riù + +__de¡ +, + +156 cÚ¡ +wch¬_t + * +__»¡riù + +__¤c +è +__THROW +; + +158 +wch¬_t + * + $wc¢ÿt + ( +wch¬_t + * +__»¡riù + +__de¡ +, + +159 cÚ¡ +wch¬_t + * +__»¡riù + +__¤c +, +size_t + +__n +) + +160 +__THROW +; + +163  + $wcscmp + (cÚ¡ +wch¬_t + * +__s1 +, cÚ¡ wch¬_ˆ* +__s2 +) + +164 +__THROW + +__©Œibu‹_pu»__ +; + +166  + $wc¢cmp + (cÚ¡ +wch¬_t + * +__s1 +, cÚ¡ wch¬_ˆ* +__s2 +, +size_t + +__n +) + +167 +__THROW + +__©Œibu‹_pu»__ +; + +168 +__END_NAMESPACE_STD + + +170 #ifdeà +__USE_XOPEN2K8 + + +172  + $wcsÿ£cmp + (cÚ¡ +wch¬_t + * +__s1 +, cÚ¡ wch¬_ˆ* +__s2 +è +__THROW +; + +175  + $wc¢ÿ£cmp + (cÚ¡ +wch¬_t + * +__s1 +, cÚ¡ wch¬_ˆ* +__s2 +, + +176 +size_t + +__n +è +__THROW +; + +180  + ~ + +182  + $wcsÿ£cmp_l + (cÚ¡ +wch¬_t + * +__s1 +, cÚ¡ wch¬_ˆ* +__s2 +, + +183 +__loÿË_t + +__loc +è +__THROW +; + +185  + $wc¢ÿ£cmp_l + (cÚ¡ +wch¬_t + * +__s1 +, cÚ¡ wch¬_ˆ* +__s2 +, + +186 +size_t + +__n +, +__loÿË_t + +__loc +è +__THROW +; + +189 +__BEGIN_NAMESPACE_STD + + +192  + $wcscÞl + (cÚ¡ +wch¬_t + * +__s1 +, cÚ¡ wch¬_ˆ* +__s2 +è +__THROW +; + +196 +size_t + + $wcsxäm + ( +wch¬_t + * +__»¡riù + +__s1 +, + +197 cÚ¡ +wch¬_t + * +__»¡riù + +__s2 +, +size_t + +__n +è +__THROW +; + +198 +__END_NAMESPACE_STD + + +200 #ifdeà +__USE_XOPEN2K8 + + +206  + $wcscÞl_l + (cÚ¡ +wch¬_t + * +__s1 +, cÚ¡ wch¬_ˆ* +__s2 +, + +207 +__loÿË_t + +__loc +è +__THROW +; + +212 +size_t + + $wcsxäm_l + ( +wch¬_t + * +__s1 +, cÚ¡ wch¬_ˆ* +__s2 +, + +213 +size_t + +__n +, +__loÿË_t + +__loc +è +__THROW +; + +216 +wch¬_t + * + $wcsdup + (cÚ¡ +wch¬_t + * +__s +è +__THROW + +__©Œibu‹_m®loc__ +; + +219 +__BEGIN_NAMESPACE_STD + + +221 #ifdeà +__CORRECT_ISO_CPP_WCHAR_H_PROTO + + +222 "C++" +wch¬_t + * + $wcschr + ( +wch¬_t + * +__wcs +, wch¬_ˆ +__wc +) + +223 +__THROW + + `__asm + ("wcschr"è +__©Œibu‹_pu»__ +; + +224 "C++" cÚ¡ +wch¬_t + * + $wcschr + (cÚ¡ +wch¬_t + * +__wcs +, wch¬_ˆ +__wc +) + +225 +__THROW + + `__asm + ("wcschr"è +__©Œibu‹_pu»__ +; + +227 +wch¬_t + * + $wcschr + (cÚ¡ +wch¬_t + * +__wcs +, wch¬_ˆ +__wc +) + +228 +__THROW + +__©Œibu‹_pu»__ +; + +231 #ifdeà +__CORRECT_ISO_CPP_WCHAR_H_PROTO + + +232 "C++" +wch¬_t + * + $wc¤chr + ( +wch¬_t + * +__wcs +, wch¬_ˆ +__wc +) + +233 +__THROW + + `__asm + ("wc¤chr"è +__©Œibu‹_pu»__ +; + +234 "C++" cÚ¡ +wch¬_t + * + $wc¤chr + (cÚ¡ +wch¬_t + * +__wcs +, wch¬_ˆ +__wc +) + +235 +__THROW + + `__asm + ("wc¤chr"è +__©Œibu‹_pu»__ +; + +237 +wch¬_t + * + $wc¤chr + (cÚ¡ +wch¬_t + * +__wcs +, wch¬_ˆ +__wc +) + +238 +__THROW + +__©Œibu‹_pu»__ +; + +240 +__END_NAMESPACE_STD + + +242 #ifdeà +__USE_GNU + + +245 +wch¬_t + * + $wcschºul + (cÚ¡ +wch¬_t + * +__s +, wch¬_ˆ +__wc +) + +246 +__THROW + +__©Œibu‹_pu»__ +; + +249 +__BEGIN_NAMESPACE_STD + + +252 +size_t + + $wcsc¥n + (cÚ¡ +wch¬_t + * +__wcs +, cÚ¡ wch¬_ˆ* +__»jeù +) + +253 +__THROW + +__©Œibu‹_pu»__ +; + +256 +size_t + + $wcs¥n + (cÚ¡ +wch¬_t + * +__wcs +, cÚ¡ wch¬_ˆ* +__acû± +) + +257 +__THROW + +__©Œibu‹_pu»__ +; + +259 #ifdeà +__CORRECT_ISO_CPP_WCHAR_H_PROTO + + +260 "C++" +wch¬_t + * + $wc¥brk + ( +wch¬_t + * +__wcs +, cÚ¡ wch¬_ˆ* +__acû± +) + +261 +__THROW + + `__asm + ("wc¥brk"è +__©Œibu‹_pu»__ +; + +262 "C++" cÚ¡ +wch¬_t + * + $wc¥brk + (cÚ¡ +wch¬_t + * +__wcs +, + +263 cÚ¡ +wch¬_t + * +__acû± +) + +264 +__THROW + + `__asm + ("wc¥brk"è +__©Œibu‹_pu»__ +; + +266 +wch¬_t + * + $wc¥brk + (cÚ¡ +wch¬_t + * +__wcs +, cÚ¡ wch¬_ˆ* +__acû± +) + +267 +__THROW + +__©Œibu‹_pu»__ +; + +270 #ifdeà +__CORRECT_ISO_CPP_WCHAR_H_PROTO + + +271 "C++" +wch¬_t + * + $wcs¡r + ( +wch¬_t + * +__hay¡ack +, cÚ¡ wch¬_ˆ* +__ÃedË +) + +272 +__THROW + + `__asm + ("wcs¡r"è +__©Œibu‹_pu»__ +; + +273 "C++" cÚ¡ +wch¬_t + * + $wcs¡r + (cÚ¡ +wch¬_t + * +__hay¡ack +, + +274 cÚ¡ +wch¬_t + * +__ÃedË +) + +275 +__THROW + + `__asm + ("wcs¡r"è +__©Œibu‹_pu»__ +; + +277 +wch¬_t + * + $wcs¡r + (cÚ¡ +wch¬_t + * +__hay¡ack +, cÚ¡ wch¬_ˆ* +__ÃedË +) + +278 +__THROW + +__©Œibu‹_pu»__ +; + +282 +wch¬_t + * + $wc¡ok + ( +wch¬_t + * +__»¡riù + +__s +, + +283 cÚ¡ +wch¬_t + * +__»¡riù + +__d–im +, + +284 +wch¬_t + ** +__»¡riù + +__±r +è +__THROW +; + +287 +size_t + + $wc¦’ + (cÚ¡ +wch¬_t + * +__s +è +__THROW + +__©Œibu‹_pu»__ +; + +288 +__END_NAMESPACE_STD + + +290 #ifdeà +__USE_XOPEN + + +292 #ifdeà +__CORRECT_ISO_CPP_WCHAR_H_PROTO + + +293 "C++" +wch¬_t + * + $wcswcs + ( +wch¬_t + * +__hay¡ack +, cÚ¡ wch¬_ˆ* +__ÃedË +) + +294 +__THROW + + `__asm + ("wcswcs"è +__©Œibu‹_pu»__ +; + +295 "C++" cÚ¡ +wch¬_t + * + $wcswcs + (cÚ¡ +wch¬_t + * +__hay¡ack +, + +296 cÚ¡ +wch¬_t + * +__ÃedË +) + +297 +__THROW + + `__asm + ("wcswcs"è +__©Œibu‹_pu»__ +; + +299 +wch¬_t + * + $wcswcs + (cÚ¡ +wch¬_t + * +__hay¡ack +, cÚ¡ wch¬_ˆ* +__ÃedË +) + +300 +__THROW + +__©Œibu‹_pu»__ +; + +304 #ifdeà +__USE_XOPEN2K8 + + +306 +size_t + + $wc¢Ën + (cÚ¡ +wch¬_t + * +__s +, +size_t + +__maxËn +) + +307 +__THROW + +__©Œibu‹_pu»__ +; + +311 +__BEGIN_NAMESPACE_STD + + +313 #ifdeà +__CORRECT_ISO_CPP_WCHAR_H_PROTO + + +314 "C++" +wch¬_t + * + $wmemchr + ( +wch¬_t + * +__s +, wch¬_ˆ +__c +, +size_t + +__n +) + +315 +__THROW + + `__asm + ("wmemchr"è +__©Œibu‹_pu»__ +; + +316 "C++" cÚ¡ +wch¬_t + * + $wmemchr + (cÚ¡ +wch¬_t + * +__s +, wch¬_ˆ +__c +, + +317 +size_t + +__n +) + +318 +__THROW + + `__asm + ("wmemchr"è +__©Œibu‹_pu»__ +; + +320 +wch¬_t + * + $wmemchr + (cÚ¡ +wch¬_t + * +__s +, wch¬_ˆ +__c +, +size_t + +__n +) + +321 +__THROW + +__©Œibu‹_pu»__ +; + +325  + $wmemcmp + (cÚ¡ +wch¬_t + * +__s1 +, cÚ¡ wch¬_ˆ* +__s2 +, +size_t + +__n +) + +326 +__THROW + +__©Œibu‹_pu»__ +; + +329 +wch¬_t + * + $wmemýy + ( +wch¬_t + * +__»¡riù + +__s1 +, + +330 cÚ¡ +wch¬_t + * +__»¡riù + +__s2 +, +size_t + +__n +è +__THROW +; + +334 +wch¬_t + * + $wmemmove + ( +wch¬_t + * +__s1 +, cÚ¡ wch¬_ˆ* +__s2 +, +size_t + +__n +) + +335 +__THROW +; + +338 +wch¬_t + * + $wmem£t + ( +wch¬_t + * +__s +, wch¬_ˆ +__c +, +size_t + +__n +è +__THROW +; + +339 +__END_NAMESPACE_STD + + +341 #ifdeà +__USE_GNU + + +344 +wch¬_t + * + $wmempýy + ( +wch¬_t + * +__»¡riù + +__s1 +, + +345 cÚ¡ +wch¬_t + * +__»¡riù + +__s2 +, +size_t + +__n +) + +346 +__THROW +; + +350 +__BEGIN_NAMESPACE_STD + + +353 +wšt_t + + $btowc + ( +__c +è +__THROW +; + +357  + $wùob + ( +wšt_t + +__c +è +__THROW +; + +361  + $mbsš™ + (cÚ¡ +mb¡©e_t + * +__ps +è +__THROW + +__©Œibu‹_pu»__ +; + +365 +size_t + + $mb¹owc + ( +wch¬_t + * +__»¡riù + +__pwc +, + +366 cÚ¡ * +__»¡riù + +__s +, +size_t + +__n +, + +367 +mb¡©e_t + * +__»¡riù + +__p +è +__THROW +; + +370 +size_t + + $wütomb + (* +__»¡riù + +__s +, +wch¬_t + +__wc +, + +371 +mb¡©e_t + * +__»¡riù + +__ps +è +__THROW +; + +374 +size_t + + $__mb¾’ + (cÚ¡ * +__»¡riù + +__s +, +size_t + +__n +, + +375 +mb¡©e_t + * +__»¡riù + +__ps +è +__THROW +; + +376 +size_t + + $mb¾’ + (cÚ¡ * +__»¡riù + +__s +, +size_t + +__n +, + +377 +mb¡©e_t + * +__»¡riù + +__ps +è +__THROW +; + +378 +__END_NAMESPACE_STD + + +380 #ifdeà +__USE_EXTERN_INLINES + + +386 +wšt_t + + $__btowc_®Ÿs + ( +__c +è + `__asm + ("btowc"); + +387 +__ex‹º_šlše + +wšt_t + + +388 + `__NTH + ( + $btowc + ( +__c +)) + +389 {  ( + `__bužtš_cÚ¡ªt_p + ( +__c +) && __c >= '\0' && __c <= '\x7f' + +390 ? ( +wšt_t +è +__c + : + `__btowc_®Ÿs + (__c)); + } +} + +392  + $__wùob_®Ÿs + ( +wšt_t + +__c +è + `__asm + ("wctob"); + +393 +__ex‹º_šlše +  + +394 + `__NTH + ( + $wùob + ( +wšt_t + +__wc +)) + +395 {  ( + `__bužtš_cÚ¡ªt_p + ( +__wc +è&& __wø>ð +L +'\0' && __wc <= L'\x7f' + +396 ? (è +__wc + : + `__wùob_®Ÿs + (__wc)); + } +} + +398 +__ex‹º_šlše + +size_t + + +399 +__NTH + ( + $mb¾’ + (cÚ¡ * +__»¡riù + +__s +, +size_t + +__n +, + +400 +mb¡©e_t + * +__»¡riù + +__ps +)) + +401 {  ( +__ps + !ð +NULL + + +402 ? + `mb¹owc + ( +NULL +, +__s +, +__n +, +__ps +è: + `__mb¾’ + (__s, __n, NULL)); + } +} + +405 +__BEGIN_NAMESPACE_STD + + +408 +size_t + + $mb¤towcs + ( +wch¬_t + * +__»¡riù + +__d¡ +, + +409 cÚ¡ ** +__»¡riù + +__¤c +, +size_t + +__Ën +, + +410 +mb¡©e_t + * +__»¡riù + +__ps +è +__THROW +; + +414 +size_t + + $wc¤tombs + (* +__»¡riù + +__d¡ +, + +415 cÚ¡ +wch¬_t + ** +__»¡riù + +__¤c +, +size_t + +__Ën +, + +416 +mb¡©e_t + * +__»¡riù + +__ps +è +__THROW +; + +417 +__END_NAMESPACE_STD + + +420 #ifdef +__USE_XOPEN2K8 + + +423 +size_t + + $mb¢¹owcs + ( +wch¬_t + * +__»¡riù + +__d¡ +, + +424 cÚ¡ ** +__»¡riù + +__¤c +, +size_t + +__nmc +, + +425 +size_t + +__Ën +, +mb¡©e_t + * +__»¡riù + +__ps +è +__THROW +; + +429 +size_t + + $wc¢¹ombs + (* +__»¡riù + +__d¡ +, + +430 cÚ¡ +wch¬_t + ** +__»¡riù + +__¤c +, + +431 +size_t + +__nwc +, size_ˆ +__Ën +, + +432 +mb¡©e_t + * +__»¡riù + +__ps +è +__THROW +; + +437 #ifdeà +__USE_XOPEN + + +439  + $wcwidth + ( +wch¬_t + +__c +è +__THROW +; + +443  + $wcswidth + (cÚ¡ +wch¬_t + * +__s +, +size_t + +__n +è +__THROW +; + +447 +__BEGIN_NAMESPACE_STD + + +450  + $wc¡od + (cÚ¡ +wch¬_t + * +__»¡riù + +__Ō +, + +451 +wch¬_t + ** +__»¡riù + +__’d±r +è +__THROW +; + +452 +__END_NAMESPACE_STD + + +454 #ifdeà +__USE_ISOC99 + + +455 +__BEGIN_NAMESPACE_C99 + + +457  + $wc¡of + (cÚ¡ +wch¬_t + * +__»¡riù + +__Ō +, + +458 +wch¬_t + ** +__»¡riù + +__’d±r +è +__THROW +; + +459  + $wc¡Þd + (cÚ¡ +wch¬_t + * +__»¡riù + +__Ō +, + +460 +wch¬_t + ** +__»¡riù + +__’d±r +è +__THROW +; + +461 +__END_NAMESPACE_C99 + + +465 +__BEGIN_NAMESPACE_STD + + +468  + $wc¡Þ + (cÚ¡ +wch¬_t + * +__»¡riù + +__Ō +, + +469 +wch¬_t + ** +__»¡riù + +__’d±r +,  +__ba£ +è +__THROW +; + +473  + $wc¡oul + (cÚ¡ +wch¬_t + * +__»¡riù + +__Ō +, + +474 +wch¬_t + ** +__»¡riù + +__’d±r +,  +__ba£ +) + +475 +__THROW +; + +476 +__END_NAMESPACE_STD + + +478 #ifdeà +__USE_ISOC99 + + +479 +__BEGIN_NAMESPACE_C99 + + +482 +__ex‹nsiÚ__ + + +483  + $wc¡Þl + (cÚ¡ +wch¬_t + * +__»¡riù + +__Ō +, + +484 +wch¬_t + ** +__»¡riù + +__’d±r +,  +__ba£ +) + +485 +__THROW +; + +489 +__ex‹nsiÚ__ + + +490  + $wc¡ouÎ + (cÚ¡ +wch¬_t + * +__»¡riù + +__Ō +, + +491 +wch¬_t + ** +__»¡riù + +__’d±r +, + +492  +__ba£ +è +__THROW +; + +493 +__END_NAMESPACE_C99 + + +496 #ifdeà +__USE_GNU + + +499 +__ex‹nsiÚ__ + + +500  + $wc¡oq + (cÚ¡ +wch¬_t + * +__»¡riù + +__Ō +, + +501 +wch¬_t + ** +__»¡riù + +__’d±r +,  +__ba£ +) + +502 +__THROW +; + +506 +__ex‹nsiÚ__ + + +507  + $wc¡ouq + (cÚ¡ +wch¬_t + * +__»¡riù + +__Ō +, + +508 +wch¬_t + ** +__»¡riù + +__’d±r +, + +509  +__ba£ +è +__THROW +; + +512 #ifdeà +__USE_GNU + + +526  + ~ + +530  + $wc¡Þ_l + (cÚ¡ +wch¬_t + * +__»¡riù + +__Ō +, + +531 +wch¬_t + ** +__»¡riù + +__’d±r +,  +__ba£ +, + +532 +__loÿË_t + +__loc +è +__THROW +; + +534  + $wc¡oul_l + (cÚ¡ +wch¬_t + * +__»¡riù + +__Ō +, + +535 +wch¬_t + ** +__»¡riù + +__’d±r +, + +536  +__ba£ +, +__loÿË_t + +__loc +è +__THROW +; + +538 +__ex‹nsiÚ__ + + +539  + $wc¡Þl_l + (cÚ¡ +wch¬_t + * +__»¡riù + +__Ō +, + +540 +wch¬_t + ** +__»¡riù + +__’d±r +, + +541  +__ba£ +, +__loÿË_t + +__loc +è +__THROW +; + +543 +__ex‹nsiÚ__ + + +544  + $wc¡ouÎ_l + (cÚ¡ +wch¬_t + * +__»¡riù + +__Ō +, + +545 +wch¬_t + ** +__»¡riù + +__’d±r +, + +546  +__ba£ +, +__loÿË_t + +__loc +) + +547 +__THROW +; + +549  + $wc¡od_l + (cÚ¡ +wch¬_t + * +__»¡riù + +__Ō +, + +550 +wch¬_t + ** +__»¡riù + +__’d±r +, +__loÿË_t + +__loc +) + +551 +__THROW +; + +553  + $wc¡of_l + (cÚ¡ +wch¬_t + * +__»¡riù + +__Ō +, + +554 +wch¬_t + ** +__»¡riù + +__’d±r +, +__loÿË_t + +__loc +) + +555 +__THROW +; + +557  + $wc¡Þd_l + (cÚ¡ +wch¬_t + * +__»¡riù + +__Ō +, + +558 +wch¬_t + ** +__»¡riù + +__’d±r +, + +559 +__loÿË_t + +__loc +è +__THROW +; + +563 #ifdeà +__USE_XOPEN2K8 + + +566 +wch¬_t + * + $wýýy + ( +wch¬_t + * +__»¡riù + +__de¡ +, + +567 cÚ¡ +wch¬_t + * +__»¡riù + +__¤c +è +__THROW +; + +571 +wch¬_t + * + $wýnýy + ( +wch¬_t + * +__»¡riù + +__de¡ +, + +572 cÚ¡ +wch¬_t + * +__»¡riù + +__¤c +, +size_t + +__n +) + +573 +__THROW +; + +580 +__FILE + * + $ݒ_wmem¡»am + ( +wch¬_t + ** +__buæoc +, +size_t + * +__siz–oc +è +__THROW +; + +583 #ià +defšed + +__USE_ISOC95 + || defšed +__USE_UNIX98 + + +584 +__BEGIN_NAMESPACE_STD + + +587  + $fwide + ( +__FILE + * +__å +,  +__mode +è +__THROW +; + +594  + `fw´štf + ( +__FILE + * +__»¡riù + +__¡»am +, + +595 cÚ¡ +wch¬_t + * +__»¡riù + +__fÜm© +, ...) + +601  + `w´štf + (cÚ¡ +wch¬_t + * +__»¡riù + +__fÜm© +, ...) + +604  + $sw´štf + ( +wch¬_t + * +__»¡riù + +__s +, +size_t + +__n +, + +605 cÚ¡ +wch¬_t + * +__»¡riù + +__fÜm© +, ...) + +606 +__THROW + ; + +612  + `vfw´štf + ( +__FILE + * +__»¡riù + +__s +, + +613 cÚ¡ +wch¬_t + * +__»¡riù + +__fÜm© +, + +614 +__gnuc_va_li¡ + +__¬g +) + +620  + `vw´štf + (cÚ¡ +wch¬_t + * +__»¡riù + +__fÜm© +, + +621 +__gnuc_va_li¡ + +__¬g +) + +625  + $vsw´štf + ( +wch¬_t + * +__»¡riù + +__s +, +size_t + +__n +, + +626 cÚ¡ +wch¬_t + * +__»¡riù + +__fÜm© +, + +627 +__gnuc_va_li¡ + +__¬g +) + +628 +__THROW + ; + +635  + `fwsÿnf + ( +__FILE + * +__»¡riù + +__¡»am +, + +636 cÚ¡ +wch¬_t + * +__»¡riù + +__fÜm© +, ...) + +642  + `wsÿnf + (cÚ¡ +wch¬_t + * +__»¡riù + +__fÜm© +, ...) + +645  + $swsÿnf + (cÚ¡ +wch¬_t + * +__»¡riù + +__s +, + +646 cÚ¡ +wch¬_t + * +__»¡riù + +__fÜm© +, ...) + +647 +__THROW + ; + +649 #ià +defšed + +__USE_ISOC99 + && !defšed +__USE_GNU + \ + +650 && (! +defšed + +__LDBL_COMPAT + || !defšed +__REDIRECT +) \ + +651 && ( +defšed + +__STRICT_ANSI__ + || defšed +__USE_XOPEN2K +) + +652 #ifdeà +__REDIRECT + + +656  + `__REDIRECT + ( +fwsÿnf +, ( +__FILE + * +__»¡riù + +__¡»am +, + +657 cÚ¡ +wch¬_t + * +__»¡riù + +__fÜm© +, ...), + +658 +__isoc99_fwsÿnf +) + +660  + `__REDIRECT + ( +wsÿnf +, (cÚ¡ +wch¬_t + * +__»¡riù + +__fÜm© +, ...), + +661 +__isoc99_wsÿnf +) + +663  + `__REDIRECT_NTH + ( +swsÿnf +, (cÚ¡ +wch¬_t + * +__»¡riù + +__s +, + +664 cÚ¡ +wch¬_t + * +__»¡riù + +__fÜm© +, + +665 ...), +__isoc99_swsÿnf +) + +668  + `__isoc99_fwsÿnf + ( +__FILE + * +__»¡riù + +__¡»am +, + +669 cÚ¡ +wch¬_t + * +__»¡riù + +__fÜm© +, ...); + +670  + `__isoc99_wsÿnf + (cÚ¡ +wch¬_t + * +__»¡riù + +__fÜm© +, ...); + +671  + $__isoc99_swsÿnf + (cÚ¡ +wch¬_t + * +__»¡riù + +__s +, + +672 cÚ¡ +wch¬_t + * +__»¡riù + +__fÜm© +, ...) + +673 +__THROW +; + +674  + #fwsÿnf + +__isoc99_fwsÿnf + + + ) + +675  + #wsÿnf + +__isoc99_wsÿnf + + + ) + +676  + #swsÿnf + +__isoc99_swsÿnf + + + ) + +680 +__END_NAMESPACE_STD + + +683 #ifdeà +__USE_ISOC99 + + +684 +__BEGIN_NAMESPACE_C99 + + +689  + `vfwsÿnf + ( +__FILE + * +__»¡riù + +__s +, + +690 cÚ¡ +wch¬_t + * +__»¡riù + +__fÜm© +, + +691 +__gnuc_va_li¡ + +__¬g +) + +697  + `vwsÿnf + (cÚ¡ +wch¬_t + * +__»¡riù + +__fÜm© +, + +698 +__gnuc_va_li¡ + +__¬g +) + +701  + $vswsÿnf + (cÚ¡ +wch¬_t + * +__»¡riù + +__s +, + +702 cÚ¡ +wch¬_t + * +__»¡riù + +__fÜm© +, + +703 +__gnuc_va_li¡ + +__¬g +) + +704 +__THROW + ; + +706 #ià! +defšed + +__USE_GNU + \ + +707 && (! +defšed + +__LDBL_COMPAT + || !defšed +__REDIRECT +) \ + +708 && ( +defšed + +__STRICT_ANSI__ + || defšed +__USE_XOPEN2K +) + +709 #ifdeà +__REDIRECT + + +710  + `__REDIRECT + ( +vfwsÿnf +, ( +__FILE + * +__»¡riù + +__s +, + +711 cÚ¡ +wch¬_t + * +__»¡riù + +__fÜm© +, + +712 +__gnuc_va_li¡ + +__¬g +), +__isoc99_vfwsÿnf +) + +714  + `__REDIRECT + ( +vwsÿnf +, (cÚ¡ +wch¬_t + * +__»¡riù + +__fÜm© +, + +715 +__gnuc_va_li¡ + +__¬g +), +__isoc99_vwsÿnf +) + +717  + `__REDIRECT_NTH + ( +vswsÿnf +, (cÚ¡ +wch¬_t + * +__»¡riù + +__s +, + +718 cÚ¡ +wch¬_t + * +__»¡riù + +__fÜm© +, + +719 +__gnuc_va_li¡ + +__¬g +), +__isoc99_vswsÿnf +) + +722  + `__isoc99_vfwsÿnf + ( +__FILE + * +__»¡riù + +__s +, + +723 cÚ¡ +wch¬_t + * +__»¡riù + +__fÜm© +, + +724 +__gnuc_va_li¡ + +__¬g +); + +725  + `__isoc99_vwsÿnf + (cÚ¡ +wch¬_t + * +__»¡riù + +__fÜm© +, + +726 +__gnuc_va_li¡ + +__¬g +); + +727  + $__isoc99_vswsÿnf + (cÚ¡ +wch¬_t + * +__»¡riù + +__s +, + +728 cÚ¡ +wch¬_t + * +__»¡riù + +__fÜm© +, + +729 +__gnuc_va_li¡ + +__¬g +è +__THROW +; + +730  + #vfwsÿnf + +__isoc99_vfwsÿnf + + + ) + +731  + #vwsÿnf + +__isoc99_vwsÿnf + + + ) + +732  + #vswsÿnf + +__isoc99_vswsÿnf + + + ) + +736 +__END_NAMESPACE_C99 + + +740 +__BEGIN_NAMESPACE_STD + + +745 +wšt_t + + `fg‘wc + ( +__FILE + * +__¡»am +); + +746 +wšt_t + + `g‘wc + ( +__FILE + * +__¡»am +); + +752 +wšt_t + + `g‘wch¬ + (); + +759 +wšt_t + + `åutwc + ( +wch¬_t + +__wc +, +__FILE + * +__¡»am +); + +760 +wšt_t + + `putwc + ( +wch¬_t + +__wc +, +__FILE + * +__¡»am +); + +766 +wšt_t + + `putwch¬ + ( +wch¬_t + +__wc +); + +774 +wch¬_t + * + `fg‘ws + (wch¬_ˆ* +__»¡riù + +__ws +,  +__n +, + +775 +__FILE + * +__»¡riù + +__¡»am +); + +781  + `åutws + (cÚ¡ +wch¬_t + * +__»¡riù + +__ws +, + +782 +__FILE + * +__»¡riù + +__¡»am +); + +789 +wšt_t + + `ung‘wc + (wšt_ˆ +__wc +, +__FILE + * +__¡»am +); + +790 +__END_NAMESPACE_STD + + +793 #ifdeà +__USE_GNU + + +801 +wšt_t + + `g‘wc_uÆocked + ( +__FILE + * +__¡»am +); + +802 +wšt_t + + `g‘wch¬_uÆocked + (); + +810 +wšt_t + + `fg‘wc_uÆocked + ( +__FILE + * +__¡»am +); + +818 +wšt_t + + `åutwc_uÆocked + ( +wch¬_t + +__wc +, +__FILE + * +__¡»am +); + +827 +wšt_t + + `putwc_uÆocked + ( +wch¬_t + +__wc +, +__FILE + * +__¡»am +); + +828 +wšt_t + + `putwch¬_uÆocked + ( +wch¬_t + +__wc +); + +837 +wch¬_t + * + `fg‘ws_uÆocked + (wch¬_ˆ* +__»¡riù + +__ws +,  +__n +, + +838 +__FILE + * +__»¡riù + +__¡»am +); + +846  + `åutws_uÆocked + (cÚ¡ +wch¬_t + * +__»¡riù + +__ws +, + +847 +__FILE + * +__»¡riù + +__¡»am +); + +851 +__BEGIN_NAMESPACE_C99 + + +855 +size_t + + $wcsáime + ( +wch¬_t + * +__»¡riù + +__s +, +size_t + +__maxsize +, + +856 cÚ¡ +wch¬_t + * +__»¡riù + +__fÜm© +, + +857 cÚ¡  +tm + * +__»¡riù + +__ +è +__THROW +; + +858 +__END_NAMESPACE_C99 + + +860 #ifdeà +__USE_GNU + + +861  + ~ + +865 +size_t + + $wcsáime_l + ( +wch¬_t + * +__»¡riù + +__s +, +size_t + +__maxsize +, + +866 cÚ¡ +wch¬_t + * +__»¡riù + +__fÜm© +, + +867 cÚ¡  +tm + * +__»¡riù + +__ +, + +868 +__loÿË_t + +__loc +è +__THROW +; + +877 #ià +defšed + +__USE_UNIX98 + && !defšed +__USE_GNU + + +878  + #__Ãed_iswxxx + + + ) + +879  + ~ + +883 #ià +__USE_FORTIFY_LEVEL + > 0 && +defšed + +__fÜtify_funùiÚ + + +884  + ~ + +887 #ifdeà +__LDBL_COMPAT + + +888  + ~ + +891 +__END_DECLS + + +899 #undeà +__Ãed_mb¡©e_t + + +900 #undeà +__Ãed_wšt_t + + + @/usr/include/wctype.h + +23 #iâdeà +_WCTYPE_H + + +25  + ~<ã©u»s.h +> + +26  + ~ + +28 #iâdeà +__Ãed_iswxxx + + +29  + #_WCTYPE_H + 1 + + ) + +32  + #__Ãed_wšt_t + + + ) + +33  + ~ + +37 #iâdeà +WEOF + + +38  + #WEOF + (0xffffffffu) + + ) + +41 #undeà +__Ãed_iswxxx + + +46 #iâdeà +__iswxxx_defšed + + +47  + #__iswxxx_defšed + 1 + + ) + +49 +__BEGIN_NAMESPACE_C99 + + +52  + twùy³_t +; + +53 + g__END_NAMESPACE_C99 + + +55 #iâdeà +_ISwb™ + + +60  + ~<’dŸn.h +> + +61 #ià +__BYTE_ORDER + =ð +__BIG_ENDIAN + + +62  + #_ISwb™ +( +b™ +è(1 << (b™)) + + ) + +64  + #_ISwb™ +( +b™ +) \ + +65 (( +b™ +) < 8 ? () ((1UL << (bit)) << 24) \ + +66 : (( +b™ +) < 16 ? () ((1UL << (bit)) << 8) \ + +67 : (( +b™ +) < 24 ? () ((1UL << (bit)) >> 8) \ + +68 : (è((1UL << ( +b™ +)è>> 24)))) + + ) + +73 + m__ISwuµ” + = 0, + +74 + m__ISwlow” + = 1, + +75 + m__ISw®pha + = 2, + +76 + m__ISwdig™ + = 3, + +77 + m__ISwxdig™ + = 4, + +78 + m__ISw¥aû + = 5, + +79 + m__ISw´št + = 6, + +80 + m__ISwg¿ph + = 7, + +81 + m__ISwbÏnk + = 8, + +82 + m__ISwúŒl + = 9, + +83 + m__ISwpunù + = 10, + +84 + m__ISw®num + = 11, + +86 + m_ISwuµ” + = +_ISwb™ + ( +__ISwuµ” +), + +87 + m_ISwlow” + = +_ISwb™ + ( +__ISwlow” +), + +88 + m_ISw®pha + = +_ISwb™ + ( +__ISw®pha +), + +89 + m_ISwdig™ + = +_ISwb™ + ( +__ISwdig™ +), + +90 + m_ISwxdig™ + = +_ISwb™ + ( +__ISwxdig™ +), + +91 + m_ISw¥aû + = +_ISwb™ + ( +__ISw¥aû +), + +92 + m_ISw´št + = +_ISwb™ + ( +__ISw´št +), + +93 + m_ISwg¿ph + = +_ISwb™ + ( +__ISwg¿ph +), + +94 + m_ISwbÏnk + = +_ISwb™ + ( +__ISwbÏnk +), + +95 + m_ISwúŒl + = +_ISwb™ + ( +__ISwúŒl +), + +96 + m_ISwpunù + = +_ISwb™ + ( +__ISwpunù +), + +97 + m_ISw®num + = +_ISwb™ + ( +__ISw®num +) + +102 +__BEGIN_DECLS + + +104 +__BEGIN_NAMESPACE_C99 + + +111  + $isw®num + ( +wšt_t + +__wc +è +__THROW +; + +117  + $isw®pha + ( +wšt_t + +__wc +è +__THROW +; + +120  + $iswúŒl + ( +wšt_t + +__wc +è +__THROW +; + +124  + $iswdig™ + ( +wšt_t + +__wc +è +__THROW +; + +128  + $iswg¿ph + ( +wšt_t + +__wc +è +__THROW +; + +133  + $iswlow” + ( +wšt_t + +__wc +è +__THROW +; + +136  + $isw´št + ( +wšt_t + +__wc +è +__THROW +; + +141  + $iswpunù + ( +wšt_t + +__wc +è +__THROW +; + +146  + $isw¥aû + ( +wšt_t + +__wc +è +__THROW +; + +151  + $iswuµ” + ( +wšt_t + +__wc +è +__THROW +; + +156  + $iswxdig™ + ( +wšt_t + +__wc +è +__THROW +; + +161 #ifdeà +__USE_ISOC99 + + +162  + $iswbÏnk + ( +wšt_t + +__wc +è +__THROW +; + +171 +wùy³_t + + $wùy³ + (cÚ¡ * +__´Ý”ty +è +__THROW +; + +175  + $iswùy³ + ( +wšt_t + +__wc +, +wùy³_t + +__desc +è +__THROW +; + +176 +__END_NAMESPACE_C99 + + +183 +__BEGIN_NAMESPACE_C99 + + +186 cÚ¡ + t__št32_t + * + twù¿ns_t +; + +187 +__END_NAMESPACE_C99 + + +188 #ifdeà +__USE_GNU + + +189 + $__USING_NAMESPACE_C99 +( +wù¿ns_t +) + +192 +__BEGIN_NAMESPACE_C99 + + +194 +wšt_t + + $towlow” + ( +wšt_t + +__wc +è +__THROW +; + +197 +wšt_t + + $towuµ” + ( +wšt_t + +__wc +è +__THROW +; + +198 +__END_NAMESPACE_C99 + + +200 +__END_DECLS + + +207 #ifdeà +_WCTYPE_H + + +213 +__BEGIN_DECLS + + +215 +__BEGIN_NAMESPACE_C99 + + +218 +wù¿ns_t + + $wù¿ns + (cÚ¡ * +__´Ý”ty +è +__THROW +; + +221 +wšt_t + + $towù¿ns + ( +wšt_t + +__wc +, +wù¿ns_t + +__desc +è +__THROW +; + +222 +__END_NAMESPACE_C99 + + +224 #ifdeà +__USE_XOPEN2K8 + + +226  + ~ + +230  + $isw®num_l + ( +wšt_t + +__wc +, +__loÿË_t + +__loÿË +è +__THROW +; + +236  + $isw®pha_l + ( +wšt_t + +__wc +, +__loÿË_t + +__loÿË +è +__THROW +; + +239  + $iswúŒl_l + ( +wšt_t + +__wc +, +__loÿË_t + +__loÿË +è +__THROW +; + +243  + $iswdig™_l + ( +wšt_t + +__wc +, +__loÿË_t + +__loÿË +è +__THROW +; + +247  + $iswg¿ph_l + ( +wšt_t + +__wc +, +__loÿË_t + +__loÿË +è +__THROW +; + +252  + $iswlow”_l + ( +wšt_t + +__wc +, +__loÿË_t + +__loÿË +è +__THROW +; + +255  + $isw´št_l + ( +wšt_t + +__wc +, +__loÿË_t + +__loÿË +è +__THROW +; + +260  + $iswpunù_l + ( +wšt_t + +__wc +, +__loÿË_t + +__loÿË +è +__THROW +; + +265  + $isw¥aû_l + ( +wšt_t + +__wc +, +__loÿË_t + +__loÿË +è +__THROW +; + +270  + $iswuµ”_l + ( +wšt_t + +__wc +, +__loÿË_t + +__loÿË +è +__THROW +; + +275  + $iswxdig™_l + ( +wšt_t + +__wc +, +__loÿË_t + +__loÿË +è +__THROW +; + +280  + $iswbÏnk_l + ( +wšt_t + +__wc +, +__loÿË_t + +__loÿË +è +__THROW +; + +284 +wùy³_t + + $wùy³_l + (cÚ¡ * +__´Ý”ty +, +__loÿË_t + +__loÿË +) + +285 +__THROW +; + +289  + $iswùy³_l + ( +wšt_t + +__wc +, +wùy³_t + +__desc +, +__loÿË_t + +__loÿË +) + +290 +__THROW +; + +298 +wšt_t + + $towlow”_l + ( +wšt_t + +__wc +, +__loÿË_t + +__loÿË +è +__THROW +; + +301 +wšt_t + + $towuµ”_l + ( +wšt_t + +__wc +, +__loÿË_t + +__loÿË +è +__THROW +; + +305 +wù¿ns_t + + $wù¿ns_l + (cÚ¡ * +__´Ý”ty +, +__loÿË_t + +__loÿË +) + +306 +__THROW +; + +309 +wšt_t + + $towù¿ns_l + ( +wšt_t + +__wc +, +wù¿ns_t + +__desc +, + +310 +__loÿË_t + +__loÿË +è +__THROW +; + +314 +__END_DECLS + + + @ +1 +. +1 +/usr/include +124 +2982 +inc/data/gl-data-type.h +inc/data/gl-data-util.h +inc/data/gl-data.h +inc/data/gl-local-data.h +inc/features/gl-albums-sel.h +inc/features/gl-albums.h +inc/features/gl-entry.h +inc/features/gl-main.h +inc/features/gl-pinchzoom.h +inc/features/gl-thumbs-edit.h +inc/features/gl-thumbs-sel.h +inc/features/gl-thumbs.h +inc/gallery.h +inc/util/gl-db-update.h +inc/util/gl-debug.h +inc/util/gl-exif.h +inc/util/gl-ext-exec.h +inc/util/gl-ext-ug-load.h +inc/util/gl-file-util.h +inc/util/gl-fs.h +inc/util/gl-icons.h +inc/util/gl-lang.h +inc/util/gl-strings.h +inc/util/gl-ta.h +inc/util/gl-thread-util.h +inc/util/gl-ui-util.h +inc/util/gl-util.h +inc/widget/gl-button.h +inc/widget/gl-controlbar.h +inc/widget/gl-ctxpopup.h +inc/widget/gl-editfield.h +inc/widget/gl-gesture.h +inc/widget/gl-nocontents.h +inc/widget/gl-notify.h +inc/widget/gl-popup.h +inc/widget/gl-progressbar.h +inc/widget/gl-rotate-bg.h +inc/widget/gl-thumb.h +inc/widget/gl-tile.h +res/black_theme/edc/gallery-edc-res.h +src/2dview/gl-albums-edit.c +src/2dview/gl-albums-edit.h +src/2dview/gl-albums-new.c +src/2dview/gl-albums-new.h +src/2dview/gl-albums-rename.c +src/2dview/gl-albums-rename.h +src/2dview/gl-ecore-animator.h +src/2dview/gl-exception.h +src/2dview/gl-timeline.c +src/2dview/gl-timeline.h +src/data/gl-data-type.c +src/data/gl-data-util.c +src/data/gl-data.c +src/data/gl-local-data.c +src/features/gl-albums-sel.c +src/features/gl-albums.c +src/features/gl-entry.c +src/features/gl-main.c +src/features/gl-pinchzoom.c +src/features/gl-thumbs-edit.c +src/features/gl-thumbs-sel.c +src/features/gl-thumbs.c +src/gallery.c +src/util/gl-db-update.c +src/util/gl-debug.c +src/util/gl-exif.c +src/util/gl-ext-exec.c +src/util/gl-ext-ug-load.c +src/util/gl-file-util.c +src/util/gl-fs.c +src/util/gl-lang.c +src/util/gl-ta.c +src/util/gl-thread-util.c +src/util/gl-ui-util.c +src/util/gl-util.c +src/widget/gl-button.c +src/widget/gl-controlbar.c +src/widget/gl-ctxpopup.c +src/widget/gl-editfield.c +src/widget/gl-gesture.c +src/widget/gl-nocontents.c +src/widget/gl-notify.c +src/widget/gl-popup.c +src/widget/gl-progressbar.c +src/widget/gl-rotate-bg.c +src/widget/gl-thumb.c +src/widget/gl-tile.c +widget/include/gl_widget.h +widget/include/gl_widget_debug.h +widget/src/gl_widget_create.c +widget/src/gl_widget_main.c +/usr/include/assert.h +/usr/include/dirent.h +/usr/include/dlfcn.h +/usr/include/errno.h +/usr/include/libgen.h +/usr/include/linux/fs.h +/usr/include/linux/unistd.h +/usr/include/malloc.h +/usr/include/pthread.h +/usr/include/signal.h +/usr/include/stdio.h +/usr/include/stdlib.h +/usr/include/string.h +/usr/include/time.h +/usr/include/unistd.h +/usr/include/alloca.h +/usr/include/endian.h +/usr/include/features.h +/usr/include/getopt.h +/usr/include/libio.h +/usr/include/linux/ioctl.h +/usr/include/linux/limits.h +/usr/include/linux/types.h +/usr/include/sched.h +/usr/include/xlocale.h +/usr/include/_G_config.h +/usr/include/ctype.h +/usr/include/linux/posix_types.h +/usr/include/stdc-predef.h +/usr/include/gconv.h +/usr/include/linux/stddef.h +/usr/include/wchar.h +/usr/include/wctype.h diff --git a/inc/data/gl-data-type.h b/inc/data/gl-data-type.h new file mode 100755 index 0000000..ddd5db7 --- /dev/null +++ b/inc/data/gl-data-type.h @@ -0,0 +1,139 @@ +/* +* 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 _GL_DATA_TYPE_H_ +#define _GL_DATA_TYPE_H_ + +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" +{ +#endif + +#define GL_FREEIF(ptr) \ + do { \ + if(ptr != NULL) { \ + free(ptr); \ + ptr = NULL; \ + } \ + } while (0) + +#define GL_FREE(ptr) \ + do { \ + free(ptr); \ + ptr = NULL; \ + } while (0) + +#define GL_GFREEIF(ptr) \ + do { \ + if(ptr != NULL) { \ + g_free(ptr); \ + ptr = NULL; \ + } \ + } while (0) + +#define GL_GFREE(ptr) \ + do { \ + g_free(ptr); \ + ptr = NULL; \ + } while (0) + +#define GL_TYPE_ALBUM (0x55551) +#define GL_TYPE_MEDIA (0x55553) +#define GL_TYPE_WEB_MEDIA (0x55554) + +typedef enum { + GL_STORE_T_PHONE = 0, /**< Stored only in phone */ + GL_STORE_T_MMC, /**< Stored only in MMC */ + GL_STORE_T_ALL, /**< Stored only in All albums album */ + GL_STORE_T_FAV, /**< Stored only in Favorites album */ +} gl_store_type_e; + + +typedef struct _gl_album_t gl_album_s; +typedef struct _gl_media_t gl_media_s; +typedef struct _gl_image_t gl_image_s; +typedef struct _gl_video_t gl_video_s; + +struct _gl_album_t { + int gtype; /*self-defination type, when free this struct space, use it*/ + media_folder_h folder_h; /*the handle of operating this folder*/ + char *uuid; /*folder UUID*/ + char *display_name; /*album name*/ + char *path; /*the full path of this folder*/ + int type; /*storage type*/ + time_t mtime; /*modified time*/ + int count; /*the media count in this folder*/ +}; + +struct _gl_media_t { + void *ad; + int gtype; /*self-defination type, when free this struct space, use it*/ + media_info_h media_h; /*the handle of operating this media*/ + char *uuid; /*meida id*/ + int type; /*meida type, image or video*/ + char *thumb_url; /*the thumbnail full path of this meida file*/ + char *file_url; /*the full path of this meida file*/ + time_t mtime; /*modified time*/ + char *display_name; /*item name*/ + int mode; /* Show icon indicates different camera shot mode */ + char *ext; + gl_store_type_e storage_type; /* Storage type got from DB */ + bool b_create_thumb; /* Request DB to create thumbnail */ + bool check_state; /* store check state */ + Elm_Object_Item *elm_item; /*store item handle */ + + union { + gl_image_s *image_info; /*image information*/ + gl_video_s *video_info; /*video information*/ + }; +}; + +struct _gl_image_t { + char *media_uuid; /*media uuid*/ + image_meta_h image_h; /*the handle of operating this image*/ + int orientation; /*the orientation of this image*/ + char *burstshot_id; /*the tag of burst shot*/ +}; + +struct _gl_video_t { + char *media_uuid; /*media uuid*/ + video_meta_h video_h; /*the handle of operating this video*/ + char *title; /*the title of video*/ + time_t last_played_pos; /*the last played position*/ + int duration; /*the duration of this video*/ + int bookmarks; /*whether exist bookmarks*/ +}; + +int _gl_data_type_new_media(gl_media_s **item); +int _gl_data_type_new_album(gl_album_s **album); + +int _gl_data_type_free_media_list(Eina_List **list); +int _gl_data_type_free_album_list(Eina_List **list); +int _gl_data_type_free_glitem(void **item); + +#ifdef __cplusplus +} +#endif + + +#endif /* _GL_DATA_TYPE_H_ */ + diff --git a/inc/data/gl-data-util.h b/inc/data/gl-data-util.h new file mode 100755 index 0000000..a62f382 --- /dev/null +++ b/inc/data/gl-data-util.h @@ -0,0 +1,152 @@ +/* +* 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 _GL_DATA_UTIL_H_ +#define _GL_DATA_UTIL_H_ + +#include +#include +#include +#include "gl-data-type.h" + +#ifdef __cplusplus +extern "C" +{ +#endif + +#define GL_MAX_BYTES_FOR_CHAR 3 +#define GL_FILE_PATH_LEN_MAX (4095 * GL_MAX_BYTES_FOR_CHAR + 1) +#define GL_FILE_NAME_LEN_MAX (255 * GL_MAX_BYTES_FOR_CHAR + 1) +#define GL_DIR_PATH_LEN_MAX GL_FILE_PATH_LEN_MAX +#define GL_ARRAY_LEN_MAX 256 +#define GL_FILE_EXT_LEN_MAX 256 +#define GL_FIRST_VIEW_START_POS 0 +#define GL_FIRST_VIEW_END_POS 47 //27 /*maybe 2 pages(=48 medias) is better, especially select album then drag up immediately */ +#define GL_GET_UNTIL_LAST_RECORD 65536 //-1 /* Fixme: Do not use 65536. */ +#define GL_GET_ALL_RECORDS (-1) +#define GL_GET_ONE_RECORD 1 +#define GL_GET_ALL_RECORDS_ID NULL + +#define GL_ALBUM_COVER_THUMB_NUM 1 + +/** +* Get a new mtype item from libmedia-info, +* if ID is NULL, libmedia-info just allocate memory for mtype item, +* then return it, instead of loading record from DB to initialize each field. +*/ +#define GL_NEW_RECORD_ID NULL +#define GL_PINCH_WIDTH 4 +#define GL_PINCH_LANDSCAPE_WIDTH 9 + +#define GL_JPEG_FILE_EXT "jpg" + +typedef enum { + GL_SORT_BY_NONE, /**< No Sort */ + GL_SORT_BY_NAME_DESC, /**< Sort by display name descending */ + GL_SORT_BY_NAME_ASC, /**< Sort by display name ascending */ + GL_SORT_BY_DATE_DESC, /**< Sort by modified_date descending */ + GL_SORT_BY_DATE_ASC, /**< Sort by modified_date ascending */ +} gl_sort_type_e; + +typedef enum { + GL_ICON_NORMAL, + GL_ICON_CORRUPTED_FILE +}gl_icon_type_e; + +typedef struct { + Eina_List *clist; + /* Editable albums count */ + int edit_cnt; + int phone_cnt; /* Phone/MMC albums count */ +} gl_cluster_list; + +typedef struct _gl_thumb_data_t gl_thumb_data_s; +typedef struct _gl_album_data_t gl_album_data_s; +typedef struct _gl_cluster gl_cluster; + +typedef struct _gl_item { + gl_media_s *item; + int icon_idx; + int list_item_cnt; + + int list_idx[GL_PINCH_LANDSCAPE_WIDTH]; + + Elm_Object_Item *elm_item; + bool preappend; + bool checked; + int sequence; + bool b_deleted; /* Gengrid item is deleted, to free item data */ + /* To indicate media storage type, especially used for PTP/AllShare */ + int store_type; + struct _gl_item *pre_gitem; + void *ad; /* Save ad to prevent use global variable */ + gl_thumb_data_s *thumb_data; + gl_cluster *album; +} gl_item; + +struct _gl_cluster { + gl_album_s *cluster; + int index; + Eina_List *elist; /* List of all selected medias of a album */ + Eina_List *elist1; /* List of all selected medias of a album */ + Elm_Object_Item *item; + bool checked; + + void *ad; /* Save ad to prevent use global variable */ + gl_item *cover; + int cover_thumbs_cnt; + gl_album_data_s *album_data; +}; + +struct _gl_album_data_t { + void *ad; + gl_cluster *album; +}; + +struct _gl_thumb_data_t { + void *ad; + gl_item *item; +}; + +bool _gl_data_util_get_file_dir_name(const char *file_path, char *filename, + char *dir_name, char *dir_path); +gl_item *_gl_data_util_calloc_gitem(void); +int _gl_data_util_free_gitem(gl_item *gitem); +gl_cluster *_gl_data_util_calloc_gcluster(void); +int _gl_data_util_free_gcluster(gl_cluster *gcluster); +gl_cluster *_gl_data_util_new_gcluster_all(void *data, int count); +gl_cluster *_gl_data_util_new_gcluster_fav(void *data, int count); +gl_cluster_list *_gl_data_util_calloc_cluster_list(void); +int _gl_data_util_clear_gtype_item_list(Eina_List **elist); +int _gl_data_util_clear_item_list(Eina_List **elist); +int _gl_data_util_clear_cluster_list(Eina_List **elist); +int _gl_data_util_get_selected_cluster_id_list(void *data, + Eina_List **sel_id_list); +int _gl_data_util_get_selected_str_ids(Eina_List **sel_list, Eina_List **elist); +bool _gl_data_util_check_selected_str_id(Eina_List **sel_id_list, const char *id); +int _gl_data_util_free_selected_str_list(Eina_List **sel_id_list); +bool _gl_data_util_check_selected_int_id(Eina_List **sel_id_list, int id); +int _gl_data_util_check_album_selected_files(gl_cluster *album, + int *img_cnt, int *sel_cnt, + int *web_cnt); +int _gl_data_util_get_cond(char *cond); +int _gl_data_util_get_fav_cond(char *cond); + +#ifdef __cplusplus +} +#endif +#endif /* _GL_DATA_UTIL_H_ */ + diff --git a/inc/data/gl-data.h b/inc/data/gl-data.h new file mode 100755 index 0000000..d304489 --- /dev/null +++ b/inc/data/gl-data.h @@ -0,0 +1,95 @@ +/* +* 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 _GL_DATA_H_ +#define _GL_DATA_H_ + +#include +#include +#include +#include "gl-local-data.h" +#include "gl-data-util.h" + +#ifdef __cplusplus +extern "C" +{ +#endif + +int _gl_data_cp_item_list(void *data, Eina_List *elist, Eina_List **p_elist); +int _gl_data_clear_cluster_list(void *data, bool b_force); +bool _gl_data_get_cluster_list(void *data); +int _gl_data_update_cluster_list(void *data); +int _gl_data_cluster_list_remove(void *data, gl_cluster *item); +bool _gl_data_exists_item(void *data, const char *id); +int _gl_data_get_cluster_by_id(void *data, const char *cluster_id, + gl_cluster **cluster); +int _gl_data_get_cluster_by_path(void *data, const char *path, + gl_cluster **cluster); +int _gl_data_get_item_cnt(const char *cluster_id, int album_type, int *item_cnt); +int _gl_data_update_item_cnt(gl_cluster *album); +int _gl_data_get_items(int start_pos, int end_pos, Eina_List **list); +int _gl_data_get_items_album(void *data, gl_cluster *album, int start_pos, + int end_pos, Eina_List **p_elist); +int _gl_data_update_item_list(void *data, Eina_List **sel_id_list, + Eina_List **p_elist); +bool _gl_data_is_item_cnt_zero(void *data, media_content_type_e type, + Eina_List *elist); +int _gl_data_get_first_item(media_content_type_e type, Eina_List *elist, + gl_item **p_gitem); +int _gl_data_get_album_cover(gl_cluster *album, gl_item **pgitem, + media_content_order_e sort_type); +gl_item *_gl_data_new_item_mitem(gl_media_s *mitem); +int _gl_data_get_orig_item_by_index(void *data, gl_item **gitem, int idx); +int _gl_data_delete_file(char *path, char *uuid, bool is_hide); +int _gl_data_selected_list_append(void *data, gl_item *gitem); +int _gl_data_selected_list_remove(void *data, gl_item *gitem); +int _gl_data_selected_fav_list_remove(void *data, gl_item *gitem); +int _gl_data_selected_list_remove_one(void *data, gl_item *gitem); +gl_item *_gl_data_selected_list_get_nth(void *data, int idx); +int _gl_data_selected_list_finalize(void *data); +int _gl_data_clear_selected_info(void *data); +int _gl_data_selected_list_count(void *data); +bool _gl_data_is_albums_selected_empty(void *data); +int _gl_data_get_albums_selected_files(void *data, void *get_cb, void *cb_data); +int _gl_data_get_albums_selected_cnt(void *data); +int _gl_data_selected_add_burstshot(void *data, gl_item *gitem, Eina_List *elist); +bool _gl_data_get_burstshot_status(void *data, gl_item *gitem); +int _gl_data_albums_selected_list_append(void *data, gl_cluster *item); +int _gl_data_albums_selected_list_remove(void *data, gl_cluster *item); +int _gl_data_finalize_albums_selected_list(void *data); +int _gl_data_init(void *data); +int _gl_data_finalize(void *data); +gl_item *_gl_data_new_gitem(void *data, const char *item_id); +bool _gl_data_is_root_path(const char *path); +bool _gl_data_check_root_type(const char *path, const char *root); +bool _gl_data_is_default_album(const char *match_folder, gl_album_s *album); +bool _gl_data_is_screenshot_album(const char *match_folder, gl_album_s *album); +bool _gl_data_is_camera_album(gl_album_s *album); +int _gl_data_delete_media(void *data, gl_media_s *media_item); +int _gl_data_create_thumb(gl_media_s *item, + media_thumbnail_completed_cb callback, + void *user_data); +int _gl_data_cancel_thumb(gl_media_s *item); +bool _gl_data_is_album_exists(void *data, gl_cluster *album); +int _gl_data_save_selected_str_ids(void *data, Eina_List **elist); +int _gl_data_restore_selected(Eina_List *sel_ids, gl_item *gitem); +bool _gl_data_check_selected_id(Eina_List *sel_id_list, const char *id); + +#ifdef __cplusplus +} +#endif +#endif /* _GL_DATA_H_ */ diff --git a/inc/data/gl-local-data.h b/inc/data/gl-local-data.h new file mode 100755 index 0000000..70a3c21 --- /dev/null +++ b/inc/data/gl-local-data.h @@ -0,0 +1,84 @@ +/* +* 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 _GL_LOCAL_DATA_H_ +#define _GL_LOCAL_DATA_H_ + +#include "gl-data-type.h" + +#ifdef __cplusplus +extern "C" +{ +#endif + + +/*MEDIA_TYPE 0-image, 1-video, 2-sound, 3-music*/ +#define GL_CONDITION_IMAGE_VIDEO "(MEDIA_TYPE=0 OR MEDIA_TYPE=1)" +#define GL_CONDITION_IMAGE "(MEDIA_TYPE=0)" +#define GL_CONDITION_VIDEO "(MEDIA_TYPE=1)" +#define GL_CONDITION_ORDER "MEDIA_TIMELINE, MEDIA_DISPLAY_NAME" + +#define CONDITION_LENGTH 512 +#define KEYWORD_LENGTH 128 + +typedef struct _gl_filter_t gl_filter_s; + +struct _gl_filter_t { + char cond[CONDITION_LENGTH]; /*set media type or favorite type, or other query statement*/ + media_content_collation_e collate_type; /*collate type*/ + media_content_order_e sort_type; /*sort type*/ + char sort_keyword[KEYWORD_LENGTH]; /*sort keyword*/ + int offset; /*offset*/ + int count; /*count*/ + bool with_meta; /*whether get image or video info*/ +}; + +int _gl_local_data_connect(void); +int _gl_local_data_disconnect(void); +int _gl_local_data_get_album_by_path(char *path, gl_album_s **album); +int _gl_local_data_get_album_list(gl_filter_s *condition, Eina_List **elist); +int _gl_local_data_get_media_by_id(char *media_id, gl_media_s **mitem); +int _gl_local_data_get_media_by_path(const char *path, gl_media_s **mitem); +int _gl_local_data_get_media_count(const char *cluster_id, gl_filter_s *condition, + int *item_cnt); +int _gl_local_data_get_all_media_count(gl_filter_s *filter, int *item_cnt); +int _gl_local_data_get_album_media_list(gl_filter_s *condition, + const char *album_id, Eina_List **elist); +int _gl_local_data_get_album_cover(gl_filter_s *condition, const char *album_id, + Eina_List **elist); +int _gl_local_data_get_all_albums_media_list(gl_filter_s *condition, + Eina_List **elist); +int _gl_local_data_get_fav_albums_media_list(gl_filter_s *condition, + Eina_List **elist); +int _gl_local_data_get_all_albums_cover(gl_filter_s *condition, + Eina_List **elist); +int _gl_local_data_get_fav_albums_cover(gl_filter_s *condition, + Eina_List **elist); +int _gl_local_data_delete_album(gl_album_s *cluster, void *cb, void *data, bool is_hide); +int _gl_local_data_add_media(const char *file_url, media_info_h *info); +int _gl_local_data_get_thumb(gl_media_s *mitem, char **thumb); +int _gl_local_data_move_media(gl_media_s *mitem, const char *dst); +bool _gl_local_data_is_album_exists(char *path); +int _gl_local_data_get_path_by_id(const char *uuid, char **path); + +#ifdef __cplusplus +} +#endif + + +#endif + diff --git a/inc/features/gl-albums-sel.h b/inc/features/gl-albums-sel.h new file mode 100755 index 0000000..9f5a503 --- /dev/null +++ b/inc/features/gl-albums-sel.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. +* +*/ + +#ifndef _GL_ALBUMS_SEL_H_ +#define _GL_ALBUMS_SEL_H_ + +#include +#include "gallery.h" + +int _gl_albums_sel_create_view(void *data); +int _gl_albums_sel_update_view(void *data); +int _gl_albums_sel_pop_view(void *data); +int _gl_albums_sel_rotate_view(void *data); + +#endif + diff --git a/inc/features/gl-albums.h b/inc/features/gl-albums.h new file mode 100755 index 0000000..f5b06ac --- /dev/null +++ b/inc/features/gl-albums.h @@ -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. +* +*/ + +#ifndef _GL_ALBUMS_H_ +#define _GL_ALBUMS_H_ + +#include +#include "gallery.h" + +int _gl_albums_close_album(void *data); +int gl_albums_update_items(void *data); +int _gl_albums_create_view(void *data, Evas_Object *parent); +int gl_albums_update_view(void *data); +int gl_albums_change_to_view(void *data); +int gl_albums_remove_nocontents(void *data); +int gl_albums_free_data(void *data); +int _gl_albums_show_view_tab(void *data, Evas_Object *parent); +int _gl_albums_hide_view_tab(void *data); +int _gl_albums_change_mode(void *data, bool b_edit); +int _gl_albums_check_btns(void *data); +int _gl_albums_rotate_view(void *data); +int _gl_albums_set_current(void *data, gl_cluster *current); +gl_cluster *_gl_albums_get_current(void *data); +int _gl_albums_clear_cbs(Evas_Object *view); +int gl_albums_open_album(gl_cluster * album_item); +Evas_Object *_gl_albums_add_gengrid(void *data, Evas_Object *parent); +Evas_Object *_gl_albums_add_view(void *data, Evas_Object *parent); +Evas_Object *_gl_albums_sel_add_view(void *data, Evas_Object *parent); +void __gl_albums_new_album_sel(void *data, Evas_Object *obj, void *ei); +int _gl_albums_create_items(void *data, Evas_Object *parent); +int _gl_split_albums_create_items(void *data, Evas_Object *parent); + +#endif /* _GL_ALBUMS_H_ */ + diff --git a/inc/features/gl-entry.h b/inc/features/gl-entry.h new file mode 100755 index 0000000..807fdf0 --- /dev/null +++ b/inc/features/gl-entry.h @@ -0,0 +1,27 @@ +/* +* 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 _GL_ENTRY_H_ +#define _GL_ENTRY_H_ + +#include + +int _gl_entry_create_view(void *data, char *name, char *title); +int _gl_entry_resume_view(void *data); + +#endif + diff --git a/inc/features/gl-main.h b/inc/features/gl-main.h new file mode 100755 index 0000000..a2efb5c --- /dev/null +++ b/inc/features/gl-main.h @@ -0,0 +1,39 @@ +/* +* 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 _GL_MIAN_H_ +#define _GL_MIAN_H_ + +#include "gallery.h" + +#ifdef __cplusplus +extern "C" +{ +#endif + +int _gl_main_add_reg_idler(void *data); +int _gl_main_create_view(gl_appdata *ad); +int _gl_main_clear_view(gl_appdata *ad); +Eina_Bool _gl_main_update_view(void *data); +int _gl_main_reset_view(void *data); + +#ifdef __cplusplus +} +#endif + +#endif // end of _GL_MIAN_H_ + diff --git a/inc/features/gl-pinchzoom.h b/inc/features/gl-pinchzoom.h new file mode 100755 index 0000000..8a08cfd --- /dev/null +++ b/inc/features/gl-pinchzoom.h @@ -0,0 +1,25 @@ +/* +* 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 _GL_PINCHZOOM_H_ +#define _GL_PINCHZOOM_H_ + +int _gl_pinch_add_event(void *data, Evas_Object *layout); +int _gl_pinch_reset_flag(void *data); + +#endif /* _GL_PINCHZOOM_H_ */ + diff --git a/inc/features/gl-thumbs-edit.h b/inc/features/gl-thumbs-edit.h new file mode 100755 index 0000000..e320f04 --- /dev/null +++ b/inc/features/gl-thumbs-edit.h @@ -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. +* +*/ + +#ifndef _GL_THUMB_EDIT_H_ +#define _GL_THUMB_EDIT_H_ + +#include +#include "gallery.h" + +int _gl_thumbs_edit_add_btns(void *data, Evas_Object *parent, + Elm_Object_Item *nf_it); +int _gl_thumbs_edit_create_view(void *data); +int _gl_thumbs_edit_update_view(void *data); +int _gl_thumbs_edit_pop_view(void *data); +int _gl_thumbs_edit_update_lang(void *data); +int _gl_thumbs_edit_disable_btns(void *data, bool b_disable); +int _gl_thumbs_edit_get_path(void *data, char **files); + +#endif + diff --git a/inc/features/gl-thumbs-sel.h b/inc/features/gl-thumbs-sel.h new file mode 100755 index 0000000..61b7b46 --- /dev/null +++ b/inc/features/gl-thumbs-sel.h @@ -0,0 +1,31 @@ +/* +* 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 _GL_THUMB_SEL_H_ +#define _GL_THUMB_SEL_H_ + +#include +#include "gallery.h" + +int _gl_thumbs_sel_create_view(void *data, gl_cluster *album_item); +int _gl_thumbs_sel_update_view(void *data); +int _gl_thumbs_sel_pop_view(void *data, bool b_pop); +int _gl_thumbs_sel_update_lang(void *data); +int _gl_thumbs_sel_disable_btns(void *data, bool b_disabled); + +#endif + diff --git a/inc/features/gl-thumbs.h b/inc/features/gl-thumbs.h new file mode 100755 index 0000000..31f106a --- /dev/null +++ b/inc/features/gl-thumbs.h @@ -0,0 +1,97 @@ +/* +* 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 _GL_THUMBS_H_ +#define _GL_THUMBS_H_ + +#include +#include "gallery.h" + +typedef enum _gl_thumb_mode { + GL_THUMB_ALL, + GL_THUMB_IMAGES, + GL_THUMB_VIDEOS, +} gl_thumb_mode; + +/* Show edit view(add checkbox) when creating thumbnails */ +#define GL_THUMBS_EDIT_FIRST (0x1 << 8) + +typedef enum _gl_thumbs_edit_mode_t { + GL_THUMBS_EDIT_NONE = (0x00), + GL_THUMBS_EDIT_NORMAL = (0x1 << 0), + GL_THUMBS_EDIT_SHARE = (0x1 << 1), + GL_THUMBS_EDIT_COPY = (0x1 << 2), + GL_THUMBS_EDIT_MOVE = (0x1 << 3), +#ifdef _USE_APP_SLIDESHOW + GL_THUMBS_EDIT_SLIDESHOW = (0x1 << 4) | GL_THUMBS_EDIT_FIRST, +#endif +} gl_thumbs_edit_e; + +Eina_Bool _gl_thumbs_append_items(void *data); +int _gl_thumbs_update_realized_items(void *data); +Evas_Object *_gl_thumbs_get_content(void *data, Evas_Object *parent, + gl_item *gitem, int w, int h); +int _gl_thumbs_add_btns(void *data); +void _gl_thumbs_mouse_down(void *data, Evas *e, Evas_Object *obj, void *ei); +void _gl_thumbs_mouse_up(void *data, Evas *e, Evas_Object *obj, void *ei); +Evas_Object *_gl_thumbs_add_grid(void *data, Evas_Object *parent, + gl_thumb_mode mode); +int _gl_thumbs_show_edit_view(void *data); +int _gl_thumbs_show_view(void *data); +Eina_Bool _gl_thumbs_show_items(void *data); +int _gl_thumbs_set_list(void *data, Eina_List *elist); +int _gl_thumbs_clear_and_set_list(void *data, Eina_List *elist); +int _gl_thumbs_get_list(void *data, Eina_List **p_elist); +int _gl_thumbs_create_view(void *data, int nf_mode, char *title, bool b_idler, + Elm_Naviframe_Item_Pop_Cb func); +int _gl_thumbs_update_split_view(void *data, int nf_mode, char *title, bool b_idler, + Elm_Naviframe_Item_Pop_Cb func); +int _gl_thumbs_update_edit_split_view(void *data, int nf_mode, char *title, bool b_idler, + Elm_Naviframe_Item_Pop_Cb func); +int _gl_thumbs_update_items(void *data); +int _gl_thumbs_update_view(void *data); +int _gl_thumbs_destroy_view(void *data, bool b_pop); +int _gl_thumbs_destroy_view_with_cb(void *data, void *cb); +bool _gl_thumbs_get_view(void *data, Evas_Object **view); +bool _gl_thumbs_show_nocontents(void *data); +int _gl_thumbs_set_nocontents(void *data, Evas_Object *noc); +int _gl_thumbs_set_size(void *data, Evas_Object *gridview); +int _gl_thumbs_clear_cbs(Evas_Object *grid); +int _gl_thumbs_delete_view(void *data); +int _gl_thumbs_update_size(void *data, Evas_Object *view); +bool _gl_thumbs_is_append(gl_item *gitem, char **burstshot_id); +bool _gl_thumbs_check_zero(void *data); +int _gl_thumbs_update_label(Elm_Object_Item *nf_it, char *title); +int _gl_thumbs_update_label_text(Elm_Object_Item *nf_it, int sel_cnt, + bool b_lang); +int _gl_thumbs_update_lang(void *data); +int _gl_thumbs_disable_slideshow(void *data, bool b_disabled); +int _gl_thumbs_disable_share(void *data, bool b_disabled); +int _gl_thumbs_check_btns(void *data); +int _gl_thumbs_update_sequence(void *data); +int _gl_thumbs_set_edit_mode(void *data, int mode); +int _gl_thumbs_get_edit_mode(void *data); +int _gl_thumbs_rotate_view(void *data); +void _gl_thumbs_sel_cb(void *data, Evas_Object *obj, void *ei); +void _gl_thumbs_open_file(void *data); +void _gl_thumbs_open_file_select_mode(void *data); +int _gl_thumbs_create_thumb(gl_item *gitem); +void _gl_thumbs_change_view(void *data, int prev_x, int current_x); +void _gl_thumb_update_split_view(void *data); + +#endif /* _GL_THUMBS_H_ */ + diff --git a/inc/gallery.h b/inc/gallery.h new file mode 100644 index 0000000..e9aee98 --- /dev/null +++ b/inc/gallery.h @@ -0,0 +1,521 @@ +/* +* 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 _GALLERY_H_ +#define _GALLERY_H_ + +#include +#include +#include + +#include "gl-data.h" + +#ifndef EXPORT_API +#define EXPORT_API __attribute__ ((visibility("default"))) +#endif + +#ifdef __cplusplus +extern "C" +{ +#endif + +#if !defined(APPDIR) +# define APPDIR "/usr/apps/org.tizen.gallery" +#endif + +#if !defined(PACKAGE) +# define PACKAGE "gallery" +#endif + +#if !defined(LOCALEDIR) +# define LOCALEDIR APPDIR"/res/locale" +#endif + +#if !defined(EDJDIR) +# define EDJDIR APPDIR"/res/edje" +#endif + +#if !defined(IMAGEDIR) +# define IMAGEDIR APPDIR"/res/images/" +#endif + +#define PKGNAME_GALLERY "org.tizen.gallery" +#define GL_APP_DEFAULT_ICON_DIR "/usr/share/icons/default/small" + +/******** EDJ File path ********/ + +#define GL_EDJ_FILE EDJDIR "/" PACKAGE ".edj" + +/******** Groups name ********/ + +#define GL_GRP_CONTROLBAR "gallery/layout" +#define GL_GRP_GRIDVIEW "gallery/gridview" +#define GL_GRP_PLACES_MARKER "gallery/place_marker" +#define GL_GRP_PROGRESSBAR "gallery/progressbar" +#define GL_GRP_PHOTOFRAME "photoframe" + +/******* Part name ***********/ + +#define GL_NAVIFRAME_PREV_BTN "prev_btn" +#define GL_NAVIFRAME_TITLE_PREV_BTN "title_prev_btn" +#define GL_NAVIFRAME_TITLE_RIGHT_BTN "title_right_btn" +#define GL_NAVIFRAME_TITLE_LEFT_BTN "title_left_btn" +#define GL_NAVIFRAME_TITLE_MORE_BTN "title_more_btn" +#define GL_NAVIFRAME_TITLE_BTN1 "title_toolbar_button1" +#define GL_NAVIFRAME_TITLE_BTN2 "title_toolbar_button2" + +#define GL_NAVIFRAME_BTN1 "toolbar_button1" +#define GL_NAVIFRAME_BTN2 "toolbar_button2" +#define GL_NAVIFRAME_MORE "toolbar_more_btn" +#define GL_NAVIFRAME_TOOLBAR "toolbar" + +#define GL_POPUP_TEXT "title,text" +#define GL_NOCONTENTS_TEXT "elm.text" +#define GL_NOCONTENTS_TEXT2 "elm.text.2" +#define GL_GRID_TEXT "elm.text" +#define GL_NAAVIFRAME_TEXT "elm.text.title" + +#define GL_IMF_ON "virtualkeypad,state,on" +#define GL_IMF_OFF "virtualkeypad,state,off" +#define GL_STA_ON "clipboard,state,on" +#define GL_STA_OFF "clipboard,state,off" + +/******** Style name ********/ + +#define GL_CLASS_GENGRID "gengrid" +#ifdef _USE_CUSTOMIZED_GENGRID_STYLE +#define GL_GENGRID_STYLE_GALLERY "gallery" +#endif + +#define GL_BUTTON_STYLE_RENAME "rename" //"gallery/rename" +#define GL_BUTTON_STYLE_NAVI_MORE "naviframe/more/default" +#define GL_BUTTON_STYLE_NAVI_TITLE "naviframe/title_text" +#define GL_BUTTON_STYLE_NAVI_TITLE_ICON "naviframe/title_icon" +#define GL_BUTTON_STYLE_NAVI_TOOLBAR "naviframe/toolbar/default" +#define GL_BUTTON_STYLE_NAVI_TOOLBAR_LEFT "naviframe/toolbar/left" +#define GL_BUTTON_STYLE_NAVI_TOOLBAR_RIGHT "naviframe/toolbar/right" + +/* Button object style of previous button of naviframe */ +#define GL_BUTTON_STYLE_NAVI_PRE "naviframe/back_btn/default" +#ifdef _USE_ROTATE_BG +#define GL_BUTTON_STYLE_NAVI_CTRL "naviframe_control/multiline" +#endif + +#define GL_CHECKBOX_STYLE_DEFAULT "gallery/default" +#define GL_GENLIST_STYLE_DEFAULT GL_CHECKBOX_STYLE_DEFAULT +#define GL_POPUP_STYLE_DEFAULT GL_CHECKBOX_STYLE_DEFAULT +#define GL_CONTROLBAR_STYLE_NAVI "naviframe" +#define GL_CBAR_STYLE_DEFAULT GL_CHECKBOX_STYLE_DEFAULT + +/******** String ********/ + +#define GL_SEPERATOR_BT '?' +#define GL_ARGV_MSS_TYPE "MSS_Type" +#define GL_ARGV_MSS_3 "3" +#define GL_ARGV_MSS_SORT_TYPE "MSS_Sort_type" +#define GL_ARGV_MSS_SORT_1 "1" + +/* MIME type */ +#define GL_MIME_IMAGE_ALL "image/*" +#define GL_MIME_VIDEO_ALL "video/*" + +#define GL_AUL_PREFIX "gallery:" +#define GL_AUL_IMAGE "imageviewer" + +/******** Numerical value ********/ + +/* Window width and height */ +#define GL_WIN_WIDTH 720 +#define GL_WIN_HEIGHT 1280 +/*naviframe title + naviframe bottom toobar */ +#define GL_FIXED_HEIGHT (111 + 98) + +/* Specified ID for customed items, which don't exist in DB */ +#define GL_TAG_FAVORITES_ID 0 +#define GL_ALBUM_ALL_ID "GALLERY_ALBUM_ALL_ALBUMS_ID" +#define GL_ALBUM_FAVOURITE_ID "GALLERY_ALBUM_FAVOURITE_ALBUMS_ID" +#define GL_ALBUM_ALLSHARE_ID "GALLERY_ALBUM_ALLSHARE_ID" +#define GL_ALBUM_PTP_ID "GALLERY_ALBUM_PTP_ID" + +/* Size of thumbnails in gridview */ +#define GL_GRID_ITEM_CNT 32 +/* Thumbnail would be enlarged if medias count is less than 7 */ +#define GL_GRID_ITEM_ZOOM_LEVEL_02 2 +#define GL_GRID_ITEM_ZOOM_LEVEL_03 (1.35f) +#define GL_GRID_ITEM_ZOOM_LEVEL_02_CNT 8 + +#define GL_MOUSE_RANGE 10 + +/* Range of longitude and latitude */ +#define GL_MAP_LONG_MAX 180.0 +#define GL_MAP_LONG_MIN (-180.0) +#define GL_MAP_LAT_MAX 90.0 +#define GL_MAP_LAT_MIN (-90.0) +#define GL_MAP_GEO_INIT 1000.0 + +/* String length of mtye item id */ +#define GL_MTYPE_ITEN_ID_LEN_MAX 37 + +/* String length of album name */ +#define GL_ALBUM_NAME_LEN_MAX GL_FILE_NAME_LEN_MAX + +#define GL_DATE_INFO_LEN_MAX 256 +#define GL_POPUP_DESC_LEN_MAX 256 +#define GL_EXT_STR_COUNT_LEN 20 +#define GL_FACE_DETECT_INFO_LEN_MAX 128 + +/* String length for webalbum */ +#define GL_WEB_ALBUM_TITLE_LEN_MAX 256 +#define GL_WEB_ALBUM_ID_LEN_MAX GL_WEB_ALBUM_TITLE_LEN_MAX +#define GL_WEB_WEBNODE_NAME_LEN_MAX 128 +#define GL_WEB_WEBNODE_ALBUM_ID_LEN_MAX GL_WEB_WEBNODE_NAME_LEN_MAX +#define GL_WEB_WEBNODE_TOKEN_LEN_MAX 512 + +#define GL_PLACE_DATA_STR_LEN_MAX 64 + +/* String length for PTP album */ +#define GL_PTP_MODEL_LEN_MAX 128 + +/* 1900 */ +#define GL_DEFAULT_YEAR 1900 +/* 1s=1000ms */ +#define GL_TIME_MSEC_PER_SEC 1000 +/*1s = 1000000us*/ +#define GL_TIME_USEC_PER_SEC 1000000L +/* 1ms=1000us */ +#define GL_TIME_USEC_PER_MSEC 1000 +/* 1min=60s */ +#define GL_TIME_SEC_PER_MIN 60 +/* 1h=60min */ +#define GL_TIME_MIN_PER_HOUR 60 +/* 1h=(60x60)s */ +#define GL_TIME_SEC_PER_HOUR (GL_TIME_MIN_PER_HOUR * GL_TIME_SEC_PER_MIN) + +/* itoa length max ----> 1(sign) + 10(2^31) + 1(NULL) */ +#define GL_INTERGER_LEN_MAX 12 + +#define GL_ERROR_BUF_LEN 1024 + +/* File system related String definition */ +#define GL_ROOT_PATH_PHONE "/opt/usr/media" +#define GL_ROOT_PATH_MMC "/opt/storage/sdcard" +#define GL_DEFAULT_PATH_IMAGES GL_ROOT_PATH_PHONE"/Pictures" // refer to s4 +#define GL_DEFAULT_PATH_PICTURES GL_ROOT_PATH_PHONE"/Images" +#define GL_DOWNLOADS_PATH GL_ROOT_PATH_PHONE"/Downloads" +#define GL_DATA_FOLDER_PATH "/opt/usr/apps/"PKGNAME_GALLERY"/data" + +#define GL_NAVIFRAME_OBJ_DATA_KEY "gl_naviframe_data_key" +#define GL_NAVIFRAME_UG_UPDATE_KEY "gl_naviframe_ug_update_key" +#define GL_NAVIFRAME_UG_RESULT_KEY "gl_naviframe_ug_result_key" +#define GL_NAVIFRAME_SLIDESHOW_DATA_KEY "gl_naviframe_slideshow_data_key" +#ifdef _USE_APP_SLIDESHOW +#define GL_NAVIFRAME_SELECTED_SLIDESHOW_KEY "gl_naviframe_selected_slideshow_key" +#endif +#define GL_NAVIFRAME_POP_CB_KEY "gl_naviframe_pop_cb_key" + +/******** Enumeration ********/ +typedef enum _gl_view_mode +{ + GL_VIEW_NONE, + GL_VIEW_ALBUMS, + GL_VIEW_ALBUMS_EDIT, + GL_VIEW_ALBUMS_RENAME, + GL_VIEW_ALBUMS_SELECT, + GL_VIEW_TIMELINE, + GL_VIEW_THUMBS, + GL_VIEW_THUMBS_EDIT, + GL_VIEW_THUMBS_SELECT, + GL_VIEW_ALBUM_REORDER, +} gl_view_mode; + +typedef enum _gl_app_exit_mode +{ + GL_APP_EXIT_NONE, + GL_APP_EXIT_MASS_STORAGE, +} gl_app_exit_mode; + +typedef enum _gl_entry_mode +{ + GL_ENTRY_NONE, + GL_ENTRY_NEW_ALBUM, + GL_ENTRY_RENAME_ALBUM, + GL_ENTRY_RENAME_TAG, +} gl_entry_mode; + +/* Grid view created for different thumbnails view types */ +enum _gl_gird_t { + GL_GRID_T_NONE, + GL_GRID_T_LOCAL, + GL_GRID_T_ALLALBUMS, + GL_GRID_T_FAV, +}; +typedef enum _gl_gird_t gl_grid_t_e; + +enum _gl_edit_mode_t { + GL_GRID_EDIT = 0, + GL_GRID_SHARE, +}; +typedef enum _gl_edit_mode_t _gl_edit_mode_t_e; + +typedef enum _gl_detail_view_display_order { + ORDER_ASC = 0, + ORDER_DESC +}_gl_view_order; + +typedef enum _gl_album_detail_view_mode { + DETAIL_VIEW = 0, + SPLIT_VIEW +}_gl_detail_view_mode; +/******** Structure ********/ + +typedef struct gl_db_noti_t gl_db_noti_s; +typedef struct _gl_timeline_t gl_timeline_s; + +typedef struct +{ + Evas_Object *ctrlbar_ly; + /* Layout of albums view/tags view/places view */ + Evas_Object *ctrlbar_view_ly; + /* Naviframe item pushed to stack */ + Elm_Object_Item *nf_it; + int tab_mode; /* State of controlbar item: Albums, Places or Tags */ + Ecore_Timer *avoid_multi_tap; +} gl_ctrl_info; + +typedef struct +{ + Evas_Object *gesture_sel; + Evas_Object *gesture; + int zoom_level; +} gl_pinch_info; + +typedef struct _gl_mouse_t gl_mouse_s; +struct _gl_mouse_t { + Evas_Coord x; + Evas_Coord y; + bool b_pressed; +}; + +typedef struct +{ + Elm_Gengrid_Item_Class date_gic; /* Gengrid item class of date view */ + Evas_Object *layout; + /* Thumbnail selection view for Add tag to photo */ + Evas_Object *select_view; + Evas_Object *select_layout; + Evas_Object *view; + Evas_Object *nocontents; + bool b_slideshow_disable; + /* Edit */ + bool is_append; + /* It's in edit view */ + int edit_mode; + /* Naviframe item pushed to stack */ + Elm_Object_Item *nf_it; + Elm_Object_Item *nf_it_select; + char *title; + gl_mouse_s mouse; /* Added for shrink effect while select thumbnail */ + Ecore_Timer *clicked_timer; + /* It's thumbnails icon size, not grid item size */ + int icon_w; + int icon_h; + /* if album contains more than (GL_FIRST_VIEW_END_POS+1) medias */ + Eina_List *medias_elist; + int count; /* Media items count appended to gridview including burst shot*/ + bool back_to_normal; /* When back from edit mode, reset checkbox state */ + _gl_view_order media_display_order; /* keep track of the media items display order */ + gl_grid_t_e grid_type; + Elm_Object_Item *it; /* Keep track of selected item in move copy popup*/ + _gl_detail_view_mode split_view_mode; + bool multi_touch; + bool update_split_view; +} gl_grid_info; + +typedef struct +{ + bool b_app_called; /* Indicates if any application invoked by Gallery */ + app_control_h ug; + int ug_type; + int iv_type; + void *data; + int sort_type; /* Types: wminfo_media_sort_type; pass it to imageviewer */ + bool b_start_slideshow; /* Start slideshow from slideshow-setting ug */ + bool b_ug_launched; +#ifdef _USE_APP_SLIDESHOW + bool b_selected_slideshow; +#endif +} gl_ug_info; + +typedef struct +{ + Elm_Gengrid_Item_Class gic; /* Gengrid item class of albums view */ + Evas_Object *view; /* Albums view object */ + Evas_Object *nocontents; /* Nocontents object */ + /* Albums view object for Add tag to photo */ + Evas_Object *select_view; + /* Albums view layout object for Add tag to photo */ + Evas_Object *select_layout; + + int b_share_mode; /* Direct share mode */ + gl_cluster *current; /* Album selected for showing thumbnails view/list view */ + /* Album selected for rename/open locked album */ + gl_cluster *selected; + /* Save destination album id while move/save */ + char *path; + char new_name[GL_ALBUM_NAME_LEN_MAX]; + bool b_new_album; + char *temp_album_name; + int file_mc_mode; + Eina_List *sel_elist; /* List of all selected albums */ + gl_cluster_list *elist; /* List of all albums */ + int albums_cnt; /* Albums count appended to gridview */ + char dest_folder[GL_DIR_PATH_LEN_MAX]; /* The full path of destination album of movement */ + + Elm_Object_Item *nf_it_select; + Elm_Object_Item *grid_sel_item; /* currently selected album grid item will be stored here */ + char *selected_uuid; /* currently selected album's uuid will be stored here */ +} gl_album_info; + +typedef struct +{ + Evas_Object *editfield; + Evas_Object *entry; + Evas_Object *popup; + Ecore_IMF_Context *context; + Elm_Entry_Filter_Limit_Size *limit_filter; + + /* Type: gl_entry_mode; Indicate usage of entry */ + int mode; + /* Button 'Done' in new album/tag view */ + Evas_Object *done_btn; + Elm_Object_Item *nf_it; + void *op_cb; /* Operation after done pressed */ + bool b_hide_toolbar; + bool b_hide_sip; +} gl_entry_info; + +typedef struct +{ + Evas_Object *popup; + Evas_Object *memory_full_popup; + int mode; + /* Selectioninfo popup layout */ + Ecore_Timer *del_timer; +} gl_popup_info; + +typedef struct { + Eina_List *elist; /* List of all selected medias of a album/tag/marker */ + Eina_List *fav_elist; /* List of fav medias of a album/tag/marker */ + int images_cnt; /* Images count selected */ + int jpeg_cnt; /* JEPG files count selected */ + int disable_hide_cnt; /* Disable hide files count selected */ + /* All media count */ + int sel_cnt; + /* Checkbox state of select-all */ + Eina_Bool ck_state; + Evas_Object *selectall_ck; + Eina_List *copy_elist; +} gl_selected_info; + +typedef struct { + Evas_Object *popup; + Evas_Object *pbar; + Evas_Object *status_label; + Ecore_Timer *pbar_timer; + /** + * After progressbar showed completely, use timer to + * emit next signal to write pipe to continue to operate medias. + */ + Ecore_Timer *start_thread_timer; + /** + * After thread operation done, use idler to + * delete progressbar after it's showed completely(status is 100%). + */ + Ecore_Job *del_pbar_job; + Ecore_Timer *del_pbar_timer; + Ecore_Pipe *sync_pipe; /* Pipe for communication between main and child thread */ + pthread_mutex_t pbar_lock; /* Lock for state of 'Cancel' button */ + pthread_mutex_t refresh_lock; /* Lock for progressbar refreshing */ + pthread_cond_t refresh_cond; /* Condition for progressbar refreshing */ + int refresh_flag; /* Indicates progressbar updated or not while moving or deleting */ + int pbar_cancel; /* State of 'Cancel' button on progressbar popup */ + /* Medias count already operated */ + int finished_cnt; + int total_cnt; + void *op_cb; + void *update_cb; + void *del_item_cb; +} gl_pbar_info; + +typedef struct +{ + Evas_Object *win; + Evas_Object *layout; + Evas_Object *naviframe; + Evas_Object *bg; + Evas_Object *ctxpopup; + Evas_Object *entry_win; /* For 3D view */ + int rotate_mode; /* Type: appcore_rm; Indicate rotation mode of whole application */ + int view_mode; /* Type: gl_view_mode; Indicate view mode of whole application */ + bool reentrant; + bool b_paused; + /* Mouse down event handle */ + Ecore_Event_Handler *keydown_handler; + /* Font type change event handle */ + Ecore_Event_Handler *font_handler; + void *dlopen_iv_handle; /* Handle for dlopen imageviewer lib .so */ + /* Use idler to register ASF when launching Gallery */ + Ecore_Timer *reg_idler; + bool b_reged_idler; + + int all_medias_cnt; + time_t last_mtime; + int medias_op_type; /* Type: Move or Delete medias */ + int mmc_state; /* MMC state(Inserted, Removed) */ + /* SVI, for playing touch sound */ + int svi_handle; + int sound_status; + Ecore_Idler *mmc_idler; + int externalStorageId; +} gl_main_info; + + +struct _gl_appdata +{ + gl_main_info maininfo; /* Global variables about webalbum */ + gl_ctrl_info ctrlinfo; /* Global variables about controlbar */ + gl_album_info albuminfo; /* Global variables about albums view */ + gl_grid_info gridinfo; /* Global variables about thumbnails view */ + gl_pinch_info pinchinfo; /* Global variables about pinch zoom out */ + gl_entry_info entryinfo; /* Global variables about entry */ + gl_popup_info popupinfo; /* Global variables about popup */ + gl_pbar_info pbarinfo; /* Global variables about progressbar */ + gl_ug_info uginfo; /* Global variables about ug */ + gl_selected_info selinfo; /* Global variables about files selected */ + gl_timeline_s *tlinfo; /* Global variables about TIMELINE view */ + /* Data about using inotify */ + gl_db_noti_s *db_noti_d; +}; + +typedef struct _gl_appdata gl_appdata; + +#ifdef __cplusplus +} +#endif + +#endif /* _GALLERY_H_ */ + diff --git a/inc/util/gl-db-update.h b/inc/util/gl-db-update.h new file mode 100755 index 0000000..b583cdf --- /dev/null +++ b/inc/util/gl-db-update.h @@ -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. +* +*/ + +#ifndef _GL_DB_UPDATE_H_ +#define _GL_DB_UPDATE_H_ + +int _gl_db_update_add_timer(void *data); +bool _gl_db_update_lock_once(void *data, bool status); +bool _gl_db_update_lock_always(void *data, bool status); +bool _gl_db_update_set_count(void *data, int count); +int _gl_db_update_get_info(void *data, + media_content_db_update_item_type_e *update_item, + media_content_db_update_type_e *update_type, + GList **uuids); +bool _gl_db_update_reg_cb(void *data); +bool _gl_db_update_init(void *data); +bool _gl_db_update_finalize(void *data); + +#endif + diff --git a/inc/util/gl-debug.h b/inc/util/gl-debug.h new file mode 100755 index 0000000..5c3ccd4 --- /dev/null +++ b/inc/util/gl-debug.h @@ -0,0 +1,130 @@ +/* +* 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 _GL_DEBUG_H_ +#define _GL_DEBUG_H_ + +#include +#include +#include "gl-ta.h" +#include + +#ifdef __cplusplus +extern "C" +{ +#endif + +#ifdef LOG_TAG +#undef LOG_TAG +#endif + +#define LOG_TAG "GALLERY" + +/* anci c color type */ +#define FONT_COLOR_RESET "\033[0m" +#define FONT_COLOR_RED "\033[31m" +#define FONT_COLOR_GREEN "\033[32m" +#define FONT_COLOR_YELLOW "\033[33m" +#define FONT_COLOR_BLUE "\033[34m" +#define FONT_COLOR_PURPLE "\033[35m" +#define FONT_COLOR_CYAN "\033[36m" +#define FONT_COLOR_GRAY "\033[37m" + +#ifdef _USE_DLOG_ + +#define gl_dbg(fmt, arg...) LOGD(FONT_COLOR_BLUE fmt FONT_COLOR_RESET, ##arg) +#define gl_dbgI(fmt, arg...) LOGI(FONT_COLOR_GREEN fmt FONT_COLOR_RESET, ##arg) +#define gl_dbgW(fmt, arg...) LOGW(FONT_COLOR_CYAN fmt FONT_COLOR_RESET, ##arg) +#define gl_dbgE(fmt, arg...) LOGE(FONT_COLOR_RED fmt FONT_COLOR_RESET, ##arg) + +#define GL_PROFILE_IN LOG(LOG_DEBUG, "LAUNCH", "[gallery:Application:%s:IN]", __FUNCTION__) +#define GL_PROFILE_OUT LOG(LOG_DEBUG, "LAUNCH", "[gallery:Application:%s:OUT]", __FUNCTION__) +#define GL_PROFILE_F_IN(func) LOG(LOG_DEBUG, "LAUNCH","[gallery:Application:"func":IN]") +#define GL_PROFILE_F_OUT(func) LOG(LOG_DEBUG, "LAUNCH","[gallery:Application:"func":OUT]") + +#else + +#define gl_dbg(fmt,arg...) +#define gl_dbgW(fmt, arg...) +#define gl_dbgE(fmt, arg...) + +#define GL_PROFILE_IN +#define GL_PROFILE_OUT +#define GL_PROFILE_F_IN(func) +#define GL_PROFILE_F_OUT(func) + +#endif + +#ifdef _USE_SECURE_LOG_ +#define gl_sdbg(fmt, arg...) SECURE_LOGD(FONT_COLOR_BLUE fmt FONT_COLOR_RESET, ##arg) +#define gl_sdbgW(fmt, arg...) SECURE_LOGI(FONT_COLOR_GREEN fmt FONT_COLOR_RESET, ##arg) +#define gl_sdbgE(fmt, arg...) SECURE_LOGE(FONT_COLOR_RED fmt FONT_COLOR_RESET, ##arg) +#endif + + +#include +#include + +//long gl_get_debug_time(void); +//void gl_reset_debug_time(void); +//void gl_print_debug_time(char* time_string); +void gl_print_debug_time_ex(long start, long end, const char *func_name, char *time_string); + + + +#define gl_retm_if(expr, fmt, arg...) do { \ + if (expr) { \ + gl_dbgE(fmt, ##arg); \ + gl_dbgE("(%s) -> %s() return", #expr, __FUNCTION__); \ + return; \ + } \ +} while (0) + +#define gl_retvm_if(expr, val, fmt, arg...) do { \ + if (expr) { \ + gl_dbgE(fmt, ##arg); \ + gl_dbgE("(%s) -> %s() return", #expr, __FUNCTION__); \ + return (val); \ + } \ +} while (0) + +#define GL_CHECK_EXCEP(expr) do { \ + if (!(expr)) { \ + gl_dbgE("Critical ERROR ########################################## Check below item.");\ + goto gl_exception;\ + } \ +} while (0) + +#define GL_CHECK_VAL(expr, val) gl_retvm_if(!(expr), val, "Invalid parameter, return ERROR code!") +#define GL_CHECK_NULL(expr) gl_retvm_if(!(expr), NULL, "Invalid parameter, return NULL!") +#define GL_CHECK_FALSE(expr) gl_retvm_if(!(expr), false, "Invalid parameter, return FALSE!") +#define GL_CHECK_CANCEL(expr) gl_retvm_if(!(expr), ECORE_CALLBACK_CANCEL, "Invalid parameter, return ECORE_CALLBACK_CANCEL!") +#define GL_CHECK(expr) gl_retm_if(!(expr), "Invalid parameter, return!") + +#define gl_assert(expr) do { \ + if (!(expr)) { \ + gl_dbgE("Critical ERROR ########################################## Check below item.");\ + assert(false); \ + } \ +} while (0) + +#ifdef __cplusplus +} +#endif + +#endif /* _GL_DEBUG_H_ */ + diff --git a/inc/util/gl-exif.h b/inc/util/gl-exif.h new file mode 100755 index 0000000..7cb7f1f --- /dev/null +++ b/inc/util/gl-exif.h @@ -0,0 +1,60 @@ +/* +* 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. +* +*/ + +#ifdef _USE_ROTATE_BG + +#ifndef _GL_EXIF_H_ +#define _GL_EXIF_H_ + +#include +#include + +#ifdef __cplusplus +extern "C" +{ +#endif + +/* +Orientation - angle +1 - 0 +3 - 180 +6 - 90 +8 - 270 +*/ + +enum _gl_orientation_rot_t { + GL_ORIENTATION_ROT_ERR = 0, + GL_ORIENTATION_ROT_0 = 1, + GL_ORIENTATION_ROT_180 = 3, + GL_ORIENTATION_ROT_90 = 6, + GL_ORIENTATION_ROT_270 = 8, +}; +typedef enum _gl_orientation_rot_t gl_orientation_rot_e; + +bool _gl_exif_check_img_type(char *file_path); +int _gl_exif_get_orientation(char *file_path, unsigned int *orientation); +int _gl_exif_set_orientation(char *file_path, unsigned int orientation); +int _gl_exif_get_rotated_orientation(unsigned int orientation, bool b_left); + +#ifdef __cplusplus +} +#endif + +#endif /* _GL_EXIF_H_ */ + +#endif + diff --git a/inc/util/gl-ext-exec.h b/inc/util/gl-ext-exec.h new file mode 100755 index 0000000..7ea7d84 --- /dev/null +++ b/inc/util/gl-ext-exec.h @@ -0,0 +1,49 @@ +/* +* 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 _GL_EXT_EXEC_H_ +#define _GL_EXT_EXEC_H_ + +typedef enum +{ + GL_LAUNCH_FAIL, + GL_LAUNCH_SUCCESS +} gl_launch_status; + +typedef enum +{ + GL_APP_NONE = -1, + GL_APP_VIDEOPLAYER, + GL_APP_EMOLINK, /* connectivity. */ +} gl_ext_app_type; + +int gl_ext_exec(void *data, gl_ext_app_type type); +#ifdef GL_EXTENDED_FEATURES +int _gl_ext_load_camera(void *data); +int _gl_ext_load_ie(void *data, void *get_path_cb); +int _gl_ext_load(const char *uri, const char *operation, const char *pkg, const char *pkg_id, const char *mime); +int _gl_ext_launch_image_editor(const char *path_string); +int _gl_ext_launch_share(void *data, int total_cnt, void *get_path_cb); +int _gl_ext_is_larger_than_share_max(int total_cnt); +int _gl_ext_launch_share_with_files(void *data, int total_cnt, char **files); +#ifndef _USE_APP_SLIDESHOW +int _gl_ext_launch_gallery_ug(void *data); +#endif +#endif + +#endif /* _GL_EXT_EXEC_H_ */ + diff --git a/inc/util/gl-ext-ug-load.h b/inc/util/gl-ext-ug-load.h new file mode 100755 index 0000000..f3e837e --- /dev/null +++ b/inc/util/gl-ext-ug-load.h @@ -0,0 +1,57 @@ +/* +* 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 _GL_EXT_UG_LOAD_H_ +#define _GL_EXT_UG_LOAD_H_ + +#include "gl-data.h" + +typedef enum +{ + GL_UG_FAIL, + GL_UG_SUCCESS +} gl_ug_load_status; + +typedef enum +{ + GL_UG_IMAGEVIEWER, + GL_UG_GALLERY_SETTING_SLIDESHOW, + GL_UG_GALLERY_SETTING, + GL_UG_CNT, +} gl_ext_ug_type; + +typedef enum +{ + GL_UG_IV, + /*Invoke imageviewer to slideshow on local album */ + GL_UG_IV_SLIDESHOW, + /*Invoke imageviewer to slideshow All items */ + GL_UG_IV_SLIDESHOW_ALL, +#ifdef _USE_APP_SLIDESHOW + /*Invoke imageviewer to slideshow selected files */ + GL_UG_IV_SLIDESHOW_SELECTED, +#endif + GL_UG_IV_CNT, +} gl_ext_iv_type; + +int gl_ext_load_ug(void *data, gl_ext_ug_type type); +int gl_ext_load_iv_ug(void *data, gl_item *item, gl_ext_iv_type type); +int gl_ext_load_iv_ug_select_mode(void *data, gl_media_s *item, gl_ext_iv_type type); +int gl_ext_load_iv_time_ug_select_mode(void *data, gl_media_s *item, gl_ext_iv_type type, int sort_type); +int _gl_ext_load_iv_timeline(void *data, const char *path, int sequence, int sort_type); + +#endif /* _GL_EXT_UG_LOAD_H_ */ diff --git a/inc/util/gl-file-util.h b/inc/util/gl-file-util.h new file mode 100644 index 0000000..2178713 --- /dev/null +++ b/inc/util/gl-file-util.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 _GL_FILE_UTIL_H_ +#define _GL_FILE_UTIL_H_ + +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" +{ +#endif + +int gl_file_exists(const char *path); + +int gl_file_is_dir(const char *path); + +int gl_file_unlink(const char *filename); + +int gl_file_size(const char *filename); + +int gl_file_rmdir(const char *filename); + +int gl_file_dir_is_empty(const char *path); + +Eina_List *gl_file_ls(const char *dir); + +int gl_file_recursive_rm(const char *dir); + +char* gl_file_dir_get(const char path[]); + +int gl_file_mkpath(const char *path); + +int gl_file_mv(const char *src, const char *dst); + +#ifdef __cplusplus +} +#endif + +#endif // end of _GL_FILE_UTIL_H_ diff --git a/inc/util/gl-fs.h b/inc/util/gl-fs.h new file mode 100755 index 0000000..ed3b0c9 --- /dev/null +++ b/inc/util/gl-fs.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 _GL_FS_H_ +#define _GL_FS_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +typedef struct _gl_node_info_t gl_node_info_s; +struct _gl_node_info_t { + /* Parent path */ + char *path; + /* File/folder name */ + char *name; + /* Modified time */ + time_t mtime; + /* File size / folder's content size */ + unsigned long long size; +}; + +int _gl_fs_update_file_mtime(const char *path); +int _gl_fs_get_file_stat(const char *filename, gl_node_info_s **node); +unsigned long long _gl_fs_get_folder_size(char *path); +int _gl_fs_rm_folder(char *path, long long cut_size, long long max_size, + unsigned int expired_time); +#ifdef _RENAME_ALBUM_SENSITIVE +bool _gl_fs_check_name_case(char *dir, char *exist_name); +#endif +bool _gl_fs_is_low_memory(unsigned long long total_size); +unsigned long long gl_fs_get_free_space(int state); +int _gl_fs_get_file_ext(const char *file_path, char *file_ext, int max_len); +bool _gl_fs_get_path_without_ext(const char *file_path, char *file_ext, + char *new_path); +Eina_Bool _gl_fs_move(void *data, const char *src, const char *dst); +Eina_Bool _gl_fs_copy(void *data, const char *src, const char *dst); +char *_gl_fs_get_unique_full_path(char *file_path, char *ext); +char *_gl_fs_get_unique_new_album_name(char *parent_path, char *default_name, + char **new_name); +bool _gl_fs_validate_name(const char *new_name); +bool _gl_fs_validate_character(const char name_char); +int _gl_fs_get_default_folder(char *path); +bool _gl_fs_mkdir(const char *path); + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/inc/util/gl-icons.h b/inc/util/gl-icons.h new file mode 100755 index 0000000..6f30873 --- /dev/null +++ b/inc/util/gl-icons.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 _GL_ICONS_H_ +#define _GL_ICONS_H_ + +#define GL_APPDIR "/usr/apps/org.tizen.gallery" +#define GL_EDJDIR GL_APPDIR"/res/edje" +#define GL_IMAGEDIR GL_APPDIR"/res/images/" +#define GL_APP_DEFAULT_ICON_DIR "/usr/share/icons/default/small" + +/******** Image path ********/ + +#define GL_ICON_DEFAULT GL_APP_DEFAULT_ICON_DIR"/org.tizen.gallery.png" +#define GL_ICON_DB_DEFAULT_THUMB "/opt/usr/data/file-manager-service/.thumb/thumb_default.png" +#define GL_ICON_NO_THUMBNAIL GL_IMAGEDIR"No_thumbnail_351X261.png" +#define GL_ICON_CONTENTS_BROKEN GL_IMAGEDIR"Contents_broken_351X261.png" + +/******** Image group in EDC file ********/ + +#define GL_IMAGES_EDJ_FILE GL_EDJDIR"/gl-images.edj" + +#define GL_ICON_LOCK "T01_icon_lock.png" +#define GL_ICON_ALBUM_CAMERA "T01_album_icon_camera.png" +#define GL_ICON_ALBUM_DOWNLOAD "T01_album_icon_download.png" +#define GL_ICON_ALBUM_FOLDER "T01_album_icon_folder.png" +#define GL_ICON_ALBUM_MMC "T01_album_icon_sd_card.png" + +#define GL_ICON_VIDEO_PLAY "T01_btn_thumbnail_play.png" +#define GL_ICON_THUMB_BOOKMARK "T01_icon_thumbnail_bookmark.png" + +#define GL_ICON_SOUND_SHOT "T01_icon_sound_shot.png" +#define GL_ICON_PANORAMA "T01_icon_panorama.png" +#define GL_ICON_BURSTSHOT "T01_icon_bustshot_45x45.PNG" + +#define GL_ICON_TITLE_SELECT_ALL "T01_title_icon_select_all.png" +#define GL_ICON_CAMERA "T01_icon_camera_all.png" + +#define GL_ICON_NEW_ALBUM "T01_popup_icon_new_album.png" +#define GL_ICON_SLIDESHOW "T01_popup_icon_slideshow.png" +#define GL_ICON_SHARE "T01_icon_share.png" +#define GL_ICON_COPY "T01_popup_copy.png" +#define GL_ICON_MOVE "T01_popup_move.png" +#define GL_ICON_EDIT_IMAGE "T02_popup_icon_edit_image.png" +#define GL_ICON_SETTINGS "T02_popup_icon_settings.png" +#define GL_ICON_ROTATE_RIGHT "T01_popup_icon_rotate_right.png" +#define GL_ICON_ROTATE_LEFT "T01_popup_icon_rotate_left.png" +#define GL_ICON_EDIT "T01_popup_icon_edit.png" +#define GL_ICON_DELETE "T01_popup_icon_delete.png" +#define GL_ICON_DONE "T01_popup_icon_done.png" +#define GL_ICON_RENAME "T01_popup_icon_rename.png" +#define GL_ICON_NOCONGENTS_VIDEOS "T01_nocontents_videos.png" +#define GL_ICON_BACK "T01_icon_back.png" +#define GL_ICON_FOLDER "gallery_list_icon_folder.png" +#define GL_ICON_MMC "gallery_list_icon_my_files_sd_card.png" + +#endif + diff --git a/inc/util/gl-lang.h b/inc/util/gl-lang.h new file mode 100755 index 0000000..580e1fd --- /dev/null +++ b/inc/util/gl-lang.h @@ -0,0 +1,36 @@ +/* +* 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 _GL_LANG_H_ +#define _GL_LANG_H_ + +#include "gallery.h" + +#ifdef __cplusplus +extern "C" +{ +#endif + +int _gl_lang_update(void *data); + +#ifdef __cplusplus +} +#endif + + +#endif + diff --git a/inc/util/gl-strings.h b/inc/util/gl-strings.h new file mode 100755 index 0000000..eac958c --- /dev/null +++ b/inc/util/gl-strings.h @@ -0,0 +1,234 @@ +/* +* 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. +* +*/ + +/* This header file includes all multi language strings which need display */ +#ifndef _GL_STRINGS_H_ +#define _GL_STRINGS_H_ + +#ifdef __cplusplus +extern "C" +{ +#endif + +#define GL_STR_DOMAIN_SYS "sys_string" +#define GL_STR_DOMAIN_LOCAL PACKAGE + +/* Special album name saved in DB */ +#define GL_STR_ALBUM_CAMERA _("Camera") +#define GL_STR_ALBUM_DOWNLOADS _("Downloads") +#define GL_STR_ALBUM_SCREENSHOTS _("Screenshots") + +/* hard code strings and already translated strings in gallery po files */ +#define GL_STR_UNDER_IMPLEMENTATION _("Under Implementation!") + +#define GL_STR_INVALID_INPUT_PARAMETER _("IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER") +#define GL_STR_ENTRY_IS_EMPTY _("IDS_MEDIABR_POP_ENTRY_IS_EMPTY") +#define GL_STR_SAME_NAME_ALREADY_IN_USE _("IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE") + +#define GL_STR_UNABLE_tO_RENAME _("IDS_MEDIABR_POP_UNABLE_TO_RENAME") +#define GL_STR_NO_ALBUMS_SELECTED _("IDS_MEDIABR_POP_NO_ALBUMS_SELECTED") +#define GL_STR_SELECT_ITEM _(GL_STR_ID_SELECT_ITEM) +#define GL_STR_NO_ALBUMS _(GL_STR_ID_NO_ALBUMS) + +#define GL_STR_EMPTY _("") +#define GL_STR_NO_NAME GL_STR_ID_NO_NAME + +#define GL_STR_MORE dgettext("sys_string", "IDS_COM_BODY_MORE") + +#define GL_STR_DELETE_1_FILE _("IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED") +#define GL_STR_DELETE_PD_FILES _("IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB") + +#define GL_STR_DELETE_1_ALBUM _("IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED") +#define GL_STR_DELETE_PD_ALBUMS _("IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED") + +#define GL_STR_PD_SELECTED _("IDS_GALLERY_HEADER_PD_SELECTED_ABB") + +#define GL_STR_CREATE_FOLDER_Q _("IDS_MEDIABR_POP_CREATE_FOLDER_Q") +#define GL_STR_ITEMS _("items") +#define GL_STR_ITEM _("item") +#define GL_STR_RETRY_Q _("IDS_MEDIABR_POP_RETRY_Q") +#define GL_STR_REMOVE_COMFIRMATION _("IDS_MEDIABR_POPUP_REMOVE_Q") + +/* system strings which are included in sys-string-0 po files */ +#define GL_STR_OPERATION_FAILED dgettext("sys_string", GL_STR_ID_OPERATION_FAILED) +#define GL_STR_CAMERA dgettext("sys_string", GL_STR_ID_CAMERA) +#define GL_STR_CANCELLED dgettext("sys_string", "IDS_COM_POP_CANCELLED") +#define GL_STR_SUCCESS dgettext("sys_string", "IDS_COM_POP_SUCCESS") +#define GL_STR_FAILED dgettext("sys_string", "IDS_COM_POP_FAILED") +#define GL_STR_BACK dgettext("sys_string", "IDS_COM_SK_BACK") +#define GL_STR_DELETE dgettext("sys_string", GL_STR_ID_DELETE) +#define GL_STR_ALBUMS "IDS_GALLERY_BUTTON_ALBUMS" +#define GL_STR_ID_TIME_LINE "IDS_MEDIABR_HEADER_TIMELINE_ABB" +#define GL_STR_TIME_LINE dgettext("sys_string","IDS_MEDIABR_HEADER_TIMELINE_ABB") +#define GL_STR_DELETED dgettext("sys_string", "IDS_COM_POP_DELETED") +#define GL_STR_DELETE_COMFIRMATION dgettext("sys_string", "IDS_COM_POP_DELETE_Q") +#define GL_STR_SELECTED dgettext("sys_string", "IDS_COM_POP_SELECTED") +#define GL_STR_ADDED dgettext("sys_string", "IDS_COM_POP_ADDED") +#define GL_STR_MOVED dgettext("sys_string", "IDS_COM_POP_MOVED") +#define GL_STR_COPIED dgettext("sys_string", "IDS_COM_POP_COPIED_P") +#define GL_STR_SELECT_ALL dgettext("sys_string", "IDS_COM_BODY_SELECT_ALL") +#define GL_STR_NO_FILES_SELECTED dgettext("sys_string", GL_STR_ID_NO_FILES_SELECTED) +#define GL_STR_APPLICATION_NOT_INSTALLED dgettext("sys_string", "IDS_COM_BODY_APPLICATION_NOT_INSTALLED") +#define GL_STR_PROCESSING dgettext("sys_string", "IDS_COM_POP_PROCESSING") +#define GL_STR_TODAY dgettext("sys_string", "IDS_COM_BODY_TODAY") +#define GL_STR_YESTERDAY dgettext("sys_string", "IDS_COM_BODY_YESTERDAY") +#define GL_STR_SUN dgettext("sys_string", "IDS_COM_POP_SUN") +#define GL_STR_MON dgettext("sys_string", "IDS_COM_POP_MON") +#define GL_STR_TUE dgettext("sys_string", "IDS_COM_POP_TUE") +#define GL_STR_WED dgettext("sys_string", "IDS_COM_POP_WED") +#define GL_STR_THU dgettext("sys_string", "IDS_COM_POP_THU") +#define GL_STR_FRI dgettext("sys_string", "IDS_COM_POP_FRI") +#define GL_STR_SAT dgettext("sys_string", "IDS_COM_POP_SAT") +#define GL_STR_HELP dgettext("sys_string", "IDS_COM_BODY_HELP") + +/*string for screen reader*/ +#define GL_STR_SR_TAB _("tab") +#define GL_STR_SR_DOUBLE_TAP _("double tap to move to contents") +#define GL_STR_SR_THUMBNAIL_VIEW _("Thumbnail view") +#define GL_STR_SR_FOUCUSED_POINT _("Focused point") +#define GL_STR_SR_UNFOUCUSED_POINT _("Unfocused point") +#define GL_STR_SR_THUMBS_DOUBLE_TAP _("double tap to preview it") +#define GL_STR_SR_ALBUM_DOUBLE_TAP _("double tap to open the album") +#define GL_STR_SR_BUTTON _("button") +#define GL_STR_SR_TITLE _("title") + +/* Add ID to make update text easily if language changed */ +#define GL_STR_ID_DELETE_ACCOUNT_COMFIRMATION "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +#define GL_STR_ID_DELETE_WEB_ALBUMS "Some web albums will be deleted" +#define GL_STR_ID_DELETE "IDS_COM_OPT_DELETE" +#define GL_STR_ID_CANCEL "IDS_COM_SK_CANCEL" +#define GL_STR_ID_CANCEL_ABB "IDS_MEDIABR_BUTTON_CANCEL_ABB" +#define GL_STR_ID_MOVE_TO_ALBUM dgettext(GL_STR_DOMAIN_LOCAL, "IDS_GALLERY_OPT_MOVE_TO_ALBUM") +#define GL_STR_ID_COPY_TO_ALBUM dgettext(GL_STR_DOMAIN_LOCAL, "IDS_GALLERY_OPT_COPY_TO_ALBUM") +#define GL_STR_ID_MOVE "IDS_COM_BODY_MOVE" +#define GL_STR_ID_COPY "IDS_COM_BODY_COPY" +#define GL_STR_ID_NEW_ALBUM "IDS_GALLERY_OPT_CREATE_ALBUM" +#define GL_STR_ID_NEW_ALBUM_CONFIRMATION "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +#define GL_STR_ID_OPERATION_FAILED "IDS_COM_BODY_OPERATION_FAILED" +#define GL_STR_ID_CLOSE "IDS_COM_BODY_CLOSE" +#define GL_STR_ID_SHARE "IDS_MEDIABR_OPT_SHARE" +#define GL_STR_ID_START "IDS_COM_BODY_START" +#define GL_STR_ID_SETTINGS "IDS_COM_BODY_SETTINGS" +#ifdef SUPPORT_SLIDESHOW +#define GL_STR_ID_SLIDESHOW "IDS_MEDIABR_OPT_SLIDESHOW" +#endif +#define GL_STR_ID_START_SLIDESHOW "IDS_MEDIABR_OPT_START_SLIDESHOW" +#define GL_STR_ID_SLIDESHOW_SETTINGS "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +#define GL_STR_ID_ALBUMS "IDS_COM_BODY_ALBUMS" + +#define GL_STR_ID_GALLERY "IDS_COM_BODY_GALLERY" +#define GL_STR_ID_CHNAGE_NAME "IDS_COM_BODY_CHANGE_NAME" +#define GL_STR_ID_MOVING "IDS_COM_POP_MOVING" +#define GL_STR_ID_COPYING "IDS_COM_POP_COPYING_ING" +#define GL_STR_ID_DELETING "IDS_COM_POP_DELETING" +#define GL_STR_ID_YES "IDS_COM_SK_YES" +#define GL_STR_ID_NO "IDS_COM_SK_NO" +#define GL_STR_ID_OK "IDS_COM_SK_OK" +#define GL_STR_ID_DONE "IDS_COM_SK_DONE" +#define GL_STR_ID_RENAME "IDS_COM_SK_RENAME" +#define GL_STR_ID_CAMERA "IDS_COM_BODY_CAMERA" +#define GL_STR_ID_EDIT "IDS_COM_BODY_EDIT" +#define GL_STR_ID_SAVE "IDS_COM_SK_SAVE" +#define GL_STR_ID_DOWNLOADS "IDS_MF_BODY_DOWNLOADS" +#define GL_STR_ID_SCREENSHOTS "IDS_MF_BODY_SCREENSHOTS" +#define GL_STR_ID_NO_ITEMS dgettext(GL_STR_DOMAIN_LOCAL, "IDS_MEDIABR_POP_NO_ITEMS") +#define GL_STR_ID_NO_ITEMS_SECOND dgettext(GL_STR_DOMAIN_LOCAL, "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE") +#define GL_STR_ID_NO_CONTENTS "IDS_COM_BODY_NO_CONTENTS" +#define GL_STR_ID_NO_FILES_SELECTED "IDS_COM_POP_NO_FILES_SELECTED" +#define GL_STR_ID_NO_NAME "IDS_MEDIABR_POP_NO_NAME" +#define GL_STR_ID_ALL_ALBUMS dgettext(GL_STR_DOMAIN_LOCAL, "IDS_MEDIABR_BODY_ALL_ALBUMS") +#define GL_STR_ID_FAVOURITE_ALBUMS dgettext(GL_STR_DOMAIN_LOCAL, "IDS_TW_BODY_FAVORITES") +#define GL_STR_ID_SELECT_ALBUM "IDS_MEDIABR_HEADER_SELECT_ALBUM" +#define GL_STR_TIME_VIEW "IDS_GALLERY_HEADER_TIME" +#define GL_STR_SCREEN_HEIGHT_HD 1280 +#define GL_STR_SCREEN_WIDTH_HD 720 +#define GL_STR_SCREEN_HEIGHT_QHD 960 +#define GL_STR_SCREEN_WIDTH_QHD 540 +#define GL_STR_SCREEN_HEIGHT_WVGA 800 +#define GL_STR_SCREEN_WIDTH_WVGA 480 +#define GL_STR_SORT "IDS_MF_OPT_SORT_BY_ABB" +#define GL_STR_DATE_OLDEST "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +#define GL_STR_DATE_MOST_RECENT "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +#define GL_STR_ID_ALBUM_DEFAULT dgettext(GL_STR_DOMAIN_LOCAL, "IDS_GALLERY_HEADER_ALBUM") +#define GL_STR_ID_REORDER dgettext(GL_STR_DOMAIN_LOCAL, "IDS_CLOCK_HEADER_REORDER_ABB") +#define GL_STR_ID_SAME_DESTINATION_ERROR_MSG dgettext(GL_STR_DOMAIN_LOCAL, "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM") +#define GL_STR_ID_VIEW_AS "IDS_GALLERY_OPT_VIEW_AS" +#define GL_STR_ID_CANCEL_CAP "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +#define GL_STR_ID_DONE_CAP "IDS_TPLATFORM_ACBUTTON_DONE_ABB" + +#define GL_STR_ID_ALBUM dgettext(GL_STR_DOMAIN_LOCAL, "IDS_GALLERY_BUTTON_ALBUMS") +#define GL_STR_ID_SELECT_ITEM "IDS_MEDIABR_HEADER_SELECT_ITEM" +#define GL_STR_ID_NO_ALBUMS "IDS_MEDIABR_BODY_NO_ALBUMS" +#define GL_STR_ID_JAN dgettext(GL_STR_DOMAIN_LOCAL, "IDS_COM_BODY_JAN_ABB") +#define GL_STR_ID_FEB dgettext(GL_STR_DOMAIN_LOCAL, "IDS_COM_BODY_FEB_ABB") +#define GL_STR_ID_MAR dgettext(GL_STR_DOMAIN_LOCAL, "IDS_COM_BODY_MAR_ABB") +#define GL_STR_ID_APR dgettext(GL_STR_DOMAIN_LOCAL, "IDS_COM_BODY_APR_ABB") +#define GL_STR_ID_MAY dgettext(GL_STR_DOMAIN_LOCAL, "IDS_COM_BODY_MAY_ABB") +#define GL_STR_ID_JUN dgettext(GL_STR_DOMAIN_LOCAL, "IDS_COM_BODY_JUN_ABB") +#define GL_STR_ID_JUL dgettext(GL_STR_DOMAIN_LOCAL, "IDS_COM_BODY_JUL_ABB") +#define GL_STR_ID_AUG dgettext(GL_STR_DOMAIN_LOCAL, "IDS_COM_BODY_AUG_ABB") +#define GL_STR_ID_SEP dgettext(GL_STR_DOMAIN_LOCAL, "IDS_COM_BODY_SEP_ABB") +#define GL_STR_ID_OCT dgettext(GL_STR_DOMAIN_LOCAL, "IDS_COM_BODY_OCT_ABB") +#define GL_STR_ID_NOV dgettext(GL_STR_DOMAIN_LOCAL, "IDS_COM_BODY_NOV_ABB") +#define GL_STR_ID_DEC dgettext(GL_STR_DOMAIN_LOCAL, "IDS_COM_BODY_DEC_ABB") + +#define GL_STR_ID_ROTATE_LEFT "IDS_MEDIABR_OPT_ROTATE_LEFT" +#define GL_STR_ID_ROTATE_RIGHT "IDS_MEDIABR_OPT_ROTATE_RIGHT" +#define GL_STR_ID_EDIT_IMAGE "IDS_MEDIABR_OPT_EDIT_IMAGE" +#define GL_STR_ID_ROTATING _("IDS_MEDIABR_POP_ROTATING_ING") + +/*String for slideshow*/ +#define GL_STR_ID_ALL_ITEMS "IDS_MEDIABR_OPT_ALL_ITEMS" +#define GL_STR_ID_SELECT_ITEMS "IDS_MEDIABR_BODY_SELECT_ITEMS" +#define GL_STR_ID_SELECT_ALL "IDS_GALLERY_HEADER_SELECT_ALL_ABB" + +#define GL_STR_ID_DETAILS "IDS_COM_BODY_DETAILS" +#define GL_STR_ID_MAX_NO_CHARS_REACHED "IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" + +#define GL_STR_ID_SHARE_LIMIT _("IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS") + +#define GL_STR_ID_UNSUPPORTED_FILE_TYPE "IDS_COM_BODY_UNSUPPORTED_FILE_TYPE" + +#define GL_STR_ID_DELETE_COMFIRMATION "IDS_COM_POP_DELETE_Q" + +#define GL_STR_ID_DELETE_1_FILE "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +#define GL_STR_ID_DELETE_PD_FILES "IDS_MEDIABR_POP_PD_ITEMS_WILL_BE_DELETED" +#define GL_STR_PD_ITEMS _("IDS_MEDIABR_BODY_PD_ITEMS") + +#define GL_STR_ID_DELETE_1_ALBUM "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +#define GL_STR_ID_DELETE_PD_ALBUMS "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" + +#define GL_STR_ID_INVALID_INPUT_PARAMETER "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +#define GL_STR_ID_ENTRY_IS_EMPTY "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +#define GL_STR_ID_SAME_NAME_ALREADY_IN_USE "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" + +#define GL_STR_ID_THERE_IS_ONLY_ONE_ALBUM "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" + +/* Design ID from Email and Myfiles. Only for temporary use. */ +#define GL_STR_1_ITEM _("IDS_EMAIL_BODY_1_ITEM") +#define GL_STR_REMOVED _("IDS_MF_POP_REMOVED") +#define GL_STR_ID_ENTER_TAG_NAME "IDS_MEDIABR_POP_ENTER_TAG_NAME" +#define GL_STR_MEMORY_FULL "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +#define GL_DEVICE_MEMORY_FULL "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" +#define GL_STR_SETTINGS "IDS_MF_BUTTON_SETTINGS" +#define GL_DATA_SAVE_FAILED "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" + +#ifdef __cplusplus +} +#endif +#endif + diff --git a/inc/util/gl-ta.h b/inc/util/gl-ta.h new file mode 100755 index 0000000..d0718e1 --- /dev/null +++ b/inc/util/gl-ta.h @@ -0,0 +1,129 @@ +/* +* 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 _GL_TA_H_ +#define _GL_TA_H_ + + +#ifdef _ENABLE_TA +// defs. +#define GL_TA_MAX_CHECKPOINT 500 +#define GL_TA_MAX_ACCUM 500 +#define GL_TA_TIME_BUF_LEN 256 + +typedef struct _gl_ta_checkpoint +{ + unsigned long timestamp; + char *name; +} gl_ta_checkpoint; + +typedef struct _gl_ta_accum_item +{ + unsigned long elapsed_accum; + unsigned long num_calls; + unsigned long elapsed_min; + unsigned long elapsed_max; + unsigned long first_start; + unsigned long last_end; + + char *name; + + unsigned long timestamp; + int on_estimate; + int num_unpair; +} gl_ta_accum_item; + +#define GL_TA_SHOW_STDOUT 0 +#define GL_TA_SHOW_STDERR 1 +#define GL_TA_SHOW_FILE 2 +#define GL_TA_RESULT_FILE "/tmp/gallery-ta.log" + +///////////////////////////// +// COMMON +int gl_ta_init(void); +int gl_ta_release(void); +void gl_ta_set_enable(int enable); +char *gl_ta_fmt(const char *fmt, ...); + +///////////////////////////// +// CHECK POINT +int gl_ta_add_checkpoint(char *name, int show, char *filename, int line); +void gl_ta_show_checkpoints(void); +void gl_ta_show_diff(char *name1, char *name2); + +int gl_ta_get_numof_checkpoints(); +unsigned long gl_ta_get_diff(char *name1, char *name2); +char *gl_ta_get_name(int idx); + + +///////////////////////////// +// ACCUM ITEM +int gl_ta_accum_item_begin(char *name, int show, char *filename, int line); +int gl_ta_accum_item_end(char *name, int show, char *filename, int line); +void gl_ta_accum_show_result(int direction); + +// macro. +#define GL_TA_INIT() ( gl_ta_init() ) +#define GL_TA_RELEASE() ( gl_ta_release() ) +#define GL_TA_SET_ENABLE(enable) ( gl_ta_set_enable(enable) ) + +// checkpoint handling +#define GL_TA_ADD_CHECKPOINT(name,show) ( gl_ta_add_checkpoint(name,show,__FILE__,__LINE__) ) +#define GL_TA_SHOW_CHECKPOINTS() ( gl_ta_show_checkpoints() ) +#define GL_TA_SHOW_DIFF(name1, name2) ( gl_ta_show_diff(name1, name2) ) +#define GL_TA_GET_NUMOF_CHECKPOINTS() ( gl_ta_get_numof_checkpoints() ) +#define GL_TA_GET_DIFF(name1, name2) ( gl_ta_get_diff(name1, name2) ) +#define GL_TA_GET_NAME(idx) ( gl_ta_get_name(idx) ) + +// accum item handling +#define GL_TA_ACUM_ITEM_BEGIN(name,show) ( gl_ta_accum_item_begin(name,show,__FILE__,__LINE__) ) +#define GL_TA_ACUM_ITEM_END(name,show) ( gl_ta_accum_item_end(name,show,__FILE__,__LINE__) ) +#define GL_TA_ACUM_ITEM_SHOW_RESULT() ( gl_ta_accum_show_result(GL_TA_SHOW_STDOUT) ) +#define GL_TA_ACUM_ITEM_SHOW_RESULT_TO(x) ( gl_ta_accum_show_result(x) ) + +#define __gl_ta__(name, x) \ +GL_TA_ACUM_ITEM_BEGIN(name, 0); \ +x \ +GL_TA_ACUM_ITEM_END(name, 0); + +#define __gl_tafmt__(fmt, args...) ( gl_ta_fmt(fmt, ##args) ) + +#else // _ENABLE_TA + +#define GL_TA_INIT() +#define GL_TA_RELEASE() +#define GL_TA_SET_ENABLE(enable) + +// checkpoint handling +#define GL_TA_ADD_CHECKPOINT(name,show) +#define GL_TA_SHOW_CHECKPOINTS() +#define GL_TA_SHOW_DIFF(name1, name2) +#define GL_TA_GET_NUMOF_CHECKPOINTS() +#define GL_TA_GET_DIFF(name1, name2) +#define GL_TA_GET_NAME(idx) + +// accum item handling +#define GL_TA_ACUM_ITEM_BEGIN(name,show) +#define GL_TA_ACUM_ITEM_END(name,show) +#define GL_TA_ACUM_ITEM_SHOW_RESULT() +#define GL_TA_ACUM_ITEM_SHOW_RESULT_TO(x) +#define __gl_ta__(name, x) x +#define __gl_tafmt__(fmt, args...) + +#endif // _ENABLE_TA + +#endif // _GALLERY_TA_H_ diff --git a/inc/util/gl-thread-util.h b/inc/util/gl-thread-util.h new file mode 100755 index 0000000..4efcab8 --- /dev/null +++ b/inc/util/gl-thread-util.h @@ -0,0 +1,53 @@ +/* +* 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 _GL_THREAD_UTIL_H_ +#define _GL_THREAD_UTIL_H_ + +#ifdef __cplusplus +extern "C" +{ +#endif + +typedef enum +{ + GL_PB_CANCEL_NONE, /* Initial state */ + GL_PB_CANCEL_NORMAL, /* Moving or deleting is in process */ + GL_PB_CANCEL_BUTTON, /* Cancel button tapped while moving or deleting */ + GL_PB_CANCEL_MMC, /* MMC removed, src album or dest album vanished while moving or deleting */ + GL_PB_CANCEL_ERROR, /* Error happened while moving or deleting */ + GL_PB_CANCEL_RESET, /* Reset gallery while moving or deleting */ +} gl_pb_cancel_mode; + +int gl_thread_emit_next_signal(void *data); +int gl_thread_wait_next_signal(void *data); +int gl_thread_set_cancel_state(void *data, int val); +int gl_thread_get_cancel_state(void *data, int *val); +void gl_thread_write_pipe(void *data, int finished_cnt, int popup_op); +int gl_thread_gen_data_thread(void *data); +int gl_thread_destroy_lock(void *data); +int gl_thread_init_lock(void *data); +int _gl_thread_set_op_cb(void *data, void *op_cb); +int _gl_thread_set_update_cb(void *data, void *update_cb); +int _gl_thread_set_del_item_cb(void *data, void *del_item_cb); +int _gl_thread_set_total_cnt(void *data, int total_cnt); + +#ifdef __cplusplus +} +#endif + +#endif /* _GL_THREAD_UTIL_H_ */ diff --git a/inc/util/gl-ui-util.h b/inc/util/gl-ui-util.h new file mode 100755 index 0000000..4a26894 --- /dev/null +++ b/inc/util/gl-ui-util.h @@ -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. +* +*/ + +#ifndef _GL_UI_UTIL_H_ +#define _GL_UI_UTIL_H_ + +#include "gallery.h" +#include "gl-icons.h" + +#ifdef __cplusplus +extern "C" +{ +#endif + +#define _EDJ(o) elm_layout_edje_get(o) +#define _GET_ICON(_path) \ + ((1 == gl_file_exists(_path) && (gl_file_size(_path) > 0)) ? _path : GL_ICON_NO_THUMBNAIL) +#define _GET_APP_ICON(_path) \ + ((1 == gl_file_exists(_path) && (gl_file_size(_path) > 0)) ? _path : GL_ICON_DEFAULT) + +/* Signals used in Gallery's views */ +#define GL_SIGNAL_GESTURE_DEFAULT "elm,gesture,state,default" +#define GL_SIGNAL_GESTURE_DISABLED "elm,gesture,state,disabled" +#define GL_TRANS_FINISHED "transition,finished" + +typedef enum +{ + GL_NAVI_ALBUMS, + GL_NAVI_ALBUMS_EDIT, + GL_NAVI_ALBUMS_RENAME, + GL_NAVI_ALBUMS_NEW, + GL_NAVI_ALBUMS_SELECT, + GL_NAVI_PLACES, + GL_NAVI_TAGS, + GL_NAVI_TAGS_EDIT, + GL_NAVI_TAGS_NEW, + GL_NAVI_TAGS_RENAME, + GL_NAVI_THUMBS, + GL_NAVI_THUMBS_EDIT, + GL_NAVI_THUMBS_SELECT, + GL_NAVI_WEB, + GL_NAVI_WEB_EDIT, +} gl_navi_mode; + +typedef enum +{ + GL_POPUP_ADDHOME_SIZE_1, + GL_POPUP_ADDHOME_SIZE_2, + GL_POPUP_ADDHOME_SIZE_NUM, +} gl_popup_addhome_size; + +typedef enum _gl_ui_xpt_btn_t gl_ui_xpt_btn_e; + +enum _gl_ui_xpt_btn_t { + GL_UI_XPT_CAMERA = (0x1 << 0), + GL_UI_XPT_SEL_ALL = (0x1 << 1), + GL_UI_XPT_SHARE = (0x1 << 2), + GL_UI_XPT_DONE = (0x1 << 3), +}; + +Evas_Object *_gl_ui_create_gridview_ly(void *data, Evas_Object *parent); +Evas_Object *gl_ui_load_edj(Evas_Object * parent, const char *file, const char *group); +int _gl_ui_rm_selall_btn(Elm_Object_Item *nf_it); +int _gl_ui_add_selall_btn(Evas_Object *naviframe, Elm_Object_Item *nf_it, + Evas_Smart_Cb cb_func, void *data); +#if 0 +int _gl_ui_add_xpt_btns(Elm_Object_Item *nf_it, gl_ui_xpt_btn_e xpt_btn, + Evas_Smart_Cb r_cb, Evas_Smart_Cb l_cb, void *data); +Evas_Object *_gl_ui_get_xpt_btn(Elm_Object_Item *nf_it, gl_ui_xpt_btn_e ui_btn); +int _gl_ui_disable_xpt_btn(Elm_Object_Item *nf_it, gl_ui_xpt_btn_e ui_btn, bool b_disabled); +int _gl_ui_clear_xpt_btns(Elm_Object_Item *nf_it); +#endif +int _gl_ui_clear_btns(void *data); +int _gl_ui_hide_back_button(Elm_Object_Item *nf_it); +gl_icon_type_e _gl_ui_elm_bg_file_set(Evas_Object *bg, gl_item *git); +int _gl_ui_set_content(Evas_Object *layout, const char *part, + Evas_Object *new_content); +int _gl_ui_add_conform_cbs(void *data); +int _gl_ui_del_conform_cbs(Evas_Object *naviframe); +int _gl_ui_set_conform_overlap(Evas_Object *naviframe); +int _gl_ui_disable_btn(Evas_Object *btn); +int _gl_ui_enable_btn(Evas_Object *btn); +int _gl_ui_disable_menu(Elm_Object_Item *nf_it, bool b_disabled); +Evas_Object *_gl_ui_get_btn(void *data, Elm_Object_Item *nf_it, + const char *part); +int _gl_ui_update_realized_list_ck(Evas_Object *view, const char *part, + Eina_Bool state); +int _gl_ui_update_realized_grid_ck(Evas_Object *view, const char *part1, + const char *part2, Eina_Bool state); +int _gl_ui_set_checkbox_state(Elm_Object_Item *it, const char *part, + Eina_Bool state); +int _gl_ui_update_realized_list_field(Evas_Object *view, const char *part); +int _gl_ui_update_list_field(Elm_Object_Item *it, const char *part); +int _gl_ui_reset_scroller_pos(Evas_Object *obj); +int _gl_ui_del_scroller_pos(Evas_Object *obj); +int _gl_ui_save_scroller_pos(Evas_Object *obj); +int _gl_ui_restore_scroller_pos(Evas_Object *obj); +int _gl_ui_rotate_view(void *data, int view_mode); +int _gl_ui_set_toolbar_state(void *data, bool b_hide); +bool _gl_ui_hide_keypad(void *data); +int _gl_ui_del_nf_items(Evas_Object *nf, Elm_Object_Item *to_it); +int _gl_ui_set_translate_str(Evas_Object *obj, const char *str); +int _gl_ui_set_translatable_item(Elm_Object_Item *nf_it, const char *str); +int _gl_ui_set_translatable_item_part(Elm_Object_Item *nf_it, const char *part, + const char *str); +int _gl_ui_set_translate_part_str(Evas_Object *obj, const char *part, + const char *str); +int _gl_ui_change_title(Elm_Object_Item *nf_it, const char *text); +int _gl_ui_update_label_text(Elm_Object_Item *nf_it, int sel_cnt, bool b_lang); +int _gl_ui_change_navi_title(Elm_Object_Item *nf_it, char *text, bool b_dropdown); +int _gl_ui_update_navi_title_text(Elm_Object_Item *nf_it, int sel_cnt, bool b_lang); +int _gl_ui_add_selall_ck(Evas_Object *parent, char *part, char *part_btn, + Evas_Smart_Cb cb_func, void *data); +#ifdef _USE_GRID_CHECK +int _gl_show_grid_checks(Evas_Object *view, const char *ck_part); +int _gl_show_grid_checks_dual(Evas_Object *view, const char *ck_part, const char *ck_part2); +#endif + +#ifdef __cplusplus +} +#endif + +#endif // end of _GL_UI_UTIL_H_ diff --git a/inc/util/gl-util.h b/inc/util/gl-util.h new file mode 100755 index 0000000..4bfdbc6 --- /dev/null +++ b/inc/util/gl-util.h @@ -0,0 +1,265 @@ +/* +* 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 _GL_UTIL_H_ +#define _GL_UTIL_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "gl-data.h" +#include "gallery.h" + +/* File system related String definition */ + +#define GL_HOME_ALBUM_COVER_NUM 1 + +#define GL_FILE_EXISTS(path) \ + (path && (1 == gl_file_exists(path)) && (gl_file_size(path) > 0)) +#define GL_ICON_SET_FILE(icon, img) \ + elm_image_file_set(icon, GL_IMAGES_EDJ_FILE, img) + +#define GL_BG_SET_FILE(icon, img) \ + elm_bg_file_set(icon, GL_IMAGES_EDJ_FILE, img) + +#define GL_IF_DEL_TIMER(timer) \ + do { \ + if(timer != NULL) { \ + ecore_timer_del(timer); \ + timer = NULL; \ + } \ + } while (0) + +#define GL_IF_DEL_IDLER(idler) \ + do { \ + if(idler != NULL) { \ + ecore_idler_del(idler); \ + idler = NULL; \ + } \ + } while (0) + +#define GL_IF_DEL_JOB(job) \ + do { \ + if(job != NULL) { \ + ecore_job_del(job); \ + job = NULL; \ + } \ + } while (0) + +#define GL_IF_DEL_ANIMATOR(animator) \ + do { \ + if(animator != NULL) { \ + ecore_animator_del(animator); \ + animator = NULL; \ + } \ + } while (0) + +#define GL_IF_DEL_TRANSIT(transit) \ + do { \ + if(transit != NULL) { \ + elm_transit_del(transit); \ + transit = NULL; \ + } \ + } while (0) + +#define GL_IF_DEL_PIPE(pipe) \ + do { \ + if(pipe != NULL) { \ + ecore_pipe_del(pipe); \ + pipe = NULL; \ + } \ + } while (0) + +#define GL_IF_DEL_EVENT_HANDLER(handler) \ + do { \ + if(handler != NULL) { \ + ecore_event_handler_del(handler); \ + handler = NULL; \ + } \ + } while (0) + +#define GL_IF_DEL_OBJ(obj) \ + do { \ + if(obj != NULL) { \ + evas_object_del(obj); \ + obj = NULL; \ + } \ + } while (0) + +#define GL_IF_FREE_ELIST(elist) \ + do { \ + if(elist != NULL) { \ + eina_list_free(elist); \ + elist = NULL; \ + } \ + } while (0) + + +typedef enum +{ + GL_MMC_STATE_NONE, + GL_MMC_STATE_ADDED, + GL_MMC_STATE_ADDED_MOVING, /* Move medias to MMC or from MMC */ + GL_MMC_STATE_ADDING_MOVING, /* Insert MMC while operate medias */ + GL_MMC_STATE_REMOVED, + GL_MMC_STATE_REMOVED_MOVING, /* Remove MMC while move medias to MMC or from MMC */ +} gl_mmc_state_mode; + +typedef enum +{ + GL_UPDATE_VIEW_NONE, + GL_UPDATE_VIEW_NORMAL, + GL_UPDATE_VIEW_MMC_REMOVED, /* Update view when MMC removed */ + GL_UPDATE_VIEW_MMC_ADDED, /* Update view when MMC inserted */ + GL_UPDATE_VIEW_INOTIFY, /* Data changed, update view from inotify request */ +} gl_update_view_mode; + +typedef enum +{ + GL_MEDIA_OP_NONE, + GL_MEDIA_OP_MOVE, + GL_MEDIA_OP_COPY, + GL_MEDIA_OP_DELETE, + /*Delete albums*/ + GL_MEDIA_OP_DELETE_ALBUM, +#ifdef _USE_ROTATE_BG + GL_MEDIA_OP_ROTATING_LEFT, + GL_MEDIA_OP_ROTATING_RIGHT, +#endif + GL_MEDIA_OP_MOVE_TIMELINE, + GL_MEDIA_OP_COPY_TIMELINE, + GL_MEDIA_OP_DELETE_TIMELINE, +#ifdef _USE_ROTATE_BG + GL_MEDIA_OP_ROTATING_LEFT_TIMELINE, + GL_MEDIA_OP_ROTATING_RIGHT_TIMELINE, +#endif +} gl_media_op_mode; + +typedef enum +{ + GL_POPUP_OP_NONE, + GL_POPUP_OP_SAME_ALBUM, + GL_POPUP_OP_DUPLICATED_NAME, + GL_POPUP_OP_PROTECTED_FILE, +} gl_popup_op_mode; + +typedef enum +{ + GL_SHARE_NONE, + GL_SHARE_IMAGE_ONE, /* One image selection */ + GL_SHARE_IMAGE_ONE_JPEG, /* One jpeg image selection */ + GL_SHARE_IMAGE_MULTI, /* Multiple images selection */ + GL_SHARE_IMAGE_MULTI_JPEG, /* Multiple jpeg images selection */ + GL_SHARE_IMAGE_VIDEO, /* Image(s) and Video(s) selection */ + GL_SHARE_VIDEO_ONE, /* One video selection */ + GL_SHARE_VIDEO_MULTI, /* Multiple videos selection */ +} gl_share_mode; + +typedef enum +{ + GL_INVALID_NONE, + GL_INVALID_NEW_ENTRY, + GL_INVALID_NEW_ENTRY_NOC, /* Show nocontents view */ +} gl_invalid_mode; + +enum _gl_mc_mode { + GL_MC_NONE, + GL_MC_MOVE, + GL_MC_COPY, +}; +typedef enum _gl_mc_mode gl_mc_mode_e; + +/* Get images of album */ +struct _gl_get_album_images_path_t { + int index; + char **files; +}; +typedef struct _gl_get_album_images_path_t gl_get_album_images_path_s; + +int gl_get_view_mode(void *data); +int gl_set_view_mode(void *data, int mode); +int _gl_use_thread_operate_medias(void *data, char *pbar_title, int all_cnt, + int op_type); +int _gl_move_media_thumb(void *data, gl_item *gitem, char *new_dir_name, + bool is_full_path, int *popup_op, int mc_mode); +int _gl_move_media_thumb_by_id(void *data, const char *uuid, char *new_dir_name, + int *popup_op, int mc_mode); +int _gl_move_media(gl_item *gitem, char *new_dir_name, bool is_full_path); +int gl_move_copy_to_album(void *data); +int gl_move_root_album(void* data, gl_cluster* cur_album, char* dest_path); +int gl_del_medias(void *data); +int _gl_del_media_by_id(void *data, const char *uuid); +int gl_check_mmc_state(void *data, char *dest_folder); +int _gl_del_albums(void *data); +int _gl_refresh_albums_list(void *data, bool b_path, bool b_select); +int _gl_update_albums_data(void *data); +int _gl_update_albums_list(void *data); +void gl_set_mmc_notifd(int fd); +Eina_Bool gl_update_view(void *data, int mode); +int gl_get_selected_files_path_str(void *data, gchar sep_c, char **path_str, + int *sel_cnt); +bool gl_make_new_album(const char *name); +bool gl_check_gallery_empty(void* data); +bool gl_is_image_valid(void *data, char *filepath); +#ifdef _USE_ROTATE_BG +int _gl_delay(double sec); +int _gl_rotate_images(void *data, bool b_left); +int _gl_rotate_image_by_id(void *data, const char *uuid, bool b_left); +#endif +int gl_get_entry_text(Evas_Object * entry, char *entry_text, int len_max); +int gl_set_entry_text(Evas_Object *entry, char *entry_text); +int _gl_get_valid_album_name(void *data, char* album_name, bool b_new, + bool b_enter); +int _gl_validate_album_name(void *data, char* album_name); +int _gl_validate_input_character(void *data, char* album_name); +char* _gl_get_i18n_album_name(gl_album_s *cluster); +int gl_get_share_mode(void *data); +int gl_del_invalid_widgets(void *data, int invalid_m); +int gl_pop_to_ctrlbar_ly(void *data); +int gl_play_vibration(void *data); +time_t gl_util_get_current_systemtime(void); +char *_gl_get_duration_string(unsigned int v_dur); +gl_icon_type_e _gl_get_icon_type(gl_item *git); +char *_gl_str(char *str_id); +bool _gl_is_str_id(const char *str_id); +double _gl_get_win_factor(Evas_Object *win, int *width, int *height); +int _gl_get_font_size(void); +#ifdef _USE_SVI +int _gl_init_svi(void *data); +int _gl_fini_svi(void *data); +int _gl_play_sound(void *data); +int _gl_play_vibration(void *data); +#endif +int _gl_reg_storage_state_change_notify(void *data); +int _gl_dereg_storage_state_change_notify(void *data); +int _gl_set_file_op_cbs(void *data, void *op_cb, void *del_item_cb, + void *update_cb, int total_cnt); +int _gl_append_album_images_path(void *data, gl_media_s *item); +int _gl_get_album_images_path(void *data, char **files, bool b_hide); +char *_gl_delete_folder(char *path); +int gl_remove_album(void *data, gl_cluster *album_item, bool is_hide); +int _gl_free_selected_list(void *data); +int _gl_dlopen_imageviewer(void *data); +int _gl_dlclose_imageviewer(void *data); + +#ifdef __cplusplus +} +#endif + +#endif /* _GL_UTIL_H_ */ + diff --git a/inc/widget/gl-button.h b/inc/widget/gl-button.h new file mode 100755 index 0000000..3942554 --- /dev/null +++ b/inc/widget/gl-button.h @@ -0,0 +1,35 @@ +/* +* 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 _GL_BUTTON_H_ +#define _GL_BUTTON_H_ + +#include +#include "gallery.h" + +Evas_Object *_gl_but_create_but(Evas_Object *parent, const char *icon, + const char *text, const char *style, + Evas_Smart_Cb cb_func, const void *data); +Evas_Object *_gl_but_create_but_popup(Evas_Object *parent, const char *text, + Evas_Smart_Cb cb_func, const void *data); +Evas_Object *_gl_but_create_image_but(Evas_Object *parent, const char *icon, + const char *text, const char *style, + Evas_Smart_Cb cb_func, void *data, + Eina_Bool flag_propagate); + +#endif /* _GL_BUTTON_H_ */ + diff --git a/inc/widget/gl-controlbar.h b/inc/widget/gl-controlbar.h new file mode 100644 index 0000000..bfb8108 --- /dev/null +++ b/inc/widget/gl-controlbar.h @@ -0,0 +1,58 @@ +/* +* 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 _GL_CONTROLBAR_H_ +#define _GL_CONTROLBAR_H_ + +#include +#include "gallery.h" + +#define GL_CBAR_OCCUPIED_PBAR 4 +#define GL_CBAR_OCCUPIED_SEGMENT 4 + +/* INITIAL control mode for app */ +#define GL_CTRL_TAB_INIT (-1) + +typedef enum _gl_ctrl_tab_mode +{ + GL_CTRL_TAB_ALBUMS, + GL_CTRL_TAB_TIMELINE, + GL_CTRL_TAB_CNT, +} gl_ctrl_tab_mode; + +int _gl_ctrl_show_title(void *data, int tab_mode); +int _gl_ctrl_show_view(void *data, const char *label); +Evas_Object *_gl_ctrl_add_layout(Evas_Object *parent); +Evas_Object *_gl_ctrl_add_main_layout(Evas_Object *parent); +int _gl_ctrl_sel_tab(void *data, int tab_mode); +int _gl_ctrl_set_tab_mode(void *data, int mode); +int _gl_ctrl_get_tab_mode(void *data); +int _gl_ctrl_change_easymode(void *data); +int _gl_ctrl_enable_btns(void *data, Elm_Object_Item *nf_it); +Evas_Object *_gl_ctrl_add_toolbar(Evas_Object *parent); +Elm_Object_Item *_gl_ctrl_append_item(Evas_Object *obj, const char *icon, + const char *label, Evas_Smart_Cb func, + const void *data); +int _gl_ctrl_disable_items(Elm_Object_Item *nf_it, bool b_disabled); +int _gl_ctrl_disable_items_with_check(Elm_Object_Item *nf_it, bool b_disabled, + char *check_str, bool b_check_disabled); +int _gl_ctrl_disable_item_with_check(Elm_Object_Item *nf_it, char *check_str, + bool b_disabled); +int _gl_ctrl_disable_item(Elm_Object_Item *it, Eina_Bool b_disabled); + +#endif /* _GL_CONTROLBAR_H_ */ + diff --git a/inc/widget/gl-ctxpopup.h b/inc/widget/gl-ctxpopup.h new file mode 100644 index 0000000..5bdd233 --- /dev/null +++ b/inc/widget/gl-ctxpopup.h @@ -0,0 +1,31 @@ +/* +* 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 _GL_CTXPOPUP_H_ +#define _GL_CTXPOPUP_H_ + +typedef int (*ctx_append_cb) (void *data, Evas_Object *parent); + +Elm_Object_Item *_gl_ctxpopup_append(Evas_Object *obj, char *label_id, + Evas_Smart_Cb func, const void *data); +Elm_Object_Item *_gl_ctxpopup_append_with_icon(Evas_Object *obj, char *label, + char *icon_path, Evas_Smart_Cb func, const void *data); +int _gl_ctxpopup_create(void *data, Evas_Object *but, ctx_append_cb append_cb); +int _gl_ctxpopup_del(void *data); + +#endif + diff --git a/inc/widget/gl-editfield.h b/inc/widget/gl-editfield.h new file mode 100644 index 0000000..9a8c18c --- /dev/null +++ b/inc/widget/gl-editfield.h @@ -0,0 +1,46 @@ +/* +* 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 _GL_EDITFIELD_H_ +#define _GL_EDITFIELD_H_ + +#include "gallery.h" + +#ifdef __cplusplus +extern "C" +{ +#endif + +Evas_Object *_gl_editfield_create(void *data, Evas_Object *parent, + char *default_label); +Evas_Object *_gl_editfield_create_genlist(void *data, Evas_Object *parent, + Elm_Object_Item *it, char *label); +Evas_Object *_gl_editfield_create_entry(void *data, Evas_Object *layout, char *text); +int _gl_editfield_hide_imf(void *data); +int _gl_editfield_show_imf(void *data); +int _gl_editfield_destroy_imf(void *data); +int _gl_editfield_change_navi_title(void *data, int r); +Evas_Object *_gl_editfield_get_entry(void *data); +int __gl_editfield_set_entry(void *data, Evas_Object *layout, + Evas_Object *entry, char *default_label); + +#ifdef __cplusplus +} +#endif + +#endif // end of _GL_EDITFIELD_H_ + diff --git a/inc/widget/gl-gesture.h b/inc/widget/gl-gesture.h new file mode 100644 index 0000000..7a95ca5 --- /dev/null +++ b/inc/widget/gl-gesture.h @@ -0,0 +1,45 @@ +/* +* 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 _GL_GESTURE_H_ +#define _GL_GESTURE_H_ + +#include +#include "gallery.h" + +#define GL_GESTURE_KEY_PINCH_LEVEL "pinch_level" + +typedef enum _gl_zoom_mode { + GL_ZOOM_NONE, + GL_ZOOM_DEFAULT, + GL_ZOOM_IN_ONE, + GL_ZOOM_IN_TWO, + GL_ZOOM_MAX, +} gl_zoom_mode; + +typedef Eina_Bool (*gl_gesture_cb) (Evas_Object *gesture, void *data); + +Evas_Object *_gl_gesture_add(void *data, Evas_Object *parent); +int _gl_gesture_set_zoom_in_cb(Evas_Object *gesture, gl_gesture_cb cb, + void *data); +int _gl_gesture_set_zoom_out_cb(Evas_Object *gesture, gl_gesture_cb cb, + void *data); +int _gl_gesture_reset_flags(Evas_Object *gesture); +Evas_Object *_gl_gesture_get_parent(Evas_Object *gesture); + +#endif /* _GL_GESTURE_H_ */ + diff --git a/inc/widget/gl-nocontents.h b/inc/widget/gl-nocontents.h new file mode 100644 index 0000000..e138d40 --- /dev/null +++ b/inc/widget/gl-nocontents.h @@ -0,0 +1,35 @@ +/* +* 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 _GL_NOCONTENTS_H_ +#define _GL_NOCONTENTS_H_ + +#include "gallery.h" + +#ifdef __cplusplus +extern "C" +{ +#endif + +Evas_Object *_gl_nocontents_create(Evas_Object *parent); +bool _gl_nocontents_update_label(Evas_Object *noc, const char *new_label); + +#ifdef __cplusplus +} +#endif + +#endif // end of _GL_NOCONTENTS_H_ diff --git a/inc/widget/gl-notify.h b/inc/widget/gl-notify.h new file mode 100644 index 0000000..6300770 --- /dev/null +++ b/inc/widget/gl-notify.h @@ -0,0 +1,40 @@ +/* +* 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 _GL_NOTIFY_H_ +#define _GL_NOTIFY_H_ + +#include "gallery.h" + +#ifdef __cplusplus +extern "C" +{ +#endif + +int _gl_notify_create_notiinfo(const char *text); +int _gl_notify_check_selall(void *data, Elm_Object_Item *nf_it, int all_cnt, + int selected_cnt); +int _gl_notify_destroy(void *noti); +int _gl_notify_update_size(void *noti, unsigned long long total); +int _gl_notify_update_progress(void *noti, unsigned long long total, + unsigned long long byte); + +#ifdef __cplusplus +} +#endif + +#endif // end of _GL_NOTIFY_H_ diff --git a/inc/widget/gl-popup.h b/inc/widget/gl-popup.h new file mode 100644 index 0000000..2877b34 --- /dev/null +++ b/inc/widget/gl-popup.h @@ -0,0 +1,69 @@ +/* +* 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 _GL_POPUP_H_ +#define _GL_POPUP_H_ + +#define GL_POPUP_STRING_MAX 256 + +typedef enum _gl_popup_mode { + GL_POPUP_NOBUT, + GL_POPUP_NOBUT_TITLE, + GL_POPUP_NOBUT_APPEXIT, + GL_POPUP_ONEBUT, + GL_POPUP_ALBUM_NEW_EMPTY, + GL_POPUP_ALBUM_NEW_DUPLICATE, + GL_POPUP_ALBUM_NEW_INVALID, + GL_POPUP_ALBUM_RENAME_EMPTY, + GL_POPUP_ALBUM_RENAME_DUPLICATE, + GL_POPUP_ALBUM_RENAME_INVALID, + GL_POPUP_ALBUM_DELETE, + GL_POPUP_MEDIA_MOVE, + GL_POPUP_MEDIA_DELETE, + GL_POPUP_SLIDESHOW, + GL_POPUP_LONGPRESSED, + GL_POPUP_ALBUM_MEMORY_FULL +} gl_popup_mode; + +typedef enum _gl_popup_del_m_t { + GL_POPUP_DEL_FILE, + GL_POPUP_DEL_ALBUM, + GL_POPUP_DEL_MAX +} gl_popup_del_m_e; + +int _gl_popup_create(void *data, const char *title, const char *text, + const char *str1, Evas_Smart_Cb cb1, const void *data1, + const char *str2, Evas_Smart_Cb cb2, const void *data2, + const char *str3, Evas_Smart_Cb cb3, const void *data3); +int _gl_popup_create_del(void *data, int mode, void *sel_cb, void *del_cb, + void *cb_data); +int gl_popup_create_popup(void *data, gl_popup_mode mode, char *desc); +Evas_Object *_gl_popup_create_local(void *data, gl_popup_mode mode, char *desc); +int _gl_popup_create_slideshow(void *data, void *op_func); +int _gl_popup_create_move(void *data, void *op_func); +int _gl_popup_create_copy(void *data, void *op_func); +int _gl_popup_create_move_with_append(void *data, void *op_func, void *append_func, const char *title); +int _gl_popup_create_longpressed_album(void *data, void *op_func, char *album_name); +int _gl_popup_create_longpressed_thumb(void *data, void *op_func, char *file_name); +int _gl_popup_create_longpressed_album_with_append(void *data, void *op_func, void *append_func, const char *title); +int _gl_popup_add_buttons(void *data, const char *text, Evas_Smart_Cb cb_func); +int _gl_popup_add_block_callback(void *data); +void _gl_list_pop_create(void *data, Evas_Object *obj, void *ei, char *title, char *first_text, char *second_text, int state_index); +int _gl_popup_create_copy_move(void *data, void *sel_cb, void *cb_data); + +#endif /* _GL_POPUP_H_ */ + diff --git a/inc/widget/gl-progressbar.h b/inc/widget/gl-progressbar.h new file mode 100644 index 0000000..ba30919 --- /dev/null +++ b/inc/widget/gl-progressbar.h @@ -0,0 +1,33 @@ +/* +* 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 _GL_PROGRESSBAR_H_ +#define _GL_PROGRESSBAR_H_ + +/* Font style for show label of popup */ +#define GL_FONT_STYLE_POP_S "" +#define GL_FONT_STYLE_POP_E "" + +int gl_pb_add_pbar_timer(void *data); +int gl_pb_make_thread_pbar_wheel(void *data, Evas_Object * parent, char *title); +int gl_pb_refresh_thread_pbar(void *data, int cur_cnt, int total_cnt); +int gl_pb_del_pbar(void *data); +Evas_Object *gl_pb_make_pbar(void *data, Evas_Object * parent, char *state); +Evas_Object *_gl_pb_make_place_pbar(Evas_Object *parent); + +#endif /* _GL_PROGRESSBAR_H_ */ + diff --git a/inc/widget/gl-rotate-bg.h b/inc/widget/gl-rotate-bg.h new file mode 100644 index 0000000..9d7ad01 --- /dev/null +++ b/inc/widget/gl-rotate-bg.h @@ -0,0 +1,35 @@ +/* +* 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. +* +*/ +#ifdef _USE_ROTATE_BG + +#ifndef _GL_ROTATE_BG_H_ +#define _GL_ROTATE_BG_H_ + +#include "gallery.h" + +Evas_Object *_gl_rotate_bg_add(Evas_Object *parent, bool b_preload); +int _gl_rotate_bg_set_data(Evas_Object *bg, void *data); +int _gl_rotate_bg_get_data(Evas_Object *bg, void **data); +int _gl_rotate_bg_set_file(Evas_Object *bg, const char *file, int w, int h); +int _gl_rotate_bg_get_file(Evas_Object *bg, char **file); +int _gl_rotate_bg_rotate_image(Evas_Object *bg, unsigned int orient); +int _gl_rotate_bg_add_image(Evas_Object *bg, int w, int h); +int _gl_rotate_bg_set_image_file(Evas_Object *bg, const char *file); + +#endif + +#endif diff --git a/inc/widget/gl-thumb.h b/inc/widget/gl-thumb.h new file mode 100644 index 0000000..411320c --- /dev/null +++ b/inc/widget/gl-thumb.h @@ -0,0 +1,63 @@ +/* +* 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 _GL_THUMB_H_ +#define _GL_THUMB_H_ + +#include "gl-data.h" + +#define GL_GENGRID_ITEM_STYLE_THUMBNAIL "gallery/thumbnail_view" +#define GL_GENGRID_ITEM_STYLE_DATE "gallery/date_view" +#define GL_THUMB_ICON "elm.swallow.icon" +#define GL_THUMB_CHECKBOX "elm.swallow.check" +#define GL_THUMB_MODE "elm.swallow.mode" +#define GL_THUMB_YEAR "year" +#define GL_THUMB_MONTH "month" +#define GL_CHECKBOX_STYLE_THUMB "gallery/thumbs" + +typedef enum _gl_cm_mode_t { + GL_CM_MODE_NORMAL = 0, + GL_CM_MODE_PANORAMA = 1, + GL_CM_MODE_SOUND = 2, + GL_CM_MODE_ANIMATE = 3, + GL_CM_MODE_BEST = 4, + GL_CM_MODE_FB = 5, + GL_CM_MODE_VOICE_REC = 10, + GL_CM_MODE_BURSTSHOT = 11, /* burstshot mode is not defined media content db */ + GL_CM_MODE_MAX, +} gl_cm_mode_e; + +Evas_Object *_gl_thumb_show_image(Evas_Object *obj, char *path, int orient, + int w, int h, int zoom_level); +Evas_Object *_gl_thumb_show_burstshot(Evas_Object *obj, char *path1, + char *path2, char *path3, + unsigned int orient, int w, int h, + int zoom_level); +Evas_Object *_gl_thumb_show_video(Evas_Object *obj, char *path, + unsigned int v_dur, int w, int h, + int zoom_level); +Evas_Object *_gl_thumb_show_checkbox(Evas_Object *obj, bool checked, + Evas_Smart_Cb func, const void *data); +Evas_Object *_gl_thumb_show_mode(Evas_Object *obj, gl_cm_mode_e mode); +Evas_Object *_gl_thumb_add_gengrid(Evas_Object *parent); +int _gl_thumb_update_gengrid(Evas_Object *view); +int _gl_thumb_set_size(void *data, Evas_Object *view, int *size_w, int *size_h); +int _gl_thumb_split_set_size(void *data, Evas_Object *view); +bool _gl_thumb_insert_date(void *data, Evas_Object *parent); + +#endif + diff --git a/inc/widget/gl-tile.h b/inc/widget/gl-tile.h new file mode 100644 index 0000000..d219e83 --- /dev/null +++ b/inc/widget/gl-tile.h @@ -0,0 +1,62 @@ +/* +* 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 _GL_TILE_H_ +#define _GL_TILE_H_ + +#include "gl-data.h" + +#define GL_TILE_ICON "elm.swallow.icon" +#define GL_TILE_CHECKBOX "elm.swallow.check" +#define GL_TILE_CHECKBOX_GRID "elm.swallow.check_grid" +#define GL_TILE_TYPE_ICON "elm.swallow.type_icon" +#define GL_TILE_SD_ICON "elm.swallow.sd_icon" +#define GL_TILE_PABR "elm.swallow.progressbar" +#define GL_TILE_DIM "elm.swallow.dim" + +#define GL_GENGRID_STYLE_ALBUM_VIEW "gallery/albums_view" +#define GL_GENGRID_STYLE_ALBUM_SPLIT_VIEW "gallery/albums_split_view" + +/* Album type for showing different icon in snsicon part in edc */ +typedef enum _gl_tile_type { + GL_TILE_TYPE_NONE, + GL_TILE_TYPE_MMC_STORAGE, /* MMC album */ + GL_TILE_TYPE_CAMERA, /* Camera album */ + GL_TILE_TYPE_DOWNLOAD, /* Download album */ + GL_TILE_TYPE_FOLDER, /* Folder album */ +} gl_tile_type; + +typedef int (*bg_file_set_cb) (Evas_Object *bg, void *data); + +Evas_Object *_gl_tile_show_part_icon(Evas_Object *obj, const char *part, + bg_file_set_cb func, void *data); +Evas_Object *_gl_tile_show_part_dim(Evas_Object *obj); +Evas_Object *_gl_tile_show_part_checkbox_grid(Evas_Object *obj, bool checked, + Evas_Smart_Cb func, + const void *data); +Evas_Object *_gl_tile_show_part_checkbox(Evas_Object *obj, bool checked, + Evas_Smart_Cb func, const void *data); +Evas_Object *_gl_tile_show_part_rename(Evas_Object *obj, Evas_Smart_Cb func, + const void *data); +Evas_Object *_gl_tile_show_part_type_icon(Evas_Object *obj, int sns_type); +int _gl_tile_get_mtime(time_t *mtime1, time_t *mtime2, char *buf, int max_len); +Evas_Object *_gl_tile_add_gengrid(Evas_Object *parent); +int _gl_tile_update_item_size(void *data, Evas_Object *grid, bool b_update); +Evas_Object *_gl_tile_add_gesture(void *data, Evas_Object *parent); + +#endif + diff --git a/org.tizen.gallery.efl b/org.tizen.gallery.efl new file mode 100755 index 0000000..af078da --- /dev/null +++ b/org.tizen.gallery.efl @@ -0,0 +1,113 @@ +org.tizen.gallery system::home rwxat- ------ +org.tizen.gallery system::media rwxat- ------ +org.tizen.gallery system::homedir rwxat- ------ +org.tizen.gallery system::share rwxat- ------ +org.tizen.gallery dali rwxat- ------ +org.tizen.gallery pulseaudio rwxat- ------ +org.tizen.gallery sys-assert::core rwxat- ------ +org.tizen.gallery device::hwcodec rw---- ------ +org.tizen.gallery device::video r----- ------ +org.tizen.gallery device::camera r----- ------ +org.tizen.gallery system::crash -wx--- ------ +org.tizen.gallery pkgmgr::db rw---- ------ +org.tizen.gallery media-data::db rw---- ------ +org.tizen.gallery app-svc::db rw---- ------ +org.tizen.gallery notification::db rw---- ------ +org.tizen.gallery org.tizen.indicator rw---- ------ +org.tizen.gallery com.samsung.email r-x--- ------ +org.tizen.gallery com.samsung.message r-x--- ------ +org.tizen.gallery org.tizen.camera-app-lite rw---- ------ +org.tizen.gallery com.samsung.group-cast rw---- ------ +org.tizen.gallery com.samsung.cluster-home rw---- ------ +org.tizen.gallery com.samsung.smemo rwx--- ------ +org.tizen.gallery com.samsung.contacts --x--- ------ +org.tizen.gallery com.samsung.setting-lite -w---- ------ +org.tizen.gallery wifi_direct_manager -w---- ------ +org.tizen.gallery power_manager -w---- ------ +org.tizen.gallery email-service rw---- ------ +org.tizen.gallery contacts-service -wx--- ------ +org.tizen.gallery media-server rwx--- ------ +org.tizen.gallery sound_server rw---- ------ +org.tizen.gallery system-server rw-a-- ------ +org.tizen.gallery mdm-server -w---- ------ +org.tizen.gallery xorg rw---- ------ +org.tizen.gallery isf rwx--- ------ +org.tizen.gallery immvibed rw---- ------ +org.tizen.gallery dbus rwx--- ------ +org.tizen.gallery smemo r-x--- ------ +org.tizen.gallery crash-worker r-x--- ------ +org.tizen.gallery msg-service -w---- ------ +org.tizen.gallery ug-image-viewer-efl rwxa-- ------ +org.tizen.gallery sys-assert::info -wx--- ------ +org.tizen.gallery drmfw rw---- ------ +org.tizen.gallery deviced rwx--- ------ +org.tizen.gallery nfc-manager::p2p rw---- ------ +org.tizen.gallery tizen::vconf::public::r::platform::rw r----- ------ +e17 org.tizen.gallery -w---- ------ +com.samsung.contacts org.tizen.gallery rwx--- ------ +org.tizen.camera-app-lite org.tizen.gallery rwx--- ------ +com.samsung.email org.tizen.gallery rwx--- ------ +com.samsung.app-tray org.tizen.gallery r-x--- ------ +org.tizen.music-player-lite org.tizen.gallery rw---- ------ +com.samsung.dailybriefing-agent org.tizen.gallery --x--- ------ +org.tizen.volume-lite org.tizen.gallery --x--- ------ +org.tizen.quickpanel-lite org.tizen.gallery r-x--- ------ +org.tizen.lockscreen-lite org.tizen.gallery r-x--- ------ +com.samsung.cluster-home org.tizen.gallery --x--- ------ +org.tizen.indicator org.tizen.gallery rwx--- ------ +context-service org.tizen.gallery r-x--- ------ +media-server org.tizen.gallery -w---- ------ +webkit2-efl org.tizen.gallery --x--- ------ +nfc-share-service org.tizen.gallery rw---- ------ +isf org.tizen.gallery --x--- ------ +net.wifi-qs org.tizen.gallery --x--- ------ +org.tizen.gallery wrt-setting --x--- ------ +org.tizen.gallery aul::launch --x--- ------ +org.tizen.gallery system::ext_storage rwx--- ------ +ui-gadget::client ug-image-viewer-efl --x--- ------ +org.tizen.gallery::widget device::app_logging -w---- ------ +org.tizen.gallery::widget system::use_internet r----- ------ +org.tizen.gallery::widget system::media rwxat- +org.tizen.gallery::widget net-config r----- ------ +org.tizen.gallery::widget xorg rw---- ------ +org.tizen.gallery::widget isf rwx--- ------ +org.tizen.gallery::widget sound_server rw---- ------ +org.tizen.gallery::widget syspopup::db rw---- ------ +org.tizen.gallery::widget dbus rwx--- ------ +org.tizen.gallery::widget pulseaudio rwxat- ------ +org.tizen.gallery::widget connman r----- ------ +org.tizen.gallery::widget system rwx--- ------ +org.tizen.gallery::widget immvibed rw---- ------ +org.tizen.gallery::widget svi-data r-x--- ------ +org.tizen.gallery::widget org.tizen.clocksetting rwx--- ------ +org.tizen.gallery::widget org.tizen.clocksetting::default-resources r-x--- ------ +org.tizen.gallery::widget e17 r-x--- ------ +org.tizen.gallery::widget deviced rwx--- ------ +org.tizen.gallery::widget deviced::display rw---- ------ +org.tizen.gallery::widget data-provider-master::data --x--- ------ +org.tizen.gallery::widget data-provider-master::db rw---- ------ +org.tizen.gallery::widget data-provider-master::share rwxat- ------ +org.tizen.gallery::widget data-provider-master::data r-x--- ------ +org.tizen.gallery::widget data-provider-master::provider rw---- ------ +org.tizen.gallery::widget org.tizen.add-viewer rwxat- ------ +org.tizen.gallery::widget pkgmgr::db rwx--- ------ +org.tizen.gallery::widget efreet rwx--- ------ +org.tizen.gallery::widget litewhome rwx--- ------ +org.tizen.gallery::widget aul::launch --x--- ------ +org.tizen.gallery::widget aul::terminate --x--- ------ +org.tizen.gallery::widget system::ext_storage rwx--- ------ +aul org.tizen.gallery::widget rwx--- ------ +dbus org.tizen.gallery::widget rwx--- ------ +system org.tizen.gallery::widget -w---- ------ +org.tizen.data-provider-slave org.tizen.gallery::widget rwx--- ------ +org.tizen.gallery::widget system::homedir r-x--- ------ +org.tizen.gallery::widget device::sys_logging -w---- ------ +org.tizen.gallery::widget sys-assert::core -wx--- ------ +org.tizen.gallery::widget org.tizen.homescreen -w---- ------ +org.tizen.gallery::widget org.tizen.gallery rwxat- ------ +crash-worker org.tizen.gallery::widget r----- ------ +org.tizen.gallery::widget tizen::vconf::public::r::platform::rw rwxatl ------ +org.tizen.gallery::widget tizen::vconf::public::rw rwxatl ------ +org.tizen.gallery::widget tizen::vconf::setting::admin rwxatl ------ +org.tizen.gallery::widget tizen::vconf::setting rwx--- ------ +org.tizen.gallery::widget tizen::vconf::camcorder rwx--- ------ diff --git a/org.tizen.gallery.manifest b/org.tizen.gallery.manifest new file mode 100644 index 0000000..884dc30 --- /dev/null +++ b/org.tizen.gallery.manifest @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + diff --git a/org.tizen.gallery.xml b/org.tizen.gallery.xml new file mode 100755 index 0000000..b100318 --- /dev/null +++ b/org.tizen.gallery.xml @@ -0,0 +1,125 @@ + + + + Jiansong Jin + Gallery + + org.tizen.gallery.png + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.tizen.gallery.png + + 4x4 + + + diff --git a/packaging/org.tizen.gallery.spec b/packaging/org.tizen.gallery.spec new file mode 100755 index 0000000..9a160b8 --- /dev/null +++ b/packaging/org.tizen.gallery.spec @@ -0,0 +1,97 @@ +%define _optdir /opt/usr +%define _usrdir /usr +%define _appdir %{_usrdir}/apps +%define _appdatadir %{_optdir}/apps + +%define _datadir /opt%{_ugdir}/data +%define _sharedir /opt/usr/media/.iv +Name: org.tizen.gallery +Summary: org.tizen.gallery UX +Version: 1.3.21 +Release: 1 +Group: Applications +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: gettext-tools +BuildRequires: edje-tools +BuildRequires: prelink +BuildRequires: libicu-devel + +BuildRequires: pkgconfig(appsvc) +BuildRequires: pkgconfig(appcore-efl) +BuildRequires: pkgconfig(elementary) +BuildRequires: pkgconfig(evas) +BuildRequires: pkgconfig(efl-extension) +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(notification) +BuildRequires: pkgconfig(storage) +BuildRequires: pkgconfig(capi-appfw-application) +BuildRequires: pkgconfig(capi-appfw-widget-application) +BuildRequires: capi-appfw-widget-application-devel +BuildRequires: pkgconfig(capi-content-media-content) +BuildRequires: pkgconfig(capi-system-system-settings) +BuildRequires: pkgconfig(widget_service) +#BuildRequires: pkgconfig(widget) +#BuildRequires: pkgconfig(widget_provider) +#BuildRequires: pkgconfig(widget_provider_app) + +%description +Description: org.tizen.gallery UX + +%prep +%setup -q + +%build + +%if 0%{?tizen_build_binary_release_type_eng} +export CFLAGS="$CFLAGS -DTIZEN_ENGINEER_MODE" +export CXXFLAGS="$CXXFLAGS -DTIZEN_ENGINEER_MODE" +export FFLAGS="$FFLAGS -DTIZEN_ENGINEER_MODE" +%endif + +%ifarch %{arm} +CXXFLAGS+=" -D_ARCH_ARM_ -mfpu=neon" +%endif + +cmake . -DCMAKE_INSTALL_PREFIX=%{_appdir}/org.tizen.gallery -DCMAKE_DATA_DIR=%{_datadir} -DARCH=%{ARCH} + +make %{?jobs:-j%jobs} + +%install +rm -rf %{buildroot} +if [ ! -d %{buildroot}/opt/usr/apps/org.tizen.gallery/data ] +then + mkdir -p %{buildroot}/opt/usr/apps/org.tizen.gallery/data +fi + +%make_install + +mkdir -p %{buildroot}/usr/share/license +mkdir -p %{buildroot}%{_sharedir} +cp LICENSE %{buildroot}/usr/share/license/org.tizen.gallery + +%post +chown -R 5000:5000 %{_appdatadir}/org.tizen.gallery/data +%postun + +%files -n org.tizen.gallery +%manifest org.tizen.gallery.manifest +%defattr(-,root,root,-) +%{_appdir}/org.tizen.gallery/bin/* +%{_appdir}/org.tizen.gallery/res/locale/* +/usr/share/icons/default/small/org.tizen.gallery.png +/usr/share/icons/default/small/preview_gallery_4x4.png +/etc/smack/accesses.d/org.tizen.gallery.efl +%{_appdir}/org.tizen.gallery/res/images/* +%{_appdir}/org.tizen.gallery/res/edje/* +%{_appdatadir}/org.tizen.gallery/data +/usr/share/packages/org.tizen.gallery.xml +/usr/share/miregex/* +/usr/share/license/org.tizen.gallery + diff --git a/project_def.prop b/project_def.prop new file mode 100644 index 0000000..ad83879 --- /dev/null +++ b/project_def.prop @@ -0,0 +1,11 @@ +APPNAME = gallery + +type = app +profile = mobile-2.4 + +USER_SRCS = src/gallery.c +USER_DEFS = +USER_INC_DIRS = inc +USER_OBJS = +USER_LIBS = +USER_EDCS = diff --git a/res/black_theme/edc/gallery-edc-res.h b/res/black_theme/edc/gallery-edc-res.h new file mode 100755 index 0000000..9b7337b --- /dev/null +++ b/res/black_theme/edc/gallery-edc-res.h @@ -0,0 +1,112 @@ +/* +* 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 GL_RES_IMG(image_name) image: image_name COMP + +/* Definition of image path used in edc file */ + +/* gl-nocontents.edc */ +#define GALLERY_EDC_IMAGE_NOCONTENTS_PIC "T01_nocontents_videos.png" + +/* gl-places-marker.edc */ +#define GALLERY_EDC_IMAGE_PLACES_MARKER1 "T01_places_marker_01.png" + +/* gl-selection-notification.edc */ +#define GALLERY_EDC_IMAGE_BUTTON_REVEAL "00_button_reveal.png" +#define GALLERY_EDC_IMAGE_BUTTON_REVEAL_PRESS "00_button_reveal_press.png" +#define GALLERY_EDC_IMAGE_BTN_CIRCLE_BG_NORMAL "T01_button_circle_bg_normal.png" +#define GALLERY_EDC_IMAGE_BTN_CIRCLE_BG_PRESS "T01_button_circle_bg_normal_press.png" + +/* gl-gengrid.edc */ +#define GALLERY_EDC_IMAGE_OS_LEFT "00_overscrolling_left.png" +#define GALLERY_EDC_IMAGE_OS_RIGHT "00_overscrolling_right.png" + +/* gl-gengrid-item-albums.edc */ +#define GALLERY_EDC_IMAGE_EDIT_EFFECT_BG "T01_editl_effect.png" +#define GALLERY_EDC_IMAGE_ALBUM_BG "T01_album_folder_bg.png" + +/* gl-gengrid-item-thumbview.edc */ +#define GALLERY_EDC_IMAGE_BUTTON_PLAY "T01_btn_play.png" +#define GALLERY_EDC_IMAGE_BUTTON_VIDEO_PLAY "T01_video_play.png" +#define GALLERY_EDC_IMAGE_BUSTSHOT "T01_thumbs_bustshot_bg.png" +#define GALLERY_EDC_IMAGE_THUMBS_BG_FOCUS "00_thumbs_bg_focus.png" +#define GALLERY_EDC_IMAGE_BADGE_BG "00_badge_bg.png" + +/* gl-places-ctxpopup.edc */ +#define GALLERY_EDC_IMAGE_POPUP_SCROLL "00_popup_scroll.png" +#define GALLERY_EDC_IMAGE_PLACES_THUMB_BG "T01_places_thumbnail_bg.png" + +/* gl-genlist-group-webalbum.edc */ + +/* gallery.edc */ +#define GALLERY_EDC_IMAGE_CONTROL_TABBAR_BG "00_winset_title_tabbar_bg.png" + +/* gl-button.edc */ +#define GALLERY_EDC_IMAGE_BTN_GRIDVIEW "T01_bubble_icon_gridview.png" +#define GALLERY_EDC_IMAGE_BTN_FOOTSTEPS "T01_bubble_icon_footsteps.png" + +#define GALLERY_EDC_IMAGE_BTN_CIRCLE_BG "T01_album_edit_rename_bg.png" +#define GALLERY_EDC_IMAGE_BTN_CIRCLE_BG_PRESSED "T01_album_edit_rename_bg_press.png" +#define GALLERY_EDC_IMAGE_BTN_RENAME "T01_album_edit_rename.png" +#define GALLERY_EDC_IMAGE_BTN_RENAME_PRESS "T01_album_edit_rename_press.png" + +#define GALLERY_EDC_SOUND_TOUCH_30MS "S_Touch_30ms.wav" + +/* gl-check.edc */ +#define GALLERY_EDC_IMAGE_CHECK_BG "T01_checkbox.png" +#define GALLERY_EDC_IMAGE_CHECK_ALBUM_BG "T01_album_edit_check_bg.png" +#define GALLERY_EDC_IMAGE_CHECK_BG_DIM "00_check_bg_dim.png" +#define GALLERY_EDC_IMAGE_CHECK_BG_CHECKING "T01_check.png" +#define GALLERY_EDC_IMAGE_CHECK_ALBUM_EDIT_CHECKON "T01_album_edit_check_on.png" + +/* gl-entry.edc */ +#define GALLERY_EDC_IMAGE_EDITFIELD_CLEAR "00_EditField_clear.png" +#define GALLERY_EDC_IMAGE_SEARCH_EDIT_FIELD_BG "00_search_edit_field_bg.png" +#define GALLERY_EDC_IMAGE_SEARCH_EDIT_FIELD_BG_FOCUS "00_search_edit_field_bg_focus.png" + +/* gl-progressbar.edc */ +#define GALLERY_EDC_IMAGE_LIST_PROGRESS_BG "00_winset_list_progress_bg.png" +#define GALLERY_EDC_IMAGE_LIST_PROGRESS_BAR "T01_gallery_album_progress_bar.png" + +/* gl-slider.edc */ +#define GALLERY_EDC_IMAGE_GIRD_OS_TOP "00_grid_overscrolling_top.png" +#define GALLERY_EDC_IMAGE_GIRD_OS_BOT "00_grid_overscrolling_bottom.png" +#define GALLERY_EDC_IMAGE_GIRD_OS_LEFT "00_grid_overscrolling_left.png" +#define GALLERY_EDC_IMAGE_GIRD_OS_RIGHT "00_grid_overscrolling_right.png" + +/* gl-ctxpopup.edc */ +#define GALLERY_EDC_IMAGE_POPUP_SCROLL_V "00_popup_scroll_v.png" +#define GALLERY_EDC_IMAGE_POPUP_SCROLL_H "00_popup_scroll_h.png" +#define GALLERY_EDC_IMAGE_POPUP_DORPDOWN_BG "00_popup_dropdown_bg.png" +#define GALLERY_EDC_IMAGE_MORE_POPUP_PRESS "00_more_popup_press.png" +#define GALLERY_EDC_IMAGE_POPUP_OVERSCROLLING_TOP "00_popup_overscrolling_top.png" +#define GALLERY_EDC_IMAGE_POPUP_OVERSCROLLING_BOTTOM "00_popup_overscrolling_bottom.png" +#define GALLERY_EDC_IMAGE_POPUP_OVERSCROLLING_RIGHT "00_popup_overscrolling_right.png" +#define GALLERY_EDC_IMAGE_POPUP_OVERSCROLLING_LEFT "00_popup_overscrolling_left.png" +#define GALLERY_EDC_IMAGE_OS_TOP "00_overscrolling_top.png" + +/* gl-expanded-title.edc */ +#define GALLERY_EDC_IMAGE_TITLE_BG "00_title_bg.png" +#define GALLERY_EDC_IMAGE_POPUP_DROPDOWN_TITLE_BG "00_popup_dropdown_title_bg.png" +#define GALLERY_EDC_IMAGE_POPUP_DROPDOWN_TITLE_BG_PRESS "00_popup_dropdown_title_bg_press.png" +#define GALLERY_EDC_IMAGE_POPUP_DROPDOWN_TITLE_BG_FOCUS "00_popup_dropdown_title_bg_focus.png" +#define GALLERY_EDC_IMAGE_BUTTON_ICON_ARROW_PRESS "00_button_icon_arrow_press.png" +#define GALLERY_EDC_IMAGE_BUTTON_ICON_ARROW "00_button_icon_arrow.png" +#define GALLERY_EDC_IMAGE_BACK_BUTTON "T01_icon_back.png" +#define GALLERY_EDC_DELETE_SHOW_IMAGE_BG "gallery_icon_container.png" +#define GALLERY_EDC_DELETE_SHOW_IMAGE "gallery_icon_full.png" +#define GALLERY_EDC_SD_CARD_ICON "T01_album_icon_sd_card.png" diff --git a/res/black_theme/edc/gallery.edc b/res/black_theme/edc/gallery.edc new file mode 100755 index 0000000..3393e4d --- /dev/null +++ b/res/black_theme/edc/gallery.edc @@ -0,0 +1,1078 @@ +/* +* 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. +* +*/ + +/* Use genlist style for pinch out */ + +#define INDICATOR_H 27 +#define NAVI_H 67 +#define GALLERY_EDC_COLOR_THEME_GRAY 91 91 91 255 +#define GALLERY_EDC_COLOR_BG 0 0 0 255 +#define ENTRY_H 112 +#define ENTRY_MAX_W 1280 +#define TABBAR_DEFAULT_HEIGHT_INC 111 +#define TABBAR_HORIZONTAL_HEIGHT_INC 91 +/* Set select all bg color same as genlist */ +#define SELECT_ALL_BG_HEIGHT_INC 112 +#define NAVIFRAME_TITLE_BG_COLOR_INC 248 246 239 255 + +#define POPUP_CONTENT_DEFAULT_PADDING_LEFT_MIN_INC 15 +#define POPUP_EDITFIELD_LAYOUT_MINMAX_HEIGHT_INC 56 + +#include "gallery-edc-res.h" +#define LAYOUT_WIDTH 500 +#define LAYOUT_HEIGHT 300 +#define CENTER_PADDING_WIDTH 5 +#define YOUR_THEME_BASE_SCALE 1 // 2.6 is default base scale for Tizen 2.4 HD. +externals { + external: "elm"; + external: "feedback"; +} + +collections { + plugins { + plugin { + name: "touch_sound_plugin"; + source: "feedback"; + param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP"; // FEEDBACK_TYPE_SOUND, FEEDBACK_PATTERN_TOUCH_TAP + /* 2014.06.11 updated from libsvi(feedback) + Above plugin will run below external function: + int feedback_play_type(feedback_type_e type, feedback_pattern_e pattern); + param1: feedback_type_e + FEEDBACK_TYPE_NONE = 0, + FEEDBACK_TYPE_SOUND = 1, + FEEDBACK_TYPE_VIBRATION, + FEEDBACK_TYPE_LED, + FEEDBACK_TYPE_END + + * param2 enumeration: + FEEDBACK_PATTERN_TAP = 0, + FEEDBACK_PATTERN_SIP, + FEEDBACK_PATTERN_SIP_BACKSPACE, + FEEDBACK_PATTERN_SIP_FUNCTION, + FEEDBACK_PATTERN_SIP_FJKEY, + ... + + * For more information please refer libsvi. + */ + } + } + + #include "gl-macro.edc" + #include "gl-expanded-title.edc" + #include "gl-ctxpopup.edc" + #include "gl-gengrid.edc" + #include "gl-gengrid-item-ctxpopup.edc" + #include "gl-gengrid-item-thumbview.edc" + #include "gl-gengrid-item-albums.edc" + #include "gl-selection-notification.edc" + #include "gl-naviframe.edc" + #include "gl-button.edc" + #include "gl-check.edc" + #include "gl-label.edc" + #include "gl-nocontents.edc" + #include "gl-entry.edc" + #include "gl-timeline.edc" + #include "gl-progressbar.edc" + #include "gl-popup-entry.edc" + base_scale: YOUR_THEME_BASE_SCALE; + + group{ name: "list_popup_swallow_ly"; + parts { + part { name: "bg"; + type: RECT; + description { + rel1.relative : 0 0; + rel2.relative : 1 1; + color: 255 255 255 255; + } + } + part { name: "list"; + type: SWALLOW; + description { + rel1.relative : 0 0; + rel1.to : "bg"; + rel2.relative : 1 1; + rel2.to : "bg"; + } + } + } + script { + public message(Msg_Type:type,id, ...) + { + if((type == MSG_INT) && (id == 2)) + { + new a; + new x, y; + a = getarg(2); + custom_state(PART:"bg","default",0.0); + get_state_val(PART:"bg",STATE_MIN,x,y); + set_state_val(PART:"bg",STATE_MIN,x,a); + get_state_val(PART:"bg",STATE_MAX,x,y); + set_state_val(PART:"bg",STATE_MAX,x,a); + set_state(PART:"bg","custom",0.0); + } + } + } + } + + group { name: "list_popup_content_ly"; + parts { + part { name : "bg"; + type: RECT; + description { + state: "default" 0.0; + rel1.relative: 0.0 0.0; + rel2.relative: 1.0 1.0; + color: 255 255 255 255; + } + } + part { name : "bg1"; + type: RECT; + description { + state: "default" 0.0; + rel1.relative: 0.0 0.0; + rel1.to: "bg"; + rel2.relative: 1.0 0.5; + rel2.to: "bg"; + color: 255 255 255 255; + } + description { + state: "pressed" 0.0; + inherit: "default" 0.0; + color: 165 197 210 255; + } + } + part { name : "bg2"; + type: RECT; + description { + state: "default" 0.0; + rel1.relative: 0.0 0.5; + rel1.to: "bg"; + rel1.offset: 0 2; + rel2.relative: 1.0 1.0; + rel2.to: "bg"; + color: 255 255 255 255; + } + description { + state: "pressed" 0.0; + inherit: "default" 0.0; + color: 165 197 210 255; + } + } + part { name : "septator"; + type: RECT; + description { + state: "default" 0.0; + rel1.relative: 0.0 0.5; + rel1.to: "bg"; + //rel1.offset: 0 2; + rel2.relative: 1.0 0.5; + rel2.to: "bg"; + min: 0 2; + max: -1 2; + align: 0 0.5; + color: 165 197 210 255; + } + } + part { + name: "elm.text"; + type: TEXT; + mouse_events: 1; + repeat_events: 1; + scale: 1; + description { + state: "default" 0.0; + rel1.relative: 0.0 0.0; + rel1.to: "bg1"; + rel2.relative: 0.0 1.0; + rel2.to: "bg1"; + min: 200 55; + max: 200 55; + align: 0 0; + text { + text: "Time"; + size: 16; + align: 0.1 0.5; + } + color: 23 23 23 255; + } + } + part { + name: "elm.swallow"; + type: SWALLOW; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; + rel1.relative: 0.8 0.3; + rel1.to: "bg1"; + rel2.relative: 1.0 0.7; + rel2.to: "bg1"; + align: 1.0 0.5; + } + } + part { + name: "elm.text.second"; + type: TEXT; + mouse_events: 1; + repeat_events: 1; + scale: 1; + description { + state: "default" 0.0; + rel1.relative: 0.0 0.0; + rel1.to: "bg2"; + rel2.relative: 0.0 1.0; + rel2.to: "bg2"; + min: 200 55; + max: 200 55; + align: 0 0; + text { + text: "Album"; + size: 16; + align: 0.1 0.5; + } + color: 23 23 23 255; + } + } + part { + name: "elm.swallow.second"; + type: SWALLOW; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; + rel1.relative: 0.8 0.3; + rel1.to: "bg2"; + rel2.relative: 1.0 0.7; + rel2.to: "bg2"; + align: 1.0 0.5; + } + } + part { name : "button1"; + type: SWALLOW; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; + rel1.relative: 0.0 0.0; + rel1.to: "bg"; + rel2.relative: 1.0 0.5; + rel2.to: "bg"; + } + } + part { name : "button2"; + type: SWALLOW; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; + rel1.relative: 0.0 0.5; + rel1.to: "bg"; + rel1.offset: 0 2; + rel2.relative: 1.0 1.0; + rel2.to: "bg"; + } + } + } + programs { + program{ name: "item_1_clicked"; + source: "bg1"; + signal: "mouse,down,1"; + action: STATE_SET "pressed" 0.0; + target: "bg1"; + } + program{ name: "item_2_clicked"; + source: "bg2"; + signal: "mouse,down,1"; + action: STATE_SET "pressed" 0.0; + target: "bg2"; + } + program{ name: "item_1_released"; + source: "bg1"; + signal: "mouse,up,1"; + action: STATE_SET "default" 0.0; + target: "bg1"; + } + program{ name: "item_2_released"; + source: "bg2"; + signal: "mouse,up,1"; + action: STATE_SET "default" 0.0; + target: "bg2"; + } + } + + } + + 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"; + } + } + } + } + } + + group + { + name: "gallery/gridview"; + images { + image: GALLERY_EDC_IMAGE_CONTROL_TABBAR_BG COMP; + } + parts { + part { + name: "background"; + type, RECT; + //mouse_events: 1; + //scale: 1; + description { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; } + rel2 { relative: 1.0 1.0; } + } + } + part { + name: "contents"; + type: SWALLOW; + mouse_events: 1; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; to: "background"; } + rel2 { relative: 1.0 1.0; to: "background";} + } + } + part { + name: "gesture"; + type: SWALLOW; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; to: "contents";} + rel2 { relative: 1.0 1.0; to: "contents";} + } + + } + } + } + + group { + name: "gallery/layout"; + 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: 255 255 255 0; + } + } + part { + name: "split.view.bg.color"; + type: RECT; + mouse_events: 1; + description { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; to: split.view; } + rel2 { relative: 1.0 1.0; to: split.view; } + color: 230 230 230 255; + } + } + part { + name: "split.view"; + type: SWALLOW; + mouse_events: 1; + description { + state: "default" 0.0; + min: 0 0; + max: 0 0; + align: 0 0; + rel1 { relative: 0.0 0.0; } + rel2 { relative: 1.0 1.0; } + } + description { + state: "visible" 0.0; + rel1 { relative: 0.0 0.0; } + rel2 { relative: 179/540 1.0; } + fixed: 1 0; + min: 0 0; + max: -1 -1; + } + } + part { + name: "select.all.area.bg"; + type: RECT; + mouse_events: 0; + description { + state: "default" 0.0; + min: 0 0; + max: 0 0; + align: 0 0; + rel1 { relative: 1.0 0.0; to: "split.view"; } + rel2 { relative: 1.0 1.0; } + color: 255 255 255 255; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + min: 0 0; + max: -1 60; + } + } + part { + name: "select.all.area.label"; + type: TEXT; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: 24/540 0.0; to: "select.all.area.bg";} + rel2 { relative: 0.6 1.0; to: "select.all.area.bg";} + text { + text: "Select All"; + size: 16; + align: 0.0 0.5; + } + color: 0 0 255 255; + visible: 0; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { + name: "select.all.area.check"; + type: SWALLOW; + mouse_events: 0; + description { + state: "default" 0.0; + fixed: 1 1; + rel1 { relative: 1.0 0.1; to: "select.all.area.bg"; offset: -60 0;} + rel2 { relative: 1.0 0.9; to: "select.all.area.bg";} + visible: 0; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { + name: "select.all.area.check.fg"; + type: SWALLOW; + mouse_events: 1; + repeat_events: 0; + description { + state: "default" 0.0; + rel1 { relative: 0 0; to: "select.all.area.check";} + rel2 { relative: 1 1; to: "select.all.area.check";} + align: 1 0.5; + visible: 0; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + + } + part { + name: "contents"; + type: SWALLOW; + mouse_events: 1; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; to: "background"; } + rel2 { relative: 1.0 1.0; } + } + } + part { + name: "elm.swallow.view"; + type: SWALLOW; + mouse_events: 1; + description { + state: "default" 0.0; + rel1 { relative: 0.0 1.0; to: "select.all.area.bg";} + rel2 { relative: 1.0 1.0; } + } + } + part { + name: "elm.swallow.date.layout"; + type: SWALLOW; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; + rel1 { relative: 0.3 0.4; to: "elm.swallow.view";} + rel2 { relative: 0.7 0.5; to: "elm.swallow.view";} + } + description { + state: "landscape" 0.0; + rel1 { relative: 0.38 0.41; to: "elm.swallow.view";} + rel2 { relative: 0.61 0.58; to: "elm.swallow.view";} + } + } + part { + name: "gesture"; + type: SWALLOW; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; to: "elm.swallow.view";} + rel2 { relative: 1.0 1.0; to: "elm.swallow.view";} + } + description { + state: "disabled" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + } + script { + public message(Msg_Type:type,id, ...) + { + if((type == MSG_INT) && (id == 1)) + { + new a; + a = getarg(2); + custom_state(PART:"split.view","default",0.0); + set_state_val(PART:"split.view",STATE_MAX,a,-1); + set_state(PART:"split.view","custom",0.0); + } + if((type == MSG_INT) && (id == 2)) + { + new a; + new x, y; + a = getarg(2); + custom_state(PART:"select.all.area.bg","default",0.0); + get_state_val(PART:"select.all.area.bg",STATE_MAX,x,y); + set_state_val(PART:"select.all.area.bg",STATE_MIN,0,60); + set_state_val(PART:"select.all.area.bg",STATE_MAX,a,60); + set_state(PART:"select.all.area.bg","custom",0.0); + } + } + } + + programs + { + program { + name: "rotate_timeline_view_info_landscape"; + signal: "timelineview,landscape"; + source: "*"; + action: STATE_SET "landscape" 0.0; + target: "elm.swallow.date.layout"; + } + program { + name: "rotate_timeline_view_info_portrait"; + signal: "timelineview,portrait"; + source: "*"; + action: STATE_SET "default" 0.0; + target: "elm.swallow.date.layout"; + } + program { + name: "swallow_view_default"; + signal: "elm,swallow_view,state,default"; + source: "elm"; + script { + set_state(PART:"elm.swallow.view", "default", 0.0); + } + } + program { + name: "gesture_default"; + signal: "elm,gesture,state,default"; + source: "elm"; + script { + set_state(PART:"gesture", "default", 0.0); + } + } + program { + name: "gesture_disabled"; + signal: "elm,gesture,state,disabled"; + source: "elm"; + script { + set_state(PART:"gesture", "disabled", 0.0); + } + } + program { + name: "selectall_visible"; + signal: "elm,selectall,state,visible"; + source: "elm"; + script { + set_state(PART:"select.all.area.label", "visible", 0.0); + set_state(PART:"select.all.area.check", "visible", 0.0); + set_state(PART:"select.all.area.check.fg", "visible", 0.0); + } + } + program { + name: "selectall_visible_bg"; + signal: "elm,selectall,state,visible,bg"; + source: "elm"; + script { + set_state(PART:"select.all.area.bg", "visible", 0.0); + } + } + program { + name: "selectall_default"; + signal: "elm,selectall,state,default"; + source: "elm"; + script { + set_state(PART:"select.all.area.label", "default", 0.0); + set_state(PART:"select.all.area.check", "default", 0.0); + set_state(PART:"select.all.area.bg", "default", 0.0); + set_state(PART:"select.all.area.check", "default", 0.0); + } + } + program { + name: "split_view_default"; + signal: "elm,splitview,state,default"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "split.view"; + transition : LINEAR 0.5; + } + program { + name: "split_view_visible"; + signal: "elm,splitview,state,visible"; + source: "elm"; + action: STATE_SET "custom" 0.0; + target: "split.view"; + transition : LINEAR 0.5; + } + program { + name: "touch_snd"; + signal : "mouse,clicked,1"; + source : "select.all.area.check.fg"; + action: RUN_PLUGIN "touch_sound_plugin"; + } + } + } + + #define GL_ALBUMS_PBAR_BG_COLOR_INC 0 0 0 0 + + group + { + name: "gallery/progressbar"; + parts { + part { + name: "bg"; + mouse_events: 0; + type: RECT; + 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: "elm.pad.top"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 0; + rel1 { relative: 0.0 0.0; to: "bg";} + rel2 { relative: 1.0 0.0; to: "bg"; offset: -2 1;} + align: 0.0 0.0; + color: GL_ALBUMS_PBAR_BG_COLOR_INC; + } + } + part { name: "elm.pad.bottom"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 0; + rel1 { relative: 0.0 1.0; to: "bg"; offset: 0 -1;} + rel2 { relative: 1.0 1.0; to: "bg"; offset: -2 0;} + align: 0.0 0.0; + color: GL_ALBUMS_PBAR_BG_COLOR_INC; + } + } + part { name: "base"; + type: RECT; + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.0; to: "elm.pad.top";} + rel2 { relative: 1.0 1.0; to: "elm.pad.bottom";} + color: GL_ALBUMS_PBAR_BG_COLOR_INC; + } + } + part { name: "elm.swallow.progressbar"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 0; + rel1 { relative: 0.0 0.0; to: "base"; offset: 12 0;} + rel2 { relative: 1.0 0.5; to: "base"; offset: -14 0;} + align: 0.0 0.0; + } + } + part { name: "elm.swallow.label"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 0; + rel1 { relative: 0.0 0.5; to: "base"; offset: 12 0;} + rel2 { relative: 1.0 1.0; to: "base"; offset: -14 0;} + align: 0.0 0.0; + } + } + } + } + + group { name: "gl_bg_layout"; + parts { + part { name: "bg"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + color: 255 255 255 45; + } + } + part { name: "elm.swallow.image"; + type: SWALLOW; + description { + state: "default" 0.0; + } + } + } + } + + group { name: "ceter_algined_text_layout"; + styles { + style { name: "my_textblock_name_style"; + base: "font=Sans:style=Regular font_size=20 color=#000000 ellipsis=1.0"; + } + style { name: "my_textblock_count_style"; + base: "font=Sans:style=Regular font_size=20 color=#000000"; + } + } + script { + public scale_value; + public pw; + public tw; + public calc_text_size() { + new x, y, w, h; + new bx, by, bw, bh; + new cx, cy, cw, ch; + get_geometry(PART:"elm.sub.text", x, y, w, h); + get_geometry(PART:"base", bx, by, bw, bh); + get_geometry(PART:"center_padding", cx, cy, cw, ch); + if (get_float(scale_value) != 0) { + // Reverting scale multiplied width. + set_float(pw, (w + cw) * (YOUR_THEME_BASE_SCALE / get_float(scale_value))); + set_float(tw, (bw - cw - w) * (YOUR_THEME_BASE_SCALE / get_float(scale_value))); + } else { + set_float(pw, w + cw); + set_float(tw, bw - cw - w); + } + custom_state(PART:"right_dynamic_padding", "default", 0.0); + set_state_val(PART:"right_dynamic_padding", STATE_MIN, get_int(pw), 0); + set_state(PART:"right_dynamic_padding", "custom", 0.0); + custom_state(PART:"elm.text", "default", 0.0); + set_state_val(PART:"elm.text", STATE_MAX, get_int(tw), -1); + set_state(PART:"elm.text", "custom", 0.0); + } + public message(Msg_Type:type, id, ...) { + if (type == MSG_FLOAT) { + new Float:scale_v; + scale_v = getfarg(2); + set_float(scale_value, scale_v); + calc_text_size(); + } + } + } + parts { + part { name: "base"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + rel1.relative: 0 0; + rel2.relative: 1 1; + color: 0 0 0 0; + } + } + part { name: "right_dynamic_padding"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + fixed: 1 1; + align: 1.0 0.5; + min: 0 0; + rel1.relative: 1.0 0.0; + } + } + part { name: "elm.text.bg"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + fixed: 1 1; + rel2 { + to_x: "right_dynamic_padding"; + relative: 0.0 1.0; + } + } + } + part { name: "elm.text"; + type: TEXTBLOCK; + scale: 1; + description { state: "default" 0.0; + fixed: 1 1; + min: 0 0; + rel1 { + to_x: "elm.text.bg"; + relative: 0.5 0.0; + } + rel2 { + to_x: "elm.text.bg"; + relative: 0.5 1.0; + } + text { + style: "my_textblock_name_style"; + min: 1 1; + max: 0 1; + } + } + } + part { name: "center_padding"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + fixed: 1 1; + align: 0.0 0.5; + min: CENTER_PADDING_WIDTH 0; + rel1 { + to_x: "elm.text"; + relative: 1.0 0.0; + } + rel2 { + to_x: "elm.text"; + relative: 1.0 1.0; + } + } + } + part { name: "elm.sub.text"; + type: TEXTBLOCK; + scale: 1; + description { state: "default" 0.0; + fixed: 1 1; + min: 0 0; + align: 0.0 0.5; + rel1 { + to_x: "center_padding"; + relative: 1.0 0.0; + } + rel2 { + to_x: "center_padding"; + relative: 1.0 1.0; + } + text { + style: "my_textblock_count_style"; + min: 1 1; + max: 0 1; + } + } + } + } + } + group { name: "ceter_algined_text_layout_split_view"; + styles { + style { name: "my_textblock_name_style_split_view"; + base: "font=Sans:style=Regular font_size=12 color=#000000 ellipsis=1.0"; + } + style { name: "my_textblock_count_style_split_view"; + base: "font=Sans:style=Regular font_size=12 color=#000000"; + } + } + script { + public scale_value; + public pw; + public tw; + public calc_text_size() { + new x, y, w, h; + new bx, by, bw, bh; + new cx, cy, cw, ch; + get_geometry(PART:"elm.sub.text", x, y, w, h); + get_geometry(PART:"base", bx, by, bw, bh); + get_geometry(PART:"center_padding", cx, cy, cw, ch); + if (get_float(scale_value) != 0) { + // Reverting scale multiplied width. + set_float(pw, (w + cw) * (YOUR_THEME_BASE_SCALE / get_float(scale_value))); + set_float(tw, (bw - cw - w) * (YOUR_THEME_BASE_SCALE / get_float(scale_value))); + } else { + set_float(pw, w + cw); + set_float(tw, bw - cw - w); + } + custom_state(PART:"right_dynamic_padding", "default", 0.0); + set_state_val(PART:"right_dynamic_padding", STATE_MIN, get_int(pw), 0); + set_state(PART:"right_dynamic_padding", "custom", 0.0); + custom_state(PART:"elm.text", "default", 0.0); + set_state_val(PART:"elm.text", STATE_MAX, get_int(tw), -1); + set_state(PART:"elm.text", "custom", 0.0); + } + public message(Msg_Type:type, id, ...) { + if (type == MSG_FLOAT) { + new Float:scale_v; + scale_v = getfarg(2); + set_float(scale_value, scale_v); + calc_text_size(); + } + } + } + parts { + part { name: "base"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + rel1.relative: 0 0; + rel2.relative: 1 1; + color: 0 0 0 0; + } + } + part { name: "right_dynamic_padding"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + fixed: 1 1; + align: 1.0 0.5; + min: 0 0; + rel1.relative: 1.0 0.0; + } + } + part { name: "elm.text.bg"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + fixed: 1 1; + rel2 { + to_x: "right_dynamic_padding"; + relative: 0.0 1.0; + } + } + } + part { name: "elm.text"; + type: TEXTBLOCK; + scale: 1; + description { state: "default" 0.0; + fixed: 1 1; + min: 0 0; + rel1 { + to_x: "elm.text.bg"; + relative: 0.5 0.0; + } + rel2 { + to_x: "elm.text.bg"; + relative: 0.5 1.0; + } + text { + style: "my_textblock_name_style_split_view"; + min: 1 1; + max: 0 1; + } + } + } + part { name: "center_padding"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + fixed: 1 1; + align: 0.0 0.5; + min: CENTER_PADDING_WIDTH 0; + rel1 { + to_x: "elm.text"; + relative: 1.0 0.0; + } + rel2 { + to_x: "elm.text"; + relative: 1.0 1.0; + } + } + } + part { name: "elm.sub.text"; + type: TEXTBLOCK; + scale: 1; + description { state: "default" 0.0; + fixed: 1 1; + min: 0 0; + align: 0.0 0.5; + rel1 { + to_x: "center_padding"; + relative: 1.0 0.0; + } + rel2 { + to_x: "center_padding"; + relative: 1.0 1.0; + } + text { + style: "my_textblock_count_style_split_view"; + min: 1 1; + max: 0 1; + } + } + } + } + } +} + diff --git a/res/black_theme/edc/gl-button.edc b/res/black_theme/edc/gl-button.edc new file mode 100755 index 0000000..4d01a2c --- /dev/null +++ b/res/black_theme/edc/gl-button.edc @@ -0,0 +1,297 @@ +/* +* 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 BUTTON_STATE_ENABLED 0 +#define BUTTON_STATE_DISABLED 1 + +#define BUTTON_EDIT_STYLE_BORDER_INC 8 0 5 5 + + sounds { + sample { + name: "touch_sound" AS_IS; + source: GALLERY_EDC_SOUND_TOUCH_30MS; + } + } + +/////////////////////////////////////////////////////////////////////////////////////// +#define BUTTON_STYLES(style_name, image_normal, min_width, min_height) \ + group { name: "elm/button/base/"style_name; \ + images { \ + image: image_normal COMP; \ + } \ + parts { \ + part { name: "button_image"; \ + type: RECT; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + color: 0 0 0 0; \ + visible: 1; \ + } \ + description { \ + visible: 0; \ + state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + color: 42 137 194 255; \ + } \ + description { \ + visible: 0; \ + state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + } \ + } \ + part { name: "button_image_bg"; \ + type: IMAGE; \ + mouse_events: 1; \ + repeat_events:1; \ + scale: 1; \ + description { state: "default" 0.0; \ + min: min_width min_height; \ + max: min_width min_height; \ + image { \ + normal: image_normal; \ + border: BUTTON_EDIT_STYLE_BORDER_INC; \ + border_scale: 1; \ + } \ + } \ + } \ + part { name: "over1"; \ + type: RECT; \ + repeat_events: 1; \ + ignore_flags: ON_HOLD; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + min: min_width min_height; \ + } \ + } \ + part { name: "over2"; \ + type: RECT; \ + repeat_events: 1; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + } \ + } \ + part { name: "disabler"; \ + type: RECT; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + visible: 0; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } \ + } \ + programs { \ + program { name: "button_click"; \ + signal: "mouse,down,1"; \ + source: "over1"; \ + action: SIGNAL_EMIT "elm,action,press" ""; \ + after: "button_click_anim"; \ + } \ + program { name: "button_click_anim"; \ + action: STATE_SET "clicked" 0.0; \ + target: "button_image"; \ + } \ + program { name: "button_unclick"; \ + signal: "mouse,up,1"; \ + source: "over2"; \ + action: SIGNAL_EMIT "elm,action,unpress" ""; \ + after: "button_unclick_anim"; \ + } \ + program { name: "button_unclick_anim"; \ + action: STATE_SET "default" 0.0; \ + target: "button_image"; \ + } \ + program { name: "touch_snd"; \ + signal: "mouse,clicked,1"; \ + source: "over1"; \ + action: PLAY_SAMPLE "touch_sound" 1.0; \ + after: button_unclick3; \ + } \ + program { name: "button_unclick3"; \ + action: SIGNAL_EMIT "elm,action,click" ""; \ + } \ + program { name: "disable"; \ + signal: "elm,state,disabled"; \ + source: "elm"; \ + action: STATE_SET "disabled" 0.0; \ + target: "disabler"; \ + target: "button_image"; \ + } \ + program { name: "enable"; \ + signal: "elm,state,enabled"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "disabler"; \ + target: "button_image"; \ + } \ + } \ +} + +/////////////////////////////////////////////////////////////////////////////////////// + BUTTON_STYLES("gallery/gridview", GALLERY_EDC_IMAGE_BTN_GRIDVIEW, 45, 45) + BUTTON_STYLES("gallery/footsteps", GALLERY_EDC_IMAGE_BTN_FOOTSTEPS, 45, 45) + +/////////////////////////////////////////////////////////////////////////////////////// +#define BUTTON_CIRCLE_STYLES(style_name, image_normal, image_press, min_width, min_height) \ + group { name: "elm/button/base/"style_name; \ + images { \ + image: GALLERY_EDC_IMAGE_BTN_CIRCLE_BG COMP; \ + image: GALLERY_EDC_IMAGE_BTN_CIRCLE_BG_PRESSED COMP; \ + image: GALLERY_EDC_IMAGE_BTN_CIRCLE_BG COMP; \ + image: image_normal COMP; \ + image: image_press COMP; \ + } \ + parts { \ + part { name: "button_image"; \ + scale: 1; \ + description { state: "default" 0.0; \ + min: 64 64; \ + max: 64 64; \ + image.normal: GALLERY_EDC_IMAGE_BTN_CIRCLE_BG; \ + } \ + description { \ + state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + image.normal: GALLERY_EDC_IMAGE_BTN_CIRCLE_BG_PRESSED; \ + } \ + description { \ + state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + image.normal: GALLERY_EDC_IMAGE_BTN_CIRCLE_BG; \ + } \ + } \ + part { name: "button_center_part"; \ + scale: 1; \ + clip_to: "icon_clipper"; \ + description { state: "default" 0.0; \ + min: min_width min_height; \ + max: min_width min_height; \ + image.normal: image_normal; \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default"; \ + image.normal: image_press; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default"; \ + } \ + } \ + part { name: "icon_clipper"; \ + type: RECT; \ + scale: 1; \ + description { state: "default" 0.0; \ + color: 250 250 250 255; \ + } \ + description { state: "clicked" 0.0; \ + color: 250 250 250 255; \ + } \ + description { state: "disabled" 0.0; \ + color: 250 250 250 128; \ + } \ + } \ + part { name: "over1"; \ + type: RECT; \ + ignore_flags: ON_HOLD; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + min: min_width min_height; \ + } \ + } \ + part { name: "over2"; \ + type: RECT; \ + repeat_events: 1; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + } \ + } \ + part { name: "disabler"; \ + type: RECT; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + visible: 0; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } \ + } \ + programs { \ + program { name: "button_click"; \ + signal: "mouse,down,1"; \ + source: "over1"; \ + action: SIGNAL_EMIT "elm,action,press" ""; \ + after: "button_click_anim"; \ + } \ + program { name: "button_click_anim"; \ + action: STATE_SET "clicked" 0.0; \ + target: "button_image"; \ + target: "button_center_part"; \ + target: "icon_clipper"; \ + } \ + program { name: "button_unclick"; \ + signal: "mouse,up,1"; \ + source: "over2"; \ + action: SIGNAL_EMIT "elm,action,unpress" ""; \ + after: "button_unclick_anim"; \ + } \ + program { name: "button_unclick_anim"; \ + action: STATE_SET "default" 0.0; \ + target: "button_image"; \ + target: "button_center_part"; \ + target: "icon_clipper"; \ + } \ + program { name: "touch_snd"; \ + signal: "mouse,clicked,1"; \ + source: "over1"; \ + action: PLAY_SAMPLE "touch_sound" 1.0; \ + after: button_unclick3; \ + } \ + program { name: "button_unclick3"; \ + action: SIGNAL_EMIT "elm,action,click" ""; \ + } \ + program { name: "disable"; \ + signal: "elm,state,disabled"; \ + source: "elm"; \ + action: STATE_SET "disabled" 0.0; \ + target: "disabler"; \ + target: "button_image"; \ + target: "button_center_part"; \ + target: "icon_clipper"; \ + } \ + program { name: "enable"; \ + signal: "elm,state,enabled"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "disabler"; \ + target: "button_image"; \ + target: "button_center_part"; \ + target: "icon_clipper"; \ + } \ + } \ + } + +/////////////////////////////////////////////////////////////////////////////////////// +BUTTON_CIRCLE_STYLES("gallery/rename", GALLERY_EDC_IMAGE_BTN_RENAME, GALLERY_EDC_IMAGE_BTN_RENAME_PRESS, 64, 64) +/////////////////////////////////////////////////////////////////////////////////////// + +#undef BUTTON_STATE_ENABLED +#undef BUTTON_STATE_DISABLED + diff --git a/res/black_theme/edc/gl-check.edc b/res/black_theme/edc/gl-check.edc new file mode 100755 index 0000000..9cb8f4e --- /dev/null +++ b/res/black_theme/edc/gl-check.edc @@ -0,0 +1,646 @@ +/* +* 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 CHECK_STYLE_DEFAULT_BG_NORMAL_MIN_MAX_INC 32 32 + +#define CHECK_DEFAULT_TEXT_NORMAL_COLOR_INC 255 255 255 255 +#define CHECK_DEFAULT_TEXT_PRESSED_COLOR_INC 255 255 255 255 +#define CHECK_DEFAULT_TEXT_DISABLED_COLOR_INC 136 136 136 136 + +//////////////////////////////////////////////////////////////////////////////////////// +// +// check default textblock style +// +/////////////////////////////////////////////////////////////////////////////////////// + styles { + style { name: "check_label_textblock_style"; + base: "font=Tizen:style=Roman text_class=tizen font_size=32 color=#ffffff wrap=char"; + tag: "br" "\n"; + tag: "ps" "ps"; + tag: "hilight" "+ font=Tizen:style=Bold text_class=tizen"; + tag: "b" "+ font=Tizen:style=Bold text_class=tizen"; + tag: "whitecolor" "+ color=#ffffff"; + tag: "tab" "\t"; + } + } + +#define CHECK_STATE_DEFAULT 0 +#define CHECK_STATE_VISIBLE 1 +#define CHECK_STATE_DISABLED_VISIBLE 2 +#define CHECK_STATE_DISABLED 3 + +//////////////////////////////////////////////////////////////////////////////// +#define CHECK_STYLE_DEFAULT(style_name, image_bg, image_checking, image_nocheck, min_width, min_height, check_visible) \ + group { name: "elm/check/base/"style_name; \ + images { \ + image: image_bg COMP; \ + image: GALLERY_EDC_IMAGE_CHECK_BG_DIM COMP; \ + image: image_checking COMP; \ + image: image_nocheck COMP; \ + } \ + script { \ + public check_state = CHECK_STATE_DEFAULT; \ + } \ + parts { \ + part { name: "back_bg"; \ + type: RECT; \ + scale: 1; \ + description { state: "default" 0.0; \ + rel2.relative: 1.0 1.0; \ + align: 0 0.5; \ + min: min_width min_height; \ + fixed: 1 1; \ + color: 0 0 0 0; \ + } \ + } \ + part { name: "bg"; \ + mouse_events: 0; \ + scale: 1; \ + description { state: "default" 0.0; \ + min: CHECK_STYLE_DEFAULT_BG_NORMAL_MIN_MAX_INC; \ + max: CHECK_STYLE_DEFAULT_BG_NORMAL_MIN_MAX_INC; \ + fixed: 1 1; \ + rel1.to: "back_bg"; \ + rel2.to: "back_bg"; \ + image.normal: image_bg; \ + fill.smooth : 0; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + image.normal: GALLERY_EDC_IMAGE_CHECK_BG_DIM; \ + fill.smooth : 0; \ + } \ + } \ + part { name: "check"; \ + mouse_events: 0; \ + scale: 1; \ + description { state: "default" 0.0; \ + rel1.to: "bg"; \ + rel2.to: "bg"; \ + visible: check_visible; \ + image.normal: image_nocheck; \ + } \ + description { state: "visible" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + image.normal: image_checking; \ + } \ + description { state: "disabled_visible" 0.0; \ + inherit: "default" 0.0; \ + image.normal: image_checking; \ + visible: 1; \ + } \ + } \ + part { name: "elm.swallow.content"; \ + type: SWALLOW; \ + description { state: "default" 0.0; \ + fixed: 1 0; \ + visible: 0; \ + color: 255 255 255 255; \ + align: 0.0 0.5; \ + rel1 { \ + to_x: "bg"; \ + relative: 1.0 0.0; \ + offset: 1 1; \ + } \ + rel2 { \ + to_x: "bg"; \ + relative: 1.0 1.0; \ + offset: 2 -2; \ + } \ + } \ + description { state: "visible" 0.0; \ + inherit: "default" 0.0; \ + fixed: 1 1; \ + visible: 1; \ + aspect: 1.0 1.0; \ + aspect_preference: VERTICAL; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + color: 128 128 128 128; \ + } \ + description { state: "disabled_visible" 0.0; \ + inherit: "default" 0.0; \ + color: 128 128 128 128; \ + fixed: 1 1; \ + visible: 1; \ + aspect: 1.0 1.0; \ + } \ + } \ + part { name: "elm.text"; \ + type: TEXTBLOCK; \ + mouse_events: 0; \ + scale: 1; \ + description { state: "default" 0.0; \ + visible: 0; \ + fixed: 0 1; \ + rel1 { \ + relative: 1.0 0.5; \ + offset: 1 1; \ + to_x: "elm.swallow.content"; \ + } \ + rel2 { \ + relative: 1.0 0.5; \ + offset: -2 -2; \ + } \ + align: 0.0 0.5; \ + text { \ + style: "check_label_textblock_style"; \ + min: 0 0; \ + } \ + color: CHECK_DEFAULT_TEXT_NORMAL_COLOR_INC; \ + } \ + description { state: "visible" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + text.min: 1 1; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + } \ + description { state: "disabled_visible" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + text.min: 1 1; \ + color: CHECK_DEFAULT_TEXT_DISABLED_COLOR_INC; \ + } \ + } \ + part { name: "events1"; \ + type: RECT; \ + ignore_flags: ON_HOLD; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + } \ + } \ + part { name: "events2"; \ + type: RECT; \ + repeat_events: 1; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + } \ + } \ + part { name: "disabler"; \ + type: RECT; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + visible: 0; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } \ + } \ + programs { \ + program { name: "click"; \ + signal: "mouse,clicked,1"; \ + source: "events1"; \ + action: SIGNAL_EMIT "elm,action,check,toggle" ""; \ + } \ + program { name: "check_on"; \ + signal: "elm,state,check,on"; \ + source: "elm"; \ + script { \ + set_int(check_state, CHECK_STATE_VISIBLE); \ + set_state(PART:"check", "visible", 0.0); \ + } \ + } \ + program { name: "check_off"; \ + signal: "elm,state,check,off"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "check"; \ + script { \ + if (get_int(check_state) == CHECK_STATE_VISIBLE) \ + { \ + set_int(check_state, CHECK_STATE_DEFAULT); \ + set_state(PART:"check", "default", 0.0); \ + } \ + } \ + } \ + program { name: "text_show"; \ + signal: "elm,state,text,visible"; \ + source: "elm"; \ + action: STATE_SET "visible" 0.0; \ + target: "elm.text"; \ + } \ + program { name: "text_hide"; \ + signal: "elm,state,text,hidden"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "elm.text"; \ + } \ + program { name: "icon_show"; \ + signal: "elm,state,icon,visible"; \ + source: "elm"; \ + action: STATE_SET "visible" 0.0; \ + target: "elm.swallow.content"; \ + } \ + program { name: "icon_hide"; \ + signal: "elm,state,icon,hidden"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "elm.swallow.content"; \ + } \ + program { name: "disable"; \ + signal: "elm,state,disabled"; \ + source: "elm"; \ + action: STATE_SET "disabled" 0.0; \ + target: "disabler"; \ + target: "bg"; \ + after: "disable_text"; \ + } \ + program { name: "disable_text"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"elm.text", st, 30, vl); \ + if (!strcmp(st, "visible")) \ + set_state(PART:"elm.text", "disabled_visible", 0.0); \ + else \ + set_state(PART:"elm.text", "disabled", 0.0); \ + get_state(PART:"elm.swallow.content", st, 30, vl); \ + if (!strcmp(st, "visible")) \ + set_state(PART:"elm.swallow.content", "disabled_visible", 0.0); \ + else \ + set_state(PART:"elm.swallow.content", "disabled", 0.0); \ + get_state(PART:"check", st, 30, vl); \ + if (!strcmp(st, "visible")) \ + { \ + set_state(PART:"check", "disabled_visible", 0.0); \ + set_int(check_state, CHECK_STATE_DISABLED_VISIBLE); \ + } \ + } \ + } \ + program { name: "enable"; \ + signal: "elm,state,enabled"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "disabler"; \ + target: "bg"; \ + after: "enable_text"; \ + } \ + program { name: "enable_text"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"elm.text", st, 30, vl); \ + if (!strcmp(st, "disabled_visible")) \ + set_state(PART:"elm.text", "visible", 0.0); \ + else \ + set_state(PART:"elm.text", "default", 0.0); \ + get_state(PART:"elm.swallow.content", st, 30, vl); \ + if (!strcmp(st, "visible")) \ + set_state(PART:"elm.swallow.content", "visible", 0.0); \ + else \ + set_state(PART:"elm.swallow.content", "default", 0.0); \ + get_state(PART:"check", st, 30, vl); \ + if (!strcmp(st, "disabled_visible")) \ + { \ + set_state(PART:"check", "visible", 0.0); \ + set_int(check_state, CHECK_STATE_VISIBLE); \ + } \ + else \ + set_int(check_state, CHECK_STATE_DEFAULT); \ + } \ + } \ + } \ + } + +//////////////////////////////////////////////////////////////////////////////// + CHECK_STYLE_DEFAULT("gallery/default", GALLERY_EDC_IMAGE_CHECK_BG, GALLERY_EDC_IMAGE_CHECK_BG_CHECKING, GALLERY_EDC_IMAGE_CHECK_BG_CHECKING, 42, 42, 0) + +//////////////////////////////////////////////////////////////////////////////// + CHECK_STYLE_DEFAULT("gallery/album", GALLERY_EDC_IMAGE_CHECK_ALBUM_BG, GALLERY_EDC_IMAGE_CHECK_ALBUM_EDIT_CHECKON,GALLERY_EDC_IMAGE_CHECK_ALBUM_BG, 32, 32, 1) + CHECK_STYLE_DEFAULT("gallery/thumbs", GALLERY_EDC_IMAGE_CHECK_ALBUM_BG, GALLERY_EDC_IMAGE_CHECK_ALBUM_EDIT_CHECKON,GALLERY_EDC_IMAGE_CHECK_ALBUM_BG, 32, 32, 1) + +//////////////////////////////////////////////////////////////////////////////// + group { name: "elm/check/base/gallery/album/grid"; + images { + image: GALLERY_EDC_IMAGE_EDIT_EFFECT_BG COMP; + } + parts { + part { name: "bg"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + color: 0 0 0 0; + } + description { state: "pressed" 0.0; + inherit: "default" 0.0; + } + description { state: "disabled" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + part { name: "bg2"; + type: RECT; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + rel1.to: "bg"; + rel2.to: "bg"; + align: 0.5 0.5; + min: 40 40; + max: 40 40; + color: 0 0 0 0; + } + description { state: "pressed" 0.0; + inherit: "default" 0.0; + } + description { state: "disabled" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + part { name: "selected_bg"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + rel1.to: "bg"; + rel2.to: "bg"; + color: 0 0 0 0; + visible: 0; + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + color: 0 0 0 153; + visible: 0; + } + } + + part { name: "check"; + type: RECT; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + rel1.to: "bg2"; + rel2.to: "bg2"; + color: 0 0 0 0; + visible: 0; + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + } + description { state: "pressed" 0.0; + inherit: "default" 0.0; + } + description { state: "disabled_visible" 0.0; + inherit: "default" 0.0; + } + } + part { name: "elm.swallow.content"; + type: SWALLOW; + description { + state: "default" 0.0; + fixed: 1 0; + visible: 0; + color: 255 255 255 255; + align: 0.0 0.5; + rel1 { + to_x: "bg2"; + relative: 1.0 0.0; + offset: 1 1; + } + rel2 { + to_x: "bg2"; + relative: 1.0 1.0; + offset: 2 -2; + } + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + fixed: 1 1; + visible: 1; + aspect: 1.0 1.0; + aspect_preference: VERTICAL; + } + description { state: "disabled" 0.0; + inherit: "default" 0.0; + color: 128 128 128 128; + } + description { state: "disabled_visible" 0.0; + inherit: "default" 0.0; + color: 128 128 128 128; + fixed: 1 1; + visible: 1; + aspect: 1.0 1.0; + } + } + part { name: "elm.text"; + type: TEXTBLOCK; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + visible: 0; + fixed: 0 1; + rel1 { + relative: 1.0 0.5; + offset: 1 1; + to_x: "elm.swallow.content"; + } + rel2 { + relative: 1.0 0.5; + offset: -2 -2; + } + color: 255 255 255 255; + align: 0.0 0.5; + text { + style: "check_label_textblock_style"; + min: 0 0; + } + color: CHECK_DEFAULT_TEXT_NORMAL_COLOR_INC; + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + text.min: 1 1; + } + description { state: "disabled" 0.0; + inherit: "default" 0.0; + } + description { state: "disabled_visible" 0.0; + inherit: "default" 0.0; + visible: 1; + text.min: 1 1; + color: CHECK_DEFAULT_TEXT_DISABLED_COLOR_INC; + } + } + part { name: "events"; + type: RECT; + ignore_flags: ON_HOLD; + description { state: "default" 0.0; + color: 0 0 0 0; + } + } + part { name: "disabler"; + type: RECT; + description { state: "default" 0.0; + color: 0 0 0 0; + visible: 0; + } + description { state: "disabled" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + } + programs { + program { name: "click"; + signal: "mouse,up,1"; + source: "events"; + action: SIGNAL_EMIT "elm,action,check,toggle" ""; + after: "bg_normal"; + } + program { name: "bg_normal"; + script { + set_state(PART:"bg", "default", 0.0); + set_state(PART:"bg2", "default", 0.0); + } + } + program { name: "mouseout"; + signal: "mouse,out"; + source: "events"; + after: "bg_check_normal"; + } + program { name: "bg_check_normal"; + script { + new st[31]; + new Float:vl; + get_state(PART:"check", st, 30, vl); + if (!strcmp(st, "pressed")) + set_state(PART:"check", "visible", 0.0); + set_state(PART:"bg", "default", 0.0); + set_state(PART:"bg2", "default", 0.0); + } + } + program { name: "pressed"; + signal: "mouse,down,1"; + source: "events"; + script { + new st[31]; + new Float:vl; + get_state(PART:"check", st, 30, vl); + if (!strcmp(st, "visible")) + set_state(PART:"check", "pressed", 0.0); + set_state(PART:"bg", "pressed", 0.0); + set_state(PART:"bg2", "pressed", 0.0); + } + } + program { name: "check_on"; + signal: "elm,state,check,on"; + source: "elm"; + action: STATE_SET "visible" 0.0; + target: "check"; + target: "selected_bg"; + } + program { name: "check_off"; + signal: "elm,state,check,off"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "check"; + target: "selected_bg"; + } + program { name: "text_show"; + signal: "elm,state,text,visible"; + source: "elm"; + action: STATE_SET "visible" 0.0; + target: "elm.text"; + } + program { name: "text_hide"; + signal: "elm,state,text,hidden"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "elm.text"; + } + program { name: "icon_show"; + signal: "elm,state,icon,visible"; + source: "elm"; + action: STATE_SET "visible" 0.0; + target: "elm.swallow.content"; + } + program { name: "icon_hide"; + signal: "elm,state,icon,hidden"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "elm.swallow.content"; + } + program { name: "disable"; + signal: "elm,state,disabled"; + source: "elm"; + action: STATE_SET "disabled" 0.0; + target: "disabler"; + target: "bg"; + target: "bg2"; + after: "disable_text"; + } + program { name: "disable_text"; + script { + new st[31]; + new Float:vl; + get_state(PART:"elm.text", st, 30, vl); + if (!strcmp(st, "visible")) + set_state(PART:"elm.text", "disabled_visible", 0.0); + else + set_state(PART:"elm.text", "disabled", 0.0); + get_state(PART:"elm.swallow.content", st, 30, vl); + if (!strcmp(st, "visible")) + set_state(PART:"elm.swallow.content", "disabled_visible", 0.0); + else + set_state(PART:"elm.swallow.content", "disabled", 0.0); + get_state(PART:"check", st, 30, vl); + if (!strcmp(st, "visible")) + set_state(PART:"check", "disabled_visible", 0.0); + } + } + program { name: "enable"; + signal: "elm,state,enabled"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "disabler"; + target: "bg"; + target: "bg2"; + after: "enable_text"; + } + program { name: "enable_text"; + script { + new st[31]; + new Float:vl; + get_state(PART:"elm.text", st, 30, vl); + if (!strcmp(st, "disabled_visible")) + set_state(PART:"elm.text", "visible", 0.0); + else + set_state(PART:"elm.text", "default", 0.0); + get_state(PART:"elm.swallow.content", st, 30, vl); + if (!strcmp(st, "visible")) + set_state(PART:"elm.swallow.content", "visible", 0.0); + else + set_state(PART:"elm.swallow.content", "default", 0.0); + get_state(PART:"check", st, 30, vl); + if (!strcmp(st, "disabled_visible")) + set_state(PART:"check", "visible", 0.0); + } + } + } + } + +#undef CHECK_STATE_DEFAULT +#undef CHECK_STATE_VISIBLE +#undef CHECK_STATE_DISABLED_VISIBLE +#undef CHECK_STATE_DISABLED diff --git a/res/black_theme/edc/gl-ctxpopup.edc b/res/black_theme/edc/gl-ctxpopup.edc new file mode 100755 index 0000000..7693031 --- /dev/null +++ b/res/black_theme/edc/gl-ctxpopup.edc @@ -0,0 +1,1731 @@ +/* +* 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_WIDTH_MIN_INC 386 +#define CTXPOPUP_WIDTH_MAX_INC 692 +#define CTXPOPUP_TEXT_MAX_INC 652 +#define CTXPOPUP_ICON_TEXT_MAX_INC 595 +#define CTXPOPUP_MORE_TEXT_MAX_INC 599 +#define CTXPOPUP_BUBBLE_BG_IMAGE_BORDER 26 26 26 26 +#define CTXPOPUP_BUBBLE_MORE_BG_IMAGE_BORDER 26 26 0 25 +#define CTXPOPUP_BUBBLE_BG_PRESSED_IMAGE_BORDER 8 8 8 8 +#define CTXPOPUP_SHADOW_LEFT_PADDING 14 +#define CTXPOPUP_SHADOW_RIGHT_PADDING 14 +#define CTXPOPUP_SHADOW_TOP_PADDING 14 +#define CTXPOPUP_SHADOW_BOTTOM_PADDING 14 +#define CTXPOPUP_CONTENT_PADDING_WIDTH 1 +#define CTXPOPUP_CONTENT_PADDING_HEIGHT 1 +#define CTXPOPUP_PRESS_PADDING 4 +#define CTXPOPUP_PRESS_PADDING2 3 +#define CTXPOPUP_ARROW_PADDING 1 +#define CTXPOPUP_SCROLLER_PADDING 8 +#define CTXPOPUP_SCROLLER_HORIZONTAL_PADDING 16 +#define CTXPOPUP_SCROLLER_VERTICAL_PADDING 16 +#define CTXPOPUP_SCROLLER_TOP_PADDING 8 +#define CTXPOPUP_SCROLLER_BOTTOM_PADDING 8 +#define CTXPOPUP_SCROLLER_LEFT_PADDING 8 +#define CTXPOPUP_SCROLLER_RIGHT_PADDING 8 +#define CTXPOPUP_SCROLLER_V_MIN_SIZE_INC 9 18 +#define CTXPOPUP_SCROLLER_H_MIN_SIZE_INC 18 9 +#define CTXPOPUP_FRAME_CORNER_ARROW_PADDING 18 +#define CTXPOPUP_ICON_CLIP_DEFAULT_COLOR_INC 255 255 255 255 +#define CTXPOPUP_ICON_CLIP_DIM_COLOR_INC 162 165 174 255 +#define CTXPOPUP_MAIN_TEXT_COLOR_INC 255 255 255 255 +#define CTXPOPUP_MAIN_TEXT_DIM_COLOR_INC 162 165 174 255 +#define CTXPOPUP_MAIN_TEXT_PRESS_COLOR_INC 255 255 255 255 +#define CTXPOPUP_LIST_MAIN_TEXT_COLOR_INC 255 255 255 255 +#define CTXPOPUP_LIST_MAIN_TEXT_DIM_COLOR_INC 162 165 174 255 +#define CTXPOPUP_LIST_MAIN_TEXT_PRESS_COLOR_INC 255 255 255 255 +#define CTXPOPUP_SEPARATOR_PXLINE_SIZE_INC 1 +#define CTXPOPUP_SEPARATOR_PADDING_INC 20 +#define CTXPOPUP_SEPARATOR_COLOR_INC 29 38 60 255 +#define CTXPOPUP_SEPARATOR2_COLOR_INC 86 92 109 255 +#define CTXPOPUP_HORIZONTAL_SEPARATOR_1_COLOR_INC 29 38 60 255 +#define CTXPOPUP_HORIZONTAL_SEPARATOR_2_COLOR_INC 98 102 117 255 +#define CTXPOPUP_HORIZONTAL_SEPARATOR_MIN_SIZE_INC 1 96 +#define CTXPOPUP_HORIZONTAL_SEPARATOR_MAX_SIZE_INC 1 96 +#define CTXPOPUP_ITEM_DISABLED_COLOR 0 0 0 0 +#define CTXPOPUP_LIST_MAIN_TEXT_SIZE_INC 40 +#define CTXPOPUP_LIST_MAIN_TEXT_MAX_SIZE_INC (CTXPOPUP_LIST_MAIN_TEXT_SIZE_INC * 2) +#define CTXPOPUP_MAIN_TEXT_SIZE_INC 32 +#define CTXPOPUP_ITEM_HEIGHT_MIN_INC 110 +#define CTXPOPUP_ITEM_HEIGHT_MAX_INC 130 +#define CTXPOPUP_TEXT_ITEM_HORIZONTAL_WIDTH_INC 128 +#define CTXPOPUP_ICON_ITEM_HORIZONTAL_WIDTH_INC 112 +#define CTXPOPUP_ITEM_HORIZONTAL_HEIGHT_INC 96 +#define CTXPOPUP_ICON_WIDTH_INC 45 +#define CTXPOPUP_ICON_HEIGHT_INC 45 +#define CTXPOPUP_ICON_HORIZONTAL_WIDTH_INC 45 +#define CTXPOPUP_ICON_HORIZONTAL_HEIGHT_INC 45 +#define CTXPOPUP_ARROW_SIZE_INC 36 36 +#define CTXPOPUP_ITEM_TEXT_PADDING_INC 20 +#define CTXPOPUP_ITEM_ICON_PADDING_INC 16 +#define CTXPOPUP_TP_BG_IMAGE_BORDER 8 8 8 8 +#define CTXPOPUP_TP_ARROW_SIZE_INC 27 18 +#define CTXPOPUP_TP_HEIGHT_INC 102 +#define CTXPOPUP_MORE_WIDTH_MIN_INC 412 +#define CTXPOPUP_MORE_WIDTH_MAX_INC 720 +#define CTXPOPUP_MORE_ITEM_PADDING_INC 16 +#define CTXPOPUP_MORE_ITEM_HEIGHT_MIN_INC 110 +#define CTXPOPUP_MORE_ITEM_HEIGHT_MAX_INC 130 +#define CTXPOPUP_MORE_ICON_WIDTH_INC 45 +#define CTXPOPUP_MORE_ICON_HEIGHT_INC 45 +#define CTXPOPUP_MORE_ITEM_TEXT_SIZE_INC 40 +#define CTXPOPUP_MOVE_PAD_INC 40 +#define CTXPOPUP_TOOLBAR_SEGMENTEDCONTROL_WIDTH_MIN_INC 334 +#define CTXPOPUP_TOOLBAR_SEGMENTEDCONTROL_WIDTH_MAX_INC 720 +#define CTXPOPUP_TOOLBAR_SEGMENTEDCONTROL_HEIGHT_MIN_INC 90 +#define CTXPOPUP_TOOLBAR_SEGMENTEDCONTROL_HEIGHT_MAX_INC 130 + + +/////////////////////////////////////////////////////////////////////////////////////// +// +// ctxpopup +// +/////////////////////////////////////////////////////////////////////////////////////// + +#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 + +/////////////////////////////////////////////////////////////////////////////// +sounds { + sample { + name: "touch_sound" RAW; + source: "button-pressed.wav"; + } +} + +/////////////////////////////////////////////////////////////////////////////// +group { + name: "elm/ctxpopup/layout/more_gallery/default"; + max: CTXPOPUP_MORE_WIDTH_MAX_INC ((CTXPOPUP_ITEM_HEIGHT_MIN_INC*7.5)+CTXPOPUP_SHADOW_TOP_PADDING+(CTXPOPUP_SEPARATOR_PXLINE_SIZE_INC*14)+1); + parts { + part { + name:"top_padding"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + min: 0 CTXPOPUP_MOVE_PAD_INC; + 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: SPACER; + scale: 1; + description { + state: "default" 0.0; + min: 0 CTXPOPUP_MOVE_PAD_INC; + 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: SPACER; + scale: 1; + description { + state: "default" 0.0; + min: CTXPOPUP_MOVE_PAD_INC 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: SPACER; + scale: 1; + description { + state: "default" 0.0; + min: CTXPOPUP_MOVE_PAD_INC 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/more_gallery/default"; + inherit: "elm/ctxpopup/layout/more_gallery/default"; + max: CTXPOPUP_MORE_WIDTH_MAX_INC ((CTXPOPUP_ITEM_HEIGHT_MIN_INC*4.5)+CTXPOPUP_SHADOW_TOP_PADDING+(CTXPOPUP_SEPARATOR_PXLINE_SIZE_INC*8)+1); +} +/////////////////////////////////////////////////////////////////////////////// +group { + name: "elm/scroller/base/ctxpopup"; + script { + public sbvis_v, sbvis_h, sbalways_v, sbalways_h, sbvis_timer, edge_timer; + public timer0(val) { + new v; + v = get_int(sbvis_v); + if (v) { + v = get_int(sbalways_v); + if(!v) { + emit("do-hide-vbar", ""); + set_int(sbvis_v, 0); + } + } + v = get_int(sbvis_h); + if (v) { + v = get_int(sbalways_h); + if(!v) { + emit("do-hide-hbar", ""); + set_int(sbvis_h, 0); + } + } + set_int(sbvis_timer, 0); + return 0; + } + public timer2(val) { + emit("do-hide-vshadow", ""); + emit("do-hide-hshadow", ""); + set_int(edge_timer, 0); + return 0; + } + } + images { + GL_RES_IMG(GALLERY_EDC_IMAGE_POPUP_SCROLL_V); + GL_RES_IMG(GALLERY_EDC_IMAGE_POPUP_SCROLL_H); + GL_RES_IMG(GALLERY_EDC_IMAGE_POPUP_OVERSCROLLING_TOP); + GL_RES_IMG(GALLERY_EDC_IMAGE_POPUP_OVERSCROLLING_BOTTOM); + GL_RES_IMG(GALLERY_EDC_IMAGE_POPUP_OVERSCROLLING_RIGHT); + GL_RES_IMG(GALLERY_EDC_IMAGE_POPUP_OVERSCROLLING_LEFT); + } + parts { + part { name: "vshadow_clip"; + type: RECT; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + } + description { state: "hidden" 0.0; + visible: 0; + color: 255 255 255 0; + } + } + part { name: "hshadow_clip"; + type: RECT; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + } + description { state: "hidden" 0.0; + visible: 0; + color: 255 255 255 0; + } + } + part { name: "shadow_top"; + clip_to: "vshadow_clip"; + type: IMAGE; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + min: 0 30; + fixed: 1 1; + align: 0.5 0.0; + color: 255 255 255 100; + rel1.relative: 0.0 0.0; + rel2.relative: 1.0 0.0; + image.normal: "00_popup_overscrolling_top.png"; + image.border: 17 17 0 0; + } + description { state: "edge" 0.0; + inherit: "default" 0.0; + color: 255 255 255 255; + } + description { state: "hidden" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + part { name: "shadow_bottom"; + clip_to: "vshadow_clip"; + type: IMAGE; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + min: 0 30; + fixed: 1 1; + align: 0.5 1.0; + color: 255 255 255 100; + rel1.relative: 0.0 1.0; + rel2.relative: 1.0 1.0; + image.normal: "00_popup_overscrolling_bottom.png"; + image.border: 17 17 0 0; + } + description { state: "edge" 0.0; + inherit: "default" 0.0; + color: 255 255 255 255; + } + description { state: "hidden" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + part { name: "shadow_left"; + clip_to: "hshadow_clip"; + type: IMAGE; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + min: 30 0; + fixed: 1 1; + align: 0.0 0.5; + color: 255 255 255 100; + rel1.relative: 0.0 0.0; + rel2.relative: 0.0 1.0; + image.normal: "00_popup_overscrolling_left.png"; + image.border: 0 0 17 17; + } + description { state: "edge" 0.0; + inherit: "default" 0.0; + color: 255 255 255 255; + } + description { state: "hidden" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + part { name: "shadow_right"; + clip_to: "hshadow_clip"; + type: IMAGE; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + min: 30 0; + fixed: 1 1; + align: 1.0 0.5; + color: 255 255 255 100; + rel1.relative: 1.0 0.0; + rel2.relative: 1.0 1.0; + image.normal: "00_popup_overscrolling_right.png"; + image.border: 0 0 17 17; + } + description { state: "edge" 0.0; + inherit: "default" 0.0; + color: 255 255 255 255; + } + description { state: "hidden" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + part { + name: "clipper"; + type: RECT; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + } + } + part { + name: "elm.swallow.content"; + clip_to: "clipper"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + align: 0.5 0.5; + } + } + part { + name: "sb_vbar_clip_master"; + type: RECT; + mouse_events: 0; + description { + state: "default" 0.0; + } + description { + state: "hidden" 0.0; + visible: 0; + } + } + part { + name: "sb_vbar_clip"; + clip_to:"sb_vbar_clip_master"; + type: RECT; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + align: 0.0 0.0; + rel2{ to:"clipper"; relative: 1.0 1.0;} + } + description { + state: "hidden" 0.0; + visible: 0; + } + } + part { + name: "sb_vbar_padding"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + min: (CTXPOPUP_SCROLLER_PADDING-CTXPOPUP_CONTENT_PADDING_WIDTH) 0; + max: (CTXPOPUP_SCROLLER_PADDING-CTXPOPUP_CONTENT_PADDING_WIDTH) 0; + align: 1.0 0.0; + rel1 { to:"clipper"; relative: 1.0 0.0; } + rel2 { to:"clipper"; relative: 1.0 1.0; } + } + } + part { + name: "sb_vbar_bg"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + align: 1.0 0.0; + rel1 { to_x:"sb_vbar_padding"; to_y:"clipper"; relative: 0.0 0.0; } + rel2 { to_x:"sb_vbar_padding"; to_y:"clipper"; relative: 0.0 1.0; } + } + } + part { + name: "sb_vbar_top_padding"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + min: (CTXPOPUP_SCROLLER_HORIZONTAL_PADDING-CTXPOPUP_CONTENT_PADDING_WIDTH) CTXPOPUP_SCROLLER_TOP_PADDING; + max: (CTXPOPUP_SCROLLER_HORIZONTAL_PADDING-CTXPOPUP_CONTENT_PADDING_WIDTH) CTXPOPUP_SCROLLER_TOP_PADDING; + align: 0.0 0.0; + rel1 { to:"sb_vbar_bg"; relative: 0.0 0.0; } + rel2 { to:"sb_vbar_bg"; relative: 1.0 0.0; } + } + } + part { + name: "sb_vbar_bottom_padding"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + min: (CTXPOPUP_SCROLLER_HORIZONTAL_PADDING-CTXPOPUP_CONTENT_PADDING_WIDTH) CTXPOPUP_SCROLLER_BOTTOM_PADDING; + max: (CTXPOPUP_SCROLLER_HORIZONTAL_PADDING-CTXPOPUP_CONTENT_PADDING_WIDTH) CTXPOPUP_SCROLLER_BOTTOM_PADDING; + align: 0.0 1.0; + rel1 { to:"sb_vbar_bg"; relative: 0.0 1.0; } + rel2 { to:"sb_vbar_bg"; relative: 1.0 1.0; } + } + } + part { + name: "sb_vbar"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + align: 1.0 0.0; + rel1 { to_x:"sb_vbar_bg"; to_y:"sb_vbar_top_padding"; relative: 0.0 1.0; } + rel2 { to_x:"sb_vbar_bg"; to_y:"sb_vbar_bottom_padding"; relative: 1.0 0.0; } + } + } + part { + name: "elm.dragable.vbar"; + clip_to: "sb_vbar_clip"; + mouse_events: 0; + scale: 1; + dragable { + x: 0 0 0; + y: 1 1 0; + confine: "sb_vbar"; + } + description { + state: "default" 0.0; + fixed: 1 1; + min: CTXPOPUP_SCROLLER_V_MIN_SIZE_INC; + rel1 { + relative: 0.5 0.5; + to: "sb_vbar"; + } + rel2 { + relative: 0.5 0.5; + to: "sb_vbar"; + } + image { + normal: GALLERY_EDC_IMAGE_POPUP_SCROLL_V; + border: 0 0 8 8; + border_scale: 1; + } + } + } + part { + name: "sb_hbar_clip_master"; + type: RECT; + mouse_events: 0; + description { + state: "default" 0.0; + } + description { + state: "hidden" 0.0; + visible: 0; + } + } + part { + name: "sb_hbar_clip"; + clip_to: "sb_hbar_clip_master"; + type: RECT; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + align: 0.0 0.0; + rel2{ to:"clipper"; relative: 1.0 1.0;} + } + description { + state: "hidden" 0.0; + visible: 0; + } + } + part { + name: "sb_hbar_padding"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + min: 0 (CTXPOPUP_SCROLLER_PADDING-CTXPOPUP_CONTENT_PADDING_HEIGHT); + max: 0 (CTXPOPUP_SCROLLER_PADDING-CTXPOPUP_CONTENT_PADDING_HEIGHT); + align: 0.0 1.0; + rel1 { to:"clipper"; relative: 0.0 1.0; } + rel2 { to:"clipper"; relative: 1.0 1.0; } + } + } + part { + name: "sb_hbar_bg"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + align: 0.0 1.0; + rel1 {to_x:"clipper"; to_y: "sb_hbar_padding"; relative: 0.0 0.0;} + rel2 {to_x:"clipper"; to_y: "sb_hbar_padding"; relative: 1.0 0.0;} + } + } + part { + name: "sb_hbar_left_padding"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + min: CTXPOPUP_SCROLLER_LEFT_PADDING (CTXPOPUP_SCROLLER_VERTICAL_PADDING-CTXPOPUP_CONTENT_PADDING_HEIGHT); + max: CTXPOPUP_SCROLLER_LEFT_PADDING (CTXPOPUP_SCROLLER_VERTICAL_PADDING-CTXPOPUP_CONTENT_PADDING_HEIGHT); + align: 0.0 1.0; + rel1 { to:"sb_hbar_bg"; relative: 0.0 0.0; } + rel2 { to:"sb_hbar_bg"; relative: 0.0 1.0; } + } + } + part { + name: "sb_hbar_right_padding"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + min: CTXPOPUP_SCROLLER_RIGHT_PADDING (CTXPOPUP_SCROLLER_VERTICAL_PADDING-CTXPOPUP_CONTENT_PADDING_HEIGHT); + max: CTXPOPUP_SCROLLER_RIGHT_PADDING (CTXPOPUP_SCROLLER_VERTICAL_PADDING-CTXPOPUP_CONTENT_PADDING_HEIGHT); + align: 1.0 1.0; + rel1 { to:"sb_hbar_bg"; relative: 1.0 0.0; } + rel2 { to:"sb_hbar_bg"; relative: 1.0 1.0; } + } + } + part { + name: "sb_hbar"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + fixed: 1 1; + align: 0.0 1.0; + rel1 {to_x:"sb_hbar_left_padding"; to_y: "sb_hbar_padding"; relative: 1.0 0.0;} + rel2 {to_x:"sb_hbar_right_padding"; to_y: "sb_hbar_padding"; relative: 0.0 0.0;} + } + } + part { + name: "elm.dragable.hbar"; + clip_to: "sb_hbar_clip"; + mouse_events: 0; + scale: 1; + dragable { + x: 1 1 0; + y: 0 0 0; + confine: "sb_hbar"; + } + description { + state: "default" 0.0; + fixed: 1 1; + min: CTXPOPUP_SCROLLER_H_MIN_SIZE_INC; + rel1 {relative: 0.5 0.5; to: "sb_hbar";} + rel2 {relative: 0.5 0.5; to: "sb_hbar";} + image { + normal: GALLERY_EDC_IMAGE_POPUP_SCROLL_H; + border: 8 8 0 0; + border_scale: 1; + } + } + } + } + programs { + program { + name: "load"; + signal: "load"; + source: ""; + script { + set_state(PART:"sb_vbar_clip", "hidden", 0.0); + set_state(PART:"sb_hbar_clip", "hidden", 0.0); + set_state(PART:"vshadow_clip", "hidden", 0.0); + set_state(PART:"hshadow_clip", "hidden", 0.0); + set_int(sbvis_v, 0); + set_int(sbvis_h, 0); + set_int(sbalways_v, 0); + set_int(sbalways_h, 0); + set_int(sbvis_timer, 0); + set_int(edge_timer, 0); + emit("reload", "elm"); + } + } + program { name: "vshadow_show"; + signal: "do-show-vshadow"; + source: ""; + action: STATE_SET "default" 0.0; + transition: LINEAR 0.5; + target: "vshadow_clip"; + } + program { name: "vshadow_hide"; + signal: "do-hide-vshadow"; + source: ""; + action: STATE_SET "hidden" 0.0; + transition: LINEAR 0.2; + target: "vshadow_clip"; + } + program { name: "hshadow_show"; + signal: "do-show-hshadow"; + source: ""; + action: STATE_SET "default" 0.0; + transition: LINEAR 0.5; + target: "hshadow_clip"; + } + program { name: "hshadow_hide"; + signal: "do-hide-hshadow"; + source: ""; + action: STATE_SET "hidden" 0.0; + transition: LINEAR 0.2; + target: "hshadow_clip"; + } + program { + name: "vbar_show"; + signal: "elm,action,show,vbar"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "sb_vbar_clip_master"; + } + program { + name: "vbar_hide"; + signal: "elm,action,hide,vbar"; + source: "elm"; + action: STATE_SET "hidden" 0.0; + target: "sb_vbar_clip_master"; + } + program { + name: "vbar_show_always"; + signal: "elm,action,show_always,vbar"; + source: "elm"; + script { + new v; + v = get_int(sbalways_v); + if (!v) { + set_int(sbalways_v, 1); + v = get_int(sbvis_v); + if (!v) { + emit("do-show-vbar", ""); + set_int(sbvis_v, 1); + } + } + } + } + program { + name: "vbar_show_notalways"; + signal: "elm,action,show_notalways,vbar"; + source: "elm"; + script { + new v; + v = get_int(sbalways_v); + if (v) { + set_int(sbalways_v, 0); + v = get_int(sbvis_v); + if (!v) { + emit("do-hide-vbar", ""); + set_int(sbvis_v, 0); + } + } + } + } + program { + name: "sb_vbar_show"; + signal: "do-show-vbar"; + source: ""; + action: STATE_SET "default" 0.0; + transition: LINEAR 1.0; + target: "sb_vbar_clip"; + } + program { + name: "sb_vbar_hide"; + signal: "do-hide-vbar"; + source: ""; + action: STATE_SET "hidden" 0.0; + transition: LINEAR 1.0; + target: "sb_vbar_clip"; + } + program { + name: "hbar_show"; + signal: "elm,action,show,hbar"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "sb_hbar_clip_master"; + } + program { + name: "hbar_hide"; + signal: "elm,action,hide,hbar"; + source: "elm"; + action: STATE_SET "hidden" 0.0; + target: "sb_hbar_clip_master"; + } + program { + name: "hbar_show_always"; + signal: "elm,action,show_always,hbar"; + source: "elm"; + script { + new v; + v = get_int(sbalways_h); + if (!v) { + set_int(sbalways_h, 1); + v = get_int(sbvis_h); + if (!v) { + emit("do-show-hbar", ""); + set_int(sbvis_h, 1); + } + } + } + } + program { + name: "hbar_show_notalways"; + signal: "elm,action,show_notalways,hbar"; + source: "elm"; + script { + new v; + v = get_int(sbalways_h); + if (v) { + set_int(sbalways_h, 0); + v = get_int(sbvis_h); + if (!v) { + emit("do-hide-hbar", ""); + set_int(sbvis_h, 0); + } + } + } + } + program { + name: "sb_hbar_show"; + signal: "do-show-hbar"; + source: ""; + action: STATE_SET "default" 0.0; + transition: LINEAR 1.0; + target: "sb_hbar_clip"; + } + program { + name: "sb_hbar_hide"; + signal: "do-hide-hbar"; + source: ""; + action: STATE_SET "hidden" 0.0; + transition: LINEAR 1.0; + target: "sb_hbar_clip"; + } + program { + name: "scroll"; + signal: "elm,action,scroll"; + source: "elm"; + action: STATE_SET "default" 0.0; + script { + new v; + v = get_int(sbvis_v); + v |= get_int(sbalways_v); + if (!v) { + emit("do-show-vbar", ""); + set_int(sbvis_v, 1); + } + v = get_int(sbvis_h); + v |= get_int(sbalways_h); + if(!v) { + emit("do-show-hbar", ""); + set_int(sbvis_h, 1); + } + v = get_int(sbvis_timer); + if (v > 0) cancel_timer(v); + v = timer(2.0, "timer0", 0); + set_int(sbvis_timer, v); + } + } + program { name: "show"; + signal: "show"; + source: ""; + script { + new v; + emit("do-show-vbar", ""); + set_int(sbvis_v, 1); + v = get_int(sbalways_v); + if (!v) { + v = get_int(sbvis_timer); + if (v > 0) cancel_timer(v); + v = timer(1.0, "timer0", 0); + set_int(sbvis_timer, v); + } + emit("do-show-hbar", ""); + set_int(sbvis_h, 1); + v = get_int(sbalways_h); + if (!v) { + v = get_int(sbvis_timer); + if (v > 0) cancel_timer(v); + v = timer(1.0, "timer0", 0); + set_int(sbvis_timer, v); + } + } + } + program { name: "edge_top"; + signal: "elm,edge,top"; + source: "elm"; + script { + set_state(PART:"shadow_top", "edge", 0.0); + set_state(PART:"shadow_bottom", "hidden", 0.0); + } + after: "edge_vertical"; + } + program { name: "edge_bottom"; + signal: "elm,edge,bottom"; + source: "elm"; + script { + set_state(PART:"shadow_top", "hidden", 0.0); + set_state(PART:"shadow_bottom", "edge", 0.0); + } + after: "edge_vertical"; + } + program { name: "edge_left"; + signal: "elm,edge,left"; + source: "elm"; + script { + set_state(PART:"shadow_left", "edge", 0.0); + set_state(PART:"shadow_right", "hidden", 0.0); + } + after: "edge_horizontal"; + } + program { name: "edge_right"; + signal: "elm,edge,right"; + source: "elm"; + script { + set_state(PART:"shadow_left", "hidden", 0.0); + set_state(PART:"shadow_right", "edge", 0.0); + } + after: "edge_horizontal"; + } + program { name: "edge_vertical"; + script { + new v; + v = get_int(edge_timer); + if (!v) { + emit("do-show-vshadow", ""); + } + if (v > 0) cancel_timer(v); + v = timer(0.1, "timer2", 0); + set_int(edge_timer, v); + } + } + program { name: "edge_horizontal"; + script { + new v; + v = get_int(edge_timer); + if (!v) { + emit("do-show-hshadow", ""); + } + if (v > 0) cancel_timer(v); + v = timer(0.1, "timer2", 0); + set_int(edge_timer, v); + } + } + } +} +/////////////////////////////////////////////////////////////////////////////// +group { + name: "elm/scroller/base/more_gallery/default"; + inherit: "elm/scroller/base/ctxpopup"; + GL_RES_IMG(GALLERY_EDC_IMAGE_OS_TOP); + + parts { + part { name: "shadow_top"; + clip_to: "vshadow_clip"; + type: IMAGE; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + min: 0 30; + fixed: 1 1; + align: 0.5 0.0; + color: 255 255 255 100; + rel1.relative: 0.0 0.0; + rel2.relative: 1.0 0.0; + image.normal: GALLERY_EDC_IMAGE_OS_TOP; + image.border: 0 0 0 0; + } + description { state: "edge" 0.0; + inherit: "default" 0.0; + color: 255 255 255 255; + } + description { state: "hidden" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + } +} + +/////////////////////////////////////////////////////////////////////////////// +group { name: "elm/ctxpopup/arrow/more_gallery/default"; } + +/////////////////////////////////////////////////////////////////////////////// +group { + name: "elm/ctxpopup/base/more_gallery/default"; + images { + GL_RES_IMG(GALLERY_EDC_IMAGE_POPUP_DORPDOWN_BG); + } + parts { + part { + name:"frame_shadow_left_top_padding"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + min: CTXPOPUP_SHADOW_LEFT_PADDING 0;//CTXPOPUP_SHADOW_TOP_PADDING; + max: CTXPOPUP_SHADOW_LEFT_PADDING 0;//CTXPOPUP_SHADOW_TOP_PADDING; + rel2 { relative: 0 0; } + align: 0 0; + fixed: 1 1; + } + } + part { + name:"frame_shadow_right_bottom_padding"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + min: CTXPOPUP_SHADOW_RIGHT_PADDING CTXPOPUP_SHADOW_TOP_PADDING; + max: CTXPOPUP_SHADOW_RIGHT_PADDING CTXPOPUP_SHADOW_TOP_PADDING; + rel1{relative: 1 1;} + align: 1 1; + fixed: 1 1; + } + } + part { + name: "frame_bg"; + type: IMAGE; + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + rel1 {to:"frame_shadow_left_top_padding";} + rel2 {to:"frame_shadow_right_bottom_padding";} + min: CTXPOPUP_MORE_WIDTH_MIN_INC 0; + image { + normal: GALLERY_EDC_IMAGE_POPUP_DORPDOWN_BG; + border: CTXPOPUP_BUBBLE_MORE_BG_IMAGE_BORDER; + border_scale: 1; + } + } + } + part { + name:"content_left_top_padding"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + min: CTXPOPUP_CONTENT_PADDING_WIDTH CTXPOPUP_CONTENT_PADDING_HEIGHT; + max: CTXPOPUP_CONTENT_PADDING_WIDTH CTXPOPUP_CONTENT_PADDING_HEIGHT; + rel1 {to:"frame_shadow_left_top_padding"; relative: 1.0 1.0;} + align: 0 0; + fixed: 1 1; + } + } + part { + name:"content_right_bottom_padding"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + min: CTXPOPUP_CONTENT_PADDING_WIDTH 0; + max: CTXPOPUP_CONTENT_PADDING_WIDTH 0; + rel2 {to:"frame_shadow_right_bottom_padding"; relative: 0.0 0.0;} + align: 1 1; + fixed: 1 1; + } + } + part { + name: "elm.swallow.content"; + type: SWALLOW; + description { + state: "default" 0.0; + align: 0 0; + rel1 {to:"content_left_top_padding"; relative: 1.0 1.0;} + rel2 {to:"content_right_bottom_padding"; relative: 0.0 0.0;} + } + } + part { name: "access.outline"; + type: RECT; + repeat_events: 1; + description { state: "default" 0.0; + fixed: 1 1; + rel1.to: "frame_bg"; + rel2.to: "frame_bg"; + color: 0 0 0 0; + } + } + } +} +/////////////////////////////////////////////////////////////////////////////// +group { + name: "elm/ctxpopup/icon_text_style_item/more_gallery/default"; + + images { + GL_RES_IMG(GALLERY_EDC_IMAGE_MORE_POPUP_PRESS); + } + + script { + public mouse_down = 0; + public multi_down = 0; + } + + data.item: "item_max_size" CTXPOPUP_MORE_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_MORE_WIDTH_MIN_INC-CTXPOPUP_SHADOW_LEFT_PADDING-CTXPOPUP_SHADOW_RIGHT_PADDING-CTXPOPUP_CONTENT_PADDING_WIDTH*2-CTXPOPUP_PRESS_PADDING*2) 1; + max: (CTXPOPUP_MORE_WIDTH_MAX_INC-CTXPOPUP_SHADOW_LEFT_PADDING-CTXPOPUP_SHADOW_RIGHT_PADDING-CTXPOPUP_CONTENT_PADDING_WIDTH*2-CTXPOPUP_PRESS_PADDING*2) (CTXPOPUP_MORE_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: GALLERY_EDC_IMAGE_MORE_POPUP_PRESS; + 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"; + type: SPACER; + scale: 1; + description { + state: "default" 0.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"; + type: SPACER; + scale: 1; + description { + state: "default" 0.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"; + type: SPACER; + scale: 1; + description { + state: "default" 0.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"; + type: SPACER; + scale: 1; + description { + state: "default" 0.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: "icon_left_padding"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + min: (CTXPOPUP_MORE_ITEM_PADDING_INC-CTXPOPUP_CONTENT_PADDING_WIDTH) CTXPOPUP_MORE_ITEM_HEIGHT_MIN_INC; + max: (CTXPOPUP_MORE_ITEM_PADDING_INC-CTXPOPUP_CONTENT_PADDING_WIDTH) CTXPOPUP_MORE_ITEM_HEIGHT_MAX_INC; + align: 0 0; + fixed: 1 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; + 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: "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.to: "separator1"; + rel2.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: "elm.swallow.icon"; + type: SWALLOW; + clip_to: "icon_clip"; + scale: 1; + description { + state: "default" 0.0; + min: CTXPOPUP_MORE_ICON_WIDTH_INC CTXPOPUP_MORE_ICON_HEIGHT_INC; + max: CTXPOPUP_MORE_ICON_WIDTH_INC CTXPOPUP_MORE_ICON_HEIGHT_INC; + align: 0 0.5; + aspect: 1.0 1.0; + rel1 { to:"icon_left_padding"; relative: 1 0; } + } + } + part { + name: "icon_clip"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + rel1.to: "elm.swallow.icon"; + rel2.to: "elm.swallow.icon"; + color: CTXPOPUP_ICON_CLIP_DEFAULT_COLOR_INC; + } + description { + state: "disabled" 0.0; + inherit: "default" 0.0; + color: CTXPOPUP_ICON_CLIP_DIM_COLOR_INC; + } + } + part { + name: "icon_right_padding"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + min: CTXPOPUP_MORE_ITEM_PADDING_INC CTXPOPUP_MORE_ITEM_HEIGHT_MIN_INC; + max: CTXPOPUP_MORE_ITEM_PADDING_INC CTXPOPUP_MORE_ITEM_HEIGHT_MAX_INC; + align: 0 0.5; + fixed: 1 1; + rel1 { to:"elm.swallow.icon"; relative: 1 1; } + } + } + part { + name: "elm.text"; + type: TEXT; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + min: 1 (CTXPOPUP_MORE_ITEM_HEIGHT_MIN_INC-CTXPOPUP_PRESS_PADDING*2); + max: CTXPOPUP_MORE_TEXT_MAX_INC CTXPOPUP_MORE_ITEM_HEIGHT_MAX_INC; + align: 0.5 0.5; + rel1 {relative: 1.0 0.0; to_x: "icon_right_padding"; to_y: "bg";} + rel2 {relative: 0.0 1.0; to_x: "text_right_padding"; to_y: "bg";} + color: CTXPOPUP_LIST_MAIN_TEXT_COLOR_INC; + text { + font: "Tizen:style=Regular"; + size: CTXPOPUP_MORE_ITEM_TEXT_SIZE_INC; + size_range: CTXPOPUP_LIST_MAIN_TEXT_SIZE_INC CTXPOPUP_LIST_MAIN_TEXT_MAX_SIZE_INC; + align: 0.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_MORE_TEXT_MAX_INC CTXPOPUP_MORE_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: "text_right_padding"; + type: SPACER; + scale: 1; + description { + state: "default" 0.0; + min: (CTXPOPUP_MORE_ITEM_PADDING_INC-CTXPOPUP_CONTENT_PADDING_WIDTH) CTXPOPUP_MORE_ITEM_HEIGHT_MIN_INC; + max: (CTXPOPUP_MORE_ITEM_PADDING_INC-CTXPOPUP_CONTENT_PADDING_WIDTH) CTXPOPUP_MORE_ITEM_HEIGHT_MAX_INC; + fixed: 1 0; + align: 1.0 0.5; + } + } + 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, "ellipsis_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"; + script { + if (get_int(multi_down) == 0) { + emit("elm,action,click", ""); + run_program(PROGRAM:"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:"icon_clip", "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:"icon_clip", "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 { + if (get_int(multi_down) == 0 && get_int(mouse_down) == 0) { + set_int(mouse_down, 1); + 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 { + if (get_int(mouse_down) == 1) { + set_int(mouse_down, 0); + set_drag(PART:"over2", 0.0, 0.0); + set_state(PART:"bg", "default", 0.0); + } + } + } + program { + name: "multi_down"; + signal: "elm,action,multi,down"; + source: "elm"; + script { + set_int(multi_down, 1); + } + } + program { + name: "multi_up"; + signal: "elm,action,multi,up"; + source: "elm"; + script { + set_int(multi_down, 0); + } + } + } +} diff --git a/res/black_theme/edc/gl-entry.edc b/res/black_theme/edc/gl-entry.edc new file mode 100755 index 0000000..3f9f228 --- /dev/null +++ b/res/black_theme/edc/gl-entry.edc @@ -0,0 +1,711 @@ +/* +* 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: "elm/layout/searchbar/cancel_button" */ + +#define ENTRY_TEXT_SIZE_INC 44 + +#define SEARCHBAR_CANCEL_BUTTON_W_INC 136 +#define SEARCHBAR_CANCEL_BUTTON_WITH_DOUBLE_PADDING_W_INC 166 +#define SEARCHBAR_CANCEL_BUTTON_LEFT_PADDING_INC 10 +#define SEARCHBAR_TOP_PADDING_INC 10 +#define SEARCHBAR_BOTTOM_PADDING_INC 10 +#define SEARCHBAR_HEIGHT_INC 66 +#define SEARCHBAR_LEFT_PADDING_INC 26 +#define SEARCHBAR_RIGHT_PADDING_INC 26 +#define SEARCHBAR_INPUTFIELD_BORDER_INC 12 13 12 13 +#define SEARCHBAR_LEFT_ICON_PADDING_INC 0 // 16 +#define SEARCHBAR_LEFT_PADDING_SEARCHFIELD_INC 16 +#define SEARCHBAR_RIGHT_PADDING_SEARCHFIELD_INC 8 +#define SEARCHBAR_SEARCH_TEXTFIELD_H_INC 60 + +#define EDITFIELD_TITLE_SIZE_INC 32 +#define EDITFIELD_TITLE_COLOR_INC 59 115 182 255 +#define EDITFIELD_GUIDE_TEXT_COLOR_INC 121 131 138 255 +#define EDITFIELD_SEARCHBAR_TOP1_SINGLE_INC 6 +#define EDITFIELD_SEARCHBAR_TOP1_MULTI_INC 10 +#define EDITFIELD_SEARCHBAR_TOP2_INC 10 +#define EDITFIELD_SEARCHBAR_LEFT1_INC 0 +#define EDITFIELD_SEARCHBAR_LEFT2_INC 0 +#define EDITFIELD_SEARCHBAR_RIGHT1_ERASER_SHOW_INC 56 +#define EDITFIELD_SEARCHBAR_RIGHT2_INC 5 +#define EDITFIELD_SEARCHBAR_BOTTOM1_SINGLE_INC 8 +#define EDITFIELD_SEARCHBAR_BOTTOM1_MULTI_INC 2 +#define EDITFIELD_SEARCHBAR_BOTTOM2_SINGLE_INC 16 +#define EDITFIELD_SEARCHBAR_BOTTOM2_MULTI_INC 2 +#define EDITFIELD_SEARCHBAR_BOTTOM3_SINGLE_INC 50 +#define EDITFIELD_SEARCHBAR_BOTTOM3_MULTI_INC 50 +#define EDITFIELD_SEARCHBAR_ERASER_MINW_INC 38 +#define EDITFIELD_SEARCHBAR_ERASER_MINH_INC 38 +#define EDITFIELD_SEARCHBAR_ERASER_EVENT_MINW_INC 38 +#define EDITFIELD_SEARCHBAR_ERASER_EVENT_MINH_INC 50 +#define EDITFIELD_ERASER_DEFAULT_COLOR_INC 128 128 128 255 +#define EDITFIELD_ERASER_PRESSED_COLOR_INC 59 115 182 255 + +group { name: "elm/layout/searchbar/gallery"; + images { + image: GALLERY_EDC_IMAGE_EDITFIELD_CLEAR COMP; + image: GALLERY_EDC_IMAGE_SEARCH_EDIT_FIELD_BG COMP; + image: GALLERY_EDC_IMAGE_SEARCH_EDIT_FIELD_BG_FOCUS COMP; + } + parts { + part { name: "top_padding_rect"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + visible: 0; + min: 0 SEARCHBAR_TOP_PADDING_INC; + fixed: 0 1; + align: 0 0; + rel2.relative: 1.0 0.0; + } + } + part { name: "bottom_padding_rect"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + visible: 0; + min: 0 SEARCHBAR_BOTTOM_PADDING_INC; + fixed: 0 1; + align: 0 1; + rel1.relative: 0.0 1.0; + } + } + part { name: "base_bg"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + visible: 0; + min: 0 SEARCHBAR_HEIGHT_INC; + align: 0 0.5; + fixed: 0 1; + rel1 { + relative: 0.0 1.0; + to: "top_padding_rect"; + } + rel2 { + relative: 1.0 0.0; + to: "bottom_padding_rect"; + } + } + } + part { name: "left_padding_rect"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + visible: 0; + min: SEARCHBAR_LEFT_PADDING_INC 0; + fixed: 1 0; + align: 0 0; + rel2.relative: 0.0 1.0; + } + } + part { name: "right_padding_rect"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + visible: 0; + min: SEARCHBAR_RIGHT_PADDING_INC 0; + fixed: 1 0; + align: 1.0 0.0; + rel1.relative: 1.0 0.0; + } + /*description { state: "in" 0.0; + inherit: "default" 0.0; + min: SEARCHBAR_CANCEL_BUTTON_WITH_DOUBLE_PADDING_W_INC 0; + }*/ + } + part { name: "inputfield_rect"; + type: IMAGE; + scale: 1; + description { state: "default" 0.0; + align: 0.0 0.5; + rel1 { + relative: 1.0 0.0; + to_x: "left_padding_rect"; + to_y: "base_bg"; + } + rel2 { + relative: 0.0 1.0; + to_x: "right_padding_rect"; + to_y: "base_bg"; + } + image { + normal: GALLERY_EDC_IMAGE_SEARCH_EDIT_FIELD_BG; + border: SEARCHBAR_INPUTFIELD_BORDER_INC; + } + } + } + part { + name: "focus_image"; + mouse_events:1; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + image.normal: GALLERY_EDC_IMAGE_SEARCH_EDIT_FIELD_BG_FOCUS; + image.border: SEARCHBAR_INPUTFIELD_BORDER_INC; + image.border_scale: 1; + rel1.to: "inputfield_rect"; + rel2.to: "inputfield_rect"; + } + description { + state: "in" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { name: "right_btn_padding_rect"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + visible: 0; + min: SEARCHBAR_RIGHT_PADDING_INC 0; + fixed: 1 0; + align: 0.0 0.0; + rel1.relative: 1.0 0.0; + rel1.to: "inputfield_rect"; + rel2.relative: 1.0 1.0; + rel2.to: "inputfield_rect"; + } + /*description { state: "in" 0.0; + inherit: "default" 0.0; + min: SEARCHBAR_CANCEL_BUTTON_LEFT_PADDING_INC 0; + }*/ + } + part { name: "left_icon_padding_rect"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + visible: 0; + min: SEARCHBAR_LEFT_ICON_PADDING_INC 0; + fixed: 1 0; + align: 0 0; + rel1.to: "inputfield_rect"; + rel2 { + relative: 0.0 1.0; + to: "inputfield_rect"; + } + } + } + part { name: "left_padding_search_textfield"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + visible: 0; + min: SEARCHBAR_LEFT_PADDING_SEARCHFIELD_INC 0; + fixed: 1 0; + align: 0.0 0.5; + rel1 { + relative: 1.0 0.0; + to_x: "left_icon_padding_rect"; + to_y: "inputfield_rect"; + } + rel2 { + relative: 1.0 1.0; + to_x: "left_icon_padding_rect"; + to_y: "inputfield_rect"; + } + } + } + part { name: "right_padding_search_textfield"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + visible: 0; + min: SEARCHBAR_RIGHT_PADDING_SEARCHFIELD_INC 0; + fixed: 1 0; + align: 1.0 0.5; + rel1 { + relative: 1.0 0.0; + to: "inputfield_rect"; + } + rel2 { + relative: 1.0 1.0; + to: "inputfield_rect"; + } + } + } + part { name: "search_textfield"; + type: RECT; + mouse_events: 1; + scale: 1; + ignore_flags: ON_HOLD; + description { state: "default" 0.0; + visible: 0; + min: 0 SEARCHBAR_SEARCH_TEXTFIELD_H_INC; + fixed: 0 1; + align: 0.0 0.5; + rel1 { + relative: 1.0 0.0; + to: "left_padding_search_textfield"; + } + rel2 { + relative: 0.0 1.0; + to: "right_padding_search_textfield"; + } + } + } + part { name: "button_cancel"; + type: SWALLOW; + mouse_events: 1; + scale: 1; + description { state: "default" 0.0; + fixed: 1 1; + min: SEARCHBAR_CANCEL_BUTTON_W_INC 0; + align: 0.0 0.5; + state: "default" 0.0; + rel1 { + relative: 1.0 1.0; + to_x: "right_btn_padding_rect"; + to_y: "top_padding_rect"; + } + rel2 { + relative: 1.0 0.0; + to_x: "right_btn_padding_rect"; + to_y: "bottom_padding_rect"; + } + } + } + part { name: "top1"; + type: RECT; + scale: 1; + ignore_flags: ON_HOLD; + description { state: "default" 0.0; + visible: 0; + min: 0 EDITFIELD_SEARCHBAR_TOP1_SINGLE_INC; + fixed: 1 1; + rel1 { + relative: 0.0 0.0; + to: "search_textfield"; + } + rel2 { + relative: 1.0 0.0; + to: "search_textfield"; + } + align: 0.5 0; + } + description { state: "elm.text.show" 0.0; + inherit: "default" 0.0; + min: 0 EDITFIELD_SEARCHBAR_TOP1_MULTI_INC; + } + } + part { name: "top2"; + type: RECT; + scale: 1; + ignore_flags: ON_HOLD; + description { state: "default" 0.0; + visible: 0; + min: 0 EDITFIELD_SEARCHBAR_TOP2_INC; + fixed: 1 1; + rel1 { + relative: 0.0 0.0; + to: "search_textfield"; + } + rel2 { + relative: 1.0 0.0; + to: "search_textfield"; + } + align: 0.5 0; + } + } + part { name: "left1"; + type: RECT; + scale: 1; + ignore_flags: ON_HOLD; + description { state: "default" 0.0; + visible: 0; + min: EDITFIELD_SEARCHBAR_LEFT1_INC 0; + fixed: 1 1; + align: 0 0; + rel1 { + relative: 0.0 0.0; + to: "search_textfield"; + } + rel2 { + relative: 0.0 1.0; + to: "search_textfield"; + } + } + } + part { name: "left2"; + type: RECT; + scale: 1; + ignore_flags: ON_HOLD; + description { state: "default" 0.0; + visible: 0; + min: EDITFIELD_SEARCHBAR_LEFT2_INC 0; + fixed: 1 1; + align: 0 0; + rel1 { + relative: 0.0 0.0; + to: "search_textfield"; + } + rel2 { + relative: 0.0 1.0; + to: "search_textfield"; + } + } + } + part { name: "right1"; + type: RECT; + scale: 1; + ignore_flags: ON_HOLD; + description { state: "default" 0.0; + visible: 0; + min: EDITFIELD_SEARCHBAR_RIGHT1_ERASER_SHOW_INC 0; + fixed: 1 1; + align: 1 0; + rel1 { + relative: 1.0 0.0; + to: "search_textfield"; + } + rel2.to: "search_textfield"; + } + } + part { name: "right2"; + type: RECT; + scale: 1; + ignore_flags: ON_HOLD; + description { state: "default" 0.0; + visible: 0; + min: EDITFIELD_SEARCHBAR_RIGHT2_INC 0; + fixed: 1 1; + align: 1 0; + rel1 { + relative: 1.0 0.0; + to: "search_textfield"; + } + rel2.to: "search_textfield"; + } + } + part { name: "bottom1"; + type: RECT; + scale: 1; + ignore_flags: ON_HOLD; + description { state: "default" 0.0; + visible: 0; + min: 0 EDITFIELD_SEARCHBAR_BOTTOM1_SINGLE_INC; + fixed: 1 1; + align: 0 1; + rel1 { + relative: 0.0 1.0; + to: "search_textfield"; + } + rel2.to: "search_textfield"; + } + description { state: "elm.text.show" 0.0; + inherit: "default" 0.0; + min: 0 EDITFIELD_SEARCHBAR_BOTTOM1_MULTI_INC; + } + } + part { name: "bottom2"; + type: RECT; + scale: 1; + ignore_flags: ON_HOLD; + description { state: "default" 0.0; + visible: 0; + min: 0 EDITFIELD_SEARCHBAR_BOTTOM2_SINGLE_INC; + fixed: 0 1; + rel1 { + relative: 0.0 1.0; + to: "search_textfield"; + } + rel2.to: "search_textfield"; + align: 0 1; + } + description { state: "elm.text.show" 0.0; + inherit: "default" 0.0; + min: 0 EDITFIELD_SEARCHBAR_BOTTOM2_MULTI_INC; + } + } + part { name: "bottom3"; + type: RECT; + scale: 1; + ignore_flags: ON_HOLD; + description { state: "default" 0.0; + visible: 0; + min: 0 EDITFIELD_SEARCHBAR_BOTTOM3_SINGLE_INC; + fixed: 0 1; + rel1 { + relative: 0.0 1.0; + to: "search_textfield"; + } + rel2.to: "search_textfield"; + align: 0 1; + } + description { state: "elm.text.show" 0.0; + inherit: "default" 0.0; + min: 0 EDITFIELD_SEARCHBAR_BOTTOM3_MULTI_INC; + } + } + part { name: "elm.text"; + type: TEXT; + scale: 1; + ignore_flags: ON_HOLD; + description { state: "default" 0.0; + visible: 0; + align: 0.0 0.0; + min: 0 34; + fixed: 1 1; + rel1 { + relative: 1.0 1.0; + to_x: "left2"; + to_y: "top2"; + } + rel2 { + relative: 1.0 1.0; + to_x: "left2"; + to_y: "top2"; + } + color: EDITFIELD_TITLE_COLOR_INC; + text { + font: "Tizen:style=Medium"; + size: EDITFIELD_TITLE_SIZE_INC; + min: 1 1; + align: 0.0 0.0; + text_class: "tizen"; + } + } + description { state: "elm.text.show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { name: "elm.guidetext"; + type: TEXT; + scale: 1; + ignore_flags: ON_HOLD; + description { state: "default" 0.0; + align: 0.0 0.0; + fixed: 1 1; + rel1.to: "elm.swallow.content"; + rel2.to: "elm.swallow.content"; + color: EDITFIELD_GUIDE_TEXT_COLOR_INC; + text { + font: "Tizen:style=Roman"; + size: ENTRY_TEXT_SIZE_INC; + min: 0 0; + align: 0.0 0.5; + text_class: "tizen"; + } + } + description { state: "hidden" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + part { + name: "elm.swallow.content"; + type: SWALLOW; + scale: 1; + ignore_flags: ON_HOLD; + description { state: "default" 0.0; + min: 0 40; + rel1 { + relative : 1.0 1.0; + to_x: "left1"; + to_y: "top1"; + } + rel2 { + relative : 0.0 0.0; + to_x: "right1"; + to_y: "bottom1"; + } + align: 0.0 0.5; + } + } + part { name: "eraser_image"; + scale: 1; + clip_to: "eraser_image.clipper"; + description { state: "default" 0.0; + visible: 0; + min: EDITFIELD_SEARCHBAR_ERASER_MINW_INC EDITFIELD_SEARCHBAR_ERASER_MINH_INC; + fixed: 1 1; + align: 1 0.5; + rel1 { + relative: 0.0 0.5; + to_x : "right2"; + } + rel2 { + relative: 0.0 0.5; + to_x : "right2"; + } + image.normal: GALLERY_EDC_IMAGE_EDITFIELD_CLEAR; + } + description { state: "elm.eraser.show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { name: "eraser_image.clipper"; + type: RECT; + description { state: "default" 0.0; + color: 0 0 0 0; + } + description { state: "elm.eraser.show" 0.0; + color: EDITFIELD_ERASER_DEFAULT_COLOR_INC; + } + description { state: "elm.eraser.pressed" 0.0; + color: EDITFIELD_ERASER_PRESSED_COLOR_INC; + } + } + part { name: "eraser"; + type: RECT; + scale: 1; + mouse_events: 1; + description { state: "default" 0.0; + visible: 0; + min: EDITFIELD_SEARCHBAR_ERASER_EVENT_MINW_INC EDITFIELD_SEARCHBAR_ERASER_EVENT_MINH_INC; + fixed: 1 1; + align: 1 0.5; + color: 0 0 0 0; + rel1 { + relative: 0.0 0.5; + to_x : "right2"; + } + rel2 { + relative: 0.0 0.5; + to_x : "right2"; + } + } + description { state: "elm.eraser.show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + } + programs { + program { + name: "guidetext_show"; + signal: "elm,state,guidetext,show"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "elm.guidetext"; + } + program { + name: "guidetext_hide"; + signal: "elm,state,guidetext,hide"; + source: "elm"; + action: STATE_SET "hidden" 0.0; + target: "elm.guidetext"; + } + program { + name: "eraser_show"; + signal: "elm,state,eraser,show"; + source: "elm"; + action: STATE_SET "elm.eraser.show" 0.0; + target: "eraser_image"; + target: "eraser_image.clipper"; + target: "eraser"; + } + program { + name: "eraser_hide"; + signal: "elm,state,eraser,hide"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "eraser_image"; + target: "eraser_image.clipper"; + target: "eraser"; + } + program { + name: "label_show"; + signal: "elm,state,title,show"; + source: "elm"; + action: STATE_SET "elm.text.show" 0.0; + target: "elm.text"; + target: "top1"; + target: "bottom1"; + target: "bottom2"; + target: "bottom3"; + } + program { + name: "label_hide"; + signal: "elm,state,title,hide"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "elm.text"; + target: "top1"; + target: "bottom1"; + target: "bottom2"; + target: "bottom3"; + } + program { + name: "eraser_clicked"; + signal: "mouse,clicked,1"; + source: "eraser"; + action: SIGNAL_EMIT "elm,eraser,clicked" "elm"; + } + program { + name: "bg_clicked"; + signal: "mouse,clicked,1"; + source: "search_textfield"; + action: SIGNAL_EMIT "elm,bg,clicked" "elm"; + } + program { name: "cancel_in"; + signal: "cancel,in"; + source: ""; + action: STATE_SET "in" 0.0; + //target: "right_padding_rect"; + //target: "right_btn_padding_rect"; + target: "focus_image"; + transition: LINEAR 0.3; + } + program { name: "cancel_out"; + signal: "cancel,out"; + source: ""; + action: STATE_SET "default" 0.0; + //target: "right_padding_rect"; + //target: "right_btn_padding_rect"; + target: "focus_image"; + transition: LINEAR 0.3; + } + program { name: "cancel_show"; + signal: "cancel,show"; + source: ""; + action: STATE_SET "in" 0.0; + target: "focus_image"; + target: "right_padding_rect"; + target: "right_btn_padding_rect"; + } + program { name: "cancel_hide"; + signal: "cancel,hide"; + source: ""; + action: STATE_SET "default" 0.0; + target: "focus_image"; + target: "right_padding_rect"; + target: "right_btn_padding_rect"; + } + program { + name: "eraser_pressed"; + signal: "mouse,down,1"; + source: "eraser"; + action: STATE_SET "elm.eraser.pressed" 0.0; + target: "eraser_image.clipper"; + } + program { + name: "eraser_unpressed"; + signal: "mouse,up,1"; + source: "eraser"; + action: STATE_SET "elm.eraser.show" 0.0; + target: "eraser_image.clipper"; + } + GL_GENGRID_SOUND("eraser") + GL_GENGRID_PLARY_SOUND + } +} + diff --git a/res/black_theme/edc/gl-expanded-title.edc b/res/black_theme/edc/gl-expanded-title.edc new file mode 100755 index 0000000..2bdc1e3 --- /dev/null +++ b/res/black_theme/edc/gl-expanded-title.edc @@ -0,0 +1,1222 @@ +/* +* 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 BUTTON_STATE_ENABLED 0 +#define BUTTON_STATE_DISABLED 1 + +#define BUTTON_EDIT_STYLE_BORDER_INC 8 0 5 5 + + sounds { + sample { + name: "touch_sound" AS_IS; + source: GALLERY_EDC_SOUND_TOUCH_30MS; + } + } + +#define NAVIFRAME_TITLE_TEXT_BG_H_INC 88 +#define NAVIFRAME_LANDSCAPE_TITLE_TEXT_BG_H_INC 84 +#define NAVIFRAME_TITLE_BG_IMAGE_BORDER_INC 8 8 2 2 +#define NAVIFRAME_TITLE_H_INC 40 +#define NAVIFRAME_LANDSCAPE_TITLE_H_INC 40 +#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 115 96 +#define NAVIFRAME_LANDSCAPE_TITLE_FUNC_BTN_SIZE_INC 115 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 30 +#define NAVIFRAME_TITLE_FONT_MIN_SIZE_INC 26 +#define NAVIFRAME_LANDSCAPE_TITLE_FONT_SIZE_INC 50 +#define NAVIFRAME_TITLE_SMALL_FONT_SIZE_INC 44 +#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_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_RIGHT_PADDING_INC 10 54 +#define NAVIFRAME_BADGE_TEXT_H_INC 34 +#define NAVIFRAME_BADGE_TEXT_MIN_W_INC 30 +#define NAVIFRAME_BADGE_TEXT_MAX_W_INC 60 +#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_SUBTITLE_TEXT_COLOR_INC 250 250 250 255 +#define NAVIFRAME_SUBTITLE_FONT_SIZE_INC 32 +#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 6 +#define NAVIFRAME_LANDSCAPE_SUBTITLE_TOP_PADDING_H_INC 4 +#define NAVIFRAME_TITLE_TEXT_UNSELECTED_COLOR_INC 153 153 153 255 +#define NAVIFRAME_BADGE_TEXT_COLOR_INC 250 250 250 255; +#define NAVIFRAME_TITLE_BUTTON_DIVIDER_COLOR_INC 255 255 255 82 + + +#define GL_TITLE_DROPDOWN \ + part { name: "dropdown_padding"; \ + type: RECT; \ + scale: 1; \ + mouse_events: 0; \ + description { state: "default" 0.0; \ + align: 0.0 0.0; \ + rel1 { \ + to: "maintitle_text_bg"; \ + relative: 0.0 0.0; \ + } \ + rel2 { \ + to: "maintitle_text_bg"; \ + relative: 0.0 1.0; \ + } \ + min: 6 0; \ + fixed: 1 0; \ + visible: 0; \ + } \ + } \ + part { name: "elm.image.dropdown"; \ + mouse_events: 0; \ + description { state: "default" 0.0; \ + visible: 1; \ + min: 200 30; \ + max: 280 150; \ + 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: GALLERY_EDC_IMAGE_POPUP_DROPDOWN_TITLE_BG; \ + border: 8 8 8 8; \ + border_scale: 1; \ + } \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + image.normal: GALLERY_EDC_IMAGE_POPUP_DROPDOWN_TITLE_BG_PRESS; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + image.normal: GALLERY_EDC_IMAGE_POPUP_DROPDOWN_TITLE_BG; \ + visible: 0; \ + } \ + description { state: "focused" 0.0; \ + inherit: "default" 0.0; \ + image.normal: GALLERY_EDC_IMAGE_POPUP_DROPDOWN_TITLE_BG_PRESS; \ + } \ + description { state: "hide" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } \ + part { name: "focus_image"; \ + scale: 1; \ + mouse_events: 0; \ + repeat_events: 1; \ + description { state: "default" 0.0; \ + min: 54 54; \ + max: 54 54; \ + visible: 0; \ + rel1.to : "elm.image.dropdown"; \ + rel2.to : "elm.image.dropdown"; \ + image { \ + normal: GALLERY_EDC_IMAGE_POPUP_DROPDOWN_TITLE_BG_FOCUS; \ + border: 8 8 8 8; \ + border_scale: 1; \ + } \ + } \ + description { state: "focused" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + description { state: "hide" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } \ + part { name: "left.padding.text"; \ + type: RECT; \ + mouse_events: 0; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + visible: 0; \ + fixed: 1 0; \ + min: 16 54; \ + rel1 { \ + to: "dropdown_padding"; \ + relative: 0.0 0.0; \ + } \ + rel2 { \ + to: "dropdown_padding"; \ + relative: 0.0 1.0; \ + } \ + align: 0.0 0.0; \ + } \ + } \ + part { name: "right.padding.text"; \ + type: RECT; \ + mouse_events: 0; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + visible: 0; \ + fixed: 1 1; \ + min: 12 0; \ + rel1 { \ + to_x: "arrow_icon"; \ + to_y: "elm.text.dropdown"; \ + relative: 1.0 0.0; \ + } \ + rel2 { \ + to_x: "arrow_icon"; \ + to_y: "elm.text.dropdown"; \ + relative: 1.0 1.0; \ + } \ + align: 0.0 0.0; \ + } \ + } \ + part { name: "elm.text.dropdown"; \ + type: TEXT; \ + mouse_events: 0; \ + effect: FAR_SHADOW BOTTOM; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + visible: 1; \ + rel1 { \ + to: "left.padding.text"; \ + relative: 1.0 0.0; \ + } \ + rel2 { \ + to: "left.padding.text"; \ + relative: 1.0 1.0; \ + } \ + min: 30 0; \ + fixed: 1 0; \ + align: 0.0 0.5; \ + color: 250 250 250 255; \ + color2: 0 0 0 192; \ + text { \ + font: "Tizen:style=Regular"; \ + size: 20; \ + min: 1 0; \ + text_class: "tizen"; \ + } \ + } \ + description { state: "visible" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 250 250 250 255; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + description { state: "focused" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 250 250 250 255; \ + } \ + description { state: "hide" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } \ + part { name: "arrow_icon_padding"; \ + scale: 1; \ + mouse_events: 0; \ + type: RECT; \ + description { state: "default" 0.0; \ + min: 6 5; \ + fixed: 1 1; \ + align: 0.0 0.5; \ + rel1 { \ + relative: 1.0 0.0; \ + to: "elm.text.dropdown"; \ + } \ + visible: 0; \ + rel2.to: "elm.text.dropdown"; \ + } \ + } \ + part { name: "arrow_icon_bottom_padding"; \ + scale: 1; \ + mouse_events: 0; \ + type: RECT; \ + description { state: "default" 0.0; \ + min: 18 26; \ + max: 18 26; \ + fixed: 1 1; \ + align: 0.0 1.0; \ + rel1 { \ + relative: 1.0 1.0; \ + to_x: "arrow_icon_padding"; \ + to_y: "elm.text.dropdown"; \ + } \ + rel2 { \ + relative: 1.0 1.0; \ + to_x: "arrow_icon_padding"; \ + to_y: "elm.text.dropdown"; \ + } \ + visible: 0; \ + } \ + } \ + part { name: "arrow_icon"; \ + scale: 1; \ + mouse_events: 0; \ + description { state: "default" 0.0; \ + min: 18 18; \ + max: 18 18; \ + fixed: 1 1; \ + align: 0.0 1.0; \ + rel1 { \ + relative: 1.0 0.0; \ + to_x: "arrow_icon_padding"; \ + to_y: "arrow_icon_bottom_padding"; \ + offset: 0 6; \ + } \ + rel2 { \ + relative: 1.0 0.0; \ + to_x: "arrow_icon_padding"; \ + to_y: "arrow_icon_bottom_padding"; \ + } \ + image.normal: GALLERY_EDC_IMAGE_BUTTON_ICON_ARROW; \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + image.normal: GALLERY_EDC_IMAGE_BUTTON_ICON_ARROW_PRESS; \ + } \ + description { state: "hide" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } \ + part { name: "access.title"; \ + type: RECT; \ + scale: 1; \ + repeat_events: 1; \ + description { state: "default" 0.0; \ + fixed: 1 1; \ + rel1.to: "elm.image.dropdown"; \ + rel2.to: "elm.image.dropdown"; \ + color: 0 0 0 0; \ + } \ + } \ + part { name: "over2"; \ + type: RECT; \ + scale: 1; \ + repeat_events: 1; \ + ignore_flags: ON_HOLD; \ + description { state: "default" 0.0; \ + rel1.to: "elm.image.dropdown"; \ + rel2.to: "elm.image.dropdown"; \ + color: 0 0 0 0; \ + } \ + } \ + part { name: "over3"; \ + type: RECT; \ + scale: 1; \ + repeat_events: 1; \ + description { state: "default" 0.0; \ + rel1.to: "elm.image.dropdown"; \ + rel2.to: "elm.image.dropdown"; \ + color: 0 0 0 0; \ + } \ + } \ + part { name: "disabler"; \ + type: RECT; \ + scale: 1; \ + description { state: "default" 0.0; \ + rel1.to: "elm.image.dropdown"; \ + rel2.to: "elm.image.dropdown"; \ + color: 0 0 0 0; \ + visible: 0; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } + +#define GL_TITLE_DROPDOWN_PGS \ + program { name: "button_click"; \ + signal: "mouse,down,1"; \ + source: "over2"; \ + action: SIGNAL_EMIT "elm,action,press" ""; \ + after: "button_click_anim"; \ + } \ + program { name: "button_click_anim"; \ + action: STATE_SET "clicked" 0.0; \ + target: "elm.image.dropdown"; \ + target: "elm.text.dropdown"; \ + target: "arrow_icon"; \ + } \ + program { name: "button_double_click"; \ + signal: "mouse,down,1,double"; \ + source: "over2"; \ + after: "button_click_anim"; \ + } \ + program { name: "button_unpress"; \ + action: SIGNAL_EMIT "elm,action,unpress" ""; \ + } \ + program { name: "button_mouseout_clicked"; \ + signal: "mouse,up,1"; \ + source: "over3"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"elm.text.dropdown", st, 30, vl); \ + if (!strcmp(st, "clicked") || !strcmp(st, "focused")) \ + { \ + emit("elm,action,default,text,set", ""); \ + set_state(PART:"elm.text.dropdown", "visible", 0.0); \ + } \ + if (get_int(button_state) != BUTTON_STATE_DISABLED) \ + set_state(PART:"elm.image.dropdown", "default", 0.0); \ + set_state(PART:"arrow_icon", "default", 0.0); \ + } \ + after: button_unpress; \ + } \ + program { name: "touch_snd"; \ + signal: "mouse,clicked,1"; \ + source: "over2"; \ + action: PLAY_SAMPLE "touch_sound" 1.0; \ + after: button_unclick3; \ + } \ + program { name: "button_unclick3"; \ + action: SIGNAL_EMIT "elm,action,click" ""; \ + } \ + program { name: "disable"; \ + signal: "elm,state,disabled"; \ + source: "elm"; \ + action: STATE_SET "disabled" 0.0; \ + target: "elm.image.dropdown"; \ + target: "disabler"; \ + after: "disable_text"; \ + } \ + program { name: "disable_text"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"elm.text.dropdown", st, 30, vl); \ + if (!strcmp(st, "visible")) \ + set_state(PART:"elm.text.dropdown", "disabled_visible", 0.0); \ + else \ + set_state(PART:"elm.text.dropdown", "disabled", 0.0); \ + set_int(button_state, BUTTON_STATE_DISABLED); \ + } \ + } \ + program { name: "enable"; \ + signal: "elm,state,enabled"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "elm.image.dropdown"; \ + target: "disabler"; \ + after: "enable_text"; \ + } \ + program { name: "enable_text"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"elm.text.dropdown", st, 30, vl); \ + if (!strcmp(st, "disabled_visible")) \ + set_state(PART:"elm.text.dropdown", "visible", 0.0); \ + else \ + set_state(PART:"elm.text.dropdown", "default", 0.0); \ + set_int(button_state, BUTTON_STATE_ENABLED); \ + } \ + } \ + program { name: "expn_title_show"; \ + signal: "elm,action,dropdown,show"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "elm.image.dropdown"; \ + target: "focus_image"; \ + target: "elm.text.dropdown"; \ + target: "arrow_icon"; \ + target: "elm.text.title"; \ + after: enable; \ + } \ + program { name: "expn_title_hide"; \ + signal: "elm,action,dropdown,hide"; \ + source: "elm"; \ + action: STATE_SET "hide" 0.0; \ + target: "elm.image.dropdown"; \ + target: "focus_image"; \ + target: "elm.text.dropdown"; \ + target: "arrow_icon"; \ + target: "elm.text.title"; \ + after: disable; \ + } \ + program { name: "action_focus"; \ + signal: "elm,action,focus_highlight,show"; \ + source: "elm"; \ + action: STATE_SET "focused" 0.0; \ + target: "focus_image"; \ + } \ + program { name: "action_unfocus"; \ + signal: "elm,action,focus_highlight,hide"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "focus_image"; \ + } + + + +group { + name: "gl_naviframe_expanded_title"; + GL_RES_IMG(GALLERY_EDC_IMAGE_TITLE_BG); + GL_RES_IMG(GALLERY_EDC_IMAGE_POPUP_DROPDOWN_TITLE_BG); + GL_RES_IMG(GALLERY_EDC_IMAGE_POPUP_DROPDOWN_TITLE_BG_PRESS); + GL_RES_IMG(GALLERY_EDC_IMAGE_POPUP_DROPDOWN_TITLE_BG_FOCUS); + GL_RES_IMG(GALLERY_EDC_IMAGE_BUTTON_ICON_ARROW_PRESS); + GL_RES_IMG(GALLERY_EDC_IMAGE_BUTTON_ICON_ARROW); + GL_RES_IMG(GALLERY_EDC_IMAGE_BACK_BUTTON); + + script { + public button_state = BUTTON_STATE_ENABLED; + public landscape = 0; //Landscape mode status + } + + parts { + part { name: "base"; + type: RECT; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + visible: 0; + min: 0 NAVIFRAME_TITLE_H_INC; + rel1 { relative: 0.0 0.0; } + rel2 { relative: 1.0 1.0; } + align: 0.0 0.0; + } + description { state: "landscape" 0.0; + inherit: "default" 0.0; + min: 0 NAVIFRAME_LANDSCAPE_TITLE_H_INC; + } + } + part { name: "title_bg"; + type: IMAGE; + scale: 1; + description { state: "default" 0.0; + min: 0 NAVIFRAME_TITLE_H_INC; + max: -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"; } + image { + normal: GALLERY_EDC_IMAGE_TITLE_BG; + 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; + max: -1 NAVIFRAME_LANDSCAPE_TITLE_H_INC; + } + description { state: "hide" 0.0; + inherit: "default" 0.0; + min: 0 0; + max: 0 0; + fixed: 1 1; + } + } + part { name: "title_right_padding"; + type: RECT; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + min: NAVIFRAME_PADDING_INC; + fixed: 1 0; + align: 1.0 0.0; + rel1 { relative: 1.0 0.0; to: "divider2"; } + rel2 { relative: 1.0 1.0; to: "divider2"; } + visible: 0; + } + 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: RECT; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + min: 10 0; + 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: "title_left_padding2"; + type: RECT; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + min: 26 0; + 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: "title_text_bg"; + type: RECT; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + visible: 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: RECT; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + visible: 0; + rel1 { relative: 0.0 0.0; to: "title_text_bg"; } + rel2 { relative: 0.0 1.0; to_x: "title_right_padding"; to_y: "title_text_bg"; } + } + } + part { name: "maintitle_text_bg2"; + type: RECT; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + visible: 0; + rel1 { relative: 1.0 0.0; to_x: "title_left_padding2"; to_y: "title_text_bg"; } + rel2 { relative: 0.0 1.0; to_x: "title_right_padding"; to_y: "title_text_bg"; } + } + } + part { name: "elm.title.text"; + type: TEXT; + effect: FAR_SHADOW BOTTOM; + scale: 1; + description { state: "default" 0.0; + text { font: "Tizen:style=normal"; + 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: 0 0 0 255; + align: 0.5 0.5; + rel1.to: "title_bg"; + rel2.to: "title_bg"; + visible: 1; + } + description { state: "hide" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + 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: "title_text_bg"; } + rel2 { relative: 0.0 1.0; to: "title_text_bg"; } + fixed: 1 0; + min: NAVIFRAME_PADDING2_INC; + visible: 0; + } + } + part { name: "divider1"; + type: RECT; + scale: 1; + 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; + visible : 0; + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + min: 2 64; + max: 2 64; + visible : 0; + } + } + part { name: "title_left_btn"; + type: SWALLOW; + scale: 1; + 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"; } + visible : 0; + } + description { state: "landscape" 0.0; + inherit: "default" 0.0; + max: NAVIFRAME_LANDSCAPE_TITLE_FUNC_BTN_SIZE_INC; + } + } + part { name: "divider2"; + type: RECT; + scale: 1; + 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; + visible : 0; + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + min: 2 64; + max: 2 64; + visible : 0; + } + } + part { name: "elm.swallow.icon"; + type: SWALLOW; + scale: 1; + 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; + description { state: "default" 0.0; + max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC; + align: 1.0 0.5; + fixed: 1 1; + rel1 { relative: 1.0 0.0; to: "title_bg"; } + rel2 { relative: 1.0 1.0; to: "title_bg"; } + visible : 0; + } + description { state: "landscape" 0.0; + inherit: "default" 0.0; + max: NAVIFRAME_LANDSCAPE_TITLE_FUNC_BTN_SIZE_INC; + } + } + } + programs { + program { name: "title_show"; + signal: "elm,state,title,show"; + source: "elm"; + script { + if (!get_int(landscape)) { + set_state(PART:"base", "default", 0.0); + set_state(PART:"title_bg", "default", 0.0); + } else { + set_state(PART:"base", "landscape", 0.0); + set_state(PART:"title_bg", "landscape", 0.0); + } + } + } + program { + name: "change_to_landscape"; + script { + if (!get_int(landscape)) { + set_state(PART:"base", "landscape", 0.0); + set_state(PART:"title_text_bg", "landscape", 0.0); + set_state(PART:"title_left_btn", "landscape", 0.0); + set_state(PART:"title_right_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); + + set_int(landscape, 1); + } + } + } + program { + name: "change_to_portrait"; + script { + if (get_int(landscape)) { + set_state(PART:"base", "default", 0.0); + set_state(PART:"title_text_bg", "default", 0.0); + set_state(PART:"title_left_btn", "default", 0.0); + set_state(PART:"title_right_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); + + set_int(landscape, 0); + } + } + } + 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"; + } + 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"; + } + + } + } + group { name : "title_bar"; + parts { + part{ name : "bg"; + type: RECT; + description{ + rel1.relative: 0.0 0.0; + rel2.relative: 1.0 1.0; + color: 61 184 203 255; + } + } + part { name: "elm.title.text"; + type: TEXT; + scale: 1; + description { state: "default" 0.0; + text { + size : 20; + align: 0.5 0.5; + } + color: NAVIFRAME_TITLE_TEXT_COLOR_INC; + color3: 0 0 0 255; + align: 0.5 0.5; + rel1.relative: 0.3 0.0; + rel1.to: "bg"; + rel2.relative: 0.7 1.0; + rel2.to: "bg"; + visible: 1; + } + description { state: "hide" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { name: "title_btn_left"; + type: RECT; + mouse_events: 1; + repeat_events: 0; + scale: 1; + description { state: "default" 0.0; + color: 61 184 203 255; + rel1 { relative: 0.0 0.0; to: "bg"; } + rel2 { relative: 0.3 1.0; to: "bg"; } + visible: 0; + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { state: "pressed" 0.0; + inherit: "visible" 0.0; + color: 46 140 154 255; + } + } + part { name: "title_btn_right"; + type: RECT; + mouse_events: 1; + repeat_events: 0; + scale: 1; + description { state: "default" 0.0; + color: 61 184 203 255; + rel1 { relative: 0.7 0.0; to: "bg"; } + rel2 { relative: 1.0 1.0; to: "bg"; } + visible: 0; + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { state: "hidden" 0.0; + inherit: "default" 0.0; + visible: 0; + } + description { state: "pressed" 0.0; + inherit: "visible" 0.0; + color: 46 140 154 255; + } + } + part { name: "title_left_text"; + type: TEXT; + effect: FAR_SHADOW BOTTOM; + scale: 1; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; + rel1.relative: 0.148 0.0; + rel1.to: "title_btn_left"; + rel2.relative: 1.0 1.0; + rel2.to: "title_btn_left"; + visible: 0; + text { + text: "CANCEL"; + size: 20; + align: 0.0 0.5; + } + color: NAVIFRAME_TITLE_TEXT_COLOR_INC; + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { name: "title_right_text"; + type: TEXT; + mouse_events: 1; + repeat_events: 1; + effect: FAR_SHADOW BOTTOM; + scale: 1; + description { + state: "default" 0.0; + rel1.relative: 0.0 0.0; + rel1.to: "title_btn_right"; + rel2.relative: 0.89 1.0; + rel2.to: "title_btn_right"; + visible: 0; + text { + text: "DONE"; + size: 20; + align: 1.0 0.5; + } + color: NAVIFRAME_TITLE_TEXT_COLOR_INC; + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { + name: "elm.swallow.left"; + type: SWALLOW; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; + rel1.relative: 0.0 0.0; + rel1.to: "title_btn_left"; + rel2.relative: 1.0 1.0; + rel2.to: "title_btn_left"; + visible: 0; + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { name: "title_image_btn_left"; + type: RECT; + mouse_events: 1; + repeat_events: 0; + scale: 1; + description { state: "default" 0.0; + color:61 184 203 255; + rel1 { relative: 0.0 0.0; to: "left_image"; } + rel2 { relative: 1.0 1.0; to: "left_image"; } + visible: 0; + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + description { state: "pressed" 0.0; + inherit: "visible" 0.0; + color: 46 140 154 255; + } + } + part { name: "left_image"; + type: RECT; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; + rel1.relative: 0.0 0.0; + rel1.to: "elm.swallow.left"; + rel2.relative: 0.5 1.0; + rel2.to: "elm.swallow.left"; + visible: 0; + color: 0 0 0 0; + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { name: "left_back_image"; + type: IMAGE; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; + rel1.relative: 0.1 0.3; + rel1.to: "elm.swallow.left"; + rel2.relative: 0.3 0.7; + rel2.to: "elm.swallow.left"; + visible: 0; + image.normal: GALLERY_EDC_IMAGE_BACK_BUTTON; + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { + name: "elm.swallow.image.left"; + type: SWALLOW; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; + rel1.relative: 0.0 0.0; + rel1.to: "left_image"; + rel2.relative: 1.0 1.0; + rel2.to: "left_image"; + visible: 0; + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { + name: "elm.swallow.right"; + type: SWALLOW; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; + rel1.relative: 0.0 0.0; + rel1.to: "title_btn_right"; + rel2.relative: 1.0 1.0; + rel2.to: "title_btn_right"; + visible: 0; + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + } + programs{ + program{ + name : "press_left"; + signal: "mouse,down,1"; + source: "title_btn_left"; + action: STATE_SET "pressed" 0.0; + target: "title_btn_left"; + } + program{ + name : "unpress_left"; + signal: "mouse,up,1"; + source: "title_btn_left"; + action: STATE_SET "visible" 0.0; + target: "title_btn_left"; + } + program{ + name : "press_right"; + signal: "mouse,down,1"; + source: "title_btn_right"; + action: STATE_SET "pressed" 0.0; + target: "title_btn_right"; + } + program{ + name : "unpress_right"; + signal: "mouse,up,1"; + source: "title_btn_right"; + action: STATE_SET "visible" 0.0; + target: "title_btn_right"; + } + program{ + name : "press_image_left"; + signal: "mouse,down,1"; + source: "title_image_btn_left"; + action: STATE_SET "pressed" 0.0; + target: "title_image_btn_left"; + } + program{ + name : "unpress_image_left"; + signal: "mouse,up,1"; + source: "title_image_btn_left"; + action: STATE_SET "visible" 0.0; + target: "title_image_btn_left"; + } + program { + name: "button_show"; + signal: "elm,button,state,visible"; + source: "elm"; + script { + set_state(PART:"title_btn_left", "visible", 0.0); + set_state(PART:"title_btn_right", "visible", 0.0); + set_state(PART:"title_left_text", "visible", 0.0); + set_state(PART:"title_right_text", "visible", 0.0); + set_state(PART:"elm.swallow.left", "visible", 0.0); + set_state(PART:"title_image_btn_left", "default", 0.0); + set_state(PART:"left_back_image", "hidden", 0.0); + set_state(PART:"elm.swallow.image.left", "default", 0.0); + set_state(PART:"elm.swallow.right", "visible", 0.0); + } + } + program { + name: "right_button_hide"; + signal: "elm,button,state,hidden"; + source: "elm"; + script { + set_state(PART:"title_btn_right", "hidden", 0.0); + set_state(PART:"title_right_text", "hidden", 0.0); + set_state(PART:"elm.swallow.right", "hidden", 0.0); + } + } + program { + name: "left_button_show"; + signal: "elm,button,state,show"; + source: "elm"; + script { + set_state(PART:"title_image_btn_left", "visible", 0.0); + set_state(PART:"left_back_image", "visible", 0.0); + set_state(PART:"elm.swallow.image.left", "visible", 0.0); + } + } + program { + name: "left_button_hide"; + signal: "elm,button,state,hide"; + source: "elm"; + script { + set_state(PART:"title_image_btn_left", "default", 0.0); + set_state(PART:"left_back_image", "default", 0.0); + set_state(PART:"elm.swallow.image.left", "default", 0.0); + } + } + + program { + name: "button_hide"; + signal: "elm,button,state,default"; + source: "elm"; + script { + set_state(PART:"title_btn_left", "default", 0.0); + set_state(PART:"title_btn_right", "default", 0.0); + set_state(PART:"title_left_text", "default", 0.0); + set_state(PART:"title_right_text", "default", 0.0); + set_state(PART:"elm.swallow.left", "default", 0.0); + set_state(PART:"elm.swallow.right", "default", 0.0); + } + } + } + } + +#undef BUTTON_STATE_ENABLED +#undef BUTTON_STATE_DISABLED + diff --git a/res/black_theme/edc/gl-gengrid-item-albums.edc b/res/black_theme/edc/gl-gengrid-item-albums.edc new file mode 100755 index 0000000..53d184e --- /dev/null +++ b/res/black_theme/edc/gl-gengrid-item-albums.edc @@ -0,0 +1,746 @@ +/* +* 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. +* +*/ + +/* 720/2 */ +#define ALBUM_ITEM_W 360 +/* 720/2 */ +#define ALBUM_ITEM_H 360 + +#define CHECK_GAP_L (0) +#define CHECK_GAP_R (0) +#define CHECK_GAP_T (15) + +#define ALBUM_ICON_GAP_L (0) +#define ALBUM_ICON_GAP_R (0) +#define ALBUM_ICON_GAP_T (0) +#define ALBUM_ICON_GAP_B (0) + +#define ALBUM_ICON_W (ALBUM_ITEM_W-ALBUM_ICON_GAP_L-ALBUM_ICON_GAP_R) +#define ALBUM_ICON_H (ALBUM_ITEM_H-ALBUM_ICON_GAP_T-ALBUM_ICON_GAP_B) + +#define ALBUM_RENAME_R_PAD 2 +#define ALBUM_RENAME_B_PAD 2 + +#define ALBUM_TEXT_BG_W 195 +/* 7 + 31 + 31*/ +#define ALBUM_TEXT_BG_H 70 +#define ALBUM_TEXT_GAP_L 10 +#define ALBUM_TEXT_GAP_R 8 +#define ALBUM_TEXT_GAP_T 6 +#define ALBUM_TEXT_SNS_X 60 +#define ALBUM_TEXT_DATE_H 31 + +#define ALBUM_TYPE_GAP_T 8 + +#define ALBUM_NAME_COLOR_INC 0 0 0 255 +#define ALBUM_COUNT_SHADOW_COLOR_INC 0 0 0 0 + +#define ALBUM_NAME_TEXT_SIZE 18 +#define SPLIT_ALBUM_NAME_TEXT_SIZE 10 + +#define ALBUM_COUNT_COLOR_INC 0 0 0 255 +#define ALBUM_COUNT_TEXT_SIZE 15 + +#define ALBUM_TYPE_ICON_W 48 +#define ALBUM_TYPE_ICON_H 48 + +#define ALBUM_PBAR_W 183 +#define ALBUM_PBAR_H 0 +#define ALBUM_PBAR_GAP_L 6 +#define ALBUM_PBAR_GAP_T 8 + +#define ALBUM_RENAME_BTN_W 63 +#define ALBUM_RENAME_BTN_H 63 + +#define ALBUM_CHECKBOX_W 10 +#define ALBUM_CHECKBOX_H 10 +#define ALBUM_CHECKBOX_GAP_L 6 +#define ALBUM_CHECKBOX_GAP_T (6+4) + +#define PARTS_PADDING_LEFT(param_padding_name, param_padding_size ) \ + part { name: param_padding_name; \ + type: RECT; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + min: param_padding_size 0; \ + fixed: 1 0; \ + visible: 0; \ + rel2.relative: 1.0 0.0; \ + rel2.offset: -35 0; \ + align: 0.0 0.0; \ + } \ + } + +#define PARTS_PADDING_RIGHT(param_padding_name, param_padding_size ) \ + part { name: param_padding_name; \ + type: RECT; \ + scale: 1; \ + description { state: "default" 0.0; \ + min: param_padding_size 0; \ + max: param_padding_size 0; \ + fixed: 1 0; \ + visible: 0; \ + rel1.relative: 1.0 0.0; \ + align: 1.0 0.0; \ + } \ + } +#define PARTS_PADDING_TOP(param_padding_name, param_padding_size ) \ + part { name: param_padding_name; \ + type: RECT; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + min: 0 param_padding_size; \ + fixed: 0 1; \ + visible: 0; \ + rel2.relative: 1.0 0.0; \ + align: 1.0 0.0; \ + } \ + } + +#define GL_ALBUM_BG \ + part { \ + name: "bg"; \ + type: RECT; \ + description { \ + state: "default" 0.0; \ + color: 0 0 0 0; \ + rel1 { relative: 0.0 0.0; } \ + rel2 { relative: 1.0 1.0; } \ + } \ + } +#define GL_ALBUM_BG_IMAGE \ + part { \ + name: "bg_image"; \ + type: IMAGE; \ + description { \ + state: "default" 0.0; \ + visible: 1; \ + rel1 { relative: 0.0 0.0; to:"bg"; } \ + rel2 { relative: 1.0 1.0; to:"bg"; } \ + image.normal: GALLERY_EDC_IMAGE_ALBUM_BG; \ + image.middle: 0; \ + } \ + } + +#define GL_ALBUM_ICON_BG \ + part { name: "icon_bg"; \ + 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; to:"elm.swallow.icon"; } \ + rel2 { relative: 1.0 1.0; to:"elm.swallow.icon"; } \ + } \ + } + +#define GL_ALBUM_ICON \ + part { \ + name: "elm.swallow.icon"; \ + type: SWALLOW; \ + clip_to: "elm.icon.clipper"; \ + mouse_events: 1; \ + description { \ + state: "default" 0.0; \ + rel1.to: "elm.icon.clipper"; \ + rel2.to: "elm.icon.clipper"; \ + } \ + } \ + part { \ + name: "elm.icon.clipper"; \ + type: RECT; \ + description { \ + state: "default" 0.0; \ + rel1 { relative: 0 0; offset: 2 2; to:"bg_image"; } \ + rel2 { relative: 1 270/330; offset: -2 -2; to:"bg_image"; } \ + } \ + } + +#define GL_ALBUM_LABEL_BG \ + part { \ + name: "label_bg"; \ + type: RECT; \ + mouse_events: 1; \ + repeat_events: 1; \ + description { \ + state: "default" 0.0; \ + color: 0 0 0 0; \ + rel1 { relative: 0 270/330; to:"bg_image"; } \ + rel2 { relative: 1 1; to:"bg_image"; } \ + } \ + } + +#define GL_ALBUM_TYPE_ICON \ + part { \ + name: "elm.swallow.type_icon"; \ + type: RECT; \ + mouse_events: 1; \ + repeat_events: 1; \ + description { \ + state: "default" 0.0; \ + align: 0.5 0.5; \ + rel1 { relative: (ALBUM_TEXT_GAP_L+ALBUM_ICON_GAP_L)/ALBUM_ICON_W 0.0; to: "label_bg"; } \ + rel2 { relative: (ALBUM_TYPE_ICON_W+ALBUM_TEXT_GAP_L+ALBUM_ICON_GAP_L)/ALBUM_ICON_W 1.0; to: "label_bg"; } \ + color: 0 0 0 0 ; \ + } \ + } + +#define GL_ALBUM_SD_ICON \ + part { \ + name: "elm.swallow.sd_icon"; \ + type: SWALLOW; \ + mouse_events: 1; \ + repeat_events: 1; \ + description { \ + state: "default" 0.0; \ + align: 0.5 0.5; \ + rel1 { relative: 0.82 0.82; to: "elm.icon.clipper"; } \ + rel2 { relative: 0.98 0.98; to: "elm.icon.clipper"; } \ + } \ + } + +#define GL_ALBUM_COUNT \ + part { \ + name: "elm.pad.right_count"; \ + type: RECT; \ + mouse_events: 1; \ + repeat_events: 1; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + color: 0 0 0 0; \ + rel1 { relative: 1.0 0.0; to: "label_bg"; } \ + rel2 { relative: 1.0 1.0; to: "label_bg"; } \ + min: 20 0; \ + max: 20 0; \ + fixed: 1 0; \ + align: 1.0 0.0; \ + } \ + } \ + part { \ + name: "elm.text.count"; \ + type: TEXT; \ + mouse_events: 1; \ + effect: FAR_SHADOW TOP; \ + repeat_events: 1; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + visible: 1; \ + rel1 { relative: 0.0 0.0; to_x: "elm.pad.right_count"; to_y: "label_bg";} \ + rel2 { relative: 0.0 1.0; to_x: "elm.pad.right_count"; to_y: "label_bg";} \ + min: 10 0; \ + fixed: 1 0; \ + align: 1.0 0.5; \ + color: ALBUM_COUNT_COLOR_INC; \ + color2: ALBUM_COUNT_SHADOW_COLOR_INC; \ + text { \ + font: "Tizen:style=Bold"; \ + text_class: "tizen"; \ + size: ALBUM_COUNT_TEXT_SIZE; \ + min: 1 0; \ + align: 1.0 0.5; \ + } \ + } \ + } + +#define GL_ALBUM_NAME \ + part { \ + name: "elm.text.name"; \ + type: TEXT; \ + mouse_events: 1; \ + repeat_events: 1; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + rel1 { relative: 0.0 1.0; to: "elm.icon.clipper"; } \ + rel2 { relative: 1.0 1.0; offset: 0 48; to: "elm.icon.clipper"; } \ + color: ALBUM_NAME_COLOR_INC; \ + align: 0.5 0.5; \ + text { \ + font: "Tizen:style=Bold"; \ + size: ALBUM_NAME_TEXT_SIZE; \ + align: 0.5 0.5; \ + } \ + } \ + } + +#define GL_ALBUM_PBAR \ + part { \ + name: "elm.swallow.progressbar"; \ + type: SWALLOW; \ + mouse_events: 1; \ + repeat_events: 1; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + align: 0.0 1.0; \ + rel1 { relative: 0.0 (ALBUM_ICON_H-ALBUM_PBAR_H)/ALBUM_ICON_H; to: "elm.swallow.icon"; offset: -1 0; } \ + rel2 { relative: 1.0 1.0; to: "elm.swallow.icon"; offset: -2 0; } \ + } \ + } + +#define GL_ALBUM_CHECK_GRID \ + part { \ + name: "elm.swallow.check_grid"; \ + type: SWALLOW; \ + mouse_events: 1; \ + repeat_events: 1; \ + description { \ + state: "default" 0.0; \ + rel1 { relative: 0.0 0.0; to:"elm.swallow.icon"; } \ + rel2 { relative: 1.0 1.0; to:"elm.swallow.icon"; } \ + } \ + } + +#define GL_ALBUM_CHECK \ + part { \ + name: "elm.swallow.check"; \ + mouse_events: 1; \ + type: SWALLOW; \ + description { \ + state: "default" 0.0; \ + rel1 {relative: 1.0 1.0; to_x: "padding.check.left"; to_y: "padding.check.top"; }\ + rel2 {relative: 1.0 1.0; to_x: "padding.check.right"; to_y: "padding.check.bottom"; }\ + } \ + } + +#define GL_ALBUM_DIM \ + part { \ + name: "elm.swallow.dim"; \ + type: SWALLOW; \ + description { \ + state: "default" 0.0; \ + rel1 { relative: 0.0 0.0; to: "elm.swallow.icon"; } \ + rel2 { relative: 1.0 1.0; to: "elm.swallow.icon"; } \ + } \ + } + +group { + name: "elm/gengrid/item/gallery/albums_view/default"; + + data.item: "texts" "elm.text.date elm.text.count"; + data.item: "contents" "elm.swallow.icon elm.swallow.check elm.swallow.type_icon elm.swallow.sd_icon elm.swallow.progressbar elm.swallow.check_grid elm.swallow.dim elm.text.name.swallow"; + images { + image: GALLERY_EDC_IMAGE_ALBUM_BG COMP; + image: GALLERY_EDC_IMAGE_THUMBS_BG_FOCUS COMP; + } + parts { + PARTS_PADDING_LEFT("padding.check.left", CHECK_GAP_L) + PARTS_PADDING_LEFT("padding.check.right", CHECK_GAP_L+ALBUM_CHECKBOX_W) + PARTS_PADDING_RIGHT("padding.rename.left", CHECK_GAP_R+ALBUM_RENAME_BTN_W) + PARTS_PADDING_RIGHT("padding.rename.right", CHECK_GAP_R) + PARTS_PADDING_TOP("padding.rename.top", CHECK_GAP_T) + PARTS_PADDING_TOP("padding.rename.bottom", CHECK_GAP_T+ALBUM_RENAME_BTN_H) + PARTS_PADDING_TOP("padding.check.top", CHECK_GAP_T) + PARTS_PADDING_TOP("padding.check.bottom", CHECK_GAP_T+ALBUM_CHECKBOX_H) + part { name: "padding.top"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + visible: 1; + min: 0 0; + max: 0 0; + fixed: 1 1; + align: 0.0 0.0; + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 0; + min: 0 0; + max: 0 0; + fixed: 0 1; + rel2 { relative: 1.0 0.0;} + align: 0.0 0.0; + } + } + GL_ALBUM_BG + part { name: "focus_bg"; + type: IMAGE; + mouse_events: 1; + repeat_events: 1; + description { state: "default" 0.0; + visible: 0; + image.normal: GALLERY_EDC_IMAGE_THUMBS_BG_FOCUS; + image.border: 13 13 13 13; + rel1 { relative: 0.0 0.0; to: "bg_image"; } + rel2 { relative: 1.0 270/330; to: "bg_image"; } + } + description { state: "enabled" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { + name: "bg_color"; + type: RECT; + description { + state: "default" 0.0; + rel1.relative: 0 0; + rel1.to : "elm.swallow.icon"; + rel1.offset : 2 2; + rel2.relative: 1 1; + rel2.to : "elm.swallow.icon"; + color: 230 230 230 255; + } + } + GL_ALBUM_BG_IMAGE + GL_ALBUM_ICON_BG + GL_ALBUM_ICON + GL_ALBUM_LABEL_BG + GL_ALBUM_TYPE_ICON + GL_ALBUM_SD_ICON + GL_ALBUM_COUNT + part { + name: "elm.text.name.swallow"; + type: SWALLOW; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; + rel1 { relative: 0.0 1.0; to: "elm.icon.clipper"; } + rel2 { relative: 1.0 1.0; to: "label_bg"; } + color: ALBUM_NAME_COLOR_INC; + align: 0.5 0.5; + } + } + GL_ALBUM_PBAR + + GL_ALBUM_CHECK_GRID + GL_GENGRID_FOCUS_EVENT("elm.swallow.icon"); + GL_ALBUM_CHECK + GL_ALBUM_DIM + } + programs { + program { + name: "show_top_pad"; + signal: "show_top_pad"; + source: "padding.top"; + action: STATE_SET "show" 0.0; + target: "padding.top"; + } + program { + name: "hide_sd_icon"; + signal: "hide_sd_icon"; + source: "elm.swallow.sd_icon"; + action: STATE_SET "default" 0.0; + target: "elm.swallow.sd_icon"; + } + GL_GENGRID_FOCUS("focus_event") + GL_GENGRID_SOUND("focus_event") + GL_GENGRID_SOUND("elm.swallow.check") + GL_GENGRID_PLARY_SOUND + } +} +group { + name: "elm/gengrid/item/gallery/albums_split_view/default"; + + data.item: "texts" "elm.text.date elm.text.badge"; + data.item: "contents" "elm.swallow.icon elm.swallow.delete.count elm.swallow.check_grid elm.swallow.sd_icon elm.text.name.swallow"; + images { + image: GALLERY_EDC_IMAGE_ALBUM_BG COMP; + image: GALLERY_EDC_IMAGE_THUMBS_BG_FOCUS COMP; + image: GALLERY_EDC_IMAGE_BADGE_BG COMP; + } + parts { + part { + name: "bg"; + type: RECT; + description { + state: "default" 0.0; + rel1.relative: 0 0; + rel2.relative: 1 1; + color: 0 0 0 0; + } + } + part { name: "padding.top"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + visible: 1; + min: 0 0; + max: 0 0; + fixed: 1 1; + align: 0.0 0.0; + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 0; + min: 0 0; + max: 0 0; + fixed: 0 1; + rel2 { relative: 1.0 0.0;} + align: 0.0 0.0; + } + } + part { name: "focus_bg"; + type: IMAGE; + mouse_events: 1; + repeat_events: 1; + description { state: "default" 0.0; + visible: 0; + image.normal: GALLERY_EDC_IMAGE_THUMBS_BG_FOCUS; + image.border: 13 13 13 13; + rel1 { relative: 0.0 0.0; to: "bg"; } + rel2 { relative: 1.0 270/330; to: "bg"; } + } + description { state: "enabled" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { + name: "elm.icon.clipper"; + type: RECT; + description { + state: "default" 0.0; + rel1 { relative: 0 0; offset: 4 4; to:"bg"; } + rel2 { relative: 1 270/330; offset: -4 -4; to:"bg"; } + } + } + part { + name: "elm.swallow.icon"; + type: SWALLOW; + clip_to: "elm.icon.clipper"; + mouse_events: 1; + description { + state: "default" 0.0; + rel1.to: "elm.icon.clipper"; + rel2.to: "elm.icon.clipper"; + } + } + part { + name: "elm.swallow.check_grid"; + type: SWALLOW; + clip_to: "elm.icon.clipper"; + mouse_events: 1; + description { + state: "default" 0.0; + rel1.to: "elm.icon.clipper"; + rel2.to: "elm.icon.clipper"; + } + } + part { + name: "elm.text.name.swallow"; + type: SWALLOW; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; + rel1 { relative: 0.0 1.0; to: elm.swallow.icon; } + rel2 { relative: 1.0 1.27; to: elm.swallow.icon; } + color: 0 0 0 0; + align: 0.5 0.5; + } + } + part { + name: "elm.swallow.sd_icon"; + type: SWALLOW; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; + align: 0.5 0.5; + rel1 { relative: 0.78 0.75; to: "elm.swallow.icon"; } + rel2 { relative: 0.98 0.95; to: "elm.swallow.icon"; } + } + } + part { + name: "elm.swallow.delete.count"; + type: SWALLOW; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; + align: 0.5 0.5; + rel1 { relative: 0.75 0.05; to: "elm.icon.clipper"; } + rel2 { relative: 0.95 0.25; to: "elm.icon.clipper"; } + color: 255 0 0 255; + } + } + part { + name: "padding.badge"; + type: RECT; + 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.03; + } + min: 6 2; + fixed: 1 1; + visible: 0; + } + description { + state: "default" 0.10; + inherit: "default" 0.0; + min: 10 10; + } + description { + state: "default" 0.06; + inherit: "default" 0.0; + min: 6 10; + } + description { + state: "default" 0.04; + inherit: "default" 0.0; + min: 4 10; + } + } + part { + name: "elm.image.badge"; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + min: 25 25; + 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: GALLERY_EDC_IMAGE_BADGE_BG; + border_scale: 1; + } + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { + name: "left.padding.text"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + fixed: 1 1; + min: 5 25; + 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: RECT; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + fixed: 1 1; + min: 5 25; + 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: 12 0; + fixed: 1 0; + align: 1.0 0.5; + color: 250 250 250 255; + text { + font: "Tizen:style=Bold"; + size: 12; + min: 1 0; + text_class: "tizen"; + } + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + GL_GENGRID_FOCUS_EVENT("elm.swallow.icon"); + } + programs { + program { + name: "show_top_pad"; + signal: "show_top_pad"; + source: "padding.top"; + action: STATE_SET "show" 0.0; + target: "padding.top"; + } + 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"; + } + GL_GENGRID_FOCUS("focus_event") + GL_GENGRID_SOUND("focus_event") + GL_GENGRID_PLARY_SOUND + } +} diff --git a/res/black_theme/edc/gl-gengrid-item-ctxpopup.edc b/res/black_theme/edc/gl-gengrid-item-ctxpopup.edc new file mode 100755 index 0000000..c823bec --- /dev/null +++ b/res/black_theme/edc/gl-gengrid-item-ctxpopup.edc @@ -0,0 +1,225 @@ +/* +* 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 PLACE_GIRD_ITEM_WIDTH 246 +#define PLACE_GIRD_ITEM_HEIGHT 180 +#define PLACE_GIRD_ITEM_VIDEO_X (PLACE_GIRD_ITEM_WIDTH-30)/(2*PLACE_GIRD_ITEM_WIDTH) +#define PLACE_GIRD_ITEM_VIDEO_Y (PLACE_GIRD_ITEM_HEIGHT-30)/(2*PLACE_GIRD_ITEM_HEIGHT) + +//griditem style used in gridview of ctxpopup if marker clicked +group { + name: "elm/gengrid/item/gallery_map/default"; + data.item: "contents" "elm.swallow.icon"; + parts { + part { + name: "bg"; + type: RECT; + description { + state: "default" 0.0; + color: 0 0 0 0; + visible: 0; + rel1 { relative: 0.0 0.0;} + rel2 { relative: 1.0 1.0;} + } + } + part { + name: "elm.swallow.icon"; + type: SWALLOW; + mouse_events: 1; + description { + state: "default" 0.0; + align: 0.5 0.5; + visible: 1; + rel1 { relative: 2/PLACE_GIRD_ITEM_WIDTH 0.0; to: "bg";} + rel2 { relative: (PLACE_GIRD_ITEM_WIDTH-2)/PLACE_GIRD_ITEM_WIDTH 1.0; to: "bg";} + } + } + GL_GENGRID_OVER("elm.swallow.icon"); + } + programs { + GL_GENGRID_OVER_SOUND("elm.swallow.icon") + GL_GENGRID_PLARY_SOUND + } +} + +group +{ + name: "elm/gengrid/photoframe/map_default_layout"; + images { + image: GALLERY_EDC_IMAGE_PLACES_THUMB_BG COMP; + } + parts { + part { + name: "bg"; + type: RECT; + description { + state: "default" 0.0; + rel1 { relative: 0.0 0.0;} + rel2 { relative: 1.0 1.0;} + color: 0 0 0 0; + } + } + part { + name: "elm.swallow.icon"; + type: SWALLOW; + description { + state: "default" 0.0; + rel1 { relative: 0.0 0.0;} + rel2 { relative: 1.0 1.0;} + } + description { + state: "shrink" 0.0; + rel1 { relative: 0.0 0.0;} + rel2 { relative: 1.0 1.0;} + } + } + } + + programs { + program { + name: "mouse_down_shrink"; + signal: "mouse,down,shrink"; + source: "bg"; + action: STATE_SET "shrink" 0.0; + target: "elm.swallow.icon"; + transition: LINEAR 0.1; + } + program { + name: "mouse_up_expand"; + signal: "mouse,up,expand"; + source: "bg"; + action: STATE_SET "default" 0.0; + target: "elm.swallow.icon"; + transition: LINEAR 0.05; + after: "shrink,expand,done,icon"; + } + + program { + name: "shrink"; + signal: "shrink"; + source: "bg"; + action: STATE_SET "shrink" 0.0; + target: "elm.swallow.icon"; + after: "expand"; + transition: LINEAR 0.1; + } + program { + name: "expand"; + action: STATE_SET "default" 0.0; + target: "elm.swallow.icon"; + transition: LINEAR 0.05; + after: "shrink,expand,done,icon"; + } + program { + name: "shrink,expand,done,icon"; + action: SIGNAL_EMIT "shrink,expand,done" "bg"; + } + } +} + +group +{ + name: "elm/gengrid/photoframe/map_default_layout_video"; + + images { + image: GALLERY_EDC_IMAGE_BUTTON_PLAY COMP; + image: GALLERY_EDC_IMAGE_PLACES_THUMB_BG COMP; + } + + parts { + part { + name: "bg"; + type: RECT; + description { + state: "default" 0.0; + rel1 { relative: 0.0 0.0;} + rel2 { relative: 1.0 1.0;} + color: 0 255 0 0; + } + } + part { + name: "elm.swallow.icon"; + type: SWALLOW; + description { + state: "default" 0.0; + rel1 { relative: 0.0 0.0;} + rel2 { relative: 1.0 1.0;} + } + description { + state: "shrink" 0.0; + rel1 { relative: 0.0 0.0;} + rel2 { relative: 1.0 1.0;} + } + } + part { + name: "elm.swallow.videoicon"; + type: IMAGE; + mouse_events: 0; + repeat_events: 0; + scale: 1; + description { + state: "default" 0.0; + visible: 1; + align: 0.5 0.5; + aspect: 1.0 1.0; + rel1 { relative: PLACE_GIRD_ITEM_VIDEO_X PLACE_GIRD_ITEM_VIDEO_Y;} + rel2 { relative: PLACE_GIRD_ITEM_VIDEO_X+30/PLACE_GIRD_ITEM_WIDTH PLACE_GIRD_ITEM_VIDEO_X+30/PLACE_GIRD_ITEM_HEIGHT;} + image.normal: GALLERY_EDC_IMAGE_BUTTON_PLAY; + } + } + } + programs { + program { + name: "mouse_down_shrink"; + signal: "mouse,down,shrink"; + source: "bg"; + action: STATE_SET "shrink" 0.0; + target: "elm.swallow.icon"; + transition: LINEAR 0.1; + } + program { + name: "mouse_up_expand"; + signal: "mouse,up,expand"; + source: "bg"; + action: STATE_SET "default" 0.0; + target: "elm.swallow.icon"; + transition: LINEAR 0.05; + after: "shrink,expand,done,icon"; + } + + program { + name: "shrink"; + signal: "shrink"; + source: "bg"; + action: STATE_SET "shrink" 0.0; + target: "elm.swallow.icon"; + after: "expand"; + transition: LINEAR 0.1; + } + program { + name: "expand"; + action: STATE_SET "default" 0.0; + target: "elm.swallow.icon"; + transition: LINEAR 0.05; + after: "shrink,expand,done,icon"; + } + program { + name: "shrink,expand,done,icon"; + action: SIGNAL_EMIT "shrink,expand,done" "bg"; + } + } +} + diff --git a/res/black_theme/edc/gl-gengrid-item-thumbview.edc b/res/black_theme/edc/gl-gengrid-item-thumbview.edc new file mode 100755 index 0000000..18e69f0 --- /dev/null +++ b/res/black_theme/edc/gl-gengrid-item-thumbview.edc @@ -0,0 +1,558 @@ +/* +* 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 W 180 +#define H 126 +#define W2 240 +#define H2 168 +#define W3 360 +#define H3 252 +#define GAP_W 3 +#define GAP_H 3 +#define THUMB_CHECK_W 10 +#define THUMB_CHECK_H 10 +#define THUMB_CHECK_BORDER_L 1 +#define THUMB_CHECK_BORDER_T 10 +#define MODE_W 64 +#define MODE_H 64 + +#define BURST_W 16 +#define BURST_H 12 +#define BURST_PAD_R 4 +#define BURST_PAD_L 1 + +/* Favourites icon boundary size */ +#define FAVOR_ICON_W 30 +#define FAVOR_ICON_H 30 + +#define THUMBS_PARTS_PADDING_LEFT(param_padding_name, param_padding_size) \ + part { name: param_padding_name; \ + type: RECT; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + min: param_padding_size 0; \ + fixed: 1 0; \ + visible: 0; \ + rel2.relative: 1.0 0.0; \ + rel2.offset: -35 0; \ + align: 0.0 0.0; \ + } \ + } + +#define THUMBS_PARTS_PADDING_TOP(param_padding_name, param_padding_size) \ + part { name: param_padding_name; \ + type: RECT; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + min: 0 param_padding_size; \ + fixed: 0 1; \ + visible: 0; \ + rel2.relative: 1.0 0.0; \ + align: 1.0 0.0; \ + } \ + } + +#define PARTS_PADDING_BOT(param_padding_name, param_padding_size) \ + part { name: param_padding_name; \ + type: RECT; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + min: 0 param_padding_size; \ + fixed: 0 1; \ + visible: 0; \ + rel1.relative: 0.0 1.0; \ + align: 0.0 1.0; \ + } \ + } + +#define GL_GRID_PART_ICON_SIZE(w, h) \ + part { \ + name: "elm.swallow.icon"; \ + type: SWALLOW; \ + clip_to: "elm.icon.clipper"; \ + description { \ + state: "default" 0.0; \ + rel1.to: "elm.icon.clipper"; \ + rel2.to: "elm.icon.clipper"; \ + } \ + } \ + part { \ + name: "elm.icon.clipper"; \ + type: RECT; \ + description { \ + state: "default" 0.0; \ + rel1 { relative: GAP_W/w GAP_H/h;} \ + rel2 { relative: (w-GAP_W)/w (h-GAP_H)/h;} \ + } \ + } + +#define GL_GRID_PART_ICON GL_GRID_PART_ICON_SIZE(W, H) + +#define GL_GRID_PART_BG \ + part { \ + name: "bg"; \ + type: RECT; \ + description { \ + state: "default" 0.0; \ + color: 0 0 0 0; \ + } \ + } + +group { + name: "elm/gengrid/item/gallery/thumbnail_view/default"; + data.item: "contents" "elm.swallow.icon elm.swallow.mode elm.swallow.check elm_image_open_icon_swallow elm_image_open_icon_swallow_blocker"; + images { + image : GALLERY_EDC_IMAGE_THUMBS_BG_FOCUS COMP; + image: GALLERY_EDC_DELETE_SHOW_IMAGE_BG COMP; + image: GALLERY_EDC_DELETE_SHOW_IMAGE COMP; + image: GALLERY_EDC_SD_CARD_ICON COMP; + } + + parts { + THUMBS_PARTS_PADDING_LEFT("padding.end.left", THUMB_CHECK_BORDER_L); + THUMBS_PARTS_PADDING_LEFT("padding.end.right", THUMB_CHECK_BORDER_L+THUMB_CHECK_W); + THUMBS_PARTS_PADDING_TOP("padding.end.top", THUMB_CHECK_BORDER_T); + THUMBS_PARTS_PADDING_TOP("padding.end.bottom", THUMB_CHECK_BORDER_T+THUMB_CHECK_H); + THUMBS_PARTS_PADDING_LEFT("padding.end.left2", GAP_W); + THUMBS_PARTS_PADDING_LEFT("padding.end.right2", GAP_W+MODE_W); + PARTS_PADDING_BOT("padding.end.top2", GAP_H+MODE_H); + PARTS_PADDING_BOT("padding.end.bottom2", GAP_H); + GL_GRID_PART_BG + part { + name: "icon_bg"; + type: RECT; + scale : 1; + description { + state: "default" 0.0; + align: 0.5 0.5; + visible: 0; + color: 0 0 0 0; + } + } + part { + name: "icon_bg_color"; + type: RECT; + scale : 1; + description { + state: "default" 0.0; + align: 0.5 0.5; + visible: 1; + rel1.to : "elm.swallow.icon"; + rel1.offset : 2 2; + rel2.to : "elm.swallow.icon"; + color: 230 230 230 255; + } + } + part { + name: "elm.swallow.icon"; + type: SWALLOW; + mouse_events: 1; + description { + state: "default" 0.0; + color: 0 0 0 0; + } + } + part { + name: "elm.swallow.mode"; + type: SWALLOW; + repeat_events: 1; + description { + state: "default" 0.0; + rel1 {relative: 1.0 0.0; to_x: "padding.end.left2"; to_y: "padding.end.top2"; } + rel2 {relative: 1.0 0.0; to_x: "padding.end.right2"; to_y: "padding.end.bottom2"; } + } + } + GL_GENGRID_FOCUS_BG + part { + name: "elm.swallow.check"; + type: SWALLOW; + description { + state: "default" 0.0; + rel1 {relative: 1.0 1.0; to_x: "padding.end.left"; to_y: "padding.end.top"; } + rel2 {relative: 1.0 1.0; to_x: "padding.end.right"; to_y: "padding.end.bottom"; } + } + } + part { + name: "sd_card_icon_rect"; + type: RECT; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; + visible: 1; + rel1 {relative: 1 1; offset: -42 -42; to: bg; } + rel2 {relative: 1 1; offset: -8 -8; to: bg; } + min: 36 36; + max: 36 36; + color: 0 0 0 0; + } + } + part { + name: "sd_card_icon_img"; + type: IMAGE; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; + visible: 0; + rel1 {relative: 0 0; to: sd_card_icon_rect; } + rel2 {relative: 1 1; to: sd_card_icon_rect; } + image.normal: GALLERY_EDC_SD_CARD_ICON; + } + description { + state: "show" 0.0; + visible: 1; + rel1 {relative: 0 0; to: sd_card_icon_rect; } + rel2 {relative: 1 1; to: sd_card_icon_rect; } + image.normal: GALLERY_EDC_SD_CARD_ICON; + } + } + part { + name: "elm_image_open_icon_rect"; + type: RECT; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; + visible: 1; + rel1 {relative: 0 1; offset: 8 -42; to: bg; } + rel2 {relative: 0 1; offset: 42 -8; to: bg; } + min: 36 36; + max: 36 36; + color: 0 0 0 0; + } + } + part { + name: "elm_image_open_icon_bg"; + type: IMAGE; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; + visible: 0; + rel1 {relative: 0 0; to: elm_image_open_icon_rect; } + rel2 {relative: 1 1; to: elm_image_open_icon_rect; } + image.normal: GALLERY_EDC_DELETE_SHOW_IMAGE_BG; + color : 0 0 0 100; + } + description { + state: "show" 0.0; + visible: 1; + rel1 {relative: 0 0; to: elm_image_open_icon_rect; } + rel2 {relative: 1 1; to: elm_image_open_icon_rect; } + image.normal: GALLERY_EDC_DELETE_SHOW_IMAGE_BG; + color : 0 0 0 100; + } + } + part { + name: "elm_image_open_icon_image"; + type: IMAGE; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; + visible: 0; + rel1 {relative: 0 0; to: elm_image_open_icon_rect; } + rel2 {relative: 1 1; to: elm_image_open_icon_rect; } + image.normal: GALLERY_EDC_DELETE_SHOW_IMAGE; + } + description { + state: "show" 0.0; + visible: 1; + rel1 {relative: 0 0; to: elm_image_open_icon_rect; } + rel2 {relative: 1 1; to: elm_image_open_icon_rect; } + image.normal: GALLERY_EDC_DELETE_SHOW_IMAGE; + } + } + part { + name: "elm_image_open_icon_swallow_blocker"; + type: SWALLOW; + mouse_events: 1; + repeat_events : 0; + description { + state: "default" 0.0; + visible: 1; + rel1 {relative: 0 0.55; to: bg; } + rel2 {relative: 0.45 1.0; to: bg; } + } + } + part { + name: "elm_image_open_icon_swallow"; + type: SWALLOW; + mouse_events: 1; + repeat_events : 0; + description { + state: "default" 0.0; + visible: 1; + rel1 {relative: 0 0.55; to: bg; } + rel2 {relative: 0.45 1.0; to: bg; } + } + } + } + programs { + GL_GENGRID_FOCUS("elm.swallow.icon") + GL_GENGRID_SOUND("elm.swallow.check") + GL_GENGRID_SOUND("elm.swallow.icon") + GL_GENGRID_SOUND("elm_image_open_icon_swallow") + GL_GENGRID_PLARY_SOUND + program { + name: "show_image"; + signal: "show_image_icon"; + source: "elm_image_open_icon_rect"; + action: STATE_SET "show" 0.0; + target: "elm_image_open_icon_bg"; + target: "elm_image_open_icon_image"; + } + program { + name: "hide_image"; + signal: "hide_image_icon"; + source: "elm_image_open_icon_rect"; + action: STATE_SET "default" 0.0; + target: "elm_image_open_icon_bg"; + target: "elm_image_open_icon_image"; + } + program { + name: "show_sd_icon"; + signal: "show_sd_card_icon"; + source: "sd_card_icon_img"; + action: STATE_SET "show" 0.0; + target: "sd_card_icon_img"; + } + program { + name: "hide_sd_icon"; + signal: "hide_sd_card_icon"; + source: "sd_card_icon_img"; + action: STATE_SET "default" 0.0; + target: "sd_card_icon_img"; + } + } +} + +group { + name: "elm/gengrid/item/gallery/date_view/default"; + + data.item: "texts" "year month"; + + parts { + GL_GRID_PART_BG + part { + name: "year"; + type: TEXT; + scale : 1; + description { + state: "default" 0.0; + color: 88 88 88 255; + rel1 { relative: 0.0 0.0;} + rel2 { relative: 1.0 24/127;} + text { + font: "Tizen:style=Regular"; + text_class: "tizen"; + size: 24; + align: 1.0 0.5; + } + } + } + + part { + name: "month"; + type: TEXT; + scale : 1; + description { + state: "default" 0.0; + color: 88 88 88 255; + rel1 { relative: 0.0 1.0; to: "year"; } + rel2 { relative: 1.0 48/127; to_x: "year"; } + text { + font: "Tizen:style=Bold"; + text_class: "tizen"; + size: 26; + align: 1.0 0.5; + } + } + } + } +} + +#define GL_GENGRID_PHOTOFRAME_DEFAULT(NAME, w, h) \ +group \ +{ \ + name: "elm/gengrid/photoframe/"NAME; \ + parts { \ + GL_GRID_PART_BG \ + GL_GRID_PART_ICON_SIZE(w, h) \ + } \ +} + +GL_GENGRID_PHOTOFRAME_DEFAULT("layout", W, H) +GL_GENGRID_PHOTOFRAME_DEFAULT("layout2", W2, H2) +GL_GENGRID_PHOTOFRAME_DEFAULT("layout3", W3, H3) + +#define GL_GENGRID_BURSTSHOT(icon_name, w, h, n, p1x, p1y, p2x, p2y) \ + part { \ + name: icon_name".bg"; \ + type: IMAGE; \ + description { \ + state: "default" 0.0; \ + rel1 { relative: (GAP_W+n*BURST_W)/w (GAP_H+n*BURST_H)/h;} \ + rel2 { relative: (w-GAP_W-(2-n)*BURST_W)/w (h-GAP_H-(2-n)*BURST_H)/h;} \ + image {normal: GALLERY_EDC_IMAGE_BUSTSHOT; border: 5 5 5 5;} \ + } \ + } \ + part { \ + name: icon_name".bg2"; \ + type: RECT; \ + description { \ + state: "default" 0.0; \ + color: GALLERY_EDC_COLOR_BG; \ + rel1 { relative: 0.0 0.0; to: icon_name".clipper"; } \ + rel2 { relative: 1.0 1.0; to: icon_name".clipper"; } \ + } \ + } \ + part { \ + name: icon_name".bg3"; \ + type: RECT; \ + description { \ + state: "default" 0.0; \ + color: 0 0 0 45; \ + rel1 { relative: 0.0 0.0; to: icon_name".clipper"; } \ + rel2 { relative: 1.0 1.0; to: icon_name".clipper"; } \ + } \ + } \ + part { \ + name: icon_name; \ + type: SWALLOW; \ + clip_to: icon_name".clipper"; \ + description { \ + state: "default" 0.0; \ + rel1.to: icon_name".clipper"; \ + rel2.to: icon_name".clipper"; \ + } \ + } \ + part { \ + name: icon_name".clipper"; \ + type: RECT; \ + description { \ + state: "default" 0.0; \ + align: 1.0 1.0; \ + rel1 { relative: p1x/(w-2*GAP_W-2*BURST_W) p1y/(h-2*GAP_H-2*BURST_H); to: icon_name".bg"; } \ + rel2 { relative: (w-2*GAP_W-2*BURST_W-p2x)/(w-2*GAP_W-2*BURST_W) (h-2*GAP_H-2*BURST_H-p2y)/(h-2*GAP_H-2*BURST_H); to: icon_name".bg"; } \ + } \ + } + +group { + name: "elm/gengrid/photoframe/burstshot2"; + images { + image: GALLERY_EDC_IMAGE_BUSTSHOT COMP; + } + parts { + GL_GRID_PART_BG + GL_GENGRID_BURSTSHOT("elm.swallow.icon3", W3, H3, 2, (BURST_PAD_L+0.5), BURST_PAD_L, (BURST_PAD_R+0.5), BURST_PAD_R) + GL_GENGRID_BURSTSHOT("elm.swallow.icon2", W3, H3, 1, (BURST_PAD_L+1.0), BURST_PAD_L, BURST_PAD_R, BURST_PAD_R) + GL_GENGRID_BURSTSHOT("elm.swallow.icon1", W3, H3, 0, (BURST_PAD_L+0.5), BURST_PAD_L, (BURST_PAD_R+0.5), BURST_PAD_R) + } +} + +group { + name: "elm/gengrid/photoframe/burstshot1"; + images { + image: GALLERY_EDC_IMAGE_BUSTSHOT COMP; + } + parts { + GL_GRID_PART_BG + GL_GENGRID_BURSTSHOT("elm.swallow.icon3", W2, H2, 2, (BURST_PAD_L+0.5), BURST_PAD_L, BURST_PAD_R, BURST_PAD_R) + GL_GENGRID_BURSTSHOT("elm.swallow.icon2", W2, H2, 1, (BURST_PAD_L+1.0), BURST_PAD_L, BURST_PAD_R, BURST_PAD_R) + GL_GENGRID_BURSTSHOT("elm.swallow.icon1", W2, H2, 0, (BURST_PAD_L+0.5), BURST_PAD_L, BURST_PAD_R, BURST_PAD_R) + } +} + +group { + name: "elm/gengrid/photoframe/burstshot"; + images { + image: GALLERY_EDC_IMAGE_BUSTSHOT COMP; + } + parts { + GL_GRID_PART_BG + GL_GENGRID_BURSTSHOT("elm.swallow.icon3", W, H, 2, (BURST_PAD_L+0.5), BURST_PAD_L, (BURST_PAD_R+0.5), BURST_PAD_R) + GL_GENGRID_BURSTSHOT("elm.swallow.icon2", W, H, 1, (BURST_PAD_L+1.0), BURST_PAD_L, BURST_PAD_R, BURST_PAD_R) + GL_GENGRID_BURSTSHOT("elm.swallow.icon1", W, H, 0, (BURST_PAD_L+0.5), BURST_PAD_L, (BURST_PAD_R+0.5), BURST_PAD_R) + } +} + + +#define GL_GENGRID_PHOTOFRAME_VIDEO(NAME, w, h, time_h) \ +group \ +{ \ + name: "elm/gengrid/photoframe/"NAME; \ + images { \ + image: GALLERY_EDC_IMAGE_BUTTON_VIDEO_PLAY COMP; \ + } \ + parts { \ + part { \ + name: "bg"; \ + type: RECT; \ + mouse_events: 1; \ + description { \ + state: "default" 0.0; \ + rel1 { relative: 0.0 0.0;} \ + rel2 { relative: 1.0 1.0;} \ + color: 0 0 0 0; \ + } \ + } \ + part { \ + name: "elm.swallow.icon"; \ + type: SWALLOW; \ + clip_to: "elm.icon.clipper"; \ + description { \ + state: "default" 0.0; \ + rel1.to: "elm.icon.clipper"; \ + rel2.to: "elm.icon.clipper"; \ + } \ + } \ + part { \ + name: "elm.icon.clipper"; \ + type: RECT; \ + description { \ + state: "default" 0.0; \ + rel1 { relative: GAP_W/w GAP_H/h;} \ + rel2 { relative: (w-GAP_W)/w (h-GAP_H)/h;} \ + } \ + } \ + part { \ + name: "elm.swallow.videoicon"; \ + type: IMAGE; \ + mouse_events: 0; \ + repeat_events: 0; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + min: 24 24; \ + max: 48 48; \ + align: 0.5 0.5; \ + aspect: 1.0 1.0; \ + image.normal: GALLERY_EDC_IMAGE_BUTTON_VIDEO_PLAY; \ + } \ + } \ + } \ +} + +GL_GENGRID_PHOTOFRAME_VIDEO("video", W, H, 20.5) +GL_GENGRID_PHOTOFRAME_VIDEO("video2", W2, H2, 27.3) +GL_GENGRID_PHOTOFRAME_VIDEO("video3", W3, H3, 41) + diff --git a/res/black_theme/edc/gl-gengrid.edc b/res/black_theme/edc/gl-gengrid.edc new file mode 100644 index 0000000..881619f --- /dev/null +++ b/res/black_theme/edc/gl-gengrid.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. +* +*/ + +//////////Copied from scroller.edc////////////////////// + +sounds { + sample { + name: "touch_sound" RAW; + source: "button-pressed.wav"; + } +} + +#define GL_GENGRID_OVER(to_obj) \ + part { name: "over_"to_obj; \ + type: RECT; \ + repeat_events: 1; \ + ignore_flags: ON_HOLD; \ + description { \ + state: "default" 0.0; \ + color: 0 0 0 0; \ + rel1 { relative: 0.0 0.0; to: to_obj; }\ + rel2 { relative: 1.0 1.0; to: to_obj; }\ + } \ + } + +#define GL_GENGRID_OVER_SOUND(src) \ + program { name: src"_mouse_clicked"; \ + signal: "mouse,clicked,1"; \ + source: "over_"src; \ + transition: DECELERATE 0.2; \ + after: "touch_snd"; \ + } + +#define GL_GENGRID_SOUND(src) \ + program { name: src"_mouse_clicked"; \ + signal: "mouse,clicked,1"; \ + source: src; \ + transition: DECELERATE 0.2; \ + after: "touch_snd"; \ + } + +#define GL_GENGRID_PLARY_SOUND \ + program { name: "touch_snd"; \ + action: RUN_PLUGIN "touch_sound_plugin"; \ + } + +#define GL_GENGRID_FOCUS_BG \ + part { name: "focus_bg"; \ + type: IMAGE; \ + mouse_events: 1; \ + repeat_events: 1; \ + description { state: "default" 0.0; \ + visible: 0; \ + image.normal: GALLERY_EDC_IMAGE_THUMBS_BG_FOCUS; \ + image.border: 13 13 13 13; \ + } \ + description { state: "enabled" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } + +#define GL_GENGRID_FOCUS_EVENT(to_obj) \ + part { name: "focus_event"; \ + type: RECT; \ + mouse_events: 1; \ + repeat_events: 1; \ + description { \ + state: "default" 0.0; \ + color: 0 0 0 0; \ + rel1 { relative: 0.0 0.0; to: to_obj; }\ + rel2 { relative: 1.0 1.0; to: to_obj; }\ + } \ + } + +#define GL_GENGRID_FOCUS(src) \ + program { \ + name: "go_mouse_down_"src; \ + signal: "mouse,down,1"; \ + source: src; \ + action: STATE_SET "enabled" 0.0; \ + target: "focus_bg"; \ + transition: ACCELERATE 0.2; \ + } \ + program { \ + name: "go_mouse_up_"src; \ + signal: "mouse,up,1"; \ + source: src; \ + action: STATE_SET "default" 0.0; \ + target: "focus_bg"; \ + transition: DECELERATE 0.2; \ + } \ + 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"; \ + } + +#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_IMAGE "00_scroll_bar.png" +#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_IMAGE "00_scroll_bar.png" +#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_IMAGE_BORDER 5 10 5 10 +#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_IMAGE_BORDER 5 10 5 10 +#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_MIN_SIZE_INC 16 238 +#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_MAX_SIZE_INC 16 99999 +#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_MIN_SIZE_INC 208 16 +#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_MAX_SIZE_INC 99999 16 +#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_PADDING_SIZE 6 +#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_PADDING_SIZE 6 + +/* + * vim:ts=3 +*/ +group { name: "elm/scroller/base/gallery"; + + data { + item: "focus_highlight" "on"; + } + + script { + public sbvis_v, sbvis_h, sbalways_v, sbalways_h, sbvis_timer; + public sh_v, sh_h, sh_timer, edge_timer; + public timer0(val) { + new v; + v = get_int(sbvis_v); + if (v) { + v = get_int(sbalways_v); + if (!v) { + emit("do-hide-vbar", ""); + set_int(sbvis_v, 0); + } + } + v = get_int(sbvis_h); + if (v) { + v = get_int(sbalways_h); + if (!v) { + emit("do-hide-hbar", ""); + set_int(sbvis_h, 0); + } + } + set_int(sbvis_timer, 0); + return 0; + } + public timer1(val) { + emit("do-hide-vshadow", ""); + emit("do-hide-hshadow", ""); + set_int(sh_timer, 0); + return 0; + } + public timer2(val) { + emit("do-hide-vshadow", ""); + emit("do-hide-hshadow", ""); + set_int(edge_timer, 0); + return 0; + } + } + images { + image: SCROLLER_DEFAULT_SCROLLBAR_VBAR_IMAGE COMP; + image: SCROLLER_DEFAULT_SCROLLBAR_HBAR_IMAGE COMP; + } + parts { + part { name: "bg"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + rel1.offset: 0 0; + rel2.offset: -1 -1; + color: 255 255 255 0; + } + } + part { name: "clipper"; + type: RECT; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + rel1.to: "bg"; + rel2.to: "bg"; + rel1.offset: 0 0; + rel2.offset: -1 -1; + } + } + part { name: "elm.swallow.content"; + clip_to: "clipper"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + rel1.to: "bg"; + rel2.to: "bg"; + rel1.offset: 0 0; + rel2.offset: -1 -1; + } + } + part { name: "sb_vbar_clip_master"; + type: RECT; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + } + description { state: "hidden" 0.0; + visible: 0; + color: 255 255 255 0; + } + } + part { name: "sb_vbar_clip"; + clip_to: "sb_vbar_clip_master"; + type: RECT; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + } + description { state: "hidden" 0.0; + visible: 0; + color: 255 255 255 0; + } + } + part { name: "sb_vbar"; + type: RECT; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + fixed: 1 1; + visible: 0; + min: SCROLLER_DEFAULT_SCROLLBAR_VBAR_MIN_SIZE_INC; + align: 1.0 0.0; + rel1 { + relative: 1.0 0.0; + offset: 0 0; + to_y: "elm.swallow.content"; + to_x: "elm.swallow.content"; + } + rel2 { + relative: 1.0 1.0; + offset: -1 1; + to_y: "elm.swallow.content"; + to_x: "elm.swallow.content"; + } + } + } + part { name: "elm.dragable.vbar"; + clip_to: "sb_vbar_clip"; + mouse_events: 0; + scale: 1; + dragable { + x: 0 0 0; + y: 1 1 0; + confine: "sb_vbar"; + } + description { state: "default" 0.0; + fixed: 1 1; + min: SCROLLER_DEFAULT_SCROLLBAR_VBAR_MIN_SIZE_INC; + max: SCROLLER_DEFAULT_SCROLLBAR_VBAR_MAX_SIZE_INC; + rel1 { + relative: 0.5 0.5; + offset: 0 0; + to: "sb_vbar"; + } + rel2 { + relative: 0.5 0.5; + offset: 0 0; + to: "sb_vbar"; + } + image { + normal: SCROLLER_DEFAULT_SCROLLBAR_VBAR_IMAGE; + border: SCROLLER_DEFAULT_SCROLLBAR_VBAR_IMAGE_BORDER; + border_scale: 1; + middle: DEFAULT; + } + } + } + part { name: "sb_hbar_clip_master"; + type: RECT; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + } + description { state: "hidden" 0.0; + visible: 0; + color: 255 255 255 0; + } + } + part { name: "sb_hbar_clip"; + clip_to: "sb_hbar_clip_master"; + type: RECT; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + } + description { state: "hidden" 0.0; + visible: 0; + color: 255 255 255 0; + } + } + part { name: "sb_hbar"; + type: RECT; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + fixed: 1 1; + visible: 0; + min: SCROLLER_DEFAULT_SCROLLBAR_HBAR_MIN_SIZE_INC; + align: 0.0 1.0; + rel1 { + relative: 0.0 1.0; + offset: 0 0; + to_x: "elm.swallow.content"; + to_y: "elm.swallow.content"; + } + rel2 { + relative: 1.0 1.0; + offset: -1 -1; + to_x: "elm.swallow.content"; + to_y: "elm.swallow.content"; + } + } + } + part { name: "elm.dragable.hbar"; + clip_to: "sb_hbar_clip"; + mouse_events: 0; + scale: 1; + dragable { + x: 1 1 0; + y: 0 0 0; + confine: "sb_hbar"; + } + description { state: "default" 0.0; + fixed: 1 1; + min: SCROLLER_DEFAULT_SCROLLBAR_HBAR_MIN_SIZE_INC; + max: SCROLLER_DEFAULT_SCROLLBAR_HBAR_MAX_SIZE_INC; + rel1 { + relative: 0.5 0.5; + offset: 0 0; + to: "sb_hbar"; + } + rel2 { + relative: 0.5 0.5; + offset: 0 0; + to: "sb_hbar"; + } + image { + normal: SCROLLER_DEFAULT_SCROLLBAR_HBAR_IMAGE; + border: SCROLLER_DEFAULT_SCROLLBAR_HBAR_IMAGE_BORDER; + border_scale: 1; + middle: DEFAULT; + } + } + } + part { name: "disabler"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + rel1.to: "clipper"; + rel2.to: "clipper"; + color: 0 0 0 0; + visible: 0; + } + description { state: "disabled" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 128 128 128 128; + } + } + } + programs { + program { name: "load"; + signal: "load"; + source: ""; + script { + set_state(PART:"sb_hbar_clip", "hidden", 0.0); + set_state(PART:"sb_vbar_clip", "hidden", 0.0); + set_int(sbvis_h, 0); + set_int(sbvis_v, 0); + set_int(sbalways_v, 0); + set_int(sbalways_h, 0); + set_int(sbvis_timer, 0); + } + } + + program { name: "vbar_show"; + signal: "elm,action,show,vbar"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "sb_vbar_clip_master"; + } + program { name: "vbar_hide"; + signal: "elm,action,hide,vbar"; + source: "elm"; + action: STATE_SET "hidden" 0.0; + target: "sb_vbar_clip_master"; + } + program { name: "vbar_show_always"; + signal: "elm,action,show_always,vbar"; + source: "elm"; + script { + new v; + v = get_int(sbvis_v); + v |= get_int(sbalways_v); + if (!v) { + set_int(sbalways_v, 1); + emit("do-show-vbar", ""); + set_int(sbvis_v, 1); + } + } + } + program { name: "vbar_show_notalways"; + signal: "elm,action,show_notalways,vbar"; + source: "elm"; + script { + new v; + v = get_int(sbalways_v); + if (v) { + set_int(sbalways_v, 0); + v = get_int(sbvis_v); + if (!v) { + emit("do-hide-vbar", ""); + set_int(sbvis_v, 0); + } + } + } + } + program { name: "sb_vbar_show"; + signal: "do-show-vbar"; + source: ""; + action: STATE_SET "default" 0.0; + transition: LINEAR 0.5; + target: "sb_vbar_clip"; + } + program { name: "sb_vbar_hide"; + signal: "do-hide-vbar"; + source: ""; + action: STATE_SET "hidden" 0.0; + transition: LINEAR 0.5; + target: "sb_vbar_clip"; + } + + program { name: "hbar_show"; + signal: "elm,action,show,hbar"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "sb_hbar_clip_master"; + } + program { name: "hbar_hide"; + signal: "elm,action,hide,hbar"; + source: "elm"; + action: STATE_SET "hidden" 0.0; + target: "sb_hbar_clip_master"; + } + program { name: "hbar_show_always"; + signal: "elm,action,show_always,hbar"; + source: "elm"; + script { + new v; + v = get_int(sbvis_h); + v |= get_int(sbalways_h); + if (!v) { + set_int(sbalways_h, 1); + emit("do-show-hbar", ""); + set_int(sbvis_h, 1); + } + } + } + program { name: "hbar_show_notalways"; + signal: "elm,action,show_notalways,hbar"; + source: "elm"; + script { + new v; + v = get_int(sbalways_h); + if (v) { + set_int(sbalways_h, 0); + v = get_int(sbvis_h); + if (!v) { + emit("do-hide-hbar", ""); + set_int(sbvis_h, 0); + } + } + } + } + program { name: "sb_hbar_show"; + signal: "do-show-hbar"; + source: ""; + action: STATE_SET "default" 0.0; + transition: LINEAR 0.5; + target: "sb_hbar_clip"; + } + program { name: "sb_hbar_hide"; + signal: "do-hide-hbar"; + source: ""; + action: STATE_SET "hidden" 0.0; + transition: LINEAR 0.5; + target: "sb_hbar_clip"; + } + + program { name: "scroll"; + signal: "elm,action,scroll"; + source: "elm"; + script { + new v; + v = get_int(sbvis_v); + v |= get_int(sbalways_v); + if (!v) { + emit("do-show-vbar", ""); + set_int(sbvis_v, 1); + } + v = get_int(sbvis_h); + v |= get_int(sbalways_h); + if (!v) { + emit("do-show-hbar", ""); + set_int(sbvis_h, 1); + } + v = get_int(sbvis_timer); + if (v > 0) cancel_timer(v); + v = timer(1.0, "timer0", 0); + set_int(sbvis_timer, v); + } + } + program { name: "disable"; + signal: "elm,state,disabled"; + source: "elm"; + action: STATE_SET "disabled" 0.0; + target: "disabler"; + } + program { name: "enable"; + signal: "elm,state,enabled"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "disabler"; + } + } +} + +group { name: "elm/gengrid/base/gallery"; + inherit: "elm/scroller/base/gallery"; + + images { + /*image: GALLERY_EDC_IMAGE_OS_TOP COMP; + image: GALLERY_EDC_IMAGE_OS_BOTTOM COMP;*/ + image: GALLERY_EDC_IMAGE_OS_LEFT COMP; + image: GALLERY_EDC_IMAGE_OS_RIGHT COMP; + } + + parts { + part { name: "shadow_clip"; + type: RECT; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + } + description { state: "hidden" 0.0; + visible: 0; + color: 255 255 255 0; + } + } + /*part { name: "shadow_top"; + clip_to: "shadow_clip"; + type: IMAGE; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + min: 0 30; + fixed: 1 1; + align: 0.5 0.0; + color: 255 255 255 100; + rel1.relative: 0.0 0.0; + rel2.relative: 1.0 0.0; + rel1.to: "elm.swallow.content"; + rel2.to: "elm.swallow.content"; + image.normal: GALLERY_EDC_IMAGE_OS_TOP; + } + description { state: "edge" 0.0; + inherit: "default" 0.0; + color: 255 255 255 255; + } + } + part { name: "shadow_bottom"; + clip_to: "shadow_clip"; + type: IMAGE; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + min: 0 30; + fixed: 1 1; + align: 0.5 1.0; + color: 255 255 255 100; + rel1.relative: 0.0 1.0; + rel2.relative: 1.0 1.0; + rel1.to: "elm.swallow.content"; + rel2.to: "elm.swallow.content"; + image.normal: GALLERY_EDC_IMAGE_OS_BOTTOM; + } + description { state: "edge" 0.0; + inherit: "default" 0.0; + color: 255 255 255 255; + } + }*/ + part { name: "shadow_left"; + clip_to: "shadow_clip"; + type: IMAGE; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + min: 30 0; + fixed: 1 1; + align: 0.0 0.5; + color: 255 255 255 0; + rel1.relative: 0.0 0.0; + rel2.relative: 0.0 1.0; + rel1.to: "elm.swallow.content"; + rel2.to: "elm.swallow.content"; + image.normal: GALLERY_EDC_IMAGE_OS_LEFT; + } + description { state: "edge" 0.0; + inherit: "default" 0.0; + color: 255 255 255 255; + } + } + part { name: "shadow_right"; + clip_to: "shadow_clip"; + type: IMAGE; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + min: 30 0; + fixed: 1 1; + align: 1.0 0.5; + color: 255 255 255 0; + rel1.relative: 1.0 0.0; + rel2.relative: 1.0 1.0; + rel1.to: "elm.swallow.content"; + rel2.to: "elm.swallow.content"; + image.normal: GALLERY_EDC_IMAGE_OS_RIGHT; + } + description { state: "edge" 0.0; + inherit: "default" 0.0; + color: 255 255 255 255; + } + } + /*part { name: "padding_jump_to_top"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: BUTTON_JUMP_TOP_PADDING_TO_SCROLLER_MIN_MAX_INC; + max: BUTTON_JUMP_TOP_PADDING_TO_SCROLLER_MIN_MAX_INC; + rel1.relative: 1.0 0.0; + rel2.relative: 1.0 0.0; + rel1.to: "elm.swallow.content"; + rel2.to: "elm.swallow.content"; + fixed: 1 1; + align: 1.0 0.0; + } + } + part { name: "elm.swallow.jump_to_top"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + rel1 { + to: "padding_jump_to_top"; + relative: 0.0 1.0; + } + rel2 { + to: "padding_jump_to_top"; + relative: 0.0 1.0; + } + fixed: 1 1; + align: 1.0 0.0; + } + } + part { name: "padding_jump_to_left"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: BUTTON_JUMP_LEFT_PADDING_TO_SCROLLER_MIN_MAX_INC; + max: BUTTON_JUMP_LEFT_PADDING_TO_SCROLLER_MIN_MAX_INC; + rel1.relative: 0.0 1.0; + rel2.relative: 0.0 1.0; + rel1.to: "elm.swallow.content"; + rel2.to: "elm.swallow.content"; + fixed: 1 1; + align: 0.0 1.0; + } + } + part { name: "elm.swallow.jump_to_left"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + rel1 { + to: "padding_jump_to_left"; + relative: 1.0 0.0; + } + rel2 { + to: "padding_jump_to_left"; + relative: 1.0 0.0; + } + fixed: 1 1; + align: 0.0 1.0; + } + }*/ + } + programs { + program { name: "load"; + script { + set_state(PART:"sb_hbar_clip", "hidden", 0.0); + set_state(PART:"sb_vbar_clip", "hidden", 0.0); + set_state(PART:"shadow_clip", "hidden", 0.0); + set_int(sbvis_h, 0); + set_int(sbvis_v, 0); + set_int(sbalways_v, 0); + set_int(sbalways_h, 0); + set_int(sbvis_timer, 0); + set_int(sh_v, 0); + set_int(sh_timer, 0); + set_int(edge_timer, 0); + } + } + program { name: "vshadow_show"; + signal: "do-show-vshadow"; + source: ""; + action: STATE_SET "default" 0.0; + transition: LINEAR 0.5; + target: "shadow_clip"; + } + program { name: "vshadow_hide"; + signal: "do-hide-vshadow"; + source: ""; + action: STATE_SET "hidden" 0.0; + transition: LINEAR 0.5; + target: "shadow_clip"; + } + program { name: "scroll"; + signal: "elm,action,scroll"; + source: "elm"; + script { + new v; + v = get_int(sbvis_v); + v |= get_int(sbalways_v); + if (!v) { + emit("do-show-vbar", ""); + set_int(sbvis_v, 1); + } + v = get_int(sbvis_h); + v |= get_int(sbalways_h); + if (!v) { + emit("do-show-hbar", ""); + set_int(sbvis_h, 1); + } + v = get_int(sbvis_timer); + if (v > 0) cancel_timer(v); + v = timer(1, "timer0", 0); + set_int(sbvis_timer, v); + + /*v = get_int(edge_timer); + if (!v) { + set_state(PART:"shadow_top", "default", 0.0); + set_state(PART:"shadow_bottom", "default", 0.0); + set_state(PART:"shadow_left", "default", 0.0); + set_state(PART:"shadow_right", "default", 0.0); + emit("do-show-vshadow", ""); + v = get_int(sh_timer); + if (v > 0) cancel_timer(v); + v = timer(0.2, "timer1", 0); + set_int(sh_timer, v); + }*/ + } + } + /*program { name: "edge_top"; + signal: "elm,edge,top"; + source: "elm"; + after: "edge"; + } + program { name: "edge_bottom"; + signal: "elm,edge,bottom"; + source: "elm"; + after: "edge"; + }*/ + program { name: "edge_left"; + signal: "elm,edge,left"; + source: "elm"; + after: "edge_shadow_left"; + } + program { name: "edge_right"; + signal: "elm,edge,right"; + source: "elm"; + after: "edge_shadow_right"; + } + /*program { name: "edge"; + script { + new v; + v = get_int(sh_timer); + if (v > 0) cancel_timer(v); + set_state(PART:"shadow_top", "edge", 0.0); + set_state(PART:"shadow_bottom", "edge", 0.0); + set_state(PART:"shadow_left", "edge", 0.0); + set_state(PART:"shadow_right", "edge", 0.0); + v = get_int(edge_timer); + if (!v) { + emit("do-show-vshadow", ""); + } + if (v > 0) cancel_timer(v); + v = timer(0.2, "timer2", 0); + set_int(edge_timer, v); + } + }*/ + program { name: "edge_shadow_left"; /* newly added */ + script { + new v; + v = get_int(sh_timer); + if (v > 0) cancel_timer(v); + set_state(PART:"shadow_left", "edge", 0.0); + set_state(PART:"shadow_right", "default", 0.0); + v = get_int(edge_timer); + if (!v) { + emit("do-show-vshadow", ""); + } + if (v > 0) cancel_timer(v); + v = timer(0.2, "timer2", 0); + set_int(edge_timer, v); + } + } + program { name: "edge_shadow_right"; /* newly added */ + script { + new v; + v = get_int(sh_timer); + if (v > 0) cancel_timer(v); + set_state(PART:"shadow_right", "edge", 0.0); + set_state(PART:"shadow_left", "default", 0.0); + v = get_int(edge_timer); + if (!v) { + emit("do-show-vshadow", ""); + } + if (v > 0) cancel_timer(v); + v = timer(0.2, "timer2", 0); + set_int(edge_timer, v); + } + } + program { name: "show"; + signal: "show"; + source: ""; + script { + new v; + emit("do-show-vbar", ""); + set_int(sbvis_v, 1); + v = get_int(sbalways_v); + if (!v) { + v = get_int(sbvis_timer); + if (v > 0) cancel_timer(v); + v = timer(1.0, "timer0", 0); + set_int(sbvis_timer, v); + } + emit("do-show-hbar", ""); + set_int(sbvis_h, 1); + v = get_int(sbalways_h); + if (!v) { + v = get_int(sbvis_timer); + if (v > 0) cancel_timer(v); + v = timer(1.0, "timer0", 0); + set_int(sbvis_timer, v); + } + } + } + } +} + diff --git a/res/black_theme/edc/gl-label.edc b/res/black_theme/edc/gl-label.edc new file mode 100644 index 0000000..ade0f7f --- /dev/null +++ b/res/black_theme/edc/gl-label.edc @@ -0,0 +1,191 @@ +/* +* 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. +* +*/ + +//added for progressbar label + +//nbeat-inc.edc +#define LABEL_TEXT_BLOCK_STYLE_COLOR_INC "#000000" + +#define TEXT_SLIDE_DURATION 10 + + styles { + style { name: "textblock_style"; + base: "font=Tizen:style=Medium text_class=tizen font_size=24 color="LABEL_TEXT_BLOCK_STYLE_COLOR_INC" text_class=label"; + tag: "br" "\n"; + tag: "ps" "ps"; + tag: "hilight" "+ font=Tizen:style=Bold text_class=tizen"; + tag: "b" "+ font=Tizen:style=Bold text_class=tizen"; + tag: "tab" "\t"; + } + } + + /* label doesn't use it */ + styles { + style { name: "textblock_charwrap_style"; + base: "font=Tizen:style=Medium text_class=tizen font_size=24 color="LABEL_TEXT_BLOCK_STYLE_COLOR_INC; + tag: "br" "\n"; + tag: "ps" "ps"; + tag: "hilight" "+ font=Tizen:style=Bold text_class=tizen"; + tag: "b" "+ font=Tizen:style=Bold text_class=tizen"; + tag: "tab" "\t"; + } + } + + group { name: "elm/label/base/default"; + alias: "elm/label/base/gallery/default"; + data.item: "default_font_size" "24"; + data.item: "min_font_size" "18"; + data.item: "max_font_size" "60"; + parts { + part { name: "label.swallow.background"; + type: SWALLOW; + description { state: "default" 0.0; + visible: 1; + } + } + part { name: "label.text.clip"; + type: RECT; + description { state: "default" 0.0; + visible: 1; + color: 255 255 255 255; + rel1 { relative: 0 0; to: "label.swallow.background"; } + rel2 { relative: 1 1; to: "label.swallow.background"; } + } + } + part { name: "elm.text"; + type: TEXTBLOCK; + mouse_events: 0; + scale: 1; + clip_to: "label.text.clip"; + description { state: "default" 0.0; + rel1.relative: 0.0 0.0; + rel2.relative: 1.0 1.0; + text { + style: "textblock_style"; + min: 0 1; + } + } + } + } + } + + /* default label doesn't use it */ + group { name: "elm/label/base_wrap/default"; + alias: "elm/label/base_wrap/gallery/default"; + data.item: "default_font_size" "24"; + data.item: "min_font_size" "18"; + data.item: "max_font_size" "60"; + parts { + part { name: "label.swallow.background"; + type: SWALLOW; + description { state: "default" 0.0; + visible: 1; + rel1 { relative: 0 0; to: "elm.text"; } + rel2 { relative: 1 1; to: "elm.text"; } + } + } + part { name: "elm.text"; + type: TEXTBLOCK; + mouse_events: 1; + scale: 1; + multiline: 1; + description { state: "default" 0.0; + text { + style: "textblock_style"; + min: 0 1; + } + } + description { state: "charwrap_mode" 0.0; + text { + style: "textblock_charwrap_style"; + min: 0 1; + } + } + } + } + programs { + program { name: "default_on"; + signal: "elm,state,default"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "elm.text"; + } + program { name: "charwrap_on"; + signal: "elm,state,charwrap"; + source: "elm"; + action: STATE_SET "charwrap_mode" 0.0; + target: "elm.text"; + } + } // end programs + } // end group + + /* default label doesn't use it */ + group { name: "elm/label/base_wrap_ellipsis/default"; + alias: "elm/label/base_wrap_ellipsis/gallery/default"; + data.item: "default_font_size" "24"; + data.item: "min_font_size" "18"; + data.item: "max_font_size" "60"; + parts { + part { name: "label.swallow.background"; + type: SWALLOW; + description { state: "default" 0.0; + visible: 1; + rel1 { relative: 0 0; to: "elm.text"; } + rel2 { relative: 1 1; to: "elm.text"; } + } + } + part { name: "elm.text"; + type: TEXTBLOCK; + mouse_events: 0; + scale: 1; + multiline: 1; + description { state: "default" 0.0; + // FIXME : fixed for multiline ellipsis. + // does it need to make another ellipsis style? + fixed: 0 1; + text { + style: "textblock_style"; + min: 0 1; + } + } + description { state: "charwrap_mode" 0.0; + // FIXME : fixed for multiline ellipsis. + // does it need to make another ellipsis style? + fixed: 0 1; + text { + style: "textblock_charwrap_style"; + min: 0 1; + } + } + } + } + programs { + program { name: "default_on"; + signal: "elm,state,default"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "elm.text"; + } + program { name: "charwrap_on"; + signal: "elm,state,charwrap"; + source: "elm"; + action: STATE_SET "charwrap_mode" 0.0; + target: "elm.text"; + } + } // end programs + } // end group + diff --git a/res/black_theme/edc/gl-macro.edc b/res/black_theme/edc/gl-macro.edc new file mode 100644 index 0000000..bb2269a --- /dev/null +++ b/res/black_theme/edc/gl-macro.edc @@ -0,0 +1,494 @@ +/* +* 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 showing overscrolling images start*********/ + +#define GL_CRIPT_SCROLLER \ + script { \ + public sbvis_v, sbvis_h, sbalways_v, sbalways_h, sbvis_timer; \ + public sh_v, sh_h, sh_timer, edge_timer; \ + public timer0(val) { \ + new v; \ + v = get_int(sbvis_v); \ + if (v) { \ + v = get_int(sbalways_v); \ + if (!v) { \ + emit("do-hide-vbar", ""); \ + set_int(sbvis_v, 0); \ + } \ + } \ + v = get_int(sbvis_h); \ + if (v) { \ + v = get_int(sbalways_h); \ + if (!v) { \ + emit("do-hide-hbar", ""); \ + set_int(sbvis_h, 0); \ + } \ + } \ + set_int(sbvis_timer, 0); \ + return 0; \ + } \ + public timer1(val) { \ + emit("do-hide-vshadow", ""); \ + emit("do-hide-hshadow", ""); \ + set_int(sh_timer, 0); \ + return 0; \ + } \ + public timer2(val) { \ + emit("do-hide-vshadow", ""); \ + emit("do-hide-hshadow", ""); \ + set_int(edge_timer, 0); \ + return 0; \ + } \ + } + +#define GL_IMAGES_GRID_OVERSCROLL \ + images { \ + image: GALLERY_EDC_IMAGE_GIRD_OS_TOP COMP; \ + image: GALLERY_EDC_IMAGE_GIRD_OS_BOT COMP; \ + image: GALLERY_EDC_IMAGE_GIRD_OS_LEFT COMP; \ + image: GALLERY_EDC_IMAGE_GIRD_OS_RIGHT COMP; \ + } + +#define GL_SHADOW_SCROLLER(CONTENT) \ + part { name: "vshadow_clip"; \ + type: RECT; \ + mouse_events: 0; \ + scale: 1; \ + description { state: "default" 0.0; \ + } \ + description { state: "hidden" 0.0; \ + visible: 0; \ + color: 255 255 255 0; \ + } \ + } \ + part { name: "hshadow_clip"; \ + type: RECT; \ + mouse_events: 0; \ + scale: 1; \ + description { state: "default" 0.0; \ + } \ + description { state: "hidden" 0.0; \ + visible: 0; \ + color: 255 255 255 0; \ + } \ + } \ + part { name: "shadow_top"; \ + clip_to: "vshadow_clip"; \ + type: IMAGE; \ + scale: 1; \ + mouse_events: 0; \ + description { state: "default" 0.0; \ + min: 0 405; \ + fixed: 1 1; \ + align: 0.5 0.0; \ + color: 255 255 255 100; \ + rel1.relative: 0.0 0.0; \ + rel2.relative: 1.0 0.0; \ + rel1.to: CONTENT; \ + rel2.to: CONTENT; \ + image.normal: GALLERY_EDC_IMAGE_GIRD_OS_TOP; \ + } \ + description { state: "edge" 0.0; \ + inherit: "default" 0.0; \ + color: 255 255 255 255; \ + } \ + description { state: "hidden" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } \ + part { name: "shadow_bottom"; \ + clip_to: "vshadow_clip"; \ + type: IMAGE; \ + scale: 1; \ + mouse_events: 0; \ + description { state: "default" 0.0; \ + min: 0 405; \ + fixed: 1 1; \ + align: 0.5 1.0; \ + color: 255 255 255 100; \ + rel1.relative: 0.0 1.0; \ + rel2.relative: 1.0 1.0; \ + rel1.to: CONTENT; \ + rel2.to: CONTENT; \ + image.normal: GALLERY_EDC_IMAGE_GIRD_OS_BOT; \ + } \ + description { state: "edge" 0.0; \ + inherit: "default" 0.0; \ + color: 255 255 255 255; \ + } \ + description { state: "hidden" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } \ + part { name: "shadow_left"; \ + clip_to: "hshadow_clip"; \ + type: IMAGE; \ + scale: 1; \ + mouse_events: 0; \ + description { state: "default" 0.0; \ + min: 405 0; \ + fixed: 1 1; \ + align: 0.0 0.5; \ + color: 255 255 255 100; \ + rel1.relative: 0.0 0.0; \ + rel2.relative: 0.0 1.0; \ + rel1.to: CONTENT; \ + rel2.to: CONTENT; \ + image.normal: GALLERY_EDC_IMAGE_GIRD_OS_LEFT; \ + } \ + description { state: "edge" 0.0; \ + inherit: "default" 0.0; \ + color: 255 255 255 255; \ + } \ + description { state: "hidden" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } \ + part { name: "shadow_right"; \ + clip_to: "hshadow_clip"; \ + type: IMAGE; \ + scale: 1; \ + mouse_events: 0; \ + description { state: "default" 0.0; \ + min: 405 0; \ + fixed: 1 1; \ + align: 1.0 0.5; \ + color: 255 255 255 100; \ + rel1.relative: 1.0 0.0; \ + rel2.relative: 1.0 1.0; \ + rel1.to: CONTENT; \ + rel2.to: CONTENT; \ + image.normal: GALLERY_EDC_IMAGE_GIRD_OS_RIGHT; \ + } \ + description { state: "edge" 0.0; \ + inherit: "default" 0.0; \ + color: 255 255 255 255; \ + } \ + description { state: "hidden" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } + +#define GL_PROGRAM_SCROLLER \ + program { name: "load"; \ + signal: "load"; \ + source: ""; \ + script { \ + set_state(PART:"vshadow_clip", "hidden", 0.0); \ + set_state(PART:"hshadow_clip", "hidden", 0.0); \ + set_int(sbvis_h, 0); \ + set_int(sbvis_v, 0); \ + set_int(sbalways_v, 0); \ + set_int(sbalways_h, 0); \ + set_int(sbvis_timer, 0); \ + set_int(sh_timer, 0); \ + set_int(edge_timer, 0); \ + emit("reload", "elm"); \ + } \ + } \ + program { name: "vbar_show_always"; \ + signal: "elm,action,show_always,vbar"; \ + source: "elm"; \ + script { \ + new v; \ + v = get_int(sbvis_v); \ + v |= get_int(sbalways_v); \ + if (!v) { \ + set_int(sbalways_v, 1); \ + emit("do-show-vbar", ""); \ + set_int(sbvis_v, 1); \ + } \ + } \ + } \ + program { name: "vbar_show_notalways"; \ + signal: "elm,action,show_notalways,vbar"; \ + source: "elm"; \ + script { \ + new v; \ + v = get_int(sbalways_v); \ + if (v) { \ + set_int(sbalways_v, 0); \ + v = get_int(sbvis_v); \ + if (!v) { \ + emit("do-hide-vbar", ""); \ + set_int(sbvis_v, 0); \ + } \ + } \ + } \ + } \ + program { name: "hbar_show_always"; \ + signal: "elm,action,show_always,hbar"; \ + source: "elm"; \ + script { \ + new v; \ + v = get_int(sbvis_h); \ + v |= get_int(sbalways_h); \ + if (!v) { \ + set_int(sbalways_h, 1); \ + emit("do-show-hbar", ""); \ + set_int(sbvis_h, 1); \ + } \ + } \ + } \ + program { name: "hbar_show_notalways"; \ + signal: "elm,action,show_notalways,hbar"; \ + source: "elm"; \ + script { \ + new v; \ + v = get_int(sbalways_h); \ + if (v) { \ + set_int(sbalways_h, 0); \ + v = get_int(sbvis_h); \ + if (!v) { \ + emit("do-hide-hbar", ""); \ + set_int(sbvis_h, 0); \ + } \ + } \ + } \ + } \ + program { name: "vshadow_show"; \ + signal: "do-show-vshadow"; \ + source: ""; \ + action: STATE_SET "default" 0.0; \ + transition: LINEAR 0.5; \ + target: "vshadow_clip"; \ + } \ + program { name: "vshadow_hide"; \ + signal: "do-hide-vshadow"; \ + source: ""; \ + action: STATE_SET "hidden" 0.0; \ + transition: LINEAR 0.5; \ + target: "vshadow_clip"; \ + } \ + program { name: "hshadow_show"; \ + signal: "do-show-hshadow"; \ + source: ""; \ + action: STATE_SET "default" 0.0; \ + transition: LINEAR 0.5; \ + target: "hshadow_clip"; \ + } \ + program { name: "hshadow_hide"; \ + signal: "do-hide-hshadow"; \ + source: ""; \ + action: STATE_SET "hidden" 0.0; \ + transition: LINEAR 0.5; \ + target: "hshadow_clip"; \ + } \ + program { name: "scroll"; \ + signal: "elm,action,scroll"; \ + source: "elm"; \ + script { \ + new v; \ + v = get_int(sbvis_v); \ + v |= get_int(sbalways_v); \ + if (!v) { \ + emit("do-show-vbar", ""); \ + set_int(sbvis_v, 1); \ + } \ + v = get_int(sbvis_h); \ + v |= get_int(sbalways_h); \ + if (!v) { \ + emit("do-show-hbar", ""); \ + set_int(sbvis_h, 1); \ + } \ + v = get_int(sbvis_timer); \ + if (v > 0) \ + cancel_timer(v); \ + v = timer(1, "timer0", 0); \ + set_int(sbvis_timer, v); \ + } \ + } \ + program { name: "scroll_up"; \ + signal: "elm,action,scroll,up"; \ + source: "elm"; \ + after: "scroll_vertical"; \ + } \ + program { name: "scroll_down"; \ + signal: "elm,action,scroll,down"; \ + source: "elm"; \ + after: "scroll_vertical"; \ + } \ + program { name: "scroll_vertical"; \ + script { \ + new v; \ + v = get_int(edge_timer); \ + if (!v) { \ + set_state(PART:"shadow_top", "default", 0.0); \ + set_state(PART:"shadow_bottom", "default", 0.0); \ + emit("do-show-vshadow", ""); \ + v = get_int(sh_timer); \ + if (v > 0) \ + cancel_timer(v); \ + v = timer(0.2, "timer1", 0); \ + set_int(sh_timer, v); \ + } \ + } \ + } \ + program { name: "scroll_left"; \ + signal: "elm,action,scroll,left"; \ + source: "elm"; \ + after: "scroll_horizontal"; \ + } \ + program { name: "scroll_right"; \ + signal: "elm,action,scroll,right"; \ + source: "elm"; \ + after: "scroll_horizontal"; \ + } \ + program { name: "scroll_horizontal"; \ + script { \ + new v; \ + v = get_int(edge_timer); \ + if (!v) { \ + set_state(PART:"shadow_left", "default", 0.0); \ + set_state(PART:"shadow_right", "default", 0.0); \ + emit("do-show-hshadow", ""); \ + v = get_int(sh_timer); \ + if (v > 0) \ + cancel_timer(v); \ + v = timer(0.2, "timer1", 0); \ + set_int(sh_timer, v); \ + } \ + } \ + } \ + program { name: "edge_top"; \ + signal: "elm,edge,top"; \ + source: "elm"; \ + script { \ + set_state(PART:"shadow_top", "edge", 0.0); \ + set_state(PART:"shadow_bottom", "hidden", 0.0); \ + } \ + after: "edge_vertical"; \ + } \ + program { name: "edge_bottom"; \ + signal: "elm,edge,bottom"; \ + source: "elm"; \ + script { \ + set_state(PART:"shadow_top", "hidden", 0.0); \ + set_state(PART:"shadow_bottom", "edge", 0.0); \ + } \ + after: "edge_vertical"; \ + } \ + program { name: "edge_left"; \ + signal: "elm,edge,left"; \ + source: "elm"; \ + script { \ + set_state(PART:"shadow_left", "edge", 0.0); \ + set_state(PART:"shadow_right", "hidden", 0.0); \ + } \ + after: "edge_horizontal"; \ + } \ + program { name: "edge_right"; \ + signal: "elm,edge,right"; \ + source: "elm"; \ + script { \ + set_state(PART:"shadow_left", "hidden", 0.0); \ + set_state(PART:"shadow_right", "edge", 0.0); \ + } \ + after: "edge_horizontal"; \ + } \ + program { name: "edge_all"; \ + signal: "elm,edge,all"; \ + source: "elm"; \ + script { \ + set_state(PART:"shadow_top", "edge", 0.0); \ + set_state(PART:"shadow_bottom", "edge", 0.0); \ + set_state(PART:"shadow_left", "edge", 0.0); \ + set_state(PART:"shadow_right", "edge", 0.0); \ + } \ + after: "edge_hori_verti"; \ + } \ + program { name: "edge_vertical"; \ + script { \ + new v; \ + v = get_int(sh_timer); \ + if (v > 0) \ + cancel_timer(v); \ + v = get_int(edge_timer); \ + if (!v) { \ + emit("do-show-vshadow", ""); \ + } \ + if (v > 0) \ + cancel_timer(v); \ + v = timer(0.2, "timer2", 0); \ + set_int(edge_timer, v); \ + } \ + } \ + program { name: "edge_horizontal"; \ + script { \ + new v; \ + v = get_int(sh_timer); \ + if (v > 0) \ + cancel_timer(v); \ + v = get_int(edge_timer); \ + if (!v) { \ + emit("do-show-hshadow", ""); \ + } \ + if (v > 0) \ + cancel_timer(v); \ + v = timer(0.2, "timer2", 0); \ + set_int(edge_timer, v); \ + } \ + } \ + program { name: "edge_hori_verti"; \ + script { \ + new v; \ + v = get_int(sh_timer); \ + if (v > 0) \ + cancel_timer(v); \ + v = get_int(edge_timer); \ + if (!v) { \ + emit("do-show-hshadow", ""); \ + emit("do-show-vshadow", ""); \ + } \ + if (v > 0) \ + cancel_timer(v); \ + v = timer(0.2, "timer2", 0); \ + set_int(edge_timer, v); \ + } \ + } \ + program { name: "show"; \ + signal: "show"; \ + source: ""; \ + script { \ + new v; \ + emit("do-show-vbar", ""); \ + set_int(sbvis_v, 1); \ + v = get_int(sbalways_v); \ + if (!v) { \ + v = get_int(sbvis_timer); \ + if (v > 0) cancel_timer(v); \ + v = timer(1.0, "timer0", 0); \ + set_int(sbvis_timer, v); \ + } \ + emit("do-show-hbar", ""); \ + set_int(sbvis_h, 1); \ + v = get_int(sbalways_h); \ + if (!v) { \ + v = get_int(sbvis_timer); \ + if (v > 0) cancel_timer(v); \ + v = timer(1.0, "timer0", 0); \ + set_int(sbvis_timer, v); \ + } \ + } \ + } +/********Used for showing overscrolling images done*********/ + diff --git a/res/black_theme/edc/gl-naviframe.edc b/res/black_theme/edc/gl-naviframe.edc new file mode 100644 index 0000000..1b744f7 --- /dev/null +++ b/res/black_theme/edc/gl-naviframe.edc @@ -0,0 +1,531 @@ +/* +* 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 NAVIFRAME_VIEW_TRANS_TIME 0.3 +#define NAVIFRAME_TITLE_TRANS_TIME 0.5 + +group { name: "elm/naviframe/item/gallery_empty/default"; + script { + public tbar_close = 0; //Toolbar lastest Open/Close status + public landscape = 0; //Landscape mode status + } + 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; + scale: 1; + 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: RECT; + scale: 1; + description { state: "default" 0.0; + min: 0 NAVIFRAME_TITLE_H_INC; + max: -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"; } + } + description { state: "landscape" 0.0; + inherit: "default" 0.0; + min: 0 NAVIFRAME_LANDSCAPE_TITLE_H_INC; + max: -1 NAVIFRAME_LANDSCAPE_TITLE_H_INC; + } + description { state: "hide_trans" 0.0; + inherit: "default" 0.0; + align: 0.5 1.0; + } + description { state: "hide_trans_landscape" 0.0; + inherit: "landscape" 0.0; + align: 0.5 1.0; + } + description { state: "hide" 0.0; + inherit: "default" 0.0; + visible: 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: "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; + scale: 1; + mouse_events: 0; + clip_to: "clipper"; + description { state: "default" 0.0; + rel1.to: "elm.swallow.content"; + rel2.to: "elm.swallow.content"; + } + } + part { name: "title"; + type: SWALLOW; + scale: 1; + clip_to: "title_clip"; + description { state: "default" 0.0; + min: 0 NAVIFRAME_TITLE_H_INC; + max: -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"; } + } + description { state: "landscape" 0.0; + inherit: "default" 0.0; + min: 0 NAVIFRAME_LANDSCAPE_TITLE_H_INC; + max: -1 NAVIFRAME_LANDSCAPE_TITLE_H_INC; + } + description { state: "hide_trans" 0.0; + inherit: "default" 0.0; + align: 0.5 1.0; + } + description { state: "hide_trans_landscape" 0.0; + inherit: "landscape" 0.0; + align: 0.5 1.0; + } + description { state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + min: 0 0; + max: -1 0; + } + } + 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"; + action: STATE_SET "default" 0.0; + target: "base"; + target: "clipper"; + } + program { name: "title_show"; + signal: "elm,state,title,show"; + source: "elm"; + script { + if (!get_int(landscape)) { + set_state(PART:"title", "default", 0.0); + set_state(PART:"title_bg", "default", 0.0); + } else { + set_state(PART:"title", "landscape", 0.0); + set_state(PART:"title_bg", "landscape", 0.0); + } + } + } + program { name: "title_hide"; + signal: "elm,state,title,hide"; + source: "elm"; + script { + set_state(PART:"title_bg", "hide", 0.0); + set_state(PART:"title", "hide", 0.0); + } + } + program { name: "title_show_anim"; + signal: "elm,action,title,show"; + source: "elm"; + script { + if (!get_int(landscape)) { + set_state(PART:"title", "hide_trans", 0.0); + set_state(PART:"title_bg", "hide_trans", 0.0); + } else { + set_state(PART:"title", "hide_trans_landscape", 0.0); + set_state(PART:"title_bg", "hide_trans_landscape", 0.0); + } + run_program(PROGRAM:"title_show_anim_start"); + } + } + program { name: "title_show_anim_start"; + action: STATE_SET "default" 0.0; + target: "title"; + 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", ""); + } + } + program { name: "title_hide_trans"; + signal: "elm,action,title,hide"; + source: "elm"; + script { + if (!get_int(landscape)) { + set_state(PART:"title", "default", 0.0); + set_state(PART:"title_bg", "default", 0.0); + } else { + set_state(PART:"title", "landscape", 0.0); + set_state(PART:"title_bg", "landscape", 0.0); + } + run_program(PROGRAM:"title_hide_trans_start"); + } + } + program { name: "title_hide_trans_start"; + action: STATE_SET "hide_trans" 0.0; + target: "title"; + 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); + set_state(PART:"title", "hide", 0.0); + emit("elm,action,title,transition,finished", ""); + } + } + 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); + } + } + program { name: "toolbar_hide"; + signal: "elm,state,toolbar,hide"; + source: "elm"; + script { + 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"; + action: SIGNAL_EMIT "elm,action,pushed,finished" ""; + } + program { name: "popped_finished"; + action: SIGNAL_EMIT "elm,action,popped,finished" ""; + } + program { + name: "change_to_landscape"; + script { + if (!get_int(landscape)) { + 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", st, 30, vl); + if (!strcmp(st, "default")) + set_state(PART:"title", "landscape", 0.0); + get_state(PART:"title_bg", st, 30, vl); + if (!strcmp(st, "default")) + set_state(PART:"title_bg", "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); + } + } + } + program { + name: "change_to_portrait"; + script { + if (get_int(landscape)) { + 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", st, 30, vl); + if (!strcmp(st, "landscape")) + set_state(PART:"title", "default", 0.0); + get_state(PART:"title_bg", st, 30, vl); + if (!strcmp(st, "landscape")) + set_state(PART:"title_bg", "default", 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); + } + } + } + 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/res/black_theme/edc/gl-nocontents.edc b/res/black_theme/edc/gl-nocontents.edc new file mode 100644 index 0000000..ca2ebaf --- /dev/null +++ b/res/black_theme/edc/gl-nocontents.edc @@ -0,0 +1,234 @@ +/* +* 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 NOCONTENT_TEXT_BLOCK_TEXT_SIZE_INC 36 +#define NOCONTENT_TEXT_BLOCK_TEXT_SIZE_INC_WHITE 20 +#define NOCONTENT_TEXT_BLOCK_STYLE_COLOR_INC 250 250 250 255 +#define NO_CONTENT_BG_HEIGHT_INC 185 +#define NO_CONTENT_BG_LANDSCAPE_HEIGHT_INC 132 +#define NO_CONTENT_MAX_HEIGHT_INC 244 +#define NO_CONTENT_LEFT_RIGHT_PADDING_WIDTH_INC 10 + + group { + name: "elm/layout/nocontents/gallery"; + styles{ + style { name: "nocontent_style"; + base: "font=Tizen:style=Roman text_class=tizen font_size="NOCONTENT_TEXT_BLOCK_TEXT_SIZE_INC" align=center color=#ffffff wrap=word"; + tag: "br" "\n"; + tag: "hilight" "+ font=Tizen:style=Bold text_class=tizen"; + tag: "b" "+ font=Tizen:style=Bold text_class=tizen"; + tag: "tab" "\t"; + } + } + images { + image: GALLERY_EDC_IMAGE_NOCONTENTS_PIC COMP; + } + parts { + part { name: "bg"; + scale: 1; + type: RECT; + description { state: "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.0;} + rel2 { relative: 1.0 1.0;} + color: 0 0 0 0; + } + } + part { name: "nocontents.image"; + description { state: "default" 0.0; + visible: 1; + align: 0.5 0.0; + rel1 { relative: 234/720 466/1184; to: "bg";} + rel2 { relative: (234+252)/720 (466+252)/1184; to: "bg";} + image { + normal: GALLERY_EDC_IMAGE_NOCONTENTS_PIC; + border: 1 1 1 1; + border_scale: 1; + } + aspect: 1.0 1.0; + aspect_preference: BOTH; + } + } + part { name: "middle.padding"; + scale: 1; + type: RECT; + description { state: "default" 0.0; + visible: 0; + align: 0.5 0.0; + rel1 { relative: 0.0 1.0; to_y: "nocontents.image";} + rel2 { relative: 1.0 (466+252+0)/1184; to: "bg";} + } + } + part { name: "elm.text"; + type: TEXTBLOCK; + description { state: "default" 0.0; + fixed: 0 1; + align: 0.5 0.0; + visible: 1; + rel1 { relative: 0.0 1.0; to_x: "bg"; to_y: "middle.padding";} + rel2 { relative: 1.0 (466+252+68)/1184; to: "bg";} + color: NOCONTENT_TEXT_BLOCK_STYLE_COLOR_INC; + text { + style: "nocontent_style"; + align: 0.5 0.5; + min: 0 0; + max: 0 1; + } + } + } + part { name: "middle.padding.2"; + scale: 1; + type: RECT; + description { state: "default" 0.0; + visible: 0; + align: 0.5 0.0; + rel1 { relative: 0.0 1.0; to_y: "elm.text";} + rel2 { relative: 1.0 (466+252+68+38)/1184; to: "bg";} + } + } + part { name: "elm.text.2"; + type: TEXTBLOCK; + description { state: "default" 0.0; + fixed: 0 1; + align: 0.5 0.0; + visible: 1; + rel1 { relative: 0.0 1.0; to_x: "bg"; to_y: "middle.padding.2";} + rel2 { relative: 1.0 1.0; to: "bg";} + color: NOCONTENT_TEXT_BLOCK_STYLE_COLOR_INC; + text { + style: "nocontent_style"; + align: 0.5 0.5; + min: 0 0; + max: 0 1; + } + } + } + } + } + + + group { + name: "elm/layout/nocontents/gallery_white"; + images { + image: "core_pattern_empty_bg.png" COMP; + image: "core_pattern_empty_bg_h.png" COMP; + } + styles{ + style { name: "nocontent_style_white"; + base: "font=Tizen:style=Regular font_size="NOCONTENT_TEXT_BLOCK_TEXT_SIZE_INC_WHITE" align=center color=#000000 wrap=word"; + tag: "br" "\n"; + tag: "hilight" "+ font=Tizen:style=Bold text_class=tizen"; + tag: "b" "+ font=Tizen:style=Bold text_class=tizen"; + tag: "tab" "\t"; + } + } + parts { + part { name: "bg"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + color_class: B011; + } + } + part { name: "bg_con"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + rel1.to: "bg"; + rel2.to: "bg"; + color_class: "B238L1"; + } + } + part { name: "bg_image"; + type: IMAGE; + scale: 1; + description { state: "default" 0.0; + min: 0 NO_CONTENT_BG_HEIGHT_INC; + rel1.to: "bg"; + rel2 { + to: "bg"; + relative: 1.0 0.0; + } + align: 0.0 0.0; + fixed: 0 1; + color_class: "B238L2"; + image.normal: "core_pattern_empty_bg.png"; + } + description { state: "landscape" 0.0; + inherit: "default" 0.0; + min: 0 NO_CONTENT_BG_LANDSCAPE_HEIGHT_INC; + image.normal: "core_pattern_empty_bg_h.png"; + } + } + part { name: "text_bg"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + max: -1 NO_CONTENT_MAX_HEIGHT_INC; + rel1.to: "bg"; + rel2.to: "bg"; + } + } + part { name: "left_padding"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: NO_CONTENT_LEFT_RIGHT_PADDING_WIDTH_INC 0; + fixed: 1 0; + align: 0.0 0.0; + rel1.to: "text_bg"; + rel2.to: "text_bg"; + rel2.relative: 0.0 1.0; + } + } + part{ name: "right_padding"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: NO_CONTENT_LEFT_RIGHT_PADDING_WIDTH_INC 0; + fixed: 1 0; + align: 1.0 0.0; + rel1 { + to: "text_bg"; + relative: 1.0 0.0; + } + rel2.to: "text_bg"; + } + } + part { name: "elm.text"; + type: TEXTBLOCK; + scale: 1; + description { state: "default" 0.0; + rel1 { + to_x: "left_padding"; + to_y: "text_bg"; + relative: 1.0 0.0; + } + rel2 { + to_x: "right_padding"; + to_y: "text_bg"; + relative: 0.0 1.0; + } + text { + style: "nocontent_style_white"; + min: 0 1; + max: 0 1; + } + } + } + } + } diff --git a/res/black_theme/edc/gl-popup-entry.edc b/res/black_theme/edc/gl-popup-entry.edc new file mode 100644 index 0000000..0604cf4 --- /dev/null +++ b/res/black_theme/edc/gl-popup-entry.edc @@ -0,0 +1,121 @@ +/* +* 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. +* +*/ + +group { name: "gl_popup_entry"; + parts { + part { name: "base"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: 0 160; + fixed: 1 0; + } + } + part { name: "t_pad"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + rel1.to: "base"; + rel2.to: "base"; + align: 0.0 0.0; + min: 0 10; + max: 0 10; + fixed: 1 1; + } + } + part { name: "top_content_padding"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: 0 30; + max: 0 40; + rel1 { + to_x: "base"; + to_y: "t_pad"; + relative: 0.0 1.0; + } + rel2 { + to_x: "base"; + to_y: "t_pad"; + relative: 1.0 1.0; + } + align: 0.0 0.0; + fixed: 1 1; + } + } + part { name: "left_swallow_padding"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: 30 40; + max: 30 40; + rel1 { + to_x: "base"; + to_y: "top_content_padding"; + relative: 0.0 1.0; + } + rel2 { + to_x: "base"; + to_y: "top_content_padding"; + relative: 0.0 1.0; + } + align: 0.0 0.0; + fixed: 1 1; + } + } + part { name: "right_swallow_padding"; + type: SPACER; + scale: 1; + description { + min: 30 40; + max: 30 40; + rel1 { + to_x: "base"; + to_y: "top_content_padding"; + relative: 1.0 1.0; + } + rel2 { + to_x: "base"; + to_y: "top_content_padding"; + relative: 1.0 1.0; + } + align: 1.0 0.0; + fixed: 1 1; + } + } + part { + name: "elm.swallow.content"; + type: SWALLOW; + scale: 1; + ignore_flags: ON_HOLD; + description { state: "default" 0.0; + min: 0 80; + fixed: 0 1; + rel1 { + to: "left_swallow_padding"; + relative : 1.0 1.0; + } + rel2 { + to: "right_swallow_padding"; + relative: 0.0 1.0; + } + align: 0.0 0.5; + } + } + } +} + diff --git a/res/black_theme/edc/gl-progressbar.edc b/res/black_theme/edc/gl-progressbar.edc new file mode 100644 index 0000000..d89fef1 --- /dev/null +++ b/res/black_theme/edc/gl-progressbar.edc @@ -0,0 +1,654 @@ +/* +* 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_STATUS_TEXT_FONT_SIZE_INC 20 +#define PROGRESSBAR_LIST_PROGRESS_STYLE_TEXT_COLOR_INC 0 0 0 255 +#define PROGRESSBAR_LIST_PROGRESS_STYLE_STATUS_TEXT_COLOR_INC 224 224 224 255 +#define PROGRESSBAR_LIST_PROGRESS_HEIGHT_INC 8 + + group { name: "elm/progressbar/horizontal/gallery/list_progress"; + images { + image: GALLERY_EDC_IMAGE_LIST_PROGRESS_BG COMP; + image: GALLERY_EDC_IMAGE_LIST_PROGRESS_BAR COMP; + } + parts { + part { name: "elm.padding.left"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + min: 0 0; + fixed: 1 0; + rel1 { + relative: 0.0 0.0; + offset: 0 0; + } + rel2 { + relative: 0.0 1.0; + offset: 0 0; + } + color: 0 0 0 0; + align: 0.0 0.0; + } + } + part { name: "elm.padding.right"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + min: 0 0; + fixed: 1 0; + rel1 { + relative: 1.0 0.0; + offset: 0 0; + } + rel2 { + relative: 1.0 1.0; + offset: 0 0; + } + color: 0 0 0 0; + align: 1.0 0.0; + } + } + part { name: "elm.background.progressbar"; + type: RECT; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + rel1 { + to_x: "elm.padding.left"; + relative: 1.0 0.0; + offset: 0 0; + } + rel2 { + to_x: "elm.padding.right"; + relative: 0.0 1.0; + offset: 0 0; + } + } + } + part { name: "elm.swallow.bar"; + mouse_events: 0; + scale: 1; + type: SWALLOW; + description { + min: 1 PROGRESSBAR_LIST_PROGRESS_HEIGHT_INC; + max: 99999 PROGRESSBAR_LIST_PROGRESS_HEIGHT_INC; + state: "default" 0.0; + rel1 { + to: "elm.background.progressbar"; + relative: 0.0 0.0; + } + rel2 { + to: "elm.background.progressbar"; + relative: 1.0 1.0; + } + } + } + part { name: "elm.swallow.content"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + visible: 0; + align: 0.0 0.5; + rel1 { + offset: 0 0; + to_y: "elm.background.progressbar"; + } + rel2 { + offset: 0 -1; + relative: 0.0 1.0; + to_y: "elm.background.progressbar"; + } + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + aspect: 1.0 1.0; + aspect_preference: VERTICAL; + rel2.offset: 4 -1; + } + } + part { name: "elm.text"; + type: TEXT; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + visible: 0; + fixed: 1 1; + align: 0.0 0.5; + rel1.to_x: "elm.swallow.content"; + rel1.relative: 1.0 0.0; + rel2.to_x: "elm.swallow.content"; + rel2.relative: 1.0 1.0; + color: PROGRESSBAR_LIST_PROGRESS_STYLE_TEXT_COLOR_INC; + text { + font: "SLP:style=Medium"; + text_class: "slp"; + size: PROGRESSBAR_STATUS_TEXT_FONT_SIZE_INC; + min: 0 0; + align: 0.0 0.5; + } + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + visible: 0; + text.min: 1 1; + } + } + part { name: "background"; + mouse_events: 0; + scale: 1; + clip_to: "elm.background.progressbar"; + description { + state: "default" 0.0; + rel1 { + to: "elm.swallow.bar"; + relative: 0.0 0.0; + } + rel2 { + to: "elm.swallow.bar"; + relative: 1.0 1.0; + } + image { + normal: GALLERY_EDC_IMAGE_LIST_PROGRESS_BG; + border: 0 0 1 1; + } + } + } + part { name: "elm.text.status"; + type: TEXT; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + fixed: 1 1; + visible: 0; + rel1 { + to: "background"; + relative: 0.5 0.5; + } + rel2 { + to: "background"; + relative: 0.5 0.5; + } + text { + font: "SLP:style=Medium"; + text_class: "slp"; + size: PROGRESSBAR_STATUS_TEXT_FONT_SIZE_INC; + min: 0 0; + align: 0.5 0.0; + } + color: PROGRESSBAR_LIST_PROGRESS_STYLE_TEXT_COLOR_INC; + } + description { state: "show" 0.0; + inherit: "default" 0.0; + visible: 0; + text.min: 1 1; + } + } + part { name: "elm.progress.progressbar"; + mouse_events: 0; + scale: 1; + clip_to: "elm.background.progressbar"; + description { + state: "default" 0.0; + min: 0 0; + fixed: 1 1; + rel1 { + to: "elm.swallow.bar"; + relative: 0.0 0.0; + } + rel2 { + to_y: "elm.swallow.bar"; + to_x: "elm.cur.progressbar"; + offset: -1 -1; + } + image { + normal: GALLERY_EDC_IMAGE_LIST_PROGRESS_BAR; + border: 0 0 1 1; + } + } + description { + state: "invert" 0.0; + inherit: "default" 0.0; + rel1 { + to_y: "elm.swallow.bar"; + to_x: "elm.cur.progressbar"; + } + rel2 { + to: "elm.swallow.bar"; + relative: 1.0 1.0; + } + } + description { + state: "state_begin" 0.0; + inherit: "default" 0.0; + rel1 { + to: "elm.swallow.bar"; + relative: 0.0 0.0; + } + rel2 { + to: "elm.swallow.bar"; + relative: 0.1 1.0; + } + } + description { + state: "state_end" 0.0; + inherit: "default" 0.0; + rel1 { + to: "elm.swallow.bar"; + relative: 0.9 0.0; + } + rel2 { + to: "elm.swallow.bar"; + relative: 1.0 1.0; + } + } + } + part { name: "text-bar"; + type: TEXT; + mouse_events: 0; + scale: 1; + clip_to: "progress-rect"; + //effect: SOFT_SHADOW; + scale: 0; + description { state: "default" 0.0; + align: 0.0 0.0; + fixed: 1 1; + visible: 0; + rel1.to: "elm.text.status"; + rel1.offset: -1 -1; + rel2.to: "elm.text.status"; + text { + text_source: "elm.text.status"; + font: "SLP:style=Medium"; + text_class: "slp"; + size: PROGRESSBAR_STATUS_TEXT_FONT_SIZE_INC; + min: 0 0; + align: 0.0 0.0; + } + color: PROGRESSBAR_LIST_PROGRESS_STYLE_STATUS_TEXT_COLOR_INC; + } + description { state: "show" 0.0; + inherit: "default" 0.0; + visible: 0; + text.min: 1 1; + } + } + part { name: "elm.cur.progressbar"; + mouse_events: 0; + scale: 1; + dragable { + confine: "background"; + x: 1 1 1; + y: 0 0 0; + } + description { state: "default" 0.0; + min: 0 28; + fixed: 1 1; + visible: 0; + rel1 { + to: "background"; + relative: 0 0; + } + rel2.to: "background"; + } + } + part { name: "progress-rect"; + type: RECT; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + rel1.to: "elm.progress.progressbar"; + rel2.to: "elm.progress.progressbar"; + } + } + } + programs { + program { name: "label_show"; + signal: "elm,state,text,visible"; + source: "elm"; + action: STATE_SET "visible" 0.0; + target: "elm.text"; + } + program { name: "label_hide"; + signal: "elm,state,text,hidden"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "elm.text"; + } + program { name: "icon_show"; + signal: "elm,state,icon,visible"; + source: "elm"; + action: STATE_SET "visible" 0.0; + target: "elm.swallow.content"; + } + program { name: "icon_hide"; + signal: "elm,state,icon,hidden"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "elm.swallow.content"; + } + program { name: "units_show"; + signal: "elm,state,units,visible"; + source: "elm"; + action: STATE_SET "show" 0.0; + target: "text-bar"; + target: "elm.text.status"; + } + program { name: "units_hide"; + signal: "elm,state,units,hidden"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "text-bar"; + target: "elm.text.status"; + } + program { name: "slide_to_end"; + action: STATE_SET "state_end" 0.0; + transition: LINEAR 0.5; + target: "elm.progress.progressbar"; + after: "slide_to_begin"; + } + program { name: "slide_to_begin"; + signal: "elm,state,slide,begin"; + action: STATE_SET "state_begin" 0.0; + target: "elm.progress.progressbar"; + transition: LINEAR 0.5; + after: "slide_to_end"; + } + program { name: "start_pulse"; + signal: "elm,state,pulse,start"; + source: "elm"; + // after: "slide_to_end"; + } + program { name: "stop_pulse"; + signal: "elm,state,pulse,stop"; + source: "elm"; + action: ACTION_STOP; + target: "slide_to_begin"; + target: "slide_to_end"; + target: "start_pulse"; + //after: "state_pulse"; + } + program { name: "state_pulse"; + signal: "elm,state,pulse"; + source: "elm"; + action: STATE_SET "state_begin" 0.0; + target: "elm.progress.progressbar"; + after: "units_hide"; + } + program { name: "state_fraction"; + signal: "elm,state,fraction"; + source: "elm"; + action: ACTION_STOP; + target: "slide_to_begin"; + target: "slide_to_end"; + target: "start_pulse"; + action: STATE_SET "default" 0.0; + target: "elm.progress.progressbar"; + } + program { name: "set_invert_on"; + signal: "elm,state,inverted,on"; + source: "elm"; + action: STATE_SET "invert" 0.0; + target: "elm.progress.progressbar"; + } + program { name: "set_invert_off"; + signal: "elm,state,inverted,off"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "elm.progress.progressbar"; + } + } + } + + +/////Processing popup layout with label and progressbar ////// +//568 = 378 + 190 +group { name: "popup_processing"; +#define GL_POPUP_PROCESSINGVIEW_CONTENT_MIN 568 188 + parts { + part { name: "base"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: GL_POPUP_PROCESSINGVIEW_CONTENT_MIN; + fixed: 1 0; + } + } + part { name:"pad_t"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: 0 30; + fixed: 0 1; + align: 0 0; + rel1.to: "base"; + rel2 { + relative: 1.0 0.0; + to: "base"; + } + } + } + part { name: "pad_l"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: 45 0; + max: 45 0; + fixed: 1 1; + rel1.to: "base"; + rel2.to: "base"; + align: 0.0 0.0; + } + } + part { name: "pad_r"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: 45 0; + max: 45 0; + fixed: 1 1; + rel1.to: "base"; + rel2.to: "base"; + align: 1.0 1.0; + } + } + part { name:"elm.swallow.content"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + min: 60 0; + align: 0.0 0.0; + fixed: 1 1; + rel1 { + relative: 1.0 1.0; + to_x: "pad_l"; + to_y: "pad_t"; + } + rel2 { + relative: 1.0 0.0; + to_x: "pad_l"; + to_y: "pad_b"; + } + } + } + part { name:"pad_after_content"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: 45 0; + fixed: 1 0; + rel1 { + relative: 1.0 0.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; + min: 350 0; + align: 0.0 0.0; + fixed: 1 1; + rel1 { + relative: 1.0 0.0; + to: "pad_after_content"; + } + 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; + min: 0 30; + fixed: 0 1; + align: 1 1; + rel1 { + relative: 0.0 1.0; + to: "base"; + } + rel2.to: "base"; + } + } + } +#undef GL_POPUP_PROCESSINGVIEW_CONTENT_MIN +} + +#define POPUP_PROGRESSBAR_VIEW_LAYOUT_BG_MIN_INC 0 70 +#define POPUP_PROGRESSBAR_VIEW_LAYOUT_PADDING_INC 15 27 +#define POPUP_PROGRESSBAR_VIEW_LAYOUT_TEXT_FONT_SIZE_INC 0 38 +#define POPUP_PROGRESSBAR_VIEW_LAYOUT_BG_INC 0 69 +#define POPUP_TEXT_FONT_SIZE 15 + + +group { name: "popup_text_progressbar_view_layout"; + styles { + style { name: "popup_progress_style"; + base: "font=Tizen:style=Regular align=right font_size="14" color=#FFFFFF wrap=mixed ellipsis=1.0"; + tag: "br" "\n"; + tag: "tab" "\t"; + } + style { name: "popup_processing_style"; + base: "font=Tizen:style=Regular align=left font_size="POPUP_TEXT_FONT_SIZE" color=#000000 wrap=mixed ellipsis=1.0"; + tag: "br" "\n"; + tag: "tab" "\t"; + } + } + + parts { + part { name: "bg"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: POPUP_PROGRESSBAR_VIEW_LAYOUT_BG_MIN_INC; + fixed: 1 0; + } + } + part { name: "pad_l_t"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: POPUP_PROGRESSBAR_VIEW_LAYOUT_PADDING_INC; + max: POPUP_PROGRESSBAR_VIEW_LAYOUT_PADDING_INC; + fixed: 1 1; + rel2.relative: 0.0 0.0; + align: 0.0 0.0; + } + } + part { name: "pad_r_t"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: POPUP_PROGRESSBAR_VIEW_LAYOUT_PADDING_INC; + max: POPUP_PROGRESSBAR_VIEW_LAYOUT_PADDING_INC; + fixed: 1 1; + rel1.relative: 1.0 1.0; + align: 1.0 1.0; + } + } + part { name: "elm.text.description"; + type: TEXTBLOCK; + scale: 1; + description { state: "default" 0.0; + fixed: 0 1; + min: POPUP_PROGRESSBAR_VIEW_LAYOUT_TEXT_FONT_SIZE_INC; + rel1 { + relative: 0.2 0.4; + to: "bg"; + } + rel2 { + relative: 0.0 0.6; + to_x: "pad_r_t"; + to_y: "bg"; + } + text { + style: "popup_processing_style"; + min: 0 1; + } + } + } + part { name: "progressbar_bg"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + fixed: 0 1; + min: POPUP_PROGRESSBAR_VIEW_LAYOUT_BG_INC; + rel1 { + relative: 0.0 0.0; + to_x: "bg"; + to_y: "elm.text.description"; + } + rel2 { + relative: 0.2 1.0; + to_x: "bg"; + to_y: "elm.text.description"; + } + } + } + part { name: "progressbar"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + fixed: 0 1; + rel1.to: "bg"; + rel2.to: "bg"; + } + } + part { name: "progressbar_left"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + fixed: 0 1; + rel1.to: "progressbar_bg"; + rel2.to: "progressbar_bg"; + } + } + } +} diff --git a/res/black_theme/edc/gl-selection-notification.edc b/res/black_theme/edc/gl-selection-notification.edc new file mode 100644 index 0000000..d593bc8 --- /dev/null +++ b/res/black_theme/edc/gl-selection-notification.edc @@ -0,0 +1,154 @@ +/* +* 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 SELINFO_H 48 +#define SELINFO_ARROW_H (SELINFO_H-9) +#define SELINFO_COLOR 0 0 0 0 +#define SELINFO_PAD_R 20 + + group + { + name: "elm/standard/selectioninfo/gallery"; + + images { + image : GALLERY_EDC_IMAGE_BTN_CIRCLE_BG_NORMAL COMP; + image : GALLERY_EDC_IMAGE_BTN_CIRCLE_BG_PRESS COMP; + image : GALLERY_EDC_IMAGE_BUTTON_REVEAL COMP; + image : GALLERY_EDC_IMAGE_BUTTON_REVEAL_PRESS COMP; + } + + parts { + part { + name: "bg"; + type: RECT; + mouse_events: 1; + repeat_events: 1; + scale : 1; + description { + state: "default" 0.0; + min: 0 SELINFO_H; + fixed: 0 1; + align: 0.5 1.0; + rel1.relative: 0.0 1.0; + color: SELINFO_COLOR; + } + } + part { name: "right_padding"; + type: RECT; + scale : 1; + description { + state: "default" 0.0; + min: SELINFO_PAD_R SELINFO_H; + fixed: 1 1; + align: 0.5 1.0; + rel1 { relative: 1.0 0.0; to: "bg"; } + rel2 { relative: 1.0 1.0; to: "bg"; } + color: 0 0 0 0; + } + } + part { name: "arrow_image"; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + max: SELINFO_ARROW_H SELINFO_ARROW_H; + align: 1.0 0.8; + aspect: 1.0 1.0; + fixed: 1 1; + rel1 {relative: 0.0 0.0; to: "right_padding"; } + rel2 {relative: 0.0 1.0; to: "right_padding"; } + } + description { + state: "arrow_reveal" 0.0; + inherit: "default" 0.0; + visible: 1; + image.normal: GALLERY_EDC_IMAGE_BTN_CIRCLE_BG_NORMAL; + } + description { + state: "arrow_press" 0.0; + inherit: "default" 0.0; + visible: 1; + image.normal: GALLERY_EDC_IMAGE_BTN_CIRCLE_BG_PRESS; + } + } + part { + name: "arrow_center"; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + max: SELINFO_ARROW_H SELINFO_ARROW_H; + align: 1.0 0.8; + aspect: 1.0 1.0; + fixed: 1 1; + rel1 {relative: 0.0 0.0; to: "arrow_image";} + rel2 {relative: 1.0 1.0; to: "arrow_image"; } + } + description { + state: "arrow_reveal" 0.0; + inherit: "default" 0.0; + image.normal: GALLERY_EDC_IMAGE_BUTTON_REVEAL; + visible: 1; + } + description { + state: "arrow_press" 0.0; + inherit: "default" 0.0; + image.normal: GALLERY_EDC_IMAGE_BUTTON_REVEAL_PRESS; + visible: 1; + } + } + } + + programs { + program { name: "arrow_click"; + signal: "mouse,down,1"; + source: "arrow_center"; + after: "arrow_click_anim"; + } + program { name: "arrow_click_anim"; + script { + set_state(PART:"arrow_image", "arrow_press", 0.0); + set_state(PART:"arrow_center", "arrow_press", 0.0); + } + } + program { name: "arrow_mouseout_clicked"; + signal: "mouse,up,1"; + source: "arrow_center"; + script { + set_state(PART:"arrow_image", "arrow_reveal", 0.0); + set_state(PART:"arrow_center", "arrow_reveal", 0.0); + } + } + program { name: "arrow_click2"; + signal: "mouse,clicked,1"; + source: "arrow_center"; + action: SIGNAL_EMIT "elm,action,click" "arrow"; + } + program {//show arrow + name: "arrow_center_reveal"; + signal: "elm,selectioninfo,arrow_show"; + source: "elm"; + script { + set_state(PART:"arrow_image", "arrow_reveal", 0.0); + set_state(PART:"arrow_center", "arrow_reveal", 0.0); + } + } + GL_GENGRID_SOUND("arrow_center") + GL_GENGRID_PLARY_SOUND + } + } + diff --git a/res/black_theme/edc/gl-timeline.edc b/res/black_theme/edc/gl-timeline.edc new file mode 100644 index 0000000..cc75d52 --- /dev/null +++ b/res/black_theme/edc/gl-timeline.edc @@ -0,0 +1,1551 @@ +/* +* 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 GL_TL_TITLE_H 46 + +#define TIME_VIEW_GENLIST_STYLE(NAME, Y) \ + group{ \ + name: "elm/genlist/item/"#NAME"/default"; \ + data.item: "contents" "elm.swallow"; \ + data.item: "selectraise" "on"; \ + data.item: "stacking" "above"; \ + parts{ \ + part{ \ + name: "bg"; \ + type: RECT; \ + description{ \ + state: "default" 0.0; \ + color: 255 255 255 255; \ + rel1.relative: 0.0 0.0; \ + rel2.relative: 1.0 1.0; \ + min: 0 Y; \ + max: -1 Y; \ + visible: 1; \ + } \ + } \ + part{ \ + name: "elm.swallow"; \ + type: SWALLOW; \ + description{ \ + state: "default" 0.0; \ + rel1 { relative: 0.0 0.0; to: "bg"; } \ + rel2 { relative: 1.0 1.0; to: "bg"; } \ + align: 0.5 0.5; \ + } \ + } \ + } \ + } + +#define PART_PADDING_LEFT( param_padding_size ) \ + part { name: "elm.padding.left"; \ + type: RECT; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + min: param_padding_size 0; \ + fixed: 1 0; \ + visible: 0; \ + rel2.relative: 0.0 1.0; \ + align: 0.0 0.0; \ + } \ + } + +#define PART_PADDING_RIGHT( param_padding_size ) \ + part { name: "elm.padding.right"; \ + type: RECT; \ + scale: 1; \ + description { state: "default" 0.0; \ + min: param_padding_size 0; \ + fixed: 1 0; \ + visible: 0; \ + rel1.relative: 1.0 0.0; \ + align: 1.0 0.0; \ + } \ + } + +#define TL_BG \ + part { \ + name: "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: GALLERY_EDC_COLOR_BG; \ + } \ + } + +#define TL_BG_C \ + part { \ + name: "bg_c"; \ + type: SWALLOW; \ + scale: 1; \ + mouse_events: 1; \ + description { \ + state: "default" 0.0; \ + rel1 { relative: 0.0 0.0; to: "bg"; } \ + rel2 { relative: 1.0 1.0; to: "bg"; } \ + visible: 0; \ + } \ + } + +#define TL_TITLE_BG_TOP \ + part { name: "title_bg"; \ + type: RECT; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + min: 1 GL_TL_TITLE_H; \ + fixed: 0 1; \ + visible: 1; \ + rel2.relative: 1.0 0.0; \ + align: 0.0 0.0; \ + color: GALLERY_EDC_COLOR_BG; \ + } \ + description { \ + state: "hide" 0.0; \ + min: 0 0; \ + fixed: 0 1; \ + visible: 0; \ + rel2.relative: 1.0 0.0; \ + align: 0.0 0.0; \ + } \ + } + +#define TL_TITLE_TOP \ + part { name: "title2"; \ + type: SWALLOW; \ + scale: 1; \ + clip_to: "title_clip2"; \ + description { \ + state: "default" 0.0; \ + min: 0 GL_TL_TITLE_H; \ + min: 999999 GL_TL_TITLE_H; \ + fixed: 1 1; \ + visible: 1; \ + rel1.relative: 0.0 0.0; \ + rel1.to: "title_bg"; \ + rel2.relative: 1.0 0.0; \ + rel2.to: "title_bg"; \ + align: 0.0 0.0; \ + } \ + description { \ + state: "hide" 0.0; \ + min: 0 0; \ + fixed: 0 1; \ + visible: 0; \ + rel2.relative: 1.0 0.0; \ + align: 0.0 0.0; \ + } \ + description { \ + state: "top" 0.0; \ + inherit: "default" 0.0; \ + rel1.relative: 0.0 -1.0; \ + rel1.to: "title_bg"; \ + rel2.relative: 1.0 0.0; \ + rel2.to: "title_bg"; \ + } \ + description { \ + state: "bottom" 0.0; \ + inherit: "default" 0.0; \ + rel1.relative: 0.0 0.4; \ + rel1.to: "title_bg"; \ + rel2.relative: 1.0 1.4; \ + rel2.to: "title_bg"; \ + } \ + } \ + part { name: "title_clip2"; \ + type: RECT; \ + mouse_events: 0; \ + description { state: "default" 0.0; \ + rel1 { to: "title_bg"; } \ + rel2 { to: "title_bg"; } \ + color: 255 255 255 0; \ + } \ + description { state: "fade_in" 0.0; \ + rel1 { to: "title_bg"; } \ + rel2 { to: "title_bg"; } \ + color: 255 255 255 255; \ + } \ + } \ + part { name: "title"; \ + type: SWALLOW; \ + scale: 1; \ + clip_to: "title_clip"; \ + description { \ + state: "default" 0.0; \ + min: 0 GL_TL_TITLE_H; \ + min: 999999 GL_TL_TITLE_H; \ + fixed: 1 1; \ + visible: 1; \ + rel1.relative: 0.0 0.0; \ + rel1.to: "title_bg"; \ + rel2.relative: 1.0 0.0; \ + rel2.to: "title_bg"; \ + align: 0.0 0.0; \ + } \ + description { \ + state: "hide" 0.0; \ + min: 0 0; \ + fixed: 0 1; \ + visible: 0; \ + rel2.relative: 1.0 0.0; \ + align: 0.0 0.0; \ + } \ + description { \ + state: "top" 0.0; \ + inherit: "default" 0.0; \ + rel1.relative: 0.0 -0.6; \ + rel1.to: "title_bg"; \ + rel2.relative: 1.0 0.4; \ + rel2.to: "title_bg"; \ + } \ + description { \ + state: "bottom" 0.0; \ + inherit: "default" 0.0; \ + rel1.relative: 0.0 1.0; \ + rel1.to: "title_bg"; \ + rel2.relative: 1.0 2.0; \ + rel2.to: "title_bg"; \ + } \ + } part { name: "title_clip"; \ + type: RECT; \ + mouse_events: 0; \ + description { \ + state: "default" 0.0; \ + rel1 { to: "title_bg"; } \ + rel2 { to: "title_bg"; } \ + color: 255 255 255 255; \ + } \ + description { \ + state: "fade_out" 0.0; \ + rel1 { to: "title_bg"; } \ + rel2 { to: "title_bg"; } \ + color: 255 255 255 0; \ + } \ + } + +#define TL_SLIDER_PAD_BOT \ + part { name: "slider_padding_b"; \ + type: RECT; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + min: 0 8; \ + fixed: 0 1; \ + visible: 0; \ + rel1.relative: 0.0 1.0; \ + align: 0.0 1.0; \ + } \ + description { \ + state: "hide" 0.0; \ + inherit: "default" 0.0; \ + min: 0 0; \ + } \ + } + +#define TL_TITLE_BOTTOM \ + part { name: "title"; \ + type: SWALLOW; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + min: 0 GL_TL_TITLE_H; \ + fixed: 0 1; \ + rel1.relative: 0.0 1.0; \ + align: 0.0 1.0; \ + } \ + } + +#define TL_TITLE_PAD_BOTTOM \ + part { name: "title_padding"; \ + type: RECT; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + min: 0 8; \ + fixed: 0 1; \ + visible: 0; \ + rel1 { relative: 0.0 0.0; to: "title"; } \ + rel2 { relative: 1.0 0.0; to: "title"; } \ + align: 0.0 1.0; \ + } \ + } + +#define TL_OVER_SOUND(src) +#define TL_VARIABLE +#define GL_TL_PLAY_SOUND +#define GL_TL_OVER(to_obj) + +#define TL_FOCUS_BG(N) \ + part { \ + name: N"_focus_bg"; \ + type: IMAGE; \ + repeat_events: 1; \ + description { \ + state: "default" 0.0; \ + visible: 0; \ + rel1 { relative: 0.0 0.0; to: N; } \ + rel2 { relative: 1.0 1.0; to: N; } \ + image.normal: GALLERY_EDC_IMAGE_THUMBS_BG_FOCUS; \ + image.border: 13 13 13 13; \ + } \ + description { \ + state: "enabled" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } + +#define TL_PG_FOCUS_BG(N) \ + program { \ + name: N"_go_mouse_down"; \ + signal: "mouse,down,1"; \ + source: N; \ + action: STATE_SET "enabled" 0.0; \ + target: N"_focus_bg"; \ + transition: ACCELERATE 0.2; \ + } \ + program { \ + name: N"_go_mouse_up"; \ + signal: "mouse,up,1"; \ + source: N; \ + action: STATE_SET "default" 0.0; \ + target: N"_focus_bg"; \ + transition: DECELERATE 0.2; \ + } + +#define TL_PADDING_LEFT(param_padding_name, param_padding_size, to_part) \ + part { name: to_part"_"param_padding_name; \ + type: RECT; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + min: param_padding_size 0; \ + fixed: 1 0; \ + visible: 0; \ + rel1.to: to_part; \ + rel2.to: to_part; \ + rel2.relative: 1.0 0.0; \ + rel2.offset: -30 0; \ + align: 0.0 0.0; \ + } \ + } + +#define TL_PADDING_TOP(param_padding_name, param_padding_size, to_part) \ + part { name: to_part"_"param_padding_name; \ + type: RECT; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + min: 0 param_padding_size; \ + fixed: 0 1; \ + visible: 0; \ + rel1.to: to_part; \ + rel2.to: to_part; \ + rel2.relative: 1.0 0.0; \ + align: 0.0 0.0; \ + } \ + } + +#define TL_PADDING_BOT(param_padding_name, param_padding_size, to_part) \ + part { name: to_part"_"param_padding_name; \ + type: RECT; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + min: 0 param_padding_size; \ + fixed: 0 1; \ + visible: 0; \ + rel1.to: to_part; \ + rel2.to: to_part; \ + rel1.relative: 0.0 1.0; \ + align: 0.0 1.0; \ + } \ + } + +#define TL_PADDINGS(to_part) \ + TL_PADDING_LEFT("padding.left", 2, to_part); \ + TL_PADDING_LEFT("padding.right", 2+THUMB_CHECK_W, to_part); \ + TL_PADDING_TOP("padding.top", 10, to_part); \ + TL_PADDING_TOP("padding.bottom", 10+THUMB_CHECK_H, to_part); \ + TL_PADDING_LEFT("padding.left2", 2, to_part); \ + TL_PADDING_LEFT("padding.right2", 2+MODE_W, to_part); \ + TL_PADDING_BOT("padding.top2", 2+MODE_H, to_part); \ + TL_PADDING_BOT("padding.bottom2", 2, to_part); \ + +#define TL_PART(part_name, rel1_x, rel1_y, rel1_to_x, rel1_to_y, rel2_x, rel2_y, rel2_to_x, rel2_to_y) \ + part { \ + name: part_name; \ + type: SWALLOW; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + rel1 { relative: rel1_x rel1_y; to_x: rel1_to_x; to_y: rel1_to_y; } \ + rel2 { relative: rel2_x rel2_y; to_x: rel2_to_x; to_y: rel2_to_y; } \ + } \ + } \ + TL_PADDINGS(part_name) \ + part { \ + name: part_name"_checkbox"; \ + type: SWALLOW; \ + description { \ + state: "default" 0.0; \ + rel1 {relative: 1.0 1.0; to_x: part_name"_padding.left"; to_y: part_name"_padding.top"; } \ + rel2 {relative: 1.0 1.0; to_x: part_name"_padding.right"; to_y: part_name"_padding.bottom"; } \ + } \ + } \ + TL_FOCUS_BG(part_name) \ + GL_TL_OVER(part_name) + + +images { + image : GALLERY_EDC_IMAGE_THUMBS_BG_FOCUS COMP; +} + +group { + name: "gallery/timeline_1"; + + TL_VARIABLE + + parts { + TL_BG + TL_BG_C + PART_PADDING_LEFT(11) + PART_PADDING_RIGHT(11) + TL_PART("contents_1_1", 1.0, 0.0, "elm.padding.left", "bg", 0.0, 1.0, "elm.padding.right", "bg"); + } + programs { + TL_PG_FOCUS_BG("contents_1_1"); + TL_OVER_SOUND("contents_1_1") + GL_TL_PLAY_SOUND + } +} + +group { + name: "gallery/timeline_1l"; + + TL_VARIABLE + + parts { + TL_BG + TL_BG_C + PART_PADDING_LEFT(11) + PART_PADDING_RIGHT(11) + TL_PART("contents_1_1", 1.0, 0.0, "elm.padding.left", "bg", 0.0, 1.0, "elm.padding.right", "bg"); + } + programs { + TL_PG_FOCUS_BG("contents_1_1"); + TL_OVER_SOUND("contents_1_1") + GL_TL_PLAY_SOUND + } +} + +group { + name: "gallery/timeline_2"; + + TL_VARIABLE + + parts { + TL_BG + TL_BG_C + PART_PADDING_LEFT(11) + PART_PADDING_RIGHT(11) + TL_PART("contents_2_1", 1.0, 0.0, "elm.padding.left", "bg", 0.0, 450/956, "elm.padding.right", "bg"); + TL_PART("contents_2_2", 1.0, (450+11)/956, "elm.padding.left", "bg", 0.0, 1.0, "elm.padding.right", "bg"); + } + programs { + TL_PG_FOCUS_BG("contents_2_1"); + TL_PG_FOCUS_BG("contents_2_2"); + TL_OVER_SOUND("contents_2_1") + TL_OVER_SOUND("contents_2_2") + GL_TL_PLAY_SOUND + } +} + +group { + name: "gallery/timeline_2l"; + + TL_VARIABLE + + parts { + TL_BG + TL_BG_C + PART_PADDING_LEFT(11) + PART_PADDING_RIGHT(11) + TL_PART("contents_2_1", 1.0, 0.0, "elm.padding.left", "bg", (11+830)/1280, 1.0, "bg", "bg"); + TL_PART("contents_2_2", (11+830+11)/1280, 0.0, "bg", "bg", 0.0, 1.0, "elm.padding.right", "bg"); + } + programs { + TL_PG_FOCUS_BG("contents_2_1"); + TL_PG_FOCUS_BG("contents_2_2"); + TL_OVER_SOUND("contents_2_1") + TL_OVER_SOUND("contents_2_2") + GL_TL_PLAY_SOUND + } +} + +group { + name: "gallery/timeline_3"; + + TL_VARIABLE + + parts { + TL_BG + TL_BG_C + PART_PADDING_LEFT(11) + PART_PADDING_RIGHT(11) + TL_PART("contents_3_1", 1.0, 0.0, "elm.padding.left", "bg", 0.0, 450/956, "elm.padding.right", "bg"); + TL_PART("contents_3_2", 1.0, (450+11)/956, "elm.padding.left", "bg", 450/720, 1.0, "bg", "bg"); + TL_PART("contents_3_3", (450+12)/720, (450+11)/956, "bg", "bg", 0.0, 1.0, "elm.padding.right", "bg"); + } + programs { + TL_PG_FOCUS_BG("contents_3_1"); + TL_PG_FOCUS_BG("contents_3_2"); + TL_PG_FOCUS_BG("contents_3_3"); + TL_OVER_SOUND("contents_3_1") + TL_OVER_SOUND("contents_3_2") + TL_OVER_SOUND("contents_3_3") + GL_TL_PLAY_SOUND + } +} + +group { + name: "gallery/timeline_3l"; + + TL_VARIABLE + + parts { + TL_BG + TL_BG_C + PART_PADDING_LEFT(11) + PART_PADDING_RIGHT(11) + TL_PART("contents_3_1", 1.0, 0.0, "elm.padding.left", "bg", (11+830)/1280, 1.0, "bg", "bg"); + TL_PART("contents_3_2", (11+830+11)/1280, 0.0, "bg", "bg", 0.0, (GL_TL_TITLE_H+8+181)/451, "elm.padding.right", "bg"); + TL_PART("contents_3_3", (11+830+11)/1280, (GL_TL_TITLE_H+8+181+11)/451, "bg", "bg", 0.0, 1.0, "elm.padding.right", "bg"); + } + programs { + TL_PG_FOCUS_BG("contents_3_1"); + TL_PG_FOCUS_BG("contents_3_2"); + TL_PG_FOCUS_BG("contents_3_3"); + TL_OVER_SOUND("contents_3_1") + TL_OVER_SOUND("contents_3_2") + TL_OVER_SOUND("contents_3_3") + GL_TL_PLAY_SOUND + } +} + +group { + name: "gallery/timeline_4"; + + TL_VARIABLE + + parts { + TL_BG + TL_BG_C + PART_PADDING_LEFT(11) + PART_PADDING_RIGHT(11) + TL_PART("contents_4_1", 1.0, 0.0, "elm.padding.left", "bg", 450/720, 450/956, "bg", "bg"); + TL_PART("contents_4_2", (450+12)/720, 0.0, "bg", "contents_4_1", 0.0, 542/956, "elm.padding.right", "bg"); + TL_PART("contents_4_3", 1.0, (450+11)/956, "elm.padding.left", "bg", 450/720, 1.0, "bg", "bg"); + TL_PART("contents_4_4", (450+12)/720, (542+11)/956, "bg", "bg", 0.0, 1.0, "elm.padding.right", "bg"); + } + programs { + TL_PG_FOCUS_BG("contents_4_1"); + TL_PG_FOCUS_BG("contents_4_2"); + TL_PG_FOCUS_BG("contents_4_3"); + TL_PG_FOCUS_BG("contents_4_4"); + TL_OVER_SOUND("contents_4_1") + TL_OVER_SOUND("contents_4_2") + TL_OVER_SOUND("contents_4_3") + TL_OVER_SOUND("contents_4_4") + GL_TL_PLAY_SOUND + } +} + +group { + name: "gallery/timeline_4l"; + + TL_VARIABLE + + parts { + TL_BG + TL_BG_C + PART_PADDING_LEFT(11) + PART_PADDING_RIGHT(11) + TL_PART("contents_4_1", 1.0, 0.0, "elm.padding.left", "bg", (11+415)/1280, 1.0, "bg", "bg"); + TL_PART("contents_4_2", (11+415+11)/1280, 0.0, "bg", "bg", (11+415*2+11)/1280, 1.0, "bg", "bg"); + TL_PART("contents_4_3", (11+415*2+11*2)/1280, 0.0, "bg", "bg", 0.0, (GL_TL_TITLE_H+8+181)/451, "elm.padding.right", "bg"); + TL_PART("contents_4_4", (11+415*2+11*2)/1280, (GL_TL_TITLE_H+8+181+11)/451, "bg", "bg", 0.0, 1.0, "elm.padding.right", "bg"); + } + programs { + TL_PG_FOCUS_BG("contents_4_1"); + TL_PG_FOCUS_BG("contents_4_2"); + TL_PG_FOCUS_BG("contents_4_3"); + TL_PG_FOCUS_BG("contents_4_4"); + TL_OVER_SOUND("contents_4_1") + TL_OVER_SOUND("contents_4_2") + TL_OVER_SOUND("contents_4_3") + TL_OVER_SOUND("contents_4_4") + GL_TL_PLAY_SOUND + } +} + +group { + name: "gallery/timeline_5"; + + TL_VARIABLE + + parts { + TL_BG + TL_BG_C + PART_PADDING_LEFT(11) + PART_PADDING_RIGHT(11) + TL_PART("contents_5_1", 1.0, 0.0, "elm.padding.left", "bg", 450/720, 450/956, "bg", "bg"); + TL_PART("contents_5_2", (450+12)/720, 0.0, "bg", "contents_5_1", 0.0, 1.0, "elm.padding.right", "contents_5_1"); + TL_PART("contents_5_3", 1.0, (450+11)/956, "elm.padding.left", "bg", 236/720, 1.0, "bg", "bg"); + TL_PART("contents_5_4", (236+12)/720, 0.0, "bg", "contents_5_3", 0.0, 240/495, "elm.padding.right", "contents_5_3"); + TL_PART("contents_5_5", (236+12)/720, (240+11)/495, "bg", "contents_5_3", 0.0, 1.0, "elm.padding.right", "bg"); + } + programs { + TL_PG_FOCUS_BG("contents_5_1"); + TL_PG_FOCUS_BG("contents_5_2"); + TL_PG_FOCUS_BG("contents_5_3"); + TL_PG_FOCUS_BG("contents_5_4"); + TL_PG_FOCUS_BG("contents_5_5"); + TL_OVER_SOUND("contents_5_1") + TL_OVER_SOUND("contents_5_2") + TL_OVER_SOUND("contents_5_3") + TL_OVER_SOUND("contents_5_4") + TL_OVER_SOUND("contents_5_5") + GL_TL_PLAY_SOUND + } +} + +group { + name: "gallery/timeline_5l"; + + TL_VARIABLE + + parts { + TL_BG + TL_BG_C + PART_PADDING_LEFT(11) + PART_PADDING_RIGHT(11) + TL_PART("contents_5_1", 1.0, 0.0, "elm.padding.left", "bg", (11+415)/1280, 1.0, "bg", "bg"); + TL_PART("contents_5_2", (11+415+11)/1280, 0.0, "bg", "bg", (11+415*2+11)/1280, (GL_TL_TITLE_H+8+181)/451, "bg", "bg"); + TL_PART("contents_5_3", (11+415+11)/1280, (GL_TL_TITLE_H+8+181+11)/451, "bg", "bg", (11+415*2+11)/1280, 1.0, "bg", "bg"); + TL_PART("contents_5_4", (11+415*2+11*2)/1280, 0.0, "bg", "bg", 0.0, (GL_TL_TITLE_H+8+203)/451, "elm.padding.right", "bg"); + TL_PART("contents_5_5", (11+415*2+11*2)/1280, (GL_TL_TITLE_H+8+203+11)/451, "bg", "bg", 0.0, 1.0, "elm.padding.right", "bg"); + } + programs { + TL_PG_FOCUS_BG("contents_5_1"); + TL_PG_FOCUS_BG("contents_5_2"); + TL_PG_FOCUS_BG("contents_5_3"); + TL_PG_FOCUS_BG("contents_5_4"); + TL_PG_FOCUS_BG("contents_5_5"); + TL_OVER_SOUND("contents_5_1") + TL_OVER_SOUND("contents_5_2") + TL_OVER_SOUND("contents_5_3") + TL_OVER_SOUND("contents_5_4") + TL_OVER_SOUND("contents_5_5") + GL_TL_PLAY_SOUND + } +} + +group { + name: "gallery/timeline_6"; + + TL_VARIABLE + + parts { + TL_BG + TL_BG_C + PART_PADDING_LEFT(11) + PART_PADDING_RIGHT(11) + TL_PART("contents_6_1", 1.0, 0.0, "elm.padding.left", "bg", 450/720, 380/956, "bg", "bg"); + TL_PART("contents_6_2", (450+12)/720, 0.0, "bg", "contents_6_1", 0.0, 450/956, "elm.padding.right", "bg"); + TL_PART("contents_6_3", 1.0, (380+11)/956, "elm.padding.left", "bg", 236/720, 1.0, "bg", "bg"); + TL_PART("contents_6_4", (236+12)/720, (380+11)/956, "bg", "bg", 450/720, (380+11+380)/956, "bg", "bg"); + TL_PART("contents_6_5", (450+12)/720, (450+11)/956, "bg", "bg", 0.0, 1.0, "elm.padding.right", "contents_6_4"); + TL_PART("contents_6_6", (236+12)/720, (380+11+380+11)/956, "bg", "bg", 0.0, 1.0, "elm.padding.right", "bg"); + } + programs { + TL_PG_FOCUS_BG("contents_6_1"); + TL_PG_FOCUS_BG("contents_6_2"); + TL_PG_FOCUS_BG("contents_6_3"); + TL_PG_FOCUS_BG("contents_6_4"); + TL_PG_FOCUS_BG("contents_6_5"); + TL_PG_FOCUS_BG("contents_6_6"); + TL_OVER_SOUND("contents_6_1") + TL_OVER_SOUND("contents_6_2") + TL_OVER_SOUND("contents_6_3") + TL_OVER_SOUND("contents_6_4") + TL_OVER_SOUND("contents_6_5") + TL_OVER_SOUND("contents_6_6") + GL_TL_PLAY_SOUND + } +} + +group { + name: "gallery/timeline_6l"; + + TL_VARIABLE + + parts { + TL_BG + TL_BG_C + PART_PADDING_LEFT(11) + PART_PADDING_RIGHT(11) + TL_PART("contents_6_1", 1.0, 0.0, "elm.padding.left", "bg", (11+415)/1280, 1.0, "bg", "bg"); + TL_PART("contents_6_2", (11+415+11)/1280, 0.0, "bg", "bg", (11+415*2+11)/1280, (GL_TL_TITLE_H+8+181)/451, "bg", "bg"); + TL_PART("contents_6_3", (11+415+11)/1280, (GL_TL_TITLE_H+8+181+11)/451, "bg", "bg", (11+415*2+11)/1280, 1.0, "bg", "bg"); + TL_PART("contents_6_4", (11+415*2+11*2)/1280, 0.0, "bg", "bg", 0.0, (GL_TL_TITLE_H+8+203)/451, "elm.padding.right", "bg"); + TL_PART("contents_6_5", (11+415*2+11*2)/1280, (GL_TL_TITLE_H+8+203+11)/451, "bg", "bg", (11+415*2+11*2+202)/1280, 1.0, "bg", "bg"); + TL_PART("contents_6_6", (11+415*2+11*3+202)/1280, (GL_TL_TITLE_H+8+203+11)/451, "bg", "bg", 0.0, 1.0, "elm.padding.right", "bg"); + } + programs { + TL_PG_FOCUS_BG("contents_6_1"); + TL_PG_FOCUS_BG("contents_6_2"); + TL_PG_FOCUS_BG("contents_6_3"); + TL_PG_FOCUS_BG("contents_6_4"); + TL_PG_FOCUS_BG("contents_6_5"); + TL_PG_FOCUS_BG("contents_6_6"); + TL_OVER_SOUND("contents_6_1") + TL_OVER_SOUND("contents_6_2") + TL_OVER_SOUND("contents_6_3") + TL_OVER_SOUND("contents_6_4") + TL_OVER_SOUND("contents_6_5") + TL_OVER_SOUND("contents_6_6") + GL_TL_PLAY_SOUND + } +} + +group { + name: "gallery/timeline_7"; + + TL_VARIABLE + + parts { + TL_BG + TL_BG_C + PART_PADDING_LEFT(11) + PART_PADDING_RIGHT(11) + TL_PART("contents_7_1", 1.0, 0.0, "elm.padding.left", "bg", 450/720, 380/956, "bg", "bg"); + TL_PART("contents_7_2", (450+12)/720, 0.0, "bg", "contents_7_1", 0.0, 450/956, "elm.padding.right", "bg"); + TL_PART("contents_7_3", 1.0, (380+11)/956, "elm.padding.left", "bg", 236/720, (380+11+280)/956, "bg", "bg"); + TL_PART("contents_7_4", (236+12)/720, (380+11)/956, "bg", "bg", 450/720, (380+11+380)/956, "bg", "bg"); + TL_PART("contents_7_5", (450+12)/720, (450+11)/956, "bg", "bg", 0.0, 1.0, "elm.padding.right", "contents_7_4"); + TL_PART("contents_7_6", 1.0, (380+11+280+11)/956, "elm.padding.left", "bg", 236/720, 1.0, "bg", "bg"); + TL_PART("contents_7_7", (236+12)/720, (380+11+380+11)/956, "bg", "bg", 0.0, 1.0, "elm.padding.right", "bg"); + } + programs { + TL_PG_FOCUS_BG("contents_7_1"); + TL_PG_FOCUS_BG("contents_7_2"); + TL_PG_FOCUS_BG("contents_7_3"); + TL_PG_FOCUS_BG("contents_7_4"); + TL_PG_FOCUS_BG("contents_7_5"); + TL_PG_FOCUS_BG("contents_7_6"); + TL_PG_FOCUS_BG("contents_7_7"); + TL_OVER_SOUND("contents_7_1") + TL_OVER_SOUND("contents_7_2") + TL_OVER_SOUND("contents_7_3") + TL_OVER_SOUND("contents_7_4") + TL_OVER_SOUND("contents_7_5") + TL_OVER_SOUND("contents_7_6") + TL_OVER_SOUND("contents_7_7") + GL_TL_PLAY_SOUND + } +} + +group { + name: "gallery/timeline_7l"; + + TL_VARIABLE + + parts { + TL_BG + TL_BG_C + PART_PADDING_LEFT(11) + PART_PADDING_RIGHT(11) + TL_PART("contents_7_1", 1.0, 0.0, "elm.padding.left", "bg", (11+415)/1280, 1.0, "bg", "bg"); + TL_PART("contents_7_2", (11+415+11)/1280, 0.0, "bg", "bg", (11+415*2+11)/1280, (GL_TL_TITLE_H+8+181)/451, "bg", "bg"); + TL_PART("contents_7_3", (11+415+11)/1280, (GL_TL_TITLE_H+8+181+11)/451, "bg", "bg", (11+415*2+11)/1280, 1.0, "bg", "bg"); + TL_PART("contents_7_4", (11+415*2+11*2)/1280, 0.0, "bg", "bg", (11+415*2+11*2+202)/1280, (GL_TL_TITLE_H+8+203)/451, "bg", "bg"); + TL_PART("contents_7_5", (11+415*2+11*3+202)/1280, 0.0, "bg", "bg", 0.0, (GL_TL_TITLE_H+8+203)/451, "elm.padding.right", "bg"); + TL_PART("contents_7_6", (11+415*2+11*2)/1280, (GL_TL_TITLE_H+8+203+11)/451, "bg", "bg", (11+415*2+11*2+202)/1280, 1.0, "bg", "bg"); + TL_PART("contents_7_7", (11+415*2+11*3+202)/1280, (GL_TL_TITLE_H+8+203+11)/451, "bg", "bg", 0.0, 1.0, "elm.padding.right", "bg"); + } + programs { + TL_PG_FOCUS_BG("contents_7_1"); + TL_PG_FOCUS_BG("contents_7_2"); + TL_PG_FOCUS_BG("contents_7_3"); + TL_PG_FOCUS_BG("contents_7_4"); + TL_PG_FOCUS_BG("contents_7_5"); + TL_PG_FOCUS_BG("contents_7_6"); + TL_PG_FOCUS_BG("contents_7_7"); + TL_OVER_SOUND("contents_7_1") + TL_OVER_SOUND("contents_7_2") + TL_OVER_SOUND("contents_7_3") + TL_OVER_SOUND("contents_7_4") + TL_OVER_SOUND("contents_7_5") + TL_OVER_SOUND("contents_7_6") + TL_OVER_SOUND("contents_7_7") + GL_TL_PLAY_SOUND + } +} + +group { + name: "gallery/timeline_8"; + + TL_VARIABLE + + parts { + TL_BG + TL_BG_C + PART_PADDING_LEFT(11) + PART_PADDING_RIGHT(11) + TL_PART("contents_8_1", 1.0, 0.0, "elm.padding.left", "bg", 450/720, 380/956, "bg", "bg"); + TL_PART("contents_8_2", (450+12)/720, 0.0, "bg", "contents_8_1", 0.0, 450/956, "elm.padding.right", "bg"); + TL_PART("contents_8_3", 1.0, (380+11)/956, "elm.padding.left", "bg", 236/720, (380+11+280)/956, "bg", "bg"); + TL_PART("contents_8_4", (236+12)/720, (380+11)/956, "bg", "bg", 450/720, (380+11+380)/956, "bg", "bg"); + TL_PART("contents_8_5", (450+12)/720, (450+11)/956, "bg", "bg", 0.0, 1.0, "elm.padding.right", "contents_8_4"); + TL_PART("contents_8_6", 1.0, (380+11+280+11)/956, "elm.padding.left", "bg", 236/720, 1.0, "bg", "bg"); + TL_PART("contents_8_7", (236+12)/720, (380+11+380+11)/956, "bg", "bg", (236+12+150)/720, 1.0, "bg", "bg"); + TL_PART("contents_8_8", (236+12+150+12)/720, 0.0, "bg", "contents_8_7", 0.0, 1.0, "elm.padding.right", "bg"); + } + programs { + TL_PG_FOCUS_BG("contents_8_1"); + TL_PG_FOCUS_BG("contents_8_2"); + TL_PG_FOCUS_BG("contents_8_3"); + TL_PG_FOCUS_BG("contents_8_4"); + TL_PG_FOCUS_BG("contents_8_5"); + TL_PG_FOCUS_BG("contents_8_6"); + TL_PG_FOCUS_BG("contents_8_7"); + TL_PG_FOCUS_BG("contents_8_8"); + TL_OVER_SOUND("contents_8_1") + TL_OVER_SOUND("contents_8_2") + TL_OVER_SOUND("contents_8_3") + TL_OVER_SOUND("contents_8_4") + TL_OVER_SOUND("contents_8_5") + TL_OVER_SOUND("contents_8_6") + TL_OVER_SOUND("contents_8_7") + TL_OVER_SOUND("contents_8_8") + GL_TL_PLAY_SOUND + } +} + +group { + name: "gallery/timeline_8l"; + + TL_VARIABLE + + parts { + TL_BG + TL_BG_C + PART_PADDING_LEFT(11) + PART_PADDING_RIGHT(11) + TL_PART("contents_8_1", 1.0, 0.0, "elm.padding.left", "bg", (11+415)/1280, 1.0, "bg", "bg"); + TL_PART("contents_8_2", (11+415+11)/1280, 0.0, "bg", "bg", (11+415*2+11)/1280, (GL_TL_TITLE_H+8+181)/451, "bg", "bg"); + TL_PART("contents_8_3", (11+415+11)/1280, (GL_TL_TITLE_H+8+181+11)/451, "bg", "bg", (11+415+11+202)/1280, 1.0, "bg", "bg"); + TL_PART("contents_8_4", (11+415+11+202+11)/1280, (GL_TL_TITLE_H+8+181+11)/451, "bg", "bg", (11+415*2+11)/1280, 1.0, "bg", "bg"); + TL_PART("contents_8_5", (11+415*2+11*2)/1280, 0.0, "bg", "bg", (11+415*2+11*2+202)/1280, (GL_TL_TITLE_H+8+203)/451, "bg", "bg"); + TL_PART("contents_8_6", (11+415*2+11*3+202)/1280, 0.0, "bg", "bg", 0.0, (GL_TL_TITLE_H+8+203)/451, "elm.padding.right", "bg"); + TL_PART("contents_8_7", (11+415*2+11*2)/1280, (GL_TL_TITLE_H+8+203+11)/451, "bg", "bg", (11+415*2+11*2+202)/1280, 1.0, "bg", "bg"); + TL_PART("contents_8_8", (11+415*2+11*3+202)/1280, (GL_TL_TITLE_H+8+203+11)/451, "bg", "bg", 0.0, 1.0, "elm.padding.right", "bg"); + } + programs { + TL_PG_FOCUS_BG("contents_8_1"); + TL_PG_FOCUS_BG("contents_8_2"); + TL_PG_FOCUS_BG("contents_8_3"); + TL_PG_FOCUS_BG("contents_8_4"); + TL_PG_FOCUS_BG("contents_8_5"); + TL_PG_FOCUS_BG("contents_8_6"); + TL_PG_FOCUS_BG("contents_8_7"); + TL_PG_FOCUS_BG("contents_8_8"); + TL_OVER_SOUND("contents_8_1") + TL_OVER_SOUND("contents_8_2") + TL_OVER_SOUND("contents_8_3") + TL_OVER_SOUND("contents_8_4") + TL_OVER_SOUND("contents_8_5") + TL_OVER_SOUND("contents_8_6") + TL_OVER_SOUND("contents_8_7") + TL_OVER_SOUND("contents_8_8") + GL_TL_PLAY_SOUND + } +} + +#define TL_15_ITEM(N, X, Y) \ + TL_PART("contents_15_"N, (224.6*(X-1)+(X-1)*12)/698, (181.6*(Y-1)+(Y-1)*12)/956, "contents_bg", "contents_bg", (224.6*X+(X-1)*12)/698, (181.6*Y+(Y-1)*12)/956, "contents_bg", "contents_bg"); + + +#define TL_15_PGS \ + TL_PG_FOCUS_BG("contents_15_1") \ + TL_PG_FOCUS_BG("contents_15_2") \ + TL_PG_FOCUS_BG("contents_15_3") \ + TL_PG_FOCUS_BG("contents_15_4") \ + TL_PG_FOCUS_BG("contents_15_5") \ + TL_PG_FOCUS_BG("contents_15_6") \ + TL_PG_FOCUS_BG("contents_15_7") \ + TL_PG_FOCUS_BG("contents_15_8") \ + TL_PG_FOCUS_BG("contents_15_9") \ + TL_PG_FOCUS_BG("contents_15_10") \ + TL_PG_FOCUS_BG("contents_15_11") \ + TL_PG_FOCUS_BG("contents_15_12") \ + TL_PG_FOCUS_BG("contents_15_13") \ + TL_PG_FOCUS_BG("contents_15_14") \ + TL_PG_FOCUS_BG("contents_15_15") \ + TL_OVER_SOUND("contents_15_1") \ + TL_OVER_SOUND("contents_15_2") \ + TL_OVER_SOUND("contents_15_3") \ + TL_OVER_SOUND("contents_15_4") \ + TL_OVER_SOUND("contents_15_5") \ + TL_OVER_SOUND("contents_15_6") \ + TL_OVER_SOUND("contents_15_7") \ + TL_OVER_SOUND("contents_15_8") \ + TL_OVER_SOUND("contents_15_9") \ + TL_OVER_SOUND("contents_15_10") \ + TL_OVER_SOUND("contents_15_11") \ + TL_OVER_SOUND("contents_15_12") \ + TL_OVER_SOUND("contents_15_13") \ + TL_OVER_SOUND("contents_15_14") \ + TL_OVER_SOUND("contents_15_15") \ + GL_TL_PLAY_SOUND + + +group { + name: "gallery/timeline_15"; + + TL_VARIABLE + + parts { + TL_BG + TL_BG_C + PART_PADDING_LEFT(11) + PART_PADDING_RIGHT(11) + + part { + name: "contents_bg"; + type: SWALLOW; + mouse_events: 1; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: 1.0 0.0; to_x: "elm.padding.left"; to_y: "bg"; } + rel2 { relative: 0.0 1.0; to_x: "elm.padding.right"; to_y: "bg"; } + } + } + + TL_15_ITEM(1, 1, 1) + TL_15_ITEM(2, 2, 1) + TL_15_ITEM(3, 3, 1) + TL_15_ITEM(4, 1, 2) + TL_15_ITEM(5, 2, 2) + TL_15_ITEM(6, 3, 2) + TL_15_ITEM(7, 1, 3) + TL_15_ITEM(8, 2, 3) + TL_15_ITEM(9, 3, 3) + TL_15_ITEM(10, 1, 4) + TL_15_ITEM(11, 2, 4) + TL_15_ITEM(12, 3, 4) + TL_15_ITEM(13, 1, 5) + TL_15_ITEM(14, 2, 5) + TL_15_ITEM(15, 3, 5) + } + programs { + TL_15_PGS + } +} + + +#define TL_15_ITEM_L(N, X, Y) \ + TL_PART("contents_15_"N, (242*(X-1)+(X-1)*12)/1258, (142.3*(Y-1)+(Y-1)*12)/451, "contents_bg", "contents_bg", (242*X+(X-1)*12)/1258, (142.3*Y+(Y-1)*12)/451, "contents_bg", "contents_bg"); + +group { + name: "gallery/timeline_15l"; + + TL_VARIABLE + + parts { + TL_BG + TL_BG_C + PART_PADDING_LEFT(11) + PART_PADDING_RIGHT(11) + + part { + name: "contents_bg"; + type: SWALLOW; + mouse_events: 1; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: 1.0 0.0; to_x: "elm.padding.left"; to_y: "bg"; } + rel2 { relative: 0.0 1.0; to_x: "elm.padding.right"; to_y: "bg"; } + color: 255 0 0 100; + } + } + + TL_15_ITEM_L(1, 1, 1) + TL_15_ITEM_L(2, 2, 1) + TL_15_ITEM_L(3, 3, 1) + TL_15_ITEM_L(4, 4, 1) + TL_15_ITEM_L(5, 5, 1) + TL_15_ITEM_L(6, 1, 2) + TL_15_ITEM_L(7, 2, 2) + TL_15_ITEM_L(8, 3, 2) + TL_15_ITEM_L(9, 4, 2) + TL_15_ITEM_L(10, 5, 2) + TL_15_ITEM_L(11, 1, 3) + TL_15_ITEM_L(12, 2, 3) + TL_15_ITEM_L(13, 3, 3) + TL_15_ITEM_L(14, 4, 3) + TL_15_ITEM_L(15, 5, 3) + } + programs { + TL_15_PGS + } +} + +group { + name: "elm/gengrid/item/gallery/timeline_page/default"; + + data.item: "contents" "elm.swallow.icon"; + + parts { + part { + name: "bg"; + type: RECT; + description { + state: "default" 0.0; + color: 0 0 0 0; + rel1 { relative: 0.0 0.0; offset: 0 0;} + rel2 { relative: 1.0 1.0; offset: 0 0;} + } + } + part { + name: "icon_bg"; + type: RECT; + scale : 1; + description { + state: "default" 0.0; + align: 0.5 0.5; + visible: 0; + color: 0 0 0 0; + rel1 { relative: 0.0 0.0;to:"bg"; } + rel2 { relative: 1.0 1.0;to:"bg"; } + + } + } + part { + name: "elm.swallow.icon"; + type: SWALLOW; + mouse_events: 1; + description { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; to: "icon_bg"; } + rel2 { relative: 1.0 1.0; to: "icon_bg"; } + } + } + } +} + +group { + name: "naviframe_title"; + parts { + part { name: "title_bg"; + type: RECT; + mouse_events: 1; + scale: 0; + description { + state: "default" 0.0; + min: 0 111; + align: 0.0 0.0; + visible: 0; + } + description { state: "hide" 0.0; + inherit: "default" 0.0; + min: 0 0; + max: 0 0; + fixed: 1 1; + } + } + part { name: "top_left_padding"; + type: RECT; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + min: 16 32; + fixed: 1 1; + align: 0.0 0.0; + rel1 { relative: 0.0 0.0; to: "title_bg"; } + rel2 { relative: 0.0 0.0; to: "title_bg"; } + visible: 0; + } + description { state: "hide" 0.0; + inherit: "default" 0.0; + min: 0 0; + max: 0 0; + fixed: 1 1; + } + } + part { name: "bottom_right_padding"; + type: RECT; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + min: 16 11; + 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: "hide" 0.0; + inherit: "default" 0.0; + min: 0 0; + max: 0 0; + fixed: 1 1; + } + } + part { name: "title"; + type: SWALLOW; + scale: 1; + description { + state: "default" 0.0; + align: 0.0 0.0; + rel1 { relative: 1.0 1.0; to: "top_left_padding"; } + rel2 { relative: 0.0 0.0; to: "bottom_right_padding"; } + } + description { state: "hide" 0.0; + inherit: "default" 0.0; + min: 0 0; + max: 0 0; + fixed: 1 1; + } + } + } + programs { + program { name: "title_show"; + signal: "elm,state,title,show"; + source: "elm"; + script { + set_state(PART:"title_bg", "default", 0.0); + set_state(PART:"top_left_padding", "default", 0.0); + set_state(PART:"bottom_right_padding", "default", 0.0); + set_state(PART:"title", "default", 0.0); + } + } + program { name: "title_hide"; + signal: "elm,state,title,hide"; + source: "elm"; + script { + set_state(PART:"title_bg", "hide", 0.0); + set_state(PART:"top_left_padding", "hide", 0.0); + set_state(PART:"bottom_right_padding", "hide", 0.0); + set_state(PART:"title", "hide", 0.0); + } + } + } +} + +group { + name: "naviframe_title_text"; + parts { + part { name: "title_bg"; + type: RECT; + mouse_events: 1; + scale: 1; + description { + state: "default" 0.0; + min: 126 68; + fixed: 0 1; + visible: 1; + color: 255 0 255 155; + } + } + part { + name: "text"; + type: TEXT; + scale: 1; + description { + state: "default" 0.0; + visible: 1; + align: 0.0 0.5; + rel1 { relative: 0.0 0.0; to: "title_bg"; } + rel2 { relative: 1.0 1.0; to: "title_bg"; } + color: 0 0 0 255; + text { + font: "Tizen:style=Medium"; + text_class: "tizen"; + size: 56; + text: ""; + align: 0.0 0.5; + } + } + } + } +} + +/* View layout to hold slider */ +group { + name: "gallery/timeline"; + + parts { + TL_BG + TL_BG_C + TL_TITLE_BG_TOP + TL_TITLE_TOP + TL_SLIDER_PAD_BOT + + part { + name: "elm.swallow.slider"; + type: SWALLOW; + mouse_events: 1; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: 0.0 1.0; to_x: "bg"; to_y: "title_bg"; } + rel2 { relative: 1.0 0.0; to_x: "bg"; to_y: "slider_padding_b"; } + } + } + } + programs { + program { + name: "swallow_title_show"; + signal: "elm,swallow_title,state,show"; + source: "elm"; + script { + set_state(PART:"title_bg", "default", 0.0); + set_state(PART:"slider_padding_b", "default", 0.0); + } + } + program { + name: "swallow_slider_hide"; + signal: "elm,swallow_title,state,hide"; + source: "elm"; + script { + set_state(PART:"title_bg", "hide", 0.0); + set_state(PART:"slider_padding_b", "hide", 0.0); + } + } + program { + name: "title_fade_out"; + signal: "elm,action,title,fade_out"; + source: "elm"; + action: STATE_SET "fade_out" 0.0; + transition: DECELERATE 0.5; + target: "title_clip"; + } + program { + name: "title2_fade_in"; + signal: "elm,action,title2,fade_in"; + source: "elm"; + action: STATE_SET "fade_in" 0.0; + transition: DECELERATE 0.5; + target: "title_clip2"; + } + program { + name: "title2_show"; + signal: "elm,state,title2,show,deferred"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "title2"; + transition: DECELERATE 0.5; + after: "show_finished"; + } + program { + name: "title_hide"; + signal: "elm,state,title,hide,deferred"; + source: "elm"; + action: STATE_SET "top" 0.0; + target: "title"; + transition: DECELERATE 0.5; + after: "hide_finished"; + } + program { + name: "title_show"; + signal: "elm,state,title,show"; + source: "elm"; + script { + set_state(PART:"title_clip2", "default", 0.0); + set_state(PART:"title_clip", "default", 0.0); + set_state(PART:"title", "default", 0.0); + } + } + program { + name: "title2_created"; + signal: "elm,state,title2,created"; + source: "elm"; + script { + set_state(PART:"title_clip2", "bottom", 0.0); + set_state(PART:"title_clip", "top", 0.0); + set_state(PART:"title2", "bottom", 0.0); + } + } + program { name: "show_finished"; + action: SIGNAL_EMIT "elm,action,title2,show,finished" ""; + } + program { name: "hide_finished"; + action: SIGNAL_EMIT "elm,action,title,hide,finished" ""; + } + } +} + +group{ name: "timeline_gridview"; + parts { + part { name: "group_date_bg"; + type: RECT; + description { + rel1.relative : 0 0; + rel2.relative : 1 1; + min : 0 60; + max: -1 60; + align : 0 0; + color: 255 255 255 255; + } + } + part { name: "group_date"; + type: TEXT; + scale: 1; + description { + rel1.relative : 0 0; + rel1.to: "group_date_bg"; + rel2.relative : 1 1; + rel2.to: "group_date_bg"; + text { + text: "Select All"; + size: 16; + align: 0.05 0.8; + } + color: 0 0 0 255; + } + } + part { name: "grid"; + type: SWALLOW; + description { + rel1.relative : 0 1; + rel1.to : "group_date_bg"; + rel2.relative : 1 1; + align : 0 0; + } + } + } + script { + public message(Msg_Type:type,id, ...) + { + if((type == MSG_INT) && (id == 2)) + { + new a; + new x, y; + a = getarg(2); + custom_state(PART:"grid","default",0.0); + get_state_val(PART:"grid",STATE_MIN,x,y); + set_state_val(PART:"grid",STATE_MIN,x,a); + get_state_val(PART:"grid",STATE_MAX,x,y); + set_state_val(PART:"grid",STATE_MAX,x,a); + set_state(PART:"grid","custom",0.0); + } + } + } +} + +group{ name: "timeline_gridview_date_toast"; + parts { + part{ + name: "bg"; + type: RECT; + mouse_events: 1; + repeat_events: 1; + description { + rel1.relative: 0 0; + rel2.relative: 1 1; + color: 255 255 255 255; + } + } + part{ + name: "bg_left_vertical_line"; + type: RECT; + mouse_events: 1; + repeat_events: 1; + description { + rel1.relative: 0 0; + rel2.relative: 0 1; + rel1.to: "bg"; + rel2.to: "bg"; + min: 2 0; + color: 0 0 255 255; + } + } + part{ + name: "bg_right_vertical_line"; + type: RECT; + mouse_events: 1; + repeat_events: 1; + description { + rel1.relative: 1 0; + rel2.relative: 1 1; + rel1.to: "bg"; + rel2.to: "bg"; + min: 2 0; + align: 0.5 0.5; + color: 0 0 255 255; + } + } + part{ + name: "bg_up_horizontal_line"; + type: RECT; + mouse_events: 1; + repeat_events: 1; + description { + rel1.relative: 0 0; + rel2.relative: 1 0; + rel1.to: "bg"; + rel2.to: "bg"; + min: 0 2; + color: 0 0 255 255; + } + } + part{ + name: "bg_down_horizontal_line"; + type: RECT; + mouse_events: 1; + repeat_events: 1; + description { + rel1.relative: 0 1; + rel2.relative: 1 1; + rel1.to: "bg"; + rel2.to: "bg"; + min: 0 2; + color: 0 0 255 255; + } + } + part{ + name: "text"; + type: TEXT; + mouse_events: 1; + repeat_events: 1; + description { + rel1.relative: 0 0; + rel1.to: "bg"; + rel2.relative: 1 1; + rel2.to: "bg"; + text { + text: "Day"; + size: 32; + align: 0.5 0.5; + } + color: 0 0 255 255; + } + } + } +} + +group{ + name: "elm/genlist/item/genlist_group_date/default"; + data.item: "texts" "elm.text"; + data.item: "contents" "elm.swallow"; + data.item: "selectraise" "on"; + data.item: "stacking" "above"; + parts{ + part{ + name: "bg"; + type: RECT; + description{ + state: "default" 0.0; + color: 255 255 255 255; + rel1.relative: 0.0 0.0; + rel2.relative: 1.0 1.0; + min: 0 60; + max: -1 200; + visible: 1; + } + } + part{ + name: "elm.text"; + type: TEXT; + scale: 1; + description{ + state: "default" 0.0; + rel1 { relative: 0.05 0.0; to: "bg"; } + rel2 { relative: 1.0 1.0; to: "bg"; } + color: 0 0 0 255; + text{ + size: 16; + align: 0.0 0.5; + } + } + } + part{ + name: "elm.swallow"; + type: SWALLOW; + description{ + state: "default" 0.0; + rel1 { relative: 0.6 0.0; to: "bg"; } + rel2 { relative: 1.0 1.0; to: "bg"; } + align: 0.5 0.5; + } + } + } +} + +TIME_VIEW_GENLIST_STYLE(content_180, 180) +TIME_VIEW_GENLIST_STYLE(content_240, 240) +TIME_VIEW_GENLIST_STYLE(content_90, 90) +TIME_VIEW_GENLIST_STYLE(content_214, 214) +TIME_VIEW_GENLIST_STYLE(content_183,183) +TIME_VIEW_GENLIST_STYLE(content_128, 128) +TIME_VIEW_GENLIST_STYLE(content_135, 135) +TIME_VIEW_GENLIST_STYLE(content_68, 68) +TIME_VIEW_GENLIST_STYLE(content_160, 160) +TIME_VIEW_GENLIST_STYLE(content_138, 138) +TIME_VIEW_GENLIST_STYLE(content_96, 96) +TIME_VIEW_GENLIST_STYLE(content_120, 120) +TIME_VIEW_GENLIST_STYLE(content_60, 60) +TIME_VIEW_GENLIST_STYLE(content_134, 134) +TIME_VIEW_GENLIST_STYLE(content_115, 115) +TIME_VIEW_GENLIST_STYLE(content_80, 80) + +group { + name: "timeline"; + parts { + part { + name : "elm.rect"; + type: RECT; + description { + state : "default" 0.0; + rel1.relative: 0 0; + rel2.relative: 1 1; + align : 0 0; + color : 255 255 255 255; + } + } + part { + name : "elm.swallow"; + type: SWALLOW; + description { + state : "default" 0.0; + rel1.relative: 0 0; + rel2.relative: 1 1; + align : 0 0; + } + } + } +} \ No newline at end of file diff --git a/res/black_theme/edc/images/00_EditField_clear.png b/res/black_theme/edc/images/00_EditField_clear.png new file mode 100755 index 0000000..ef5945d Binary files /dev/null and b/res/black_theme/edc/images/00_EditField_clear.png differ diff --git a/res/black_theme/edc/images/00_badge_bg.png b/res/black_theme/edc/images/00_badge_bg.png new file mode 100644 index 0000000..15d94a4 Binary files /dev/null and b/res/black_theme/edc/images/00_badge_bg.png differ diff --git a/res/black_theme/edc/images/00_button_icon_arrow.png b/res/black_theme/edc/images/00_button_icon_arrow.png new file mode 100755 index 0000000..22e180b Binary files /dev/null and b/res/black_theme/edc/images/00_button_icon_arrow.png differ diff --git a/res/black_theme/edc/images/00_button_icon_arrow_press.png b/res/black_theme/edc/images/00_button_icon_arrow_press.png new file mode 100755 index 0000000..f622c7b Binary files /dev/null and b/res/black_theme/edc/images/00_button_icon_arrow_press.png differ diff --git a/res/black_theme/edc/images/00_button_reveal.png b/res/black_theme/edc/images/00_button_reveal.png new file mode 100755 index 0000000..39acc3b Binary files /dev/null and b/res/black_theme/edc/images/00_button_reveal.png differ diff --git a/res/black_theme/edc/images/00_button_reveal_press.png b/res/black_theme/edc/images/00_button_reveal_press.png new file mode 100755 index 0000000..06dd866 Binary files /dev/null and b/res/black_theme/edc/images/00_button_reveal_press.png differ diff --git a/res/black_theme/edc/images/00_check_bg_dim.png b/res/black_theme/edc/images/00_check_bg_dim.png new file mode 100755 index 0000000..d95649c Binary files /dev/null and b/res/black_theme/edc/images/00_check_bg_dim.png differ diff --git a/res/black_theme/edc/images/00_circle_thumbnail_bg.png b/res/black_theme/edc/images/00_circle_thumbnail_bg.png new file mode 100755 index 0000000..0bbb035 Binary files /dev/null and b/res/black_theme/edc/images/00_circle_thumbnail_bg.png differ diff --git a/res/black_theme/edc/images/00_grid_overscrolling_bottom.png b/res/black_theme/edc/images/00_grid_overscrolling_bottom.png new file mode 100755 index 0000000..46bb9b8 Binary files /dev/null and b/res/black_theme/edc/images/00_grid_overscrolling_bottom.png differ diff --git a/res/black_theme/edc/images/00_grid_overscrolling_left.png b/res/black_theme/edc/images/00_grid_overscrolling_left.png new file mode 100755 index 0000000..2fb5ef5 Binary files /dev/null and b/res/black_theme/edc/images/00_grid_overscrolling_left.png differ diff --git a/res/black_theme/edc/images/00_grid_overscrolling_right.png b/res/black_theme/edc/images/00_grid_overscrolling_right.png new file mode 100755 index 0000000..6d08148 Binary files /dev/null and b/res/black_theme/edc/images/00_grid_overscrolling_right.png differ diff --git a/res/black_theme/edc/images/00_grid_overscrolling_top.png b/res/black_theme/edc/images/00_grid_overscrolling_top.png new file mode 100755 index 0000000..d0ba116 Binary files /dev/null and b/res/black_theme/edc/images/00_grid_overscrolling_top.png differ diff --git a/res/black_theme/edc/images/00_more_popup_press.png b/res/black_theme/edc/images/00_more_popup_press.png new file mode 100755 index 0000000..a1ce14f Binary files /dev/null and b/res/black_theme/edc/images/00_more_popup_press.png differ diff --git a/res/black_theme/edc/images/00_overscrolling_left.png b/res/black_theme/edc/images/00_overscrolling_left.png new file mode 100755 index 0000000..b7da1ad Binary files /dev/null and b/res/black_theme/edc/images/00_overscrolling_left.png differ diff --git a/res/black_theme/edc/images/00_overscrolling_right.png b/res/black_theme/edc/images/00_overscrolling_right.png new file mode 100755 index 0000000..ce5a939 Binary files /dev/null and b/res/black_theme/edc/images/00_overscrolling_right.png differ diff --git a/res/black_theme/edc/images/00_overscrolling_top.png b/res/black_theme/edc/images/00_overscrolling_top.png new file mode 100755 index 0000000..940f559 Binary files /dev/null and b/res/black_theme/edc/images/00_overscrolling_top.png differ diff --git a/res/black_theme/edc/images/00_popup_dropdown_bg.png b/res/black_theme/edc/images/00_popup_dropdown_bg.png new file mode 100755 index 0000000..af28e59 Binary files /dev/null and b/res/black_theme/edc/images/00_popup_dropdown_bg.png differ diff --git a/res/black_theme/edc/images/00_popup_dropdown_title_bg.png b/res/black_theme/edc/images/00_popup_dropdown_title_bg.png new file mode 100755 index 0000000..a8d29c8 Binary files /dev/null and b/res/black_theme/edc/images/00_popup_dropdown_title_bg.png differ diff --git a/res/black_theme/edc/images/00_popup_dropdown_title_bg_focus.png b/res/black_theme/edc/images/00_popup_dropdown_title_bg_focus.png new file mode 100755 index 0000000..0570886 Binary files /dev/null and b/res/black_theme/edc/images/00_popup_dropdown_title_bg_focus.png differ diff --git a/res/black_theme/edc/images/00_popup_dropdown_title_bg_press.png b/res/black_theme/edc/images/00_popup_dropdown_title_bg_press.png new file mode 100755 index 0000000..48f0730 Binary files /dev/null and b/res/black_theme/edc/images/00_popup_dropdown_title_bg_press.png differ diff --git a/res/black_theme/edc/images/00_popup_overscrolling_bottom.png b/res/black_theme/edc/images/00_popup_overscrolling_bottom.png new file mode 100755 index 0000000..ded48ee Binary files /dev/null and b/res/black_theme/edc/images/00_popup_overscrolling_bottom.png differ diff --git a/res/black_theme/edc/images/00_popup_overscrolling_left.png b/res/black_theme/edc/images/00_popup_overscrolling_left.png new file mode 100755 index 0000000..a371da3 Binary files /dev/null and b/res/black_theme/edc/images/00_popup_overscrolling_left.png differ diff --git a/res/black_theme/edc/images/00_popup_overscrolling_right.png b/res/black_theme/edc/images/00_popup_overscrolling_right.png new file mode 100755 index 0000000..01ec695 Binary files /dev/null and b/res/black_theme/edc/images/00_popup_overscrolling_right.png differ diff --git a/res/black_theme/edc/images/00_popup_overscrolling_top.png b/res/black_theme/edc/images/00_popup_overscrolling_top.png new file mode 100755 index 0000000..c6e34c6 Binary files /dev/null and b/res/black_theme/edc/images/00_popup_overscrolling_top.png differ diff --git a/res/black_theme/edc/images/00_popup_scroll.png b/res/black_theme/edc/images/00_popup_scroll.png new file mode 100755 index 0000000..525a7f4 Binary files /dev/null and b/res/black_theme/edc/images/00_popup_scroll.png differ diff --git a/res/black_theme/edc/images/00_popup_scroll_h.png b/res/black_theme/edc/images/00_popup_scroll_h.png new file mode 100755 index 0000000..af613fb Binary files /dev/null and b/res/black_theme/edc/images/00_popup_scroll_h.png differ diff --git a/res/black_theme/edc/images/00_popup_scroll_v.png b/res/black_theme/edc/images/00_popup_scroll_v.png new file mode 100755 index 0000000..c1cbddb Binary files /dev/null and b/res/black_theme/edc/images/00_popup_scroll_v.png differ diff --git a/res/black_theme/edc/images/00_scroll_bar.png b/res/black_theme/edc/images/00_scroll_bar.png new file mode 100755 index 0000000..9930bbf Binary files /dev/null and b/res/black_theme/edc/images/00_scroll_bar.png differ diff --git a/res/black_theme/edc/images/00_search_edit_field_bg.png b/res/black_theme/edc/images/00_search_edit_field_bg.png new file mode 100755 index 0000000..8424339 Binary files /dev/null and b/res/black_theme/edc/images/00_search_edit_field_bg.png differ diff --git a/res/black_theme/edc/images/00_search_edit_field_bg_focus.png b/res/black_theme/edc/images/00_search_edit_field_bg_focus.png new file mode 100755 index 0000000..836ae1b Binary files /dev/null and b/res/black_theme/edc/images/00_search_edit_field_bg_focus.png differ diff --git a/res/black_theme/edc/images/00_thumbs_bg_focus.png b/res/black_theme/edc/images/00_thumbs_bg_focus.png new file mode 100755 index 0000000..29bfe6a Binary files /dev/null and b/res/black_theme/edc/images/00_thumbs_bg_focus.png differ diff --git a/res/black_theme/edc/images/00_title_bg.png b/res/black_theme/edc/images/00_title_bg.png new file mode 100755 index 0000000..51fc782 Binary files /dev/null and b/res/black_theme/edc/images/00_title_bg.png differ diff --git a/res/black_theme/edc/images/00_winset_list_progress_bg.png b/res/black_theme/edc/images/00_winset_list_progress_bg.png new file mode 100755 index 0000000..5e83560 Binary files /dev/null and b/res/black_theme/edc/images/00_winset_list_progress_bg.png differ diff --git a/res/black_theme/edc/images/00_winset_title_tabbar_bg.png b/res/black_theme/edc/images/00_winset_title_tabbar_bg.png new file mode 100755 index 0000000..aafefef Binary files /dev/null and b/res/black_theme/edc/images/00_winset_title_tabbar_bg.png differ diff --git a/res/black_theme/edc/images/T01_Nocontents_picture.png b/res/black_theme/edc/images/T01_Nocontents_picture.png new file mode 100755 index 0000000..6c52698 Binary files /dev/null and b/res/black_theme/edc/images/T01_Nocontents_picture.png differ diff --git a/res/black_theme/edc/images/T01_album_edit_check_bg.png b/res/black_theme/edc/images/T01_album_edit_check_bg.png new file mode 100755 index 0000000..efda6ba Binary files /dev/null and b/res/black_theme/edc/images/T01_album_edit_check_bg.png differ diff --git a/res/black_theme/edc/images/T01_album_edit_check_off.png b/res/black_theme/edc/images/T01_album_edit_check_off.png new file mode 100755 index 0000000..d2c3348 Binary files /dev/null and b/res/black_theme/edc/images/T01_album_edit_check_off.png differ diff --git a/res/black_theme/edc/images/T01_album_edit_check_on.png b/res/black_theme/edc/images/T01_album_edit_check_on.png new file mode 100755 index 0000000..c2a6b3c Binary files /dev/null and b/res/black_theme/edc/images/T01_album_edit_check_on.png differ diff --git a/res/black_theme/edc/images/T01_album_edit_rename.png b/res/black_theme/edc/images/T01_album_edit_rename.png new file mode 100755 index 0000000..e284ede Binary files /dev/null and b/res/black_theme/edc/images/T01_album_edit_rename.png differ diff --git a/res/black_theme/edc/images/T01_album_edit_rename_bg.png b/res/black_theme/edc/images/T01_album_edit_rename_bg.png new file mode 100755 index 0000000..7092ea9 Binary files /dev/null and b/res/black_theme/edc/images/T01_album_edit_rename_bg.png differ diff --git a/res/black_theme/edc/images/T01_album_edit_rename_bg_press.png b/res/black_theme/edc/images/T01_album_edit_rename_bg_press.png new file mode 100755 index 0000000..9b10315 Binary files /dev/null and b/res/black_theme/edc/images/T01_album_edit_rename_bg_press.png differ diff --git a/res/black_theme/edc/images/T01_album_edit_rename_press.png b/res/black_theme/edc/images/T01_album_edit_rename_press.png new file mode 100755 index 0000000..e284ede Binary files /dev/null and b/res/black_theme/edc/images/T01_album_edit_rename_press.png differ diff --git a/res/black_theme/edc/images/T01_album_folder_bg.png b/res/black_theme/edc/images/T01_album_folder_bg.png new file mode 100755 index 0000000..e6a3852 Binary files /dev/null and b/res/black_theme/edc/images/T01_album_folder_bg.png differ diff --git a/res/black_theme/edc/images/T01_album_icon_sd_card.png b/res/black_theme/edc/images/T01_album_icon_sd_card.png new file mode 100755 index 0000000..f0803db Binary files /dev/null and b/res/black_theme/edc/images/T01_album_icon_sd_card.png differ diff --git a/res/black_theme/edc/images/T01_btn_play.png b/res/black_theme/edc/images/T01_btn_play.png new file mode 100755 index 0000000..0e61ed0 Binary files /dev/null and b/res/black_theme/edc/images/T01_btn_play.png differ diff --git a/res/black_theme/edc/images/T01_bubble_icon_footsteps.png b/res/black_theme/edc/images/T01_bubble_icon_footsteps.png new file mode 100755 index 0000000..1ef1178 Binary files /dev/null and b/res/black_theme/edc/images/T01_bubble_icon_footsteps.png differ diff --git a/res/black_theme/edc/images/T01_bubble_icon_gridview.png b/res/black_theme/edc/images/T01_bubble_icon_gridview.png new file mode 100755 index 0000000..a62a49c Binary files /dev/null and b/res/black_theme/edc/images/T01_bubble_icon_gridview.png differ diff --git a/res/black_theme/edc/images/T01_button_circle_bg_normal.png b/res/black_theme/edc/images/T01_button_circle_bg_normal.png new file mode 100755 index 0000000..981d624 Binary files /dev/null and b/res/black_theme/edc/images/T01_button_circle_bg_normal.png differ diff --git a/res/black_theme/edc/images/T01_button_circle_bg_normal_press.png b/res/black_theme/edc/images/T01_button_circle_bg_normal_press.png new file mode 100755 index 0000000..bc5f8b2 Binary files /dev/null and b/res/black_theme/edc/images/T01_button_circle_bg_normal_press.png differ diff --git a/res/black_theme/edc/images/T01_check.png b/res/black_theme/edc/images/T01_check.png new file mode 100755 index 0000000..d5057e4 Binary files /dev/null and b/res/black_theme/edc/images/T01_check.png differ diff --git a/res/black_theme/edc/images/T01_checkbox.png b/res/black_theme/edc/images/T01_checkbox.png new file mode 100755 index 0000000..61dc76a Binary files /dev/null and b/res/black_theme/edc/images/T01_checkbox.png differ diff --git a/res/black_theme/edc/images/T01_controlbar_icon_slideshow.png b/res/black_theme/edc/images/T01_controlbar_icon_slideshow.png new file mode 100755 index 0000000..79c2ebd Binary files /dev/null and b/res/black_theme/edc/images/T01_controlbar_icon_slideshow.png differ diff --git a/res/black_theme/edc/images/T01_editl_effect.png b/res/black_theme/edc/images/T01_editl_effect.png new file mode 100755 index 0000000..d7d468c Binary files /dev/null and b/res/black_theme/edc/images/T01_editl_effect.png differ diff --git a/res/black_theme/edc/images/T01_gallery_album_progress_bar.png b/res/black_theme/edc/images/T01_gallery_album_progress_bar.png new file mode 100755 index 0000000..cc9c1bc Binary files /dev/null and b/res/black_theme/edc/images/T01_gallery_album_progress_bar.png differ diff --git a/res/black_theme/edc/images/T01_icon_back.png b/res/black_theme/edc/images/T01_icon_back.png new file mode 100644 index 0000000..f8e4d01 Binary files /dev/null and b/res/black_theme/edc/images/T01_icon_back.png differ diff --git a/res/black_theme/edc/images/T01_nocontents_videos.png b/res/black_theme/edc/images/T01_nocontents_videos.png new file mode 100755 index 0000000..105566b Binary files /dev/null and b/res/black_theme/edc/images/T01_nocontents_videos.png differ diff --git a/res/black_theme/edc/images/T01_thumbs_bustshot_bg.png b/res/black_theme/edc/images/T01_thumbs_bustshot_bg.png new file mode 100755 index 0000000..5241376 Binary files /dev/null and b/res/black_theme/edc/images/T01_thumbs_bustshot_bg.png differ diff --git a/res/black_theme/edc/images/T01_video_play.png b/res/black_theme/edc/images/T01_video_play.png new file mode 100755 index 0000000..cff1c74 Binary files /dev/null and b/res/black_theme/edc/images/T01_video_play.png differ diff --git a/res/black_theme/edc/images/core_pattern_empty_bg.png b/res/black_theme/edc/images/core_pattern_empty_bg.png new file mode 100755 index 0000000..fff3c00 Binary files /dev/null and b/res/black_theme/edc/images/core_pattern_empty_bg.png differ diff --git a/res/black_theme/edc/images/core_pattern_empty_bg_h.png b/res/black_theme/edc/images/core_pattern_empty_bg_h.png new file mode 100755 index 0000000..e2888da Binary files /dev/null and b/res/black_theme/edc/images/core_pattern_empty_bg_h.png differ diff --git a/res/black_theme/edc/images/gallery_icon_container.png b/res/black_theme/edc/images/gallery_icon_container.png new file mode 100644 index 0000000..779e83c Binary files /dev/null and b/res/black_theme/edc/images/gallery_icon_container.png differ diff --git a/res/black_theme/edc/images/gallery_icon_full.png b/res/black_theme/edc/images/gallery_icon_full.png new file mode 100644 index 0000000..f7d5842 Binary files /dev/null and b/res/black_theme/edc/images/gallery_icon_full.png differ diff --git a/res/black_theme/edc/sounds/S_Touch_30ms.wav b/res/black_theme/edc/sounds/S_Touch_30ms.wav new file mode 100755 index 0000000..99ba74d Binary files /dev/null and b/res/black_theme/edc/sounds/S_Touch_30ms.wav differ diff --git a/res/black_theme/edc/sounds/button-pressed.wav b/res/black_theme/edc/sounds/button-pressed.wav new file mode 100755 index 0000000..99ba74d Binary files /dev/null and b/res/black_theme/edc/sounds/button-pressed.wav differ diff --git a/res/black_theme/images/Contents_broken_351X261.png b/res/black_theme/images/Contents_broken_351X261.png new file mode 100755 index 0000000..033ce0f Binary files /dev/null and b/res/black_theme/images/Contents_broken_351X261.png differ diff --git a/res/black_theme/images/No_thumbnail_351X261.png b/res/black_theme/images/No_thumbnail_351X261.png new file mode 100755 index 0000000..f16aaf2 Binary files /dev/null and b/res/black_theme/images/No_thumbnail_351X261.png differ diff --git a/res/black_theme/images/T01_btn_play.png b/res/black_theme/images/T01_btn_play.png new file mode 100755 index 0000000..b25d19c Binary files /dev/null and b/res/black_theme/images/T01_btn_play.png differ diff --git a/res/black_theme/images_edc/T01_album_icon_camera.png b/res/black_theme/images_edc/T01_album_icon_camera.png new file mode 100755 index 0000000..9308c1a Binary files /dev/null and b/res/black_theme/images_edc/T01_album_icon_camera.png differ diff --git a/res/black_theme/images_edc/T01_album_icon_download.png b/res/black_theme/images_edc/T01_album_icon_download.png new file mode 100755 index 0000000..f16ecc1 Binary files /dev/null and b/res/black_theme/images_edc/T01_album_icon_download.png differ diff --git a/res/black_theme/images_edc/T01_album_icon_folder.png b/res/black_theme/images_edc/T01_album_icon_folder.png new file mode 100755 index 0000000..a301f42 Binary files /dev/null and b/res/black_theme/images_edc/T01_album_icon_folder.png differ diff --git a/res/black_theme/images_edc/T01_album_icon_sd_card.png b/res/black_theme/images_edc/T01_album_icon_sd_card.png new file mode 100755 index 0000000..f0803db Binary files /dev/null and b/res/black_theme/images_edc/T01_album_icon_sd_card.png differ diff --git a/res/black_theme/images_edc/T01_btn_thumbnail_play.png b/res/black_theme/images_edc/T01_btn_thumbnail_play.png new file mode 100755 index 0000000..2ea3599 Binary files /dev/null and b/res/black_theme/images_edc/T01_btn_thumbnail_play.png differ diff --git a/res/black_theme/images_edc/T01_icon_add_folder.png b/res/black_theme/images_edc/T01_icon_add_folder.png new file mode 100755 index 0000000..a7177ea Binary files /dev/null and b/res/black_theme/images_edc/T01_icon_add_folder.png differ diff --git a/res/black_theme/images_edc/T01_icon_back.png b/res/black_theme/images_edc/T01_icon_back.png new file mode 100644 index 0000000..f8e4d01 Binary files /dev/null and b/res/black_theme/images_edc/T01_icon_back.png differ diff --git a/res/black_theme/images_edc/T01_icon_bustshot_45x45.PNG b/res/black_theme/images_edc/T01_icon_bustshot_45x45.PNG new file mode 100755 index 0000000..99516df Binary files /dev/null and b/res/black_theme/images_edc/T01_icon_bustshot_45x45.PNG differ diff --git a/res/black_theme/images_edc/T01_icon_camera_all.png b/res/black_theme/images_edc/T01_icon_camera_all.png new file mode 100755 index 0000000..4e830cd Binary files /dev/null and b/res/black_theme/images_edc/T01_icon_camera_all.png differ diff --git a/res/black_theme/images_edc/T01_icon_lock.png b/res/black_theme/images_edc/T01_icon_lock.png new file mode 100755 index 0000000..44c98da Binary files /dev/null and b/res/black_theme/images_edc/T01_icon_lock.png differ diff --git a/res/black_theme/images_edc/T01_icon_panorama.png b/res/black_theme/images_edc/T01_icon_panorama.png new file mode 100755 index 0000000..6aeb9c2 Binary files /dev/null and b/res/black_theme/images_edc/T01_icon_panorama.png differ diff --git a/res/black_theme/images_edc/T01_icon_share.png b/res/black_theme/images_edc/T01_icon_share.png new file mode 100755 index 0000000..fdc6fa1 Binary files /dev/null and b/res/black_theme/images_edc/T01_icon_share.png differ diff --git a/res/black_theme/images_edc/T01_icon_sound_shot.png b/res/black_theme/images_edc/T01_icon_sound_shot.png new file mode 100755 index 0000000..98f090f Binary files /dev/null and b/res/black_theme/images_edc/T01_icon_sound_shot.png differ diff --git a/res/black_theme/images_edc/T01_icon_thumbnail_bookmark.png b/res/black_theme/images_edc/T01_icon_thumbnail_bookmark.png new file mode 100755 index 0000000..bdb690a Binary files /dev/null and b/res/black_theme/images_edc/T01_icon_thumbnail_bookmark.png differ diff --git a/res/black_theme/images_edc/T01_nocontents_videos.png b/res/black_theme/images_edc/T01_nocontents_videos.png new file mode 100755 index 0000000..d8393dd Binary files /dev/null and b/res/black_theme/images_edc/T01_nocontents_videos.png differ diff --git a/res/black_theme/images_edc/T01_popup_copy.png b/res/black_theme/images_edc/T01_popup_copy.png new file mode 100755 index 0000000..dd6ce8e Binary files /dev/null and b/res/black_theme/images_edc/T01_popup_copy.png differ diff --git a/res/black_theme/images_edc/T01_popup_icon_delete.png b/res/black_theme/images_edc/T01_popup_icon_delete.png new file mode 100755 index 0000000..4735e21 Binary files /dev/null and b/res/black_theme/images_edc/T01_popup_icon_delete.png differ diff --git a/res/black_theme/images_edc/T01_popup_icon_done.png b/res/black_theme/images_edc/T01_popup_icon_done.png new file mode 100755 index 0000000..fc2c110 Binary files /dev/null and b/res/black_theme/images_edc/T01_popup_icon_done.png differ diff --git a/res/black_theme/images_edc/T01_popup_icon_edit.png b/res/black_theme/images_edc/T01_popup_icon_edit.png new file mode 100755 index 0000000..6899240 Binary files /dev/null and b/res/black_theme/images_edc/T01_popup_icon_edit.png differ diff --git a/res/black_theme/images_edc/T01_popup_icon_new_album.png b/res/black_theme/images_edc/T01_popup_icon_new_album.png new file mode 100755 index 0000000..b6de815 Binary files /dev/null and b/res/black_theme/images_edc/T01_popup_icon_new_album.png differ diff --git a/res/black_theme/images_edc/T01_popup_icon_rename.png b/res/black_theme/images_edc/T01_popup_icon_rename.png new file mode 100755 index 0000000..b0d230e Binary files /dev/null and b/res/black_theme/images_edc/T01_popup_icon_rename.png differ diff --git a/res/black_theme/images_edc/T01_popup_icon_rotate_left.png b/res/black_theme/images_edc/T01_popup_icon_rotate_left.png new file mode 100755 index 0000000..7d95047 Binary files /dev/null and b/res/black_theme/images_edc/T01_popup_icon_rotate_left.png differ diff --git a/res/black_theme/images_edc/T01_popup_icon_rotate_right.png b/res/black_theme/images_edc/T01_popup_icon_rotate_right.png new file mode 100755 index 0000000..5bb59c8 Binary files /dev/null and b/res/black_theme/images_edc/T01_popup_icon_rotate_right.png differ diff --git a/res/black_theme/images_edc/T01_popup_icon_slideshow.png b/res/black_theme/images_edc/T01_popup_icon_slideshow.png new file mode 100755 index 0000000..acd73c2 Binary files /dev/null and b/res/black_theme/images_edc/T01_popup_icon_slideshow.png differ diff --git a/res/black_theme/images_edc/T01_popup_move.png b/res/black_theme/images_edc/T01_popup_move.png new file mode 100755 index 0000000..ff71d38 Binary files /dev/null and b/res/black_theme/images_edc/T01_popup_move.png differ diff --git a/res/black_theme/images_edc/T01_title_icon_select_all.png b/res/black_theme/images_edc/T01_title_icon_select_all.png new file mode 100755 index 0000000..e4699d2 Binary files /dev/null and b/res/black_theme/images_edc/T01_title_icon_select_all.png differ diff --git a/res/black_theme/images_edc/T02_popup_icon_edit_image.png b/res/black_theme/images_edc/T02_popup_icon_edit_image.png new file mode 100755 index 0000000..1bbddbc Binary files /dev/null and b/res/black_theme/images_edc/T02_popup_icon_edit_image.png differ diff --git a/res/black_theme/images_edc/T02_popup_icon_settings.png b/res/black_theme/images_edc/T02_popup_icon_settings.png new file mode 100755 index 0000000..e817b21 Binary files /dev/null and b/res/black_theme/images_edc/T02_popup_icon_settings.png differ diff --git a/res/black_theme/images_edc/gallery_list_icon_folder.png b/res/black_theme/images_edc/gallery_list_icon_folder.png new file mode 100644 index 0000000..cce3646 Binary files /dev/null and b/res/black_theme/images_edc/gallery_list_icon_folder.png differ diff --git a/res/black_theme/images_edc/gallery_list_icon_my_files_sd_card.png b/res/black_theme/images_edc/gallery_list_icon_my_files_sd_card.png new file mode 100644 index 0000000..85df50a Binary files /dev/null and b/res/black_theme/images_edc/gallery_list_icon_my_files_sd_card.png differ diff --git a/res/black_theme/images_edc/gl-images.edc b/res/black_theme/images_edc/gl-images.edc new file mode 100644 index 0000000..31ac001 --- /dev/null +++ b/res/black_theme/images_edc/gl-images.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. +* +*/ + + + #define RESOURCE_IMAGE( FILE_NAME ) \ + group { \ + name: FILE_NAME; \ + images.image: FILE_NAME COMP; \ + parts { \ + part { name: "image"; \ + description { \ + state: "default" 0.0; \ + image.normal: FILE_NAME; \ + aspect: 1 1; \ + aspect_preference: BOTH; \ + } \ + } \ + } \ + } + +#define RESOURCE_IMAGE_LOSSY( FILE_NAME ) \ + group { \ + name: FILE_NAME; \ + images.image: FILE_NAME LOSSY 85; \ + parts { \ + part { name: "image"; \ + description { \ + state: "default" 0.0; \ + image.normal: FILE_NAME; \ + aspect: 1 1; \ + aspect_preference: BOTH; \ + } \ + } \ + } \ + } + +collections { + RESOURCE_IMAGE("T01_icon_lock.png"); + RESOURCE_IMAGE("T01_album_icon_camera.png"); + RESOURCE_IMAGE("T01_album_icon_download.png"); + RESOURCE_IMAGE("T01_album_icon_folder.png"); + RESOURCE_IMAGE("T01_album_icon_sd_card.png"); + RESOURCE_IMAGE("T01_icon_camera_all.png"); + RESOURCE_IMAGE("T01_icon_add_folder.png"); + RESOURCE_IMAGE("T01_title_icon_select_all.png"); + RESOURCE_IMAGE("T01_btn_thumbnail_play.png"); + RESOURCE_IMAGE("T01_icon_thumbnail_bookmark.png"); + + RESOURCE_IMAGE("T01_icon_sound_shot.png"); + RESOURCE_IMAGE("T01_icon_panorama.png"); + RESOURCE_IMAGE("T01_icon_bustshot_45x45.PNG"); + + RESOURCE_IMAGE("T01_popup_icon_new_album.png"); + RESOURCE_IMAGE("T01_popup_icon_slideshow.png"); + RESOURCE_IMAGE("T01_icon_share.png"); + RESOURCE_IMAGE("T01_popup_copy.png"); + RESOURCE_IMAGE("T01_popup_move.png"); + RESOURCE_IMAGE("T02_popup_icon_edit_image.png"); + RESOURCE_IMAGE("T02_popup_icon_settings.png"); + RESOURCE_IMAGE("T01_popup_icon_rotate_right.png"); + RESOURCE_IMAGE("T01_popup_icon_rotate_left.png"); + RESOURCE_IMAGE("T01_popup_icon_edit.png"); + RESOURCE_IMAGE("T01_popup_icon_delete.png"); + RESOURCE_IMAGE("T01_popup_icon_done.png"); + RESOURCE_IMAGE("T01_popup_icon_rename.png"); + RESOURCE_IMAGE("T01_nocontents_videos.png"); + RESOURCE_IMAGE("T01_icon_back.png"); + RESOURCE_IMAGE("gallery_list_icon_folder.png"); + RESOURCE_IMAGE("gallery_list_icon_my_files_sd_card.png"); +} + diff --git a/res/gallery.uri b/res/gallery.uri new file mode 100755 index 0000000..721d80e --- /dev/null +++ b/res/gallery.uri @@ -0,0 +1,2 @@ +(^( )*gallery:)([a-zA-Z0-9]+) +Gallery Album Shortcut Internal diff --git a/res/icon/org.tizen.gallery.png b/res/icon/org.tizen.gallery.png new file mode 100644 index 0000000..8be71c8 Binary files /dev/null and b/res/icon/org.tizen.gallery.png differ diff --git a/res/po/CMakeLists.txt b/res/po/CMakeLists.txt new file mode 100755 index 0000000..e444a07 --- /dev/null +++ b/res/po/CMakeLists.txt @@ -0,0 +1,28 @@ +# for i18n + + + + +#SET(POFILES bn.po en.po en_US.po gu.po hi.po kn.po ko_KR.po ml.po mr.po or.po pa.po si.po ta.po te.po) + +SET(POFILES ar.po az.po bg.po ca.po cs.po da.po de.po el_GR.po en_PH.po en.po en_US.po es_ES.po es_US.po et.po eu.po fi.po fr_CA.po 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.po pl.po pt_BR.po pt_PT.po ro.po ru_RU.po sk.po sl.po sr.po sv.po tr_TR.po uk.po uz.po zh_CN.po zh_HK.po zh_TW.po) + +SET(MSGFMT "/usr/bin/msgfmt") + +FOREACH(pofile ${POFILES}) + SET(pofile ${CMAKE_CURRENT_SOURCE_DIR}/${pofile}) + MESSAGE("PO: ${pofile}") + GET_FILENAME_COMPONENT(absPofile ${pofile} ABSOLUTE) + GET_FILENAME_COMPONENT(lang ${absPofile} NAME_WE) + SET(moFile ${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo) + ADD_CUSTOM_COMMAND( + OUTPUT ${moFile} + COMMAND ${MSGFMT} -o ${moFile} ${absPofile} + DEPENDS ${absPofile} + ) + INSTALL(FILES ${moFile} DESTINATION res/locale/${lang}/LC_MESSAGES RENAME ${PROJECT_NAME}.mo) + SET(moFiles ${moFiles} ${moFile}) +ENDFOREACH(pofile) + +MESSAGE(".mo files: ${moFiles}") +ADD_CUSTOM_TARGET(po ALL DEPENDS ${moFiles}) diff --git a/res/po/POTFILES.in b/res/po/POTFILES.in new file mode 100755 index 0000000..e8ad1de --- /dev/null +++ b/res/po/POTFILES.in @@ -0,0 +1,28 @@ +# List of source files containing translatable strings. +../src/gallery.c +../src/features/gl-albums.c +../src/features/gl-gridview.c +../src/features/gl-listview.c +../src/features/gl-places-footsteps.c +../src/features/gl-places.c +../src/features/gl-tags.c +../src/features/gl-webalbum.c +../src/widget/gl-button.c +../src/widget/gl-controlbar.c +../src/widget/gl-nocontents.c +../src/widget/gl-popup.c +../src/widget/gl-progressbar.c +../src/util/gl-2d-util.c +../src/util/gl-allshare-util.c +../src/util/gl-db-handler.c +../src/util/gl-debug.c +../src/util/gl-ext-exec.c +../src/util/gl-ext-ug-load.c +../src/util/gl-net-if.c +../src/util/gl-ptp-util.c +../src/util/gl-share-login.c +../src/util/gl-sns-util.c +../src/util/gl-ta.c +../src/util/gl-thread-util.c +../src/util/gl-ui-util.c +../src/util/gl-util.c diff --git a/res/po/ar.po b/res/po/ar.po new file mode 100644 index 0000000..e0f0af3 --- /dev/null +++ b/res/po/ar.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "جهازك غير متصل بشبكة Wi-Fi. قد يترتب على الاتصال بشبكة هاتف محمول فرض تكاليف إضافية وفقا لخطة الدفع." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "تم إيقاف تشغيل بيانات الهاتف المحمول. بدلاً من ذلك، اتصل بشبكة Wi-Fi، أو شغّل بيانات الهاتف المحمول وحاول مرة أخرى." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "سيتم عرض مقاطع فيديو التي تم تسجيلها باستخدام الكاميرا هنا." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "اسم الملف مستخدم بالفعل" + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "هل تريد حذف %d عنصر (عناصر)؟" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "الخصوصية" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "سبت" + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "أكت" + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "نوف" + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "مايو" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "مار" + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "يون" + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "يول" + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "ينا" + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "٠‎٢‎" + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "ديس" + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "أغس" + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "إبر" + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "الألبوم" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "المزيد" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "متغير إدخال غير صحيح." + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "المدخل خالي." + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "تم استخدام نفس الاسم مسبقا." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "يتعذر تغيير الاسم. جاري استخدام الملف." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "لا توجد ألبومات محددة." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "اختيار عنصر" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "لا توجد ألبومات" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "إنشاء مجلد؟" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "هل تريد إعادة المحاولة؟" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "حذف؟" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "سيتم حذف %d ألبومات" + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "سيتم حذف ألبوم واحد" + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "الكاميرا" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "بدء" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "الضبط" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "نعم" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "لا" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "موافق" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "حفظ" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "مسح؟" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "انتقال إلى الألبوم" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "نسخ إلى ألبوم" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "عرض حسب" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "أدخل الاسم" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "سيتم حذف جميع البيانات المتعلقة بهذا الحساب. متابعة؟" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "إلغاء" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "ألبوم جديد" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "هل تريد نسخ الصور أو نقلها من الألبوم الأصلي؟" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "مشاركة" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "عرض الشرائح" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "بدء عرض الشرائح" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "إعدادات عرض الشرائح" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "لا يوجد اسم" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "كافة الألبومات" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "تحديد ألبوم‬" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "سيتم حذف عنصر واحد." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "جميع العناصر" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d عناصر" + +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_MF_BODY_DOWNLOADS" +msgstr "ملفات محملة" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "مسح؟" + +msgid "IDS_MF_SK_MOVE" +msgstr "نقل" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "جاري المسح..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "فشلت العملية." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "تم الإلغاء" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "محدد" + +msgid "IDS_MF_POP_MOVED" +msgstr "تم النقل." + +msgid "IDS_MF_POP_COPIED" +msgstr "تم النسخ." + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "لم يتم تحديد ملفات." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "إغلاق" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "فرز حسب" + +msgid "IDS_CAM_POP_LATEST" +msgstr "الأحدث" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "الأقدم" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "إنشاء" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "لا توجد عناصر" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "تعديل صورة" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "تحديد صورة" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "هل تريد حذف هذا العنصر؟" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "مشهد" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "إزالة من الخاص" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "حيوانات أليفة" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "نقل إلى الخاص" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "أطعمة" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "زهور" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "المستندات" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "مركبات" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "تم بلوغ أقصى عدد من الأحرف (%d)." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "يتعذر تحميل الصورة." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "مشاركة عبر" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "عدم السؤال مرة أخرى" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "تم الوصول إلى أقصى عدد من الحروف." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "التوقيت" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "فشل" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "تم المسح." + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "مسح؟" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "جاري الحذف..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "إظهار %d عناصر" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "إنشاء ألبوم" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "الاستوديو‬" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "المزيد" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "حسابات" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "فشلت العملية." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "تنزيل" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "بحث" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "رجوع" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "الكاميرا" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "الكل" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "تحديث" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "حذف" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "بعد تحميل الصور إلى Dropbox، يتم عرض العناصر." + +msgid "IDS_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "التشغيل الجماعي" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "جهات الاتصال" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "إنشاء" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "التفاصيل" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "طباعة" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "تغيير الاسم" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "تم التنزيل." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "جاري التنزيل..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "أدخل الاسم." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "ملفاتي" + +msgid "IDS_MF_POP_ADDED" +msgstr "تمت الإضافة." + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "جاري المعالجة..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "نوع ملف غير مدعوم." + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "بعد التقاط الصور، يتم عرضها." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "الوضع الأفقي" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "انقر نقرا مزدوجا لإغلاق قائمة الدرج." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "انقر نقرا مزدوجا لفتح قائمة الدرج." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "سحب وإسقاط" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "الدرج" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "تم إلغاء تفعيل بيانات الهاتف المحمول. اتصل بشبكة Wi-Fi بدلا من ذلك أو قم بتفعيل بيانات الهاتف المحمول، ثم أعد المحاولة." + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "‏‫يلزم توفر اتصال Wi-Fi‬. اتصل بشبكة Wi-Fi وحاول مرة أخرى." + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "إضافة صور من" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "الأجهزة المتصلة" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "محتوى خاص" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "إزالة من %s" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "إزالة علامة الاسم" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "لا توجد أحداث يمكن عرضها. إنشاء حدث جديد." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "للتمرير بسرعة وصولاً إلى التواريخ الأخرى، انقر مع الاستمرار فوق مؤشر التاريخ في الجانب العلوي الأيمن من الشاشة." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "هل تريد إزالة %d عنصر (عناصر)؟" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "هل تريد إزالة هذا العنصر؟" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "استوديو" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "حذف العنصر" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "حذف عناصر" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "عنصر واحد" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "١٠ ثوان" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "Ù¥ ثوان" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "غير محددة" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "فاصل عرض الشرائح" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "بدون علامة" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "Ù£ ثوان" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "المحتوى بأكمله" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "المحتوى المطلوب عرضه" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "حذف العلامة" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "محتوى الجهاز" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "محتوى Dropbox" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "محتوى Facebook" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "تدوير لليسار" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "تدوير لليمين" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "استيراد" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "تم الاستيراد." + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "جاري الاستيراد..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "جاري التحميل ..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "تم العثور على أجهزة مجاورة." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "لم يتم العثور على أي أجهزة. سيستمر البحث عن الأجهزة القريبة في الخلفية." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "تم التحديث." + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "جار التدوير..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "بدأ البحث. سيتم تحديث قائمة الأجهزة بشكل تلقائي." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "جار بدء التنزيل..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "نسخ إلى" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "نقل إلى" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "فشلت إضافة اختصار." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "لا يوجد ذاكرة كافية. امسح بعض العناصر." + +msgid "IDS_MF_POP_REMOVED" +msgstr "تم الحذف." + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "جاري الإضافة..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "هل تريد حذف %d من الألبومات؟" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "وحدة التخزين الخاصة" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "اسحب هنا." + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "جديد" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "غير المصنفين" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "لقطات" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "صور فوتوغرافية" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "التنزيل غير متوفر." + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "ملف غير مدعوم." + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "نتيجة واحدة" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d نتيجة (نتائج)" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "تفضيلات" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "تم إلغاء التنزيل." + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "هل تريد حذف هذا الألبوم؟" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "تحذير" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "فرز بواسطة" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "اليوم" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "التاريخ" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "لا توجد أي عناصر لعرضها." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "انقر هنا لالتقاط صور أو مقاطع فيديو‬." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "تم تجاوز الحد الأقصى لعدد العناصر التي يمكن مشاركتها (%d)." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "انقر لإضافة صور." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "هل تريد نسخ العناصر المحددة أو نقلها من الألبوم الأصلي؟" + +msgid "IDS_GALLERY_HEADER_SELECT" +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "تحديد الكل" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "تم تحديد %d" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "عرض كـ" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "التاريخ (الأحدث)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "التاريخ (الأقدم)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "ستظهر الصور هنا بعد التقاطها." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "جاري الإلغاء..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "من الجهاز" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "من Dropbox" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "من Facebook" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "تم التنزيل." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "سيتم حذف كل العناصر." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "سيتم تنزيل عنصر واحد." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "سيتم تنزيل %d من العناصر." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "سيتم تنزيل كل العناصر." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "إن الألبوم المحدد هو نفسه الألبوم المصدر. حدد ألبوماً آخر." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "النقر هنا لإضافة الصور" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "ما من مساحة كافية على بطاقة SD. انتقل إلى الضبط > الطاقة ووحدة التخزين > وحدة التخزين، ثم احذف بعض الملفات وحاول مرة أخرى." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "إلغاء" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "عدم الإظهار مرة أخرى" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "قد يترتب على استخدام بيانات الهاتف المحمول أثناء التجوال فرض رسوم إضافية وفقًا لخطة الدفع." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "سيتم حذف %d من العناصر." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "حذف" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "أمس" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "التنزيلات" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "نسخ" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "حذف" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "الألبومات" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "تم تجاوز الحد الأقصى لعدد العناصر (%d)." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "إلغاء" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "تم" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "إلغاء" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "حذف" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "جاري النسخ..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "جاري النقل..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "في حالة إنشاء محتوى يتضمن عناصر من مساحة التخزين الشخصية، قد لا يتم إخفاؤه تلقائيًا. يمكن رؤية المحتوى الشخصي المحدد عند عرض المحتوى الجديد." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "تعديل" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "الضبط" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "تعديل" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "إعادة ترتيب" + diff --git a/res/po/az.po b/res/po/az.po new file mode 100644 index 0000000..92d999f --- /dev/null +++ b/res/po/az.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Sizin cihazınız Wi-Fi şəbəkəsinə qoşulmayıb. Tarif planınızdan asılı olaraq mobil şəbəkəyə qoşulmaq əlavə xərclərə səbəb ola bilər" + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobil tarif söndürüldü. Əvəzinə Wi-Fi şəbəkəsinə qoşulun və ya Mobil tarifi aktivləşdirin və yenidən cəhd edin." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "Kamera vasitəsilə videoları çəkdikdən sonra onlar burada görünəcək." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Fayl adı artıq istifadədədir" + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "%d element silinsin?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Gizlilik" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Sen." + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Okt." + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Noy." + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "May" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Mart" + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "İyun" + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "İyul" + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Yan." + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Fev." + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Dek." + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Avq." + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Apr." + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Albom" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Daha çox" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Yanlış daxiletmə parametrləri." + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Boş qeyd." + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "Eyni ad hazırda istifadə edilir." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Yenidən adlandırmaq mümkün deyildir." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Albom seçilməyib." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Element seç" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Albom yoxdur" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Qovluq yaradılsın?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Yenidən cəhd edilsin?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Silinsin?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "%d albom silinəcək." + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 albom silinəcək." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Kamera" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Başla" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Parametrlər" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Bəli" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "Xeyr" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Saxla" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Silinsin?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Alboma köçür" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Alboma kopyala" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Baxış qaydası" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Xahiş olunur adı daxil edin" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Bu hesabla bağlı bütün məlumatlar silinəcək. Davam edilsin?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Ləğv et" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Yeni albom" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Siz orijinal albomdan şəkilləri köçürmək və ya yerini dəyişdirmək istəyirsinizmi?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Paylaş" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Slaydşou" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Slayd nümayişini dayandır" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Slaydşou parametrləri" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Ad yoxdur" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Bütün albomlar" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Albom seç" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "1 element silinəcək." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Bütün elementlər" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d element" + +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_MF_BODY_DOWNLOADS" +msgstr "Yükləmələr" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Silinsin?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Apar" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Silinmə" + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Əməliyyat alınmadı." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Ləğv edildi" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Seçilmişi" + +msgid "IDS_MF_POP_MOVED" +msgstr "Göndərildi." + +msgid "IDS_MF_POP_COPIED" +msgstr "Surəti saxlanıldı." + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "Heç bir fayl seçilməyib." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Bağla" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Nizamla" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Ən son" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Ən köhnə" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Yarat" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Elementlər yoxdur" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Şəkli redaktə et" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Şəkil seç" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Bu element silinsin?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Mənzərə" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Şəxsi rejimdən sil" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Ev heyvanları" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Şəxsiyə köçür" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Ərzaq" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Güllər" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Sənədlər" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Nəqliyyat vasitələri" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Simvolların sayı maksimuma (%d) çatıb." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Şəkli yükləmək mümkün deyil." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Paylaş" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Təkrar soruşma" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Simvol sayı maksimuma çatıb." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Vaxt" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Mümkün olmadı" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Silindi." + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Silinsin?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Silinir..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "%d dəfə göstərmə" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Albom yarat" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Qalereya" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Daha çox" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Hesablar" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Əməliyyat alınmadı." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Yüklə" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Axtarış" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Geri" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Kamera" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Hamısını" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Yenilə" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Sil" + +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_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Adlar" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Yarat" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Təfsilatlar" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Çap et" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Adını dəyişdir" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Yükləndi." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Yüklənmə..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Xahiş olunur adı daxil edin." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Mənim fayllarım" + +msgid "IDS_MF_POP_ADDED" +msgstr "Əlavə edildi." + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Emal edilir..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Dəstəklənməyən fayl tipi." + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "Şəkil çəkdikdən sonra onlar görünəcək." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Landşaft rejimi" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Rəsmxət menyusunu bağlamaq üçün iki dəfə vurun." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Rəsmxət menyusunu açmaq üçün iki dəfə vurun." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Çəkib saxla" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Rəsmxət" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobil məlumatlar qeyri-aktivdir. Əvəzinə Wi-Fi şəbəkəsinə qoşulun və ya mobil məlumatları aktivləşdirin və yenidən cəhd edin" + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Wi-Fi bağlantısı tələb olunur. Wi-Fi şəbəkəsinə qoşul və yenidən cəhd et." + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "-dan şəkillər əlavə et" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Qoşulmuş cihazlar" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Şəxsi məzmun" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "%s-dən sil" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Ad teqlərini sil" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "Göstərmək üçün element yoxdur. Yeni tədbir yarat." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "Cəld şəkildə digər tarixlərə keçin, ekranın yuxarı sağ tərəfində tarix göstəricisini vurub-saxlayın." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "%d element silinsin?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Bu element silinsin?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Qalereya" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +msgstr "Qarışdırılan şəkillər" + +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Elementi sil" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Elementləri sil" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 element" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 saniyə" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 saniyə" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Təyin olunmamışdır" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Slaydşou intervalı" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Etiketlənməyib" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 saniyə" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Bütün məzmun" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Göstərmək üçün məzmun" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Etiketi sil" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Cihazın məzmunu" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Dropbox məzmunu" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Facebook məzmunu" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Sola döndər" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Sağa döndər" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Gətir" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Gətirilmişdir." + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Gətirilir..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Yüklənir..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Yaxınlıqdakı qurğular tapıldı." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "Heç bir cihaz tapılmadı. Yaxınlıqdakı cihazlar arxa planda davam edəcək" + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Yenilənmişdir." + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Fırladılır..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Axtarış başlayıb. Cihaz siyahısı avtomatik yenilənəcək" + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Yükləmə başladılır..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Buraya köçür" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Göndər" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Qısayol əlavə etmək mümkün deyil." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Yaddaş kifayət etmir. Xahiş olunur bəzi elementləri silin" + +msgid "IDS_MF_POP_REMOVED" +msgstr "Silindi." + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Əlavə olunur..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "%d albomlar silinsin?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Şəxsi yaddaş" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Bura sürüklə." + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Yeni" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Qrupdan çıxarıldı" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Nişanlar" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Fotolar" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Yükləmə mümkün olmadı." + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Dəstəklənməyən fayl." + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 nəticə" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d nəticə" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Sevimlilər" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Yükləmədən imtina edildi." + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Bu albom silinsin?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Diqqət" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Sıralama qaydası" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Bu gün" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Tarix" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "Göstərmək üçün element yoxdur." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Şəkil və ya video çəkmək üçün bura vurun." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Paylaşıla bilən elementlərin sayı maksimumu (%d) keçmişdir." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Təsvir əlavə etmək üçün vurun." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Seçilən elementlər orijinal albomdan kopyalansın və ya silinsin?" + +msgid "IDS_GALLERY_HEADER_SELECT" +msgstr "Seç" + +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Hamısını seç" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d seçilmişdir" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Fərqli bax" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Tarix (ən son)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Tarix (ən köhnə)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "Şəkillər çəkdikdən sonra onlar burada görünəcək." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Ləğv edilir..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "Cihazdan" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "Dropbox-dan" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "Facebook-dan" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Yükləmə tamamlandı." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Bütün elementlər silinəcək." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "1 element yüklənəcək." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "%d element yüklənəcək." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Bütün elementlər yüklənəcək." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "Seçilmiş albom mənbə albomu ilə eynidir. Başqa albom seçin." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Şəkillər əlavə etmək üçün buraya vurun" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +msgstr "Məlum saxlamaq mümk deyil" + +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "SD kartınızda 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_MF_BUTTON_CANCEL_ABB3" +msgstr "Ləğv et" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Bir daha göstərmə" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Ödəniz planınızdan asılı olaraq Mobil tarifdən istifadə əlavə xərclərlə nəticələnə bilər." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "%d element silinəcək." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Sil" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Dünən" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Yükləmələr" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Kopyala" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Sil" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Albomlar" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "Elementlərin sayı maksimumu (%d) keçib." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Ləğv et" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "HAZIR" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "LƏĞV ET" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "SİL" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Köçürülmə..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Göndərilmə..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Şəxsi yaddaşdakı elementlərdən ibarət məzmun yaratdıqda, o avtomatik olaraq gizlədilə bilməyəcəkdir. Seçilən şəxsi məzmun yeni məzmuna baxan zaman görünə bilər." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "REDAKTƏ ET" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Parametrlər" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "REDAKTƏ" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Yenidən nizamla" + diff --git a/res/po/bg.po b/res/po/bg.po new file mode 100644 index 0000000..6fab360 --- /dev/null +++ b/res/po/bg.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Вашето устройство не е свързано към Wi-Fi мрежа. Свързването към мобилна мрежа може да доведе до допълнителни такси, в зависимост от плана ви на таксуване." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Мобилните данни са изключени. Вместо това се свържете към Wi-Fi мрежа или включете мобилните данни и опитайте отново." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "След като заснемете видеоклипове с камерата, те ще се покажат тук." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Името на файла вече се използва." + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "Изтриване на %d елемента?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Поверителност" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Сеп." + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Окт." + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Ное." + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "май" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Март" + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Юни" + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Юли" + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Ян." + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Фев." + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Дек." + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Авг." + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Апр." + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Албум" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Още" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Невалиден параметър на входа." + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Празен запис" + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "Такова име вече се използва." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Не може да се преименува." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Не са избрани албуми." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Изберете елемент" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Няма албуми" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Създаване на папка?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Повторен опит?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Премахване?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "%d албума ще бъдат изтрити." + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 албум ще бъде изтрит." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Камера" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Старт" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Настройки" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Да" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "Не" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Запази" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Изтриване?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Преместване в албум" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Копиране в албум" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Преглед по" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Въведете име" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Ще бъдат изтрити всички данни, свързани с този акаунт. Продължаване?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Отказ" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Нов албум" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Искате ли да копирате или преместите снимките от първоначалния албум?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Споделям" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Слайдшоу" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Започване на слайдшоу" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Настройки на слайдшоу" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Без име" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Всички албуми" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Избор на албум" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "1 елемент ще бъде изтрит." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Всички елементи" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d елемента" + +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_MF_BODY_DOWNLOADS" +msgstr "Изтеглени файлове" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Изтриване?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Мести" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Изтриване..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Операцията е неуспешна." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Отказано" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Избран" + +msgid "IDS_MF_POP_MOVED" +msgstr "Преместено." + +msgid "IDS_MF_POP_COPIED" +msgstr "Копирано." + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "Няма избрани файлове." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Затвори" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Сортиране по" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Най-нови" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Най-стари" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Създаване" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Няма елементи" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Редактиране на изображение" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Изберете картина" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Изтривате ли този елемент?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Пейзаж" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Премахване от Лични" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Домашни любимци" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Преместване в Лична" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Храна" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Цветя" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Документи" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Превозни средства" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Достигнат е максималният брой знаци (%d)." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Невъзможно зареждане на снимката." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Споделяне чрез" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Не питай повече" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Достигнат максимален брой знаци." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Час" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Неуспешно" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Изтрито." + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Изтриване?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Премахване..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "Показване на %d елемента" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Създаване на албум" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Галерия" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Още" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Акаунти" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Операцията е неуспешна." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Изтегляне" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Търси" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Назад" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Камера" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Всички" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Обновяване" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Премаxване" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "След като качите снимки в Dropbox, елементите ще се покажат." + +msgid "IDS_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Телефонен указател" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Създай" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Детайли" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Отпечатване" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Преименуване" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Изтеглен." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Смъкване..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Въведете име." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Моите файлове" + +msgid "IDS_MF_POP_ADDED" +msgstr "Добавен." + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Обработване..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Неподдържан тип файл." + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "След като направите снимки, те ще бъдат показани." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Пейзажен режим" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Чукнете двукратно, за да затворите менюто." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Чукнете двукратно, за да отворите менюто." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Плъзнете и пуснете" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Чекмедже" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Мобилните данни са деактивирани. Вместо това се свържете към Wi-Fi мрежа или активирайте мобилни данни и опитайте отново" + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Необходима е Wi-Fi връзка. Свържете се към Wi-Fi мрежа и опитайте отново" + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Добавяне на снимки от" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Свързани устройства" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Лично съдържание" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Премахване от %s" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Премахване на тага с име" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "Няма събития за показване. Създайте ново събитие." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "За да превъртите бързо на други дати, чукнете и задръжте индикатора за дата в горната дясна част на екрана." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "Премахване на %d елемента?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Премахвате ли това устройство?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Галерия" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Изтрий елемента" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Изтриване на елементи" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 елемент" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 секунди" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 секунди" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Незададен" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Интервал на слайдшоуто" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Без тагове" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 секунди" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Цялото съдържание" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Съдържание за показване" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Изтриване на тага" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Съдържание в устройството" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Съдържание в Dropbox" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Съдържание във Facebook" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Завъртане наляво" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Завъртане надясно" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Въвеждане" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Импортирано." + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Импортиране..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Зареждане" + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Намерени са близки устройства." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "Няма открити устройства. Сканирането за близки устройства ще продължи във фонов режим." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Обновено." + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Завъртане..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Сканирането стартира. Списъкът с устройства ще се актуализира автоматично." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Стартира се изтегляне..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Копиране в" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Премести в" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Неуспешно добавяне на бърза команда." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Няма достатъчно памет. Изтрийте някои елементи" + +msgid "IDS_MF_POP_REMOVED" +msgstr "Премахнат." + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Добавяне..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "Изтривате ли %d албума?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Лично място за съхранение" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Плъзнете тук." + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Ново" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Негрупирани" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Снимки на екрана" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Снимки" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Неуспешно изтегляне." + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Неподдържан файл." + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 резултат" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d резултата" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Предпочитани" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Изтеглянето e отменено." + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Изтривате ли този албум?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Внимание" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Сортиране по" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Днес" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Дата" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "Няма елементи за показване." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Чукнете тук, за да направите снимки или клипове." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Максималният брой елементи, които може да се споделят (%d), е надвишен." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Чукнете, за да добавите изображения." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Искате ли да копирате или преместите избраните елементи от първоначалния албум?" + +msgid "IDS_GALLERY_HEADER_SELECT" +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Избор на всичко" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d избрани" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Преглед като" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Дата (най-нови)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Дата (стари)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "След като направите снимки, те ще се покажат тук." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Отмяна..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "От устройството" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "От Dropbox" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "От Facebook" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Изтеглянето е завършено." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Всички елементи ще бъдат изтрити." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "1 елемент ще бъде изтеглен." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "%d елемента ще бъдат изтеглени." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Всички елементи ще бъдат изтеглени." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "Избраният албум е същият като албума-източник. Изберете друг албум." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Докоснете тук, за да добавите изображения" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Няма достатъчно място в SD картата. Отидете в Настройки > Захранване и памет > Памет, след което изтрийте някои файлове и опитайте отново." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "Отказ" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Не показвай повече" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Използването на мобилни данни в роуминг може да доведе до допълнителни такси в зависимост от плана за плащане." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "%d елемента ще бъдат изтрити." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Изтриване" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Вчера" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Изтеглени файлове" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Копиране" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Изтриване" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Албуми" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "Максималният брой елементи (%d) е надвишен." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Отказ" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "ГОТОВО" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ОТКАЗ" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "ИЗТРИВАНЕ" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Копиране..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Преместване" + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Ако създадете съдържание, което включва елементи от лично място за съхранение, то може да не се скрие автоматично. Избраното лично съдържание може да бъде видяно, когато преглеждате новото съдържание." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "РЕДАКТИРАНЕ" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Настройки" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "РЕДАКЦИЯ" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Пренареждане" + diff --git a/res/po/ca.po b/res/po/ca.po new file mode 100644 index 0000000..4c73855 --- /dev/null +++ b/res/po/ca.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "El dispositiu no està connectat a cap xarxa Wi-Fi. Connectar-se a una xarxa mòbil pot comportar càrrecs addicionals en funció del seu pla de pagament." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Dades mòbils desactivades. Connecti's a una xarxa Wi-Fi o activi les dades mòbils i torni-ho a intentar." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "Després de gravar vídeos amb la càmera, es mostraran aquí." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "El nom de fitxer està en ús." + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "Esborrar %d elements?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Confidencialitat" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Set." + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Oct." + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Nov." + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "Mai." + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Març" + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Juny" + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Jul." + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Gen." + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Feb." + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Des." + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Ag." + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Abr." + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Àlbum" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Més" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Paràmetre d'entrada no vàlid" + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "L'entrada és buida" + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "El mateix nom ja està en ús" + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "No es pot canviar nom" + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Sense àlbums seleccionats" + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Seleccionar element" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Cap àlbum" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Crear carpeta?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Tornar-ho a intentar?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Eliminar?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "S'esborraran %d àlbums" + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "S'esborrarà 1 àlbum" + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Càmera" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Iniciar" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Ajustaments" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Sí" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "No" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "Acceptar" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Desar" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Esborrar?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Moure a l'àlbum" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Copiar a l'àlbum" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Veure per" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Introduir nom" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "S'esborraran totes les dades relacionades amb aquest compte. Continuar?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Cancel·lar" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Àlbum nou" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Vol copiar o moure les fotos de l'àlbum original?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Compartir" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Presentació de diapositives" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Iniciar presentació de diapositives" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Ajustaments de la presentació de diapositives" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Sense nom" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Tots els àlbums" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Seleccionar àlbum" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "S'esborrarà 1 element" + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Tots els elements" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d elements" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Només hi ha un àlbum" + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Pot seleccionar fins a %d elements" + +msgid "IDS_MF_BODY_DOWNLOADS" +msgstr "Descàrregues" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Esborrar?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Moure" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Esborrant..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Operació fallida" + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Cancel·lat" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Seleccionat" + +msgid "IDS_MF_POP_MOVED" +msgstr "Mogut" + +msgid "IDS_MF_POP_COPIED" +msgstr "Copiat" + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "No s'han seleccionat fitxers" + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Tancar" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Ordenar per" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Més recents" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Més antics" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Crear" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "No hi ha elements" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Editar la imatge" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Seleccionar imatge" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Esborrar aquest element?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Paisatge" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Esborrar de Privat" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Mascotes" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Moure a Privat" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Menjar" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Flors" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Documents" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Vehicles" + +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_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "No es pot carregar la foto" + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Compartir mitjançant" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "No ho tornis a preguntar" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "S'ha assolit el nombre màxim de caràcters" + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Hora" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Error" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Esborrat" + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Esborrar?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Eliminant..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "Mostrant %d elements" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Crear àlbum" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Galeria" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Més" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Comptes" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Operació fallida" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Descarregar" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Cercar" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Enrere" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Càmera" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Tot" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Actualitzar" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Eliminar" + +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_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Contactes" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Crea" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Detalls" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Imprimir" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Canviar nom" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Descarregat" + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Descarregant..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Introduir nom" + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Els meus fitxers" + +msgid "IDS_MF_POP_ADDED" +msgstr "Afegit" + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Processant..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "No s'admet el tipus de fitxer" + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "Després de fer fotos, es mostraran les fotos" + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Mode horitzontal" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Toqui dos cops per tancar el menú del calaix." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Toqui dos cops per obrir el menú del calaix." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Arrossegar i deixar anar" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Calaix" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Les dades mòbils estan deshabilitades. Connecti a una xarxa Wi-Fi en el seu lloc, o habiliti dades mòbils i torni-ho a intentar." + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Cal una connexió Wi-Fi. Connecti a la xarxa Wi-Fi i torni-ho a intentar." + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Afegir fotos des de" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Dispositius connectats" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Contingut privat" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Eliminar de %s" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Eliminar etiqueta de nom" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "No hi ha esdeveniments per mostrar. Creï un esdeveniment nou." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "Per desplaçar-se ràpidament a altres dates, mantingui premut l'indicador de data de la part superior dreta de la pantalla." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "Eliminar %d elements?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Eliminar aquest element?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Galeria" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +msgstr "Fotos barrejades" + +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Esborrar element" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Esborrar elements" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 element" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 segons" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 segons" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "No assignat" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Interval de la presentació de diapositives" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Sense etiqueta" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 segons" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Tot el contingut" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Contingut per mostrar" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Eliminar etiqueta" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Contingut del dispositiu" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Contingut de Dropbox" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Contingut de Facebook" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Gira cap a l'esquerra" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Gira cap a la dreta" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Importar" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Importat" + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Important..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Carregant..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "S'han trobat dispositius propers" + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "No s'han trobat dispositius. La cerca de dispositius propers continuarà en segon pla." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Actualitzat" + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "S'està rotant..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Cerca iniciada. La llista de dispositius s'actualitzarà automàticament." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Iniciant descàrrega..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Copiar a" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Moure a" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Error en afegir l'accés directe" + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "No hi ha prou memòria. Esborrar-ne alguns elements." + +msgid "IDS_MF_POP_REMOVED" +msgstr "Eliminat" + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Afegint..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "Esborrar %d àlbums?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Emmagatzematge privat" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Arrossegui aquí" + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Nou" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Sense agrupar" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Captures de pantalla" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Fotos" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Descàrrega no disponible" + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "No s'admet el fitxer" + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 resultat" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d resultats" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Preferits" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Descàrrega cancel·lada" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Esborrar aquest àlbum?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Advertiment" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Ordenar per" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Avui" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Data" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "No hi ha elements per mostrar" + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Toqui aquí per fer fotos o vídeos" + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "S'ha superat el número màxim d'elements que es poden compartir (%d)." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Toqui per afegir imatges" + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Copiar o moure els elements seleccionats de l'àlbum original?" + +msgid "IDS_GALLERY_HEADER_SELECT" +msgstr "Seleccionar" + +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Seleccionar tot" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d seleccionats" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Veure com a" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Data (més recents)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Data (antics)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "Després de fer fotos, es mostraran aquí." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Cancel·lant..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "Des del dispositiu" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "Des de Dropbox" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "Des de Facebook" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Descàrrega finalitzada" + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "S'esborraran tots els elements" + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "Es descarregarà 1 element." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Es descarregaran %d elements." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Es descarregaran tots els elements." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "L'àlbum seleccionat és el mateix que el d'origen. Seleccioni'n un altre." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Toqui aquí per afegir imatges" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +msgstr "No es poden desar dades" + +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "No hi ha prou espai a l'emmagatzematge de la targeta SD. Vagi a Ajustaments > Energia i emmagatzematge > Emmagatzematge i esborri alguns fitxers i torni-ho a intentar." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "Cancel·lar" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "No tornar a mostrar" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "L'ús de Dades mòbils en itinerància por comportar càrrecs addicionals en funció del seu pla de pagament." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "S'esborraran %d elements." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Esborrar" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Ahir" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Descàrregues" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Copiar" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Esborrar" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Àlbums" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "S'ha excedit el nombre màxim d'elements (%d)." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Cancel" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "REALITZAT" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "CANCEL·LAR" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "ESBORRAR" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Copiant..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Movent..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Si crea contingut que inclogui elements de l'emmagatzematge personal, no es pot amagar automàticament. El contingut personal seleccionat es podrà veure en visualitzar el contingut nou." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "EDITAR" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Ajustaments" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "EDITAR" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Tornar a ordenar" + diff --git a/res/po/cs.po b/res/po/cs.po new file mode 100644 index 0000000..65ce33c --- /dev/null +++ b/res/po/cs.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Zařízení není připojeno k síti Wi-Fi. Připojení k mobilní síti může mít za následek další poplatky v závislosti na vašem tarifu." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobilní data jsou vypnutá. Připojte se k síti Wi-Fi nebo zapněte Mobilní data a opakujte akci." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "Až nahrajete videa pomocí fotoaparátu, zobrazí se zde." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Název souboru je již použit." + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "Chcete odstranit %d položek?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Soukromí" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Zář." + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Říj." + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Lis." + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "Kvě" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Bře." + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Čer." + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Čvc." + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Led." + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Úno." + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Pro." + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Srp." + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Dub." + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Album" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Další" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Chybný vstupní parametr." + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Prázdná položka." + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "Stejný název je již použit." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Nelze přejmenovat." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Nejsou vybrána žádná alba." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Vybrat položku" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Žádná alba" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Chcete vytvořit složku?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Opakovat?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Odstranit?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "Bude odstraněno %d alb." + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album bude odstraněno." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Fotoaparát" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Start" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Nastavení" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Ano" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "Ne" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Uložit" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Odstranit?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Přesunout do alba" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Kopírovat do alba" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Zobrazit podle" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Zadat jméno" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Všechna data související s tímto účtem budou odstraněna. Chcete pokračovat?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Storno" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Nové album" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Chcete zkopírovat nebo přesunout obrázky z původního alba?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Sdílet" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Prezentace" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Spustit prezentaci" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Nastavení prezentace" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Žádný název" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Všechna alba" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Vybrat album" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "1 položka bude odstraněna." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Všechny položky" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "Počet položek: %d" + +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_MF_BODY_DOWNLOADS" +msgstr "Stažené položky" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Odstranit?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Přesun" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Odstraňování..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Otevření se nezdařilo." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Zrušeno" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Vybráno" + +msgid "IDS_MF_POP_MOVED" +msgstr "Přesunuto." + +msgid "IDS_MF_POP_COPIED" +msgstr "Zkopírováno." + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "Není vybrán žádný soubor." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Zavřít" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Seřadit podle" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Nejnovější" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Nejstarší" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Vytvořit" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Žádné položky" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Upravit obrázek" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Vyberte obrázek" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Odstranit tuto položku?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Scenérie" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Odebrat ze složky Soukromé" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Domácí mazlíčci" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Přesunout do složky Soukromé" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Potraviny" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Květiny" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Dokumenty" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Vozidla" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Bylo dosaženo maximálního počtu znaků (%d)." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Fotografii se nepodařilo načíst." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Sdílet pomocí" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Příště se neptat" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Bylo dosaženo maximálního počtu znaků." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Čas" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Chyba" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Odstraněno." + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Odstranit?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Odebírání..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "Zobrazení %d položek" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Vytvořit album" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Galerie" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Další" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Účty" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Otevření se nezdařilo." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Stáhnout" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Hledat" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Zpět" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Fotoaparát" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Vše" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Aktualizovat" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Odebrat" + +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_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Kontakty" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Vytvořit" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Podrobnosti" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Tisk" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Přejmenovat" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Staženo." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Stahování..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Zadat jméno." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Moje soubory" + +msgid "IDS_MF_POP_ADDED" +msgstr "Přidáno." + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Probíhá zpracování..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Nepodporovaný typ souboru." + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "Po vyfotografování se obrázky zobrazí." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Na šířku" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Poklepáním zavřete vysouvací menu." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Poklepáním otevřete vysouvací menu." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Přetažení" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Zásuvka" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_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_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Je vyžadováno připojení k síti Wi-Fi. Připojte se k síti Wi-Fi a opakujte akci." + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Přidat obrázky z" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Připojená zařízení" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Soukromý obsah" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Odebrat z %s" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Odebrat jmenovku" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "Žádné události nejsou k dispozici pro zobrazení. Vytvořte novou událost." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "Chcete-li se rychle posouvat na jiná data, klepněte na indikátor data v pravém horním rohu obrazovky a přidržte ho." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "Odstranit %d položek?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Odebrat tuto položku?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Galerie" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +msgstr "Náhodné obrázky" + +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Odstranit položku" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Odstranit položky" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 položka" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 sekund" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 sekund" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Nepřiřazeno" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Interval prezentace" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Neoznačeno" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 sekundy" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Celý obsah" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Obsah k zobrazení" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Odstranit značku" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Obsah v zařízení" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Obsah v Dropboxu" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Obsah na Facebooku" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Otočit doleva" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Otočit doprava" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Import" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Importováno." + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Probíhá import.." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Nahrávám..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Nalezená nedaleká zařízení." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "Nebyla nalezena žádná zařízení. Hledání blízkých zařízení bude pokračovat na pozadí." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Aktualizováno." + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Otáčení..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Vyhledávání bylo zahájeno. Seznam zařízení bude automaticky aktualizován." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Spouští se stahování..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Kopírovat do" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Přesunout do" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Zástupce se nepodařilo přidat." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Nedostatek paměti. Odstraňte některé položky" + +msgid "IDS_MF_POP_REMOVED" +msgstr "Odstraněno." + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Přidávání..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "Odstranit %d alb?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Soukromé úložiště" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Přetáhnout sem." + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Nová" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Nezahrnuté do skupiny" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Kopie obrazovky" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Fotografie" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Stažení se nezdařilo." + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Nepodporovaný soubor." + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 výsledek" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d výsledků" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Oblíbené" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Stahování zrušeno." + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Odstranit toto album?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Upozornění" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Seřadit podle" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Dnes" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Datum" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "Žádné položky k zobrazení." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Klepněte sem, chcete-li fotografovat nebo nahrávat video." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Byl překročen maximální počet položek, které lze sdílet (%d)." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Klepnutím přidejte obrázky." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Chcete zkopírovat nebo přesunout vybrané položky z původního alba?" + +msgid "IDS_GALLERY_HEADER_SELECT" +msgstr "Vybrat" + +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Vybrat vše" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "Vybráno %d" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Zobrazit jako" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Datum (nejnovější)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Datum (nejstarší)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "Až vyfotografujete obrázky, zobrazí se zde." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Probíhá zrušení..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "Ze zařízení" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "Z Dropbox" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "Z Facebooku" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Stahování dokončeno." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Všechny položky budou odstraněny." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "Bude stažena 1 položka." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Bude staženo %d položek." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Budou staženy všechny položky." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "Vybrané album je stejné jako zdrojové album. Vyberte jiné album." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Klepnutím sem přidejte obrázky" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +msgstr "Uložení dat se nezdařilo" + +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Na SD kartě 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_MF_BUTTON_CANCEL_ABB3" +msgstr "Zrušit" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Již nezobrazovat" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Používání Mobilních dat při roamingu může mít za následek další poplatky v závislosti na vašem tarifu." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "Bude odstraněno %d položek." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Odstranit" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Včera" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Stažené" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Kopírovat" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Odstranit" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Alba" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "Byl překročen maximální počet položek (%d)." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Storno" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "HOTOVO" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ZRUŠIT" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "ODSTRANIT" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Kopírování..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Probíhá přesouvání" + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Pokud vytvoříte obsah, který zahrnuje položky z osobního úložiště, pravděpodobně nebudou automaticky skryty. Vybraný osobní obsah se může zobrazit při zobrazení nového obsahu." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "UPRAVIT" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Nastavení" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "UPRAVIT" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Změnit uspořádání" + diff --git a/res/po/da.po b/res/po/da.po new file mode 100644 index 0000000..c6b6f2a --- /dev/null +++ b/res/po/da.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Din enhed er ikke sluttet til et Wi-Fi-netværk. Oprettelse af forbindelse til et mobilt netværk kan medføre yderligere gebyrer afhængig af dit abonnement." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobile data er slået fra. Opret forbindelse til et Wi-Fi-netværk i stedet, eller slå Mobile data til, og prøv igen." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "Når du har optaget videoer ved hjælp af kameraet, vil de blive vist her." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Filnavn allerede i brug." + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "Vil du slette %d elementer?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Beskyttelse" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Sep." + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Okt." + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Nov." + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "Maj" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Mar." + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Jun." + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Jul." + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Jan." + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Feb." + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Dec." + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Aug." + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Apr" + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Album" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Mere" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Ugyldigt inputparameter." + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Posten er tom." + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "Det samme navn er allerede i brug." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Kunne ikke omdøbe." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Ingen valgte album." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Vælg element" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Ingen album" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Opret mappe?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Prøv igen?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Fjern?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "%d album vil blive slettet." + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album vil blive slettet." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Kamera" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Start" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Indstillinger" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Ja" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "Nej" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Gem" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Slet?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Flyt til album" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Kopier til album" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Få vist efter" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Angiv navn" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Alle data relateret til denne konto bliver slettet. Fortsæt?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Annullér" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Nyt album" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Vil du kopiere eller flytte billederne fra det oprindelige album?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Del" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Diasshow" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Start diasshow" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Indstillinger for diasshow" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Intet navn" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Alle albummer" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Vælg album" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "1 element vil blive slettet." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Alle elementer" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d elementer" + +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_MF_BODY_DOWNLOADS" +msgstr "Downloads" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Slet?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Flyt" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Sletter ..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Handlingen mislykkedes." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Annulleret" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Valgte" + +msgid "IDS_MF_POP_MOVED" +msgstr "Flyttet." + +msgid "IDS_MF_POP_COPIED" +msgstr "Kopieret." + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "Ingen filer valgt." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Luk" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Sortér efter" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Seneste" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Ældste" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Opret" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Ingen elementer" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Redigér billede" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Vælg billede" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Slet dette element?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Landskab" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Fjern fra Privat" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Kæledyr" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Flyt til Privat" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Mad" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Blomster" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Dokumenter" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Køretøjer" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Det maksimale antal tegn (%d) er nået." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Kan ikke indlæse foto." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Del via" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Spørg ikke igen" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Det maksimale antal tegn er nået." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Tid" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Mislykkedes" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Slettet." + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Slet?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Fjerner..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "Viser %d elementer" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Opret album" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Galleri" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Mere" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Konti" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Handlingen mislykkedes." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Download" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Søg" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Tilbage" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Kamera" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Alle" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Opdatér" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Fjern" + +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_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Kontakter" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Opret" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Detaljer" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Udskriv" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Omdøb" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Downloadet." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Downloader ..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Angiv navn." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Mine filer" + +msgid "IDS_MF_POP_ADDED" +msgstr "Tilføjet." + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Behandler ..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Filtype understøttes ikke." + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "Når du har taget billeder, vises billederne." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Tilstanden Liggende" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Dobbelttryk for at lukke skuffemenuen." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Dobbelttryk for at åbne skuffemenuen." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Træk og slip" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Skuffe" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobile data deaktiveret. Opret forbindelse til Wi-Fi-netværk i stedet, eller aktivér mobile data og prøv igen." + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Wi-Fi-forbindelse kræves. Slut til Wi-Fi-netværk, og prøv igen." + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Tilføj billeder fra" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Tilsluttede enheder" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Privat indhold" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Fjern fra %s" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Fjern navnetag" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "Der er ingen begivenheder at vise. Opret en ny begivenhed." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "For at rulle hurtigt igennem andre datoer, skal du trykke og holde nede på datoindikatoren øverst til højre på skærmen." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "Fjern %d elementer?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Vil du fjerne dette element?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Galleri" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +msgstr "Blandede billeder" + +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Slet element" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Slet elementer" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 element" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 sekunder" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 sekunder" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Ikke tildelt" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Interval for diasshow" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Ikke-tagget" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 sekunder" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Alt indhold" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Indhold der skal vises" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Slet kode" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Enhedsindhold" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Dropbox-indhold" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Facebook-indhold" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Rotér mod venstre" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Rotér mod højre" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Importér" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Importeret." + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Importerer ..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Indlæser data ..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Der er fundet enheder i nærheden." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "Ingen enheder fundet. Scanning efter enheder i nærheden fortsætter i baggrunden." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Opdateret." + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Roterer ..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Scanning startet. Liste over enheder opdateres automatisk." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Starter download ..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Kopiér til" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Flyt til" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Kunne ikke tilføje genvej." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Der er ikke tilstrækkelig hukommelse. Slet nogle elementer." + +msgid "IDS_MF_POP_REMOVED" +msgstr "Fjernet." + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Tilføjer..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "Slet %d album?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Privat lager" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Træk hertil." + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Ny" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Ikke-grupperet" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Skærmbilleder" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Billeder" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Download mislykkedes." + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Fil understøttes ikke." + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 resultat" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d resultater" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Favoritter" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Download blev annulleret." + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Slet dette album?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Advarsel" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Sortér efter" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "I dag" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Dato" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "Der er ingen elementer at vise." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Tap her for at tage billeder eller videoer." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Det maksimale antal genstande, der kan deles (%d), er overskredet." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Tryk for at tilføje billeder." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Vil du kopiere eller flytte de valgte elementer fra det oprindelige album?" + +msgid "IDS_GALLERY_HEADER_SELECT" +msgstr "Vælg" + +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Vælg alle" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d valgt" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Se som" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Dato (nyeste)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Dato (ældste)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "Når du har taget billeder, vil de blive vist her." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Annullerer ..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "Fra enhed" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "Fra Dropbox" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "Fra Facebook" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Download udført." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Alle elementer bliver slettet." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "Der vil blive downloadet 1 element." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Der vil blive downloadet %d elementer." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Alle elementer vil blive downloadet." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "Det valgte album er det samme som kildealbummet. Vælg et andet album." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Tryk her for at tilføje billeder" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +msgstr "Kan ikke gemme data" + +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Der er ikke tilstrækkelig ledig plads på dit SD-kort. Gå til Indstillinger > Strøm og lager > Lagring, slet nogle filer, og prøv igen." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "Annuller" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Vis ikke igen" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Brug af mobile data under roaming kan medføre yderligere gebyrer afhængig af dit abonnement." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "%d elementer vil blive slettet." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Slet" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "I går" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Overførsler" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Kopier" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Slet" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Album" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "Det maksimale antal elementer (%d) er overskredet." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Annullér" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "UDFØRT" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ANNULLER" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "SLET" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Kopierer ..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Flytter ..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Hvis du opretter indhold, der inkluderer elementer fra personligt lager, skjules det muligvis ikke automatisk. Det valgte personlige indhold kan ses, når du får vist det nye indhold." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "REDIGER" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Indstillinger" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "REDIGER" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Skift rækkefølge" + diff --git a/res/po/de.po b/res/po/de.po new file mode 100644 index 0000000..26d1a2b --- /dev/null +++ b/res/po/de.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Ihr Gerät ist nicht mit einem WLAN-Netzwerk verbunden. Bei einer Verbindung mit einem mobilen Netz fallen je nach Tarif möglicherweise zusätzliche Gebühren an." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobile Daten sind deaktiviert. Stellen Sie stattdessen eine Verbindung mit einem WLAN her oder aktivieren Sie mobile Daten und versuchen Sie es erneut." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "Nach dem Aufnehmen von Videos mit der Kamera werden diese Videos hier angezeigt." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Dateiname wird bereits verwendet." + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "%d Elemente löschen?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Datenschutz" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Sep." + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Okt." + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Nov." + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "Mai" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Mär." + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Jun." + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Jul." + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Jan." + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Feb." + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Dez." + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Aug." + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Apr." + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Album" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Mehr" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Ungültiger Eingabeparameter" + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Eintrag ist leer" + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "Derselbe Name wird bereits verwendet" + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Umbenennen nicht möglich" + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Keine Alben ausgewählt." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Element auswählen" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Keine Alben" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Ordner erstellen?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Wiederholen?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Entfernen?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "%d Alben werden gelöscht." + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 Album wird gelöscht." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Kamera" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Start" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Einstellungen" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Ja" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "Nein" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Speichern" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Löschen?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "In Album verschieben" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "In Album kopieren" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Anzeigetyp" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Name eingeben" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Alle mit diesem Konto verbundenen Daten werden gelöscht. Fortfahren?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Abbrechen" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Neues Album" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Möchten Sie die Bilder aus dem Originalalbum kopieren oder verschieben?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Senden" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Diashow" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Diashow starten" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Diashoweinstellungen" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Kein Name" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Alle Alben" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Album auswählen" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "1 Element wird gelöscht." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Alle Elemente" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d Objekte" + +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_MF_BODY_DOWNLOADS" +msgstr "Downloads" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Löschen?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Verschieben" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Löschen..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Vorgang fehlgeschlagen" + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Storniert" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Ausgewählt" + +msgid "IDS_MF_POP_MOVED" +msgstr "Verschoben" + +msgid "IDS_MF_POP_COPIED" +msgstr "Kopiert" + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "Keine Dateien ausgewählt" + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Schließen" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Sortieren nach" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Aktuell" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Ältestes" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Erstellen" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Keine Elemente" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Bild bearbeiten" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Bild auswählen" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Dieses Element löschen?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Szene" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Aus Privat entfernen" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Haustiere" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Nach Privat verschieben" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Essen" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Blumen" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Dokumente" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Fahrzeuge" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Maximale Anzahl an Zeichen (%d) erreicht." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Foto konnte nicht geladen werden" + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Senden via" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Nicht erneut fragen" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Maximal zulässige Zeichenanzahl erreicht." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Zeit" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Fehler" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Gelöscht" + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Löschen?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Entferne..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "%d Elemente werden angezeigt." + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Album erstellen" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Galerie" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Weitere" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Konten" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Vorgang fehlgeschlagen" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Herunterladen" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Suche" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Zurück" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Kamera" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Alle" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Aktualisieren" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Entfernen" + +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_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Kontakte" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Erstellen" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Details" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Drucken" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Umbenennen" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Heruntergeladen" + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Herunterladen..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Name eingeben" + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Eigene Dateien" + +msgid "IDS_MF_POP_ADDED" +msgstr "Hinzugefügt" + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Verarbeitung läuft ..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Nicht unterstützter Dateityp" + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "Nach dem Aufnehmen von Bildern werden diese angezeigt." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Querformatmodus" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Zweimal tippen, um das Schubfachmenü zu schließen." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Zweimal tippen, um das Schubfachmenü zu öffnen." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Ziehen und ablegen" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Schubfach" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobile Daten sind deaktiviert. Verbinde dich stattdessen mit WLAN oder aktiviere mobile Daten und versuche es erneut." + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "WLAN-Verbindung erforderlich. Verbinden Sie sich mit einem WLAN-Netzwerk und versuchen Sie es erneut." + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Bilder hinzufügen von" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Verbundene Geräte" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Privater Inhalt" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Aus %s entfernen" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Namens-Tag entfernen" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "Keine Ereignisse vorhanden. Neues Ereignis erstellen." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "Um schnell zu einem anderen Datum zu blättern, tippen und halten Sie die Datumsanzeige oben rechts auf dem Bildschirm." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "%d Elemente entfernen?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Dieses Element entfernen?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Galerie" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +msgstr "Gemischte Bilder" + +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Element löschen" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Elemente löschen" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 Element" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 Sekunden" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 Sekunden" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Nicht zugewiesen" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Diashowintervall" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Ohne Tag" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 Sekunden" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Gesamter Inhalt" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Anzuzeigender Inhalt" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Tag löschen" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Geräteinhalt" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Dropbox-Inhalt" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Facebook-Inhalt" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Nach links drehen" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Nach rechts drehen" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Importieren" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Importiert" + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Importieren..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Lädt..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Geräte in der Nähe gefunden" + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "Keine Geräte gefunden. Der Scan nach Geräten in der Nähe wird im Hintergrund ausgeführt." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Aktualisiert" + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Drehen..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Scan gestartet. Geräteliste wird automatisch aktualisiert." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Starte Download..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Kopieren nach" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Verschieben in" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Verknüpfung konnte nicht hinzugefügt werden." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Nicht genügend Speicher. Löschen Sie einige Elemente" + +msgid "IDS_MF_POP_REMOVED" +msgstr "Entfernt" + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Wird hinzugefügt..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "%d Alben löschen?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Privater Speicher" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Hierher ziehen" + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Neu" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Nicht gruppiert" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Screenshots" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Fotos" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Herunterladen fehlgeschlagen" + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Nicht unterstützte Datei" + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 Ergebnis" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d Ergebnisse" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Favoriten" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Herunterladen abgebrochen" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Dieses Album löschen?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Warnung" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Sortieren nach" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Heute" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Datum" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "Keine anzuzeigenden Elemente" + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Tippen Sie hier, um Bilder oder Videos aufzunehmen." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Die maximale Anzahl von Elementen, die freigegeben werden können (%d), wurde überschritten." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Bilder hinzufügen" + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Die ausgewählten Elemente aus dem Originalalbum kopieren oder verschieben?" + +msgid "IDS_GALLERY_HEADER_SELECT" +msgstr "Auswählen" + +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Alle auswählen" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d ausgewählt" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Ansicht" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Datum (neueste)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Datum (ält.)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "Bilder werden nach der Aufnahme hier angezeigt." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Abbrechen..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "Vom Gerät" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "Aus Dropbox" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "Von Facebook" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Vollständig heruntergeladen" + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Alle Elemente werden gelöscht." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "1 Element wird heruntergeladen." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "%d Elemente werden heruntergeladen." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Alle Elemente werden heruntergeladen." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "Das ausgewählte Album ist dasselbe wie das ursprüngliche Album. Wählen Sie ein anderes Album aus." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Hier tippen, um Bilder hinzuzufügen." + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +msgstr "Daten nicht speicherbar" + +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Es ist nicht genügend Speicher auf der SD-Karte frei. Wechseln Sie zu „Einstellungen > Energie und Speicher > Speicher“, löschen Sie Dateien und versuchen Sie es dann erneut." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "Abbrechen" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Nicht erneut anzeigen" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Die Nutzung von mobilen Daten beim Roaming kann je nach Tarif zusätzliche Kosten verursachen." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "%d Elemente werden gelöscht." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Löschen" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Gestern" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Downloads" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Kopieren" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Löschen" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Alben" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "Die maximale Anzahl von Elementen (%d) wurde überschritten." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Abbruch" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "FERTIG" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ABBRECHEN" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "LÖSCHEN" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Wird kopiert..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Verschiebevorgang aktiv..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Inhalt, der Elemente aus dem persönlichen Speicher umfasst, wird möglicherweise nicht automatisch ausgeblendet. Der ausgewählte persönliche Inhalt könnte beim Ansehen des neuen Inhalts sichtbar sein." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "BEARBEITEN" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Einstellungen" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "BEARBEITEN" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Neue Sortierung" + diff --git a/res/po/el_GR.po b/res/po/el_GR.po new file mode 100644 index 0000000..0199a0b --- /dev/null +++ b/res/po/el_GR.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Η συσκευή σας δεν έχει συνδεθεί σε δίκτυο Wi-Fi. Η σύνδεση σε δίκτυο κινητής τηλεφωνίας ενδέχεται να επιφέρει πρόσθετες χρεώσεις, ανάλογα με το πρόγραμμα χρέωσης που διαθέτετε." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Τα δεδομένα κινητής τηλεφωνίας απενεργοποιήθηκαν. Συνδεθείτε σε ένα δίκτυο Wi-Fi ή ενεργοποιήστε τα δεδομένα κινητής τηλεφωνίας και δοκιμάστε ξανά." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "Αφού τραβήξετε βίντεο με την κάμερα, τα βίντεο θα εμφανιστούν εδώ." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Το όνομα αρχείου χρησιμοποιείται ήδη." + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "Διαγραφή των στοιχείων %d;" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Απόρρητο" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Σεπ." + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Οκτ." + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Νοέ." + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "Μάη." + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Μάρ." + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Ιούν" + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Ιούλ" + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Ιαν." + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Φεβ." + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Δεκ." + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Αύγ." + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Απρ." + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Άλμπουμ" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Περισσότερα" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Μη έγκυρη παράμετρος δεδομένων εισόδου." + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Κενή καταχώρηση." + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "Το όνομα χρησιμοποιείται ήδη." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Δεν είναι δυνατή η μετονομασία." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Δεν έχουν επιλεγεί άλμπουμ." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Επιλογή στοιχείου" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Δεν υπάρχουν άλμπουμ" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Δημιουργία φακέλου;" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Επανάληψη;" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Αφαίρεση;" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "Θα διαγραφούν %d άλμπουμ." + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "Θα διαγραφεί 1 άλμπουμ." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Κάμερα" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Έναρξη" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Ρυθμίσεις" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Ναι" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "Όχι" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Αποθήκ." + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Διαγραφή;" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Μετακίνηση σε άλμπουμ" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Αντιγραφή σε άλμπουμ" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Προβολή κατά" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Εισαγωγή ονόματος" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Θα γίνει διαγραφή όλων των δεδομένων που έχουν σχέση με αυτόν τον λογαριασμό. Συνέχεια;" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Ακύρωση" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Νέο άλμπουμ" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Θέλετε να αντιγράψετε ή να μεταφέρετε φωτογραφίες από το αρχικό άλμπουμ;" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Κοινόχρηστο" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Παρουσίαση" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Έναρξη παρουσίασης" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Ρυθμίσεις παρουσίασης" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Κανένα όνομα" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Όλα τα άλμπουμ" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Επιλογή άλμπουμ" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "Θα γίνει διαγραφή 1 στοιχείου." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Όλα τα στοιχεία" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d στοιχεία" + +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_MF_BODY_DOWNLOADS" +msgstr "Λήψεις" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Διαγραφή;" + +msgid "IDS_MF_SK_MOVE" +msgstr "Μετακίνηση" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Διαγραφή..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Λειτουργία απέτυχε." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Ακυρώθηκε" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Επιλεγμένο" + +msgid "IDS_MF_POP_MOVED" +msgstr "Μετακινήθηκε." + +msgid "IDS_MF_POP_COPIED" +msgstr "Αντιγράφηκε." + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "Καμία επιλογή αρχείου." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Κλείσιμο" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Ταξινόμηση κατά" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Πιο πρόσφατα" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Παλαιότερο" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Δημιουργία" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Κανένα στοιχείο" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Επεξεργασία εικόνας" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Επιλογή εικόνας" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Να διαγραφεί αυτό το στοιχείο;" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Scenery" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Κατάργηση από το φάκελο «Απόρρητο»" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Κατοικίδια" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Μετακίνηση στο φάκελο «Ιδιωτικό»" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Φαγητό" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Λουλούδια" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Έγγραφα" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Οχήματα" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Συμπληρώθηκε ο μέγιστος αριθμός χαρακτήρων (%d)." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Δεν είναι δυνατή η φόρτωση της φωτ." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Κοινή χρήση μέσω" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Να μην ερωτηθώ ξανά" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Ο μέγιστος αριθμός χαρακτήρων συμπληρώθηκε." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Ώρα" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Απέτυχε" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Διαγράφηκε." + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Διαγραφή;" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Αφαίρεση..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "Εμφάνιση %d στοιχείων" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Δημιουργία άλμπουμ" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Συλλογή" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Περισσότερα" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Λογαριασμοί" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Λειτουργία απέτυχε." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Λήψη" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Αναζήτηση" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Πίσω" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Κάμερα" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Όλα" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Ανανέωση" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Κατάργηση" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Τα στοιχεία θα εμφανιστούν μετά την αποστολή εικόνων στο Dropbox." + +msgid "IDS_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Επαφές" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Δημ/ργία" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Λεπτομέρειες" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Εκτύπωση" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Μετονομασία" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Η λήψη ολοκληρώθηκε." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Λήψη..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Εισαγωγή ονόματος." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Τα Αρχεία Μου" + +msgid "IDS_MF_POP_ADDED" +msgstr "Προστέθηκε." + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Επεξεργασία..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Μη υποστηριζόμενος τύπος αρχείου." + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "Θα εμφανιστούν εικόνες μετά από τη λήψη φωτογραφιών." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Λειτουργία οριζόντιου προσανατολισμού" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Πατήστε δύο φορές για να κλείσετε το μενού συρταριών." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Πατήστε δύο φορές για να ανοίξετε το μενού συρταριών." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Μεταφορά και απόθεση" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Συρτάρι" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Τα δεδομένα κινητής τηλεφωνίας απενεργοποιήθηκαν. Συνδεθείτε σε δίκτυο Wi-Fi ή ενεργοποιήστε τα δεδομένα κινητής τηλεφωνίας και δοκιμάστε ξανά" + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Απαιτείται σύνδεση Wi-Fi. Συνδεθείτε σε δίκτυο Wi-Fi και δοκιμάστε ξανά" + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Προσθήκη εικόνων από" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Συνδεδεμένες συσκευές" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Απόρρητο περιεχόμενο" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Κατάργηση από %s" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Κατάργηση ετικέτας ονόματος" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "Δεν υπάρχουν συμβάντα προς εμφάνιση. Δημιουργήστε νέο συμβάν." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "Για γρήγορη κύλιση σε άλλες ημερομηνίες, πατήστε την ένδειξη ημερομηνίας στην επάνω δεξιά γωνία της οθόνης." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "Να καταργηθούν %d στοιχεία;" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Να καταργηθεί αυτό το στοιχείο;" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Συλλογή" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Διαγραφή στοιχείου" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Διαγραφή στοιχείων" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 στοιχείο" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 δευτερόλεπτα" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 δευτερόλεπτα" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Δεν έχει αντιστοιχηθεί" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Διάστημα παρουσίασης" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Χωρίς ετικέτα" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 δευτερόλεπτα" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Όλο το περιεχόμενο" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Περιεχόμενο για εμφάνιση" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Διαγραφή ετικέτας" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Περιεχόμενο συσκευής" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Περιεχόμενο Dropbox" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Περιεχόμενο Facebook" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Περ. προς τα αριστερά" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Περ. προς τα δεξιά" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Εισαγωγή" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Έγινε εισαγωγή." + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Εισαγωγή..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Φόρτωση..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Βρέθηκαν κοντινές συσκευές." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "Δεν βρέθηκαν συσκευές. Η σάρωση για κοντινές συσκευές θα συνεχιστεί στο παρασκήνιο." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Έγινε ανανέωση." + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Περιστροφή..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Έγινε έναρξη της σάρωσης. Η λίστα συσκευών θα ενημερωθεί αυτόματα." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Γίνεται έναρξη της λήψης..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Αντιγραφή σε" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Μετακίνηση σε" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Αποτυχία προσθήκης συντόμευσης." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Δεν υπάρχει αρκετή μνήμη. Διαγράψτε ορισμένα στοιχεία" + +msgid "IDS_MF_POP_REMOVED" +msgstr "Αφαιρέθηκε." + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Προσθήκη..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "Να διαγραφούν %d άλμπουμ;" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Απόρρητος χώρος αποθήκευσης" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Μεταφορά εδώ." + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Νέο" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Μη ομαδοποιημένα άτομα" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Στιγμιότυπα οθόνης" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Φωτογραφίες" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Αποτυχία λήψης." + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Μη υποστηριζόμενο αρχείο." + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 αποτέλεσμα" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d αποτελέσματα" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Favorites" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Ακύρωση λήψης." + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Να διαγραφεί αυτό το άλμπουμ;" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Προειδοποίηση" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Ταξινόμηση κατά" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Σήμερα" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Ημερομηνία" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "Δεν υπάρχουν στοιχεία προς προβολή." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Πατήστε εδώ για να τραβήξετε φωτογραφίες ή βίντεο." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Έγινε υπέρβαση του μέγιστου αριθμού στοιχείων με δυνατότητα κοινοποίησης (%d)." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Πατήστε για προσθήκη εικόνων." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Θέλετε να αντιγράψετε ή να μεταφέρετε τα επιλεγμένα στοιχεία από το αρχικό άλμπουμ;" + +msgid "IDS_GALLERY_HEADER_SELECT" +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Επιλογή όλων" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "Επιλέχθηκαν %d" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Προβολή ως" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Ημερ. (πιο πρόσφ.)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Ημερομηνία (παλ.)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "Όταν τραβήξετε φωτογραφίες, θα εμφανιστούν εδώ." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Ακύρωση..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "Από τη συσκευή" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "Από το Dropbox" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "Από το Facebook" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Η λήψη ολοκληρώθηκε." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Θα γίνει διαγραφή όλων των στοιχείων." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "Θα γίνει λήψη 1 στοιχείου." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Θα γίνει λήψη %d στοιχείων." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Θα γίνει λήψη όλων των στοιχείων." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "Το επιλεγμένο άλμπουμ είναι ίδιο με το άλμπουμ προέλευσης. Επιλέξτε άλλο άλμπουμ." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Πατήστε εδώ για να προσθέσετε εικόνες" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Ο χώρος αποθήκευσης της κάρτας SD δεν επαρκεί. Μεταβείτε στις Ρυθμίσεις > Ενέργεια και χώρος αποθήκευσης > Χώρος αποθήκευσης και, στη συνέχεια, διαγράψτε ορισμένα αρχεία και δοκιμάστε ξανά." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "Ακύρωση" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Να μην εμφανιστεί ξανά" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Η χρήση δεδομένων κινητής τηλεφωνίας κατά την περιαγωγή ενδέχεται να επιφέρει πρόσθετες χρεώσεις, ανάλογα με το πρόγραμμα πληρωμής σας." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "Θα διαγραφούν %d στοιχεία." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Διαγραφή" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Xθές" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Λήψεις" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Αντιγραφή" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Διαγραφή" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Άλμπουμ" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "Έγινε υπέρβαση του μέγιστου αριθμού στοιχείων (%d)." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Ακύρωση" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "ΤΕΛΟΣ" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ΑΚΥΡΟ" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "ΔΙΑΓΡΑΦΗ" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Αντιγραφή..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Μετακίνηση..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Αν δημιουργήσετε περιεχόμενο που περιλαμβάνει στοιχεία από τον προσωπικό χώρο αποθήκευσης, ενδέχεται να μη γίνει αυτόματα η απόκρυψη τους. Το επιλεγμένο προσωπικό περιεχόμενο μπορεί να εμφανιστεί κατά την προβολή του νέου περιεχομένου." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "ΕΠΕΞΕΡΓΑΣΙΑ" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Ρυθμίσεις" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "ΕΠΕΞΕΡ." + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Αναδιάταξη" + diff --git a/res/po/en.po b/res/po/en.po new file mode 100644 index 0000000..ec23cf2 --- /dev/null +++ b/res/po/en.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Your device is not connected to a Wi-Fi network. Connecting to a mobile network may result in additional charges depending on your payment plan." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobile data turned off. Connect to Wi-Fi network instead, or turn on Mobile data and try again." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "After you record videos using the camera, they will be shown here." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "File name already in use." + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "Delete %d items?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Privacy" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Sep" + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Oct" + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Nov" + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "May" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Mar" + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Jun" + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Jul" + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Jan" + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Feb" + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Dec" + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Aug" + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Apr" + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Album" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "More" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Invalid input parameter." + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Entry is empty." + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "Same name already in use." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Unable to rename." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "No albums selected." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Select item" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "No albums" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Create folder?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Retry?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Remove?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "%d albums will be deleted." + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album will be deleted." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Camera" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Start" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Settings" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Yes" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "No" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Save" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Delete?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Move to album" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Copy to album" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "View by" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Enter name" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "All data related to this account will be deleted. Continue?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Cancel" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "New album" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Do you want to copy or move the pictures from the original album?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Share" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Slideshow" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Start slideshow" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Slideshow settings" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "No name" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "All albums" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Select album" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "1 item will be deleted." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "All items" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d items" + +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_MF_BODY_DOWNLOADS" +msgstr "Downloads" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Delete?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Move" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Deleting..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Operation failed." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Cancelled" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Selected" + +msgid "IDS_MF_POP_MOVED" +msgstr "Moved." + +msgid "IDS_MF_POP_COPIED" +msgstr "Copied." + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "No files selected." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Close" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Sort by" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Latest" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Oldest" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Create" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "No items" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Edit image" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Select picture" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Delete this item?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Scenery" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Remove from Private" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Pets" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Move to Private" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Food" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Flowers" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Documents" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Vehicles" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Maximum number of characters (%d) reached." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Unable to load photo." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Share via" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Don't ask again" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Maximum number of characters reached." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Time" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Failed" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Deleted." + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Delete?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Removing..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "Showing %d items" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Create album" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Gallery" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "More" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Accounts" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Operation failed." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Download" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Search" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Back" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Camera" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "All" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Refresh" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Remove" + +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_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Contacts" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Create" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Details" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Print" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Rename" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Downloaded." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Downloading..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Enter name." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "My Files" + +msgid "IDS_MF_POP_ADDED" +msgstr "Added." + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Processing..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Unsupported file type." + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "After you take pictures, pictures will be shown." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Landscape mode" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Double tap to close drawer menu." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Double tap to open drawer menu." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Drag and drop" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Drawer" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobile data is disabled. Connect to Wi-Fi network instead, or enable mobile data and try again." + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Wi-Fi connection required. Connect to Wi-Fi network and try again." + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Add pictures from" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Connected devices" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Private content" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Remove from %s" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Remove name tag" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "There are no events to display. Create a new event." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "To scroll quickly to other dates, tap and hold the date indicator at the top right of the screen." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "Remove %d items?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Remove this item?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Gallery" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +msgstr "Shuffled pictures" + +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Delete item" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Delete items" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 item" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 seconds" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 seconds" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Not assigned" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Slideshow interval" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Untagged" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 seconds" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "All content" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Content to display" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Delete tag" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Device content" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Dropbox content" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Facebook content" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Rotate left" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Rotate right" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Import" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Imported." + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Importing..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Loading..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Nearby devices found." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "No devices found. Scanning for nearby devices will continue in background." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Refreshed." + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Rotating..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Scan started. Device list will be updated automatically." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Starting download..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Copy to" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Move to" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Failed to add shortcut." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Not enough memory. Delete some items." + +msgid "IDS_MF_POP_REMOVED" +msgstr "Removed." + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Adding..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "Delete %d albums?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Private storage" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Drag here." + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "New" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Ungrouped" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Screenshots" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Photos" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Download failed." + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Unsupported file." + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 result" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d results" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Favorites" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Download cancelled." + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Delete this album?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Warning" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Sort by" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Today" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Date" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "No items to display." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Tap here to take pictures or videos." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Maximum number of items that can be shared (%d) exceeded." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Tap to add images." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Copy or move the selected items from the original album?" + +msgid "IDS_GALLERY_HEADER_SELECT" +msgstr "Select" + +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Select all" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d selected" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "View as" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Date (most recent)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Date (oldest)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "After you take pictures, they will be shown here." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Cancelling..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "From device" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "From Dropbox" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "From Facebook" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Download completed." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "All items will be deleted." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "1 item will be downloaded." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "%d items will be downloaded." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "All items will be downloaded." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "Selected album same as source album. Select another album." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Tap here to add images" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +msgstr "Unable to save data" + +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "There is not enough space on your SD card. Go to Settings > Power and storage > Storage, then delete some files and try again." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "Cancel" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Do not show again" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Using Mobile data while roaming may result in additional charges depending on your payment plan." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "%d items will be deleted." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Delete" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Yesterday" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Downloads" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Copy" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Delete" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Albums" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "The maximum number of items (%d) has been exceeded." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Cancel" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "DONE" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "CANCEL" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "DELETE" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Copying..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Moving..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "If you create content that includes items from personal storage, it may not be hidden automatically. The selected personal content could be seen when viewing the new content." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "EDIT" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Settings" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "EDIT" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Reorder" + diff --git a/res/po/en_PH.po b/res/po/en_PH.po new file mode 100644 index 0000000..2605002 --- /dev/null +++ b/res/po/en_PH.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Your device is not connected to a Wi-Fi network. Connecting to a mobile network may result in additional charges depending on your payment plan." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobile data turned off. Connect to Wi-Fi network instead, or turn on Mobile data and try again." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "After you record videos using the camera, they will be shown here." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "File name already in use." + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "Delete %d items?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Privacy" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Sep." + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Oct." + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Nov." + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "May" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Mar." + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Jun." + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Jul." + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Jan." + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Feb." + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Dec." + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Aug." + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Apr." + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Album" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "More" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Invalid input parameter." + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Entry is empty." + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "Same name already in use." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Unable to rename." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "No albums selected." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Select item" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "No albums" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Create folder?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Retry?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Remove?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "%d albums will be deleted." + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album will be deleted." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Camera" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Start" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Settings" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Yes" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "No" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Save" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Delete?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Move to album" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Copy to album" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "View by" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Enter name" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "All data related to this account will be deleted. Continue?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Cancel" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "New album" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Do you want to copy or move the pictures from the original album?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Share" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Slideshow" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Start slideshow" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Slideshow settings" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "No name" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "All albums" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Select album" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "1 item will be deleted." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "All items" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d items" + +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_MF_BODY_DOWNLOADS" +msgstr "Downloads" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Delete?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Move" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Deleting..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Operation failed." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Cancelled" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Selected" + +msgid "IDS_MF_POP_MOVED" +msgstr "Moved." + +msgid "IDS_MF_POP_COPIED" +msgstr "Copied." + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "No files selected." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Close" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Sort by" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Latest" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Oldest" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Create" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "No items" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Edit image" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Select picture" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Delete this item?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Scenery" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Remove from Private" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Pets" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Move to Private" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Food" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Flowers" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Documents" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Vehicles" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Maximum number of characters (%d) reached." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Unable to load photo." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Share via" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Don't ask again" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Maximum number of characters reached." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Time" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Failed" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Deleted." + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Delete?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Removing..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "Showing %d items" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Create album" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Gallery" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "More" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Accounts" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Operation failed." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Download" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Search" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Back" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Camera" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "All" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Refresh" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Remove" + +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_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Contacts" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Create" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Details" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Print" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Rename" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Downloaded." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Downloading..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Enter name." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "My Files" + +msgid "IDS_MF_POP_ADDED" +msgstr "Added." + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Processing..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Unsupported file type." + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "Photos will be shown only after you taken the picture." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Landscape mode" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Double tap to close drawer menu." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Double tap to open drawer menu." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Drag and drop" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Drawer" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobile data is disabled. Connect to Wi-Fi network instead or enable mobile data and try again" + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Wi-Fi connection required. Connect to Wi-Fi network and try again" + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Add pictures from" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Connected devices" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Private content" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Remove from %s" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Remove name tag" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "There are no events to display. Create a new event." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "To scroll quickly to other dates, tap and hold the date indicator at the top right of the screen." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "Remove %d items?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Remove this item?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Gallery" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +msgstr "Shuffled pictures" + +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Delete item" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Delete items" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 item" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 seconds" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 seconds" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Not assigned" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Slideshow interval" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Untagged" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 seconds" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "All content" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Content to display" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Delete tag" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Device content" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Dropbox content" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Facebook content" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Rotate left" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Rotate right" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Import" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Imported." + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Importing..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Loading..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Nearby devices found." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "No devices found. Scanning for nearby devices will continue in background" + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Refreshed." + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Rotating..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Scan started. Device list will be updated automatically" + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Starting download..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Copy to" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Move to" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Failed to add shortcut." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Not enough memory. Delete some items" + +msgid "IDS_MF_POP_REMOVED" +msgstr "Removed." + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Adding..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "Delete %d albums?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Private storage" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Drag here" + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "New" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Ungrouped" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Screenshots" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Photos" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Download unavailable." + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Unsupported file." + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 result" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d results" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Favorites" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Download canceled." + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Delete this album?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Warning" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Sort by" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Today" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Date" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "No items to display." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Tap here to take pictures or videos." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Maximum number of items that can be shared (%d) exceeded." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Tap to add images." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Copy or move the selected items from the original album?" + +msgid "IDS_GALLERY_HEADER_SELECT" +msgstr "Select" + +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Select all" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d selected" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "View as" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Date (most recent)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Date (oldest)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "After you take pictures, they will be shown here." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Canceling..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "From device" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "From Dropbox" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "From Facebook" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Download completed." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "All items will be deleted." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "1 item will be downloaded." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "%d items will be downloaded." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "All items will be downloaded." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "Selected album same as source album. Select another album." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Tap here to add images" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +msgstr "Unable to save data" + +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "There is not enough space on your SD card. Go to Settings > Power and storage > Storage, then delete some files and try again." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "Cancel" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Do not show again" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Using Mobile data while roaming may result in additional charges depending on your payment plan." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "%d items will be deleted." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Delete" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Yesterday" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Downloads" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Copy" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Delete" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Albums" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "The maximum number of items (%d) has been exceeded." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Cancel" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "DONE" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "CANCEL" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "DELETE" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Copying..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Moving..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "If you create content that includes items from personal storage, it may not be hidden automatically. The selected personal content could be seen when viewing the new content." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "EDIT" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Settings" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "EDIT" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Change order" + diff --git a/res/po/en_US.po b/res/po/en_US.po new file mode 100644 index 0000000..2cbec3c --- /dev/null +++ b/res/po/en_US.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Your device is not connected to a Wi-Fi network. Connecting to a mobile network may result in additional charges depending on your payment plan." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobile data off. Connect to Wi-Fi network instead, or turn on Mobile data and try again." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "After you record videos using the camera, they will be shown here." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "File name already in use." + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "Delete %d items?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Privacy" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Sep" + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Oct" + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Nov" + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "May" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Mar" + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Jun" + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Jul" + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Jan" + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Feb" + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Dec" + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Aug" + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Apr" + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Album" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "More" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Invalid input parameter." + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Entry is empty." + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "Same name already in use." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Unable to rename." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "No albums selected." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Select item" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "No albums" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Create folder?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Retry?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Remove?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "%d albums will be deleted." + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album will be deleted." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Camera" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Start" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Settings" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Yes" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "No" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Save" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Delete?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Move to album" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Copy to album" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "View by" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Enter name" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "All data related to this account will be deleted. Continue?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Cancel" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "New album" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Do you want to copy or move the pictures from the original album?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Share" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Slideshow" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Start slideshow" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Slideshow settings" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "No name" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "All albums" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Select album" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "1 item will be deleted." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "All items" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d items" + +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_MF_BODY_DOWNLOADS" +msgstr "Downloads" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Delete?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Move" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Deleting..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Operation failed." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Canceled" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Selected" + +msgid "IDS_MF_POP_MOVED" +msgstr "Moved." + +msgid "IDS_MF_POP_COPIED" +msgstr "Copied." + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "No files selected." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Close" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Sort by" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Latest" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Oldest" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Create" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "No items" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Edit image" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Select picture" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Delete this item?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Scenery" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Remove from Private" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Pets" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Move to Private" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Food" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Flowers" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Documents" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Vehicles" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Maximum number of characters (%d) reached." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Unable to load photo." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Share via" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Don't ask again" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Maximum number of characters reached." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Time" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Failed" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Deleted." + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Delete?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Removing..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "Showing %d items" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Create album" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Gallery" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "More" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Accounts" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Operation failed." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Download" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Search" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Back" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Camera" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "All" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Refresh" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Remove" + +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_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Contacts" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Create" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Details" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Print" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Rename" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Downloaded." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Downloading..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Enter name." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "My Files" + +msgid "IDS_MF_POP_ADDED" +msgstr "Added." + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Processing..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Unsupported file type." + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "After you take pictures, pictures will be shown." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Landscape mode" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Double tap to close drawer menu." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Double tap to open drawer menu." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Drag and drop" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Drawer" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobile data turned off. Connect to Wi-Fi network or turn on mobile data and try again." + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Wi-Fi connection required. Connect to Wi-Fi network and try again." + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Add pictures from" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Connected devices" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Private content" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Remove from %s" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Remove name tag" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "There are no events to display. Create a new event." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "To scroll quickly to other dates, touch and hold the date indicator at the top right of the screen." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "Remove %d items?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Remove this item?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Gallery" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +msgstr "Shuffled pictures" + +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Delete item" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Delete items" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 item" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 seconds" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 seconds" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Not assigned" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Slideshow interval" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Untagged" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 seconds" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "All content" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Content to display" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Delete tag" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Device content" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Dropbox content" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Facebook content" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Rotate left" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Rotate right" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Import" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Imported." + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Importing..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Loading..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Nearby devices found." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "No devices found. Scanning for nearby devices will continue in background." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Refreshed." + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Rotating..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Scan started. Device list will be updated automatically." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Starting download..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Copy to" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Move to" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Failed to add shortcut." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Not enough memory. Delete some items." + +msgid "IDS_MF_POP_REMOVED" +msgstr "Removed." + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Adding..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "Delete %d albums?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Private storage" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Drag here" + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "New" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Ungrouped" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Screenshots" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Photos" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Download unavailable." + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Unsupported file." + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 result" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d results" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Favorites" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Download canceled." + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Delete this album?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Warning" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Sort by" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Today" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Date" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "No items to display." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Tap here to take pictures or videos." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Maximum number of items that can be shared (%d) exceeded." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Tap to add images." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Copy or move the selected items from the original album?" + +msgid "IDS_GALLERY_HEADER_SELECT" +msgstr "Select" + +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Select all" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d selected" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "View as" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Date (most recent)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Date (oldest)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "After you take pictures, they will be shown here." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Canceling..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "From device" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "From Dropbox" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "From Facebook" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Download completed." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "All items will be deleted." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "1 item will be downloaded." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "%d items will be downloaded." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "All items will be downloaded." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "Selected album same as source album. Select another album." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Tap here to add images" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +msgstr "Unable to save data" + +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "There is not enough space on your SD card. Go to Settings > Power and storage > Storage, then delete some files and try again." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "Cancel" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Do not show again" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Using Mobile data while roaming may result in additional charges depending on your payment plan." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "%d items will be deleted." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Delete" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Yesterday" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Downloads" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Copy" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Delete" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Albums" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "The maximum number of items (%d) has been exceeded." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Cancel" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "DONE" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "CANCEL" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "DELETE" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Copying..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Moving..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "If you create content that includes items from personal storage, it may not be hidden automatically. The selected personal content could be seen when viewing the new content." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "EDIT" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Settings" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "EDIT" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Reorder" + diff --git a/res/po/es_ES.po b/res/po/es_ES.po new file mode 100644 index 0000000..df9921d --- /dev/null +++ b/res/po/es_ES.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "El dispositivo no está conectado a una red Wi-Fi. La conexión a una red móvil puede suponer un coste adicional dependiendo de su plan de pago." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Los datos móviles están desactivados. En su lugar, conéctese a una red Wi-Fi o active los datos móviles y vuelva a intentarlo." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "Después de grabar vídeos con la cámara, se mostrarán aquí." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "El nombre de archivo ya está en uso." + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "¿Eliminar %d elementos?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Privacidad" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Sep." + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Oct." + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Nov" + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "May." + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Mar." + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Jun" + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Jul" + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Ene." + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Feb." + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Dic." + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Ago." + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Abr." + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Álbum" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Más" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Parámetro de entrada no válido" + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Entrada vacía" + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "El mismo nombre ya está en uso" + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Imposible cambiar el nombre" + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "No hay álbumes seleccionados" + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Seleccionar elemento" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "No hay álbumes" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "¿Crear carpeta?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "¿Volver a intentar?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "¿Eliminar?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "Se eliminarán %d álbumes" + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "Se eliminará 1 álbum" + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Cámara" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Iniciar" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Ajustes" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Sí" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "No" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "Aceptar" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Guardar" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "¿Eliminar?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Mover al álbum" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Copiar en álbum" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Ver por" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Introducir nombre" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Se eliminarán todos los datos relacionados con esta cuenta. ¿Continuar?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Cancelar" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Nuevo álbum" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "¿Quiere copiar o mover las fotos del álbum original?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Compartir" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Presentación de diapositivas" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Iniciar presentación de diapositivas" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Configuración de presentación de diapositivas" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Sin nombre" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Todos los álbumes" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Seleccionar álbum" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "Se eliminará 1 elemento." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Todos los elementos" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d elementos" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Solo hay un álbum" + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Puede seleccionar hasta %d elementos" + +msgid "IDS_MF_BODY_DOWNLOADS" +msgstr "Descargas" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "¿Eliminar?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Mover" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Eliminando..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Error de funcionamiento" + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Cancelado" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Seleccionado" + +msgid "IDS_MF_POP_MOVED" +msgstr "Movido" + +msgid "IDS_MF_POP_COPIED" +msgstr "Copiado" + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "No se ha seleccionado ningún archivo" + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Cerrar" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Ordenar por" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Más recientes" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Más antiguo" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Crear" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Ningún elemento" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Editar imagen" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Seleccionar imagen" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "¿Eliminar este elemento?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Paisaje" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Eliminar de Privado" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Mascotas" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Mover a Privado" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Comida" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Flores" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Documentos" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Vehículos" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Número máximo de caracteres (%d) alcanzado" + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "No se puede cargar la foto" + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Compartir" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "No preguntar de nuevo" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Alcanzado el número máximo de caracteres" + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Hora" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Error" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Eliminado" + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "¿Eliminar?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Eliminando..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "Mostrando %d elementos" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Crear un álbum" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Galería" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Más" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Cuentas" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Error de funcionamiento" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Descargar" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Buscar" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Atrás" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Cámara" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Todo" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Actualizar" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Eliminar" + +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_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Contactos" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Crear" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Detalles" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Imprimir" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Renombrar" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Descargado" + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Descargando..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Introducir nombre" + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Mis Archivos" + +msgid "IDS_MF_POP_ADDED" +msgstr "Añadido" + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Procesando..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Tipo de archivo no admitido" + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "Las fotos se mostrarán después de tomarlas" + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Modo horizontal" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Pulse dos veces para cerrar el menú desplegable." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Pulse dos veces para abrir el menú desplegable." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Arrastrar y soltar" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Cajón" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Los datos móviles están desactivados. Conéctese a una red Wi-Fi en su lugar o active los datos móviles y vuelva a intentarlo." + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Conexión Wi-Fi requerida. Conecte a una red Wi-Fi y vuelva a intentarlo." + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Añadir imágenes desde" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Dispositivos conectados" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Contenido privado" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Eliminar de %s" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Quitar etiqueta de nombre" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "No hay eventos para mostrar. Cree un nuevo evento." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "Para desplazarse rápidamente a otras fechas, mantenga pulsado el indicador de fecha en la parte superior derecha de la pantalla." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "¿Eliminar %d elementos?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "¿Eliminar este elemento?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Galería" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +msgstr "Fotos mezcladas" + +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Eliminar elemento" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Eliminar artículos" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 elemento" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 segundos" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 segundos" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "No asignado" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Intervalo de presentación de diapositivas" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Sin etiquetar" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 segundos" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Todo el contenido" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Contenido para mostrar" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Eliminar etiqueta" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Contenido del dispositivo" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Contenido de Dropbox" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Contenido de Facebook" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Girar a la izquierda" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Girar a la derecha" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Importar" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Importadas" + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Importando..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Cargando..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Dispositivos cercanos encontrados" + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "No se han encontrado dispositivos. La búsqueda de dispositivos cercanos continuará en segundo plano." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Actualizado" + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Rotando..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Búsqueda iniciada. La lista de dispositivos se actualizará automáticamente." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Iniciando descarga..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Copiar a" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Mover a" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Error al añadir acceso directo" + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "No hay memoria suficiente. Elimine algunos elementos." + +msgid "IDS_MF_POP_REMOVED" +msgstr "Eliminado" + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Añadiendo..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "¿Eliminar %d álbumes?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Almacenamiento privado" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Mover aquí" + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Nuevo" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Sin agrupar" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Capturas de pantalla" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Fotos" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Descarga no disponible" + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Archivo no admitido" + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 resultado" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d resultados" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Favoritos" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Descarga cancelada" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "¿Eliminar este álbum?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Advertencia" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Ordenar por" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Hoy" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Fecha" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "No hay elementos para mostrar" + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Pulse aquí para hacer fotos o vídeos" + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Se ha superado el número máximo de elementos que pueden compartirse (%d)." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Pulse para añadir imágenes" + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "¿Copiar o mover los elementos seleccionados del álbum original?" + +msgid "IDS_GALLERY_HEADER_SELECT" +msgstr "Seleccionar" + +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Seleccionar todo" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d seleccionado" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Ver como" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Fecha (más reciente)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Fecha (más antigua)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "Después de hacer fotos, se mostrarán aquí." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Cancelando..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "Desde el dispositivo" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "Desde Dropbox" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "Desde Facebook" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Descarga finalizada" + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Se eliminarán todos los elementos" + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "Se descargará 1 elemento." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Se descargarán %d elementos." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Se descargarán todos los elementos." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "El álbum seleccionado es el mismo que el álbum de origen. Seleccione otro álbum." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Pulse aquí para añadir imágenes" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +msgstr "Imposible guardar datos" + +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "No queda espacio suficiente en la tarjeta SD. Vaya a Ajustes > Alimentación y almacenamiento > Almacenamiento y, a continuación, elimine algunos archivos e inténtelo de nuevo." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "Cancelar" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "No volver a mostrar" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Usar datos móviles mientras se encuentra en itinerancia puede suponer costes adicionales dependiendo de su plan de pago." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "Se eliminarán %d elementos." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Eliminar" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Ayer" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Descargas" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Copiar" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Eliminar" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Álbumes" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "Se ha alcanzado el número máximo de elementos (%d)." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Cancelar" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "HECHO" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "CANCELAR" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "ELIMINAR" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Copiando..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Moviendo..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Si crea contenido que incluya elementos del almacenamiento personal, es posible que no se oculte automáticamente. El contenido personal seleccionado se podría ver cuando se vea el contenido nuevo." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "EDITAR" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Ajustes" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "EDITAR" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Reordenar" + diff --git a/res/po/es_US.po b/res/po/es_US.po new file mode 100644 index 0000000..b9fb36d --- /dev/null +++ b/res/po/es_US.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Su dispositivo no está conectado a una red Wi-Fi. La conexión mediante una red móvil puede generar costos adicionales según su plan de pago." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_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 Datos móviles e inténtelo de nuevo." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "Después de grabar videos con la cámara, los videos se mostrarán aquí." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Nombre de archivo ya existe." + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "¿Eliminar %d elementos?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Privacidad" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Sep." + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Oct." + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Nov." + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "May." + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Mar." + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Jun." + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Jul." + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Ene." + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Feb." + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Dic." + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Ago." + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Abr." + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Álbum" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Más" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Parámetro de entrada no válido." + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Entrada vacía." + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "Ya existe ese nombre." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "No es posible renombrar." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "No hay álbumes seleccionados." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Seleccionar elemento" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "No hay álbumes" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "¿Crear carpeta?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "¿Volver a intentar?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "¿Eliminar?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "Se eliminarán %d álbumes." + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "Se eliminará 1 álbum." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Cámara" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Iniciar" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Ajustes" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Sí" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "No" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "Aceptar" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Guardar" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "¿Eliminar?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Mover a álbum" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Copiar a álbum" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Ver por" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Introducir nombre" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Se eliminarán todos los datos relacionados con esta cuenta. ¿Continuar?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Cancelar" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Nuevo álbum" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "¿Desea copiar o mover las fotos del álbum original?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Compartir" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Presentación de diapositivas" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Iniciar presentación de diapositivas" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Ajustes de presentación" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Sin nombre" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Todos los álbumes" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Seleccionar álbum" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "Se eliminará este elemento." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Todos los elementos" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d elementos" + +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_MF_BODY_DOWNLOADS" +msgstr "Descargas" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "¿Eliminar?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Mover" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Eliminando..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Error de funcionamiento." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Cancelado" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Seleccionado" + +msgid "IDS_MF_POP_MOVED" +msgstr "Movido." + +msgid "IDS_MF_POP_COPIED" +msgstr "Copiado." + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "No se ha seleccionado nada." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Cerrar" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Ordenar por" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Más recientes" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Más antiguo" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Crear" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Ningún elemento" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Editar imagen" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Seleccionar imagen" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "¿Desea eliminar este elemento?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Escenario" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Eliminar de Privado" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Mascotas" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Mover a Privado" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Comida" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Flores" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Documentos" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Vehículos" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Número máximo de caracteres (%d) alcanzado." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "No es posible cargar la imagen." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Compartir vía" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "No preguntar de nuevo" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Se ha alcanzado el número máximo de caracteres." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Fecha" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Error" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Eliminado." + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "¿Eliminar?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Eliminando..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "Mostrando %d elementos" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Crear álbum" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Galería" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Más" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Cuentas" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Error de funcionamiento." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Descargar" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Buscar" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Atrás" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Cámara" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Todo" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Actualizar" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Eliminar" + +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_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Contactos" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Crear" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Detalles" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Imprimir" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Renombrar" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Descargado." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Descargando..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Introducir nombre." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Mis archivos" + +msgid "IDS_MF_POP_ADDED" +msgstr "Añadido." + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Procesando..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Tipo de archivo no admitido." + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "Después de capturar imágenes, éstas se mostrarán." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Modo horizontal" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Pulse dos veces para cerrar el menú de bandeja." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Pulse dos veces para abrir el menú de bandeja." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Arrastrar y soltar" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Cajón" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Datos móviles desactivados. Conéctese a una red Wi-Fi o active los datos móviles e inténtelo de nuevo" + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Se requiere una conexión Wi-Fi. Conéctese a una red Wi-Fi e inténtelo de nuevo" + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Añadir imágenes desde" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Dispositivos conectados" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Contenido privado" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Eliminar de %s" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Eliminar etiqueta de nombre" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "No hay eventos para mostrar. Cree un nuevo evento." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "Para desplazarse rápidamente a otras fechas, mantenga pulsado el indicador de fecha en la parte superior derecha de la pantalla." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "¿Eliminar %d elementos?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "¿Desea eliminar este elemento?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Galería" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +msgstr "Imágenes aleatorias" + +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Eliminar elemento" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Eliminar elementos" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 elemento" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 segundos" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 segundos" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "No asignado" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Intervalo de presentación de diapositivas" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Sin etiquetar" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 segundos" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Todo el contenido" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Contenido para mostrar" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Eliminar etiqueta" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Contenido del dispositivo" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Contenido de Dropbox" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Contenido de Facebook" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Girar a la izquierda" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Girar a la derecha" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Importar" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Importada(s)." + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Importando..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Cargando..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Dispositivos cercanos encontrados." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "No se encontraron dispositivos. Se seguirán buscando dispositivos cercanos en segundo plano." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Actualizado." + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Rotación..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Se inició la búsqueda. La lista de dispositivos se actualizará automáticamente." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Iniciando descarga..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Copiar en" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Mover a" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Error al añadir atajo." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Memoria insuficiente. Elimine algunos elementos" + +msgid "IDS_MF_POP_REMOVED" +msgstr "Eliminado." + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Añadiendo…" + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "¿Desea eliminar los álbumes de %d?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Almacenamiento privado" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Arrastre aqui." + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Nuevo" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Sin agrupar" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Captura de pantalla" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Imágenes" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Error de descarga." + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Archivo no admitido." + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 resultado" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d resultado(s)" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Favoritos" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Descarga cancelada." + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "¿Desea eliminar este álbum?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Aviso" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Ordenar por" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Hoy" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Fecha" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "No hay elementos para mostrar." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Pulse aquí para capturar imágenes o videos." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Se excedió el número máximo de elementos que se pueden compartir (%d)." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Pulse para añadir imágenes." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "¿Desea copiar o mover los elementos seleccionados del álbum original?" + +msgid "IDS_GALLERY_HEADER_SELECT" +msgstr "Seleccionar" + +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Seleccionar todo" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d seleccionado(s)" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Ver como" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Fecha (más reciente)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Fecha (más antigua)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "Luego de capturar imágenes, estas se mostrarán aquí." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Cancelando..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "Desde el dispositivo" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "Desde Dropbox" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "Desde Facebook" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Descarga completa." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Se eliminarán todos los elementos." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "Se descargará 1 elemento." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Se descargarán %d elementos." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Se descargarán todos los elementos." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "El álbum seleccionado es el mismo que el de origen. Seleccione otro álbum." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Pulse aquí para añadir imágenes" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +msgstr "No es pos. guardar dat." + +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 Ajustes > Batería y almacenamiento > Almacenamiento, elimine algunos archivos e inténtelo de nuevo." + +msgid "IDS_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "No hay espacio suficiente en la tarjeta de memoria. Vaya a Ajustes > Batería y almacenamiento > Almacenamiento, elimine algunos archivos e inténtelo de nuevo." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "Cancelar" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "No volver a mostrar" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "El uso de datos móviles en roaming puede generar costos adicionales según su plan de pago." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "Se eliminarán %d elementos." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Eliminar" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Ayer" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Descargas" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Copiar" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Eliminar" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Álbumes" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "Se superó el número máximo de elementos (%d)." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Cancelar" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "REALIZADO" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "CANCELAR" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "ELIMINAR" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Copiando..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Moviendo…" + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Si crea contenido que incluye elementos de almacenamiento personal, es posible que no se oculte automáticamente. El contenido personal seleccionado se podría ver cuando se vea el contenido nuevo." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "EDITAR" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Ajustes" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "EDITAR" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Reordenar" + diff --git a/res/po/et.po b/res/po/et.po new file mode 100644 index 0000000..62a81c3 --- /dev/null +++ b/res/po/et.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Seade on ühendatud Wi-Fi võrku. Sõltuvalt teie paketist võivad mobiilsidevõrguga ühenduse loomisel rakenduda lisatasud." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobiilne andmeside on välja lülitatud. Looge selle asemel ühendus Wi-Fi võrguga või lülitage mobiilne andmeside sisse ja proovige uuesti." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "Videod kuvatakse pärast nende salvestamist kaameraga." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Failinimi on juba kasutusel" + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "Kustutada %d üksust?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Privaatsus" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Sep" + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Okt." + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Nov" + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "Mai" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Mär." + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Juun" + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Juul" + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Jaa." + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Vee." + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Det." + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Aug" + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Apr" + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Album" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Veel" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Vigane sisestusparameeter." + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Kirje on tuhi." + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "See nimi on juba kasutusel." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Ei saa ümber nimetada." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Ühtegi albumit pole valitud." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Vali üksus" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Albumid puuduvad" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Kas luua kaust?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Proovi uuesti?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Eemaldada?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "%d albumit kustutatakse." + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album kustutatakse." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Kaamera" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Käivita" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Seaded" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Jah" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "Ei" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Salvesta" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Kustutada?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Teisalda albumisse" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Kopeeri albumisse" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Kuvamise kriteerium" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Sisestage nimi" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Kõik selle kontoga seotud andmed kustutatakse. Kas jätkata?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Tühista" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Uus album" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Kas soovite kopeerida või teisaldada originaalalbumis olevad pildid?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Jaga" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Slaidiseanss" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Käivita slaidiseanss" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Slaidiseansi seaded" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Nimi puudub" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Kõik albumid" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Valige album" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "1 üksus kustutatakse." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Kõik üksused" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d üksust" + +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_MF_BODY_DOWNLOADS" +msgstr "Allalaet. failid" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Kustutada?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Teisalda" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Kustutamine..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Toiming nurjus." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Tühistatud" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Valitud" + +msgid "IDS_MF_POP_MOVED" +msgstr "Teisaldatud." + +msgid "IDS_MF_POP_COPIED" +msgstr "Kopeeritud." + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "Faile pole valitud." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Sulge" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Sortimisalus" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Viimased" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Vanim" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Loo" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Üksusi ei ole" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Muuda pilti" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Vali pilt" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Kas kustutada see üksus?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Maastik" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Eemalda kaustast Privaatne" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Lemmikloomad" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Teisalda kausta Privaatne" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Toit" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Lilled" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Dokumendid" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Sõidukid" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Maksimaalne tähemärkide arv (%d) on saavutatud." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Fotot ei saa laadida." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Jagamine" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Ära küsi enam" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Lubatud arv märke on täis." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Kellaaeg" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Nurjus" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Kustutatud." + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Kustutada?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Eemaldamine..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "Näidatakse %d üksust" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Loo album" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Galerii" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Veel" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Kontod" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Toiming nurjus." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Lae alla" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Otsi" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Tagasi" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Kaamera" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Kõik" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Värskenda" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Eemalda" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Uksused kuvatakse parast piltide uleslaadimist Dropboxi." + +msgid "IDS_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Kontaktid" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Loo" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Üksikasjad" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Prindi" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Nimeta ümber" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Alla laetud." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Allalaadimine..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Sisestage nimi." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Minu Failid" + +msgid "IDS_MF_POP_ADDED" +msgstr "Lisatud." + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Töötlemine..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Toetuseta failitüüp." + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "Parast pildistamist kuvatakse pildid." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Rõhtpaigutusrežiim" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Toksake kaks korda, et sulgeda sahtli menüüd." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Toksake kaks korda, et avada sahtli menüüd." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Lohistage" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Sahtel" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobiilne andmeside on desaktiveeritud. Looge selle asemel ühendus Wi-Fi võrguga või aktiveerige mobiilne andmeside ja proovige uuesti" + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Wi-Fi ühendus on nõutud. Looge ühendus Wi-Fi võrguga ja proovige uuesti" + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Lisa pilte asukohast" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Ühendatud seadmed" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Privaatne sisu" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Eemalda kategooriast %s" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Eemalda nimesilt" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "Pole sündmusi, mida kuvada. Looge uus sündmus." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "Kiiresti teistele kuupäevadele kerimiseks toksake ja hoidke sõrme ekraani paremas ülanurgas oleval kuupäeva indikaatoril." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "Kas eemaldada %d üksust?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Kas eemaldada see üksus?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Galerii" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +msgstr "Segatud pildid" + +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_IV_OPT_PD_PICTURES_ADDED" +msgstr "Lisati %d pilti" + +msgid "IDS_IV_POP_THE_ALBUM_WILL_BE_CANCELLED" +msgstr "Album tuhistatakse." + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Kustuta üksus" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Kustuta üksused" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 üksus" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 sekundit" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 sekundit" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Pole määratud" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Slaidiseansi intervall" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Sildistamata" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 sekundit" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Kogu sisu" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Sisu, mida kuvada" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Kustuta silt" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Seadme sisu" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Dropboxi sisu" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Facebooki sisu" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Pööra vasakule" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Pööra paremale" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Import" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Imporditud." + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Importimine..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Laadimine..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Lähedalolevaid seadmeid ei leitud." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "Seadmeid ei leitud. Läheduses olevate seadmete otsimine jätkub taustal." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Värskendatud." + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Pööramine..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Otsimist alustati. Seadmete loendit värskendatakse automaatselt." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Allalaadimise alustamine..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Kopeeri asukohta" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Teisalduskoht:" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Otsetee lisamine nurjus." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Mälu pole piisavalt. Kustutage mõned üksused" + +msgid "IDS_MF_POP_REMOVED" +msgstr "Eemaldatud." + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Lisamine..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "Kas kustutada %d albumit?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Privaatne mälu" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Lohistage siia." + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Uus" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Rühmitamata" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Ekraanipildid" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Fotod" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Allalaadimine nurjus." + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Toetuseta fail." + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 tulemus" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d tulemust" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Lemmikud" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Allalaadimine tühistatud." + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Kas kustutada see album?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Hoiatus" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Sortimisalus" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Täna" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Kuupäev" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "Pole üksusi, mida kuvada." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Toksake siia, et jäädvustada pilte või videoid." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Maksimaalne jagatavate üksuste arv (%d) on ületatud." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Toksake piltide lisamiseks." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Kas kopeerida või teisaldada valitud üksused originaalalbumist?" + +msgid "IDS_GALLERY_HEADER_SELECT" +msgstr "Vali" + +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Vali kõik" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d on valitud" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Kuva:" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Kuupäev (kõige hilisem)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Kuupäev (vanim)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "Pildid kuvatakse siin pärast nende tegemist." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Tühistamine..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "Seadmest" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "Dropboxist" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "Facebookist" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Allalaadimine lõpetatud." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Kõik üksused kustutatakse." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "1 üksus laaditakse alla." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "%d üksust laaditakse alla." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Kõik üksused laaditakse alla." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "Valitud album ja allikaalbum on samad. Valige teine album." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Toksake siia, et lisada pilte" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +msgstr "Andmeid ei saa salvestada" + +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Teie SD-kaardil pole piisavalt ruumi. Avage menüü Seaded > Toide ja mälu > Mälu, seejärel kustutage mõned failid ja proovige uuesti." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "Tühista" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Ära näita enam" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Sõltuvalt teie paketist võivad rändluse ajal mobiilse andmeside kasutamisel rakenduda lisatasud." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "%d üksust kustutatakse." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Kustuta" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Eile" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Allalaetud üksused" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Kopeerimine" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Kustuta" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Albumid" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "Üksuste maksimaalne arv (%d) on ületatud." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Tühista" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "VALMIS" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "TÜHISTA" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "KUSTUTA" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Kopeerimine..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Teisaldamine..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Kui loote sisu, mis sisaldab üksusi isiklikust mälust, ei pruugita teie uut sisu peita automaatselt. Valitud isiklikku sisu võidakse näha uue sisu vaatamisel." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "REDIGEERI" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Seaded" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "REDIG." + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Järjesta ümber" + diff --git a/res/po/eu.po b/res/po/eu.po new file mode 100644 index 0000000..d4398ab --- /dev/null +++ b/res/po/eu.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Zure gailua ez dago Wi-Fi sare batera konektatuta. Baliteke sare mugikor batera konektatzeak kostu osagarriak eragitea zure ordainketa planaren arabera." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Datu mugikorrak itzalita. Konektatu Wi-Fi sare batera edo piztu datu mugikorrak eta saiatu berriz." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "Kamera erabiliz bideoak grabatu ondoren, hemen erakutsiko dira." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Fitxategi izena aurretik erabiltzen ari zara." + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "%d elementu ezabatu?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Pribatutasuna" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Irl." + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Urr." + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Azr." + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "Mai." + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Mar." + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Ekn." + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Uzt." + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Urt." + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Ots." + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Abn." + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Abz." + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Apr." + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Albuma" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Gehiago" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Sarrera parametro baliogabea" + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Sarrera hutsik dago" + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "Izen bera dagoeneko erabiltzen" + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Ezin da berrizendatu" + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Ez da albumik aukeratu" + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Elementua aukeratu" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Albumik ez" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Karpeta sortu?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Berriz saiatu?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Kendu?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "%d album ezabatuko dira" + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album ezabatuko da." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Kamera" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Hasi" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Ezarpenak" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Bai" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "Ez" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "Ados" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Gorde" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Ezabatu?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Mugitu albumera" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Kopiatu albumean" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Honela ikusi" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Izena idatzi" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Kontu honi buruzko datu guztiak ezabatuko dira. Jarraitu?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Utzi" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Album berria" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Argazkiak jatorrizko albumetik kopiatu edo kendu nahi dituzu?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Partekatu" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Aurkezpena" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Hasi diaporama" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Erakusketaren ezarpenak" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Izenik gabe" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Album guztiak" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Aukeratu albuma" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "Elementu 1 ezabatuko da" + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Elementu guztiak" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d elementu" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Album bakarra dago" + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "%d elementu arte aukera ditzakezu" + +msgid "IDS_MF_BODY_DOWNLOADS" +msgstr "Deskargak" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Ezabatu?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Mugitu" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Ezabatzen..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Eragiketak huts egin du" + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Utzita" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Aukeratutakoa(k)" + +msgid "IDS_MF_POP_MOVED" +msgstr "Mugitua" + +msgid "IDS_MF_POP_COPIED" +msgstr "Kopiatuta" + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "Ez da fitxategirik aukeratu" + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Itxi" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Sailkatu honela" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Azkena" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Zaharrena" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Sortu" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Elementurik ez" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Irudia editatu" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Argazkia aukeratu" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Ezabatu elementu hau?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Paisaia" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Kendu Pribatutik" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Etxeko animaliak" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Mugitu pribatura" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Janaria" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Loreak" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Dokumentuak" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Ibilgailuak" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Gehienezko karaktere kopurura (%d) iritsi zara" + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Ezin da argazkia kargatu" + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Partekatu honen bidez" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Ez galdetu berriz" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Gehienezko karaktere kopurura heldu zara" + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Ordua" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Huts egin du" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Ezabatua" + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Ezabatu?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Ezabatzen..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "%d elementu erakustea" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Sortu albuma" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Galeria" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Gehiago" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Kontuak" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Eragiketak huts egin du" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Deskargatu" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Bilatu" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Atzera" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Kamera" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Guztiak" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Freskatu" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Kendu" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Argazkiak Dropboxera igo ondoren, elementuak erakutsiko dira" + +msgid "IDS_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Kontaktuak" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Sortu" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Xehetasunak" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Inprimatu" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Berrizendatu" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Deskargatuta" + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Deskargatzen..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Izena idatzi" + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Nire fitxategiak" + +msgid "IDS_MF_POP_ADDED" +msgstr "Gehituta" + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Prozesatzen..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Fitxategi mota ez bateragarria" + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "Argazkiak atera ondoren, argazkiak erakutsiko dira" + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Paisaia modua" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Ukitu bi aldiz tiradera menua ixteko." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Ukitu bi aldiz tiradera menua irekitzeko." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Arrastatu eta utzi" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Tiradera" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Datu mugikorrak ezgaituta daude. Konektatu Wi-Fi sarera bestela, edo gaitu datu mugikorrak eta saiatu berriz." + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Wi-Fi konexioa behar da. Konektatu Wi-Fi sarera eta saiatu berriz." + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Gehitu argazkiak hemendik" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Konektatutako gailuak" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Eduki pribatua" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Kendu %s-(e)tik" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Kendu izen etiketa" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "Ez dago erakusteko gertaerarik. Sortu gertaera berria." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "Beste data batzuetara azkar korritzeko, ukitu eta eutsi data adierazlea pantailaren goiko aldean, eskuinean." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "Ezabatu %d elementu?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Kendu elementu hau?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Galeria" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +msgstr "Ausaz erakutsitako argazkiak" + +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Ezabatu elementua" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Ezabatu elementuak" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "Elementu 1" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 segundo" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 segundo" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Esleitu gabe" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Aurkzpen tartea" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Etiketarik gabe" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 segundo" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Eduki osoa" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Erakusteko edukia" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Etiketa ezabatu" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Gailuko edukia" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Dropbox-eko edukia" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Facebook-eko edukia" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Ezkerrera biratu" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Eskuinera biratu" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Inportatu" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Inportatua" + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Inportatzen..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Kargatzen..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Aurkitu diren gertuko gailuak" + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "Ez da gailurik aurkitu. Gertuko gailuak bilatzen jarraituko da atzeko planoan." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Freskatua" + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Biratzen..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Bilaketa hasita. Gailuen zerrenda automatikoki eguneratuko da." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Deskarga hasten..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Hona kopiatu" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Hona mugitu" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Ezin izan da lastermarka gehitu" + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Ez dago memoria nahikoa. Elementu batzuk ezabatu." + +msgid "IDS_MF_POP_REMOVED" +msgstr "Kenduta" + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Gehitzen..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "Ezabatu %d album?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Biltegi pribatua" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Arrastatu hona" + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Berria" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Taldekatu gabe" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Pantaila kapturak" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Argazkiak" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Deskarga ez dago eskuragarri" + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Fitxategi ez bateragarria" + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "Emaitza 1" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d emaitza" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Gogokoak" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Deskarga ezeztatua" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Ezabatu album hau?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Kontuz" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Antolatu honen bidez" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Gaur" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Data" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "Ez dago elementurik erakusteko" + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Ukitu hemen argazkiak ateratzeko edo bideoak grabatzeko" + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Parteka daitezkeen elementuen gehieneko kopurua (%d) gainditu da." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Sakatu irudiak gehitzeko" + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Kopiatu edo mugitu hautatutako elementuak jatorrizko albumetik?" + +msgid "IDS_GALLERY_HEADER_SELECT" +msgstr "Hautatu" + +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Hautatu dena" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d aukeratuta" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Ikusi honela" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Data (berriena)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Data (zaharrena)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "Argazkiak atera ondoren, hemen erakutsiko dira." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Ezeztatzen..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "Gailutik" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "Dropbox-etik" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "Facebook-etik" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Deskarga osatuta" + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Elementu guztiak ezabatuko dira" + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "Elementu 1 deskargatuko da." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "%d elementu deskargatuko dira." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Elementu guztiak deskargatuko dira." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "Hautatutakoa eta sorburukoa album bera dira. Hautatu beste album bat." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Ukitu hemen irudiak gehitzeko" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +msgstr "Ezin dira datuak gorde" + +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Ez dago nahikoa espazio SD txartelean. Joan Ezarpenak > Bateria eta biltegia > Biltegia aukerara, ezabatu fitxategi batzuk eta saiatu berriz." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "Ezeztatu" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Ez erakutsi berriz" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Ezin dira datu mugikorrak erabili ibiltaritzan, zure ordainketa planaren arabera, kostu osagarriak eragin ditzakeelako." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "%d elementu ezabatuko dira." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Ezabatu" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Atzo" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Deskargak" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Kopiatu" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Ezabatu" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Albumak" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "Elementuen gehieneko kopurua (%d) gainditu duzu." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Ezeztatu" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "EGINA" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "UTZI" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "EZABATU" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Kopiatzen..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Mugitzen..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Memoria pertsonal bateko gaiak dituen edukia sortzen baduzu, baliteke automatikoki ez ezkutatzea. Hautatutako eduki pertsonala eduki berria ikustean ikus daiteke." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "EDITATU" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Ezarpenak" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "EDITATU" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Berrantolatu" + diff --git a/res/po/fi.po b/res/po/fi.po new file mode 100644 index 0000000..a4542eb --- /dev/null +++ b/res/po/fi.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Laitetta ei ole yhdistetty Wi-Fi-verkkoon. Yhteyden muodostaminen matkapuhelinverkkoon voi aiheuttaa lisämaksuja tilauksesi mukaan." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobiilidata on poistettu käytöstä. Muodosta sen sijaan yhteys Wi-Fi-verkon kautta tai ota mobiilidata käyttöön ja yritä uudelleen." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "Kun olet tallentanut kameralla videoita, ne näytetään täällä." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Tiedoston nimi jo käytössä." + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "Poistetaanko %d kohdetta?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Yksityisyys" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Syy" + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Lok" + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Mar" + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "tou" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Maa" + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Kes" + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Hei" + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Tam" + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Hel" + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Jou" + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Elo" + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Huh" + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Albumi" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Lisää" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Virheellinen syöteparametri" + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Tyhjä tieto" + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "Sama nimi on jo käytössä." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Ei voi nimetä uudelleen." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Albumeita ei ole valittu." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Valitse kohde" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Ei albumeita" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Luodaanko kansio?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Yritetäänkö uudelleen?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Poistetaanko?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "%d albumia poistetaan." + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 albumi poistetaan." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Kamera" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Käynnistä" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Asetukset" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Kyllä" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "Ei" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Tallenna" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Poistetaanko?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Siirrä albumiin" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Kopioi albumiin" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Näyttöperuste" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Kirjoita nimi" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Kaikki tähän tiliin liittyvät tiedot poistetaan. Jatketaanko?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Peruuta" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Uusi albumi" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Haluatko kopioida tai siirtää kuvat alkuperäisestä albumista?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Jaa" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Kuvaesitys" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Käynnistä kuvaesitys" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Kuvaesityksen asetukset" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Ei nimeä" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Kaikki albumit" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Valitse albumi" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "1 kohde poistetaan." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Kaikki kohteet" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d kohdetta" + +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_MF_BODY_DOWNLOADS" +msgstr "Lataukset" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Poistetaanko?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Siirrä" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Poistetaan..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Toiminto epäonnistui." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Peruutettu" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Valittu" + +msgid "IDS_MF_POP_MOVED" +msgstr "Siirretty." + +msgid "IDS_MF_POP_COPIED" +msgstr "Kopioitu." + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "Ei valittuja tiedostoja." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Sulje" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Lajitteluperuste" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Uusimmat" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Vanhimmat" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Luo" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Ei kohteita" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Muokkaa kuvaa" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Valitse kuva" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Poistetaanko tämä kohde?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Maisema" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Poista Yksityiset-kansiosta" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Lemmikkieläimet" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Siirrä Yksityiset-kansioon" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Ruoka" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Kukat" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Asiakirjat" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Ajoneuvot" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Merkkien enimmäismäärä (%d) on saavutettu." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Valokuvaa ei voi ladata." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Jakotapa" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Älä kysy uudelleen" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Merkkien enimmäismäärä saavutettu." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Aika" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Epäonnistui" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Poistettu." + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Poistetaanko?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Poistetaan..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "Näytetään %d kohdetta" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Luo albumi" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Galleria" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Muut" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Tilit" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Toiminto epäonnistui." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Lataa" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Etsi" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Tak." + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Kamera" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Kaikki" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Päivitä" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Poista" + +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_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Yhteystiedot" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Luo" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Lisätiedot" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Tulosta" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Nimeä uudelleen" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Ladattu." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Ladataan..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Kirjoita nimi." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Omat tiedostot" + +msgid "IDS_MF_POP_ADDED" +msgstr "Lisätty." + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Käsitellään..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Tiedostotyyppiä ei tueta." + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "Kuvat näytetään niiden ottamisen jälkeen." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Vaakatila" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Sulje vetovalikko kaksoisnapauttamalla tätä." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Avaa vetovalikko kaksoisnapauttamalla tätä." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Vedä ja pudota" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Laatikko" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobiilidata on poistettu käytöstä. Muodosta sen sijaan yhteys Wi-Fi-verkon kautta tai ota mobiilidata käyttöön ja yritä uudelleen." + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Wi-Fi-yhteys vaaditaan. Muodosta Wi-Fi-verkkoyhteys ja yritä uudelleen." + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Lisää kuvia kohteesta" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Yhdistetyt laitteet" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Yksityinen sisältö" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Poista luokasta %s" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Poista nimitunniste" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "Näytettäviä tapahtumia ei ole. Luo uusi tapahtuma." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "Voit siirtyä vierittämällä nopeasti muihin päivämääriin painamalla näytön oikeassa yläkulmassa olevaa päivämääräilmaisinta." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "Poistetaanko %d kohdetta?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Poistetaanko tämä kohde?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Galleria" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +msgstr "Satunnaisessa järjestyksessä olevat kuvat" + +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Poista kohde" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Poista kohteet" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 kohde" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 sekuntia" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 sekuntia" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Ei määritelty" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Kuvaesityksen aikaväli" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Merkitsemätön" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 sekuntia" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Kaikki sisältö" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Näytettävä sisältö" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Poista tunniste" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Laitteessa oleva sisältö" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Dropboxissa oleva sisältö" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Facebookissa oleva sisältö" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Kierrä vastapäivään" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Kierrä myötäpäivään" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Tuo" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Tuotu." + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Tuodaan..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Ladataan..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Löydetty lähellä olevia laitteita." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "Laitteita ei löydy. Lähellä olevia laitteita haetaan taustalla." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Päivitetty." + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Kierretään..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Haku on aloitettu. Laiteluettelo päivitetään automaattisesti." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Lataus käynnistetään..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Kopioi kohteeseen" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Siirrä kohteeseen" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Pikakuvakkeen lisääminen epäonnistui." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Muisti ei riitä. Poista joitain kohteita." + +msgid "IDS_MF_POP_REMOVED" +msgstr "Poistettu." + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Lisätään..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "Poistetaanko %d albumia?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Yksityinen tallennustila" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Vedä tänne." + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Uusi" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Ryhmitys purettu" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Näyttökuvat" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Valokuvat" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Lataus epäonnistui." + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Tiedostoa ei tueta." + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 tulos" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d tulosta" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Suosikit" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Lataus peruutettu." + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Poistetaanko tämä albumi?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Varoitus" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Lajitteluperuste" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Tänään" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Päivämäärä" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "Ei näytettäviä kohteita." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Napauta tätä ottaaksesi kuvia tai videoita." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Jaettavissa olevien kohteiden enimmäismäärä (%d) on ylitetty." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Lisää kuvia napauttamalla." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Kopioidaanko tai siirretäänkö valitut kohteet alkuperäisestä albumista?" + +msgid "IDS_GALLERY_HEADER_SELECT" +msgstr "Valitse" + +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Valitse kaikki" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d valittu" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Näyttötapa" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Päiväys (uusin)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Päiväys (vanhin)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "Kuvat näytetään täällä niiden ottamisen jälkeen." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Peruutetaan..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "Laitteesta" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "Dropboxista" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "Facebookista" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Lataus valmis" + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Kaikki kohteet poistetaan." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "1 kohde ladataan." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "%d kohdetta ladataan." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Kaikki kohteet ladataan." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "Valittu albumi on sama kuin lähdealbumi. Valitse toinen albumi." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Lisää kuvia napauttamalla tätä" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +msgstr "Tietoja ei voi tallentaa" + +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "SD-kortilla ei ole tarpeeksi tilaa. Valitse Asetukset > Virta ja tallennus > Tallennus, poista joitain tiedostoja ja yritä uudelleen." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "Peruuta" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Älä näytä uudelleen" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Mobiilidatan käytöstä verkkovierailun aikana voidaan periä lisämaksuja tilauksesi mukaan." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "%d kohdetta poistetaan." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Poista" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Eilen" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Lataukset" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Kopioi" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Poista" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Albumit" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "Kohteiden enimmäismäärä (%d) on ylitetty." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Peruuta" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "VALMIS" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "PERUUTA" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "POISTA" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Kopioidaan..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Siirretään..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Jos luot henkilökohtaisessa tallennustilassa olevia kohteita käsittävää sisältöä, sitä ei ehkä piiloteta automaattisesti. Valittu henkilökohtainen sisältö näkyy uutta sisältöä tarkasteltaessa." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "MUOKKAA" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Asetukset" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "MUOKKAA" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Järjestä uudelleen" + diff --git a/res/po/fr.po b/res/po/fr.po new file mode 100644 index 0000000..904b492 --- /dev/null +++ b/res/po/fr.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Votre appareil n'est connecté à aucun réseau Wi-Fi. Le fait de se connecter à des réseaux mobiles risque d'entraîner des frais supplémentaires en fonction de votre forfait." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Données mobiles désactivées. Connectez-vous à un réseau Wi-Fi ou activez les données mobiles, puis réessayez." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "Les vidéos enregistrées avec l'appareil photo seront affichées ici." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Le nom de fichier est déjà utilisé." + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "Supprimer %d éléments ?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Confidentialité" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Sep." + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Oct." + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Nov." + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "Mai" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Mar." + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Jui." + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Juil" + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Jan." + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Fév." + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Déc." + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Août" + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Avr." + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Album" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Plus" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Paramètre d'entrée non valide" + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Entrée vide" + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "Nom déjà utilisé" + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Impossible de renommer l'élément." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Aucun album sélectionné." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Sélectionner un élément" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Aucun album" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Créer un dossier ?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Réessayer ?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Supprimer ?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "%d albums seront supprimés." + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album sera supprimé." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Appareil photo" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Démarrer" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Paramètres" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Oui" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "Non" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Enreg." + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Supprimer ?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Déplacer dans l'album" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Copier dans l'album" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Afficher par" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Saisir un nom" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Toutes les données associées à ce compte seront supprimées. Continuer ?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Annuler" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Nouvel album" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Voulez-vous copier ou déplacer les images de l'album original ?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Partager" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Diaporama" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Lancer le diaporama" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Paramètres du diaporama" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Aucun nom" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Tous les albums" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Sélectionner un album" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "1 élément va être supprimé." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Tous les éléments" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d éléments" + +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_MF_BODY_DOWNLOADS" +msgstr "Téléchargements" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Supprimer ?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Déplacer" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Suppression..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Échec de l'opération." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Annulé(s)" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Sélectionné" + +msgid "IDS_MF_POP_MOVED" +msgstr "Déplacé" + +msgid "IDS_MF_POP_COPIED" +msgstr "Copié" + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "Aucun fichier sélectionné." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Fermer" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Trier par" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Les plus récents" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Le plus ancien" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Créer" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Aucun élément" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Modifier l'image" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Sélectionner image" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Supprimer cet élément ?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Paysage" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Supprimer de Privé" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Animaux domestiques" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Déplacer dans Privé" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Aliment" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Fleurs" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Documents" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Véhicules" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Le nombre maximum de caractères (%d) est atteint." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Impossible de charger la photo." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Partager via" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Ne plus demander" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Nb max de caractères atteint" + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Heure" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Échec" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Supprimé" + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Supprimer ?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Suppression..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "%d éléments affichés" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Créer un album" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Galerie" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Plus" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Comptes" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Échec de l'opération." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Télécharger" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Rechercher" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Retour" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Appareil photo" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Tout" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Actualiser" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Supprimer" + +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_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Contacts" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Créer" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Détails" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Imprimer" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Renommer" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Téléchargement terminé" + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Téléchargement en cours." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Saisissez un nom." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Mes fichiers" + +msgid "IDS_MF_POP_ADDED" +msgstr "Ajouté" + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "En cours..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Type de fichier non pris en charge" + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "Les photos prises seront affichées." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Mode Paysage" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Appuyez deux fois pour fermer le menu tiroir." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Appuyez deux fois pour ouvrir le menu tiroir." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Glisser-déposer" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Tiroir" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Les données mobiles sont désactivées. Connectez-vous au réseau Wi-Fi à la place ou activez les données mobiles et réessayez." + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Connexion Wi-Fi requise. Connectez-vous au réseau Wi-Fi et réessayez." + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Ajouter des images depuis" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Appareils connectés" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Contenu privé" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Supprimer de %s" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Supprimer le tag de nom" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "Aucun événement à afficher. Créez-en un nouveau." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "Pour faire défiler rapidement les autres dates, maintenez votre doigt appuyé sur l'indicateur de date, en haut à droite de l'écran." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "Supprimer %d éléments ?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Supprimer cet élément ?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Galerie" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +msgstr "Images aléatoires" + +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Supprimer l'élément" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Supprimer des éléments" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 élément" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 secondes" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 secondes" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Non affecté" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Intervalle du diaporama" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Non tagué" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 secondes" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Tout le contenu" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Contenu à afficher" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Supprimer libellé" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Contenu sur l'appareil" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Contenu Dropbox" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Contenu Facebook" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Rotation à gauche" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Rotation à droite" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Importer" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Importé" + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Importation en cours..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Chargement en cours." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Appareils à proximité trouvés" + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "Aucun appareil détecté. La recherche d'appareils à proximité va continuer en arrière-plan." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Actualisé" + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Rotation..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Recherche lancée. La liste des appareils sera mise à jour automatiquement." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Début du téléchargement..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Copier vers" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Déplacer vers" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Impossible d'ajouter le raccourci." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Mémoire insuffisante. Supprimez certains éléments." + +msgid "IDS_MF_POP_REMOVED" +msgstr "Supprimé" + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Ajout en cours..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "Supprimer %d albums ?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Stockage privé" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Glissez ici." + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Nouveau" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Non groupé" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Captures d'écran" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Photos" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Le téléchargement a échoué." + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Fichier non pris en charge" + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 résultat" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d résultats" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Favoris" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Téléchargement annulé" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Supprimer cet album ?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Avertissement" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Trier par" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Aujourd'hui" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Date" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "Aucun élément à afficher." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Appuyez ici pour prendre des photos ou des vidéos." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Le nombre maximal d'éléments pouvant être partagés (%d) a été dépassé." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Appuyer pour ajouter des images." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Copier ou déplacer les éléments sélectionnés de l'album d'origine ?" + +msgid "IDS_GALLERY_HEADER_SELECT" +msgstr "Sélectionner" + +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Sélectionner tout" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d sélectionné(s)" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Afficher en tant que" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Date (les plus récents)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Date (les plus anciens)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "Une fois prises, les photos seront affichées ici." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Annulation..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "À partir de l'appareil" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "À partir de Dropbox" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "À partir de Facebook" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Téléchargement terminé" + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Tous les éléments vont être supprimés." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "1 élément va être téléchargé." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "%d éléments vont être téléchargés." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Tous les éléments vont être téléchargés." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "L'album sélectionné est le même que l'album source. Sélectionnez un autre album." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Appuyez ici pour ajouter des images" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +msgstr "Enreg. données impossible" + +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Espace insuffisant sur votre carte SD. Accédez à Paramètres > Alimentation et stockage > Stockage, supprimez des fichiers, puis réessayez." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "Annuler" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Ne plus afficher" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "L'utilisation des données mobiles pendant l'itinérance peut entraîner des frais supplémentaires en fonction de votre forfait." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "%d éléments seront supprimés." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Supprimer" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Hier" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Téléchargements" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Copier" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Supprimer" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Albums" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "Le nombre maximal d'éléments (%d) a été dépassé." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Annuler" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "OK" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ANNULER" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "SUPPRIMER" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Copie..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Déplacement..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Si vous créez du contenu qui inclut des éléments provenant de l'espace de stockage personnel, ce contenu risque de ne pas être masqué automatiquement. Le contenu personnel sélectionné peut être affiché lors de la consultation du nouveau contenu." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "MODIFIER" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Paramètres" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "MODIFIER" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Réorganiser" + diff --git a/res/po/fr_CA.po b/res/po/fr_CA.po new file mode 100644 index 0000000..f967a7a --- /dev/null +++ b/res/po/fr_CA.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Votre appareil n'est connecté à aucun réseau Wifi. Le fait de se connecter à des réseaux mobiles risque d'entrainer des frais supplémentaires en fonction de votre forfait." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Données mobiles désactivées. Connectez-vous à un réseau wifi ou activez les données mobiles, puis réessayez." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "Les vidéos enregistrées avec l'appareil photo seront affichées ici." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Le nom de fichier est déjà utilisé." + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "Supprimer %d éléments?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Confident." + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Sep." + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Oct." + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Nov." + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "Mai" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Mars" + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Juin" + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Jul." + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Jan." + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Fév." + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Déc." + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Aout" + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Avr." + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Album" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Plus" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Paramètre d'entrée non valide." + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Entrée vide" + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "Nom déjà utilisé." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Impossible de renommer l'élément." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Aucun album sélectionné." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Sélectionner un élément" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Aucun album" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Créer un dossier ?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Réessayer?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Retirer?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "%d albums seront supprimés." + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album sera supprimé." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Appareil photo" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Démarrer" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Réglages" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Oui" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "Non" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Enregistrer" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Supprimer ?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Déplacer dans l'album" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Copier dans l'album" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Afficher par" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Saisir un nom" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Toutes les données associées à ce compte seront supprimées. Continuer ?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Annuler" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Nouvel album" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Voulez-vous copier ou déplacer les images de l'album original ?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Partager" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Diaporama" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Lancer le diaporama" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Paramètres du diaporama" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Aucun nom" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Tous les albums" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Sélectionner un album" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "1 élément va être supprimé." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Tous les éléments" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d éléments" + +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_MF_BODY_DOWNLOADS" +msgstr "Télécharg." + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Supprimer ?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Déplacer" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Suppression ..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Échec de l'opération." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Annulé(s)" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Sélectionné" + +msgid "IDS_MF_POP_MOVED" +msgstr "Déplacé." + +msgid "IDS_MF_POP_COPIED" +msgstr "Copié." + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "Aucun fichier sélectionné." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Fermer" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Trier par" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Les plus récents" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Le plus ancien" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Créer" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Aucun élément" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Retoucher l'image" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Sélectionner une photo" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Supprimer cet élément ?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Paysage" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Supprimer de Privé" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Animaux domestiques" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Déplacer dans Privé" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Aliments" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Fleurs" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Documents" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Véhicules" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Nombre maximum de caractères (%d) atteint" + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Impossible de charger la photo." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Partager via" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Ne plus demander" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Nb max de caractères atteint." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Heure" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Échec" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Supprimé." + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Supprimer ?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Retrait..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "%d éléments affichés" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Créer un album" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Galerie" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Autres" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Comptes" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Échec de l'opération." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Télécharger" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Recherche" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Retour" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Appareil photo" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Tous" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Actualiser" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Supprimer" + +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_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Contacts" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Créer" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Détails" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Imprimer" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Renommer" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Télécharg." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Téléchargement..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Saisissez un nom." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Mes fichiers" + +msgid "IDS_MF_POP_ADDED" +msgstr "Ajouté." + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Traitement…" + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Type de fichier non pris en charge." + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "Les photos prises seront affichées." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Mode Paysage" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Touchez deux fois pour fermer le menu tiroir." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Touchez deux fois pour ouvrir le menu tiroir." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Glisser-déposer" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Tiroir" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Les données mobiles sont désactivées. Connectez-vous au réseau Wifi à la place ou activez les données mobiles et réessayez" + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Connexion Wifi requise. Connectez-vous au réseau Wifi et réessayez" + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Ajouter des images depuis" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Appareils connectés" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Contenu privé" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Supprimer de %s" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Supprimer le porte-nom" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "Aucun évènement à afficher. Créez-en un nouveau." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "Pour faire défiler rapidement les autres dates, touchez longuement l'indicateur de date, en haut à droite de l'écran." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "Supprimer %d éléments?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Supprimer cet élément ?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Galerie" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +msgstr "Images aléatoires" + +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Supprimer l'élément" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Supprimer des éléments" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 élément" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 secondes" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 secondes" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Non affecté" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Intervalle du diaporama" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Non libellé" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 secondes" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Tout le contenu" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Contenu à afficher" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Supprimer le libellé" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Contenu sur l'appareil" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Contenu Dropbox" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Contenu Facebook" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Pivoter vers la gauche" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Pivoter vers la droite" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Importer" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Importé." + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Importation..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Chargement..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Appareils à proximité trouvés" + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "Aucun périphérique détecté. La recherche de périphériques à proximité va continuer en arrière-plan." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Actualisé." + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Rotation..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Recherche lancée. La liste des appareils sera mise à jour automatiquement." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Début du téléchargement..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Copier vers" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Déplacer vers" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Ajout du raccourci échoué" + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Mémoire insuffisante. Supprimez certains éléments" + +msgid "IDS_MF_POP_REMOVED" +msgstr "Retiré" + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Ajout..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "Supprimer %d albums ?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Stockage privé" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Glissez ici." + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Nouveau" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Non groupé" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Captures d'écran" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Photos" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Téléchargement a échoué" + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Fichier non pris en charge." + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 résultat" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d résultats" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Favoris" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Téléchargement annulé." + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Supprimer cet album ?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Avertissement" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Trier par" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Aujourd'hui" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Date" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "Aucun élément à afficher." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Touchez ici pour prendre des photos ou des vidéos." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Le nombre maximal d'éléments pouvant être partagés (%d) a été dépassé." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Touchez pour ajouter des images." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Copier ou déplacer les éléments sélectionnés de l'album d'origine ?" + +msgid "IDS_GALLERY_HEADER_SELECT" +msgstr "Sélectionner" + +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Sélectionner tout" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d sélectionné(s)" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Afficher en tant que" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Date (les plus récents)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Date (les plus anciens)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "Une fois prises, les photos seront affichées ici." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Annulation..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "À partir de l'appareil" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "À partir de Dropbox" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "À partir de Facebook" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Téléchargement terminé." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Tous les éléments vont être supprimés." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "1 élément va être téléchargé." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "%d éléments vont être téléchargés." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Tous les éléments vont être téléchargés." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "L'album sélectionné est le même que l'album source. Sélectionnez un autre album." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Touchez ici pour ajouter des images" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +msgstr "Enreg. données impossible" + +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Espace insuffisant sur votre carte SD. Accédez à Paramètres > Alimentation et stockage > Stockage, supprimez des fichiers, puis réessayez." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "Annuler" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Ne plus afficher" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "L'utilisation des données mobiles pendant l'itinérance peut entrainer des frais supplémentaires en fonction de votre forfait." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "%d éléments seront supprimés." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Supprimer" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Hier" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Téléchargements" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Copier" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Supprimer" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Albums" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "Le nombre maximal d'éléments (%d) a été dépassé." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Annuler" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "OK" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ANNULER" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "SUPPRIMER" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Copie ..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Déplacement..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Si vous créez du contenu qui inclut des éléments provenant de l'espace de stockage personnel, ce contenu risque de ne pas être masqué automatiquement. Le contenu personnel sélectionné peut être affiché lors de la consultation du nouveau contenu." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "MODIFIER" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Paramètres" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "MODIFIER" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Réorganiser" + diff --git a/res/po/ga.po b/res/po/ga.po new file mode 100644 index 0000000..f391cea --- /dev/null +++ b/res/po/ga.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Níl do ghléas nasctha le líonra Wi-Fi. Is féidir go ngearrfar táillí breise ar nascadh le líonra móibíleach ag brath ar do phlean íocaíochta." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Sonraí móibíleacha casta as. Nasc le líonra Wi-Fi ina ionad, nó cas Sonraí móibíleacha air agus triail arís." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "Tar éis duit físeáin a thaifeadadh leis an gceamara, taispeánfar anseo iad." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Comhadainm in úsáid cheana." + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "Scrios míreanna %d?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Príobháideacht" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "M.F." + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "D.F." + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Samh" + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "Beal" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Már." + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Meit" + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Iúil" + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Ean." + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Feab." + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Nol." + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Lún." + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Aib." + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Albam" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Tuilleadh" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Paraiméadar ionchuir neamhbhailí." + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Tá an iontráil folamh" + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "Ainm céanna in úsáid cheana." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Ní féidir athainmniú." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Níor roghnaíodh albam." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Roghnaigh mír" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Níl albaim ann" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Déan fillteán?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Atriail?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Bain?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "Scriosfar %d albam" + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "Scriosfar 1 albam" + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Ceamara" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Tosaigh" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Socruithe" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Déan é" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "Ná déan é" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Sábháil" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Scrios?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Bog chuig Albam" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Cóipeáil chuig albam" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Amharc de réir" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Iontráil ainm" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Scriosfar gach sonra a bhaineann leis an gcuntas seo. Ar aghaidh?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Cuir ar ceal" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Albam nua" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "An mian leat na pictiúir a chóipeáil nó a bhogadh ón albam bunaidh?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Comhroinn" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Taispeántas sleamhnán" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Tosaigh ar thaispeántas sleamhnán" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Socruithe taispeántais sleamhnán" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Níl ainm ann" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Gach albam" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Roghnaigh albam" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "Scriosfar 1 mhír" + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Gach mír" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d mír" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Níl ach albam amháin ann" + +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_MF_BODY_DOWNLOADS" +msgstr "Ioslódálacha" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Scrios?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Bog" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Ag scriosadh..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Theip ar oibríocht." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Curtha ar ceal" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Roghnaithe" + +msgid "IDS_MF_POP_MOVED" +msgstr "Bogtha." + +msgid "IDS_MF_POP_COPIED" +msgstr "Cóipeáilte." + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "Níor roghnaíodh comhaid." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Dún" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Sórtáil de réir" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Is déanaí" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Is sine" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Cruth/naigh" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Níl míreanna ann" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Cuir íomhá in eagar" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Roghnaigh pictiúr" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Scrios an mhír seo?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Radharcra" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Bain ó Phríobháideach" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Peataí" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Bog chuig Príobháideach" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Bia" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Bláthanna" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Doiciméid" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Feithiclí" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Uaslíon na gcarachtar (%d) bainte amach." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Ní féidir an grianghraf a lódáil." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Comhroinn le" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Ná hiarr arís" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Uaslíon na gcarachtar bainte amach." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Am" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Theip air" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Scriosta." + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Scrios?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Ag baint..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "%d mír á dtaispeáint" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Cruthaigh albam" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Gailearaí" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Tuilleadh" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Cuntais" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Theip ar oibríocht." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Íoslódáil" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Cuardaigh" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Siar" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Ceamara" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Gach" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Athnuaigh" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Bain" + +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_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Teagmhálaithe" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Cruthaigh" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Sonraí" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Priontáil" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Athainmnigh" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Íoslódáilte." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Ag íoslódáil..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Iontráil ainm" + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Mo Chomhaid" + +msgid "IDS_MF_POP_ADDED" +msgstr "Curtha leis." + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Ag próiseáil..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Cineál comhaid gan tacú." + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "Tar éis duit pictiúir a thógáil, taispeánfar na pictiúir" + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Mód tírdhreacha" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Déthapáil leis an roghchlár tarraiceáin a dhúnadh." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Déthapáil leis an roghchlár tarraiceáin a oscailt." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Tarraing agus scaoil" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Tarraiceán" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Tá sonraí móibíleacha díchumasaithe. Nasc le líonra Wi-Fi, nó cumasaigh sonraí móibíleacha agus triail arís é." + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Nasc Wi-Fi de dhíth. Nasc le líonra Wi-Fi agus triail arís." + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Cuir pictiúir leis ó" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Gléasanna nasctha" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Inneachar príobháideach" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Bain ó %s" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Bain clib ainm" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "Níl imeachtaí ann le taispeáint. Cruthaigh imeacht nua." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "Le scrollú go tapa chuig dátaí eile, tapáil agus coinnigh an táscaire dáta ar bharr ar dheis an scáileáin ." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "Bain %d mír?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Bain an mhír seo?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Gailearaí" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +msgstr "Pictiúir shuaite" + +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Scrios mír" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Scrios míreanna" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 mhír" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 soicind" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 shoicind" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Neamhsannta" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Eatramh taispeántais sleamhnán" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Neamhchlibeáilte" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 shoicind" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Gach inneachar" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Inneachar le taispeáint" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Scrios clib" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Inneachar an ghléis" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Inneachar Dropbox" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Inneachar Facebook" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Rothlaigh ar chlé" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Rothlaigh ar dheis" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Iompórtáil" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Iompórtáilte." + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Ag iompórtáil..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Ag lódáil..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Aimsíodh gléasanna in aice láimhe." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "Níor aimsíodh gléasanna. Leanfar le scanadh sa chúlra le haghaidh gléasanna in aice láimhe." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Athnuaite." + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Ag rothlú..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Scanadh tosaithe. Nuashonrófar an liosta gléasanna go huathoibríoch." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Ag tosú ar íoslódáil..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Cóipeáil chuig" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Bog chuig" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Theip ar chur aicearra leis." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Easpa cuimhne. Scrios roinnt míreanna." + +msgid "IDS_MF_POP_REMOVED" +msgstr "Bainte." + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Ag cur leis..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "Scrios %d albam?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Stóras príobháideach" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Tarraing anseo" + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Nua" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Neamhghrúpáilte" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Seatanna scáileán" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Grianghraif" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Theip ar íoslódáil." + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Comhad gan tacú." + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 toradh" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d toradh" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Ceanáin" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Íoslódáil curtha ar ceal." + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Scrios an t-albam seo?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Rabhadh" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Sórtáil de réir" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Inniu" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Dáta" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "Níl aon mhíreanna le taispeáint." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Tapáil anseo le pictiúir nó le físeáin a ghlacadh" + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Uaslíon na míreanna is féidir iad a chomhroinnt (%d) bainte amach." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Tapáil le híomhánna a chur leis" + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Cóipeáil nó bog na míreanna roghnaithe ón albam bunaidh?" + +msgid "IDS_GALLERY_HEADER_SELECT" +msgstr "Roghnaigh" + +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Roghnaigh gach" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d roghnaithe" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Amharc air mar" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Dáta (is déanaí)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Dáta (is sine)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "Tar éis duit pictiúir a ghlacadh, taispeánfar anseo iad." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Á chur ar ceal..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "Ó ghléas" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "Ó Dropbox" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "Ó Facebook" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Íoslódáilte." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Scriosfar gach mír" + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "Íoslódálfar 1 mhír." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Íoslódálfar %d mír." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Íoslódálfar gach mír." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "Is ionann an t-albam roghnaithe agus an t-albam foinse. Roghnaigh albam eile." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Tapáil anseo le híomhánna a chur leis" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +msgstr "Sonraí doshábháilte" + +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Níl go leor spáis ar do chárta SD. Gabh chuig Socruithe > Cumhacht agus stóras > Stóras, ansin scrios roinnt comhad agus triail arís." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "Cuir ar ceal" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Ná taispeáin arís" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Is féidir go ngearrfar táillí breise ar úsáid sonraí móibíleacha ag brath ar do phlean sonraí má úsáidtear Sonraí móibíleacha le linn fánaíocht." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "Scriosfar %d mír." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Scrios" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Inné" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Íoslódálacha" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Cóipeáil" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Scrios" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Albaim" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "Uaslíon na míreanna (%d) sáraithe." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Cealaigh" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "DÉANTA" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "CUIR AR CEAL" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "SCRIOS" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Ag cóipeáil..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Ag bogadh..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Má chruthaíonn tú inneachar lena n-áirítear míreanna ó stóráil phearsanta, is féidir nach bhfolaítear go huathoibríoch é. Is féidir go mbeidh an t-inneachar pearsanta a roghnaíodh infheicthe le linn amharc ar an inneachar nua." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "CUIR IN EAG." + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Socruithe" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "C. IN EAG." + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Athordaigh" + diff --git a/res/po/gl.po b/res/po/gl.po new file mode 100644 index 0000000..fbc41b8 --- /dev/null +++ b/res/po/gl.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "O teu dispositivo non está conectado a unha rede Wi-Fi. Se te conectas a unha rede móbil, isto pode carrexar custos adicionais dependendo do teu plan de pagamento." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Os datos móbiles están desactivados. Conéctate a unha rede Wi-Fi no seu lugar ou activa os datos móbiles e téntao de novo." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "Despois de gravar vídeos coa cámara, amosaranse aquí." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Nome do arquivo xa en uso." + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "Eliminar %d elementos?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Privacidade" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Set." + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Out." + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Nov." + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "Mai." + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Mar." + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Xuño" + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Xul." + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Xan." + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Feb." + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Dec." + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Ag." + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Abr." + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Álbum" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Máis" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Parámetro de entrada non válido" + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "A entrada está baleira" + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "Este nome xa está en uso" + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Non se pode cambiar o nome" + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Non hai ningún álbum seleccionado" + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Seleccionar elemento" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Non hai álbums" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Crear carpeta?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Volver intentar?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Eliminar?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "Eliminaranse %d álbums" + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "Eliminarase 1 álbum" + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Cámara" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Iniciar" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Axustes" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Si" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "Non" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "Aceptar" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Gardar" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Eliminar?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Mover ao álbum" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Copiar no álbum" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Ver por" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Introducir nome" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Eliminaranse todos os datos relacionados con esta conta. Continuar?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Cancelar" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Novo álbum" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Desexas copiar ou mover as imaxes do álbum orixinal?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Compartir" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Presentación" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Iniciar presentación de diapositivas" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Axustes de presentación" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Sen nome" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Todos os álbums" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Seleccionar álbum" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "Eliminarase 1 elemento" + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Todos os elementos" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d elementos" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Só hai un álbum" + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Podes seleccionar ata %d elementos" + +msgid "IDS_MF_BODY_DOWNLOADS" +msgstr "Descargas" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Eliminar?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Mover" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Eliminando..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Fallo na operación" + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Cancelado" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Seleccionada" + +msgid "IDS_MF_POP_MOVED" +msgstr "Movido" + +msgid "IDS_MF_POP_COPIED" +msgstr "Copiado" + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "Non se seleccionaron arquivos" + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Pechar" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Ordenar por" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Máis actuais" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Máis antiga" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Crear" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Sen elementos" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Editar imaxe" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Seleccionar imaxe" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Eliminar este elemento?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Paisaxe" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Eliminar de Privado" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Mascotas" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Mover a Privado" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Comida" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Flores" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Documentos" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Vehículos" + +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_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Imposible cargar a foto" + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Compartir a través de" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Non preguntar outra vez" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Número máximo de caracteres alcanzado" + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Hora" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Erro" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Eliminado" + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Eliminar?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Eliminando..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "Amosando %d elementos" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Crear álbum" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Galería" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Máis" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Contas" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Fallo na operación" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Descargar" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Buscar" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Atrás" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Cámara" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Todas" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Actualizar" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Eliminar" + +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_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Contactos" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Crear" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Detalles" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Imprimir" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "C. nome" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Descargado" + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Descargando..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Introducir nome" + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Os Meus Arquivos" + +msgid "IDS_MF_POP_ADDED" +msgstr "Engadido" + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Procesando..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Tipo de arquivo non admitido" + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "Despois de tomar imaxes, estas amosaranse" + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Modo horizontal" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Toca dúas veces para pechar o menú do caixón." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Toca dúas veces para abrir o menú do caixón." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Arrastrar e soltar" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Caixón" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Datos móbiles desactivados. Conéctate a unha rede Wi-Fi no seu lugar ou activa os datos móbiles e téntao de novo." + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Necesítase unha conexión Wi-Fi. Conéctate á rede Wi-Fi e téntao de novo." + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Engadir imaxes desde" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Dispositivos conectados" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Contido privado" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Eliminar de %s" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Eliminar etiqueta de nome" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "Non hai eventos para amosar. Crea un evento novo." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "Para desprazarte rapidamente a outras datas, mantén tocado o indicador da data na parte superior dereita da pantalla." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "Eliminar %d elementos?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Desexas eliminar este elemento?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Galería" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +msgstr "Imaxes aleatorias" + +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Eliminar elemento" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Eliminar elementos" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 elemento" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 segundos" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 segundos" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Non asignado" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Intervalo de presentación" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Non etiquetado" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 segundos" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Todos os contidos" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Contido a amosar" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Eliminar etiqueta" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Contido do dispositivo" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Contido de Dropbox" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Contido de Facebook" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Xirar á esquerda" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Xirar á dereita" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Importar" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Importadas" + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Importando..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Cargando..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Dispositivos próximos atopados" + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "Non se atopou ningún dispositivo. A busca de dispositivos próximos continuará en segundo plano." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Actualizado" + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Rotando..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Busca iniciada. A lista de dispositivos actualizarase automaticamente." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Iniciando descarga..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Copiar en" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Mover a" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Non se puido engadir o atallo" + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Non hai suficiente memoria. Elimine algúns elementos." + +msgid "IDS_MF_POP_REMOVED" +msgstr "Eliminado" + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Engadindo..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "Eliminar %d álbums?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Almacenamento privado" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Arrastrar aquí" + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Novo" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Non agrupados" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Capturas de pantalla" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Fotos" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Erro de descarga" + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Arquivo non admitido" + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 resultado" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d resultados" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Favoritos" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Descarga cancelada" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Eliminar este álbum?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Advertencia" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Ordenar por" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Hoxe" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Data" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "Non existe ningún elemento que amosar" + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Toca aquí para tomar imaxes ou vídeos" + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Superouse o número máximo de elementos que se poden compartir (%d)." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Toca esta opción para engadir imaxes" + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Desexas copiar ou mover os elementos seleccionados do álbum orixinal?" + +msgid "IDS_GALLERY_HEADER_SELECT" +msgstr "Seleccionar" + +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Seleccionar todo" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d seleccionadas" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Ver como" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Data (máis recente)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Data (máis antiga)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "Despois de tomar imaxes, estas amosaranse aquí." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Cancelando..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "Do dispositivo" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "De Dropbox" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "De Facebook" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Descarga finalizada" + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Eliminaranse todos os elementos" + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "Descargarase 1 elemento." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Descargaranse %d elementos." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Descargaranse todos os elementos." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "O álbum seleccionado é o mesmo que o álbum de orixe. Selecciona outro álbum." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Toca aquí para engadir imaxes" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +msgstr "Imposible gardar os datos" + +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Non hai espazo suficiente na tarxeta SD. Vai a Axustes > Alimentación e almacenamento > Almacenamento e, a continuación, elimina algúns arquivos e téntao de novo." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "Cancelar" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Non amosar outra vez" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "O uso de datos móbiles en itinerancia pode implicar a aplicación de tarifas adicionais en función do teu plan de pagamento." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "Eliminaranse %d elementos." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Eliminar" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Onte" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Descargas" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Copiar" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Eliminar" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Álbums" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "Superouse o número máximo de elementos (%d)." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Cancelar" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "FEITO" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "CANCELAR" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "ELIMINAR" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Copiando..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Movendo..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Se creas contidos que inclúen elementos do almacenamento persoal, é posible que non se oculten automaticamente. O contido persoal seleccionado podía verse ao visualizar o contido novo." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "EDITAR" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Axustes" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "EDITAR" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Reordenar" + diff --git a/res/po/hi.po b/res/po/hi.po new file mode 100644 index 0000000..a76c627 --- /dev/null +++ b/res/po/hi.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "आपका डिवाइस Wi-Fi नेटवर्क से कनेक्ट नहीं हुआ है। आपके भुगतान योजना के आधार पर मोबाइल नेटवर्क से कनेक्ट करने पर अतिरिक्त शुल्क लग सकता है।" + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "मोबाइल डाटा बंद किया गया। इसके बजाय किसी Wi-Fi नेटवर्क से कनेक्ट करें या मोबाइल डाटा चालू करें और फिर से प्रयास करें।" + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "आपके द्वारा कैमरे का उपयोग करके वीडियोज रिकॉर्ड करने के बाद, वे यहाँ दिखाई जाएँगे।" + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "फाइल नाम पहले से ही उपयोग में है।" + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "%d मदें हटाएँ?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "गोपनीयता" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "सितं" + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "अक" + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "नवं" + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "मई" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "मा" + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "जून" + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "जुल" + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "जन" + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "फर" + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "दिसं" + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "अग" + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "अप्रै" + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "एल्बम" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "अधिक" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "अमान्य इनपुट पैरामीटर।" + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "प्रविष्टि खाली है" + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "ऐसा ही नाम पहले से उपयोग में है।" + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "नाम बदलने में अक्षम।" + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "कोई एल्बम चुना नहीं गया।" + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "मद चुनें" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "कोई एल्बम नहीं" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "फोल्डर बनाएं?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "पुनः प्रयास करें?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "हटायें?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "%d एल्बम्स हटाए जाएँगे।" + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 एल्बम हटाया जाएगा।" + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "कैमरा" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "प्रारंभ करें" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "सेटिंग्स" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "हाँ" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "नहीं" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "ओके" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "सुरक्षित" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "हटाएँ?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "एल्बम में ले जाएँ" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "एल्बम में कॉपी करें" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "इसके अनुसार देखें" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "नाम प्रविष्ट करें" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "इस खाते से संबंधित सभी डाटा हटाया जाएगा। जारी रखें?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "रद्द करें" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "नयी एल्बम" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "क्या आप मूल एल्बम से तस्वीरों की कॉपी करना या उन्हें ले जाना चाहते हैं?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "साझा करें" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "स्लाइड शो" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "स्लाइडशो प्रारंभ करें" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "स्लाइडशो सेटिंग्स" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "नाम नहीं" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "सभी एलबम्‍स" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "एल्बम चुनें" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "1 मद हटाया जाएगा।" + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "सभी मदें" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d मदें" + +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_MF_BODY_DOWNLOADS" +msgstr "डाउनलोड्स" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "हटाएँ?" + +msgid "IDS_MF_SK_MOVE" +msgstr "ले जाएँ" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "हटाया जा रहा है..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "संचालन विफल।" + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "रद्द किया गया" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "चयनित" + +msgid "IDS_MF_POP_MOVED" +msgstr "ले जाया गया।" + +msgid "IDS_MF_POP_COPIED" +msgstr "कॉपी हुआ।" + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "फाइलें नहीं चुनी गई।" + +msgid "IDS_CAM_SK_CLOSE" +msgstr "बंद" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "इससे क्रमबद्ध करें" + +msgid "IDS_CAM_POP_LATEST" +msgstr "नवीनतम" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "सबसे पुराने" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "बनाएँ" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "कोई मदें नहीं" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "छवि संपादित करें" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "तस्वीर चुनें" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "यह मद हटाएँ?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "दृश्य" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "निजी से निकालें" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "पालतू पशु" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "निजी पर ले जाएँ" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "खाना" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "फूल" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "दस्तावेज" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "वाहन" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "वर्णों की अधिकतम संख्या (%d) तक पहुँच गया।" + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "फोटो लोड करने में अक्षम।" + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "इसके द्वारा साझा करें" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "दोबारा न पूछें" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "वर्णो की संख्‍या अधिकतम पहुँची।" + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "समय" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "विफल" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "हटाया।" + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "हटाएँ?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "हटा रहा है..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "%d मदें दिखाना" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "एल्बम बनाएँ" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "गैलरी" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "अधिक" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "खातें" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "संचालन विफल।" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "डाउनलोड करें" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "खोजें" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "पीछे" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "कैमरा" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "सभी" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "रीफ्रेश करें" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "निकालें" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "आपके द्वारा ड्रॉपबॉक्स पर तस्वीरें अपलोड करने के बाद, मदें दिखाई जाएगी।" + +msgid "IDS_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "ग्रुप प्ले" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "संपर्क" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "बनाएँ" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "विवरण" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "प्रिंट करें" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "नाम बदलें" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "डाउनलोड हुआ।" + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "डाउनलोड हो रहा है..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "नाम प्रविष्ट करें" + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "मेरी फाइलें" + +msgid "IDS_MF_POP_ADDED" +msgstr "जोड़ा गया।" + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "प्रक्रिया हो रही है..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "असमर्थित फाइल प्रकार।" + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "आपके द्वारा तस्वीरें लेने के बाद, तस्वीरें दिखाई जाएगी।" + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "भू-दृश्य मोड" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "ड्रॉअर मेन्यू बंद करने के लिए दो बार टैप करें।" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "ड्रॉअर मेन्यू खोलने के लिए दो बार टैप करें।" + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "ड्रैग और ड्रॉप करें" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "ड्रॉअर" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "मोबाइल डाटा अक्षम है। इसके बजाय Wi-Fi नेटवर्क से कनेक्ट करें, या मोबाइल डाटा सक्षम करें और फिर से प्रयास करें।" + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Wi-Fi कनेक्‍शन आवश्‍यक है। Wi-Fi नेटवर्क से कनेक्ट करें और फिर से प्रयास करें।" + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "इससे तस्वीरें जोड़ें" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "जोड़े गए डिवाइस" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "व्यक्तिगत सामग्री" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "%s से निकालें" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "नाम टैग हटाएँ" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "प्रदर्शित करने के लिए कोई प्रसंग नहीं हैं। कोई नया प्रसंग बनाएँ।" + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "अन्य तिथियों पर तेजी से स्क्रॉल करने के लिए, स्क्रीन की शीर्ष दाईं ओर तिथि संकेतक पर टैप करे रखें।" + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "%d मद निकालें?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "यह मद निकालें?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "गैलरी" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "मद हटाएँ" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "मदें हटाएँ" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 मद" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 सेकंड" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 सेकंड" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "सौंपा नहीं गया" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "स्लाइड शो अंतराल" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "टैग नहीं किया गया" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 सेकंड" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "सभी सामग्री" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "प्रदर्शन के लिए सामग्री" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "टैग हटाएँ" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "डिवाइस सामग्री" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "ड्रॉपबॉक्स सामग्री" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "फ़ेसबुक सामग्री" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "बाएँ घुमाएँ" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "दाएँ घुमाएँ" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "आयात करें" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "आयात किया हुआ।" + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "आयात कर रहा है..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "लोड हो रहा है..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "निकटवर्ती डिवाइस मिलें।" + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "कोई डिवाइस नहीं मिला। बैकग्राउंड में निकटवर्ती डिवाइसेस की स्कैन जारी रहेगी।" + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "रिफ्रेश किया गया।" + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "घुमाया जा रहा है..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "स्कैन प्रारंभ की गई। डिवाइस सूची स्वचालित रूप से अपडेट की जाएगी।" + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "डाउनलोड प्रारंभ कर रहा है..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "इसमें कॉपी करें" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "इसमें ले जाएँ" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "शॉर्टकट जोड़ने में विफल।" + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "पर्याप्त मेमोरी नहीं। कुछ मदें हटाएँ।" + +msgid "IDS_MF_POP_REMOVED" +msgstr "निकाला।" + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "जोड़ रहा है..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "%d एल्बम हटाएँ?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "निजी स्टोरेज" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "यहाँ खींचें।" + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "नया" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "असमूहीकृत" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "स्क्रीनशॉट्स" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "फोटों" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "डाउनलोड विफल।" + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "असमर्थित फाइल।" + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 परिणाम" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d परिणाम" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "पसंदीदा" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "डाउनलोड रद्द।" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "यह एल्बम हटाएँ?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "चेतावनी" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "इसके द्वारा क्रमबद्ध करें" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "आज" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "तिथि" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "दर्शानें के लिए मदें नहीं।" + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "तस्वीरें और वीडियों लेने के लिए टैप करें।" + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "साझा की जा सकने वाली मदों की अधिकतम संख्या (%d) सीमा पार हो गई है।" + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "छवियाँ जोड़ने के लिए टैप करें।" + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "मूल एल्बम से चयनित मदों को कॉपी करें या उन्हें ले जाएँ?" + +msgid "IDS_GALLERY_HEADER_SELECT" +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "सभी चुनें" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d चयनित" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "इस रूप में देखें" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "तिथि (सबसे नवीनतम)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "तिथि (सबसे पुरानी)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "आपके द्वारा तस्वीरें लेने के बाद वे यहाँ दिखाई जाएँगी।" + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "रद्द किया जा रहा है..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "डिवाइस से" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "ड्रॉपबॉक्स से" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "फेसबुक से" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "डाउनलोड पूर्ण।" + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "सभी मदें हटाई जाएँगी।" + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "1 मद डाउनलोड की जाएँगी।" + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "%d मदें डाउनलोड की जाएँगी।" + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "सभी मदें डाउनलोड की जाएँगी।" + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "चयनित एल्बम, स्रोत एल्बम के समान ही है। कोई अन्य एल्बम चुनें।" + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "छवियाँ जोड़ने के लिए यहाँ टैप करें" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "आपके SD कार्ड में पर्याप्त स्थान नहीं है। सेटिंग्स > पॉवर और संग्रहण > संग्रहण पर जाएँ, फिर कुछ फाइलें हटाएँ और फिर से प्रयास करें।" + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "रद्द करें" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "दोबारा न दिखाएँ" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "आपकी भुगतान योजना के आधार पर रोमिंग के दौरान मोबाइल डाटा का उपयोग करने के परिणाम स्वरूप अतिरिक्त शुल्क लग सकते हैं।" + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "%d मदें हटाई जाएँगी।" + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "हटाएँ" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "बीता हुआ कल" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "डाउनलोड्स" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "कॉपी करें" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "हटाएँ" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "एल्बम" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "मदों (%d) की अधिकतम संख्या पार हो गई है।" + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "रद्द" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "पूर्ण" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "रद्द करें" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "हटाएँ" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "कॉपी कर रहा है..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "ले जा रहा है..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "यदि आप कोर्इ ऐसी सामग्री बनाते हैं जिसमें व्यक्तिगत स्टोरेज की मदें शामिल हैं, तो हो सकता है यह स्वचालित रूप से छुपाई न जाएँ। नई सामग्री देखते समय चयनित व्यक्तिगत सामग्री देखी जा सकती है।" + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "संपादन" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "सेटिंग्स" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "संपादन" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "क्रम बदलें" + diff --git a/res/po/hr.po b/res/po/hr.po new file mode 100644 index 0000000..615a243 --- /dev/null +++ b/res/po/hr.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Uređaj nije spojen na Wi-Fi mrežu. Povezivanje s mobilnom mrežom može uzrokovati dodatne troškove ovisno o vašoj tarifi." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_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_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "Nakon što kamerom snimite videozapise, prikazat će se ovdje." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Već postoji naziv datoteke." + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "Obrisati %d slika?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Privatnost" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Ruj" + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Lis" + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Stu" + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "Svi" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Ožu" + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Lip" + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Srp" + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Sij" + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Velj" + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Pro" + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Kol" + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Tra" + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Album" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Više" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Neispravan ulazni parametar." + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Unos prazan." + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "Već postoji isto ime." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Nemoguće preimenovati." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Nema odabranih albuma." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Odaberite stavku" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Nema albuma" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Nova mapa?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Ponoviti?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Ukloniti?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "%d albuma biti će obrisano." + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album bit će obrisan." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Kamera" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Pokretanje" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Postavke" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Da" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "Ne" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "U redu" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Spremi" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Obrisati?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Premjesti u album" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Kopiraj na album" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Prikaz po" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Unesite ime" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Svi podaci vezani za ovaj račun bit će obrisani. Nastavak?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Prekid" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Novi album" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Želite li kopirati ili premjestiti slike iz originalnog albuma?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Dijeli" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Prezentacija" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Pokreni prezentaciju" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Postavke prezentacije" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Nema imena" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Svi albumi" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Odaberi album" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "1 stavka bit će obrisana." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Sve stavke" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d stavki" + +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_MF_BODY_DOWNLOADS" +msgstr "Skidanja" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Obrisati?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Premjesti" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Brisanje..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Neuspješno." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Poništeno" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Odabrano" + +msgid "IDS_MF_POP_MOVED" +msgstr "Premješteno." + +msgid "IDS_MF_POP_COPIED" +msgstr "Kopirano." + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "Nije odabrana datoteka." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Zatvori" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Sortiraj" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Najnovije" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Najstarije" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Novo" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Nema stavki" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Uredi sliku" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Odaberite sliku" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Izbrisati ovu stavku?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Krajolik" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Ukloni iz Privatnog" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Kućni ljubimci" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Premjesti u Privatno" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Hrana" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Cvijeće" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Dokumenti" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Vozila" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Maksimalan broj znakova (%d)." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Nemoguće učitati fotografiju." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Dijeljenje preko" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Ne pitaj više" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Maks. broj znakova." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Vrijeme" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Greška" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Obrisano." + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Obrisati?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Uklanjanje..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "Prikaz %d stavki" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Novi album" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Galerija" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Više" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Računi" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Neuspješno." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Skidanje" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Traži" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Nazad" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Kamera" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Sve" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Aktualiziraj" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Ukloni" + +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_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Imenik" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Novi" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Detalji" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Ispis" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Preimenuj" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Skinuto." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Skidanje..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Unesite ime." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Moje Datoteke" + +msgid "IDS_MF_POP_ADDED" +msgstr "Dodano." + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Procesiranje..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Nepodržana datoteka." + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "Nakon što snimite slike, slike će se prikazati." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Pejzažni način" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Dvaput dodirnite da biste zatvorili izbornik ladica." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Dvaput dodirnite da biste otvorili izbornik ladica." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Dovuci i ispusti" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Ladica" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobilni podaci su isključeni. Umjesto toga spojite se na Wi-Fi mrežu ili uključite mobilne podatke i pokušajte ponovno" + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Potrebna Wi-Fi veza. Spojite se na Wi-Fi vezu i pokušajte ponovno" + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Dodaj slike iz" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Spojeni uređaji" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Privatni sadržaj" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Uklonite iz %s" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Ukloni oznaku imena" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "Nema događaja koji bi se prikazali. Kreirajte novi događaj." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "Da biste se brzo pomicali na druge datume, dodirnite i držite indikator datuma na gornjem desnom kutu zaslona." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "Ukloni %d stavaka?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Ukloniti ovu stavku?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Galerija" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +msgstr "Nasumične fotografije" + +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Obriši stavku" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Izbriši stavke" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 stavka" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 sek" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 sek" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Nedodijeljeno" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Interval prezentacije" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Bez oznake" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 sek" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Sav sadržaj" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Prikaz sadržaja" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Obriši oznaku" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Sadržaj uređaja" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Dropbox sadržaj" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Facebook sadržaj" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Rotiraj ulijevo" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Rotiraj udesno" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Uvoz" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Importirano." + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Importiranje..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Učitavanje..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Pronađeni uređaji u blizini." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "Nema uređaja. Traženje uređaja u blizini nastavlja se u pozadini." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Aktualizirano." + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Rotacija..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Traženje pokrenuto. Popis uređaja će se automatski aktualizirati." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Pokretanje skidanja..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Kopiraj na" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Premjesti u" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Pogreška dodavanja prečaca." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Nedovoljno memorije. Obrišite neke datoteke" + +msgid "IDS_MF_POP_REMOVED" +msgstr "Uklonjeno." + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Dodavanje..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "Izbrisati %d albuma?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Privatna memorija" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Dovucite ovdje." + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Novo" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Nerazvrstano" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Slike zaslona" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Slike" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Skidanje neuspješno." + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Nepodržana datoteka." + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 rezultat" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d rezultata" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Favoriti" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Skidanje prekinuto." + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Izbrisati ovaj album?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Upozorenje" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Sortiraj po" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Danas" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Datum" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "Nema stavki." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Dodirnite ovdje da biste snimili fotografije ili video zapise." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Dosegnut je maksimalni broj stavki koje se mogu dijeliti (%d)." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Dotaknite za dodavanje slika." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Kopirati ili premjestiti odabrane stavke iz originalnog albuma?" + +msgid "IDS_GALLERY_HEADER_SELECT" +msgstr "Odaberi" + +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Odaberi sve" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d odabrano" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Prikaži kao" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Datum (najnoviji)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Datum (najstariji)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "Slike će se prikazati ovdje nakon što ih snimite." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Prekidanje..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "S uređaja" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "S Dropboxa" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "S Facebooka" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Skidanje obavljeno." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Svi će stavke biti obrisane." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "Preuzet će se 1 stavka." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Preuzet će se ovoliko stavki: %d." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Preuzet će se sve stavke." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "Odabrani je album isti kao i izvorni album. Odaberite drugi album." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Dodirnite ovdje da biste dodali slike" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +msgstr "Nemoguće spremiti podatke" + +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Nema dovoljno prostora na SD kartici. Idite na Postavke > Baterija i memorija > Memorija, zatim izbrišite neke datoteke i pokušajte ponovno." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "Prekid" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Ne prikazuj više" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Korištenje mobilnih podataka u roamingu može dovesti do dodatnih troškova, ovisno o vašoj tarifi." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "%d stavki bit će izbrisano." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Obriši" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Jučer" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Skidanja" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Kopiranje" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Obriši" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Albumi" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "Premašen je maksimalni broj stavki (%d)." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Prekid" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "GOTOVO" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ODUSTANI" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "IZBRIŠI" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Kopiranje..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Premještanje..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Ako kreirate sadržaj koji uključuje stavke iz osobne memorije, možda neće automatski biti skriven. Odabrani osobni sadržaj mogao bi se vidjeti pri pregledavanju novog sadržaja." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "UREDI" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Postavke" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "UREDI" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Poredak" + diff --git a/res/po/hu.po b/res/po/hu.po new file mode 100644 index 0000000..4b326da --- /dev/null +++ b/res/po/hu.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Az eszköz nem kapcsolódik Wi-Fi hálózathoz. Mobilhálózati kapcsolat létesítése az előfizetési csomagtól függően további költséggel járhat." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_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_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "Itt jelennek majd meg a fényképezővel rögzített videók." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Ilyen fájlnév már van." + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "Töröl %d elemet?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Védett adataim" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Sze." + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Okt." + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Nov." + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "máj." + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Már." + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Jún." + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Júl." + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Jan." + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Feb." + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Dec." + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Aug." + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Ápr." + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Album" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Egyebek" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Érvénytelen bemeneti paraméter" + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "A bejegyzés üres." + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "Már van ilyen név." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Nem lehet átnevezni." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Nincs kijelölt album." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Elem kiválasztása" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Nincs album" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Mappát hoz létre?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Újra próbálkozik?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Törli?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "%d albumot törölni fog." + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "Törölni fog 1 albumot." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Fényképező" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Indítás" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Beállítások" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Igen" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "Nem" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Mentés" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Törli?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Áthelyezés albumba" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Másolás albumba" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Nézet" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Írja be a nevet" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "A fiókhoz kapcsolódó minden adatot törölni fog. Folytatja?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Mégse" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Új album" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Szeretné átmásolni vagy áthelyezni a képeket az eredeti albumból?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Megosztás" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Diabemutató" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Diabemutató indítása" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Diabemutató beállításai" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Nincs név" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Összes album" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Album kiválasztása" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "Törölni fog 1 tételt." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Összes tétel" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d tétel" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Csak egy album van." + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Legfeljebb %d tételt jelölhet ki." + +msgid "IDS_MF_BODY_DOWNLOADS" +msgstr "Letöltések" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Törli?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Áthelyez" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Törlés..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Sikertelen művelet" + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Megszakítva" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Kiválasztott" + +msgid "IDS_MF_POP_MOVED" +msgstr "Áthelyezve." + +msgid "IDS_MF_POP_COPIED" +msgstr "Átmásolva." + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "Nincs kiválasztva fájl." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Bezár" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Rendezés szempontja" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Legfrissebb" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Legrégebbi" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Létrehoz" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Nincs tétel" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Kép szerkesztése" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Válasszon képet" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Törli a tételt?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Táj" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Eltávolítás a Privátból" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Háziállatok" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Áthelyezés a Privátba" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Étel" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Virág" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Dokumentumok" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Járművek" + +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_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Nem lehet betölteni a fényképet." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Megosztás" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Máskor ne legyen kérdés" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Nincs hely több karakternek." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Idő" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Hiba" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Törölve." + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Törli?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Eltávolítás..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "%d tétel jelent meg" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Album létrehozása" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Galéria" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Egyebek" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Fiókok" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Sikertelen művelet" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Letöltés" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Keresés" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Vissza" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Kamera" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Mind" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Frissítés" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Eltávolítá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_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Névjegyek" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Létrehoz" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Részletek" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Nyomtatás" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Átnevez" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Letöltve." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Letöltés..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Írja be a nevet." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Saját fájlok" + +msgid "IDS_MF_POP_ADDED" +msgstr "Hozzáadva." + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Feldolgozás folyamatban" + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "A fájltípus\nnem támogatott." + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "Ha majd készít képeket, akkor azok megjelennek itt." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Fekvő helyzet" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Kétszeri érintéssel bezárhatja a tálcamenüt." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Kétszeri érintéssel megnyithatja a tálcamenüt." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Húzás" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Fiók" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "A mobil internetkapcsolat le van tiltva. Kapcsolódjon Wi-Fi hálózathoz, vagy engedélyezze a mobil internetkapcsolatot, és próbálja újra" + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Wi-Fi kapcsolat szükséges. Kapcsolódjon a Wi-Fi hálózathoz, és próbálja újra" + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Képek hozzáadásának forrása" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Csatlakoztatott eszközök" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Privát tartalom" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Eltávolítás a(z) %s kategóriából" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Névcímke eltávolítása" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "Nincs megjeleníthető esemény. Hozzon létre új eseményt." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "Ujját a képernyő jobb felső sarkában található dátumjelzőn tartva gyorsan más dátumra görgethet." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "Eltávolít %d tételt?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Eltávolítja a tételt?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Galéria" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +msgstr "Képek véletlenszerűen" + +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Tétel törlése" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Tételek törlése" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 tétel" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 másodperc" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 másodperc" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Nincs hozzárendelve" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Diabemutató intervalluma" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Címkézetlen" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 másodperc" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Minden tartalom" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Megjelenítendő tartalom" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Címke törlése" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Eszközön lévő tartalom" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Dropbox tartalom" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Facebook tartalom" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Forgatás balra" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Forgatás jobbra" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Importálás" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Importálva." + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Importálás..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Betöltés..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Eszközök találhatók a közelben." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "Nem található eszköz. A háttérben folytatódik a közeli eszközök keresése." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Frissítve." + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Forgatás..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Keresés elindítva. Az eszközlista automatikusan frissül." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Letöltés indítása..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Másolás ide" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Áthelyezés ide" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Nem sikerült hozzáadni a parancsikont." + +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_MF_POP_REMOVED" +msgstr "Törölve." + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Hozzáadás..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "Töröl %d albumot?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Privát tárhely" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Húzza ide." + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Új" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Csoport nélküli" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Képernyőfotók" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Fényképek" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Sikertelen letöltés" + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Nem támogatott fájl" + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 találat" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d találat" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Kedvencek" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Letöltés megszakítva." + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Törli az albumot?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Figyelmeztetés" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Rendezés" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Ma" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Dátum" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "Nincs megjeleníthető tétel." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Érintse meg fénykép- vagy videofelvétel készítéséhez." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Túllépte a megosztható tételek maximális számát (%d)." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Érintse meg képek hozzáadásához." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Átmásolja vagy áthelyezi a kiválasztott elemeket az eredeti albumból?" + +msgid "IDS_GALLERY_HEADER_SELECT" +msgstr "Kiválasztás" + +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Összes kijelölése" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d kijelölve" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Megjelenítés módja" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Dátum (legújabb)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Dátum (legrégebbi)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "Ha majd képeket készít, azok itt jelennek meg." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Megszakítás..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "Az eszközről" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "A Dropboxból" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "A Facebookról" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Letöltés befejezve." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Minden tételt törölni fog." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "Letölt 1 elemet." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Letölt %d elemet." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Az összes elemet letölti." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "A kiválasztott album azonos a forrásalbummal. Válasszon másik albumot." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Érintse meg képek hozzáadásához" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +msgstr "Az adatok nem menthetők" + +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Nincs elég hely az SD-kártyá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_MF_BUTTON_CANCEL_ABB3" +msgstr "Mégse" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Ne jelenjen meg újra" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Előfizetési csomagjától függően lehetséges, hogy a mobil internetkapcsolat roamingos használatáért további díjat kell fizetni." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "Törölni fog %d elemet." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Törlés" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Tegnap" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Letöltések" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Másolás" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Törlés" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Albumok" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "Túllépte az elemek maximális számát (%d)." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Mégse" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "KÉSZ" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "MÉGSE" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "TÖRLÉS" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Másolás..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Áthelyezés..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Ha a létrehozott tartalomban a személyes tárhelyről származó tartalom található, az nem rejthető el automatikusan. A kiválasztott személyes tartalom az új tartalom megjelenítésével tekinthető meg." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "SZERKESZTÉS" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Beállítások" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "SZERK." + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Átrendezés" + diff --git a/res/po/hy.po b/res/po/hy.po new file mode 100644 index 0000000..d220740 --- /dev/null +++ b/res/po/hy.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Ձեր սարքը միացված չէ Wi-Fi ցանցի: Շարժական կապի ցանցին միանալը կարող է լրացուցիչ վճարների հանգեցնել՝ Ձեր վճարային պլանից կախված" + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Շարժական տվյալներն անջատված են: Փոխարենը միացեք Wi-Fi ցանցի կամ միացրեք Շարժական տվյալներն ու նորից փորձեք:" + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "Խցիկով տեսանյութեր տեսագրելուց հետո դրանք կցուցադրվեն այստեղ:" + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Ֆայլի անունն արդեն գործածվում է" + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "Ջնջե՞լ %d տարր" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Գաղտնիություն" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Սպտ." + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Հկտ." + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Նվբ." + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "Մայ" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Մրտ." + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Հնս." + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Հլս." + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Հնվ." + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Փտր." + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Դկտ." + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Օգս." + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Ապր." + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Ալբոմ" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Ավելին" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Անվավեր ներածված պարամետր:" + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Գրառումը դատարկ է:" + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "Նույն անունն արդեն օգտագործվում է:" + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Հնարավոր չէ վերանվանել:" + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Ոչ մի ալբոմ չի ընտրվել:" + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Ընտրել տարրը" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Ալբոմներ չկան" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Ստեղծե՞լ թղթապանակ" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Կրկին փորձե՞լ" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Հեռացնե՞լ" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "%d ալբոմ կվերացվի:" + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 ալբոմ կվերացվի:" + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Խցիկ" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Մեկնարկել" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Պարամետրեր" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Այո" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "Ոչ" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Պահպանել" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Ջնջե՞լ" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Տեղափոխել ալբոմի մեջ" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Պատճենել ալբոմի մեջ" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Դիտել ըստ" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Մուտքագրեք անունը" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Այս հաշվին առնչվող բոլոր տվյալները կվերացվեն. շարունակե՞լ:" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Դադարեցնել" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Նոր ալբոմ" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Ուզու՞մ եք պատճենել կամ տեղափոխել սկզբնական ալբոմի նկարները:" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Համատեղ օգտագործում" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Սահկահանդես" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Սկսել սլայդերի ցուցադրում" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Սահկահանդեսի ընտրանքները" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Անուն չկա" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Բոլոր ալբոմները" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Ընտրել ալբոմ" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "1 տարր կվերացվի:" + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Բոլոր տարրերը" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d տարր" + +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_MF_BODY_DOWNLOADS" +msgstr "Բեռնումներ" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Ջնջե՞լ" + +msgid "IDS_MF_SK_MOVE" +msgstr "Տեղափոխել" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Ջնջվում է..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Գործողությունը ձախողվեց:" + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Դադարեցված" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Ընտրված" + +msgid "IDS_MF_POP_MOVED" +msgstr "Տեղափոխված է" + +msgid "IDS_MF_POP_COPIED" +msgstr "Պատճենված է:" + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "Չի ընտրված որևէ ֆայլ:" + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Փակել" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Տեսակավորել ըստ" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Ավենավերջին" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Ամենահին" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Ստեղծել" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Տարրեր չկան" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Խմբագրել պատկերը" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Ընտրեք նկար" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Վերացնե՞լ այս տարրը:" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Տեսարան" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Հեռացնել Գաղտնիից" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Ընտանի կենդանիներ" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Տեղափոխել դեպի Գաղտնի" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Ուտելիք" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Ծաղիկներ" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Փաստաթղթեր" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Տրանսպորտային միջոցներ" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Հասել է նիշերի առավելագույն քանակին (%d):" + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Անհնար է բեռնել լուսանկարը:" + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Համօգտագործել հետևյալի միջոցով՝" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Այլևս չհարցնել" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Հասել եք նիշերի առավելագույն քանակին:" + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Ժամանակ" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Չհաջողվեց" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Ջնջված է:" + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Ջնջե՞լ" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Հեռացնում է..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "Ցույց է տրվում %d տարր" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Ստեղծել ալբոմ" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Պատկերասրահ" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Ավելին" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Հաշիվներ" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Գործողությունը ձախողվեց:" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Ներբեռնել" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Որոնել" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Ետ" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Խցիկ" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Բոլոր" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Նորացնել" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Հեռացնել" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Նկարները Dropbox-ում վերբեռնելուց հետո տարրերը կցուցադրվեն:" + +msgid "IDS_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Կոնտակտներ" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Ստեղծել" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Մանրամասներ" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Տպել" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Վերանվանել" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Բեռնված է:" + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Բեռնում..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Մուտքագրեք անունը:" + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Իմ Ֆայլերը" + +msgid "IDS_MF_POP_ADDED" +msgstr "Ավելացված է:" + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Ընթացքում է" + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Ֆայլի չսատարվող տեսակ:" + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "Նկարահանելուց հետո նկարները կցուցադրվեն:" + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Ալբոմի ռեժիմ" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Կրկնակի թակեք՝ գզրոց-ընտրացանկը փակելու համար:" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Կրկնակի թակեք՝ գզրոց-ընտրացանկը բացելու համար:" + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Քարշեք և թողեք" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Իջնող ընտրացանկ" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Շարժական տվյալները կասեցված են: Փոխարենը միացեք Wi-Fi ցանցին կամ ընձեռեք շարժական տվյալներն ու նորից փորձեք" + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Wi-Fi միացում է պահանջվում: Միացեք Wi-Fi ցանցին և նորից փորձեք:" + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Նկարներ ավելացնել այստեղից՝" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Կապակցված սարքեր" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Գաղտնի բովանդակություն" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Հեռացնել %s-ից" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Հեռացնել անվանապիտակը" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "Ցուցադրելու իրադարձություններ չկան: Ստեղծեք նոր իրադարձություն:" + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "Արագորեն դեպի այլ թվականներ ոլորելու համար էկրանի վերին աջ մասում թակեք և պահեք թվականի ցուցիչը:" + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "Հեռացնե՞լ %d տարր:" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Հեռացնե՞լ այս տարրը:" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Պատկերասրահ" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Վերացրեք տարր" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Վերացնել տարրեր" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 տարր" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 վայրկյան" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 վայրկյան" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Նշանակված չէ" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Սահկահանդեսի միջակայքը" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Չհատկորոշված" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 վայրկյան" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Ամբողջ բովանդակությունը" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Ցուցադրման ենթակա բովանդակություն" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Ջնջել տեգը" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Սարքի բովանդակություն" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Dropbox-ի բովանդակություն" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Facebook-ի բովանդակություն" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Պտտել ձախ" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Պտտել աջ" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Ներարկում" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Ներմուծված:" + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Ներմուծում..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Բեռնում է..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Մոտակա սարքեր են գտնվել:" + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "Սարքեր չեն գտնվել: Մերձակա սարքերի տեսածրումը կշարունակվի հետին պլանում" + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Նորացվեց:" + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Պտտվում է..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Տեսածրումը սկսվեց: Սարքերի ցուցակը կթարմացվի ինքնաբերաբար" + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Ներբեռնումը սկսվում է..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Պատճենել ...ում" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Տեղափոխել դեպի" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Չհաջողվեց դյուրանցում ավելացնել:" + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Հիշողությունը չի բավարարում: Ջնջեք որոշ տարրեր" + +msgid "IDS_MF_POP_REMOVED" +msgstr "Հեռացված է" + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Ավելացնում է..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "Վերացնե՞լ %d ալբոմներ:" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Անձնական պահոց" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Քաշեք այստեղ:" + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Նոր" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Ապախմբավորված" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Էկրանի պատկերներ" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Լուսանկարներ" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Բեռնումն անհասանելի է:" + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Չսատարվող ֆայլ:" + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 արդյունք" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d արդյունքներ" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Ընտրյալներ" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Ներբեռնումը չեղարկված է:" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Վերացնե՞լ այս ալբոմը:" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Նախազգուշացում" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Տեսակավորել ըստ" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Այսօր" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Ամսաթիվ" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "Ցուցադրելու տարրեր չկան:" + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Նկարներ կամ տեսանյութեր նկարահանելու համար թակեք այստեղ:" + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Տարրերի առավելագույն քանակը, որոնք կարող են համօգտագործվել (%d), գերազանցվել է:" + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Թակել՝ պատկերներ ավելացնելու համար:" + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Ընտրված տարրերը պատճենե՞լ կամ տեղափոխե՞լ սկզբնական ալբոմից:" + +msgid "IDS_GALLERY_HEADER_SELECT" +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Ընտրել բոլորը" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d ընտրված" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Դիտել որպես" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Թվական (առավել վերջին)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Թվական (ամենահին)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "Նկարահանելուց հետո նկարները կցուցադրվեն այստեղ:" + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Դադարեցվում է..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "Սարքից" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "Dropbox-ից" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "Facebook-ից" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Բեռնումը ավարտված է:" + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Բոլոր տարրերը կվերացվեն:" + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "1 տարր կներբեռնվի:" + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "%d տարր կներբեռնվի:" + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Բոլոր տարրերը կներբեռնվեն:" + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "Ընտրված ալբոմը և աղբյուր-ալբոմը նույնն են: Ընտրեք ուրիշ ալբոմ:" + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Հպեք այստեղ` պատկերներ հավելելու համար" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Ձեր SD քարտում բավարար տեղ չկա: Գնացեք Դրվածքներ > Էներգիա և պահոց > Պահոց, հետո վերացրեք որոշ ֆայլեր և նորից փորձեք:" + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "Չեղարկել" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Այլևս ցույց չտալ" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Ռոումինգի ընթացքում Շարժական տվյալներ օգտագործելը կարող է լրացուցիչ վճարների հանգեցնել՝ Ձեր վճարային պլանից կախված:" + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "%d տարրեր կջնջվեն:" + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Վերացնել" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Երեկ" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Ներբեռնումներ" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Պատճենել" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Վերացնել" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Ալբոմներ" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "Տարրերի առավելագույն քանակը (%d) գերազանցվեց:" + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Չեղարկել" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "ԱՐՎԱԾ" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ԴԱԴԱՐԵՑՆԵԼ" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "ՎԵՐԱՑՆԵԼ" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Պատճենում է..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Տեղափոխում..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Եթե ստեղծեք անհատական պահոցի տարրեր ներառող բովանդակություն, հնարավոր է, որ այն ինքնաբերաբար չթաքցվի: Ընտրված անձնական բովանդակությունը հնարավոր կլինի տեսնել նոր բովանդակությունը դիտելու ժամանակ:" + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "ԽՄԲԱԳՐԵԼ" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Դրվածքներ" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "ԽՄԲԳՐԼ" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Վերադասավորել" + diff --git a/res/po/is.po b/res/po/is.po new file mode 100644 index 0000000..bf86e43 --- /dev/null +++ b/res/po/is.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Tækið er ekki tengt Wi-Fi neti. Ef tengst er í gegnum farsímakerfi kann það að hafa viðbótarkostnað í för með sér, allt eftir áskrift." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Slökkt er á farsímagögnum. Tengstu Wi-Fi neti í staðinn eða kveiktu á farsímagögnum og reyndu aftur." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "Eftir að þú tekur upp myndskeið með myndavélinni verða þau birt hér." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Skráarheitið er þegar í notkun." + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "Viltu eyða %d hlutum?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Leynd" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Sep." + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Okt." + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Nóv." + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "Maí" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Mar." + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Jún." + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Júl." + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Jan." + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Feb." + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Des." + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Ágú." + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Apr." + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Albúm" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Meira" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Ógild ílagsfæribreyta." + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Færsla er tóm." + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "Þetta heiti er þegar í notkun." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Mistókst að breyta heiti." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Engar plötur valdar." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Velja hlut" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Engar möppur" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Á að búa til möppu?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Reyna aftur" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Á að fjarlægja?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "%d albúmum verður eytt." + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "Einu albúmi verður eytt." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Myndavél" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Ræsa" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Stillingar" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Já" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "Nei" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "Í lagi" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Vista" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Á að eyða?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Færa í albúm" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Afrita í albúm" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Skoða eftir" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Rita nafn" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Öllum gögnum sem tengjast áskriftinni verður eytt. Viltu halda áfram?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Hætta við" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Nýtt albúm" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Viltu afrita eða færa myndir úr upprunalega albúminu?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Samnýta" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Skyggnusýning" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Hefja skyggnusýningu" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Stillingar skyggnusýningar" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Ekkert heiti" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Öll albúm" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Velja albúm" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "1 hlut verður eytt." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Allir hlutir" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d hlutir" + +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_MF_BODY_DOWNLOADS" +msgstr "Niðurhal" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Á að eyða?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Flytja" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Verið er að eyða..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Aðgerð mistókst." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Hætt við" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Valið" + +msgid "IDS_MF_POP_MOVED" +msgstr "Flutt." + +msgid "IDS_MF_POP_COPIED" +msgstr "Afritað." + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "Engar skrár valdar." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Loka" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Raða eftir" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Nýjustu" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Elst" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Búa til" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Engin atriði" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Breyta mynd" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Velja mynd" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Viltu eyða þessu atriði?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Landslag" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Fjarlægja úr einkamálum" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Gæludýr" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Færa í einkamál" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Matur" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Blóm" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Skjöl" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Ökutæki" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Hámarkfjölda stafa (%d) hefur verið náð." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Mistókst að hlaða mynd." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Samnýta um" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Ekki spyrja aftur" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Hámarksfjölda stafa hefur verið náð." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Tími" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Mistókst" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Eytt." + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Á að eyða?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Verið er að fjarlægja..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "Birti %d atriði" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Búa til albúm" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Gallerí" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Meira" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Reikningar" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Aðgerð mistókst." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Hlaða niður" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Leit" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Bakka" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Myndavél" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Allt" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Endurnýja" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Fjarlægja" + +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_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Tengiliðir" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Búa til" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Upplýsingar" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Prenta" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Endurnefna" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Halað niður." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Verið er að hala niður..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Rita nafn." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Skrárnar mínar" + +msgid "IDS_MF_POP_ADDED" +msgstr "Bætt við." + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Vinnsla í gangi..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Óstutt skrársnið." + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "Eftir að myndir eru teknar eru þær birtar." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Lárétt stilling" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Pikkaðu tvisvar til að loka skúffuvalmyndinni." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Pikkaðu tvisvar til að opna skúffuvalmyndina." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Dragðu og slepptu" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Skúffa" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Slökkt á farsímagögnum. Tengdu við Wi-Fit net í staðinn, eða kveiktu á farsímagögnum og reyndu aftur." + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Wi-Fi tenging nauðsynleg. Tengdu við Wi-Fi netkerfi og reyndu aftur." + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Bæta við myndum frá" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Tengd tæki" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Persónulegt efni" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Fjarlægja úr %s" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Fjarlægja nafnmerkingu" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "Engir viðburðir til að birta. Búðu til nýjan viðburð." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "Haltu fingri á dagsetningavísinum efst til hægri á skjánum til að fletta upp á öðrum dagsetningum á fljótlegan hátt." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "Fjarlægja %d hluti?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Viltu fjarlægja þetta atriði?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Gallerí" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +msgstr "Stokkaðar myndir" + +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Eyða atriði" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Eyða atriðum" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 hlutur" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 sekúndur" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 sekúndur" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Óúthlutað" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Tími milli mynda" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Ómerkt" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 sekúndur" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Allt efni" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Efni til að birta" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Eyða merki" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Efni tækis" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Dropbox-efni" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Facebook-efni" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Snúið til vinstri" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Snúið til hægri" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Flytja inn" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Flutt inn." + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Verið að flytja inn..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Hleð..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Nálæg tæki fundust." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "Engin tæki fundust. Leit að nálægum tækjum mun halda áfram í bakgrunni." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Uppfært." + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Snýr..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Leit hafin. Tækjalistinn verður uppfærður sjálfkrafa." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Hef niðurhal..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Afrita í" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Færa í" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Mistókst að bæta flýtileið við." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Ekki er nægt minni. Eyðið nokkrum atriðum." + +msgid "IDS_MF_POP_REMOVED" +msgstr "Fjarlægt." + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Verið er að bæta við..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "Viltu eyða %d albúmum?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Einkageymsla" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Dragðu hingað." + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Nýtt" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Ekki í hóp" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Skjámyndir" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Ljósmyndir" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Það er ekki hægt að hlaða niður." + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Óstudd skrá." + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 niðurstaða" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d niðurstöður" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Uppáhald" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Það var hætt við niðurhal." + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Viltu eyða þessu albúmi?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Aðvörun" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Raða eftir" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Í dag" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Dagsetning" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "Engin atriði til birtingar." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Pikkaðu hér til að taka myndir eða myndskeið." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Hámarksfjölda atriða sem hægt er að deila (%d) hefur verið náð." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Pikkaðu til að bæta við myndum." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Viltu afrita eða færa völdu atriðin úr upprunalega albúminu?" + +msgid "IDS_GALLERY_HEADER_SELECT" +msgstr "Velja" + +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Velja allt" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d valið" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Skoða sem" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Dagsetning (nýjast)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Dagsetning (elst)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "Myndir birtast hér eftir að þær eru teknar." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Hætti við..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "Úr tæki" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "Af Dropbox" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "Af Facebook" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Niðurhalinu er lokið." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Öllum hlutum verður eytt." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "1 atriði verður sótt." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "%d atriði verða sótt." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Öll atriði verða sótt." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "Valið albúm er hið sama og upprunaalbúm. Veldu annað albúm." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Pikkaðu hér til að bæta við myndum" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +msgstr "Ekki hægt að vista gögn" + +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Ekki er nægt rými á SD-kortinu. Opnaðu Stillingar > Orka og geymsla > Geymsla til að eyða einhverjum skrám og reyndu svo aftur." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "Hætta við" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Ekki sýna aftur" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Notkun farsímagagna í reiki kann að hafa viðbótarkostnað í för með sér, allt eftir áskrift." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "%d atriðum verður eytt." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Eyða" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Í gær" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Niðurhal" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Afrita" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Eyða" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Albúm" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "Hámarksfjölda atriða (%d) hefur verið náð." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Hætta v." + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "LOKIÐ" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "HÆTTA VIÐ" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "EYÐA" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Afritun stendur yfir..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Verið er að flytja..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Ef þú býrð til efni sem inniheldur atriði úr einkageymslu er ekki víst að nýja efnið verði falið sjálfkrafa. Valið persónulegt efni gæti sést þegar nýja efnið er skoðað." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "BREYTA" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Stillingar" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "BREYTA" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Endurraða" + diff --git a/res/po/it_IT.po b/res/po/it_IT.po new file mode 100644 index 0000000..e585a98 --- /dev/null +++ b/res/po/it_IT.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Il dispositivo in uso non è connesso a una rete Wi-Fi. La connessione a una rete mobile potrebbe comportare costi aggiuntivi a seconda del vostro piano tariffario." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Connessione dati disattivata. Connettetevi a una rete Wi-Fi o attivate la connessione dati e riprovate." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "Una volta registrati con la fotocamera, i video saranno visualizzati qui." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Il nome del file è già in uso." + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "Eliminare %d elementi?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Privacy" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Set" + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Ott" + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Nov" + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "Mag" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Mar" + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Giu" + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Lug" + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Gen" + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Feb" + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Dic" + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Ago" + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Apr" + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Album" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Altro" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Parametro inserimento non valido." + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Voce vuota" + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "Stesso nome già in uso." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Impossibile rinominare." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Nessun album selezionato." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Seleziona elemento" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Nessun album" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Creare cartella?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Riprovare?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Rimuovere?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "%d album saranno eliminati." + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album verrà eliminato." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Camera" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Avvia" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Impostaz." + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Sì" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "No" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Salva" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Eliminare?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Sposta in album" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Copia su album" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Mostra per" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Inserisci nome" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Tutti i dati relativi a questo account verranno eliminati. Continuare?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Annulla" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Nuovo album" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Copiare o spostare le immagini dall'album originale?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Condividi" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Presentazione" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Avvia presentazione" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Impostazioni presentazione" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Nessun nome" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Tutti gli album" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Seleziona album" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "1 elemento verrà eliminato." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Tutti gli elementi" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d elementi" + +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_MF_BODY_DOWNLOADS" +msgstr "Download" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Eliminare?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Sposta" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Eliminazione..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Operazione non eseguita." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Annullati" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Selezionato" + +msgid "IDS_MF_POP_MOVED" +msgstr "Spostato." + +msgid "IDS_MF_POP_COPIED" +msgstr "Copiato." + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "Nessun file selezionato." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Chiudi" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Ordina per" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Più recenti" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Meno recente" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Crea" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Nessun elemento" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Modifica immagine" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Seleziona immagine" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Eliminare questo elemento?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Scenario" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Rimuovi da Privato" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Animali domestici" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Sposta in Privato" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Cibo" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Fiori" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Documenti" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Veicoli" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Raggiunto numero massimo di caratteri (%d)." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Impossibile caricare la foto." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Condividi" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Non chiedere più" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Raggiunto numero massimo di caratteri." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Ora" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Non riuscito" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Eliminato/i." + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Eliminare?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Rimozione..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "%d elementi visualizzati" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Crea album" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Galleria" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Altro" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Account" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Operazione non eseguita." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Download" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Cerca" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Indietro" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Camera" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Tutti/e" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Aggiorna" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Rimuovi" + +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_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Rubrica" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Crea" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Dettagli" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Stampa" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Rinomina" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Scaricato." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Download..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Inserisci nome." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Archivio" + +msgid "IDS_MF_POP_ADDED" +msgstr "Aggiunto." + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Elaborazione..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Tipo file non supportato." + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "Le foto verranno visualizzate dopo averle scattate." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Modalità orizzontale" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Toccate due volte per chiudere il menu Accessori." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Toccate due volte per aprire il menu Accessori." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Trascina e rilascia" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Casella" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Connessione dati disattiva. Connettetevi ad una rete Wi-Fi o attivate la connessione dati e riprovate." + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Connessione Wi-Fi disattiva. Connettetevi ad una rete Wi-Fi e riprovate." + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Aggiungi immagini da" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Dispositivi connessi" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Contenuti privati" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Rimuovi da %s" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Rimuovi tag nome" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "Nessun evento da visualizzare. Create un nuovo evento." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "Per scorrere rapidamente alle altre date, toccate e tenete premuto l'indicatore della data nella parte superiore destra dello schermo." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "Rimuovere %d elementi?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Rimuovere questo elemento?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Galleria" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +msgstr "Immagini riprodotte in ordine casuale" + +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Elimina elemento" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Elimina elementi" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 elemento" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 secondi" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 secondi" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Non assegnato" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Intervallo presentazione" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Senza tag" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 secondi" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Tutti i contenuti" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Contenuti da visualizzare" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Elimina etichetta" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Contenuti dispositivo" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Contenuti Dropbox" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Contenuti Facebook" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Ruota a sinistra" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Ruota a destra" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Importa" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Importati." + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Importazione..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Caricamento..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Dispositivi vicini trovati." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "Nessun dispositivo trovato. La ricerca di dispositivi vicini continuerà in background." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Aggiornato." + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Rotazione in corso..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Ricerca avviata. L'elenco dispositivi si aggiornerà automaticamente." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Avvio download in corso..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Copia in" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Sposta in" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Impossibile aggiungere il collegamento." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Memoria insufficiente. Eliminare alcuni elementi." + +msgid "IDS_MF_POP_REMOVED" +msgstr "Rimosso." + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Aggiunta in corso..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "Eliminare %d album?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Archivio privato" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Trascina qui." + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Novità" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Non raggruppati" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Schermata acquisita" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Fotografie" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Download non riuscito." + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "File non supportato." + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 risultato" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d risultati" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Preferiti " + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Download annullato." + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Eliminare questo album?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Avviso" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Ordina per" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Oggi" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Data" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "Nessun elemento da visualizzare." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Toccate qui per acquisire immagini o video." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Il numero massimo di elementi che è possibile condividere (%d) è stato superato." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Premere per aggiungere immagini." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Copiare o spostare gli elementi selezionati dall'album originale?" + +msgid "IDS_GALLERY_HEADER_SELECT" +msgstr "Seleziona" + +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Seleziona tutto" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d selezionati" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Visualizza come" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Data (più recente)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Data (meno recente)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "Una volta scattate, le immagini verranno visualizzate qui." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Annullamento in corso..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "Dal dispositivo" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "Da Dropbox" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "Da Facebook" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Download completato." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Tutti gli elementi verranno eliminati." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "1 elemento verrà scaricato." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "%d elementi verranno scaricati." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Tutti gli elementi verranno scaricati." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "L'album selezionato coincide con l'album di origine. Selezionate un altro album." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Toccate qui per aggiungere immagini" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +msgstr "Impossibile salvare dati" + +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Spazio insufficiente sulla scheda SD. Andate in Impostazioni > Batteria e memoria > Memoria, quindi eliminate alcuni file e riprovate." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "Annulla" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Non mostrare più" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "L'utilizzo dei dati cellulare durante il roaming può comportare l'addebito di spese aggiuntive a seconda del piano tariffario." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "%d elementi verranno eliminati." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Elimina" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Ieri" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Download" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Copia" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Elimina" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Album" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "Il numero massimo di elementi (%d) è stato superato." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Annulla" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "FATTO" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ANNULLA" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "ELIMINA" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Copia..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Spostamento..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Se create dei contenuti che includono elementi della memoria personale, questi ultimi potrebbero non venire nascosti automaticamente. I contenuti personali selezionati potrebbero essere visualizzati durante la visualizzazione dei nuovi contenuti." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "MODIFICA" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Impostazioni" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "MODIFICA" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Riordina" + diff --git a/res/po/ja_JP.po b/res/po/ja_JP.po new file mode 100644 index 0000000..8f86eaf --- /dev/null +++ b/res/po/ja_JP.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "端末がWi-Fiネットワークに接続されていません。モバイルネットワークに接続すると、料金プランによっては追加料金が発生する可能性があります。" + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "モバイルデータがOFFになっています。Wi-Fiネットワークに接続するか、モバイルデータをONにしてから再度お試しください。" + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "カメラで動画を撮影した後に、動画が表示されます。" + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "ファイル名は既に使用されています。" + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "%dアイテム​を​削除​しますか?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "プライバシー" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "9月" + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "10月" + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "11月" + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "5月" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "3月" + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "6月" + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "7月" + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "1月" + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "2月" + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "12月" + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "8月" + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "4月" + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "アルバム" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "その他" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "入力パラメータが無効です。" + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "入力されていません。" + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "同じ名前が既に使用されています。" + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "名前を変更できません。" + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "アルバムが選択されていません。" + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "アイテムを選択" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "アルバムはありません。" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "フォルダを作成しますか?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "やり直し​ます​か?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "削除しますか?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "%d件のアルバムを削除します。" + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1件のアルバムを削除します。" + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "カメラ" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "開始" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "設定" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "はい" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "いいえ" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "保存" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "削除しますか?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "アルバムに移動" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "アルバムにコピー" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "表示設定" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "名前を入力" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "このアカウントに関する全てのデータが削除されます。続行しますか?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "キャンセル" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "新規アルバム" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "元のアルバムからアイテムをコピーまたは移動しますか?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "共有" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "スライドショー" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "スライドショーを開始" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "スライドショーの設定" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "名前なし" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "全てのアルバム" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "アルバムを選択" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "1件のアイテムを削除します。" + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "全てのアイテム" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%dアイテム" + +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_MF_BODY_DOWNLOADS" +msgstr "ダウンロード" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "削除しますか?" + +msgid "IDS_MF_SK_MOVE" +msgstr "移動" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "削除中..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "操作に失敗しました。" + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "取り消し" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "選択" + +msgid "IDS_MF_POP_MOVED" +msgstr "移動しました。" + +msgid "IDS_MF_POP_COPIED" +msgstr "コピーしました。" + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "ファイルが選択されていません" + +msgid "IDS_CAM_SK_CLOSE" +msgstr "閉じる" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "並べ替え" + +msgid "IDS_CAM_POP_LATEST" +msgstr "最新" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "最も古い" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "作成" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "アイテムがありません。" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "画像を編集" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "画像を選択" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "このアイテムを削除しますか?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "風景" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "プライベートから削除" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "ペット" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "プライベートに移動" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "食べ物" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "花" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "ドキュメント" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "乗り物" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "最大文字数(%d文字)に達しました。" + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "画像を読み込めません。" + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "共有" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "次回から確認しない" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "最大文字数に達しました。" + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "時刻" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "失敗" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "削除しました。" + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "削除しますか?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "削除中..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "%d件のアイテムを表示" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "アルバムを作成" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "ギャラリー" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "もっと見る" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "アカウント" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "操作に失敗しました。" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "ダウンロード" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "検索" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "戻る" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "カメラ" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "全て" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "更新" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "削除" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Dropboxに画像をアップロードした後、アイテムが表示されます。" + +msgid "IDS_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "電話帳" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "作成" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "詳細" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "印刷" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "名前を変更" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "ダウンロードしました。" + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "ダウンロード中..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "名前を入力してください。" + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "マイファイル" + +msgid "IDS_MF_POP_ADDED" +msgstr "追加しました。" + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "処理中..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "未対応のファイルです。" + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "撮影した写真が表示されます。" + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "横画面モード" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "ドロワーを閉じるには、ダブルタップしてください。" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "ドロワーを表示するには、ダブルタップしてください。" + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "ドラッグ&ドロップ" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "ドロワー" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "モバイルデータが無効です。Wi-Fiネットワークに接続するか、モバイルデータを有効にして、再度実行してください。" + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Wi-Fi接続が必要です。Wi-Fiに接続し、再度お試しください。" + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "画像を追加" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "接続デバイス" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "プライベートコンテンツ" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "%sから削除" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "名前タグを削除" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "表示するイベントがありません。新しいイベントを作成してください。" + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "別の日付に素速くスクロールするには、画面の右上の日付インジケーターを長押ししてください。" + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "%d ​の​項目​を​削除​しますか​?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "このアイテムを削除しますか?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "ギャラリー" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "アイテムを削除" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "アイテムを削除" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1アイテム" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10秒" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5秒" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "指定なし" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "スライドショーの間隔" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "タグなし" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3秒" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "全てのコンテンツ" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "表示するコンテンツ" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "タグを削除" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "端末のコンテンツ" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Dropboxのコンテンツ" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Facebookのコンテンツ" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "左に回転" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "右に回転" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "インポート" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "インポートしました。" + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "インポート中..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "読み込み中..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "近くにデバイスが見つかりました。" + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "デバイスが見つかりませんでした。バックグラウンドで、近くのデバイスのスキャンを継続します。" + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "更新しました。" + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "回転中..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "スキャンを開始しました。デバイスリストが自動的に更新されます。" + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "ダウンロードを開始中..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "コピー" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "移動先" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "ショートカットの追加に失敗しました。" + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "メモリが不足しています。不要なアイテムを削除してください。" + +msgid "IDS_MF_POP_REMOVED" +msgstr "削除しました。" + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "追加中..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "%d件のアルバムを削除しますか?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "プライベートストレージ" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "ここにドラッグ" + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "新規" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "未分類" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "画面キャプチャ" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "画像" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "ダウンロードに失敗しました。" + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "未対応のファイルです。" + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 件の結果" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d 件の結果" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "お気に入り" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "ダウンロードを中止しました。" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "このアルバムを削除しますか?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "警告" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "並べ替え" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "今日" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "日付" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "表示するメールはありません。" + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "写真や動画を撮影するには、ここをタップしてください。" + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "共有可能なアイテムの最大数(%d件)に達しました。" + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "画像を追加してください。" + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "元のアルバムから選択したアイテムをコピーまたは移動しますか?" + +msgid "IDS_GALLERY_HEADER_SELECT" +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "全て選択" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d件選択" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "表示形式" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "日付(新しい順)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "日付(古い順)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "写真を撮影すると、写真がここに表示されます。" + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "キャンセル中..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "端末" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "Dropbox" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "Facebook" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "ダウンロードが完了しました。" + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "全てのアイテムを削除します。" + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "1件のアイテムをダウンロードします。" + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "%d件のアイテムをダウンロードします。" + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "全てのアイテムをダウンロードします。" + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "元のアルバムと同じアルバムを選択しています。別のアルバムを選択してください。" + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "画像を追加するには、ここをタップしてください" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "外部SDカードの空き容量が低下しています。[設定] > [電源とストレージ] > [ストレージ]に移動して不要なファイルを削除した後、再度実行してください。" + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "キャンセル" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "今後表示しない" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "ローミング中にモバイルデータを使用すると、データプランによっては追加料金が発生する可能性があります。" + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "%d件のアイテムを削除します。" + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "削除" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "昨日" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "ダウンロード" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "コピー" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "削除" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "アルバム" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "アイテムの最大数(%d件)に達しました。" + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "キャンセル" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "完了" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "キャンセル" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "削除" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "コピー中..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "移動中..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "パーソナルストレージのアイテムを含めてコンテンツを作成すると、新しいコンテンツは自動的に非表示にならない場合があります。選択したパーソナルコンテンツは、新しく作成したコンテンツを表示するときに表示できます。" + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "編集" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "設定" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "編集" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "並べ替え" + diff --git a/res/po/ka.po b/res/po/ka.po new file mode 100644 index 0000000..cbb24bd --- /dev/null +++ b/res/po/ka.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "თქვენი მოწყობილობა არ არის დაკავშირებული Wi-Fi ქსელთან. მობილურ ქსელთან დაკავშირებისთვის შეიძლება დაგერიცხოთ დამატებითი გადასახადი, თქვენი სატარიფო გეგმის შესაბამისად" + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "მობილურ მონაცემთა ქსელი გამორთულია. სანაცვლოდ, დაუკავშირდით Wi-Fi ქსელს, ან ჩართეთ მობილური მონაცემები და ისევ სცადეთ." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "როდესაც ჩაწერთ ვიდეოს კამერით, ისინი გამოჩნდება აქ." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "ფაილის სახელი უკვე გამოყენებულია" + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "წაშლით %d ელემენტს?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "პირადი" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "სექ." + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "ოქტ." + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "ნოე." + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "მაის" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "მარ." + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "ივნ." + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "ივლ." + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "იან." + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "თებ." + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "დეკ." + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "აგვ." + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "აპრ." + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "ალბომი" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "სხვა" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "შეყვანილი პარამეტრი არასწორია." + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "ცარიელი ჩანაწ." + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "იგივე სახელი უკვე გამოყენებულია." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "სახელს ვერ შეცვლით." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "ალბომი არ არის არჩეული." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "ელემენტის არჩევა" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "ალბომები არ არის" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "შექმნით საქაღალდეს?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "თავიდან ვცადო?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "წაიშალოს?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "%d ალბომი წაიშლება." + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 ალბომი წაიშლება." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "ფოტოაპარატი" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "დასაწყისი" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "პარამეტრები" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "დიახ" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "არა" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "კი" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "შენახვა" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "წაიშალოს?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "ალბომში გადატანა" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "კოპირება ალბომში" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "დათვალიერება პარამეტრით" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "სახელის შეყვანა" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "ამ ანგარიშთან დაკავშირებული ყველა მონაცემი წაიშლება. განაგრძობთ?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "გაუქმება" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "ახალი ალბომი" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "სურათების ასლის გადაწერა გსურთ თუ მათი გადატანა თავდაპირველი ალბომიდან?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "გაზიარება" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "სლაიდ–შოუ" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "სლაიდშოუს დაწყება" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "სლაიდ–შოუს პარამეტრები" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "უსახელო" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "ყველა ალბომი" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "ალბომის არჩევა" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "1 ელემენტი წაიშლება." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "ყველა ელემენტი" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d ელემენტი" + +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_MF_BODY_DOWNLOADS" +msgstr "გადმოწერილები" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "წაიშალოს?" + +msgid "IDS_MF_SK_MOVE" +msgstr "გადატანა" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "წაშლა..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "ოპერაცია ვერ შესრულდა." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "გაუქმდა" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "შერჩეული" + +msgid "IDS_MF_POP_MOVED" +msgstr "გადატანილია." + +msgid "IDS_MF_POP_COPIED" +msgstr "დაკოპირდა." + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "ფაილი არ არის არჩეული." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "დახურვა" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "დალაგება კრიტერიუმით" + +msgid "IDS_CAM_POP_LATEST" +msgstr "უახლესი" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "ყველაზე ძველი" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "შექმნა" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "ელემენტები არ არის" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "სურათის რედაქტირება" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "სურათის შერჩევა" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "წაიშალოს ეს?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "სცენარი" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "პერსონალურიდან წაშლა" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "საყვარელი ცხოველები" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "პერსონალურში გადატანა" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "საკვები" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "ყვავილები" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "დოკუმენტები" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "სატრანსპორტო საშუალებები" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "მიღწეულია სიმბოლოების მაქსიმალური რაოდენობა (%d)." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "ფოტოს ჩატვირთვა შეუძლებელია." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "გაზიარების მეთოდია" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "აღარ მკითხო" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "მიღწეულია სიმბოლოების მაქსიმალური რაოდენობა." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "დრო" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "არ შესრულდა" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "წაშლილია." + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "წაიშალოს?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "იშლება..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "ჩანს %d ელემენტი" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "ალბომის შექმნა" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "გალერეა" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "სხვა" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "ანგარიშები" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "ოპერაცია ვერ შესრულდა." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "ჩამოტვირთვა" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "ძიება" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "უკან" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "კამერა" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "ყველა" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "განახლება" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "წაშლა" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Dropbox-ზე სურათების ატვირთვის შემდეგ, გამოჩნდება ელემენტები." + +msgid "IDS_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "კონტაქტები" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "შექმნა" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "დეტალები" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "ამობეჭდვა" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "ხელახლა დასათაურება" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "ჩამოიტვირთა." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "ჩამოტვირთვა..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "ჩაწერეთ სახელი." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "ჩემი ფაილები" + +msgid "IDS_MF_POP_ADDED" +msgstr "დამატებულია." + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "მუშავდება..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "ფაილის ტიპი გაუთვალისწინებელია." + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "სურათების გადაღების შემდეგ, გამოჩნდება სურათები." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "პეიზაჟის რეჟიმი" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "შეეხეთ ორჯერ და უჯრებიანი მენიუ დაიხურება." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "შეეხეთ ორჯერ და უჯრებიანი მენიუ გაიხსნება." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "აიღეთ და გადაიტანეთ" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "კარადა" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "მობილური მონაცემები გამორთულია. სანაცვლოდ, დაუკავშირდით Wi-Fi ქსელს, ან გაააქტიურეთ მობილური მონაცემები და ისევ ცადეთ" + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "საჭიროა Wi-Fi კავშირი. დაუკავშირდით Wi-Fi ქსელს და ისევ ცადეთ" + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "სურათების დამატება ადგილიდან" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "დაკავშირებული მოწყობილობები" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "პერსონალური მასალა" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "%s-დან ამოშლა" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "სახელის იარლიყის წაშლა" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "მოვლენები არ არის, რომ გამოჩნდეს. შექმენით ახალი მოვლენა." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "სხვა დეტალებზე სწრაფად გადასვლისთვის, სწრაფად შეეხეთ თარიღის ინდიკატორს ეკრანის ზედა მარჯვენა მხარეს." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "მოცილდეს %d ელემენტი?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "წაიშალოს ეს?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "გალერეა" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "ელემენტის წაშლა" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "ელემენტების წაშლა" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 ელემენტი" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 წამი" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 წამი" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "არ არის მინიჭებული" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "სლაიდ–შოუს ინტერვალი" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "უიარლიყო" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 წამი" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "მთლიანი მასალა" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "ეკრანზე გამოსაჩენი მასალა" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "ჩანართის წაშლა" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "მოწყობილობის შიგთავსი" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Dropbox შიგთავსი" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Facebook შიგთავსი" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "მარცხნივ მოტრიალება" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "მარჯვნივ მოტრიალება" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "მიღება" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "გადმოტანილია." + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "ჩამოდის..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "იტვირთება..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "მოიძებნა ახლომდებარე მოწყობილობები." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "მოწყობილობები ვერ მოიძებნა. ახლომდებარე მოწყობილობების ძებნა გაგრძელდება ფონზე" + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "განახლდა." + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "ბრუნავს..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "ძებნა დაიწყო. მოწყობილობების სია ავტომატურად განახლდება" + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "იწყება ჩამოტვირთვა..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "დაკოპირდეს ადგილზე" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "გადატანა ადგილზე" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "ღილაკი ვერ დაემატა." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "მეხსიერება საკმარისი არაა. წაშალეთ ზოგიერთი ელემენტი" + +msgid "IDS_MF_POP_REMOVED" +msgstr "წაშლილია." + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "ემატება..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "წაიშალოს %d ალბომი?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "პირადი საცავი" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "გადაიტანეთ აქ." + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "ახალი" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "დაჯგუფება გაუქმდა" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "ეკრანის სურათები" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "ფოტოები" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "ვერ ჩამოიტვირთა." + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "ფაილი გაუთვალისწინებელია." + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 შედეგი" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d შედეგი" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "ფავორიტები" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "ჩამოტვირთვა შეწყდა." + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "წაიშალოს ეს ალბომი?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "გაფრთხილება" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "გადარჩევა" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "დღეს" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "თარიღი" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "საჩვენებელი ელემენტები არ არის." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "შეეხეთ აქ და გადაიღეთ სურათები ან ვიდეოები." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "გადაჭარბებულია ელემენტთა მაქსიმალური რაოდენობა (%d)." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "დააკაკუნეთ და დაამატეთ სურათები." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "დააკოპირებთ ან გადაიტანთ შერჩეულ ელემენტებს თავდაპირველი ალბომიდან?" + +msgid "IDS_GALLERY_HEADER_SELECT" +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "აირჩიეთ ყველა" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d არჩეულია" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "ნახეთ როგორც" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "თარიღი (უახლესი)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "თარიღი (ყველაზე ძველი)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "სურათების გადაღების შემდეგ, ისინი გამოჩნდება აქ." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "უქმდება..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "მოწყობილობიდან" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "Dropbox-დან" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "Facebook-იდან" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "ჩამოტვირთვა დასრულდა." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "ყველა ელემენტი წაიშლება." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "ჩამოიტვირთება 1 ელემენტი." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "ჩამოიტვირთება %d ელემენტი." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "ჩამოიტვირთება ყველა ელემენტი." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "შერჩეული ალბომი იგივეა, რას საწყისი ალბომი. აირჩიეთ სხვა ალბომი." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "შეეხეთ აქ და დაამატეთ სურათები" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "SD ბარათზე არ არის საკმარისი ადგილი. გახსენით პარამეტრები > ენერგია და საცავი > მეხსიერება და წაშალეთ ზოგიერთი ფაილი, შემდეგ კი ისევ სცადეთ." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "გაუქმება" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "აღარ მაჩვენო" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "შესაძლოა, როუმინგში მობილურ მონაცემთა გამოყენებისთვის დაგერიცხოთ დამატებითი გადასახადი, თქვენი სატარიფო გეგმის მიხედვით." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "%d ელემენტი წაიშლება." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "წაშლა" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "გუშინ" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "ჩამოტვირთვები" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "ასლი" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "წაშლა" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "ალბომები" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "გადაჭარბებულია ელემენტების მაქსიმალური რაოდენობა (%d)." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "გაუქმება" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "მზადაა" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "გაუქმება" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "წაშლა" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "კოპირდება..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "გადატანა..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "თუ შექმნით პერსონალური საცავიდან აღებული ინფორმაციის შემცველ მასალას, თქვენი ახალი ინფორმაცია შეიძლება არ დაიმალოს ავტომატურად. შერჩეული პერსონალური ინფორმაცია შეიძლება გამოჩნდეს ახალი მასალის დათვალიერების დროს." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "შესწორება" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "პარამეტრები" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "შეცვლა" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "გადალაგება" + diff --git a/res/po/kk.po b/res/po/kk.po new file mode 100644 index 0000000..a2de404 --- /dev/null +++ b/res/po/kk.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Құрылғыңыз Wi-Fi желісіне қосылмаған. Ұялы байланыс желісіне қосылу үшін төлем жоспарына байланысты қосымша ақы төлеуіңіз мүмкін" + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Ұялы деректер өшірілді. Оның орнына Wi-Fi желісіне қосылыңыз немесе ұялы деректерді қосып, әрекетті қайталаңыз." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "Камераның көмегімен бейнелер жазып алғаннан кейін олар мына жерде көрсетіледі." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Файл атауы бұрыннан пайдаланылуда" + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "%d элементерін жою керек пе?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Құпия" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Қыр." + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Қаз." + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Қар." + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "Мам." + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Нау." + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Мау." + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Шіл." + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Қаң." + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Ақп." + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Жел." + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Там." + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Сәу." + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Альбом" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Басқалар" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Жарамсыз енгізу өлшемі." + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Енгізбе бос." + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "Мұндай атау қолданыста бар." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Атын өзгерту мүмкін емес." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Альбомдар таңдалмады." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Элемент таңдау" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Альбомдар жоқ" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Қалта құрасыз ба?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Қайталау керек пе?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Жоясыз ба?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "%d альбом жойылады." + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 альбом жойылады." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Камера" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Бастау" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Қондырғылар" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Иә" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "Жоқ" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Сақтау" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Өшіресіз бе?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Альбомға жылжыту" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Альбомға көшіру" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Көру тәртібі" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Атын енгізіңіз" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Бұл есептік жазбаға қатысты барлық деректер жойылады. Жалғастыру керек пе?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Бас тарту" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Жаңа альбом" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Суреттерді түпнұсқалық альбомнан көшіру не жылжыту керек пе?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Байланысқа жол" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Слайдшоу" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Слайдшоуды бастау" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Слайдшоу параметрлері" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Ондай есім жоқ" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Барлық альбомдар" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Альбом таңдау" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "1 элемент жойылады." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Барлық элементтер" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d элементтер" + +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_MF_BODY_DOWNLOADS" +msgstr "Жазылған" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Өшіресіз бе?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Ауыстыру" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Жойылуда..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Әрекет сәтсіз аяқталды." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Болдырылмады" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Таңдалған" + +msgid "IDS_MF_POP_MOVED" +msgstr "Орналастырылды." + +msgid "IDS_MF_POP_COPIED" +msgstr "Хабар(лар) көшірілді" + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "Файлдар таңдалмаған." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Жабу" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Сұрыптау" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Ең соңғы" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Ең ескі" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Жасау" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Баптар жоқ" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Суретті өңдеу" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Суретті таңдау" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Бұл элементті жою керек пе?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Көрініс" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Жеке қалтадан жою" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Үй жануарлары" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Жеке қалтаға көшіру" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Тамақ" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Гүлдер" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Құжаттар" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Көліктер" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Ең көп таңбалар санына (%d) жетті." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Фотосуретті жүктеу мүмкін емес." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Бөлісу" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Қайтадан сұрамаңыз" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Таңбалардың ен көп саны артты." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Уақыт" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Сәтсіз болды" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Жойылды" + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Өшіресіз бе?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Шығаруда..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "%d элементті көрсету" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Альбом жасау" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Галерея" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Басқа" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Есептік жазбалар" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Әрекет сәтсіз аяқталды." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Жүктеу" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Іздеу" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Артқа" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Камера" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Барлығы" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Жаңарту" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Алып тастау" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Суреттерді Dropbox бағдарламасына кері жүктегеннен кейін элементтер көрсетіледі." + +msgid "IDS_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Контактілер" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Құру" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Өзгешеліктері" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Басып шығару" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Атын өзгерту" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Жазылды." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Жазылуда..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Атын енгізіңіз." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Менің файлдарым" + +msgid "IDS_MF_POP_ADDED" +msgstr "Қосылды" + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Өңделуде..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Қолдаусыз файл түрі." + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "Суретке түсірген соң, суреттер көрсетіледі." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Альбом режимі" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Тартпа мәзірін жабу үшін екі рет түртіңіз." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Тартпа мәзірін ашу үшін екі рет түртіңіз." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Сүйретіп апару" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Тартпа" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Ұялы деректер өшірілді. Оның орнына Wi-Fi желісіне қосылыңыз немесе ұялы деректерді қосыңыз, сосын әрекетті қайталап көріңіз" + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Wi-Fi желісіне қосылу қажет етіледі. Wi-Fi желісіне қосылып, қайталап көріңіз" + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Келесіден суреттер қосу" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Қосылған құрылғылар" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Жеке мазмұн" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "%s ішінен жою" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Атау тегін жою" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "Көрсетілетін оқиғалар жоқ. Жаңа оқиға жасау." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "Басқа күндерге жылдам өту үшін, экранның жоғарғы жағындағы күн индикаторын басып ұстап тұрыңыз." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "%d элементті жою керек пе?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Осы элементті жою керек пе?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Галерея" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Элементті жою" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Элементтерді жою" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 элемент" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 секунд" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 секунд" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Қойылған жоқ" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Слайдшоу аралығы" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Белгіленбеген" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 секунд" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Барлық мазмұн" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Көрсетілетін мазмұн" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Белгіні жою" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Құрылғы мазмұны" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Dropbox мазмұны" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Facebook мазмұны" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Солға бұру" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Оңға бұру" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Импорт" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Импортталған" + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Тасымалдануда..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Жазылуда..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Жақын құрылғылар табылды." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "Құрылғылар табылмады. Жақын құрылғыларды тексеру фонда жалғасады" + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Жаңартылған" + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Бұруда..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Іздеу басталды. Құрылғылар тізімі автоматты түрде жаңартылады" + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Жүктеу басталуда..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Көшіру" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Орналастыру" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Белгіше қосылмады." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Жад жетыспейт.Көп арналы жою." + +msgid "IDS_MF_POP_REMOVED" +msgstr "Жойылған" + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Қосылуда..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "%d альбомды жою керек пе?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Жеке сақтау орны" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Осында сүйрету." + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Жаңа" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Топтастырылмаған" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Скриншоттар" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Фотосуреттер" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Көшіру сәтсіз." + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Қолдаусыз файл." + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 нәтиже" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d нәтиже" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Сүйікті" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Жазу тоқтатылды" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Бұл альбомды жою керек пе?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Ескерту" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Бойынша сұрыптау" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Бүгін" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Күні" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "Көрсетілетін элементтер жоқ." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Суреттерді не бейнелерді түсіру үшін осында түртіңіз." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Ең көп бөлісуге болатын элементтер санынан (%d) асып кетті." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Суреттер қосу үшін түртіңіз." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Таңдалған элементтерді түпнұсқалық альбомнан көшіру немесе жылжыту керек пе?" + +msgid "IDS_GALLERY_HEADER_SELECT" +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Барлығын таңдау" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d таңдалды" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Басқаша көру" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Күні (ең соңғы)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Күні (алдыңғы)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "Суретке түсіргеннен кейін олар мына жерде көрсетіледі." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Бас тартылуда..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "Құрылғыдан" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "Dropbox қызметінен" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "Facebook сайтынан" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Жазылу аяқталды" + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Барлық элементтер жойылады." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "1 элемент жүктеледі." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "%d элемент жүктеледі." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Барлық элементтер жүктеледі." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "Таңдалған альбом бастапқы альбоммен бірдей. Басқа альбомды таңдаңыз." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Суреттер қосу үшін осында түрту" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "SD картасында бос орын жеткіліксіз. Параметрлер > Қуат пен сақтау орны > Сақтау орны бөліміне өтіп, кейбір файлдарды жойыңыз және әрекетті қайталаңыз." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "Бас тарту" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Қайтадан көрсетпеу" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Роуминг кезінде ұялы деректерді пайдалану төлем жоспарыңызға байланысты қосымша ақы алуы мүмкін." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "%d элемент жойылады." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Жою" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Кеше" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Жүктеулер" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Көшіру" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Жою" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Альбомдар" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "Элементтердің ең көп санынан (%d) асып кетті." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Тоқтату" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "ДАЙЫН" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "БАС ТАРТУ" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "ЖОЮ" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Көшірілуде..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Орналастырылды" + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Жеке қоймадағы элементтерді қамтитын мазмұнды жасасаңыз, ол автоматты түрде жасырылмауы мүмкін. Жаңа мазмұнды көру кезінде таңдалған жеке мазмұн көрсетілуі мүмкін." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "ӨЗГЕРТУ" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Параметрлер" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "ӨҢДЕУ" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Қайта тапсырыс беру" + diff --git a/res/po/ko_KR.po b/res/po/ko_KR.po new file mode 100644 index 0000000..b1d905d --- /dev/null +++ b/res/po/ko_KR.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "디바이스가 Wi-Fi 네트워크에 연결되지 않았습니다. 모바일 네트워크에 연결하면 요금제에 따라 추가요금이 부과될 수 있습니다." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "[모바일 데이터]가 해제된 상태입니다. Wi-Fi 네트워크에 연결하거나, [모바일 데이터]를 실행한 후 다시 시도하세요." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "카메라를 사용하여 동영상을 촬영하면 동영상이 여기에 표시됩니다." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "사용 중인 파일 이름입니다." + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "%d개를 삭제할까요?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "개인정보 보호" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "9월" + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "10월" + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "11월" + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "5월" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "3월" + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "6월" + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "7월" + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "1월" + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "2월" + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "12월" + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "8월" + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "4월" + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "앨범" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "더보기" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "입력값이 바르지 않습니다." + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "입력된 내용이 없습니다." + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "사용 중인 이름입니다." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "이름을 변경할 수 없습니다." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "선택한 앨범이 없습니다." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "항목 선택" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "앨범이 없습니다" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "새 폴더를 추가할까요?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "다시 시도할까요?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "제거할까요?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "앨범 %d개를 삭제합니다." + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "앨범 1개를 삭제합니다." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "카메라" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "시작" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "설정" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "예" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "아니요" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "확인" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "저장" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "삭제할까요?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "앨범으로 이동" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "앨범에 복사" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "보기 방식" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "이름 입력" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "이 계정과 관련된 모든 데이터를 삭제합니다. 계속할까요?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "취소" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "새 앨범" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "원래 앨범에서 사진을 복사하거나 이동할까요?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "공유" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "슬라이드쇼" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "슬라이드쇼 시작" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "슬라이드쇼 설정" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "이름이 없습니다" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "모든 앨범" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "앨범 선택" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "항목 1개를 삭제합니다." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "모든 항목" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d개" + +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_MF_BODY_DOWNLOADS" +msgstr "다운로드" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "삭제할까요?" + +msgid "IDS_MF_SK_MOVE" +msgstr "이동" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "삭제 중..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "작업을 수행하지 못하였습니다." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "취소됨" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "이 항목만" + +msgid "IDS_MF_POP_MOVED" +msgstr "이동하였습니다." + +msgid "IDS_MF_POP_COPIED" +msgstr "복사하였습니다." + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "선택한 파일이 없습니다." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "닫기" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "정렬 방식" + +msgid "IDS_CAM_POP_LATEST" +msgstr "최신 위젯" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "오래된 순" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "추가" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "항목이 없습니다" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "이미지 편집" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "사진 선택" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "이 항목을 삭제할까요?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "풍경" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "프라이빗에서 제거" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "애완동물" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "프라이빗으로 이동" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "음식" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "꽃" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "문서" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "이동수단" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "최대 글자 수(%d)에 도달하였습니다." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "사진을 불러올 수 없습니다." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "공유" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "다시 묻지 않기" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "최대 글자 수에 도달하였습니다." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "시간" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "완료 안 됨" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "삭제하였습니다." + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "삭제할까요?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "제거 중..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "항목 %d개 표시" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "앨범 추가" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "갤러리" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "더보기" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "계정" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "작업을 수행하지 못하였습니다." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "다운로드" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "검색" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "뒤로가기" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "카메라" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "전체" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "새로고침" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "제거" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "사진을 Dropbox에 업로드하면 사진이 표시됩니다." + +msgid "IDS_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "연락처" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "추가" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "상세정보" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "인쇄" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "이름 변경" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "다운로드하였습니다." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "다운로드 중..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "이름을 입력하세요." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "내 파일" + +msgid "IDS_MF_POP_ADDED" +msgstr "추가하였습니다." + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "진행 중..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "지원되지 않는 파일 형식입니다." + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "사진을 촬영하면 사진이 표시됩니다." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "가로 모드" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "서랍 메뉴를 닫으려면 두 번 누르세요." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "서랍 메뉴를 열려면 두 번 누르세요." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "끌어다 놓기" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "서랍 메뉴" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "[모바일 데이터]를 해제하였습니다. Wi-Fi 네트워크에 연결하거나 [모바일 데이터]를 실행한 후 다시 시도하세요." + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Wi-Fi 연결이 필요합니다. Wi-Fi 네트워크에 연결한 후 다시 시도하세요." + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "사진 추가" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "연결된 디바이스" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "프라이빗 컨텐츠" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "%s에서 제거" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "이름 태그 제거" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "표시할 이벤트가 없습니다. 새 이벤트를 추가하세요." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "다른 날짜로 빠르게 이동하려면 화면 상단 오른쪽에 있는 날짜 표시막대를 길게 누르세요." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "항목 %d개를 제거할까요?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "이 항목을 제거할까요?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "갤러리" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "항목 삭제" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "항목 삭제" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1개" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10초" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5초" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "지정 안 함" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "슬라이드쇼 간격" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "태그 없음" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3초" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "모든 컨텐츠" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "표시할 컨텐츠" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "태그 삭제" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "디바이스 컨텐츠" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Dropbox 컨텐츠" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Facebook 컨텐츠" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "왼쪽으로 회전" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "오른쪽으로 회전" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "가져오기" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "가져오기를 완료하였습니다." + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "가져오는 중..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "불러오는 중..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "주변 디바이스를 찾았습니다." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "디바이스를 찾을 수 없습니다. 백그라운드에서 계속해서 주변 디바이스를 찾습니다." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "새로고침하였습니다." + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "회전 중..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "찾는 중입니다. 디바이스 목록은 자동 업데이트합니다." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "다운로드를 시작하는 중..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "복사 위치" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "이동 위치" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "바로가기를 추가하지 못하였습니다." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "저장공간이 부족합니다. 일부 항목을 삭제하세요." + +msgid "IDS_MF_POP_REMOVED" +msgstr "제거하였습니다." + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "추가 중..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "앨범 %d개를 삭제할까요?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "개인 저장공간" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "여기로 이동하세요." + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "New" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "분류 안 됨" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "스크린샷" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "사진" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "다운로드하지 못하였습니다." + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "지원되지 않는 파일입니다." + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "검색 결과 1개" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "검색 결과 %d개" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "즐겨찾기" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "다운로드를 취소하였습니다." + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "이 앨범을 삭제할까요?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "경고" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "정렬 방식" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "오늘" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "날짜" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "표시할 항목이 없습니다." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "사진 또는 동영상을 촬영하려면 여기를 누르세요." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "공유 가능한 최대 항목 수(%d)를 초과하였습니다." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "이미지를 추가하려면 누르세요." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "원래 앨범에서 선택한 항목을 복사하거나 이동할까요?" + +msgid "IDS_GALLERY_HEADER_SELECT" +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "모두 선택" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d개 선택" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "보기 방식" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "날짜(최근 순)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "날짜(오래된 순)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "사진을 촬영하면 사진이 여기에 표시됩니다." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "취소 중..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "디바이스" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "Dropbox" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "Facebook" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "다운로드를 완료하였습니다." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "항목을 모두 삭제합니다." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "항목 1개를 다운로드합니다." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "항목 %d개를 다운로드합니다." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "모든 항목을 다운로드합니다." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "출처가 동일한 앨범을 선택하였습니다. 다른 앨범을 선택하세요." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "이미지를 추가하려면 여기를 누르세요" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "SD 카드에 저장공간이 부족합니다. [설정] > [전원 및 저장공간] > [저장공간]에서 일부 파일을 삭제한 후 다시 시도하세요." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "취소" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "다시 보지 않기" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "로밍 중에 모바일 데이터를 사용하면 데이터 요금제에 따라 추가요금이 부과될 수 있습니다." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "항목 %d개를 삭제합니다." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "삭제" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "어제" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "다운로드" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "복사" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "삭제" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "앨범" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "최대 항목 수(%d)를 초과하였습니다." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "취소" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "완료" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "취소" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "삭제" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "복사 중..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "이동 중..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "퍼스널 저장공간의 항목이 포함된 컨텐츠를 추가하면, 추가한 컨텐츠는 자동으로 숨겨지지 않습니다. 새로 만든 컨텐츠를 볼 때 그 속에 포함된 개인 컨텐츠가 함께 표시될 수 있습니다." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "편집" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "설정" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "편집" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "순서 변경" + diff --git a/res/po/lt.po b/res/po/lt.po new file mode 100644 index 0000000..d96c1f0 --- /dev/null +++ b/res/po/lt.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Jūsų įrenginys neprijungtas prie „Wi-Fi“ tinklo. Prisijungus prie mobiliojo tinklo gali būti taikomi papildomi mokesčiai – tai priklauso nuo mokėjimo plano." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobilieji duomenys išjungti. Vietoj to prisijunkite prie „Wi-Fi“ tinklo arba įjunkite mobiliuosius duomenis ir bandykite dar kartą." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "Kai fotoaparatu įrašysite vaizdo įrašų, jie bus rodomi čia." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Failo pavadinimas jau naudojamas" + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "Ištrinti %d elementus?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Privatumas" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Rug." + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Spa." + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Lap." + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "Geg." + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Kov." + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Bir." + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Lie." + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Sau." + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Vas." + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Gru." + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Rgp." + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Bal." + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Albumas" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Daugiau" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Netinkami įvestų duomenų nustatymai." + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Įrašas tuščias." + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "Toks pavadinimas jau yra." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Neįmanoma pervardinti." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Nėra pasirinktų albumų." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Pasirinkti elementą" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Albumų nėra" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Ar kurti aplanką?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Bandyti dar kartą?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Ar šalinti?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "Bus ištrinta albumų: %d." + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 albumas bus ištrintas." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Fotoapar." + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Paleisti" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Nustatymai" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Taip" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "Ne" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "Gerai" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Išsaugoti" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Ar trinti?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Perkelti į albumą" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Kopijuoti į albumą" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Peržiūrėti pagal" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Įvesti pavadinimą" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Bus ištrinti visi su šia paskyra susiję duomenys. Tęsti?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Atšaukti" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Naujas albumas" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Ar norite kopijuoti arba pašalinti nuotraukas iš pradinio albumo?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Dalytis" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Skaidrių rodymas" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Pradėti skaidrių rodymą" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Skaidrių rodymo nustatymai" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Nėra vardo" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Visi albumai" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Pasirinkti albumą" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "1 elementas bus ištrintas." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Visi elementai" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d element." + +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_MF_BODY_DOWNLOADS" +msgstr "Atsisiųsti elem." + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Ar trinti?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Perkelti" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Trinama..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Veiksmas nepavyko." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Atšaukta" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Pasirinkta" + +msgid "IDS_MF_POP_MOVED" +msgstr "Perkelta." + +msgid "IDS_MF_POP_COPIED" +msgstr "Nukopijuota." + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "Nepasirinktas joks failas." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Uždaryti" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Rūšiuoti pagal" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Paskutinis" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Seniausios" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Kurti" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Elementų nėra" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Redaguoti atvaizdą" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Pasirinkti paveikslėlį" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Trinti šį elementą?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Peizažas" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Pašalinti iš privataus" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Augintiniai" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Perkelti į asmeninį" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Maistas" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Gėlės" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Dokumentai" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Transporto priemonės" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Pasiektas didžiausias simbolių skaičius (%d)." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Neįmanoma įkelti nuotraukos." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Bendrinti per" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Daugiau neklausti" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Pasiektas didžiausias simbolių skaičius." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Laikas" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Nepavyko" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Ištrinta." + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Ar trinti?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Šalinama..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "Rodoma elementų: %d" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Kurti albumą" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Galerija" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Daug." + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Paskyros" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Veiksmas nepavyko." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Atsisiųsti" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Ieškoti" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Atgal" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Fotoaparatas" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Visos" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Atnaujinti" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Šalinti" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Įkėlus nuotraukas į „Dropbox“, bus rodomi elementai." + +msgid "IDS_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Adresatai" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Kurti" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Išsami informacija" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Spausdinti" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Pervardyti" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Atsisiųsta." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Atsisiunčiama..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Įvesti vardą." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Mano failai" + +msgid "IDS_MF_POP_ADDED" +msgstr "Pridėta." + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Apdorojama..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Nepalaikomas failo tipas." + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "Padarytos nuotraukos bus rodomos." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Kraštovaizdžio režimas" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Bakstelėkite dukart, kad uždarytumėte stalčiaus meniu." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Bakstelėkite dukart, kad atidarytumėte stalčiaus meniu." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Vilkti" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Stalčius" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobiliojo telefono duomenys išjungti. Vietoj to prisijunkite prie „Wi-Fi“ tinklo arba įjunkite mobiliojo telefono duomenis ir pabandykite dar kartą" + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Reikia „Wi-Fi“ ryšio. Prisijunkite prie „ Wi-Fi“ ryšio ir pabandykite dar kartą" + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Pridėti nuotraukų iš" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Prijungti įrenginiai" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Asmeninis turinys" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Pašalinti iš %s" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Pašalinti vardo žymą" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "Nėra rodytinų įvykių. Sukurkite naują įvykį." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "Jei norite greitai pereiti prie kitų datų, ekrano viršutinėje dešiniojoje pusėje bakstelėkite ir palaikykite datos indikatorių." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "Šalinti %d elementus (-ų)?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Pašalinti šį elementą?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Galerija" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +msgstr "Sumaišytos nuotraukos" + +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Ištrinti elementą" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Trinti elementus" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 elementas" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 sekundžių" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 sekundės" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Nepriskirti" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Skaidrių rodymo intervalas" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Nepažymėta" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 sekundės" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Visas turinys" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Rodytinas turinys" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Ištrinti žymę" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Įrenginio turinys" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "„Dropbox“ turinys" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "„Facebook“ turinys" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Sukti į kairę" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Sukti į dešinę" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Importuoti" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Importuotieji." + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Importuojama..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Įkeliama..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Aptikti netoliese esantys įrenginiai." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "Įrenginių nerasta. Netoliese esančių įrenginių paieška bus tęsiama fone." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Atnaujinta." + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Sukama..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Paieška pradėta. Įrenginių sąrašas bus atnaujintas automatiškai." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Pradeda siųsti..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Kopijuoti į" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Perkelti į" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Nepavyko pridėti trumpinio." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Nepakanka atminties. Ištrinkite kai kuriuos elementus" + +msgid "IDS_MF_POP_REMOVED" +msgstr "Pašalinta." + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Pridedama..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "Trinti %d albumus (-ų)?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Privati saugykla" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Vilkti čia." + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Nauja" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Išgrupuota" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Ekrano nuotraukos" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Nuotraukos" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Atsisiųsti nepavyko." + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Nepalaikomas failas." + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 rezultatas" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d rezultatai (-ų)" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Parankiniai" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Atsisiuntimas atšauktas." + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Trinti šį albumą?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Įspėjimas" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Rūšiuoti pagal" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Šiandien" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Data" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "Nėra rodytinų elementų." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Bakstelėkite čia ir fotografuokite arba įrašykite vaizdus." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Viršytas didžiausias bendrintinų elementų skaičius (%d)." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Bakstelėkite ir pridėkite vaizdų." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Kopijuoti arba perkelti pasirinktus elementus iš pradinio albumo?" + +msgid "IDS_GALLERY_HEADER_SELECT" +msgstr "Pasirinkti" + +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Pasirinkti viską" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "Pasirinkta: %d" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Peržiūrėti kaip" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Data (naujausi)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Data (seniausi)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "Užfiksavus nuotraukas jos bus rodomos čia." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Atšaukiama..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "Iš įrenginio" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "Iš „Dropbox“" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "Iš „Facebook“" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Atsisiųsta." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Bus ištrinti visi elementai." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "Bus atsiųstas 1 elementas." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Bus atsiųsta elementų: %d." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Bus atsiųsti visi elementai." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "Pasirinktas albumas toks pat kaip šaltinio albumas. Pasirinkite kitą albumą." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Bakstelėkite čia ir pridėkite vaizdų" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +msgstr "Negalima išsaug. duomenų" + +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Jūsų SD kortelėje nepakanka vietos. Eikite į skirtuką Nustatymai > Maitinimas ir saugykla > Saugykla, tada ištrinkite kelis failus ir bandykite dar kartą." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "Atšaukti" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Neberodyti" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Naudojant mobiliuosius duomenis tarptinkliniu ryšiu gali būti taikomi papildomi mokesčiai – tai priklauso nuo mokėjimo plano." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "Bus ištrinta elementų: %d." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Trinti" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Vakar" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Atsisiuntimai" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Kopijuoti" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Trinti" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Albumai" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "Viršytas didžiausias elementų skaičius (%d)." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Atšaukti" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "ATLIKTA" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ATŠAUKTI" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "IŠTRINTI" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Kopijuojama..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Perkeliama..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Jei sukursite turinį, kuriame naudojami elementai iš asmeninės saugyklos, turinys gali būti neslepiamas automatiškai. Pasirinktą asmeninį turinį galima pamatyti, kai peržiūrimas naujas turinys." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "REDAGUOTI" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Nustatymai" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "REDAG." + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Pertvarkyti" + diff --git a/res/po/lv.po b/res/po/lv.po new file mode 100644 index 0000000..2759f7e --- /dev/null +++ b/res/po/lv.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Ierīce nav savienota ar Wi-Fi tīklu. Savienojuma izveide ar mobilo sakaru tīklu var radīt papildu izmaksas atkarībā no jūsu tarifu plāna." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_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_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "Kad būsit ierakstījis videoklipus, izmantojot kameru, tie būs redzami šeit." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Faila nosaukums jau tiek lietots" + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "Vai izdzēst %d objektus?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Konfidencialitāte" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Sep" + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Okt" + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Nov" + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "Mai." + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Mar" + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Jūn" + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Jūl" + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Jan" + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Feb" + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Dec" + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Aug" + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Apr" + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Albums" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Citi" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Nederīgs ievades parametrs." + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Ieraksts nav norādīts." + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "Šāds nosaukums jau tiek lietots." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Nevar pārdēvēt." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Nav izvēlēts neviens albums." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Izvēlieties vienumu" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Nav albumu" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Vai izveidot mapi?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Vai mēģināt vēlreiz?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Vai noņemt?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "Tiks izdzēsti %d albumi." + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "Tiks izdzēsts 1 albums." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Kamera" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Sākt" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Iestatījumi" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Jā" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "Nē" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "Labi" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Saglabāt" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Vai dzēst?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Pārvietot uz albumu" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Kopēt albumā" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Skatīt pēc" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Ievadiet nosaukumu" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Visi ar šo kontu saistītie dati tiks izdzēsti. Vai turpināt?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Atcelt" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Jauns albums" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Vai vēlaties kopēt vai pārvietot attēlus no oriģinālā albuma?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Koplietot" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Slaidrāde" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Sākt slaidrādi" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Slaidrādes iestatījumi" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Nav vārda" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Visi albumi" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Izvēlēties albumu" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "Tiks izdzēsts 1 objekts." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Visi objekti" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d objekti" + +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_MF_BODY_DOWNLOADS" +msgstr "Lejupielādes" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Vai dzēst?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Pārvietot" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Dzēš..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Darbība neizdevās." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Atcelti" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Izvēlēts" + +msgid "IDS_MF_POP_MOVED" +msgstr "Pārvietots." + +msgid "IDS_MF_POP_COPIED" +msgstr "Nokopēts." + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "Nav izvēlētu failu." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Aizvērt" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Kārtot pēc" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Jaunākie" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Vecākie" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Izveidot" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Nav vienumu" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Rediģēt attēlu" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Atlasīt attēlu" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Vai izdzēst šo objektu?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Ainava" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Noņemt no mapes Privāti" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Mājdzīvnieki" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Pārvietot uz privāto krātuvi" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Ēdiens" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Ziedi" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Dokumenti" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Transportlīdzekļi" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Sasniegts maksimālais rakstzīmju skaits (%d)." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Nevar ielādēt fotoattēlu." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Koplietot, izmantojot" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Vairs nejautāt" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Sasniegts maksimālais rakstzīmju skaits." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Laiks" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Neizdevās" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Izdzēsts." + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Vai dzēst?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Noņem..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "Rāda %d objektus" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Izveidot albumu" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Galerija" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Vēl" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Konti" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Darbība neizdevās." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Lejupielāde" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Meklēt" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Atpakaļ" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Kamera" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Visas" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Atsvaidzināt" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Noņemt" + +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_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Kontakti" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Izveidot" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Dati" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Drukāt" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Pārdēvēt" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Lejupielādēts." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Ielādē..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Ievadiet vārdu." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Mani Faili" + +msgid "IDS_MF_POP_ADDED" +msgstr "Pievienots." + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Notiek apstrāde..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Neatbalstīts faila veids." + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "Pēc attēlu uzņemšanas tie tiks parādīti." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Ainavas režīms" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Lai aizvērtu nolaižamo izvēlni, veiciet dubultskārienu." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Lai atvērtu nolaižamo izvēlni, veiciet dubultskārienu." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Vilkt un nomest" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Izvēlne" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobilie dati ir deaktivizēti. Tā vietā izveidojiet savienojumu ar Wi-Fi tīklu vai aktivizējiet mobilos datus un mēģiniet vēlreiz" + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Nepieciešams Wi-Fi savienojums. Izveidojiet savienojumu ar Wi-Fi tīklu un mēģiniet vēlreiz" + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Pievienot attēlus no" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Pievienotās ierīces" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Privāts saturs" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Noņemt no %s" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Noņemt vārda atzīmi" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "Nav notikumu, ko parādīt. Izveidojiet jaunu notikumu." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "Lai ātri ritinātu datumus, pieskarieties pie datuma rādītāja ekrāna augšējā labajā pusē un turiet." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "Vai noņemt %d objektus?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Vai noņemt šo objektu?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Galerija" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +msgstr "Attēli jauktā secībā" + +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Dzēst objektu" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Dzēst objektus" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 objekts" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 sekundes" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 sekundes" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Nav piešķirta" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Slaidrādes intervāls" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Neatzīmēts" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 sekundes" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Viss saturs" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Rādāmais saturs" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Dzēst atzīmi" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Ierīces saturs" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Dropbox saturs" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Facebook saturs" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Pagriezt pa kreisi" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Pagriezt pa labi" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Importēt" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Importētas." + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Importē..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Ielādē..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Tuvumā atrastās ierīces." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "Nav atrasta neviena ierīce. Tuvumā esošo ierīču meklēšana tiks turpināta fonā." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Atjaunots." + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Notiek pagriešana..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Ir sākta meklēšana. Ierīču saraksts tiks atjaunināts automātiski." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Sāk lejupielādi..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Kopēt uz" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Pārvietot uz" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Neizdevās pievienot īsceļu." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Nepietiek atmiņas. Izdzēsiet dažus vienumus" + +msgid "IDS_MF_POP_REMOVED" +msgstr "Noņemts." + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Pievieno..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "Vai izdzēst %d albumus?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Privātā krātuve" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Velciet šeit." + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Jauna" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Negrupētie" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Ekrānuzņēmumi" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Fotoattēli" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Lejupielāde neizdevās." + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Neatbalstīts fails." + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 rezultāts" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d rezultāti" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Izlases" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Lejupielāde atcelta." + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Vai izdzēst šo albumu?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Brīdinājums" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Kārtot pēc" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Šodien" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Datums" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "Nav objektu, ko parādīt." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Pieskarieties šeit, lai uzņemtu attēlus vai videoklipus." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Pārsniegts maksimālais kopīgojamo objektu skaits (%d)." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Pieskarieties, lai pievienotu attēlus." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Vai vēlaties kopēt vai pārvietot objektus no sākotnējā albuma?" + +msgid "IDS_GALLERY_HEADER_SELECT" +msgstr "Izvēlēties" + +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Izvēlēties visu" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "Izvēlēts: %d" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Skatīt kā" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Datums (jaunākais)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Datums (vecākais)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "Pēc attēlu uzņemšanas tie tiks parādīti šeit." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Atceļ..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "No ierīces" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "No Dropbox" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "No Facebook" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Lejupielāde pabeigta." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Visi objekti tiks izdzēsti." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "Tiks lejupielādēts 1 objekts." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Tiks lejupielādēti %d objekti." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Tiks lejupielādēti visi objekti." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "Izvēlētais albums ir avota albums. Izvēlieties citu albumu." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Pieskarieties šeit, lai pievienotu attēlus" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +msgstr "Nevar saglabāt datus" + +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "SD kartē nepietiek vietas. Atveriet Iestatījumi > Enerģija un krātuve > Krātuve, izdzēsiet dažus failus un mēģiniet vēlreiz." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "Atcelt" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Vairs nerādīt" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Mobilo datu lietošana viesabonēšanas laikā var radīt papildu izmaksas atkarībā no jūsu tarifu plāna." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "Tiks izdzēsti %d objekti." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Dzēst" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Vakar" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Lejupielādes" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Kopēt" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Dzēst" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Albumi" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "Pārsniegts maksimālais objektu skaits (%d)." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Atcelt" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "GATAVS" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ATCELT" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "DZĒST" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Kopē..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Pārvieto..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Ja izveidosit saturu, kas ietver objektus no privātās krātuves, tas iespējams, netiks automātiski paslēpts. Skatot jauno saturu, var būt redzams izvēlētais personiskais saturs." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "REDIĢĒT" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Iestatījumi" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "REDIĢĒT" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Pārkārtot" + diff --git a/res/po/mk.po b/res/po/mk.po new file mode 100644 index 0000000..e9e6791 --- /dev/null +++ b/res/po/mk.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Уредот не Ви е поврзан со мрежа Wi-Fi. Поврзувањето со мобилна мрежа може да се наплаќа дополнително, зависно од Вашиот пакет." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Мобилните податоци се исклучени. Поврзете се со мрежа Wi-Fi или вклучете Мобилни податоци и обидете се повторно." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "Откако ќе снимите видеа со камерата, ќе се прикажат тука." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Името на фајлот се користи." + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "Избриши %d записи?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Доверливо" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Сеп." + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Окт." + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Ное." + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "Мај" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Март" + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Јуни" + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Јули" + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Јан." + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Фев." + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Дек." + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Авг." + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Апр." + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Албум" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Повеќе" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Неважечки влезен параметар." + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Записот е празен." + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "Истото име веќе се користи." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Не може да се преименува." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Не се избрани албуми." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Избери запис" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Нема албуми" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Направи нова папка?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Повторен обид?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Отстрани?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "%d албуми ќе се избришат." + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 албум ќе се избрише." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Камера" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Почни" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Опции" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Да" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "Не" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Сочувај" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Да се избрише?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Премести во албум" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Копирај во албум" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Прегледај според" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Внеси име" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Ќе се избришат сите податоци поврзани со оваа сметка. Продолжи?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Откажи" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Нов албум" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Сакате да ги ископирате или преместите сликите од оригиналниот албум?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Сподели" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Слајдови" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Почни слајдови" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Опции за слајдовите" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Нема име" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Сите албуми" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Избери албум" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "1 запис ќе се избрише." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Сите записи" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d содржини" + +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_MF_BODY_DOWNLOADS" +msgstr "Преземено" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Да се избрише?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Премести" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Се брише..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Неуспешна операција." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Откажано" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Избраните" + +msgid "IDS_MF_POP_MOVED" +msgstr "Преместено." + +msgid "IDS_MF_POP_COPIED" +msgstr "Копирано." + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "Нема избрани фајлови." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Затвори" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Подреди според" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Најнови" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Најстаро" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Ново" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Нема записи" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Измени слика" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Избери слика" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Да се избрише оваа ставка?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Предел" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Отстрани од Приватно" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Галеничиња" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Премести во Приватно" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Храна" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Цвеќе" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Документи" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Возила" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Достигнат е максималниот број знаци (%d)." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Не може да се вчита фотографијата." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Сподели преку" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Не прашувај повторно" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Достигнат е максималниот број знаци." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Време" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Неуспешно" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Избришано." + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Да се избрише?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Отстранување..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "Се прикажуваат %d ставки" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Нов албум" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Галерија" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Повеќе" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Сметки" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Неуспешна операција." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Преземи" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Пребарување" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Назад" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Камера" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Сите" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Обнови" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Отстрани" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Откако ќе пратите слики на Dropbox, ќе се прикажат записите." + +msgid "IDS_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Груп-плеј" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Именик" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Ново" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Детали" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Печати" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Преименувај" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Преземено." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Се презема..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Внеси име." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Мои фајлови" + +msgid "IDS_MF_POP_ADDED" +msgstr "Додадено." + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Обработување..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Неподдржан тип на фајл." + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "Откако ќе сликате, сликите ќе се прикажат." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Широк преглед" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Допрете двапати за да се затвори менито на извлекување." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Допрете двапати за да го отворите менито на извлекување." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Повлечи и пушти" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Фиока" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Мобилните податоци се исклучени. Поврзете се со мрежа Wi-Fi или вклучете мобилни податоци и обидете се повторно" + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Потребна е врска Wi-Fi. Поврзете со мрежа Wi-Fi и обидете се повторно" + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Додај слики од" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Поврзани уреди" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Приватна содржина" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Отстрани од %s" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Отстрани ознака на име" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "Нема настани за прикажување. Направете нов настан." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "За да листате брзо до други датуми, допрете го и држете го показателот на датумот горе десно на екранот." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "Отстрани %d записи?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Да се отстрани записот?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Галерија" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Избриши запис" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Избриши записи" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 запис" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 секунди" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 секунди" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Не е назначено" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Период на слајдовите" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Неозначено" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 секунди" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Цела содржина" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Содржина за приказ" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Избриши ознака" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Содржина од уредот" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Содржина од Dropbox" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Содржина од Facebook" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Ротирај лево" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Ротирај десно" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Увези" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Увезено." + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Увезување..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Активирање..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Најдени се уреди во близина." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "Не се најдени уреди. Скенирањето за уреди во близина ќе се одвива во заднина." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Обновено." + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Се врти..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Скенирањето е почнато. Листата со уреди ќе се ажурира автоматски." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Почнува преземање..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Копирај во" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Премести во" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Неуспешно додавање кратенка." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Нема доволно меморија. Избришете некој запис" + +msgid "IDS_MF_POP_REMOVED" +msgstr "Отстрането." + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Се додава..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "Да се избришат %d албуми?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Приватна меморија" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Довлечете тука." + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Ново" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Одгрупирано" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Екрански снимки" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Фотографии" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Неуспешно преземање." + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Неподдржан фајл." + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 резултат" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d резултати" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Омилени" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Преземањето е откажано." + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Да се избрише овој албум?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Предупредување" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Подреди според" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Денес" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Датум" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "Нема ставки за прикажување." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Допрете тука за фотографирање или снимање." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Надминат е максималниот број ставки што можат да се споделат (%d)." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Допрете за додавање слики." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Да се ископираат или преместат избраните записи од оригиналниот албум?" + +msgid "IDS_GALLERY_HEADER_SELECT" +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Избери ги сите" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d избрани" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Преглед како" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Датум (најнов)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Датум (најстар)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "Откако ќе сликате, сликите ќе се прикажат тука." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Се откажува..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "Од уред" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "Од Dropbox" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "Од Facebook" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Преземањето заврши." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Сите записи ќе се избришат." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "1 запис ќе се преземе." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Ќе се преземат %d записи." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Ќе се преземат сите записи." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "Избраниот албум е ист како изворниот албум. Изберете друг." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Допрете овде за да додадете слики" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Нема доволно место на SD-картичката. Одете во Поставки > Енергија и меморија > Меморија, избришете некој фајл и обидете се повторно." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "Откажи" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Не прикажувај веќе" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Користењето мобилни податоци во роаминг може да се наплаќа дополнително, зависно од Вашиот пакет." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "%d записи ќе се избришат." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Избриши" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Вчера" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Преземања" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Копирај" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Избриши" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Албуми" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "Надминат е максималниот број ставки (%d)." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Откажи" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "ГОТОВО" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ОТКАЖИ" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "ИЗБРИШИ" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Се копира..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Се преместува..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Ако создадете содржина што вклучува записи од личната меморија, може да не се скрие автоматски. Избраните лични содржини можат да се видат кога се прегледуваат новите содржини." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "ИЗМЕНИ" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Опции" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "ИЗМЕНИ" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Пререди" + diff --git a/res/po/nb.po b/res/po/nb.po new file mode 100644 index 0000000..15ccb27 --- /dev/null +++ b/res/po/nb.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Enheten din er ikke koblet til et Wi-Fi-nettverk. Tilkobling til et mobilnett kan medføre ekstra kostnader, avhengig av abonnementet ditt." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobildata er slått av. Koble til Wi-Fi-nettverk i stedet, eller slå på mobildata, og prøv på nytt." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "Når du har spilt inn videoer med kameraet, vises de her." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Filnavnet er allerede i bruk." + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "Slette %d elementer?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Personvern" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Sep." + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Okt." + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Nov." + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "Mai" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Mars" + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Juni" + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Juli" + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Jan." + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Feb." + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Des." + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Aug." + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Apr." + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Album" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Mer" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Ugyldig inndataparameter." + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Oppføringen er tom." + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "Samme navn allerede i bruk." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Kan ikke gi nytt navn." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Ingen album valgt." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Velg objekt" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Ingen album" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Opprette mappe?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Prøve på nytt?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Fjerne?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "%d album vil bli slettet." + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album blir slettet." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Kamera" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Start" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Innstillinger" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Ja" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "Nei" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Lagre" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Slette?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Flytt til album" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Kopier til album" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Visningstype" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Angi navn" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Alle data forbundet med denne kontoen slettes. Fortsette?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Avbryt" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Nytt album" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Vil du kopiere eller flytte bildene fra det originale albumet?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Del" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Bildefremvisning" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Start bildefremvisning" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Bildefremvisninginnstillinger" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Ingen navn" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Alle album" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Velg album" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "1 element vil bli slettet." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Alle elementer" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d elementer" + +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_MF_BODY_DOWNLOADS" +msgstr "Nedlastinger" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Slette?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Flytt" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Sletter..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Operasjonen mislyktes." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Avbrutt" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Valgt" + +msgid "IDS_MF_POP_MOVED" +msgstr "Flyttet." + +msgid "IDS_MF_POP_COPIED" +msgstr "Kopiert." + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "Ingen filer valgt." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Lukk" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Sorter etter" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Siste" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Eldste" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Opprett" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Ingen elementer" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Rediger bilde" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Velg bilde" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Vil du slette dette elementet?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Landskap" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Fjern fra Privat" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Kjæledyr" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Flytt til Privat" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Mat" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Blomster" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Dokumenter" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Kjøretøy" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Maksimalt antall tegn (%d) er nådd." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Kan ikke laste bilde." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Del via" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Ikke spør på nytt" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Nådd maksimalt antall tegn." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Tid" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Mislykket" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Slettet." + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Slette?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Tar bort..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "Viser %d elementer" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Opprett album" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Galleri" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Mer" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Kontoer" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Operasjonen mislyktes." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Last ned" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Søk" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Tilbake" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Kamera" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Alle" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Oppdater" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Fjern" + +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_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Kontakter" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Opprett" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Detaljer" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Skriv ut" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Endre navn" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Nedlastet." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Laster ned..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Angi navn." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Mine filer" + +msgid "IDS_MF_POP_ADDED" +msgstr "Lagt til." + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Behandler..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Filtypen støttes ikke." + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "Etter at du tar bilder, vises bildene." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Liggende modus" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Trykk raskt to ganger for å lukke skuffmenyen." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Trykk raskt to ganger for å åpne skuffmenyen." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Dra og slipp" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Skuff" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobildata er deaktivert. Koble til Wi-Fi-nettverk i stedet, eller aktiver mobildata og prøv på nytt." + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Wi-Fi-tilkobling nødvendig. Koble til Wi-Fi-nettverk og prøv på nytt." + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Legg til bilder fra" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Tilkoblede enheter" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Privat innhold" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Fjern fra %s" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Fjern navnetagg" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "Det er ingen hendelser å vise. Opprett en ny hendelse." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "Trykk på og hold datoindikatoren øverst til høyre på skjermen for raskt å bla til andre datoer." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "Fjerne %d elementer?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Vil du fjerne dette elementet?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Galleri" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +msgstr "Tilfeldige bilder" + +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Slett element" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Slett elementer" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 element" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 sekunder" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 sekunder" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Ikke tilordnet" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Bildefremvisningsintervall" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Ikke tagget" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 sekunder" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Alt innhold" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Innhold som skal vises" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Slett tagg" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Enhetsinnhold" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Dropbox-innhold" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Facebook-innhold" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Roter mot klokken" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Roter med klokken" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Importer" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Importert." + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Importerer..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Åpner..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Enheter funnet i nærheten." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "Ingen enheter funnet. Søk etter enheter i nærheten vil fortsette i bakgrunnen." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Oppdatert." + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Roterer..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Søk startet. Enhetslisten vil oppdateres automatisk." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Starter nedlasting..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Kopier til" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Flytt til" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Kunne ikke legge til snarvei." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Ikke nok minne. Slett noen elementer." + +msgid "IDS_MF_POP_REMOVED" +msgstr "Fjernet." + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Legger til..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "Vil du slette %d album?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Privat lagring" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Dra hit." + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Ny" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Ugruppert" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Skjermbilder" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Bilder" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Nedlasting mislyktes." + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Filen støttes ikke." + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 resultat" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d resultater" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Favoritter" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Nedlasting avbrutt." + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Vil du slette dette albumet?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Advarsel" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Sorter etter" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "I dag" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Dato" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "Ingen elementer å vise." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Trykk her for å ta bilder eller videoer." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Maksimalt antall elementer som kan deles (%d), er oversteget." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Trykk for å legge til bilder." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Vil du kopiere eller flytte de valgte elementene fra det originale albumet?" + +msgid "IDS_GALLERY_HEADER_SELECT" +msgstr "Velg" + +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Merk alt" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d er valgt" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Vis som" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Dato (nyeste)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Dato (eldste)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "Når du har tatt bilder, vises de her." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Avbryter..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "Fra enhet" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "Fra Dropbox" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "Fra Facebook" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Nedlasting fullført." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Alle elementer vil bli slettet." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "1 element blir lastet ned." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "%d elementer blir lastet ned." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Alle elementer blir lastet ned." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "Valgt album er det samme som kildealbum. Velg et annet album." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Trykk her for å legge til bilder" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +msgstr "Kan ikke lagre data" + +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Det er ikke nok ledig plass på SD-kortet. Gå til Innstillinger > Strøm og lagring > Lagring, slett noen filer, og prøv på nytt." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "Avbryt" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Ikke vis igjen" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Bruk av mobildata under roaming kan medføre ekstra kostnader, avhengig av abonnementet ditt." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "%d elementer blir slettet." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Slett" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "I går" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Nedlastinger" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Kopier" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Slett" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Album" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "Maksimalt antall elementer (%d) er overskredet." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Avbryt" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "FULLFØRT" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "AVBRYT" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "SLETT" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Kopierer..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Flytter..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Hvis du oppretter innhold som inkluderer elementer fra den personlige lagringsplassen, kan det hende at det nye innholdet ikke automatisk skjules. Det kan hende at det valgte personlige innholdet vil kunne sees ved å vise det nye innholdet." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "REDIGER" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Innstillinger" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "REDIGER" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Omordne" + diff --git a/res/po/nl.po b/res/po/nl.po new file mode 100644 index 0000000..daa54b4 --- /dev/null +++ b/res/po/nl.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Uw apparaat is niet verbonden met een Wi-Fi-netwerk. Voor verbinding met een mobiel netwerk kunnen afhankelijk van uw abonnement extra kosten gelden." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobiele gegevens zijn uitgeschakeld. Maak in plaats daarvan verbinding met een Wi-Fi-netwerk of schakel Mobiele gegevens in en probeer het opnieuw." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "Nadat u video´s hebt opgenomen met de camera, worden ze hier getoond." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Bestandsnaam is al in gebruik." + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "%d items verwijderen?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Privacy" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Sep." + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Okt." + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Nov." + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "mei" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Mrt." + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Jun." + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Jul." + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Jan." + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Feb." + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Dec." + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Aug." + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Apr." + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Album" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Meer" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Ongeldige invoerparameter." + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Geen gegevens." + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "Naam is al in gebruik." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Kan de naam niet wijzigen." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Geen albums geselecteerd." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Item selecteren" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Geen albums" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Map maken?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Opnieuw?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Verwijderen?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "%d albums worden verwijderd." + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album wordt verwijderd." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Camera" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Start" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Instellingen" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Ja" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "Nee" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Opslaan" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Verwijderen?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Verplaatsen naar album" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Kopiëren naar album" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Weergeven op" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Geef de naam in" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Alle gegevens die met dit account samenhangen, worden verwijderd. Doorgaan?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Annuleren" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Nieuw album" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Wilt u de foto´s in het oorspronkelijke album kopiëren en verplaatsen?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Delen" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Diashow" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Diashow starten" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Instellingen diashow" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Geen naam" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Alle albums" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Album selecteren" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "1 item wordt verwijderd." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Alle items" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d items" + +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_MF_BODY_DOWNLOADS" +msgstr "Downloads" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Verwijderen?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Verplaatsen" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Verwijderen..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Bewerking is mislukt." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Geannuleerd" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Geselecteerd" + +msgid "IDS_MF_POP_MOVED" +msgstr "Verplaatst." + +msgid "IDS_MF_POP_COPIED" +msgstr "Gekopieerd." + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "Geen bestanden geselecteerd." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Sluiten" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Sorteren op" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Laatste" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Oudst" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Maken" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Geen items" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Afbeelding bewerken" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Foto selecteren" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Dit item verwijderen?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Landschap" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Verwijderen uit Privé" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Huisdieren" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Verplaatsen naar Privé" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Voedsel" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Bloemen" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Documenten" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Voertuigen" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Maximumaantal tekens (%d) bereikt." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Kan foto niet laden." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Delen via" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Niet meer vragen" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Maximumaantal tekens bereikt." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Tijd" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Mislukt" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Verwijderd." + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Verwijderen?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Verwijderen..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "%d items weergeven" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Album maken" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Galerij" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Meer" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Accounts" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Bewerking is mislukt." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Downloaden" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Zoeken" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Vorige" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Camera" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Alles" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Vernieuwen" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Wissen" + +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_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Contacten" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Nieuw" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Gegevens" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Afdrukken" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Naam wijzigen" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Gedownload." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Downloaden..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Naam invoeren." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Mijn bestanden" + +msgid "IDS_MF_POP_ADDED" +msgstr "Toegevoegd." + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Verwerken..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Niet-ondersteund bestandstype." + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "Foto´s worden weergegeven nadat u deze hebt genomen." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Liggend" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Tik tweemaal om lademenu te sluiten." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Tik tweemaal om lademenu te openen." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Slepen en neerzetten" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Lade" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobiele gegevens uitgeschakeld. Maak in plaats daarvan verbinding via Wi-Fi-netwerk of schakel mobiele gegevens in en probeer het opnieuw." + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Wi-Fi-verbinding vereist. Maak verbinding met Wi-Fi-netwerk en probeer het opnieuw." + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Foto´s toevoegen uit" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Verbonden apparaten" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Privé-inhoud" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Verwijderen uit %s" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Naamtag verwijderen" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "Er zijn geen gebeurtenissen om weer te geven. Maak een nieuwe gebeurtenis." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "Tik op de datumindicator rechtsboven in het scherm en houd vast als u snel naar andere datums wilt scrollen." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "%d items verwijderen?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Dit item verwijderen?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Galerij" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +msgstr "Foto´s in willekeurige volgorde" + +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Item verwijderen" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Items verwijderen" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 item" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 seconden" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 seconden" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Niet toegewezen" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Interval diashow" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Niet-getagd" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 seconden" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Alle inhoud" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Weer te geven inhoud" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Tag verwijderen" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Apparaatinhoud" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Dropbox-inhoud" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Facebook-inhoud" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Linksom draaien" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Rechtsom draaien" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Importeren" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Geïmporteerd." + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Importeren..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Laden..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Apparaten in de buurt gevonden." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "Geen apparaten gevonden. Zoeken naar apparaten in de buurt wordt op de achtergrond voorgezet." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Vernieuwd." + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Roteren..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Scan gestart. Apparatenlijst wordt automatisch bijgewerkt." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Download starten..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Kopiëren naar" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Verplaatsen naar" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Kan sneltoets niet toevoegen." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Onvoldoende geheugen. Wis een aantal items." + +msgid "IDS_MF_POP_REMOVED" +msgstr "Verwijderd." + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Toevoegen..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "%d albums verwijderen?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Privé-opslag" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Hiernaartoe slepen." + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Nieuw" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Groep opgeheven" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Schermafbeeldingen" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Foto's" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Downloaden mislukt." + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Niet-ondersteund bestand." + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 resultaat" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d resultaten" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Favorieten" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Downloaden geannuleerd." + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Dit album verwijderen?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Waarschuwing" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Sorteren op" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Vandaag" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Datum" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "Geen items om weer te geven." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Tik hier om foto's of video's te maken." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Maximumaantal items dat kan worden gedeeld (%d), is overschreden." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Tik om afbeeldingen toe te voegen." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Geselecteerde items uit het oorspronkelijke album kopiëren of verplaatsen?" + +msgid "IDS_GALLERY_HEADER_SELECT" +msgstr "Selecteren" + +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Alles selecteren" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d geselecteerd" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Weergeven als" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Datum (recentst)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Datum (oudst)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "Nadat u foto´s hebt gemaakt, worden ze hier weergegeven." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Annuleren..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "Van apparaat" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "Van Dropbox" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "Van Facebook" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Downloaden voltooid." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Alle items worden verwijderd." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "1 item wordt gedownload." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "%d items worden gedownload." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Alle items worden gedownload." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "Geselecteerd album is hetzelfde als bronalbum. Selecteer een ander album." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Tik hier om afbeeldingen toe te voegen" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +msgstr "Kan gegevens niet opslaan" + +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Er is onvoldoende ruimte op uw SD-kaart. Ga naar de Instellingen > Energie en opslag > Opslag, verwijder een aantal bestanden en probeer het opnieuw." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "Annuleren" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Niet meer tonen" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Als u Mobiele gegevens tijdens roaming gebruikt, kan dat afhankelijk van uw abonnement extra kosten met zich meebrengen." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "%d items worden verwijderd." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Wissen" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Gisteren" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Downloads" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Kopiëren" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Wissen" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Albums" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "Het maximumaantal items (%d) is overschreden." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Annuleer" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "GEREED" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ANNULEREN" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "VERWIJDEREN" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Kopiëren..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Verplaatsen..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Als u inhoud maakt die items uit de persoonlijke opslag bevat, wordt deze mogelijk niet automatisch verborgen. De geselecteerde persoonlijke inhoud kan worden bekeken tijdens het weergeven van de nieuwe inhoud." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "BEWERKEN" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Instellingen" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "BEWERKEN" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Indeling wijzigen" + diff --git a/res/po/pl.po b/res/po/pl.po new file mode 100644 index 0000000..62bba63 --- /dev/null +++ b/res/po/pl.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Urządzenie nie jest połączone z siecią Wi-Fi. Połączenie z siecią telefonii komórkowej może spowodować naliczenie dodatkowych opłat w zależności od planu taryfowego." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Funkcja Dane komórkowe jest wyłączona. Połącz się z siecią Wi-Fi lub włącz funkcję Dane komórkowe i spróbuj ponownie." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "Filmy zostaną tutaj wyświetlone po ich nagraniu za pomocą aparatu." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Nazwa pliku już w użyciu." + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "Usunąć elementów: %d?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Prywatność" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Wrz." + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Paź." + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Lis." + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "Maj" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Mar." + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Cze." + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Lip." + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Sty." + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Lut." + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Gru." + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Sie." + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Kwi." + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Album" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Więcej" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Nieprawidłowy parametr wejściowy" + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Wpis jest pusty." + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "Ta sama nazwa jest już w użyciu." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Nie można zmienić nazwy." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Nie wybrano albumów." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Wybierz element" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Brak albumów" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Utworzyć katalog ?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Spróbować ponownie?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Usunąć?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "Liczba albumów, które zostaną usunięte: %d." + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album zostanie usunięty." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Aparat" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Rozpocznij" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Ustawienia" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Tak" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "Nie" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Zapisz" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Usunąć?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Przenieś do albumu" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Kopiuj do albumu" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Sortuj wg" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Wpisz nazwę" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Wszystkie dane powiązane z tym kontem zostaną usunięte. Kontynuować?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Anuluj" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Nowy album" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Chcesz skopiować czy przenieść obrazy z oryginalnego albumu?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Udostępnij" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Pokaz slajdów" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Rozpocznij pokaz slajdów" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Ustawienia pokazu slajdów" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Bez nazwy" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Wszystkie albumy" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Wybierz album" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "1 element zostanie usunięty." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Wszystkie elementy" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "Elementów: %d" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Istnieje tylko jeden album." + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Maksymalna liczba elementów, które można wybrać: %d." + +msgid "IDS_MF_BODY_DOWNLOADS" +msgstr "Pobrane" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Usunąć?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Przenieś" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Usuwanie..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Operacja nie powiodła się." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Anulowane" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Wybrane" + +msgid "IDS_MF_POP_MOVED" +msgstr "Przeniesiono." + +msgid "IDS_MF_POP_COPIED" +msgstr "Skopiowano." + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "Nie wybrano pliku." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Zamknij" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Sortuj według" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Najnowsze" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Najstarsze" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Utwórz" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Brak elementów" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Edytuj obraz" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Wybierz obraz" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Usunąć ten element?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Sceneria" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Usuń z Prywatnych" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Zwierzątka" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Przenieś do Prywatnych" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Jedzenie" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Kwiaty" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Dokumenty" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Pojazdy" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Osiągnięto maksymalną liczbę znaków (%d)." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Nie można załadować zdjęcia." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Udostępnij przez" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Nie pytaj ponownie" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Osiągnięto maksymalną liczbę znaków." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Godzina" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Błąd" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Usunięto." + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Usunąć?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Usuwanie..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "Wyświetlanie elementów: %d" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Utwórz album" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Galeria" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Więcej" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Konta" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Operacja nie powiodła się." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Pobierz" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Szukaj" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Wstecz" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Aparat" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Wszystkie" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Odśwież" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Usuń" + +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_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Kontakty" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Utwórz" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Szczegóły" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Drukuj" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Zmień nazwę" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Pobrano." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Pobieranie..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Wpisz nazwę." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Moje pliki" + +msgid "IDS_MF_POP_ADDED" +msgstr "Dodano." + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Przetwarzanie..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Nieobsługiwany typ pliku." + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "Zdjęcia będą widoczne po ich zrobieniu." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Orientacja pozioma" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Dotknij dwukrotnie, aby zamknąć menu rozwijane." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Dotknij dwukrotnie, aby otworzyć menu rozwijane." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Przeciągnij i upuść" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Komoda" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Transmisja danych sieci jest wyłączona. Połącz się z siecią Wi-Fi lub włącz transmisję danych po sieci w ustawieniach urządzenia i spróbuj ponownie." + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Wymagane połączenie z siecią Wi-Fi. Połącz się z siecią Wi-Fi i spróbuj ponownie" + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Dodawanie zdjęć z" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Podłączone urządzenia" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Zawartość prywatna" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Usuń z kategorii %s" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Usuń etykietę z imieniem" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "Nie ma żadnych wydarzeń do wyświetlenia. Utwórz nowe wydarzenie." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "Aby szybko przewinąć do innych dat, dotknij wskaźnika daty w prawej górnej części ekranu i przytrzymaj go." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "Usunąć elementów: %d?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Usunąć ten element?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Galeria" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +msgstr "Przetasowane zdjęcia" + +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Usuń element" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Usuwanie elementów" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 element" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 sek." + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 sek." + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Nieprzypisane" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Czas wyświetlania slajdów" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Nieoznaczone etykietą" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 sek." + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Cała zawartość" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Zawartość do wyświetlenia" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Usuń etykietę" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Zawartość w urządzeniu" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Zawartość w Dropbox" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Zawartość na Facebooku" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Obróć w lewo" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Obróć w prawo" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Importuj" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Zaimportowano." + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Importowanie..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Ładuję..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Znaleziono urządzenia w pobliżu." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "Nie znaleziono urządzeń. Skanowanie urządzeń znajdujących się w pobliżu będzie odbywać się w tle." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Odświeżono." + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Obracanie..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Skanowanie rozpoczęte. Lista urządzeń zostanie automatycznie zaktualizowana." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Rozpoczynanie pobierania..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Kopiuj do" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Przenieś do" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Nie udało się dodać skrótu." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Brak pamięci. Usuń niektóre elementy" + +msgid "IDS_MF_POP_REMOVED" +msgstr "Usunięto." + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Dodawanie..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "Usunąć albumy: %d?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Pamięć prywatna" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Przeciągnij tutaj." + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Nowy" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Nieprzydzielone do grupy" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Zrzuty ekranu" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Zdjęcia" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Błąd pobierania" + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Nieobsługiwany plik." + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "Liczba wyników: 1" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "Liczba wyników: %d" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Ulubione" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Anulowano pobieranie." + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Usunąć ten album?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Ostrzeżenie" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Sortuj według" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Dzisiaj" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Data" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "Brak elementów do wyświetlenia." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Dotknij tutaj, aby robić zdjęcia lub nagrywać filmy." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Przekroczono maksymalną liczbę elementów, które można udostępnić (%d)." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Dotknij, aby dodać obrazy." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Skopiować lub przenieść wybrane elementy z oryginalnego albumu?" + +msgid "IDS_GALLERY_HEADER_SELECT" +msgstr "Wybór" + +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Wybierz wszystko" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "Wybrano %d" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Widok" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Data (najnowsze)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Data (najstarsze)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "Gdy zrobisz zdjęcia, zostaną one tutaj wyświetlone." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Anulowanie..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "Z urządzenia" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "Z Dropbox" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "Z Facebooka" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Zakończono pobieranie." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Wszystkie elementy zostaną usunięte." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "1 element zostanie pobrany." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Zostanie pobranych elementów: %d." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Wszystkie elementy zostaną pobrane." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "Wybrany album ten sam co album źródłowy. Wybierz inny album." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Dotknij tutaj, aby dodać obrazy" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +msgstr "Nie można zapisać danych" + +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Za mało miejsca na karcie pamięci. 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_MF_BUTTON_CANCEL_ABB3" +msgstr "Anuluj" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Nie pokazuj ponownie" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Korzystanie z transmisji danych po sieci podczas roamingu może powodować naliczanie dodatkowych opłat w zależności od planu taryfowego." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "Elementów do usunięcia: %d." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Usuń" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Wczoraj" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Pobierane pliki" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Kopiowanie" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Usuń" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Albumy" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "Przekroczono maksymalną liczbę elementów (%d)." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Anuluj" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "GOTOWE" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ANULUJ" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "USUŃ" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Kopiowanie..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Przenoszenie..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Jeśli tworzysz zawartość, która zawiera elementy z pamięci osobistej, może ona nie być ukrywana automatycznie. Wybrane dane osobiste mogą być widoczne podczas przeglądania nowej zawartości." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "EDYTUJ" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Ustawienia" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "EDYTUJ" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Zmień kolejność" + diff --git a/res/po/pt_BR.po b/res/po/pt_BR.po new file mode 100644 index 0000000..18f1810 --- /dev/null +++ b/res/po/pt_BR.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "O dispositivo não está conectado a uma rede Wi-Fi. A conexão a uma rede móvel pode resultar em cobranças adicionais dependendo do seu plano de pagamento." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Dados móveis desligados. Conecte-se a uma rede Wi-Fi em seu lugar ou ligue os Dados móveis e tente novamente." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "Após gravar vídeos usando a câmera, eles serão exibidos aqui." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "O nome do arquivo já está em uso." + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "Apagar itens %d?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Privacidade" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Set." + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Out." + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Nov." + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "Maio" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Mar." + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Jun." + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Jul." + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Jan." + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Fev." + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Dez." + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Ago." + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Abr." + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Álbum" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Mais" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Parâmetro de entrada inválido." + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Entrada vazia." + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "O mesmo nome já está sendo utilizado." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Impossível renomear." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Nenhum álbum selecionado." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Selecionar item" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Sem álbuns" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "criar pasta?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Repetir?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Remover?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "%d álbuns serão excluídos." + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 álbum será excluído." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Câmera" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Iniciar" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Configurações" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Sim" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "Não" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Salvar" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Apagar?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Mover para o álbum" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Copiar para o álbum" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Exibir por" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Inserir nome" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Todos os dados relacionados a esta conta serão apagados. Continuar?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Cancelar" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Álbum novo" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Deseja copiar ou mover as imagens do álbum original?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Compartilhar" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Apresentação de slides" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Iniciar apresentação de slides" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Conf. Apres. de slides" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Sem nome" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Todos os álbuns" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Selecionar álbum" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "1 item será excluído." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Todos os itens" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d itens" + +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_MF_BODY_DOWNLOADS" +msgstr "Downloads" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Apagar?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Mover" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Apagando…" + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Operação falhou." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Cancelado" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Selecionado" + +msgid "IDS_MF_POP_MOVED" +msgstr "Movido." + +msgid "IDS_MF_POP_COPIED" +msgstr "Copiado." + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "Nenhum arquivo selecionado." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Fechar" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Ordenar por" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Mais recentes" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Mais antiga" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Criar" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Sem itens" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Editar imagem" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Selecionar imagem" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Excluir este item?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Cenário" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Remover do Modo Privado" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Animais de estimação" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Mover para o Modo Privado" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Alimentos" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Flores" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Documentos" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Veículos" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Número máximo de caracteres (%d) atingido." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Não é possível carregar foto." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Compartilhar via" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Não pergunte novamente" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Número máximo de caracteres atingido." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Hora" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Falha" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Excluído." + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Apagar?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "A remover..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "Exibir %d itens" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Criar álbum" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Galeria" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Mais" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Contas" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Operação falhou." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Download" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Pesquisar" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Voltar" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Câmera" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Todos" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Atualizar" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Remover" + +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_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Contatos" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Criar" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Detalhes" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Imprimir" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Renomear" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Baixado." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Baixando…" + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Inserir nome." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Meus Arquivos" + +msgid "IDS_MF_POP_ADDED" +msgstr "Adicionado." + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Processando…" + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Tipo de arquivo não suportado." + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "Após tirar fotos, elas serão exibidas." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Modo paisagem" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Toque duas vezes para fechar a gaveta do menu." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Toque duas vezes para abrir a gaveta do menu." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Arrastar e soltar" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Gaveta" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "A rede de dados móveis está desativada. Conecte-se à rede Wi-Fi ou ative as redes móveis e tente novamente." + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "É necessária uma conexão Wi-Fi. Conecte-se a uma rede Wi-Fi e tente novamente" + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Adicione fotos de" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Dispositivos conectados" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Conteúdo privado" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Remover de %s" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Remover etiqueta do nome" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "Não existem eventos para exibir. Crie um novo evento." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "Para percorrer rapidamente para outras datas, mantenha o indicador de data pressionado na parte superior da tela." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "Remover %d itens?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Remover este item?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Galeria" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +msgstr "Fotos misturadas" + +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Excluir item" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Excluir itens" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 item" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 segundos" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 segundos" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Não atribuído" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Intervalo da apresentação de slides" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Sem marcas" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 segundos" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Todo o conteúdo" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Conteúdo para exibição" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Apagar etiqueta" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Conteúdo do dispositivo" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Conteúdo do Dropbox" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Conteúdo do Facebook" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Girar para a esquerda" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Girar para a direita" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Importar" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Importado." + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Importando..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Carregando..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Dispositivos encontrados nas proximidades." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "Nenhum dispositivo encontrado. A varredura por dispositivos próximos continuará em segundo plano." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Atualizado." + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Rotacionando..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Busca iniciada. A lista de dispositivos será atualizada automaticamente." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Iniciando download..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Copiar para" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Mover para" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Falha ao adicionar atalho." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Memória insuficiente. Apague alguns itens" + +msgid "IDS_MF_POP_REMOVED" +msgstr "Removido." + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Adicionando..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "Excluir %d álbuns?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Armazenamento privado" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Arraste aqui." + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Novo" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Desagrupado" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Capturas de tela" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Fotos" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Falha na transferência." + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Arquivo não suportado." + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 resultado" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d resultados" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Favoritos" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Transferência cancelada." + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Excluir este álbum?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Atenção" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Ordenar por" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Hoje" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Data" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "Não há itens para exibir." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Toque aqui para tirar fotos ou vídeos." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Número máximo de itens que podem ser compartilhados (%d) excedido." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Tocar para adicionar imagens." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Copiar ou mover os itens selecionados do álbum original?" + +msgid "IDS_GALLERY_HEADER_SELECT" +msgstr "Selecionar" + +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Selecionar todos" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d selecionado(s)" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Visualizar como" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Data (mais recente)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Data (mais antigo)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "Após tirar fotos, elas serão exibidas aqui." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Cancelando..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "Do dispositivo" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "Do Dropbox" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "Do Facebook" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Transferência concluída." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Todos os itens serão apagados." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "1 item será baixado." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "%d itens serão baixados." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Todos os itens serão baixados." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "O álbum selecionado é o mesmo álbum de origem. Selecione um outro álbum." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Toque aqui para adicionar imagens" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +msgstr "Impossível salvar dados" + +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Não existe espaço suficiente no seu cartão SD. Vá para Configurações > Carga e armazenamento > Armazenamento e exclua alguns arquivos e tente novamente." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "Cancelar" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Não exibir novamente" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "O uso de Dados móveis durante o roaming pode resultar em cobranças adicionais dependendo do seu plano de tarifas." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "%d itens serão apagados." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Excluir" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Ontem" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Downloads" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Copiar" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Excluir" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Álbuns" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "O número máximo de itens (%d) foi excedido." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Cancelar" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "CONCLUÍDO" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "CANCELAR" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "EXCLUIR" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Copiando..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Movendo…" + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Se você criar conteúdo que inclua itens do seu armazenamento pessoal, ele poderá não ser oculto automaticamente. O conteúdo pessoal selecionado poderá ser visto ao visualizar o novo conteúdo." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "EDITAR" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Configurações" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "EDITAR" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Reordenar" + diff --git a/res/po/pt_PT.po b/res/po/pt_PT.po new file mode 100644 index 0000000..490fd18 --- /dev/null +++ b/res/po/pt_PT.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "O seu dispositivo não está ligado a uma rede Wi-Fi. A ligação a uma rede móvel pode resultar na cobrança de taxas adicionais dependendo do seu tarifário." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Dados móveis desligados. Em alternativa, ligue-se a uma rede Wi-Fi ou ligue os Dados móveis e tente de novo." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "Depois de gravar vídeos utilizando a câmara, os vídeos serão mostrados aqui." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Nome ficheiro já utilizado." + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "Apagar itens %d?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Privacidade" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Set." + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Out." + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Nov." + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "Maio" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Mar." + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Jun." + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Jul." + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Jan." + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Fev." + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Dez." + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Ago." + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Abr." + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Álbum" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Mais" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Parâmetro de entrada inválido." + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Entrada vazia." + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "Já está a ser utilizado o mesmo nome." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Impossível mudar nome." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Nenhuns álbuns seleccionados." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Seleccionar item" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Sem álbuns" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Criar pasta?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Tentar novamente?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Remover?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "%d álbuns serão eliminados." + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 álbum será eliminado." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Câmara" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Iniciar" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Definições" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Sim" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "Não" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Guardar" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Eliminar?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Mover para álbum" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Copiar para álbum" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Ver por" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Introduzir nome" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Todos os dados relacionados com esta conta serão eliminados. Continuar?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Cancelar" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Álbum novo" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Quer copiar ou mover as imagens do álbum original?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Partilhar" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Apresentação de slides" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Iniciar apresentação de slides" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Definições da apresentação de slides" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Sem nome" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Todos os álbuns" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Seleccionar álbum" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "1 item será eliminado." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Todos os itens" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d itens" + +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_MF_BODY_DOWNLOADS" +msgstr "Transferências" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Eliminar?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Mover" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "A eliminar..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Operação falhou." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Cancelado" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Seleccionado" + +msgid "IDS_MF_POP_MOVED" +msgstr "Movido." + +msgid "IDS_MF_POP_COPIED" +msgstr "Copiado." + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "Nenhum ficheiro seleccionado." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Fechar" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Ordenar por" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Mais recentes" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Mais antiga" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Criar" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Sem itens" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Editar imagem" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Seleccionar imagem" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Eliminar este item?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Cenário" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Remover de Privado" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Animais de estimação" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Mover para Privado" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Alimentos" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Flores" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Documentos" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Veículos" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Número máximo de caracteres (%d) atingido." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Impossível carregar fotografia." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Partilhar via" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Não voltar a perguntar" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Número máximo de caracteres atingido." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Hora" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Falhou" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Eliminado." + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Eliminar?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "A remover..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "Mostrar %d itens" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Criar álbum" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Galeria" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Mais" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Contas" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Operação falhou." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Transferir" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Procurar" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Voltar" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Câmara" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Tudo" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Actualizar" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Remover" + +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_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Contactos" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Criar" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Detalhes" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Imprimir" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Mudar nome" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Transferido." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "A transferir..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Introduzir nome." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Os Meus Ficheiros" + +msgid "IDS_MF_POP_ADDED" +msgstr "Adicionado." + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "A processar..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Tipo de ficheiro não suportado." + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "Depois de tirar fotografias, as fotografias são mostrados." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Modo paisagem" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Toque duas vezes para fechar o menu de gaveta." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Toque duas vezes para abrir o menu de gaveta." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Arrastar e largar" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Gaveta" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Os dados móveis estão desactivados. Ligue à rede Wi-Fi em substituição ou active os dados móveis e tente novamente." + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Ligação Wi-Fi necessária. Estabeleça a ligação à rede Wi-Fi e tente novamente." + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Adicionar imagens de" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Dispositivos ligados" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Conteúdo privado" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Remover de %s" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Remover etiqueta de nome" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "Não existem eventos para visualizar. Crie um evento novo." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "Para se deslocar rapidamente para outras datas, toque sem soltar no indicador de data no canto superior direito do ecrã." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "Remover %d itens?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Remover este item?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Galeria" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +msgstr "Fotografias aleatórias" + +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Eliminar item" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Eliminar itens" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 item" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 segundos" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 segundos" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Não atribuído" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Duração da apresentação" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Sem etiqueta" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 segundos" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Todo o conteúdo" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Conteúdo a apresentar" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Apagar etiqueta" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Conteúdo do dispositivo" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Conteúdo do Dropbox" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Conteúdo do Facebook" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Rodar para a esquerda" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Rodar para a direita" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Importar" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Importados." + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "A importar..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "A carregar..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Encontrados dispositivos próximos." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "Sem dispositivos encontrados. A pesquisa de dispositivos próximos irá continuar em segundo plano." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Actualizada." + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "A rodar..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Pesquisa iniciada. A lista de dispositivos será actualizada automaticamente." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "A iniciar transferência..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Copiar para" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Mover para" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Falha ao adicionar atalho." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Memória insuficiente. Apague alguns itens." + +msgid "IDS_MF_POP_REMOVED" +msgstr "Removido." + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "A adicionar..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "Eliminar %d álbuns?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Armazenamento privado" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Arraste para aqui." + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Nova" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Desagrupado" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Capturas de ecrã" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Fotos" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Falha na transferência." + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Ficheiro não suportado." + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 resultado" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d resultados" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Favoritos" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Transferência cancelada." + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Eliminar este álbum?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Aviso" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Ordenar por" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Hoje" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Data" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "Sem itens para apresentar." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Toque aqui para tirar fotografias ou gravar vídeos." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Excedido o número máximo de itens que podem ser partilhados (%d)." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Tocar para adicionar imagens." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Copiar ou mover os itens seleccionados do álbum original?" + +msgid "IDS_GALLERY_HEADER_SELECT" +msgstr "Seleccionar" + +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Seleccionar tudo" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d selecionado(s)" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Ver como" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Data (mais recente)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Data (mais antiga)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "Depois de tirar fotografias, estas serão mostradas aqui." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "A cancelar..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "Do dispositivo" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "Da Dropbox" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "Do Facebook" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Transferência concluída." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Todos os itens serão eliminados." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "1 item será transferido." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "%d itens serão transferidos." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Todos os itens serão transferidos." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "O álbum seleccionado é o mesmo que o álbum de origem. Seleccione outro álbum." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Tocar aqui para adicionar imagens" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +msgstr "Impossível guardar dados" + +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Não há espaço suficiente no seu cartão SD. Vá às Definições > Potência e armazenamento > Armazenamento e depois elimine alguns ficheiros e tente novamente." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "Cancelar" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Não mostrar novamente" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "A utilização de Dados móveis em roaming pode implicar a cobrança de taxas adicionais dependendo do seu plano tarifário." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "%d itens serão eliminados." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Eliminar" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Ontem" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Transferências" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Copiar" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Eliminar" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Álbuns" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "O número máximo de itens (%d) foi excedido." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Cancelar" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "CONCLUÍDO" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "CANCELAR" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "ELIMINAR" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "A copiar..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "A mover..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Se criar conteúdo que inclua itens de armazenamento pessoal, pode não ser ocultado automaticamente. O conteúdo pessoal seleccionado pode ser visto durante a visualização do conteúdo novo." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "EDITAR" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Definições" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "EDITAR" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Reordenar" + diff --git a/res/po/ro.po b/res/po/ro.po new file mode 100644 index 0000000..b67c9a7 --- /dev/null +++ b/res/po/ro.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Dispozitivul nu este conectat la o reţea Wi-Fi. Conectarea la o reţea mobilă poate genera costuri suplimentare, în funcţie de planul tarifar." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Datele mobile sunt dezactivate. Conectaţi-vă în schimb la o reţea Wi-Fi sau activaţi Datele mobile şi încercaţi din nou." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "După ce înregistraţi videoclipuri utilizând camera, acestea se vor afişa aici." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Numele de fişier este deja utilizat." + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "Ştergeţi %d elemente?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Confidenţialitate" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Sep." + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Oct." + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Nov." + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "Mai" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Mar." + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Iun." + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Iul." + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Ian." + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Feb." + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Dec." + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Aug." + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Apr." + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Album" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Mai multe" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Parametru de intrare incorect" + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Locaţie liberă" + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "Acelaşi nume deja în uz" + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Imposibil de redenumit" + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Nu sunt albume selectate." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Selectaţi elementul" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Nu există albume" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Creaţi folder?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Reîncercaţi?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Eliminare?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "%d albume vor fi şterse." + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album va fi şters." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Cameră foto" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Start" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Setări" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Da" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "Nu" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Salvare" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Ştergeţi?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Mutare în album" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Copiere în album" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Vizualizare după" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Introduceţi numele" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Toate datele asociate acestui cont vor fi şterse. Continuaţi?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Anulare" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Album nou" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Doriţi să copiaţi sau să mutaţi imaginile din albumul iniţial?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Partajare" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Expunere diapozitive" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Începere expunere de diapozitive" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Setări expunere diapozitive" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Nici un nume" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Toate albumele" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Selectare album" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "1 element va fi şters." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Toate elementele" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d elemente" + +msgid "IDS_IV_BODY_THERE_IS_ONLY_ONE_ALBUM" +msgstr "Există un singur album." + +msgid "IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS" +msgstr "Puteţi selecta maximum %d elemente." + +msgid "IDS_MF_BODY_DOWNLOADS" +msgstr "Descărcări" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Ştergeţi?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Mutare" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Se şterge..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Operaţie nereuşită" + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Anulate" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Selectat" + +msgid "IDS_MF_POP_MOVED" +msgstr "Mutat" + +msgid "IDS_MF_POP_COPIED" +msgstr "Copiat" + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "Niciun fişier selectat" + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Închidere" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Sortare după" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Cele mai recente" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Cel mai vechi" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Creare" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Niciun element" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Editare imagine" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Selectare imagine" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Ştergeţi acest element?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Peisaj" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Eliminare din Private" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Animale de casă" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Mutare în Private" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Mâncare" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Flori" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Documente" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Vehicule" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Numărul maxim de caractere (%d) a fost atins." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Imposibil de încărcat fotografia" + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Partajare prin" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Nu se întreabă din nou" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Adăugare la marcaje" + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Oră" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Nereuşit" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Şters" + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Ştergeţi?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Eliminare..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "Se afişează %d elemente" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Creare album" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Galerie" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Mai multe" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Conturi" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Operaţie nereuşită" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Descărcare" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Căutare" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Înapoi" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Cameră" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Toate" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Reîmprospătare" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Eliminare" + +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_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Contacte" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Creare" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Detalii" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Imprimare" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Redenumire" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Descărcat" + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Se descarcă..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Introduceţi numele." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Fişierele mele" + +msgid "IDS_MF_POP_ADDED" +msgstr "Adăugat" + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Se procesează..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Tip fişier neacceptat" + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "După ce realizaţi imagini, acestea vor fi afişate." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Mod Peisaj" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Atingeţi de două ori pentru a închide meniul derulant." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Atingeţi de două ori pentru a deschide meniul derulant." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Glisare şi fixare" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Panou" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Date mobile dezactivate. Conectaţi-vă utilizând reţeaua Wi-Fi sau activaţi datele mobile şi încercaţi din nou" + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Este necesară o conexiune Wi-Fi. Conectaţi-vă la reţeaua Wi-Fi şi încercaţi din nou" + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Adăugaţi imagini din" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Dispozitive conectate" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Conţinut privat" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Eliminare din %s" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Eliminaţi eticheta de nume" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "Nu există evenimente de afişat. Creaţi un eveniment nou." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "Pentru derularea rapidă la alte date, menţineţi apăsat indicatorul de dată din partea din dreapta de sus a ecranului." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "Eliminaţi %d elemente?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Eliminaţi acest element?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Galerie" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +msgstr "Imagini amestecate" + +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Ştergere element" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Ştergere elemente" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 element" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 secunde" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 secunde" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Neatribuit" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Interval expunere diapozitive" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Fără etichetă" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 secunde" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Întregul conţinut" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Conţinut pentru afişare" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Ştergere etichetă" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Conţinut de pe dispozitiv" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Conţinut din Dropbox" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Conţinut de pe Facebook" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Rotire stânga" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Rotire dreapta" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Importați" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Importate" + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Se importă..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Încărcare..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "S-au găsit dispozitive în apropiere." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "Nu s-au găsit dispozitive. Căutarea dispozitivelor aflate în apropiere va continua în fundal." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Reîmprospătat" + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Se roteşte..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Scanarea a început. Lista dispozitivelor va fi actualizată automat." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Se începe descărcarea..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Copiere în" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Mutare în" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Adăugarea comenzii rapide nu a reuşit." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Memorie insuficientă. Ştergeţi câteva elemente" + +msgid "IDS_MF_POP_REMOVED" +msgstr "Eliminat" + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Se adaugă..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "Ştergeţi %d albume?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Spaţiu de stocare privat" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Glisaţi aici." + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Nou" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Negrupate" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Capturi de ecran" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Fotografii" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Descărcare eşuată" + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Fişier neacceptat" + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 rezultat" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d rezultate" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Favorite" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Descărcare anulată" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Ştergeţi acest album?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Avertisment" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Sortare după" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Azi" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Dată" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "Nu sunt elemente de afişat." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Atingeţi aici pentru a realiza fotografii sau videoclipuri." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "A fost depăşit numărul maxim de elemente care pot fi partajate (%d)." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Atingeţi pentru a adăuga imagini." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Copiaţi sau mutaţi elementele selectate din albumul iniţial?" + +msgid "IDS_GALLERY_HEADER_SELECT" +msgstr "Selectare" + +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Selectare totală" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d selectate" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Vizualizare ca" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Dată (cea mai recentă)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Dată (cea mai veche)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "După ce faceţi fotografii, acestea vor fi afişate aici." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Se anulează..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "De pe dispozitiv" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "Din Dropbox" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "De pe Facebook" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Descărcare terminată" + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Toate elementele vor fi şterse." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "1 element va fi descărcat." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "%d elemente vor fi descărcate." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Toate elementele vor fi descărcate." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "Albumul selectat este acelaşi cu albumul sursă. Selectaţi alt album." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Atingeţi aici pentru a adăuga imagini" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +msgstr "Datele nu pot fi salvate" + +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Spaţiul de pe cardul SD 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_MF_BUTTON_CANCEL_ABB3" +msgstr "Anulare" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Nu mai afişa" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Utilizarea Datelor mobile în roaming poate genera costuri suplimentare, în funcţie de planul tarifar." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "%d elemente vor fi şterse." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Ştergere" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Ieri" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Descărcări" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Copiere" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Ştergere" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Albume" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "S-a depăşit numărul maxim de elemente (%d)." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Anulare" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "EFECTUAT" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ANULARE" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "ŞTERGERE" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Copiere..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Mutare" + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "În cazul în care creaţi conţinut care include elemente pentru spaţiul de stocare personal, este posibil ca acesta să nu fie ascuns în mod automat. Conţinutul personal selectat ar putea fi văzut la vizualizarea noului conţinut." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "EDITARE" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Setări" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "EDITARE" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Reordonare" + diff --git a/res/po/ru_RU.po b/res/po/ru_RU.po new file mode 100644 index 0000000..06db860 --- /dev/null +++ b/res/po/ru_RU.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Ваше устройство не подключено к сети Wi-Fi. За подключение к мобильной сети может взиматься дополнительная плата (в зависимости от вашего тарифного плана)" + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Мобильные данные включены. Подключитесь к сети Wi-Fi или включите мобильные данные и повторите попытку." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "Здесь будут отображаться видеозаписи, сделанные с помощью камеры." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Имя файла уже используется" + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "Удалить %d элем.?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Конфиденциальность" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Сен" + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Окт" + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Ноя" + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "Май" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Мар" + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Июн" + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Июл" + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Янв" + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Фев" + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Дек" + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Авг" + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Апр" + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Альбом" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Опции" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Неверные параметры ввода" + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Пустая запись." + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "Имя уже используется." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Невозможно переименовать." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Альбомы не выбраны." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Выберите элемент" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Нет альбомов" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Создать папку?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Повторить?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Удалить?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "Альбомы (%d) будут удалены." + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "Будет удален 1 альбом." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Камера" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Запуск" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Настройки" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Да" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "Нет" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "ОК" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Сохранить" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Удалить?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Переместить в альбом" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Копировать в альбом" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Вид" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Введите имя" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Все данные, относящиеся к этой учетной записи, будут удалены. Продолжить?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Отмена" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Новый альбом" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Скопировать или переместить фотографии из исходного альбома?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Поделиться" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Слайд-шоу" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Запустить" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Параметры" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Нет имени" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Все альбомы" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Выберите альбом" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "Будет удален 1 элемент." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Все элементы" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "Эл-ов: %d" + +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_MF_BODY_DOWNLOADS" +msgstr "Загрузки" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Удалить?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Переместить" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Удаление..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Сбой операции." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Отменено" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Выбранное" + +msgid "IDS_MF_POP_MOVED" +msgstr "Перемещено." + +msgid "IDS_MF_POP_COPIED" +msgstr "Скопировано." + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "Нет выбранных файлов." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Закрыть" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Сортировать по" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Последние" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Старые" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Создать" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Нет элементов" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Изменить изображение" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Выберите рисунок" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Удалить этот элемент?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Пейзаж" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Удалить из приватного режима" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Домашние животные" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Добавить в приватный режим" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Еда" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Цветы" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Документы" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Транспортные средства" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Достигнуто максимальное число символов (%d)." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Невозможно загрузить фотографию." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Отправить через" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Больше не спрашивать" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Достигнуто максимальное число символов." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Время" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Сбой" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Удалено." + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Удалить?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Удаление..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "Отображается элементов: %d" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Создать альбом" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Галерея" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Еще" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Учетные записи" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Сбой операции." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Загрузка" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Поиск" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Назад" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Камера" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Все" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Обновить" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Удалить" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Здесь будут показаны фотографии, отправленные в Dropbox." + +msgid "IDS_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Контакты" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Создать" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Свойства" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Печать" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Переименовать" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Загружено." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Загрузка..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Введите название." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Мои файлы" + +msgid "IDS_MF_POP_ADDED" +msgstr "Добавлено." + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Обработка..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Неподдерживаемый тип файла" + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "После съемки снимки будут показаны." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Альбомная ориентация" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Дважды нажмите, чтобы закрыть меню." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Дважды нажмите, чтобы открыть меню." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Перетаскивание" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Меню" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Мобильные данные отключены. Подключитесь к сети Wi-Fi или снова включите мобильные данные и повторите попытку" + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Требуется подключение к Wi-Fi. Подключитесь к сети Wi-Fi и повторите попытку" + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Добавить изображения из" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Подключенные устройства" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Частное содержимое" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Удалить из %s" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Удалить тег имени" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "Нет событий. Создайте новое событие." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "Для быстрого перехода к другим датам нажмите и удерживайте индикатор даты в правом верхнем углу экрана." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "Удалить элементы (%d)?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Удалить этот элемент?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Галерея" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Удалить элемент" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Удалить элементы" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 элемент" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 секунд" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 секунд" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Не назначено" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Интервал для слайд-шоу" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Неотмеченные" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 секунды" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Все содержимое" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Параметры отображения" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Удалить метку" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Содержимое на устройстве" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Содержимое Dropbox" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Содержимое Facebook" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Повернуть влево" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Повернуть вправо" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Импорт" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Импортировано." + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Импорт..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Загрузка..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Обнаружены устройства поблизости." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "Ни одного устройства не найдено. Поиск устройств поблизости будет продолжен в фоновом режиме" + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Обновлено." + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Поворот..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Запущено сканирование. Список устройств будет обновлен автоматически" + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Начало загрузки..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Копировать" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Переместить" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Не удалось добавить ярлык." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Недостаточно памяти. Удалите некоторые элементы" + +msgid "IDS_MF_POP_REMOVED" +msgstr "Удалено." + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Добавление..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "Удалить альбомы (%d)?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Приватное хранилище" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Перетащите сюда." + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Новые" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Без группы" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Снимки экрана" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Фотографии" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Загрузка невозможна." + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Неподдерживаемый файл" + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "Результатов: 1" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "Результатов: %d" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Избранное" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Загрузка отменена." + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Удалить этот альбом?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Предупреждение" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Сортировка" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Сегодня" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Дата" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "Элементов для отображения нет." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Нажмите здесь, чтобы снять фотографии или видео." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Превышено максимальное количество отправляемых элементов (%d)." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Нажмите, чтобы добавить изображения." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Копировать или переместить выбранные элементы из исходного альбома?" + +msgid "IDS_GALLERY_HEADER_SELECT" +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Выбрать все" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "Выбрано: %d" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Вид" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Дата (последние)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Дата (старые)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "Здесь выводятся снятые фотографии." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Отмена..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "С устройства" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "С Dropbox" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "С Facebook" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Загрузка завершена." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Все элементы будут удалены." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "Будет загружен 1 элемент." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Будет загружено элементов: %d." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Будут загружены все элементы." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "Выбранный альбом совпадает с исходным. Выберите другой альбом." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Нажмите здесь, чтобы добавить изображения" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Недостаточно места на карте памяти SD. Откройте “Параметры” > “Питание и хранилище” > “Хранилище”, удалите часть файлов и повторите попытку." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "Отмена" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Больше не показывать" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "За использование мобильных данных в роуминге может взиматься дополнительная плата (в зависимости от вашего тарифного плана)." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "Элементы (%d) будут удалены." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Удалить" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Вчера" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Загрузки" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Копировать" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Удалить" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Альбомы" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "Превышено максимальное число элементов (%d)." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Отмена" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "ГОТОВО" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ОТМЕНА" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "УДАЛИТЬ" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Копирование..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Перемещение..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Если создается содержимое, включающее данные из личного хранилища, оно может не скрываться автоматически. Личное содержимое может быть видно при просмотре нового содержимого." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "ИЗМЕНИТЬ" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Настройки" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "Изменить" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Изменить порядок" + diff --git a/res/po/sk.po b/res/po/sk.po new file mode 100644 index 0000000..bebc56c --- /dev/null +++ b/res/po/sk.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Vaše zariadenie nie je pripojené k sieti Wi-Fi. Pripojenie k mobilnej sieti môže znamenať ďalšie poplatky v závislosti od vášho tarifného programu." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobilné dátové pripojenie je vypnuté. Pripojte sa namiesto toho k sieti Wi-Fi alebo zapnite mobilné dátové pripojenie a skúste to znova." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "Po nahratí videí použitím fotoaparátu sa zobrazia tu." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Názov súboru sa už používa." + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "Vymazať %d položiek?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Súkromie" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Sep." + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Okt." + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Nov." + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "Máj" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Mar." + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Jún" + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Júl" + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Jan." + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Feb." + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Dec." + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Aug." + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Apr." + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Album" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Ďalšie" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Neplatný vstupný parameter." + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Prázdna položka." + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "Rovnaký názov sa už používa." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Nedá sa premenovať." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Nie sú vybraté žiadne albumy." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Vybrať položku" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Žiadne albumy" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Vytvoriť priečinok?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Opakovať?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Odstrániť?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "%d albumy sa odstránia." + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album sa odstráni." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Fotoaparát" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Štart" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Nastavenia" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Áno" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "Nie" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Uložiť" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Odstrániť?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Premiestniť do albumu" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Kopírovať do albumu" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Zobraziť podľa" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Zadať meno" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Všetky údaje týkajúce sa tohto konta sa vymažú. Pokračovať?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Zrušiť" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Nový album" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Chcete skopírovať alebo premiestniť obrázky z pôvodného albumu?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Zdieľať" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Prezentácia" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Spustiť prezentáciu" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Nastavenia prezentácie" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Žiadny názov" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Všetky albumy" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Vybrať album" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "1 položka sa vymaže." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Všetky položky" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "Počet položiek: %d" + +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_MF_BODY_DOWNLOADS" +msgstr "Stiahnuté položky" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Odstrániť?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Presun." + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Odstraňovanie..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Operácia zlyhala." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Zrušené" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Vybrané" + +msgid "IDS_MF_POP_MOVED" +msgstr "Presunuté." + +msgid "IDS_MF_POP_COPIED" +msgstr "Skopírované." + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "Nie je vybraný žiadny súbor." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Zavrieť" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Zoradiť podľa" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Najnovšie" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Najstaršie" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Vytvoriť" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Žiadne položky" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Upraviť obrázok" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Vyberte obrázok" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Odstrániť túto položku?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Scenéria" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Odstrániť z priečinka Súkromné" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Domáce zvieratá" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Premiestniť do priečinka Súkromné" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Jedlo" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Kvety" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Dokumenty" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Vozidlá" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Dosiahol sa maximálny počet znakov (%d)." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Fotografia sa nedá načítať." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Zdieľať cez" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Už sa nepýtať" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Bol dosiahnutý maximálny počet znakov." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Čas" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Zlyhanie" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Odstránené." + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Odstrániť?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Odstraňovanie..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "Počet zobrazených položiek: %d" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Vytvoriť album" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Galéria" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Ďalšie" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Kontá" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Operácia zlyhala." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Stiahnuť" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Hľadať" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Späť" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Fotoaparát" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Všetky" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Obnoviť" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Odstrániť" + +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_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Skupin. prehrávanie" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Kontakty" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Vytvoriť" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Podrobnosti" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Tlač" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Premenovať" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Stiahnuté." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Sťahovanie..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Zadať meno" + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Moje súbory" + +msgid "IDS_MF_POP_ADDED" +msgstr "Pridané." + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Prebieha spracovanie..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Nepodporovaný typ súboru." + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "Po fotografovaní sa zobrazia obrázky." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Režim na šírku" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Dvojitým ťuknutím zavriete vysúvacie menu." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Dvojitým ťuknutím otvoríte vysúvacie menu." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Uchopiť a presunúť" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Zásuvka" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobilné dátové pripojenie je vypnuté. Pripojte sa namiesto toho k sieti Wi-Fi alebo zapnite mobilné dátové pripojenie a skúste to znova" + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Vyžaduje sa pripojenie k sieti Wi-Fi. Pripojte sa k sieti Wi-Fi a skúste to znova" + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Pridať fotografie z" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Pripojené zariadenia" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Súkromný obsah" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Odstrániť z kategórie %s" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Odstrániť menovku" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "Nie sú žiadne udalosti na zobrazenie. Vytvorte novú udalosť." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "Ak chcete rýchlo prejsť na iné dátumy, ťuknite na indikátor dátumu v pravom hornom rohu obrazovky a podržte ho." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "Odstrániť %d položky?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Odstrániť túto položku?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Galéria" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +msgstr "Náhodne zoradené fotografie" + +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Odstrániť položku" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Odstrániť položky" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 položka" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 sekúnd" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 sekúnd" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Nepriradené" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Interval prezentácie" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Bez značky" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 sekundy" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Všetok obsah" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Obsah na zobrazenie" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Vymazať značku" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Obsah zariadenia" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Obsah služby Dropbox" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Obsah služby Facebook" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Otočiť doľava" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Otočiť doprava" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Importovať" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Importované." + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Importuje sa..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Načítava sa..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Našli sa blízke zariadenia." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "Nenašli sa žiadne zariadenia. Hľadanie blízkych zariadení bude pokračovať na pozadí." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Obnovené." + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Otáča sa..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Vyhľadávanie sa spustilo. Zoznam zariadení sa aktualizuje automaticky." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Spúšťa sa sťahovanie..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Kopírovať do" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Presunúť do" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Nepodarilo sa pridať odkaz." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Nedostatok pamäte. Vymažte niektoré položky" + +msgid "IDS_MF_POP_REMOVED" +msgstr "Odstránené." + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Pridávanie..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "Vykonať odstránenie %d albumov?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Súkromné úložisko" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Presuňte sem." + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Nové" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Nezoskupené" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Snímky obrazovky" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Fotografie" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Stiahnutie nedostupné." + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Nepodporovaný súbor." + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 výsledok" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "Výsledky: %d" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Obľúbené" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Sťahovanie zrušené." + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Odstrániť tento album?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Upozornenie" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Usporiadať podľa" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Dnes" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Dátum" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "Žiadne položky na zobrazenie." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Ťuknutím sem môžete fotografovať alebo nahrávať videá." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Prekročil sa maximálny počet položiek, ktoré môžete zdieľať (%d)." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Ťuknutím môžete obrázky." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Chcete skopírovať alebo premiestniť vybraté položky z pôvodného albumu?" + +msgid "IDS_GALLERY_HEADER_SELECT" +msgstr "Vyberte" + +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Vybrať všetko" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "Vybraté: %d" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Zobraziť ako" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Dátum (najnovšie)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Dátum (najstaršie)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "Po nasnímaní fotografií sa zobrazia tu." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Ruší sa..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "Zo zariadenia" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "Zo služby Dropbox" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "Zo služby Facebook" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Sťahovanie dokončené." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Všetky položky sa vymažú." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "Stiahne sa 1 položka." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Vykoná sa stiahnutie %d položiek." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Stiahnu sa všetky položky." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "Vybratý album sa zhoduje so zdrojovým albumom. Vyberte iný album." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Ťuknutím sem môžete pridať fotografie" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +msgstr "Údaje sa nedajú ulož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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Na karte SD 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_MF_BUTTON_CANCEL_ABB3" +msgstr "Zrušiť" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Už nezobrazovať" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Používanie mobilného dátového pripojenia počas roamingu môže mať za následok ďalšie poplatky v závislosti od vášho tarifného programu." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "Vykoná sa odstránenie %d položiek." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Odstrániť" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Včera" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Sťahovania" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Kopírovanie" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Odstrániť" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Albumy" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "Prekročil sa maximálny počet položiek (%d)." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Zrušiť" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "HOTOVO" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "ZRUŠIŤ" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "ODSTRÁNIŤ" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Kopírovanie..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Presúvanie..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Ak vytvoríte obsah zahŕňajúci položky z osobného úložného priestoru, nemusí byť automaticky skrytý. Vybratý osobný obsah by mohol byť viditeľný pri prezeraní nového obsahu." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "UPRAVIŤ" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Nastavenia" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "UPRAVIŤ" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Zmeniť poradie" + diff --git a/res/po/sl.po b/res/po/sl.po new file mode 100644 index 0000000..1c6ddd7 --- /dev/null +++ b/res/po/sl.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Vaša naprava ni povezana z omrežjem Wi-Fi. Povezava z mobilnim omrežjem lahko povzroči dodatne stroške, odvisno od vaše naročnine." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Funkcija Prenos podatkov prek mobilnega omrežja je izklopljena. Namesto tega se povežite z omrežjem Wi-Fi, ali pa vklopite funkcijo Prenos podatkov prek mobilnega omrežja in poskusite znova." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "Ko boste s kamero posneli videoposnetke, bodo prikazani tukaj." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Ime datoteke je že v uporabi." + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "Zbrišem %d predmetov?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Zasebnost" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "sep." + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "okt." + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "nov." + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "maj" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "mar." + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "jun." + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "jul." + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "jan." + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "feb." + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "dec." + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "avg." + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "apr." + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Album" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Več" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Neveljaven vhodni parameter." + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Prazen vnos." + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "XXX se že uporablja." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Ni mogoče preimenovati." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Ni izbranih albumov." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Izberi predmet" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Ni albumov" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Ustvarim mapo?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Poskusim znova?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Odstranim?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "%d albumov bo izbrisanih." + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album bo izbrisan." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Fotoaparat" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Začetek" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Nastavitve" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Da" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "Ne" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "V redu" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Shrani" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Izbrišem?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Premakni v album" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Kopiraj v album" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Prikaz po" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Vnesite ime" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Vsi podatki, povezani s tem računom, bodo izbrisani. Nadaljujem?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Prekliči" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Nov album" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Želite kopirati ali premakniti slike iz izvirnega albuma?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Deli" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Diaprojekcija" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Začni diaprojekcijo" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Nastavitve diaprojekcije" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Brez imena" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Vsi albumi" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Izberite album" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "1 element bo izbrisan." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Vsi elementi" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d predmetov" + +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_MF_BODY_DOWNLOADS" +msgstr "Prenosi" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Izbrišem?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Premik" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Brišem" + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Postopek ni uspel." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Preklicano" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Izbrano" + +msgid "IDS_MF_POP_MOVED" +msgstr "Premaknjeno." + +msgid "IDS_MF_POP_COPIED" +msgstr "Kopirano." + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "Ni izbranih datotek." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Zapri" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Razvrsti po" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Najnovejše" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Najstarejše" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Ustvari" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Ni predmetov" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Uredi sliko" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Izberite sliko" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Želite izbrisati ta element?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Prizorišče" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Odstrani iz zasebne" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Domače živali" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Premaknite v mapo Zasebno" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Hrana" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Rože" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Dokumenti" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Vozila" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Doseženo je največje število znakov (%d)." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Fotografije ni mogoče naložiti." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Souporaba preko" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Ne vprašaj znova" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Doseženo je največje dovoljeno število znakov." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Čas" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Ni uspelo" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Izbrisano." + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Izbrišem?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Odstranjujem ..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "Število prikazanih elementov: %d" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Ustvari album" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Galerija" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Več" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Računi" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Postopek ni uspel." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Prenos" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Iskanje" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Nazaj" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Kamera" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Vse" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Osveži" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Odstrani" + +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_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Skupinska igra" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Imenik" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Ustvari" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Podrobnosti" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Tiskanje" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Preimenuj" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Preneseno." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Prenašam ..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Vnesite ime." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Moje datoteke" + +msgid "IDS_MF_POP_ADDED" +msgstr "Dodano." + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Obdelujem..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Nepodprta vrsta datoteke." + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "Ko boste posneli fotografije, bodo prikazane." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Ležeči način" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Dvakrat pritisnite, da zaprete predalni meni." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Dvakrat pritisnite, da odprete predalni meni." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Povlecite in spustite" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Predal" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobilni podatki so onemogočeni. Povežite se z omrežjem Wi-Fi ali omogočite mobilne podatke in poskusite znova" + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Zahtevana je povezava z omrežjem Wi-Fi. Povežite se z omrežjem Wi-Fi in poskusite znova" + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Dodajte slike iz" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Povezane naprave" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Zasebna vsebina" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Odstrani iz kategorije %s" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Odstrani ime oznake" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "Ni dogodkov za prikaz. Ustvarite nov dogodek." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "Če želite hitro skočiti na druge datume, pritisnite in držite kazalnik datuma v zgornjem desnem delu zaslona." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "Odstranim %d elementov?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Želite odstraniti ta element?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Galerija" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +msgstr "Naključne slike" + +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Brisanje elementa" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Izbrišite elemente" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 element" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 sekund" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 sekund" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Ni dodeljeno" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Interval diaprojekcije" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Brez oznake" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 sekunde" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Vsa vsebina" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Vsebina za prikaz" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Izbriši oznako" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Vsebina naprave" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Vsebina storitve Dropbox" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Vsebina storitve Facebook" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Zavrti v levo" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Zavrti v desno" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Uvoz" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Uvoženo." + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Uvažam ..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Nalaganje..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Najdene naprave v bližini." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "Nobena naprava ni najdena. Iskanje naprav v bližini se bo nadaljevalo v ozadju." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Osveženo." + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Sukanje ..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Iskanje se je začelo. Seznam naprav bo samodejno posodobljen." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Prenos se začenja ..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Kopiraj v" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Premakni v" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Bližnjice ni uspelo dodati." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Ni dovolj pomnilnika. Izbrišite nekaj predmetov" + +msgid "IDS_MF_POP_REMOVED" +msgstr "Odstranjeno." + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Dodajam..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "Želite izbrisati toliko albumov: %d?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Zasebna shramba" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Povlecite sem." + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Novo" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Razdruženo" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Posnetki zaslona" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Fotografije" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Prenos ni na voljo." + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Nepodprta datoteka." + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 rezultat" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d rezultatov" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Priljubljene" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Nalaganje preklicano." + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Želite izbrisati ta album?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Opozorilo" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Uredi po" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Danes" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Datum" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "Ni elementov za prikaz." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Pritisnite tukaj za slikanje ali snemanje videa." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Največje dovoljeno število elementov, ki jih je mogoče deliti z drugimi (%d), je preseženo." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Pritisnite, da dodate slike." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Želite kopirati ali premakniti izbrane elemente iz izvirnega albuma?" + +msgid "IDS_GALLERY_HEADER_SELECT" +msgstr "Izberite" + +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Izberite vse" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d izbranih" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Prikaži kot" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Datum (najnovejši)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Datum (najstarejši)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "Ko napravite fotografije, bodo prikazane tukaj." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Preklic ..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "Iz naprave" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "Iz storitve Dropbox" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "Iz storitve Facebook" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Prenos je končan." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Vsi elementi bodo izbrisani." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "Prenesen bo 1 element." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Prenesenih bo toliko elementov: %d." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Preneseni bodo vsi elementi." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "Izbrani album je enak kot izvirni album. Izberite drug album." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Pritisnite tukaj, da dodate slike" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +msgstr "Podat. ni mogoče shraniti" + +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Na kartici SD ni dovolj prostora. Pojdite v meni Nastavitve > Energija in shramba > Shramba, izbrišite nekaj datotek in poskusite znova." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "Prekliči" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Ne pokaži znova" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Uporaba prenosa podatkov prek mobilnega omrežja na gostovanju lahko povzroči dodatne stroške, odvisno od vaše naročnine." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "Izbrisanih bo toliko elementov: %d." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Izbriši" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Včeraj" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Prenosi" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Kopiranje" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Izbriši" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Albumi" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "Največje dovoljeno število elementov (%d) je preseženo." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Prekliči" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "KONČANO" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "PREKLIČI" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "IZBRIŠI" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Kopiram ..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Premikam" + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Če ustvarite vsebino, ki vsebuje elemente iz osebne shrambe, ta vsebina morda ne bo samodejno skrita. Izbrana osebna vsebina je lahko vidna pri ogledovanju nove vsebine." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "UREJANJE" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Nastavitve" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "UREDI" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Prerazporeditev" + diff --git a/res/po/sr.po b/res/po/sr.po new file mode 100644 index 0000000..ce9eb2f --- /dev/null +++ b/res/po/sr.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Uređaj nije povezan na Wi-Fi mrežu. Povezivanje na mrežu mobilne telefonije može dovesti do dodatnih troškova u zavisnosti od tarifnog paketa." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Prenos podataka putem mobilne telefonije je isključen. Umesto toga, poveži se na Wi-Fi mrežu ili uključi Prenos podataka putem mobilne telefonije i pokušaj ponovo." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "Nakon snimanja video zapisa kamerom, oni će se prikazati ovde." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Naziv fajla već u upotrebi." + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "Obriši %d stavki?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Privatnost" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Sep." + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Okt." + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Nov." + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "Maj" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Mar." + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Jun." + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Jul." + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Jan." + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Feb." + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Dec." + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Avg." + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Apr." + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Album" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Još" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Neispravan ulazni parametar." + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Unos je prazan." + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "Taj naziv je već u upotrebi." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Nemoguće preimenovati." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Albumi nisu izabrani." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Izaberi objekat" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Nema albuma" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Kreiraj folder?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Ponovi?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Ukloni?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "Biće obrisana/o %d albuma." + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album će biti izbrisan." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Kamera" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Start" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Podešavanja" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Da" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "Ne" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Sačuvaj" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Obriši?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Premesti u album" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Kopiraj u album" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Prikaži po" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Unesi ime" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Biće obrisani svi podaci povezani sa ovim nalogom. Nastavak?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Otkaži" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Novi album" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Da li želiš da kopiraš ili premestiš slike iz originalnog albuma?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Podeli" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Slajd-šou" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Pokreni slajd-šou" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Podešavanja za slajd-šou" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Nema imena" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Svi albumi" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Izaberi album" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "1 stavka će biti izbrisana." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Sve stavke" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d stavki" + +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_MF_BODY_DOWNLOADS" +msgstr "Preuzimanja" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Obriši?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Premesti" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Brisanje..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Operacija neuspešna." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Otkazano" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Označeno" + +msgid "IDS_MF_POP_MOVED" +msgstr "Premešteno." + +msgid "IDS_MF_POP_COPIED" +msgstr "Iskopirano." + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "Nema izabranih fajlova." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Zatvori" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Sortiraj po" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Najnovije" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Najstarije" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Kreiraj" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Nema stavki" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Izmeni sliku" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Izaberi sliku" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Izbrisati ovu stavku?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Scenery" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Ukloni iz režima Privatno" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Kućni ljubimci" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Premesti u folder Privatno" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Hrana" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Cveće" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Dokumenti" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Vozila" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Dostignut maksimalan broj karaktera (%d)." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Nije moguće učitati fotografiju." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Podeli koristeći" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Ne pitaj ponovo" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Dostignut maksimalan broj karaktera." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Vreme" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Nije uspelo" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Obrisano." + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Obriši?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Uklanjanje..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "Prikazuje se %d stavki" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Kreiraj album" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Galerija" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Još" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Nalozi" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Operacija neuspešna." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Preuzmi" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Pretraži" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Nazad" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Kamera" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Sve" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Osveži" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Ukloni" + +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_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Grupno reprodukov." + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Kontakti" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Kreiraj" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Detalji" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Štampaj" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Preimenuj" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Preuzeto." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Preuzimanje..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Unesi ime." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Moji fajlovi" + +msgid "IDS_MF_POP_ADDED" +msgstr "Dodato." + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Obrada..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Nepodržani tip fajla." + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "Nakon što snimiš fotografije, one će se prikazati." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Položeno" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Dvaput kucni za zatvaranje menija za fioke." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Dvaput kucni za otvaranje menija za fioke." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Prevuci i otpusti" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Fioka" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Prenos podataka putem mobilne telefonije nije omogućen. Umesto toga, poveži se na Wi-Fi mrežu ili omogući prenos podataka putem mobilne telefonije i pokušaj ponovo" + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Neophodna je Wi-Fi veza. Poveži se na Wi-Fi mrežu i pokušaj ponovo" + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Dodaj slike iz" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Povezani uređaji" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Privatni sadržaj" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Ukloni iz %s" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Ukloni oznaku sa imenom" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "Ne postoji nijedan događaj. Kreiraj novi događaj." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "Da bi brzo došla/la do drugih datuma, kucni i zadrži indikator datuma gore desno na ekranu." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "Ukloni %d stavke/i?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Ukloniti ovu stavku?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Galerija" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +msgstr "Nasumične slike" + +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Izbriši stavku" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Izbriši stavke" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 stavka" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 sekundi" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 sekundi" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Nedodeljeno" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Interval za slajd-šou" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Uklonjena oznaka" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 sekunde" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Sav sadržaj" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Sadržaj za prikazivanje" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Obriši oznaku" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Sadržaj uređaja" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Dropbox sadržaj" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Facebook sadržaj" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Rotiraj ulevo" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Rotiraj udesno" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Uvezi" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Uvezeno." + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Uvoz..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Učitavanje..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Pronađeni su uređaji u blizini." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "Uređaji nisu pronađeni. Skeniranje uređaja u blizini će se nastaviti u pozadini." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Osveženo." + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Rotiranje..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Skeniranje je počelo. Lista uređaja će se dopuniti automatski." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Preuzimanje počinje..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Kopiraj u" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Premesti u" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Neuspešno dodavanje prečice." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Nedovoljno memorije. Obriši neke od stavki" + +msgid "IDS_MF_POP_REMOVED" +msgstr "Uklonjeno." + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Dodavanje..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "Izbrisati %d albuma?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Privatna memorija" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Prevuci ovde." + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Novo" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Negrupisano" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Snimci ekrana" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Fotografije" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Preuzimanje neuspešno." + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Nepodržani tip fajla." + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 rezultat" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d rezultata" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Omiljeni" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Preuzimanje prekinuto." + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Izbrisati ovaj album?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Upozorenje" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Sortiraj po" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Danas" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Datum" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "Nema stavki za prikaz." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Kucni ovde za fotografisanje ili snimanje videa." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Dostignut je maksimalan broj stavki (%d) koje se mogu deliti." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Kucni za dodavanje slika." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Kopirati ili premestiti izabrane stavke iz originalnog albuma?" + +msgid "IDS_GALLERY_HEADER_SELECT" +msgstr "Izaberi" + +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Izaberi sve" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "Izabrano je %d" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Prikaži kao" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Datum (najnoviji)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Datum (najstariji)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "Nakon što snimiš slike, one će se prikazati ovde." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Otkazivanje..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "U uređaju" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "U Dropbox-u" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "Sa Facebook-a" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Preuzimanje završeno." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Biće obrisane sve stavke." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "Jedna stavka će biti preuzeta." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Biće preuzet sledeći broj stavki: %d." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Sve stavke će biti preuzete." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "Izabrani album je isti kao izvorni album. Izaberi drugi album." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Kucni ovde za dodavanje slika" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +msgstr "Nemoguće čuvanje podataka" + +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Nema dovoljno prostora na SD kartici. Idi na Podešavanja > Napajanje i skladište > Skladišna lokacija, a zatim izbriši neke fajlove i pokušaj ponovo." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "Otkaži" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Ne prikazuj ponovo" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Korišćenje Podataka za mobilne uređaje u romingu može dovesti do dodatnih troškova u zavisnosti od tarifnog paketa." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "Biće izbrisan sledeći broj stavki: %d." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Izbriši" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Juče" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Preuzimanja" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Kopiraj" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Izbriši" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Albumi" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "Prekoračen je maksimalan broj stavki (%d)." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Otkaži" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "GOTOVO" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "OTKAŽI" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "IZBRIŠI" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Kopiranje..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Premeštanje" + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Ako kreiraš sadržaj koji uključuje stavke iz lične memorije, on možda neće automatski biti skriven. Izabrani ličan sadržaj može se videti prilikom prikaza novog sadržaja." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "IZMENI" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Podešavanja" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "IZMENI" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Preuredi" + diff --git a/res/po/sv.po b/res/po/sv.po new file mode 100644 index 0000000..8dd324c --- /dev/null +++ b/res/po/sv.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Enheten är inte ansluten till ett Wi-Fi-nätverk. Att ansluta till ett mobilt nätverk kan medföra ytterligare avgifter beroende på din betalningsplan." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobildata har slagits av. Anslut till ett Wi-Fi-nätverk istället eller slå på Mobildata och försök igen." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "När du har spelat in videor med kameran visas de här." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Filnamnet används redan." + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "Radera %d objekt?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Privat" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Sep" + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Okt" + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Nov" + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "maj" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Mar" + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Jun" + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Jul" + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Jan" + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Feb" + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Dec" + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Aug" + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Apr" + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Album" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Mer" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Felaktig indataparameter." + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Posten är tom." + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "Detta namn används redan." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Kan inte byta namn." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Inga valda album." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Välj objekt" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Inga album" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Skapa mapp?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Försök igen?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Ta bort?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "%d album kommer att tas bort." + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 album kommer att tas bort." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Kamera" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Starta" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Inställningar" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Ja" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "Nej" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Spara" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Radera?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Flytta till album" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Kopiera till album" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Visa efter" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Ange namn" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Alla data som hänför sig till det här kontot raderas. Fortsätta?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Avbryt" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Nytt album" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Vill du kopiera eller flytta bilderna från det ursprungliga albumet?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Dela" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Bildspel" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Starta bildspel" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Bildspelsinställningar" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Inget namn" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Alla album" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Välj album" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "1 objekt kommer att tas bort." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Alla objekt" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d objekt" + +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_MF_BODY_DOWNLOADS" +msgstr "Nedladdningar" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Radera?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Flytta" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Raderar..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Åtgärden misslyckades." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Avbruten" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Markerade" + +msgid "IDS_MF_POP_MOVED" +msgstr "Flyttad." + +msgid "IDS_MF_POP_COPIED" +msgstr "Kopierad." + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "Inga filer valda." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Stäng" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Sortera efter" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Senaste" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Äldst" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Skapa" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Inga objekt" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Redigera bild" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Välj bild" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Ta bort det här objektet?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Landskap" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Ta bort från Privat" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Husdjur" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Flytta till Privat" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Mat" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Blommor" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Dokument" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Fordon" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Högsta antal tecken (%d) har uppnåtts." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Det går inte att läsa in fotot." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Dela via" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Fråga inte igen" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Maximalt antal tecken har använts." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Tid" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Misslyckad" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Raderad." + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Radera?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Tar bort..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "Visar %d objekt" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Skapa album" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Galleri" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Mer" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Konton" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Åtgärden misslyckades." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Hämta" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Sök" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Åter" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Kamera" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Alla" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Uppdatera" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Ta bort" + +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_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Kontakter" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Skapa" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Detaljer" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Skriv ut" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Byt namn" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Nedladdade." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Laddar ned..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Ange namn." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Mina filer" + +msgid "IDS_MF_POP_ADDED" +msgstr "Tillagd." + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Bearbetar..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Filtypen stöds inte." + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "När du har tagit bilder visas bilderna." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Landskap läge" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Dubbeltryck för att stänga lådmenyn." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Dubbeltryck för att öppna lådmenyn." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Dra och släpp" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Låda" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobildata har inaktiverats. Anslut till ett Wi-Fi-nätverk istället eller aktivera mobildata och gör ett nytt försök." + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Wi-Fi-anslutning krävs. Anslut till Wi-Fi-nätverk och försök igen." + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Lägg till bilder från" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Anslutna enheter" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Privat innehåll" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Ta bort från %s" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Ta bort namntagg" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "Det finns inga händelser att visa. Skapa en ny händelse." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "Bläddra snabbt till andra datum, tryck på datumindikatorn högst upp till höger på skärmen och håll den nedtryckt." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "Ta bort %d objekt?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Vill du ta bort artikeln?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Galleri" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +msgstr "Blandade bilder" + +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Ta bort objekt" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Ta bort objekt" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 objekt" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 sekunder" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 sekunder" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Inte tilldelad" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Bildspelsintervall" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Ej taggad" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 sekunder" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Allt innehåll" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Innehåll som ska visas" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Radera tagg" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Innehåll på enheten" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Innehåll i Dropbox" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Innehåll på Facebook" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Rotera moturs" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Rotera medurs" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Importera" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Importerat." + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Importerar..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Laddar..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Hittade enheter i närheten." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "Inga enheter hittades. Sökningen efter enheter i närheten fortsätter i bakgrunden." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Uppdaterad." + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Roterar..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Sökningen startades. Enhetslistan uppdateras automatiskt." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Startar hämtning..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Kopiera till" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Flytta till" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Det gick inte att lägga till genväg." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Minnet räcker inte. Radera några objekt." + +msgid "IDS_MF_POP_REMOVED" +msgstr "Borttagen." + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Lägger till..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "Ta bort %d album?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Privat lagring" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Dra hit." + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Ny" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Ej grupperad" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Skärmbilder" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Foton" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Hämtning misslyckades." + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Filen stöds inte." + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 resultat" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d resultat" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Favoriter" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Nedladdning avbruten." + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Ta bort detta album?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Varning" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Sortera efter" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Idag" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Datum" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "Inga objekt att visa." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Tryck här för att ta bilder och spela in video." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Max. antal objekt som kan delas (%d) har överskridits." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Tryck för att lägga till bilder." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Vill du kopiera eller flytta de valda objekten från det ursprungliga albumet?" + +msgid "IDS_GALLERY_HEADER_SELECT" +msgstr "Välj" + +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Markera alla" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d valda" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Visa som" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Datum (senaste)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Datum (äldsta)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "När du har tagit bilder visas de här." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Avbryter ..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "Från enhet" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "Från Dropbox" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "Från Facebook" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Nedladdning klar." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Alla objekt tas bort." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "1 objekt hämtas." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "%d objekt hämtas." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Alla objekt hämtas." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "Det valda albumet är samma som källalbumet. Välj ett annat album." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Tryck här för att lägga till bilder" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +msgstr "Går inte att spara data" + +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Det finns inte tillräckligt med utrymme på SD-kortet. Gå till Inställningar > Ström och lagring > Lagring och ta bort några filer. Försök sedan igen." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "Avbryt" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Visa inte igen" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Användning av Mobila data under roaming kan medföra extra avgifter beroende på din betalningsplan." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "%d objekt kommer att tas bort." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Ta bort" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Igår" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Nedladdningar" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Kopiera" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Ta bort" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Album" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "Max antal objekt (%d) har överskridits." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Avbryt" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "KLAR" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "AVBRYT" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "TA BORT" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Kopierar..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Flyttar..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Om du skapar innehåll som innehåller objekt från privat lagring, kan det kanske inte döljs automatiskt. Det valda privata innehållet kanske visas när du visar det nya innehållet." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "REDIGERA" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Inställningar" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "REDIGERA" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Ordna om" + diff --git a/res/po/tr_TR.po b/res/po/tr_TR.po new file mode 100644 index 0000000..ae4a7f1 --- /dev/null +++ b/res/po/tr_TR.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Cihazınız Wi-Fi ağına bağlı değil. Mobil ağa bağlanmak ödeme planınıza bağlı olarak ek ücretle sonuçlanabilir." + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobil veri kapatıldı. Bunun yerine Wi-Fi ağına bağlanın veya Mobil veriyi etkinleştirip tekrar deneyin." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "Kamerayı kullanarak video çektiğinizde videolar burada görüntülenir." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Dosya adı kullanılıyor" + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "%d öğeleri silinsin mi?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Gizlilik" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Eyl." + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Eki." + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Kas." + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "May." + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Mar." + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Haz." + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Tem." + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Ocak" + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Şub." + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Ara." + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Ağu." + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Nis." + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Albüm" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Daha fazla" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Giriş parametresi geçersiz." + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Girdi yok." + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "İsim zaten kullanımda." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Yeniden adlandırılamıyor. Dosya kullanımda." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Albüm seçilmedi." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Öğe seç" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Albüm yok" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Klasör oluşturulsun mu?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Tekrar denensin mi?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Kaldır?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "%d albüm silinecek" + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 albüm silinecek" + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Kamera" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Başlat" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Ayarlar" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Evet" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "Hayır" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "Tamam" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Kaydet" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Sil?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Albüme taşı" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Albüme kopyala" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Görünüm kriteri" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "İsim girin" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Bu hesapla ilgili tüm veriler silinecek. Devam edilsin mi?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "İptal" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Yeni albüm" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Orijinal albümden fotoğrafları kopyalamak veya taşımak istiyor musunuz?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Paylaşıma aç" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Slayt gösterisi" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Slayt gösterisini başlat" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Slayt gösterisi ayarları" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "İsim yok" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Tüm albümler" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Albüm seç" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "1 öğe silinecek." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Tüm öğeler" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d öğe" + +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_MF_BODY_DOWNLOADS" +msgstr "İndirilenler" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Sil?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Taşı" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Siliniyor..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "İşlem başarısız." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "İptal edildi" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Seçili" + +msgid "IDS_MF_POP_MOVED" +msgstr "Taşındı." + +msgid "IDS_MF_POP_COPIED" +msgstr "Kopyalandı." + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "Dosya seçilmedi." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Kapat" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Sıralama ölçütü" + +msgid "IDS_CAM_POP_LATEST" +msgstr "En son" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "En eski" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Oluştur" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Öğe yok" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Resmi düzenle" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Resim seç" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Bu öğe silinsin mi?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Manzara" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Özelden Kaldır" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Evcil hayvanlar" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Özel'e taşı" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Yiyecek" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Çiçekler" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Belgeler" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Araçlar" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Maksimum karakter sayısına (%d) ulaşıldı." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Fotoğraf yüklenemiyor." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Şununla paylaş" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Tekrar sorma" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Maksimum karakter sayısına ulaşıldı." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Saat" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Başarısız" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Silindi." + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Sil?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Çıkartılıyor..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "%d öğe gösteriliyor" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Albüm oluştur" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Galeri" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Daha fazla" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Hesaplar" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "İşlem başarısız." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "İndir" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Ara" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Geri" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Kamera" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Hepsi" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Yenile" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Kaldır" + +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_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Kişiler" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Oluştur" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Ayrıntılar" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Yazdır" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Yeniden adlandır" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "İndirildi." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "İndiriliyor..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "İsim girin." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Dosyalarım" + +msgid "IDS_MF_POP_ADDED" +msgstr "Eklendi." + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Uygulanıyor..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Dosya türü desteklenmiyor." + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "Resimleri cektikten sonra, resimler gösterilecektir." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Yatay görünüm modu" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Açılır menüyü kapatmak için çift dokunun." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Açılır menüyü açmak için çift dokunun." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Sürükle ve bırak" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Çekmece" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobil veri devre dışı. Bunun yerine Wi-Fi ağına bağlanın veya mobil veriyi etkinleştirin ve tekrar deneyin." + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Wi-Fi bağlantısı gerekiyor. Wi-Fi ağına bağlanın ve tekrar deneyin." + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Resim ekleme konumu" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Bağlı cihazlar" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Özel içerik" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "%s üzerinden kaldır" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "İsim etiketini kaldır" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "Görüntülenecek etkinlik yok. Yeni bir etkinlik oluşturun." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "Diğer tarihlere hızla geçiş yapmak için ekranın sağ üst kısmındaki tarih göstergesini basılı tutun." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "%d öğe kaldırılsın mı?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Bu öğe kaldırılsın mı?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Galeri" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +msgstr "Karıştırılmış fotoğraflar" + +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Öğeyi sil" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Öğeleri sil" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 öğe" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 saniye" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 saniye" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Atanmadı" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Slayt gösterisi aralığı" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Etiketsiz" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 saniye" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Tüm içerik" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Görüntülenecek içerik" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "İmi sil" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Cihaz içeriği" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Dropbox içeriği" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Facebook içeriği" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Saat yönünün tersine döndür" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Saat yönünde döndür" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Dışardan al" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Alındı." + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Dışarıdan alınıyor..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Yükleniyor..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Yakındaki cihazlar bulundu." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "Hiçbir cihaz bulunamadı. Yakın cihazları taramaya arkaplanda devam edilecek." + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Yenilendi." + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Döndürülüyor..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Tarama başladı. Cihaz listesi otomatik olarak güncellenecek." + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "İndirme başlatılıyor..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Şuraya kopyala" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Şuraya taşı" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Kısayol eklenemedi." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Yeterli hafıza yok. Bazı öğeleri silin." + +msgid "IDS_MF_POP_REMOVED" +msgstr "Kaldırıldı." + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Ekleniyor..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "%d albüm silinsin mi?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Özel depolama" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Buraya sürükleyin." + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Yeni" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Gruplanmamış" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Ekran resimleri" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Fotoğraflar" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "İndirme başarısız." + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Dosya desteklenmiyor." + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 sonuç" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d sonuç" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Favoriler" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Yükleme iptal edildi." + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Bu albüm silinsin mi?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Uyarı" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Sıralama ölçütü" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Bugün" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Tarih" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "Görüntülenecek öğe yok." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Fotoğraf veya video çekmek için buraya dokunun." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Paylaşılabilecek maksimum öğe sayısı (%d) aşıldı." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Resim eklemek için dokun." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Orijinal albümdeki seçili öğeler kopyalansın veya taşınsın mı?" + +msgid "IDS_GALLERY_HEADER_SELECT" +msgstr "Seç" + +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Tümünü seç" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d seçildi" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Farklı görüntüle" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Tarih (en yeni)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Tarih (en eski)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "Fotoğraflar çekildikten sonra burada gösterilir." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "İptal ediliyor..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "Cihazdan" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "Dropbox'tan" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "Facebook'tan" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Yükleme tamamlandı." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Tüm öğeler silinecek." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "1 öğe indirilecek." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "%d öğe indirilecek." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Tüm öğeler indirilecek." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "Seçilen albüm kaynak albümle aynı. Başka bir albüm seçin." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Resim eklemek için buraya dokunun" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +msgstr "Veriler kaydedilemiyor" + +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "SD kartınızda yeterli alan yok. Ayarlar > Güç ve hafıza > Hafıza bölümüne gidin, ardından bazı dosyaları silip tekrar deneyin." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "İptal et" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Tekrar gösterme" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Dolaşım sırasında Mobil verileri kullanmak ödeme planınıza bağlı olarak ek ücretlerin uygulanmasına neden olabilir." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "%d öğe silinecek." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Sil" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Dün" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "İndirilenler" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Kopyala" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Sil" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Albümler" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "Maksimum öğe sayısı (%d) aşıldı." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "İptal" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "BİTTİ" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "İPTAL" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "SİL" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Kopyalanıyor..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Taşıyor..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Kişisel bellekteki öğeleri içeren bir içerik oluşturursanız bu içerik otomatik olarak gizlenemeyebilir. Seçilen kişisel içerikler, yeni içerik görüntülenirken görülebilir." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "DÜZENLE" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Ayarlar" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "DÜZENLE" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Yeniden sırala" + diff --git a/res/po/uk.po b/res/po/uk.po new file mode 100644 index 0000000..ffbdbeb --- /dev/null +++ b/res/po/uk.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Пристрій не підключено до мережі Wi-Fi. Підключення до мобільної мережі може призвести до додаткових витрат залежно від тарифного плану" + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Використання мобільних даних вимкнено. Натомість підключіться до мережі Wi-Fi або ввімкніть використання мобільних даних і спробуйте ще раз." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "Після запису відео за допомогою камери їх буде відображено тут." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Ім’я файла вже використовується" + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "Видалити %d об’єктів?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Конфіденційність" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Вер" + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Жов" + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Лис." + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "Тра" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Бер" + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Чер." + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Лип." + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Січ" + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Лют" + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Гру" + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Сер" + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Кві" + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Альбом" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Більше" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Неправильний вхідний параметр." + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Запис порожній." + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "Ім’я вже використовується." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Неможливо перейменувати." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Не вибрано альбомів." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Виберіть елемент" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Немає альбомів" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Створити папку?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Повторити?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Видалити?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "Буде видалено альбомів: %d" + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 альбом буде видалено." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Камера" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Запустити" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Налаштування" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Так" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "Ні" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Зберегти" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "Видалити?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Перемістити до альбому" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Копіювати до альбому" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Вигляд" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Введіть назву" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Усі дані, пов'язані з цим обліковим записом, буде видалено. Продовжити?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Скасувати" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Новий альбом" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Бажаєте копіювати або перемістити фотографії з вихідного альбому?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Поділитися" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Слайд-шоу" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Розпочати слайд-шоу" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Установки слайд-шоу" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Немає імені" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Усі альбоми" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Вибір альбому" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "1 об’єкт буде видалено." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Усі об’єкті" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d об’єктів" + +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_MF_BODY_DOWNLOADS" +msgstr "Завантаження" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "Видалити?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Переміст." + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "Видалення..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Збій операції." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Скасовано" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Вибране" + +msgid "IDS_MF_POP_MOVED" +msgstr "Переміщено." + +msgid "IDS_MF_POP_COPIED" +msgstr "Скопійовано." + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "Файли не вибрані." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Закрити" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Сортувати за" + +msgid "IDS_CAM_POP_LATEST" +msgstr "Найновіші" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Найдавніша" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Створити" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Немає елементів" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Редагувати зображення" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Вибрати картинку" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Видалити цей об’єкт?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Пейзаж" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Видалити з особистого режиму" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Домашні улюбленці" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Перемістити до особистої папки" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Їжа" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Квіти" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Документи" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Транспортні засоби" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Досягнуто максимальної кількості символів: %d." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Неможливо завантажити фотографію." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Поділитися" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Більше не запитувати" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Досягнуто максимальної кількості символів." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Час" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Збій" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "Видалено." + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "Видалити?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Видалення..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "Відображення %d об’єктів" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Створити альбом" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Галерея" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Додатково" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Облікові записи" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Збій операції." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Завантаження" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Пошук" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Назад" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Камера" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Всі" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Оновити" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Видалити" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "Об’єкти буде відображено після завантаження фотографій до Dropbox." + +msgid "IDS_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Контакти" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Створити" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Деталі" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Друк" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Перейменувати" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Завантажено." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Завантаження..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Введіть назву." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Мої файли" + +msgid "IDS_MF_POP_ADDED" +msgstr "Додано." + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Обробка..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Формат не підтримується." + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "Зображення відобразяться після фотозйомки." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Альбомний режим" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Двічі натисніть, щоб закрити висувне меню." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Двічі натисніть, щоб відкрити висувне меню." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Перетягування" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Висувне меню" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Використання мобільних даних вимкнено. Підключіться до мережі Wi-Fi або увімкніть використання мобільних даних та спробуйте ще раз" + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Потрібне підключення до мережі Wi-Fi. Підключіться до мережі Wi-Fi та спробуйте ще раз" + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Додавання фотографій із" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Підключені пристрої" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Особистий вміст" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "Видалити з %s" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Видалення тега імені" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "Немає подій для відображення. Створіть нову подію." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "Для швидкого переходу до інших дат натисніть та утримуйте індикатор дати у верхньому правому куті екрана." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "Видалити %d об’єктів?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Видалити цей об’єкт?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Галерея" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Видалити об’єкт" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Видалити об’єкти" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 об’єкт" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 секунд" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 секунд" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Не призначено" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Інтервал слайд-шоу" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Без тегу" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 секунди" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Весь вміст" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Вміст для відображення" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Видалити тег" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Вміст пристрою" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Вміст Dropbox" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Вміст Facebook" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Обернути ліворуч" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "Обернути праворуч" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Імпортувати" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Імпортовано." + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Імпортування..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Завантаження..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Знайдено пристрої поблизу." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "Пристрої не знайдено. Пошук наявних поблизу пристроїв буде продовжено у фоновому режимі" + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Оновлено." + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Обертання..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Розпочато пошук. Список пристроїв буде оновлено автоматично" + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Початок завантаження..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Копіювати на" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Перемістити в" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Не вдалося додати ярлик." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Недостатньо пам’яті. Видаліть деякі об’єкти" + +msgid "IDS_MF_POP_REMOVED" +msgstr "Видалено." + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Додавання..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "Видалити %d альбому(-ів)?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Місце збереження особистих даних" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Перетягніть сюди." + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Нова" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Незгруповані" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Знімки екрана" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Фотографії" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Збій завантаження" + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Файл не підтримується." + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 результат" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d результатів" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Обрані" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Завантаження скасовано." + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Видалити цей альбом?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Увага" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Сортування" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Сьогодні" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Дата" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "Немає об’єктів для відбраження." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Натисніть тут, щоб зробити фотографію або записати відео." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Перевищено максимальну кількість об’єктів, до яких можна надати спільний доступ (%d)." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Натисніть, щоб додати зображення." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Копіювати або перемістити вибрані об’єкти з вихідного альбому?" + +msgid "IDS_GALLERY_HEADER_SELECT" +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Вибрати всіх" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "Вибрано: %d" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Переглянути як" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Дата (останні)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Дата (найдавніші)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "Після створення знімків їх буде відображено тут." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Cкасування..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "Із пристрою" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "Із Dropbox" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "Із Facebook" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Завантаження завершено." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Усі об’єкти буде видалено." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "1 об’єкт буде завантажено." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "%d об’єктів буде завантажено." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Усі об’єкти буде завантажено." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "Вибраний і вихідний альбоми однакові. Виберіть інший альбом." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Торкніться тут, щоб додати зображення" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "Недостатньо вільного місця на карті пам’яті. Перейдіть до меню «Налаштування» > «Живлення та місце збереження» > «Місце збереження» та видаліть деякі файли, а потім спробуйте ще раз." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "Скасувати" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Більше не показувати" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Використання мобільних даних у роумінгу може призвести до додаткових витрат залежно від тарифного плану." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "%d об’єктів буде видалено." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Видалити" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Вчора" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Завантаження" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Копіювання" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Видалити" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Альбоми" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "Перевищено максимальну кількість об’єктів (%d)." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Скасувати" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "ГОТОВО" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "СКАСУВАТИ" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "ВИДАЛИТИ" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Копіювання..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Переміщення..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "У разі створення нового вмісту, в якому містяться об’єкти з особистого місця збереження, його буде неможливо автоматично приховати. Вибраний особистий вміст можна переглядати під час перегляду нового вмісту." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "РЕДАГУВАТИ" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Налаштування" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "ЗМІНИТИ" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Упорядкування" + diff --git a/res/po/update-po.sh b/res/po/update-po.sh new file mode 100755 index 0000000..6e710ce --- /dev/null +++ b/res/po/update-po.sh @@ -0,0 +1,60 @@ +#!/bin/sh + +PACKAGE=gallery +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_US en_GB ja ko zh_CN" + +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 +if [ $? -ne 0 ]; then + echo "xgettext error" + exit 1 +fi + +if [ ! -f ${PACKAGE}.po ]; then + echo "No such file: ${PACKAGE}.po" + exit 1 +fi + +rm -f ${PACKAGE}.pot && mv ${PACKAGE}.po ${PACKAGE}.pot +echo "done" + +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 new file mode 100644 index 0000000..10f1a96 --- /dev/null +++ b/res/po/uz.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Qurilmangiz Wi-Fi tarmoqqa ulanmagan. Mobil tarmoqqa ulanish tarif rejangiz asosida qo‘shimcha to‘lov olinishiga olib kelishi mumkin" + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobil ma’lumot o‘chirilgan. Uning o‘rniga Wi-Fi tarmoqqa ulaning yoki Mobil ma’lumotni yoqing va qayta urinib ko‘ring." + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "Kamera yordamida videoga olganingizdan so‘ng, ular bu yerda ko‘rsatiladi." + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "Fayl nomi avvaldan foydalanilmoqda" + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "%dta element O'chirilsinmi?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "Maxfiylik" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "Sen." + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "Okt." + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "Noy." + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "May" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "Mar." + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "Iyn." + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "Iyl." + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "Yan." + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "Fev." + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "Dek." + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "Avg." + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "Apr." + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "Albom" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "Ko‘proq" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "Noto‘g‘ri kiritish parametri." + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "Kiritish bo‘sh." + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "Bunday nom avvaldan ishlatilmoqda." + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "Nomini o‘zgartirib bo‘lmaydi." + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "Albom tanlanmagan." + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "Element tanlang" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "Albomlar yo‘q" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "Jild yaratilsinmi?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "Qayta urinib ko‘rilsinmi?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "Olib tashlansinmi?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "%d ta albom o'chiriladi." + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "1 albom yo‘q qilinadi." + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "Kamera" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "Boshlash" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "Parametrlar" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "Ha" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "Yo‘q" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "OK" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "Saqlash" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "O'chirilsinmi?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "Albomga ko‘chirish" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "Albomga nusxa ko‘chirish" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "Quyid. bo‘yicha ko‘r/chiq" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "Nom kiriting" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "Ushbu hisob qaydnomasiga tegishli barcha ma’lumotlar o'chirib tashlanadi. Davom ettirilsinmi?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "Bekor qilish" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "Yangi albom" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Rasmlarni birlamchi albomga nusxa ko‘chirish yoki ko‘chirishni istaysizmi?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "Ulashish" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "Slayd-shou" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "Slayd-shouni boshlash" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "Slayd-shou parametrlari" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "Nom yo‘q" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "Barcha albomlar" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "Albom tanlash" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "1 element yo‘q qilinadi." + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "Barcha elementlar" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d element" + +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_MF_BODY_DOWNLOADS" +msgstr "Yuklanishlar" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "O'chirilsinmi?" + +msgid "IDS_MF_SK_MOVE" +msgstr "Ko‘chir." + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "O'chirilmoqda…" + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "Operatsiya bajarilmadi." + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "Bekor qilindi" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "Tanlangan" + +msgid "IDS_MF_POP_MOVED" +msgstr "Ko‘chirilgan." + +msgid "IDS_MF_POP_COPIED" +msgstr "Nusxa olindi." + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "Fayllar tanlanmagan." + +msgid "IDS_CAM_SK_CLOSE" +msgstr "Yopish" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "Quyidagi bo‘y. saral" + +msgid "IDS_CAM_POP_LATEST" +msgstr "So‘nggi" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "Eng eski" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "Yaratish" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "Elementlar yo‘q" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "Tasvirni tahrirlash" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "Rasm tanlash" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "Ushbu element yo‘q qilinsinmi?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "Sahna" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "Maxfiydan olib tashlash" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "Uy hayvonlari" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "Maxfiyga ko‘chirish" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "Oziq-ovqat" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "Gullar" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "Hujjatlar" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "Transportlar" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "Belgilar soni ruxsat etilgan maksimal miqdorga (%d) yetdi." + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "Fotosuratni yuklab bo‘lmaydi." + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "Quyidagi orqali ulashish" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "Boshqa so'ramang" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "Belgilar soni ruxsat etilgan maksimal miqdorga yetdi." + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "Vaqt" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "Xato" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "O'chirildi." + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "O'chirilsinmi?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "Olib tashlanmoqda..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "%d ta elementni ko‘rsatish" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "Albom yaratish" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "Galereya" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "Yana" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "Hisob qaydnomalari" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "Operatsiya bajarilmadi." + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "Yuklab olish" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "Qidirish" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "Orqaga" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "Kamera" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "Barchasi" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "Yangilash" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "Olib tashlash" + +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_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "Kontaktlar" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "Yaratish" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "Tafsilotlar" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "Chop etish" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "Nom o‘zgartirish" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "Yuklandi." + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "Yuklanmoqda..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "Nom kiriting." + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "Fayllarim" + +msgid "IDS_MF_POP_ADDED" +msgstr "Qo‘shildi." + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "Bajarilmoqda..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "Qo‘llab-quvvatlanmaydigan fayl turi." + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "Rasmga olganingizdan so‘ng, rasmlar ko‘rsatiladi." + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "Albom rejimi" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "Chizish vositasi menyusini yopish uchun ikki marta teging." + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "Chizish vositasi menyusini ochish uchun ikki marta teging." + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "Tortib o‘tkazish" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "Chizish vositasi" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "Mobil ma’lumot o‘chirilgan. Uning o‘rniga Wi-Fi tarmoqqa ulaning yoki mobil ma’lumotni yoqing va qayta urinib ko‘ring" + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "Wi-Fi ulanishi talab qilinadi. Wi-Fi tarmoqqa ulaning va qayta urinib ko‘ring" + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "Quyidagidan rasm qo‘shish" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "Ulangan qurilmalar" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "Maxfiy tarkib" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "%sdan olib tashlash" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "Nom tegini olib tashlash" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "Ko‘rsatiladigan hodisalar yo‘q. Yangi hodisa yarating." + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "Boshqa sanalarga tezda o‘tish uchun ekranning yuqori o‘ng burchagida joylashgan sana indikatorini bosib turing." + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "%d element olib tashlansinmi?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "Ushbu element olib tashlansinmi?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "Galereya" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +msgstr "Tasodifiy tartibdagi rasmlar" + +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "Elementni yo‘q qil" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "Elementlarni yo‘q qilish" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1 element" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 soniya" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 soniya" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "Tayinlanmagan" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "Slayd-shou intervali" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "Teglanmagan" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 soniya" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "Butun tarkib" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "Ko‘rsatiladigan tarkib" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "Tegni o'chirib tashlash" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "Qurilmadagi tarkib" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Dropboxdagi tarkib" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Facebookdagi tarkib" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "Chapga aylantir." + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "O‘ngga aylantir." + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "Import qilish" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "Import qilindi." + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "Import qilinmoqda..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "Yuklanmoqda..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "Yaqin-atrofda joylashgan qurilmalar topildi." + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "Qurilmalar topilmadi. Yaqin-atrofdagi qurilmalarni qidirish fonda davom etadi" + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "Yangilandi." + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "Aylantirilmoqda..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "Qidirish boshlandi. Qurilmalar ro‘yxati avtomatik ravishda yangilanadi" + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "Yuklab olish boshlanmoqda..." + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "Quyidagiga nusxa ko‘chirish" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "Quyidagiga ko‘chirish" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "Yorliqni qo‘shib bo‘lmadi." + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "Xotira yetarli emas. Ba’zi elementlarni o'chiring" + +msgid "IDS_MF_POP_REMOVED" +msgstr "Olib tashlandi." + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "Qo‘shilmoqda..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "%dta albom yo‘q qilinsinmi?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "Maxfiy xotira" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "Bu yerga tortib o‘tkazing." + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "Yangi" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "Guruhdan chiqarildi" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "Ekran suratlari" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "Suratlar" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "Yuklash bajarilmadi." + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "Qo‘llab-quvvatlanmaydigan fayl." + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 natija" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d natija" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "Tanlanganlar" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "Yuklab olish bekor qilindi." + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "Ushbu albom yo‘q qilinsinmi?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "Ogohlantirish" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "Saralash" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "Bugun" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "Sana" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "Ko‘rsatiladigan elementlar yo‘q." + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "Rasm yoki videoga olish uchun bu yerga teging." + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "Ulashilgan elementlar soni maksimal miqdordan (%d) oshib ketdi." + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "Tasvirlar qo‘shish uchun teging." + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "Asl nusxadagi albomdan elementlardan nusxa ko‘chirilsinmi yoki ular ko‘chirilsinmi?" + +msgid "IDS_GALLERY_HEADER_SELECT" +msgstr "Tanlash" + +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "Barchasini tanlash" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d tanlandi" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "Quyidagi sifatida ko‘rib chiqish" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "Sana (eng oxirgi)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "Sana (eng eski)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "Rasmga olganingizdan so‘ng ular bu yerda ko‘rsatiladi." + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "Bekor qilinmoqda..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "Qurilmadan" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "Dropbox-dan" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "Facebook-dan" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "Yuklash jarayoni yakunlandi." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "Barcha elementlar o'chirib tashlanadi." + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "1 ta element yuklab olinadi." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "%d ta element yuklab olinadi." + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "Barcha elementlar yuklab olinadi." + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "Tanlangan albom manba albomi bilan bir xil. Boshqa albomni tanlang." + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "Tasvirlar qo‘shish uchun bu yerga teging" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +msgstr "Ma’lumotni saqlanmaydi" + +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "SD-kartangizda yetarli xotira mavjud emas. Parametrlar > Quvvat va xotira > Xotiraga o‘ting, so‘ngra ba’zi fayllarni yo‘q qiling va qayta urinib ko‘ring." + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "Bekor qilish" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "Boshqa ko‘rsatilmasin" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "Rouming vaqtida Mobil ma’lumotdan foydalanish tarif rejangiz asosida qo‘shimcha to‘lovlarga olib kelishi mumkin." + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "%dta element yo‘q qilinadi." + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "Yo‘q qilish" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "Kecha" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "Yuklanmalar" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "Nusxa ko‘chirish" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "Yo‘q qilish" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "Albom" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "Elementar soni maksimal miqdordan (%d) oshib ketdi." + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "Bekor qilish" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "BAJARILDI" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "BEKOR QILISH" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "O‘CHIRISH" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "Nusxa ko‘chirilmoqda..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "Ko‘chirilmoqda..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "Shaxsiy xotiradagi elementlarga ega tarkibni yaratsangiz, uni avtomatik ravishda yashirib bo‘lmaydi. Yangi tarkibni ko‘rib chiqayotganda, tanlangan shaxsiy tarkib ko‘rinishi mumkin." + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "TAHRIRLASH" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "Parametrlar" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "TAHRIRLA" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "Qayta saralash" + diff --git a/res/po/zh_CN.po b/res/po/zh_CN.po new file mode 100644 index 0000000..1d4df4e --- /dev/null +++ b/res/po/zh_CN.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "您的设备未连接至 Wi-Fi 网络。连接至移动网络根据您的付费方案可能产生额外费用。" + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "移动数据已关闭。改为连接至 Wi-Fi 网络或打开移动数据并重试。" + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "在您使用照相机录制视频后,其将显示在此处。" + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "文件名已被使用" + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "删除 %d 个项目吗?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "隐私权" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "9月" + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "10月" + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "11月" + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "5月" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "3月" + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "6月" + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "7月" + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "1月" + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "2月" + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "12月" + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "8月" + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "4月" + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "相册" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "更多" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "输入参数无效" + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "空记录。" + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "相同名字已使用" + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "无法重命名" + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "未选择音乐库。" + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "选择项目" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "无相册" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "创建文件夹吗?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "重试?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "移除?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "将删除 %d 个相册。" + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "将删除 1 个相册。" + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "照相机" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "开始" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "设定" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "是" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "否" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "确定" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "保存" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "删除?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "移动至相册" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "复制至相册" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "查看方式" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "输入名称" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "与此帐户相关的全部数据将被删除。继续?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "取消" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "新相册" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "是否要从原始相册复制或移动照片?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "共享" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "幻灯片播放" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "开始播放幻灯片" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "幻灯片播放设定" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "无名称" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "所有相册" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "选择相册" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "将删除 1 个项目。" + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "所有项目" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d个项目" + +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_MF_BODY_DOWNLOADS" +msgstr "下载列表" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "删除?" + +msgid "IDS_MF_SK_MOVE" +msgstr "移动" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "删除中.." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "操作失败" + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "已取消" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "已选定" + +msgid "IDS_MF_POP_MOVED" +msgstr "已移动" + +msgid "IDS_MF_POP_COPIED" +msgstr "已复制" + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "没有可选的文件。" + +msgid "IDS_CAM_SK_CLOSE" +msgstr "关闭" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "排序方式" + +msgid "IDS_CAM_POP_LATEST" +msgstr "最新" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "最早" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "新建" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "无项目" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "编辑图像" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "选择图片" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "是否删除该项目?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "场景" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "从私密模式移除" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "宠物" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "移动至私密模式" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "美食" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "鲜花" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "文档" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "车辆" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "已达到最大字符数(%d)。" + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "无法载入" + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "共享通过" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "不再询问" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "已达到最大字符限制" + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "时间" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "失败" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "已删除" + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "删除?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "正在移除..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "显示 %d 个项目" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "创建相册" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "相册" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "更多" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "账户" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "操作失败" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "下载" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "搜索" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "返回" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "照相机" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "全部" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "刷新" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "移除" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "在您上传照片至 Dropbox 后,将显示项目。" + +msgid "IDS_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "联系人" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "新建" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "详情" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "打印" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "重命名" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "已下载" + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "下载中..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "输入名字。" + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "我的文件" + +msgid "IDS_MF_POP_ADDED" +msgstr "已添加" + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "处理中..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "不支持的文件类型。" + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "在您拍照后,将显示照片。" + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "横向模式" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "双击以关闭抽屉菜单。" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "双击以打开抽屉菜单。" + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "拖放" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "抽屉" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "移动数据已禁用。连接至 Wi-Fi 网络,或启用移动数据并重试。" + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "需要 Wi-Fi 连接。连接至 Wi-Fi 网络并重试。" + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "添加照片自" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "已连接设备" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "私人内容" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "从 %s 移除" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "移除名称标签" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "无可显示事件。创建一个新事件。" + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "若要快速滚动至其他日期,请轻敲并按住屏幕右上方的日期指示。" + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "移除%d个项目?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "是否移除该项目?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "相册" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "删除项目" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "删除项目" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1个项目" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 秒" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 秒" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "未分配" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "幻灯片播放间隔" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "未标签" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 秒" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "全部内容" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "要显示的内容" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "删除记录" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "设备内容" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Dropbox 内容" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Facebook 内容" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "向左旋转" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "向右旋转" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "导入" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "已导入" + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "导入中…" + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "载入中…" + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "已找到附近设备" + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "未找到设备。将在后台继续扫描附近设备。" + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "已刷新。" + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "旋转中…" + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "扫描已开始。设备列表将自动更新。" + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "正在开始下载…" + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "复制至" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "移动至" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "添加快捷方式失败。" + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "存储空间不足。请删除部分项目。" + +msgid "IDS_MF_POP_REMOVED" +msgstr "已移除" + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "添加中..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "是否删除 %d 本相册?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "私人存储空间" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "拖拽至此处" + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "新建" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "未分组" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "截屏" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "照片" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "下载失败" + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "不支持的文件" + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1个结果" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d个结果" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "收藏" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "已取消下载" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "是否删除该相册?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "警告" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "排序方式" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "今天" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "日期" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "无可显示的条目。" + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "轻敲此处以拍摄照片或视频。" + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "已超过可共享的最大项目数 (%d)" + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "点击添加图像" + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "是否从原始相册复制或移动选中项目?" + +msgid "IDS_GALLERY_HEADER_SELECT" +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "全选" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "%d 已选择" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "查看方式" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "日期(最近)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "日期(最早)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "在您拍摄照片后,其将显示在此处。" + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "正在取消..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "从设备" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "从 Dropbox" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "从 Facebook" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "下载结束" + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "全部项目将被删除。" + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "将下载 1 个项目。" + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "将下载 %d 个项目。" + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "将下载所有项目。" + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "选中的相册与源相册相同。请选择其他相册。" + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "点击此处以添加图像" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "您的 SD 卡存储空间不足。请进入设定 > 电源和存储 > 存储,然后删除部分文件并重试。" + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "取消" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "不再显示" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "根据您的付费方案,漫游时使用移动数据可能产生额外费用。" + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "将删除 %d 个项目。" + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "删除" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "昨天" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "下载" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "复制" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "删除" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "相册" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "已超过最大项目数 (%d)。" + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "取消" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "完成" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "取消" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "删除" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "正在复制..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "移动中..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "如果您创建包括来自个人存储空间的内容,其可能无法自动隐藏。选中的个人内容可在查看新内容时看到。" + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "编辑" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "设定" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "编辑" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "重新排序" + diff --git a/res/po/zh_HK.po b/res/po/zh_HK.po new file mode 100644 index 0000000..30a414d --- /dev/null +++ b/res/po/zh_HK.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "您的裝置尚未連接至 Wi-Fi 網絡。連接至流動網絡可能根據您的資費計畫產生額外費用。" + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "流動數據已關閉。改為連接至 Wi-Fi 網絡或開啟流動數據並重試。" + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "使用相機錄製影片後,將顯示於此。" + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "檔案名稱已被使用" + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "要刪除 %d 個項目嗎?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "私隱" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "9 月" + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "10 月" + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "11 月" + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "5 月" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "3 月" + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "6 月" + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "7 月" + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "1 月" + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "2 月" + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "12 月" + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "8 月" + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "4 月" + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "相簿" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "更多" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "輸入參數無效。" + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "空白記錄。" + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "相同名稱已被使用" + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "無法重新命名。" + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "未選擇專輯。" + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "選擇項目" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "無相簿" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "要建立資料夾嗎?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "要重試嗎?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "要移除嗎?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "將刪除 %d 個相簿。" + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "將刪除 1 個相簿。" + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "相機" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "開始" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "設定" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "是" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "否" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "確定" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "儲存" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "刪除嗎?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "移動至相簿" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "複製至相簿" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "檢視方式" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "輸入名稱" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "所有關於此帳戶的數據將被刪除。繼續嗎?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "取消" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "新相簿" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "要從原始相簿複製或移動圖片嗎?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "分享" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "投影片" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "開始播放投影片" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "投影片設定" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "無名稱" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "全部相簿" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "選擇相簿" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "將刪除 1 個項目。" + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "全部項目" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d 個項目" + +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_MF_BODY_DOWNLOADS" +msgstr "下載項目" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "刪除嗎?" + +msgid "IDS_MF_SK_MOVE" +msgstr "移動" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "正在刪除..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "操作失敗" + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "已取消" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "已選擇" + +msgid "IDS_MF_POP_MOVED" +msgstr "已移動" + +msgid "IDS_MF_POP_COPIED" +msgstr "已複製。" + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "無選擇檔案" + +msgid "IDS_CAM_SK_CLOSE" +msgstr "關閉" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "排序方式" + +msgid "IDS_CAM_POP_LATEST" +msgstr "最新" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "最舊" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "建立" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "無項目" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "編輯圖像" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "選擇圖片" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "刪除此項目嗎?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "場景" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "從私人資料夾中移除" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "寵物" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "移動至私人資料夾" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "美食" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "花朵" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "文件" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "車輛" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "已達字元數目上限 (%d)。" + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "無法載入相片。" + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "分享透過" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "不再詢問" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "字元數目已達上限。" + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "時間" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "失敗" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "已刪除。" + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "刪除嗎?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "正在移除..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "顯示 %d 個項目" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "建立相簿" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "媒體瀏覽器" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "更多" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "帳戶" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "操作失敗" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "下載" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "搜尋" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "返回" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "相機" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "全部" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "重新整理" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "移除" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "將圖片上載至 Dropbox 後將顯示項目。" + +msgid "IDS_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "聯絡人" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "建立" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "詳細資料" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "列印" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "重新命名" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "已下載" + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "正在下載..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "輸入名稱。" + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "我的檔案" + +msgid "IDS_MF_POP_ADDED" +msgstr "已加入" + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "正在處理..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "不支援的檔案類型。" + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "拍攝照片後,將顯示照片。" + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "橫向模式" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "輕觸兩下以關閉滑動選單功能表。" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "輕觸兩下以開啟滑動選單功能表。" + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "拖放" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "滑動選單" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "流動數據已停用。請連接 Wi-Fi 網絡或啟用流動數據並重試。" + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "需要 Wi-Fi 連接。連接至 Wi-Fi 網絡並重試。" + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "加入相片自" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "已連接裝置" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "私人資料夾內容" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "從 %s 移除" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "移除名稱標籤" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "沒有可顯示的事件。建立一個新事件。" + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "若要快速捲動至其他日期,請輕觸並按住螢幕右上方的日期指示器。" + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "是否移除 %d 個項目?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "移除此項目嗎?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "媒體瀏覽器" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "刪除項目" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "刪除項目" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1個項目" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 秒" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 秒" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "無指定" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "投影片間隔" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "未標籤" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 秒" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "全部內容" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "要顯示的內容" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "刪除標籤" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "裝置內容" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Dropbox 內容" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Facebook 內容" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "左轉" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "右轉" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "匯入" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "已匯入。" + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "正在匯入..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "正在載入..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "找到附近的裝置。" + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "未找到裝置。掃描附近裝置將於背景中繼續進行。" + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "已重新整理。" + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "正在旋轉..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "掃描已開始。裝置清單將自動更新。" + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "正在開始下載…" + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "複製到" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "移動到" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "無法加入捷徑。" + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "記憶體不足。請刪除一些項目。" + +msgid "IDS_MF_POP_REMOVED" +msgstr "已移除" + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "正在加入..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "刪除 %d 張專輯嗎?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "私人儲存空間" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "拖曳至這裡。" + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "新的" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "未分組" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "螢幕截圖" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "相片" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "不能下載" + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "不支援的檔案。" + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1 個結果" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d 個結果" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "我的最愛" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "下載已取消" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "刪除此相簿嗎?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "警告" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "排序方式" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "今天" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "日期" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "沒有要顯示的項目。" + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "輕觸這裡以拍攝相片或影片。" + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "已超過可共享的項目數量上限 (%d)。" + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "輕觸以加入圖像。" + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "從原始相簿複製或移動選擇的項目嗎?" + +msgid "IDS_GALLERY_HEADER_SELECT" +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "選擇全部" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "已選擇 %d" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "檢視方式" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "日期(最近)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "日期(最舊)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "在您拍攝相片後,將顯示於此。" + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "正在取消..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "從裝置" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "從 Dropbox" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "從 Facebook" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "下載完成" + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "所有項目將被刪除。" + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "將下載 1 個項目。" + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "將下載 %d 個項目。" + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "將下載所有項目。" + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "選擇的相簿與來源相簿相同。請選擇其他相簿。" + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "輕觸此處以加入圖像" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "您的 SD 卡上的空間不足。請前往設定 > 電源與儲存空間 > 儲存空間,然後刪除部分檔案並重試。" + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "取消" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "不要再顯示" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "在漫遊時使用流動數據可能根據您的資費方案產生額外費用。" + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "將刪除 %d 個項目。" + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "刪除" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "昨天" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "下載項目" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "複製" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "刪除" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "相簿" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "已超過項目數量上限 (%d)。" + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "取消" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "完成" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "取消" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "刪除" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "正在複製..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "正在移動..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "若您建立包括來自個人儲存空間的內容,則可能無法自動隱藏。選擇的個人內容可在檢視新內容時查看。" + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "編輯" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "設定" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "編輯" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "重新排序" + diff --git a/res/po/zh_TW.po b/res/po/zh_TW.po new file mode 100644 index 0000000..4d29e6e --- /dev/null +++ b/res/po/zh_TW.po @@ -0,0 +1,759 @@ +msgid "IDS_MF_POP_YOUR_DEVICE_IS_NOT_CONNECTED_TO_A_WI_FI_NETWORK_CONNECTING_TO_A_MOBILE_NETWORK_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "您的裝置尚未連接至 Wi-Fi 網路。連接至行動網路可能根據您的資費方案產生額外費用。" + +msgid "IDS_VIDEO_TPOP_MOBILE_DATA_TURNED_OFF_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_TURN_ON_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "行動數據已關閉。請連接 Wi-Fi 網路,或開啟行動數據並重試。" + +msgid "IDS_VIDEO_BODY_AFTER_YOU_RECORD_VIDEOS_USING_THE_CAMERA_THEY_WILL_BE_SHOWN_HERE" +msgstr "使用相機錄製影片後,將顯示於此。" + +msgid "IDS_VIDEO_TPOP_FILE_NAME_ALREADY_IN_USE" +msgstr "檔案名稱已被使用" + +msgid "IDS_MF_POP_DELETE_PD_ITEMS_Q" +msgstr "要刪除 %d 個項目嗎?" + +msgid "IDS_ST_HEADER_PRIVACY" +msgstr "隱私設定" + +msgid "IDS_COM_BODY_SEP_ABB" +msgstr "9 月" + +msgid "IDS_COM_BODY_OCT_ABB" +msgstr "10 月" + +msgid "IDS_COM_BODY_NOV_ABB" +msgstr "11 月" + +msgid "IDS_COM_BODY_MAY_ABB" +msgstr "5 月" + +msgid "IDS_COM_BODY_MAR_ABB" +msgstr "3 月" + +msgid "IDS_COM_BODY_JUN_ABB" +msgstr "6 月" + +msgid "IDS_COM_BODY_JUL_ABB" +msgstr "7 月" + +msgid "IDS_COM_BODY_JAN_ABB" +msgstr "1 月" + +msgid "IDS_COM_BODY_FEB_ABB" +msgstr "2 月" + +msgid "IDS_COM_BODY_DEC_ABB" +msgstr "12 月" + +msgid "IDS_COM_BODY_AUG_ABB" +msgstr "8 月" + +msgid "IDS_COM_BODY_APR_ABB" +msgstr "4 月" + +msgid "IDS_GALLERY_HEADER_ALBUM" +msgstr "相簿" + +msgid "IDS_MEDIABR_OPT_MORE" +msgstr "更多" + +msgid "IDS_MEDIABR_POP_INVALID_INPUT_PARAMETER" +msgstr "輸入參數無效。" + +msgid "IDS_MEDIABR_POP_ENTRY_IS_EMPTY" +msgstr "項目為空。" + +msgid "IDS_MEDIABR_POP_SAME_NAME_ALREADY_IN_USE" +msgstr "相同名稱已在使用中" + +msgid "IDS_MEDIABR_POP_UNABLE_TO_RENAME" +msgstr "無法重新命名。" + +msgid "IDS_MEDIABR_POP_NO_ALBUMS_SELECTED" +msgstr "未選擇相簿。" + +msgid "IDS_MEDIABR_HEADER_SELECT_ITEM" +msgstr "選擇項目" + +msgid "IDS_MEDIABR_BODY_NO_ALBUMS" +msgstr "無相簿" + +msgid "IDS_MEDIABR_POP_CREATE_FOLDER_Q" +msgstr "要建立資料夾嗎?" + +msgid "IDS_MEDIABR_POP_RETRY_Q" +msgstr "要重試嗎?" + +msgid "IDS_MEDIABR_POPUP_REMOVE_Q" +msgstr "要移除嗎?" + +msgid "IDS_MEDIABR_POP_PD_ALBUMS_WILL_BE_DELETED" +msgstr "將刪除 %d 個相簿。" + +msgid "IDS_MEDIABR_POP_1_ALBUM_WILL_BE_DELETED" +msgstr "將刪除 1 個相簿。" + +msgid "IDS_MEDIABR_BODY_CAMERA" +msgstr "相機" + +msgid "IDS_MEDIABR_BUTTON_START" +msgstr "開啟" + +msgid "IDS_MEDIABR_OPT_SETTINGS" +msgstr "設定" + +msgid "IDS_MEDIABR_OPT_YES" +msgstr "是" + +msgid "IDS_MEDIABR_OPT_NO" +msgstr "否" + +msgid "IDS_MEDIABR_BUTTON_OK" +msgstr "確認" + +msgid "IDS_MEDIABR_BUTTON_SAVE" +msgstr "儲存" + +msgid "IDS_MEDIABR_POP_DELETE_Q" +msgstr "要刪除嗎?" + +msgid "IDS_GALLERY_OPT_MOVE_TO_ALBUM" +msgstr "移動至相簿" + +msgid "IDS_GALLERY_OPT_COPY_TO_ALBUM" +msgstr "複製至相簿" + +msgid "IDS_GALLERY_HEADER_VIEW_BY_ABB" +msgstr "檢視依據" + +msgid "IDS_GALLERY_HEADER_ENTER_NAME" +msgstr "輸入名稱" + +msgid "IDS_MEDIABR_POP_ALL_DATA_RELATED_TO_THIS_ACCOUNT_WILL_BE_DELETED_CONTINUE_Q" +msgstr "所有此帳戶的相關資料將被刪除。要繼續嗎?" + +msgid "IDS_MEDIABR_BUTTON_CANCEL_ABB" +msgstr "取消" + +msgid "IDS_MEDIABR_TAB4_NEW_ALBUM" +msgstr "新相簿" + +msgid "IDS_MEDIABR_POP_DO_YOU_WANT_TO_COPY_OR_MOVE_THE_PICTURES_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "要從原始相簿複製或移動圖片嗎?" + +msgid "IDS_MEDIABR_OPT_SHARE" +msgstr "分享" + +msgid "IDS_MEDIABR_OPT_SLIDESHOW" +msgstr "投影片" + +msgid "IDS_MEDIABR_OPT_START_SLIDESHOW" +msgstr "開始播放投影片" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS" +msgstr "投影片設定" + +msgid "IDS_MEDIABR_POP_NO_NAME" +msgstr "無姓名" + +msgid "IDS_MEDIABR_BODY_ALL_ALBUMS" +msgstr "所有相簿" + +msgid "IDS_MEDIABR_HEADER_SELECT_ALBUM" +msgstr "選擇相簿" + +msgid "IDS_MEDIABR_POP_1_ITEM_WILL_BE_DELETED" +msgstr "將刪除 1 個項目。" + +msgid "IDS_MEDIABR_OPT_ALL_ITEMS" +msgstr "所有項目" + +msgid "IDS_MEDIABR_BODY_PD_ITEMS" +msgstr "%d 個項目" + +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_MF_BODY_DOWNLOADS" +msgstr "下載" + +msgid "IDS_MF_POP_DELETE_Q" +msgstr "要刪除嗎?" + +msgid "IDS_MF_SK_MOVE" +msgstr "移動" + +msgid "IDS_MF_POP_DELETING_ING" +msgstr "正在刪除..." + +msgid "IDS_CAM_BODY_OPERATION_FAILED" +msgstr "操作失敗" + +msgid "IDS_MSG_BODY_CANCELLED_M_CONTENT" +msgstr "已取消" + +msgid "IDS_MF_OPT_DELETE_SELECTED" +msgstr "已選擇" + +msgid "IDS_MF_POP_MOVED" +msgstr "已移動" + +msgid "IDS_MF_POP_COPIED" +msgstr "已複製。" + +msgid "IDS_VPL_POP_NO_FILES_SELECTED" +msgstr "未選擇檔案" + +msgid "IDS_CAM_SK_CLOSE" +msgstr "關閉" + +msgid "IDS_MF_OPT_SORT_BY_ABB" +msgstr "排序依據" + +msgid "IDS_CAM_POP_LATEST" +msgstr "最新" + +msgid "IDS_MEDIABR_POP_OLDEST_M_DATE" +msgstr "最舊" + +msgid "IDS_MSG_BUTTON2_CREATE" +msgstr "建立" + +msgid "IDS_MEDIABR_POP_NO_ITEMS" +msgstr "無項目" + +msgid "IDS_MEDIABR_OPT_EDIT_IMAGE" +msgstr "編輯影像" + +msgid "IDS_MEDIABR_BODY_SELECT_PICTURE" +msgstr "選擇圖片" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ITEM_Q" +msgstr "刪除此項目嗎?" + +msgid "IDS_GALLERY_OPT_SCENERY" +msgstr "場景" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PRIVATE" +msgstr "從隱私資料夾中移除" + +msgid "IDS_GALLERY_OPT_PETS" +msgstr "寵物" + +msgid "IDS_GALLERY_OPT_MOVE_TO_PRIVATE" +msgstr "移動至隱私資料夾" + +msgid "IDS_GALLERY_OPT_FOOD" +msgstr "美食" + +msgid "IDS_GALLERY_OPT_FLOWERS" +msgstr "花朵" + +msgid "IDS_GALLERY_OPT_DOCUMENTS" +msgstr "文件" + +msgid "IDS_GALLERY_MBODY_VEHICLES" +msgstr "車輛" + +msgid "IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED" +msgstr "達到%d個最大字元。" + +msgid "IDS_IV_BODY_UNABLE_TO_LOAD_PHOTO_ABB" +msgstr "無法載入相片。" + +msgid "IDS_IV_BODY_SHARE_VIA" +msgstr "分享經由" + +msgid "IDS_IV_BODY_DONT_ASK_AGAIN" +msgstr "不要再詢問" + +msgid "IDS_MF_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED" +msgstr "已達字元數上限。" + +msgid "IDS_GALLERY_HEADER_TIME" +msgstr "時間" + +msgid "IDS_EMAIL_BODY_FAILED_M_STATUS" +msgstr "失敗" + +msgid "IDS_EMAIL_BODY_DELETED" +msgstr "已刪除。" + +msgid "IDS_EMAIL_POP_DELETE_Q" +msgstr "要刪除嗎?" + +msgid "IDS_MUSIC_POP_REMOVING" +msgstr "正在移除..." + +msgid "IDS_CAM_BODY_SHOWING_PD_ITEMS_T_TTS" +msgstr "顯示 %d 個項目" + +msgid "IDS_GALLERY_OPT_CREATE_ALBUM" +msgstr "建立相簿" + +msgid "IDS_GALLERY_OPT_GALLERY_ABB" +msgstr "媒體瀏覽器" + +msgid "IDS_EMAIL_BUTTON_MORE" +msgstr "更多" + +msgid "IDS_EMAIL_OPT_ACCOUNTS" +msgstr "帳號" + +msgid "IDS_EMAIL_POP_OPERATION_FAILED" +msgstr "操作失敗" + +msgid "IDS_GALLERY_BODY_DOWNLOAD" +msgstr "下載" + +msgid "IDS_GALLERY_BODY_SEARCH" +msgstr "搜尋" + +msgid "IDS_GALLERY_BUTTON_BACK" +msgstr "返回" + +msgid "IDS_GALLERY_BUTTON_CAMERA" +msgstr "相機" + +msgid "IDS_GALLERY_HEADER_ALL" +msgstr "全部" + +msgid "IDS_GALLERY_OPT_REFRESH" +msgstr "重新整理" + +msgid "IDS_GALLERY_OPT_REMOVE" +msgstr "移除" + +msgid "IDS_IV_BODY_AFTER_YOU_UPLOAD_PICTURES_TO_DROPBOX_ITEMS_WILL_BE_SHOWN" +msgstr "將圖片上傳至 Dropbox 後將顯示項目。" + +msgid "IDS_KEEPIT_BODY_GROUP_PLAY_ABB" +msgstr "Group Play" + +msgid "IDS_MEDIABR_HEADER_CONTACTS" +msgstr "聯絡人" + +msgid "IDS_MEDIABR_OPT_CREATE" +msgstr "建立" + +msgid "IDS_MEDIABR_OPT_DETAILS" +msgstr "詳細資料" + +msgid "IDS_MEDIABR_OPT_PRINT" +msgstr "列印" + +msgid "IDS_MEDIABR_OPT_RENAME" +msgstr "重新命名" + +msgid "IDS_MEDIABR_POP_DOWNLOADED" +msgstr "已下載" + +msgid "IDS_MEDIABR_POP_DOWNLOADING_ING" +msgstr "正在下載..." + +msgid "IDS_MF_HEADER_ENTER_NAME" +msgstr "輸入名稱。" + +msgid "IDS_MF_HEADER_MYFILES" +msgstr "我的檔案" + +msgid "IDS_MF_POP_ADDED" +msgstr "已新增。" + +msgid "IDS_MF_POP_PROCESSING_ING" +msgstr "正在處理..." + +msgid "IDS_MF_POP_UNSUPPORTED_FILE_TYPE" +msgstr "不支援的檔案類型。" + +msgid "IDS_IMGE_BODY_AFTER_YOU_TAKE_PICTURES_PICTURES_WILL_BE_SHOWN" +msgstr "拍攝照片後,將顯示照片。" + +msgid "IDS_IME_BODY_LANDSCAPE_MODE" +msgstr "橫向模式" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_CLOSE_DRAWER_MENU_TTS" +msgstr "按兩下來關閉抽屜功能表。" + +msgid "IDS_EMAIL_BODY_DOUBLE_TAP_TO_OPEN_DRAWER_MENU_TTS" +msgstr "按兩下來開啟抽屜功能表。" + +msgid "IDS_EMAIL_BODY_DRAG_AND_DROP" +msgstr "拖放" + +msgid "IDS_EMAIL_OPT_DRAWER_ABB" +msgstr "抽屜" + +msgid "IDS_EMAIL_POP_MOBILE_DATA_IS_DISABLED_CONNECT_TO_WI_FI_NETWORK_INSTEAD_OR_ENABLE_MOBILE_DATA_AND_TRY_AGAIN" +msgstr "行動數據已停用。請連接 Wi-Fi 網路或啟用行動數據再重試。" + +msgid "IDS_EMAIL_POP_WI_FI_CONNECTION_REQUIRED_CONNECT_TO_WI_FI_NETWORK_AND_TRY_AGAIN" +msgstr "需要 Wi-Fi 連接。連接至 Wi-Fi 網路然後重試。" + +msgid "IDS_GALLERY_HEADER_ADD_PICTURES_FROM_ABB" +msgstr "新增圖片從" + +msgid "IDS_GALLERY_HEADER_CONNECTED_DEVICES_ABB" +msgstr "已連接的裝置" + +msgid "IDS_GALLERY_OPT_PRIVATE_CONTENT" +msgstr "私密內容" + +msgid "IDS_GALLERY_OPT_REMOVE_FROM_PS" +msgstr "從 %s 移除" + +msgid "IDS_GALLERY_OPT_REMOVE_NAME_TAG" +msgstr "移除姓名標籤" + +msgid "IDS_GALLERY_POP_THERE_ARE_NO_EVENTS_TO_DISPLAY_CREATE_A_NEW_EVENT" +msgstr "沒有要顯示的活動。建立新活動。" + +msgid "IDS_GALLERY_POP_TO_SCROLL_QUICKLY_TO_OTHER_DATES_TAP_AND_HOLD_THE_DATE_INDICATOR_AT_THE_TOP_RIGHT_OF_THE_SCREEN" +msgstr "若要快速捲動至其他日期,請輕觸並按住螢幕右上角的日期指示器。" + +msgid "IDS_GP_POP_REMOVE_PD_ITEMS_Q" +msgstr "移除%d個項目?" + +msgid "IDS_GP_POP_REMOVE_THIS_ITEM_Q" +msgstr "移除此項目嗎?" + +msgid "IDS_HELP_BODY_GALLERY" +msgstr "媒體瀏覽器" + +msgid "IDS_HELP_OPT_SHUFFLED_PICTURES" +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_KEEPIT_HEADER_DELETE_ITEM_ABB" +msgstr "刪除項目" + +msgid "IDS_KEEPIT_HEADER_DELETE_ITEMS" +msgstr "刪除項目" + +msgid "IDS_MEDIABR_BODY_1_ITEM" +msgstr "1個項目" + +msgid "IDS_MEDIABR_BODY_10_SECONDS" +msgstr "10 秒" + +msgid "IDS_MEDIABR_BODY_5_SECONDS" +msgstr "5 秒" + +msgid "IDS_MEDIABR_BODY_NOT_ASSIGNED" +msgstr "未指定" + +msgid "IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL" +msgstr "投影片放映間隔" + +msgid "IDS_MEDIABR_BODY_UNTAGGED" +msgstr "未標記" + +msgid "IDS_MEDIABR_OPT_3_SECONDS" +msgstr "3 秒" + +msgid "IDS_MEDIABR_OPT_ALL_CONTENT" +msgstr "所有內容" + +msgid "IDS_MEDIABR_OPT_CONTENT_TO_DISPLAY" +msgstr "要顯示的內容" + +msgid "IDS_MEDIABR_OPT_DELETE_TAG" +msgstr "刪除標籤" + +msgid "IDS_MEDIABR_OPT_DEVICE_CONTENT" +msgstr "裝置內容" + +msgid "IDS_MEDIABR_OPT_DROPBOX_CONTENT" +msgstr "Dropbox 內容" + +msgid "IDS_MEDIABR_OPT_FACEBOOK_CONTENT" +msgstr "Facebook 內容" + +msgid "IDS_MEDIABR_OPT_ROTATE_LEFT" +msgstr "向左旋轉" + +msgid "IDS_MEDIABR_OPT_ROTATE_RIGHT" +msgstr "向右旋轉" + +msgid "IDS_MEDIABR_POP_IMPORT" +msgstr "匯入" + +msgid "IDS_MEDIABR_POP_IMPORTED" +msgstr "已匯入。" + +msgid "IDS_MEDIABR_POP_IMPORTING_ING" +msgstr "正在匯入..." + +msgid "IDS_MEDIABR_POP_LOADING_ING" +msgstr "正在載入..." + +msgid "IDS_MEDIABR_POP_NEARBY_DEVICES_FOUND" +msgstr "找到附近的裝置。" + +msgid "IDS_MEDIABR_POP_NO_DEVICES_FOUND_SCANNING_FOR_NEARBY_DEVICES_WILL_CONTINUE_IN_BACKGROUND" +msgstr "未找到裝置。搜尋附近裝置將於背景繼續進行。" + +msgid "IDS_MEDIABR_POP_REFRESHED" +msgstr "已重新整理。" + +msgid "IDS_MEDIABR_POP_ROTATING_ING" +msgstr "正在旋轉..." + +msgid "IDS_MEDIABR_POP_SCAN_STARTED_DEVICE_LIST_WILL_BE_UPDATED_AUTOMATICALLY" +msgstr "掃描已開始。裝置清單將自動更新。" + +msgid "IDS_MEDIABR_POP_STARTING_DOWNLOAD_ABB" +msgstr "正在開始下載…" + +msgid "IDS_MF_OPT_COPY_TO" +msgstr "複製到" + +msgid "IDS_MF_OPT_MOVE_TO" +msgstr "移動到" + +msgid "IDS_MF_POP_FAILED_TO_ADD_SHORTCUT" +msgstr "無法新增捷徑。" + +msgid "IDS_MF_POP_NOT_ENOUGH_MEMORY_DELETE_SOME_ITEMS" +msgstr "記憶體不足。請刪除部分項目。" + +msgid "IDS_MF_POP_REMOVED" +msgstr "已移除。" + +msgid "IDS_MUSIC_POP_ADDING" +msgstr "正在加入..." + +msgid "IDS_MUSIC_POP_DELETE_PD_ALBUMS_Q" +msgstr "刪除 %d 張專輯嗎?" + +msgid "IDS_ST_BODY_PRIVATE_STORAGE" +msgstr "私密儲存空間" + +msgid "IDS_IV_BODY_DRAG_HERE" +msgstr "拖曳至這裡" + +msgid "IDS_GALLERY_BODY_NEW_M_ALBUM_ABB" +msgstr "新活動" + +msgid "IDS_GALLERY_HEADER_UNGROUPEDM_PEOPLE_ABB" +msgstr "未分組" + +msgid "IDS_KEEPIT_OPT_SCREENSHOTS_ABB" +msgstr "螢幕截圖" + +msgid "IDS_MEDIABR_OPT_PHOTOS" +msgstr "相片" + +msgid "IDS_MEDIABR_POP_DOWNLOAD_FAILED" +msgstr "無法下載" + +msgid "IDS_MEDIABR_POP_UNSUPPORTED_FILE" +msgstr "不支援的檔案。" + +msgid "IDS_SEARCH_BODY_1_RESULT" +msgstr "1個結果" + +msgid "IDS_SEARCH_BODY_PD_RESULTS" +msgstr "%d 個結果" + +msgid "IDS_TW_BODY_FAVORITES" +msgstr "我的最愛" + +msgid "IDS_EMAIL_POP_DOWNLOAD_CANCELLED" +msgstr "下載已取消" + +msgid "IDS_GALLERY_POP_DELETE_THIS_ALBUM_Q" +msgstr "刪除此專輯嗎?" + +msgid "IDS_CAM_HEADER_WARNING_ABB" +msgstr "警告" + +msgid "IDS_ALM_OPT_SORT_BY" +msgstr "排序依據" + +msgid "IDS_CLD_OPT_TODAY" +msgstr "今天" + +msgid "IDS_GALLERY_BODY_DATE" +msgstr "日期" + +msgid "IDS_EMAIL_BODY_NO_ITEMS_TO_DISPLAY" +msgstr "沒有要顯示的項目。" + +msgid "IDS_PBR_BODY_TAP_HERE_TO_TAKE_PICTURES_OR_VIDEOS" +msgstr "輕觸這裡以拍照或攝影。" + +msgid "IDS_NFC_TPOP_MAXIMUM_NUMBER_OF_ITEMS_THAT_CAN_BE_SHARED_HPD_EXCEEDED" +msgstr "超過可共享的項目數量上限(%d)。" + +msgid "IDS_IV_BODY_TAP_TO_ADD_IMAGES" +msgstr "輕觸以新增圖像。" + +msgid "IDS_GALLERY_POP_COPY_OR_MOVE_THE_SELECTED_ITEMS_FROM_THE_ORIGINAL_ALBUM_Q" +msgstr "要從原始相簿複製或移動選擇的項目嗎?" + +msgid "IDS_GALLERY_HEADER_SELECT" +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_GALLERY_HEADER_SELECT_ALL_ABB" +msgstr "全選" + +msgid "IDS_GALLERY_HEADER_PD_SELECTED_ABB" +msgstr "已選擇 %d" + +msgid "IDS_GALLERY_OPT_VIEW_AS" +msgstr "檢視方式" + +msgid "IDS_GALLERY_OPT_DATE_HMOST_RECENT_ABB2" +msgstr "日期(最近的)" + +msgid "IDS_GALLERY_OPT_DATE_HOLDEST_ABB3" +msgstr "日期(最舊的)" + +msgid "IDS_GALLERY_BODY_AFTER_YOU_TAKE_PICTURES_THEY_WILL_BE_SHOWN_HERE" +msgstr "拍照後,將顯示於此。" + +msgid "IDS_CLOUD_TPOP_CANCELLING_ING" +msgstr "取消中..." + +msgid "IDS_GALLERY_OPT_FROM_DEVICE_ABB" +msgstr "自裝置" + +msgid "IDS_GALLERY_OPT_FROM_DROPBOX_ABB" +msgstr "自 Dropbox" + +msgid "IDS_GALLERY_OPT_FROM_FACEBOOK_ABB" +msgstr "自 Facebook" + +msgid "IDS_MUSIC_BODY_DOWNLOAD_COMPLETED" +msgstr "下載完成" + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DELETED" +msgstr "所有項目將被刪除。" + +msgid "IDS_GALLERY_POP_1_ITEM_WILL_BE_DOWNLOADED" +msgstr "將下載 1 個項目。" + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DOWNLOADED" +msgstr "將下載 %d 個項目。" + +msgid "IDS_GALLERY_POP_ALL_ITEMS_WILL_BE_DOWNLOADED" +msgstr "將下載所有項目。" + +msgid "IDS_GALLERY_TPOP_SELECTED_ALBUM_SAME_AS_SOURCE_ALBUM_SELECT_ANOTHER_ALBUM" +msgstr "選擇的相簿與來源相簿相同。請選擇其他相簿。" + +msgid "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES" +msgstr "輕觸此處以新增圖像" + +msgid "IDS_MF_HEADER_UNABLE_TO_SAVE_DATA_ABB" +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_MF_POP_THERE_IS_NOT_ENOUGH_SPACE_ON_YOUR_SD_CARD_GO_TO_SETTINGS_POWER_AND_STORAGE_STORAGE_THEN_DELETE_SOME_FILES_AND_TRY_AGAIN" +msgstr "SD 卡上的空間不足。前往設定 > 電力與儲存空間 > 儲存空間來刪除部分檔案,然後重試。" + +msgid "IDS_MF_BUTTON_CANCEL_ABB3" +msgstr "取消" + +msgid "IDS_MF_OPT_DO_NOT_SHOW_AGAIN_ABB2" +msgstr "不再顯示" + +msgid "IDS_MF_POP_USING_MOBILE_DATA_WHILE_ROAMING_MAY_RESULT_IN_ADDITIONAL_CHARGES_DEPENDING_ON_YOUR_PAYMENT_PLAN" +msgstr "漫遊時使用行動數據可能視您的付費方案而產生額外費用。" + +msgid "IDS_GALLERY_POP_PD_ITEMS_WILL_BE_DELETED_ABB" +msgstr "將刪除%d 個項目。" + +msgid "IDS_GALLERY_OPT_DELETE" +msgstr "刪除" + +msgid "IDS_GALLERY_BODY_YESTERDAY" +msgstr "昨天" + +msgid "IDS_BR_MBODY_DOWNLOADS" +msgstr "下載內容" + +msgid "IDS_GALLERY_HEADER_COPY" +msgstr "複製" + +msgid "IDS_MUSIC_OPT_DELETE" +msgstr "刪除" + +msgid "IDS_GALLERY_BUTTON_ALBUMS" +msgstr "相簿" + +msgid "IDS_GALLERY_POP_THE_MAXIMUM_NUMBER_OF_ITEMS_HPD_HAS_BEEN_EXCEEDED" +msgstr "已超過項目數量上限 (%d) 。" + +msgid "IDS_GALLERY_BUTTON_CANCEL" +msgstr "取消" + +msgid "IDS_TPLATFORM_ACBUTTON_DONE_ABB" +msgstr "完成" + +msgid "IDS_TPLATFORM_ACBUTTON_CANCEL_ABB" +msgstr "取消" + +msgid "IDS_TPLATFORM_ACBUTTON_DELETE_ABB" +msgstr "刪除" + +msgid "IDS_GALLERY_POP_COPYING_ING" +msgstr "正在複製..." + +msgid "IDS_GALLERY_POP_MOVING_ING" +msgstr "正在移動..." + +msgid "IDS_STORYALBUM_POP_IF_YOU_CREATE_CONTENT_THAT_INCLUDES_ITEMS_FROM_PERSONAL_STORAGE_IT_MAY_NOT_BE_HIDDEN_AUTOMATICALLY_MSG" +msgstr "若您建立包含來自個人儲存空間項目的內容時,將不會自動隱藏。選擇的個人內容可於檢視新內容時顯示。" + +msgid "IDS_HS_ACBUTTON_EDIT" +msgstr "編輯" + +msgid "IDS_MF_BUTTON_SETTINGS" +msgstr "設定" + +msgid "IDS_QP_ACBUTTON_EDIT_ABB" +msgstr "編輯" + +msgid "IDS_CLOCK_HEADER_REORDER_ABB" +msgstr "重新排序" + diff --git a/res/res.xml b/res/res.xml new file mode 100644 index 0000000..e537eb7 --- /dev/null +++ b/res/res.xml @@ -0,0 +1,2 @@ + + diff --git a/shared/res/org.tizen.gallery.png b/shared/res/org.tizen.gallery.png new file mode 100644 index 0000000..3bf41ce Binary files /dev/null and b/shared/res/org.tizen.gallery.png differ diff --git a/src/2dview/gl-albums-edit.c b/src/2dview/gl-albums-edit.c new file mode 100644 index 0000000..4479bf4 --- /dev/null +++ b/src/2dview/gl-albums-edit.c @@ -0,0 +1,537 @@ +/* +* 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 "gl-albums.h" +#include "gl-albums-edit.h" +#include "gl-albums-rename.h" +#include "gl-debug.h" +#include "gl-strings.h" +#include "gl-ui-util.h" +#include "gl-util.h" +#include "gl-data.h" +#include "gl-icons.h" +#include "gl-controlbar.h" +#include "gl-ctxpopup.h" +#include "gl-button.h" +#include "gl-notify.h" +#include "gl-popup.h" +#include "gl-tile.h" +#include "gl-ext-exec.h" + +/** +* @Brif Update checkbox state and album cover and update selectioninfo. +* +* @Param data gl_appdata. +* @Param album_item album item. +* @Param check_obj object of checkbox. +* @Param b_ck_box true: Checkbox selection, false: album cover selection. +*/ +static int __gl_albums_edit_update_check_state(void *data, + gl_cluster *album_item, + Evas_Object *check_obj, + bool b_ck_box) +{ + GL_CHECK_VAL(album_item, -1); + GL_CHECK_VAL(album_item->cluster, -1); + GL_CHECK_VAL(album_item->cluster->uuid, -1); + GL_CHECK_VAL(check_obj, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg("Select checkbox[1]/album_cover[0]: %d.", b_ck_box); + + /* Update state of checkbox */ + album_item->checked = !album_item->checked; + gl_sdbg("album (%s) check state: %d", album_item->cluster->display_name, + album_item->checked); + + /** + * If album cover selected, update checkbox icon manually, + * If checkbox selected, its icon is updated by system automatically. + */ + Evas_Object *ck = NULL; + if (b_ck_box == false) + ck = elm_object_item_part_content_get(album_item->item, + GL_TILE_CHECKBOX); + else + ck = elm_object_item_part_content_get(album_item->item, + GL_TILE_CHECKBOX_GRID); + elm_check_state_set(ck, album_item->checked); + + if (album_item->checked) { + gl_sdbg("Append:%s, id:%s", album_item->cluster->display_name, + album_item->cluster->uuid); + _gl_data_albums_selected_list_append(ad, album_item); + } else { + gl_sdbg("Remove:%s, id:%s", album_item->cluster->display_name, + album_item->cluster->uuid); + _gl_data_albums_selected_list_remove(ad, album_item); + } + + /* Display selectioninfo */ + int cnt = _gl_data_get_albums_selected_cnt(ad); + _gl_notify_check_selall(ad, ad->ctrlinfo.nf_it, + ad->albuminfo.elist->edit_cnt, cnt); + /* Update the label text */ + _gl_ui_update_navi_title_text(ad->ctrlinfo.nf_it, cnt, false); + return 0; +} + +static void __gl_albums_edit_check_changed(void *data, Evas_Object *obj, + void *ei) +{ + GL_CHECK(obj); + GL_CHECK(data); + gl_cluster *album_item = (gl_cluster *)data; + GL_CHECK(album_item->ad); + gl_appdata *ad = (gl_appdata *)album_item->ad; + gl_dbg(""); + + if (gl_get_view_mode(ad) != GL_VIEW_ALBUMS_EDIT) { + gl_dbgE("Wrong view mode!"); + return; + } else { + /* gl_dbg("EditMode"); */ + } + + /* Checkbox selected, b_ck_box=true */ + __gl_albums_edit_update_check_state(ad, album_item, obj, true); +} + +static void __gl_albums_edit_check_grid_changed(void *data, Evas_Object *obj, + void *ei) +{ + GL_CHECK(obj); + GL_CHECK(data); + gl_cluster *album_item = (gl_cluster *)data; + GL_CHECK(album_item->ad); + gl_appdata *ad = (gl_appdata *)album_item->ad; + gl_dbg(""); + + if (gl_get_view_mode(ad) != GL_VIEW_ALBUMS_EDIT) { + gl_dbgE("Wrong view mode!"); + return; + } else { + /* gl_dbg("EditMode"); */ + } + + /* Grid checkbox selected, b_ck_box=false */ + __gl_albums_edit_update_check_state(ad, album_item, obj, false); +} + +static void __gl_albums_edit_rename(gl_cluster *album) +{ + GL_CHECK(album); + GL_CHECK(album->ad); + gl_appdata *ad = (gl_appdata *)album->ad; + /* save album selected for rename */ + if (_gl_albums_rename_create_view(album->ad, album) == 0) + ad->albuminfo.selected = album; +} + +static void __gl_albums_edit_rename_btn_cb(void *data, Evas_Object *obj, + void *event_info) +{ + gl_dbg(""); + GL_CHECK(data); + gl_cluster *album_item = (gl_cluster *)data; + gl_appdata *ad = (gl_appdata *)album_item->ad; + _gl_ctxpopup_del(ad); + /* Save scroller position before clearing gengrid */ + _gl_ui_save_scroller_pos(ad->albuminfo.view); + __gl_albums_edit_rename(album_item); +} + +static void __gl_albums_edit_del_cb(void *data, Evas_Object *obj, + void *ei) +{ + elm_toolbar_item_selected_set((Elm_Object_Item *)ei, EINA_FALSE); + GL_CHECK(data); + gl_dbg(""); + + if ((gl_get_view_mode(data) == GL_VIEW_ALBUMS_EDIT)) { + if (_gl_data_get_albums_selected_cnt(data) == 0) { + gl_dbgW("No albums selected!"); + gl_popup_create_popup(data, GL_POPUP_NOBUT, + GL_STR_NO_ALBUMS_SELECTED); + return; + } + _gl_popup_create_del(data, GL_POPUP_DEL_ALBUM, + _gl_data_get_albums_selected_cnt, + _gl_del_albums, data); + } else { + gl_dbgE("Unknow mode!"); + } +} + +static void __gl_albums_edit_cancel_cb(void *data, Evas_Object *obj, void *ei) +{ + elm_toolbar_item_selected_set((Elm_Object_Item *)ei, EINA_FALSE); + GL_CHECK(data); + gl_dbg(""); + _gl_albums_change_mode(data, false); +} + +#ifdef GL_EXTENDED_FEATURES +static int __gl_albums_edit_get_cnt(void *data, gl_media_s *item) +{ + GL_CHECK_VAL(item, -1); + GL_CHECK_VAL(item->file_url, -1); + GL_CHECK_VAL(data, -1); + + int *count = (int *)data; + *count += 1; + return 0; +} + +static int __gl_albums_edit_get_path_cb(void *data, char **files) +{ + GL_CHECK_VAL(data, 0); + GL_CHECK_VAL(files, 0); + return _gl_get_album_images_path(data, files, false); +} + +void _gl_albums_edit_share(void *data) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg(""); + + if (ad->uginfo.ug || ad->uginfo.b_app_called) { + gl_dbgW("UG or APP is already loaded!"); + return; + } + + int cnt = 0; + + cnt = _gl_data_get_albums_selected_cnt(ad); + if (cnt == 0) { + gl_dbgW("No albums selected!"); + gl_popup_create_popup(ad, GL_POPUP_NOBUT, + GL_STR_NO_ALBUMS_SELECTED); + return; + } + /* Check albums are empty */ + if (_gl_data_is_albums_selected_empty(ad)) { + gl_dbgW("No thumbs selected!"); + gl_popup_create_popup(ad, GL_POPUP_NOBUT, + GL_STR_NO_FILES_SELECTED); + return; + } + + int media_cnt = 0; + _gl_data_get_albums_selected_files(data, __gl_albums_edit_get_cnt, + (void *)(&media_cnt)); + gl_dbg("media_cnt: %d", media_cnt); + /* Check albums are empty */ + if (media_cnt == 0) { + gl_dbgW("No thumbs selected!"); + gl_popup_create_popup(ad, GL_POPUP_NOBUT, + GL_STR_NO_FILES_SELECTED); + return; + } + _gl_ext_launch_share(data, media_cnt, + __gl_albums_edit_get_path_cb); +} + +static void __gl_albums_edit_share_cb(void *data, Evas_Object *obj, + void *ei) +{ + elm_toolbar_item_selected_set((Elm_Object_Item *)ei, EINA_FALSE); + GL_CHECK(data); + _gl_albums_edit_share(data); + /*back to the albums view */ + _gl_albums_change_mode(data, false); +} +#endif + +/* Select-all checkbox selected/deselected */ +static void __gl_albums_edit_selall_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + int item_cnt = 0; + int sel_all_cnt = 0; + + ad->selinfo.ck_state = !ad->selinfo.ck_state; + if (ad->selinfo.selectall_ck) { + elm_check_state_set(ad->selinfo.selectall_ck, ad->selinfo.ck_state); + } + int state = ad->selinfo.ck_state; + gl_dbg("Checkbox state: %d", state); + + gl_cluster *album = NULL; + Elm_Object_Item *first_it = NULL; + Elm_Object_Item *next_it = NULL; + Elm_Object_Item *last_it = NULL; + first_it = elm_gengrid_first_item_get(ad->albuminfo.view); + last_it = elm_gengrid_last_item_get(ad->albuminfo.view); + while (first_it) { + album = NULL; + next_it = elm_gengrid_item_next_get(first_it); + /* Get data */ + album = (gl_cluster *)elm_object_item_data_get(first_it); + if (album == NULL || album->cluster == NULL) { + gl_dbgE("Invalid item data!"); + /* Get next item */ + first_it = next_it; + continue; + } + + if (album->cluster->type >= GL_STORE_T_ALL) { + gl_dbgW("Uneditable album!"); + /* Get next item */ + first_it = next_it; + continue; + } + + item_cnt++; + + if (album->checked == state) { + /* Get next item */ + first_it = next_it; + continue; + } + + /* Update checkbox state */ + album->checked = state; + /* Update selected list */ + if (state == EINA_TRUE) + _gl_data_albums_selected_list_append(ad, album); + else + _gl_data_albums_selected_list_remove(ad, album); + + if (last_it == first_it) { + gl_dbg("Update done!"); + break; + } else { + first_it = next_it; + } + } + /* Update all realized items */ + _gl_ui_update_realized_grid_ck(ad->albuminfo.view, + GL_TILE_CHECKBOX_GRID, GL_TILE_CHECKBOX, + state); + + /* Recreate selection info for both cases */ + if (state == EINA_FALSE) + sel_all_cnt = 0; + else + sel_all_cnt = item_cnt; + + _gl_notify_check_selall(ad, ad->ctrlinfo.nf_it, item_cnt, sel_all_cnt); + /* Update the label text */ + _gl_ui_update_navi_title_text(ad->ctrlinfo.nf_it, sel_all_cnt, false); +} + +static int __gl_albums_edit_ctxpopup_append(void *data, Evas_Object *parent) +{ + gl_dbg(""); + GL_CHECK_VAL(parent, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->albuminfo.sel_elist, -1); + gl_cluster *album_item = NULL; + album_item = (gl_cluster *)eina_list_nth(ad->albuminfo.sel_elist, 0); + GL_CHECK_VAL(album_item, -1); + + /* Rename */ + _gl_ctxpopup_append(parent, GL_STR_ID_RENAME, + __gl_albums_edit_rename_btn_cb, album_item); + return 0; +} + +static void __gl_albums_edit_more_btn_cb(void *data, Evas_Object *obj, void *ei) +{ + gl_dbgE("more button clicked"); + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + + if (GL_GRID_EDIT != ad->albuminfo.b_share_mode) + return; + GL_CHECK(ad->albuminfo.sel_elist); + gl_cluster *album_item = NULL; + album_item = (gl_cluster *)eina_list_nth(ad->albuminfo.sel_elist, 0); + GL_CHECK(album_item); + if (1 != _gl_data_get_albums_selected_cnt(ad) || + album_item->cluster->type > GL_STORE_T_MMC || + _gl_data_is_camera_album(album_item->cluster)) + return; + _gl_ctxpopup_create(data, obj, __gl_albums_edit_ctxpopup_append); +} + +Evas_Object *_gl_albums_edit_add_content(void *data, Evas_Object *obj, + const char *part) +{ + GL_CHECK_NULL(part); + GL_CHECK_NULL(data); + gl_cluster *album = (gl_cluster *)data; + GL_CHECK_NULL(album->cluster); + Evas_Object *_obj = NULL; + + if (!g_strcmp0(part, GL_TILE_CHECKBOX_GRID)) { + if (album->cluster->type >= GL_STORE_T_ALL) + return NULL; + + _obj = _gl_tile_show_part_checkbox_grid(obj, album->checked, + __gl_albums_edit_check_grid_changed, + data); + } else if (!g_strcmp0(part, GL_TILE_CHECKBOX)) { + if (album->cluster->type >= GL_STORE_T_ALL) + return NULL; + + _obj = _gl_tile_show_part_checkbox(obj, album->checked, + __gl_albums_edit_check_changed, + data); + } else if (!g_strcmp0(part, GL_TILE_DIM) && + album->cluster->type >= GL_STORE_T_ALL) { + _obj = _gl_tile_show_part_dim(obj); /* Disable item */ + } + + return _obj; +} + +/** + * Use naviframe api to push albums edit view to stack. + * @param obj is the content to be pushed. + */ +int _gl_albums_edit_add_btns(void *data, Evas_Object *parent) +{ + gl_dbg("GL_NAVI_ALBUMS_EDIT"); + GL_CHECK_VAL(parent, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + Elm_Object_Item *nf_it = elm_naviframe_top_item_get(parent); + GL_CHECK_VAL(nf_it, -1); + + _gl_ui_clear_btns(data); + + Evas_Object *btn = NULL; + /* More */ + btn = _gl_but_create_but(parent, NULL, NULL, GL_BUTTON_STYLE_NAVI_MORE, + __gl_albums_edit_more_btn_cb, data); + GL_CHECK_VAL(btn, -1); + elm_object_item_part_content_set(nf_it, GL_NAVIFRAME_MORE, btn); + _gl_ui_disable_menu(nf_it, true); + + Evas_Object *btn1 = elm_button_add(parent); + Evas_Object *btn2 = elm_button_add(parent); + GL_CHECK_VAL(btn1, -1); + GL_CHECK_VAL(btn2, -1); + /* Title Cancel Button */ + elm_object_style_set(btn1, "naviframe/title_left"); + elm_object_item_part_content_set(ad->ctrlinfo.nf_it, GL_NAVIFRAME_TITLE_LEFT_BTN, btn1); + _gl_ui_set_translate_str(btn1,GL_STR_ID_CANCEL_CAP); + evas_object_smart_callback_add(btn1, "clicked", __gl_albums_edit_cancel_cb, ad); + + /* Title Done Button */ + elm_object_style_set(btn2, "naviframe/title_right"); + elm_object_item_part_content_set(ad->ctrlinfo.nf_it, GL_NAVIFRAME_TITLE_RIGHT_BTN, btn2); + _gl_ui_set_translate_str(btn2,GL_STR_ID_DONE_CAP); + evas_object_smart_callback_add(btn2, "clicked", __gl_albums_edit_del_cb, ad); + elm_object_disabled_set(btn2, EINA_TRUE); + + /* Select-all */ + ad->selinfo.ck_state = false; + _gl_ui_add_selall_ck(ad->ctrlinfo.ctrlbar_view_ly, "select.all.area.check", "select.all.area.check", + __gl_albums_edit_selall_cb, data); + return 0; +} + +int _gl_albums_edit_update_view(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg(""); + + if (gl_check_gallery_empty(data) || + ad->albuminfo.elist->edit_cnt == 0) { + /* Remove invalid widgets */ + gl_del_invalid_widgets(data, GL_INVALID_NONE); + gl_dbgW("None editable albums, show albums view!"); + _gl_albums_edit_pop_view(data); + return 0; + } + + int sel_cnt = _gl_data_get_albums_selected_cnt(data); + int invalid_m = GL_INVALID_NONE; + /* Album selected for rename was deleted */ + if (sel_cnt == 0) { + /* None albums selected */ + gl_dbgW("None albums selected!"); + /* Disable toolbar buttons */ + _gl_albums_edit_disable_btns(data, true); + /* Remove invalid widgets */ + gl_del_invalid_widgets(data, invalid_m); + } + + /* Update edit view, other update view in cancel callback */ + _gl_albums_create_items(data, ad->albuminfo.view); + /* Display selectioninfo */ + _gl_notify_check_selall(data, ad->ctrlinfo.nf_it, + ad->albuminfo.elist->edit_cnt, sel_cnt); + /* Update the label text */ + _gl_ui_update_navi_title_text(ad->ctrlinfo.nf_it, sel_cnt, false); + return 0; +} + +int _gl_albums_edit_pop_view(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + /* Pop rename entry view */ + elm_naviframe_item_pop_to(ad->ctrlinfo.nf_it); + ad->albuminfo.selected = NULL; + ad->albuminfo.b_share_mode = GL_GRID_EDIT; + _gl_data_finalize_albums_selected_list(data); + + gl_albums_change_to_view(data); + _gl_albums_check_btns(data); + return 0; +} + +int _gl_albums_edit_update_lang(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->ctrlinfo.nf_it, -1); + + /*Reset select info text*/ + int cnt = _gl_data_get_albums_selected_cnt(ad); + /* Update the label text */ + _gl_ui_update_navi_title_text(ad->ctrlinfo.nf_it, cnt, true); + return 0; +} + +/* albums view: more-delete-add to home */ +/* Delete in unavaliable for Facebook */ +int _gl_albums_edit_disable_btns(void *data, bool b_disable) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg("b_disable: %d", b_disable); + + if (!b_disable) { + /* Enable items */ + _gl_ctrl_disable_items(ad->ctrlinfo.nf_it, false); + } else { + _gl_ctrl_disable_items(ad->ctrlinfo.nf_it, true); + } + return 0; +} + diff --git a/src/2dview/gl-albums-edit.h b/src/2dview/gl-albums-edit.h new file mode 100644 index 0000000..bac7073 --- /dev/null +++ b/src/2dview/gl-albums-edit.h @@ -0,0 +1,36 @@ +/* +* 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 _GL_ALBUMS_EDIT_H_ +#define _GL_ALBUMS_EDIT_H_ + +#include +#include "gallery.h" + +Evas_Object *_gl_albums_edit_add_content(void *data, Evas_Object *obj, + const char *part); +int _gl_albums_edit_add_btns(void *data, Evas_Object *parent); +int _gl_albums_edit_update_view(void *data); +int _gl_albums_edit_pop_view(void *data); +int _gl_albums_edit_update_lang(void *data); +int _gl_albums_edit_disable_btns(void *data, bool b_disable); +#ifdef GL_EXTENDED_FEATURES +void _gl_albums_edit_share(void *data); +#endif + +#endif + diff --git a/src/2dview/gl-albums-new.c b/src/2dview/gl-albums-new.c new file mode 100644 index 0000000..3c3ffdc --- /dev/null +++ b/src/2dview/gl-albums-new.c @@ -0,0 +1,182 @@ +/* +* 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 "gl-debug.h" +#include "gl-fs.h" +#include "gl-albums-new.h" +#include "gl-entry.h" +#include "gl-thumbs.h" +#include "gl-ui-util.h" +#include "gl-util.h" +#include "gl-data.h" +#include "gl-controlbar.h" +#include "gl-editfield.h" +#include "gl-popup.h" +#include "gl-strings.h" +#include "gl-fs.h" +#include "gl-notify.h" +#include "gl-file-util.h" + +static int __gl_albums_new_pop_view(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg(""); + + int view_mode = gl_get_view_mode(ad); + if (ad->albuminfo.b_new_album) { + ad->albuminfo.b_new_album = false; + } else if (view_mode == GL_VIEW_THUMBS_EDIT) { + _gl_notify_check_selall(ad, ad->gridinfo.nf_it, + ad->gridinfo.count, + _gl_data_selected_list_count(ad)); + /* Update the label text */ + _gl_thumbs_update_label_text(ad->gridinfo.nf_it, + _gl_data_selected_list_count(ad), + false); + } + + return 0; +} + +/* dont call elm_naviframe_item_pop in this callback */ +static Eina_Bool __gl_albums_new_pop_cb(void *data, Elm_Object_Item *it) + +{ + /* If the back button is clicked or H/W Back key is pressed, + this callback will be called right before the + current view pop. User may implement application logic here. */ + + /* To proceed the popping, please return the EINA_TRUE or not, + popping will be canceled. + If it needs to delete the current view without any transition effect, + then call the elm_object_item_del() here and then return the EINA_FALSE */ + + gl_dbg(""); + __gl_albums_new_pop_view(data); + return EINA_TRUE; +} + +int _gl_albums_new_create_view(void *data, void *op_func) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg(""); + + ad->entryinfo.mode = GL_ENTRY_NEW_ALBUM; + ad->entryinfo.op_cb = op_func; + /* Create entry view */ + if (_gl_entry_create_view(data, NULL, GL_STR_ID_NEW_ALBUM) < 0) { + ad->entryinfo.mode = GL_ENTRY_NONE; + ad->entryinfo.op_cb = NULL; + return -1; + } + /* Set callbacks */ + Evas_Object *entry = _gl_editfield_get_entry(data); + GL_CHECK_VAL(entry, -1); + evas_object_data_set(entry, "gl_entry_process_cb_key", + _gl_albums_new_process); + evas_object_data_set(entry, "gl_entry_pop_cb_key", + __gl_albums_new_pop_cb); + return 0; +} + +/* +* @param b_enter +* True: Enter key on Keyboard pressed, False: Button Done clicked +*/ +int _gl_albums_new_process(void *data, bool b_enter) +{ + gl_dbg("b_enter: %d", b_enter); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + if (ad->entryinfo.editfield == NULL) { + gl_dbgE("Edit filed is NULL"); + goto NEW_ALBUM_FAILED; + } + + Evas_Object *entry = ad->entryinfo.entry; + char name[GL_ALBUM_NAME_LEN_MAX] = { 0, }; + + /* Get utf8 format string */ + if (gl_get_entry_text(entry, name, GL_ALBUM_NAME_LEN_MAX) != 0) { + gl_dbgE("Get entry text failed!"); + goto NEW_ALBUM_FAILED; + } + + /* Get valid name */ + if (_gl_validate_album_name(data, name) != 0) { + if (b_enter) + _gl_editfield_hide_imf(ad); + return -1; + } + gl_sdbg("Valid album name: %s", name); + + /* Check whether the new folder exist */ + char new_path[GL_DIR_PATH_LEN_MAX] = { 0, }; + + /* Make dir full new_path of new album */ + snprintf(new_path, GL_DIR_PATH_LEN_MAX, "%s/%s", GL_DEFAULT_PATH_IMAGES, + name); + gl_sdbg("New dir new_path: %s", new_path); +#ifdef _RENAME_ALBUM_SENSITIVE + if (_gl_fs_check_name_case(new_path, name)) +#endif + { + memset(new_path, 0x00, GL_DIR_PATH_LEN_MAX); + snprintf(new_path, GL_DIR_PATH_LEN_MAX, "%s/%s", + GL_DEFAULT_PATH_IMAGES, name); + gl_sdbg("New dir new_path: %s", new_path); + int res = gl_file_dir_is_empty(new_path); + /** + * If dir is empty, 1 is returned, + * if it contains at least 1 file, 0 is returned. + * On failure, -1 is returned. + */ + gl_dbg("file_dir_is_empty return value: %d", res); + if (res == 0) { + gl_dbgW("New folder already exists!"); + _gl_popup_create_local(data, GL_POPUP_NOBUT, + GL_STR_ID_SAME_NAME_ALREADY_IN_USE); + return -1; + } + } + + /* Save new album name */ + char *new_album = ad->albuminfo.new_name; + g_strlcpy(new_album, name, GL_ALBUM_NAME_LEN_MAX); + new_album[GL_ALBUM_NAME_LEN_MAX - 1] = '\0'; + + if (ad->albuminfo.view) + elm_gengrid_clear(ad->albuminfo.view); + + if (ad->entryinfo.op_cb) { + int (*mc_cb)(void *data); + /* Get operation funciton */ + mc_cb = ad->entryinfo.op_cb; + /* Move/Save/Copy files to dest album */ + mc_cb(ad); + } + GL_IF_DEL_OBJ(ad->popupinfo.popup); + return 0; + +NEW_ALBUM_FAILED: + GL_IF_DEL_OBJ(ad->popupinfo.popup); + return -1; +} + diff --git a/src/2dview/gl-albums-new.h b/src/2dview/gl-albums-new.h new file mode 100644 index 0000000..dcb90dd --- /dev/null +++ b/src/2dview/gl-albums-new.h @@ -0,0 +1,28 @@ +/* +* 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 _GL_ALBUMS_NEW_H_ +#define _GL_ALBUMS_NEW_H_ + +#include +#include "gallery.h" + +int _gl_albums_new_create_view(void *data, void *op_func); +int _gl_albums_new_process(void *data, bool b_enter); + +#endif + diff --git a/src/2dview/gl-albums-rename.c b/src/2dview/gl-albums-rename.c new file mode 100644 index 0000000..12358c7 --- /dev/null +++ b/src/2dview/gl-albums-rename.c @@ -0,0 +1,387 @@ +/* +* 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 "gl-debug.h" +#include "gl-fs.h" +#include "gl-entry.h" +#include "gl-albums-rename.h" +#include "gl-albums.h" +#include "gl-ui-util.h" +#include "gl-util.h" +#include "gl-controlbar.h" +#include "gl-editfield.h" +#include "gl-button.h" +#include "gl-popup.h" +#include "gl-strings.h" +#include "gl-fs.h" +#include "gl-db-update.h" +#include "gl-file-util.h" + +static void __gl_albums_rename_trans_finished(void *data) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + int view_mode = gl_get_view_mode(ad); + gl_dbgW("view_mode: %d", view_mode); + + /* Clear previous view after animation finished */ + if (view_mode == GL_VIEW_ALBUMS_RENAME) + elm_gengrid_clear(ad->albuminfo.view); +} + +static int __gl_albums_rename_pop_view(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->maininfo.naviframe, -1); + gl_dbg(""); + + ad->albuminfo.selected = NULL; + /* Update album view */ + gl_set_view_mode(data, GL_VIEW_ALBUMS); + _gl_albums_change_mode(data, false); + return 0; +} + +/* dont call elm_naviframe_item_pop in this callback */ +static Eina_Bool __gl_albums_rename_pop_cb(void *data, Elm_Object_Item *it) + +{ + /* If the back button is clicked or H/W Back key is pressed, + this callback will be called right before the + current view pop. User may implement application logic here. */ + + /* To proceed the popping, please return the EINA_TRUE or not, + popping will be canceled. + If it needs to delete the current view without any transition effect, + then call the elm_object_item_del() here and then return the EINA_FALSE */ + + gl_dbg(""); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + ad->albuminfo.selected = NULL; + /* Update edit view */ + gl_set_view_mode(data, GL_VIEW_ALBUMS_EDIT); + gl_albums_update_items(data); + return EINA_TRUE; +} + +/*It is used by rename in longpressed event popup, after rename, should pop to album view, not album edit view*/ +static Eina_Bool __gl_albums_rename_pop_to_album_cb(void *data, Elm_Object_Item *it) + +{ + gl_dbg(""); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + ad->albuminfo.selected = NULL; + /* Update edit view */ + gl_set_view_mode(data, GL_VIEW_ALBUMS); + gl_albums_update_items(data); + return EINA_TRUE; +} + +/* +* @param b_enter +* True: Enter key on Keyboard pressed, False: Button Done clicked +*/ +static int __gl_albums_rename_process(void *data, bool b_enter) +{ + gl_dbg("b_enter: %d", b_enter); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + bool b_root_path = false; + gl_cluster *album_item = NULL; + + /*If click "Done", will back to album view, pop callback should not be called.*/ + evas_object_data_del(ad->entryinfo.entry, "gl_entry_pop_cb_key"); + + if (gl_get_view_mode(ad) != GL_VIEW_ALBUMS_RENAME) { + gl_dbgE("View mode is wrong!"); + goto RENAME_FAILED; + } + + album_item = ad->albuminfo.selected; + if (album_item == NULL || album_item->cluster == NULL || + album_item->cluster->uuid == NULL) { + gl_dbgE("selected_album is NULL!"); + goto RENAME_FAILED; + } + + char name[GL_FILE_NAME_LEN_MAX] = { 0, }; + /* Get utf8 format string */ + int ret = -1; + ret = gl_get_entry_text(ad->entryinfo.entry, name, + GL_FILE_NAME_LEN_MAX); + if (ret != 0) { + gl_dbgE("Get entry text failed!"); + goto RENAME_FAILED; + } + + /* Get valid name */ + if (_gl_validate_album_name(data, name) != 0) { + if (b_enter) + _gl_editfield_hide_imf(ad); + return -1; + } + + gl_sdbg("Valid album name: %s", name); + /* Get src folder path */ + char old_path[GL_DIR_PATH_LEN_MAX] = { 0, }; + if (album_item->cluster->path) { + g_strlcpy(old_path, album_item->cluster->path, + GL_DIR_PATH_LEN_MAX); + gl_sdbg("Src folder: %s", old_path); + if (_gl_data_is_root_path(old_path)) { + /** + * Root path, couldn't rename root path, + * make the new dest folder + * and move all files for root path to it. + */ + gl_dbg("Rename [No Name] album's name."); + b_root_path = true; + } + } else { + gl_dbgE("gl_db_get_folder_fullpath failed(%d)!", ret); + goto RENAME_FAILED; + } + + /* Get dest folder path */ + char new_path[GL_DIR_PATH_LEN_MAX] = { 0, }; + char parent[GL_DIR_PATH_LEN_MAX] = { 0, }; + + if (b_root_path) { + snprintf(new_path, GL_DIR_PATH_LEN_MAX, "%s/%s", + GL_DEFAULT_PATH_IMAGES, name); + g_strlcpy(parent, GL_DEFAULT_PATH_IMAGES, GL_DIR_PATH_LEN_MAX); + } else { + g_strlcpy(new_path, old_path, GL_DIR_PATH_LEN_MAX); + g_strlcpy(parent, old_path, GL_DIR_PATH_LEN_MAX); + + int i = 0; + int length = strlen(old_path); + for (i = length; i >= 0; i--) { + if (new_path[i] == '/') { + gl_dbg("length=%d, i=%d", length, i); + /* Path like "/root/abc/" */ + if (i == length - 1) + continue; + memcpy(&new_path[i + 1], name, strlen(name)); + new_path[i + 1 + strlen(name)] = '\0'; + parent[i] = '\0'; + break; + } + } + } + + gl_sdbg("Dest folder: %s", new_path); +#ifdef _RENAME_ALBUM_SENSITIVE + if (!strcasecmp(old_path, new_path)) +#else + if (!g_strcmp0(old_path, new_path)) +#endif + { + gl_dbgW("Same as current name!"); + goto RENAME_FAILED; + } + + /** + * If dir is empty, 1 is returned, + * if it contains at least 1 file, 0 is returned. + * On failure, -1 is returned. + */ +#ifdef _RENAME_ALBUM_SENSITIVE + if (_gl_fs_check_name_case(new_path, name)) +#endif + { + memset(new_path, 0x00, GL_DIR_PATH_LEN_MAX); + snprintf(new_path, GL_DIR_PATH_LEN_MAX, "%s/%s", parent, name); + gl_sdbg("New dir path: %s", new_path); + int res = gl_file_dir_is_empty(new_path); + gl_dbg("file_dir_is_empty return value: %d", res); + if (res == 0) { + char *popup_desc = NULL; + popup_desc = (char *)calloc(GL_POPUP_STRING_MAX, + sizeof(char)); + if (popup_desc == NULL) { + gl_dbgE("memory allocation fail!"); + return -1; + } + + snprintf(popup_desc, GL_POPUP_STRING_MAX, "%s
%s", + GL_STR_SAME_NAME_ALREADY_IN_USE, GL_STR_RETRY_Q); + popup_desc[strlen(popup_desc)] = '\0'; + gl_popup_create_popup(ad, GL_POPUP_ALBUM_RENAME_DUPLICATE, + popup_desc); + GL_FREE(popup_desc); + gl_dbgW("New folder already exists!"); + return -1; + } + } + + _gl_db_update_lock_once(ad, true); + if (b_root_path) { + /** + * Case 1: Rename virtual album 'No Name'. + * It couldn't be done by updating album record in DB directly. + * Cuz it would change the folder path of all folder records, + * to make them invalid. + * + * Create new folder under default images path, + * Move all medias under root path to new folder. + */ + if (gl_make_new_album(name) == false) { + gl_popup_create_popup(ad, GL_POPUP_NOBUT, + GL_STR_UNABLE_tO_RENAME); + gl_dbgE("Failed to make a new directory!"); + goto RENAME_FAILED; + } + + /* Move medias from 'No Name' album to new album */ + if (gl_move_root_album(ad, album_item, new_path) != 0) { + gl_dbg("gl_move_root_album failed!"); + gl_popup_create_popup(ad, GL_POPUP_NOBUT, + GL_STR_UNABLE_tO_RENAME); + goto RENAME_FAILED; + } else { + gl_dbg("New album added, update albums list."); + ad->albuminfo.selected = NULL; + _gl_data_update_cluster_list(ad); + } + } else { + /** + * Case 2: Rename normal album. Update album record in DB. + */ + media_folder_set_name(album_item->cluster->folder_h, name); + ret = media_folder_update_to_db(album_item->cluster->folder_h); + if (ret < 0) { + gl_dbg("media_folder_set_name failed (%d)!", ret); + goto RENAME_FAILED; + } + + /** + * Change folder name in file system + * for some special name, DB update success, but file mv failed. + * So, do this first. + */ + if (gl_file_exists(old_path)) { + if (!gl_file_mv(old_path, new_path)) + gl_dbg("file_mv failed!"); + } else { + gl_dbgW("Source folder path doesn't exist!"); + } + /* Update memory */ + GL_FREEIF(album_item->cluster->display_name); + album_item->cluster->display_name = strdup(name); + GL_FREEIF(album_item->cluster->path); + album_item->cluster->path = strdup(new_path); + } + + elm_naviframe_item_pop(ad->maininfo.naviframe); + __gl_albums_rename_pop_view(data); + return 0; + + RENAME_FAILED: + + elm_naviframe_item_pop(ad->maininfo.naviframe); + __gl_albums_rename_pop_view(data); + return -1; +} + +int _gl_albums_rename_create_view(void *data, gl_cluster *album) +{ + GL_CHECK_VAL(album, -1); + GL_CHECK_VAL(album->cluster, -1); + GL_CHECK_VAL(album->cluster->display_name, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg(""); + + ad->entryinfo.mode = GL_ENTRY_RENAME_ALBUM; + + /* Create entry view */ + if (_gl_entry_create_view(data, album->cluster->display_name, GL_STR_ID_CHNAGE_NAME) < 0) { + ad->entryinfo.mode = GL_ENTRY_NONE; + return -1; + } + /* Set callbacks */ + Evas_Object *entry = _gl_editfield_get_entry(data); + GL_CHECK_VAL(entry, -1); + evas_object_data_set(entry, "gl_entry_process_cb_key", + __gl_albums_rename_process); + if (GL_VIEW_ALBUMS == gl_get_view_mode(data)) + evas_object_data_set(entry, "gl_entry_pop_cb_key", + __gl_albums_rename_pop_to_album_cb); + else + evas_object_data_set(entry, "gl_entry_pop_cb_key", + __gl_albums_rename_pop_cb); + + evas_object_data_set(entry, "gl_entry_transit_cb_key", + __gl_albums_rename_trans_finished); + gl_set_view_mode(data, GL_VIEW_ALBUMS_RENAME); + return 0; +} + +int _gl_albums_rename_update_view(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg(""); + + if (gl_check_gallery_empty(data) || + ad->albuminfo.elist->edit_cnt == 0) { + /* Remove invalid widgets */ + gl_del_invalid_widgets(data, GL_INVALID_NONE); + gl_dbgW("None editable albums, show albums view!"); + _gl_albums_change_mode(data, false); + return 0; + } + + /* Album selected for rename was deleted */ + if (ad->albuminfo.selected == NULL) { + gl_dbgW("Rename invalid album!"); + /* Remove rename view */ + elm_naviframe_item_pop(ad->maininfo.naviframe); + return 0; + } + + /* Cluster list updated, clear view */ + elm_gengrid_clear(ad->albuminfo.view); + return 0; +} + +int _gl_albums_rename_update_lang(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->entryinfo.nf_it, -1); + + if (ad->popupinfo.popup) { + char *popup_desc = (char *)calloc(GL_POPUP_STRING_MAX, + sizeof(char)); + if (popup_desc) { + snprintf(popup_desc, GL_POPUP_STRING_MAX, "%s
%s", + GL_STR_SAME_NAME_ALREADY_IN_USE, GL_STR_RETRY_Q); + popup_desc[strlen(popup_desc)] = '\0'; + gl_popup_create_popup(ad, GL_POPUP_ALBUM_RENAME_DUPLICATE, + popup_desc); + GL_FREE(popup_desc); + } + } + + return 0; +} + diff --git a/src/2dview/gl-albums-rename.h b/src/2dview/gl-albums-rename.h new file mode 100644 index 0000000..1454bbd --- /dev/null +++ b/src/2dview/gl-albums-rename.h @@ -0,0 +1,29 @@ +/* +* 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 _GL_ALBUMS_RENAME_H_ +#define _GL_ALBUMS_RENAME_H_ + +#include +#include "gallery.h" + +int _gl_albums_rename_create_view(void *data, gl_cluster *album); +int _gl_albums_rename_update_view(void *data); +int _gl_albums_rename_update_lang(void *data); + +#endif + diff --git a/src/2dview/gl-ecore-animator.h b/src/2dview/gl-ecore-animator.h new file mode 100644 index 0000000..1dcab67 --- /dev/null +++ b/src/2dview/gl-ecore-animator.h @@ -0,0 +1,104 @@ +/* +* 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); + +template +class UserMemFunctor +{ +public: + UserMemFunctor(ObjType& obj, FunType fun) : m_obj(obj), m_func(fun) {} + void operator()(ParmType& p) { (m_obj.*m_func)(p); } +private: + ObjType& m_obj; + FunType m_func; +}; + +// TODO : Implement using Functor. + +class ECoreAnimator { + static Eina_Bool _on_anim(void *data) + { + ECoreAnimator *thiz = static_cast(data); + + return thiz->OnAnimation(); + } + +public: + ECoreAnimator() : m_animator(NULL), m_bStarted(false) {}; + ~ECoreAnimator() { + Stop(); + }; + + void Start(CallbackFUNC cb, void *data) + { + m_cb = cb; + m_data = data; + + m_count = 0; + m_animator = ecore_animator_add(_on_anim, this); + m_bStarted = true; + } + + void Stop() { + if (m_bStarted) { + m_bStarted = false; + ecore_animator_del(m_animator); + m_animator = NULL; + } + }; + + Eina_Bool OnAnimation() { + double current; + + if (m_count == 0) { + current = m_prev = ecore_loop_time_get(); + } else { + current = ecore_loop_time_get(); + } + + m_count++; + + if (m_cb(current - m_prev, m_data) == false) { + Stop(); + return ECORE_CALLBACK_CANCEL; + } + + m_prev = current; + return ECORE_CALLBACK_RENEW; + }; + + bool IsRunning() const { + return m_bStarted; + }; + +private: + Ecore_Animator *m_animator; + +// template +// func_bind m_f; + CallbackFUNC m_cb; + void *m_data; + + double m_prev; + bool m_bStarted; + + int m_count; +}; + diff --git a/src/2dview/gl-exception.h b/src/2dview/gl-exception.h new file mode 100644 index 0000000..ced65ac --- /dev/null +++ b/src/2dview/gl-exception.h @@ -0,0 +1,31 @@ +/* +* 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 + +class CException { +public: + typedef enum { + IO_ERROR, + } error_code; + + CException(error_code err) : m_err(err) {}; + ~CException() {}; + +private: + error_code m_err; +}; + diff --git a/src/2dview/gl-timeline.c b/src/2dview/gl-timeline.c new file mode 100644 index 0000000..0330f00 --- /dev/null +++ b/src/2dview/gl-timeline.c @@ -0,0 +1,4782 @@ +/* +* 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 "gl-debug.h" +#include "gl-timeline.h" +#include "gl-controlbar.h" +#include "gl-ui-util.h" +#include "gl-util.h" +#include "gl-data.h" +#include "gl-strings.h" +#ifdef _USE_ROTATE_BG +#include "gl-rotate-bg.h" +#include "gl-exif.h" +#endif +#include "gl-thumb.h" +#include "gl-thumbs.h" +#include "gl-main.h" +#include "gl-albums.h" +#include "gl-albums-sel.h" +#include "gl-nocontents.h" +#include "gl-ext-exec.h" +#include "gl-ext-ug-load.h" +#include "gl-ctxpopup.h" +#include "gl-popup.h" +#include "gl-button.h" +#include "gl-ext-exec.h" +#include "gl-notify.h" +#include "gl-db-update.h" +#include "gl-thread-util.h" +#include "gl-fs.h" +#include "gl-file-util.h" +#include "gl-gesture.h" + +#define GL_TIMELINE_TITLE_H 46 +#define GL_TIMELINE_PAD_H 8 +#define GL_TIMELINE_CONTENT_P_H 956 +#define GL_TIMELINE_CONTENT_L_H 429 +#define GL_TIMELINE_PAGE_SIZE 450 + +#define GL_TL_PINCH_OUT_2_CNT 15 +#define GL_TL_PINCH_OUT_1_CNT 8 +#define GL_TL_PINCH_OUT_CNT_STEP 3 + +/* Signals to hide/show title swallow */ +#define GL_TL_SWALLOW_TITLE_SHOW "elm,swallow_title,state,show" +#define GL_TL_SWALLOW_TITLE_HIDE "elm,swallow_title,state,hide" +/* Signals to transit title during updating if date(time) changed */ +#define GL_TL_TITLE2_SHOW_FINISHED "elm,action,title2,show,finished" +#define GL_TL_TITLE_HIDE_FINISHED "elm,action,title,hide,finished" +#define GL_TL_TITLE_FADE_OUT "elm,action,title,fade_out" +#define GL_TL_TITLE2_FADE_IN "elm,action,title2,fade_in" +#define GL_TL_TITLE_HIDE_DEFERRED "elm,state,title,hide,deferred" +#define GL_TL_TITLE2_SHOW_DEFERRED "elm,state,title2,show,deferred" +#define GL_TL_TITLE_SHOW "elm,state,title,show" +#define GL_TL_TITLE2_CREATED "elm,state,title2,created" + +#define GL_TL_CONTENTS_FORMAT "contents_%d_%d" +#define GL_TL_CHECKBOX_FORMAT "contents_%d_%d_checkbox" +#define GL_TL_CONTENT_FORMAT "content_%d" + +#define GL_TL_TILE_DATA_KEY "gl_tile_data" +#define GL_TL_DATA_KEY "gl_tl_data" + +#define GL_GRID_4_PER_ROW 4 +#define GL_GRID_7_PER_ROW 7 + +#define GL_GRID_8_PER_ROW 8 +#define GL_GRID_3_PER_ROW 3 + +#define GL_GRID_6_PER_ROW 6 +#define GL_GRID_10_PER_ROW 10 + +#define GL_GRID_H_ZOOM_03 178 +#define GL_GRID_H_ZOOM_02 267 + +#define GL_TL_DEL_TRANSITS(tiles) \ + do { \ + gl_tile_s *tile = NULL; \ + if (tiles) { \ + gl_dbgW("Delete transits of tiles!"); \ + Eina_List *l = NULL; \ + EINA_LIST_FOREACH(tiles, l, tile) { \ + if (tile) { \ + GL_IF_DEL_TRANSIT(tile->trans); \ + tile = NULL; \ + } \ + } \ + } \ + } while (0) + +#define GL_TL_DEL_IDLERS(idlers) \ + do { \ + if (idlers) { \ + gl_tlp_s *it_d = NULL; \ + EINA_LIST_FREE(idlers, it_d) { \ + if (it_d) { \ + GL_IF_DEL_IDLER(it_d->update_idler); \ + it_d = NULL; \ + } \ + } \ + idlers = NULL; \ + } \ + } while (0) + +/* Slider unload->free pages ==> Delete contents first before release list */ +#define GL_TL_CLEAR_PAGES(timeline_d, b_set_zop) \ + do { \ + GL_TL_DEL_TRANSITS(timeline_d->tiles); \ + GL_TL_DEL_IDLERS(timeline_d->idlers); \ + if (b_set_zop) \ + _gl_slider_set_zop(timeline_d->view, GL_SLIDE_ZOP_DEFAULT); \ + _gl_slider_unload(timeline_d->view); \ + __gl_timeline_free_pages(timeline_d); \ + } while (0) + +typedef enum _gl_zoom_mode_t { + GL_TM_ZOOM_NONE = -3, + GL_TM_ZOOM_OUT_TWO, + GL_TM_ZOOM_OUT_ONE, + GL_TM_ZOOM_DEFAULT, + GL_TM_ZOOM_MAX, +} gl_zoom_mode_e; + +typedef enum _gl_trans_op_t { + GL_TRANS_OP_DEFAULT, /* Initial state */ + GL_TRANS_OP_DONE, /* Transition is done, do some updating */ + GL_TRANS_OP_START, /* Preparation is one, start to transit tiles */ + GL_TRANS_OP_PREPARE, /* Prepare to add transition */ + GL_TRANS_OP_SHOW, /* Tiles already created, just show them with transition */ + GL_TRANS_OP_MAX, +} gl_trans_op_e; + +typedef enum _gl_tl_view_t { + GL_TL_VIEW_NORMAL, + GL_TL_VIEW_EDIT, + GL_TL_VIEW_SHARE, + GL_TL_VIEW_MAX, +} gl_tl_view_e; + +typedef struct _gl_tm_t gl_tm_s; +struct _gl_tm_t { + int tm_year; + int tm_mon; + int tm_mday; +}; + +typedef struct _gl_sel_data_t gl_sel_s; +struct _gl_sel_data_t { + Eina_List *sel_list; /* List about image selected */ + int jpge_cnt; + int image_cnt; +}; + +typedef enum _gl_time_view_display_order { + TIME_ORDER_ASC = 0, + TIME_ORDER_DESC +}_gl_time_view_order; + +struct _gl_timeline_t { + gl_appdata *ad; + Evas_Object *parent; + Evas_Object *layout; + Evas_Object *view; + Evas_Object *nocontents; + Evas_Object *date_layout; + Elm_Object_Item *nf_it; + int count; /* All images count add in TIMELINE */ + time_t last_mtime; + int w; + int h; + bool delete_data; + gl_mouse_s mouse; + Eina_List *count_list; /* List about image count of each item in default zoom level */ + gl_tl_view_e view_m; /* View mode: normal/edit/share */ + gl_zoom_mode_e zoom_level; + Eina_List *list; /* Page data list */ + /* mtime range for title */ + gl_tm_s tm_s; + gl_tm_s tm_e; + bool b_created; + Ecore_Animator *animator; + bool b_updating_title; /* Flag: updating title, it's not done if TRUE set */ + gl_cluster *album; /* Create 'All albums' album for share/edit operation */ + int tran_op; /* Add effect */ + Eina_List *tiles; /* All tiles of one page */ + Eina_List *idlers; /* For showing original file */ + Eina_List *thumbs; /* Object list for creating thumbnails */ + Eina_List *data_list; /* Media list */ + gl_sel_s *sel_d; + bool is_list_reverse; + _gl_time_view_order time_media_display_order; /* keep track of the media items display order */ + Elm_Object_Item *realized_item; +}; + +typedef struct _gl_tlp_t gl_tlp_s; +struct _gl_tlp_t { + int index; + int start_pos; + int end_pos; + int count; + int w; + int h; + Evas_Object *layout; + Ecore_Idler *update_idler; + bool b_created; + gl_timeline_s *timeline_d; +}; + +typedef struct _gl_tile_t gl_tile_s; +struct _gl_tile_t { + Evas_Object *bg; + Evas_Object *parent; + Elm_Transit *trans; + int count; + int total; + gl_tlp_s *it_d; + gl_timeline_s *timeline_d; +}; + +int _get_count_of_items_on_same_date(gl_media_s *item, Eina_List *list, char **text, int start_index); +int _gl_time_get_number_of_items_per_row(void *data); +static void __gl_timeline_page_deleted_cb(void *data, Evas_Object *obj, + void *ei); +static int __gl_timeline_change_mode(void *data, int mode); +static Evas_Object *__gl_timeline_create_list_view(gl_timeline_s *timeline_d, bool update); + +#ifdef _USE_APP_SLIDESHOW +static int __gl_timeline_edit(void *data); +#endif + +static bool __gl_timeline_is_checked(gl_timeline_s *timeline_d, char *uuid) +{ + GL_CHECK_FALSE(uuid); + GL_CHECK_FALSE(timeline_d); + GL_CHECK_FALSE(timeline_d->sel_d); + + Eina_List *l = NULL; + char *item = NULL; + EINA_LIST_FOREACH(timeline_d->sel_d->sel_list, l, item) { + if (item && !g_strcmp0(item, uuid)) + return true; + } + return false; +} + +#if 0 +static bool __gl_timeline_clear_sel_cnt(gl_timeline_s *timeline_d) +{ + GL_CHECK_FALSE(timeline_d); + if (timeline_d->sel_d == NULL) + return false; + + timeline_d->sel_d->sel_list = NULL; + timeline_d->sel_d->jpge_cnt = 0; + timeline_d->sel_d->image_cnt = 0; + return true; +} +#endif + +static bool __gl_timeline_clear_sel_list(gl_timeline_s *timeline_d) +{ + GL_CHECK_FALSE(timeline_d); + if (timeline_d->sel_d == NULL) + return false; + + char *item = NULL; + EINA_LIST_FREE(timeline_d->sel_d->sel_list, item) { + GL_GFREEIF(item); + } + timeline_d->sel_d->sel_list = NULL; + return false; +} + +static int __gl_timeline_get_sel_cnt(gl_timeline_s *timeline_d) +{ + GL_CHECK_VAL(timeline_d, 0); + GL_CHECK_VAL(timeline_d->sel_d, 0); + return eina_list_count(timeline_d->sel_d->sel_list); +} + +static bool __gl_timeline_sel_append_item(gl_timeline_s *timeline_d, char *uuid) +{ + GL_CHECK_FALSE(uuid); + GL_CHECK_FALSE(timeline_d); + GL_CHECK_FALSE(timeline_d->sel_d); + + Eina_List *l = NULL; + char *item = NULL; + EINA_LIST_FOREACH(timeline_d->sel_d->sel_list, l, item) { + if (item && !g_strcmp0(item, uuid)) { + gl_dbgW("Appended!"); + return false; + } + } + char *tmp = g_strdup(uuid); + GL_CHECK_FALSE(tmp); + timeline_d->sel_d->sel_list = eina_list_append(timeline_d->sel_d->sel_list, + (void *)tmp); + return true; +} + +static bool __gl_timeline_check_special_file(gl_timeline_s *timeline_d, + gl_media_s *item, bool b_append) +{ + GL_CHECK_FALSE(item); + GL_CHECK_FALSE(timeline_d); + GL_CHECK_FALSE(timeline_d->sel_d); + + if (b_append) { + if (item->type == MEDIA_CONTENT_TYPE_IMAGE) { + timeline_d->sel_d->image_cnt++; + if (item->ext != NULL && + !strcasecmp(item->ext, GL_JPEG_FILE_EXT) && + _gl_exif_check_img_type(item->file_url)) + timeline_d->sel_d->jpge_cnt++; + } + } else { + if (item->type == MEDIA_CONTENT_TYPE_IMAGE) { + if (timeline_d->sel_d->image_cnt > 0) + timeline_d->sel_d->image_cnt--; + else + gl_dbgW("Image count is 0!"); + if (item->ext != NULL && + !strcasecmp(item->ext, GL_JPEG_FILE_EXT) && + _gl_exif_check_img_type(item->file_url)) { + if (timeline_d->sel_d->jpge_cnt > 0) + timeline_d->sel_d->jpge_cnt--; + else + gl_dbgW("JPG count is 0!"); + } + } + } + return true; +} + +int __gl_timeline_check_btns_state(gl_timeline_s *timeline_d, int all_cnt, + int sel_cnt) +{ + GL_CHECK_VAL(timeline_d, -1); + GL_CHECK_VAL(timeline_d->ad, -1); + GL_CHECK_VAL(timeline_d->sel_d, -1); + gl_appdata *ad = (gl_appdata *)timeline_d->ad; + + gl_dbg("sel_cnt/all_cnt = %d/%d", sel_cnt, all_cnt); + if (sel_cnt > all_cnt) { + gl_dbgE("selected_cnt > all_cnt!"); + return -1; + } else if (sel_cnt == all_cnt) { + ad->selinfo.ck_state = EINA_TRUE; + } else { + ad->selinfo.ck_state = EINA_FALSE; + } + + if (ad->selinfo.selectall_ck) { + elm_check_state_set(ad->selinfo.selectall_ck, ad->selinfo.ck_state); + } + + /* Enable/Disable control bar buttons */ + if (sel_cnt > 0) { + gl_dbg("view_m: %d", ad->tlinfo->view_m); + if (ad->tlinfo->view_m == GL_TL_VIEW_EDIT) { + /* Disable delete/edit/addtag if facebook files selected */ + /* Disable edit/addtag if cloud files selected */ + /* facebook files only for share */ + _gl_ui_disable_menu(timeline_d->nf_it, false); + _gl_ctrl_disable_items(timeline_d->nf_it, false); + } else { /* Share mode */ + _gl_ctrl_disable_items(timeline_d->nf_it, false); + } + } else { + /* Disable control bar buttons */ + _gl_ui_disable_menu(timeline_d->nf_it, true); + _gl_ctrl_disable_items(timeline_d->nf_it, true); + } + + return 0; +} + +static bool __gl_timeline_sel_remove_item(gl_timeline_s *timeline_d, char *uuid) +{ + GL_CHECK_FALSE(uuid); + GL_CHECK_FALSE(timeline_d); + GL_CHECK_FALSE(timeline_d->sel_d); + + Eina_List *l = NULL; + char *item = NULL; + EINA_LIST_FOREACH(timeline_d->sel_d->sel_list, l, item) { + if (item && !g_strcmp0(item, uuid)) { + timeline_d->sel_d->sel_list = eina_list_remove(timeline_d->sel_d->sel_list, + (void *)item); + GL_GFREE(item); + return true; + } + } + return false; +} + +#if 0 +static int __gl_timeline_update_sel_list(gl_timeline_s *timeline_d) +{ + GL_CHECK_VAL(timeline_d, -1); + GL_CHECK_VAL(timeline_d->sel_d, -1); + int ret = -1; + Eina_List *new_l = NULL; + Eina_List *list = NULL; + + ret = _gl_data_get_items(GL_GET_ALL_RECORDS, GL_GET_ALL_RECORDS, &list); + if (ret != 0 || !list) + gl_dbgW("Empty!"); + + /* Clear old selected count of sepecial files type */ + __gl_timeline_clear_sel_cnt(timeline_d); + + gl_media_s *item = NULL; + char *tmp = NULL; + EINA_LIST_FREE(list, item) { + if (!item || !item->uuid) + continue; + if (__gl_timeline_sel_remove_item(timeline_d, item->uuid)) { + tmp = g_strdup(item->uuid); + new_l = eina_list_append(new_l, (void *)tmp); + __gl_timeline_check_special_file(timeline_d, item, true); + } + _gl_data_type_free_glitem((void **)(&item)); + item = NULL; + tmp = NULL; + } + + __gl_timeline_clear_sel_list(timeline_d); + return 0; +} + +static int __gl_timeline_check_op(gl_tlp_s *it_d, Evas_Object *obj, int index) +{ + GL_CHECK_VAL(obj, -1); + GL_CHECK_VAL(it_d, -1); + GL_CHECK_VAL(it_d->timeline_d, -1); + GL_CHECK_VAL(it_d->timeline_d->ad, -1); + gl_dbg("index: %d", index); + gl_dbg("start_pos-%d, end_pos-%d", it_d->start_pos, it_d->end_pos); + +#ifdef _USE_SVI + /* Play touch sound */ + _gl_play_sound(it_d->timeline_d->ad); +#endif + + Eina_List *list = NULL; + _gl_data_get_items(it_d->start_pos, it_d->end_pos, &list); + if (list == NULL) { + gl_dbgW("Empty list!"); + return -1; + } + + gl_media_s *item = NULL; + item = eina_list_nth(list, index); + + Eina_Bool checked = elm_check_state_get(obj); + gl_dbg("checked: %d", checked); + gl_sdbg("uuid: %s", item->uuid); + + if (checked) { + __gl_timeline_check_special_file(it_d->timeline_d, item, true); + __gl_timeline_sel_append_item(it_d->timeline_d, item->uuid); + } else { + __gl_timeline_check_special_file(it_d->timeline_d, item, false); + __gl_timeline_sel_remove_item(it_d->timeline_d, item->uuid); + } + + /* Update the label text */ + int sel_cnt = __gl_timeline_get_sel_cnt(it_d->timeline_d); + _gl_ui_update_navi_title_text(it_d->timeline_d->nf_it, sel_cnt, false); + + __gl_timeline_check_btns_state(it_d->timeline_d, it_d->timeline_d->count, + sel_cnt); + + _gl_data_type_free_media_list(&list); + return 0; +} +#endif + +static int __gl_timeline_thumb_check_op(gl_timeline_s *it_d, Evas_Object *obj, gl_media_s *item) +{ + GL_CHECK_VAL(obj, -1); + GL_CHECK_VAL(it_d, -1); + GL_CHECK_VAL(it_d->ad, -1); + GL_CHECK_VAL(item, -1); + +#ifdef _USE_SVI + /* Play touch sound */ + _gl_play_sound(it_d->ad); +#endif + + Eina_Bool checked = elm_check_state_get(obj); + item->check_state = checked; + if (checked) { + __gl_timeline_check_special_file(it_d, item, true); + __gl_timeline_sel_append_item(it_d, item->uuid); + } else { + __gl_timeline_check_special_file(it_d, item, false); + __gl_timeline_sel_remove_item(it_d, item->uuid); + } + + /* Update the label text */ + int sel_cnt = __gl_timeline_get_sel_cnt(it_d); + _gl_ui_update_navi_title_text(it_d->nf_it, sel_cnt, false); + + __gl_timeline_check_btns_state(it_d, it_d->count, + sel_cnt); + + return 0; +} + +static void __gl_timeline_thumbs_check_changed(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(obj); + GL_CHECK(data); + gl_media_s *gitem = (gl_media_s *)data; + gl_timeline_s *td = evas_object_data_get(obj, "data"); + GL_CHECK(td); + + __gl_timeline_thumb_check_op(td, obj, gitem); +} + +#if 0 +static int __gl_timeline_open_file(gl_tlp_s *it_d, int index) +{ + GL_CHECK_VAL(it_d, -1); + GL_CHECK_VAL(it_d->timeline_d, -1); + GL_CHECK_VAL(it_d->timeline_d->ad, -1); + gl_dbg("index: %d", index); + gl_dbg("start_pos-%d, end_pos-%d", it_d->start_pos, it_d->end_pos); + +#ifdef _USE_SVI + /* Play touch sound */ + _gl_play_sound(it_d->timeline_d->ad); +#endif + + Eina_List *list = NULL; + _gl_data_get_items(it_d->start_pos, it_d->end_pos, &list); + if (list == NULL) { + gl_dbgW("Empty list!"); + return -1; + } + gl_media_s *item = NULL; + item = eina_list_nth(list, index); + + if (item && item->file_url) + _gl_ext_load_iv_timeline(it_d->timeline_d->ad, item->file_url, + (it_d->start_pos + index + 1)); + else + gl_dbgW("Image wasn't found!"); + _gl_data_type_free_media_list(&list); + return 0; +} + +static void __gl_timeline_mouse_down(void *data, Evas *e, Evas_Object *obj, + void *ei) +{ + GL_CHECK(ei); + GL_CHECK(data); + gl_tlp_s *it_d = (gl_tlp_s *)data; + GL_CHECK(it_d->timeline_d); + Evas_Event_Mouse_Down *ev = (Evas_Event_Mouse_Down *)ei; + + it_d->timeline_d->mouse.x = ev->output.x; + it_d->timeline_d->mouse.y = ev->output.y; +} + +static void __gl_timeline_mouse_up(void *data, Evas *e, Evas_Object *obj, + void *ei) +{ + GL_CHECK(ei); + GL_CHECK(data); + gl_tlp_s *it_d = (gl_tlp_s *)data; + GL_CHECK(it_d->timeline_d); + GL_CHECK(it_d->timeline_d->ad); + + if (!ei || !obj) + return; + + Evas_Event_Mouse_Up *ev = (Evas_Event_Mouse_Up *)ei; + if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD || + ev->event_flags & EVAS_EVENT_FLAG_ON_SCROLL) + return; + + if ((abs(it_d->timeline_d->mouse.x - ev->output.x) > GL_MOUSE_RANGE) || + (abs(it_d->timeline_d->mouse.y - ev->output.y) > GL_MOUSE_RANGE)) + return; + + int saved_i = 0; +#ifdef _USE_ROTATE_BG + _gl_rotate_bg_get_data(obj, (void **)(&saved_i)); +#endif + if (it_d->timeline_d->view_m != GL_TL_VIEW_NORMAL) { + char *part = NULL; + part = g_strdup_printf(GL_TL_CHECKBOX_FORMAT, it_d->count, + saved_i + 1); + Evas_Object *ck = NULL; + ck = elm_object_part_content_get(it_d->layout, part); + GL_FREEIF(part); + elm_check_state_set(ck, !elm_check_state_get(ck)); + __gl_timeline_check_op(it_d, ck, saved_i); + } else { + __gl_timeline_open_file(it_d, saved_i); + } +} + +static int __gl_timeline_clear_bg_data(Evas_Object *bg) +{ + GL_CHECK_VAL(bg, -1); + gl_media_s *item = NULL; + gl_timeline_s *timeline_d = NULL; + + item = (gl_media_s *)evas_object_data_get(bg, GL_TL_TILE_DATA_KEY); + if (item) { + gl_dbg("Free media item!"); + _gl_data_type_free_glitem((void **)(&item)); + } + evas_object_data_del(bg, GL_TL_TILE_DATA_KEY); + + timeline_d = (gl_timeline_s *)evas_object_data_get(bg, GL_TL_DATA_KEY); + if (timeline_d && timeline_d->thumbs) { + gl_dbg("Remove object!"); + timeline_d->thumbs = eina_list_remove(timeline_d->thumbs, + (void *)bg); + } + return 0; +} + +static void __gl_timeline_del_bg_cb(void *data, Evas *e, Evas_Object *obj, + void *ei) +{ + gl_dbgW("Delete bg ---"); + __gl_timeline_clear_bg_data(obj); + /* Remove mouse event if bg deleted */ + evas_object_event_callback_del(obj, EVAS_CALLBACK_MOUSE_DOWN, + __gl_timeline_mouse_down); + evas_object_event_callback_del(obj, EVAS_CALLBACK_MOUSE_UP, + __gl_timeline_mouse_up); + gl_dbgW("Delete bg +++"); +} + +static Evas_Object *__gl_timeline_add_page_bg(Evas_Object *layout, + const char *part, + unsigned int orient, char *path, + int w, int h) +{ + GL_CHECK_NULL(layout); +#ifdef _USE_ROTATE_BG + Evas_Object *bg = _gl_rotate_bg_add(layout, false); + GL_CHECK_NULL(bg); + + _gl_rotate_bg_set_file(bg, path, w, h); + _gl_rotate_bg_rotate_image(bg, orient); + + gl_dbg("part-%s", part); + elm_object_part_content_set(layout, part, bg); + return bg; +#else + return NULL; +#endif +} + +static void __gl_timeline_check_changed(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_tlp_s *it_d = (gl_tlp_s *)data; + + int idx = (int)evas_object_data_get(obj, "gl_tl_idx_key"); + __gl_timeline_check_op(it_d, obj, idx); +} + +static Evas_Object *__gl_timeline_add_ck(Evas_Object *layout, + const char *part, bool b_checked, + gl_tlp_s *it_d) +{ + GL_CHECK_NULL(layout); + Evas_Object *ck = NULL; + ck = _gl_thumb_show_checkbox(layout, b_checked, + __gl_timeline_check_changed, it_d); + gl_dbg("part-%s", part); + elm_object_part_content_set(layout, part, ck); + return ck; +} + +static Evas_Object *__gl_timeline_add_page_ly(Evas_Object *parent, + gl_tlp_s *it_d) +{ + GL_CHECK_NULL(it_d); + GL_CHECK_NULL(parent); + Evas_Object *ly = NULL; + + char *group = NULL; + if (it_d->h > it_d->w) + group = g_strdup_printf("gallery/timeline_%d", it_d->count); + else + group = g_strdup_printf("gallery/timeline_%dl", it_d->count); + + ly = gl_ui_load_edj(parent, GL_EDJ_FILE, group); + GL_GFREE(group); + GL_CHECK_NULL(ly); + + Evas_Object *bg = evas_object_rectangle_add(evas_object_evas_get(ly)); + if (!bg) { + evas_object_del(ly); + return NULL; + } + + evas_object_color_set(bg, 0, 0, 0, 0); + elm_object_part_content_set(ly, "bg_c", bg); + + evas_object_show(ly); + return ly; +} +#endif + +static bool __gl_timeline_is_yesterday(struct tm *req_tm, struct tm *now_tm) +{ + if (now_tm->tm_yday == 0) { /* It is the first day of this year */ + if (req_tm->tm_year == now_tm->tm_year - 1 && + req_tm->tm_mon == 11 && req_tm->tm_mday == 31) + return true; + else + return false; + } else { + if (req_tm->tm_year == now_tm->tm_year && + req_tm->tm_yday == now_tm->tm_yday - 1) + return true; + else + return false; + } +} + +static bool __gl_timeline_is_today(struct tm *req_tm, struct tm *now_tm) +{ + if (req_tm->tm_year == now_tm->tm_year && + req_tm->tm_yday == now_tm->tm_yday) + return true; + else + return false; +} + +/* change 'time_t' to 'struct tm' */ +static int __gl_timeline_get_tm(time_t mtime1, time_t mtime2, struct tm *t1, + struct tm *t2) +{ + GL_CHECK_VAL(t1, -1); + GL_CHECK_VAL(t2, -1); + + memset(t1, 0x00, sizeof(struct tm)); + localtime_r(&mtime1, t1); + memset(t2, 0x00, sizeof(struct tm)); + localtime_r(&mtime2, t2); + return 0; +} + +#if 0 +/* check mtime is changed or not */ +static bool __gl_timeline_is_tm_changed(struct tm t1, struct tm t2, + gl_tm_s *tms, gl_tm_s *tme) +{ + GL_CHECK_FALSE(tms); + GL_CHECK_FALSE(tme); + + gl_dbgW("%d/%d/%d-%d/%d/%d =? %d/%d/%d-%d/%d/%d!", t1.tm_year, t1.tm_mon, + t1.tm_mday, t2.tm_year, t2.tm_mon, t2.tm_mday, tms->tm_year, + tms->tm_mon, tms->tm_mday, tme->tm_year, tme->tm_mon, + tme->tm_mday); + + if (tms->tm_year == t1.tm_year && tms->tm_mon == t1.tm_mon && + tms->tm_mday == t1.tm_mday && tme->tm_year == t2.tm_year && + tme->tm_mon == t2.tm_mon && tme->tm_mday == t2.tm_mday) + return false; + + tms->tm_year = t1.tm_year; + tms->tm_mon = t1.tm_mon; + tms->tm_mday = t1.tm_mday; + + tme->tm_year = t2.tm_year; + tme->tm_mon = t2.tm_mon; + tme->tm_mday = t2.tm_mday; + return true; +} +#endif + +/* Caller need to free strings returned */ +static int __gl_timeline_get_mtime_str(struct tm t1, struct tm t2, char **str1, + char **str2) +{ + GL_CHECK_VAL(str1, -1); + GL_CHECK_VAL(str2, -1); + struct tm ct; + time_t ctime = 0; + const char *prefix1 = ""; + const char *prefix2 = ""; + /*char *week_day[7] = { GL_STR_SUN, GL_STR_MON, GL_STR_TUE, GL_STR_WED, + GL_STR_THU, GL_STR_FRI, GL_STR_SAT};*/ + char *month[12] = { GL_STR_ID_JAN, GL_STR_ID_FEB, GL_STR_ID_MAR, GL_STR_ID_APR, GL_STR_ID_MAY, GL_STR_ID_JUN, + GL_STR_ID_JUL, GL_STR_ID_AUG, GL_STR_ID_SEP, GL_STR_ID_OCT, GL_STR_ID_NOV, GL_STR_ID_DEC}; + + /* Current time */ + memset(&ct, 0x00, sizeof(struct tm)); + time(&ctime); + localtime_r(&ctime, &ct); + + if (t1.tm_year == t2.tm_year && t1.tm_mon == t2.tm_mon && + t1.tm_mday == t2.tm_mday) { + /* Same day */ + if (__gl_timeline_is_today(&t1, &ct)) { + /* Today */ + *str1 = g_strdup_printf("%s%s", prefix1, + GL_STR_TODAY); + *str2 = g_strdup_printf("%s%s", prefix2, + ""); + return 0; + } + } else if (t1.tm_year == t2.tm_year && t1.tm_mon == t2.tm_mon) { + /* Same month */ + if (__gl_timeline_is_yesterday(&t1, &ct)) { + /* Yesterday */ + *str1 = g_strdup_printf("%s%s", prefix1, + GL_STR_YESTERDAY); + *str2 = g_strdup_printf("%s%s", prefix2, + ""); + return 0; + } + *str2 = g_strdup_printf("%s%d.%02d.%02d ~ %02d.%02d", prefix2, + GL_DEFAULT_YEAR + t2.tm_year, + t2.tm_mon + 1, t2.tm_mday, + t1.tm_mon + 1, t1.tm_mday); + *str1 = g_strdup_printf("%s%02d %s", prefix2, + t1.tm_mday, month[t1.tm_mon]); + } else if (t1.tm_year == t2.tm_year) { + /* Same year */ + *str2 = g_strdup_printf("%s%d.%02d.%02d ~ %02d.%02d", prefix2, + GL_DEFAULT_YEAR + t2.tm_year, + t2.tm_mon + 1, t2.tm_mday, + t1.tm_mon + 1, t1.tm_mday); + *str1 = g_strdup_printf("%s %s", prefix2, month[t1.tm_mon]); + } else { + *str2 = g_strdup_printf("%s%d.%02d.%02d ~ %d.%02d.%02d", + prefix2, GL_DEFAULT_YEAR + t2.tm_year, + t2.tm_mon + 1, t2.tm_mday, + GL_DEFAULT_YEAR + t1.tm_year, + t1.tm_mon + 1, t1.tm_mday); + *str1 = g_strdup_printf("%s%d ", prefix2, GL_DEFAULT_YEAR + t1.tm_year); + } + return 0; +} + +#if 0 +static Evas_Object *__gl_timeline_add_title(Evas_Object *parent, char *text1, + char *text2) +{ + gl_dbg(""); + GL_CHECK_NULL(parent); + Evas_Object *bx = NULL; + Evas_Object *data1 = NULL; + Evas_Object *data2 = NULL; + double scale = elm_config_scale_get(); + + if (text2 == NULL) + goto GL_UI_FAILED; + + bx = elm_box_add(parent); + GL_CHECK_NULL(bx); + elm_box_horizontal_set(bx, EINA_TRUE); + elm_box_homogeneous_set(bx, EINA_FALSE); + evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(bx, 0.0, 0.5); + elm_box_align_set(bx, 0.0, 0.5); + + Evas *evas = evas_object_evas_get(parent); + if (evas == NULL) + goto GL_UI_FAILED; + /* Pad - 11 */ + Evas_Object *rect1 = evas_object_rectangle_add(evas); + if (rect1 == NULL) + goto GL_UI_FAILED; + Evas_Coord pad_w = (Evas_Coord)(11 * scale); + Evas_Coord pad_h = (Evas_Coord)(GL_TIMELINE_TITLE_H * scale); + evas_object_resize(rect1, pad_w, pad_h); + evas_object_size_hint_min_set(rect1, pad_w, pad_h); + evas_object_size_hint_max_set(rect1, pad_w, pad_h); + elm_box_pack_end(bx, rect1); + + /* data 1 */ + if (text1) { + data1 = elm_label_add(parent); + if (data1 == NULL) + goto GL_UI_FAILED; + evas_object_size_hint_weight_set(data1, 0.0, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(data1, 0.0, 0.5); + elm_box_pack_end(bx, data1); + evas_object_show(data1); + /* Set text */ + gl_dbg("%s", text1); + elm_object_text_set(data1, text1); + GL_GFREE(text1); + + /* Pad - 10 */ + Evas_Object *rect2 = evas_object_rectangle_add(evas); + if (rect2 == NULL) + goto GL_UI_FAILED; + Evas_Coord pad2_w = (Evas_Coord)(10 * scale); + evas_object_resize(rect2, pad2_w, pad_h); + evas_object_size_hint_min_set(rect2, pad2_w, pad_h); + evas_object_size_hint_max_set(rect2, pad2_w, pad_h); + elm_box_pack_end(bx, rect2); + } + + /* data 2 */ + data2 = elm_label_add(parent); + if (data2 == NULL) + goto GL_UI_FAILED; + evas_object_size_hint_weight_set(data2, 0.0, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(data2, 0.0, 0.5); + elm_box_pack_end(bx, data2); + evas_object_show(data2); + /* Set text */ + gl_dbg("%s", text2); + elm_object_text_set(data2, text2); + GL_GFREE(text2); + + /* Pad - 11 */ + Evas_Object *rect3 = evas_object_rectangle_add(evas); + if (rect3 == NULL) + goto GL_UI_FAILED; + evas_object_resize(rect3, pad_w, pad_h); + evas_object_size_hint_min_set(rect3, pad_w, pad_h); + evas_object_size_hint_max_set(rect3, pad_w, pad_h); + elm_box_pack_end(bx, rect3); + + evas_object_show(bx); + return bx; + + GL_UI_FAILED: + + gl_dbgE("Failed to add title!"); + GL_IF_DEL_OBJ(bx); + return NULL; +} +#endif + +/* Reset title for previous animation if another animation is triggerred */ +static int __gl_timeline_reset_title(gl_timeline_s *timeline_d) +{ + GL_CHECK_VAL(timeline_d, -1); + + Evas_Object *title = elm_object_part_content_unset(timeline_d->layout, + "title2"); + GL_CHECK_VAL(title, -1); + gl_dbg("Set new title: %p", title); + elm_object_part_content_set(timeline_d->layout, "title", title); + + edje_object_signal_emit(_EDJ(timeline_d->layout), GL_TL_TITLE_SHOW, + "elm"); + edje_object_message_signal_process(_EDJ(timeline_d->layout)); + return 0; +} + +/* "elm,state,title,hide" + */ +static void __gl_timeline_on_title_hide_finished(void *data, Evas_Object *obj, + const char *emission, + const char *source) +{ + GL_CHECK(data); + gl_timeline_s *timeline_d = (gl_timeline_s *)data; + + if (!timeline_d->b_updating_title) { + gl_dbgW("Updating done!"); + return; + } + + Evas_Object *title = elm_object_part_content_unset(timeline_d->layout, + "title"); + gl_dbg("Delete old title: %p", title); + GL_IF_DEL_OBJ(title); +} + +/* "elm,state,title2,show" + */ +static void __gl_timeline_on_title2_show_finished(void *data, Evas_Object *obj, + const char *emission, + const char *source) +{ + GL_CHECK(data); + gl_timeline_s *timeline_d = (gl_timeline_s *)data; + + if (!timeline_d->b_updating_title) { + gl_dbgW("Updating done!"); + return; + } + + gl_dbg("Update title"); + __gl_timeline_reset_title(timeline_d); +} + +static int __gl_timeline_add_title_trans_finished_cbs(gl_timeline_s *timeline_d, + bool b_add) +{ + GL_CHECK_VAL(timeline_d, -1); + gl_dbg("b_add: %d", b_add); + + if (b_add) { + /* Add callback for title updating */ + edje_object_signal_callback_add(_EDJ(timeline_d->layout), + GL_TL_TITLE2_SHOW_FINISHED, "", + __gl_timeline_on_title2_show_finished, + (void *)timeline_d); + edje_object_signal_callback_add(_EDJ(timeline_d->layout), + GL_TL_TITLE_HIDE_FINISHED, "", + __gl_timeline_on_title_hide_finished, + (void *)timeline_d); + } else { + /* Add callback for title updating */ + edje_object_signal_callback_del(_EDJ(timeline_d->layout), + GL_TL_TITLE2_SHOW_FINISHED, "", + __gl_timeline_on_title2_show_finished); + edje_object_signal_callback_del(_EDJ(timeline_d->layout), + GL_TL_TITLE_HIDE_FINISHED, "", + __gl_timeline_on_title_hide_finished); + } + return 0; +} + +#if 0 +static Eina_Bool __gl_timeline_title_trans_cb(void *data) +{ + GL_CHECK_CANCEL(data); + gl_timeline_s *timeline_d = (gl_timeline_s *)data; + gl_dbg(""); + + if (!timeline_d->b_updating_title) { + gl_dbgW("Updating done!"); + return ECORE_CALLBACK_CANCEL; + } + + timeline_d->animator = NULL; + + edje_object_signal_emit(_EDJ(timeline_d->layout), + GL_TL_TITLE_FADE_OUT, "elm"); + //edje_object_message_signal_process(_EDJ(timeline_d->layout)); + edje_object_signal_emit(_EDJ(timeline_d->layout), + GL_TL_TITLE2_FADE_IN, "elm"); + edje_object_message_signal_process(_EDJ(timeline_d->layout)); + edje_object_signal_emit(_EDJ(timeline_d->layout), + GL_TL_TITLE_HIDE_DEFERRED, "elm"); + edje_object_message_signal_process(_EDJ(timeline_d->layout)); + edje_object_signal_emit(_EDJ(timeline_d->layout), + GL_TL_TITLE2_SHOW_DEFERRED, "elm"); + edje_object_message_signal_process(_EDJ(timeline_d->layout)); + + gl_dbg("done"); + return ECORE_CALLBACK_CANCEL; +} + +static int __gl_timeline_start_title_trans(gl_timeline_s *timeline_d) +{ + GL_CHECK_VAL(timeline_d, -1); + edje_object_signal_emit(_EDJ(timeline_d->layout), GL_TL_TITLE_SHOW, + "elm"); + edje_object_signal_emit(_EDJ(timeline_d->layout), GL_TL_TITLE2_CREATED, + "elm"); + edje_object_message_signal_process(_EDJ(timeline_d->layout)); + timeline_d->animator = ecore_animator_add(__gl_timeline_title_trans_cb, + timeline_d); + return 0; +} + +static int __gl_timeline_update_title(gl_timeline_s *timeline_d, gl_tlp_s *it_d, + bool b_forced) +{ + GL_CHECK_VAL(it_d, -1); + GL_CHECK_VAL(timeline_d, -1); + gl_dbg("index-%d, count-%d", it_d->index, it_d->count); + gl_dbg("start_pos-%d, end_pos-%d", it_d->start_pos, it_d->end_pos); + + Eina_List *list = NULL; + _gl_data_get_items(it_d->start_pos, it_d->end_pos, &list); + if (list == NULL) { + gl_dbgW("Empty list!"); + return -1; + } + + Evas_Object *title = NULL; + gl_media_s *item = NULL; + int i = 0; + time_t mtime1 = 0; + time_t mtime2 = 0; + int count = eina_list_count(list); + + for (i = 0; i < count; i++) { + item = eina_list_nth(list, i); + if (item == NULL) { + gl_dbgE("Invalid item!"); + continue; + } + + if (i == 0) + mtime1 = item->mtime; + if (i == count - 1) + mtime2 = item->mtime; + + item = NULL; + } + _gl_data_type_free_media_list(&list); + + struct tm t1; + struct tm t2; + __gl_timeline_get_tm(mtime1, mtime2, &t1, &t2); + /* Time changed? */ + if (!b_forced && + !__gl_timeline_is_tm_changed(t1, t2, &(timeline_d->tm_s), &(timeline_d->tm_e))) { + if (!elm_object_part_content_get(timeline_d->layout, "title")) { + gl_dbgW("Title is empty, recreate it!"); + } else { + gl_dbgW("Same mtime, change nothing!"); + return 0; + } + } + /* Get title range -- string */ + char *text1 = NULL; + char *text2 = NULL; + __gl_timeline_get_mtime_str(t1, t2, &text1, &text2); + /* Add title object */ + title = __gl_timeline_add_title(timeline_d->layout, text1, text2); + GL_CHECK_VAL(title, -1); + if (!b_forced && /* Dont transit if it's forced to update title */ + elm_object_part_content_get(timeline_d->layout, "title")) { + /* Play Animation for title updating */ + gl_dbg("Animate title"); + if (timeline_d->b_updating_title) { + gl_dbgW("Cancel previous animation!"); + GL_IF_DEL_ANIMATOR(timeline_d->animator); + /* Delete callback first to skip useless operation */ + __gl_timeline_add_title_trans_finished_cbs(timeline_d, + false); + __gl_timeline_reset_title(timeline_d); + /* Add callback again */ + __gl_timeline_add_title_trans_finished_cbs(timeline_d, + true); + } else { + timeline_d->b_updating_title = true; + } + elm_object_part_content_set(timeline_d->layout, "title2", title); + __gl_timeline_start_title_trans(timeline_d); + } else { + gl_dbg("Set title"); + elm_object_part_content_set(timeline_d->layout, "title", title); + } + return 0; +} + +static int __gl_timeline_get_tile_size(int count, int idx, bool b_land, int *w, + int *h) +{ + GL_CHECK_VAL(w, -1); + GL_CHECK_VAL(h, -1); + + if (count == 1) { + if (b_land) { + *w = GL_WIN_HEIGHT; + *h = GL_TIMELINE_CONTENT_L_H; + } else { + *w = GL_WIN_WIDTH; + *h = GL_TIMELINE_CONTENT_P_H; + } + } else if (count == 2 || (count == 3 && idx == 0)) { + if (!b_land) { + *w = GL_WIN_WIDTH * 2 / 3; + *h = GL_TIMELINE_CONTENT_P_H / 2; + } else if (idx == 0) { + *w = GL_WIN_HEIGHT * 2 / 3; + *h = GL_TIMELINE_CONTENT_L_H; + } + } + return 0; +} +#endif + +/* Free data after page deleted */ +static void __gl_timeline_del_page_cb(void *data, Evas *e, Evas_Object *obj, + void *ei) +{ + gl_dbgW("Delete page ---"); + GL_CHECK(data); + evas_object_smart_callback_del(obj, "layout,page,deleted", + __gl_timeline_page_deleted_cb); + gl_tlp_s *it_d = (gl_tlp_s *)data; + GL_IF_DEL_IDLER(it_d->update_idler); + it_d->b_created = false; + gl_dbgW("Delete page +++"); +} + +static void __gl_timeline_page_deleted_cb(void *data, Evas_Object *obj, + void *ei) +{ + gl_dbgW("Deleted page ------"); + evas_object_event_callback_del(obj, EVAS_CALLBACK_DEL, + __gl_timeline_del_page_cb); + GL_CHECK(data); + gl_tlp_s *it_d = (gl_tlp_s *)data; + GL_IF_DEL_IDLER(it_d->update_idler); + it_d->b_created = false; + gl_dbgW("Deleted page ++++++"); +} + +#if 0 +static int __gl_timeline_update_page(gl_tlp_s *it_d) +{ + GL_CHECK_VAL(it_d, -1); + GL_CHECK_VAL(it_d->layout, -1); + gl_dbg("index-%d, count-%d", it_d->index, it_d->count); + gl_dbg("start_pos-%d, end_pos-%d", it_d->start_pos, it_d->end_pos); + + Eina_List *list = NULL; + _gl_data_get_items(it_d->start_pos, it_d->end_pos, &list); + if (list == NULL) { + gl_dbgW("Empty list!"); + return -1; + } + + bool b_landscape = false; + if (it_d->w > it_d->h) + b_landscape = true; + + Evas_Object *layout = it_d->layout; + Evas_Object *bg = NULL; + gl_media_s *item = NULL; + int i = 0; + char *part = NULL; + int count = eina_list_count(list); + char *path = NULL; + unsigned int orient = 0; + int w = GL_TIMELINE_PAGE_SIZE; + int h = GL_TIMELINE_PAGE_SIZE; + + for (i = 0; i < count; i++) { + item = eina_list_nth(list, i); + if (item == NULL) { + gl_dbgE("Invalid item!"); + continue; + } + +/* Checkme: Scrolling doesn't work smoothly if original file was used */ + /* Get orientation for original file */ + if (((i == 0 && count <= 5) || + (i == 1 && count <= 3 && !b_landscape) || + (i == 2 && count == 4 && !b_landscape) || + (i == 1 && (count == 2 || count == 4) && b_landscape)) && + item->type == MEDIA_CONTENT_TYPE_IMAGE && + GL_FILE_EXISTS(item->file_url)) { + path = item->file_url; +#ifdef _USE_ROTATE_BG + if (_gl_exif_get_orientation(path, &orient) < 0) { + path = item->thumb_url; + return -1; + } +#endif + __gl_timeline_get_tile_size(count, i, b_landscape, &w, + &h); + part = g_strdup_printf(GL_TL_CONTENTS_FORMAT, + it_d->count, i + 1); + bg = elm_object_part_content_get(layout, part); + if (bg) { + _gl_rotate_bg_set_file(bg, path, w, h); + _gl_rotate_bg_rotate_image(bg, orient); + } else { + gl_dbgE("BG is invalid!"); + } + GL_GFREEIF(part); + } + part = NULL; + item = NULL; + } + _gl_data_type_free_media_list(&list); + gl_dbg("done"); + return 0; +} + +static void __gl_timeline_page_transited_cb(void *data, Evas_Object *obj, + void *ei) +{ + gl_dbgW("Transited page ------"); + evas_object_event_callback_del(obj, EVAS_CALLBACK_DEL, + __gl_timeline_del_page_cb); + GL_CHECK(data); + gl_tlp_s *it_d = (gl_tlp_s *)data; + GL_IF_DEL_IDLER(it_d->update_idler); + _gl_slider_set_zop(it_d->timeline_d->view, GL_SLIDE_ZOP_DEFAULT); + __gl_timeline_update_page((gl_tlp_s *)data); + gl_dbgW("evas_object_freeze_events_set EINA_FALSE"); + evas_object_freeze_events_set(it_d->timeline_d->view, EINA_FALSE); + gl_dbgW("Transited page ++++++"); +} + +static Eina_Bool __gl_timeline_page_update_idler_cb(void *data) +{ + gl_dbgW("start"); + GL_CHECK_CANCEL(data); + gl_tlp_s *it_d = (gl_tlp_s *)data; + GL_IF_DEL_IDLER(it_d->update_idler); + __gl_timeline_update_page((gl_tlp_s *)data); + gl_dbgW("done"); + return ECORE_CALLBACK_CANCEL; +} + +static int __gl_timeline_check_page_idler(gl_tlp_s *it_d) +{ + GL_CHECK_VAL(it_d, -1); + GL_CHECK_VAL(it_d->timeline_d, -1); + + gl_slide_zop_e zoom = _gl_slider_get_zop(it_d->timeline_d->view); + gl_dbg("zoom-%d, tran_op-%d", zoom, it_d->timeline_d->tran_op); + if (it_d->timeline_d->tran_op == GL_TRANS_OP_PREPARE || + it_d->timeline_d->tran_op == GL_TRANS_OP_DONE) { + gl_dbg("Update checked by transit callback"); + } else if (it_d->timeline_d->tran_op == GL_TRANS_OP_START) { + gl_dbg("Delay idler callback"); + it_d->timeline_d->idlers = eina_list_append(it_d->timeline_d->idlers, + it_d); + } else if (zoom == GL_SLIDE_ZOP_OUT || zoom == GL_SLIDE_ZOP_IN) { + gl_dbg("Updated by transit callback"); + } else { + GL_IF_DEL_IDLER(it_d->update_idler); + gl_dbg("Add idler callback"); + it_d->update_idler = ecore_idler_add(__gl_timeline_page_update_idler_cb, + it_d); + } + return 0; +} + +static int __gl_timeline_add_page_cbs(gl_tlp_s *it_d, Evas_Object *layout) +{ + GL_CHECK_VAL(layout, -1); + GL_CHECK_VAL(it_d, -1); + + /* Register delete callback */ + evas_object_event_callback_add(layout, EVAS_CALLBACK_DEL, + __gl_timeline_del_page_cb, it_d); + evas_object_smart_callback_add(layout, "layout,page,deleted", + __gl_timeline_page_deleted_cb, it_d); + /* Register transit callback */ + evas_object_smart_callback_add(layout, "layout,page,transited", + __gl_timeline_page_transited_cb, it_d); + return 0; +} + +static void __gl_timeline_transit_op(Elm_Transit_Effect *data, + Elm_Transit *transit, double progress) +{ + gl_dbg(""); +} + +static void __gl_timeline_transit_done(Elm_Transit_Effect *data, Elm_Transit *transit) +{ + GL_CHECK(data); + gl_tile_s *tile = (gl_tile_s *)data; + gl_dbgW("%d/%d", tile->count, tile->total); + if (tile->count != tile->total) + return; + + gl_dbgW("tran_op: %d", tile->timeline_d->tran_op); + if (tile->timeline_d->tran_op == GL_TRANS_OP_START) { + tile->timeline_d->tran_op = GL_TRANS_OP_DONE; + _gl_slider_update_first_item(tile->timeline_d->view); + } + tile->timeline_d->tran_op = GL_TRANS_OP_DEFAULT; + gl_dbg("idlers: %p", tile->timeline_d->idlers); + if (tile->timeline_d->idlers) { + gl_tlp_s *it_d = NULL; + EINA_LIST_FREE(tile->timeline_d->idlers, it_d) { + gl_dbg("it_d: %p", it_d); + it_d->update_idler = ecore_idler_add(__gl_timeline_page_update_idler_cb, + it_d); + it_d = NULL; + } + tile->timeline_d->idlers = NULL; + } +} + +static void __gl_timeline_transit_del_cb(void *data, Elm_Transit *transit) +{ + gl_dbg(""); + GL_CHECK(data); + gl_tile_s *tile = (gl_tile_s *)data; + if (tile->count == tile->total) { + gl_dbgW("evas_object_freeze_events_set EINA_FALSE"); + evas_object_freeze_events_set(tile->timeline_d->view, EINA_FALSE); + GL_IF_FREE_ELIST(tile->timeline_d->tiles); + } + /* Free data */ + GL_FREEIF(data); +} + +static int __gl_timeline_tile_transit(gl_tile_s *tile) +{ +#define GL_TL_TRANS_TIME 0.7 + gl_dbg(""); + GL_CHECK_VAL(tile, -1); + + tile->trans = elm_transit_add(); + elm_transit_object_add(tile->trans, tile->bg); + + elm_transit_tween_mode_set(tile->trans, + ELM_TRANSIT_TWEEN_MODE_DECELERATE); + + elm_transit_effect_color_add(tile->trans, 0, 0, 0, 0, 255, 255, 255, + 255); + elm_transit_effect_zoom_add(tile->trans, 0.4, 1.0); + elm_transit_effect_add(tile->trans,__gl_timeline_transit_op, + (Elm_Transit_Effect *)tile, + __gl_timeline_transit_done); + elm_transit_del_cb_set(tile->trans, __gl_timeline_transit_del_cb, tile); + + elm_transit_duration_set(tile->trans, GL_TL_TRANS_TIME); + elm_transit_objects_final_state_keep_set(tile->trans, EINA_FALSE); + elm_transit_go(tile->trans); + return 0; +} + +static int __gl_timeline_transit_tiles(gl_timeline_s *timeline_d) +{ + gl_dbgW("start!"); + GL_CHECK_VAL(timeline_d, -1); + GL_CHECK_VAL(timeline_d->tiles, -1); + gl_tile_s *tile = NULL; + Eina_List *l = NULL; + + gl_dbgW("evas_object_freeze_events_set EINA_TRUE"); + evas_object_freeze_events_set(timeline_d->view, EINA_TRUE); + + /* Remove previous transits first */ + EINA_LIST_FOREACH(timeline_d->tiles, l, tile) { + if (tile) { + GL_IF_DEL_TRANSIT(tile->trans); + tile = NULL; + } + } + /* Transit each tile */ + EINA_LIST_FOREACH(timeline_d->tiles, l, tile) { + __gl_timeline_tile_transit(tile); + tile = NULL; + } + gl_dbgW("done!"); + return 0; +} + +static int __gl_timeline_add_tile(gl_tlp_s *it_d, Evas_Object *parent, + Evas_Object *bg, int count, int total) +{ + GL_CHECK_VAL(it_d, -1); + + gl_tile_s *tile = (gl_tile_s *)calloc(1, sizeof(gl_tile_s)); + GL_CHECK_VAL(tile, -1); + tile->bg = bg; + tile->parent = parent; + tile->it_d = it_d; + tile->count = count; + tile->total = total; + tile->timeline_d = it_d->timeline_d; + it_d->timeline_d->tiles = eina_list_append(it_d->timeline_d->tiles, + tile); + return 0; +} + +static Evas_Object *__gl_timeline_get_page_tiles(gl_tlp_s *it_d) +{ + GL_CHECK_NULL(it_d); + GL_CHECK_NULL(it_d->timeline_d); + gl_dbg("index-%d, count-%d", it_d->index, it_d->count); + gl_dbg("start_pos-%d, end_pos-%d", it_d->start_pos, it_d->end_pos); + + int i = 0; + int count = it_d->count; + char *part = NULL; + Evas_Object *bg = NULL; + + for (i = 0; i < count; i++) { + /* Add images */ + part = g_strdup_printf(GL_TL_CONTENTS_FORMAT, it_d->count, + i + 1); + + bg= elm_object_part_content_get(it_d->layout, part); + __gl_timeline_add_tile(it_d, NULL, bg, i + 1, count); + + part = NULL; + } + return 0; +} + +/* Transit tiles without updating images or layout */ +static int __gl_timeline_show_tiles_trans(gl_timeline_s *timeline_d) +{ + GL_CHECK_VAL(timeline_d, -1); + /* Get first image of current page */ + void *sitem = _gl_slider_get_sitem(timeline_d->view); + GL_CHECK_VAL(sitem, -1); + gl_tlp_s *it_d = (gl_tlp_s *)_gl_slider_get_sitem_data(sitem); + GL_CHECK_VAL(it_d, -1); + /* Show transition */ + if (it_d->timeline_d->tran_op == GL_TRANS_OP_PREPARE) { + __gl_timeline_get_page_tiles(it_d); + it_d->timeline_d->tran_op = GL_TRANS_OP_SHOW; + __gl_timeline_transit_tiles(it_d->timeline_d); + } + return 0; +} + +/* Only for local medias */ +static void __gl_timeline_create_thumb_cb(media_content_error_e error, + const char *path, void *user_data) +{ + GL_CHECK(user_data); + Evas_Object *bg = (Evas_Object *)user_data; + + if (error == MEDIA_CONTENT_ERROR_NONE && GL_FILE_EXISTS(path) && + g_strcmp0(path, GL_ICON_DB_DEFAULT_THUMB)) { + gl_sdbgW("path[%s]!", path); + _gl_rotate_bg_set_file(bg, path, GL_TIMELINE_PAGE_SIZE, + GL_TIMELINE_PAGE_SIZE); + _gl_rotate_bg_rotate_image(bg, GL_ORIENTATION_ROT_0); + } else { + gl_sdbgE("[%d]Invalid path[%s]!", error, path); + } + + __gl_timeline_clear_bg_data(bg); +} + +/* Add thumbs creation */ +static int __gl_timeline_create_thumbs(gl_timeline_s *timeline_d) +{ + GL_CHECK_VAL(timeline_d, -1); + Eina_List *l = NULL; + Evas_Object *bg = NULL; + gl_media_s *item = NULL; + int ret = -1; + + EINA_LIST_FOREACH(timeline_d->thumbs, l, bg) { + if (bg == NULL) + continue; + item = (gl_media_s *)evas_object_data_get(bg, + GL_TL_TILE_DATA_KEY); + if (item && !GL_FILE_EXISTS(item->thumb_url) && + GL_FILE_EXISTS(item->file_url)) { + gl_dbgW("Add thumb creation!"); + ret = _gl_data_create_thumb(item, + __gl_timeline_create_thumb_cb, + bg); + if (ret == 0) + continue; + else + goto GL_TL_FAILED; + } else { + GL_TL_FAILED: + + evas_object_data_del(bg, GL_TL_TILE_DATA_KEY); + timeline_d->thumbs = eina_list_remove(timeline_d->thumbs, + bg); + if (item) + _gl_data_type_free_glitem((void **)(&item)); + } + } + return 0; +} +#endif + +/* Cancel thumb creation*/ +static int __gl_timeline_cancel_thumbs(gl_timeline_s *timeline_d) +{ + GL_CHECK_VAL(timeline_d, -1); + Eina_List *l = NULL; + Evas_Object *bg = NULL; + gl_media_s *item = NULL; + + EINA_LIST_FOREACH(timeline_d->thumbs, l, bg) { + if (bg == NULL) + continue; + item = (gl_media_s *)evas_object_data_get(bg, + GL_TL_TILE_DATA_KEY); + if (item && item->b_create_thumb) { + gl_dbgW("Cancel thumb creation!"); + _gl_data_cancel_thumb(item); + } + } + return 0; +} + +#if 0 +static int __gl_timeline_check_thumb(gl_media_s *item, Evas_Object *bg) +{ + GL_CHECK_VAL(bg, -1); + GL_CHECK_VAL(item, -1); + + if (item->storage_type != GL_STORE_T_PHONE && + item->storage_type != GL_STORE_T_MMC) + return -1; + + if (GL_FILE_EXISTS(item->file_url)) { + int ret = -1; + ret = _gl_data_create_thumb(item, __gl_timeline_create_thumb_cb, + (void *)bg); + return ret; + } + return -1; +} + +static int __gl_timeline_check_glitem(gl_timeline_s *timeline_d, + gl_media_s *item, Evas_Object *bg, + bool b_check_thumb) +{ + /* Check thumb */ + if (b_check_thumb) { + gl_dbg("Check thumb"); + if (__gl_timeline_check_thumb(item, bg) == 0) { + evas_object_data_set(bg, GL_TL_TILE_DATA_KEY, + (void *)item); + evas_object_data_set(bg, GL_TL_DATA_KEY, + (void *)timeline_d); + timeline_d->thumbs = eina_list_append(timeline_d->thumbs, + (void *)bg); + } else { + _gl_data_type_free_glitem((void **)(&item)); + } + } else { + _gl_data_type_free_glitem((void **)(&item)); + } + return 0; +} + +static Evas_Object *__gl_timeline_add_page(Evas_Object *parent, gl_tlp_s *it_d) +{ + GL_CHECK_NULL(it_d); + GL_CHECK_NULL(it_d->timeline_d); + GL_CHECK_NULL(parent); + gl_dbg("index-%d, count-%d", it_d->index, it_d->count); + gl_dbg("start_pos-%d, end_pos-%d", it_d->start_pos, it_d->end_pos); + + Eina_List *list = NULL; + _gl_data_get_items(it_d->start_pos, it_d->end_pos, &list); + if (list == NULL) { + gl_dbgW("Empty list!"); + return NULL; + } + int count = eina_list_count(list); + + it_d->w = it_d->timeline_d->w; + it_d->h = it_d->timeline_d->h; + bool b_landscape = (it_d->h > it_d->w) ? false : true; + Evas_Object *layout = NULL; + layout = __gl_timeline_add_page_ly(parent, it_d); + GL_CHECK_NULL(layout); + + if (!it_d->b_created) { + it_d->b_created = true; + /* Add idler for showing original files for big tile */ + if (count <= 5) + __gl_timeline_check_page_idler(it_d); + else + gl_dbg("count>5, no idler for showing original file"); + } + it_d->layout = layout; + __gl_timeline_add_page_cbs(it_d, layout); + + Evas_Object *bg = NULL; + Evas_Object *ck = NULL; + gl_media_s *item = NULL; + int i = 0; + char *part = NULL; + char *path = NULL; + unsigned int orient = 0; + int w = GL_TIMELINE_PAGE_SIZE; + int h = GL_TIMELINE_PAGE_SIZE; + bool b_check_thumb = false; + + for (i = 0; i < count; i++) { + item = eina_list_nth(list, i); + if (item == NULL) { + gl_dbgE("Invalid item!"); + continue; + } +/* Checkme: Scrolling doesn't work smoothly if original file was used */ + /* Get orientation for original file */ + if (((i == 0 && count <= 5) || + (i == 1 && count <= 3 && !b_landscape) || + (i == 2 && count == 4 && !b_landscape) || + (i == 1 && (count == 2 || count == 4) && b_landscape)) && + item->type == MEDIA_CONTENT_TYPE_IMAGE && + (it_d->timeline_d->tran_op == GL_TRANS_OP_DONE || + !it_d->b_created) && GL_FILE_EXISTS(item->file_url)) { + path = item->file_url; +#ifdef _USE_ROTATE_BG + if (_gl_exif_get_orientation(path, &orient) < 0) { + path = item->thumb_url; + orient = GL_ORIENTATION_ROT_0; + if (!GL_FILE_EXISTS(path)) { + path = GL_ICON_NO_THUMBNAIL; + b_check_thumb = true; + } + } +#endif + __gl_timeline_get_tile_size(count, i, b_landscape, &w, + &h); + } else { + path = item->thumb_url; +#ifdef _USE_ROTATE_BG + orient = GL_ORIENTATION_ROT_0; +#endif + if (!GL_FILE_EXISTS(path)) { + path = GL_ICON_NO_THUMBNAIL; + b_check_thumb = true; + } + } + + /* Add images */ + part = g_strdup_printf(GL_TL_CONTENTS_FORMAT, it_d->count, + i + 1); + bg = __gl_timeline_add_page_bg(layout, part, orient, path, w, + h); + evas_object_event_callback_add(bg, EVAS_CALLBACK_DEL, + __gl_timeline_del_bg_cb, NULL); +#ifdef _USE_ROTATE_BG + _gl_rotate_bg_set_data(bg, (void *)i); +#endif + GL_GFREEIF(part); + /* Add mouse event for launching Imageviewer */ + evas_object_event_callback_add(bg, EVAS_CALLBACK_MOUSE_DOWN, + __gl_timeline_mouse_down, it_d); + evas_object_event_callback_add(bg, EVAS_CALLBACK_MOUSE_UP, + __gl_timeline_mouse_up, it_d); + /* Add checkbox */ + if (it_d->timeline_d->view_m != GL_TL_VIEW_NORMAL) { + part = g_strdup_printf(GL_TL_CHECKBOX_FORMAT, + it_d->count, i + 1); + ck = __gl_timeline_add_ck(layout, part, + __gl_timeline_is_checked(it_d->timeline_d, item->uuid), + it_d); + evas_object_data_set(ck, "gl_tl_idx_key", (void *)i); + GL_GFREEIF(part); + } + /* Check data */ + __gl_timeline_check_glitem(it_d->timeline_d, item, bg , + b_check_thumb); + b_check_thumb = false; + + if (it_d->timeline_d->tran_op == GL_TRANS_OP_PREPARE) + __gl_timeline_add_tile(it_d, parent, bg, i + 1, count); + + item = NULL; + } + GL_IF_FREE_ELIST(list); + + if (it_d->timeline_d->tran_op == GL_TRANS_OP_PREPARE) { + /* Only transit tiles once */ + it_d->timeline_d->tran_op = GL_TRANS_OP_START; + __gl_timeline_transit_tiles(it_d->timeline_d); + } + return layout; +} + +static Evas_Object *__gl_timeline_reset_cks(Evas_Object *parent, gl_tlp_s *it_d) +{ + GL_CHECK_NULL(it_d); + GL_CHECK_NULL(it_d->timeline_d); + GL_CHECK_NULL(parent); + gl_dbg("index-%d, count-%d", it_d->index, it_d->count); + gl_dbg("start_pos-%d, end_pos-%d", it_d->start_pos, it_d->end_pos); + + Eina_List *list = NULL; + _gl_data_get_items(it_d->start_pos, it_d->end_pos, &list); + if (list == NULL) { + gl_dbgW("Empty list!"); + return NULL; + } + int count = eina_list_count(list); + + bool b_landscape = (it_d->h > it_d->w) ? false : true; + Evas_Object *layout = NULL; + layout = __gl_timeline_add_page_ly(parent, it_d); + GL_CHECK_NULL(layout); + + it_d->b_created = true; + it_d->layout = layout; + __gl_timeline_add_page_cbs(it_d, layout); + + Evas_Object *bg = NULL; + Evas_Object *ck = NULL; + gl_media_s *item = NULL; + int i = 0; + char *part = NULL; + char *path = NULL; + unsigned int orient = 0; + int w = GL_TIMELINE_PAGE_SIZE; + int h = GL_TIMELINE_PAGE_SIZE; + bool b_check_thumb = false; + + for (i = 0; i < count; i++) { + item = eina_list_nth(list, i); + if (item == NULL) { + gl_dbgE("Invalid item!"); + continue; + } +/* Checkme: Scrolling doesn't work smoothly if original file was used */ + /* Get orientation for original file */ + if (((i == 0 && count <= 5) || + (i == 1 && count <= 3 && !b_landscape) || + (i == 2 && count == 4 && !b_landscape) || + (i == 1 && (count == 2 || count == 4) && b_landscape)) && + item->type == MEDIA_CONTENT_TYPE_IMAGE && + GL_FILE_EXISTS(item->file_url)) { + path = item->file_url; +#ifdef _USE_ROTATE_BG + if (_gl_exif_get_orientation(path, &orient) < 0) { + path = item->thumb_url; + orient = GL_ORIENTATION_ROT_0; + if (!GL_FILE_EXISTS(path)) { + path = GL_ICON_NO_THUMBNAIL; + b_check_thumb = true; + } + } +#endif + __gl_timeline_get_tile_size(count, i, b_landscape, &w, + &h); + } else { + path = item->thumb_url; +#ifdef _USE_ROTATE_BG + orient = GL_ORIENTATION_ROT_0; +#endif + if (!GL_FILE_EXISTS(path)) { + path = GL_ICON_NO_THUMBNAIL; + b_check_thumb = true; + } + } + + /* Add images */ + part = g_strdup_printf(GL_TL_CONTENTS_FORMAT, it_d->count, + i + 1); + bg = __gl_timeline_add_page_bg(layout, part, orient, path, w, + h); + evas_object_event_callback_add(bg, EVAS_CALLBACK_DEL, + __gl_timeline_del_bg_cb, NULL); +#ifdef _USE_ROTATE_BG + _gl_rotate_bg_set_data(bg, (void *)i); +#endif + GL_GFREEIF(part); + /* Add mouse event for launching Imageviewer */ + evas_object_event_callback_add(bg, EVAS_CALLBACK_MOUSE_DOWN, + __gl_timeline_mouse_down, it_d); + evas_object_event_callback_add(bg, EVAS_CALLBACK_MOUSE_UP, + __gl_timeline_mouse_up, it_d); + /* Add checkbox */ + if (it_d->timeline_d->view_m != GL_TL_VIEW_NORMAL) { + part = g_strdup_printf(GL_TL_CHECKBOX_FORMAT, + it_d->count, i + 1); + ck = __gl_timeline_add_ck(layout, part, + __gl_timeline_is_checked(it_d->timeline_d, item->uuid), + it_d); + evas_object_data_set(ck, "gl_tl_idx_key", (void *)i); + GL_GFREEIF(part); + } + /* Check data */ + __gl_timeline_check_glitem(it_d->timeline_d, item, bg , + b_check_thumb); + b_check_thumb = false; + + item = NULL; + } + GL_IF_FREE_ELIST(list); + return layout; +} + +static bool __gl_timeline_set_cks_state(gl_tlp_s *it_d, bool b_checked) +{ + GL_CHECK_FALSE(it_d); + GL_CHECK_FALSE(it_d->timeline_d); + gl_dbg("index-%d, count-%d", it_d->index, it_d->count); + gl_dbg("start_pos-%d, end_pos-%d", it_d->start_pos, it_d->end_pos); + gl_dbg("checkbox: %d", b_checked); + + Evas_Object *ck = NULL; + int i = 0; + char *part = NULL; + Eina_Bool checked = EINA_FALSE; + + for (i = 0; i < it_d->count; i++) { + part = g_strdup_printf(GL_TL_CHECKBOX_FORMAT, it_d->count, + i + 1); + ck = elm_object_part_content_get(it_d->layout, part); + if (ck) { + checked = elm_check_state_get(ck); + if (checked != b_checked) + elm_check_state_set(ck, b_checked); + } else { + gl_dbgW("Invalid checkbox!"); + } + GL_GFREEIF(part); + } + return true; +} + +static int __gl_timeline_free_pages(gl_timeline_s *timeline_d) +{ + GL_CHECK_VAL(timeline_d, -1); + if (timeline_d->list) { + gl_dbgW("############## Free pages ###############"); + void *tl_d = NULL; + EINA_LIST_FREE(timeline_d->list, tl_d) { + GL_FREEIF(tl_d); + } + timeline_d->list = NULL; + } else { + gl_dbgW("None pages!"); + } + return 0; +} + +static int __gl_timeline_update_tiles_cnt(int zlevel, int default_cnt) +{ + int tiles_cnt = 0; + + if (zlevel == GL_TM_ZOOM_OUT_TWO) { + tiles_cnt = GL_TL_PINCH_OUT_2_CNT; + } else if (zlevel == GL_TM_ZOOM_OUT_ONE) { + if (default_cnt <= 2) + tiles_cnt = default_cnt * GL_TL_PINCH_OUT_CNT_STEP; + else + tiles_cnt = GL_TL_PINCH_OUT_1_CNT; + } else { + tiles_cnt = default_cnt; + } + return tiles_cnt; +} + +static int __gl_timeline_update_zoom_flags(gl_timeline_s *timeline_d, + bool b_pout) +{ + GL_CHECK_VAL(timeline_d, -1); + + /* To trigger different transition */ + if (!b_pout) { + timeline_d->zoom_level++; + _gl_slider_set_zop(timeline_d->view, GL_SLIDE_ZOP_IN); + } else { + timeline_d->zoom_level--; + _gl_slider_set_zop(timeline_d->view, GL_SLIDE_ZOP_OUT); + } + /* Reset zoom level for overscrolling showing in slider */ + if (timeline_d->zoom_level == GL_TM_ZOOM_DEFAULT) + _gl_slider_set_zlevel(timeline_d->view, GL_SLIDE_ZLEVEL_MAX); + else if (timeline_d->zoom_level == GL_TM_ZOOM_OUT_TWO) + _gl_slider_set_zlevel(timeline_d->view, GL_SLIDE_ZLEVEL_MIN); + else + _gl_slider_set_zlevel(timeline_d->view, GL_SLIDE_ZLEVEL_MID); + return 0; +} + +static int __gl_timeline_update_zoom_pages(gl_timeline_s *timeline_d, + bool b_pout) +{ + GL_CHECK_VAL(timeline_d, -1); + int i = 0; + gl_tlp_s *it_d = NULL; + int index = 0; + /* Get first image of current page */ + void *sitem = _gl_slider_get_sitem(timeline_d->view); + GL_CHECK_VAL(sitem, -1); + it_d = (gl_tlp_s *)_gl_slider_get_sitem_data(sitem); + GL_CHECK_VAL(it_d, -1); + int page_first_img_idx = it_d->start_pos; + int new_cur_page_idx = 0; + int list_cnt = eina_list_count(timeline_d->count_list); + gl_dbg("level: %d, count: %d, count_list: %d", timeline_d->zoom_level, + timeline_d->count, list_cnt); + int cnt = 0; + + /* Update flags */ + __gl_timeline_update_zoom_flags(timeline_d, b_pout); + evas_object_freeze_events_set(timeline_d->view, EINA_TRUE); + GL_TL_CLEAR_PAGES(timeline_d, false); + gl_dbgW("evas_object_freeze_events_set EINA_TRUE"); + + for (i = 0; i < timeline_d->count;) { + /* item date is freed in del_cb */ + it_d = (gl_tlp_s *)calloc(1, sizeof(gl_tlp_s)); + /* Create UX item */ + timeline_d->list = eina_list_append(timeline_d->list, it_d); + it_d->timeline_d = timeline_d; + if (list_cnt > index) { + /* Reuse count of page */ + cnt = (int)eina_list_nth(timeline_d->count_list, + index); + gl_dbg("%d", cnt); + } else { + /* Add new random count */ + cnt = 1 + rand() % 5; + timeline_d->count_list = eina_list_append(timeline_d->count_list, + (void *)cnt); + } + + it_d->count = __gl_timeline_update_tiles_cnt(timeline_d->zoom_level, + cnt); + it_d->index = index++; + it_d->start_pos = i; + /* Refer to first item of next loop */ + i += it_d->count; + it_d->end_pos = i - 1; + /* Get new index of page */ + if (new_cur_page_idx ==0 && + page_first_img_idx >= it_d->start_pos && + page_first_img_idx <= it_d->end_pos) { + gl_dbgW("New page index got!"); + new_cur_page_idx = it_d->index; + } + /* Reset count and end_pos of last page */ + if (timeline_d->zoom_level != GL_TM_ZOOM_OUT_TWO && + i >= timeline_d->count) { + it_d->end_pos = timeline_d->count - 1; + it_d->count = it_d->end_pos - it_d->start_pos + 1; + break; + } + it_d = NULL; + } + gl_dbg("length: %d", eina_list_count(timeline_d->list)); + + _gl_slider_set_list(timeline_d->view, timeline_d->list, + new_cur_page_idx); + _gl_slider_load_first_item(timeline_d->view); + return 0; +} + +static Eina_Bool __gl_timeline_zoom_in(gl_timeline_s *timeline_d) +{ + GL_CHECK_FALSE(timeline_d); + gl_dbg(""); + + if (gl_get_view_mode(timeline_d->ad) != GL_VIEW_TIMELINE) + return false; + + gl_dbg("level: %d", timeline_d->zoom_level); + if (timeline_d->zoom_level >= GL_TM_ZOOM_DEFAULT) + return false; + + /* Update view */ + __gl_timeline_update_zoom_pages(timeline_d, false); + return true; +} + +static Eina_Bool __gl_timeline_zoom_out(gl_timeline_s *timeline_d) +{ + GL_CHECK_FALSE(timeline_d); + gl_dbg(""); + + if (gl_get_view_mode(timeline_d->ad) != GL_VIEW_TIMELINE) + return false; + + gl_dbg("level: %d", timeline_d->zoom_level); + if (timeline_d->zoom_level <= GL_TM_ZOOM_OUT_TWO) + return false; + + /* Update view */ + __gl_timeline_update_zoom_pages(timeline_d, true); + return true; +} + +static void __gl_timeline_slider_clicked_cb(void *data, Evas_Object *obj, void *ei) +{ + gl_dbg(""); +} + +static void __gl_timeline_slider_long_press_start_cb(void *data, + Evas_Object *obj, void *ei) +{ + gl_dbg(""); +} + +static void __gl_timeline_slider_long_press_end_cb(void *data, Evas_Object *obj, + void *ei) +{ + gl_dbg(""); +} + +static void __gl_timeline_slider_item_changed_cb(void *data, Evas_Object *obj, + void *ei) +{ + GL_CHECK(ei); + GL_CHECK(data); + gl_dbg(""); + + __gl_timeline_update_title((gl_timeline_s *)data, + (gl_tlp_s *)_gl_slider_get_sitem_data(ei), + false); +} + +static void __gl_timeline_slider_item_state_changed_cb(void *data, + Evas_Object *obj, + void *ei) +{ + gl_dbg(""); +} + +static void __gl_timeline_slider_items_resized_cb(void *data, Evas_Object *obj, + void *ei) +{ + gl_dbgW("start"); + GL_CHECK(data); + gl_timeline_s *timeline_d = (gl_timeline_s *)data; + GL_CHECK(timeline_d->ad); + _gl_main_add_reg_idler(timeline_d->ad); + if (!timeline_d->b_created) { + timeline_d->b_created = true; + _gl_slider_load_first_item(timeline_d->view); + } else { + if (timeline_d->tran_op == GL_TRANS_OP_SHOW) { + gl_dbgW("Change transit operation mode!"); + timeline_d->tran_op = GL_TRANS_OP_START; + } + } + gl_dbgW("done"); +} + +static void __gl_timeline_slider_items_zoom_out_cb(void *data, Evas_Object *obj, + void *ei) +{ + gl_dbgW("start"); + GL_CHECK(data); + gl_timeline_s *timeline_d = (gl_timeline_s *)data; + GL_CHECK(timeline_d->ad); + __gl_timeline_zoom_out(timeline_d); + gl_dbgW("done"); +} + +static void __gl_timeline_slider_items_zoom_in_cb(void *data, Evas_Object *obj, + void *ei) +{ + gl_dbgW("start"); + GL_CHECK(data); + gl_timeline_s *timeline_d = (gl_timeline_s *)data; + GL_CHECK(timeline_d->ad); + __gl_timeline_zoom_in(timeline_d); + gl_dbgW("done"); +} +#endif + +static void __gl_timeline_resize_layout_cb(void *data, Evas *e, + Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_timeline_s *timeline_d = (gl_timeline_s *)data; + Evas_Coord x,y,w,h; + + evas_object_geometry_get(obj, &x, &y, &w, &h); + gl_dbg("MainView resized geomtery XYWH(%d,%d,%d,%d)", x, y, w, h); + evas_object_data_set(timeline_d->layout, "page_w", (void *)w); + evas_object_data_set(timeline_d->layout, "page_h", (void *)h); + timeline_d->w = w; + timeline_d->h = h; +} + +/* register mouse callback */ +#if 0 +static int __gl_timeline_add_slider_cbs(Evas_Object *slider, void *cb_data) +{ + GL_CHECK_VAL(cb_data, -1); + GL_CHECK_VAL(slider, -1); + + evas_object_smart_callback_add(slider, "slider,clicked", + __gl_timeline_slider_clicked_cb, + cb_data); + evas_object_smart_callback_add(slider, "slider,longpress,start", + __gl_timeline_slider_long_press_start_cb, + cb_data); + evas_object_smart_callback_add(slider, "slider,longpress,end", + __gl_timeline_slider_long_press_end_cb, + cb_data); + + evas_object_smart_callback_add(slider, "slider,item,changed", + __gl_timeline_slider_item_changed_cb, + cb_data); + evas_object_smart_callback_add(slider, "slider,item,state,changed", + __gl_timeline_slider_item_state_changed_cb, + cb_data); + evas_object_smart_callback_add(slider, "slider,items,resized", + __gl_timeline_slider_items_resized_cb, + cb_data); + evas_object_smart_callback_add(slider, "slider,items,zoomout", + __gl_timeline_slider_items_zoom_out_cb, + cb_data); + evas_object_smart_callback_add(slider, "slider,items,zoomin", + __gl_timeline_slider_items_zoom_in_cb, + cb_data); + return 0; +} + +static Evas_Object *__gl_timeline_create_slider(gl_timeline_s *timeline_d) +{ + GL_CHECK_NULL(timeline_d); + Evas_Object *slider = NULL; + + slider = _gl_slider_add(timeline_d->layout); + GL_CHECK_NULL(slider); + + evas_object_data_set(slider, "create_func", + (void *)__gl_timeline_add_page); + evas_object_data_set(slider, "reset_cks_func", + (void *)__gl_timeline_reset_cks); + evas_object_data_set(slider, "set_cks_state_func", + (void *)__gl_timeline_set_cks_state); + __gl_timeline_add_slider_cbs(slider, (void *)timeline_d); + int bx = 0; + int by = 0; + int bw = 0; + int bh = 0; + evas_object_geometry_get(slider, &bx, &by, &bw, &bh); + gl_dbg("slider. (%d,%d,%d,%d)", bx, by, bw, bh); + + return slider; +} +#endif + +static int __gl_timelne_show_nocontents(gl_timeline_s *timeline_d) +{ + GL_CHECK_VAL(timeline_d, -1); + GL_CHECK_VAL(timeline_d->ad, -1); + + if (timeline_d->nocontents) { + gl_dbgW("Already created!"); + return 0; + } + + GL_IF_DEL_OBJ(timeline_d->view); + Evas_Object *title = elm_object_part_content_get(timeline_d->layout, + "title"); + GL_IF_DEL_OBJ(title); + + Evas_Object *noc = _gl_nocontents_create(timeline_d->parent); + elm_object_part_content_set(timeline_d->parent, "elm.swallow.view", + noc); + timeline_d->nocontents = noc; + + return 0; +} + +static int __gl_timelne_del_nocontents(gl_timeline_s *timeline_d) +{ + GL_CHECK_VAL(timeline_d, -1); + GL_CHECK_VAL(timeline_d->ad, -1); + + if (timeline_d->nocontents == NULL) + return 0; + + gl_dbg("Delete nocontents view first"); + GL_IF_DEL_OBJ(timeline_d->nocontents); + + Evas_Object *view = __gl_timeline_create_list_view(timeline_d, false); + if (view == NULL) { + gl_dbgE("Failed to create view!"); + __gl_timelne_show_nocontents(timeline_d); + elm_naviframe_item_title_enabled_set(timeline_d->nf_it, EINA_FALSE, EINA_FALSE); + return -1; + } + + elm_naviframe_item_title_enabled_set(timeline_d->nf_it, EINA_TRUE, EINA_TRUE); + timeline_d->view = view; + elm_object_part_content_set(timeline_d->parent, "elm.swallow.view", + view); + + return 0; +} + +int _gl_timeline_get_item_index(void *data, char* path) +{ + GL_CHECK_VAL(data, 1); + GL_CHECK_VAL(path, 1); + gl_appdata *ad = (gl_appdata *)data; + gl_media_s *gitem = NULL; + if (ad->tlinfo && ad->tlinfo->data_list) { + int count = eina_list_count(ad->tlinfo->data_list); + int i; + for (i = 0 ; i < count ; i++) { + gitem = eina_list_nth(ad->tlinfo->data_list, i); + if (gitem) { + if (!strcmp(path, gitem->file_url)) { + return i + 1; + } + } + } + } + return 1; +} + +static void __gl_timeline_thumbs_sel_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_timeline_s *gitem = (gl_timeline_s *)data; + GL_CHECK(gitem->ad); + gl_appdata *ad = (gl_appdata *)gitem->ad; + elm_gengrid_item_selected_set((Elm_Object_Item *)ei, EINA_FALSE); + + /* Save scroller position before clearing gengrid */ + gl_media_s *item = NULL; + item = elm_object_item_data_get((Elm_Object_Item *)ei); + _gl_ui_save_scroller_pos(gitem->view); + if (gitem->view_m != GL_TL_VIEW_NORMAL) { + Evas_Object *ck = NULL; + ck = elm_object_item_part_content_get((Elm_Object_Item *)ei, GL_THUMB_CHECKBOX); + if (ck) { + elm_check_state_set(ck, !elm_check_state_get(ck)); + __gl_timeline_thumb_check_op(gitem, ck, item); + } else { + gl_dbgE("item checkbox not found"); + } + } else { + if (item && item->file_url) { + int index = _gl_timeline_get_item_index(ad, item->file_url); + _gl_ext_load_iv_timeline(ad, item->file_url, index, ad->tlinfo->time_media_display_order); + } + else { + gl_dbgW("Image wasn't found!"); + } + } + _gl_ui_restore_scroller_pos(gitem->view); +} + +Evas_Object *_gl_timeline_thumbs_get_content(void *data, Evas_Object *parent, + int w, int h) +{ + GL_CHECK_NULL(parent); + GL_CHECK_NULL(data); + gl_media_s *item = (gl_media_s *)data; + char *path = NULL; + Evas_Object *layout = NULL; + + if (GL_FILE_EXISTS(item->thumb_url)) { + path = item->thumb_url; + } else { + /* Use default image */ + path = GL_ICON_NO_THUMBNAIL; + } + + int zoom_level = GL_ZOOM_DEFAULT; + + if (item->type == MEDIA_CONTENT_TYPE_VIDEO) { + unsigned int v_dur = 0; + if (item->video_info) { + v_dur = item->video_info->duration; + } + layout = _gl_thumb_show_video(parent, path, v_dur, w, h, + zoom_level); + } else { + if (item->image_info && + item->image_info->burstshot_id) { + layout = _gl_thumb_show_image(parent, path, 0, w, h, + zoom_level); + item->mode = GL_CM_MODE_BURSTSHOT; + } else { + layout = _gl_thumb_show_image(parent, path, 0, w, h, + zoom_level); + } + } + return layout; +} + +static void __gl_timeline_thumbs_create_thumb_cb(media_content_error_e error, + const char *path, void *user_data) +{ + GL_CHECK(user_data); + gl_media_s *thumb_data = (gl_media_s *)user_data; + + thumb_data->b_create_thumb = false; + if (error == MEDIA_CONTENT_ERROR_NONE && GL_FILE_EXISTS(path) && + g_strcmp0(path, GL_ICON_DB_DEFAULT_THUMB)) { + GL_CHECK(thumb_data); + /* Update thumb path */ + GL_FREEIF(thumb_data->thumb_url); + thumb_data->thumb_url = strdup(path); + elm_gengrid_item_update(thumb_data->elm_item); + } else { + gl_dbgE("[%d]Invalid path[%s]!", error, path); + } +} + +/* Use file to create new thumb if possible */ +int _gl_timeline_thumbs_create_thumb(gl_media_s *gitem) +{ + GL_CHECK_VAL(gitem, -1); + GL_CHECK_VAL(gitem->file_url, -1); + + if (GL_FILE_EXISTS(gitem->file_url)) { + _gl_data_create_thumb(gitem, __gl_timeline_thumbs_create_thumb_cb, + gitem); + return 0; + } + return -1; +} + +static void __gl_timeline_thumbs_realized(void *data, Evas_Object *obj, void *ei) +{ + + gl_dbg("realized"); + GL_CHECK(ei); + GL_CHECK(data); + Elm_Object_Item *it = (Elm_Object_Item *)ei; + gl_media_s *gitem = NULL; + + gitem = elm_object_item_data_get(it); + GL_CHECK(gitem); + /* Checking for local files only */ + if (gitem->storage_type == GL_STORE_T_MMC || + gitem->storage_type == GL_STORE_T_ALL || + gitem->storage_type == GL_STORE_T_PHONE) { + /* Use default image */ + if (!GL_FILE_EXISTS(gitem->thumb_url)) { + _gl_timeline_thumbs_create_thumb(gitem); + } + } +} + +static void __gl_timeline_thumbs_unrealized(void *data, Evas_Object *obj, void *ei) +{ + gl_dbg("unrealized"); + GL_CHECK(ei); + GL_CHECK(data); /* It's ad */ + Elm_Object_Item *it = (Elm_Object_Item *)ei; + + gl_media_s *gitem = elm_object_item_data_get(it); + GL_CHECK(gitem); + /* Checking for local files only */ + if (gitem->storage_type == GL_STORE_T_MMC || + gitem->storage_type == GL_STORE_T_ALL || + gitem->storage_type == GL_STORE_T_PHONE) { + if (gitem->b_create_thumb) { + _gl_data_cancel_thumb(gitem); + } + } +} + +void _gl_timeline_open_file_select_mode(void *data) +{ + gl_media_s *gitem = (gl_media_s *)data; + GL_CHECK(gitem); + GL_CHECK(gitem->file_url); + GL_CHECK(strlen(gitem->file_url)); + GL_CHECK(gitem->ad); + gl_appdata *ad = (gl_appdata *)gitem->ad; + + gl_dbg("Loading UG-IMAGE-VIEWER-SELECT-MODE"); + gl_ext_load_iv_time_ug_select_mode(ad, gitem, GL_UG_IV, ad->tlinfo->time_media_display_order); +} + +void _gl_timeline_open_image_in_select_mode(void *data, Evas_Object *obj, void *event_info) +{ + GL_CHECK(data); + _gl_timeline_open_file_select_mode(data); +} + +static Evas_Object *__gl_timeline_thumbs_get_content(void *data, Evas_Object *obj, + const char *part) +{ + GL_CHECK_NULL(part); + GL_CHECK_NULL(strlen(part)); + GL_CHECK_NULL(data); + gl_media_s *gitem = (gl_media_s *)data; + GL_CHECK_NULL(gitem); + gl_timeline_s *timeline_d = (gl_timeline_s *)evas_object_data_get(obj, "data"); + GL_CHECK_NULL(timeline_d); + int mode = timeline_d->view_m; + + if (!g_strcmp0(part, GL_THUMB_ICON)) { + Evas_Object *layout = _gl_timeline_thumbs_get_content(gitem, obj, + timeline_d->w, + timeline_d->h); + if (gitem->storage_type == GL_STORE_T_MMC) { + elm_object_item_signal_emit(gitem->elm_item, "show_sd_card_icon", "sd_card_icon_img"); + } + return layout; + } else if (!g_strcmp0(part, GL_THUMB_CHECKBOX)) { + Evas_Object *ck = NULL; + if (mode == GL_TL_VIEW_EDIT) { + ck = elm_check_add(obj); + GL_CHECK_NULL(ck); + +#ifdef _USE_GRID_CHECK + elm_object_style_set(ck, "grid"); +#else + elm_object_style_set(ck, GL_CHECKBOX_STYLE_THUMB); +#endif + evas_object_propagate_events_set(ck, EINA_FALSE); + elm_check_state_set(ck, gitem->check_state); + evas_object_data_set(ck, "data", (void *)timeline_d); + evas_object_smart_callback_add(ck, "changed", __gl_timeline_thumbs_check_changed, data); + evas_object_show(ck); + elm_object_item_signal_emit(gitem->elm_item, "show_image_icon", "elm_image_open_icon_rect"); + } else { + elm_object_item_signal_emit(gitem->elm_item, "hide_image_icon", "elm_image_open_icon_rect"); + } + return ck; + } else if (!g_strcmp0(part, "elm_image_open_icon_swallow_blocker")) { + Evas_Object *btn1 = NULL; + if (mode == GL_TL_VIEW_EDIT) { + btn1 = evas_object_rectangle_add(evas_object_evas_get(obj)); + evas_object_color_set(btn1, 0, 255, 0, 0); + evas_object_propagate_events_set(btn1, EINA_FALSE); + } else { + btn1 = elm_object_item_part_content_get(gitem->elm_item, + "elm_image_open_icon_swallow_blocker"); + if (btn1) { + evas_object_del(btn1); + btn1 = NULL; + } + } + return btn1; + } else if (!g_strcmp0(part, "elm_image_open_icon_swallow")) { + Evas_Object *btn = NULL; + if (mode == GL_TL_VIEW_EDIT) { + btn = elm_button_add(obj); + elm_object_style_set(btn, "transparent"); + evas_object_show(btn); + evas_object_propagate_events_set(btn, EINA_FALSE); + evas_object_smart_callback_add(btn, "clicked", _gl_timeline_open_image_in_select_mode, gitem); + } else { + btn = elm_object_item_part_content_get(gitem->elm_item, + "elm_image_open_icon_swallow"); + if (btn) { + evas_object_del(btn); + btn = NULL; + } + } + return btn; + } + return NULL; +} + +int _gl_timeline_thumb_set_size(void *data, Evas_Object *view, int *size_w, int *size_h) +{ + GL_CHECK_VAL(view, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + int rotate_mode = ad->maininfo.rotate_mode; + int _w = 0; + int _h = 0; + int _w_l = 0; + int _h_l = 0; + int win_w = 0; + int win_h = 0; + int items_per_row = 0; + _gl_get_win_factor(ad->maininfo.win, &win_w, &win_h); + + if ((rotate_mode == APP_DEVICE_ORIENTATION_270) || + (rotate_mode == APP_DEVICE_ORIENTATION_90)) { + if (ad->pinchinfo.zoom_level == GL_ZOOM_IN_TWO) { + items_per_row = GL_GRID_6_PER_ROW; + } else if (ad->pinchinfo.zoom_level == GL_ZOOM_IN_ONE) { + items_per_row = GL_GRID_7_PER_ROW; + } else if (ad->pinchinfo.zoom_level == GL_ZOOM_DEFAULT) { + items_per_row = GL_GRID_10_PER_ROW; + } else { + items_per_row = GL_GRID_7_PER_ROW; + } + } else { + if (ad->pinchinfo.zoom_level == GL_ZOOM_IN_TWO) { + items_per_row = GL_GRID_3_PER_ROW; + } else if (ad->pinchinfo.zoom_level == GL_ZOOM_IN_ONE) { + items_per_row = GL_GRID_4_PER_ROW; + } else if (ad->pinchinfo.zoom_level == GL_ZOOM_DEFAULT) { + items_per_row = GL_GRID_8_PER_ROW; + } else { + items_per_row = GL_GRID_4_PER_ROW; + } + } + + _w = (int)(win_w / items_per_row); + _w_l = (int)(win_h / items_per_row); + _h = _w; + _h_l = _w_l; + + if ((rotate_mode == APP_DEVICE_ORIENTATION_270) || + (rotate_mode == APP_DEVICE_ORIENTATION_90)) { + elm_gengrid_item_size_set(view, _w_l, _h_l); + if (size_w) + *size_w = _w_l-4; + if (size_h) + *size_h = _h_l-4; + } else { + elm_gengrid_item_size_set(view, _w, _h); + if (size_w) + *size_w = _w-4; + if (size_h) + *size_h = _h-4; + } + if (size_w && size_h) + gl_dbg("P: %dx%d, size_w: %d,size_h: %d", _w, _h, *size_w, *size_h); + return 0; +} + +Evas_Object *_gl_grid_layout_add(Evas_Object *parent) +{ + Evas_Object *layout = NULL; + layout = elm_layout_add(parent); + elm_layout_file_set(layout, GL_EDJ_FILE, "timeline_gridview"); + evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_show(layout); + + return layout; +} + +Evas_Object *_gl_grid_add(Evas_Object *parent) +{ + GL_CHECK_NULL(parent); + Evas_Object *grid = elm_gengrid_add(parent); + GL_CHECK_NULL(grid); + + elm_gengrid_align_set(grid, 0.0, 0.0); + elm_gengrid_horizontal_set(grid, EINA_FALSE); + elm_scroller_bounce_set(grid, EINA_FALSE, EINA_TRUE); + elm_scroller_policy_set(grid, ELM_SCROLLER_POLICY_OFF, + ELM_SCROLLER_POLICY_AUTO); + elm_gengrid_multi_select_set(grid, EINA_TRUE); + evas_object_size_hint_weight_set(grid, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_show(grid); + + return grid; +} + +void _gl_time_finialize_media_data(gl_timeline_s *timeline_d) +{ + GL_CHECK(timeline_d); + if (timeline_d->data_list) { + gl_media_s *item = NULL; + EINA_LIST_FREE(timeline_d->data_list, item) { + if (!item || !item->uuid) + continue; + _gl_data_type_free_glitem((void **)(&item)); + item = NULL; + } + } +} + +void _gl_time_update_selected_media(gl_timeline_s *timeline_d, Eina_List *list) +{ + GL_CHECK(timeline_d); + GL_CHECK(list); + gl_media_s *gitem = NULL; + int i; + if (list) { + int count = eina_list_count(list); + for (i = 0; i < count ; i++) { + gitem = eina_list_nth(list, i); + if (gitem) { + if (__gl_timeline_is_checked(timeline_d, gitem->uuid)) { + gitem->check_state = true; + } + } + } + } +} + +static void _gl_time_view_append_gengrid_items(Evas_Object * + pGengrid, + int nGenItemIndex, + gl_timeline_s *timeline_d) +{ + static Elm_Gengrid_Item_Class *gic; + gic = elm_gengrid_item_class_new(); + gic->item_style = GL_GENGRID_ITEM_STYLE_THUMBNAIL; + gic->func.text_get = NULL; + gic->func.content_get = __gl_timeline_thumbs_get_content; + gic->func.del = NULL; + + int nCount = _gl_time_get_number_of_items_per_row(timeline_d->ad); + int nIndex = nGenItemIndex; + int nMaxIndex = nIndex + nCount; + int nVideoListSize = eina_list_count(timeline_d->data_list); + gl_media_s *item = NULL; + char * text = NULL; + item = eina_list_nth(timeline_d->data_list, nIndex); + if (item == NULL) { + gl_dbgE("Invalid item!"); + return; + } + int numberOfItemsOnParticularDate = _get_count_of_items_on_same_date(item, timeline_d->data_list, &text, nIndex+1); + int k =1; + Elm_Object_Item *gridItem = NULL; + for (; (nIndex < nMaxIndex) && (nIndex < nVideoListSize) && (k <= numberOfItemsOnParticularDate) ; nIndex++) { + item = eina_list_nth(timeline_d->data_list, nIndex); + gridItem = + elm_gengrid_item_append(pGengrid, gic, item, __gl_timeline_thumbs_sel_cb, timeline_d); + elm_gengrid_item_select_mode_set(gridItem, + ELM_OBJECT_SELECT_MODE_ALWAYS); + item->elm_item = gridItem; + item->ad = timeline_d->ad; + k++; + } + elm_genlist_item_class_free(gic); + _gl_timeline_thumb_set_size(timeline_d->ad, pGengrid, &timeline_d->w, &timeline_d->h); +} + +static Evas_Object *__gl_get_icon_of_grid_cb(const void + *pUserData, + Evas_Object * + pObject, + const char + *pPart) +{ + int nGenItemIndex = (int) pUserData; + gl_timeline_s *timeline_d = (gl_timeline_s *)evas_object_data_get(pObject,"data"); + if (!timeline_d) { + return NULL; + } + + Evas_Object *pGengrid = _gl_grid_add(pObject); + if (!pGengrid) { + return NULL; + } + + evas_object_data_set(pGengrid, "data", (void *)timeline_d); + evas_object_smart_callback_add(pGengrid, "realized", __gl_timeline_thumbs_realized, timeline_d); + evas_object_smart_callback_add(pGengrid, "unrealized", __gl_timeline_thumbs_unrealized, timeline_d); + + _gl_time_view_append_gengrid_items(pGengrid, nGenItemIndex, timeline_d); + + return pGengrid; +} + +static char *__gl_time_date_get_text(void *data, Evas_Object *obj, const char *part) +{ + GL_CHECK_NULL(data); + char * text = (char *)data; + return strdup(text); +} + +int _get_count_of_items_on_same_date(gl_media_s *item, Eina_List *list, char **text, int start_index) +{ + int count = 1; + char *text1 = NULL; + char *text2 = NULL; + char *text3 = NULL; + struct tm t1; + struct tm t2; + struct tm ct; + time_t ctime = 0; + memset(&ct, 0x00, sizeof(struct tm)); + time(&ctime); + localtime_r(&ctime, &ct); + time_t mtime1 = 0; + time_t mtime2 = 0; + int i; + + mtime1 = item->mtime; + mtime2 = item->mtime; + int item_cnt = eina_list_count(list); + + __gl_timeline_get_tm(mtime1, mtime2, &t1, &t2); + __gl_timeline_get_mtime_str(t1, ct, &text1, &text2); + if (text1) { + text3 = g_strdup_printf("%s", text1); + } + for (i = start_index; i < item_cnt ; i++) { + item = eina_list_nth(list, i); + if (!item) { + return 0; + } + mtime1 = item->mtime; + mtime2 = item->mtime; + __gl_timeline_get_tm(mtime1, mtime2, &t1, &t2); + __gl_timeline_get_mtime_str(t1, ct, &text1, &text2); + if (text1 && text3 && (strcmp(text1, text3))) { + break; + } + count ++; + if (text1) { + text3 = g_strdup_printf("%s", text1); + } + } + *text = g_strdup_printf("%s", text3); + + return count; +} + +int _gl_time_get_number_of_items_per_row(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + int rotate_mode = ad->maininfo.rotate_mode; + int items_per_row = 0; + if ((rotate_mode == APP_DEVICE_ORIENTATION_270) || + (rotate_mode == APP_DEVICE_ORIENTATION_90)) { + if (ad->pinchinfo.zoom_level == GL_ZOOM_IN_TWO) { + items_per_row = GL_GRID_6_PER_ROW; + } else if (ad->pinchinfo.zoom_level == GL_ZOOM_IN_ONE) { + items_per_row = GL_GRID_7_PER_ROW; + } else if (ad->pinchinfo.zoom_level == GL_ZOOM_DEFAULT) { + items_per_row = GL_GRID_10_PER_ROW; + } else { + items_per_row = GL_GRID_7_PER_ROW; + } + } else { + if (ad->pinchinfo.zoom_level == GL_ZOOM_IN_TWO) { + items_per_row = GL_GRID_3_PER_ROW; + } else if (ad->pinchinfo.zoom_level == GL_ZOOM_IN_ONE) { + items_per_row = GL_GRID_4_PER_ROW; + } else if (ad->pinchinfo.zoom_level == GL_ZOOM_DEFAULT) { + items_per_row = GL_GRID_8_PER_ROW; + } else { + items_per_row = GL_GRID_4_PER_ROW; + } + } + return items_per_row; +} + +char *_gl_time_get_genlist_style(void *data) +{ + GL_CHECK_VAL(data, NULL); + gl_appdata *ad = (gl_appdata *)data; + int rotate_mode = ad->maininfo.rotate_mode; + int items_per_row = 0; + int height = 0; + int win_w = 0; + int win_h = 0; + char *style = NULL; + _gl_get_win_factor(ad->maininfo.win, &win_w, &win_h); + if (_gl_is_timeline_edit_mode(data)) { + ad->pinchinfo.zoom_level = GL_ZOOM_IN_ONE; + } + if ((rotate_mode == APP_DEVICE_ORIENTATION_270) || + (rotate_mode == APP_DEVICE_ORIENTATION_90)) { + if (ad->pinchinfo.zoom_level == GL_ZOOM_IN_TWO) { + items_per_row = GL_GRID_6_PER_ROW; + } else if (ad->pinchinfo.zoom_level == GL_ZOOM_IN_ONE) { + items_per_row = GL_GRID_7_PER_ROW; + } else if (ad->pinchinfo.zoom_level == GL_ZOOM_DEFAULT) { + items_per_row = GL_GRID_10_PER_ROW; + } else { + items_per_row = GL_GRID_7_PER_ROW; + } + height = ceil((double)win_h/items_per_row); + } else { + if (ad->pinchinfo.zoom_level == GL_ZOOM_IN_TWO) { + items_per_row = GL_GRID_3_PER_ROW; + } else if (ad->pinchinfo.zoom_level == GL_ZOOM_IN_ONE) { + items_per_row = GL_GRID_4_PER_ROW; + } else if (ad->pinchinfo.zoom_level == GL_ZOOM_DEFAULT) { + items_per_row = GL_GRID_8_PER_ROW; + } else { + items_per_row = GL_GRID_4_PER_ROW; + } + height = ceil((double)win_w/items_per_row); + } + style = g_strdup_printf(GL_TL_CONTENT_FORMAT,height); + + return style; +} + + +int _gl_timeline_create_grid_view(gl_timeline_s *timeline_d, Evas_Object *genlist, bool update) +{ + GL_CHECK_VAL(timeline_d, -1); + int item_cnt = 0; + int ret = -1; + int i = 0; + int k = 0; + + /* Check media-content to show */ + ret = _gl_data_get_item_cnt(GL_ALBUM_ALL_ID, GL_STORE_T_ALL, &item_cnt); + if (ret != 0 || item_cnt == 0) + gl_dbgE("Empty!"); + + Eina_List *list = NULL; + if (!update) { + _gl_data_get_items(-1, -1, &list); + _gl_time_finialize_media_data(timeline_d); + if (timeline_d->view_m == GL_TL_VIEW_EDIT) { + _gl_time_update_selected_media(timeline_d, list); + } + timeline_d->data_list = list; + timeline_d->delete_data = false; + } else { + list = timeline_d->data_list; + timeline_d->delete_data = false; + } + + if (list == NULL) { + __gl_timelne_show_nocontents(timeline_d); + elm_naviframe_item_title_enabled_set(timeline_d->nf_it, EINA_FALSE, EINA_FALSE); + return -1; + } else { + __gl_timelne_del_nocontents(timeline_d); + elm_naviframe_item_title_enabled_set(timeline_d->nf_it, EINA_TRUE, EINA_TRUE); + } + if ((!update || !timeline_d->is_list_reverse) && timeline_d->time_media_display_order == TIME_ORDER_ASC) { + list = eina_list_reverse(list); + timeline_d->is_list_reverse = true; + } else if (timeline_d->is_list_reverse && timeline_d->time_media_display_order == TIME_ORDER_DESC) { + list = eina_list_reverse(list); + timeline_d->is_list_reverse = false; + } + + item_cnt = eina_list_count(list); + timeline_d->count = item_cnt; + struct tm ct; + time_t ctime = 0; + memset(&ct, 0x00, sizeof(struct tm)); + time(&ctime); + localtime_r(&ctime, &ct); + gl_media_s *item = NULL; + char *style_name = NULL; + + Elm_Genlist_Item_Class *pGenGridItc; + Elm_Genlist_Item_Class *pGenGridZoomItc; + pGenGridItc = elm_genlist_item_class_new(); + if (!pGenGridItc) { + gl_dbg("failed to create genlist item class"); + return -1; + } + + style_name = _gl_time_get_genlist_style(timeline_d->ad); + + pGenGridItc->item_style = style_name; + pGenGridItc->func.text_get = NULL; + pGenGridItc->func.content_get = + (void *) __gl_get_icon_of_grid_cb; + pGenGridItc->func.state_get = NULL; + pGenGridItc->func.del = NULL; + pGenGridItc->decorate_item_style = NULL; + + pGenGridZoomItc = elm_genlist_item_class_new(); + if (!pGenGridZoomItc) { + gl_dbg("failed to create genlist item class"); + elm_genlist_item_class_free(pGenGridItc); + return -1; + } + + pGenGridZoomItc->item_style = "genlist_group_date"; + pGenGridZoomItc->func.text_get = __gl_time_date_get_text; + pGenGridZoomItc->func.content_get = NULL; + pGenGridZoomItc->func.state_get = NULL; + pGenGridZoomItc->func.del = NULL; + + evas_object_data_set(genlist, "data", (void *)timeline_d); + int number_of_items_on_particular_date = -1; + int items_per_row = 0; + int number_of_rows = 0; + Elm_Object_Item *it = NULL; + int item_index = 0; + + char *text = NULL; + for (i = 0; i < item_cnt; i++) { + item = eina_list_nth(list, i); + + number_of_items_on_particular_date = _get_count_of_items_on_same_date(item, list, &text, i+1); + items_per_row = _gl_time_get_number_of_items_per_row(timeline_d->ad); + if (items_per_row < 0) { + items_per_row = 4; + } + number_of_rows = ceil((double)number_of_items_on_particular_date/items_per_row); + it = elm_genlist_item_append(genlist, pGenGridZoomItc, (void*)text, NULL, ELM_GENLIST_ITEM_TREE, NULL, NULL); + + for (k = 0; k < number_of_rows; k++) { + elm_genlist_item_append(genlist, pGenGridItc, (void*)item_index, it, ELM_GENLIST_ITEM_NONE, NULL, NULL); + if (((k * items_per_row) + items_per_row) <= number_of_items_on_particular_date) { + item_index = item_index + items_per_row; + } else { + int temp = ((k * items_per_row) + items_per_row) - number_of_items_on_particular_date; + item_index = item_index + items_per_row - temp; + } + } + i = (i + number_of_items_on_particular_date) - 1; + } + elm_genlist_item_class_free(pGenGridItc); + elm_genlist_item_class_free(pGenGridZoomItc); + + return 0; +} + +Evas_Object *_gl_box_add(Evas_Object *parent) +{ + Evas_Object *box = NULL; + box = elm_box_add(parent); + elm_box_align_set(box,0.0, 0.0); + evas_object_show(box); + + return box; +} + +static void __gl_timeline_genlist_move_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_dbg(""); + gl_timeline_s *timeline_d = (gl_timeline_s *)data; + + if (timeline_d->realized_item) { + Evas_Object *grid = elm_object_item_part_content_get(timeline_d->realized_item, "elm.swallow"); + if (grid) { + Elm_Object_Item *it = elm_gengrid_first_item_get(grid); + if (it) { + gl_media_s *item = (gl_media_s *)elm_object_item_data_get(it); + char *text1 = NULL; + char *text2 = NULL; + struct tm t1; + struct tm t2; + struct tm ct; + time_t ctime = 0; + memset(&ct, 0x00, sizeof(struct tm)); + time(&ctime); + localtime_r(&ctime, &ct); + time_t mtime1 = 0; + time_t mtime2 = 0; + mtime1 = item->mtime; + mtime2 = item->mtime; + + __gl_timeline_get_tm(mtime1, mtime2, &t1, &t2); + __gl_timeline_get_mtime_str(t1, ct, &text1, &text2); + + if (text1) { + if (timeline_d->date_layout) { + elm_object_part_text_set(timeline_d->date_layout, "text", text1); + elm_object_part_content_set(timeline_d->parent, "elm.swallow.date.layout", timeline_d->date_layout); + } + } + } + } + } +} + +static void __gl_timeline_genlist_move_stop_cb(void *data, Evas_Object *obj, void *ei) +{ + gl_dbg("Entry"); + GL_CHECK(data); + gl_timeline_s *timeline_d = (gl_timeline_s *)data; + if (timeline_d->date_layout) { + elm_object_part_content_unset(timeline_d->parent, "elm.swallow.date.layout"); + evas_object_hide(timeline_d->date_layout); + } + gl_dbg("Exit"); +} + +Evas_Object *_gl_genlist_add(Evas_Object *parent) +{ + Evas_Object *genlist = NULL; + genlist = elm_genlist_add(parent); + elm_object_style_set(genlist, "handler"); + evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_scroller_bounce_set(genlist, EINA_FALSE, EINA_TRUE); + elm_scroller_policy_set(genlist, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO); + elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS); + elm_scroller_single_direction_set(genlist, ELM_SCROLLER_SINGLE_DIRECTION_HARD); + evas_object_show(genlist); + + return genlist; +} + +static void __gl_timeline_genlist_realized(void *data, Evas_Object *obj, void *ei) +{ + gl_dbg("realize_gl_timeline_create_grid_viewd"); + GL_CHECK(ei); + GL_CHECK(data); + gl_timeline_s *timeline_d = (gl_timeline_s *)data; + Elm_Object_Item *it = (Elm_Object_Item *)ei; + timeline_d->realized_item = it; +} + +static Evas_Object *__gl_timeline_create_list_view(gl_timeline_s *timeline_d, bool update) +{ + GL_CHECK_NULL(timeline_d); + Evas_Object *genlist = NULL; + Evas_Object *layout = NULL; + + if (timeline_d->view) { + evas_object_del(timeline_d->view); + } + + genlist = _gl_genlist_add(timeline_d->parent); + GL_CHECK_NULL(genlist); + evas_object_smart_callback_add(genlist, "vbar,drag", __gl_timeline_genlist_move_cb, timeline_d); + evas_object_smart_callback_add(genlist, "scroll,anim,stop", __gl_timeline_genlist_move_stop_cb, timeline_d); + evas_object_smart_callback_add(genlist, "scroll,drag,stop", __gl_timeline_genlist_move_stop_cb, timeline_d); + evas_object_smart_callback_add(genlist, "realized", __gl_timeline_genlist_realized, timeline_d); + + layout = elm_layout_add(timeline_d->parent); + GL_CHECK_NULL(layout); + elm_layout_file_set(layout, GL_EDJ_FILE, "timeline_gridview_date_toast"); + timeline_d->date_layout = layout; + + if (_gl_timeline_create_grid_view(timeline_d, genlist, update) < 0) { + return NULL; + } + + return genlist; +} + +#if 0 +static int __gl_timeline_page_rand(gl_timeline_s *timeline_d) +{ + GL_CHECK_VAL(timeline_d, -1); + int item_cnt = timeline_d->count; + int i = 0; + gl_tlp_s *it_d = NULL; + int index = 0; + + GL_TL_CLEAR_PAGES(timeline_d, true); + + srand(time(NULL)); + int cnt = 0; + bool b_new_count = false; + int list_cnt = eina_list_count(timeline_d->count_list); + gl_dbg("list_cnt: %d", list_cnt); + + for (i = 0; i < item_cnt;) { + it_d = (gl_tlp_s *)calloc(1, sizeof(gl_tlp_s)); + timeline_d->list = eina_list_append(timeline_d->list, it_d); + it_d->timeline_d = timeline_d; + if (list_cnt > index) { + /* Reuse count of page */ + cnt = (int)eina_list_nth(timeline_d->count_list, + index); + } else { + /* Add new random count */ + cnt = 1 + rand() % 5; + b_new_count = true; + } + + it_d->count = __gl_timeline_update_tiles_cnt(timeline_d->zoom_level, + cnt); + it_d->index = index++; + it_d->start_pos = i; + /* Refer to first item of next loop */ + i += it_d->count; + it_d->end_pos = i - 1; + /* Reset count and end_pos of last page */ + if (timeline_d->zoom_level != GL_TM_ZOOM_OUT_TWO && + i >= item_cnt) { + it_d->end_pos = item_cnt - 1; + it_d->count = it_d->end_pos - it_d->start_pos + 1; + if (b_new_count) + timeline_d->count_list = eina_list_append(timeline_d->count_list, + (void *)it_d->count); + break; + } + if (b_new_count) + timeline_d->count_list = eina_list_append(timeline_d->count_list, + (void *)it_d->count); + it_d = NULL; + } + return 0; +} + +static int __gl_timeline_update_view(gl_timeline_s *timeline_d, bool b_first) +{ + GL_CHECK_VAL(timeline_d, -1); + int item_cnt = 0; + time_t last_mtime = 0; + int ret = -1; + + /* Check media-content to show */ + ret = _gl_data_get_item_cnt(GL_ALBUM_ALL_ID, GL_STORE_T_ALL, &item_cnt); + if (ret != 0 || item_cnt == 0) + gl_dbgE("Empty!"); + + Eina_List *list = NULL; + _gl_data_get_items(0, 0, &list); + if (list == NULL) { + GL_TL_CLEAR_PAGES(timeline_d, true); + __gl_timelne_show_nocontents(timeline_d); + elm_naviframe_item_title_enabled_set(timeline_d->nf_it, EINA_FALSE, EINA_FALSE); + return -1; + } else { + __gl_timelne_del_nocontents(timeline_d); + elm_naviframe_item_title_enabled_set(timeline_d->nf_it, EINA_TRUE, EINA_TRUE); + } + + gl_media_s *item = eina_list_nth(list, 0); + if (item) + last_mtime = item->mtime; + + item = NULL; + EINA_LIST_FREE(list, item) { + _gl_data_type_free_glitem((void **)(&item)); + item = NULL; + } + + if (!b_first) { + if (last_mtime == timeline_d->last_mtime && + item_cnt == timeline_d->count) { + gl_dbgW("Nothing changed!"); + evas_object_show(timeline_d->view); /* To show slide items */ + __gl_timeline_show_tiles_trans(timeline_d); + return -1; + } + } + + timeline_d->count = item_cnt; + timeline_d->last_mtime = last_mtime; + /* Set rand image count for each page */ + __gl_timeline_page_rand(timeline_d); + /* Reset zoom level for overscrolling showing in slider */ + if (timeline_d->zoom_level == GL_TM_ZOOM_DEFAULT) + _gl_slider_set_zlevel(timeline_d->view, GL_SLIDE_ZLEVEL_MAX); + else if (timeline_d->zoom_level == GL_TM_ZOOM_DEFAULT) + _gl_slider_set_zlevel(timeline_d->view, GL_SLIDE_ZLEVEL_MIN); + else + _gl_slider_set_zlevel(timeline_d->view, GL_SLIDE_ZLEVEL_MID); + + _gl_slider_set_list(timeline_d->view, timeline_d->list, 0); + evas_object_show(timeline_d->view); /* To show slide items */ + if (timeline_d->b_created) + _gl_slider_start(timeline_d->view); + return 0; +} +#endif + +/* Free data after layout deleted */ +static void __gl_timeline_del_layout_cb(void *data, Evas *e, Evas_Object *obj, + void *ei) +{ + gl_dbg("Delete timeline layout ---"); + evas_object_data_del(obj, "page_w"); + evas_object_data_del(obj, "page_h"); + if (data) { + gl_timeline_s *timeline_d = (gl_timeline_s *)data; + GL_IF_DEL_ANIMATOR(timeline_d->animator); + GL_IF_FREE_ELIST(timeline_d->count_list); + GL_IF_FREE_ELIST(timeline_d->thumbs); + if (timeline_d->album) { + _gl_data_util_free_gcluster(timeline_d->album); + timeline_d->album = NULL; + } + __gl_timeline_clear_sel_list(timeline_d); + GL_GFREEIF(timeline_d->sel_d); + _gl_time_finialize_media_data(timeline_d); + GL_FREE(data); + } + gl_dbg("Delete timeline layout +++"); +} + +static int __gl_timeline_add_cbs(gl_timeline_s *timeline_d) +{ + GL_CHECK_VAL(timeline_d, -1); + GL_CHECK_VAL(timeline_d->ad, -1); + + /* Add callback for title updating */ + __gl_timeline_add_title_trans_finished_cbs(timeline_d, true); + /* Register delete callback */ + evas_object_event_callback_add(timeline_d->layout, EVAS_CALLBACK_DEL, + __gl_timeline_del_layout_cb, timeline_d); + evas_object_event_callback_add(timeline_d->layout, EVAS_CALLBACK_RESIZE, + __gl_timeline_resize_layout_cb, + timeline_d); + int bx = 0; + int by = 0; + int bw = 0; + int bh = 0; + evas_object_geometry_get(timeline_d->ad->maininfo.naviframe, &bx, &by, + &bw, &bh); + gl_dbg("naviframe. (%d,%d,%d,%d)", bx, by, bw, bh); + evas_object_geometry_get(timeline_d->layout, &bx, &by, &bw, &bh); + gl_dbg("layout. (%d,%d,%d,%d)", bx, by, bw, bh); + return 0; +} + +#ifdef SUPPORT_SLIDESHOW +static int __gl_timeline_start_slideshow(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + ad->gridinfo.grid_type = GL_GRID_T_ALLALBUMS; + + Eina_List *list = NULL; + gl_item *gitem = NULL; + gl_media_s *item = NULL; + _gl_data_get_items(GL_FIRST_VIEW_START_POS, + GL_FIRST_VIEW_START_POS, &list); + if (list != NULL) { + item = (gl_media_s *)eina_list_nth(list, 0); + GL_IF_FREE_ELIST(list); + gitem = _gl_data_new_item_mitem(item); + GL_CHECK_VAL(gitem, -1); + gl_ext_load_iv_ug(data, gitem, GL_UG_IV_SLIDESHOW_ALL); + _gl_data_util_free_gitem(gitem); + } + return 0; +} + +static int __gl_timeline_slideshow(void *data, const char *label) +{ + GL_CHECK_VAL(label, -1); + GL_CHECK_VAL(data, -1); + gl_dbg("label : %s ", label); + gl_appdata *ad = (gl_appdata *)data; + + if (!g_strcmp0(label, _gl_str(GL_STR_ID_ALL_ITEMS))) { + __gl_timeline_start_slideshow(data); + } else if (!g_strcmp0(label, _gl_str(GL_STR_ID_SETTINGS))) { + evas_object_data_set(ad->maininfo.naviframe, + GL_NAVIFRAME_SLIDESHOW_DATA_KEY, + __gl_timeline_start_slideshow); + gl_ext_load_ug(data, GL_UG_GALLERY_SETTING_SLIDESHOW); + } else if (!g_strcmp0(label, _gl_str(GL_STR_ID_SELECT_ITEMS))) { +#ifdef _USE_APP_SLIDESHOW + __gl_timeline_edit(data); + evas_object_data_set(ad->maininfo.naviframe, + GL_NAVIFRAME_SELECTED_SLIDESHOW_KEY, + gl_pop_to_ctrlbar_ly); +#else + _gl_ext_launch_gallery_ug(data); +#endif + } else { + gl_dbgE("Invalid lable!"); + return -1; + } + return 0; +} + +static void __gl_timeline_slideshow_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + _gl_ctxpopup_del(data); + _gl_popup_create_slideshow(data, __gl_timeline_slideshow); +} +#endif + +#ifdef _USE_APP_SLIDESHOW +static Eina_Bool __gl_timeline_edit_cancel_cb(void *data, Elm_Object_Item *it) +{ + GL_CHECK_FALSE(data); + gl_dbg(""); + gl_set_view_mode(data, GL_VIEW_TIMELINE); + gl_appdata *ad = (gl_appdata *)data; + if (_gl_timeline_update_view(data) < 0) { + if (ad->tlinfo->nocontents == NULL) { + ad->tlinfo->tran_op = GL_TRANS_OP_DEFAULT; + _gl_slider_update_first_item(ad->tlinfo->view); + } + + } + return EINA_TRUE; +} + +static int __gl_timeline_edit(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + int item_cnt = 0; + int ret = -1; + + ret = _gl_data_get_item_cnt(GL_ALBUM_ALL_ID, GL_STORE_T_ALL, &item_cnt); + if (ret != 0 || item_cnt == 0) { + gl_dbgE("Empty!"); + return -1; + } + + if (ad->tlinfo->album == NULL) + ad->tlinfo->album = _gl_data_util_new_gcluster_all(data, + item_cnt); + GL_CHECK_VAL(ad->tlinfo->album, -1); + _gl_albums_set_current(data, ad->tlinfo->album); + Eina_List *medias_elist = NULL; + _gl_data_get_items_album(data, ad->tlinfo->album, + GL_FIRST_VIEW_START_POS, GL_FIRST_VIEW_END_POS, + &medias_elist); + _gl_thumbs_set_list(ad, medias_elist); + _gl_thumbs_set_edit_mode(data, GL_THUMBS_EDIT_SLIDESHOW); + _gl_thumbs_create_view(data, GL_NAVI_THUMBS, GL_STR_ID_ALL_ALBUMS, true, + __gl_timeline_edit_cancel_cb); + + gl_dbg("Done edit"); + return 0; +} +#endif + +void __gl_timeline_desc_mode_set(void *data) { + gl_dbg("ENTRY"); + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + if (ad->tlinfo->time_media_display_order == TIME_ORDER_DESC) { + gl_dbg("EXIT 1"); + return; + } + ad->tlinfo->time_media_display_order = TIME_ORDER_DESC; + __gl_update_timeline(ad); +} + +void __gl_timeline_asc_mode_set(void *data) { + gl_dbg("ENTRY"); + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + if (ad->tlinfo->time_media_display_order == TIME_ORDER_ASC) { + gl_dbg("EXIT 1"); + return; + } + ad->tlinfo->time_media_display_order = TIME_ORDER_ASC; + __gl_update_timeline(ad); +} + +static void __gl_timeline_sort_cb(void *data, Evas_Object *obj, void *ei) +{ + gl_dbg("ENTRY"); + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + int state_index = -1; + state_index = ad->tlinfo->time_media_display_order == TIME_ORDER_ASC ? 1 : 0; + _gl_list_pop_create(data, obj, ei, GL_STR_SORT, GL_STR_DATE_MOST_RECENT, GL_STR_DATE_OLDEST, state_index); + gl_dbg("EXIT"); +} + +static void __gl_timeline_edit_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + _gl_ctxpopup_del(data); + if (ad->uginfo.ug) { + /** + * Prevent changed to edit view in wrong way. + * 1. When invoke imageviewer UG; + */ + gl_dbgW("UG invoked!"); + return; + } + __gl_timeline_change_mode(data, GL_TL_VIEW_EDIT); +} + +static void __gl_albums_viewas_pop_cb(void *data, Evas_Object *obj, void *ei) +{ + gl_dbg("ENTRY"); + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + int state_index = 1; // default is album + int view_mode = gl_get_view_mode(ad); + if (view_mode == GL_VIEW_TIMELINE) { + state_index = 0; + } else if (view_mode == GL_VIEW_ALBUMS) { + state_index = 1; + } + _gl_list_pop_create(data, obj, ei, GL_STR_ID_VIEW_AS, GL_STR_TIME_VIEW, GL_STR_ALBUMS, state_index); + gl_dbg("EXIT"); +} + +#if 0 +static void __gl_timeline_share_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + _gl_ctxpopup_del(data); + gl_appdata *ad = (gl_appdata *)data; + if (ad->uginfo.ug) { + /** + * Prevent changed to edit view in wrong way. + * 1. When invoke imageviewer UG; + */ + gl_dbgW("UG invoked!"); + return; + } + __gl_timeline_change_mode(data, GL_TL_VIEW_SHARE); +} +#endif + +/* 'Delete medias' is available in Dali view */ +static int __gl_timeline_del_op(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->tlinfo, -1); + gl_timeline_s *timeline_d = ad->tlinfo; + GL_CHECK_VAL(timeline_d->sel_d, -1); + int i = 0; + int popup_op = GL_POPUP_OP_NONE; + char *item = NULL; + int ret = -1; + + EINA_LIST_FREE(timeline_d->sel_d->sel_list, item) { + i++; + if (item) { + ret = _gl_del_media_by_id(data, (const char *)item); + if (ret != 0) + gl_dbgE("Get media failed[%d]!", ret); + item = NULL; + } + + gl_dbg("Write pipe, make progressbar updated!"); + gl_thread_write_pipe(ad, i, popup_op); + popup_op = GL_POPUP_OP_NONE; + } + timeline_d->sel_d->sel_list = NULL; + return 0; +} + +/* Update view after deleting process done */ +static int __gl_timeline_update_del_view(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_dbgW(""); + + __gl_timeline_change_mode(data, GL_TL_VIEW_NORMAL); + /* Update view */ + _gl_timeline_update_view(data); + /* Add notification */ + _gl_notify_create_notiinfo(GL_STR_DELETED); + /* Add albums list */ + _gl_update_albums_list(data); + _gl_db_update_lock_always(data, false); + return 0; +} + +#if 0 +static int __gl_timeline_get_path_str(void *data, gchar sep_c, char **path_str, + int *sel_cnt) +{ + GL_CHECK_VAL(path_str, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->tlinfo, -1); + gl_timeline_s *timeline_d = ad->tlinfo; + GL_CHECK_VAL(timeline_d->sel_d, -1); + GString *selected_path_list = g_string_new(NULL); + int selected_item_cnt = 0; + Eina_List *l = NULL; + char *item = NULL; + int ret = -1; + char *path = NULL; + + EINA_LIST_FOREACH(timeline_d->sel_d->sel_list, l, item) { + if (item == NULL) { + gl_dbgE("Invalid item!"); + goto GL_TL_FAILED; + } + + ret = _gl_local_data_get_path_by_id((const char *)item, &path); + if (ret != 0 || !path) { + gl_dbgE("Get path failed[%d]!", ret); + goto GL_TL_FAILED; + } + + if (strstr(selected_path_list->str, path)) { + gl_dbgW("Already appended!"); + } else { + selected_item_cnt++; + g_string_append(selected_path_list, path); + g_string_append_c(selected_path_list, sep_c); + } + GL_FREE(path); + } + gl_dbg("Selected items count: %d.", selected_item_cnt); + if (sel_cnt) + *sel_cnt = selected_item_cnt; + int len = strlen(selected_path_list->str); + g_string_truncate(selected_path_list, len - 1); + /** + * Frees the memory allocated for the GString. + * If free_segment is true it also frees the character data. + * If it's false, the caller gains ownership of the buffer + * and must free it after use with g_free(). + */ + *path_str = g_string_free(selected_path_list, false); + GL_CHECK_VAL(*path_str, -1); + gl_dbg("Total string:\n\n\t>>@@:> %s <:@@<<\n", *path_str); + return 0; + + GL_TL_FAILED: + + if (selected_path_list) { + g_string_free(selected_path_list, true); + selected_path_list = NULL; + } + GL_FREEIF(path); + return -1; +} + +/* To launch Image-editor*/ +static void __gl_timeline_ie_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg(""); + + if (ad->uginfo.ug || ad->uginfo.b_app_called) { + gl_dbgW("UG or APP is already loaded!"); + return; + } + _gl_ctxpopup_del(data); + + GL_CHECK(ad->tlinfo); + gl_timeline_s *timeline_d = ad->tlinfo; + if (__gl_timeline_get_sel_cnt(timeline_d) == 0) { + gl_dbgW("No thumbs selected!"); + gl_popup_create_popup(ad, GL_POPUP_NOBUT, + GL_STR_NO_FILES_SELECTED); + return; + } + + _gl_ext_load_ie(data, __gl_timeline_get_path_str); + /* Change to normal mode */ + __gl_timeline_change_mode(data, GL_TL_VIEW_NORMAL); +} + +/* 'Move medias' is only available in tab Albums */ +static int __gl_timeline_move_copy_op(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->tlinfo, -1); + gl_timeline_s *timeline_d = ad->tlinfo; + GL_CHECK_VAL(timeline_d->sel_d, -1); + int i = 0; + int popup_op = GL_POPUP_OP_NONE; + char *item = NULL; + + EINA_LIST_FREE(timeline_d->sel_d->sel_list, item) { + i++; + if (item) { + gl_sdbg("Selected [%s]", item); + if (ad->maininfo.medias_op_type == GL_MEDIA_OP_COPY_TIMELINE) { + if (_gl_move_media_thumb_by_id(data, (const char *)item, ad->albuminfo.dest_folder, &popup_op, GL_MC_COPY) != 0) + gl_dbg("Failed to copy this item"); + } else if (ad->maininfo.medias_op_type == GL_MEDIA_OP_MOVE_TIMELINE) { + if (_gl_move_media_thumb_by_id(data, (const char *)item, ad->albuminfo.dest_folder, &popup_op, GL_MC_MOVE) != 0) + gl_dbg("Failed to move this item"); + } else { + gl_dbgE("Wrong mode!"); + } + item = NULL; + } + + gl_dbg("Write pipe, make progressbar updated!"); + gl_thread_write_pipe(ad, i, popup_op); + popup_op = GL_POPUP_OP_NONE; + } + timeline_d->sel_d->sel_list = NULL; + return 0; +} + +/* Update view after moving process done */ +static int __gl_timeline_update_move_copy_view(void *data) +{ + GL_CHECK_VAL(data, -1); + + gl_appdata *ad = (gl_appdata *)data; + const char *noti_str = NULL; + if (ad->maininfo.medias_op_type == GL_MEDIA_OP_COPY_TIMELINE) { + noti_str = GL_STR_COPIED; + } else if (ad->maininfo.medias_op_type == GL_MEDIA_OP_MOVE_TIMELINE) { + noti_str = GL_STR_MOVED; + } else { + gl_dbgE("Wrong mode!"); + } + if (noti_str) + _gl_notify_create_notiinfo(noti_str); + elm_naviframe_item_pop_to(ad->tlinfo->nf_it); + __gl_timeline_change_mode(data, GL_TL_VIEW_NORMAL); + /* Update view */ + _gl_timeline_update_view(data); + /* Update albums list and items list */ + _gl_update_albums_list(ad); + _gl_db_update_lock_always(data, false); + return 0; +} + +static int __gl_timeline_move_copy(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + char folder_fullpath[GL_DIR_PATH_LEN_MAX] = { 0, }; + GL_CHECK_VAL(ad->tlinfo, -1); + gl_timeline_s *timeline_d = ad->tlinfo; + int cnt = __gl_timeline_get_sel_cnt(timeline_d); + gl_dbg(""); + + _gl_db_update_lock_always(data, true); + /** + * 'move_album_id == NULL' is new album case, + * other move/save to some existed album. + */ + if (ad->albuminfo.path == NULL) { + gl_dbg("New album"); + if (gl_make_new_album(ad->albuminfo.new_name) != 0) { + gl_popup_create_popup(ad, GL_POPUP_NOBUT, + GL_STR_SAME_NAME_ALREADY_IN_USE); + gl_dbgE("Failed to make a new directory!"); + goto GL_FAILED; + } + snprintf(folder_fullpath, GL_DIR_PATH_LEN_MAX, "%s/%s", + GL_DEFAULT_PATH_IMAGES, ad->albuminfo.new_name); + } else { + g_strlcpy(folder_fullpath, ad->albuminfo.path, + GL_DIR_PATH_LEN_MAX); + GL_FREE(ad->albuminfo.path); + } + + memset(ad->albuminfo.dest_folder, 0x00, GL_DIR_PATH_LEN_MAX); + g_strlcpy(ad->albuminfo.dest_folder, folder_fullpath, + GL_DIR_PATH_LEN_MAX); + + /* Check MMC state for cancel operation */ + gl_check_mmc_state(ad, folder_fullpath); + gl_dbg("MMC state: %d.", ad->maininfo.mmc_state); + _gl_set_file_op_cbs(data, __gl_timeline_move_copy_op, NULL, + __gl_timeline_update_move_copy_view, cnt); + + if (ad->albuminfo.file_mc_mode == GL_MC_MOVE) + _gl_use_thread_operate_medias(ad, GL_STR_ID_MOVING, cnt, + GL_MEDIA_OP_MOVE_TIMELINE); + else if (ad->albuminfo.file_mc_mode == GL_MC_COPY) + _gl_use_thread_operate_medias(ad, GL_STR_ID_COPYING, cnt, + GL_MEDIA_OP_COPY_TIMELINE); + else + gl_dbgE("Wrong mode!"); + return 0; + + GL_FAILED: + + /* Update the label text */ + _gl_ui_update_navi_title_text(timeline_d->nf_it, cnt, false); + __gl_timeline_check_btns_state(timeline_d, timeline_d->count, cnt); + _gl_db_update_lock_always(data, false); + return -1; +} + +/* move media to album in edit view */ +static void __gl_timeline_move_cb(void *data, Evas_Object *obj, void *ei) +{ + elm_toolbar_item_selected_set((Elm_Object_Item *)ei, EINA_FALSE); + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK(ad->tlinfo); + gl_timeline_s *timeline_d = ad->tlinfo; + gl_dbg(""); + + if (__gl_timeline_get_sel_cnt(timeline_d) == 0) { + gl_dbgW("No thumbs selected!"); + gl_popup_create_popup(data, GL_POPUP_NOBUT, + GL_STR_NO_FILES_SELECTED); + return; + } + + ad->albuminfo.file_mc_mode = GL_MC_MOVE; + _gl_popup_create_move(data, __gl_timeline_move_copy); +} + +/* move media to album in edit view */ +static void __gl_timeline_copy_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + _gl_ctxpopup_del(data); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK(ad->tlinfo); + gl_timeline_s *timeline_d = ad->tlinfo; + gl_dbg(""); + + if (__gl_timeline_get_sel_cnt(timeline_d) == 0) { + gl_dbgW("No thumbs selected!"); + gl_popup_create_popup(data, GL_POPUP_NOBUT, + GL_STR_NO_FILES_SELECTED); + return; + } + + ad->albuminfo.file_mc_mode = GL_MC_COPY; + _gl_popup_create_copy(data, __gl_timeline_move_copy); +} +#endif + +#ifdef _USE_ROTATE_BG +static int __gl_timeline_rotate_op(void *data) +{ +#define GL_ROTATE_DELAY 0.25 + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->tlinfo, -1); + gl_timeline_s *timeline_d = ad->tlinfo; + GL_CHECK_VAL(timeline_d->sel_d, -1); + int i = 0; + int popup_op = GL_POPUP_OP_NONE; + int ret = -1; + bool b_left = false; + char *item = NULL; + int cnt = __gl_timeline_get_sel_cnt(timeline_d); + + if (ad->maininfo.medias_op_type == GL_MEDIA_OP_ROTATING_LEFT_TIMELINE) + b_left = true; + + EINA_LIST_FREE(timeline_d->sel_d->sel_list, item) { + i++; + if (item) { + ret = _gl_rotate_image_by_id(data, (const char *)item, + b_left); + if (ret != 0) + gl_dbgE("Rotate image failed[%d]!", ret); + + /* Add some delay for last two images to wait for thumb updated */ + if (i > cnt - 2) + _gl_delay(GL_ROTATE_DELAY); + + if (i == cnt) { + gl_dbgW("Last image rotated!"); + /* Add another delay for last thumb */ + _gl_delay(GL_ROTATE_DELAY); + } + item = NULL; + } + + gl_dbg("Write pipe, make progressbar updated!"); + gl_thread_write_pipe(ad, i, popup_op); + popup_op = GL_POPUP_OP_NONE; + } + timeline_d->sel_d->sel_list = NULL; + return 0; +} + +static int __gl_timeline_update_rotate_view(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_dbgW(""); + + __gl_timeline_change_mode(data, GL_TL_VIEW_NORMAL); + _gl_db_update_lock_always(data, false); + return 0; +} +static int __gl_timeline_rotate_images(void *data, bool b_left) +{ + gl_dbg(""); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->tlinfo, -1); + gl_timeline_s *timeline_d = ad->tlinfo; + + /* Get all selected medias count */ + int cnt = __gl_timeline_get_sel_cnt(timeline_d); + /* Check MMC state for cancel operation */ + gl_check_mmc_state(ad, NULL); + gl_dbg("MMC state: %d.", ad->maininfo.mmc_state); + /* Rotate left */ + int op_type = GL_MEDIA_OP_ROTATING_LEFT_TIMELINE; + /* Rotate right */ + if (!b_left) + op_type = GL_MEDIA_OP_ROTATING_RIGHT_TIMELINE; + _gl_db_update_lock_always(data, true); + _gl_set_file_op_cbs(data, __gl_timeline_rotate_op, NULL, + __gl_timeline_update_rotate_view, cnt); + _gl_use_thread_operate_medias(ad, GL_STR_ID_ROTATING, cnt, op_type); + + return 0; +} + +static void __gl_timeline_edit_rotate_left_cb(void *data, Evas_Object *obj, + void *ei) +{ + GL_CHECK(data); + _gl_ctxpopup_del(data); + + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK(ad->tlinfo); + gl_timeline_s *timeline_d = ad->tlinfo; + + if (__gl_timeline_get_sel_cnt(timeline_d) == 0) { + gl_dbgW("No thumbs selected!"); + gl_popup_create_popup(data, GL_POPUP_NOBUT, + GL_STR_NO_FILES_SELECTED); + return; + } + __gl_timeline_rotate_images(data, true); +} + +static void __gl_timeline_edit_rotate_right_cb(void *data, Evas_Object *obj, + void *ei) +{ + GL_CHECK(data); + _gl_ctxpopup_del(data); + + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK(ad->tlinfo); + gl_timeline_s *timeline_d = ad->tlinfo; + + if (__gl_timeline_get_sel_cnt(timeline_d) == 0) { + gl_dbgW("No thumbs selected!"); + gl_popup_create_popup(data, GL_POPUP_NOBUT, + GL_STR_NO_FILES_SELECTED); + return; + } + __gl_timeline_rotate_images(data, false); +} +#endif + +/* Easy mode: New album/Edit/Slideshow */ +static int __gl_timeline_ctxpopup_append(void *data, Evas_Object *parent) +{ + gl_dbg(""); + GL_CHECK_VAL(parent, -1); + GL_CHECK_VAL(data, -1); + GL_CHECK_VAL(parent, -1); + int cnt = 0; + int ret = -1; + ret = _gl_data_get_item_cnt(GL_ALBUM_ALL_ID, GL_STORE_T_ALL, &cnt); + if (ret != 0 || cnt == 0) { + gl_dbgE("Empty!"); + } + + if (cnt > 0) { + /* View As */ + _gl_ctxpopup_append(parent, GL_STR_ID_VIEW_AS, + __gl_albums_viewas_pop_cb, data); + /* Delete */ + _gl_ctxpopup_append(parent, GL_STR_ID_DELETE, + __gl_timeline_edit_cb, data); + /* Sort */ + _gl_ctxpopup_append(parent, GL_STR_SORT, + __gl_timeline_sort_cb, data); +#ifdef SUPPORT_SLIDESHOW + /* Slide show */ + _gl_ctxpopup_append(parent, GL_STR_ID_SLIDESHOW, + __gl_timeline_slideshow_cb, data); +#endif + } + + return 0; +} + +static int __gl_timeline_edit_ctxpopup_append(void *data, Evas_Object *parent) +{ + gl_dbg(""); + GL_CHECK_VAL(parent, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->tlinfo, -1); + GL_CHECK_VAL(ad->tlinfo->sel_d, -1); + int cnt = __gl_timeline_get_sel_cnt(ad->tlinfo); + + /* Hide items */ + +#ifdef _USE_ROTATE_BG + if (ad->tlinfo->sel_d->jpge_cnt == cnt) { + gl_dbg("Enable more button"); + _gl_ctxpopup_append(parent, GL_STR_ID_ROTATE_LEFT, + __gl_timeline_edit_rotate_left_cb, + data); + _gl_ctxpopup_append(parent, GL_STR_ID_ROTATE_RIGHT, + __gl_timeline_edit_rotate_right_cb, + data); + } +#endif + return 0; +} + +static void __gl_timeline_more_cb(void *data, Evas_Object *obj, void *ei) +{ + gl_dbg("more button clicked"); + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + Evas_Object *more = NULL; + more = _gl_ui_get_btn(NULL, ad->tlinfo->nf_it, GL_NAVIFRAME_MORE); + if (EINA_TRUE == elm_object_disabled_get(more)) { + gl_dbg("Menu is disabled"); + return; /* Menu is disabled */ + } + + gl_dbg("Menu is clicked"); + GL_CHECK(ad->tlinfo); + /* Edit mode */ + if (ad->tlinfo->view_m == GL_TL_VIEW_EDIT) + _gl_ctxpopup_create(data, obj, + __gl_timeline_edit_ctxpopup_append); + else if (ad->tlinfo->view_m == GL_TL_VIEW_NORMAL) + _gl_ctxpopup_create(data, obj, __gl_timeline_ctxpopup_append); + else + gl_dbg("Unavailable menu operation"); +} + +#if 0 +static void __gl_timeline_camera_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_dbg(""); + _gl_ext_load_camera(data); +} +#endif + +static int __gl_timeline_reset_label(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + if (ad->tlinfo == NULL) + return -1; + if (ad->tlinfo->view_m == GL_TL_VIEW_NORMAL) { + gl_dbg("Normal mode"); + return -1; + } + + int sel_cnt = __gl_timeline_get_sel_cnt(ad->tlinfo); + __gl_timeline_check_btns_state(ad->tlinfo, ad->tlinfo->count, sel_cnt); + /* Update the label text */ + _gl_ui_update_navi_title_text(ad->tlinfo->nf_it, sel_cnt, false); + return 0; +} + +static int __gl_timeline_reset_btns(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + if (ad->tlinfo == NULL) + return -1; + /* Check Button menu state in Easymode */ + _gl_ui_disable_menu(ad->tlinfo->nf_it, false); + return 0; +} + +int _gl_time_data_selected_list_finalize(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg(""); + gl_media_s *gitem = NULL; + GL_CHECK_VAL(ad->tlinfo, -1); + int i; + int count; + if (ad->tlinfo->data_list) { + count = eina_list_count(ad->tlinfo->data_list); + for (i = 0; i < count ; i++) { + gitem = eina_list_nth(ad->tlinfo->data_list, i); + if (gitem) { + gitem->check_state = false; + } + } + } + + return 0; +} + +static void __gl_timeline_edit_cancel_cb(void *data, Evas_Object *obj, void *ei) +{ + elm_toolbar_item_selected_set((Elm_Object_Item *)ei, EINA_FALSE); + GL_CHECK(data); + gl_dbg(""); + __gl_timeline_change_mode(data, GL_TL_VIEW_NORMAL); +} + +static int __gl_timeline_add_btns(void *data) +{ + gl_dbg(""); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->maininfo.naviframe, -1); + GL_CHECK_VAL(ad->tlinfo->nf_it, -1); + Evas_Object *parent = ad->maininfo.naviframe; + Elm_Object_Item *nf_it = ad->tlinfo->nf_it; + + _gl_ui_clear_btns(data); + Evas_Object *btn = NULL; + + /* More */ + btn = _gl_but_create_but(parent, NULL, NULL, + GL_BUTTON_STYLE_NAVI_MORE, + __gl_timeline_more_cb, data); + GL_CHECK_VAL(btn, -1); + elm_object_item_part_content_set(nf_it, GL_NAVIFRAME_MORE, btn); + elm_object_signal_emit(ad->ctrlinfo.ctrlbar_view_ly, "elm,selectall,state,default", "elm"); + return 0; +} + +static void __gl_timeline_del_cb(void *data, Evas_Object *obj, void *ei) +{ + elm_toolbar_item_selected_set((Elm_Object_Item *)ei, EINA_FALSE); + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK(ad->tlinfo); + gl_timeline_s *timeline_d = ad->tlinfo; + /* Get all selected medias count */ + int cnt = __gl_timeline_get_sel_cnt(timeline_d); + if (cnt == 0) { + gl_dbgW("No thumbs selected!"); + gl_popup_create_popup(ad, GL_POPUP_NOBUT, GL_STR_NO_FILES_SELECTED); + return; + } + + /* Check MMC state for cancel operation */ + gl_check_mmc_state(ad, NULL); + gl_dbg("MMC state: %d.", ad->maininfo.mmc_state); + _gl_db_update_lock_always(data, true); + _gl_set_file_op_cbs(data, __gl_timeline_del_op, NULL, + __gl_timeline_update_del_view, cnt); + _gl_use_thread_operate_medias(ad, GL_STR_ID_DELETING, cnt, + GL_MEDIA_OP_DELETE_TIMELINE); +} + +/* Select-all checkbox selected/deselected */ +#if 0 +static void __gl_timeline_edit_selall_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + int item_cnt = 0; + int sel_all_cnt = 0; + int ret = -1; + + ad->selinfo.ck_state = !ad->selinfo.ck_state; + if (ad->selinfo.selectall_ck) { + elm_check_state_set(ad->selinfo.selectall_ck, ad->selinfo.ck_state); + } + int state = ad->selinfo.ck_state; + gl_dbg("Checkbox state: %d", state); + _gl_slider_set_cks_state(ad->tlinfo->view, state); + + __gl_timeline_clear_sel_list(ad->tlinfo); + __gl_timeline_clear_sel_cnt(ad->tlinfo); + + if (state == EINA_FALSE) { + sel_all_cnt = 0; + item_cnt = ad->tlinfo->count; + } else { + Eina_List *list = NULL; + ret = _gl_data_get_items(GL_GET_ALL_RECORDS, GL_GET_ALL_RECORDS, + &list); + if (ret != 0 || !list) + gl_dbgW("Empty!"); + + gl_media_s *item = NULL; + EINA_LIST_FREE(list, item) { + if (!item || !item->uuid) + continue; + __gl_timeline_check_special_file(ad->tlinfo, item, true); + __gl_timeline_sel_append_item(ad->tlinfo, item->uuid); + _gl_data_type_free_glitem((void **)(&item)); + item_cnt++; + item = NULL; + } + sel_all_cnt = item_cnt; + } + + __gl_timeline_check_btns_state(ad->tlinfo, item_cnt, sel_all_cnt); + /* Update the label text */ + _gl_ui_update_navi_title_text(ad->tlinfo->nf_it, sel_all_cnt, false); +} +#endif + +int _gl_timeline_update_realized_grid_ck(Evas_Object *view, Eina_Bool state) +{ + GL_CHECK_VAL(view, -1); + Eina_List *grid = NULL; + Eina_List *l = NULL; + Elm_Object_Item *it = NULL; + + grid = elm_gengrid_realized_items_get(view); + GL_CHECK_VAL(grid, -1); + + EINA_LIST_FOREACH(grid, l, it) { + if (it == NULL) { + gl_dbgE("Invalid item!"); + continue; + } + Evas_Object *ck = NULL; + + ck = elm_object_item_part_content_get(it, GL_THUMB_CHECKBOX); + gl_media_s *data = (gl_media_s *)elm_object_item_data_get(it); + if (!ck) { + gl_dbgE("Invalid checkbox!"); + return -1; + } + + if (elm_check_state_get(ck) != state) { + elm_check_state_set(ck, state); + gl_timeline_s *td = evas_object_data_get(ck, "data"); + GL_CHECK_VAL(td, -1); + __gl_timeline_thumb_check_op(td, ck, data); + } + } + + return 0; +} + +/* Select-all checkbox selected/deselected */ +static void __gl_timeline_thumb_edit_selall_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK(ad->tlinfo); + + ad->selinfo.ck_state = !ad->selinfo.ck_state; + if (ad->selinfo.selectall_ck) { + elm_check_state_set(ad->selinfo.selectall_ck, ad->selinfo.ck_state); + } + int state = ad->selinfo.ck_state; + + GL_CHECK(ad->tlinfo); + Evas_Object *genlist = ad->tlinfo->view; + GL_CHECK(genlist); + + gl_media_s *gitem = NULL; + int i; + if (ad->tlinfo->data_list) { + int count = eina_list_count(ad->tlinfo->data_list); + for (i = 0; i < count ; i++) { + gitem = eina_list_nth(ad->tlinfo->data_list, i); + if (gitem) { + gitem->check_state = state; + if (state) { + __gl_timeline_check_special_file(ad->tlinfo, gitem, true); + __gl_timeline_sel_append_item(ad->tlinfo, gitem->uuid); + } else { + __gl_timeline_check_special_file(ad->tlinfo, gitem, false); + __gl_timeline_sel_remove_item(ad->tlinfo, gitem->uuid); + } + } + } + int sel_cnt = __gl_timeline_get_sel_cnt(ad->tlinfo); + _gl_ui_update_navi_title_text(ad->tlinfo->nf_it, sel_cnt, false); + + __gl_timeline_check_btns_state(ad->tlinfo, ad->tlinfo->count, + sel_cnt); + } + elm_genlist_realized_items_update(genlist); +} + +/** + * Use naviframe api to push albums edit view to stack. + * @param obj is the content to be pushed. + */ +static int __gl_timeline_edit_add_btns(void *data) +{ + gl_dbg("EDIT"); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + Evas_Object *parent = ad->maininfo.naviframe; + Elm_Object_Item *nf_it = elm_naviframe_top_item_get(parent); + GL_CHECK_VAL(nf_it, -1); + + /* More */ + Evas_Object *btn = _gl_but_create_but(parent, NULL, NULL, + GL_BUTTON_STYLE_NAVI_MORE, + __gl_timeline_more_cb, data); + GL_CHECK_VAL(btn, -1); + _gl_ui_disable_btn(btn); + elm_object_item_part_content_set(nf_it, GL_NAVIFRAME_MORE, btn); + + Evas_Object *btn1 = elm_button_add(parent); + Evas_Object *btn2 = elm_button_add(parent); + GL_CHECK_VAL(btn1, -1); + GL_CHECK_VAL(btn2, -1); + /* Title Cancel Button */ + elm_object_style_set(btn1, "naviframe/title_left"); + elm_object_item_part_content_set(ad->ctrlinfo.nf_it, GL_NAVIFRAME_TITLE_LEFT_BTN, btn1); + _gl_ui_set_translate_str(btn1,GL_STR_ID_CANCEL_CAP); + evas_object_smart_callback_add(btn1, "clicked", __gl_timeline_edit_cancel_cb, ad); + /* Title Done Button */ + elm_object_style_set(btn2, "naviframe/title_right"); + elm_object_item_part_content_set(ad->ctrlinfo.nf_it, GL_NAVIFRAME_TITLE_RIGHT_BTN, btn2); + _gl_ui_set_translate_str(btn2,GL_STR_ID_DONE_CAP); + evas_object_smart_callback_add(btn2, "clicked", __gl_timeline_del_cb, ad); + elm_object_disabled_set(btn2, EINA_TRUE); + + gl_dbg("Sending signal to EDC"); + elm_object_signal_emit(ad->ctrlinfo.ctrlbar_view_ly, "elm,selectall,state,visible,bg", "elm"); + elm_object_signal_emit(ad->ctrlinfo.ctrlbar_view_ly, "elm,selectall,state,visible", "elm"); + _gl_ui_add_selall_ck(ad->ctrlinfo.ctrlbar_view_ly, "select.all.area.check", "select.all.area.check", + __gl_timeline_thumb_edit_selall_cb, data); + return 0; +} + +#ifdef GL_EXTENDED_FEATURES +static int __gl_timeline_share_get_path(void *data, char **files) +{ + GL_CHECK_VAL(files, 0); + GL_CHECK_VAL(data, 0); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->tlinfo, 0); + gl_timeline_s *timeline_d = ad->tlinfo; + GL_CHECK_VAL(timeline_d->sel_d, 0); + int i = 0; + Eina_List *l = NULL; + int ret = -1; + char *item = NULL; + char *path = NULL; + + EINA_LIST_FOREACH(timeline_d->sel_d->sel_list, l, item) { + if (item == NULL) { + gl_dbgE("Invalid item!"); + goto GL_TL_FAILED; + } + + ret = _gl_local_data_get_path_by_id((const char *)item, &path); + if (ret != 0 || !path) { + gl_dbgE("Get path failed[%d]!", ret); + goto GL_TL_FAILED; + } + + files[i++] = strdup(path); + gl_sdbg("file_url: %s!", files[i - 1]); + + GL_FREE(path); + } + return i; + + GL_TL_FAILED: + + for (; i > 0; --i) + GL_FREEIF(files[i - 1]); + GL_FREEIF(path); + return 0; +} + +static void __gl_timeline_share_op_cb(void *data, Evas_Object *obj, void *ei) +{ + elm_toolbar_item_selected_set((Elm_Object_Item *)ei, EINA_FALSE); + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK(ad->tlinfo); + gl_timeline_s *timeline_d = ad->tlinfo; + /* Get all selected medias count */ + int cnt = __gl_timeline_get_sel_cnt(timeline_d); + _gl_ext_launch_share(data, cnt, __gl_timeline_share_get_path); + /* Change to normal mode */ + __gl_timeline_change_mode(data, GL_TL_VIEW_NORMAL); +} + +/** + * Use naviframe api to push albums edit view to stack. + * @param obj is the content to be pushed. + */ +static int __gl_timeline_share_add_btns(void *data) +{ + gl_dbg("Share"); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + Evas_Object *parent = ad->maininfo.naviframe; + Elm_Object_Item *nf_it = elm_naviframe_top_item_get(parent); + GL_CHECK_VAL(nf_it, -1); + /* Item Toolbar */ + Elm_Object_Item *tb_it = NULL; + Evas_Object *toolbar = _gl_ctrl_add_toolbar(parent); + /* Cancel */ + _gl_ctrl_append_item(toolbar, NULL, GL_STR_ID_CANCEL, + __gl_timeline_edit_cancel_cb, data); + /* Share */ + tb_it = _gl_ctrl_append_item(toolbar, NULL, GL_STR_ID_SHARE, + __gl_timeline_share_op_cb, data); + _gl_ctrl_disable_item(tb_it, true); + elm_object_item_part_content_set(nf_it, "toolbar", toolbar); + /* Select-all */ + ad->selinfo.ck_state = false; + _gl_ui_add_xpt_btns(nf_it, GL_UI_XPT_SEL_ALL, + __gl_timeline_thumb_edit_selall_cb, NULL, data); + return 0; +} +#endif + +bool __gl_update_timeline(void *data) { + GL_CHECK_FALSE(data); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_FALSE(ad->tlinfo); + + if (ad->tlinfo->nocontents) { + return false; + } + Evas_Object *view = __gl_timeline_create_list_view(ad->tlinfo, true); + if (!view) { + gl_dbgE("Failed to create view!"); + return false; + } + ad->tlinfo->view = view; + elm_object_part_content_set(ad->tlinfo->layout, "elm.swallow", view); + return true; +} + +static int __gl_timeline_change_mode(void *data, int mode) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->tlinfo, -1); + + ad->tlinfo->view_m = mode; + switch (mode) { + case GL_TL_VIEW_NORMAL: + gl_dbg("GL_TL_VIEW_NORMAL"); + _gl_time_data_selected_list_finalize(data); + _gl_ui_change_navi_title(ad->tlinfo->nf_it, GL_STR_TIME_VIEW, true); + __gl_timeline_add_btns(data); + /* Update view to hide checkboxes and clear data */ + __gl_timeline_clear_sel_list(ad->tlinfo); + GL_GFREEIF(ad->tlinfo->sel_d); + break; + case GL_TL_VIEW_EDIT: + case GL_TL_VIEW_SHARE: + GL_GFREEIF(ad->tlinfo->sel_d); + ad->tlinfo->sel_d = g_new0(gl_sel_s, 1); + GL_CHECK_VAL(ad->tlinfo->sel_d, -1); + _gl_ui_change_navi_title(ad->tlinfo->nf_it, GL_STR_ID_SELECT_ITEM, + false); + if (GL_TL_VIEW_EDIT == mode) { + __gl_timeline_edit_add_btns(data); + } +#ifdef GL_EXTENDED_FEATURES + else { + __gl_timeline_share_add_btns(data); + } +#endif + break; + default: + gl_dbgE("Wrong mode!"); + return -1; + } + __gl_update_timeline(data); + return 0; +} + +static Eina_Bool __gl_timeline_pop_op(void *data) +{ + GL_CHECK_FALSE(data); + gl_appdata *ad = (gl_appdata *)data; + if (ad->tlinfo && ad->tlinfo->view_m != GL_TL_VIEW_NORMAL) { + gl_dbg("EDIT"); + __gl_timeline_change_mode(data, GL_TL_VIEW_NORMAL); + /* Just cancel edit view, dont lower app to background */ + return EINA_TRUE; + } + return EINA_FALSE; +} + +int _gl_timeline_create_view(void *data, Evas_Object *parent) +{ + GL_CHECK_VAL(parent, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg(""); + int w = 0; + int h = 0; + + /* Set pop callback for operating when button back clicked */ + evas_object_data_set(ad->maininfo.naviframe, GL_NAVIFRAME_POP_CB_KEY, + (void *)__gl_timeline_pop_op); + + evas_object_geometry_get(parent, NULL, NULL, &w, &h); + gl_dbg("content's size(%dx%d)", w, h); + + gl_set_view_mode(data, GL_VIEW_TIMELINE); + _gl_ctrl_show_title(data, GL_CTRL_TAB_TIMELINE); + + if (ad->tlinfo) { + gl_dbgW("Update view"); + /*To show transition*/ + ad->tlinfo->tran_op = GL_TRANS_OP_PREPARE; + /*Update view*/ + ad->tlinfo->view = __gl_timeline_create_list_view(ad->tlinfo, false); + elm_object_part_content_set(parent, "elm.swallow.view", ad->tlinfo->layout); + /*TODO: Update date info if time changed, add timer to check time changed*/ + elm_object_part_content_set(ad->tlinfo->layout, "elm.swallow", ad->tlinfo->view); + if (ad->tlinfo->view == NULL) { + gl_dbgE("Failed to create view!"); + return -1; + } + evas_object_show(ad->tlinfo->view); + /*Update buttons*/ + __gl_timeline_add_btns(data); + /* Update buttons state */ + __gl_timeline_reset_btns(data); + /* Update naviframe item title */ + __gl_timeline_reset_label(data); + return 0; + } + + Evas_Object *layout = NULL; + Evas_Object *view = NULL; + gl_timeline_s *timeline_d = NULL; + + timeline_d = (gl_timeline_s *)calloc(1, sizeof(gl_timeline_s)); + GL_CHECK_VAL(timeline_d, -1); + + timeline_d->ad = ad; + timeline_d->parent = parent; + timeline_d->nf_it = ad->ctrlinfo.nf_it; + ad->tlinfo = timeline_d; + timeline_d->tran_op = GL_TRANS_OP_PREPARE; + timeline_d->time_media_display_order = TIME_ORDER_DESC; + ad->pinchinfo.zoom_level = GL_ZOOM_IN_ONE; + + layout = gl_ui_load_edj(parent, GL_EDJ_FILE, "timeline"); + if (layout == NULL) { + gl_dbgE("Failed to create layout!"); + goto GL_TIMELINE_FAILED; + } + evas_object_show(layout); + elm_object_part_content_set(parent, "elm.swallow.view", layout); + timeline_d->layout = layout; + + /* Minus title height */ + h -= (GL_TIMELINE_TITLE_H + GL_TIMELINE_PAD_H) * elm_config_scale_get(); + evas_object_data_set(layout, "page_w", (void *)w); + evas_object_data_set(layout, "page_h", (void *)h); + timeline_d->w = w; + timeline_d->h = h; + timeline_d->is_list_reverse = false; + gl_dbg("content's size(%dx%d)", w, h); + + view = __gl_timeline_create_list_view(timeline_d, false); + if (view == NULL) { + gl_dbgE("Failed to create view!"); + GL_IF_DEL_OBJ(layout); + return -1; + } + timeline_d->view = view; + elm_object_part_content_set(timeline_d->layout, "elm.swallow", view); + + /*Update buttons*/ + __gl_timeline_add_btns(data); + /* Update buttons state */ + __gl_timeline_reset_btns(data); + /* Register callbacks */ + __gl_timeline_add_cbs(timeline_d); + return 0; + + GL_TIMELINE_FAILED: + + GL_IF_DEL_OBJ(layout); + return -1; +} + +int _gl_timeline_update_view(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->tlinfo, -1); + + /* Update view */ + gl_dbgW("Update view"); + Evas_Object *view = __gl_timeline_create_list_view(ad->tlinfo, false); + if (view == NULL) { + gl_dbgE("Failed to create view!"); + return -1; + } + ad->tlinfo->view = view; + elm_object_part_content_set(ad->tlinfo->layout, "elm.swallow", view); + /* Update buttons state */ + __gl_timeline_reset_btns(data); + /* Update naviframe item title */ + __gl_timeline_reset_label(data); + return 0; +} + +int _gl_timeline_update_lang(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_dbg(""); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->tlinfo, -1); + GL_CHECK_VAL(ad->tlinfo->nf_it, -1); + _gl_ui_change_navi_title(ad->tlinfo->nf_it, GL_STR_TIME_VIEW, true); + _gl_timeline_update_view(ad); + + return 0; +} + +int _gl_timeline_hide_view(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg(""); + + if (ad->tlinfo == NULL) + return -1; + + GL_TL_DEL_TRANSITS(ad->tlinfo->tiles); + /* To hide slide items */ + evas_object_hide(ad->tlinfo->view); + /* Cancel thumb creation*/ + __gl_timeline_cancel_thumbs(ad->tlinfo); + /* Hide previous view */ + Evas_Object *pre_view = NULL; + pre_view = elm_object_part_content_unset(ad->tlinfo->parent, + "elm.swallow.view"); + evas_object_hide(pre_view); + return 0; +} + +int _gl_timeline_rotate_view(void *data) +{ + return 0; +} + +int _gl_timeline_view_rotate(void *data) +{ + gl_dbgE("ENTRY"); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->tlinfo, -1); + + if (ad->tlinfo->nocontents) { + return -1; + } + + ad->tlinfo->delete_data = false; + Evas_Object *view = __gl_timeline_create_list_view(ad->tlinfo, true); + if (view == NULL) { + gl_dbgE("Failed to create view!"); + return -1; + } + ad->tlinfo->view = view; + elm_object_part_content_set(ad->tlinfo->layout, "elm.swallow", view); + if ((ad->maininfo.rotate_mode == APP_DEVICE_ORIENTATION_270) || + (ad->maininfo.rotate_mode == APP_DEVICE_ORIENTATION_90)) { + elm_object_signal_emit(ad->tlinfo->parent, "timelineview,landscape", ""); + } else { + elm_object_signal_emit(ad->tlinfo->parent, "timelineview,portrait", ""); + } + if (ad->tlinfo->view_m == GL_TL_VIEW_EDIT) { + elm_object_signal_emit(ad->ctrlinfo.ctrlbar_view_ly, "elm,selectall,state,visible,bg", "elm"); + elm_object_signal_emit(ad->ctrlinfo.ctrlbar_view_ly, "elm,selectall,state,visible", "elm"); + } + + gl_dbgE("EXIT"); + return 0; +} + +int _gl_timeline_update_grid_size(void *data) +{ + gl_dbgE("ENTRY"); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->tlinfo, -1); + + if (ad->tlinfo->nocontents) { + return -1; + } + Evas_Object *view = __gl_timeline_create_list_view(ad->tlinfo, true); + if (view == NULL) { + gl_dbgE("Failed to create view!"); + return -1; + } + ad->tlinfo->view = view; + elm_object_part_content_set(ad->tlinfo->layout, "elm.swallow", view); + + return 0; +} + +void _gl_update_timeview_iv_select_mode_reply(void *data, char **select_result, int count) +{ + gl_dbgE("ENTRY"); + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK(ad->tlinfo); + gl_media_s *item = NULL; + Eina_List *l = NULL; + int i; + int sel_count = 0; + bool in_list = false; + + if (select_result) { + EINA_LIST_FOREACH(ad->tlinfo->data_list, l, item) { + if (!item) { + continue; + } + in_list = false; + for (i = 0; i < count; i++) { + if (!strcmp(select_result[i], item->file_url)) { + if (!item->check_state) { + __gl_timeline_sel_append_item(ad->tlinfo, item->uuid); + item->check_state = true; + } + in_list = true; + sel_count++; + break; + } + } + if (!in_list) { + if (item->check_state) { + __gl_timeline_sel_remove_item(ad->tlinfo, item->uuid); + item->check_state = false; + } + } + } + } else { + EINA_LIST_FOREACH(ad->tlinfo->data_list, l, item) { + if (!item) { + continue; + } + if (item->check_state) { + __gl_timeline_sel_remove_item(ad->tlinfo, item->uuid); + item->check_state = false; + } + } + } + + _gl_ui_update_navi_title_text(ad->tlinfo->nf_it, sel_count, false); + + if (sel_count == ad->tlinfo->count) { + ad->selinfo.ck_state = EINA_TRUE; + } else { + ad->selinfo.ck_state = EINA_FALSE; + } + + if (ad->selinfo.selectall_ck) { + elm_check_state_set(ad->selinfo.selectall_ck, ad->selinfo.ck_state); + } + + GL_CHECK(ad->tlinfo->view); + elm_genlist_realized_items_update(ad->tlinfo->view); + + if (select_result) { + for (i = 0; i < count; i++) { + if (select_result[i]) { + free(select_result[i]); + } + } + free(select_result); + } +} + +int _gl_ext_load_time_iv_selected_list(app_control_h service, void *data) +{ + gl_dbgE("ENTRY"); + GL_CHECK_VAL(data, GL_UG_FAIL); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(service, GL_UG_FAIL); + GL_CHECK_VAL(ad->tlinfo, GL_UG_FAIL); + GL_CHECK_VAL(ad->tlinfo->sel_d, GL_UG_FAIL); + int i; + char *gitem = NULL; + gl_media_s *item = NULL; + Eina_List *l = NULL; + char **value = NULL; + + int count = eina_list_count(ad->tlinfo->sel_d->sel_list); + + if (count > 0) { + (value) = (char**)malloc(count * sizeof(char *)); + if (!value) { + return GL_UG_FAIL; + } + } + + for (i = 0; i < count; i++) { + gitem = eina_list_nth(ad->tlinfo->sel_d->sel_list, i); + EINA_LIST_FOREACH(ad->tlinfo->data_list, l, item) { + if (!item) { + continue; + } + if (!strcmp(item->uuid, gitem)) { + (value)[i] = strdup(item->file_url); + break; + } + } + } + + if (count > 0) { + app_control_add_extra_data_array(service, "Selected index", + value, count); + } + + if (value) { + for (i = 0; i < count; i++) { + free(value[i]); + } + free(value); + } + + return GL_UG_SUCCESS; +} + +bool _gl_is_timeline_edit_mode(void *data) +{ + GL_CHECK_FALSE(data); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_FALSE(ad->tlinfo); + if (ad->tlinfo->view_m == GL_TL_VIEW_EDIT) { + return true; + } + return false; +} + + diff --git a/src/2dview/gl-timeline.h b/src/2dview/gl-timeline.h new file mode 100644 index 0000000..1bea68a --- /dev/null +++ b/src/2dview/gl-timeline.h @@ -0,0 +1,39 @@ +/* +* 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 _GL_TIMELINE_H_ +#define _GL_TIMELINE_H_ + +#include +#include "gallery.h" + +int _gl_timeline_create_view(void *data, Evas_Object *parent); +int _gl_timeline_update_view(void *data); +int _gl_timeline_update_lang(void *data); +int _gl_timeline_hide_view(void *data); +int _gl_timeline_view_rotate(void *data); +int _gl_timeline_rotate_view(void *data); +void __gl_timeline_asc_mode_set(void *data); +void __gl_timeline_desc_mode_set(void *data); +bool __gl_update_timeline(void *data); +int _gl_timeline_update_grid_size(void *data); +void _gl_update_timeview_iv_select_mode_reply(void *data, char **select_result, int count); +int _gl_ext_load_time_iv_selected_list(app_control_h service, void *data); +bool _gl_is_timeline_edit_mode(void *data); + +#endif + diff --git a/src/data/gl-data-type.c b/src/data/gl-data-type.c new file mode 100644 index 0000000..6f23f3d --- /dev/null +++ b/src/data/gl-data-type.c @@ -0,0 +1,154 @@ +/* +* 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 "gl-data-type.h" +#include "gl-debug.h" + +int _gl_data_type_new_media(gl_media_s **item) +{ + GL_CHECK_VAL(item, -1); + gl_media_s *tmp_item = (gl_media_s *)calloc(1, sizeof(gl_media_s)); + GL_CHECK_VAL(tmp_item, -1); + tmp_item->gtype = GL_TYPE_MEDIA; + *item = tmp_item; + return 0; +} + +int _gl_data_type_new_album(gl_album_s **album) +{ + GL_CHECK_VAL(album, -1); + gl_album_s *tmp_item = (gl_album_s *)calloc(1, sizeof(gl_album_s)); + GL_CHECK_VAL(tmp_item, -1); + tmp_item->gtype = GL_TYPE_ALBUM; + *album = tmp_item; + return 0; +} + + +static int __gl_data_type_free_media(gl_media_s **item) +{ + GL_CHECK_VAL(item, -1); + GL_CHECK_VAL(*item, -1); + gl_media_s *tmp_item = *item; + + /* For local medias */ + if (tmp_item->media_h) { + if (tmp_item->b_create_thumb) { + media_info_cancel_thumbnail(tmp_item->media_h); + tmp_item->b_create_thumb = false; + } + media_info_destroy(tmp_item->media_h); + tmp_item->media_h = NULL; + } + + GL_FREEIF(tmp_item->uuid); + GL_FREEIF(tmp_item->thumb_url); + GL_FREEIF(tmp_item->file_url); + GL_FREEIF(tmp_item->display_name); + GL_FREEIF(tmp_item->ext); + + if (MEDIA_CONTENT_TYPE_IMAGE == tmp_item->type && + tmp_item->image_info) { + /* For local medias */ + if (tmp_item->image_info->image_h) { + image_meta_destroy(tmp_item->image_info->image_h); + tmp_item->image_info->image_h = NULL; + } + GL_FREEIF(tmp_item->image_info->burstshot_id); + GL_FREEIF(tmp_item->image_info->media_uuid); + GL_FREE(tmp_item->image_info); + } else if (MEDIA_CONTENT_TYPE_VIDEO == tmp_item->type && + tmp_item->video_info) { + /* For local medias */ + if (tmp_item->video_info->video_h) { + video_meta_destroy(tmp_item->video_info->video_h); + tmp_item->video_info->video_h = NULL; + } + + GL_FREEIF(tmp_item->video_info->media_uuid); + GL_FREEIF(tmp_item->video_info->title); + GL_FREE(tmp_item->video_info); + } + + GL_FREE(tmp_item); + *item = NULL; + return 0; +} + +int _gl_data_type_free_media_list(Eina_List **list) +{ + GL_CHECK_VAL(list, -1); + GL_CHECK_VAL(*list, -1); + gl_media_s *item = NULL; + Eina_List *tmp_list = *list; + EINA_LIST_FREE(tmp_list, item) { + if (item) + __gl_data_type_free_media(&item); + } + *list = NULL; + return 0; +} + +static int __gl_data_type_free_album(gl_album_s **album) +{ + GL_CHECK_VAL(album, -1); + GL_CHECK_VAL(*album, -1); + gl_album_s *tmp_album = *album; + + GL_FREEIF(tmp_album->uuid); + GL_FREEIF(tmp_album->display_name); + GL_FREEIF(tmp_album->path); + + if (tmp_album->folder_h) + media_folder_destroy(tmp_album->folder_h); + GL_FREE(tmp_album); + *album = NULL; + return 0; +} + +int _gl_data_type_free_album_list(Eina_List **list) +{ + GL_CHECK_VAL(list, -1); + GL_CHECK_VAL(*list, -1); + gl_album_s *item = NULL; + Eina_List *tmp_list = *list; + EINA_LIST_FREE(tmp_list, item) { + if (item) + __gl_data_type_free_album(&item); + } + *list = NULL; + return 0; +} + +int _gl_data_type_free_glitem(void **item) +{ + GL_CHECK_VAL(item, -1); + GL_CHECK_VAL(*item, -1); + int ret = -1; + + if (((gl_album_s *)*item)->gtype == GL_TYPE_ALBUM) + ret = __gl_data_type_free_album((gl_album_s **)item); + else if (((gl_media_s *)*item)->gtype == GL_TYPE_MEDIA || + ((gl_media_s *)*item)->gtype == GL_TYPE_WEB_MEDIA) + ret = __gl_data_type_free_media((gl_media_s **)item); + + if (ret < 0) + return -1; + else + return 0; +} + diff --git a/src/data/gl-data-util.c b/src/data/gl-data-util.c new file mode 100644 index 0000000..4909fb6 --- /dev/null +++ b/src/data/gl-data-util.c @@ -0,0 +1,448 @@ +/* +* 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 "gl-data-util.h" +#include "gl-controlbar.h" +#include "gallery.h" +#include "gl-debug.h" +#include "gl-util.h" +#include "gl-strings.h" +#include "gl-data-type.h" + +bool _gl_data_util_get_file_dir_name(const char *file_path, char *filename, + char *dir_name, char *dir_path) +{ + GL_CHECK_FALSE(file_path); + gint i = 0; + gint count = 0; + for (i = strlen(file_path); i >= 0; i--) { + if (file_path[i] != '\0') { + count++; + } + if (file_path[i] == '/') { + if (filename != NULL) { + memcpy(filename, &file_path[i + 1], --count); + *(filename + count) = '\0'; + gl_sdbg("File Name = %s", filename); + } + if (dir_path != NULL) { + memcpy(dir_path, &file_path[0], i); + *(dir_path + i) = '\0'; + gl_sdbg("Directory Name = %s", dir_path); + } + if (dir_name != NULL) { + count = 0; + for (--i; i >= 0; i--) { + count++; + if (file_path[i] == '/') { + memcpy(dir_name, &file_path[i + 1], --count); + *(dir_name + count) = '\0'; + gl_sdbg("Directory Name = %s", dir_name); + count = 0; + return true; + } + } + } + return true; + } + } + + return false; +} + +/* +* create a gl_item +*/ +gl_item *_gl_data_util_calloc_gitem(void) +{ + gl_item *gitem = (gl_item *)calloc(1, sizeof(gl_item)); + GL_CHECK_NULL(gitem); + return gitem; +} + +int _gl_data_util_free_gitem(gl_item *gitem) +{ + GL_CHECK_VAL(gitem, -1); + if (gitem->item) { + _gl_data_type_free_glitem((void **)&(gitem->item)); + gitem->item = NULL; + } + + GL_FREEIF(gitem->thumb_data); + GL_FREE(gitem); + return 0; +} + +gl_cluster *_gl_data_util_calloc_gcluster(void) +{ + gl_cluster *gcluster = (gl_cluster *)calloc(1, sizeof(gl_cluster)); + GL_CHECK_NULL(gcluster); + return gcluster; +} + +int _gl_data_util_free_gcluster(gl_cluster *gcluster) +{ + GL_CHECK_VAL(gcluster, -1); + if (gcluster->cover) { + _gl_data_util_free_gitem(gcluster->cover); + gcluster->cover = NULL; + } + if (gcluster->cluster) { + _gl_data_type_free_glitem((void **)&(gcluster->cluster)); + gcluster->cluster = NULL; + } + GL_FREE(gcluster->album_data); + GL_FREE(gcluster); + return 0; +} + +gl_cluster *_gl_data_util_new_gcluster_all(void *data, int count) +{ + gl_dbg(""); + GL_CHECK_NULL(data); + gl_cluster *gcluster = NULL; + gl_album_s *mcluster = NULL; + + gcluster = _gl_data_util_calloc_gcluster(); + GL_CHECK_NULL(gcluster); + + _gl_data_type_new_album(&mcluster); + if (mcluster == NULL) { + GL_FREE(gcluster); + return NULL; + } + + mcluster->uuid = strdup(GL_ALBUM_ALL_ID); + mcluster->count = count; + mcluster->type = GL_STORE_T_ALL; + mcluster->display_name = strdup(GL_STR_ID_ALL_ALBUMS); + gcluster->ad = data; + gcluster->cluster = mcluster; + return gcluster; +} + +gl_cluster *_gl_data_util_new_gcluster_fav(void *data, int count) +{ + gl_dbg(""); + GL_CHECK_NULL(data); + gl_cluster *gcluster = NULL; + gl_album_s *mcluster = NULL; + + gcluster = _gl_data_util_calloc_gcluster(); + GL_CHECK_NULL(gcluster); + + _gl_data_type_new_album(&mcluster); + if (mcluster == NULL) { + GL_FREE(gcluster); + return NULL; + } + + mcluster->uuid = strdup(GL_ALBUM_FAVOURITE_ID); + mcluster->count = count; + mcluster->type = GL_STORE_T_FAV; + mcluster->display_name = strdup(GL_STR_ID_FAVOURITE_ALBUMS); + gcluster->ad = data; + gcluster->cluster = mcluster; + + return gcluster; +} + +gl_cluster_list *_gl_data_util_calloc_cluster_list(void) +{ + gl_cluster_list *clus_list = (gl_cluster_list *)calloc(1, + sizeof(gl_cluster_list)); + GL_CHECK_NULL(clus_list); + return clus_list; +} + +/* Clear eina_list got from DB */ +int _gl_data_util_clear_gtype_item_list(Eina_List **elist) +{ + void *current = NULL; + + if (elist && *elist) { + gl_dbg("Clear gtype items list"); + EINA_LIST_FREE(*elist, current) { + if (current) { + _gl_data_type_free_glitem((void **)¤t); + current = NULL; + } + } + *elist = NULL; + } + + return 0; +} + +int _gl_data_util_clear_item_list(Eina_List **elist) +{ + GL_CHECK_VAL(elist, -1); + gl_item *current = NULL; + if (*elist) { + gl_dbg("Clear elist"); + EINA_LIST_FREE(*elist, current) { + _gl_data_util_free_gitem(current); + current = NULL; + } + *elist = NULL; + } + return 0; + +} + +int _gl_data_util_clear_cluster_list(Eina_List **elist) +{ + GL_CHECK_VAL(elist, -1); + gl_cluster *current = NULL; + if (*elist) { + EINA_LIST_FREE(*elist, current) { + _gl_data_util_free_gcluster(current); + current = NULL; + } + *elist = NULL; + } + return 0; +} + +int _gl_data_util_get_selected_cluster_id_list(void *data, + Eina_List **sel_id_list) +{ + GL_CHECK_VAL(sel_id_list, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->albuminfo.sel_elist, -1); + gl_cluster *gcluster = NULL; + char *item_id = NULL; + + /* Save ID of selected clusters */ + EINA_LIST_FREE(ad->albuminfo.sel_elist, gcluster) { + if (gcluster && gcluster->cluster && gcluster->cluster->uuid) { + item_id = strdup(gcluster->cluster->uuid); + *sel_id_list = eina_list_append(*sel_id_list, + (void *)item_id); + } + } + return 0; +} + +int _gl_data_util_get_selected_str_ids(Eina_List **sel_list, Eina_List **elist) +{ + GL_CHECK_VAL(elist, -1); + GL_CHECK_VAL(sel_list, -1); + gl_item *gitem = NULL; + char *str_id = NULL; + + /* Save ID of selected items */ + EINA_LIST_FREE(*sel_list, gitem) { + if (gitem && gitem->item && gitem->item->uuid) { + str_id = strdup(gitem->item->uuid); + *elist = eina_list_append(*elist, (void *)str_id); + } + } + *sel_list = NULL; + return 0; +} + +int _gl_data_util_filter_selected_str_ids(Eina_List **sel_list, Eina_List **elist) +{ + GL_CHECK_VAL(elist, -1); + GL_CHECK_VAL(sel_list, -1); + gl_item *gitem = NULL; + Eina_List *tmp; + char *str_id = NULL; + + /* Save ID of selected items */ + EINA_LIST_FOREACH(*sel_list, tmp, gitem) { + if (gitem && gitem->item && gitem->item->uuid) { + str_id = strdup(gitem->item->uuid); + *elist = eina_list_append(*elist, (void *)str_id); + } + } + return 0; +} + +/* Check ID is in the list or not */ +bool _gl_data_util_check_selected_str_id(Eina_List **sel_id_list, const char *id) +{ + GL_CHECK_FALSE(id); + GL_CHECK_FALSE(sel_id_list); + Eina_List *tmp_elist = NULL; + void *p_id = NULL; + + if (eina_list_count(*sel_id_list) == 0) { + gl_dbgE("sel_id_list is empty!"); + return false; + } + + EINA_LIST_FOREACH(*sel_id_list, tmp_elist, p_id) { + if (p_id == NULL) { + gl_dbgE("Invalid p_id!"); + continue; + } + /* Get next one if they wasn't equal */ + if (g_strcmp0(id, (char *)p_id)) { + p_id = NULL; + continue; + } + gl_sdbg("Found: %s", id); + *sel_id_list = eina_list_remove(*sel_id_list, p_id); + GL_FREE(p_id); + return true; + } + return false; +} + +/* Free list of selected IDs */ +int _gl_data_util_free_selected_str_list(Eina_List **sel_id_list) +{ + GL_CHECK_VAL(sel_id_list, -1); + if (*sel_id_list == NULL) { + gl_dbg("sel_id_list is empty!"); + return -1; + } + + void *p_id = NULL; + EINA_LIST_FREE(*sel_id_list, p_id) { + if (p_id == NULL) { + gl_dbgE("Invalid p_id!"); + continue; + } + GL_FREE(p_id); + } + *sel_id_list = NULL; + return 0; +} + +/* Check in selected list of web album id */ +bool _gl_data_util_check_selected_int_id(Eina_List **sel_id_list, int id) +{ + GL_CHECK_FALSE(sel_id_list); + Eina_List *tmp_elist = NULL; + void *p_id = NULL; + + if (eina_list_count(*sel_id_list) == 0) { + gl_dbgE("sel_id_list is empty!"); + return false; + } + + EINA_LIST_FOREACH(*sel_id_list, tmp_elist, p_id) { + if (p_id == NULL) { + gl_dbgE("Invalid p_id!"); + continue; + } + + if (id != (int)p_id) { + p_id = NULL; + continue; + } + + *sel_id_list = eina_list_remove(*sel_id_list, p_id); + return true; + } + return false; +} + +int _gl_data_util_check_album_selected_files(gl_cluster *album, + int *img_cnt, int *sel_cnt, + int *web_cnt) +{ + GL_CHECK_VAL(album, -1); + GL_CHECK_VAL(album->cluster, -1); + GL_CHECK_VAL(album->cluster->uuid, -1); + int _sel_cnt = 0; + int _img_cnt = 0; + int _web_cnt = 0; + int err = -1; + Eina_List *itemlist = NULL; + gl_filter_s filter; + + memset(&filter, 0x00, sizeof(gl_filter_s)); + _gl_data_util_get_cond(filter.cond); + filter.sort_type = MEDIA_CONTENT_ORDER_DESC; + filter.collate_type = MEDIA_CONTENT_COLLATE_NOCASE; + g_strlcpy(filter.sort_keyword, GL_CONDITION_ORDER, KEYWORD_LENGTH); + filter.offset = GL_GET_ALL_RECORDS; + filter.count = GL_GET_ALL_RECORDS; + filter.with_meta = false; + + if (album->cluster->type == GL_STORE_T_ALL) { + gl_dbg("All albums"); + err = _gl_local_data_get_all_albums_media_list(&filter, + &itemlist); + } else if (album->cluster->type == GL_STORE_T_PHONE || + album->cluster->type == GL_STORE_T_MMC) { + gl_dbg("Local album"); + err = _gl_local_data_get_album_media_list(&filter, + album->cluster->uuid, + &itemlist); + } else { + gl_dbgE("Wrong cluster type!"); + return -1; + } + + if ((err == 0) && (itemlist != NULL)) { + gl_media_s *item = NULL; + EINA_LIST_FREE(itemlist, item) { + if (item == NULL || item->uuid == NULL) { + gl_dbgE("Invalid item!"); + continue; + } + + _sel_cnt++; + if (album->cluster->type == GL_STORE_T_PHONE || + album->cluster->type == GL_STORE_T_ALL) { + if (item->type == MEDIA_CONTENT_TYPE_IMAGE) + _img_cnt++; + } else { + /* image for web */ + _web_cnt++; + } + item = NULL; + } + } + gl_dbg("Selected items count: %d, image count: %d, web count: %d", + _sel_cnt, _img_cnt, _web_cnt); + if (sel_cnt) + *sel_cnt = _sel_cnt; + if (img_cnt) + *img_cnt = _img_cnt; + if (web_cnt) + *web_cnt = _web_cnt; + return 0; +} + +/* Set viewby_m as -1 or GL_VIEW_BY_NUM to get cond view default viewby mode + * @cond is allocated by caller, maybe it's an array + */ +int _gl_data_util_get_cond(char *cond) +{ + GL_CHECK_VAL(cond, -1); + g_strlcpy(cond, GL_CONDITION_IMAGE_VIDEO, CONDITION_LENGTH); + return 0; +} + +int _gl_data_util_get_fav_cond(char *cond) +{ + GL_CHECK_VAL(cond, -1); + g_strlcpy(cond, "((MEDIA_TYPE=0 OR MEDIA_TYPE=1) AND (MEDIA_FAVOURITE>0)" + " AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 " + "OR MEDIA_STORAGE_TYPE=101 OR MEDIA_STORAGE_TYPE=121))", CONDITION_LENGTH); + return 0; +} + diff --git a/src/data/gl-data.c b/src/data/gl-data.c new file mode 100644 index 0000000..4ef19ed --- /dev/null +++ b/src/data/gl-data.c @@ -0,0 +1,2004 @@ +/* +* 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 "gl-data.h" +#include "gl-controlbar.h" +#include "gl-albums.h" +#include "gallery.h" +#include "gl-debug.h" +#include "gl-util.h" +#include "gl-strings.h" +#include "gl-icons.h" +#include "gl-exif.h" +#include "gl-db-update.h" +#include "gl-file-util.h" + +static int __gl_data_append_gitems(void *data, Eina_List *elist, int store_type, + Eina_List **p_elist) +{ + GL_CHECK_VAL(p_elist, -1); + GL_CHECK_VAL(elist, -1); + GL_CHECK_VAL(data, -1); + gl_media_s *item = NULL; + gl_item *gitem = NULL; + + EINA_LIST_FREE(elist, item) { + if (item == NULL || item->uuid == NULL) { + gl_dbgE("Invalid item!"); + continue; + } + + gitem = _gl_data_util_calloc_gitem(); + if (gitem == NULL) { + gl_dbgE("calloc gitem failed!"); + _gl_data_type_free_glitem((void **)&item); + continue; + } + + gitem->ad = data; + gitem->item = item; + gitem->store_type = store_type; + *p_elist = eina_list_append(*p_elist, gitem); + item = NULL; + gitem = NULL; + } + return 0; +} + +int _gl_get_fav_image_count(int *count) { + gl_filter_s filter; + memset(&filter, 0x00, sizeof(gl_filter_s)); + _gl_data_util_get_fav_cond(filter.cond); + filter.sort_type = MEDIA_CONTENT_ORDER_DESC; + g_strlcpy(filter.sort_keyword, GL_CONDITION_ORDER, KEYWORD_LENGTH); + filter.collate_type = MEDIA_CONTENT_COLLATE_NOCASE; + filter.offset = GL_GET_ALL_RECORDS; + filter.count = GL_GET_ALL_RECORDS; + filter.with_meta = false; + + int err = _gl_local_data_get_all_media_count(&filter, count); + if (err < 0) { + gl_dbg("Failed to get item count[err: %d]!", err); + return -1; + } + + return err; +} + +static int __gl_data_get_cluster_list(void *data, bool b_update) +{ + GL_PROFILE_IN; + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + int length = 0; + int all_item_cnt = 0; + int phone_cnt = 0; + Eina_List *item_list = NULL; + gl_album_s *f_data = NULL; + gl_cluster *default_album = NULL; + int err = -1; + int edit_album_cnt = 0; + gl_filter_s filter; + gl_album_s *new_mc = NULL; + Eina_List *sel_id_list = NULL; + bool b_selected = false; + char new_mc_id[GL_MTYPE_ITEN_ID_LEN_MAX] = { 0, }; + char sel_id[GL_MTYPE_ITEN_ID_LEN_MAX] = { 0, }; + gl_dbg(""); + + memset(&filter, 0x00, sizeof(gl_filter_s)); + + if (b_update) { + gl_dbg("Update mode."); + gl_cluster *album_item = ad->albuminfo.selected; + if (album_item && album_item->cluster && + album_item->cluster->uuid) { + g_strlcpy(sel_id, album_item->cluster->uuid, + GL_MTYPE_ITEN_ID_LEN_MAX); + gl_sdbg("Save selected album ID: %s.", sel_id); + } + ad->albuminfo.selected = NULL; + /* Get selected cluster IDs list */ + _gl_data_util_get_selected_cluster_id_list(ad, &sel_id_list); + /* Free old list */ + _gl_data_finalize_albums_selected_list(ad); + /* Clear cluster list */ + _gl_data_clear_cluster_list(ad, false); + } + + + //ad->new_album_name is the cluster name of newly created album + //in moving medias to new album case. + if (strlen(ad->albuminfo.new_name) && !ad->albuminfo.b_new_album) { + memset(ad->albuminfo.new_name, 0x00, GL_ALBUM_NAME_LEN_MAX); + //get gl_media_s from DB via folder full path(URL). + err = _gl_local_data_get_album_by_path(ad->albuminfo.dest_folder, + &new_mc); + if (err != 0) { + gl_dbgE("Faild to get album[%d]!", err); + } else if (new_mc->count == 0) { + //media records of this cluster havn't been inserted to DB. + //save the cluster ID. + //update cluster item count while refresh albums view in _gl_albums_get_label(). + gl_sdbg("Get newly created gl_media_s, url: %s.", + ad->albuminfo.dest_folder); + g_strlcpy(new_mc_id, new_mc->uuid, + GL_MTYPE_ITEN_ID_LEN_MAX); + _gl_data_type_free_glitem((void **)&new_mc); + } + } + + //get real albums + memset(filter.cond, 0x00, CONDITION_LENGTH); + /* Get all contents(including local and cloud) for albums list */ + g_strlcpy(filter.cond, GL_CONDITION_IMAGE_VIDEO, CONDITION_LENGTH); + filter.sort_type = MEDIA_CONTENT_ORDER_ASC; + g_strlcpy(filter.sort_keyword, FOLDER_NAME, KEYWORD_LENGTH); + filter.collate_type = MEDIA_CONTENT_COLLATE_NOCASE; + filter.offset = GL_GET_ALL_RECORDS; + filter.count = GL_GET_ALL_RECORDS; + filter.with_meta = false; + + gl_dbg("Get_album_list:start"); + err = _gl_local_data_get_album_list(&filter, &item_list); + gl_dbg("Get_album_list:end, %d", err); + if (err != 0) { + gl_dbg("No record!"); + ad->albuminfo.elist->clist = NULL; + if (item_list) + _gl_data_util_clear_gtype_item_list(&item_list); + /* Continue to add AllShare album */ + } + + gl_cluster *gcluster = NULL; + EINA_LIST_FREE(item_list, f_data) { + if (f_data == NULL || f_data->uuid == NULL) { + gl_dbgE("Invalid gl_media_s!"); + continue; + } + gl_sdbg("folder id: %s.", f_data->uuid); + + /** + * There are Phone and web filters in libmedia-info, + * but the are seperated, if we want to get phone and web photos + * only we can use is WMINFO_CLUSTER_TYPE_ALL, + * and add condition checking to skip MMC albums. + * + * To skip MMC albums if MMC already unmounted, + * in case of delay updating in DB. + */ + if ((ad->maininfo.mmc_state == GL_MMC_STATE_REMOVED_MOVING || + ad->maininfo.mmc_state == GL_MMC_STATE_REMOVED) && + f_data->type == GL_STORE_T_MMC) { + gl_dbgW("MMC was unmounted, skip MMC album!"); + _gl_data_type_free_glitem((void **)&f_data); + continue; + } + + if (f_data->type == GL_STORE_T_PHONE || + f_data->type == GL_STORE_T_MMC) { + if (f_data->count == 0) { + if (!g_strcmp0(f_data->uuid, new_mc_id)) { + /* append the newly created cluster to list */ + gl_dbg("empty local album, but it's newly created..."); + } else { + /* Skip empty album */ + gl_dbg("empty local album, skipping it..."); + _gl_data_type_free_glitem((void **)&f_data); + continue; + } + } + all_item_cnt += f_data->count; + if (f_data->type == GL_STORE_T_PHONE || + f_data->type == GL_STORE_T_MMC) + phone_cnt++; + } + + gcluster = NULL; + gcluster = _gl_data_util_calloc_gcluster(); + if (gcluster == NULL) { + gl_dbgE("_gl_data_util_calloc_gcluster failed!"); + _gl_data_type_free_glitem((void **)&f_data); + continue; + } + + gcluster->ad = ad; + gcluster->cluster = f_data; + + length += f_data->count; + + if (_gl_data_is_camera_album(f_data)) { + /** + * Default album: Camera + * Now Camera Shot is located in Phone/MMC. + * If user can determine the location of default album, + * here we should get the path and check it's in Phone or MMC. + */ + if (default_album) { + /* album 'Camera' is in phone, set it before MMC album 'Camera' */ + if (_gl_data_check_root_type(f_data->path, GL_ROOT_PATH_PHONE)) { + ad->albuminfo.elist->clist = eina_list_prepend(ad->albuminfo.elist->clist, + gcluster); + } else { + ad->albuminfo.elist->clist = eina_list_append_relative(ad->albuminfo.elist->clist, + gcluster, + default_album); + default_album = gcluster; + } + } else { + default_album = gcluster; + ad->albuminfo.elist->clist = eina_list_prepend(ad->albuminfo.elist->clist, + gcluster); + } + } else if (_gl_data_is_default_album(GL_STR_ALBUM_DOWNLOADS, f_data) || _gl_data_is_screenshot_album(GL_STR_ALBUM_SCREENSHOTS, f_data)) { + if (default_album) + ad->albuminfo.elist->clist = eina_list_append_relative(ad->albuminfo.elist->clist, + gcluster, + default_album); + else + ad->albuminfo.elist->clist = eina_list_prepend(ad->albuminfo.elist->clist, + gcluster); + } else { + ad->albuminfo.elist->clist = eina_list_append(ad->albuminfo.elist->clist, + gcluster); + } + /* Default album 'Camera shots' showed in edit view */ + edit_album_cnt++; + + if (sel_id_list) { + b_selected = _gl_data_util_check_selected_str_id(&sel_id_list, + f_data->uuid); + if (b_selected) { + b_selected = false; + /* Set checkbox state */ + gcluster->checked = true; + /* Append gcluster to selected list */ + _gl_data_albums_selected_list_append(ad, gcluster); + } + } + if (strlen(sel_id) > 0 && !g_strcmp0(sel_id, f_data->uuid)) { + gl_dbgW("Found selected_album."); + ad->albuminfo.selected = gcluster; + } + } + + /* Clear list of selected ID */ + if (sel_id_list) { + b_selected = _gl_data_util_check_selected_str_id(&sel_id_list, + GL_ALBUM_ALL_ID); + _gl_data_util_free_selected_str_list(&sel_id_list); + } + + ad->albuminfo.elist->phone_cnt = phone_cnt; + ad->albuminfo.elist->edit_cnt = edit_album_cnt; +#if 0 + /** + * add "all" album, only inclduing local albums temporarily, + * web album would be contained in the future . + */ + if (all_item_cnt) { + _gl_db_update_set_count(ad, all_item_cnt); + /* Create "All albums" album if any local file exists */ + gcluster = _gl_data_util_new_gcluster_all(ad, all_item_cnt); + if (gcluster == NULL) { + gl_dbgE("_gl_data_util_new_gcluster_all failed!"); + _gl_data_clear_cluster_list(ad, false); + return -1; + } + if (b_selected) { + b_selected = false; + /* Set checkbox state */ + gcluster->checked = true; + /* Append gcluster to selected list */ + _gl_data_albums_selected_list_append(ad, gcluster); + } + + if (default_album) + ad->albuminfo.elist->clist = eina_list_append_relative(ad->albuminfo.elist->clist, + gcluster, + default_album); + else + ad->albuminfo.elist->clist = eina_list_prepend(ad->albuminfo.elist->clist, + gcluster); + default_album = gcluster; + + /* Save all count */ + ad->maininfo.all_medias_cnt = all_item_cnt; + } +#endif + + /* add "favourite" album */ + int fav_count = 0; + err = _gl_get_fav_image_count(&fav_count); + gl_dbg("fav image count is : %d", fav_count); + + if (fav_count) { + /* Create "favourite albums" album if any favourite file exists */ + gcluster = _gl_data_util_new_gcluster_fav(ad, fav_count); + if (gcluster == NULL) { + gl_dbgE("_gl_data_util_new_gcluster_all failed!"); + _gl_data_clear_cluster_list(ad, false); + return -1; + } + if (b_selected) { + b_selected = false; + /* Set checkbox state */ + gcluster->checked = true; + /* Append gcluster to selected list */ + _gl_data_albums_selected_list_append(ad, gcluster); + } + + if (default_album) { + ad->albuminfo.elist->clist = eina_list_append_relative( + ad->albuminfo.elist->clist, gcluster, default_album); + } else { + ad->albuminfo.elist->clist = eina_list_prepend( + ad->albuminfo.elist->clist, gcluster); + } + default_album = gcluster; + } + + if (all_item_cnt) { + _gl_db_update_set_count(ad, all_item_cnt); + /* Save all count */ + ad->maininfo.all_medias_cnt = all_item_cnt; + } + + gl_dbg("Cluster Done."); + GL_PROFILE_OUT; + return length; +} + +/* get a new gitem by mitem id*/ +gl_item *_gl_data_new_gitem(void *data, const char *item_id) +{ + GL_CHECK_NULL(data); + + gl_item *gitem = _gl_data_util_calloc_gitem(); + GL_CHECK_NULL(gitem); + + _gl_local_data_get_media_by_id((char *)item_id, &(gitem->item)); + if (gitem->item == NULL) { + _gl_data_util_free_gitem(gitem); + return NULL; + } + return gitem; +} + +gl_item *_gl_data_new_item_mitem(gl_media_s *mitem) +{ + gl_item *gitem = _gl_data_util_calloc_gitem(); + GL_CHECK_NULL(gitem); + gitem->item = mitem; + + return gitem; +} + +/* +* Check it's default album under root path +*/ +bool _gl_data_is_default_album(const char *match_folder, gl_album_s *album) +{ + GL_CHECK_FALSE(album); + GL_CHECK_FALSE(album->display_name); + GL_CHECK_FALSE(album->uuid); + GL_CHECK_FALSE(match_folder); + + /* Name is 'Camera' folder locates in Phone */ + if (!g_strcmp0(album->display_name, match_folder) && + album->type == GL_STORE_T_PHONE) { + char parent_path[GL_DIR_PATH_LEN_MAX] = { 0, }; + + gl_sdbg("Full path: %s", album->path); + + _gl_data_util_get_file_dir_name(album->path, NULL, NULL, + parent_path); + gl_sdbg("Parent path: %s.", parent_path); + + /* And parent folder is Phone root path, it's default folder */ + return (!g_strcmp0(parent_path, GL_ROOT_PATH_PHONE)); + } + + return false; +} + +/* +* Check it's screenshot album under Image path +*/ +bool _gl_data_is_screenshot_album(const char *match_folder, gl_album_s *album) +{ + GL_CHECK_FALSE(album); + GL_CHECK_FALSE(album->display_name); + GL_CHECK_FALSE(album->uuid); + GL_CHECK_FALSE(match_folder); + + if (!g_strcmp0(album->display_name, match_folder) && + album->type == GL_STORE_T_PHONE) { + char parent_path[GL_DIR_PATH_LEN_MAX] = { 0, }; + + _gl_data_util_get_file_dir_name(album->path, NULL, NULL, + parent_path); + /* And parent folder is Phone Image path, it's default folder */ + return (!g_strcmp0(parent_path, GL_DEFAULT_PATH_PICTURES)); + } + + return false; +} + +/* +* Check it's default album camera +*/ +bool _gl_data_is_camera_album(gl_album_s *album) +{ + GL_CHECK_FALSE(album); + GL_CHECK_FALSE(album->display_name); + +#define GL_DCIM "DCIM" + /* Name is 'Camera' folder locates in Phone */ + if (!g_strcmp0(album->display_name, GL_STR_ALBUM_CAMERA)) { + char *parent_path = (char *)calloc(1, GL_DIR_PATH_LEN_MAX); + GL_CHECK_FALSE(parent_path); + + const char *root = NULL; + if (album->type == GL_STORE_T_PHONE) + root = GL_ROOT_PATH_PHONE; + else + root = GL_ROOT_PATH_MMC; + + gl_sdbg("Full path: %s", album->path); + _gl_data_util_get_file_dir_name(album->path, NULL, NULL, + parent_path); + gl_sdbg("Parent path: %s.", parent_path); + + char *dcim_path = g_strdup_printf("%s/%s", root, GL_DCIM); + if (dcim_path == NULL) { + GL_GFREE(parent_path); + return false; + } + /* And parent folder is Phone root path, it's default folder */ + bool ret = false; + ret = !g_strcmp0(dcim_path, parent_path); + + GL_GFREE(parent_path); + GL_GFREE(dcim_path); + return ret; + } + + return false; +} + +int _gl_data_cp_item_list(void *data, Eina_List *elist, Eina_List **p_elist) +{ + GL_CHECK_VAL(p_elist, -1); + GL_CHECK_VAL(elist, -1); + GL_CHECK_VAL(data, -1); + + Eina_List *l = NULL; + gl_item *gitem = NULL; + gl_item *ngitem = NULL; + EINA_LIST_FOREACH(elist, l, gitem) { + if (!gitem || !gitem->item) + continue; + ngitem = _gl_data_new_gitem(data, gitem->item->uuid); + if (ngitem) + *p_elist = eina_list_append(*p_elist, ngitem); + } + return 0; +} + +int _gl_data_clear_cluster_list(void *data, bool b_force) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + /* To reset current album when clear cluster list */ + _gl_albums_set_current(data, NULL); + + if (ad->albuminfo.elist) { + _gl_data_util_clear_cluster_list(&(ad->albuminfo.elist->clist)); + if (b_force) { + GL_FREE(ad->albuminfo.elist); + } + } + return 0; +} + +int _gl_data_copy_cluster_list(void *data, bool b_force, Eina_List **list) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + /* To reset current album when clear cluster list */ + _gl_albums_set_current(data, NULL); + gl_cluster *current = NULL; + int count = eina_list_count(ad->albuminfo.elist->clist); + int i; + for (i = 0; i < count; i++) { + current = eina_list_nth(ad->albuminfo.elist->clist, i); + if (current) { + (*list) = eina_list_append((*list), current); + } + } + if (ad->albuminfo.elist) { + ad->albuminfo.elist->clist = NULL; + if (b_force) { + GL_FREE(ad->albuminfo.elist); + } + } + return 0; +} + +bool _gl_data_get_cluster_list(void *data) +{ + GL_PROFILE_IN; + GL_CHECK_FALSE(data); + gl_appdata *ad = (gl_appdata *)data; + int n_entire_items = 0; + + /* Free old list */ + _gl_data_finalize_albums_selected_list(ad); + _gl_data_clear_cluster_list(ad, true); + + ad->albuminfo.elist = _gl_data_util_calloc_cluster_list(); + GL_CHECK_FALSE(ad->albuminfo.elist); + n_entire_items = __gl_data_get_cluster_list(ad, false); + if (n_entire_items <= 0) /* if error code is returned, negative value is possible */ + return false; + + gl_dbg("cluster-length:%d", n_entire_items); + GL_PROFILE_OUT; + return true; +} + +void _gl_update_album_selected_data(void *data, Eina_List **list) +{ + GL_CHECK(data); + GL_CHECK(list); + gl_appdata *ad = (gl_appdata *)data; + gl_cluster *current = NULL; + gl_cluster *sit = NULL; + Eina_List *tmp_elist = NULL; + if ((*list) && ad->albuminfo.elist && ad->albuminfo.elist->clist) { + int count = eina_list_count(ad->albuminfo.elist->clist); + int i; + for (i = 0; i < count; i++) { + current = eina_list_nth(ad->albuminfo.elist->clist, i); + if (current && current->cluster) { + EINA_LIST_FOREACH((*list), tmp_elist, sit) { + if (sit && sit->cluster) { + if (!g_strcmp0(current->cluster->uuid, sit->cluster->uuid)) { + current->elist = sit->elist; + } + } + } + } + } + _gl_data_util_clear_cluster_list(list); + + } else { + if (list) { + gl_dbg("List is not NULL"); + } + } +} + +bool _gl_data_get_cluster_list_edit_mode(void *data) +{ + GL_PROFILE_IN; + GL_CHECK_FALSE(data); + gl_appdata *ad = (gl_appdata *)data; + int n_entire_items = 0; + Eina_List *list = NULL; + + /* Free old list */ + _gl_data_copy_cluster_list(ad, true, &list); + if (!list ) { + gl_dbg("list is null"); + } else { + int count = eina_list_count(list); + gl_cluster *current = NULL; + int i; + for (i = 0; i < count; i++) { + current = eina_list_nth(list, i); + if (current) { + int count1 = eina_list_count(current->elist); + } + } + } + ad->albuminfo.elist = _gl_data_util_calloc_cluster_list(); + GL_CHECK_FALSE(ad->albuminfo.elist); + n_entire_items = __gl_data_get_cluster_list(ad, false); + if (n_entire_items <= 0) /* if error code is returned, negative value is possible */ + return false; + + _gl_update_album_selected_data(data, &list); + gl_cluster *current = NULL; + int i; + int count = eina_list_count(ad->albuminfo.elist->clist); + for (i = 0; i < count; i++) { + current = eina_list_nth(ad->albuminfo.elist->clist, i); + if (current) { + int count1 = eina_list_count(current->elist); + } + } + GL_PROFILE_OUT; + return true; +} + + +int _gl_data_update_cluster_list(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + int len = 0; + + len = __gl_data_get_cluster_list(ad, true); + gl_dbg("Cluster list length: %d.", len); + if (len <= 0) + return -1; + + return 0; +} + +int _gl_data_cluster_list_remove(void *data, gl_cluster *item) +{ + GL_CHECK_VAL(item, -1); + GL_CHECK_VAL(item->cluster, -1); + GL_CHECK_VAL(item->cluster->uuid, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_cluster *current = NULL; + Eina_List *l = NULL; + + GL_CHECK_VAL(ad->albuminfo.elist, -1); + GL_CHECK_VAL(ad->albuminfo.elist->clist, -1); + Eina_List *cluster_list = ad->albuminfo.elist->clist; + EINA_LIST_FOREACH(cluster_list, l, current) { + if (current == NULL || current->cluster == NULL || + current->cluster->uuid == NULL) { + gl_dbgE("Invalid album item!"); + continue; + } + + if (!g_strcmp0(current->cluster->uuid, item->cluster->uuid)) { + ad->albuminfo.elist->clist = eina_list_remove(ad->albuminfo.elist->clist, + current); + _gl_data_util_free_gcluster(current); + break; + } + current = NULL; + } + + return 0; +} + +int _gl_data_get_cluster_by_id(void *data, const char *cluster_id, + gl_cluster **cluster) +{ + GL_CHECK_VAL(data, -1); + GL_CHECK_VAL(cluster, -1); + GL_CHECK_VAL(cluster_id, -1); + gl_appdata *ad = (gl_appdata *)data; + int i = 0; + gl_cluster *current = NULL; + + *cluster = NULL; + + GL_CHECK_VAL(ad->albuminfo.elist, -1); + int length = eina_list_count(ad->albuminfo.elist->clist); + gl_sdbg("album length: %d, current album id: %s", length, cluster_id); + + for (i = 0; i < length; i++) { + current = eina_list_nth(ad->albuminfo.elist->clist, i); + if (current && current->cluster && current->cluster->uuid) { + gl_sdbg("cluster : %s", current->cluster->display_name); + } else { + gl_dbgE("cluster is NULL"); + break; + } + + if (!g_strcmp0(current->cluster->uuid, cluster_id)) { + *cluster = current; + gl_dbgW("Found!"); + return 0; + } + } + return -1; +} + +int _gl_data_get_cluster_by_path(void *data, const char *path, + gl_cluster **cluster) +{ + GL_CHECK_VAL(data, -1); + GL_CHECK_VAL(cluster, -1); + GL_CHECK_VAL(path, -1); + gl_appdata *ad = (gl_appdata *)data; + int i = 0; + gl_cluster *current = NULL; + + *cluster = NULL; + + GL_CHECK_VAL(ad->albuminfo.elist, -1); + int length = eina_list_count(ad->albuminfo.elist->clist); + gl_sdbg("album length: %d, path: %s", length, path); + + for (i = 0; i < length; i++) { + current = eina_list_nth(ad->albuminfo.elist->clist, i); + if (current && current->cluster && current->cluster->path) { + gl_sdbg("cluster : %s", current->cluster->display_name); + } else { + gl_dbgE("cluster is NULL"); + continue; + } + + if (!g_strcmp0(current->cluster->path, path)) { + *cluster = current; + gl_dbgW("Found!"); + return 0; + } + } + return -1; +} + +/* +* append album to selected_albums_elist +*/ +int _gl_data_albums_selected_list_append(void *data, gl_cluster *item) +{ + GL_CHECK_VAL(item, -1); + GL_CHECK_VAL(item->cluster, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + int img_cnt = 0; + int sel_cnt = 0; + int web_cnt = 0; + + if (GL_STORE_T_PHONE != item->cluster->type || + _gl_data_is_camera_album(item->cluster) || + _gl_data_is_default_album(GL_STR_ALBUM_DOWNLOADS, item->cluster)) + ++ad->selinfo.disable_hide_cnt; + _gl_data_util_check_album_selected_files(item, &img_cnt, + &sel_cnt, &web_cnt); + + ad->selinfo.images_cnt = ad->selinfo.images_cnt + img_cnt; + ad->selinfo.sel_cnt = ad->selinfo.sel_cnt + sel_cnt; + ad->albuminfo.sel_elist = eina_list_append(ad->albuminfo.sel_elist, item); + + return 0; +} + +/* Get new record from DB to check mitem exists or was already removed */ +bool _gl_data_exists_item(void *data, const char *id) +{ + GL_CHECK_NULL(data); + GL_CHECK_FALSE(id); + gl_media_s *new_item = NULL; + + _gl_local_data_get_media_by_id((char *)id, &(new_item)); + if (new_item == NULL) { + gl_dbgW("gl_media_s doesn't exist!"); + return false; + } else { + _gl_data_type_free_glitem((void **)&new_item); + new_item = NULL; + return true; + } +} + +/** +* Get medias count of album +*/ +int _gl_data_get_item_cnt(const char *cluster_id, int album_type, int *item_cnt) +{ + GL_CHECK_VAL(item_cnt, -1); + int err = -1; + gl_sdbg("cluster_id: %s", cluster_id); + + gl_filter_s filter; + memset(&filter, 0x00, sizeof(gl_filter_s)); + _gl_data_util_get_cond(filter.cond); + filter.sort_type = MEDIA_CONTENT_ORDER_DESC; + g_strlcpy(filter.sort_keyword, GL_CONDITION_ORDER, KEYWORD_LENGTH); + filter.collate_type = MEDIA_CONTENT_COLLATE_NOCASE; + filter.offset = GL_GET_ALL_RECORDS; + filter.count = GL_GET_ALL_RECORDS; + filter.with_meta = false; + + GL_CHECK_VAL(cluster_id, -1); + if (album_type == GL_STORE_T_PHONE || + album_type == GL_STORE_T_MMC) { + /*It's normal album*/ + err = _gl_local_data_get_media_count(cluster_id, &filter, + item_cnt); + } else if (album_type == GL_STORE_T_ALL) { + /* All albums */ + gl_dbg("All albums media count."); + err = _gl_local_data_get_all_media_count(&filter, item_cnt); + } else if (album_type == GL_STORE_T_FAV) { + /* Favorite albums */ + gl_dbg("favorite albums media count."); + err = _gl_get_fav_image_count(item_cnt); + } else { + gl_dbgE("Invalid cluster_id!"); + return -1; + } + + if (err < 0) { + gl_dbg("Failed to get item count[err: %d]!", err); + return -1; + } + + gl_dbg("Item count: %d.", *item_cnt); + return 0; +} + +int _gl_data_update_item_cnt(gl_cluster *album) +{ + GL_CHECK_VAL(album, -1); + GL_CHECK_VAL(album->cluster, -1); + int item_count = 0; + int err = -1; + GL_CHECK_VAL(album->cluster->uuid, -1); + err = _gl_data_get_item_cnt(album->cluster->uuid, album->cluster->type, &item_count); + if (err != 0) { + gl_dbg("_gl_data_get_item_cnt failed!"); + album->cluster->count = 0; + return -1; + } + + gl_dbg("Media count: old=%d, new=%d", album->cluster->count, + item_count); + album->cluster->count = item_count; + + return 0; +} + +int _gl_data_get_items(int start_pos, int end_pos, Eina_List **list) +{ + GL_CHECK_VAL(list, -1); + int err = -1; + gl_filter_s filter; + + memset(&filter, 0x00, sizeof(gl_filter_s)); + _gl_data_util_get_cond(filter.cond); + filter.sort_type = MEDIA_CONTENT_ORDER_DESC; + g_strlcpy(filter.sort_keyword, GL_CONDITION_ORDER, KEYWORD_LENGTH); + filter.collate_type = MEDIA_CONTENT_COLLATE_NOCASE; + if (start_pos != GL_GET_ALL_RECORDS) { + filter.offset = start_pos; + filter.count = end_pos - start_pos + 1; + } else { + filter.offset = GL_GET_ALL_RECORDS; + filter.count = GL_GET_ALL_RECORDS; + } + filter.with_meta = true; + + /* Get "All" album medias */ + gl_dbg("_gl_data_get_items--all media"); + err = _gl_local_data_get_all_albums_media_list(&filter, list); + gl_dbg("Error code: %d", err); + return err; +} + +int _gl_data_get_items_album(void *data, gl_cluster *album, int start_pos, + int end_pos, Eina_List **p_elist) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + Eina_List *itemlist = NULL; + int err = -1; + int store_type = GL_STORE_T_PHONE; + gl_filter_s filter; + + memset(&filter, 0x00, sizeof(gl_filter_s)); + _gl_data_util_get_cond(filter.cond); + filter.sort_type = MEDIA_CONTENT_ORDER_DESC; + g_strlcpy(filter.sort_keyword, GL_CONDITION_ORDER, KEYWORD_LENGTH); + filter.collate_type = MEDIA_CONTENT_COLLATE_NOCASE; + filter.offset = start_pos; + filter.count = end_pos - start_pos + 1; + filter.with_meta = true; + + + GL_CHECK_VAL(album, -1); + GL_CHECK_VAL(album->cluster, -1); + gl_dbg("folder start_pos[%d], end_pos[%d]", start_pos, end_pos); + + GL_CHECK_VAL(album->cluster->uuid, -1); + store_type = album->cluster->type; + + /* Real album */ + if (store_type == GL_STORE_T_PHONE || + store_type == GL_STORE_T_MMC) { + ad->uginfo.sort_type = filter.sort_type; + + if (start_pos == (GL_FIRST_VIEW_END_POS + 1) && + end_pos == GL_GET_UNTIL_LAST_RECORD) { + /* Keep medias_elist and medias_cnt unchanged */ + gl_dbg("Gridview append idler; Keep medias_elist unchanged."); + } + err = _gl_local_data_get_album_media_list(&filter, + album->cluster->uuid, + &itemlist); + } else if (store_type == GL_STORE_T_ALL) { + /* Get "All" album medias */ + gl_dbg("All albums"); + ad->uginfo.sort_type = filter.sort_type; + + if (start_pos == (GL_FIRST_VIEW_END_POS + 1) && + end_pos == GL_GET_UNTIL_LAST_RECORD) { + /* Keep medias_elist and medias_cnt unchanged */ + gl_dbg("Keep medias_elist unchanged"); + } + + err = _gl_local_data_get_all_albums_media_list(&filter, + &itemlist); + } else if (store_type == GL_STORE_T_FAV) { + /* Get "All" album medias */ + gl_dbg("fav albums"); + ad->uginfo.sort_type = filter.sort_type; + + if (start_pos == (GL_FIRST_VIEW_END_POS + 1) && + end_pos == GL_GET_UNTIL_LAST_RECORD) { + /* Keep medias_elist and medias_cnt unchanged */ + gl_dbg("Keep medias_elist unchanged"); + } + + gl_filter_s filter_fav; + + memset(&filter_fav, 0x00, sizeof(gl_filter_s)); + _gl_data_util_get_fav_cond(filter_fav.cond); + filter_fav.sort_type = MEDIA_CONTENT_ORDER_DESC; + g_strlcpy(filter_fav.sort_keyword, GL_CONDITION_ORDER, KEYWORD_LENGTH); + filter_fav.collate_type = MEDIA_CONTENT_COLLATE_NOCASE; + filter_fav.offset = start_pos; + filter_fav.count = end_pos - start_pos + 1; + filter_fav.with_meta = true; + + err = _gl_local_data_get_fav_albums_media_list(&filter_fav, + &itemlist); + } else { + gl_dbgE("Wrong cluster type!"); + return -1; + } + + gl_dbg("Error code: %d", err); + if ((err == 0) && (itemlist != NULL)) { + __gl_data_append_gitems(data, itemlist, store_type, p_elist); + } else if (itemlist) { + _gl_data_util_clear_gtype_item_list(&itemlist); + } + + gl_dbg("done"); + return err; +} + +int _gl_data_update_item_list(void *data, Eina_List **sel_id_list, + Eina_List **p_elist) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + Eina_List *itemlist = NULL; + int err = -1; + int view_mode = gl_get_view_mode(ad); + gl_item *gitem = NULL; + int store_type = GL_STORE_T_PHONE; + gl_filter_s filter; + + memset(&filter, 0x00, sizeof(gl_filter_s)); + _gl_data_util_get_cond(filter.cond); + filter.sort_type = MEDIA_CONTENT_ORDER_DESC; + g_strlcpy(filter.sort_keyword, GL_CONDITION_ORDER, KEYWORD_LENGTH); + filter.collate_type = MEDIA_CONTENT_COLLATE_NOCASE; + filter.offset = GL_GET_ALL_RECORDS; + filter.count = GL_GET_ALL_RECORDS; + filter.with_meta = true; + + /* In albums tab, or album select view from tag, current album is available */ + if (_gl_ctrl_get_tab_mode(ad) == GL_CTRL_TAB_ALBUMS || + view_mode == GL_VIEW_THUMBS_SELECT) { + gl_cluster *cur_album = _gl_albums_get_current(data); + GL_CHECK_VAL(cur_album, -1); + GL_CHECK_VAL(cur_album->cluster, -1); + GL_CHECK_VAL(cur_album->cluster->uuid, -1); + store_type = cur_album->cluster->type; + ad->uginfo.sort_type = filter.sort_type; + + if (store_type == GL_STORE_T_ALL) { + gl_dbg("All albums medias"); + err = _gl_local_data_get_all_albums_media_list(&filter, + &itemlist); + } else if (store_type == GL_STORE_T_FAV) { + gl_filter_s filter_fav; + + memset(&filter_fav, 0x00, sizeof(gl_filter_s)); + _gl_data_util_get_fav_cond(filter_fav.cond); + filter_fav.sort_type = MEDIA_CONTENT_ORDER_DESC; + g_strlcpy(filter_fav.sort_keyword, GL_CONDITION_ORDER, KEYWORD_LENGTH); + filter_fav.collate_type = MEDIA_CONTENT_COLLATE_NOCASE; + filter_fav.offset = GL_GET_ALL_RECORDS; + filter_fav.count = GL_GET_ALL_RECORDS; + filter_fav.with_meta = true; + err = _gl_local_data_get_fav_albums_media_list(&filter_fav, &itemlist); + } else { + gl_dbg("Local album medias"); + err = _gl_local_data_get_album_media_list(&filter, + cur_album->cluster->uuid, + &itemlist); + } + } + + gl_dbg("Error code: %d", err); + if ((err != 0) || (itemlist == NULL)) { + gl_dbgE("(err != 0) || (itemlist == NULL)"); + /* Clear list of selected ID */ + if (sel_id_list && *sel_id_list) { + eina_list_free(*sel_id_list); + *sel_id_list = NULL; + } + + if (itemlist) + _gl_data_util_clear_gtype_item_list(&itemlist); + + return err; + } + + bool b_selected = false; + gl_media_s *item = NULL; + EINA_LIST_FREE(itemlist, item) { + if (item == NULL || item->uuid == NULL) { + gl_dbgE("Invalid item!"); + continue; + } + gitem = _gl_data_util_calloc_gitem(); + if (gitem == NULL) { + gl_dbgE("_gl_data_util_calloc_gitem failed!"); + _gl_data_type_free_glitem((void **)&item); + continue; + } + gl_cluster *cur_album = _gl_albums_get_current(data); + if (cur_album == NULL) { + free(gitem); + return -1; + } + gitem->ad = ad; + gitem->item = item; + gitem->store_type = store_type; + gitem->album = cur_album; + /* Append item to medias_elist */ + *p_elist = eina_list_append(*p_elist, gitem); + + if (sel_id_list && *sel_id_list) { + b_selected = _gl_data_util_check_selected_str_id(sel_id_list, + item->uuid); + if (b_selected) { + b_selected = false; + /* Set checkbox state */ + gitem->checked = true; + /* Append gitem to selected list */ + _gl_data_selected_list_append(ad, gitem); + } + } + } + + /* Clear list of selected ID */ + if (sel_id_list && *sel_id_list) + _gl_data_util_free_selected_str_list(sel_id_list); + gl_dbg("done"); + return err; +} + +int _gl_data_get_album_cover(gl_cluster *album, gl_item **pgitem, + media_content_order_e sort_type) +{ + GL_CHECK_VAL(pgitem, -1); + GL_CHECK_VAL(album, -1); + GL_CHECK_VAL(album->cluster, -1); + GL_CHECK_VAL(album->cluster->uuid, -1); + GL_CHECK_VAL(album->ad, -1); + Eina_List *item_list = NULL; + gl_media_s *item = NULL; + gl_item *gitem = NULL; + int err = -1; + gl_filter_s filter; + + memset(&filter, 0x00, sizeof(gl_filter_s)); + _gl_data_util_get_cond(filter.cond); + filter.sort_type = sort_type; + g_strlcpy(filter.sort_keyword, GL_CONDITION_ORDER, KEYWORD_LENGTH); + filter.collate_type = MEDIA_CONTENT_COLLATE_NOCASE; + filter.offset = GL_FIRST_VIEW_START_POS; + filter.count = 1; + filter.with_meta = false; + + if (album->cluster->type == GL_STORE_T_PHONE || + album->cluster->type == GL_STORE_T_MMC) { + /* real album */ + err = _gl_local_data_get_album_cover(&filter, + album->cluster->uuid, + &item_list); + if (err != 0 || item_list == NULL) { + gl_dbgE("Get album medias failed[%d]", err); + if (item_list) + _gl_data_util_clear_gtype_item_list(&item_list); + return -1; + } + + EINA_LIST_FREE(item_list, item) { + if (item == NULL) { + gl_dbgE("Invalid gl_media_s!"); + return -1; + } + gitem = _gl_data_util_calloc_gitem(); + if (gitem == NULL) { + gl_dbgE("_gl_data_util_calloc_gitem failed!"); + _gl_data_type_free_glitem((void **)&item); + return -1; + } + gitem->item = item; + gitem->album = album; + *pgitem = gitem; + break; + } + } else if (album->cluster->type == GL_STORE_T_ALL) { + /* add "All" album */ + gl_appdata *ad = (gl_appdata *)album->ad; + gl_dbg("db_get_item_list--all media"); + /* use new api to get all local files, mmc status checking would be done in new apis */ + err = _gl_local_data_get_all_albums_cover(&filter, &item_list); + if (err != 0 || item_list == NULL) { + gl_dbgE("Failed to get all medias[%d]!", err); + if (item_list) + _gl_data_util_clear_gtype_item_list(&item_list); + + return -1; + } + + EINA_LIST_FREE(item_list, item) { + if (item == NULL) { + gl_dbgE("Invalid gl_media_s!"); + return -1; + } + gitem = _gl_data_util_calloc_gitem(); + if (gitem == NULL) { + gl_dbgE("_gl_data_util_calloc_gitem failed!"); + _gl_data_type_free_glitem((void **)&item); + return -1; + } + gitem->item = item; + gitem->album = album; + gitem->store_type = album->cluster->type; + *pgitem = gitem; + /* Get latest item for saving lastest modified time */ + ad->maininfo.last_mtime = item->mtime; + break; + } + } else if (album->cluster->type == GL_STORE_T_FAV) { + /* add "fav" album */ + gl_filter_s filter_fav; + + memset(&filter_fav, 0x00, sizeof(gl_filter_s)); + _gl_data_util_get_fav_cond(filter_fav.cond); + filter_fav.sort_type = sort_type; + g_strlcpy(filter_fav.sort_keyword, GL_CONDITION_ORDER, KEYWORD_LENGTH); + filter_fav.collate_type = MEDIA_CONTENT_COLLATE_NOCASE; + filter_fav.offset = GL_GET_ALL_RECORDS; + filter_fav.count = GL_GET_ALL_RECORDS; + filter_fav.with_meta = false; + gl_dbg("db_get_item_list--fav media"); + /* use new api to get all local files, mmc status checking would be done in new apis */ + err = _gl_local_data_get_fav_albums_cover(&filter_fav, &item_list); + if (err != 0 || item_list == NULL) { + gl_dbgE("Failed to get fav medias[%d]!", err); + if (item_list) + _gl_data_util_clear_gtype_item_list(&item_list); + return -1; + } + + EINA_LIST_FREE(item_list, item) { + if (item == NULL) { + gl_dbgE("Invalid gl_media_s!"); + return -1; + } + gitem = _gl_data_util_calloc_gitem(); + if (gitem == NULL) { + gl_dbgE("_gl_data_util_calloc_gitem failed!"); + _gl_data_type_free_glitem((void **)&item); + return -1; + } + gitem->item = item; + gitem->album = album; + gitem->store_type = album->cluster->type; + *pgitem = gitem; + break; + } + } else { + gl_dbgE("Wrong cluster type!"); + return -1; + } + + if (*pgitem) + gl_sdbg("Album(%s) cover[%p]", album->cluster->display_name, + *pgitem); + return 0; +} + +bool _gl_data_is_item_cnt_zero(void *data, media_content_type_e type, + Eina_List *elist) +{ + GL_CHECK_VAL(data, false); + gl_item *gitem = NULL; + Eina_List *l = NULL; + + EINA_LIST_FOREACH(elist, l, gitem) { + if (gitem && gitem->item) { + if (gitem->item->type == type) { + return false; + } + } + } + + gl_dbg(" item_cnt = 0 "); + return true; +} + +int _gl_data_get_first_item(media_content_type_e type, Eina_List *elist, + gl_item **p_gitem) +{ + GL_CHECK_VAL(p_gitem, -1); + GL_CHECK_VAL(elist, -1); + + /* Get first item for 'All' */ + if (type == MEDIA_CONTENT_TYPE_OTHERS) { + *p_gitem = eina_list_nth(elist, 0); + return 0; + } + + /* Get first item for "Images" or "Videos" */ + Eina_List *l = NULL; + gl_item *gitem = NULL; + EINA_LIST_FOREACH(elist, l, gitem) { + if (gitem && gitem->item && gitem->item->type == type) { + *p_gitem = gitem; + return 0; + } + } + + gl_dbgW("Not found!"); + return -1; +} + +int _gl_data_get_orig_item_by_index(void *data, gl_item **gitem, int idx) +{ + return 0; +} + +/* Remove file from DB and file system */ +int _gl_data_delete_file(char *path, char *uuid, bool is_hide) +{ + GL_CHECK_VAL(uuid, -1); + GL_CHECK_VAL(path, -1); + int ret = -1; + + if (!gl_file_unlink(path)) { + char *error_msg = calloc(1, GL_ARRAY_LEN_MAX); + GL_CHECK_VAL(error_msg, -1); + strerror_r(errno, error_msg, GL_ARRAY_LEN_MAX); + gl_dbgE("file_unlink failed[%s]!", error_msg); + GL_FREE(error_msg); + //return -1; + } + + /* Delete record from DB then delete media from file system */ + ret = media_info_delete_from_db(uuid); + + if (ret != 0) { + gl_dbgE("media_info_delete_from_db failed[%d]!", ret); + return -1; + } + + return 0; +} + +gl_item *_gl_data_selected_list_get_nth(void *data, int idx) +{ + GL_CHECK_NULL(data); + gl_appdata *ad = (gl_appdata *)data; + + return eina_list_nth(ad->selinfo.elist, idx); +} + +int _gl_data_free_burstshot_items(gl_item *gitem, Eina_List *elist) +{ + GL_CHECK_VAL(elist, -1); + GL_CHECK_VAL(gitem, -1); + GL_CHECK_VAL(gitem->item, -1); + + if (gitem->item->type != MEDIA_CONTENT_TYPE_IMAGE || + gitem->item->image_info == NULL || + gitem->item->image_info->burstshot_id == NULL) + return -1; + + int i = gitem->sequence; + int cnt = eina_list_count(elist); + gl_item *cur_gitem = NULL; + char *burstshot_id = gitem->item->image_info->burstshot_id; + for (; i < cnt; i++) { + cur_gitem = eina_list_nth(elist, i); + if (cur_gitem == NULL || cur_gitem->item == NULL || + cur_gitem->item->uuid == NULL) { + gl_dbgE("Invalid gitem. continue!"); + continue; + } else if (cur_gitem->item->type != MEDIA_CONTENT_TYPE_IMAGE || + cur_gitem->item->image_info == NULL || + cur_gitem->item->image_info->burstshot_id == NULL) { + /* No more same burstshot items */ + break; + } + + if (!g_strcmp0(burstshot_id, cur_gitem->item->image_info->burstshot_id)) { + _gl_data_util_free_gitem(cur_gitem); + } else { + /* No more same burstshot items */ + break; + } + cur_gitem = NULL; + } + return 0; +} + +int _gl_data_selected_add_burstshot(void *data, gl_item *gitem, Eina_List *elist) +{ + GL_CHECK_VAL(elist, -1); + GL_CHECK_VAL(gitem, -1); + GL_CHECK_VAL(gitem->item, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + if (gitem->item->type != MEDIA_CONTENT_TYPE_IMAGE || + gitem->item->image_info == NULL || + gitem->item->image_info->burstshot_id == NULL) + return -1; + + int i = gitem->sequence; + int cnt = eina_list_count(elist); + gl_item *cur_gitem = NULL; + char *burstshot_id = gitem->item->image_info->burstshot_id; + for (; i < cnt; i++) { + cur_gitem = eina_list_nth(elist, i); + if (cur_gitem == NULL || cur_gitem->item == NULL || + cur_gitem->item->uuid == NULL) { + gl_dbgE("Invalid gitem. continue!"); + continue; + } else if (cur_gitem->item->type != MEDIA_CONTENT_TYPE_IMAGE || + cur_gitem->item->image_info == NULL || + cur_gitem->item->image_info->burstshot_id == NULL) { + /* No more same burstshot items */ + break; + } + + if (!g_strcmp0(burstshot_id, cur_gitem->item->image_info->burstshot_id)) { + cur_gitem->checked = gitem->checked; + ad->selinfo.images_cnt++; +#ifdef _USE_ROTATE_BG + if (cur_gitem->item->ext && + !strcasecmp(cur_gitem->item->ext, GL_JPEG_FILE_EXT)) + if (_gl_exif_check_img_type(cur_gitem->item->file_url)) + ad->selinfo.jpeg_cnt++; +#endif + if (gitem->item->storage_type != GL_STORE_T_PHONE) + ++ad->selinfo.disable_hide_cnt; + ad->selinfo.elist = eina_list_append(ad->selinfo.elist, + cur_gitem); + } else { + /* No more same burstshot items */ + break; + } + cur_gitem = NULL; + } + return 0; +} + +bool _gl_data_get_burstshot_status(void *data, gl_item *gitem) +{ + GL_CHECK_FALSE(gitem); + if (gitem->item == NULL || + gitem->item->type != MEDIA_CONTENT_TYPE_IMAGE || + gitem->item->image_info == NULL || + gitem->item->image_info->burstshot_id == NULL) + return gitem->checked; + + GL_CHECK_FALSE(data); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_FALSE(ad->selinfo.elist); + Eina_List *sel_list = ad->selinfo.elist; + + Eina_List *l = NULL; + gl_item *current = NULL; + EINA_LIST_FOREACH(sel_list, l, current) { + if (current == NULL || current->item == NULL || + current->item->type != MEDIA_CONTENT_TYPE_IMAGE || + current->item->image_info == NULL || + current->item->image_info->burstshot_id == NULL) { + gl_dbgE("Invalid gitem!"); + continue; + } + if (!g_strcmp0(gitem->item->image_info->burstshot_id, + current->item->image_info->burstshot_id)) + return true; + } + return false; +} + +/* b_selall, append item for select-all case */ +int _gl_data_selected_list_append(void *data, gl_item *gitem) +{ + GL_CHECK_VAL(gitem, -1); + GL_CHECK_VAL(gitem->item, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + /* Update selected images count */ + if (gitem->item->type == MEDIA_CONTENT_TYPE_IMAGE) { + ad->selinfo.images_cnt++; +#ifdef _USE_ROTATE_BG + gl_dbg("Ext: %s", gitem->item->ext); + if (gitem->item->ext && + !strcasecmp(gitem->item->ext, GL_JPEG_FILE_EXT)) { + if (_gl_exif_check_img_type(gitem->item->file_url)) + ad->selinfo.jpeg_cnt++; + } +#endif + } + if (gitem->item->storage_type != GL_STORE_T_PHONE) + ++ad->selinfo.disable_hide_cnt; + + Eina_List *sel_list = ad->selinfo.elist; + sel_list = eina_list_append(sel_list, gitem); + ad->selinfo.elist = sel_list; + return 0; +} + +int _gl_data_selected_fav_list_remove(void *data, gl_item *gitem) +{ + GL_CHECK_VAL(gitem, -1); + GL_CHECK_VAL(gitem->item, -1); + GL_CHECK_VAL(gitem->item->uuid, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_item *current = NULL; + Eina_List *l = NULL; + + EINA_LIST_FOREACH(ad->selinfo.fav_elist, l, current) { + if (current == NULL || current->item == NULL || + current->item->uuid == NULL) { + gl_dbgE("Invalid gitem!"); + continue; + } + if (!g_strcmp0(current->item->uuid, gitem->item->uuid)) { + ad->selinfo.fav_elist = eina_list_remove(ad->selinfo.fav_elist, + current); + } + current = NULL; + } + return 0; +} + +/* b_selall, remove item for select-all case */ +int _gl_data_selected_list_remove(void *data, gl_item *gitem) +{ + GL_CHECK_VAL(gitem, -1); + GL_CHECK_VAL(gitem->item, -1); + GL_CHECK_VAL(gitem->item->uuid, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_item *current = NULL; + Eina_List *l = NULL; + bool b_removed = false; + char *burstshot_id = NULL; + if (gitem->item->type == MEDIA_CONTENT_TYPE_IMAGE && + gitem->item->image_info) + burstshot_id = gitem->item->image_info->burstshot_id; + + EINA_LIST_FOREACH(ad->selinfo.elist, l, current) { + if (current == NULL || current->item == NULL || + current->item->uuid == NULL) { + gl_dbgE("Invalid gitem!"); + continue; + } + if (!g_strcmp0(current->item->uuid, gitem->item->uuid) || + (burstshot_id && + current->item->type == MEDIA_CONTENT_TYPE_IMAGE && + current->item->image_info && + current->item->image_info->burstshot_id && + !g_strcmp0(burstshot_id, current->item->image_info->burstshot_id))) { + if (gitem->item->storage_type != GL_STORE_T_PHONE) + ad->selinfo.disable_hide_cnt--; + /* Update selected images count */ + if (current->item->type == MEDIA_CONTENT_TYPE_IMAGE && + ad->selinfo.images_cnt > 0) { + ad->selinfo.images_cnt--; +#ifdef _USE_ROTATE_BG + if (current->item->ext && + !strcasecmp(current->item->ext, GL_JPEG_FILE_EXT) && + ad->selinfo.jpeg_cnt > 0) + if (_gl_exif_check_img_type(current->item->file_url)) + ad->selinfo.jpeg_cnt--; +#endif + } + + ad->selinfo.elist = eina_list_remove(ad->selinfo.elist, + current); + if (burstshot_id == NULL) { + break; + } else { + current->checked = gitem->checked; + b_removed = true; + } + } else if (b_removed) { + /* Already removed and not more items, quit */ + break; + } + current = NULL; + } + return 0; +} + +/* Just remove one media from selected list, it just for selected view */ +int _gl_data_selected_list_remove_one(void *data, gl_item *gitem) +{ + GL_CHECK_VAL(gitem, -1); + GL_CHECK_VAL(gitem->item, -1); + GL_CHECK_VAL(gitem->item->uuid, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + /* Update selected images count */ + if (gitem->item->type == MEDIA_CONTENT_TYPE_IMAGE && + ad->selinfo.images_cnt > 0) { + ad->selinfo.images_cnt--; +#ifdef _USE_ROTATE_BG + if (gitem->item->ext && + !strcasecmp(gitem->item->ext,GL_JPEG_FILE_EXT) && + ad->selinfo.jpeg_cnt > 0) { + if (_gl_exif_check_img_type(gitem->item->file_url)) + ad->selinfo.jpeg_cnt--; + } +#endif + } + if (gitem->item->storage_type != GL_STORE_T_PHONE) + ad->selinfo.disable_hide_cnt--; + ad->selinfo.elist = eina_list_remove(ad->selinfo.elist, + gitem); + return 0; +} + +int _gl_data_selected_list_finalize(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + if (ad->selinfo.elist == NULL) + return -1; + + gl_item *gitem = NULL; + int i; + int count; + if (ad->gridinfo.medias_elist) { + count = eina_list_count(ad->gridinfo.medias_elist); + for (i = 0; i < count ; i++) { + gitem = eina_list_nth(ad->gridinfo.medias_elist, i); + if (gitem) { + gitem->checked = false; + } + } + } + EINA_LIST_FREE(ad->selinfo.elist, gitem) { + if (gitem) { + gitem->checked = false; + } + } + + ad->selinfo.elist = NULL; + ad->selinfo.images_cnt = 0; + ad->selinfo.disable_hide_cnt = 0; +#ifdef _USE_ROTATE_BG + ad->selinfo.jpeg_cnt = 0; +#endif + gl_dbg("Selected list freed"); + return 0; +} + +int _gl_data_clear_selected_info(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + if (ad->selinfo.elist == NULL) + return -1; + + eina_list_free(ad->selinfo.elist); + gl_dbg("eina free selected list"); + + ad->selinfo.elist = NULL; + ad->selinfo.images_cnt = 0; + ad->selinfo.disable_hide_cnt = 0; +#ifdef _USE_ROTATE_BG + ad->selinfo.jpeg_cnt = 0; +#endif + return 0; +} + +int _gl_data_copy_selected_info_save_current_selected(void *data, Eina_List **elist) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + if (ad->selinfo.elist == NULL) { + return -1; + } + + _gl_data_util_filter_selected_str_ids(&(ad->selinfo.elist), elist); + gl_item *gitem = NULL; + gl_item *gitem1 = NULL; + Eina_List *tmp; + int count = eina_list_count(ad->gridinfo.medias_elist); + int i; + for (i = 0; i < count ; i++) { + gitem1 = eina_list_nth(ad->gridinfo.medias_elist, i); + EINA_LIST_FOREACH(ad->selinfo.elist, tmp, gitem) { + if (gitem && gitem->item && gitem->item->uuid && gitem1 && gitem1->item && gitem1->item->uuid) { + if (!strcmp(gitem->item->uuid, gitem1->item->uuid)) { + ad->selinfo.elist = eina_list_remove(ad->selinfo.elist, gitem); + } + } + + } + } + + return 0; +} + +int _gl_data_selected_list_count(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + return eina_list_count(ad->selinfo.elist); +} + +bool _gl_data_is_root_path(const char *path) +{ + if (path == NULL) + return false; + + if (!g_strcmp0(GL_ROOT_PATH_PHONE, path) || + !g_strcmp0(GL_ROOT_PATH_MMC, path)) { + gl_sdbg("Root path: %s", path); + return true; + } + + return false; +} + +bool _gl_data_check_root_type(const char *path, const char *root) +{ + if (path == NULL || root == NULL) + return false; + + if (!strncmp(root, path, strlen(root))) { + gl_sdbg("Root path: %s", path); + return true; + } + + return false; +} + +bool _gl_data_is_albums_selected_empty(void *data) +{ + GL_CHECK_VAL(data, 1); + gl_appdata *ad = (gl_appdata *)data; + gl_cluster *album = NULL; + + Eina_List *l = NULL; + EINA_LIST_FOREACH(ad->albuminfo.sel_elist, l, album) { + if (album && album->cluster && album->cluster->count) + return false; + album = NULL; + } + + return true; +} + +/** + * If 'All albums' selected for share, only append files contained in 'All albums'; + * If both local albums and web albums selected, 'Share' item should be disabled. + * path_str -> local albums, path_str2 -> web albums + */ +int _gl_data_get_albums_selected_files(void *data, void *get_cb, void *cb_data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->albuminfo.sel_elist, -1); + gl_cluster *album = NULL; + Eina_List *l = NULL; + int err = -1; + Eina_List *elist = NULL; + gl_filter_s filter; + int count = 0; + + int (*_get_cb) (void *cb_data, gl_media_s *item) = NULL; + if (get_cb) + _get_cb = get_cb; + + memset(&filter, 0x00, sizeof(gl_filter_s)); + _gl_data_util_get_cond(filter.cond); + filter.sort_type = MEDIA_CONTENT_ORDER_DESC; + g_strlcpy(filter.sort_keyword, GL_CONDITION_ORDER, + KEYWORD_LENGTH); + filter.collate_type = MEDIA_CONTENT_COLLATE_NOCASE; + filter.offset = GL_GET_ALL_RECORDS; + filter.count = GL_GET_ALL_RECORDS; + filter.with_meta = false; + + EINA_LIST_FOREACH(ad->albuminfo.sel_elist, l, album) { + if (album == NULL || album->cluster == NULL || + album->cluster->uuid == NULL) { + continue; + } + if (!strcmp(GL_ALBUM_ALL_ID, album->cluster->uuid)) + err = _gl_local_data_get_all_albums_media_list(&filter, + &elist); + else + err = _gl_local_data_get_album_media_list(&filter, + album->cluster->uuid, + &elist); + if ((err == 0) && (elist != NULL)) { + gl_media_s *item = NULL; + EINA_LIST_FREE(elist, item) { + if (item == NULL) { + gl_dbgE("Invalid item!"); + continue; + } + if (_get_cb) + _get_cb(cb_data, item); + count++; + item = NULL; + } + } + } + return count; +} + +int _gl_data_get_albums_selected_cnt(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + return eina_list_count(ad->albuminfo.sel_elist); +} + +int _gl_data_albums_selected_list_remove(void *data, gl_cluster *item) +{ + GL_CHECK_VAL(item, -1); + GL_CHECK_VAL(item->cluster, -1); + GL_CHECK_VAL(item->cluster->uuid, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_cluster *current = NULL; + Eina_List *l = NULL; + + if (GL_STORE_T_PHONE != item->cluster->type || + _gl_data_is_camera_album(item->cluster) || + _gl_data_is_default_album(GL_STR_ALBUM_DOWNLOADS, item->cluster)) + --ad->selinfo.disable_hide_cnt; + + Eina_List *sel_list = ad->albuminfo.sel_elist; + EINA_LIST_FOREACH(sel_list, l, current) { + if (current == NULL || current->cluster == NULL || + current->cluster->uuid == NULL) { + gl_dbgE("Invalid gcluster!"); + continue; + } + + if (!g_strcmp0(current->cluster->uuid, item->cluster->uuid)) { + int img_cnt = 0; + int sel_cnt = 0; + int web_cnt = 0; + + _gl_data_util_check_album_selected_files(item, + &img_cnt, + &sel_cnt, + &web_cnt); + + ad->selinfo.images_cnt = ad->selinfo.images_cnt - img_cnt; + ad->selinfo.sel_cnt = ad->selinfo.sel_cnt - sel_cnt; + + ad->albuminfo.sel_elist = eina_list_remove(ad->albuminfo.sel_elist, + current); + break; + } + current = NULL; + } + + return 0; +} + +int _gl_data_finalize_albums_selected_list(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_cluster *item = NULL; + + Eina_List *sel_list = ad->albuminfo.sel_elist; + EINA_LIST_FREE(sel_list, item) { + if (item) + item->checked = false; + } + + ad->selinfo.images_cnt = 0; + ad->selinfo.disable_hide_cnt = 0; + ad->selinfo.sel_cnt = 0; + ad->albuminfo.sel_elist = NULL; + return 0; +} + +int _gl_data_init(void *data) +{ + GL_CHECK_VAL(data, -1); + int err = _gl_local_data_connect(); + if (err != 0) + gl_dbgE("Connect to media-content DB failed!"); + return err; +} + +int _gl_data_finalize(void *data) +{ + GL_CHECK_VAL(data, -1); + int err = _gl_local_data_disconnect(); + if (err != 0) + gl_dbgE("Disconnect with media-content DB failed!"); + return err; +} + +int _gl_data_delete_media(void *data, gl_media_s *media_item) +{ + GL_CHECK_VAL(media_item, -1); + return media_info_delete_from_db(media_item->uuid); +} + +/* Creates a thumbnail image for given the media, asynchronously */ +int _gl_data_create_thumb(gl_media_s *item, + media_thumbnail_completed_cb callback, + void *user_data) +{ + GL_CHECK_VAL(item, -1); + GL_CHECK_VAL(item->media_h, -1); + int ret = -1; + gl_sdbg("File[%s]", item->file_url); + + ret = media_info_create_thumbnail(item->media_h, callback, user_data); + if (ret != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Failed to create thumbnail[%d]!", ret); + return -1; + } + item->b_create_thumb = true; + return 0; +} + +int _gl_data_cancel_thumb(gl_media_s *item) +{ + GL_CHECK_VAL(item, -1); + GL_CHECK_VAL(item->media_h, -1); + + media_info_cancel_thumbnail(item->media_h); + item->b_create_thumb = false; + return 0; +} + +bool _gl_data_is_album_exists(void *data, gl_cluster *album) +{ + GL_CHECK_FALSE(data); + GL_CHECK_FALSE(album); + GL_CHECK_FALSE(album->cluster); + GL_CHECK_FALSE(album->cluster->path); + return _gl_local_data_is_album_exists(album->cluster->path); +} + +int _gl_data_save_selected_str_ids(void *data, Eina_List **elist) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + /* Get ID list of selected items */ + if (ad->selinfo.elist == NULL) + return -1; + _gl_data_util_get_selected_str_ids(&(ad->selinfo.elist), elist); + /* Reset old flags */ + ad->selinfo.images_cnt = 0; + ad->selinfo.disable_hide_cnt = 0; +#ifdef _USE_ROTATE_BG + ad->selinfo.jpeg_cnt = 0; +#endif + return 0; +} + +int _gl_data_restore_selected(Eina_List *sel_ids, gl_item *gitem) +{ + GL_CHECK_VAL(gitem, -1); + GL_CHECK_VAL(gitem->item, -1); + if (sel_ids) { + bool b_selected = false; + b_selected = _gl_data_check_selected_id(sel_ids, + gitem->item->uuid); + if (b_selected) { + gl_dbg("b_selected"); + b_selected = false; + /* Set checkbox state */ + gitem->checked = true; + gitem->album->elist = eina_list_append(gitem->album->elist, gitem); + } + } + return 0; +} + +int _gl_data_restore_update_selected(Eina_List *sel_ids, gl_item *gitem) +{ + GL_CHECK_VAL(gitem, -1); + GL_CHECK_VAL(gitem->item, -1); + + if (sel_ids) { + bool b_selected = false; + b_selected = _gl_data_check_selected_id(sel_ids, + gitem->item->uuid); + if (b_selected) { + gl_dbg("b_selected"); + b_selected = false; + /* Set checkbox state */ + gitem->checked = true; + gitem->album->elist = eina_list_append(gitem->album->elist, gitem); + } + } + return 0; +} + +bool _gl_data_check_selected_id(Eina_List *sel_id_list, const char *id) +{ + GL_CHECK_FALSE(sel_id_list); + GL_CHECK_FALSE(id); + Eina_List *tmp_elist = NULL; + gl_item *sit = NULL; + if (eina_list_count(sel_id_list) == 0) { + gl_dbgE("sel_id_list is empty!"); + return false; + } + EINA_LIST_FOREACH(sel_id_list, tmp_elist, sit) { + if (sit == NULL || sit->item ==NULL || sit->item->uuid == NULL) { + gl_dbgE("Invalid p_id!"); + sit = NULL; + continue; + } + if (g_strcmp0(id, sit->item->uuid)) { + sit = NULL; + continue; + } + return true; + } + return false; +} + + diff --git a/src/data/gl-local-data.c b/src/data/gl-local-data.c new file mode 100644 index 0000000..c35783d --- /dev/null +++ b/src/data/gl-local-data.c @@ -0,0 +1,1221 @@ +/* +* 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 "gl-local-data.h" +#include "gl-data-util.h" +#include "gl-debug.h" +#include "gl-thread-util.h" +#include "gl-fs.h" +#include "gl-file-util.h" + +typedef struct _gl_transfer_data_t gl_transfer_data_s; +typedef struct _gl_foreach_data_t gl_foreach_data_s; + +struct _gl_transfer_data_t { + void **userdata; + filter_h filter; + char *album_id; + bool with_meta; +}; + +struct _gl_foreach_data_t { + void **userdata; + filter_h filter; + char *album_id; + bool with_meta; +}; + +static int __gl_local_data_create_filter(gl_filter_s *condition, filter_h *filter) +{ + GL_CHECK_VAL(filter, -1); + GL_CHECK_VAL(condition, -1); + int ret = -1; + filter_h tmp_filter = NULL; + ret = media_filter_create(&tmp_filter); + if (ret != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Fail to create filter"); + return -1; + } + + if (strlen(condition->cond) > 0) { + ret = media_filter_set_condition(tmp_filter, condition->cond, + condition->collate_type); + if (ret != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Fail to set condition"); + goto GL_LOCAL_FAILED; + } + } + + if (strlen(condition->sort_keyword) > 0) { + ret = media_filter_set_order(tmp_filter, condition->sort_type, + condition->sort_keyword, + condition->collate_type); + if (ret != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Fail to set order"); + goto GL_LOCAL_FAILED; + } + } + + if (condition->offset != -1 && condition->count != -1 && + condition->count > 0) { + ret = media_filter_set_offset(tmp_filter, condition->offset, + condition->count); + if (ret != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Fail to set offset"); + goto GL_LOCAL_FAILED; + } + } + + *filter = tmp_filter; + return 0; + + GL_LOCAL_FAILED: + + if (tmp_filter) { + media_filter_destroy(tmp_filter); + tmp_filter = NULL; + *filter = NULL; + } + return -1; +} + +static int __gl_local_data_destroy_filter(filter_h filter) +{ + GL_CHECK_VAL(filter, -1); + if (media_filter_destroy(filter) != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Failed to destroy filter!"); + return -1; + } + + return 0; +} + +static bool __gl_local_data_get_album_list_cb(media_folder_h folder, + void *data) +{ + GL_CHECK_FALSE(data); + gl_transfer_data_s *tmp_data = (gl_transfer_data_s *)data; + GL_CHECK_FALSE(tmp_data->userdata); + GL_CHECK_FALSE(folder); + + Eina_List **elist = (Eina_List **)(tmp_data->userdata); + gl_album_s *album = NULL; + + album = (gl_album_s *)calloc(1, sizeof(gl_album_s)); + GL_CHECK_FALSE(album); + album->gtype = GL_TYPE_ALBUM; + + if (media_folder_clone(&(album->folder_h), folder) != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Clone folder handle failed!"); + goto GL_LOCAL_FAILED; + } + + if (media_folder_get_folder_id(folder, &(album->uuid)) != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Get folder id failed!"); + goto GL_LOCAL_FAILED; + } + + if (media_folder_get_modified_time(folder, &(album->mtime)) != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Get modified time failed!"); + goto GL_LOCAL_FAILED; + } + + media_content_storage_e storage_type; + if (media_folder_get_storage_type(folder, &storage_type) != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Get folder type failed!"); + goto GL_LOCAL_FAILED; + } + + if (storage_type == MEDIA_CONTENT_STORAGE_INTERNAL) {/* The device's internal storage */ + album->type = GL_STORE_T_PHONE; + } else if (storage_type == MEDIA_CONTENT_STORAGE_EXTERNAL) {/* The device's external storage */ + album->type = GL_STORE_T_MMC; + } else { + gl_dbgE("Undefined mode[%d]!", storage_type); + } + + if (media_folder_get_name(folder, &(album->display_name)) != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Get folder name failed!"); + goto GL_LOCAL_FAILED; + } + + if (media_folder_get_path(folder, &(album->path)) != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Get folder path failed!"); + goto GL_LOCAL_FAILED; + } + /* TMP: done */ + if (tmp_data->filter) { + if (media_folder_get_media_count_from_db(album->uuid, tmp_data->filter, &(album->count)) != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Failed to get count[uuid: %s]!", album->uuid); + goto GL_LOCAL_FAILED; + } + } + + *elist = eina_list_append(*elist, album); + + return true; + + GL_LOCAL_FAILED: + + _gl_data_type_free_glitem((void **)(&album)); + return false; +} + +static bool __gl_local_data_get_media_list_cb(media_info_h media, void *data) +{ + GL_CHECK_FALSE(data); + gl_transfer_data_s *tmp_data = (gl_transfer_data_s *)data; + GL_CHECK_FALSE(tmp_data->userdata); + GL_CHECK_FALSE(media); + gl_media_s *item = NULL; + gl_image_s *image_info = NULL; + gl_video_s *video_info = NULL; + image_meta_h image_handle = NULL; + video_meta_h video_handle = NULL; + char *ext = NULL; + + int ret = -1; + Eina_List **elist = (Eina_List **)(tmp_data->userdata); + + item = (gl_media_s *)calloc(1, sizeof(gl_media_s)); + GL_CHECK_FALSE(item); + item->gtype = GL_TYPE_MEDIA; + + if (media_info_clone(&(item->media_h), media) != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Clone media handle failed!"); + goto GL_LOCAL_FAILED; + } + + if (media_info_get_media_id(media, &(item->uuid)) != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Get media id failed!"); + goto GL_LOCAL_FAILED; + } + + if (media_info_get_display_name(media, &(item->display_name)) != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Get media display name failed!"); + goto GL_LOCAL_FAILED; + } + + if (media_info_get_file_path(media, &(item->file_url)) != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Get media file path failed!"); + goto GL_LOCAL_FAILED; + } + + if (media_info_get_media_type(media, (media_content_type_e *)&(item->type)) != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Get media type failed!"); + goto GL_LOCAL_FAILED; + } + if (media_info_get_thumbnail_path(media, &(item->thumb_url)) != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Get media thumbnail path failed!"); + goto GL_LOCAL_FAILED; + } + gl_sdbg("thumb_url: %s", item->thumb_url); + + if (media_info_get_timeline(media, &(item->mtime)) != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Get media timeline failed!"); + goto GL_LOCAL_FAILED; + } + +// if (media_info_get_mode(media, (media_content_mode_e *)&(item->mode)) != MEDIA_CONTENT_ERROR_NONE) { +// gl_dbgE("Get media mode failed!"); +// goto GL_LOCAL_FAILED; +// } + + media_content_storage_e storage_type = 0; + if (media_info_get_storage_type(media, &storage_type) != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Get storage type failed!"); + goto GL_LOCAL_FAILED; + } + if (storage_type == MEDIA_CONTENT_STORAGE_INTERNAL) /* The device's internal storage */ + item->storage_type = GL_STORE_T_PHONE; + else if (storage_type == MEDIA_CONTENT_STORAGE_EXTERNAL) /* The device's external storage */ + item->storage_type = GL_STORE_T_MMC; + else + gl_dbgE("Undefined mode[%d]!", storage_type); + /* Without meta */ + if (!tmp_data->with_meta) + goto GL_LOCAL_SUCCESS; + + if (item->type == MEDIA_CONTENT_TYPE_IMAGE) { + ret = media_info_get_image(media, &image_handle); + if (ret != MEDIA_CONTENT_ERROR_NONE || image_handle == NULL) { + gl_dbgE("Failed to get image handle[%d]!", ret); + goto GL_LOCAL_FAILED; + } + + image_info = (gl_image_s *)calloc(1, sizeof(gl_image_s)); + if (NULL == image_info) { + gl_dbgE("Failed to calloc!"); + goto GL_LOCAL_FAILED; + } + item->image_info = image_info; + + if (image_meta_clone(&(image_info->image_h), image_handle) != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Clone image handle failed!"); + goto GL_LOCAL_FAILED; + } + + if (image_meta_get_media_id(image_handle, &(image_info->media_uuid)) != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Get image id failed!"); + goto GL_LOCAL_FAILED; + } + + if (image_meta_get_orientation(image_handle, (media_content_orientation_e *)&(image_info->orientation)) != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Get image orientation failed!"); + goto GL_LOCAL_FAILED; + } + if (image_meta_get_burst_id(image_handle, &(image_info->burstshot_id)) != MEDIA_CONTENT_ERROR_NONE) { + image_info->burstshot_id = NULL; + gl_dbgE("Get burstshot_id failed!"); + } + + if (image_meta_destroy(image_handle) != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Destroy image handle failed!"); + goto GL_LOCAL_FAILED; + } + } else if (item->type == MEDIA_CONTENT_TYPE_VIDEO) { + ret = media_info_get_video(media, &video_handle); + if (ret != MEDIA_CONTENT_ERROR_NONE || video_handle == NULL) { + gl_dbgE("Failed to get video handle[%d]!", ret); + goto GL_LOCAL_FAILED; + } + + video_info = (gl_video_s *)calloc(1, sizeof(gl_video_s)); + if (NULL == video_info) { + gl_dbgE("Failed to calloc!"); + goto GL_LOCAL_FAILED; + } + item->video_info = video_info; + + if (video_meta_clone(&(video_info->video_h), video_handle) != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Clone video handle failed!"); + goto GL_LOCAL_FAILED; + } + + if (video_meta_get_media_id(video_handle, &(video_info->media_uuid)) != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Get video id failed!"); + goto GL_LOCAL_FAILED; + } + +// if (video_meta_get_title(video_handle, &(video_info->title)) != MEDIA_CONTENT_ERROR_NONE) { +// gl_dbgE("Get video title failed!"); +// goto GL_LOCAL_FAILED; +// } + + if (video_meta_get_duration(video_handle, &(video_info->duration)) != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Get video duration failed!"); + goto GL_LOCAL_FAILED; + } + + if (video_meta_get_played_time(video_handle, &(video_info->last_played_pos)) != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Get video last played position failed!"); + goto GL_LOCAL_FAILED; + } + + if (video_meta_destroy(video_handle) != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Destroy video handle failed!"); + goto GL_LOCAL_FAILED; + } + + /* Get bookmark elist in case of video */ + if (video_info->media_uuid) { + video_info->bookmarks = 0; + int count = 0; + ret = media_info_get_bookmark_count_from_db(video_info->media_uuid, + NULL, + &count); + if (ret != MEDIA_CONTENT_ERROR_NONE) + gl_dbgE("Failed to get bookmark[%d]", ret); + else + video_info->bookmarks = count; + } + } else { + gl_dbgE("Wrong media type[%d]!", item->type); + } + + GL_LOCAL_SUCCESS: + + /* Get extension */ + ext = strrchr(item->file_url, '.'); + if (ext) + item->ext = strdup(ext + 1); + else + gl_dbgE("Extension is NULL!"); + + *elist = eina_list_append(*elist, item); + return true; + + GL_LOCAL_FAILED: + + if (image_handle) + image_meta_destroy(image_handle); + if (video_handle) + video_meta_destroy(video_handle); + + _gl_data_type_free_glitem((void **)(&item)); + return false; +} + +static bool __gl_local_data_get_fav_media_list_cb(media_info_h media, void *data) +{ + bool ret = false; + ret = __gl_local_data_get_media_list_cb(media, data); + return ret; +} + +static bool __gl_local_data_get_album_cover_cb(media_info_h media, void *data) +{ + GL_CHECK_FALSE(data); + GL_CHECK_FALSE(media); + gl_media_s *item = NULL; + Eina_List **elist = (Eina_List **)data; + + item = (gl_media_s *)calloc(1, sizeof(gl_media_s)); + GL_CHECK_FALSE(item); + item->gtype = GL_TYPE_MEDIA; + + if (media_info_clone(&(item->media_h), media) != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Clone media handle failed!"); + goto GL_LOCAL_FAILED; + } + if (media_info_get_file_path(media, &(item->file_url)) != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Get media file path failed!"); + goto GL_LOCAL_FAILED; + } + if (media_info_get_media_type(media, (media_content_type_e *)&(item->type)) != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Get media type failed!"); + goto GL_LOCAL_FAILED; + } + if (media_info_get_thumbnail_path(media, &(item->thumb_url)) != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Get media thumbnail path failed!"); + goto GL_LOCAL_FAILED; + } + gl_sdbg("thumb_url: %s", item->thumb_url); + + *elist = eina_list_append(*elist, item); + return true; + + GL_LOCAL_FAILED: + + _gl_data_type_free_glitem((void **)(&item)); + return false; +} + +static bool __gl_local_data_get_fav_album_cover_cb(media_info_h media, void *data) +{ + GL_CHECK_FALSE(data); + GL_CHECK_FALSE(media); + gl_media_s *item = NULL; + Eina_List **elist = (Eina_List **)data; + + item = (gl_media_s *)calloc(1, sizeof(gl_media_s)); + GL_CHECK_FALSE(item); + item->gtype = GL_TYPE_MEDIA; + + if (media_info_clone(&(item->media_h), media) != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Clone media handle failed!"); + goto GL_LOCAL_FAILED; + } + if (media_info_get_file_path(media, &(item->file_url)) != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Get media file path failed!"); + goto GL_LOCAL_FAILED; + } + if (media_info_get_media_type(media, (media_content_type_e *)&(item->type)) != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Get media type failed!"); + goto GL_LOCAL_FAILED; + } + if (media_info_get_thumbnail_path(media, &(item->thumb_url)) != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Get media thumbnail path failed!"); + goto GL_LOCAL_FAILED; + } + gl_sdbg("thumb_url: %s", item->thumb_url); + + *elist = eina_list_append(*elist, item); + return true; + + GL_LOCAL_FAILED: + + _gl_data_type_free_glitem((void **)(&item)); + return false; +} + +static bool __gl_local_data_delete_album_cb(media_info_h media, void *data) +{ + GL_CHECK_FALSE(data); + GL_CHECK_FALSE(media); + Eina_List **elist = (Eina_List **)data; + gl_media_s *item = NULL; + + item = (gl_media_s *)calloc(1, sizeof(gl_media_s)); + GL_CHECK_FALSE(item); + item->gtype = GL_TYPE_MEDIA; + + if (MEDIA_CONTENT_ERROR_NONE != media_info_get_file_path(media, &(item->file_url))) { + gl_dbgE("media_info_get_file_path failed"); + } + media_info_get_media_id(media, &(item->uuid)); + *elist = eina_list_append(*elist, item); + return true; +} + +/* Connect to media-content database */ +int _gl_local_data_connect(void) +{ + int ret = -1; + ret = media_content_connect(); + if (ret == MEDIA_CONTENT_ERROR_NONE) { + gl_dbg("DB connection is success"); + return 0; + } else { + gl_dbgE("DB connection is failed[%d]!", ret); + return -1; + } +} + +/* Disconnect from media-content database */ +int _gl_local_data_disconnect(void) +{ + int ret = -1; + ret = media_content_disconnect(); + if (ret == MEDIA_CONTENT_ERROR_NONE) { + gl_dbg("DB disconnection is success"); + return 0; + } else { + gl_dbgE("DB disconnection is failed[%d]!", ret); + return -1; + } +} + +int _gl_local_data_get_album_by_path(char *path, gl_album_s **album) +{ + GL_CHECK_VAL(path, -1); + GL_CHECK_VAL(album, -1); + int ret = -1; + Eina_List *list = NULL; + gl_filter_s condition; + gl_album_s *_item = NULL; + int i = 0; + + if (strlen(path) <=0) { + gl_dbgE("Invalid path!"); + return -1; + } + gl_sdbg("path: %s", path); + + memset(&condition, 0x00, sizeof(gl_filter_s)); + _gl_data_util_get_cond(condition.cond); + g_strlcpy(condition.sort_keyword, GL_CONDITION_ORDER, KEYWORD_LENGTH); + condition.collate_type = MEDIA_CONTENT_COLLATE_NOCASE; + condition.sort_type = MEDIA_CONTENT_ORDER_DESC; + condition.offset = -1; + condition.count = -1; + condition.with_meta = false; + + snprintf(condition.cond, CONDITION_LENGTH, + "(%s=0 OR %s=1) AND %s=\'%s\'", MEDIA_TYPE, MEDIA_TYPE, + FOLDER_PATH, path); + + ret = _gl_local_data_get_album_list(&condition, &list); + if (ret != 0 || NULL == list) { + gl_dbgE("Failed to get album list[%d]!", ret); + ret = -1; + } else if (NULL != list) { + *album = eina_list_nth(list, 0); + i = 1; + ret = 0; + } + + /* Free other items */ + if (list) { + int len = eina_list_count(list); + gl_dbg("len: %d", len); + + for (; i < len; i++) { + _item = eina_list_nth(list, i); + _gl_data_type_free_glitem((void **)(&_item)); + } + + eina_list_free(list); + } + + return ret; +} + +int _gl_local_data_get_album_list(gl_filter_s *condition, Eina_List **elist) +{ + GL_CHECK_VAL(elist, -1); + GL_CHECK_VAL(condition, -1); + int ret = -1; + filter_h filter = NULL; + + ret = __gl_local_data_create_filter(condition, &filter); + if (ret != 0) { + gl_dbgE("Create filter failed[%d]!", ret); + return -1; + } + + filter_h media_filter = NULL; + gl_filter_s media_condition; + memset(&media_condition, 0x00, sizeof(gl_filter_s)); + /* Get all contents(including local and cloud) for albums list */ + g_strlcpy(media_condition.cond, GL_CONDITION_IMAGE_VIDEO, + CONDITION_LENGTH); + media_condition.sort_type = MEDIA_CONTENT_ORDER_DESC; + g_strlcpy(media_condition.sort_keyword, GL_CONDITION_ORDER, + KEYWORD_LENGTH); + media_condition.collate_type = MEDIA_CONTENT_COLLATE_NOCASE; + media_condition.offset = -1; + media_condition.count = -1; + media_condition.with_meta = false; + + ret = __gl_local_data_create_filter(&media_condition, &media_filter); + if (ret != 0) { + __gl_local_data_destroy_filter(filter); + gl_dbgE("Create filter failed[%d]!", ret); + return -1; + } + + gl_transfer_data_s tran_data; + memset(&tran_data, 0x00, sizeof(gl_transfer_data_s)); + tran_data.userdata = (void **)elist; + tran_data.filter = media_filter; + tran_data.album_id = NULL; + tran_data.with_meta = false; + + gl_dbg("Get folders--start"); + ret = media_folder_foreach_folder_from_db(filter, + __gl_local_data_get_album_list_cb, + &tran_data); + gl_dbg("Get folders---over"); + + __gl_local_data_destroy_filter(media_filter); + __gl_local_data_destroy_filter(filter); + + if (ret != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Failed to get all folders[%d]!", ret); + return -1; + } + + return 0; +} + +int _gl_local_data_get_media_by_id(char *media_id, gl_media_s **mitem) +{ + GL_CHECK_VAL(mitem, -1); + + if (media_id == NULL) { + //gl_dbg("Create a empty media"); + _gl_data_type_new_media(mitem); + return 0; + } + + int ret = -1; + Eina_List *list = NULL; + gl_media_s *_mitem = NULL; + media_info_h media_h = NULL; + int i = 0; + gl_sdbg("media id: %s", media_id); + + ret = media_info_get_media_from_db(media_id, &media_h); + if (ret != MEDIA_CONTENT_ERROR_NONE || media_h == NULL) { + gl_dbgE("Failed to get media handle[%d]!", ret); + if (media_h) + media_info_destroy(media_h); + return -1; + } + + gl_transfer_data_s tran_data; + memset(&tran_data, 0x00, sizeof(gl_transfer_data_s)); + tran_data.userdata = (void **)&list; + tran_data.filter = NULL; + tran_data.album_id = NULL; + tran_data.with_meta = false; + + bool b_ret = __gl_local_data_get_media_list_cb(media_h, &tran_data); + + media_info_destroy(media_h); + + if (b_ret && list) { + *mitem = eina_list_nth(list, 0); + i = 1; + ret = 0; + } else { + gl_dbgE("Failed to get media list!"); + ret = -1; + } + + /* Free other items */ + if (list) { + int len = eina_list_count(list); + gl_dbg("len: %d", len); + + for (; i < len; i++) { + _mitem = eina_list_nth(list, i); + _gl_data_type_free_glitem((void **)(&_mitem)); + } + + eina_list_free(list); + } + + return ret; +} + +int _gl_local_data_get_media_by_path(const char *path, gl_media_s **mitem) +{ + GL_CHECK_VAL(mitem, -1); + GL_CHECK_VAL(path, -1); + int ret = -1; + Eina_List *list = NULL; + gl_filter_s condition; + gl_media_s *_mitem = NULL; + int i = 0; + + if (strlen(path) <=0) { + gl_dbgE("Invalid path!"); + return -1; + } + gl_sdbg("path: %s", path); + + memset(&condition, 0x00, sizeof(gl_filter_s)); + _gl_data_util_get_cond(condition.cond); + g_strlcpy(condition.sort_keyword, GL_CONDITION_ORDER, KEYWORD_LENGTH); + condition.collate_type = MEDIA_CONTENT_COLLATE_NOCASE; + condition.sort_type = MEDIA_CONTENT_ORDER_DESC; + condition.offset = -1; + condition.count = -1; + condition.with_meta = true; + + snprintf(condition.cond, CONDITION_LENGTH, + "(%s=0 OR %s=1) AND %s=\'%s\'", MEDIA_TYPE, MEDIA_TYPE, + MEDIA_PATH, path); + ret = _gl_local_data_get_all_albums_media_list(&condition, &list); + if (ret != 0 || NULL == list) { + gl_dbgE("Failed to get all albums[%d]!", ret); + ret = -1; + } else if (NULL != list) { + *mitem = eina_list_nth(list, 0); + i = 1; + ret = 0; + } + + /* Free other items */ + if (list) { + int len = eina_list_count(list); + gl_dbg("len: %d", len); + + for (; i < len; i++) { + _mitem = eina_list_nth(list, i); + _gl_data_type_free_glitem((void **)(&_mitem)); + } + + eina_list_free(list); + } + + return ret; +} + +int _gl_local_data_get_media_count(const char *cluster_id, gl_filter_s *condition, + int *item_cnt) +{ + GL_CHECK_VAL(cluster_id, -1); + GL_CHECK_VAL(condition, -1); + GL_CHECK_VAL(item_cnt, -1); + int ret = -1; + filter_h filter = NULL; + + ret = __gl_local_data_create_filter(condition, &filter); + if (ret != 0) { + gl_dbgE("Create filter failed[%d]!", ret); + return -1; + } + + gl_dbg("Get media count--start"); + ret = media_folder_get_media_count_from_db(cluster_id, filter, item_cnt); + gl_dbg("Get media count---over"); + + __gl_local_data_destroy_filter(filter); + + if (ret != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Failed to get media count[%d]!", ret); + return -1; + } + + return 0; +} + +int _gl_local_data_get_all_media_count(gl_filter_s *condtion, int *item_cnt) +{ + GL_CHECK_VAL(condtion, -1); + GL_CHECK_VAL(item_cnt, -1); + int ret = -1; + filter_h filter = NULL; + + ret = __gl_local_data_create_filter(condtion, &filter); + if (ret != 0) { + gl_dbgE("Create filter failed[%d]!", ret); + return -1; + } + + gl_dbg("Get media count--start"); + GL_PROFILE_F_IN("media_info_get_media_count_from_db"); + ret = media_info_get_media_count_from_db(filter, item_cnt); + GL_PROFILE_F_OUT("media_info_get_media_count_from_db"); + gl_dbg("Get media count---over"); + + __gl_local_data_destroy_filter(filter); + + if (ret != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Failed to get media count[%d]", ret); + return -1; + } + + return 0; +} + +int _gl_local_data_get_album_media_list(gl_filter_s *condition, + const char *album_id, Eina_List **elist) +{ + GL_CHECK_VAL(elist, -1); + GL_CHECK_VAL(album_id, -1); + GL_CHECK_VAL(condition, -1); + gl_sdbg("album id: %s", album_id); + + int ret = -1; + filter_h filter = NULL; + ret = __gl_local_data_create_filter(condition, &filter); + if (ret != 0) { + gl_dbgE("Create filter failed!"); + return -1; + } + + gl_transfer_data_s tran_data; + memset(&tran_data, 0x00, sizeof(gl_transfer_data_s)); + tran_data.userdata = (void **)elist; + tran_data.filter = NULL; + tran_data.album_id = (char *)album_id; + tran_data.with_meta = condition->with_meta; + + gl_dbg("Get medias--start"); + ret = media_folder_foreach_media_from_db(album_id, filter, + __gl_local_data_get_media_list_cb, + &tran_data); + gl_dbg("Get medias--start"); + + __gl_local_data_destroy_filter(filter); + + if (ret != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Failed to get medias[%d]!", ret); + return -1; + } + + return 0; +} + +int _gl_local_data_get_album_cover(gl_filter_s *condition, const char *album_id, + Eina_List **elist) +{ + GL_CHECK_VAL(elist, -1); + GL_CHECK_VAL(album_id, -1); + GL_CHECK_VAL(condition, -1); + gl_sdbg("album id: %s", album_id); + + int ret = -1; + filter_h filter = NULL; + ret = __gl_local_data_create_filter(condition, &filter); + if (ret != 0) { + gl_dbgE("Create filter failed!"); + return -1; + } + + gl_dbg("Get medias--start"); + ret = media_folder_foreach_media_from_db(album_id, filter, + __gl_local_data_get_album_cover_cb, + elist); + gl_dbg("Get medias--start"); + + __gl_local_data_destroy_filter(filter); + + if (ret != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Failed to get medias[%d]!", ret); + return -1; + } + + return 0; +} + +int _gl_local_data_get_all_albums_media_list(gl_filter_s *condition, + Eina_List **elist) +{ + GL_CHECK_VAL(elist, -1); + GL_CHECK_VAL(condition, -1); + int ret = -1; + filter_h filter = NULL; + + ret = __gl_local_data_create_filter(condition, &filter); + if (ret != 0) { + gl_dbgE("Create filter failed!"); + return -1; + } + + gl_transfer_data_s tran_data; + memset(&tran_data, 0x00, sizeof(gl_transfer_data_s)); + tran_data.userdata = (void **)elist; + tran_data.filter = NULL; + tran_data.album_id = NULL; + tran_data.with_meta = condition->with_meta; + + gl_dbg("Get all medias--start"); + ret = media_info_foreach_media_from_db(filter, + __gl_local_data_get_media_list_cb, + &tran_data); + gl_dbg("Get all medias--over"); + + __gl_local_data_destroy_filter(filter); + + if (ret != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Failed to get medias[%d]!", ret); + return -1; + } + + return 0; +} + +int _gl_local_data_get_fav_albums_media_list(gl_filter_s *condition, + Eina_List **elist) +{ + GL_CHECK_VAL(elist, -1); + GL_CHECK_VAL(condition, -1); + int ret = -1; + filter_h filter = NULL; + + ret = __gl_local_data_create_filter(condition, &filter); + if (ret != 0) { + gl_dbgE("Create filter failed!"); + return -1; + } + + gl_transfer_data_s tran_data; + memset(&tran_data, 0x00, sizeof(gl_transfer_data_s)); + tran_data.userdata = (void **)elist; + tran_data.filter = NULL; + tran_data.album_id = NULL; + tran_data.with_meta = condition->with_meta; + + gl_dbg("Get all medias--start"); + ret = media_info_foreach_media_from_db(filter, + __gl_local_data_get_fav_media_list_cb, &tran_data); + gl_dbg("Get all medias--over"); + + __gl_local_data_destroy_filter(filter); + + if (ret != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Failed to get medias[%d]!", ret); + return -1; + } + + return 0; +} + +int _gl_local_data_get_all_albums_cover(gl_filter_s *condition, + Eina_List **elist) +{ + GL_CHECK_VAL(elist, -1); + GL_CHECK_VAL(condition, -1); + int ret = -1; + filter_h filter = NULL; + + ret = __gl_local_data_create_filter(condition, &filter); + if (ret != 0) { + gl_dbgE("Create filter failed!"); + return -1; + } + + gl_dbg("Get all medias--start"); + ret = media_info_foreach_media_from_db(filter, + __gl_local_data_get_album_cover_cb, + elist); + gl_dbg("Get all medias--over"); + + __gl_local_data_destroy_filter(filter); + + if (ret != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Failed to get medias[%d]!", ret); + return -1; + } + + return 0; +} + +int _gl_local_data_get_fav_albums_cover(gl_filter_s *condition, + Eina_List **elist) +{ + GL_CHECK_VAL(elist, -1); + GL_CHECK_VAL(condition, -1); + int ret = -1; + filter_h filter = NULL; + + ret = __gl_local_data_create_filter(condition, &filter); + if (ret != 0) { + gl_dbgE("Create filter failed!"); + return -1; + } + + gl_dbg("Get all medias--start"); + ret = media_info_foreach_media_from_db(filter, + __gl_local_data_get_fav_album_cover_cb, elist); + gl_dbg("Get all medias--over"); + + __gl_local_data_destroy_filter(filter); + + if (ret != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Failed to get medias[%d]!", ret); + return -1; + } + + return 0; +} + +int _gl_local_data_delete_album(gl_album_s *cluster, void *cb, void *data, bool is_hide) +{ + GL_CHECK_VAL(cluster, -1); + GL_CHECK_VAL(cluster->uuid, -1); + gl_filter_s condition; + filter_h filter = NULL; + int ret = -1; + gl_sdbg("album id: %s", cluster->uuid); + Eina_List *itemlist = NULL; + gl_media_s *item = NULL; + + if (!is_hide) { + memset(&condition, 0x00, sizeof(gl_filter_s)); + _gl_data_util_get_cond(condition.cond); + condition.collate_type = MEDIA_CONTENT_COLLATE_NOCASE; + condition.sort_type = MEDIA_CONTENT_ORDER_ASC; + g_strlcpy(condition.sort_keyword, MEDIA_ADDED_TIME, KEYWORD_LENGTH); + condition.offset = -1; + condition.count = -1; + condition.with_meta = false; + + ret = __gl_local_data_create_filter(&condition, &filter); + if (ret != 0) { + gl_dbgE("Create filter failed!"); + return -1; + } + ret = media_folder_foreach_media_from_db(cluster->uuid, filter, + __gl_local_data_delete_album_cb, + &itemlist); + __gl_local_data_destroy_filter(filter); + } + + if (ret != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Failed to get medias[%d]!", ret); + return -1; + } + + EINA_LIST_FREE(itemlist, item) { + if (item == NULL || item->file_url == NULL) { + gl_dbgE("Invalid item!"); + continue; + } + + if (!gl_file_unlink(item->file_url)) + gl_dbgE("file_unlink failed!"); + if (!is_hide) { + media_info_delete_from_db(item->uuid); + if (cb) { + int (*delete_cb) (void *data, char *uuid); + delete_cb = cb; + delete_cb(data, item->uuid); + } + } + _gl_data_type_free_glitem((void **)&item); + int pbar_cancel = false; + gl_thread_get_cancel_state(data, &pbar_cancel); + if (pbar_cancel > GL_PB_CANCEL_NORMAL) { + gl_dbgW("Cancelled[%d]!", pbar_cancel); + return 0; + } + } + + return 0; +} + +int _gl_local_data_hide_album_media(void *data, gl_album_s *cluster, char *new_path) +{ + GL_CHECK_VAL(cluster, -1); + GL_CHECK_VAL(cluster->uuid, -1); + gl_filter_s condition; + filter_h filter = NULL; + int ret = -1; + gl_dbgE("album id: %s", cluster->uuid); + Eina_List *itemlist = NULL; + gl_media_s *item = NULL; + + memset(&condition, 0x00, sizeof(gl_filter_s)); + _gl_data_util_get_cond(condition.cond); + condition.collate_type = MEDIA_CONTENT_COLLATE_NOCASE; + condition.sort_type = MEDIA_CONTENT_ORDER_ASC; + g_strlcpy(condition.sort_keyword, MEDIA_ADDED_TIME, KEYWORD_LENGTH); + condition.offset = -1; + condition.count = -1; + condition.with_meta = false; + + ret = __gl_local_data_create_filter(&condition, &filter); + if (ret != 0) { + gl_dbgE("Create filter failed!"); + return -1; + } + ret = media_folder_foreach_media_from_db(cluster->uuid, filter, + __gl_local_data_delete_album_cb, + &itemlist); + __gl_local_data_destroy_filter(filter); + + if (ret != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Failed to get medias[%d]!", ret); + return -1; + } + + char new_file[GL_FILE_PATH_LEN_MAX] = {0}; + char *name = NULL; + EINA_LIST_FREE(itemlist, item) { + if (item == NULL || item->file_url == NULL) { + gl_dbgE("Invalid item!"); + continue; + } + + name = strrchr(item->file_url, '/'); + if (name) { + snprintf(new_file, GL_FILE_PATH_LEN_MAX, "%s/%s", + new_path, name+1); + gl_dbgE("new file: %s", new_file); + if (!_gl_fs_move(data, item->file_url, new_file)) { + gl_dbgE("rename failed!"); + } + } + _gl_data_type_free_glitem((void **)&item); + } + return 0; +} + +int _gl_local_data_add_media(const char *file_url, media_info_h *info) +{ + GL_CHECK_VAL(file_url, -1); + int ret = -1; + media_info_h item = NULL; + gl_sdbg("file_url is %s", file_url); + + ret = media_info_insert_to_db(file_url, &item); + if (ret != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Failed to insert media to DB[%d]!", ret); + if (item) + media_info_destroy(item); + return -1; + } + + if (info) { + *info = item; + } else { + gl_dbgW("Destroy media_info item!"); + media_info_destroy(item); + } + + return 0; +} + +int _gl_local_data_get_thumb(gl_media_s *mitem, char **thumb) +{ + GL_CHECK_VAL(mitem, -1); + GL_CHECK_VAL(mitem->media_h, -1); + + if (media_info_get_thumbnail_path(mitem->media_h, thumb) != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Get media thumbnail path failed!"); + return -1; + } + + return 0; +} + +int _gl_local_data_move_media(gl_media_s *mitem, const char *dst) +{ + GL_CHECK_VAL(dst, -1); + GL_CHECK_VAL(mitem, -1); + GL_CHECK_VAL(mitem->media_h, -1); + + if (media_info_move_to_db(mitem->media_h, dst) != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Move media thumbnail failed!"); + return -1; + } + + return 0; +} + +bool _gl_local_data_is_album_exists(char *path) +{ + GL_CHECK_FALSE(path); + gl_album_s *album = NULL; + gl_sdbgW("path: %s", path); + + _gl_local_data_get_album_by_path(path, &album); + if (album) { + _gl_data_type_free_glitem((void **)(&album)); + return true; + } + return false; +} + +int _gl_local_data_get_path_by_id(const char *uuid, char **path) +{ + GL_CHECK_VAL(path, 0); + GL_CHECK_VAL(uuid, 0); + media_info_h media_h = NULL; + int ret = -1; + char *_path = NULL; + + ret = media_info_get_media_from_db(uuid, &media_h); + if (ret != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Get media failed[%d]!", ret); + goto GL_LD_FAILED; + } + ret = media_info_get_file_path(media_h, &_path); + if (ret != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Get media file path failed!"); + goto GL_LD_FAILED; + } + + media_info_destroy(media_h); + media_h = NULL; + + if (!_path) { + gl_dbgE("Invalid file path!"); + goto GL_LD_FAILED; + } + + *path = _path; + + GL_LD_FAILED: + + if (media_h) { + media_info_destroy(media_h); + media_h = NULL; + } + return 0; +} + diff --git a/src/features/gl-albums-sel.c b/src/features/gl-albums-sel.c new file mode 100644 index 0000000..2f8ea84 --- /dev/null +++ b/src/features/gl-albums-sel.c @@ -0,0 +1,310 @@ +/* +* 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 "gl-debug.h" +#include "gl-albums-sel.h" +#include "gl-ui-util.h" +#include "gl-util.h" +#include "gl-data.h" +#include "gl-controlbar.h" +#include "gl-button.h" +#include "gl-nocontents.h" +#include "gl-notify.h" +#include "gl-strings.h" +#include "gl-albums.h" +#include "gl-timeline.h" +#include "gl-thumbs.h" +#include "gl-tile.h" +#include "gl-editfield.h" + +static void _gl_albums_sel_update_album_sel_list(void *data); + +static void __gl_albums_sel_trans_finished_cb(void *data, Evas_Object *obj, + void *event_info) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + int view_mode = gl_get_view_mode(ad); + gl_dbgW("view_mode: %d", view_mode); + evas_object_smart_callback_del(obj, GL_TRANS_FINISHED, + __gl_albums_sel_trans_finished_cb); + + /* Clear previous view after animation finished */ + if (view_mode == GL_VIEW_ALBUMS_SELECT) { + if (ad->gridinfo.nocontents == NULL) + elm_gengrid_clear(ad->gridinfo.view); + } else { + gl_dbgE("Wrong view mode!"); + } +} + +/* callback after user tap Cancel button in option header in select album view */ +static Eina_Bool __gl_albums_sel_pop_cb(void *data, Elm_Object_Item *it) +{ + GL_CHECK_FALSE(data); + gl_dbg(""); + gl_appdata *ad = (gl_appdata *)data; + _gl_data_selected_list_finalize(data); + /* If the back button is clicked or H/W Back key is pressed, + this callback will be called right before the + current view pop. User may implement application logic here. */ + + /* To proceed the popping, please return the EINA_TRUE or not, + popping will be canceled. + If it needs to delete the current view without any transition effect, + then call the elm_object_item_del() here and then return the EINA_FALSE */ + _gl_albums_sel_pop_view(data); + _gl_albums_sel_update_album_sel_list(data); + if (ad->albuminfo.selected_uuid) { + free(ad->albuminfo.selected_uuid); + ad->albuminfo.selected_uuid = NULL; + } + return EINA_TRUE; +} + +/** + * Use naviframe api to push new album view to stack. + * @param obj is the content to be pushed. + */ +static int __gl_albums_sel_push_view(void *data, Evas_Object *parent, + Evas_Object *obj, char *title) +{ + gl_dbg("GL_NAVI_ALBUMS_SELECT"); + GL_CHECK_VAL(obj, -1); + GL_CHECK_VAL(parent, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + Elm_Object_Item *nf_it = NULL; + + /* Add transition finished callback */ + evas_object_smart_callback_add(parent, GL_TRANS_FINISHED, + __gl_albums_sel_trans_finished_cb, data); + + /* Push to stack */ + nf_it = elm_naviframe_item_push(parent, title, NULL, NULL, obj, + NULL); + /* use pop_cb_set to support HW key event */ + elm_naviframe_item_pop_cb_set(nf_it, __gl_albums_sel_pop_cb, data); + ad->albuminfo.nf_it_select = nf_it; + return 0; +} + +/* Free data after layout deleted */ +static void __gl_albums_sel_delete_layout_cb(void *data, Evas *e, + Evas_Object *obj, void *ei) +{ + gl_dbg("Delete layout ---"); + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + + _gl_albums_clear_cbs(ad->albuminfo.select_view); + _gl_ui_del_scroller_pos(ad->albuminfo.select_view); + + ad->albuminfo.b_new_album = false; + ad->albuminfo.select_view = NULL; + ad->albuminfo.select_layout = NULL; + ad->albuminfo.nf_it_select = NULL; + gl_dbg("Delete layout +++"); +} + +Evas_Object *_gl_albums_create_sel_gengrid(void *data) +{ + GL_CHECK_VAL(data, NULL); + gl_appdata *ad = (gl_appdata *)data; + Evas_Object *layout_inner = elm_gengrid_add(ad->maininfo.win); + + elm_gengrid_align_set(layout_inner, 0.5f, 0.0); + elm_gengrid_horizontal_set(layout_inner, EINA_FALSE); + elm_scroller_bounce_set(layout_inner, EINA_FALSE, EINA_TRUE); + elm_scroller_policy_set(layout_inner, ELM_SCROLLER_POLICY_OFF, + ELM_SCROLLER_POLICY_AUTO); + elm_gengrid_multi_select_set(layout_inner, EINA_TRUE); + evas_object_size_hint_weight_set(layout_inner, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + return layout_inner; +} + +int _gl_albums_create_split_album_sel_view(void *data, Evas_Object *layout_inner) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + if (_gl_split_albums_create_items(ad, layout_inner) < 0) { + gl_dbgE("Failed to add Split album view!"); + return -1; + } + int w = -1, h = -1; + evas_object_geometry_get(ad->maininfo.win, NULL, NULL, &w, &h); + if (w < h) { + elm_gengrid_item_size_set(layout_inner, (w/3)-10, (w/3)-10); + } else { + elm_gengrid_item_size_set(layout_inner, (h/3)-10, (h/3)-10); + } + return 0; +} + +int _gl_albums_sel_create_view(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->maininfo.naviframe, -1); + gl_dbg(""); + + /* Create tags view layout for Select album */ + Evas_Object *layout = NULL; + layout = _gl_ctrl_add_layout(ad->maininfo.naviframe); + GL_CHECK_VAL(layout, -1); + 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); + /* Register delete callback */ + evas_object_event_callback_add(layout, EVAS_CALLBACK_DEL, + __gl_albums_sel_delete_layout_cb, data); + /* Save view mode */ + int pre_view_m = gl_get_view_mode(data); + /* Set view mode of Select album */ + gl_set_view_mode(data, GL_VIEW_ALBUMS_SELECT); + Evas_Object *view = NULL; + /* Create tags view for Select album */ + view = _gl_albums_create_sel_gengrid(data); + if (view == NULL) { + evas_object_del(layout); + /* Reset view mode */ + gl_set_view_mode(data, pre_view_m); + gl_dbgW("None albums!"); + /* Add notification */ + _gl_notify_create_notiinfo(GL_STR_ADDED); + return -1; + } + if (_gl_albums_create_split_album_sel_view(ad, view) == -1) { + gl_dbgE("Failed to add album split view!"); + evas_object_del(layout); + /* Reset view mode */ + gl_set_view_mode(data, pre_view_m); + /* Add notification */ + _gl_notify_create_notiinfo(GL_STR_ADDED); + return -1; + } + + int length = eina_list_count(ad->albuminfo.elist->clist); + gl_cluster *album_item = NULL; + gl_dbg("Albums length: %d", length); + if (length > 0) { + album_item = eina_list_nth(ad->albuminfo.elist->clist, 0); + } else { + view = NULL; + evas_object_del(layout); + /* Reset view mode */ + gl_set_view_mode(data, pre_view_m); + gl_dbgW("None albums!"); + /* Add notification */ + _gl_notify_create_notiinfo(GL_STR_ADDED); + return -1; + } + __gl_albums_new_album_sel(album_item, view, (void *)album_item->item); + + /* Set view to layout */ + int w = -1, h = -1; + evas_object_geometry_get(ad->maininfo.win, NULL, NULL, &w, &h); + Edje_Message_Int *msg = (Edje_Message_Int *)malloc(sizeof(Edje_Message_Int) + sizeof(int)); + GL_CHECK_VAL(msg, -1); + msg->val = ((w < h) ? (w / 3) : (h / 3)); + edje_object_message_send(elm_layout_edje_get(layout), EDJE_MESSAGE_INT, 1, msg); + free(msg); + elm_object_signal_emit(layout, "elm,splitview,state,visible", "elm"); + + if (w < h) { + elm_gengrid_item_size_set(view, (w/3)-10, (w/3)-10); + } else { + elm_gengrid_item_size_set(view, (h/3)-10, (h/3)-10); + } + elm_object_part_content_set(layout, "split.view", view); + Evas_Object *gesture = _gl_tile_add_gesture(data, layout); + if (gesture == NULL) + gl_dbgE("Failed to create gesture!"); + else + elm_object_part_content_set(layout, "gesture", gesture); + ad->albuminfo.select_view = view; + ad->albuminfo.select_layout = layout; + __gl_albums_sel_push_view(data, ad->maininfo.naviframe, layout, + "Select Item"); + __gl_albums_new_album_sel(album_item, view, (void *)album_item->item); + /* Save pointer of View and Layout */ + elm_object_part_content_set(layout, "elm.swallow.view", ad->gridinfo.select_view); + ad->albuminfo.select_view = view; + ad->albuminfo.select_layout = layout; + _gl_editfield_destroy_imf(data); + gl_dbg("Done"); + return 0; +} + +int _gl_albums_sel_update_view(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + /* Append griditems */ + _gl_albums_create_items(data, ad->albuminfo.select_view); + return 0; +} + +/* callback after user tap Cancel button in option header in select album view */ +int _gl_albums_sel_pop_view(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + /* In Albums TAB */ + if (_gl_ctrl_get_tab_mode(ad) == GL_CTRL_TAB_ALBUMS) { + elm_naviframe_item_pop_to(ad->ctrlinfo.nf_it); + _gl_albums_close_album(ad); + } else if (_gl_ctrl_get_tab_mode(ad) == GL_CTRL_TAB_TIMELINE) { + elm_naviframe_item_pop_to(ad->ctrlinfo.nf_it); + gl_set_view_mode(data, GL_VIEW_TIMELINE); + _gl_timeline_update_view(ad); + } + return 0; +} + +int _gl_albums_sel_rotate_view(void *data) +{ + GL_CHECK_VAL(data, -1); + return 0; +} + +static void _gl_albums_sel_update_album_sel_list(void *data) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK(ad->albuminfo.elist); + GL_CHECK(ad->albuminfo.elist->clist); + gl_cluster *album_item = NULL; + gl_item *item = NULL; + int length, i; + Eina_List *clist = ad->albuminfo.elist->clist; + length = eina_list_count(clist); + + for (i = 0; i < length; i++) { + album_item = eina_list_nth(clist, i); + if (album_item && album_item->elist) { + EINA_LIST_FREE(album_item->elist, item) { + if (item) { + item->checked = false; + } + } + } + } +} + diff --git a/src/features/gl-albums.c b/src/features/gl-albums.c new file mode 100644 index 0000000..873c9a3 --- /dev/null +++ b/src/features/gl-albums.c @@ -0,0 +1,1683 @@ +/* +* 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 "gl-debug.h" +#include "gl-albums.h" +#include "gl-thumbs.h" +#include "gl-main.h" +#include "gl-controlbar.h" +#include "gl-ui-util.h" +#include "gl-util.h" +#include "gl-button.h" +#include "gl-data.h" +#include "gl-popup.h" +#include "gl-ctxpopup.h" +#include "gl-progressbar.h" +#include "gl-pinchzoom.h" +#include "gl-tile.h" +#include "gl-ext-exec.h" +#include "gl-thumbs-sel.h" +#include "gl-thumbs-edit.h" +#include "gl-albums-sel.h" +#include "gl-albums-edit.h" +#include "gl-albums-rename.h" +#include "gl-albums-new.h" +#include "gl-strings.h" +#include "gl-nocontents.h" +#include "gl-notify.h" +#include "gl-ext-ug-load.h" +#ifdef _USE_ROTATE_BG +#include "gl-rotate-bg.h" +#include "gl-exif.h" +#endif +#include "gl-gesture.h" +#include "gl-file-util.h" + +static int __gl_albums_create_thumb(gl_item *gitem, gl_cluster *album); +static Eina_Bool __gl_albums_pop_op(void *data); +#ifdef SUPPORT_SLIDESHOW +static int __gl_albums_slideshow(void *data, const char *label); +#endif + +static void __gl_albums_realized(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + /* Register idler if needed */ + _gl_main_add_reg_idler(data); + + GL_CHECK(ei); + Elm_Object_Item *it = (Elm_Object_Item *)ei; + gl_cluster *album = elm_object_item_data_get(it); + GL_CHECK(album); + GL_CHECK(album->cluster); + GL_CHECK(album->cover); + GL_CHECK(album->cover->item); + + gl_dbg("realized"); + if (!GL_FILE_EXISTS(album->cover->item->thumb_url) && + GL_FILE_EXISTS(album->cover->item->file_url) && + (album->cluster->type == GL_STORE_T_PHONE || + album->cluster->type == GL_STORE_T_MMC || + album->cluster->type == GL_STORE_T_ALL)) + __gl_albums_create_thumb(album->cover, album); +} + +static void __gl_albums_unrealized(void *data, Evas_Object *obj, void *ei) +{ + gl_dbg("unrealized"); + GL_CHECK(ei); + Elm_Object_Item *it = (Elm_Object_Item *)ei; + gl_cluster *album = elm_object_item_data_get(it); + GL_CHECK(album); + GL_CHECK(album->cluster); + GL_CHECK(album->cover); + GL_CHECK(album->cover->item); + + /* Checking for local files only */ + if (album->cluster->type == GL_STORE_T_PHONE || + album->cluster->type == GL_STORE_T_MMC || + album->cluster->type == GL_STORE_T_ALL) { + if (album->cover->item->b_create_thumb) { + _gl_data_cancel_thumb(album->cover->item); + } + } +} + +static void __gl_split_albums_realized(void *data, Evas_Object *obj, void *ei) +{ + gl_dbg("split view realized"); + GL_CHECK(data); + GL_CHECK(ei); + Elm_Object_Item *it = (Elm_Object_Item *)ei; + gl_cluster *album = elm_object_item_data_get(it); + GL_CHECK(album); + GL_CHECK(album->cluster); + GL_CHECK(album->cover); + GL_CHECK(album->cover->item); + gl_appdata *ad = (gl_appdata *)album->ad; + + if (ad->albuminfo.grid_sel_item) { + if (ad->albuminfo.selected_uuid) { + gl_dbg("Current item UUID : %s ", album->cluster->uuid); + gl_dbg("album view selected item UUID : %s ", ad->albuminfo.selected_uuid); + if (!strcmp(album->cluster->uuid, ad->albuminfo.selected_uuid)) { + ad->albuminfo.grid_sel_item = ei; + elm_object_item_signal_emit((Elm_Object_Item *)ei, "elm,state,focused", "elm"); + } else { + elm_object_item_signal_emit((Elm_Object_Item *)ei, "elm,state,unfocused", "elm"); + } + } + } + gl_dbg("realized"); +} + +#if 0 +static void __gl_albums_lang_changed(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + gl_albums_update_items(ad); +} +#endif + +void __gl_albums_new_album_sel(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_cluster *album_item = (gl_cluster *)data; + GL_CHECK(album_item->cluster); + GL_CHECK(album_item->ad); + gl_appdata *ad = (gl_appdata *)album_item->ad; + int view_mode = gl_get_view_mode(ad); + elm_gengrid_item_selected_set(ei, EINA_FALSE); + _gl_data_selected_list_finalize(ad); + + gl_dbg("view mode: %d.", view_mode); + if (view_mode != GL_VIEW_ALBUMS_EDIT) { + if (album_item->cluster->count == 0) { + gl_dbgW("Empty album, return!"); + return; + } + /* Save scroller position before clearing gengrid */ + _gl_ui_save_scroller_pos(obj); + gl_albums_open_album(album_item); + elm_object_item_signal_emit((Elm_Object_Item *)ei, "elm,state,focused", "elm"); + if (ad->albuminfo.grid_sel_item) { + gl_cluster *album_data = NULL; + album_data = elm_object_item_data_get(ad->albuminfo.grid_sel_item); + if (album_data) { + if (0 == strcmp(album_item->cluster->uuid, album_data->cluster->uuid)) { + gl_dbgW("Item matched. No need to remove focus"); + } else { + elm_object_item_signal_emit(ad->albuminfo.grid_sel_item, "elm,state,unfocused", "elm"); + } + } + } + ad->albuminfo.grid_sel_item = ei; + if (ad->albuminfo.selected_uuid) { + free(ad->albuminfo.selected_uuid); + ad->albuminfo.selected_uuid = NULL; + } + ad->albuminfo.selected_uuid = strdup(album_item->cluster->uuid); + } +} + +/* Callback of album item selection */ +static void __gl_albums_sel_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_cluster *album_item = (gl_cluster *)data; + GL_CHECK(album_item->cluster); + GL_CHECK(album_item->ad); + gl_appdata *ad = (gl_appdata *)album_item->ad; + int view_mode = gl_get_view_mode(ad); + elm_gengrid_item_selected_set(ei, EINA_FALSE); + + gl_dbg("view mode: %d.", view_mode); + if (view_mode != GL_VIEW_ALBUMS_EDIT && view_mode != GL_VIEW_ALBUM_REORDER) { + if (album_item->cluster->count == 0) { + gl_dbgW("Empty album, return!"); + return; + } + /* Save scroller position before clearing gengrid */ + _gl_ui_save_scroller_pos(obj); + gl_albums_open_album(album_item); + elm_object_item_signal_emit((Elm_Object_Item *)ei, "elm,state,focused", "elm"); + if (ad->albuminfo.grid_sel_item) { + gl_cluster *album_data = NULL; + album_data = elm_object_item_data_get(ad->albuminfo.grid_sel_item); + if (album_data) { + if (strcmp(album_item->cluster->uuid, album_data->cluster->uuid)) { + elm_object_item_signal_emit(ad->albuminfo.grid_sel_item, "elm,state,unfocused", "elm"); + } + } + } + ad->albuminfo.grid_sel_item = ei; + if (ad->albuminfo.selected_uuid) { + free(ad->albuminfo.selected_uuid); + ad->albuminfo.selected_uuid = NULL; + } + ad->albuminfo.selected_uuid = strdup(album_item->cluster->uuid); + } +} + +static char *__gl_albums_get_text(void *data, Evas_Object *obj, const char *part) +{ + GL_PROFILE_IN; + GL_CHECK_NULL(part); + GL_CHECK_NULL(strlen(part)); + GL_CHECK_NULL(data); + gl_cluster *album_item = (gl_cluster *)data; + GL_CHECK_NULL(album_item->cluster); + GL_CHECK_NULL(album_item->cluster->display_name); + GL_CHECK_NULL(album_item->cluster->uuid); + GL_CHECK_NULL(album_item->ad); + char buf[GL_ALBUM_NAME_LEN_MAX] = { 0, }; + + if (!g_strcmp0(part, "elm.text.name")) { + GL_PROFILE_F_OUT("__gl_albums_get_text(name)"); + GL_PROFILE_F_OUT("__gl_albums_get_text(count)"); + } else if (!g_strcmp0(part, "elm.text.date")) { + if (album_item->cover) { + _gl_data_util_free_gitem(album_item->cover); + album_item->cover = NULL; + } + gl_item *gitem = NULL; + _gl_data_get_album_cover(album_item, &gitem, + MEDIA_CONTENT_ORDER_DESC); + if (gitem == NULL || gitem->item == NULL) { + gl_dbg("Empty album..."); + _gl_data_util_free_gitem(gitem); + album_item->cover_thumbs_cnt = 0; + return NULL; + } + + album_item->cover_thumbs_cnt = GL_ALBUM_COVER_THUMB_NUM; + album_item->cover = gitem; + GL_PROFILE_F_OUT("__gl_albums_get_text(date)"); + } else if (!g_strcmp0(part, "elm.text.badge")) { + if (gl_get_view_mode(album_item->ad) == GL_VIEW_THUMBS_EDIT || + gl_get_view_mode(album_item->ad) == GL_VIEW_THUMBS_SELECT) { + if (album_item->elist) { + int sel_cnt = eina_list_count(album_item->elist); + if (sel_cnt > 0) { + elm_object_item_signal_emit(album_item->item, + "elm,state,elm.text.badge,visible", + "elm"); + snprintf(buf, sizeof(buf), "%d", sel_cnt); + } else { + elm_object_item_signal_emit(album_item->item, + "elm,state,elm.text.badge,hidden", + "elm"); + } + } else { + elm_object_item_signal_emit(album_item->item, + "elm,state,elm.text.badge,hidden", + "elm"); + } + } else { + elm_object_item_signal_emit(album_item->item, + "elm,state,elm.text.badge,hidden", + "elm"); + } + } + return strdup(buf); +} + +/* Only for local medias */ +static void __gl_albums_create_thumb_cb(media_content_error_e error, + const char *path, void *user_data) +{ + GL_CHECK(user_data); + gl_album_data_s *album_data = (gl_album_data_s *)user_data; + GL_CHECK(album_data->ad); + gl_appdata *ad = (gl_appdata *)album_data->ad; + gl_cluster *album = album_data->album; + GL_FREE(album_data); + album->album_data = NULL; + + if (gl_get_view_mode(ad) != GL_VIEW_ALBUMS && + gl_get_view_mode(ad) != GL_VIEW_ALBUMS_EDIT && + gl_get_view_mode(ad) != GL_VIEW_ALBUMS_SELECT) + return; + + if (error == MEDIA_CONTENT_ERROR_NONE && GL_FILE_EXISTS(path) && + g_strcmp0(path, GL_ICON_DB_DEFAULT_THUMB)) { + GL_CHECK(album); + GL_CHECK(album->item); + elm_gengrid_item_update(album->item); + } else { + gl_sdbgE("[%d]Invalid path[%s]!", error, path); + } +} + +/* Use file to create new thumb if possible */ +static int __gl_albums_create_thumb(gl_item *gitem, gl_cluster *album) +{ + GL_CHECK_VAL(gitem, -1); + GL_CHECK_VAL(gitem->item, -1); + GL_CHECK_VAL(gitem->item->file_url, -1); + GL_CHECK_VAL(album, -1); + + if (GL_FILE_EXISTS(gitem->item->file_url)) { + gl_album_data_s *album_data = NULL; + album_data = (gl_album_data_s *)calloc(1, sizeof(gl_album_data_s)); + GL_CHECK_VAL(album_data, -1); + album_data->ad = album->ad; + album_data->album = album; + album->album_data = album_data; + _gl_data_create_thumb(gitem->item, __gl_albums_create_thumb_cb, + album_data); + return 0; + } + return -1; +} + +static int __gl_albums_set_bg_file(Evas_Object *bg, void *data) +{ + GL_CHECK_VAL(data, -1); + gl_item *git = (gl_item *)data; + GL_CHECK_VAL(git->album, -1); + + char *bg_path = GL_ICON_NO_THUMBNAIL; + gl_icon_type_e ret_val = -1; + + if (git == NULL || git->item == NULL) { + gl_dbgE("Invalid item :%p", git); + goto GL_ALBUMS_FAILED; + } + + ret_val = 0; + bg_path = GL_ICON_NO_THUMBNAIL; + if (GL_FILE_EXISTS(git->item->thumb_url)) + bg_path = git->item->thumb_url; + else + ret_val = -1; + + GL_ALBUMS_FAILED: + +#ifdef _USE_ROTATE_BG + _gl_rotate_bg_set_image_file(bg, bg_path); +#else + elm_bg_file_set(bg, bg_path, NULL); +#endif + + return ret_val; +} + +static Evas_Object *__gl_albums_get_type_icon(Evas_Object *obj, gl_cluster *album) +{ + GL_CHECK_NULL(album); + GL_CHECK_NULL(album->cluster); + GL_CHECK_NULL(obj); + Evas_Object *_obj = NULL; + + if (_gl_data_is_camera_album(album->cluster)) + _obj = _gl_tile_show_part_type_icon(obj, + GL_TILE_TYPE_CAMERA); + else if (_gl_data_is_default_album(GL_STR_ALBUM_DOWNLOADS, album->cluster)) + _obj = _gl_tile_show_part_type_icon(obj, + GL_TILE_TYPE_DOWNLOAD); + else + _obj = _gl_tile_show_part_type_icon(obj, + GL_TILE_TYPE_FOLDER); + return _obj; +} + +static void +_gl_count_set(Evas_Object *layout, const char *text) +{ + Evas_Object *edje; + Edje_Message_Float *msg; + if (text) { + elm_layout_text_set(layout, "elm.sub.text", text); + } + else { + elm_layout_text_set(layout, "elm.sub.text", ""); + } + edje = elm_layout_edje_get(layout); + msg = calloc(1, sizeof(Edje_Message_Float)); + if (msg) { + msg->val = elm_config_scale_get(); + edje_object_message_send(edje, EDJE_MESSAGE_FLOAT, 0, msg); + } +} + +static Evas_Object *__gl_albums_get_content(void *data, Evas_Object *obj, + const char *part) +{ + GL_CHECK_NULL(part); + GL_CHECK_NULL(strlen(part)); + GL_CHECK_NULL(data); + gl_cluster *album_item = (gl_cluster *)data; + GL_CHECK_NULL(album_item->cluster); + GL_CHECK_NULL(album_item->ad); + gl_appdata *ad = (gl_appdata *)album_item->ad; + GL_CHECK_NULL(album_item->cluster->uuid); + int view_mode = gl_get_view_mode(ad); + + if (view_mode != GL_VIEW_ALBUMS && + view_mode != GL_VIEW_ALBUMS_EDIT && + view_mode != GL_VIEW_ALBUMS_SELECT && + view_mode != GL_VIEW_THUMBS && + view_mode != GL_VIEW_THUMBS_EDIT && + view_mode != GL_VIEW_THUMBS_SELECT && + view_mode != GL_VIEW_ALBUM_REORDER) { + gl_dbg("Album is empty, view mode is : % d", view_mode); + return NULL; + } + Evas_Object *_obj = NULL; + + + if (!g_strcmp0(part, "elm.text.name.swallow")) { + char cnt[GL_ALBUM_NAME_LEN_MAX] = { 0, }; + Evas_Object *layout = elm_layout_add(obj); + elm_layout_file_set(layout, GL_EDJ_FILE, "ceter_algined_text_layout"); + char *i18n_name = _gl_get_i18n_album_name(album_item->cluster); + elm_layout_text_set(layout, "elm.text", elm_entry_utf8_to_markup(_gl_str(i18n_name))); + snprintf(cnt, sizeof(cnt), "(%d)", (int)(album_item->cluster->count)); + _gl_count_set(layout, cnt); + + return layout; + } else if (!g_strcmp0(part, GL_TILE_ICON)) { + if (album_item->cover_thumbs_cnt <= 0) + gl_dbg("Empty album"); + + _obj = _gl_tile_show_part_icon(obj, part, + __gl_albums_set_bg_file, + (void *)(album_item->cover)); + int first_cnt = 2; + int level = (int)evas_object_data_get(ad->albuminfo.view, + GL_GESTURE_KEY_PINCH_LEVEL); + if (ad->maininfo.rotate_mode == APP_DEVICE_ORIENTATION_90 || + ad->maininfo.rotate_mode == APP_DEVICE_ORIENTATION_270 || + level == GL_ZOOM_NONE) + first_cnt = 3; + if (album_item->index < first_cnt && album_item->item) + elm_object_item_signal_emit(album_item->item, + "show_top_pad", + "padding.top"); + } else if (!g_strcmp0(part, GL_TILE_TYPE_ICON)) { + _obj = __gl_albums_get_type_icon(obj, album_item); + } else if (!g_strcmp0(part, GL_TILE_SD_ICON)) { + if (GL_STORE_T_MMC == album_item->cluster->type) { + _obj = _gl_tile_show_part_type_icon(obj, + GL_TILE_TYPE_MMC_STORAGE); + } else { + elm_object_item_signal_emit(album_item->item, + "hide_sd_icon", + "elm.swallow.sd_icon"); + } + } else if (view_mode == GL_VIEW_ALBUMS_EDIT) { + _obj = _gl_albums_edit_add_content(data, obj, part); + } + return _obj; +} + +static Evas_Object *__gl_albums_get_content_split_view(void *data, Evas_Object *obj, + const char *part) +{ + GL_CHECK_NULL(part); + GL_CHECK_NULL(strlen(part)); + GL_CHECK_NULL(data); + gl_cluster *album_item = (gl_cluster *)data; + GL_CHECK_NULL(album_item->cluster); + GL_CHECK_NULL(album_item->ad); + gl_appdata *ad = (gl_appdata *)album_item->ad; + GL_CHECK_NULL(album_item->cluster->uuid); + int view_mode = gl_get_view_mode(ad); + + if (view_mode != GL_VIEW_ALBUMS && + view_mode != GL_VIEW_ALBUMS_EDIT && + view_mode != GL_VIEW_ALBUMS_SELECT && + view_mode != GL_VIEW_THUMBS && + view_mode != GL_VIEW_THUMBS_EDIT && + view_mode != GL_VIEW_THUMBS_SELECT && + view_mode != GL_VIEW_ALBUM_REORDER) { + gl_dbg("Album is empty, view mode is : % d", view_mode); + return NULL; + } + Evas_Object *_obj = NULL; + + + if (!g_strcmp0(part, "elm.text.name.swallow")) { + char cnt[GL_ALBUM_NAME_LEN_MAX] = { 0, }; + Evas_Object *layout = elm_layout_add(obj); + elm_layout_file_set(layout, GL_EDJ_FILE, "ceter_algined_text_layout_split_view"); + char *i18n_name = _gl_get_i18n_album_name(album_item->cluster); + elm_layout_text_set(layout, "elm.text", _gl_str(i18n_name)); + snprintf(cnt, sizeof(cnt), "(%d)", (int)(album_item->cluster->count)); + _gl_count_set(layout, cnt); + + return layout; + } else if (!g_strcmp0(part, GL_TILE_ICON)) { + if (album_item->cover_thumbs_cnt <= 0) + gl_dbg("Empty album"); + + _obj = _gl_tile_show_part_icon(obj, part, + __gl_albums_set_bg_file, + (void *)(album_item->cover)); + int first_cnt = 2; + int level = (int)evas_object_data_get(ad->albuminfo.view, + GL_GESTURE_KEY_PINCH_LEVEL); + if (ad->maininfo.rotate_mode == APP_DEVICE_ORIENTATION_90 || + ad->maininfo.rotate_mode == APP_DEVICE_ORIENTATION_270 || + level == GL_ZOOM_NONE) + first_cnt = 3; + if (album_item->index < first_cnt && album_item->item) + elm_object_item_signal_emit(album_item->item, + "show_top_pad", + "padding.top"); + } else if (!g_strcmp0(part, GL_TILE_TYPE_ICON)) { + _obj = __gl_albums_get_type_icon(obj, album_item); + } else if (!g_strcmp0(part, GL_TILE_SD_ICON)) { + if (GL_STORE_T_MMC == album_item->cluster->type) { + _obj = _gl_tile_show_part_type_icon(obj, + GL_TILE_TYPE_MMC_STORAGE); + } else { + elm_object_item_signal_emit(album_item->item, + "hide_sd_icon", + "elm.swallow.sd_icon"); + } + } else if (view_mode == GL_VIEW_ALBUMS_EDIT) { + _obj = _gl_albums_edit_add_content(data, obj, part); + } + return _obj; +} + + +static Eina_Bool __gl_albums_close_album_cb(void *data, Elm_Object_Item *it) +{ + GL_CHECK_FALSE(data); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg(""); + _gl_albums_close_album(ad); + _gl_albums_check_btns(data); + return EINA_TRUE; +} + +static void __gl_albums_longpressed_cb(void *data, Evas_Object *obj, void *ei) +{ + gl_dbg("unrealized"); + GL_CHECK(ei); + GL_CHECK(data); + + if (GL_VIEW_ALBUMS != gl_get_view_mode(data)) + return; + Elm_Object_Item *it = (Elm_Object_Item *)ei; + gl_cluster *album = elm_object_item_data_get(it); + GL_CHECK(album); + _gl_albums_set_current(data, album); +#if 0 + _gl_data_finalize_albums_selected_list(data); + _gl_data_albums_selected_list_append(data, album); +#endif +} + +/* Free data after layout deleted */ +static void __gl_albums_delete_layout_cb(void *data, Evas *e, Evas_Object *obj, + void *ei) +{ + gl_dbg("Delete layout ---"); + GL_CHECK(data); + gl_albums_free_data(data); + _gl_data_clear_cluster_list(data, true); + gl_dbg("Delete layout +++"); +} + +static void __gl_albums_newalbum_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + _gl_ctxpopup_del(data); + ad->albuminfo.b_new_album = true; + gl_dbg(""); + _gl_albums_new_create_view(data, _gl_albums_sel_create_view); +} + +static void __gl_reorder_soft_back_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + __gl_albums_pop_op(data); +} + +static void __gl_albums_reorder_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + _gl_ctxpopup_del(data); + int view_mode = gl_get_view_mode(ad); + if (view_mode == GL_VIEW_ALBUMS) { + gl_set_view_mode(ad, GL_VIEW_ALBUM_REORDER); + elm_gengrid_reorder_mode_set(ad->albuminfo.view, EINA_TRUE); + _gl_ui_disable_menu(ad->ctrlinfo.nf_it, true); + _gl_ui_change_navi_title(ad->ctrlinfo.nf_it, GL_STR_ID_REORDER, true); + Evas_Object *btn = elm_button_add(ad->albuminfo.view); + GL_CHECK(btn); + elm_object_style_set(btn, "naviframe/end_btn/default"); + evas_object_smart_callback_add(btn, "clicked", __gl_reorder_soft_back_cb, data); + elm_object_item_part_content_set(ad->ctrlinfo.nf_it, GL_NAVIFRAME_PREV_BTN, btn); + evas_object_smart_callback_del(ad->albuminfo.view, "longpressed", __gl_albums_longpressed_cb); + } +} + +static void __gl_albums_viewas_pop_cb(void *data, Evas_Object *obj, void *ei) +{ + gl_dbg("ENTRY"); + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + int state_index = 1; // default is album + int view_mode = gl_get_view_mode(ad); + if (view_mode == GL_VIEW_TIMELINE) { + state_index = 0; + } else if (view_mode == GL_VIEW_ALBUMS) { + state_index = 1; + } + _gl_list_pop_create(data, obj, ei, GL_STR_ID_VIEW_AS, GL_STR_TIME_VIEW, GL_STR_ALBUMS, state_index); + gl_dbg("EXIT"); +} +static void __gl_albums_edit_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + _gl_ctxpopup_del(data); + if (ad->uginfo.ug) { + /** + * Prevent changed to edit view in wrong way. + * 1. When invoke imageviewer UG; + */ + gl_dbg("UG invoked or appending gridview."); + return; + } + + int view_mode = gl_get_view_mode(data); + gl_dbg("mode: %d", view_mode); + if (view_mode == GL_VIEW_ALBUMS) { + _gl_albums_change_mode(data, true); + } +} + +#if 0 +static void __gl_albums_share_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + _gl_ctxpopup_del(data); + if (ad->uginfo.ug) { + /** + * Prevent changed to edit view in wrong way. + * 1. When invoke imageviewer UG; + */ + gl_dbg("UG invoked or appending gridview."); + return; + } + ad->albuminfo.b_share_mode = GL_GRID_SHARE; + __gl_albums_edit_cb(data, NULL, NULL); +} +#endif + +#ifdef SUPPORT_SLIDESHOW +static int __gl_albums_start_slideshow(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + ad->gridinfo.grid_type = GL_GRID_T_ALLALBUMS; + + Eina_List *list = NULL; + gl_item *gitem = NULL; + gl_media_s *item = NULL; + bool is_all = true; + if (ad->albuminfo.sel_elist && + eina_list_count(ad->albuminfo.sel_elist) > 0) { + gl_cluster *album = NULL; + album = eina_list_nth(ad->albuminfo.sel_elist, 0); + _gl_data_get_items_album(data, album, 0, 0, &list); + gitem = (gl_item *)eina_list_nth(list, 0); + is_all = false; + } else { + _gl_data_get_items(GL_FIRST_VIEW_START_POS, + GL_FIRST_VIEW_START_POS, &list); + item = (gl_media_s *)eina_list_nth(list, 0); + gitem = _gl_data_new_item_mitem(item); + } + if (list) + eina_list_free(list); + if (gitem) { + GL_CHECK_VAL(gitem, -1); + if (is_all) + gl_ext_load_iv_ug(data, gitem, GL_UG_IV_SLIDESHOW_ALL); + else + gl_ext_load_iv_ug(data, gitem, GL_UG_IV_SLIDESHOW); + } + if (gitem) + _gl_data_util_free_gitem(gitem); + _gl_data_finalize_albums_selected_list(data); + return 0; +} +#endif + +#ifdef _USE_APP_SLIDESHOW +/* TO select thumb for slideshow */ +static int __gl_albums_select_slideshow(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + int item_cnt = 0; + int ret = -1; + + ret = _gl_data_get_item_cnt(GL_ALBUM_ALL_ID, GL_STORE_T_ALL, &item_cnt); + if (ret != 0 || item_cnt == 0) { + gl_dbgE("Empty!"); + return -1; + } + + gl_cluster *cluster = NULL; + _gl_data_get_cluster_by_id(data, GL_ALBUM_ALL_ID, &cluster); + GL_CHECK_VAL(cluster, -1); + _gl_albums_set_current(data, cluster); + Eina_List *medias_elist = NULL; + _gl_data_get_items_album(data, cluster, GL_FIRST_VIEW_START_POS, + GL_FIRST_VIEW_END_POS, &medias_elist); + _gl_thumbs_set_edit_mode(data, GL_THUMBS_EDIT_SLIDESHOW); + _gl_thumbs_set_list(ad, medias_elist); + _gl_thumbs_create_view(data, GL_NAVI_THUMBS, GL_STR_ID_ALL_ALBUMS, true, + __gl_albums_close_album_cb); + + gl_dbg("Done edit"); + return 0; +} +#endif + +#ifdef SUPPORT_SLIDESHOW +static int __gl_albums_slideshow(void *data, const char *label) +{ + GL_CHECK_VAL(label, -1); + GL_CHECK_VAL(data, -1); + gl_dbg("label : %s ", label); + gl_appdata *ad = (gl_appdata *)data; + + if (!g_strcmp0(label, _gl_str(GL_STR_ID_ALL_ITEMS))) { + __gl_albums_start_slideshow(data); + } else if (!g_strcmp0(label, _gl_str(GL_STR_ID_SETTINGS))) { + evas_object_data_set(ad->maininfo.naviframe, + GL_NAVIFRAME_SLIDESHOW_DATA_KEY, + __gl_albums_start_slideshow); + gl_ext_load_ug(data, GL_UG_GALLERY_SETTING_SLIDESHOW); + } else if (!g_strcmp0(label, _gl_str(GL_STR_ID_SELECT_ITEMS))) { +#ifdef _USE_APP_SLIDESHOW + __gl_albums_select_slideshow(data); + evas_object_data_set(ad->maininfo.naviframe, + GL_NAVIFRAME_SELECTED_SLIDESHOW_KEY, + gl_pop_to_ctrlbar_ly); +#else + _gl_ext_launch_gallery_ug(data); +#endif + } else { + gl_dbgE("Invalid lable!"); + return -1; + } + return 0; +} + +static void __gl_albums_slideshow_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + _gl_ctxpopup_del(data); + _gl_popup_create_slideshow(data, __gl_albums_slideshow); +} +#endif + +static int __gl_albums_ctxpopup_append(void *data, Evas_Object *parent) +{ + gl_dbg(""); + GL_CHECK_VAL(parent, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + if (ad->albuminfo.elist->edit_cnt > 0) { + /* 1. View As*/ + _gl_ctxpopup_append(parent, GL_STR_ID_VIEW_AS, + __gl_albums_viewas_pop_cb, data); + /* 2. New album*/ + _gl_ctxpopup_append(parent, GL_STR_ID_NEW_ALBUM, + __gl_albums_newalbum_cb, data); + _gl_ctxpopup_append(parent, GL_STR_ID_REORDER, + __gl_albums_reorder_cb, data); + /* 3. Delete */ + _gl_ctxpopup_append(parent, GL_STR_ID_DELETE, __gl_albums_edit_cb, + data); +#ifdef SUPPORT_SLIDESHOW + /* 4. Slideshow */ + _gl_ctxpopup_append(parent, GL_STR_ID_SLIDESHOW, + __gl_albums_slideshow_cb, data); +#endif + } + return 0; +} + +static void __gl_albums_more_btn_cb(void *data, Evas_Object *obj, void *ei) +{ + gl_dbg("more button clicked"); + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + Evas_Object *more = NULL; + more = _gl_ui_get_btn(NULL, ad->ctrlinfo.nf_it, GL_NAVIFRAME_MORE); + if (EINA_TRUE == elm_object_disabled_get(more)) { + gl_dbg("Menu is disabled"); + return; /* Menu is disabled */ + } + + _gl_ctxpopup_create(data, obj, __gl_albums_ctxpopup_append); +} + +/*static void __gl_albums_camera_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_dbg(""); + _gl_ext_load_camera(data); +}*/ + +void _gl_update_list_data(void *data) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + Elm_Object_Item *l_it = elm_gengrid_last_item_get(ad->albuminfo.view); + Elm_Object_Item *f_it = elm_gengrid_first_item_get(ad->albuminfo.view); + gl_cluster *album_item = NULL; + Eina_List *list = NULL; + if (f_it) { + album_item = elm_object_item_data_get(f_it); + if (album_item) { + list = eina_list_append(list, album_item); + album_item = NULL; + } + } + if (l_it && f_it) { + while (f_it != l_it) { + f_it = elm_gengrid_item_next_get(f_it); + if (f_it) { + album_item = elm_object_item_data_get(f_it); + if (album_item) { + list = eina_list_append(list, album_item); + album_item = NULL; + } + } + } + } + if (list) { + ad->albuminfo.elist->clist = list; + } else if (list == NULL) { + gl_dbg("new list is null"); + } +} + +static Eina_Bool __gl_albums_pop_op(void *data) +{ + GL_CHECK_FALSE(data); + if (gl_get_view_mode(data) == GL_VIEW_ALBUMS_EDIT) { + gl_dbg("EDIT"); + _gl_albums_change_mode(data, false); + /* Just cancel edit view, dont lower app to background */ + return EINA_TRUE; + } else if (gl_get_view_mode(data) == GL_VIEW_ALBUM_REORDER) { + gl_appdata *ad = (gl_appdata *)data; + gl_set_view_mode(ad, GL_VIEW_ALBUMS); + elm_gengrid_reorder_mode_set(ad->albuminfo.view, EINA_FALSE); + Evas_Object *unset = elm_object_item_part_content_unset(ad->ctrlinfo.nf_it, GL_NAVIFRAME_PREV_BTN); + evas_object_hide(unset); + _gl_ui_disable_menu(ad->ctrlinfo.nf_it, false); + _gl_ui_change_navi_title(ad->ctrlinfo.nf_it, GL_STR_ID_ALBUM, true); + _gl_update_list_data(data); + evas_object_smart_callback_add(ad->albuminfo.view, "longpressed", __gl_albums_longpressed_cb, data); + return EINA_TRUE; + } + return EINA_FALSE; +} + +/** + * When push albums view for the first time, albums list is empty. + * After albums list got from DB then update edit item state. + */ +static int __gl_albums_add_btns(void *data) +{ + gl_dbg(""); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->maininfo.naviframe, -1); + GL_CHECK_VAL(ad->ctrlinfo.nf_it, -1); + Evas_Object *parent = ad->maininfo.naviframe; + Elm_Object_Item *nf_it = ad->ctrlinfo.nf_it; + Evas_Object *btn = NULL; + + /* Remove btns */ + _gl_ui_clear_btns(data); + /* More */ + btn = _gl_but_create_but(parent, NULL, NULL, GL_BUTTON_STYLE_NAVI_MORE, + __gl_albums_more_btn_cb, data); + GL_CHECK_VAL(btn, -1); + + elm_object_item_part_content_set(nf_it, GL_NAVIFRAME_MORE, btn); + _gl_albums_check_btns(data); + return 0; +} + +/* From thumbnails view to albums view */ +int _gl_albums_close_album(void *data) +{ + gl_dbg(""); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + gl_set_view_mode(ad, GL_VIEW_ALBUMS); + _gl_albums_set_current(data, NULL); + gl_albums_update_items(ad); + return 0; +} + +/* Update albums view */ +int gl_albums_update_items(void *data) +{ + GL_PROFILE_IN; + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->albuminfo.elist, -1); + int view_mode = gl_get_view_mode(ad); + ad->albuminfo.albums_cnt = 0; + gl_dbg(""); + + /* Changed to show no contents if needed */ + elm_naviframe_item_title_enabled_set(ad->ctrlinfo.nf_it, EINA_TRUE, EINA_TRUE); + if (gl_check_gallery_empty(ad)) { + + GL_ALBUMS_SHOW_NOCONTENTS: + + if (ad->albuminfo.view) { + /* Clear callbacks for gengrid view */ + if (ad->albuminfo.nocontents == NULL) { + _gl_albums_clear_cbs(ad->albuminfo.view); + _gl_ui_del_scroller_pos(ad->albuminfo.view); + } + evas_object_del(ad->albuminfo.view); + } + + Evas_Object *noc = _gl_nocontents_create(ad->ctrlinfo.ctrlbar_view_ly); + ad->albuminfo.nocontents = noc; + ad->albuminfo.view = noc; + evas_object_show(noc); + + elm_naviframe_item_title_enabled_set(ad->ctrlinfo.nf_it, EINA_FALSE, EINA_FALSE); + Evas_Object *old_view = NULL; + old_view = elm_object_part_content_unset(ad->ctrlinfo.ctrlbar_view_ly, + "elm.swallow.view"); + GL_IF_DEL_OBJ(old_view); + elm_object_part_content_set(ad->ctrlinfo.ctrlbar_view_ly, + "elm.swallow.view", noc); + } else { + if (view_mode == GL_VIEW_ALBUMS_EDIT) { + _gl_albums_create_items(ad, ad->albuminfo.view); + /* Display selectioninfo */ + int cnt = _gl_data_get_albums_selected_cnt(ad); + _gl_notify_check_selall(ad, ad->ctrlinfo.nf_it, + ad->albuminfo.albums_cnt, cnt); + /* Update the label text */ + _gl_ui_update_navi_title_text(ad->ctrlinfo.nf_it, cnt, false); + } else { + if (ad->albuminfo.nocontents) { + /** + * current view is nocontents, + * unset it first then create albums view. + */ + gl_albums_remove_nocontents(ad); + } else { + if (_gl_albums_create_items(ad, ad->albuminfo.view) < 0) { + gl_dbgW("To show nocontents!"); + goto GL_ALBUMS_SHOW_NOCONTENTS; + } + } + } + } + GL_PROFILE_OUT; + return 0; +} + +/* Add albums view and append nothing */ +int _gl_albums_create_view(void *data, Evas_Object *parent) +{ + GL_PROFILE_IN; + GL_CHECK_VAL(parent, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + Evas_Object *layout_inner = NULL; + layout_inner = _gl_albums_add_gengrid(ad, parent); + GL_CHECK_VAL(layout_inner, -1); + elm_object_part_content_set(parent, "elm.swallow.view", layout_inner); + ad->albuminfo.view = layout_inner; + /* Register delete callback */ + evas_object_event_callback_add(parent, EVAS_CALLBACK_DEL, + __gl_albums_delete_layout_cb, data); + GL_PROFILE_OUT; + return 0; +} + +/* Update albums list and refresh albums view, remove invalid widgets */ +int gl_albums_update_view(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + int view_mode = gl_get_view_mode(ad); + gl_dbg("view_mode: %d.", view_mode); + + ad->albuminfo.albums_cnt = 0; + + if (view_mode == GL_VIEW_ALBUMS) { + gl_albums_update_items(data); + _gl_albums_check_btns(data); + } else if (view_mode == GL_VIEW_ALBUMS_EDIT) { + _gl_albums_edit_update_view(data); + } else if (view_mode == GL_VIEW_ALBUMS_RENAME) { + _gl_albums_rename_update_view(data); + } + return 0; +} + +/* From albums edit view to albums view */ +int gl_albums_change_to_view(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->albuminfo.elist, -1); + gl_dbg(""); + + ad->albuminfo.albums_cnt = 0; + GL_CHECK_VAL(ad->albuminfo.view, -1); + gl_set_view_mode(ad, GL_VIEW_ALBUMS); + /* changed to show no contents if needed */ + elm_naviframe_item_title_enabled_set(ad->ctrlinfo.nf_it, EINA_TRUE, EINA_TRUE); + if (gl_check_gallery_empty(ad)) { + if (ad->albuminfo.view) { + /* Clear callbacks for gengrid view */ + if (ad->albuminfo.nocontents == NULL) { + _gl_albums_clear_cbs(ad->albuminfo.view); + _gl_ui_del_scroller_pos(ad->albuminfo.view); + } + evas_object_del(ad->albuminfo.view); + } + + Evas_Object *noc = _gl_nocontents_create(ad->ctrlinfo.ctrlbar_view_ly); + ad->albuminfo.nocontents = noc; + ad->albuminfo.view = noc; + evas_object_show(noc); + + elm_naviframe_item_title_enabled_set(ad->ctrlinfo.nf_it, EINA_FALSE, EINA_FALSE); + Evas_Object *old_view = NULL; + old_view = elm_object_part_content_unset(ad->ctrlinfo.ctrlbar_view_ly, + "elm.swallow.view"); + evas_object_hide(old_view); + elm_object_part_content_set(ad->ctrlinfo.ctrlbar_view_ly, + "elm.swallow.view", noc); + } else { + _gl_albums_create_items(ad, ad->albuminfo.view); + } + return 0; +} + +/** +* Remove nocontents view and show albums view. +* Case 1, gallery is empty->home key tapped +* ->take photos with camera->back to gallery; +* Case 2, gallery is empty->add web album +* ->update albums view. +*/ +int gl_albums_remove_nocontents(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + Evas_Object *view = NULL; + gl_dbg(""); + + if (ad->albuminfo.nocontents && !gl_check_gallery_empty(ad)) { + gl_dbg("Remove nocontents view then create albums view."); + evas_object_del(ad->albuminfo.nocontents); + ad->albuminfo.nocontents = NULL; + + view = _gl_albums_add_view(ad, ad->maininfo.naviframe); + elm_object_part_content_set(ad->ctrlinfo.ctrlbar_view_ly, + "elm.swallow.view", view); + evas_object_show(view); + ad->albuminfo.view = view; + _gl_albums_check_btns(data); + } else if (ad->albuminfo.nocontents) { + gl_dbg("Gallery is empty!"); + bool b_update = false; + b_update = _gl_nocontents_update_label(ad->albuminfo.nocontents, + GL_STR_NO_ALBUMS); + /* Update toolbar state */ + if (b_update) + _gl_albums_check_btns(data); + } else { + gl_dbg("Nocontents was removed!"); + } + + return 0; +} + +/* Free resources allocated for albums view */ +int gl_albums_free_data(void *data) +{ + gl_dbg(""); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + _gl_albums_clear_cbs(ad->albuminfo.view); + _gl_ui_del_scroller_pos(ad->albuminfo.view); + GL_FREEIF(ad->albuminfo.path); + return 0; +} + +int _gl_albums_show_view_tab(void *data, Evas_Object *parent) +{ + GL_CHECK_VAL(parent, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + /* Set pop callback for operating when button back clicked */ + evas_object_data_set(ad->maininfo.naviframe, GL_NAVIFRAME_POP_CB_KEY, + (void *)__gl_albums_pop_op); + + gl_set_view_mode(data, GL_VIEW_ALBUMS); + _gl_ctrl_show_title(data, GL_CTRL_TAB_ALBUMS); + + if (!ad->albuminfo.view) { + gl_dbg("Add gengrid first"); + _gl_albums_create_view(ad, ad->ctrlinfo.ctrlbar_view_ly); + } + + gl_albums_update_items(data); + + if (!ad->albuminfo.nocontents) { + evas_object_show(ad->albuminfo.view); + elm_object_part_content_set(parent, "elm.swallow.view", + ad->albuminfo.view); + } else { + /* Register service if nocontents created for the first launching */ + _gl_main_add_reg_idler(data); + } + + /* add items */ + __gl_albums_add_btns(data); + return 0; +} + +/* Terminate EDIT mode */ +int _gl_albums_hide_view_tab(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + /* Reset flags */ + ad->albuminfo.selected = NULL; + _gl_albums_set_current(data, NULL); + int view_m = gl_get_view_mode(data); + + if (view_m == GL_VIEW_ALBUMS_EDIT) { + gl_dbg("GL_VIEW_ALBUMS_EDIT"); + _gl_data_finalize_albums_selected_list(data); + /* CLEAR GENGRID */ + if (ad->albuminfo.view && + ad->albuminfo.view != ad->albuminfo.nocontents) { + gl_dbg("elm_gengrid_clear view"); + elm_gengrid_clear(ad->albuminfo.view); + } + } else if (view_m == GL_VIEW_ALBUMS) { + gl_dbg("GL_VIEW_ALBUMS"); + /* CLEAR GENGRID */ + if (ad->albuminfo.view && + ad->albuminfo.view != ad->albuminfo.nocontents) { + gl_dbg("elm_gengrid_clear view"); + elm_gengrid_clear(ad->albuminfo.view); + } + } + /* Hide previous view */ + Evas_Object *pre_view = NULL; + pre_view = elm_object_part_content_unset(ad->ctrlinfo.ctrlbar_view_ly, + "elm.swallow.view"); + evas_object_hide(pre_view); + return 0; +} + +int _gl_albums_change_mode(void *data, bool b_edit) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + /* Reset flags */ + ad->albuminfo.selected = NULL; + _gl_albums_set_current(data, NULL); + + if (b_edit) { + gl_set_view_mode(ad, GL_VIEW_ALBUMS_EDIT); + _gl_ui_change_navi_title(ad->ctrlinfo.nf_it, GL_STR_ID_SELECT_ITEM, false); + elm_object_signal_emit(ad->ctrlinfo.ctrlbar_view_ly, "elm,selectall,state,visible,bg", "elm"); + elm_object_signal_emit(ad->ctrlinfo.ctrlbar_view_ly, "elm,selectall,state,visible", "elm"); + _gl_albums_edit_add_btns(data, ad->maininfo.naviframe); +#ifdef _USE_GRID_CHECK + _gl_show_grid_checks_dual(ad->albuminfo.view, GL_TILE_CHECKBOX, GL_TILE_CHECKBOX_GRID); +#else + evas_object_smart_callback_del(ad->albuminfo.view, "unrealized", + __gl_albums_unrealized); + elm_gengrid_realized_items_update(ad->albuminfo.view); + evas_object_smart_callback_add(ad->albuminfo.view, "unrealized", + __gl_albums_unrealized, data); +#endif + } else { + _gl_ui_change_navi_title(ad->ctrlinfo.nf_it, GL_STR_ID_ALBUM, true); + __gl_albums_add_btns(data); + _gl_albums_edit_pop_view(data); + gl_dbg("Sending signal to EDC 1"); + elm_object_signal_emit(ad->ctrlinfo.ctrlbar_view_ly, "elm,selectall,state,default", "elm"); + } + gl_albums_update_view(data); + return 0; +} + +int _gl_albums_check_btns(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->ctrlinfo.nf_it, -1); + bool b_disabled = false; + + /* Disable button share */ + if (gl_check_gallery_empty(data) || ad->albuminfo.elist->edit_cnt <= 0) + b_disabled = true; + gl_dbg("b_disable: %d", b_disabled); + + _gl_ui_disable_menu(ad->ctrlinfo.nf_it, false); + return 0; +} + +int _gl_albums_rotate_view(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + if (ad->albuminfo.view == ad->albuminfo.nocontents) + return -1; + Elm_Object_Item *item = elm_gengrid_first_item_get(ad->albuminfo.view); + if (item) { + item = elm_gengrid_item_next_get(item); + if (item) { + item = elm_gengrid_item_next_get(item); + if (item) + elm_object_item_signal_emit(item, + "show_top_pad", + "padding.top"); + } + } + return _gl_tile_update_item_size(data, ad->albuminfo.view, true); +} + +int _gl_albums_set_current(void *data, gl_cluster *current) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + ad->albuminfo.current = current; + return 0; +} + +gl_cluster *_gl_albums_get_current(void *data) +{ + GL_CHECK_NULL(data); + gl_appdata *ad = (gl_appdata *)data; + return ad->albuminfo.current; +} + +/* Free resources allocated for albums view */ +int _gl_albums_clear_cbs(Evas_Object *view) +{ + gl_dbg(""); + GL_CHECK_VAL(view, -1); + evas_object_smart_callback_del(view, "realized", __gl_albums_realized); + evas_object_smart_callback_del(view, "unrealized", + __gl_albums_unrealized); + evas_object_smart_callback_del(view, "longpressed", + __gl_albums_longpressed_cb); + return 0; +} + +void _gl_add_album_data(gl_cluster *album, Eina_List *medias_elist) +{ + GL_CHECK(album); + GL_CHECK(medias_elist); + int cnt = eina_list_count(medias_elist); + int i; + gl_item *gitem = NULL; + for (i = 0; i < cnt; i++) { + gitem = eina_list_nth(medias_elist, i); + if (gitem) { + gitem->album = album; + } + } +} + +int gl_albums_open_album(gl_cluster *album) +{ + GL_CHECK_VAL(album, -1); + GL_CHECK_VAL(album->cluster, -1); + GL_CHECK_VAL(album->cluster->uuid, -1); + GL_CHECK_VAL(album->ad, -1); + gl_appdata *ad = (gl_appdata *)album->ad; + GL_CHECK_VAL(ad->albuminfo.elist, -1); + GL_CHECK_VAL(ad->albuminfo.elist->clist, -1); + gl_item *gitem = NULL; + gl_item *data = NULL; + int view_mode = gl_get_view_mode(ad); + int i; + + if (album->cover) { + _gl_data_util_free_gitem(album->cover); + album->cover = NULL; + } + + if (view_mode == GL_VIEW_ALBUMS) { + gl_dbg("View mode!"); + } else if (view_mode == GL_VIEW_ALBUMS_SELECT || view_mode == GL_VIEW_THUMBS_SELECT) { + gl_dbg("Select mode!"); + _gl_albums_set_current(ad, album); + _gl_thumbs_sel_create_view(ad, album); + return 0; + } else if (view_mode == GL_VIEW_THUMBS) { + gl_dbg("Split view!"); + char *i18n_name = _gl_get_i18n_album_name(album->cluster); + gl_sdbg("Album: %s, UUID: %s", i18n_name, album->cluster->uuid); + _gl_albums_set_current(ad, album); + Eina_List *medias_elist = NULL; + _gl_data_get_items_album(ad, album, GL_FIRST_VIEW_START_POS, + GL_GET_UNTIL_LAST_RECORD - 1, &medias_elist); + _gl_add_album_data(album, medias_elist); + EINA_LIST_FREE(album->elist, data) { + if (data) { + data->checked = false; + } + } + _gl_thumbs_set_list(ad, medias_elist); + _gl_thumbs_update_split_view(ad, GL_NAVI_THUMBS, i18n_name, true, + __gl_albums_close_album_cb); + return 0; + } else if (view_mode == GL_VIEW_THUMBS_EDIT) { + gl_dbg("Split edit view!"); + char *i18n_name = _gl_get_i18n_album_name(album->cluster); + gl_sdbg("Album: %s, UUID: %s", i18n_name, album->cluster->uuid); + _gl_albums_set_current(ad, album); + Eina_List *sel_id_list = NULL; + + Eina_List *medias_elist = NULL; + _gl_data_get_items_album(ad, album, GL_FIRST_VIEW_START_POS, + GL_GET_UNTIL_LAST_RECORD - 1, &medias_elist); + _gl_add_album_data(album, medias_elist); + EINA_LIST_FREE(album->elist, data) { + if (data) { + data->checked = false; + } + } + + _gl_thumbs_set_list(ad, medias_elist); + int count = eina_list_count(medias_elist); + for (i = 0; i < count ; i++) { + gitem = eina_list_nth(medias_elist, i); + _gl_data_restore_selected(ad->selinfo.elist, gitem); + } + _gl_thumbs_update_edit_split_view(ad, GL_NAVI_THUMBS, i18n_name, true, + __gl_albums_close_album_cb); + return 0; + } else { + gl_dbgW("Wrong view mode"); + return -1; + } + char *i18n_name = _gl_get_i18n_album_name(album->cluster); + gl_sdbg("Album: %s, UUID: %s", i18n_name, album->cluster->uuid); + _gl_albums_set_current(ad, album); + Eina_List *medias_elist = NULL; + _gl_data_get_items_album(ad, album, GL_FIRST_VIEW_START_POS, + GL_FIRST_VIEW_END_POS, &medias_elist); + _gl_add_album_data(album, medias_elist); + EINA_LIST_FREE(album->elist, data) { + if (data) { + data->checked = false; + } + } + _gl_thumbs_set_list(ad, medias_elist); + _gl_thumbs_create_view(ad, GL_NAVI_THUMBS, i18n_name, true, + __gl_albums_close_album_cb); + gl_dbg("albums_view 0x%x cleared", ad->albuminfo.view); + gl_dbg("Done albums selected"); + return 0; +} + +Evas_Object *_gl_albums_add_gengrid(void *data, Evas_Object *parent) +{ + GL_PROFILE_IN; + GL_CHECK_NULL(parent); + GL_CHECK_NULL(data); + Evas_Object *grid = _gl_tile_add_gengrid(parent); + evas_object_smart_callback_add(grid, "realized", __gl_albums_realized, + data); + evas_object_smart_callback_add(grid, "unrealized", + __gl_albums_unrealized, data); +#if 0 + evas_object_smart_callback_add(grid, "language,changed", + __gl_albums_lang_changed, data); +#endif + evas_object_smart_callback_add(grid, "longpressed", + __gl_albums_longpressed_cb, data); + evas_object_show(grid); + _gl_ui_reset_scroller_pos(grid); + GL_PROFILE_OUT; + return grid; +} + +Evas_Object * _gl_albums_create_album_sel_gengrid(void *data) +{ + GL_CHECK_VAL(data, NULL); + gl_appdata *ad = (gl_appdata *)data; + Evas_Object *layout_inner = elm_gengrid_add(ad->maininfo.win); + + elm_gengrid_align_set(layout_inner, 0.5f, 0.0); + elm_gengrid_horizontal_set(layout_inner, EINA_FALSE); + elm_scroller_bounce_set(layout_inner, EINA_FALSE, EINA_TRUE); + elm_scroller_policy_set(layout_inner, ELM_SCROLLER_POLICY_OFF, + ELM_SCROLLER_POLICY_AUTO); + elm_gengrid_multi_select_set(layout_inner, EINA_TRUE); + evas_object_size_hint_weight_set(layout_inner, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + return layout_inner; +} + +Evas_Object *_gl_albums_sel_add_view(void *data, Evas_Object *parent) +{ + GL_CHECK_NULL(parent); + GL_CHECK_NULL(data); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_NULL(ad->albuminfo.elist); + gl_dbg(""); + + ad->albuminfo.albums_cnt = 0; + + Evas_Object *grid = _gl_albums_create_album_sel_gengrid(data); + GL_CHECK_NULL(grid); + int ret = _gl_albums_create_items(ad, grid); + + int view_mode = gl_get_view_mode(ad); + gl_dbg("view_mode: %d", view_mode); + if (view_mode == GL_VIEW_ALBUMS_SELECT) { + if (ad->albuminfo.albums_cnt == 0) { + gl_dbgE("None albums!"); + evas_object_del(grid); + grid = NULL; + } else { + evas_object_show(grid); + } + return grid; + } + + /* show no contents if none albums appended or none album exists */ + if (ret < 0 || gl_check_gallery_empty(ad)) { + _gl_ui_del_scroller_pos(grid); + evas_object_del(grid); + grid = NULL; + + Evas_Object *noc = _gl_nocontents_create(ad->ctrlinfo.ctrlbar_view_ly); + evas_object_show(noc); + ad->albuminfo.nocontents = noc; + elm_naviframe_item_title_enabled_set(ad->ctrlinfo.nf_it, EINA_FALSE, EINA_FALSE); + + return noc; + } else { + ad->albuminfo.nocontents = NULL; + elm_naviframe_item_title_enabled_set(ad->ctrlinfo.nf_it, EINA_TRUE, EINA_TRUE); + } + + gl_dbg("done"); + return grid; +} + +/* Add albums view and doesn't push it to naviframe */ +Evas_Object *_gl_albums_add_view(void *data, Evas_Object *parent) +{ + GL_CHECK_NULL(parent); + GL_CHECK_NULL(data); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_NULL(ad->albuminfo.elist); + gl_dbg(""); + + ad->albuminfo.albums_cnt = 0; + + Evas_Object *grid = _gl_albums_add_gengrid(data, parent); + GL_CHECK_NULL(grid); + int ret = _gl_albums_create_items(ad, grid); + + int view_mode = gl_get_view_mode(ad); + gl_dbg("view_mode: %d", view_mode); + if (view_mode == GL_VIEW_ALBUMS_SELECT) { + if (ad->albuminfo.albums_cnt == 0) { + gl_dbgE("None albums!"); + evas_object_del(grid); + grid = NULL; + } else { + evas_object_show(grid); + } + return grid; + } + + /* show no contents if none albums appended or none album exists */ + if (ret < 0 || gl_check_gallery_empty(ad)) { + _gl_ui_del_scroller_pos(grid); + evas_object_del(grid); + grid = NULL; + + Evas_Object *noc = _gl_nocontents_create(ad->ctrlinfo.ctrlbar_view_ly); + evas_object_show(noc); + ad->albuminfo.nocontents = noc; + elm_naviframe_item_title_enabled_set(ad->ctrlinfo.nf_it, EINA_FALSE, EINA_FALSE); + + return noc; + } else { + ad->albuminfo.nocontents = NULL; + elm_naviframe_item_title_enabled_set(ad->ctrlinfo.nf_it, EINA_TRUE, EINA_TRUE); + } + + gl_dbg("done"); + return grid; +} + +int _gl_split_albums_create_items(void *data, Evas_Object *parent) +{ + GL_PROFILE_IN; + GL_CHECK_VAL(parent, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + int i = 0; + gl_cluster *album_item = NULL; + int length = 0; + gl_dbg(""); + evas_object_smart_callback_add(parent, "realized", __gl_split_albums_realized, + data); + if (elm_gengrid_items_count(parent) > 0) { + /* Save scroller position before clearing gengrid */ + _gl_ui_save_scroller_pos(parent); + /* Clear albums view */ + elm_gengrid_clear(parent); + } + ad->albuminfo.gic.item_style = GL_GENGRID_STYLE_ALBUM_SPLIT_VIEW; + ad->albuminfo.gic.func.text_get = __gl_albums_get_text; + ad->albuminfo.gic.func.content_get = __gl_albums_get_content_split_view; + Elm_Gengrid_Item_Class *pgic = &(ad->albuminfo.gic); + GL_CHECK_VAL(ad->albuminfo.elist, -1); + GL_CHECK_VAL(ad->albuminfo.elist->clist, -1); + Eina_List *clist = ad->albuminfo.elist->clist; + length = eina_list_count(clist); + gl_dbg("Albums length: %d", length); + ad->albuminfo.elist->edit_cnt = 0; + int item_cnt = 0; + + for (i = 0; i < length; i++) { + album_item = eina_list_nth(clist, i); + GL_CHECK_VAL(album_item, -1); + GL_CHECK_VAL(album_item->cluster, -1); + GL_CHECK_VAL(album_item->cluster->display_name, -1); + GL_CHECK_VAL(album_item->cluster->uuid, -1); + if (album_item->cluster->type < GL_STORE_T_ALL) { + ad->albuminfo.elist->edit_cnt++; + } else { + int view_mode = gl_get_view_mode(ad); + if (view_mode == GL_VIEW_ALBUMS + || view_mode == GL_VIEW_ALBUMS_EDIT + || view_mode == GL_VIEW_TIMELINE + || view_mode == GL_VIEW_THUMBS_EDIT + || view_mode == GL_VIEW_THUMBS_SELECT + ) { + gl_dbg("skip the item"); + continue; + } + } + album_item->item = elm_gengrid_item_append(parent, pgic, + album_item, + __gl_albums_sel_cb, + album_item); + album_item->index = item_cnt; + item_cnt++; + gl_sdbg("Append[%s], id=%s.", album_item->cluster->display_name, + album_item->cluster->uuid); + } + /* Restore previous position of scroller */ + _gl_ui_restore_scroller_pos(parent); + ad->albuminfo.albums_cnt = item_cnt; + GL_PROFILE_OUT; + if (item_cnt) { + gl_sdbg("Item count is 0"); + return 0; + } + else + return -1; +} + +int _gl_albums_create_items(void *data, Evas_Object *parent) +{ + GL_PROFILE_IN; + GL_CHECK_VAL(parent, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + int i = 0; + gl_cluster *album_item = NULL; + int length = 0; + gl_dbg(""); + + if (elm_gengrid_items_count(parent) > 0) { + /* Save scroller position before clearing gengrid */ + _gl_ui_save_scroller_pos(parent); + evas_object_smart_callback_del(parent, "unrealized", + __gl_albums_unrealized); + /* Clear albums view */ + elm_gengrid_clear(parent); + evas_object_smart_callback_add(parent, "unrealized", + __gl_albums_unrealized, data); + } + ad->albuminfo.gic.item_style = GL_GENGRID_STYLE_ALBUM_VIEW; + ad->albuminfo.gic.func.text_get = __gl_albums_get_text; + ad->albuminfo.gic.func.content_get = __gl_albums_get_content; + Elm_Gengrid_Item_Class *pgic = &(ad->albuminfo.gic); + GL_CHECK_VAL(ad->albuminfo.elist, -1); + GL_CHECK_VAL(ad->albuminfo.elist->clist, -1); + Eina_List *clist = ad->albuminfo.elist->clist; + length = eina_list_count(clist); + gl_dbg("Albums length: %d", length); + ad->albuminfo.elist->edit_cnt = 0; + int item_cnt = 0; + + for (i = 0; i < length; i++) { + album_item = eina_list_nth(clist, i); + GL_CHECK_VAL(album_item, -1); + GL_CHECK_VAL(album_item->cluster, -1); + GL_CHECK_VAL(album_item->cluster->display_name, -1); + GL_CHECK_VAL(album_item->cluster->uuid, -1); + + if (album_item->cluster->type < GL_STORE_T_ALL) { + ad->albuminfo.elist->edit_cnt++; + } else { + if(gl_get_view_mode(ad) != GL_VIEW_ALBUMS) { + continue; + } + } + album_item->item = elm_gengrid_item_append(parent, pgic, + album_item, + __gl_albums_sel_cb, + album_item); + album_item->index = item_cnt; + item_cnt++; + gl_sdbg("Append[%s], id=%s.", album_item->cluster->display_name, + album_item->cluster->uuid); + } + /* Restore previous position of scroller */ + _gl_ui_restore_scroller_pos(parent); + + ad->albuminfo.albums_cnt = item_cnt; + _gl_tile_update_item_size(data, parent, false); + GL_PROFILE_OUT; + if (item_cnt) + return 0; + else + return -1; +} + diff --git a/src/features/gl-entry.c b/src/features/gl-entry.c new file mode 100644 index 0000000..fa536fb --- /dev/null +++ b/src/features/gl-entry.c @@ -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. +* +*/ + +#include "gl-entry.h" +#include "gl-ui-util.h" +#include "gl-util.h" +#include "gl-button.h" +#include "gl-editfield.h" +#include "gl-controlbar.h" +#include "gl-debug.h" +#include "gl-strings.h" +#include "gl-fs.h" +#include "gl-popup.h" +#include "gl-notify.h" + +typedef struct _gl_entry_t gl_entry_s; +struct _gl_entry_t { + Evas_Object *layout; + Elm_Object_Item *nf_it; + Elm_Object_Item *pre_nf_it; + Evas_Object *done_btn; + + void *ad; +}; + +#if 0 +/* Free data after layout deleted */ +static void __gl_entry_layout_del_cb(void *data, Evas *e, Evas_Object *obj, + void *ei) +{ + gl_dbg("Delete entry layout ---"); + GL_FREEIF(data); + gl_dbg("Delete entry layout +++"); +} + +static Eina_Bool __gl_entry_pop_cb(void *data, Elm_Object_Item *it) +{ + GL_CHECK_FALSE(data); + gl_entry_s *entry_d = (gl_entry_s *)data; + GL_CHECK_FALSE(entry_d->ad); + gl_dbg(""); + + /* Call cancel callback */ + Evas_Object *entry = _gl_editfield_get_entry(entry_d->ad); + GL_CHECK_FALSE(entry); + Eina_Bool (*pop_cb)(void *data, Elm_Object_Item *it); + pop_cb = evas_object_data_get(entry, "gl_entry_pop_cb_key"); + /* Clear editfield variables */ + _gl_editfield_destroy_imf(entry_d->ad); + if (pop_cb) + return pop_cb(entry_d->ad, it); + else + return EINA_TRUE; +} +#endif + +static void __gl_entry_done_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_entry_s *entry_d = (gl_entry_s *)data; + GL_CHECK(entry_d->ad); + gl_dbg(""); + /* Hide editfield */ + _gl_editfield_hide_imf(entry_d->ad); + gl_appdata *ad = (gl_appdata *)entry_d->ad; + + Evas_Object *entry = _gl_editfield_get_entry(entry_d->ad); + GL_CHECK(entry); + + int (*process_cb)(void *data, bool b_enter); + process_cb = evas_object_data_get(entry, "gl_entry_process_cb_key"); + GL_CHECK(process_cb); + /* Delete callback when it is clicked to prevent it is called for many times */ + if (process_cb(entry_d->ad, false) == 0) + evas_object_smart_callback_del(obj, "clicked", + __gl_entry_done_cb); + /* Clear nf_it to cancel hide title in landscape mode */ + ad->entryinfo.nf_it = NULL; + GL_FREEIF(ad->albuminfo.temp_album_name); +} + +static void __gl_entry_cancel_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(obj); + GL_CHECK(data); + gl_dbg(""); + /* Hide editfield */ + _gl_editfield_hide_imf(data); + gl_appdata *ad = (gl_appdata *)data; + GL_IF_DEL_OBJ(ad->popupinfo.popup); + GL_FREEIF(ad->albuminfo.temp_album_name); +} + +#if 0 +static void __gl_entry_trans_finished_cb(void *data, Evas_Object *obj, void *ei) +{ + evas_object_smart_callback_del(obj, GL_TRANS_FINISHED, + __gl_entry_trans_finished_cb); + GL_CHECK(data); + gl_dbg(""); + + Evas_Object *entry = _gl_editfield_get_entry(data); + GL_CHECK(entry); + + int (*transit_cb)(void *data); + transit_cb = evas_object_data_get(entry, "gl_entry_transit_cb_key"); + if (transit_cb) + transit_cb(data); + +} +#endif + +/** + * Use naviframe api to push albums rename view to stack. + * @param obj is the content to be pushed. + */ +static int __gl_entry_push_view(void *data, Evas_Object *parent, + Evas_Object *obj, char *title, + gl_entry_s *entry_d) +{ + gl_dbg(""); + GL_CHECK_VAL(parent, -1); + GL_CHECK_VAL(data, -1); + GL_CHECK_VAL(entry_d, -1); + gl_appdata *ad = (gl_appdata *)data; + Evas_Object *left_btn = NULL; + Evas_Object *right_btn = NULL; + + right_btn = _gl_but_create_image_but(parent, NULL, GL_STR_ID_SAVE, + NULL, __gl_entry_done_cb, entry_d, EINA_FALSE); + GL_CHECK_VAL(right_btn, -1); + ad->entryinfo.done_btn = right_btn; + entry_d->done_btn = right_btn; + + /* Cancel */ + left_btn = _gl_but_create_image_but(parent, NULL, GL_STR_ID_CANCEL, + NULL, __gl_entry_cancel_cb, data, EINA_FALSE); + GL_CHECK_VAL(left_btn, -1); + + elm_object_part_content_set(parent, "button1", left_btn); + elm_object_part_content_set(parent, "button2", right_btn); + + /* Add callbacks to show/hide title toolbar */ + /* _gl_ui_add_conform_cbs(data); */ + /* hide title toolbar */ + /* _gl_editfield_change_navi_title(data, ad->maininfo.rotate_mode); */ + return 0; +} + +void _gl_popup_create_folder_imf_changed_cb(void *data, Evas_Object *obj, void *event_info) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + const char *entry_data = NULL; + char *name = NULL; + char new_str[GL_ALBUM_NAME_LEN_MAX] = {0,}; + + entry_data = elm_entry_entry_get(ad->entryinfo.entry); + name = elm_entry_markup_to_utf8(entry_data); + GL_CHECK(name); + + if (!_gl_fs_validate_name(name)) { + strncpy(new_str, name, GL_ALBUM_NAME_LEN_MAX - 1); + int position = elm_entry_cursor_pos_get(ad->entryinfo.entry); + elm_entry_entry_set(ad->entryinfo.entry, elm_entry_utf8_to_markup(ad->albuminfo.temp_album_name)); + elm_entry_cursor_begin_set(ad->entryinfo.entry); + elm_entry_cursor_pos_set(ad->entryinfo.entry, position - 1); + _gl_notify_create_notiinfo(_gl_str(GL_STR_ID_INVALID_INPUT_PARAMETER)); + GL_FREEIF(name); + return; + } + GL_FREEIF(ad->albuminfo.temp_album_name); + ad->albuminfo.temp_album_name = strdup(name); + free(name); +} + +static void _showFinishedCb(void *data, Evas_Object *obj, void *event_info) +{ + gl_appdata *ad = (gl_appdata *)data; + _gl_editfield_show_imf(ad); + evas_object_smart_callback_del(ad->popupinfo.popup, "show,finished", + _showFinishedCb); +} + +int _gl_entry_create_view(void *data, char *name, char *title) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + Evas_Object *entry_ly = NULL; + gl_dbg(""); + + gl_entry_s *entry_d = NULL; + entry_d = (gl_entry_s *)calloc(1, sizeof(gl_entry_s)); + GL_CHECK_VAL(entry_d, -1); + + if (ad->popupinfo.popup) { + GL_IF_DEL_OBJ(ad->popupinfo.popup); + ad->popupinfo.popup = NULL; + } + + Evas_Object *popup = NULL; + popup = elm_popup_add(ad->maininfo.layout); + ad->popupinfo.popup = popup; + evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + + _gl_ui_set_translate_part_str(popup, "title,text", title); + + entry_ly = elm_layout_add(popup); + elm_layout_file_set(entry_ly, GL_EDJ_FILE, "popup_input_text"); + + Evas_Object *entry = elm_entry_add(entry_ly); + if (entry == NULL) { + GL_IF_DEL_OBJ(entry_ly); + GL_IF_DEL_OBJ(popup); + if (entry_d) { + free(entry_d); + } + return -1; + } + + elm_entry_single_line_set(entry, EINA_TRUE); + elm_entry_scrollable_set(entry, EINA_TRUE); + elm_object_part_content_set(entry_ly, "elm.swallow.content", entry); + elm_entry_cnp_mode_set(entry, ELM_CNP_MODE_PLAINTEXT); + elm_entry_input_panel_layout_set(entry, ELM_INPUT_PANEL_LAYOUT_NORMAL); + elm_entry_input_panel_layout_variation_set(entry, ELM_INPUT_PANEL_LAYOUT_NORMAL_VARIATION_FILENAME); + + ad->entryinfo.entry = entry; + ad->entryinfo.context = elm_entry_imf_context_get(ad->entryinfo.entry); + ad->entryinfo.editfield = entry_ly; + evas_object_smart_callback_add(entry, "changed", (Evas_Smart_Cb)_gl_popup_create_folder_imf_changed_cb, ad); + /* Set callback */ + char *new_name = NULL; + char *full_path = NULL; + full_path = (char *)_gl_fs_get_unique_new_album_name(GL_DEFAULT_PATH_IMAGES, GL_STR_ID_ALBUM_DEFAULT, &new_name); + __gl_editfield_set_entry(ad, entry_ly, entry, new_name); + elm_entry_select_all(entry); + GL_FREEIF(new_name); + GL_FREEIF(full_path); + elm_object_content_set(popup, entry_ly); + evas_object_show(popup); + + entry_d->ad = ad; + + __gl_entry_push_view(ad, popup, NULL, title, + entry_d); + + /* Register delete callback */ + eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, + __gl_entry_cancel_cb, entry_d->ad); + evas_object_smart_callback_add(popup, "show,finished", + _showFinishedCb, entry_d->ad); + ad->entryinfo.b_hide_sip = true; + return 0; + +} + +int _gl_entry_resume_view(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + Elm_Object_Item *top_nf_it = NULL; + + if (!ad->entryinfo.nf_it) + return -1; + + top_nf_it = elm_naviframe_top_item_get(ad->maininfo.naviframe); + if (ad->entryinfo.nf_it != top_nf_it) { + gl_dbg("Hide Entry cursor and IMF"); + _gl_editfield_hide_imf(ad); + } else if (ad->entryinfo.editfield) { + /* Show cursor and IMF if not popup showed */ + if (ad->popupinfo.popup) { + gl_dbg("Hide Entry cursor and IMF"); + _gl_editfield_hide_imf(ad); + } else { + gl_dbg("Show Entry cursor and IMF"); + _gl_editfield_show_imf(ad); + } + } + return 0; +} + diff --git a/src/features/gl-main.c b/src/features/gl-main.c new file mode 100644 index 0000000..d9fed54 --- /dev/null +++ b/src/features/gl-main.c @@ -0,0 +1,510 @@ +/* +* 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 "gl-debug.h" +#include "gl-main.h" +#include "gl-controlbar.h" +#include "gl-ui-util.h" +#include "gl-util.h" +#include "gl-albums.h" +#include "gl-ctxpopup.h" +#include "gl-editfield.h" +#include "gl-notify.h" +#include "gl-thread-util.h" +#include "gl-popup.h" +#include "gl-strings.h" +#include "gl-thumbs.h" +#include "gl-button.h" +#include "gl-tile.h" +#include "gl-db-update.h" +#include "gl-timeline.h" + +#define GL_BG_COLOR_DEFAULT 0 +#define GL_BG_COLOR_A 255 + +static void __gl_main_win_del_cb(void *data, Evas_Object *obj, void *ei) +{ + gl_dbgW("_gl_main_win_del_cb!!"); + GL_CHECK(data); + + elm_exit(); +} + +/** + * Perform an UI update according to the given rotation angle. + * Do not call elm_win_rotation_set / elm_win_rotation_with_resize_set. + * ecore_evas has already called + * elm_win_rotation_set / elm_win_rotation_with_resize_set function. + * + * Please set NULL to app_device_orientation_cb member of app_event_callback_s structure. + * And don't use app_device_orientation_cb callback which is supported by capi +*/ +static void __gl_main_win_rot_changed_cb(void *data, Evas_Object *obj, + void *event) +{ + GL_CHECK(data); + GL_CHECK(obj); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK(ad->maininfo.win); + + /* changed_ang value is 0 90 180 270 */ + int changed_ang = elm_win_rotation_get(obj); + gl_dbg("New angle: %d, old angle: %d", changed_ang, + ad->maininfo.rotate_mode); + if (changed_ang == ad->maininfo.rotate_mode) + return; + else + ad->maininfo.rotate_mode = changed_ang; +#if 0 + enum ug_event evt = UG_EVENT_NONE; + /* Send event to UG */ + switch (changed_ang) { + case APP_DEVICE_ORIENTATION_0: + evt = UG_EVENT_ROTATE_PORTRAIT; + break; + case APP_DEVICE_ORIENTATION_90: + evt = UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN; + break; + case APP_DEVICE_ORIENTATION_180: + evt = UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN; + break; + case APP_DEVICE_ORIENTATION_270: + evt = UG_EVENT_ROTATE_LANDSCAPE; + break; + } + ug_send_event(evt); +#endif + int view_mode = gl_get_view_mode(ad); + _gl_ui_rotate_view(data, view_mode); + _gl_timeline_rotate_view(data); + /*(landscape && SIP showed) -> hide title bar + _gl_editfield_change_navi_title(data, ad->maininfo.rotate_mode);*/ + /*(landscape && rename mode) -> hide toolbar */ + if (ad->entryinfo.b_hide_toolbar) { + _gl_ui_set_toolbar_state(data, ad->entryinfo.b_hide_toolbar); + } +} + +/* Parent is main window */ +static Evas_Object *__gl_main_create_bg(Evas_Object *parent) +{ + GL_PROFILE_IN; + GL_CHECK_NULL(parent); + Evas_Object *bg = NULL; + + bg = evas_object_rectangle_add(evas_object_evas_get(parent)); + evas_object_color_set(bg, GL_BG_COLOR_DEFAULT, GL_BG_COLOR_DEFAULT, + GL_BG_COLOR_DEFAULT, GL_BG_COLOR_A); + evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + elm_win_resize_object_add(parent, bg); + evas_object_show(bg); + + GL_PROFILE_OUT; + return bg; +} + +/* Parent is main window */ +static Evas_Object *__gl_main_create_conform(Evas_Object *parent) +{ + GL_PROFILE_IN; + GL_CHECK_NULL(parent); + Evas_Object *conform = NULL; + conform = elm_conformant_add(parent); + evas_object_size_hint_weight_set(conform, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(conform, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_win_resize_object_add(parent, conform); + evas_object_show(conform); + GL_PROFILE_OUT; + return conform; +} + +static int __gl_main_create_ctrl_ly(gl_appdata *ad, Evas_Object *parent) +{ + GL_PROFILE_IN; + GL_CHECK_VAL(parent, -1); + GL_CHECK_VAL(ad, -1); + + Evas_Object *layout = _gl_ctrl_add_layout(parent); + GL_CHECK_VAL(layout, -1); + ad->ctrlinfo.ctrlbar_view_ly = layout; + + /* Set view layout to control layout */ + elm_object_part_content_set(parent, "elm.swallow.content", layout); + GL_PROFILE_OUT; + return 0; +} + +static Evas_Object *__gl_main_create_ly(Evas_Object *parent) +{ + GL_PROFILE_IN; + GL_CHECK_NULL(parent); + Evas_Object *layout = NULL; + + layout = elm_layout_add(parent); + GL_CHECK_NULL(layout); + /* Apply the layout style */ + elm_layout_theme_set(layout, "layout", "application", "default"); + evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_show(layout); + GL_PROFILE_OUT; + return layout; +} + +static Evas_Object *__gl_main_create_naviframe(Evas_Object *parent) +{ + GL_PROFILE_IN; + GL_CHECK_NULL(parent); + Evas_Object *nf = NULL; + nf = elm_naviframe_add(parent); + /* Disable Naviframe Back Button Auto creation function */ + elm_naviframe_prev_btn_auto_pushed_set(nf, EINA_FALSE); + /* Pop the most top view if the Naviframe has the BACK event */ + eext_object_event_callback_add(nf, EEXT_CALLBACK_BACK, eext_naviframe_back_cb, + NULL); + /* Call the more_cb() of the most top view if the Naviframe has the MORE event */ + eext_object_event_callback_add(nf, EEXT_CALLBACK_MORE, eext_naviframe_more_cb, + NULL); + evas_object_show(nf); + gl_dbg("naviframe added"); + GL_PROFILE_OUT; + return nf; +} + +static Eina_Bool __gl_main_reg_idler_cb(void *data) +{ + gl_dbg("start"); + GL_CHECK_CANCEL(data); + gl_appdata *ad = (gl_appdata *)data; + + /* To skip blocking UX as much as possible */ + if (!ad->maininfo.b_reged_idler) { + ad->maininfo.b_reged_idler = true; + gl_dbg("next idler"); + return ECORE_CALLBACK_PASS_ON; + } + + /* Initialize media-content */ + _gl_data_init(ad); + /* Register db monitor */ + _gl_db_update_reg_cb(data); +#ifdef _USE_SVI + /* initializ svi */ + _gl_init_svi(data); +#endif + /* Open imageviewer UG so lib */ + _gl_dlopen_imageviewer(data); + + GL_IF_DEL_TIMER(ad->maininfo.reg_idler); + gl_dbg("done"); + return ECORE_CALLBACK_CANCEL; +} + +/* pause gallery and change view to background after tap Back button in main view */ +/* Return EINA_FALSE to keep current view unchanged, no pop operation */ +/* Always return EINA_FALSE in the first item of naviframe */ +static Eina_Bool __gl_main_pop_op(void *data) +{ + GL_CHECK_FALSE(data); + gl_appdata *ad = (gl_appdata *)data; + + void *pop_cb = evas_object_data_get(ad->maininfo.naviframe, + GL_NAVIFRAME_POP_CB_KEY); + if (pop_cb) { + Eina_Bool (*_pop_cb) (void *data); + _pop_cb = pop_cb; + + if (_pop_cb(data)) { + /* Just pop edit view, dont lower app to background */ + return EINA_FALSE; + } + } + + GL_CHECK_FALSE(ad->maininfo.win); + gl_dbgW("Lower Gallery to background!"); + elm_win_lower(ad->maininfo.win); + return EINA_FALSE; +} + +static Eina_Bool __gl_main_pop_cb(void *data, Elm_Object_Item *it) +{ + GL_CHECK_FALSE(data); + return __gl_main_pop_op(data); +} + +/** + * Use naviframe api to push albums view to stack. + * @param obj is the content to be pushed. + */ +static int __gl_main_push_view(void *data, Evas_Object *parent, Evas_Object *obj) +{ + GL_PROFILE_IN; + GL_CHECK_VAL(obj, -1); + GL_CHECK_VAL(parent, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + Elm_Object_Item *nf_it = NULL; + Evas_Object *prev_btn = NULL; + + /** + * add End button in navigation var first view in galery + * with style "naviframe/prev_btn/gallery" + * so after tap this button,gallery is paused + * but change view to background + * + * Need to created button and set it to naviframe, cause this is the first + * naviframe item. Otherwise, prev_btn will not be created. + */ + GL_CHECK_VAL(ad->maininfo.win, -1); + prev_btn = _gl_but_create_but(parent, NULL, NULL, + GL_BUTTON_STYLE_NAVI_PRE, NULL, NULL); + GL_CHECK_VAL(prev_btn, -1); + /* Push view to stack */ + nf_it = elm_naviframe_item_push(parent, NULL, prev_btn, NULL, obj, + NULL); + Evas_Object *unset = elm_object_item_part_content_unset(nf_it, GL_NAVIFRAME_PREV_BTN); + evas_object_hide(unset); + ad->ctrlinfo.nf_it = nf_it; + elm_naviframe_item_pop_cb_set(nf_it, __gl_main_pop_cb, data); + + GL_PROFILE_OUT; + return 0; +} + +/* Add albums view and append nothing */ +static int __gl_main_add_view(void *data, Evas_Object *parent) +{ + GL_PROFILE_IN; + GL_CHECK_VAL(parent, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + /* Add gesture for parent */ + Evas_Object *gesture = _gl_tile_add_gesture(data, parent); + if (gesture == NULL) + gl_dbgE("Failed to create gesture!"); + else + elm_object_part_content_set(parent, "gesture", gesture); + + __gl_main_push_view(data, ad->maininfo.naviframe, + ad->ctrlinfo.ctrlbar_ly); + + GL_PROFILE_OUT; + return 0; +} + +static Evas_Object *__gl_main_create_win(void *data, const char *name) +{ + GL_PROFILE_IN; + GL_CHECK_NULL(name); + GL_CHECK_NULL(data); + Evas_Object *win = NULL; + + win = elm_win_add(NULL, name, ELM_WIN_BASIC); + GL_CHECK_NULL(win); + + /* Temporarily disable vsync + * In Redwood8974 binary, Gallery lockup happens in view transit animation. + */ + /** + * Register a list of rotation angles that your application supports + * + * The window manager is going to decide rotation of application windows + * by referring the list of rotation angles. + * In this means if your application sets 0, 90 and 270 degrees to be the list of + * supported rotation angles, the window manager will not rotate your + * application window if the device is rotated 180 degrees + * + * --- APP_DEVICE_ORIENTATION_180 --- + * it changes to 3 directions only which is same with Galaxy S3/Note 2. + * When reverse portrait (180), rotation shoudn't happen. + */ + if (elm_win_wm_rotation_supported_get(win)) { + const int rots[3] = { APP_DEVICE_ORIENTATION_0, + APP_DEVICE_ORIENTATION_90, + APP_DEVICE_ORIENTATION_270 }; + elm_win_wm_rotation_available_rotations_set(win, rots, 3); + } + /* pass '-1' value to this API then it will unset preferred rotation angle */ + elm_win_wm_rotation_preferred_rotation_set(win, -1); + + elm_win_autodel_set(win, EINA_TRUE); + elm_win_title_set(win, name); + evas_object_smart_callback_add(win, "delete,request", + __gl_main_win_del_cb, data); + evas_object_smart_callback_add(win, "wm,rotation,changed", + __gl_main_win_rot_changed_cb, data); + evas_object_show(win); + GL_PROFILE_OUT; + return win; +} + +/* Register service in idler for reducing launching time */ +int _gl_main_add_reg_idler(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + if (!ad->maininfo.b_reged_idler && !ad->maininfo.reg_idler) { + gl_dbgW("Register idler!"); + ad->maininfo.reg_idler = ecore_timer_add(0.6f, __gl_main_reg_idler_cb, + data); + } + return 0; +} + +/** + * + * Elm_win + * |-> Elm_bg + * |-> Elm_conformant + * |-> Elm_layout(main_layout) + * |-> Elm_naviframe(naviframe) + * |-> Elm_layout(ctrlbar_ly) + * |-> Elm_layout(ctrlbar_view_ly) + * |-> Elm_gengrid(albums_view/tags_view/places_view/...) +*/ +int _gl_main_create_view(gl_appdata *ad) +{ + GL_PROFILE_IN; + GL_CHECK_VAL(ad, -1); + + elm_theme_extension_add(NULL, GL_EDJ_FILE); + /* Set initial rotate angle */ + ad->maininfo.rotate_mode = APP_DEVICE_ORIENTATION_0; + gl_dbg("Initial rotation mode: %d", ad->maininfo.rotate_mode); + /* create window */ + ad->maininfo.win = __gl_main_create_win(ad, PACKAGE); + GL_CHECK_FALSE(ad->maininfo.win); + /* Background. */ + ad->maininfo.bg = __gl_main_create_bg(ad->maininfo.win); + GL_CHECK_VAL(ad->maininfo.bg, -1); + /*gallery should appear on phone side when target works on desktop mode*/ + const char *str = "mobile"; + elm_win_profiles_set(ad->maininfo.win, &str, 1); + /* + * Set Opacity before Conformant window create + * When create Conformant Window, it will read currect Opacity and auto send it. + * if Opacity is not set first and set conformant direclty, Opacity value will return + * 0(Unknown) once, then 3(Transparent) + */ + elm_win_indicator_mode_set(ad->maininfo.win, ELM_WIN_INDICATOR_SHOW); + elm_win_indicator_opacity_set(ad->maininfo.win, + ELM_WIN_INDICATOR_TRANSPARENT); + /* Conformant. */ + Evas_Object *conform = __gl_main_create_conform(ad->maininfo.win); + GL_CHECK_VAL(conform, -1); + /* Set if this window is an illume conformant window */ + elm_win_conformant_set(ad->maininfo.win, EINA_TRUE); + /* Modify to start content from 0,0 */ + elm_object_signal_emit(conform, "elm,state,indicator,overlap", ""); + evas_object_data_set(conform, "overlap", (void *)EINA_TRUE); + /* Base Layout */ + ad->maininfo.layout = __gl_main_create_ly(conform); + GL_CHECK_VAL(ad->maininfo.layout, -1); + /* Set base layout to conformant */ + elm_object_content_set(conform, ad->maininfo.layout); + /* Create Naviframe */ + ad->maininfo.naviframe = __gl_main_create_naviframe(ad->maininfo.layout); + GL_CHECK_VAL(ad->maininfo.naviframe, -1); + /* Set Naviframe to main layout */ + elm_object_part_content_set(ad->maininfo.layout, "elm.swallow.content", + ad->maininfo.naviframe); + /* Save conform pointer to naviframe object */ + evas_object_data_set(ad->maininfo.naviframe, GL_NAVIFRAME_OBJ_DATA_KEY, + conform); + /* init value */ + evas_object_data_set(ad->maininfo.naviframe, "gl_obj_key_gallery_paused", (void *)0); + + /* Create control layout */ + ad->ctrlinfo.ctrlbar_ly = _gl_ctrl_add_main_layout(ad->maininfo.naviframe); + GL_CHECK_VAL(ad->ctrlinfo.ctrlbar_ly, -1); + /* Create view layout */ + __gl_main_create_ctrl_ly(ad, ad->ctrlinfo.ctrlbar_ly); + /** + * Add gengrid(empty albums view) and ctrlbar_ly layout to naviframe, + * albums view will be updated in idler callback + */ + __gl_main_add_view(ad, ad->ctrlinfo.ctrlbar_view_ly); + /** + * Re-entrance checking of _gl_ctrl_show_view() + * Init tab_mode as -1 to enter albums tab correctly + */ + _gl_ctrl_set_tab_mode(ad, GL_CTRL_TAB_INIT); + gl_dbg("done"); + GL_PROFILE_OUT; + return 0; +} + +int _gl_main_clear_view(gl_appdata *ad) +{ + GL_CHECK_VAL(ad, -1); + /* Remove win rotation callback */ + evas_object_smart_callback_del(ad->maininfo.win, "wm,rotation,changed", + __gl_main_win_rot_changed_cb); + _gl_ctxpopup_del(ad); + elm_theme_extension_del(NULL, GL_EDJ_FILE); + return 0; +} + +Eina_Bool _gl_main_update_view(void *data) +{ + GL_PROFILE_IN; + GL_CHECK_CANCEL(data); + gl_dbg("start"); + + gl_appdata *ad = (gl_appdata *)data; + /* Initialize media-content */ + _gl_data_init(ad); + gl_dbg("DB initialization:done"); + /* Get cluster list from media-content */ + _gl_data_get_cluster_list(ad); + GL_CHECK_FALSE(ad->albuminfo.elist); + gl_dbg("_gl_data_get_cluster_list:done"); + _gl_ctrl_show_view(data, GL_STR_ALBUMS); + gl_dbg("done"); + GL_PROFILE_OUT; + return ECORE_CALLBACK_CANCEL; +} + +int _gl_main_reset_view(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->maininfo.win, -1); + int view_mode = gl_get_view_mode(ad); + gl_dbg(""); + + if (view_mode == GL_VIEW_NONE) { + /* First launch gallery then show shortcut album/tag */ + _gl_data_init(ad); + gl_dbg("Launch gallery at the first time"); + _gl_data_get_cluster_list(ad); + GL_CHECK_VAL(ad->albuminfo.elist, -1); + /* Set view mode */ + gl_set_view_mode(ad, GL_VIEW_ALBUMS); + /* Select tabbar item contains shortcut item */ + _gl_ctrl_show_view(data, GL_STR_ALBUMS); + /* Register servier if albums view wasn't created */ + _gl_main_add_reg_idler(data); + } + + elm_win_activate(ad->maininfo.win); + return 0; +} + diff --git a/src/features/gl-pinchzoom.c b/src/features/gl-pinchzoom.c new file mode 100644 index 0000000..a2394f1 --- /dev/null +++ b/src/features/gl-pinchzoom.c @@ -0,0 +1,147 @@ +/* +* 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 "gallery.h" +#include "gl-pinchzoom.h" +#include "gl-gesture.h" +#include "gl-thumbs.h" +#include "gl-util.h" +#include "gl-debug.h" +#include "gl-thumbs-sel.h" + +static Eina_Bool __gl_pinch_zoom_out_cb(Evas_Object *gesture, void *data) +{ + GL_CHECK_CANCEL(data); + gl_appdata *ad = (gl_appdata *)data; + int view_m = gl_get_view_mode(ad); + gl_dbg("view_m: %d", view_m); + + if (ad->pinchinfo.zoom_level > GL_ZOOM_DEFAULT) { + /* Skip in wrong mode */ + if (view_m != GL_VIEW_THUMBS && view_m != GL_VIEW_THUMBS_EDIT && + view_m != GL_VIEW_THUMBS_SELECT) + goto PINCH_ZOOM_OUT_OVER; + + if (view_m == GL_VIEW_THUMBS && !_gl_thumbs_get_view(ad, NULL)) + goto PINCH_ZOOM_OUT_OVER; + +#ifdef _USE_SCROL_HORIZONRAL + if (ad->maininfo.rotate_mode == APP_DEVICE_ORIENTATION_270 || + ad->maininfo.rotate_mode == APP_DEVICE_ORIENTATION_90) { + /* Keep level if pinching zoom in in landscape mode */ + goto PINCH_ZOOM_OUT_OVER; + } +#endif + ad->pinchinfo.zoom_level--; + if (_gl_thumbs_update_size(data, NULL) < 0) + ad->pinchinfo.zoom_level = GL_ZOOM_DEFAULT; + goto PINCH_ZOOM_OUT_OVER; + } + + PINCH_ZOOM_OUT_OVER: + + gl_dbgW("Pinch zoom out: %d", ad->pinchinfo.zoom_level); + return ECORE_CALLBACK_CANCEL; +} + +static Eina_Bool __gl_pinch_zoom_in_cb(Evas_Object *gesture, void *data) +{ + GL_CHECK_CANCEL(data); + gl_appdata *ad = (gl_appdata *)data; + int view_m = gl_get_view_mode(ad); + gl_dbg("view_m: %d", view_m); + + if ((ad->pinchinfo.zoom_level >= GL_ZOOM_DEFAULT) && + (ad->pinchinfo.zoom_level < (GL_ZOOM_MAX - 1))) { + /* Skip in wrong mode */ + if (view_m != GL_VIEW_THUMBS && view_m != GL_VIEW_THUMBS_EDIT && + view_m != GL_VIEW_THUMBS_SELECT) + goto PINCH_ZOOM_IN_OVER; + + if (view_m == GL_VIEW_THUMBS && !_gl_thumbs_get_view(ad, NULL)) + goto PINCH_ZOOM_IN_OVER; + +#ifdef _USE_SCROL_HORIZONRAL + if (ad->maininfo.rotate_mode == APP_DEVICE_ORIENTATION_270 || + ad->maininfo.rotate_mode == APP_DEVICE_ORIENTATION_90) { + /* Keep level if pinching zoom in in landscape mode */ + goto PINCH_ZOOM_IN_OVER; + } +#endif + ad->pinchinfo.zoom_level++; + if (_gl_thumbs_update_size(data, NULL) < 0) + ad->pinchinfo.zoom_level = GL_ZOOM_IN_TWO; + goto PINCH_ZOOM_IN_OVER; + } + PINCH_ZOOM_IN_OVER: + + gl_dbgW("Pinch zoom in: %d", ad->pinchinfo.zoom_level); + return ECORE_CALLBACK_CANCEL; +} + +int _gl_pinch_add_event(void *data, Evas_Object *layout) +{ + GL_CHECK_VAL(layout, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + gl_dbg("Zoom level: %d", ad->pinchinfo.zoom_level); + /* Set initialize level */ + if (ad->pinchinfo.zoom_level != GL_ZOOM_DEFAULT && + ad->pinchinfo.zoom_level != GL_ZOOM_IN_ONE && + ad->pinchinfo.zoom_level != GL_ZOOM_IN_TWO) { + ad->pinchinfo.zoom_level = GL_ZOOM_IN_ONE; + gl_dbg("Zoom level reset: GL_ZOOM_IN_ONE"); + } + + Evas_Object *gesture = _gl_gesture_add(data, layout); + GL_CHECK_VAL(gesture, -1); + _gl_gesture_set_zoom_in_cb(gesture, __gl_pinch_zoom_in_cb, data); + _gl_gesture_set_zoom_out_cb(gesture, __gl_pinch_zoom_out_cb, data); + elm_object_part_content_set(layout, "gesture", gesture); + int mode = gl_get_view_mode(data); + if (mode == GL_VIEW_THUMBS_SELECT) + ad->pinchinfo.gesture_sel = gesture; + else + ad->pinchinfo.gesture = gesture; + return 0; +} + +int _gl_pinch_reset_flag(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + gl_dbg("Zoom level: %d", ad->pinchinfo.zoom_level); + /* Set initialize level */ + if (ad->pinchinfo.zoom_level != GL_ZOOM_DEFAULT && + ad->pinchinfo.zoom_level != GL_ZOOM_IN_ONE && + ad->pinchinfo.zoom_level != GL_ZOOM_IN_TWO) { + ad->pinchinfo.zoom_level = GL_ZOOM_IN_ONE; + gl_dbg("Zoom level reset: GL_ZOOM_IN_ONE"); + } + int mode = gl_get_view_mode(data); + Evas_Object *gesture = NULL; + if (mode == GL_VIEW_THUMBS_SELECT) + gesture = ad->pinchinfo.gesture_sel; + else + gesture = ad->pinchinfo.gesture; + if (gesture) + _gl_gesture_reset_flags(gesture); + return 0; +} + diff --git a/src/features/gl-thumbs-edit.c b/src/features/gl-thumbs-edit.c new file mode 100644 index 0000000..4742d26 --- /dev/null +++ b/src/features/gl-thumbs-edit.c @@ -0,0 +1,684 @@ +/* +* 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 "gl-thumbs-edit.h" +#include "gl-thumbs.h" +#include "gl-thumb.h" +#include "gl-pinchzoom.h" +#include "gl-debug.h" +#include "gl-strings.h" +#include "gl-ui-util.h" +#include "gl-util.h" +#include "gl-data.h" +#include "gl-icons.h" +#include "gl-controlbar.h" +#include "gl-ctxpopup.h" +#include "gl-progressbar.h" +#include "gl-button.h" +#include "gl-notify.h" +#include "gl-popup.h" +#include "gl-lang.h" +#include "gl-ext-exec.h" +#include "gl-ext-ug-load.h" +#include "gl-fs.h" +#include "gl-albums.h" + +int _gl_thumbs_edit_get_path(void *data, char **files) +{ + GL_CHECK_VAL(files, 0); + GL_CHECK_VAL(data, 0); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->selinfo.elist, 0); + int i = 0; + gl_item *current = NULL; + Eina_List *l = NULL; + + EINA_LIST_FOREACH(ad->selinfo.elist, l, current) { + if (current == NULL || current->item == NULL || + current->item->file_url == NULL) { + gl_dbgE("Invalid gitem!"); + continue; + } + + files[i++] = g_strdup(current->item->file_url); + gl_sdbg("file_url: %s!", files[i - 1]); + } + return i; +} + +#ifdef GL_EXTENDED_FEATURES +static void __gl_thumbs_edit_share_cb(void *data, Evas_Object *obj, + void *ei) +{ + elm_toolbar_item_selected_set((Elm_Object_Item *)ei, EINA_FALSE); + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg(""); + + if (ad->uginfo.ug || ad->uginfo.b_app_called) { + gl_dbgW("UG or APP is already loaded!"); + return; + } + + int view_mode = gl_get_view_mode(ad); + int cnt = _gl_data_selected_list_count(ad); + + if (view_mode == GL_VIEW_THUMBS_EDIT) { + if (cnt == 0) { + gl_dbg("No thumbs selected, return!"); + gl_popup_create_popup(ad, GL_POPUP_NOBUT, + GL_STR_NO_FILES_SELECTED); + return; + } + } else { + gl_dbgE("Unknow mode!"); + return; + } + _gl_ext_launch_share(data, cnt, _gl_thumbs_edit_get_path); + /* Change to normal mode */ + _gl_thumbs_edit_pop_view(data); +} + +/* To launch Image-editor*/ +static void __gl_thumbs_edit_ie_cb(void *data, Evas_Object *obj, + void *ei) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg(""); + + if (ad->uginfo.ug || ad->uginfo.b_app_called) { + gl_dbgW("UG or APP is already loaded!"); + return; + } + _gl_ctxpopup_del(data); + + if (_gl_data_selected_list_count(ad) == 0) { + gl_dbgW("No thumbs selected!"); + gl_popup_create_popup(ad, GL_POPUP_NOBUT, + GL_STR_NO_FILES_SELECTED); + return; + } + + int view_mode = gl_get_view_mode(ad); + if (view_mode == GL_VIEW_THUMBS_EDIT) { + _gl_ext_load_ie(data, gl_get_selected_files_path_str); + } else { + gl_dbgE("Unkonw mode!"); + } + /* Change to normal mode */ + _gl_thumbs_edit_pop_view(data); +} + +/* Copy media to album in edit view */ +static void __gl_thumbs_edit_copy_cb(void *data, Evas_Object *obj, + void *ei) +{ + GL_CHECK(data); + _gl_ctxpopup_del(data); + gl_appdata *ad = (gl_appdata *)data; + int view_mode = gl_get_view_mode(data); + gl_dbg(""); + + if (ad->uginfo.ug || ad->uginfo.b_app_called) { + gl_dbgW("UG or APP is already loaded!"); + return; + } + + if (view_mode == GL_VIEW_THUMBS_EDIT) { + if (_gl_data_selected_list_count(data) == 0) { + gl_dbgW("No thumbs selected!"); + gl_popup_create_popup(data, GL_POPUP_NOBUT, + GL_STR_NO_FILES_SELECTED); + return; + } + + ad->albuminfo.file_mc_mode = GL_MC_COPY; + _gl_popup_create_copy(data, gl_move_copy_to_album); + } else { + gl_dbgE("Unknow mode!"); + } +} + +/* move media to album in edit view*/ +static void __gl_thumbs_edit_move_cb(void *data, Evas_Object *obj, void *ei) +{ + elm_toolbar_item_selected_set((Elm_Object_Item *)ei, EINA_FALSE); + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + int view_mode = gl_get_view_mode(data); + gl_dbg(""); + + if (ad->uginfo.ug || ad->uginfo.b_app_called) { + gl_dbgW("UG or APP is already loaded!"); + return; + } + + if (view_mode == GL_VIEW_THUMBS_EDIT) { + if (_gl_data_selected_list_count(data) == 0) { + gl_dbgW("No thumbs selected!"); + gl_popup_create_popup(data, GL_POPUP_NOBUT, + GL_STR_NO_FILES_SELECTED); + return; + } + + ad->albuminfo.file_mc_mode = GL_MC_MOVE; + _gl_popup_create_move(data, gl_move_copy_to_album); + } else { + gl_dbgE("Unknow mode!"); + } +} + +#ifdef _USE_ROTATE_BG +static void __gl_thumbs_edit_rotate_left_cb(void *data, Evas_Object *obj, + void *ei) +{ + GL_CHECK(data); + if (_gl_data_selected_list_count(data) == 0) { + gl_dbgW("No thumbs selected!"); + gl_popup_create_popup(data, GL_POPUP_NOBUT, + GL_STR_NO_FILES_SELECTED); + return; + } + _gl_ctxpopup_del(data); + _gl_rotate_images(data, true); +} + +static void __gl_thumbs_edit_rotate_right_cb(void *data, Evas_Object *obj, + void *ei) +{ + GL_CHECK(data); + if (_gl_data_selected_list_count(data) == 0) { + gl_dbgW("No thumbs selected!"); + gl_popup_create_popup(data, GL_POPUP_NOBUT, + GL_STR_NO_FILES_SELECTED); + return; + } + _gl_ctxpopup_del(data); + _gl_rotate_images(data, false); +} +#endif + +static int __gl_thumbs_edit_ctxpopup_append(void *data, Evas_Object *parent) +{ + gl_dbg(""); + GL_CHECK_VAL(parent, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + int share_m = gl_get_share_mode(ad); + + switch (ad->gridinfo.grid_type) { + case GL_GRID_T_LOCAL: + case GL_GRID_T_ALLALBUMS: /* BTN: More - Delete/Move/Cancel */ + /* More : Edit image/Add tag/Copy/Create collage/Hide items/Rotate left/Rotate right/Crete a story album*/ + /* Image-editor is available if only images are selected */ + if (share_m >= GL_SHARE_IMAGE_ONE && + share_m <= GL_SHARE_IMAGE_MULTI_JPEG) + _gl_ctxpopup_append(parent, GL_STR_ID_EDIT_IMAGE, + __gl_thumbs_edit_ie_cb, data); + _gl_ctxpopup_append(parent, GL_STR_ID_COPY, + __gl_thumbs_edit_copy_cb, data); +#ifdef _USE_ROTATE_BG + /* Rotation is available if only images are selected */ + if (share_m == GL_SHARE_IMAGE_ONE_JPEG || + share_m == GL_SHARE_IMAGE_MULTI_JPEG) { + _gl_ctxpopup_append(parent, GL_STR_ID_ROTATE_LEFT, + __gl_thumbs_edit_rotate_left_cb, + data); + _gl_ctxpopup_append(parent, GL_STR_ID_ROTATE_RIGHT, + __gl_thumbs_edit_rotate_right_cb, + data); + } +#endif + break; + default: + return -1; + } + return 0; +} + +static void __gl_thumbs_edit_more_cb(void *data, Evas_Object *obj, + void *ei) +{ + /* Add items */ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + Evas_Object *more = NULL; + more = _gl_ui_get_btn(NULL, ad->gridinfo.nf_it, GL_NAVIFRAME_MORE); + if (EINA_TRUE == elm_object_disabled_get(more)) { + gl_dbg("Menu is disabled"); + return; /* Menu is disabled */ + } + + gl_dbg("Menu is clicked"); + _gl_ctxpopup_create(data, obj, __gl_thumbs_edit_ctxpopup_append); +} +#endif + +static void __gl_thumbs_edit_del(void *data) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg(""); + + if (ad->uginfo.ug || ad->uginfo.b_app_called) { + gl_dbgW("UG or APP is already loaded!"); + return; + } + + int view_mode = gl_get_view_mode(ad); + if (view_mode == GL_VIEW_THUMBS_EDIT) { + int cnt = _gl_data_selected_list_count(ad); + if (cnt == 0) { + gl_dbgW("No thumbs selected!"); + gl_popup_create_popup(ad, GL_POPUP_NOBUT, GL_STR_NO_FILES_SELECTED); + return; + } + + _gl_popup_create_del(data, GL_POPUP_DEL_FILE, + _gl_data_selected_list_count, + gl_del_medias, data); + } else { + gl_dbgW("Unknow mode!"); + } +} + +static void __gl_thumbs_edit_copy_move(void *data) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg(""); + + if (ad->uginfo.ug || ad->uginfo.b_app_called) { + gl_dbgW("UG or APP is already loaded!"); + return; + } + + int view_mode = gl_get_view_mode(ad); + if (view_mode == GL_VIEW_THUMBS_EDIT) { + int cnt = _gl_data_selected_list_count(ad); + if (cnt == 0) { + gl_dbgW("No thumbs selected!"); + gl_popup_create_popup(ad, GL_POPUP_NOBUT, GL_STR_NO_FILES_SELECTED); + return; + } + + ad->gridinfo.it = NULL; + _gl_popup_create_copy_move(data, _gl_data_selected_list_count, data); + } else { + gl_dbgW("Unknow mode!"); + } +} + +static void __gl_thumbs_edit_cancel_cb(void *data, Evas_Object *obj, void *ei) +{ + elm_toolbar_item_selected_set((Elm_Object_Item *)ei, EINA_FALSE); + GL_CHECK(data); + gl_dbg(""); + _gl_thumbs_edit_pop_view(data); +} + +static void __gl_thumbs_edit_done_cb(void *data, Evas_Object *obj, void *ei) +{ + elm_toolbar_item_selected_set((Elm_Object_Item *)ei, EINA_FALSE); + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + + if (_gl_thumbs_get_edit_mode(data) == GL_THUMBS_EDIT_COPY || _gl_thumbs_get_edit_mode(data) == GL_THUMBS_EDIT_MOVE) { + __gl_thumbs_edit_copy_move(ad); + } else { + __gl_thumbs_edit_del(ad); + } +} + +/* Select-all checkbox selected/deselected */ +static void __gl_thumbs_edit_selall_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + int i = 0; + int item_cnt = 0; + int sel_all_cnt = 0; + int view_mode = gl_get_view_mode(ad); + gl_dbg("view_mode: %d.", view_mode); + + ad->selinfo.ck_state = !elm_check_state_get(ad->selinfo.selectall_ck); + if (ad->selinfo.selectall_ck) { + elm_check_state_set(ad->selinfo.selectall_ck, ad->selinfo.ck_state); + } + gl_dbg("Checkbox state: %d", ad->selinfo.ck_state); + Eina_List *medias_elist = NULL; + _gl_thumbs_get_list(ad, &(medias_elist)); + /* Get all medias count of current album */ + item_cnt = eina_list_count(medias_elist); + sel_all_cnt = item_cnt; + gl_item *gitem = NULL; + for (i = 0; i < item_cnt; i++) { + gitem = eina_list_nth(medias_elist, i); + GL_CHECK(gitem); + GL_CHECK(gitem->item); + + if (gitem->checked == ad->selinfo.ck_state) + continue; + + gitem->checked = ad->selinfo.ck_state; + if (ad->selinfo.ck_state == EINA_TRUE) { + _gl_data_selected_list_append(ad, gitem); + gitem->album->elist = eina_list_append(gitem->album->elist, gitem); + } else { + _gl_data_selected_list_remove(ad, gitem); + gitem->album->elist = eina_list_remove(gitem->album->elist, gitem); + } + } + /* Update all realized items */ + if (view_mode == GL_VIEW_THUMBS_EDIT) + _gl_ui_update_realized_grid_ck(ad->gridinfo.view, + GL_THUMB_CHECKBOX, NULL, + ad->selinfo.ck_state); + /* Recreate selection info for both cases */ + if (ad->selinfo.ck_state) + item_cnt = sel_all_cnt; + else + sel_all_cnt = 0; + + int total_selected_count = eina_list_count(ad->selinfo.elist); + _gl_notify_check_selall(ad, ad->gridinfo.nf_it, item_cnt, sel_all_cnt); + if (gitem->album->item) { + char buf[GL_ALBUM_NAME_LEN_MAX] = { 0, }; + if (sel_all_cnt > 0) { + elm_object_item_signal_emit(gitem->album->item, + "elm,state,elm.text.badge,visible", + "elm"); + snprintf(buf, sizeof(buf), "%d", sel_all_cnt); + } else { + elm_object_item_signal_emit(gitem->album->item, + "elm,state,elm.text.badge,hidden", + "elm"); + } + elm_gengrid_item_fields_update(gitem->album->item, "elm.text.badge", ELM_GENGRID_ITEM_FIELD_TEXT); + } + /* Update the label text */ + _gl_thumbs_update_label_text(ad->gridinfo.nf_it, total_selected_count, false); +} + +#ifdef _USE_APP_SLIDESHOW +static void __gl_thumbs_edit_selected_slideshow_cb(void *data, Evas_Object *obj, + void *ei) +{ + elm_toolbar_item_selected_set((Elm_Object_Item *)ei, EINA_FALSE); + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + gl_item *cur_item = NULL; + media_content_type_e type = MEDIA_CONTENT_TYPE_OTHERS; + + _gl_data_get_first_item(type, ad->selinfo.elist, &cur_item); + GL_CHECK_VAL(cur_item, -1); + gl_ext_load_iv_ug(ad, cur_item, GL_UG_IV_SLIDESHOW_SELECTED); +} +#endif + +#ifdef GL_EXTENDED_FEATURES +int _gl_thumbs_edit_add_more(void *data, Evas_Object *parent, + Elm_Object_Item *nf_it) +{ + Evas_Object *btn = NULL; + /* More */ + btn = _gl_but_create_but(parent, NULL, NULL, GL_BUTTON_STYLE_NAVI_MORE, + __gl_thumbs_edit_more_cb, data); + GL_CHECK_VAL(btn, -1); + + elm_object_item_part_content_set(nf_it, GL_NAVIFRAME_MORE, btn); + _gl_ui_disable_btn(btn); + return 0; +} +#endif + +/* Delete/Copy/Move -- unavailable for Facebook(Facebook Team confirmed) */ +int _gl_thumbs_edit_add_btns(void *data, Evas_Object *parent, + Elm_Object_Item *nf_it) +{ + GL_CHECK_VAL(nf_it, -1); + GL_CHECK_VAL(parent, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + _gl_ui_clear_btns(data); + + int w = -1, h = -1; + evas_object_geometry_get(ad->maininfo.win, NULL, NULL, &w, &h); + Edje_Message_Int *msg = (Edje_Message_Int *)malloc(sizeof(Edje_Message_Int) + sizeof(int)); + GL_CHECK_VAL(msg, -1); + if (ad->gridinfo.split_view_mode == DETAIL_VIEW) { + msg->val = w; + } else { + msg->val = ((w < h) ? (w - (w / 3)) : (w - (h / 3))); + } + edje_object_message_send(elm_layout_edje_get(ad->gridinfo.layout), EDJE_MESSAGE_INT, 2, msg); + free(msg); + elm_object_signal_emit(ad->gridinfo.layout, "elm,selectall,state,visible", "elm"); + _gl_ui_add_selall_ck(ad->gridinfo.layout, "select.all.area.check", "select.all.area.check", + __gl_thumbs_edit_selall_cb, data); + +#ifdef _USE_APP_SLIDESHOW + /*only display the done button,ux:[Tizen] Gallery UI(T01)_v5.2_20130524*/ + if (_gl_thumbs_get_edit_mode(data) == GL_THUMBS_EDIT_SLIDESHOW) { + gl_dbg("only display the done button for selected slideshow"); + tb_it = _gl_ctrl_append_item(toolbar, NULL, GL_STR_ID_START, + __gl_thumbs_edit_selected_slideshow_cb, + data); + _gl_ctrl_disable_item(tb_it, true); + /* elm_object_item_part_content_set(nf_it, "toolbar", toolbar); */ + return 0; + } +#endif + +#ifdef GL_EXTENDED_FEATURES + /********* SHARE ***********/ + if (_gl_thumbs_get_edit_mode(data) == GL_THUMBS_EDIT_SHARE) { + /* BTN: Cancel/Share */ + /* Cancel */ + Evas_Object *btn1 = elm_button_add(layout); + Evas_Object *btn2 = elm_button_add(layout); + elm_object_style_set(btn1, "transparent"); + elm_object_style_set(btn2, "transparent"); + evas_object_size_hint_weight_set(btn1, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_weight_set(btn2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(btn1, 1, 1); + evas_object_size_hint_align_set(btn2, 1, 1); + evas_object_show(btn1); + evas_object_show(btn2); + elm_object_part_content_set(layout, "elm.swallow.left", btn1); + elm_object_part_content_set(layout, "elm.swallow.right", btn2); + evas_object_smart_callback_add(btn1, "clicked", __gl_thumbs_edit_cancel_cb, ad); + evas_object_smart_callback_add(btn2, "clicked", __gl_thumbs_edit_share_cb, ad); + _gl_ui_set_translate_part_str(layout, "title_left_text", GL_STR_ID_CANCEL); + _gl_ui_set_translate_part_str(layout, "title_right_text", GL_STR_ID_SHARE); + _gl_ctrl_append_item(toolbar, NULL, GL_STR_ID_CANCEL, + __gl_thumbs_edit_cancel_cb, data); + /* Share - to launch Share panel(app) */ + tb_it = _gl_ctrl_append_item(toolbar, NULL, GL_STR_ID_SHARE, + __gl_thumbs_edit_share_cb, data); + _gl_ctrl_disable_item(tb_it, true); + /* elm_object_item_part_content_set(nf_it, "toolbar", toolbar); */ + return 0; + } +#endif + + Evas_Object *btn1 = elm_button_add(parent); + Evas_Object *btn2 = elm_button_add(parent); + GL_CHECK_VAL(btn1, -1); + GL_CHECK_VAL(btn2, -1); + /* Title Cancel Button */ + elm_object_style_set(btn1, "naviframe/title_left"); + elm_object_item_part_content_set(nf_it, GL_NAVIFRAME_TITLE_LEFT_BTN, btn1); + _gl_ui_set_translate_str(btn1,GL_STR_ID_CANCEL_CAP); + evas_object_smart_callback_add(btn1, "clicked", __gl_thumbs_edit_cancel_cb, ad); + + /* Title Done Button */ + elm_object_style_set(btn2, "naviframe/title_right"); + elm_object_item_part_content_set(nf_it, GL_NAVIFRAME_TITLE_RIGHT_BTN, btn2); + _gl_ui_set_translate_str(btn2,GL_STR_ID_DONE_CAP); + evas_object_smart_callback_add(btn2, "clicked", __gl_thumbs_edit_done_cb, ad); + elm_object_disabled_set(btn2, EINA_TRUE); + + return 0; +} + +int _gl_thumbs_edit_create_view(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + int view_mode = gl_get_view_mode(data); + gl_dbg("mode: %d", view_mode); + + if (view_mode == GL_VIEW_THUMBS_EDIT && + _gl_thumbs_get_edit_mode(data) < GL_THUMBS_EDIT_FIRST) { + /* Fixme: maybe we should disable edit button until grid append idler is done */ + /** + * Happen in quickly tap edit button, + * it will invoke edit_cb several time + * and push some unuseful views. + */ + gl_dbg("Already in edit mode, return."); + return -1; + } + + ad->albuminfo.file_mc_mode = GL_MC_NONE; + + gl_set_view_mode(ad, GL_VIEW_THUMBS_EDIT); + Evas_Object *gv = NULL; + bool b_view = false; + b_view = _gl_thumbs_get_view(ad, &gv); + GL_CHECK_FALSE(gv); + _gl_thumbs_set_size(ad, gv); + + _gl_thumbs_edit_add_btns(data, ad->maininfo.naviframe, + ad->gridinfo.nf_it); + /* Update the label text */ + _gl_thumbs_update_label(ad->gridinfo.nf_it, GL_STR_ID_SELECT_ITEM); + /* Update realized items */ + if (_gl_thumbs_get_edit_mode(data) < GL_THUMBS_EDIT_FIRST) +#ifdef _USE_GRID_CHECK + _gl_show_grid_checks(ad->gridinfo.view, GL_THUMB_CHECKBOX); +#else + _gl_thumbs_update_realized_items(data); +#endif + _gl_thumb_update_split_view(data); + gl_dbg("Done"); + return 0; +} + +/* Get new data and refresh view */ +int _gl_thumbs_edit_update_view(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_sdbg("grid_type: %d", ad->gridinfo.grid_type); + + switch (ad->gridinfo.grid_type) { + case GL_GRID_T_LOCAL: + case GL_GRID_T_ALLALBUMS: + /* Albums list should be updated first */ + _gl_thumbs_update_items(ad); + break; + default: + gl_dbgE("Wrong grid type!"); + return -1; + } + return 0; +} + +int _gl_thumbs_edit_pop_view(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + /* Make sure it's in correct naviframe item, to pop upside naviframe items */ + elm_naviframe_item_pop_to(ad->gridinfo.nf_it); + + _gl_data_selected_list_finalize(data); + /* Clear buttons for edit view first */ + _gl_ui_clear_btns(data); + _gl_thumbs_set_edit_mode(data, GL_THUMBS_EDIT_NONE); + + gl_set_view_mode(data, GL_VIEW_THUMBS); + if (_gl_thumbs_get_edit_mode(data) < GL_THUMBS_EDIT_FIRST) { + /* Update the label text */ + _gl_thumbs_update_label(ad->gridinfo.nf_it, ad->gridinfo.title); + /* enable the grid pinch */ + edje_object_signal_emit(_EDJ(ad->gridinfo.layout), + GL_SIGNAL_GESTURE_DEFAULT, "elm"); + + elm_object_signal_emit(ad->gridinfo.layout, "elm,selectall,state,default", "elm"); +#ifdef _USE_GRID_CHECK + _gl_show_grid_checks(ad->gridinfo.view, GL_THUMB_CHECKBOX); +#else + _gl_thumbs_update_realized_items(data); +#endif + _gl_thumbs_add_btns(data); + ad->gridinfo.update_split_view = true; + _gl_thumb_update_split_view(data); + if (_gl_thumbs_check_zero(data)) { + gl_dbg("show nocontents"); + _gl_thumbs_show_nocontents(ad); + } + } + return 0; +} + +int _gl_thumbs_edit_update_lang(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->gridinfo.nf_it, -1); + int cnt = _gl_data_selected_list_count(ad); + /* Update the label text */ + if(cnt == 0) { + _gl_ui_change_navi_title(ad->gridinfo.nf_it, GL_STR_ID_SELECT_ITEM, true); + } + _gl_thumbs_update_label_text(ad->gridinfo.nf_it, cnt, true); + return 0; +} + +/*thumbnail view: more-share/delete-Download */ +/* Delete in unavaliable for Facebook */ +/* Download only for Video files in Cloud album */ +int _gl_thumbs_edit_disable_btns(void *data, bool b_disable) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + bool b_disable_more = false; /* No permission for FB */ + gl_dbg("b_disable: %d", b_disable); + Elm_Object_Item *nf_it = elm_naviframe_top_item_get(ad->maininfo.naviframe); + + if (!b_disable) { +#ifdef _USE_APP_SLIDESHOW + if (_gl_thumbs_get_edit_mode(data) == GL_THUMBS_EDIT_SLIDESHOW) { + _gl_ctrl_disable_items(nf_it, false); + } else +#endif + + _gl_ctrl_disable_items(nf_it, false); + gl_dbg("b_disable_more: %d", b_disable_more); + _gl_ui_disable_menu(nf_it, b_disable_more); + } else { + _gl_ui_disable_menu(nf_it, true); + _gl_ctrl_disable_items(nf_it, true); + } + return 0; +} + diff --git a/src/features/gl-thumbs-sel.c b/src/features/gl-thumbs-sel.c new file mode 100644 index 0000000..2804c38 --- /dev/null +++ b/src/features/gl-thumbs-sel.c @@ -0,0 +1,524 @@ +/* +* 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 "gl-debug.h" +#include "gl-thumbs-sel.h" +#include "gl-albums-sel.h" +#include "gl-thumbs.h" +#include "gl-thumb.h" +#include "gl-albums.h" +#include "gl-ui-util.h" +#include "gl-util.h" +#include "gl-data.h" +#include "gl-controlbar.h" +#include "gl-button.h" +#include "gl-pinchzoom.h" +#include "gl-popup.h" +#include "gl-notify.h" +#include "gl-strings.h" + +#if 0 +static void __gl_thumbs_sel_trans_finished_cb(void *data, Evas_Object *obj, + void *event_info) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + int view_mode = gl_get_view_mode(ad); + gl_dbgW("view_mode: %d", view_mode); + evas_object_smart_callback_del(obj, GL_TRANS_FINISHED, + __gl_thumbs_sel_trans_finished_cb); + + /* Clear previous view after animation finished */ + if (view_mode == GL_VIEW_THUMBS_SELECT) + elm_gengrid_clear(ad->albuminfo.select_view); + else + gl_dbgE("Wrong view mode!"); + + if (ad->gridinfo.is_append) { + _gl_thumbs_append_items(data); + ad->gridinfo.is_append = false; + } +} + +static Eina_Bool __gl_thumbs_sel_pop_cb(void *data, Elm_Object_Item *it) +{ + GL_CHECK_FALSE(data); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg(""); + ad->gridinfo.is_append = false; + + /* If the back button is clicked or H/W Back key is pressed, + this callback will be called right before the + current view pop. User may implement application logic here. */ + + /* To proceed the popping, please return the EINA_TRUE or not, + popping will be canceled. + If it needs to delete the current view without any transition effect, + then call the elm_object_item_del() here and then return the EINA_FALSE */ + _gl_thumbs_sel_pop_view(data, false); + + /* Clear selected list */ + _gl_data_clear_selected_info(data); + + return EINA_TRUE; +} +#endif + +static void __gl_thumbs_sel_popup_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(obj); + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + const char *text = NULL; + + text = elm_object_text_get(obj); + GL_CHECK(text); + gl_dbg("Button: %s", text); + + if (!g_strcmp0(text, _gl_str(GL_STR_ID_CANCEL_ABB))) { + GL_IF_DEL_OBJ(ad->popupinfo.popup); + return; + } else if (!g_strcmp0(text, _gl_str(GL_STR_ID_MOVE))) { + ad->albuminfo.file_mc_mode = GL_MC_MOVE; + } else { + ad->albuminfo.file_mc_mode = GL_MC_COPY; + } + + gl_move_copy_to_album(data); + GL_IF_DEL_OBJ(ad->popupinfo.popup); +} + +static void __gl_thumbs_sel_done_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + ad->selinfo.elist = eina_list_merge(ad->selinfo.elist, ad->selinfo.fav_elist); + ad->selinfo.fav_elist = NULL; + int cnt = _gl_data_selected_list_count(ad); + if (cnt == 0) { + gl_dbgW("No thumbs selected!"); + gl_popup_create_popup(ad, GL_POPUP_NOBUT, GL_STR_NO_FILES_SELECTED); + return; + } + /* For new album case */ + _gl_popup_create(data, GL_STR_ID_NEW_ALBUM, + GL_STR_ID_NEW_ALBUM_CONFIRMATION, GL_STR_ID_CANCEL_ABB, + __gl_thumbs_sel_popup_cb, data, GL_STR_ID_MOVE, + __gl_thumbs_sel_popup_cb, data, GL_STR_ID_COPY, + __gl_thumbs_sel_popup_cb, data); +} + +static void __gl_thumbs_sel_cancel_cb(void *data, Evas_Object *obj, void *ei) +{ + elm_toolbar_item_selected_set((Elm_Object_Item *)ei, EINA_FALSE); + GL_CHECK(data); + gl_dbg(""); + gl_appdata *ad = (gl_appdata *)data; + ad->selinfo.fav_elist = NULL; + elm_naviframe_item_pop(ad->maininfo.naviframe); +} + +#if 0 +/** + * Use naviframe api to push thumbnails eidt view to stack. + * @param obj is the content to be pushed. + */ +static int __gl_thumbs_sel_push_view(void *data, Evas_Object *parent, + Evas_Object *obj, char *title) +{ + gl_dbg("GL_NAVI_THUMBS_SELECT"); + GL_CHECK_VAL(obj, -1); + GL_CHECK_VAL(parent, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + Elm_Object_Item *nf_it = NULL; + + /* Add transition finished callback */ + evas_object_smart_callback_add(parent, GL_TRANS_FINISHED, + __gl_thumbs_sel_trans_finished_cb, data); + + /* Push to stack */ + nf_it = elm_naviframe_item_push(parent, title, NULL, NULL, obj, + NULL); + /* use pop_cb_set to support HW key event */ + elm_naviframe_item_pop_cb_set(nf_it, __gl_thumbs_sel_pop_cb, data); + _gl_ui_set_translatable_item(nf_it, title); + ad->gridinfo.nf_it_select = nf_it; + + Elm_Object_Item *tb_it = NULL; + Evas_Object *toolbar = _gl_ctrl_add_toolbar(parent); + /* Add 'Cancel' button */ + _gl_ctrl_append_item(toolbar, NULL, GL_STR_ID_CANCEL, + __gl_thumbs_sel_cancel_cb, data); + char *str = GL_STR_ID_DONE; + /* Add 'Done' button */ + tb_it = _gl_ctrl_append_item(toolbar, NULL, str, + __gl_thumbs_sel_done_cb, data); + _gl_ctrl_disable_item(tb_it, true); + elm_object_item_part_content_set(nf_it, "toolbar", toolbar); + return 0; +} +#endif + +/* Free data after layout deleted */ +static void __gl_thumbs_sel_delete_layout_cb(void *data, Evas *e, + Evas_Object *obj, void *ei) +{ + gl_dbg("Delete layout ---"); + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + + Elm_Gengrid_Item_Class *gic = NULL; + gic = evas_object_data_get(ad->gridinfo.select_view, + "gl_thumbs_item_style_key"); + GL_CHECK(gic); + gic->func.del = NULL; + + _gl_thumbs_clear_cbs(ad->gridinfo.select_view); + elm_gengrid_clear(ad->gridinfo.select_view); + _gl_ui_del_scroller_pos(ad->gridinfo.select_view); + /* Remove idler */ + ad->gridinfo.is_append = false; + ad->gridinfo.select_view = NULL; + ad->gridinfo.select_layout = NULL; + ad->gridinfo.nf_it_select = NULL; + /* Clear selected list if it wasn't freed before */ + _gl_data_clear_selected_info(data); + /* Clear all data */ + _gl_thumbs_clear_and_set_list(data, NULL); + _gl_albums_set_current(data, NULL); + /* Reset pinch zoom in/out flag */ + _gl_pinch_reset_flag(data); + gl_dbg("Delete layout +++"); +} + +/* Select-all checkbox selected/deselected */ +static void __gl_thumbs_sel_selall_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + int i = 0; + int item_cnt = 0; + int sel_all_cnt = 0; + gl_item *gitem = NULL; + + ad->selinfo.ck_state = !elm_check_state_get(ad->selinfo.selectall_ck); + if (ad->selinfo.selectall_ck) { + elm_check_state_set(ad->selinfo.selectall_ck, ad->selinfo.ck_state); + } + int state = ad->selinfo.ck_state; + gl_dbg("Checkbox state: %d.", state); + Eina_List *medias_elist = NULL; + _gl_thumbs_get_list(ad, &(medias_elist)); + /* Get all medias count of current album */ + item_cnt = eina_list_count(medias_elist); + + for (i = 0; i < item_cnt; i++) { + gitem = eina_list_nth(medias_elist, i); + GL_CHECK(gitem); + GL_CHECK(gitem->item); + + if (gitem->checked == state) + continue; + + gitem->checked = state; + + if (state == EINA_TRUE) { + if (strcmp(gitem->album->cluster->uuid, GL_ALBUM_FAVOURITE_ID)==0) { + Eina_List *sel_list1 = ad->selinfo.fav_elist; + sel_list1 = eina_list_append(sel_list1, gitem); + ad->selinfo.fav_elist = sel_list1; + } else { + _gl_data_selected_list_append(ad, gitem); + } + gitem->album->elist = eina_list_append(gitem->album->elist, gitem); + } else { + if (strcmp(gitem->album->cluster->uuid, GL_ALBUM_FAVOURITE_ID)==0) { + _gl_data_selected_fav_list_remove(ad, gitem); + } else { + _gl_data_selected_list_remove(ad, gitem); + } + gitem->album->elist = eina_list_remove(gitem->album->elist, gitem); + } + } + /* Update all realized items */ + _gl_ui_update_realized_grid_ck(ad->gridinfo.select_view, + GL_THUMB_CHECKBOX, NULL, + ad->selinfo.ck_state); + /* Recreate selection info for both cases */ + if (state == EINA_FALSE) + sel_all_cnt = 0; + else + sel_all_cnt = item_cnt; + + int sel_cnt = eina_list_count(ad->selinfo.elist); + int fav_sel_cnt = eina_list_count(ad->selinfo.fav_elist); + int total_sel_count = sel_cnt + fav_sel_cnt; + _gl_notify_check_selall(ad, ad->albuminfo.nf_it_select, item_cnt, + sel_all_cnt); + if (gitem->album->item) { + elm_gengrid_item_update(gitem->album->item); + } + /* Update the label text */ + _gl_ui_update_navi_title_text(ad->albuminfo.nf_it_select, total_sel_count, false); +} + +void _gl_thumb_sel_add_album_data(gl_cluster *album, Eina_List *medias_elist) +{ + GL_CHECK(album); + GL_CHECK(medias_elist); + int cnt = eina_list_count(medias_elist); + int i; + gl_item *gitem = NULL; + for (i = 0; i < cnt; i++) { + gitem = eina_list_nth(medias_elist, i); + if (gitem) { + gitem->album = album; + } + } +} + +/** + * Album selected for adding tags to photo + */ +int _gl_thumbs_sel_create_view(void *data, gl_cluster *album_item) +{ + GL_CHECK_VAL(album_item, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + ad->gridinfo.is_append = false; + Eina_List *sel_id_list = NULL; + gl_item *gitem = NULL; + EINA_LIST_FREE(album_item->elist, gitem) { + } + + /* Get items list without current tag */ + Eina_List *medias_elist = NULL; + _gl_data_get_items_album(ad, album_item, GL_FIRST_VIEW_START_POS, + GL_GET_UNTIL_LAST_RECORD, &medias_elist); + ad->gridinfo.is_append = true; + _gl_thumbs_set_list(ad, medias_elist); + _gl_thumb_sel_add_album_data(album_item, medias_elist); + int count = eina_list_count(medias_elist); + int i; + + if (strcmp(album_item->cluster->uuid, GL_ALBUM_FAVOURITE_ID)== 0) + { + for (i = 0; i < count ; i++) { + gitem = eina_list_nth(medias_elist, i); + _gl_data_restore_selected(ad->selinfo.fav_elist, gitem); + } + } else { + for (i = 0; i < count ; i++) { + gitem = eina_list_nth(medias_elist, i); + _gl_data_restore_selected(ad->selinfo.elist, gitem); + } + } + if (eina_list_count(medias_elist) <= 0) { + gl_dbgW("All medias are tagged!"); + /* Add notification */ + _gl_notify_create_notiinfo(GL_STR_ADDED); + return -1; + } + + Evas_Object *layout = NULL; + /* Add layout */ + layout = _gl_ctrl_add_layout(ad->maininfo.naviframe); + GL_CHECK_VAL(layout, -1); + 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); + /* Register delete callback */ + evas_object_event_callback_add(layout, EVAS_CALLBACK_DEL, + __gl_thumbs_sel_delete_layout_cb, data); + /* Save view mode */ + int pre_view_m = gl_get_view_mode(data); + /* Set new view mode */ + gl_set_view_mode(data, GL_VIEW_THUMBS_SELECT); + /* Add pinch effect before adding view */ + _gl_pinch_add_event(data, layout); + /* Add view */ + Evas_Object *view = NULL; + view = _gl_thumbs_add_grid(data, layout, GL_THUMB_ALL); + if (view == NULL) { + evas_object_del(layout); + gl_popup_create_popup(data, GL_POPUP_NOBUT, GL_STR_NO_ALBUMS); + /* Reset view mode */ + gl_set_view_mode(data, pre_view_m); + return -1; + } + + /* Set view to layout */ + elm_object_part_content_set(ad->albuminfo.select_layout, "elm.swallow.view", view); + /* Push view to naviframe */ + elm_object_item_part_text_set(ad->albuminfo.nf_it_select, "elm.text.title", _gl_str(GL_STR_ID_SELECT_ITEM)); + + Evas_Object *btn1 = elm_button_add(layout); + Evas_Object *btn2 = elm_button_add(layout); + + GL_CHECK_VAL(btn1, -1); + GL_CHECK_VAL(btn2, -1); + + /* Title Cancel Button */ + elm_object_style_set(btn1, "naviframe/title_left"); + elm_object_item_part_content_set(ad->albuminfo.nf_it_select, GL_NAVIFRAME_TITLE_LEFT_BTN, btn1); + _gl_ui_set_translate_str(btn1,GL_STR_ID_CANCEL_CAP); + evas_object_smart_callback_add(btn1, "clicked", __gl_thumbs_sel_cancel_cb, ad); + + /* Title Done Button */ + elm_object_style_set(btn2, "naviframe/title_right"); + elm_object_item_part_content_set(ad->albuminfo.nf_it_select, GL_NAVIFRAME_TITLE_RIGHT_BTN, btn2); + _gl_ui_set_translate_str(btn2,GL_STR_ID_DONE_CAP); + evas_object_smart_callback_add(btn2, "clicked", __gl_thumbs_sel_done_cb, ad); + elm_object_disabled_set(btn2, EINA_TRUE); + + ad->gridinfo.select_view = view; + ad->gridinfo.select_layout = layout; + + /* Show select all widget */ + int w = -1; + int h = -1; + evas_object_geometry_get(ad->maininfo.win, NULL, NULL, &w, &h); + Edje_Message_Int *msg = (Edje_Message_Int *)malloc(sizeof(Edje_Message_Int) + sizeof(int)); + msg->val = ((w < h) ? (w - (w / 3)) : (w - (h / 3))); + gl_dbgE("msg value : %d", msg->val); + edje_object_message_send(elm_layout_edje_get(ad->albuminfo.select_layout), EDJE_MESSAGE_INT, 2, msg); + free(msg); + elm_object_signal_emit(ad->albuminfo.select_layout, "elm,selectall,state,visible,bg", "elm"); + elm_object_signal_emit(ad->albuminfo.select_layout, "elm,selectall,state,visible", "elm"); + _gl_ui_add_selall_ck(ad->albuminfo.select_layout, "select.all.area.check", "select.all.area.check", + __gl_thumbs_sel_selall_cb, data); + + int sel_cnt = _gl_data_selected_list_count(ad); + + int fav_sel_cnt = eina_list_count(ad->selinfo.fav_elist); + int total_sel_count = sel_cnt + fav_sel_cnt; + /* Update the label text */ + _gl_thumbs_update_label_text(ad->albuminfo.nf_it_select, total_sel_count, false); + + gl_item *gitem_tmp = eina_list_nth(ad->gridinfo.medias_elist, 0); + GL_CHECK_VAL(gitem_tmp->album->elist, -1); + if (gitem_tmp->album->elist) { + int album_select_count = eina_list_count(gitem_tmp->album->elist); + gl_dbgW("album sel cont : %d !", album_select_count); + _gl_notify_check_selall(ad, ad->albuminfo.nf_it_select, ad->gridinfo.count, album_select_count); + } + gl_dbg("Done"); + return 0; +} + +/* Update in select thunb view for Tags */ +int _gl_thumbs_sel_update_view(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + int view_mode = gl_get_view_mode(ad); + + gl_dbg("view_mode: %d", view_mode); + if (view_mode != GL_VIEW_THUMBS_SELECT) { + gl_dbg("Not in Select view."); + return -1; + } + +#ifdef _USE_ROTATE_BG + bool is_select = true; + if (_gl_ctrl_get_tab_mode(data) == GL_CTRL_TAB_ALBUMS || + _gl_ctrl_get_tab_mode(data) == GL_CTRL_TAB_TIMELINE) + is_select = false; + _gl_refresh_albums_list(data, false, is_select); +#else + /* Checkme: albums list is not updated */ + Eina_List *sel_id_list = NULL; + Eina_List *media_elist = NULL; + _gl_data_save_selected_str_ids(data, &sel_id_list); + _gl_data_clear_selected_info(ad); + _gl_data_update_item_list(ad, &sel_id_list, &media_elist); + _gl_thumbs_clear_and_set_list(ad, media_elist); +#endif + + if (_gl_thumbs_check_zero(data)) { + int err = -1; + int item_cnt = 0; + err = _gl_data_get_item_cnt(GL_ALBUM_ALL_ID, GL_STORE_T_ALL, &item_cnt); + /* Destroy select albums view */ + if (err != 0 || item_cnt == 0) { + gl_dbg("None local albums."); + _gl_albums_sel_pop_view(ad); + } else { + gl_dbg("Empty album."); + _gl_thumbs_sel_pop_view(ad, true); + } + return 0; + } else { + _gl_thumbs_show_edit_view(ad); + + /* Get selected medias count */ + int sel_cnt = _gl_data_selected_list_count(ad); + + int count = eina_list_count(ad->gridinfo.medias_elist); + int i; + gl_item *gitem = NULL; + gitem = eina_list_nth(ad->gridinfo.medias_elist, 0); + int album_sel_count = eina_list_count(gitem->album->elist); + + /* Display selectioninfo */ + _gl_notify_check_selall(ad, ad->albuminfo.nf_it_select, + ad->gridinfo.count, album_sel_count); + + /* Update the label text */ + _gl_ui_update_label_text(ad->albuminfo.nf_it_select, sel_cnt, + false); + } + + return 0; +} + +int _gl_thumbs_sel_pop_view(void *data, bool b_pop) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + if (b_pop) { + /* Pop naviframe item*/ + elm_naviframe_item_pop(ad->maininfo.naviframe); + } + /* Reset view mode */ + gl_set_view_mode(data, GL_VIEW_ALBUMS_SELECT); + /* Update view */ + _gl_albums_sel_update_view(data); + return 0; +} + +int _gl_thumbs_sel_update_lang(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg(""); + int sel_cnt = _gl_data_selected_list_count(ad); + /* Update the label text */ + _gl_ui_update_navi_title_text(ad->albuminfo.nf_it_select, sel_cnt, false); + return 0; +} + +int _gl_thumbs_sel_disable_btns(void *data, bool b_disabled) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg("disabled: %d", b_disabled); + _gl_ctrl_disable_items(ad->gridinfo.nf_it_select, b_disabled); + return 0; +} + diff --git a/src/features/gl-thumbs.c b/src/features/gl-thumbs.c new file mode 100644 index 0000000..88db965 --- /dev/null +++ b/src/features/gl-thumbs.c @@ -0,0 +1,2345 @@ +/* +* 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 "gl-debug.h" +#include "gl-thumbs.h" +#include "gl-thumbs-edit.h" +#include "gl-ui-util.h" +#include "gl-util.h" +#include "gl-albums.h" +#include "gl-albums-sel.h" +#include "gl-data.h" +#include "gl-ext-ug-load.h" +#include "gl-ext-exec.h" +#include "gl-pinchzoom.h" +#include "gl-progressbar.h" +#include "gl-controlbar.h" +#include "gl-nocontents.h" +#include "gl-notify.h" +#include "gl-strings.h" +#include "gl-icons.h" +#include "gl-thumb.h" +#include "gl-button.h" +#include "gl-ctxpopup.h" +#include "gl-editfield.h" +#include "gl-fs.h" +#include "gl-gesture.h" +#include "gl-popup.h" +#include "gl-file-util.h" + +static void __gl_thumbs_check_changed(void *data, Evas_Object *obj, void *ei); +void _gl_thumbs_open_file(void *data) +{ + gl_dbg(""); + GL_CHECK(data); + gl_item *gitem = (gl_item *)data; + GL_CHECK(gitem->item); + GL_CHECK(gitem->item->file_url); + GL_CHECK(strlen(gitem->item->file_url)); + GL_CHECK(gitem->ad); + gl_appdata *ad = (gl_appdata *)gitem->ad; + int view_mode = gl_get_view_mode(ad); + if (view_mode != GL_VIEW_THUMBS) { + gl_dbgE("Error view mode!"); + return; + } + + gl_dbg("Loading UG-IMAGE-VIEWER"); + gl_ext_load_iv_ug(ad, gitem, GL_UG_IV); +} + +void _gl_thumbs_open_file_select_mode(void *data) +{ + gl_dbg(""); + GL_CHECK(data); + gl_item *gitem = (gl_item *)data; + GL_CHECK(gitem->item); + GL_CHECK(gitem->item->file_url); + GL_CHECK(strlen(gitem->item->file_url)); + GL_CHECK(gitem->ad); + gl_appdata *ad = (gl_appdata *)gitem->ad; + + gl_dbg("Loading UG-IMAGE-VIEWER-SELECT-MODE"); + gl_ext_load_iv_ug_select_mode(ad, gitem->item, GL_UG_IV); +} + +static int __gl_thumbs_change_check(void *data, Elm_Object_Item *it) +{ + GL_CHECK_VAL(it, -1); + GL_CHECK_VAL(data, -1); + Evas_Object *ck = NULL; + gl_dbg(""); + + ck = elm_object_item_part_content_get(it, GL_THUMB_CHECKBOX); + GL_CHECK_VAL(ck, -1); + + elm_check_state_set(ck, !elm_check_state_get(ck)); + __gl_thumbs_check_changed(data, ck, NULL); + return 0; +} + +static void __gl_thumbs_sel_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_item *gitem = (gl_item *)data; + GL_CHECK(gitem->ad); + gl_appdata *ad = (gl_appdata *)gitem->ad; + int view_mode = gl_get_view_mode(ad); + + elm_gengrid_item_selected_set((Elm_Object_Item *)ei, EINA_FALSE); + if (view_mode != GL_VIEW_THUMBS) { + __gl_thumbs_change_check(data, (Elm_Object_Item *)ei); + return; + } + /* Save scroller position before clearing gengrid */ + _gl_ui_save_scroller_pos(obj); + _gl_thumbs_open_file(data); +} + +static void __gl_thumbs_realized(void *data, Evas_Object *obj, void *ei) +{ + gl_dbg("realized"); + GL_CHECK(ei); + GL_CHECK(data); /* It's ad */ + Elm_Object_Item *it = (Elm_Object_Item *)ei; + Elm_Gengrid_Item_Class *gic = NULL; + gic = evas_object_data_get(obj, "gl_thumbs_item_style_key"); + /* Do nothing for date item */ + if (elm_gengrid_item_item_class_get(it) != gic) + return; + + gl_item *gitem = elm_object_item_data_get(it); + GL_CHECK(gitem); + GL_CHECK(gitem->item); + /* Checking for local files only */ + if (gitem->store_type == GL_STORE_T_MMC || + gitem->store_type == GL_STORE_T_ALL || + gitem->store_type == GL_STORE_T_PHONE) { + /* Use default image */ + if (!GL_FILE_EXISTS(gitem->item->thumb_url)) { + _gl_thumbs_create_thumb(gitem); + } + } +} + +static void __gl_thumbs_unrealized(void *data, Evas_Object *obj, void *ei) +{ + gl_dbg("unrealized"); + GL_CHECK(ei); + GL_CHECK(data); /* It's ad */ + Elm_Object_Item *it = (Elm_Object_Item *)ei; + Elm_Gengrid_Item_Class *gic = NULL; + gic = evas_object_data_get(obj, "gl_thumbs_item_style_key"); + /* Do nothing for date item */ + if (elm_gengrid_item_item_class_get(it) != gic) + return; + + gl_item *gitem = elm_object_item_data_get(it); + GL_CHECK(gitem); + GL_CHECK(gitem->item); + /* Checking for local files only */ + if (gitem->store_type == GL_STORE_T_MMC || + gitem->store_type == GL_STORE_T_ALL || + gitem->store_type == GL_STORE_T_PHONE) { + if (gitem->item->b_create_thumb) { + _gl_data_cancel_thumb(gitem->item); + } + } +} + +static void __gl_thumbs_longpressed_cb(void *data, Evas_Object *obj, void *ei) +{ + gl_dbg("longpressed"); + GL_CHECK(ei); + Elm_Gengrid_Item_Class *gic = NULL; + gic = evas_object_data_get(obj, "gl_thumbs_item_style_key"); + /* Do nothing for date item */ + if (elm_gengrid_item_item_class_get((Elm_Object_Item *)ei) != gic) + return; + if (GL_VIEW_THUMBS != gl_get_view_mode(data) || + GL_CTRL_TAB_ALBUMS != _gl_ctrl_get_tab_mode(data)) + return; + +#if 0 + gl_item *gitem = (gl_item *)elm_object_item_data_get(ei); + GL_CHECK(gitem); + GL_CHECK(gitem->item); + GL_CHECK(gitem->item->display_name); + + _gl_data_selected_list_finalize(data); + _gl_data_selected_list_append(data, gitem); + Eina_List *medias_elist = NULL; + _gl_thumbs_get_list(data, &medias_elist); + _gl_data_selected_add_burstshot(data, gitem, medias_elist); +#endif +} + +static void __gl_thumbs_lang_changed(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(obj); + Eina_List *its = NULL; + Eina_List *l = NULL; + Elm_Object_Item *it = NULL; + const Elm_Gengrid_Item_Class *itc = NULL; + + its = elm_gengrid_realized_items_get(obj); + EINA_LIST_FOREACH(its, l, it) { + itc = elm_gengrid_item_item_class_get(it); + if (itc && itc->func.text_get) /* Date item */ + elm_gengrid_item_update(it); + it = NULL; + } +} + +static void __gl_thumbs_check_changed(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(obj); + GL_CHECK(data); + gl_item *gitem = (gl_item *)data; + GL_CHECK(gitem->ad); + GL_CHECK(gitem->album); + gl_appdata *ad = (gl_appdata *)gitem->ad; + int view_mode = gl_get_view_mode(ad); + Elm_Object_Item *nf_it = NULL; + int (*update_text) (Elm_Object_Item *nf_it, int sel_cnt, bool b_lang); + gl_dbg(""); + + if (view_mode == GL_VIEW_THUMBS_EDIT) { + nf_it = ad->gridinfo.nf_it; + update_text = _gl_thumbs_update_label_text; + } else if (view_mode == GL_VIEW_THUMBS_SELECT) { + nf_it = ad->albuminfo.nf_it_select; + update_text = _gl_ui_update_navi_title_text; + } else { + return; + } + + Eina_Bool checked = elm_check_state_get(obj); + gitem->checked = checked; + if (checked) { + if (strcmp(gitem->album->cluster->uuid, GL_ALBUM_FAVOURITE_ID)==0) { + Eina_List *sel_list1 = ad->selinfo.fav_elist; + sel_list1 = eina_list_append(sel_list1, gitem); + ad->selinfo.fav_elist = sel_list1; + } else { + _gl_data_selected_list_append(ad, gitem); + Eina_List *medias_elist = NULL; + _gl_thumbs_get_list(ad, &medias_elist); + _gl_data_selected_add_burstshot(ad, gitem, medias_elist); + } + gitem->album->elist = eina_list_append(gitem->album->elist, gitem); + } else { + gl_sdbg("Remove:%s", gitem->item->file_url); + if (strcmp(gitem->album->cluster->uuid, GL_ALBUM_FAVOURITE_ID)==0) { + _gl_data_selected_fav_list_remove(ad, gitem); + } else { + _gl_data_selected_list_remove(ad, gitem); + } + gitem->album->elist = eina_list_remove(gitem->album->elist, gitem); + } + /* Display selectioninfo */ + int sel_cnt = _gl_data_selected_list_count(ad); + int fav_sel_cnt = eina_list_count(ad->selinfo.fav_elist); + int total_sel_count = sel_cnt + fav_sel_cnt; + int album_select_count = eina_list_count(gitem->album->elist); + if (gitem->album->item) { + char buf[GL_ALBUM_NAME_LEN_MAX] = { 0, }; + if (album_select_count > 0) { + elm_object_item_signal_emit(gitem->album->item, + "elm,state,elm.text.badge,visible", + "elm"); + snprintf(buf, sizeof(buf), "%d", album_select_count); + } else { + elm_object_item_signal_emit(gitem->album->item, + "elm,state,elm.text.badge,hidden", + "elm"); + } + elm_gengrid_item_fields_update(gitem->album->item, "elm.text.badge", ELM_GENGRID_ITEM_FIELD_TEXT); + } + _gl_notify_check_selall(ad, nf_it, ad->gridinfo.count, album_select_count); + /* Update the label text */ + //if(ad->selinfo.fav_elist!=NULL) + gl_sdbg("sel_cnt:%d", total_sel_count); + update_text(nf_it, total_sel_count, false); + +} + +#ifdef _USE_SHRINK_EFFECT + + +static void __gl_thumbs_shrink_cb(void *data, Evas_Object *obj, + const char *emission, const char *source) +{ + GL_CHECK(data); + gl_item *gitem = (gl_item *) data; + GL_CHECK(gitem->ad); + gl_appdata *ad = (gl_appdata *)gitem->ad; + gl_dbg(""); + + _gl_thumbs_open_file(data); + + edje_object_signal_callback_del(obj, "shrink,expand,done", "bg", + __gl_thumbs_shrink_cb); +} +#endif + +/* Only for local medias */ +static void __gl_thumbs_create_thumb_cb(media_content_error_e error, + const char *path, void *user_data) +{ + GL_CHECK(user_data); + gl_thumb_data_s *thumb_data = (gl_thumb_data_s *)user_data; + GL_CHECK(thumb_data->ad); + gl_appdata *ad = (gl_appdata *)thumb_data->ad; + gl_item *gitem = thumb_data->item; + GL_FREE(thumb_data); + gitem->thumb_data = NULL; + + if (gl_get_view_mode(ad) != GL_VIEW_THUMBS && + gl_get_view_mode(ad) != GL_VIEW_THUMBS_EDIT && + gl_get_view_mode(ad) != GL_VIEW_THUMBS_SELECT) + return; + + if (error == MEDIA_CONTENT_ERROR_NONE && GL_FILE_EXISTS(path) && + g_strcmp0(path, GL_ICON_DB_DEFAULT_THUMB)) { + GL_CHECK(gitem); + GL_CHECK(gitem->item); + gl_dbg("Update item with new thumb path[%s]", path); + /* Update thumb path */ + GL_FREEIF(gitem->item->thumb_url); + gitem->item->thumb_url = strdup(path); + elm_gengrid_item_update(gitem->elm_item); + } else { + gl_dbgE("[%d]Invalid path[%s]!", error, path); + } +} + +/* Use file to create new thumb if possible */ +int _gl_thumbs_create_thumb(gl_item *gitem) +{ + GL_CHECK_VAL(gitem, -1); + GL_CHECK_VAL(gitem->item, -1); + GL_CHECK_VAL(gitem->item->file_url, -1); + + if (GL_FILE_EXISTS(gitem->item->file_url)) { + gl_thumb_data_s *thumb_data = NULL; + thumb_data = (gl_thumb_data_s *)calloc(1, sizeof(gl_thumb_data_s)); + GL_CHECK_VAL(thumb_data, -1); + thumb_data->ad = gitem->ad; + thumb_data->item = gitem; + gitem->thumb_data = thumb_data; + _gl_data_create_thumb(gitem->item, __gl_thumbs_create_thumb_cb, + thumb_data); + return 0; + } + return -1; +} + +/* +static void __gl_thumbs_item_deleted(void *data, Evas_Object *obj) +{ + GL_CHECK(data); + gl_item *gitem = (gl_item *)data; + gl_dbg("[%p]", gitem); + if (gitem->b_deleted) { + gl_dbgW("[%p]b_deleted : %d", gitem, gitem->b_deleted); + //_gl_data_free_burstshot_items(gitem,); + _gl_data_util_free_gitem(gitem); + } +} +*/ + +void open_image_in_select_mode(void *data, Evas_Object *obj, void *event_info) +{ + GL_CHECK(data); + _gl_thumbs_open_file_select_mode(data); +} + +static Evas_Object *__gl_thumbs_get_content(void *data, Evas_Object *obj, + const char *part) +{ + GL_CHECK_NULL(part); + GL_CHECK_NULL(strlen(part)); + GL_CHECK_NULL(data); + gl_item *gitem = (gl_item *)data; + GL_CHECK_NULL(gitem->item); + GL_CHECK_NULL(gitem->ad); + gl_appdata *ad = (gl_appdata *)gitem->ad; + int view_mode = gl_get_view_mode(ad); + + if (!g_strcmp0(part, GL_THUMB_ICON)) { + Evas_Object *layout = _gl_thumbs_get_content(ad, obj, gitem, + ad->gridinfo.icon_w, + ad->gridinfo.icon_h); + +#ifdef _USE_SHRINK_EFFECT + evas_object_event_callback_add(layout, EVAS_CALLBACK_MOUSE_DOWN, + _gl_thumbs_mouse_down, gitem); + evas_object_event_callback_add(layout, EVAS_CALLBACK_MOUSE_UP, + _gl_thumbs_mouse_up, gitem); +#endif + return layout; + } else if (!g_strcmp0(part, GL_THUMB_CHECKBOX)) { + Evas_Object *ck = NULL; + if (view_mode == GL_VIEW_THUMBS_EDIT || + view_mode == GL_VIEW_THUMBS_SELECT) { + bool checked = true; + if (!gitem->checked) { + checked = _gl_data_get_burstshot_status(ad, gitem); + } else { + checked = gitem->checked; + } + ck = _gl_thumb_show_checkbox(obj, checked, + __gl_thumbs_check_changed, data); + elm_object_item_signal_emit(gitem->elm_item, "show_image_icon", "elm_image_open_icon_rect"); + } else { + ck = elm_object_item_part_content_get(gitem->elm_item, + GL_THUMB_CHECKBOX); + elm_object_item_signal_emit(gitem->elm_item, "hide_image_icon", "elm_image_open_icon_rect"); + if (ck) { + evas_object_del(ck); + ck = NULL; + } + } + return ck; + } else if (!g_strcmp0(part, "elm_image_open_icon_swallow_blocker")) { + Evas_Object *btn1 = NULL; + if (view_mode == GL_VIEW_THUMBS_EDIT || + view_mode == GL_VIEW_THUMBS_SELECT) { + btn1 = evas_object_rectangle_add(evas_object_evas_get(obj)); + evas_object_color_set(btn1, 0, 255, 0, 0); + evas_object_propagate_events_set(btn1, EINA_FALSE); + } + else { + btn1 = elm_object_item_part_content_get(gitem->elm_item, + "elm_image_open_icon_swallow_blocker"); + if (btn1) { + evas_object_del(btn1); + btn1 = NULL; + } + } + return btn1; + } else if (!g_strcmp0(part, "elm_image_open_icon_swallow")) { + Evas_Object *btn = NULL; + if (view_mode == GL_VIEW_THUMBS_EDIT || + view_mode == GL_VIEW_THUMBS_SELECT) { + btn = elm_button_add(obj); + elm_object_style_set(btn, "transparent"); + evas_object_show(btn); + evas_object_propagate_events_set(btn, EINA_FALSE); + evas_object_smart_callback_add(btn, "clicked", open_image_in_select_mode, gitem); + } else { + btn = elm_object_item_part_content_get(gitem->elm_item, + "elm_image_open_icon_swallow"); + if (btn) { + evas_object_del(btn); + btn = NULL; + } + } + return btn; + } else if (!g_strcmp0(part, GL_THUMB_MODE)) { + return _gl_thumb_show_mode(obj, gitem->item->mode); + } + return NULL; +} + +static char *__gl_thumbs_get_text(void *data, Evas_Object *obj, + const char *part) +{ + GL_CHECK_NULL(part); + GL_CHECK_NULL(strlen(part)); + GL_CHECK_NULL(data); + gl_item *gitem = (gl_item *)data; + GL_CHECK_NULL(gitem->item); + + struct tm time; + localtime_r((time_t *) &(gitem->item->mtime), &time); + + if (!g_strcmp0(part, GL_THUMB_YEAR)) { + char buf[GL_DATE_INFO_LEN_MAX] = {0}; + snprintf(buf, sizeof(buf), "%d", GL_DEFAULT_YEAR+time.tm_year); + return strdup(buf); + } else if (!g_strcmp0(part, GL_THUMB_MONTH)) { + char *mon_name[12] = { + GL_STR_ID_JAN, GL_STR_ID_FEB, GL_STR_ID_MAR, + GL_STR_ID_APR, GL_STR_ID_MAY, GL_STR_ID_JUN, + GL_STR_ID_JUL, GL_STR_ID_AUG, GL_STR_ID_SEP, + GL_STR_ID_OCT, GL_STR_ID_NOV, GL_STR_ID_DEC }; + return g_ascii_strup(_gl_str(mon_name[time.tm_mon]), -1); + } + + return NULL; +} + +static int __gl_thumbs_set_type(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + ad->gridinfo.grid_type = GL_GRID_T_NONE; + gl_cluster *cur_album = _gl_albums_get_current(data); + GL_CHECK_VAL(cur_album, -1); + GL_CHECK_VAL(cur_album->cluster, -1); + + switch (cur_album->cluster->type) { + case GL_STORE_T_PHONE: + case GL_STORE_T_MMC: + ad->gridinfo.grid_type = GL_GRID_T_LOCAL; + break; + case GL_STORE_T_ALL: + ad->gridinfo.grid_type = GL_GRID_T_ALLALBUMS; + break; + case GL_STORE_T_FAV: + ad->gridinfo.grid_type = GL_GRID_T_FAV; + break; + default: + gl_dbgE("Wrong cluster storage type!"); + } + gl_dbg("Gridview type: %d", ad->gridinfo.grid_type); + return 0; +} + +static int __gl_thumbs_set_item_style(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + if (ad->gridinfo.date_gic.item_style == NULL || + ad->gridinfo.date_gic.func.text_get == NULL) { + ad->gridinfo.date_gic.item_style = GL_GENGRID_ITEM_STYLE_DATE; + ad->gridinfo.date_gic.func.text_get = __gl_thumbs_get_text; + ad->gridinfo.date_gic.func.content_get = NULL; + } + return 0; +} + +static bool __gl_thumbs_create_items(void *data, Evas_Object *parent) +{ + GL_CHECK_FALSE(data); + GL_CHECK_FALSE(parent); + gl_appdata *ad = (gl_appdata *)data; + int i = 0; + int item_cnt = 0; + gl_item *gitem = NULL; + int ret = -1; + char *burstshot_id = NULL; + /* Get all medias count of current album */ + Eina_List *media_elist = NULL; + _gl_thumbs_get_list(data, &media_elist); + if (ad->gridinfo.media_display_order == ORDER_ASC) { + media_elist = eina_list_reverse(media_elist); + } + + int cnt = eina_list_count(media_elist); + gl_dbg("List count : %d", cnt); + Elm_Gengrid_Item_Class *gic = NULL; + gic = evas_object_data_get(parent, "gl_thumbs_item_style_key"); + GL_CHECK_FALSE(gic); + + if (elm_gengrid_items_count(parent) > 0) { + /* Save scroller position before clearing gengrid */ + _gl_ui_save_scroller_pos(parent); + evas_object_smart_callback_del(parent, "unrealized", + __gl_thumbs_unrealized); + elm_gengrid_clear(parent); + evas_object_smart_callback_add(parent, "unrealized", + __gl_thumbs_unrealized, ad); + } + for (i = 0; i < cnt; i++) { + gitem = eina_list_nth(media_elist, i); + if (gitem == NULL || gitem->item == NULL || + gitem->item->uuid == NULL) { + gl_dbgE("Invalid gitem. continue..."); + continue; + } + + if (!gitem->item->file_url) { + gl_dbg("file_url is invalid."); + ret = _gl_data_delete_media(ad, gitem->item); + if (ret != 0) + continue; + _gl_data_selected_list_remove(ad, gitem); + media_elist = eina_list_remove(media_elist, gitem); + _gl_thumbs_set_list(data, media_elist); + cnt--; + i--; + gitem = NULL; + continue; + } + + if (ad->gridinfo.back_to_normal) { + gitem->checked = false; + } + if (_gl_thumbs_is_append(gitem, &burstshot_id)) { + gitem->elm_item = elm_gengrid_item_append(parent, gic, + gitem, + __gl_thumbs_sel_cb, + gitem); + gitem->preappend = false; + } + item_cnt++; + gitem->sequence = item_cnt; + } + if (ad->gridinfo.media_display_order == ORDER_ASC) { + media_elist = eina_list_reverse(media_elist); + } + /* Restore previous position of scroller */ + _gl_ui_restore_scroller_pos(parent); + +#ifdef _USE_SHRINK_EFFECT + /* Disable grid item selection callback */ + elm_gengrid_select_mode_set(parent, ELM_OBJECT_SELECT_MODE_NONE); +#endif + ad->gridinfo.count = item_cnt; + ad->gridinfo.back_to_normal = false; + + if (item_cnt == 0) + return EINA_FALSE; + else + return EINA_TRUE; +} + +/* +* Set new view to all/image_grid_view. +* +* b_noc, true: it's nocontents view, false: normal view. +*/ +static int __gl_thumbs_set_view(void *data, Evas_Object *view, bool b_noc) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + ad->gridinfo.view = view; + if (b_noc) + _gl_thumbs_set_nocontents(ad, view); + else + _gl_thumbs_set_nocontents(ad, NULL); + return 0; +} + +void _gl_thumbs_add_album_data(gl_cluster *album, Eina_List *medias_elist) +{ + GL_CHECK(album); + GL_CHECK(medias_elist); + int cnt = eina_list_count(medias_elist); + int i; + gl_item *gitem = NULL; + for (i = 0; i < cnt; i++) { + gitem = eina_list_nth(medias_elist, i); + GL_CHECK(gitem); + gitem->album = album; + } +} + +/* +* When select album, show first (GL_FIRST_VIEW_END_POS+1) medias. +* Then use idler to get other medias from DB and appened +* them to gridview. +* In order to reduce transit time of first show of thumbnails view. +* Cause most of time is spent for getting records from DB, +* so we get first (GL_FIRST_VIEW_END_POS+1) items and show thumbnails view, +* it will accelerate view show. +*/ +static int __gl_thumbs_idler_append_items(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(_gl_albums_get_current(data), -1); + int i = 0; + int item_cnt = 0; + gl_item *gitem = NULL; + gl_cluster *album = NULL; + int ret = -1; + char *burstshot_id = NULL; + Evas_Object *view = ad->gridinfo.view; + + if (gl_get_view_mode(data) == GL_VIEW_THUMBS_SELECT) { + view = ad->gridinfo.select_view; + } + GL_CHECK_VAL(view, -1); + + Elm_Gengrid_Item_Class *gic = NULL; + gic = evas_object_data_get(view, "gl_thumbs_item_style_key"); + GL_CHECK_VAL(gic, -1); + + /* Get all medias count of current album */ + Eina_List *media_elist = NULL; + _gl_thumbs_get_list(data, &media_elist); + int cnt = eina_list_count(media_elist); + gl_dbg("First view medias count: %d", cnt); + if (cnt != (GL_FIRST_VIEW_END_POS + 1)) { + gl_dbg("No any more items, return!"); + return -1; + } + /* Get other items from DB */ + ret = _gl_data_get_items_album(ad, _gl_albums_get_current(data), + (GL_FIRST_VIEW_END_POS + 1), + GL_GET_UNTIL_LAST_RECORD, &media_elist); + if (ret < 0) { + gl_dbgE("Get items list failed[%d]!", ret); + return ret; + } + + _gl_thumbs_set_list(data, media_elist); + cnt = eina_list_count(media_elist); + gl_dbg("Grid view all medias count: %d", cnt); + + /* get album data associated with media item */ + gitem = eina_list_nth(media_elist, 0); + if (gitem) { + album = gitem->album; + } + + /* From (GL_FIRST_VIEW_END_POS + 1)th item to last one */ + i = GL_FIRST_VIEW_END_POS + 1; + + /* Check the first item of previous appending, maybe it's a burst item */ + gitem = eina_list_nth(media_elist, i - 1); + if (gitem && gitem->item && + gitem->item->type == MEDIA_CONTENT_TYPE_IMAGE && + gitem->item->image_info && + gitem->item->image_info->burstshot_id) { + burstshot_id = gitem->item->image_info->burstshot_id; + gl_dbgW("Update burstshot item!"); + elm_gengrid_item_update(gitem->elm_item); + } + gitem = NULL; + for (; i < cnt; i++) { + gitem = eina_list_nth(media_elist, i); + if (gitem == NULL || gitem->item == NULL || + gitem->item->uuid == NULL) { + gl_dbgE("Invalid gitem, continue..."); + continue; + } + + if (!gitem->item->file_url) { + gl_dbg("file_url is invalid."); + _gl_data_delete_media(ad, gitem->item); + _gl_data_selected_list_remove(ad, gitem); + media_elist = eina_list_remove(media_elist, gitem); + _gl_thumbs_set_list(data, media_elist); + cnt--; + i--; + gitem = NULL; + continue; + } + if (_gl_thumbs_is_append(gitem, &burstshot_id)) { + gitem->elm_item = elm_gengrid_item_append(view, gic, + gitem, + __gl_thumbs_sel_cb, + gitem); + gitem->preappend = false; + } + + item_cnt++; + gitem->sequence = item_cnt + GL_FIRST_VIEW_END_POS + 1; + } + _gl_thumbs_add_album_data(album, media_elist); + + gl_dbgW("Use idler to append other medias--Done!"); + if (item_cnt == 0) { + return -1; + } else { + ad->gridinfo.count = item_cnt + GL_FIRST_VIEW_END_POS + 1; + gl_dbg("All count appended: %d", ad->gridinfo.count); + return 0; + } +} + +static int __gl_thumbs_mode_reset_btns(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + /* none items, disable 'edit' button */ + if (_gl_thumbs_check_zero(data)) { + _gl_thumbs_disable_share(ad, true); + _gl_thumbs_disable_slideshow(ad, true); + _gl_ui_disable_menu(ad->gridinfo.nf_it, true); + } else { + _gl_thumbs_disable_share(ad, false); + _gl_thumbs_disable_slideshow(ad, false); + _gl_ui_disable_menu(ad->gridinfo.nf_it, false); + } + return 0; +} + +static void __gl_thumbs_trans_finished_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + int view_mode = gl_get_view_mode(ad); + gl_dbgW("view_mode: %d", view_mode); + evas_object_smart_callback_del(obj, GL_TRANS_FINISHED, + __gl_thumbs_trans_finished_cb); + + /* Clear previous view after animation finished */ + if (view_mode == GL_VIEW_THUMBS || view_mode == GL_VIEW_THUMBS_EDIT) { + if (_gl_ctrl_get_tab_mode(ad) == GL_CTRL_TAB_ALBUMS) + elm_gengrid_clear(ad->albuminfo.view); + } else { + gl_dbgE("Wrong view mode!"); + } + + if (ad->gridinfo.is_append) { + _gl_thumbs_append_items(data); + ad->gridinfo.is_append = false; + } +} + +static Eina_Bool __gl_thumbs_pop_cb(void *data, Elm_Object_Item *it) +{ + GL_CHECK_FALSE(data); + gl_appdata *ad = (gl_appdata *)data; + + if (gl_get_view_mode(data) == GL_VIEW_THUMBS_EDIT) { + gl_dbg("GL_VIEW_THUMBS_EDIT"); + _gl_thumbs_edit_pop_view(data); + /* Keep current view unchanged */ + if (_gl_thumbs_get_edit_mode(data) < GL_THUMBS_EDIT_FIRST) + return EINA_FALSE; + } + + /* Call function to update previous view */ + Elm_Naviframe_Item_Pop_Cb func = NULL; + func = (Elm_Naviframe_Item_Pop_Cb)elm_object_item_data_get(ad->gridinfo.nf_it); + /* show albums view */ + gl_dbg("func: %p", func); + if (func) + func(data, it); + /* Pop view(current naviframe item) */ + if (ad->albuminfo.selected_uuid) { + free(ad->albuminfo.selected_uuid); + ad->albuminfo.selected_uuid = NULL; + } + return EINA_TRUE; +} + +static void __gl_thumbs_edit_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + _gl_ctxpopup_del(data); + if (ad->uginfo.ug || ad->gridinfo.is_append) { + /** + * Prevent changed to edit view in wrong way. + * 1. When invoke imageviewer UG; + * 2. First show thumbnails view, use idler to append other medias. + */ + gl_dbg("UG invoked or appending gridview."); + return; + } + + ad->gridinfo.b_slideshow_disable = false; + + int view_mode = gl_get_view_mode(data); + gl_dbg("mode: %d", view_mode); + if (view_mode == GL_VIEW_THUMBS) { + _gl_thumbs_set_edit_mode(data, GL_THUMBS_EDIT_NORMAL); + gl_item *gitem = eina_list_nth(ad->gridinfo.medias_elist, 0); + gl_item *tmp = NULL; + + GL_CHECK(gitem); + GL_CHECK(gitem->album); + if (gitem && gitem->album && gitem->album->elist) { + EINA_LIST_FREE(gitem->album->elist, tmp) { + if (tmp) { + tmp->checked = false; + } + } + } + _gl_thumbs_edit_create_view(data); + } +} + +static void __gl_thumbs_copy_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + _gl_ctxpopup_del(data); + if (ad->uginfo.ug || ad->gridinfo.is_append) { + gl_dbg("UG invoked or appending gridview."); + return; + } + + ad->gridinfo.b_slideshow_disable = false; + + int view_mode = gl_get_view_mode(data); + gl_dbg("mode: %d", view_mode); + if (view_mode == GL_VIEW_THUMBS) { + _gl_thumbs_set_edit_mode(data, GL_THUMBS_EDIT_COPY); + gl_item *gitem = eina_list_nth(ad->gridinfo.medias_elist, 0); + gl_item *tmp = NULL; + if (gitem && gitem->album) { + EINA_LIST_FREE(gitem->album->elist, tmp) { + if (tmp) { + tmp->checked = false; + } + } + } + _gl_thumbs_edit_create_view(data); + } +} + +static void __gl_thumbs_move_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + _gl_ctxpopup_del(data); + if (ad->uginfo.ug || ad->gridinfo.is_append) { + gl_dbg("UG invoked or appending gridview."); + return; + } + + ad->gridinfo.b_slideshow_disable = false; + + int view_mode = gl_get_view_mode(data); + gl_dbg("mode: %d", view_mode); + if (view_mode == GL_VIEW_THUMBS) { + _gl_thumbs_set_edit_mode(data, GL_THUMBS_EDIT_MOVE); + gl_item *gitem = eina_list_nth(ad->gridinfo.medias_elist, 0); + gl_item *tmp = NULL; + if (gitem && gitem->album) { + EINA_LIST_FREE(gitem->album->elist, tmp) { + if (tmp) { + tmp->checked = false; + } + } + } + _gl_thumbs_edit_create_view(data); + } +} + +static void __gl_thumbs_sortby_cb(void *data, Evas_Object *obj, void *ei) +{ + gl_dbg("ENTRY"); + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + int state_index = -1; + state_index = ad->gridinfo.media_display_order == ORDER_ASC ? 1 : 0; + _gl_list_pop_create(data, obj, ei, GL_STR_SORT, GL_STR_DATE_MOST_RECENT, GL_STR_DATE_OLDEST, state_index); + gl_dbg("EXIT"); +} + +#if 0 +static void __gl_thumbs_share_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + if (ad->uginfo.ug || ad->gridinfo.is_append) { + /** + * Prevent changed to edit view in wrong way. + * 1. When invoke imageviewer UG; + * 2. First show thumbnails view, use idler to append other medias. + */ + gl_dbg("UG invoked or appending gridview."); + return; + } + + int view_mode = gl_get_view_mode(data); + gl_dbg("mode: %d", view_mode); + if (view_mode == GL_VIEW_THUMBS) { + _gl_thumbs_set_edit_mode(data, GL_THUMBS_EDIT_SHARE); + _gl_thumbs_edit_create_view(data); + } +} +#endif + +static void __gl_thumbs_soft_back_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK(ad->maininfo.naviframe); + elm_naviframe_item_pop(ad->maininfo.naviframe); +} + +#ifdef SUPPORT_SLIDESHOW +static int __gl_thumbs_slideshow_op(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + Eina_List *medias_elist = NULL; + gl_item *cur_item = NULL; + media_content_type_e type = MEDIA_CONTENT_TYPE_OTHERS; + + _gl_thumbs_get_list(data, &medias_elist); + _gl_data_get_first_item(type, medias_elist, &cur_item); + GL_CHECK_VAL(cur_item, -1); + return gl_ext_load_iv_ug(ad, cur_item, GL_UG_IV_SLIDESHOW); +} + +static int __gl_thumbs_slideshow(void *data, const char *label) +{ + GL_CHECK_VAL(label, -1); + GL_CHECK_VAL(data, -1); + gl_dbg("label : %s ", label); + gl_appdata *ad = (gl_appdata *)data; + + if (!g_strcmp0(label, _gl_str(GL_STR_ID_ALL_ITEMS))) { + __gl_thumbs_slideshow_op(data); + } else if (!g_strcmp0(label, _gl_str(GL_STR_ID_SETTINGS))) { + evas_object_data_set(ad->maininfo.naviframe, + GL_NAVIFRAME_SLIDESHOW_DATA_KEY, + __gl_thumbs_slideshow_op); + gl_ext_load_ug(data, GL_UG_GALLERY_SETTING_SLIDESHOW); + } else if (!g_strcmp0(label, _gl_str(GL_STR_ID_SELECT_ITEMS))) { +#ifdef _USE_APP_SLIDESHOW + _gl_thumbs_edit_create_view(data); + evas_object_data_set(ad->maininfo.naviframe, + GL_NAVIFRAME_SELECTED_SLIDESHOW_KEY, + _gl_thumbs_edit_pop_view); +#else + _gl_ext_launch_gallery_ug(data); +#endif + } else { + gl_dbgE("Invalid lable!"); + return -1; + } + return 0; +} + +static void __gl_thumbs_slideshow_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + _gl_ctxpopup_del(data); + _gl_popup_create_slideshow(data, __gl_thumbs_slideshow); +} +#endif + +/* + * Local : New album/Edit/View/Slideshow/Show hidden items/Tag buddy + * Nearby : Edit/Refresh/Slideshow + * PTP: Edit/Slideshow + * Places: Edit/Footstep + * Tags: Eidt/View/Slideshow + * People: Edit/Slideshow/Tag buddy + * Easymode: New album/Edit/Slideshow + */ +static int __gl_thumbs_ctxpopup_append(void *data, Evas_Object *parent) +{ + GL_CHECK_VAL(parent, -1); + GL_CHECK_VAL(data, -1); +#ifdef SUPPORT_SLIDESHOW + gl_appdata *ad = (gl_appdata *)data; +#endif + gl_appdata *ad = (gl_appdata *)data; + /* 1. New album -- local album */ + + if (ad->gridinfo.grid_type == GL_GRID_T_FAV) { + /* 3. Sort by */ + if (!_gl_thumbs_check_zero(data)) + _gl_ctxpopup_append(parent, GL_STR_SORT, + __gl_thumbs_sortby_cb, data); + return 0; + } + /* 2. Edit */ + /* No 'edit' for facebook files, only share */ + if (!_gl_thumbs_check_zero(data)) + _gl_ctxpopup_append(parent, GL_STR_ID_DELETE, + __gl_thumbs_edit_cb, data); + /* 3. Sort by */ + if (!_gl_thumbs_check_zero(data)) + _gl_ctxpopup_append(parent, GL_STR_SORT, + __gl_thumbs_sortby_cb, data); + /* 4. Copy to album*/ + if (!_gl_thumbs_check_zero(data)) + _gl_ctxpopup_append(parent, GL_STR_ID_COPY_TO_ALBUM, + __gl_thumbs_copy_cb, data); + /* 5. Move to album*/ + if (!_gl_thumbs_check_zero(data)) + _gl_ctxpopup_append(parent, GL_STR_ID_MOVE_TO_ALBUM, + __gl_thumbs_move_cb, data); +#ifdef SUPPORT_SLIDESHOW + /* 6. Slideshow */ + if (!ad->gridinfo.b_slideshow_disable) + _gl_ctxpopup_append(parent, GL_STR_ID_SLIDESHOW, + __gl_thumbs_slideshow_cb, data); +#endif + return 0; +} + +static void __gl_thumbs_more_btn_cb(void *data, Evas_Object *obj, void *ei) +{ + gl_dbg("more button clicked"); + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + Evas_Object *more = NULL; + more = _gl_ui_get_btn(NULL, ad->gridinfo.nf_it, GL_NAVIFRAME_MORE); + if (EINA_TRUE == elm_object_disabled_get(more)) { + gl_dbg("Menu is disabled"); + return; /* Menu is disabled */ + } + + _gl_ctxpopup_create(data, obj, __gl_thumbs_ctxpopup_append); +} + +#if 0 +static void __gl_thumbs_camera_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_dbg(""); + _gl_ext_load_camera(data); +} +#endif + +/** + * Use naviframe api to push thumbnails view to stack. + * @param obj is the content to be pushed. + */ +static int __gl_thumbs_add_btns(void *data, Evas_Object *parent, + Elm_Object_Item *nf_it) +{ + gl_dbg("GL_NAVI_THUMBS"); + GL_CHECK_VAL(nf_it, -1); + GL_CHECK_VAL(parent, -1); + GL_CHECK_VAL(data, -1); + Evas_Object *btn = NULL; + + /* More */ + btn = _gl_but_create_but(parent, NULL, NULL, GL_BUTTON_STYLE_NAVI_MORE, + __gl_thumbs_more_btn_cb, data); + GL_CHECK_VAL(btn, -1); + + elm_object_item_part_content_set(nf_it, GL_NAVIFRAME_MORE, btn); + + btn = elm_button_add(parent); + elm_object_style_set(btn, "naviframe/end_btn/default"); + evas_object_smart_callback_add(btn, "clicked", __gl_thumbs_soft_back_cb, data); + GL_CHECK_VAL(btn, -1); + elm_object_item_part_content_set(nf_it, GL_NAVIFRAME_PREV_BTN, btn); + __gl_thumbs_mode_reset_btns(data); + return 0; +} + +/* Clear data for thumbs view */ +static int __gl_thumbs_clear_data(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + /* destroy timer */ + GL_IF_DEL_TIMER(ad->gridinfo.clicked_timer); + + if (ad->gridinfo.view) { + if (ad->gridinfo.view != ad->gridinfo.nocontents) { + _gl_thumbs_clear_cbs(ad->gridinfo.view); + _gl_ui_del_scroller_pos(ad->gridinfo.view); + /* elm_gengrid_clear should be called after callbacks are unregistered */ + if (ad->gridinfo.medias_elist && + eina_list_count(ad->gridinfo.medias_elist) > 0) + elm_gengrid_clear(ad->gridinfo.view); + } + ad->gridinfo.view = NULL; + } + ad->gridinfo.grid_type = GL_GRID_T_NONE; + ad->gridinfo.nocontents = NULL; + ad->gridinfo.layout = NULL; + ad->gridinfo.b_slideshow_disable = false; + ad->gridinfo.nf_it = NULL; + ad->gridinfo.count = 0; + _gl_thumbs_set_edit_mode(data, GL_THUMBS_EDIT_NONE); + /* Free title */ + GL_FREEIF(ad->gridinfo.title); + return 0; +} + +/* Free data after layout deleted */ +static void __gl_thumbs_delete_layout_cb(void *data, Evas *e, Evas_Object *obj, + void *ei) +{ + gl_dbg("Delete layout ---"); + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + /* Clear view data */ + __gl_thumbs_clear_data(data); + /* Free selected list */ + _gl_data_clear_selected_info(data); + /* Clear all data */ + _gl_data_util_clear_item_list(&(ad->gridinfo.medias_elist)); + gl_dbg("Delete layout +++"); +} + +static int __gl_thumbs_push_view(void *data, Evas_Object *parent, + Evas_Object *obj, gl_navi_mode mode, + char *title) +{ + GL_CHECK_VAL(obj, -1); + GL_CHECK_VAL(parent, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + Elm_Object_Item *nf_it = NULL; + + /* Add transition finished callback */ + evas_object_smart_callback_add(parent, GL_TRANS_FINISHED, + __gl_thumbs_trans_finished_cb, data); + /* Push to stack with basic transition */ + nf_it = elm_naviframe_item_push(parent, title, NULL, NULL, obj, NULL); + elm_object_item_part_text_set(nf_it, "elm.text.title", _gl_str(title)); + ad->gridinfo.nf_it = nf_it; + elm_naviframe_item_pop_cb_set(nf_it, __gl_thumbs_pop_cb, data); + + if (_gl_thumbs_get_edit_mode(data) > GL_THUMBS_EDIT_FIRST) { + _gl_thumbs_edit_create_view(data); + return 0; + } + GL_FREEIF(ad->gridinfo.title); + if (title) + ad->gridinfo.title = strdup(title); + + __gl_thumbs_add_btns(data, parent, nf_it); + gl_dbg("Done"); + return 0; +} + +/* Free data after layout deleted */ +static void __gl_thumbs_del_view_cb(void *data, Evas *e, Evas_Object *obj, + void *ei) +{ + Elm_Gengrid_Item_Class *gic = NULL; + gic = evas_object_data_get(obj, "gl_thumbs_item_style_key"); + evas_object_data_set(obj, "gl_thumbs_item_style_key", (void *)NULL); + if (gic) + elm_gengrid_item_class_free(gic); +} + +Eina_Bool _gl_thumbs_append_items(void *data) +{ + GL_CHECK_CANCEL(data); + + /* Try to get other medias from DB and append them to gridview */ + if (__gl_thumbs_idler_append_items(data) < 0) { + gl_dbgE("Failed to append grid items!"); + } else { + gl_dbg("Successful to append grid items!"); + } + /* Need to check size and alignment again, cuz using burstshot mode */ + _gl_thumbs_set_size(data, NULL); + return ECORE_CALLBACK_CANCEL; +} + +Elm_Gengrid_Item_Class *_gl_thumbs_new_item_style(Evas_Object *parent) +{ + GL_CHECK_NULL(parent); + + Elm_Gengrid_Item_Class *gic = NULL; + + gic = elm_gengrid_item_class_new(); + GL_CHECK_NULL(gic); + /* Register delete callback */ + evas_object_event_callback_add(parent, EVAS_CALLBACK_DEL, + __gl_thumbs_del_view_cb, gic); + evas_object_data_set(parent, "gl_thumbs_item_style_key", (void *)gic); + gic->item_style = GL_GENGRID_ITEM_STYLE_THUMBNAIL; + gic->func.text_get = NULL; + gic->func.content_get = __gl_thumbs_get_content; + gic->func.del = NULL; + return gic; +} + +int _gl_thumbs_update_realized_items(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + /* Clear old view */ + evas_object_smart_callback_del(ad->gridinfo.view, "unrealized", + __gl_thumbs_unrealized); + _gl_thumbs_set_size(ad, NULL); + elm_gengrid_realized_items_update(ad->gridinfo.view); + evas_object_smart_callback_add(ad->gridinfo.view, "unrealized", + __gl_thumbs_unrealized, ad); + return 0; +} + +Evas_Object *_gl_thumbs_get_content(void *data, Evas_Object *parent, + gl_item *gitem, int w, int h) +{ + GL_CHECK_NULL(gitem); + GL_CHECK_NULL(gitem->item); + GL_CHECK_NULL(parent); + GL_CHECK_NULL(data); + gl_appdata *ad = (gl_appdata *)data; + char *path = NULL; + Evas_Object *layout = NULL; + + if (GL_FILE_EXISTS(gitem->item->thumb_url)) { + path = gitem->item->thumb_url; + } else { + /* Use default image */ + path = GL_ICON_NO_THUMBNAIL; + } + + int zoom_level = ad->pinchinfo.zoom_level; + + if (gitem->item->type == MEDIA_CONTENT_TYPE_VIDEO) { + unsigned int v_dur = 0; + if (gitem->item->video_info) { + v_dur = gitem->item->video_info->duration; + } + layout = _gl_thumb_show_video(parent, path, v_dur, w, h, + zoom_level); + } else { + if (gitem->item->image_info && + gitem->item->image_info->burstshot_id) { + layout = _gl_thumb_show_image(parent, path, 0, w, h, + zoom_level); + gitem->item->mode = GL_CM_MODE_BURSTSHOT; + } else { + layout = _gl_thumb_show_image(parent, path, 0, w, h, + zoom_level); + } + } + return layout; +} + +int _gl_thumbs_add_btns(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + __gl_thumbs_add_btns(data, ad->maininfo.naviframe, ad->gridinfo.nf_it); + return 0; +} + +void _gl_thumbs_mouse_down(void *data, Evas *e, Evas_Object *obj, void *ei) +{ + GL_CHECK(obj); + GL_CHECK(ei); + GL_CHECK(data); + gl_item *gitem = (gl_item *) data; + GL_CHECK(gitem->ad); + gl_appdata *ad = (gl_appdata *)gitem->ad; + Evas_Event_Mouse_Down *ev = (Evas_Event_Mouse_Down *)ei; + + ad->gridinfo.mouse.x = ev->output.x; + ad->gridinfo.mouse.y = ev->output.y; + +#ifdef _USE_SHRINK_EFFECT + if (ad->uginfo.ug == NULL) { + edje_object_signal_emit(_EDJ(obj), "mouse,down,shrink", "bg"); + ad->gridinfo.mouse.b_pressed = true; + } +#endif +} + +void _gl_thumbs_mouse_up(void *data, Evas *e, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_item *gitem = (gl_item *)data; + GL_CHECK(gitem->ad); + gl_appdata *ad = (gl_appdata *)gitem->ad; + + if (!ei || !obj) + goto RET_WO_EXEC; + + Evas_Event_Mouse_Up *ev = (Evas_Event_Mouse_Up *)ei; + if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD || + ev->event_flags & EVAS_EVENT_FLAG_ON_SCROLL) + goto RET_WO_EXEC; + + if ((abs(ad->gridinfo.mouse.x - ev->output.x) > GL_MOUSE_RANGE) || + (abs(ad->gridinfo.mouse.y - ev->output.y) > GL_MOUSE_RANGE)) + goto RET_WO_EXEC; + + gl_dbg(""); + +#ifdef _USE_SHRINK_EFFECT + if (ad->gridinfo.mouse.b_pressed) { + edje_object_signal_emit(_EDJ(obj), "mouse,up,expand", "bg"); + edje_object_signal_callback_add(_EDJ(obj), "shrink,expand,done", + "bg", __gl_thumbs_shrink_cb, + data); + ad->gridinfo.mouse.b_pressed = false; + } + return; + + RET_WO_EXEC: + + if (ad->gridinfo.mouse.b_pressed) { + edje_object_signal_emit(_EDJ(obj), "mouse,up,expand", "bg"); + ad->gridinfo.mouse.b_pressed = false; + } +#else + _gl_thumbs_open_file(data); + return; + + RET_WO_EXEC: + return; +#endif +} + +Evas_Object *_gl_thumbs_add_grid(void *data, Evas_Object *parent, + gl_thumb_mode mode) +{ + GL_CHECK_NULL(parent); + GL_CHECK_NULL(data); + gl_appdata *ad = (gl_appdata *)data; + Evas_Object *grid = NULL; + + int view_mode = gl_get_view_mode(ad); + grid = _gl_thumb_add_gengrid(parent); + evas_object_smart_callback_add(grid, "realized", __gl_thumbs_realized, + data); + evas_object_smart_callback_add(grid, "unrealized", + __gl_thumbs_unrealized, data); + evas_object_smart_callback_add(grid, "longpressed", + __gl_thumbs_longpressed_cb, data); + evas_object_smart_callback_add(grid, "language,changed", + __gl_thumbs_lang_changed, NULL); + /* Set grid view type */ + __gl_thumbs_set_type(ad); + _gl_ui_reset_scroller_pos(grid); + /* Set gengrid item style first */ + __gl_thumbs_set_item_style(data); + _gl_thumbs_new_item_style(grid); + + if (!__gl_thumbs_create_items(ad, grid)) { + _gl_ui_del_scroller_pos(grid); + evas_object_del(grid); + grid = NULL; + Evas_Object *noc = _gl_nocontents_create(parent); + _gl_thumbs_set_nocontents(ad, noc); + evas_object_show(noc); + return noc; + } + + gl_dbg("thumbs_cnt : %d", ad->gridinfo.count); + _gl_thumbs_set_size(ad, grid); + if (view_mode != GL_VIEW_THUMBS_SELECT) + _gl_thumbs_set_nocontents(ad, NULL); + evas_object_show(grid); + + return grid; +} + +int _gl_thumbs_show_edit_view(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + int view_mode = gl_get_view_mode(ad); + bool b_ret = false; + Evas_Object *view = NULL; + gl_dbg("view_mode: %d", view_mode); + + if (view_mode == GL_VIEW_THUMBS_EDIT) { + view = ad->gridinfo.view; + } else if (view_mode == GL_VIEW_THUMBS_SELECT) { + view = ad->gridinfo.select_view; + } else { + gl_dbgE("Wrong view mode!"); + return -1; + } + GL_CHECK_VAL(view, -1); + b_ret = __gl_thumbs_create_items(ad, view); + _gl_thumbs_set_size(ad, NULL); + + if (!b_ret) { + gl_dbgE("Create items failed!"); + return -1; + } else { + return 0; + } +} + +int _gl_thumbs_show_view(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + bool b_ret = false; + gl_dbg(""); + + if (ad->gridinfo.view == NULL) { + gl_dbg("Error : Any gridview doesn't exist"); + return -1; + } + + /* Come back from edit mode, save state */ + ad->gridinfo.back_to_normal = true; + b_ret = __gl_thumbs_create_items(ad, ad->gridinfo.view); + _gl_thumbs_set_size(ad, NULL); + + if (!b_ret) { + gl_dbgE("Create items failed!"); + return -1; + } else { + return 0; + } +} + +Eina_Bool _gl_thumbs_show_items(void *data) +{ + GL_CHECK_FALSE(data); + gl_appdata *ad = (gl_appdata *)data; + Eina_Bool res = EINA_FALSE; + Evas_Object *gv = NULL; + bool b_view = false; + gl_dbg(""); + + b_view = _gl_thumbs_get_view(ad, &gv); + GL_CHECK_FALSE(gv); + if (b_view) { + res = __gl_thumbs_create_items(ad, gv); + if (!res) { + gl_dbgW("create items failed!"); + elm_object_part_content_unset(ad->gridinfo.layout, + "elm.swallow.view"); + _gl_thumbs_delete_view(data); + __gl_thumbs_set_view(ad, NULL, false); + Evas_Object *noc = _gl_nocontents_create(ad->gridinfo.layout); + evas_object_show(noc); + __gl_thumbs_set_view(ad, noc, true); + + elm_object_part_content_set(ad->gridinfo.layout, + "elm.swallow.view", noc); + } else { + _gl_thumbs_set_size(ad, gv); + } + } else { + gl_dbg("Remove nocontents view."); + elm_object_part_content_unset(ad->gridinfo.layout, + "elm.swallow.view"); + evas_object_hide(gv); + evas_object_del(gv); + __gl_thumbs_set_view(ad, NULL, false); + bool b_noc = false; + + Evas_Object *view = NULL; + view = _gl_thumbs_add_grid(ad, ad->gridinfo.layout, 0); + if (ad->gridinfo.nocontents) { + b_noc = true; + } + /* No nocotents removed, gridview created */ + __gl_thumbs_set_view(ad, view, b_noc); + + elm_object_part_content_set(ad->gridinfo.layout, + "elm.swallow.view", view); + } + + return res; +} + +int _gl_thumbs_set_list(void *data, Eina_List *elist) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + ad->gridinfo.medias_elist = elist; + return 0; +} + +int _gl_thumbs_clear_and_set_list(void *data, Eina_List *elist) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + int view_mode = gl_get_view_mode(data); + if (view_mode == GL_VIEW_THUMBS_SELECT && ad->gridinfo.select_view) { + _gl_ui_save_scroller_pos(ad->gridinfo.select_view); + elm_gengrid_clear(ad->gridinfo.select_view); + } else if (ad->gridinfo.view && (ad->gridinfo.view != ad->gridinfo.nocontents)) { + _gl_ui_save_scroller_pos(ad->gridinfo.view); + elm_gengrid_clear(ad->gridinfo.view); + } + _gl_data_util_clear_item_list(&(ad->gridinfo.medias_elist)); + ad->gridinfo.medias_elist = elist; + return 0; +} + +int _gl_thumbs_get_list(void *data, Eina_List **p_elist) +{ + GL_CHECK_VAL(p_elist, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + *p_elist = ad->gridinfo.medias_elist; + return 0; +} + +int _gl_thumbs_update_edit_split_view(void *data, int nf_mode, char *title, bool b_idler, + Elm_Naviframe_Item_Pop_Cb func) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->maininfo.naviframe, -1); + Evas_Object *layout = NULL; + Evas_Object *view = NULL; + /* Add view */ + gl_set_view_mode(data, GL_VIEW_THUMBS); + view = _gl_thumbs_add_grid(ad, ad->gridinfo.layout, GL_THUMB_ALL); + if (view == NULL) { + evas_object_del(layout); + gl_dbgE("Failed to add gridview!"); + return -1; + } + ad->gridinfo.update_split_view = false; + elm_object_part_content_set(ad->gridinfo.layout, "elm.swallow.view", view); + ad->gridinfo.view = view; + elm_object_item_data_set(ad->gridinfo.nf_it, (void *)func); + elm_object_item_text_set(ad->gridinfo.nf_it, title); + GL_FREEIF(ad->gridinfo.title); + if (title) { + ad->gridinfo.title = strdup(title); + } + if (_gl_thumbs_get_edit_mode(data) == GL_THUMBS_EDIT_NORMAL) + __gl_thumbs_edit_cb(ad, ad->gridinfo.view, NULL); + else if (_gl_thumbs_get_edit_mode(data) == GL_THUMBS_EDIT_COPY) + __gl_thumbs_copy_cb(ad, ad->gridinfo.view, NULL); + else if (_gl_thumbs_get_edit_mode(data) == GL_THUMBS_EDIT_MOVE) + __gl_thumbs_move_cb(ad, ad->gridinfo.view, NULL); + + int sel_cnt = _gl_data_selected_list_count(ad); + /* Update the label text */ + _gl_thumbs_update_label_text(ad->gridinfo.nf_it, sel_cnt, false); + gl_item *gitem = NULL; + int i; + int count = eina_list_count(ad->gridinfo.medias_elist); + for (i = 0; i < count ; i++) { + gitem = eina_list_nth(ad->gridinfo.medias_elist, i); + if (gitem) { + _gl_data_restore_selected(ad->selinfo.elist, gitem); + } + } + if (gitem && gitem->album->elist) { + int album_select_count = eina_list_count(gitem->album->elist); + _gl_notify_check_selall(ad, ad->gridinfo.nf_it, ad->gridinfo.count, album_select_count); + } + + return 0; +} + +int _gl_thumbs_update_split_view(void *data, int nf_mode, char *title, bool b_idler, + Elm_Naviframe_Item_Pop_Cb func) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->maininfo.naviframe, -1); + Evas_Object *layout = NULL; + Evas_Object *view = NULL; + /* Add view */ + view = _gl_thumbs_add_grid(ad, ad->gridinfo.layout, GL_THUMB_ALL); + if (view == NULL) { + evas_object_del(layout); + gl_dbgE("Failed to add gridview!"); + return -1; + } + elm_object_part_content_set(ad->gridinfo.layout, "elm.swallow.view", view); + ad->gridinfo.view = view; + gl_dbgE("Title is : %s", title); + elm_object_item_data_set(ad->gridinfo.nf_it, (void *)func); + elm_object_item_text_set(ad->gridinfo.nf_it, _gl_str(title)); + GL_FREEIF(ad->gridinfo.title); + if (title) { + ad->gridinfo.title = strdup(title); + } + return 0; +} + +Evas_Object * +_create_gengrid(void *data) +{ + GL_CHECK_VAL(data, NULL); + gl_appdata *ad = (gl_appdata *)data; + Evas_Object *layout_inner = elm_gengrid_add(ad->maininfo.win); + + elm_gengrid_align_set(layout_inner, 0.5f, 0.0); + elm_gengrid_horizontal_set(layout_inner, EINA_FALSE); + elm_scroller_bounce_set(layout_inner, EINA_FALSE, EINA_TRUE); + elm_scroller_policy_set(layout_inner, ELM_SCROLLER_POLICY_OFF, + ELM_SCROLLER_POLICY_AUTO); + elm_gengrid_multi_select_set(layout_inner, EINA_TRUE); + evas_object_size_hint_weight_set(layout_inner, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + return layout_inner; +} + +int +_create_split_album_view(void *data, Evas_Object *layout_inner) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + if (_gl_split_albums_create_items(ad, layout_inner) < 0) { + gl_dbgE("Failed to add Split album view!"); + return -1; + } + int w = -1, h = -1; + evas_object_geometry_get(ad->maininfo.win, NULL, NULL, &w, &h); + if (w < h) { + elm_gengrid_item_size_set(layout_inner, (w/3)-40, (w/3)-20); + } else { + elm_gengrid_item_size_set(layout_inner, (h/3)-20, (h/3)-40); + } + return 0; +} + +int _gl_thumbs_create_view(void *data, int nf_mode, char *title, bool b_idler, + Elm_Naviframe_Item_Pop_Cb func) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->maininfo.naviframe, -1); + Evas_Object *layout = NULL; + Evas_Object *view = NULL; + Evas_Object *layout_inner = NULL; + layout_inner = _create_gengrid(ad); + GL_CHECK_VAL(layout_inner, -1); + + if (_gl_thumbs_get_edit_mode(data) > GL_THUMBS_EDIT_FIRST) + gl_set_view_mode(data, GL_VIEW_THUMBS_EDIT); + else + gl_set_view_mode(data, GL_VIEW_THUMBS); + + if (_create_split_album_view(ad, layout_inner) == -1) { + gl_dbgE("Failed to add album split view!"); + return -1; + } + + ad->gridinfo.update_split_view = true; + ad->gridinfo.media_display_order = ORDER_DESC; + layout = _gl_ctrl_add_layout(ad->maininfo.naviframe); + GL_CHECK_VAL(layout, -1); + 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); + + if (ad->gridinfo.split_view_mode) { + int w = -1, h = -1; + evas_object_geometry_get(ad->maininfo.win, NULL, NULL, &w, &h); + Edje_Message_Int *msg = (Edje_Message_Int *)malloc(sizeof(Edje_Message_Int) + sizeof(int)); + GL_CHECK_VAL(msg, -1); + msg->val = ((w < h) ? (w / 3) : (h / 3)); + edje_object_message_send(elm_layout_edje_get(layout), EDJE_MESSAGE_INT, 1, msg); + free(msg); + elm_object_signal_emit(layout, "elm,splitview,state,visible", "elm"); + } else { + elm_object_signal_emit(layout, "elm,splitview,state,default", "elm"); + } + + /* Add pinch event before adding view */ + _gl_pinch_add_event(ad, layout); + ad->gridinfo.is_append = b_idler; + /* Add view */ + view = _gl_thumbs_add_grid(ad, layout, GL_THUMB_ALL); + if (view == NULL) { + evas_object_del(layout); + gl_dbgE("Failed to add gridview!"); + return -1; + } + elm_object_part_content_set(layout, "elm.swallow.view", view); + ad->gridinfo.view = view; + ad->gridinfo.layout = layout; + + elm_object_part_content_set(layout, "split.view", layout_inner); + __gl_thumbs_push_view(ad, ad->maininfo.naviframe, layout, nf_mode, + title); + elm_object_item_data_set(ad->gridinfo.nf_it, (void *)func); + /* Register delete callback */ + evas_object_event_callback_add(layout, EVAS_CALLBACK_DEL, + __gl_thumbs_delete_layout_cb, data); + gl_dbg("Done"); + return 0; +} + +/** +* @param: b_update_albums_list +* True: Update albums list and medias list, then update normal view. +* False: Get new medias for current view from DB +* then update view to synchronize data with Myfile. +* Use case: +* 1, Update gridview/listview created from Map; +* 2, Update edit gridview/listview. +*/ +int _gl_thumbs_update_items(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + int view_mode = gl_get_view_mode(ad); + bool b_edit_m = false; + + gl_dbg("view_mode: %d", view_mode); + if (view_mode == GL_VIEW_THUMBS_EDIT) { + gl_dbg("Edit view."); + b_edit_m = true; + } + if (_gl_thumbs_check_zero(data)) { + /* All items deleted, change to albms view */ + gl_pop_to_ctrlbar_ly(ad); + } else { + if (_gl_thumbs_check_zero(data)) { + gl_dbg("none video/image, show nocontents"); + _gl_thumbs_show_nocontents(ad); + /* Remove invalid widgets */ + gl_del_invalid_widgets(ad, GL_INVALID_NEW_ENTRY_NOC); + } else if (view_mode == GL_VIEW_THUMBS) { + _gl_thumbs_show_items(ad); + /* Update buttons state */ + _gl_thumbs_check_btns(data); + } else if (view_mode == GL_VIEW_THUMBS_EDIT) { + _gl_thumbs_show_edit_view(ad); + } + + /* Normal view, return */ + if (!b_edit_m) + return 0; + + /* Get selected medias count */ + int sel_cnt = _gl_data_selected_list_count(ad); + /* Remove invalid widgets */ + if (sel_cnt == 0) + gl_del_invalid_widgets(ad, GL_INVALID_NEW_ENTRY); + + /* Display selectioninfo */ + gl_item *gitem = NULL; + gitem = eina_list_nth(ad->gridinfo.medias_elist, 0); + int album_sel_count = eina_list_count(gitem->album->elist); + _gl_notify_check_selall(ad, ad->gridinfo.nf_it, + ad->gridinfo.count, album_sel_count); + _gl_thumbs_update_label_text(ad->gridinfo.nf_it, sel_cnt, false); + } + + return 0; +} + +int _gl_thumbs_update_view(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_sdbg("grid_type: %d", ad->gridinfo.grid_type); + + switch (ad->gridinfo.grid_type) { + case GL_GRID_T_LOCAL: + case GL_GRID_T_ALLALBUMS: + case GL_GRID_T_FAV: + /* Albums list should be updated first */ + { + gl_dbgE(" creating split album view!"); + Evas_Object *layout_inner = elm_object_part_content_get(ad->gridinfo.layout, "split.view"); + if (!layout_inner) { + gl_dbgE("Failed to add split album view!"); + } else { + _create_split_album_view(ad, layout_inner); + elm_object_part_content_set(ad->gridinfo.layout, "split.view", layout_inner); + } + + _gl_thumbs_update_items(ad); + } + break; + default: + gl_dbgE("Wrong grid type!"); + return -1; + } + return 0; +} + +int _gl_thumbs_destroy_view(void *data, bool b_pop) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + int view_mode = gl_get_view_mode(ad); + gl_dbg("view_mode: %d.", view_mode); + + gl_del_invalid_widgets(ad, GL_INVALID_NONE); + _gl_albums_set_current(data, NULL); + + /* Pop to controlbar layout */ + if (b_pop) { + /* To launch __gl_thumbs_pop_cb in thumb selected mode */ + elm_naviframe_item_pop_to(ad->gridinfo.nf_it); + /* To skip operation about edit mode */ + if (view_mode == GL_VIEW_THUMBS_EDIT) + gl_set_view_mode(data, GL_VIEW_THUMBS); + elm_naviframe_item_pop_to(ad->ctrlinfo.nf_it); + } + return 0; +} + +int _gl_thumbs_destroy_view_with_cb(void *data, void *cb) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg("start"); + + /* Delete naviframe item dierctly, instead of poping them */ + _gl_thumbs_destroy_view(data, false); + /* Delete naviframe item dierctly to launch layout_delete_cb immediately */ + _gl_ui_del_nf_items(ad->maininfo.naviframe, ad->ctrlinfo.nf_it); + if (cb) { + int (*close_cb) (void *data); + close_cb = cb; + close_cb(data); + } + gl_dbg("done"); + return 0; +} + +/** +* Get all/image_grid_view. +* +* True returned if it's normal view, if it's nocontents view return false. +*/ +bool _gl_thumbs_get_view(void *data, Evas_Object **view) +{ + GL_CHECK_FALSE(data); + gl_appdata *ad = (gl_appdata *)data; + Evas_Object *gv = NULL; + bool b_view = false; + + gv = ad->gridinfo.view; + if (gv && ad->gridinfo.nocontents == NULL) + b_view = true; + + /* Nocontents */ + if (!b_view) + gl_dbg("Previous view is Nocontents..."); + + /* Return view */ + if (view) + *view = gv; + + return b_view; +} + +/** + * Show Nocontents in All/Images/Videos segment. + */ +bool _gl_thumbs_show_nocontents(void *data) +{ + GL_CHECK_FALSE(data); + gl_appdata *ad = (gl_appdata *)data; + + /* Clear invalid objects if needed */ + _gl_thumbs_delete_view(ad); + /* Create nocontents widget */ + Evas_Object *noc = NULL; + noc = _gl_nocontents_create(ad->gridinfo.layout); + ad->gridinfo.view = noc; + ad->gridinfo.nocontents = noc; + elm_object_part_content_unset(ad->gridinfo.layout, "elm.swallow.view"); + evas_object_show(ad->gridinfo.view); + elm_object_part_content_set(ad->gridinfo.layout, "elm.swallow.view", + ad->gridinfo.view); + _gl_thumbs_check_btns(ad); + return true; +} + +/* Assign new value to all/image_grid_nocontents */ +int _gl_thumbs_set_nocontents(void *data, Evas_Object *noc) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + ad->gridinfo.nocontents = noc; + return 0; +} + +int _gl_thumbs_set_size(void *data, Evas_Object *gridview) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + Evas_Object *gv = NULL; + + if (gridview) { + gv = gridview; + } else { + bool b_view = false; + if (gl_get_view_mode(data) == GL_VIEW_THUMBS_SELECT) { + b_view = true; + gv = ad->gridinfo.select_view; + } else { + b_view = _gl_thumbs_get_view(ad, &gv); + } + + if (!b_view || !gv) { + gl_dbgE("gridview is invalid!"); + return -1; + } + } + if (ad->gridinfo.split_view_mode == DETAIL_VIEW) { + _gl_thumb_set_size(ad, gv, &(ad->gridinfo.icon_w), + &(ad->gridinfo.icon_h)); + } else if (ad->gridinfo.split_view_mode == SPLIT_VIEW) { + _gl_thumb_split_set_size(ad, gv); + } + + if (gl_get_view_mode(ad) == GL_VIEW_THUMBS_SELECT) { + _gl_thumb_split_set_size(ad, gv); + } + + return 0; +} + +int _gl_thumbs_clear_cbs(Evas_Object *grid) +{ + GL_CHECK_VAL(grid, -1); + evas_object_smart_callback_del(grid, "realized", __gl_thumbs_realized); + evas_object_smart_callback_del(grid, "unrealized", + __gl_thumbs_unrealized); + evas_object_smart_callback_del(grid, "longpressed", + __gl_thumbs_longpressed_cb); + return 0; +} + +int _gl_thumbs_delete_view(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + if (ad->gridinfo.view) { + _gl_thumbs_clear_cbs(ad->gridinfo.view); + _gl_ui_del_scroller_pos(ad->gridinfo.view); + evas_object_del(ad->gridinfo.view); + ad->gridinfo.view = NULL; + } + return 0; +} + +/* Update griditem size */ +int _gl_thumbs_update_size(void *data, Evas_Object *view) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + Evas_Object *_view = NULL; + int view_mode = gl_get_view_mode(ad); + gl_dbg(""); + + if (view) { + _view = view; + } else { + bool b_view = false; + if (view_mode == GL_VIEW_THUMBS_SELECT) { + b_view = true; + _view = ad->gridinfo.select_view; + } else { + b_view = _gl_thumbs_get_view(ad, &_view); + } + + if (!b_view || !_view) { + gl_dbgE("gridview is invalid!"); + return -1; + } + } + + _gl_thumbs_set_size(data, _view); + + _gl_thumb_update_gengrid(_view); + + return 0; +} + +/** + * Check to append a item to gengrid or not, + * if it's a normal item or it's the first burstshot item then append it to view + */ +bool _gl_thumbs_is_append(gl_item *gitem, char **burstshot_id) +{ + GL_CHECK_FALSE(gitem); + GL_CHECK_FALSE(gitem->item); + GL_CHECK_FALSE(burstshot_id); + bool b_to_append = false; + + if (gitem->item->type == MEDIA_CONTENT_TYPE_IMAGE && + gitem->item->image_info && + gitem->item->image_info->burstshot_id) { + /* First birstshot item, two jacent birstshot items */ + if (*burstshot_id == NULL || + g_strcmp0(*burstshot_id, gitem->item->image_info->burstshot_id)) { + *burstshot_id = gitem->item->image_info->burstshot_id; + b_to_append = true; + } + } else { + /* Normal item(not burstshot) */ + b_to_append = true; + *burstshot_id = NULL; + } + return b_to_append; +} + +bool _gl_thumbs_check_zero(void *data) +{ + GL_CHECK_VAL(data, -1); + Eina_List *medias_elist = NULL; + + _gl_thumbs_get_list(data, &medias_elist); + return (eina_list_count(medias_elist) <= 0); +} + +/* Update the label text, recreate label to disable effect in edit view */ +int _gl_thumbs_update_label(Elm_Object_Item *nf_it, char *title) +{ + GL_CHECK_VAL(nf_it, -1); + elm_object_item_part_text_set(nf_it, "elm.text.title", _gl_str(title)); + if (_gl_is_str_id(title)) + _gl_ui_set_translatable_item(nf_it, title); + return 0; +} + +/* Update the label text */ +int _gl_thumbs_update_label_text(Elm_Object_Item *nf_it, int sel_cnt, + bool b_lang) +{ + GL_CHECK_VAL(nf_it, -1); + gl_dbg("Count: %d, lang: %d", sel_cnt, b_lang); + char *pd_selected = GL_STR_PD_SELECTED; + + Evas_Object *btn = elm_object_item_part_content_get(nf_it, GL_NAVIFRAME_TITLE_RIGHT_BTN); + + if (btn) { + if (sel_cnt > 0) { + elm_object_disabled_set(btn, EINA_FALSE); + } else { + elm_object_disabled_set(btn, EINA_TRUE); + } + } + + /* Update the label text */ + if (sel_cnt > 0) { + char *text = NULL; + text = g_strdup_printf(pd_selected, sel_cnt); + _gl_thumbs_update_label(nf_it, text); + GL_GFREEIF(text); + } else if (!b_lang) { + /* Don't need to update text if it's called by language_changed_cb*/ + _gl_thumbs_update_label(nf_it, GL_STR_ID_SELECT_ITEM); + } + return 0; +} + +int _gl_thumbs_update_lang(void *data) +{ + GL_CHECK_VAL(data, -1); + return 0; +} + +int _gl_thumbs_disable_slideshow(void *data, bool b_disabled) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg("b_disable: %d", b_disabled); + ad->gridinfo.b_slideshow_disable = b_disabled; + return 0; +} + +int _gl_thumbs_disable_share(void *data, bool b_disabled) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg("b_disable: %d", b_disabled); + GL_CHECK_VAL(ad->gridinfo.nf_it, -1); + Evas_Object *btn = NULL; + btn = elm_object_item_part_content_get(ad->gridinfo.nf_it, + GL_NAVIFRAME_TITLE_LEFT_BTN); + if (btn) + elm_object_disabled_set(btn, b_disabled); + else + gl_dbgE("Failed to get share button!"); + return 0; +} + +/* Check buttons state when coming back from albums-select view */ +int _gl_thumbs_check_btns(void *data) +{ + GL_CHECK_VAL(data, -1); + __gl_thumbs_mode_reset_btns(data); + return 0; +} + +int _gl_thumbs_update_sequence(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_item *gitem = NULL; + Elm_Object_Item *first_it = NULL; + Elm_Object_Item *next_it = NULL; + Elm_Object_Item *last_it = NULL; + + Evas_Object *view = ad->gridinfo.view; + if (gl_get_view_mode(data) == GL_VIEW_THUMBS_SELECT) + view = ad->gridinfo.select_view; + GL_CHECK_VAL(view, -1); + first_it = elm_gengrid_first_item_get(view); + last_it = elm_gengrid_last_item_get(view); + + int sequence = 1; + while (first_it) { + next_it = elm_gengrid_item_next_get(first_it); + + if (elm_gengrid_item_item_class_get(first_it) == &(ad->gridinfo.date_gic)) + goto GL_THUMBS_NEXT; + + gitem = elm_object_item_data_get(first_it); + if (gitem) + gitem->sequence = sequence++; + gitem = NULL; + + GL_THUMBS_NEXT: + + if (last_it == first_it) { + gl_dbg("done!"); + break; + } else { + first_it = next_it; + } + } + return 0; +} + +int _gl_thumbs_set_edit_mode(void *data, int mode) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + ad->gridinfo.edit_mode = mode; + return 0; +} + +int _gl_thumbs_get_edit_mode(void *data) +{ + GL_CHECK_FALSE(data); + gl_appdata *ad = (gl_appdata *)data; + return ad->gridinfo.edit_mode; +} + +int _gl_thumbs_rotate_view(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + Eina_List *its = NULL; + Eina_List *l = NULL; + Elm_Object_Item *it = NULL; + gl_item *gitem = NULL; + + if (ad->gridinfo.view == ad->gridinfo.nocontents) + return -1; + + int w = -1; + int h = -1; + if (gl_get_view_mode(ad) == GL_VIEW_THUMBS_EDIT) { + evas_object_geometry_get(ad->maininfo.win, NULL, NULL, &w, &h); + Edje_Message_Int *msg = (Edje_Message_Int *)malloc(sizeof(Edje_Message_Int) + sizeof(int)); + GL_CHECK_VAL(msg, -1); + if (ad->gridinfo.split_view_mode == DETAIL_VIEW) { + msg->val = h; + } else { + msg->val = ((w < h) ? (h - (w / 3)) : (w - (h / 3))); + } + gl_dbgE("msg value : %d", msg->val); + edje_object_message_send(elm_layout_edje_get(ad->gridinfo.layout), EDJE_MESSAGE_INT, 2, msg); + free(msg); + elm_object_signal_emit(ad->gridinfo.layout, "elm,selectall,state,visible", "elm"); + } + _gl_thumbs_set_size(data, NULL); + + its = elm_gengrid_realized_items_get(ad->gridinfo.view); + GL_CHECK_VAL(its, -1); + + EINA_LIST_FOREACH(its, l, it) { + if (it == NULL) { + gl_dbgE("Invalid item!"); + continue; + } + + gitem = elm_object_item_data_get(it); + if (gitem && gitem->item &&gitem->item->image_info && + gitem->item->image_info->burstshot_id) { + /* Realize burstshot item again */ + elm_gengrid_item_update(it); + } + } + return 0; +} + +void _gl_thumbs_change_view(void *data, int prev_x, int current_x) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + int diff = 0; + int w = -1; + int h = -1; + + evas_object_geometry_get(ad->maininfo.win, NULL, NULL, &w, &h); + int offset = ((w < h) ? (w / 8) : (h / 8)); + diff = (current_x - prev_x); + int view_mode = gl_get_view_mode(ad); + if (view_mode == GL_VIEW_THUMBS_EDIT || view_mode == GL_VIEW_THUMBS) { + if ((diff + offset) < 0) { + elm_object_signal_emit(ad->gridinfo.layout, "elm,splitview,state,default", "elm"); + ad->gridinfo.split_view_mode = DETAIL_VIEW; + _gl_thumbs_set_size(ad, NULL); + } else if ((diff - offset) > 0) { + if (ad->gridinfo.split_view_mode != SPLIT_VIEW) { + evas_object_geometry_get(ad->maininfo.win, NULL, NULL, &w, &h); + Edje_Message_Int *msg = (Edje_Message_Int *)malloc(sizeof(Edje_Message_Int) + sizeof(int)); + GL_CHECK(msg); + msg->val = ((w < h) ? (w / 3) : (h / 3)); + edje_object_message_send(elm_layout_edje_get(ad->gridinfo.layout), EDJE_MESSAGE_INT, 1, msg); + free(msg); + elm_object_signal_emit(ad->gridinfo.layout, "elm,splitview,state,default", "elm"); + elm_object_signal_emit(ad->gridinfo.layout, "elm,splitview,state,visible", "elm"); + ad->gridinfo.split_view_mode = SPLIT_VIEW; + _gl_thumbs_set_size(ad, NULL); + } + } + if (view_mode == GL_VIEW_THUMBS_EDIT) { + Edje_Message_Int *msg = (Edje_Message_Int *)malloc(sizeof(Edje_Message_Int) + sizeof(int)); + GL_CHECK(msg); + if (ad->gridinfo.split_view_mode == DETAIL_VIEW) { + msg->val = w; + } else { + msg->val = ((w < h) ? (w - (w / 3)) : (w - (h / 3))); + } + gl_dbgE("msg value : %d", msg->val); + edje_object_message_send(elm_layout_edje_get(ad->gridinfo.layout), EDJE_MESSAGE_INT, 2, msg); + free(msg); + elm_object_signal_emit(ad->gridinfo.layout, "elm,selectall,state,visible", "elm"); + } + } +} + +void _gl_thumb_update_split_view_badge(void *data) { + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK(ad->albuminfo.elist); + GL_CHECK(ad->albuminfo.elist->clist); + gl_cluster *album_item = NULL; + gl_item *item = NULL; + int length, i; + Eina_List *clist = ad->albuminfo.elist->clist; + length = eina_list_count(clist); + + for (i = 0; i < length; i++) { + album_item = eina_list_nth(clist, i); + if (album_item && album_item->elist) { + EINA_LIST_FREE(album_item->elist, item) { + if (item) { + item->checked = false; + } + } + } + } +} + +void _gl_thumb_update_split_view(void *data) { + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + if(ad->gridinfo.update_split_view) { + + if (ad->gridinfo.layout) { + Evas_Object *layout_inner = elm_object_part_content_get(ad->gridinfo.layout, "split.view"); + if (!layout_inner) { + gl_dbgE("Failed to add split album view!"); + } else { + _create_split_album_view(ad, layout_inner); + elm_object_part_content_set(ad->gridinfo.layout, "split.view", layout_inner); + _gl_thumb_update_split_view_badge(data); + } + } + } else { + ad->gridinfo.update_split_view = true; + } +} diff --git a/src/gallery.c b/src/gallery.c new file mode 100644 index 0000000..b5adb12 --- /dev/null +++ b/src/gallery.c @@ -0,0 +1,355 @@ +/* +* 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 "gl-main.h" +#include "gl-debug.h" +#include "gl-ui-util.h" +#include "gl-lang.h" +#include "gl-util.h" +#include "gl-data.h" +#include "gl-ext-ug-load.h" +#include "gl-ext-exec.h" +#include "gl-popup.h" +#include "gl-entry.h" +#include "gl-db-update.h" +#include "gl-albums.h" + +/* * + * The basic policy of Tizen applications for OOM case is "silent exit" as + * Android. Kernel will send SIGTERM signal (standard unix signal) to + * background application when OOM happens. + * Application should register SIGTERM handler and silently free every + * critical resource and exit. +*/ + +static bool _gallery_create(void *data); +static void __gallery_sigterm_handler(int signum) +{ + /* do something for signal handling */ + gl_dbgW(">>>>>>>>>>>>>>>>> SIGTERM >>>>>>>>>>>>>>> Gallery "); + elm_exit(); +} + +static void _gallery_lang_changed_cb(app_event_info_h event_info, void *data) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + evas_object_smart_callback_call(ad->maininfo.naviframe, + "gallery,language,changed", data); + /* Change text in APP */ + _gl_lang_update(data); +} + +static void _gallery_resume(void *data) +{ + gl_dbgW("==Resume=="); + + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + + evas_object_data_set(ad->maininfo.naviframe, + "gl_obj_key_gallery_paused", + (void *)0); + if (ad->maininfo.b_paused) { + evas_object_smart_callback_call(ad->maininfo.naviframe, + "gallery,view,resumed", data); + ad->maininfo.b_paused = false; + } + + if (ad->uginfo.b_ug_launched) { + elm_object_tree_focus_allow_set(ad->maininfo.layout, EINA_TRUE); + elm_object_focus_set(ad->maininfo.layout, EINA_TRUE); + ad->uginfo.b_ug_launched = false; + } + + //ug_resume(); + + /* Video palyer was close when pause Gallery */ + ad->uginfo.b_app_called = false; + _gl_entry_resume_view(ad); +} + +static int _gallery_close_app(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + /* Clear UI */ + _gl_main_clear_view(ad); + /* Destroy Progressbar timer */ + GL_IF_DEL_TIMER(ad->pbarinfo.pbar_timer); + /* Free Ecore_Pipe object created */ + GL_IF_DEL_PIPE(ad->pbarinfo.sync_pipe); + GL_IF_DEL_TIMER(ad->pbarinfo.start_thread_timer); + GL_IF_DEL_TIMER(ad->pbarinfo.del_pbar_timer); + GL_IF_DEL_TIMER(ad->ctrlinfo.avoid_multi_tap); + GL_IF_DEL_JOB(ad->pbarinfo.del_pbar_job); + /* Destroy timer for removing popup */ + GL_IF_DEL_TIMER(ad->popupinfo.del_timer); + /* Remove down event handler */ + GL_IF_DEL_EVENT_HANDLER(ad->maininfo.keydown_handler); + /*Remove font type change event handler*/ + GL_IF_DEL_EVENT_HANDLER(ad->maininfo.font_handler); + /*Destroy idler for update mmc status chenged callback*/ + GL_IF_DEL_IDLER(ad->maininfo.mmc_idler); + GL_IF_DEL_TIMER(ad->maininfo.reg_idler); + /* deregister notify */ + _gl_dereg_storage_state_change_notify(data); +#ifdef _USE_SVI + /* Finallize svi */ + _gl_fini_svi(data); +#endif + /* dlopen imageviewer lib */ + _gl_dlclose_imageviewer(data); + /* Remove db monitor */ + _gl_db_update_finalize(data); + /* disconnet with libmedia-info */ + _gl_data_finalize(ad); + + gl_dbgW("==Cleaning done=="); + return 0; +} + +static void _gallery_terminate(void *data) +{ + gl_dbgW("==Terminate=="); + GL_CHECK(data); + _gallery_close_app(data); +} + +/* +static void __gl_albums_sel_cb(void *data, int type, void *ei) +{ + GL_CHECK(data); + gl_cluster *album_item = (gl_cluster *)data; + GL_CHECK(album_item->cluster); + GL_CHECK(album_item->ad); + gl_appdata *ad = (gl_appdata *)album_item->ad; + int view_mode = gl_get_view_mode(ad); +// elm_gengrid_item_selected_set(ei, EINA_FALSE); + + gl_dbg("view mode: %d.", view_mode); + if (view_mode != GL_VIEW_ALBUMS_EDIT) { + if (album_item->cluster->count == 0) { + gl_dbgW("Empty album, return!"); + return; + } + gl_albums_open_album(album_item); + } +} +*/ + +static Eina_Bool __gallery_key_down_cb(void *data, int type, void *event) +{ + if (!data) { + gl_dbgE("Invalid parameter!"); + return ECORE_CALLBACK_PASS_ON; + } + + Ecore_Event_Key *key_event = (Ecore_Event_Key *)event; + + if (!key_event) { + return ECORE_CALLBACK_PASS_ON; + } + if (!g_strcmp0(key_event->keyname, "XF86PowerOff")) { + gl_sdbgW("Power key"); + } else if (!g_strcmp0(key_event->keyname, "XF86Menu")) { + gl_sdbgW("menu key is pressed"); + } gl_sdbg("Key down : %s", key_event->keyname); + + return ECORE_CALLBACK_PASS_ON; +} + +static void _gallery_low_battery_cb(app_event_info_h event_info, void *data) +{ + gl_dbg(""); + + /* ug_send_event(UG_EVENT_LOW_BATTERY); */ + /* 0 : default handler, 1:user handler */ +} + +static bool _gallery_create(void *data) +{ + GL_PROFILE_IN; + gl_dbgW("==Create=="); + GL_CHECK_FALSE(data); + gl_appdata *ad = (gl_appdata *)data; + ad->maininfo.reentrant = TRUE; + ad->uginfo.b_ug_launched = false; + + /* regitering sigterm */ + if (signal(SIGTERM, __gallery_sigterm_handler) == SIG_IGN) { + gl_dbgW("SIG_IGN"); + signal(SIGTERM, SIG_IGN); + } + bindtextdomain(PACKAGE, "/usr/apps/org.tizen.gallery/res/locale"); +#ifdef _USE_OPENGL_BACKEND + elm_config_preferred_engine_set("opengl_x11"); +#else + elm_config_preferred_engine_set("software_x11"); +#endif + /* initialize gallery main view(layout) */ + if (_gl_main_create_view(data) != 0) { + gl_dbgE("_gl_main_create_view failed"); + return false; + } + + GL_PROFILE_F_IN("register noti callback"); + /* memory malloc */ + _gl_db_update_init(data); + /* initialize notify */ + _gl_reg_storage_state_change_notify(data); + /* Register key down handler */ + + ad->maininfo.keydown_handler = ecore_event_handler_add( + ECORE_EVENT_KEY_DOWN, + __gallery_key_down_cb, + data); + + GL_PROFILE_F_OUT("register noti callback"); + GL_PROFILE_OUT; + return true; +} + +static void _gallery_pause(void *data) +{ + gl_dbgW("==Pause=="); + + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + ad->maininfo.reentrant = TRUE; + + evas_object_data_set(ad->maininfo.naviframe, + "gl_obj_key_gallery_paused", + (void *)1); + evas_object_smart_callback_call(ad->maininfo.naviframe, + "gallery,view,paused", data); + ad->maininfo.b_paused = true; + + //ug_pause(); +} + + +/* analysis parameters */ +static int __gallery_parse_param(void *data, app_control_h service) +{ + GL_CHECK_VAL(service, -1); + GL_CHECK_VAL(data, -1); + gl_dbg(""); + + char *value = NULL; + app_control_get_extra_data(service, + "http://tizen.org/appcontrol/data/multiwindow", &value); + if (value) { + if (!strcmp(value, "on")) { + gl_dbg("multiwindow value = %s", value); + } + free(value); + } + + return -1; +} + +static void _gallery_reset(app_control_h service, void *data) +{ + GL_PROFILE_IN; + gl_dbgW("==Reset=="); + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK(ad->maininfo.win); + + if (ad->maininfo.reentrant) { + ad->maininfo.reentrant = FALSE; + } else { + gl_dbgW("Gallery reentrant is not allowed!"); + return; + } + + if (ad->maininfo.b_paused) { + evas_object_smart_callback_call(ad->maininfo.naviframe, + "gallery,view,resumed", data); + ad->maininfo.b_paused = false; + } + + /* Parse parameters */ + if (__gallery_parse_param(data, service) != 0) { + int view_m = gl_get_view_mode(ad); + gl_dbg("view_m: %d", view_m); + + /* Launch Gallery at the first time */ + if (view_m == GL_VIEW_NONE) { + _gl_main_update_view(ad); + } else { + /* Step: Settings>gengeral>storage>pictures,videos */ + gl_dbgW("Checkme: Need to Update view????"); + /* gl_update_view(ad, GL_UPDATE_VIEW_NORMAL); */ + } + elm_win_activate(ad->maininfo.win); + GL_PROFILE_OUT; + return; + } + + _gl_main_reset_view(data); + GL_PROFILE_OUT; +} + +EXPORT_API int main(int argc, char *argv[]) +{ + gl_dbgW("==Gallery=="); + gl_appdata gl_ad; + int ret = APP_ERROR_NONE; + + ui_app_lifecycle_callback_s event_callback; + + app_event_handler_h hLowBatteryHandle; + app_event_handler_h hLanguageChangedHandle; + + event_callback.create = _gallery_create; + event_callback.terminate = _gallery_terminate; + event_callback.pause = _gallery_pause; + event_callback.resume = _gallery_resume; + event_callback.app_control = _gallery_reset; + + ret = ui_app_add_event_handler(&hLowBatteryHandle, + APP_EVENT_LOW_BATTERY, _gallery_low_battery_cb, (void *)&gl_ad); + if (ret != APP_ERROR_NONE) { + gl_dbgE("failed to add LOW_BATTERY event_handler: [%d]", ret); + return -1; + } + + ret = ui_app_add_event_handler(&hLanguageChangedHandle, + APP_EVENT_LANGUAGE_CHANGED, _gallery_lang_changed_cb, + (void *)&gl_ad); + if (ret != APP_ERROR_NONE) { + gl_dbgE("failed to add LANGUAGE_CHANGED event_handler: [%d]", + ret); + return -1; + } + /* Enable OpenGL */ + /* 2013.06.20 + * Use elm_config_preferred_engine_set to enable OpenGL as the backend + * of EFL. */ + /*setenv("ELM_ENGINE", "gl", 1);*/ + + memset(&gl_ad, 0x00, sizeof(gl_appdata)); + + ret = ui_app_main(argc, argv, &event_callback, &gl_ad); + + gl_dbgW("==Gallery gone=="); + return ret; +} + diff --git a/src/util/gl-db-update.c b/src/util/gl-db-update.c new file mode 100644 index 0000000..6450b3e --- /dev/null +++ b/src/util/gl-db-update.c @@ -0,0 +1,306 @@ +/* +* 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 "gallery.h" +#include "gl-util.h" +#include "gl-debug.h" +#include "gl-db-update.h" +#include "gl-data.h" + +#define GL_MONITOE_TIME_DELAY 1.0f + +typedef enum +{ + GL_DU_LOCK_NONE, + GL_DU_LOCK_ONCE, + GL_DU_LOCK_ALWAYS, +} gl_du_lock_e; + +struct gl_db_noti_t { + void *ad; + Ecore_Timer *db_timer; /*For update db data*/ + /*Make ture calling db update callback after other operations complete*/ + Ecore_Idler *db_idl; + //media_content_noti_h cloud_h; /* Notify handle fro cloud content updating in DB */ + gl_du_lock_e lock_state; /*For update db data. If delete/rename operation of gallery, doesn't update*/ + int count; /* All media count got from DB */ + + media_content_db_update_item_type_e update_item; + media_content_db_update_type_e update_type; + GList *uuids; +}; + +static Eina_Bool __gl_db_update_idler(void *data) +{ + GL_CHECK_FALSE(data); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_FALSE(ad->db_noti_d); + gl_db_noti_s *db_noti = ad->db_noti_d; + gl_update_view(ad, GL_UPDATE_VIEW_INOTIFY); + evas_object_smart_callback_call(ad->maininfo.naviframe, + "gallery,db,data,updated", data); + GL_IF_DEL_IDLER(db_noti->db_idl); + return ECORE_CALLBACK_CANCEL; +} + +static Eina_Bool __gl_db_update_timer_cb(void *data) +{ + GL_CHECK_FALSE(data); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_FALSE(ad->db_noti_d); + gl_db_noti_s *db_noti = ad->db_noti_d; + + gl_dbg("db_update[%d]", db_noti->lock_state); + if (db_noti->lock_state) { + gl_dbgW("Don't update, locked!"); + if (db_noti->lock_state == GL_DU_LOCK_ONCE) + db_noti->lock_state = GL_DU_LOCK_NONE; + } else { + GL_IF_DEL_IDLER(db_noti->db_idl); + db_noti->db_idl = ecore_idler_add(__gl_db_update_idler, data); + } + + GL_IF_DEL_TIMER(db_noti->db_timer); + return ECORE_CALLBACK_CANCEL; +} + +static int __gl_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) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->db_noti_d, -1); + gl_db_noti_s *db_noti = ad->db_noti_d; + + if (MEDIA_CONTENT_ERROR_NONE != error) { + gl_dbgE("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) { + gl_dbg("Media type is wrong"); + return -1; + } else if (update_item == MEDIA_ITEM_DIRECTORY) { + /* Batch operation, DB wouldn't return media type */ + int cnt = 0; + int ret = -1; + ret = _gl_data_get_item_cnt(GL_ALBUM_ALL_ID, GL_STORE_T_ALL, &cnt); + if (ret != 0 || cnt == 0) { + gl_dbgE("Empty!"); + } + gl_dbg("old: %d, new: %d", db_noti->count, cnt); + if (cnt == db_noti->count) { + gl_dbg("Nothing changed"); + if (path) { + gl_album_s *album = NULL; + _gl_local_data_get_album_by_path(path, &album); + if (!album) { + return -1; + } else { + _gl_data_type_free_glitem((void **)&album); + gl_dbgW("Updated album contains images"); + } + } else { + return -1; + } + } + } + + db_noti->update_item = update_item; + db_noti->update_type = update_type; + if (uuid && update_item == MEDIA_ITEM_FILE && + update_type == MEDIA_CONTENT_DELETE) { + gl_dbgW("Append: %s", uuid); + db_noti->uuids = g_list_append(db_noti->uuids, (gpointer)g_strdup(uuid)); + } + + _gl_db_update_add_timer(data); + return 0; +} + +static void __gl_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) +{ + gl_dbg("update_item[%d], update_type[%d], media_type[%d]", update_item, + update_type, media_type); + GL_CHECK(data); + gl_dbg("uuid[%s], path[%s]", uuid, path); + __gl_db_update_op(error, pid, update_item, update_type, media_type, + uuid, path, mime_type, data); +} + +/* +static void __gl_db_update_coud_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) +{ + gl_dbg("update_item[%d], update_type[%d], media_type[%d]", update_item, + update_type, media_type); + GL_CHECK(data); + __gl_db_update_op(error, pid, update_item, update_type, media_type, + uuid, path, mime_type, data); +} +*/ + +int _gl_db_update_add_timer(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->db_noti_d, -1); + gl_db_noti_s *db_noti = ad->db_noti_d; + + GL_IF_DEL_TIMER(db_noti->db_timer); + db_noti->db_timer = ecore_timer_add(GL_MONITOE_TIME_DELAY, + __gl_db_update_timer_cb, data); + gl_dbgW("TIMER[1.0f] added!"); + return 0; +} + +bool _gl_db_update_lock_once(void *data, bool status) +{ + gl_dbg(""); + GL_CHECK_FALSE(data); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_FALSE(ad->db_noti_d); + gl_db_noti_s *db_noti = ad->db_noti_d; + if (status) + db_noti->lock_state = GL_DU_LOCK_ONCE; + else + db_noti->lock_state = GL_DU_LOCK_NONE; + return true; +} + +bool _gl_db_update_lock_always(void *data, bool status) +{ + gl_dbg(""); + GL_CHECK_FALSE(data); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_FALSE(ad->db_noti_d); + gl_db_noti_s *db_noti = ad->db_noti_d; + if (status) + db_noti->lock_state = GL_DU_LOCK_ALWAYS; + else + db_noti->lock_state = GL_DU_LOCK_NONE; + return true; +} + +bool _gl_db_update_set_count(void *data, int count) +{ + gl_dbg("count: %d", count); + GL_CHECK_FALSE(data); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_FALSE(ad->db_noti_d); + gl_db_noti_s *db_noti = ad->db_noti_d; + db_noti->count = count; + return true; +} + +int _gl_db_update_get_info(void *data, + media_content_db_update_item_type_e *update_item, + media_content_db_update_type_e *update_type, + GList **uuids) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->db_noti_d, -1); + + if (update_item) + *update_item = ad->db_noti_d->update_item; + if (update_type) + *update_type = ad->db_noti_d->update_type; + if (ad->db_noti_d->uuids && uuids) { + *uuids = ad->db_noti_d->uuids; + ad->db_noti_d->uuids = NULL; + } + + return 0; +} + +/*Add media-content update callback*/ +bool _gl_db_update_reg_cb(void *data) +{ + GL_CHECK_FALSE(data); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_FALSE(ad->db_noti_d); + int ret = -1; + + gl_dbg("Set db updated callback"); + ret = media_content_set_db_updated_cb(__gl_db_update_cb, data); + if (ret != MEDIA_CONTENT_ERROR_NONE) + gl_dbgE("Set db updated cb failed[%d]!", ret); +// ret = media_content_set_db_updated_cloud_cb(&(ad->db_noti_d->cloud_h), +// __gl_db_update_coud_cb, +// data); +// if (ret != MEDIA_CONTENT_ERROR_NONE) +// gl_dbgE("Set db updated cloud cb failed[%d]!", ret); + return true; +} + +/* calloc memory */ +bool _gl_db_update_init(void *data) +{ + GL_CHECK_FALSE(data); + gl_appdata *ad = (gl_appdata *)data; + gl_db_noti_s *db_noti = (gl_db_noti_s *)calloc(1, sizeof(gl_db_noti_s)); + GL_CHECK_FALSE(db_noti); + + ad->db_noti_d = db_noti; + gl_dbg("DB updated intialization"); + return true; +} + +bool _gl_db_update_finalize(void *data) +{ + int ret = -1; + gl_dbg("Unset db updated callback"); + + ret = media_content_unset_db_updated_cb(); + if (ret != MEDIA_CONTENT_ERROR_NONE) + gl_dbgE("UNSet db updated cb failed[%d]!", ret); + + GL_CHECK_FALSE(data); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_FALSE(ad->db_noti_d); + gl_db_noti_s *db_noti = ad->db_noti_d; + +// if (ad->db_noti_d->cloud_h) { +// ret = media_content_unset_db_updated_cloud_cb(ad->db_noti_d->cloud_h); +// if (ret != MEDIA_CONTENT_ERROR_NONE) +// gl_dbgE("UNSet db updated cloud cb failed[%d]!", ret); +// ad->db_noti_d->cloud_h = NULL; +// } + if (db_noti->uuids) { + g_list_free_full(db_noti->uuids, g_free); + db_noti->uuids = NULL; + } + GL_IF_DEL_TIMER(db_noti->db_timer); + GL_IF_DEL_IDLER(db_noti->db_idl); + GL_FREE(ad->db_noti_d); + return true; +} + + diff --git a/src/util/gl-debug.c b/src/util/gl-debug.c new file mode 100644 index 0000000..b00cdb0 --- /dev/null +++ b/src/util/gl-debug.c @@ -0,0 +1,32 @@ +/* +* 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 "gl-debug.h" + +#ifdef _USE_LOG_FILE_ +static FILE *g_log_fp = NULL; +static char _g_file_path[12285] = { 0, }; +#endif + +#ifdef _PERFORMANCE_CHECK_ +static long g_time_usec = 0L; +#endif + +/* EOF */ diff --git a/src/util/gl-exif.c b/src/util/gl-exif.c new file mode 100644 index 0000000..1d0ac73 --- /dev/null +++ b/src/util/gl-exif.c @@ -0,0 +1,1481 @@ +/* +* 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. +* +*/ + +/** + * The Exif specification defines an Orientation Tag to indicate the orientation of the + * camera relative to the captured scene. This can be used by the camera either to + * indicate the orientation automatically by an orientation sensor, + * or to allow the user to indicate the orientation manually by a menu switch, + * without actually transforming the image data itself. + * Here is an explanation given by TsuruZoh Tachibanaya in + * his description of the Exif file format: + * + * The orientation of the camera relative to the scene, when the image was captured. + * The relation of the '0th row' and '0th column' to visual position is shown as below. + * + * Value 0th Row 0th Column + * 1 top left side + * 2 top right side + * 3 bottom right side + * 4 bottom left side + * 5 left side top + * 6 right side top + * 7 right side bottom + * 8 left side bottom + * + * Read this table as follows (thanks to Peter Nielsen for clarifying this - see also below): + * Entry #6 in the table says that the 0th row in the stored image is the right side of + * the captured scene, and the 0th column in the stored image is the top side of + * the captured scene. + * + * Here is another description given by Adam M. Costello: + * + * For convenience, here is what the letter F would look like if it were tagged correctly + * and displayed by a program that ignores the orientation tag + * (thus showing the stored image): + * + * 1 2 3 4 5 6 7 8 + * + * 888888 888888 88 88 8888888888 88 88 8888888888 + * 88 88 88 88 88 88 88 88 88 88 88 88 + * 8888 8888 8888 8888 88 8888888888 8888888888 88 + * 88 88 88 88 + * 88 88 888888 888888 +*/ + +#ifdef _USE_ROTATE_BG + +#include +#include +#include +#include +#include "gl-exif.h" +#include "gl-debug.h" +#include "gallery.h" +#include "gl-file-util.h" + +#define GL_EXIF_BUF_LEN_MAX 65536L +#define GL_EXIF_BUF_TIME_LEN_MAX 20 +#define GL_EXIF_DEFAULT_YEAR 1900 + +#define GL_EXIF_SOI 0xD8 +#define GL_EXIF_TAG 0xFF +#define GL_EXIF_APP0 0xE0 +#define GL_EXIF_APP1 0xE1 +#define GL_EXIF_JFIF_00 0x00 +#define GL_EXIF_JFIF_01 0x01 +#define GL_EXIF_JFIF_02 0x02 + +#define GL_EXIF_IFD_DATA_FORMAT_UNSIGNED_BYTE 1 +#define GL_EXIF_IFD_DATA_FORMAT_ASCII_STRINGS 1 +#define GL_EXIF_IFD_DATA_FORMAT_UNSIGNED_SHORT 2 +#define GL_EXIF_IFD_DATA_FORMAT_UNSIGNED_LONG 4 +#define GL_EXIF_IFD_DATA_FORMAT_UNSIGNED_RATIONAL 8 +#define GL_EXIF_IFD_DATA_FORMAT_SIGNED_BYTE 1 +#define GL_EXIF_IFD_DATA_FORMAT_UNDEFINED 1 +#define GL_EXIF_IFD_DATA_FORMAT_SIGNED_SHORT 2 +#define GL_EXIF_IFD_DATA_FORMAT_SIGNED_LONG 4 +#define GL_EXIF_IFD_DATA_FORMAT_SIGNED_RATIONAL 8 +#define GL_EXIF_IFD_DATA_FORMAT_SIGNED_FLOAT 4 +#define GL_EXIF_IFD_DATA_FORMAT_DOUBLE_FLOAT 8 + +#define GL_EXI_TMP_JPEG_FILE GL_DATA_FOLDER_PATH"/.gallery_tmp_write_exif.jpg" + +/* Write one byte, testing for EOF */ +static int __gl_exif_write_1_byte(FILE *fd, int c) +{ + if (fputc(c, fd) < 0) { + gl_dbgE("fputc failed!"); + return -1; + } + + return 0; +} + +/* Read one byte, testing for EOF */ +static int __gl_exif_read_1_byte(FILE *fd) +{ + int c = 0; + + /* Return next input byte, or EOF if no more */ + c = getc(fd); + if (c == EOF) { + gl_dbgE("Premature EOF in JPEG file!"); + return -1; + } + + return c; +} + +/* Read 2 bytes, convert to unsigned int */ +/* All 2-byte quantities in JPEG markers are MSB first */ +static int __gl_exif_read_2_bytes(FILE *fd, unsigned int *len) +{ + int c1 = 0; + int c2 = 0; + + /* Return next input byte, or EOF if no more */ + c1 = getc(fd); + if (c1 == EOF) { + gl_dbgE("Premature EOF in JPEG file!"); + return -1; + } + + /* Return next input byte, or EOF if no more */ + c2 = getc(fd); + if (c2 == EOF) { + gl_dbgE("Premature EOF in JPEG file!"); + return -1; + } + + if (len) + *len = (((unsigned int)c1) << 8) + ((unsigned int)c2); + + return 0; +} + +/* Add raw exif tag and data */ +static int __gl_exif_add_header(FILE *fd, unsigned int *orientation) +{ + GL_CHECK_VAL(orientation, -1); + GL_CHECK_VAL(fd, -1); + int i = 0; + int ret = -1; + char *time_buf = NULL; + unsigned int offset = 0; + + /* raw EXIF header data */ + const unsigned char exif1[] = { + GL_EXIF_TAG, GL_EXIF_SOI, GL_EXIF_TAG, GL_EXIF_APP1 + }; + /* Write File head, check for JPEG SOI + Exif APP1 */ + for (i = 0; i < 4; i++) { + if (__gl_exif_write_1_byte(fd, exif1[i]) < 0) + goto GL_EXIF_FAILED; + } + /* SET the marker parameter length count */ + /* Length includes itself, so must be at least 2 + Following Exif data length must be at least 6; 30+36 bytes*/ + const unsigned char exif2[] = { 0x00, 0x42 }; + for (i = 0; i < 2; i++) { + if (__gl_exif_write_1_byte(fd, exif2[i]) < 0) + goto GL_EXIF_FAILED; + } + + /* Write Exif head -- "Exif" */ + const unsigned char exif3[] = { 0x45, 0x78, 0x69, 0x66, 0x00, 0x00 }; + for (i = 0; i < 6; i++) { + if (__gl_exif_write_1_byte(fd, exif3[i]) < 0) + goto GL_EXIF_FAILED; + } + + /* Set byte order and Tag Mark , "II(0x4949)" */ + const unsigned char exif4[] = { 0x49, 0x49, 0x2A, 0x00 }; + for (i = 0; i < 4; i++) { + if (__gl_exif_write_1_byte(fd, exif4[i]) < 0) + goto GL_EXIF_FAILED; + } + offset += 4; + + /* Set first IFD offset (offset to IFD0) , II-08000000 */ + const unsigned char exif5[] = { 0x08, 0x00, 0x00, 0x00 }; + for (i = 0; i < 4; i++) { + if (__gl_exif_write_1_byte(fd, exif5[i]) < 0) + goto GL_EXIF_FAILED; + } + offset += 4; + + /* IFD: Image File Directory */ + /* Set the number of directory entries contained in this IFD, - EEEE ; + * 2 entry: orientation, data time */ + const unsigned char exif6[] = { 0x02, 0x00 }; + for (i = 0; i < 2; i++) { + if (__gl_exif_write_1_byte(fd, exif6[i]) < 0) + goto GL_EXIF_FAILED; + } + offset += 2; + + /* Add Orientation Tag in IFD0; 0x0112 */ + const unsigned char exif7[] = { 0x12, 0x01 }; + for (i = 0; i < 2; i++) { + if (__gl_exif_write_1_byte(fd, exif7[i]) < 0) + goto GL_EXIF_FAILED; + } + offset += 2; + + gl_dbg("Write: %d", *orientation); + const unsigned char exif8[] = { 0x03, 0x00, 0x01, 0x00, 0x00, 0x00 }; + for (i = 0; i < 6; i++) { + if (__gl_exif_write_1_byte(fd, exif8[i]) < 0) + goto GL_EXIF_FAILED; + } + offset += 6; + + /* Set the Orientation value */ + if (__gl_exif_write_1_byte(fd, (unsigned char)(*orientation)) < 0) + goto GL_EXIF_FAILED; + + const unsigned char exif9[] = { 0x00, 0x00, 0x00 }; + for (i = 0; i < 3; i++) { + if (__gl_exif_write_1_byte(fd, exif9[i]) < 0) + goto GL_EXIF_FAILED; + } + offset += 4; + + /* Add Data Time Tag in IFD0; 0x0132 */ + const unsigned char exif10[] = { 0x32, 0x01 }; + for (i = 0; i < 2; i++) { + if (__gl_exif_write_1_byte(fd, exif10[i]) < 0) + goto GL_EXIF_FAILED; + } + offset += 2; + + /* Type: strings */ + const unsigned char exif11[] = { 0x02, 0x00 }; + for (i = 0; i < 2; i++) { + if (__gl_exif_write_1_byte(fd, exif11[i]) < 0) + goto GL_EXIF_FAILED; + } + offset += 2; + + /* Data lengh, byte count */ + const unsigned char exif12[] = { 0x14, 0x00, 0x00, 0x00 }; + for (i = 0; i < 4; i++) { + if (__gl_exif_write_1_byte(fd, exif12[i]) < 0) + goto GL_EXIF_FAILED; + } + offset += 8; + + /* 20 bytes larger than 4 bytes, + * so next 4 bytes is data offset start from "II"(0x4949)*/ + + gl_dbg("offset: %2X", offset + 8); + /* Too add data offset, plus 4 bytes self and plus 4 bytes IFD terminator */ + if (__gl_exif_write_1_byte(fd, (unsigned char)(offset + 4)) < 0) + goto GL_EXIF_FAILED; + + const unsigned char exif13[] = { 0x00, 0x00, 0x00 }; + for (i = 0; i < 3; i++) { + if (__gl_exif_write_1_byte(fd, exif13[i]) < 0) + goto GL_EXIF_FAILED; + } + + /*After last directory entry, there is a 4bytes of data('LLLLLLLL' at the chart), + * it means an offset to next IFD. If its value is '0x00000000', + * it means this is the last IFD and there is no linked IFD */ + const unsigned char exif14[] = { 0x00, 0x00, 0x00, 0x00 }; + for (i = 0; i < 4; i++) { + if (__gl_exif_write_1_byte(fd, exif14[i]) < 0) + goto GL_EXIF_FAILED; + } + + /* Date Time of image was last modified. + * Data format is "YYYY:MM:DD HH:MM:SS"+0x00, total 20bytes + */ + time_t t; + struct tm tms; + struct tm *tm; + + t = time (NULL); + tm = localtime_r(&t, &tms); + if (!tm) { + gl_dbgE("Faild to allocate memory!"); + goto GL_EXIF_FAILED; + } + + time_buf = (char *)calloc(1, GL_EXIF_BUF_TIME_LEN_MAX); + if (!time_buf) { + gl_dbgE("Faild to allocate memory!"); + goto GL_EXIF_FAILED; + } + snprintf(time_buf, GL_EXIF_BUF_TIME_LEN_MAX, + "%04i:%02i:%02i %02i:%02i:%02i", + tm->tm_year + GL_EXIF_DEFAULT_YEAR, tm->tm_mon + 1, + tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec); + + gl_dbg("time_buf: %s", time_buf); + if (fwrite(time_buf, 1, GL_EXIF_BUF_TIME_LEN_MAX, fd) != GL_EXIF_BUF_TIME_LEN_MAX) { + gl_dbgW("Write size are diff!"); + goto GL_EXIF_FAILED; + } + + ret = 0; + + GL_EXIF_FAILED: + + gl_dbg("All done"); + GL_FREEIF(time_buf); + return ret; +} + +/* Add exif to jfif , don't have exif */ +static int __gl_exif_add_exif_to_jfif(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_sdbgE("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_sdbgE("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 (!gl_file_unlink(tmp_file)) + gl_dbgE("Delete file failed"); + + gl_dbg("All done"); + return ret; +} + + + +/* 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(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; + int i = 0; + unsigned int length = 0; + bool is_motorola = false; /* Flag for byte order */ + unsigned int offset = 0; + size_t r_size = 0; + const unsigned char ifd_data_format[13] = { + /*add 0 to ifd_data_format[0] ,for easy to use*/ + 0, + GL_EXIF_IFD_DATA_FORMAT_UNSIGNED_BYTE, + GL_EXIF_IFD_DATA_FORMAT_ASCII_STRINGS, + GL_EXIF_IFD_DATA_FORMAT_UNSIGNED_SHORT, + GL_EXIF_IFD_DATA_FORMAT_UNSIGNED_LONG, + GL_EXIF_IFD_DATA_FORMAT_UNSIGNED_RATIONAL, + GL_EXIF_IFD_DATA_FORMAT_SIGNED_BYTE, + GL_EXIF_IFD_DATA_FORMAT_UNDEFINED, + GL_EXIF_IFD_DATA_FORMAT_SIGNED_SHORT, + GL_EXIF_IFD_DATA_FORMAT_SIGNED_LONG, + GL_EXIF_IFD_DATA_FORMAT_SIGNED_RATIONAL, + GL_EXIF_IFD_DATA_FORMAT_SIGNED_FLOAT, + GL_EXIF_IFD_DATA_FORMAT_DOUBLE_FLOAT + + }; + + if ((fd = fopen(file_path, "rb+")) == NULL) { + gl_sdbgE("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; + } + /* Find APP1 */ + bool b_tag_ff = false; + while (1) { + tmp_exif = __gl_exif_read_1_byte(fd); + if (tmp_exif < 0) + goto GL_EXIF_FAILED; + + /*copy data from jpeg to tmp_fd (from "FF D8" to " FF E1",because those data we needn't modify)*/ + if (__gl_exif_write_1_byte(tmp_fd, tmp_exif) < 0) + goto GL_EXIF_FAILED; + + tmp[0] = (unsigned char)tmp_exif; + + gl_dbg("- %02X", tmp[0]); + if (!b_tag_ff) { + /* Get first tag */ + if (tmp[0] == GL_EXIF_TAG) { + gl_dbgW("0xFF!"); + b_tag_ff = true; + } + continue; + } + + /* Get APP1 */ + if (tmp[0] == GL_EXIF_APP1) { + gl_dbgW("Exif in APP1!"); + break; + } else { + gl_dbgW("0x%02X!",tmp[0]); + b_tag_ff = false; + } + } + + /* Get the marker parameter length count */ + if (__gl_exif_read_2_bytes(fd, &length) < 0) + goto GL_EXIF_FAILED; + gl_dbg("length: %d", length); + /* Length includes itself, so must be at least 2 + Following Exif data length must be at least 6 */ + if (length < 8) { + gl_dbgE("length < 8"); + goto GL_EXIF_FAILED; + } + /*modify the marker parameter length, orientation tag is 12*/ + length += 12; + gl_dbgW("modified length: %d", length); + tmp[0] = (length >> 8)& 0xff ; + tmp[1] = length & 0xff ; + for (i = 0; i < 2; i++) { + if (__gl_exif_write_1_byte(tmp_fd, tmp[i]) < 0) + goto GL_EXIF_FAILED; + } + + for (i = 0; i < 6; i++) { + tmp_exif = __gl_exif_read_1_byte(fd); + if (tmp_exif < 0) + goto GL_EXIF_FAILED; + + tmp[i] = (unsigned char)tmp_exif; + gl_dbg("- %02X", tmp[i]); + if (__gl_exif_write_1_byte(tmp_fd, tmp[i]) < 0) + goto GL_EXIF_FAILED; + } + if (tmp[0] == 0x45 && tmp[1] == 0x78 && tmp[2] == 0x69 && tmp[3] == 0x66 && + tmp[4] == 0x00 && tmp[5] == 0x00) { + gl_dbgW("Met Exif!"); + } else { + gl_dbgW("Not met Exif!"); + goto GL_EXIF_FAILED; + } + /* Read Exif body */ + for (i = 0; i < 4; i++) { + tmp_exif = __gl_exif_read_1_byte(fd); + if (tmp_exif < 0) + goto GL_EXIF_FAILED; + tmp[i] = (unsigned char)tmp_exif; + if (__gl_exif_write_1_byte(tmp_fd, tmp[i]) < 0) + goto GL_EXIF_FAILED; + } + + /* Check byte order and Tag Mark , "II(0x4949)" or "MM(0x4d4d)" */ + if (tmp[0] == 0x49 && tmp[1] == 0x49 && tmp[2] == 0x2A && + tmp[3] == 0x00) { + gl_dbg("Intel"); + is_motorola = false; + } else if (tmp[0] == 0x4D && tmp[1] == 0x4D && tmp[2] == 0x00 && + tmp[3] == 0x2A) { + gl_dbg("Motorola"); + is_motorola = true; + } else { + goto GL_EXIF_FAILED; + } + + for (i = 0; i < 4; i++) { + tmp_exif = __gl_exif_read_1_byte(fd); + if (tmp_exif < 0) + goto GL_EXIF_FAILED; + + tmp[i] = (unsigned char)tmp_exif; + gl_dbg("- %02X", tmp[i]); + if (__gl_exif_write_1_byte(tmp_fd, tmp[i]) < 0) + goto GL_EXIF_FAILED; + } + + /* Get first IFD offset (offset to IFD0) , MM-08000000, II-00000008 */ + if (is_motorola) { + if (tmp[0] != 0 && tmp[1] != 0) + goto GL_EXIF_FAILED; + offset = tmp[2]; + offset <<= 8; + offset += tmp[3]; + } else { + if (tmp[3] != 0 && tmp[2] != 0) + goto GL_EXIF_FAILED; + offset = tmp[1]; + offset <<= 8; + offset += tmp[0]; + } + gl_dbg("offset: %d", offset); + /*if offset >8, copy data from there to IFD start position*/ + if (offset > 8) { + for (i = 0; i < (offset - 8); i++) { + tmp_exif = __gl_exif_read_1_byte(fd); + if (tmp_exif < 0) + goto GL_EXIF_FAILED; + + tmp[i] = (unsigned char)tmp_exif; + gl_dbg("- %02X", tmp[i]); + if (__gl_exif_write_1_byte(tmp_fd, tmp[i]) < 0) + goto GL_EXIF_FAILED; + } + } + + /* IFD: Image File Directory */ + /* Get the number of directory entries contained in this IFD, - 2 bytes, EE */ + unsigned int tags_cnt = 0; + for (i = 0; i < 2; i++) { + tmp_exif = __gl_exif_read_1_byte(fd); + if (tmp_exif < 0) + goto GL_EXIF_FAILED; + + tmp[i] = (unsigned char)tmp_exif; + } + if (is_motorola) { + tags_cnt = tmp[0]; + tags_cnt <<= 8; + tags_cnt += tmp[1]; + } else { + tags_cnt = tmp[1]; + tags_cnt <<= 8; + tags_cnt += tmp[0]; + } + gl_dbg("tags_cnt: %d", tags_cnt); + /*modify tags num,add orientation tag */ + tags_cnt += 1; + gl_dbg("modified tags_cnt: %d", tags_cnt); + if (is_motorola) { + tmp[0] = (tags_cnt >> 8) & 0xff; + tmp[1] = tags_cnt & 0xff; + } else { + tmp[0] = tags_cnt & 0xff; + tmp[1] = (tags_cnt >> 8) & 0xff; + } + for (i = 0; i < 2; i++) { + gl_dbg("modified- %02X", tmp[i]); + if (__gl_exif_write_1_byte(tmp_fd, tmp[i]) < 0) + goto GL_EXIF_FAILED; + + } + /* Add Orientation Tag in IFD0 */ + unsigned int tag_num = 0; + unsigned char orientation_tag[12] = { 0, }; + bool b_found_position = false; + int j = 0; + unsigned int data_type = 0; + unsigned int unit_num = 0; + unsigned int data_length = 0; + unsigned int offset_value = 0; + /*initialize orientation_tag value*/ + if (is_motorola) { + orientation_tag[0] = 0x01; + orientation_tag[1] = 0x12; + + orientation_tag[2] = 0x00; + orientation_tag[3] = 0x03; + + orientation_tag[4] = 0x00; + orientation_tag[5] = 0x00; + orientation_tag[6] = 0x00; + orientation_tag[7] = 0x01; + + orientation_tag[8] = 0x00; + orientation_tag[9] = (unsigned char)(*orientation); + orientation_tag[10] = 0x00; + orientation_tag[11] = 0x00; + + } else { + orientation_tag[0] = 0x12; + orientation_tag[1] = 0x01; + orientation_tag[2] = 0x03; + orientation_tag[3] = 0x00; + orientation_tag[4] = 0x01; + orientation_tag[5] = 0x00; + orientation_tag[6] = 0x00; + orientation_tag[7] = 0x00; + orientation_tag[8] = (unsigned char)(*orientation); + orientation_tag[9] = 0x00; + 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++) { + 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) { + if (--tags_cnt == 0) { + break; + } + + /* Every directory entry size is 12 */ + for (i = 0; i < 12; i++) { + tmp_exif = __gl_exif_read_1_byte(fd); + if (tmp_exif < 0) + goto GL_EXIF_FAILED; + + tmp[i] = (unsigned char)tmp_exif; + } + /* Get Tag number */ + if (is_motorola) { + tag_num = tmp[0]; + tag_num <<= 8; + tag_num += tmp[1]; + } else { + tag_num = tmp[1]; + tag_num <<= 8; + tag_num += tmp[0]; + } + gl_dbgW("tag num %02X!" , tag_num); + /* to find Orientation Tag position */ + if (tag_num < 0x0112) { + + } 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; + } + b_found_position = true; + } + if (is_motorola) { + data_type = tmp[2]; + data_type <<= 8; + data_type += tmp[3]; + + unit_num = tmp[4]; + unit_num <<= 8; + unit_num += tmp[5]; + unit_num <<= 8; + unit_num += tmp[6]; + unit_num <<= 8; + unit_num += tmp[7]; + } else { + data_type = tmp[3]; + data_type <<= 8; + data_type += tmp[2]; + + unit_num = tmp[7]; + unit_num <<= 8; + unit_num += tmp[6]; + unit_num <<= 8; + unit_num += tmp[5]; + unit_num <<= 8; + unit_num += tmp[4]; + } + gl_dbgW("data_type %02X!" , data_type); + gl_dbgW("unit_num %02X!" , unit_num); + if ((data_type < 1) ||(data_type > 12)) { + gl_dbgE("Wrong data type!"); + goto GL_EXIF_FAILED; + } + + 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 (is_motorola) { + offset_value = tmp[8]; + offset_value <<= 8; + offset_value += tmp[9]; + offset_value <<= 8; + offset_value += tmp[10]; + offset_value <<= 8; + offset_value += tmp[11]; + gl_dbgW("offset_value %02X!" , offset_value); + /*add orientation offset*/ + offset_value += 12; + gl_dbgW("changed offset_value %02X!" , offset_value); + tmp[8] = (offset_value >> 24) & 0xff; + tmp[9] = (offset_value >> 16) & 0xff; + tmp[10] = (offset_value >> 8) & 0xff; + tmp[11] = offset_value & 0xff; + gl_dbg("tmp[8] %02X!" , tmp[8]); + gl_dbg("tmp[9] %02X!" , tmp[9]); + gl_dbg("tmp[10] %02X!" , tmp[10]); + gl_dbg("tmp[11] %02X!" , tmp[11]); + } else { + offset_value = tmp[11]; + offset_value <<= 8; + offset_value += tmp[10]; + offset_value <<= 8; + offset_value += tmp[9]; + offset_value <<= 8; + offset_value += tmp[8]; + gl_dbgW("offset_value %02X!" , offset_value); + /*add orientation offset*/ + offset_value += 12; + gl_dbgW("changed offset_value %02X!" , offset_value); + + tmp[11] = (offset_value >> 24) & 0xff; + tmp[10] = (offset_value >> 16) & 0xff; + tmp[9] = (offset_value >> 8) & 0xff; + tmp[8] = offset_value & 0xff; + gl_dbg("tmp[8] %02X!" , tmp[8]); + gl_dbg("tmp[9] %02X!" , tmp[9]); + gl_dbg("tmp[10] %02X!" , tmp[10]); + gl_dbg("tmp[11] %02X!" , tmp[11]); + + } + + } + + } + 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; + + } + memset(tmp, 0x00, 12); + + } + 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 = NULL; + fd = fopen(file_path, "wb"); + if (!fd) { + gl_sdbgE("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); + fd = NULL; + } + + if (tmp_fd) { + fclose(tmp_fd); + tmp_fd = NULL; + } + + /* Delete tmp file */ + if (!gl_file_unlink(tmp_file)) + gl_dbgE("Delete file failed"); + + gl_dbg("All done"); + return ret; +} + +static int __gl_exif_rw_jfif(FILE *fd, char *file_path, + unsigned int *orientation, bool b_write) +{ + GL_CHECK_VAL(fd, -1); + GL_CHECK_VAL(file_path, -1); + GL_CHECK_VAL(orientation, -1); + unsigned char tmp[GL_EXIF_BUF_LEN_MAX] = { 0, }; + int i = 0; + unsigned int length = 0; + int tmp_exif = -1; + bool is_motorola = false; /* Flag for byte order */ + unsigned int offset = 0; + int ret = -1; + /*unsigned char version = 0x00; */ + + if (__gl_exif_read_2_bytes(fd, &length) < 0) + goto GL_EXIF_FAILED; + gl_dbg("length: %d", length); + + for (i = 0; i < 5; i++) { + tmp_exif = __gl_exif_read_1_byte(fd); + if (tmp_exif < 0) + goto GL_EXIF_FAILED; + tmp[i] = (unsigned char)tmp_exif; + } + + /* JFIF0 */ + if (tmp[0] != 0x4A || tmp[1] != 0x46 || tmp[2] != 0x49 || + tmp[3] != 0x46 || tmp[4] != 0x00) { + gl_dbgE("Not met Jfif!"); + goto GL_EXIF_FAILED; + } + + for (i = 0; i < 2; i++) { + tmp_exif = __gl_exif_read_1_byte(fd); + if (tmp_exif < 0) + goto GL_EXIF_FAILED; + tmp[i] = (unsigned char)tmp_exif; + } + + /* Check JFIF version */ + if (tmp[0] == 0x01 && tmp[1] == GL_EXIF_JFIF_00) { + gl_dbg("Jfif 1.00"); + } else if (tmp[0] == 0x01 && tmp[1] == GL_EXIF_JFIF_01) { + gl_dbg("Jfif 1.01"); + } else if (tmp[0] == 0x01 && tmp[1] == GL_EXIF_JFIF_02) { + gl_dbg("Jfif 1.02"); + } else { + gl_dbgE("Unknow Jfif version[%d.%d]!", tmp[0], tmp[1]); + goto GL_EXIF_FAILED; + } + + /* Save version */ + /*version = tmp[1]; */ + + /* Find APP1 */ + bool b_tag_ff = false; + while (1) { + tmp_exif = __gl_exif_read_1_byte(fd); + if (tmp_exif < 0) + goto GL_EXIF_FAILED; + + tmp[0] = (unsigned char)tmp_exif; + + gl_dbg("- %02X", tmp[0]); + if (!b_tag_ff) { + /* Get first tag */ + if (tmp[0] == GL_EXIF_TAG) { + gl_dbgW("0xFF!"); + b_tag_ff = true; + } + continue; + } + + /* Get APP1 */ + if (tmp[0] == GL_EXIF_APP1) { + gl_dbgW("Exif in APP1!"); + break; + } + + gl_dbgW("No Exif in APP1!"); + + /* Close file */ + fclose(fd); + if (!b_write) { + /* Normal orientation = 0degree = 1 */ + *orientation = 1; + return 0; + } + return __gl_exif_add_exif_to_jfif(file_path, orientation); + } + + /* Find Exif */ + while (1) { + for (i = 0; i < 6; i++) { + tmp_exif = __gl_exif_read_1_byte(fd); + if (tmp_exif < 0) { + gl_dbgW("Not met Exif!"); + goto GL_EXIF_FAILED; + } + + tmp[i] = (unsigned char)tmp_exif; + gl_dbg("- %02X", tmp[i]); + } + if (tmp[0] == 0x45 && tmp[1] == 0x78 && tmp[2] == 0x69 && tmp[3] == 0x66 && + tmp[4] == 0x00 && tmp[5] == 0x00) { + gl_dbgW("Met Exif!"); + break; + } else { + gl_dbg("Not met Exif!"); + if (fseek(fd, -5, SEEK_CUR) < 0) { + gl_dbgE("fseek failed!"); + goto GL_EXIF_FAILED; + } + continue; + } + } + + /* Read Exif body */ + for (i = 0; i < 4; i++) { + tmp_exif = __gl_exif_read_1_byte(fd); + if (tmp_exif < 0) + goto GL_EXIF_FAILED; + tmp[i] = (unsigned char)tmp_exif; + } + + /* Check byte order and Tag Mark , "II(0x4949)" or "MM(0x4d4d)" */ + if (tmp[0] == 0x49 && tmp[1] == 0x49 && tmp[2] == 0x2A && + tmp[3] == 0x00) { + gl_dbg("Intel"); + is_motorola = false; + } else if (tmp[0] == 0x4D && tmp[1] == 0x4D && tmp[2] == 0x00 && + tmp[3] == 0x2A) { + gl_dbg("Motorola"); + is_motorola = true; + } else { + goto GL_EXIF_FAILED; + } + + for (i = 0; i < 4; i++) { + tmp_exif = __gl_exif_read_1_byte(fd); + if (tmp_exif < 0) + goto GL_EXIF_FAILED; + + tmp[i] = (unsigned char)tmp_exif; + gl_dbg("- %02X", tmp[i]); + } + + /* Get first IFD offset (offset to IFD0) , MM-08000000, II-00000008 */ + if (is_motorola) { + if (tmp[0] != 0 && tmp[1] != 0) + goto GL_EXIF_FAILED; + offset = tmp[2]; + offset <<= 8; + offset += tmp[3]; + } else { + if (tmp[3] != 0 && tmp[2] != 0) + goto GL_EXIF_FAILED; + offset = tmp[1]; + offset <<= 8; + offset += tmp[0]; + } + gl_dbg("offset: %d", offset); + + /* IFD: Image File Directory */ + /* Get the number of directory entries contained in this IFD, - 2 bytes, EE */ + unsigned int tags_cnt = 0; + for (i = 0; i < 2; i++) { + tmp_exif = __gl_exif_read_1_byte(fd); + if (tmp_exif < 0) + goto GL_EXIF_FAILED; + + tmp[i] = (unsigned char)tmp_exif; + } + if (is_motorola) { + tags_cnt = tmp[0]; + tags_cnt <<= 8; + tags_cnt += tmp[1]; + } else { + tags_cnt = tmp[1]; + tags_cnt <<= 8; + tags_cnt += tmp[0]; + } + gl_dbg("tags_cnt: %d", tags_cnt); + if (tags_cnt == 0) { + gl_dbgE("tags_cnt == 0,no found orientation tag!"); + if (b_write) { + gl_dbgW("to add an orientation tag!"); + fclose(fd); + fd = NULL; + return __gl_exif_add_orientation_tag(file_path, orientation); + + } else{ + /* Normal orientation = 0degree = 1 */ + *orientation = 1; + ret = 0; + } + goto GL_EXIF_FAILED; + } + + /* Search for Orientation Tag in IFD0 */ + unsigned int tag_num = 0; + while (1) { + /* Every directory entry size is 12 */ + for (i = 0; i < 12; i++) { + tmp_exif = __gl_exif_read_1_byte(fd); + if (tmp_exif < 0) + goto GL_EXIF_FAILED; + + tmp[i] = (unsigned char)tmp_exif; + } + /* Get Tag number */ + if (is_motorola) { + tag_num = tmp[0]; + tag_num <<= 8; + tag_num += tmp[1]; + } else { + tag_num = tmp[1]; + tag_num <<= 8; + tag_num += tmp[0]; + } + /* found Orientation Tag */ + if (tag_num == 0x0112) { + gl_dbgW("Found orientation tag!"); + break; + } + if (--tags_cnt == 0) { + gl_dbgW("tags_cnt == 0, no found orientation tag!"); + if (b_write) { + gl_dbgW("to add an orientation tag!"); + fclose(fd); + fd = NULL; + return __gl_exif_add_orientation_tag(file_path, orientation); + + } else{ + /* Normal orientation = 0degree = 1 */ + *orientation = 1; + ret = 0; + } + goto GL_EXIF_FAILED; + } + } + + /* |TT|ff|NNNN|DDDD| --- TT - 2 bytes, tag NO. ;ff - 2 bytes, data format + NNNN - 4 bytes, entry count; DDDD - 4 bytes Data value */ + if (b_write) { + gl_dbg("Write: %d", *orientation); + /* Set the Orientation value */ + if (is_motorola) + tmp[9] = (unsigned char)(*orientation); + else + tmp[8] = (unsigned char)(*orientation); + + /* Move pointer back to the entry start point */ + if (fseek(fd, -12, SEEK_CUR) < 0) { + gl_dbgE("fseek failed!"); + goto GL_EXIF_FAILED; + } + fwrite(tmp, 1, 10, fd); + } else { + /* Get the Orientation value */ + if (is_motorola) { + if (tmp[8] != 0) { + gl_dbgE("tmp[8] != 0"); + goto GL_EXIF_FAILED; + } + *orientation = (unsigned int)tmp[9]; + } else { + if (tmp[9] != 0) { + gl_dbgE("tmp[9] != 0"); + goto GL_EXIF_FAILED; + } + *orientation = (unsigned int)tmp[8]; + } + if (*orientation > 8) { + gl_dbgE("*orient > 8"); + goto GL_EXIF_FAILED; + } + gl_dbg("Read: %d", *orientation); + } + + ret = 0; + + GL_EXIF_FAILED: + + fclose(fd); + gl_dbg("All done"); + return ret; +} +bool _gl_exif_check_img_type(char *file_path) +{ + GL_CHECK_VAL(file_path, -1); + int tmp_exif = -1; + unsigned int i = 0; + unsigned char exif_data[4] = { 0, }; + FILE *fd = NULL; + bool ret = false; + + if ((fd = fopen(file_path, "rb")) == NULL) { + gl_sdbgE("Can't open %s!", file_path); + return -1; + } + + + /* Read File head, check for JPEG SOI + Exif APP1 */ + for (i = 0; i < 4; i++) { + tmp_exif = __gl_exif_read_1_byte(fd); + if (tmp_exif < 0) + goto GL_EXIF_FAILED; + + exif_data[i] = (unsigned char)tmp_exif; + } + + if (exif_data[0] == GL_EXIF_TAG && exif_data[1] == GL_EXIF_SOI) { + gl_dbg("JPEG file"); + } else { + gl_dbgE("Not a JPEG file!"); + goto GL_EXIF_FAILED; + } + + if (exif_data[2] == GL_EXIF_TAG && exif_data[3] == GL_EXIF_APP1) { + gl_dbgW("Exif in APP1!"); + ret = true; + } else if (exif_data[2] == GL_EXIF_TAG && + exif_data[3] == GL_EXIF_APP0) { + gl_dbgW("Jfif in APP0!"); + ret = true; + } else { + gl_dbgE("Not a Exif in APP1 or Jiff in APP2[%d]!", exif_data[3]); + ret = false; + } + GL_EXIF_FAILED: + + fclose(fd); + gl_dbg(""); + return ret; +} + +static int __gl_exif_rw_orient(char *file_path, unsigned int *orient, bool b_write) +{ + GL_CHECK_VAL(file_path, -1); + gl_dbg("b_write: %d", b_write); + unsigned int length = 0; + unsigned int i = 0; + bool is_motorola = false; /* Flag for byte order */ + unsigned int offset = 0; + unsigned int jfif_offset = 0; + unsigned int tags_cnt = 0; + unsigned int tag_num = 0; + int tmp_exif = -1; + unsigned char exif_data[GL_EXIF_BUF_LEN_MAX] = { 0, }; + FILE *fd = NULL; + int ret = -1; + + if (b_write) { + if ((fd = fopen(file_path, "rb+")) == NULL) { + gl_sdbgE("Can't open %s!", file_path); + return -1; + } + } else { + if ((fd = fopen(file_path, "rb")) == NULL) { + gl_sdbgE("Can't open %s!", file_path); + return -1; + } + } + + /* Read File head, check for JPEG SOI + Exif APP1 */ + for (i = 0; i < 4; i++) { + tmp_exif = __gl_exif_read_1_byte(fd); + if (tmp_exif < 0) + goto GL_EXIF_FAILED; + + exif_data[i] = (unsigned char)tmp_exif; + } + + if (exif_data[0] == GL_EXIF_TAG && exif_data[1] == GL_EXIF_SOI) { + gl_dbg("JPEG file"); + } else { + gl_dbgE("Not a JPEG file!"); + goto GL_EXIF_FAILED; + } + + if (exif_data[2] == GL_EXIF_TAG && exif_data[3] == GL_EXIF_APP1) { + gl_dbgW("Exif in APP1!"); + } else if (exif_data[2] == GL_EXIF_TAG && + exif_data[3] == GL_EXIF_APP0) { + gl_dbgW("Jfif in APP0!"); + int ret = __gl_exif_rw_jfif(fd, file_path, orient, b_write); + return ret; + } else { + gl_dbgE("Not a Exif in APP1 or Jiff in APP2[%d]!", exif_data[3]); + goto GL_EXIF_FAILED; + } + + /* Get the marker parameter length count */ + if (__gl_exif_read_2_bytes(fd, &length) < 0) + goto GL_EXIF_FAILED; + gl_dbg("length: %d", length); + /* Length includes itself, so must be at least 2 + Following Exif data length must be at least 6 */ + if (length < 8) { + gl_dbgE("length < 8"); + goto GL_EXIF_FAILED; + } + length -= 8; + + /* Length of an IFD entry */ + if (length < 12) { + gl_dbgE("length < 12"); + goto GL_EXIF_FAILED; + } + + /* Read Exif head, check for "Exif" */ + for (i = 0; i < 6; i++) { + tmp_exif = __gl_exif_read_1_byte(fd); + if (tmp_exif < 0) + goto GL_EXIF_FAILED; + + exif_data[i] = (unsigned char)tmp_exif; + } + + 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; + } + + /* Read Exif body */ + for (i = 0; i < length; i++) { + tmp_exif = __gl_exif_read_1_byte(fd); + if (tmp_exif < 0) + goto GL_EXIF_FAILED; + exif_data[i] = (unsigned char)tmp_exif; + } + + /* Check byte order and Tag Mark , "II(0x4949)" or "MM(0x4d4d)" */ + if (exif_data[0] == 0x49 && exif_data[1] == 0x49 && + exif_data[2] == 0x2A && exif_data[3] == 0x00) { + gl_dbg("Intel"); + is_motorola = false; + } else if (exif_data[0] == 0x4D && exif_data[1] == 0x4D && + exif_data[2] == 0x00 && exif_data[3] == 0x2A) { + gl_dbg("Motorola"); + is_motorola = true; + } else { + goto GL_EXIF_FAILED; + } + + /* Get first IFD offset (offset to IFD0) , MM-00000008, II-08000000 */ + if (is_motorola) { + if (exif_data[4] != 0 && exif_data[5] != 0) + goto GL_EXIF_FAILED; + offset = exif_data[6]; + offset <<= 8; + offset += exif_data[7]; + } else { + if (exif_data[7] != 0 && exif_data[6] != 0) + goto GL_EXIF_FAILED; + offset = exif_data[5]; + offset <<= 8; + offset += exif_data[4]; + } + /* check end of data segment */ + if (offset > length - 2) { + gl_dbgE("offset > length - 2"); + goto GL_EXIF_FAILED; + } + + /* IFD: Image File Directory */ + /* Get the number of directory entries contained in this IFD, - EEEE */ + if (is_motorola) { + tags_cnt = exif_data[offset]; + tags_cnt <<= 8; + tags_cnt += exif_data[offset+1]; + } else { + tags_cnt = exif_data[offset+1]; + tags_cnt <<= 8; + tags_cnt += exif_data[offset]; + } + if (tags_cnt == 0) { + gl_dbgE("tags_cnt == 0 - 2"); + goto GL_EXIF_FAILED; + } + offset += 2; + + /* check end of data segment */ + if (offset > length - 12) { + gl_dbgE("offset > length - 12"); + goto GL_EXIF_FAILED; + } + + /* Search for Orientation Tag in IFD0 */ + while (1) { + /* Get Tag number */ + if (is_motorola) { + tag_num = exif_data[offset]; + tag_num <<= 8; + tag_num += exif_data[offset+1]; + } else { + tag_num = exif_data[offset+1]; + tag_num <<= 8; + tag_num += exif_data[offset]; + } + /* found Orientation Tag */ + if (tag_num == 0x0112) { + gl_dbgW("Found orientation tag!"); + break; + } + if (--tags_cnt == 0) { + gl_dbgW("tags_cnt == 0, no found orientation tag!"); + if (b_write) { + gl_dbgW("to add an orientation tag!"); + fclose(fd); + fd = NULL; + return __gl_exif_add_orientation_tag(file_path, orient); + + } else{ + /* Normal orientation = 0degree = 1 */ + *orient = 1; + ret = 0; + } + goto GL_EXIF_FAILED; + } + + /* Every directory entry size is 12 */ + offset += 12; + } + + if (b_write) { + gl_dbg("Write: %d", *orient); + /* Set the Orientation value */ + if (is_motorola) + exif_data[offset+9] = (unsigned char)(*orient); + else + exif_data[offset+8] = (unsigned char)(*orient); + + if (fseek(fd, jfif_offset + (4 + 2 + 6 + 2) + offset, SEEK_SET) < 0) { + gl_dbgE("fseek failed!"); + goto GL_EXIF_FAILED; + } + fwrite(exif_data + 2 + offset, 1, 10, fd); + } else { + /* Get the Orientation value */ + if (is_motorola) { + if (exif_data[offset+8] != 0) { + gl_dbgE("exif_data[offset+8] != 0"); + goto GL_EXIF_FAILED; + } + *orient = (unsigned int)exif_data[offset+9]; + } else { + if (exif_data[offset+9] != 0) { + gl_dbgE("exif_data[offset+9] != 0"); + goto GL_EXIF_FAILED; + } + *orient = (unsigned int)exif_data[offset+8]; + } + if (*orient > 8) { + gl_dbgE("*orient > 8"); + goto GL_EXIF_FAILED; + } + gl_dbg("Read: %d", *orient); + } + + ret = 0; + + GL_EXIF_FAILED: + + fclose(fd); + gl_dbg("All done"); + return ret; +} + +int _gl_exif_get_orientation(char *file_path, unsigned int *orientation) +{ + GL_CHECK_VAL(orientation, -1); + GL_CHECK_VAL(file_path, -1); + gl_sdbg("file_path: %s", file_path); + + return __gl_exif_rw_orient(file_path, orientation, false); +} + +int _gl_exif_set_orientation(char *file_path, unsigned int orientation) +{ + GL_CHECK_VAL(file_path, -1); + gl_sdbg("file_path: %s", file_path); + + return __gl_exif_rw_orient(file_path, &orientation, true); +} + +int _gl_exif_get_rotated_orientation(unsigned int orientation, bool b_left) +{ + int rotated_orientataion; + gl_dbg("b_left: %d", b_left); + + switch (orientation) { + case GL_ORIENTATION_ROT_0: + /* true: 0 -> 270, false: 0 -> 90 */ + if (b_left) + rotated_orientataion = GL_ORIENTATION_ROT_270; + else + rotated_orientataion = GL_ORIENTATION_ROT_90; + break; + case GL_ORIENTATION_ROT_90: + /* true: 90 -> 0, false: 90 -> 180 */ + if (b_left) + rotated_orientataion = GL_ORIENTATION_ROT_0; + else + rotated_orientataion = GL_ORIENTATION_ROT_180; + break; + case GL_ORIENTATION_ROT_180: + /* true: 180 -> 90, false: 180 -> 270 */ + if (b_left) + rotated_orientataion = GL_ORIENTATION_ROT_90; + else + rotated_orientataion = GL_ORIENTATION_ROT_270; + break; + case GL_ORIENTATION_ROT_270: + /* true: 270 -> 180, false: 270 -> 0 */ + if (b_left) + rotated_orientataion = GL_ORIENTATION_ROT_180; + else + rotated_orientataion = GL_ORIENTATION_ROT_0; + break; + default: + gl_dbgE("Wrong oriectation: %d!", orientation); + /* true: 0 -> 270, false: 0 -> 90 */ + if (b_left) + rotated_orientataion = GL_ORIENTATION_ROT_270; + else + rotated_orientataion = GL_ORIENTATION_ROT_90; + break; + } + + gl_dbg("New orientation: %d", rotated_orientataion); + return rotated_orientataion; +} + +#endif + diff --git a/src/util/gl-ext-exec.c b/src/util/gl-ext-exec.c new file mode 100644 index 0000000..6587198 --- /dev/null +++ b/src/util/gl-ext-exec.c @@ -0,0 +1,706 @@ +/* +* 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 "gl-ext-exec.h" +#include "gl-debug.h" +#include "gallery.h" +#include "gl-data.h" +#include "gl-util.h" +#include "gl-popup.h" +#include "gl-controlbar.h" +#include "gl-albums.h" +#include "gl-thumbs.h" +#include "gl-strings.h" +#include "gl-notify.h" + +#define GL_APP_PKG_VIDEOPLAYER "org.tizen.videos-lite" +#define GL_APP_PKG_CAMERA_EFL "org.tizen.camera-app-lite" +#define GL_APP_PKG_IE "com.samsung.image-editor" +#define GL_SEPERATOR_IE '|' +#define GL_ARGV_VIDEO_LIST_TYPE "video_list_type" +#define GL_ARGV_VIDEO_ALL_FOLDER_VIDEO "all_folder_video" +#define GL_ARGV_VIDEO_FOLDER "folder" + +#define GL_ARGV_VIDEO_ORDER_TYPE "order_type" +#define GL_ARGV_VIDEO_ORDER_DATE_DESC "date_desc" +#define GL_ARGV_VIDEO_START_POS "start_pos_time" + +#define GL_ARGV_VIDEO_LAUNCH_APP "launching_application" +#define GL_ARGV_VIDEO_LAUNCH_GALLERY "gallery" + +#define GL_ARGV_PATH "path" + +#define GL_SHARE_FILE_PREFIX "file://" +#define GL_SHARE_OPERATION_SINGLE "http://tizen.org/appcontrol/operation/share" +#define GL_SHARE_OPERATION_MULTIPLE "http://tizen.org/appcontrol/operation/multi_share" +#define GL_SHARE_SVC_FILE_PATH "http://tizen.org/appcontrol/data/path" + +//refer to imageviewer +static int __gl_ext_launch_video_player(void *data, app_control_h service) +{ + GL_CHECK_VAL(service, -1); + GL_CHECK_VAL(data, -1); + gl_item *gitem = (gl_item *)data; + GL_CHECK_VAL(gitem->ad, -1); + gl_appdata *ad = (gl_appdata *)gitem->ad; + GL_CHECK_VAL(gitem->item, -1); + GL_CHECK_VAL(gitem->item->uuid, -1); + GL_CHECK_VAL(gitem->item->file_url, -1); + + int last_pos = 0; + char last_pos_str[GL_INTERGER_LEN_MAX] = { 0, }; + + GL_CHECK_VAL(gitem->item->video_info, -1); + last_pos = gitem->item->video_info->last_played_pos; + eina_convert_itoa(last_pos, last_pos_str); + gl_dbg("last_pos : %d", last_pos); + + const char *video_path = gitem->item->file_url; + /* Albums view */ + gl_cluster *cur_cluster = _gl_albums_get_current(ad); + if (cur_cluster && cur_cluster->cluster) { + gl_sdbg("Album: %s", cur_cluster->cluster->display_name); + if (cur_cluster->cluster->type == GL_STORE_T_ALL) { + gl_dbg("All album"); + app_control_add_extra_data(service, + GL_ARGV_VIDEO_LIST_TYPE, + GL_ARGV_VIDEO_ALL_FOLDER_VIDEO); + app_control_add_extra_data(service, + GL_ARGV_VIDEO_ORDER_TYPE, + GL_ARGV_VIDEO_ORDER_DATE_DESC); + app_control_add_extra_data(service, + GL_ARGV_VIDEO_LAUNCH_APP, + GL_ARGV_VIDEO_LAUNCH_GALLERY); + app_control_add_extra_data(service, + GL_ARGV_VIDEO_START_POS, + last_pos_str); + } else if (cur_cluster->cluster->type == GL_STORE_T_PHONE || + cur_cluster->cluster->type == GL_STORE_T_MMC) { + gl_dbg("Real album"); + app_control_add_extra_data(service, + GL_ARGV_VIDEO_LIST_TYPE, + GL_ARGV_VIDEO_FOLDER); + app_control_add_extra_data(service, + GL_ARGV_VIDEO_ORDER_TYPE, + GL_ARGV_VIDEO_ORDER_DATE_DESC); + app_control_add_extra_data(service, + GL_ARGV_VIDEO_LAUNCH_APP, + GL_ARGV_VIDEO_LAUNCH_GALLERY); + app_control_add_extra_data(service, + GL_ARGV_VIDEO_START_POS, + last_pos_str); + } else { + gl_dbg("Web album? Under construction..."); + } + } else { + /* Fixme: return or not? */ + gl_dbgE("Invalid current album, return?"); + } + + int ret = 0; + + // aul_open_file(video_path); + app_control_add_extra_data(service, GL_ARGV_PATH, video_path); + app_control_set_operation(service, APP_CONTROL_OPERATION_DEFAULT); + if (APP_CONTROL_ERROR_NONE != app_control_set_app_id(service, GL_APP_PKG_VIDEOPLAYER)) { + gl_dbgE("app_control_set_app_id failed"); + } + ret = app_control_send_launch_request(service, NULL, NULL); + + if (ret == APP_CONTROL_ERROR_NONE) + return 0; + else + return -1; +} + +static int __gl_ext_compose_exec_cmd(void *data, gl_ext_app_type type, + char *path, char **pkg_name, + app_control_h service) +{ + GL_CHECK_VAL(data, -1); + gl_sdbg("type:%d, path:%s", type, path); + + switch (type) { + case GL_APP_VIDEOPLAYER: + GL_CHECK_VAL(path, -1); + *pkg_name = GL_APP_PKG_VIDEOPLAYER; + break; + default: + *pkg_name = NULL; + } + + return 0; +} + +#ifdef GL_EXTENDED_FEATURES +static void __gl_ext_app_control_reply_cb(app_control_h request, app_control_h reply, + app_control_result_e result, void *user_data) +{ + gl_dbg(""); + switch (result) { + case APP_CONTROL_RESULT_SUCCEEDED: + gl_dbg("APP_CONTROL_RESULT_SUCCEEDED"); + break; + case APP_CONTROL_RESULT_FAILED: + gl_dbg("APP_CONTROL_RESULT_FAILED"); + break; + case APP_CONTROL_RESULT_CANCELED: + gl_dbg("APP_CONTROL_RESULT_CANCELED"); + break; + default: + gl_dbgE("Unhandled value: %d!", result); + break; + } +} +#endif + +int gl_ext_exec(void *data, gl_ext_app_type type) +{ + GL_CHECK_VAL(data, -1); + gl_item *gitem = (gl_item *)data; + GL_CHECK_VAL(gitem->ad, -1); + gl_appdata *ad = (gl_appdata *)gitem->ad; + GL_CHECK_VAL(gitem->item, -1); + GL_CHECK_VAL(gitem->item->file_url, -1); + char *path = gitem->item->file_url; + app_control_h service = NULL; + char *pkg_name = NULL; + + if (ad->uginfo.b_app_called) { + gl_dbgE("APP launched, return!"); + return GL_LAUNCH_FAIL; + } + + app_control_create(&service); + GL_CHECK_VAL(service, GL_LAUNCH_FAIL); + + __gl_ext_compose_exec_cmd(ad, type, path, &pkg_name, service); + if (pkg_name == NULL) { + app_control_destroy(service); + return GL_LAUNCH_FAIL; + } + + int ret = 0; + if (type == GL_APP_VIDEOPLAYER) { + if (path == NULL) { + app_control_destroy(service); + return GL_LAUNCH_FAIL; + } + if (__gl_ext_launch_video_player(data, service) != 0) { + app_control_destroy(service); + return GL_LAUNCH_FAIL; + } + } else { + app_control_set_operation(service, APP_CONTROL_OPERATION_DEFAULT); + app_control_set_app_id(service, pkg_name); + ret = app_control_send_launch_request(service, NULL, NULL); + if (ret != APP_CONTROL_ERROR_NONE) { + app_control_destroy(service); + gl_dbgE("app_control_send_launch_request failed[%d]!", ret); + return GL_LAUNCH_FAIL; + } + } + + ret = app_control_destroy(service); + if (ret != APP_CONTROL_ERROR_NONE) { + ad->uginfo.b_app_called = true; + return GL_LAUNCH_SUCCESS; + } else { + return GL_LAUNCH_FAIL; + } +} + +#ifdef GL_EXTENDED_FEATURES +static void __gl_ext_popup_resp_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(obj); + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + GL_IF_DEL_OBJ(ad->popupinfo.popup); +} + +static Eina_Bool __gl_ext_avoid_multi_click_timer_cb(void *data) +{ + GL_CHECK_FALSE(data); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg(""); + GL_IF_DEL_TIMER(ad->ctrlinfo.avoid_multi_tap); + return ECORE_CALLBACK_CANCEL; +} + +/** + * Launching Camera application + */ +int _gl_ext_load_camera(void *data) +{ + gl_dbg(""); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + if (ad->ctrlinfo.avoid_multi_tap) + return 0; + Ecore_Timer *timer = NULL; + timer = ecore_timer_add(2.0, __gl_ext_avoid_multi_click_timer_cb, data); + ad->ctrlinfo.avoid_multi_tap = timer; + + int ret = -1; + int destroy_ret = -1; + app_control_h handle; + + ret = app_control_create(&handle); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("app_control_create failed[%d]!", ret); + return GL_LAUNCH_FAIL; + } + + ret = app_control_set_operation(handle, APP_CONTROL_OPERATION_DEFAULT); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("app_control_set_operation [%s] failed[%d]!", APP_CONTROL_OPERATION_DEFAULT, ret); + goto GL_EXT_LOAD_CAMERA_FINISHED; + } + + ret = app_control_set_app_id(handle, GL_APP_PKG_CAMERA_EFL); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("app_control_set_app_id [%s] failed[%d]!", GL_APP_PKG_CAMERA_EFL, ret); + goto GL_EXT_LOAD_CAMERA_FINISHED; + } + + ret = app_control_add_extra_data(handle, "CALLER", "gallery"); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("app_control_add_extra_data failed[%d]!", ret); + goto GL_EXT_LOAD_CAMERA_FINISHED; + } + + ret = app_control_send_launch_request(handle, __gl_ext_app_control_reply_cb, NULL); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("app_control_send_launch_request failed[%d]!", ret); + goto GL_EXT_LOAD_CAMERA_FINISHED; + } + +GL_EXT_LOAD_CAMERA_FINISHED: + destroy_ret = app_control_destroy(handle); + if (destroy_ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("app_control_destroy failed[%d]!", destroy_ret); + return GL_LAUNCH_FAIL; + } + + return (ret == APP_CONTROL_ERROR_NONE ? GL_LAUNCH_SUCCESS : GL_LAUNCH_FAIL); + +} + +/** + * Launching image-editor application + */ +int _gl_ext_load_ie(void *data, void *get_path_cb) +{ + GL_CHECK_VAL(get_path_cb, -1); + GL_CHECK_VAL(data, -1); + char *filepath_arg = NULL; + + int (*_get_path_cb) (void *data, gchar sep_c, char **path_str, int *sel_cnt); + _get_path_cb = get_path_cb; + + _get_path_cb(data, GL_SEPERATOR_IE, &filepath_arg, NULL); + if (filepath_arg == NULL) { + gl_dbgE("Failed to get path string!"); + return GL_LAUNCH_FAIL; + } + + gl_dbg("Launch Image-editor"); + int ret = GL_LAUNCH_FAIL; + ret = _gl_ext_load(filepath_arg, APP_CONTROL_OPERATION_EDIT, GL_APP_PKG_IE, + NULL, NULL); + if (filepath_arg) { + g_free(filepath_arg); + filepath_arg = NULL; + } + + return ret; +} + +int _gl_ext_load(const char *uri, const char *operation, const char *pkg, + const char *pkg_id, const char *mime) +{ + gl_dbg("operation: %s, pkg: %s, uri: %s", operation, pkg, uri); + int ret = -1; + int destroy_ret = -1; + app_control_h handle; + + ret = app_control_create(&handle); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("app_control_create failed[%d]!", ret); + return GL_LAUNCH_FAIL; + } + + ret = app_control_set_operation(handle, operation); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("app_control_set_operation [%s] failed[%d]!", operation, + ret); + goto GL_EXT_FAILED; + } + + if (mime) { + ret = app_control_set_mime(handle, mime); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("app_control_set_mime [%s] failed[%d]!", mime, ret); + goto GL_EXT_FAILED; + } + } + + if (uri) { + ret = app_control_set_uri(handle, uri); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("app_control_set_uri [%s] failed[%d]!", uri, ret); + goto GL_EXT_FAILED; + } + } + + if (pkg) { + ret = app_control_set_app_id(handle, pkg); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("app_control_set_app_id [%s] failed[%d]!", pkg, + ret); + goto GL_EXT_FAILED; + } + } + + if (pkg_id) { + ret = app_control_set_app_id(handle, pkg_id); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("app_control_set_app_id [%s] failed[%d]!", pkg_id, + ret); + goto GL_EXT_FAILED; + } + } + + ret = app_control_send_launch_request(handle, __gl_ext_app_control_reply_cb, + NULL); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("app_control_send_launch_request failed[%d]!", ret); + goto GL_EXT_FAILED; + } + + GL_EXT_FAILED: + destroy_ret = app_control_destroy(handle); + if (destroy_ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("app_control_destroy failed[%d]!", destroy_ret); + return GL_LAUNCH_FAIL; + } + + return (ret == APP_CONTROL_ERROR_NONE ? GL_LAUNCH_SUCCESS : GL_LAUNCH_FAIL); +} + +int _gl_ext_launch_share(void *data, int total_cnt, void *get_path_cb) +{ +#define GL_SHARE_CNT_MAX 500 + + GL_CHECK_VAL(get_path_cb, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + if (total_cnt == 0) { + gl_dbgE("nothing selected!"); + return -1; + } else if (total_cnt > GL_SHARE_CNT_MAX) { + char *share_limit_noti = g_strdup_printf(GL_STR_ID_SHARE_LIMIT, GL_SHARE_CNT_MAX); + _gl_notify_create_notiinfo(share_limit_noti); + GL_FREEIF(share_limit_noti); + return -1; + } + + char **files = NULL; + char *operation = NULL; + int ret = -1; + files = (char **)calloc(1, sizeof(char *) * total_cnt); + GL_CHECK_VAL(files, -1); + + int (*_get_path_cb) (void *data, char **files); + _get_path_cb = get_path_cb; + int real_cnt = _get_path_cb(data, files); + app_control_h service = NULL; + if (real_cnt == 0) { + gl_dbgE("nothing selected!"); + goto SHARE_PANEL_END; + } + + ret = app_control_create(&service); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("Failed to create service[%d]", ret); + goto SHARE_PANEL_END; + } + char prefix_file[GL_ARRAY_LEN_MAX] = {0,}; + snprintf(prefix_file, GL_ARRAY_LEN_MAX, "%s%s", GL_SHARE_FILE_PREFIX, + files[0]); + ret = app_control_set_uri(service, prefix_file); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("app_control_set_uri failed[%d]", ret); + goto SHARE_PANEL_END; + } + if (real_cnt == 1) + operation = GL_SHARE_OPERATION_SINGLE; + else + operation = GL_SHARE_OPERATION_MULTIPLE; + ret = app_control_set_operation(service, operation); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("app_control_set_operation failed[%d]", ret); + goto SHARE_PANEL_END; + } + if (real_cnt > 1) { + ret = app_control_add_extra_data_array(service, GL_SHARE_SVC_FILE_PATH, + (const char **)files, + real_cnt); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("app_control_add_extra_data_array failed[%d]", ret); + goto SHARE_PANEL_END; + } + } + /* set caller window for share panel */ + ret = app_control_set_window(service, elm_win_xwindow_get(ad->maininfo.win)); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("app_control_set_window failed[%d]", ret); + goto SHARE_PANEL_END; + } + ret = app_control_send_launch_request(service, NULL, NULL); + if (ret != APP_CONTROL_ERROR_NONE) + gl_dbgE("app_control_send_launch_request failed[%d]!", ret); + + SHARE_PANEL_END: + + if (service) + app_control_destroy(service); + if (files) { + for (; real_cnt > 0; --real_cnt) + GL_FREEIF(files[real_cnt - 1]); + GL_FREE(files); + } + if (ret != APP_CONTROL_ERROR_NONE) { + _gl_popup_create(data, NULL, GL_STR_ID_OPERATION_FAILED, + GL_STR_ID_CLOSE, __gl_ext_popup_resp_cb, data, + NULL, NULL, NULL, NULL, NULL, NULL); + return -1; + } + return 0; +} + +int _gl_ext_is_larger_than_share_max(int total_cnt) +{ +#define GL_SHARE_CNT_MAX 500 + + if (total_cnt > GL_SHARE_CNT_MAX) { + char limit_str[256] = {0}; + snprintf(limit_str, sizeof(limit_str), GL_STR_ID_SHARE_LIMIT, + GL_SHARE_CNT_MAX); + _gl_notify_create_notiinfo(limit_str); + return true; + } + return false; +} + +int _gl_ext_launch_share_with_files(void *data, int total_cnt, char **files) +{ + GL_CHECK_VAL(files, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + char *operation = NULL; + int ret = -1; + app_control_h service = NULL; + + if (total_cnt == 0) { + gl_dbgE("nothing selected!"); + goto SHARE_PANEL_END; + } + + ret = app_control_create(&service); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("Failed to create service[%d]", ret); + goto SHARE_PANEL_END; + } + char prefix_file[GL_ARRAY_LEN_MAX] = {0,}; + snprintf(prefix_file, GL_ARRAY_LEN_MAX, "%s%s", GL_SHARE_FILE_PREFIX, + files[0]); + ret = app_control_set_uri(service, prefix_file); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("app_control_set_uri failed[%d]", ret); + goto SHARE_PANEL_END; + } + if (total_cnt == 1) + operation = GL_SHARE_OPERATION_SINGLE; + else + operation = GL_SHARE_OPERATION_MULTIPLE; + ret = app_control_set_operation(service, operation); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("app_control_set_operation failed[%d]", ret); + goto SHARE_PANEL_END; + } + if (total_cnt > 1) { + ret = app_control_add_extra_data_array(service, GL_SHARE_SVC_FILE_PATH, + (const char **)files, + total_cnt); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("app_control_add_extra_data_array failed[%d]", ret); + goto SHARE_PANEL_END; + } + } + /* set caller window for share panel */ + ret = app_control_set_window(service, elm_win_xwindow_get(ad->maininfo.win)); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("app_control_set_window failed[%d]", ret); + goto SHARE_PANEL_END; + } + ret = app_control_send_launch_request(service, NULL, NULL); + if (ret != APP_CONTROL_ERROR_NONE) + gl_dbgE("app_control_send_launch_request failed[%d]!", ret); + + SHARE_PANEL_END: + + if (service) + app_control_destroy(service); + if (ret != APP_CONTROL_ERROR_NONE) { + _gl_popup_create(data, NULL, GL_STR_ID_OPERATION_FAILED, + GL_STR_ID_CLOSE, __gl_ext_popup_resp_cb, data, + NULL, NULL, NULL, NULL, NULL, NULL); + return -1; + } + return 0; +} + +int _gl_ext_launch_image_editor(const char *path_string) +{ + GL_CHECK_VAL(path_string, -1); + + gl_dbg("Launch Image-editor"); + int ret = GL_LAUNCH_FAIL; + ret = _gl_ext_load(path_string, APP_CONTROL_OPERATION_EDIT, GL_APP_PKG_IE, + NULL, NULL); + return ret; +} + +#ifndef _USE_APP_SLIDESHOW +int _gl_ext_launch_gallery_ug(void *data) +{ +#define GL_GALLERY_UG "gallery-efl-lite" +#define GL_FILE_TYPE "file-type" +#define GL_VIEW_BY "view-by" +#define GL_EXT_STR_BUNDLE_LEN 48 + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + int ret = -1; + app_control_h service = NULL; + + ret = app_control_create(&service); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("app_control_create failed: 0x%x", ret); + return false; + } + /* set caller window */ + ret = app_control_set_window(service, elm_win_xwindow_get(ad->maininfo.win)); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("set_window failed[%d]", ret); + goto GL_EXT_FAILED; + } + ret = app_control_set_app_id(service, GL_GALLERY_UG); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("set_app_id Failed: 0x%x", ret); + goto GL_EXT_FAILED; + } + ret = app_control_add_extra_data(service, "launch-type", + "select-slideshow"); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("Add launched type failed: 0x%x", ret); + goto GL_EXT_FAILED; + } + ret = app_control_add_extra_data(service, "indicator-state", "hide"); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("Add indicator state failed: 0x%x", ret); + goto GL_EXT_FAILED; + } + + int view_mode = gl_get_view_mode(ad); + gl_dbg("view_mode: %d", view_mode); + ret = app_control_add_extra_data(service, GL_FILE_TYPE, "all"); + gl_dbg("Media type: All"); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("Add media type failed: 0x%x", ret); + goto GL_EXT_FAILED; + } + + int tab_mode = _gl_ctrl_get_tab_mode(ad); + gl_dbg("tab_mode: %d", tab_mode); + switch (tab_mode) { + case GL_CTRL_TAB_ALBUMS: + { + char *album_id = NULL; + gl_cluster *cur_album = _gl_albums_get_current(data); + if (cur_album && cur_album->cluster && + cur_album->cluster->uuid) { + album_id = g_strdup(cur_album->cluster->uuid); + } + if (album_id) { + ret = app_control_add_extra_data(service, GL_VIEW_BY, + "albums1"); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("Add view by failed: 0x%x", ret); + goto GL_EXT_FAILED; + } + ret = app_control_add_extra_data(service, "album-id", + album_id); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("Add album id failed: 0x%x", ret); + goto GL_EXT_FAILED; + } + GL_GFREE(album_id); + } else { + gl_dbg("Albums2"); + ret = app_control_add_extra_data(service, GL_VIEW_BY, + "all"); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("Add view by failed: 0x%x", ret); + goto GL_EXT_FAILED; + } + } + break; + } + case GL_CTRL_TAB_TIMELINE: + ret = app_control_add_extra_data(service, GL_VIEW_BY, "all"); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("Add view by failed: 0x%x", ret); + goto GL_EXT_FAILED; + } + break; + default: + gl_dbgE("Wrong tab mode!"); + goto GL_EXT_FAILED; + } + + ret = app_control_send_launch_request(service, __gl_ext_app_control_reply_cb, + NULL); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("app_control_send_launch_request Failed: 0x%x", ret); + goto GL_EXT_FAILED; + } + + app_control_destroy(service); + return 0; + + GL_EXT_FAILED: + + app_control_destroy(service); + return -1; +} +#endif +#endif + diff --git a/src/util/gl-ext-ug-load.c b/src/util/gl-ext-ug-load.c new file mode 100755 index 0000000..d60274d --- /dev/null +++ b/src/util/gl-ext-ug-load.c @@ -0,0 +1,925 @@ +/* +* 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 "gl-ext-ug-load.h" +#include "gl-ext-exec.h" +#include "gl-debug.h" +#include "gl-ui-util.h" +#include "gl-util.h" +#include "gl-albums.h" +#include "gl-thumbs.h" +#include "gl-thumbs-edit.h" +#include "gallery.h" +#include "gl-popup.h" +#include "gl-strings.h" +#include "gl-controlbar.h" +#include "gl-db-update.h" +#include "gl-notify.h" +#include "gl-timeline.h" + +#define GL_EXT_STR_BUNDLE_LEN 48 + +#define GL_UG_PKG_IV "image-viewer-efl" +#define GL_UG_PKG_GALLERY_SETTING "setting-gallery-efl" + +#define GL_ARGV_IV_VIEW_MODE "View Mode" +#define GL_ARGV_IV_VIEW_GALLERY "GALLERY" +#define GL_ARGV_IV_VIEW_SLIDESHOW "SLIDESHOW" +#define GL_ARGV_IV_PATH "Path" +#define GL_ARGV_IV_INDEX "Index" +#define GL_ARGV_IV_VIEW_BY "View By" +#define GL_ARGV_IV_VIEW_BY_FOLER "By Folder" +#define GL_ARGV_IV_VIEW_BY_ALL "All" +#define GL_ARGV_IV_MEDIA_TYPE "Media type" +#define GL_ARGV_IV_MEDIA_ALL "All" +#define GL_ARGV_IV_MEDIA_IMAGE "Image" +#define GL_ARGV_IV_MEDIA_VIDEO "Video" +#define GL_ARGV_IV_ALBUM_INDEX "Album index" +#define GL_ARGV_IV_SORT_BY "Sort By" +#define GL_ARGV_IV_SORT_NAME "Name" +#define GL_ARGV_IV_SORT_NAMEDESC "NameDesc" +#define GL_ARGV_IV_SORT_DATE "Date" +#define GL_ARGV_IV_SORT_DATEDESC "DateDesc" +#define GL_ARGV_IV_FOOTSTEPS "Footsteps" +#define GL_ARGV_IV_TRUE "TRUE" +#define GL_ARGV_IV_VIEW_BY_FAVORITES "Favorites" + +#define GL_ARGC_SELECTED_FILES "Selected index" +#define GL_ARGV_IV_INDEX_VALUE "1" + +static void __gl_appcontrol_select_result_cb(app_control_h request, app_control_h reply, app_control_result_e result, void *user_data) +{ + GL_CHECK(user_data); + gl_appdata *ad = (gl_appdata *)user_data; + int i; + bool in_list = false; + char **select_result = NULL; + int count = 0; + Eina_List *l = NULL; + gl_item *data = NULL; + int sel_count = 0; + int view_mode = gl_get_view_mode(ad); + gl_item *gitem = NULL; + + gitem = eina_list_nth (ad->gridinfo.medias_elist,0); + if(gitem && strcmp(gitem->album->cluster->uuid,GL_ALBUM_FAVOURITE_ID) == 0) { + app_control_get_extra_data_array(reply, "Selected index fav", &select_result, &count); + } else { + app_control_get_extra_data_array(reply, "Selected index", &select_result, &count); + } + + int tab_mode = _gl_ctrl_get_tab_mode(ad); + if (tab_mode == GL_CTRL_TAB_TIMELINE) { + _gl_update_timeview_iv_select_mode_reply(ad, select_result, count); + return; + } + + if (select_result) { + if(gitem && strcmp(gitem->album->cluster->uuid,GL_ALBUM_FAVOURITE_ID) == 0) { + EINA_LIST_FOREACH(ad->gridinfo.medias_elist, l, data) { + if (!data || !data->item) { + continue; + } + in_list = false; + for (i = 0; i < count; i++) { + if (!strcmp(select_result[i], data->item->file_url)) { + if (!data->checked) { + Eina_List *sel_list1 = ad->selinfo.fav_elist; + sel_list1 = eina_list_append(sel_list1, data); + ad->selinfo.fav_elist = sel_list1; + data->album->elist = eina_list_append(data->album->elist, data); + data->checked = true; + } + in_list = true; + sel_count++; + break; + } + } + if (!in_list) { + if (data->checked) { + _gl_data_selected_fav_list_remove(ad, data); + data->album->elist = eina_list_remove(data->album->elist, data); + data->checked = false; + } + } + } + }else { + EINA_LIST_FOREACH(ad->gridinfo.medias_elist, l, data) { + if (!data || !data->item) { + continue; + } + in_list = false; + for (i = 0; i < count; i++) { + if (!strcmp(select_result[i], data->item->file_url)) { + if (!data->checked) { + _gl_data_selected_list_append(ad, data); + data->album->elist = eina_list_append(data->album->elist, data); + data->checked = true; + } + in_list = true; + sel_count++; + break; + } + } + if (!in_list) { + if (data->checked) { + _gl_data_selected_list_remove(ad, data); + data->album->elist = eina_list_remove(data->album->elist, data); + data->checked = false; + } + } + } + } + } else { + if(gitem && strcmp(gitem->album->cluster->uuid,GL_ALBUM_FAVOURITE_ID) == 0) { + EINA_LIST_FOREACH(ad->gridinfo.medias_elist, l, data) { + if (!data || !data->item) { + continue; + } + if (data->checked) { + _gl_data_selected_fav_list_remove(ad, data); + data->album->elist = eina_list_remove(data->album->elist, data); + data->checked = false; + } + } + } else { + EINA_LIST_FOREACH(ad->gridinfo.medias_elist, l, data) { + if (!data || !data->item) { + continue; + } + if (data->checked) { + _gl_data_selected_list_remove(ad, data); + data->album->elist = eina_list_remove(data->album->elist, data); + data->checked = false; + } + } + } + } + + data = eina_list_nth(ad->gridinfo.medias_elist, 0); + if (data && data->album && data->album->item) { + char buf[GL_ALBUM_NAME_LEN_MAX] = { 0, }; + if (sel_count > 0) { + elm_object_item_signal_emit(data->album->item, + "elm,state,elm.text.badge,visible", + "elm"); + } else { + elm_object_item_signal_emit(data->album->item, + "elm,state,elm.text.badge,hidden", + "elm"); + } + elm_gengrid_item_fields_update(data->album->item, "elm.text.badge", ELM_GENGRID_ITEM_FIELD_TEXT); + } + int total_selected_count = eina_list_count(ad->selinfo.elist)+eina_list_count(ad->selinfo.fav_elist); + int item_cnt = eina_list_count(ad->gridinfo.medias_elist); + if (view_mode == GL_VIEW_THUMBS_EDIT) { + _gl_notify_check_selall(ad, ad->gridinfo.nf_it, item_cnt, sel_count); + /* Update the label text */ + _gl_thumbs_update_label_text(ad->gridinfo.nf_it, total_selected_count, false); + elm_gengrid_realized_items_update(ad->gridinfo.view); + } else if (view_mode == GL_VIEW_THUMBS_SELECT) { + _gl_notify_check_selall(ad, ad->albuminfo.nf_it_select, item_cnt, + sel_count); + /* Update the label text */ + _gl_ui_update_navi_title_text(ad->albuminfo.nf_it_select, total_selected_count, false); + elm_gengrid_realized_items_update(ad->gridinfo.select_view); + } + + for (i = 0; i < count; i++) { + if (select_result[i]) { + free (select_result[i]); + } + } + if (select_result) { + free(select_result); + } +} + + +static void __gl_appcontrol_result_cb(app_control_h request, app_control_h reply, app_control_result_e result, void *user_data) +{ + GL_CHECK(user_data); + gl_appdata *ad = (gl_appdata *)user_data; + char *delete_result = NULL; + app_control_get_extra_data(reply, "delete file", &delete_result); + if (delete_result) { + _gl_db_update_lock_once(ad, true); + gl_update_view(ad, GL_UPDATE_VIEW_INOTIFY); + _gl_db_update_lock_once(ad, false); + GL_FREE(delete_result); + } + + if (ad->uginfo.ug_type == GL_UG_GALLERY_SETTING_SLIDESHOW) { + char *start = NULL; + app_control_get_extra_data(reply, "Result", &start); + if (start) { + gl_dbg("start string:%s", start); + if (!g_strcmp0(start, "StartSlideShow")) { + ad->uginfo.b_start_slideshow = true; + } else { + ad->uginfo.b_start_slideshow = false; + } + GL_FREE(start); + } + } + void *cb = evas_object_data_get(ad->maininfo.naviframe, + GL_NAVIFRAME_UG_RESULT_KEY); + gl_sdbg("result_cb [%p]", cb); + if (cb) { + int (*result_cb) (void *data, app_control_h ret_h); + result_cb = cb; + result_cb(ad, reply); + } + + GL_CHECK(ad->uginfo.ug); + app_control_destroy(ad->uginfo.ug); + ad->uginfo.ug = NULL; + /* Clear type first */ + ad->uginfo.ug_type = -1; + ad->uginfo.iv_type = -1; + + cb = evas_object_data_get(ad->maininfo.naviframe, + GL_NAVIFRAME_UG_UPDATE_KEY); + gl_sdbg("update_cb [%p]", cb); + if (cb) { + int (*update_cb) (void *data); + update_cb = cb; + update_cb(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(ad->maininfo.layout, EINA_TRUE); + elm_object_focus_set(ad->maininfo.layout, EINA_TRUE); + + elm_win_indicator_mode_set(ad->maininfo.win, ELM_WIN_INDICATOR_SHOW); + elm_win_indicator_opacity_set(ad->maininfo.win, ELM_WIN_INDICATOR_TRANSPARENT); + _gl_ui_set_conform_overlap(ad->maininfo.naviframe); + + if (ad->uginfo.b_start_slideshow) { + ad->uginfo.b_start_slideshow = false; + ad->uginfo.ug = NULL; + /* Clear type first */ + ad->uginfo.ug_type = -1; + ad->uginfo.iv_type = -1; + void *cb = evas_object_data_get(ad->maininfo.naviframe, + GL_NAVIFRAME_SLIDESHOW_DATA_KEY); + gl_sdbg("StartSlideShow[%p]", cb); + if (cb) { + evas_object_data_set(ad->maininfo.naviframe, + GL_NAVIFRAME_SLIDESHOW_DATA_KEY, + NULL); + int (*start_slideshow) (void *data); + start_slideshow = cb; + start_slideshow(user_data); + } + } +#ifdef _USE_APP_SLIDESHOW + else if (ad->uginfo.b_selected_slideshow) { + ad->uginfo.b_selected_slideshow = false; + cb = evas_object_data_get(ad->maininfo.naviframe, + GL_NAVIFRAME_SELECTED_SLIDESHOW_KEY); + gl_sdbg("selected_slideshow [%p]", cb); + if (cb) { + evas_object_data_set(ad->maininfo.naviframe, + GL_NAVIFRAME_SELECTED_SLIDESHOW_KEY, + NULL); + int (*selected_slideshow_update) (void *data); + selected_slideshow_update = cb; + selected_slideshow_update(user_data); + } + } +#endif + evas_object_data_set(ad->maininfo.naviframe, + GL_NAVIFRAME_UG_RESULT_KEY, NULL); + evas_object_data_set(ad->maininfo.naviframe, + GL_NAVIFRAME_UG_UPDATE_KEY, NULL); +} + +#ifdef _USE_APP_SLIDESHOW +static char **__gl_ext_get_select_index(void *data, int *size) +{ + GL_CHECK_NULL(data); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_NULL(ad->selinfo.elist); + gl_item *current = NULL; + char *index = NULL; + int i = 0; + char **media_index = NULL; + int pos = 0; + int sel_cnt = _gl_data_selected_list_count(ad); + + media_index = (char **)calloc(sel_cnt, sizeof(char *)); + GL_CHECK_NULL(media_index); + gl_dbg("select media count: %d", sel_cnt); + + for (i = 0; i < sel_cnt; ++i) { + current = eina_list_nth(ad->selinfo.elist, i); + index = (char *)calloc(1, GL_INTERGER_LEN_MAX); + if (current == NULL || current->item == NULL || index == NULL) { + for (pos = 0; pos < i; ++pos) { + GL_FREEIF(media_index[pos]); + } + + GL_FREEIF(index); + GL_FREE(media_index); + return NULL; + } + gl_dbg("Sequence: %d", current->sequence); + snprintf(index, GL_INTERGER_LEN_MAX, "%d", + current->sequence - 1); + media_index[i] = index; + index = NULL; + } + + if (size) + *size = sel_cnt; + + /* Clear selected list */ + _gl_data_selected_list_finalize(ad); + return media_index; +} + +/* Slideshow selected images */ +static int __gl_ext_slideshow_selected(void *data, app_control_h service) +{ + GL_CHECK_VAL(service, GL_UG_FAIL); + GL_CHECK_VAL(data, GL_UG_FAIL); + gl_appdata *ad = (gl_appdata *)data; + char **media_index = NULL; + int media_size = 0; + + media_index = __gl_ext_get_select_index(ad, &media_size); + if (media_index == NULL) { + gl_dbgE("Invalid select index!"); + return GL_UG_FAIL; + } + gl_dbg("Set selected medias, media_index[%p], size[%d]", media_index, + media_size); + app_control_add_extra_data_array(service, GL_ARGC_SELECTED_FILES, + (const char **)media_index, media_size); + /*free space of the medias index*/ + int i = 0; + for (i = 0; i < media_size; ++i) { + GL_FREEIF(media_index[i]); + } + GL_FREE(media_index); + media_index = NULL; + + app_control_add_extra_data(service, GL_ARGV_IV_INDEX, + GL_ARGV_IV_INDEX_VALUE); + return GL_UG_SUCCESS; +} +#endif + +static int __gl_ext_add_sortby(app_control_h service, int sort) +{ + GL_CHECK_VAL(service, GL_UG_FAIL); + + switch (sort) { + case GL_SORT_BY_NAME_DESC: + /* Sort by display name descending */ + app_control_add_extra_data(service, GL_ARGV_IV_SORT_BY, + GL_ARGV_IV_SORT_NAMEDESC); + gl_dbg("Name descending"); + break; + case GL_SORT_BY_NAME_ASC: + /* Sort by display name ascending */ + app_control_add_extra_data(service, GL_ARGV_IV_SORT_BY, + GL_ARGV_IV_SORT_NAME); + gl_dbg("Name ascending"); + break; + case GL_SORT_BY_DATE_DESC: + /* Sort by modified_date descending */ + app_control_add_extra_data(service, GL_ARGV_IV_SORT_BY, + GL_ARGV_IV_SORT_DATEDESC); + gl_dbg("Date descending"); + break; + case GL_SORT_BY_DATE_ASC: + /* Sort by modified_date ascending */ + app_control_add_extra_data(service, GL_ARGV_IV_SORT_BY, + GL_ARGV_IV_SORT_DATE); + gl_dbg("Date ascending"); + break; + default: + /* No Sort, use GL_SORT_BY_NAME_ASC */ + app_control_add_extra_data(service, GL_ARGV_IV_SORT_BY, + GL_ARGV_IV_SORT_NAME); + gl_dbg("no sort, use default Name ascending"); + break; + } + return 0; +} + +static void __gl_ext_popup_resp_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(obj); + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + GL_IF_DEL_OBJ(ad->popupinfo.popup); +} + +static int __gl_ext_set_thumbs_mode(void *data, app_control_h service, int type) +{ + GL_CHECK_VAL(service, GL_UG_FAIL); + GL_CHECK_VAL(data, GL_UG_FAIL); + + /* 2.0, Local file */ + if (GL_UG_IV_SLIDESHOW == type || +#ifdef _USE_APP_SLIDESHOW + GL_UG_IV_SLIDESHOW_SELECTED == type || +#endif + GL_UG_IV_SLIDESHOW_ALL == type) + app_control_add_extra_data(service, GL_ARGV_IV_VIEW_MODE, + GL_ARGV_IV_VIEW_SLIDESHOW); + else + app_control_add_extra_data(service, GL_ARGV_IV_VIEW_MODE, + GL_ARGV_IV_VIEW_GALLERY); + + app_control_add_extra_data(service, GL_ARGV_IV_MEDIA_TYPE, + GL_ARGV_IV_MEDIA_ALL); + gl_dbg("Media type: All"); + return GL_UG_SUCCESS; +} +static int __gl_ext_albums_set_iv(void *data, app_control_h service, int type, gl_item *item) +{ + GL_CHECK_VAL(service, GL_UG_FAIL); + GL_CHECK_VAL(data, GL_UG_FAIL); + gl_cluster *cur_album = _gl_albums_get_current(data); + gl_dbg("type: %d", type); + + /* 2.0, Local file */ + if (__gl_ext_set_thumbs_mode(data, service, type) == GL_UG_FAIL) + return GL_UG_FAIL; + + if (type == GL_UG_IV_SLIDESHOW_ALL) { + app_control_add_extra_data(service, GL_ARGV_IV_ALBUM_INDEX, + GL_ALBUM_ALL_ID); + } else if (cur_album && cur_album->cluster && + cur_album->cluster->uuid) { + gl_sdbg("album id: %s", cur_album->cluster->uuid); + + if (!strcmp(GL_ALBUM_FAVOURITE_ID, cur_album->cluster->uuid)) { + app_control_add_extra_data(service, GL_ARGV_IV_VIEW_BY, GL_ARGV_IV_VIEW_BY_FAVORITES); + } else { + app_control_add_extra_data(service, GL_ARGV_IV_VIEW_BY, GL_ARGV_IV_VIEW_BY_FOLER); + } + + app_control_add_extra_data(service, GL_ARGV_IV_ALBUM_INDEX, + cur_album->cluster->uuid); + } + return GL_UG_SUCCESS; +} + +static int __gl_ext_albums_set_iv_select_mode(void *data, app_control_h service, int type) +{ + GL_CHECK_VAL(service, GL_UG_FAIL); + GL_CHECK_VAL(data, GL_UG_FAIL); + gl_appdata *ad = (gl_appdata *)data; + gl_cluster *cur_album = _gl_albums_get_current(data); + gl_dbg("type: %d", type); + + /* 2.0, Local file */ + app_control_add_extra_data(service, GL_ARGV_IV_VIEW_MODE, + "SELECT"); + + app_control_add_extra_data(service, GL_ARGV_IV_MEDIA_TYPE, + GL_ARGV_IV_MEDIA_ALL); + + int tab_mode = _gl_ctrl_get_tab_mode(ad); + switch (tab_mode) { + case GL_CTRL_TAB_ALBUMS: + if (cur_album && cur_album->cluster && + cur_album->cluster->uuid) { + if (!strcmp(GL_ALBUM_ALL_ID, cur_album->cluster->uuid)) { + app_control_add_extra_data(service, GL_ARGV_IV_VIEW_BY, GL_ARGV_IV_VIEW_BY_ALL); + } else if (!strcmp(GL_ALBUM_FAVOURITE_ID, cur_album->cluster->uuid)) { + app_control_add_extra_data(service, GL_ARGV_IV_VIEW_BY, GL_ARGV_IV_VIEW_BY_FAVORITES); + } else { + app_control_add_extra_data(service, GL_ARGV_IV_VIEW_BY, GL_ARGV_IV_VIEW_BY_FOLER); + } + + app_control_add_extra_data(service, GL_ARGV_IV_ALBUM_INDEX, + cur_album->cluster->uuid); + if (ad->gridinfo.media_display_order == ORDER_ASC) { + ad->uginfo.sort_type = GL_SORT_BY_DATE_ASC; + } else if (ad->gridinfo.media_display_order == ORDER_DESC) { + ad->uginfo.sort_type = GL_SORT_BY_DATE_DESC; + } + } + break; + case GL_CTRL_TAB_TIMELINE: + app_control_add_extra_data(service, GL_ARGV_IV_VIEW_BY, GL_ARGV_IV_VIEW_BY_ALL); + app_control_add_extra_data(service, GL_ARGV_IV_ALBUM_INDEX, GL_ALBUM_ALL_ID); + break; + default: + gl_dbgE("Wrong tab mode!"); + } + return GL_UG_SUCCESS; +} + +static int _gl_ext_load_iv_selected_list(app_control_h service, void *data) +{ + GL_CHECK_VAL(data, GL_UG_FAIL); + GL_CHECK_VAL(service, GL_UG_FAIL); + gl_appdata *ad = (gl_appdata *)data; + int i; + gl_item *gitem = NULL; + int count = eina_list_count(ad->selinfo.elist); + int count_fav= eina_list_count(ad->selinfo.fav_elist); + + char **value = NULL; + char **value_fav = NULL; + if (count > 0) { + (value) = (char**)malloc( count * sizeof (char *)); + if (!value) { + return GL_UG_FAIL; + } + } + if (count_fav > 0) { + (value_fav) = (char**)malloc( count_fav * sizeof (char *)); + if (!value_fav) { + return GL_UG_FAIL; + } + } + + for (i = 0; i < count; i++) { + gitem = eina_list_nth(ad->selinfo.elist, i); + if (gitem) { + if (gitem->item) { + (value)[i] = strdup(gitem->item->file_url); + } + } + } + for (i = 0; i < count_fav; i++) { + gitem = eina_list_nth(ad->selinfo.fav_elist, i); + if (gitem) { + if (gitem->item) { + (value_fav)[i] = strdup(gitem->item->file_url); + } + } + } + if (count > 0) { + app_control_add_extra_data_array(service, "Selected index", + value, count); + } + if (count_fav > 0) { + app_control_add_extra_data_array(service, "Selected index fav", + value_fav, count_fav); + } + + + if (value) { + for (i = 0; i < count; i++) { + free(value[i]); + } + free(value); + } + + if (value_fav) { + for (i = 0; i < count_fav; i++) { + free(value_fav[i]); + } + free(value_fav); + } + + return GL_UG_SUCCESS; +} + +int gl_ext_load_iv_time_ug_select_mode(void *data, gl_media_s *item, gl_ext_iv_type type, int sort_type) +{ + GL_CHECK_VAL(data, GL_UG_FAIL); + gl_appdata *ad = (gl_appdata *)data; + + int ret; + if (sort_type == ORDER_ASC) { + ad->uginfo.sort_type = GL_SORT_BY_DATE_ASC; + } else if (sort_type == ORDER_DESC) { + ad->uginfo.sort_type = GL_SORT_BY_DATE_DESC; + } + ret = gl_ext_load_iv_ug_select_mode (data, item, type); + + return ret; +} + +int gl_ext_load_iv_ug_select_mode(void *data, gl_media_s *item, gl_ext_iv_type type) +{ + GL_CHECK_VAL(item, GL_UG_FAIL); + GL_CHECK_VAL(data, GL_UG_FAIL); + gl_appdata *ad = (gl_appdata *)data; + app_control_h service = NULL; + + if (ad->uginfo.ug) { + gl_dbgE("Already exits some UG called by me, type(%d)!", type); + return GL_UG_FAIL; + } + + app_control_create(&service); + GL_CHECK_VAL(service, GL_UG_FAIL); + + ad->uginfo.ug_type = GL_UG_IMAGEVIEWER; + ad->uginfo.iv_type = type; + + int ret = GL_UG_FAIL; + ret = __gl_ext_albums_set_iv_select_mode(data, service, type); + + if (ret == GL_UG_FAIL) { + gl_dbgW("Service data setting failed!"); + app_control_destroy(service); + return GL_UG_FAIL; + } + + app_control_add_extra_data(service, GL_ARGV_IV_PATH, item->file_url); + __gl_ext_add_sortby(service, ad->uginfo.sort_type); + + int tab_mode = _gl_ctrl_get_tab_mode(ad); + switch (tab_mode) { + case GL_CTRL_TAB_ALBUMS: + _gl_ext_load_iv_selected_list(service, ad); + break; + case GL_CTRL_TAB_TIMELINE: + _gl_ext_load_time_iv_selected_list(service, ad); + break; + default: + gl_dbgE("Wrong tab mode!"); + } + + ret = app_control_set_launch_mode(service, APP_CONTROL_LAUNCH_MODE_GROUP); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("set launch mode failed"); + } + ret = app_control_set_app_id(service, GL_UG_PKG_IV); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("set appid failed"); + } + ret = app_control_send_launch_request(service, __gl_appcontrol_select_result_cb, (void *)ad); + + //ad->uginfo.ug = service; + app_control_destroy(service); + + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("ug_create failed!"); + _gl_popup_create(data, NULL, GL_STR_ID_OPERATION_FAILED, + GL_STR_ID_CLOSE, __gl_ext_popup_resp_cb, data, + NULL, NULL, NULL, NULL, NULL, NULL); + return GL_UG_FAIL; + } else { + elm_object_tree_focus_allow_set(ad->maininfo.layout, EINA_FALSE); + ad->uginfo.b_ug_launched = true; + return GL_UG_SUCCESS; + } +} + +/* Invoke Imageviewer UG */ +int gl_ext_load_iv_ug(void *data, gl_item *item, gl_ext_iv_type type) +{ + GL_CHECK_VAL(item, GL_UG_FAIL); + GL_CHECK_VAL(item->item, GL_UG_FAIL); + GL_CHECK_VAL(data, GL_UG_FAIL); + gl_appdata *ad = (gl_appdata *)data; + //GL_CHECK_VAL(ad->maininfo.win, GL_UG_FAIL); + //Evas_Object *win = ad->maininfo.win; + app_control_h service = NULL; + gl_dbg("type: %d", type); + + if (ad->uginfo.ug) { + gl_dbgE("Already exits some UG called by me, type(%d)!", type); + return GL_UG_FAIL; + } + + app_control_create(&service); + GL_CHECK_VAL(service, GL_UG_FAIL); + + //UG_INIT_EFL(win, UG_OPT_INDICATOR_ENABLE); + ad->uginfo.ug_type = GL_UG_IMAGEVIEWER; + ad->uginfo.iv_type = type; + + int ret = GL_UG_FAIL; + int tab_mode = _gl_ctrl_get_tab_mode(ad); + switch (tab_mode) { + case GL_CTRL_TAB_ALBUMS: + ret = __gl_ext_albums_set_iv(data, service, type, item); + break; + case GL_CTRL_TAB_TIMELINE: + ret = __gl_ext_albums_set_iv(data, service, type, item); + break; + default: + gl_dbgE("Wrong tab mode!"); + } + + if (ret == GL_UG_FAIL) { + gl_dbgW("Service data setting failed!"); + app_control_destroy(service); + return GL_UG_FAIL; + } + + app_control_add_extra_data(service, GL_ARGV_IV_PATH, item->item->file_url); + + /* Sort by type */ + if (ad->gridinfo.media_display_order == ORDER_ASC) { + ad->uginfo.sort_type = GL_SORT_BY_DATE_ASC; + } else if (ad->gridinfo.media_display_order == ORDER_DESC) { + ad->uginfo.sort_type = GL_SORT_BY_DATE_DESC; + } + __gl_ext_add_sortby(service, ad->uginfo.sort_type); + +#ifdef _USE_APP_SLIDESHOW + if (type == GL_UG_IV_SLIDESHOW_SELECTED) { + if (__gl_ext_slideshow_selected(ad, service) == GL_UG_FAIL) { + gl_dbgE("Failed to slideshow selected files!"); + app_control_destroy(service); + return GL_UG_FAIL; + } + ad->uginfo.b_selected_slideshow = true; + } else +#endif + if (type == GL_UG_IV_SLIDESHOW_ALL || + GL_VIEW_ALBUMS == gl_get_view_mode(data)) { + app_control_add_extra_data(service, GL_ARGV_IV_INDEX, + GL_ARGV_IV_INDEX_VALUE); + } else if (type == GL_UG_IV || type == GL_UG_IV_SLIDESHOW) { + char sequence_str[GL_INTERGER_LEN_MAX] = { 0, }; + eina_convert_itoa(item->sequence, sequence_str); + gl_dbg("sequence : %s", sequence_str); + app_control_add_extra_data(service, GL_ARGV_IV_INDEX, sequence_str); + } + ret = app_control_set_launch_mode(service, APP_CONTROL_LAUNCH_MODE_GROUP); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("set launch mode failed"); + } + ret = app_control_set_app_id(service, GL_UG_PKG_IV); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("set appid failed"); + } + ret = app_control_send_launch_request(service, __gl_appcontrol_result_cb, (void *)ad); + + //ad->uginfo.ug = service; + app_control_destroy(service); + + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("ug_create failed!"); + _gl_popup_create(data, NULL, GL_STR_ID_OPERATION_FAILED, + GL_STR_ID_CLOSE, __gl_ext_popup_resp_cb, data, + NULL, NULL, NULL, NULL, NULL, NULL); + return GL_UG_FAIL; + } else { + elm_object_tree_focus_allow_set(ad->maininfo.layout, EINA_FALSE); + ad->uginfo.b_ug_launched = true; + return GL_UG_SUCCESS; + } +} + +/* Invoke Imageviewer UG from timeline view */ +int _gl_ext_load_iv_timeline(void *data, const char *path, int sequence, int sort_type) +{ + GL_CHECK_VAL(data, GL_UG_FAIL); + int ret = GL_UG_FAIL; + gl_appdata *ad = (gl_appdata *)data; + //GL_CHECK_VAL(ad->maininfo.win, GL_UG_FAIL); + //Evas_Object *win = ad->maininfo.win; + app_control_h service = NULL; + + if (ad->uginfo.ug) { + gl_dbgE("Already exits some UG called by me!"); + return GL_UG_FAIL; + } + + app_control_create(&service); + GL_CHECK_VAL(service, GL_UG_FAIL); + + //UG_INIT_EFL(win, UG_OPT_INDICATOR_ENABLE); + ad->uginfo.ug_type = GL_UG_IMAGEVIEWER; + ad->uginfo.iv_type = GL_UG_IV; + + /* Local file */ + app_control_add_extra_data(service, GL_ARGV_IV_MEDIA_TYPE, + GL_ARGV_IV_MEDIA_ALL); + gl_dbg("Media type: All"); + /* 'All' album->thumbnails view */ + app_control_add_extra_data(service, GL_ARGV_IV_VIEW_BY, + GL_ARGV_IV_VIEW_BY_ALL); + gl_dbg("View By: All"); + + app_control_add_extra_data(service, GL_ARGV_IV_PATH, path); + + /* Sort by type */ + if (sort_type == ORDER_ASC) { + ad->uginfo.sort_type = GL_SORT_BY_DATE_ASC; + } else if (sort_type == ORDER_DESC) { + ad->uginfo.sort_type = GL_SORT_BY_DATE_DESC; + } + __gl_ext_add_sortby(service, ad->uginfo.sort_type); + char sequence_str[GL_INTERGER_LEN_MAX] = { 0, }; + eina_convert_itoa(sequence, sequence_str); + gl_dbg("sequence: %s", sequence_str); + app_control_add_extra_data(service, GL_ARGV_IV_INDEX, sequence_str); + ret = app_control_set_launch_mode(service, APP_CONTROL_LAUNCH_MODE_GROUP); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("set launch mode failed"); + } + + ret = app_control_set_app_id(service, GL_UG_PKG_IV); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("set appid failed"); + } + ret = app_control_send_launch_request(service, __gl_appcontrol_result_cb, (void *)ad); + + //ad->uginfo.ug = service; + app_control_destroy(service); + + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("ug_create failed!"); + _gl_popup_create(data, NULL, GL_STR_ID_OPERATION_FAILED, + GL_STR_ID_CLOSE, __gl_ext_popup_resp_cb, data, + NULL, NULL, NULL, NULL, NULL, NULL); + return GL_UG_FAIL; + + } else { + /*Disable the focus permission of the app layout*/ + /*or else the highlight will fall under the ug layout */ + elm_object_tree_focus_allow_set(ad->maininfo.layout, EINA_FALSE); + ad->uginfo.b_ug_launched = true; + return GL_UG_SUCCESS; + + } +} + +int gl_ext_load_ug(void *data, gl_ext_ug_type type) +{ + GL_CHECK_VAL(data, GL_UG_FAIL); + int ret = GL_UG_FAIL; + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->maininfo.win, GL_UG_FAIL); + app_control_h service = NULL; + + if (ad->uginfo.ug) { + gl_dbg("Already exits some UG, Request type(%d)", type); + return GL_UG_FAIL; + } + + ad->uginfo.ug_type = type; + ad->uginfo.data = NULL; + + app_control_create(&service); + GL_CHECK_VAL(service, GL_UG_FAIL); + + switch (type) { + case GL_UG_GALLERY_SETTING_SLIDESHOW: + ad->uginfo.b_start_slideshow = false; + app_control_add_extra_data(service, "ShowStartBtn", "TRUE"); + ret = app_control_set_app_id(service, GL_UG_PKG_GALLERY_SETTING); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("service create failed"); + } + ret = app_control_send_launch_request(service, __gl_appcontrol_result_cb, (void *)ad); + break; + case GL_UG_GALLERY_SETTING: + ret = app_control_set_app_id(service, GL_UG_PKG_GALLERY_SETTING); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("service create failed"); + } + ret = app_control_send_launch_request(service, __gl_appcontrol_result_cb, (void *)ad); + break; + default: + gl_dbgE("Wrong UG type!"); + goto EXT_UG_FAILED; + } + ad->uginfo.ug = service; + + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("ug_create failed!"); + _gl_popup_create(data, NULL, GL_STR_ID_OPERATION_FAILED, + GL_STR_ID_CLOSE, __gl_ext_popup_resp_cb, data, + NULL, NULL, NULL, NULL, NULL, NULL); + return GL_UG_FAIL; + } else { + gl_dbgW("ug_create success!"); + /*Disable the focus permission of the app layout*/ + /*or else the highlight will fall under the ug layout */ + elm_object_tree_focus_allow_set(ad->maininfo.layout, EINA_FALSE); + return GL_UG_SUCCESS; + } + + EXT_UG_FAILED: + + gl_dbgE("EXT_UG_FAILED!"); + app_control_destroy(service); + _gl_popup_create(data, NULL, GL_STR_ID_OPERATION_FAILED, + GL_STR_ID_CLOSE, __gl_ext_popup_resp_cb, data, + NULL, NULL, NULL, NULL, NULL, NULL); + return GL_UG_FAIL; +} + diff --git a/src/util/gl-file-util.c b/src/util/gl-file-util.c new file mode 100644 index 0000000..edc598a --- /dev/null +++ b/src/util/gl-file-util.c @@ -0,0 +1,272 @@ +/* +* 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 "gl-file-util.h" +#include "gl-debug.h" +#include +#include + +static mode_t default_mode = S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH; + +char *gl_file_dir_get(const char path[]) +{ + char *p = NULL; + char buf[256] = {0,}; + struct stat info = {0,}; + + if (stat(path, &info) == 0) { + strncpy(buf, path, 256); + buf[256 - 1] = 0; + p = dirname(buf); + return strdup(p); + } else { + return ""; + } +} + +int gl_file_exists(const char *path) +{ + struct stat info = {0,}; + + if (stat(path, &info) == 0) + return 1; + else + return 0; +} + +int gl_file_is_dir(const char *path) +{ + struct stat info = {0,}; + + if (stat(path, &info) == 0) { + if (S_ISDIR(info.st_mode)) { + return 1; + } + } + + return 0; +} + +int gl_file_dir_is_empty(const char *path) +{ + struct dirent *dp = NULL; + DIR *dirp = NULL; + struct dirent ent_struct; + + dirp = opendir(path); + if (!dirp) + return -1; + + while ((readdir_r(dirp, &ent_struct, &dp) == 0) && dp) { + if ((strcmp(dp->d_name, ".")) && (strcmp(dp->d_name, ".."))) { + closedir(dirp); + return 0; + } + } + closedir(dirp); + return 1; +} + +int gl_mkdir(const char *dir) +{ + if (mkdir(dir, default_mode) < 0) + return 0; + else + return 1; +} + +static int +gl_mkpath_if_not_exists(const char *path) +{ + struct stat st = {0,}; + if (stat(path, &st) < 0) + return gl_mkdir(path); + else if (!S_ISDIR(st.st_mode)) + return 0; + else + return 1; +} + +int gl_file_mkpath(const char *path) +{ + char ss[500] = {0,}; + unsigned int i = 0; + + if (gl_file_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 (!gl_mkpath_if_not_exists(ss)) + return 0; + } + } + ss[i] = '\0'; + + return gl_mkpath_if_not_exists(ss); +} + +int gl_file_unlink (const char *filename) +{ + int status = unlink(filename); + if (status < 0) + return 0; + else + return 1; +} + +int gl_file_size(const char *filename) +{ + struct stat info = {0,}; + if (stat(filename, &info) == 0) { + if (!S_ISDIR(info.st_mode)) + return info.st_size; + } + + return 0; +} + +int gl_file_rmdir(const char *filename) +{ + int status = rmdir(filename); + if (status < 0) + return 0; + else + return 1; +} + +Eina_List *gl_file_ls(const char *dir) +{ + char *f; + DIR *dirp = NULL; + struct dirent *dp = NULL; + Eina_List *list = NULL; + struct dirent ent_struct; + + 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 gl_file_recursive_rm(const char *dir) +{ + char buf[PATH_MAX] = {0,}; + struct dirent *dp = NULL; + DIR *dirp = NULL; + struct dirent ent_struct; + + if (readlink(dir, buf, sizeof(buf)) > 0) { + return gl_file_unlink(dir); + } + + int ret = gl_file_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 (!gl_file_recursive_rm(dp->d_name)) + ret = 0; + } + } + closedir(dirp); + } + + if (!gl_file_rmdir(dir)) + ret = 0; + + return ret; + } else { + return gl_file_unlink(dir); + } +} + +int gl_file_cp(const char *src,const char *dst) +{ + FILE *f1 = NULL; + FILE *f2 = NULL; + char buf[16384] = {0,}; //TODO: How about moving buf to heap instead of stack + char realpath1[256] = {0,}; + char realpath2[256] = {0,}; + size_t num; + int ret = 1; + + 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 gl_file_mv(const char *src, const char *dst) +{ + 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) { + if (S_ISREG(info.st_mode)) { + gl_file_cp(src, dst); + chmod(dst, info.st_mode); + unlink(src); + return 1; + } + } + return 0; + } + return 1; +} diff --git a/src/util/gl-fs.c b/src/util/gl-fs.c new file mode 100644 index 0000000..720e449 --- /dev/null +++ b/src/util/gl-fs.c @@ -0,0 +1,895 @@ +/* +* 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 +#include "gl-fs.h" +#include "gallery.h" +#include "gl-debug.h" +#include "gl-thread-util.h" +#include "gl-file-util.h" + +static int __gl_fs_free_node(gl_node_info_s *pnode) +{ + GL_CHECK_VAL(pnode, -1); + if (pnode->path) { + g_free(pnode->path); + pnode->path = NULL; + } + if (pnode->name) { + g_free(pnode->name); + pnode->name = NULL; + } + g_free(pnode); + return 0; +} + +static int __gl_fs_clear_list(Eina_List **elist) +{ + GL_CHECK_VAL(elist, -1); + gl_node_info_s *pnode = NULL; + if (*elist) { + EINA_LIST_FREE(*elist, pnode) { + __gl_fs_free_node(pnode); + pnode = NULL; + } + *elist = NULL; + } + return 0; +} + +/* Append bigger one, prepend smaller one, first node is oldest one */ +static int __gl_fs_compare(const void *data1, const void *data2) +{ + gl_node_info_s *pnode1 = (gl_node_info_s *)data1; + gl_node_info_s *pnode2 = (gl_node_info_s *)data2; + + int result = -(pnode1->mtime - pnode2->mtime); + gl_dbg("mtime1[%d], mtime2[%d], result[%d]", pnode1->mtime, + pnode2->mtime, result); + return result; +} + +static int __gl_fs_read_dir(char *path, Eina_List **dir_list, + Eina_List **file_list) +{ + GL_CHECK_VAL(file_list, -1); + GL_CHECK_VAL(dir_list, -1); + GL_CHECK_VAL(path, -1); + + DIR *pdir = NULL; + struct dirent *ent = NULL; + struct dirent ent_struct; + int count = 0; + char *childpath = NULL; + int cp_len = 0; + gl_node_info_s *pnode = NULL; + int copiednum = 0; + + pdir = opendir(path); + GL_CHECK_VAL(pdir, -1); + + while ((readdir_r(pdir, &ent_struct, &ent) == 0) && ent) { + if (g_strcmp0(ent->d_name, ".") == 0 || + g_strcmp0(ent->d_name, "..") == 0) { + continue; + } + /*only deal with dirs and regular files*/ + if ((ent->d_type & DT_DIR) == 0 && (ent->d_type & DT_REG) == 0) + continue; + + /*get date & size*/ + cp_len = strlen(path) + 1 + strlen(ent->d_name) + 1; + childpath = g_new0(char, cp_len); + if (childpath == NULL) + continue; + + copiednum = g_snprintf(childpath, cp_len, "%s/%s", path, + ent->d_name); + if (copiednum < 0) { + g_free(childpath); + childpath = NULL; + continue; + } + + pnode = g_new0(gl_node_info_s, 1); + if (pnode == NULL) { + g_free(childpath); + childpath = NULL; + continue; + } + /*get path*/ + pnode->path = g_strdup(path); + /*get name*/ + pnode->name = g_strdup(ent->d_name); + + if (_gl_fs_get_file_stat(childpath, &pnode) < 0) { + g_free(pnode); + pnode = NULL; + g_free(childpath); + childpath = NULL; + continue; + } + g_free(childpath); + childpath = NULL; + + if (ent->d_type & DT_DIR) + *dir_list = eina_list_append(*dir_list, pnode); + else + *file_list = eina_list_append(*file_list, pnode); + count++; + } + closedir(pdir); + + return 0; +} + +static int __gl_fs_get_file_list(GString *folder_name, Eina_List **dir_list, + Eina_List **file_list) +{ + GL_CHECK_VAL(folder_name, -1); + GL_CHECK_VAL(folder_name->str, -1); + GL_CHECK_VAL(folder_name->len, -1); + return __gl_fs_read_dir(folder_name->str, dir_list, file_list); +} + +/* Get sorted folders list by folder's modified time */ +static unsigned long long __gl_fs_sort_folders_by_mtime(char *path, + Eina_List **sorted_list) +{ + if (!gl_file_is_dir(path)) { + gl_dbgE("Not a directory!"); + return 0; + } + + unsigned long long size = 0; + unsigned long long sub_size = 0; + GString *fullpath = g_string_new(path); + Eina_List *dir_list = NULL; + Eina_List *file_list = NULL; + int error_code = 0; + error_code = __gl_fs_get_file_list(fullpath, &dir_list, &file_list); + + if (error_code == 0) { + int i = 0; + int dir_cnt = eina_list_count(dir_list); + int file_cnt = eina_list_count(file_list); + gl_node_info_s *pnode = NULL; + for (i = 0; i < file_cnt; i++) { + pnode = (gl_node_info_s *)eina_list_nth(file_list, i); + if (pnode == NULL) { + gl_dbgE("Invalid node!"); + continue; + } + size += pnode->size; + pnode = NULL; + } + gl_dbg("file_cnt[%d], size[%llu]", file_cnt, size); + + i = 0; + pnode = NULL; + char *sub_folder = NULL; + gl_dbg("dir_cnt[%d]", dir_cnt); + for (i = 0; i < dir_cnt; i++) { + pnode = (gl_node_info_s *)eina_list_nth(dir_list, i); + if (pnode == NULL) { + gl_dbgE("Invalid node!"); + continue; + } + sub_folder = g_strconcat(pnode->path, "/", pnode->name, + NULL); + if (sub_folder) { + gl_sdbg("sub_folder[%s]", pnode->name); + sub_size = __gl_fs_sort_folders_by_mtime(sub_folder, + sorted_list); + pnode->size = sub_size; + size += sub_size; + gl_dbg("mtime[%d]", pnode->mtime); + *sorted_list = eina_list_sorted_insert(*sorted_list, + __gl_fs_compare, + pnode); + g_free(sub_folder); + sub_folder = NULL; + } else { + gl_dbgE("Invalid sub folder!"); + } + pnode = NULL; + } + } + + if (fullpath) { + g_string_free(fullpath, true); + fullpath = NULL; + } + + if (file_list) + __gl_fs_clear_list(&file_list); + + if (dir_list) { + eina_list_free(dir_list); + dir_list = NULL; + } + + return size; +} + +unsigned long long gl_fs_get_free_space(int state) +{ + struct statvfs info; + char *path = NULL; + + if (state == GL_STORE_T_PHONE) + path = GL_ROOT_PATH_PHONE; + else if (state == GL_STORE_T_MMC) + path = GL_ROOT_PATH_MMC; + else + return 0; + + if (-1 == statvfs(path, &info)) + return 0; + + return ((unsigned long long)(info.f_bsize)) * ((unsigned long long)(info.f_bavail)); +} + +/* Add checking for cancellation to terminate RW loop */ +Eina_Bool __gl_fs_cp_file(void *data, const char *src, const char *dst) +{ +#define PATH_MAX 4096 +#define BUF_MAX 16384 + FILE *f1 = NULL; + FILE *f2 = NULL; + char buf[BUF_MAX] = { 0, }; + char realpath1[PATH_MAX] = { 0, }; + char realpath2[PATH_MAX] = { 0, }; + size_t num = 0; + Eina_Bool ret = EINA_TRUE; + + if (!realpath(src, realpath1)) + return EINA_FALSE; + if (realpath(dst, realpath2) && !g_strcmp0(realpath1, realpath2)) + return EINA_FALSE; + + f1 = fopen(src, "rb"); + if (!f1) + return EINA_FALSE; + f2 = fopen(dst, "wb"); + if (!f2) { + fclose(f1); + return EINA_FALSE; + } + while ((num = fread(buf, 1, sizeof(buf), f1)) > 0) { + int pbar_cancel = false; + gl_thread_get_cancel_state(data, &pbar_cancel); + if (pbar_cancel > GL_PB_CANCEL_NORMAL) { + gl_dbgW("Cancelled[%d]!", pbar_cancel); + fclose(f1); + fclose(f2); + gl_file_unlink(dst); + return EINA_FALSE; + } + if (fwrite(buf, 1, num, f2) != num) + ret = EINA_FALSE; + } + fclose(f1); + fclose(f2); + return ret; +} + +#if 0 //Unused function +int _gl_fs_update_file_mtime(const char *path) +{ + GL_CHECK_VAL(path, -1); + struct timeval tv; + gettimeofday(&tv, NULL); + struct timeval times[2] = { {0, 0}, {0, 0} }; + times[0].tv_sec = tv.tv_sec; + times[0].tv_usec = tv.tv_usec; + times[1].tv_sec = tv.tv_sec; + times[1].tv_usec = tv.tv_usec; + if (utimes(path, times) < 0) { + gl_dbgE("utimes failed!"); + return -1; + } + return 0; +} +#endif + +int _gl_fs_get_file_stat(const char *filename, gl_node_info_s **node) +{ + struct stat statbuf; + GL_CHECK_VAL(node, -1); + GL_CHECK_VAL(*node, -1); + GL_CHECK_VAL(filename, -1); + + if (stat(filename, &statbuf) == -1) + return -1; + + /* total size, in bytes */ + (*node)->size = statbuf.st_size; + (*node)->mtime = statbuf.st_mtime; + return 0; +} + +unsigned long long _gl_fs_get_folder_size(char *path) +{ + if (!gl_file_is_dir(path)) { + gl_dbgE("Not a directory!"); + return 0; + } + + unsigned long long size = 0; + unsigned long long sub_size = 0; + GString *fullpath = g_string_new(path); + Eina_List *file_list = NULL; + Eina_List *dir_list = NULL; + int error_code = 0; + error_code = __gl_fs_get_file_list(fullpath, &dir_list, &file_list); + + if (error_code == 0) { + int i = 0; + int dir_cnt = eina_list_count(dir_list); + int file_cnt = eina_list_count(file_list); + gl_node_info_s *pnode = NULL; + for (i = 0; i < file_cnt; i++) { + pnode = (gl_node_info_s *)eina_list_nth(file_list, i); + if (pnode == NULL) { + gl_dbgE("Invalid node!"); + continue; + } + size += pnode->size; + pnode = NULL; + } + gl_dbg("file_cnt[%d], size[%llu]", file_cnt, size); + + gl_dbg("dir_cnt[%d]", dir_cnt); + i = 0; + pnode = NULL; + char *sub_folder = NULL; + for (i = 0; i < dir_cnt; i++) { + pnode = (gl_node_info_s *)eina_list_nth(dir_list, i); + if (pnode == NULL) { + gl_dbgE("Invalid node!"); + continue; + } + sub_folder = g_strconcat(pnode->path, "/", pnode->name, + NULL); + if (sub_folder) { + gl_sdbg("sub_folder[%s]", pnode->name); + sub_size = _gl_fs_get_folder_size(sub_folder); + pnode->size = sub_size; + size += sub_size; + gl_dbg("mtime[%d]", pnode->mtime); + g_free(sub_folder); + sub_folder = NULL; + } else { + gl_dbgE("Invalid sub folder!"); + } + pnode = NULL; + } + } + + if (fullpath) { + g_string_free(fullpath, true); + fullpath = NULL; + } + + if (file_list) + __gl_fs_clear_list(&file_list); + + if (dir_list) + __gl_fs_clear_list(&dir_list); + return size; +} + +int _gl_fs_rm_folder(char *path, long long cut_size, long long max_size, + unsigned int expired_time) +{ + GL_CHECK_VAL(path, -1); + gl_node_info_s *pnode = NULL; + Eina_List *dir_list = NULL; + Eina_List *l = NULL; + unsigned long long size = 0; + gl_dbg("Size cut/max[%lld/%lld]", cut_size, max_size); + + size = __gl_fs_sort_folders_by_mtime(path, &dir_list); + GL_CHECK_VAL(dir_list, -1); + + char *folder = NULL; + unsigned long long _cut_size = 0; + if (size > max_size) + _cut_size = size - max_size + cut_size; + else if (size + cut_size > max_size) + _cut_size = cut_size; + gl_dbg("Size cut/total[%llu/%llu]", _cut_size, size); + + unsigned int current_t = 0; + struct timeval tv; + gettimeofday(&tv, NULL); + current_t = tv.tv_sec + tv.tv_usec / GL_TIME_USEC_PER_SEC; + gl_dbg("current time[%d], expired time[%d]", current_t, expired_time); + unsigned long long rm_size = 0; + + EINA_LIST_FOREACH(dir_list, l, pnode) { + if (pnode == NULL || pnode->path == NULL || pnode->name == NULL) + continue; + + /* Get full path of folder */ + folder = g_strconcat(pnode->path, "/", pnode->name, NULL); + if (folder == NULL) + continue; + + gl_sdbg("mtime[%d], path[%s]", pnode->mtime, folder); + if (pnode->mtime + expired_time < current_t) { + /* Remove folder */ + gl_dbgW("Remove!"); + gl_file_recursive_rm(folder); + g_free(folder); + folder = NULL; + rm_size += pnode->size; + continue; + } else if (_cut_size == 0 || rm_size >= _cut_size) { + gl_dbgW("Done!"); + break; + } + + /* Remove folder */ + gl_file_recursive_rm(folder); + g_free(folder); + folder = NULL; + + gl_dbg("size[cut/dir]=%llu/%llu", _cut_size, pnode->size); + if (pnode->size >= _cut_size) { + gl_dbgW("Done!"); + break; + } + + pnode = NULL; + } + __gl_fs_clear_list(&dir_list); + return 0; +} + +#ifdef _RENAME_ALBUM_SENSITIVE +bool _gl_fs_check_name_case(char *dir, char *exist_name) +{ + GL_CHECK_FALSE(dir); + GL_CHECK_FALSE(exist_name); + gl_dbg(""); + + char dest_dir[GL_DIR_PATH_LEN_MAX] = {0}; + char dest_filename[GL_FILE_NAME_LEN_MAX] = {0}; + char *tmp = NULL; + tmp = strrchr(dir, '/'); + if (tmp) { + g_strlcpy(dest_filename, tmp + 1, GL_FILE_NAME_LEN_MAX); + tmp[0] = '\0'; + g_strlcpy(dest_dir, dir, GL_DIR_PATH_LEN_MAX); + tmp[0] = '/'; + } else { + return false; + } + + bool ret = false; + Eina_List *name_list = NULL; + if ((name_list = gl_file_ls(dest_dir)) == NULL) { + gl_dbgE("open dir failed!"); + return false; + } else { + char *dir_name = NULL; + EINA_LIST_FREE(name_list, dir_name) { + if (dir_name && + strcasecmp(dir_name, dest_filename) == 0) { + gl_dbg("Have same name directory"); + ret = true; + memset(exist_name, 0x00, GL_ALBUM_NAME_LEN_MAX); + g_strlcpy(exist_name, dir_name, + GL_ALBUM_NAME_LEN_MAX); + break; + } + GL_FREEIF(dir_name); + } + } + return ret; +} +#endif + +bool _gl_fs_is_low_memory(unsigned long long total_size) +{ + unsigned long long free_size = gl_fs_get_free_space(GL_STORE_T_PHONE); + if (total_size && free_size < total_size) { + gl_dbgE("Low memory: Free(%llu Byte) < required(%llu Byte)!", + free_size, total_size); + return true; + } + + return false; +} + +int _gl_fs_get_file_ext(const char *file_path, char *file_ext, int max_len) +{ + int i = 0; + + for (i = strlen(file_path); i >= 0; i--) { + if ((file_path[i] == '.') && (i < strlen(file_path))) { + strncpy(file_ext, &file_path[i + 1], max_len); + return 0; + } + + /* meet the dir. no ext */ + if (file_path[i] == '/') { + return -1; + } + } + + return -1; +} + +/* +* return file extension, f.e. jpg; then return new path without ext. +*/ +bool _gl_fs_get_path_without_ext(const char *file_path, char *file_ext, + char *new_path) +{ + int i = 0; + for (i = strlen(file_path); i >= 0; i--) { + if ((file_path[i] == '.') && (i < GL_FILE_PATH_LEN_MAX)) { + g_strlcpy(file_ext, &file_path[i + 1], GL_FILE_EXT_LEN_MAX); + g_strlcpy(new_path, file_path, i + 1); + new_path[i] = '\0'; + gl_sdbg("path without extension :%s", new_path); + return true; + } + + /* meet the dir. no ext */ + if (file_path[i] == '/') + return true; + } + return true; +} + +Eina_Bool _gl_fs_copy(void *data, const char *src, const char *dst) +{ + GL_CHECK_FALSE(src); + GL_CHECK_FALSE(dst); + GL_CHECK_FALSE(data); + + gl_sdbg("\tSrc: %s", src); + gl_sdbg("\tDest: %s", dst); + struct stat st; + + /* + * Make sure this is a regular file before + * we do anything fancy. + */ + if (stat(src, &st) < 0) { + gl_dbgE("stat fail[%d]!", errno); + return EINA_FALSE; + } + if (S_ISREG(st.st_mode)) { + /* + * Copy to dst file + */ + if (!__gl_fs_cp_file(data, src, dst)) { + gl_dbgE("Copy file failed[%d]!", errno); + return EINA_FALSE; + } + sync(); + return EINA_TRUE; + } + gl_dbgE("S_ISREG fail[%d]!", errno); + return EINA_FALSE; +} + +/* +* Use gl_file_mv() to move medias to other album. +* Media-server, which is different with libmedia-info, watches src and dest folder, +* it updates libmedia-info DB asynchronously. +* While move/copy mass data in My Files appliation, +* After move/copy done in My files, check the dest folder in Gallery. +* You'll find its content is changing. +* gl_file_mv() operate libmedia-info DB synchronously, so it's faster than media-server. +*/ + +/* +* stop using "rename" when moving from mmc to phone for correct db update. +*/ +Eina_Bool _gl_fs_move(void *data, const char *src, const char *dst) +{ + GL_CHECK_FALSE(src); + GL_CHECK_FALSE(dst); + GL_CHECK_FALSE(data); + + gl_sdbg("\tSrc: %s", src); + gl_sdbg("\tDest: %s", dst); + /* + * From->To: MMC->MMC or Phone->Phone + */ + if (rename(src, dst)) { + /* + * File cannot be moved directly because + * it resides on a different mount point. + */ + if (errno == EXDEV) { + /* + * From->To: MMC->Phone or Phone->MMC + */ + gl_dbgW("errno = EXDEV(%d): Cross-device link", errno); + struct stat st; + + /* + * Make sure this is a regular file before + * we do anything fancy. + */ + if (stat(src, &st) < 0) { + gl_dbgE("stat fail[%d]!", errno); + return EINA_FALSE; + } + if (S_ISREG(st.st_mode)) { + /* + * Copy to dst file + */ + if (!__gl_fs_cp_file(data, src, dst)) { + gl_dbgE("Copy file failed[%d]!", errno); + return EINA_FALSE; + } + + + /* + * Delete src file + */ + if (!gl_file_unlink(src)) + gl_dbgE("Delete file failed[%d]!", errno); + + /* Write file to filesystem immediately */ + sync(); + return EINA_TRUE; + } + gl_dbgE("S_ISREG fail[%d]!", errno); + return EINA_FALSE; + } + + gl_dbgE("Fail[%d]!", errno); + return EINA_FALSE; + } + /* Write file to filesystem immediately */ + sync(); + return EINA_TRUE; +} + +char *_gl_fs_get_unique_full_path(char *file_path, char *ext) +{ + char *file_name = file_path; + char *extension = ext; + char *final_path = NULL; + int final_path_len = 0; + int extension_len = 0; + int suffix_count = 0; + /* means suffix on file name. up to "_99999" */ + const int max_suffix_count = 99999; + /* 1 means "_" */ + int suffix_len = (int)log10(max_suffix_count + 1) + 1; + + if (!file_path) + return NULL; + + gl_sdbg("file_path=[%s], ext=[%s]", file_path, ext); + + if (extension) + extension_len = strlen(extension); + + /* first 1 for ".", last 1 for NULL */ + final_path_len = strlen(file_name) + 1 + suffix_len + extension_len + 1; + + final_path = (char *)calloc(1, final_path_len); + if (!final_path) { + gl_dbgE("calloc failed!"); + return NULL; + } + + do { + /* e.g) /tmp/abc.jpg + * if there is no extension name, just make a file name without extension */ + if (0 == extension_len) { + if (suffix_count == 0) { + snprintf(final_path, final_path_len, "%s", + file_name); + } else { + snprintf(final_path, final_path_len, "%s_%d", + file_name, suffix_count); + } + } else { + if (suffix_count == 0) { + snprintf(final_path, final_path_len, "%s.%s", + file_name, extension); + } else { + snprintf(final_path, final_path_len, "%s_%d.%s", + file_name, suffix_count, extension); + } + } + + if (gl_file_exists(final_path)) { + suffix_count++; + if (suffix_count > max_suffix_count) { + gl_dbgE("Max suffix count!"); + GL_FREE(final_path); + break; + } else { + memset(final_path, 0x00, final_path_len); + continue; + } + } + + break; + } while (1); + + gl_sdbg("Decided path = [%s]", final_path); + return final_path; +} + +char *_gl_fs_get_unique_new_album_name(char *parent_path, char *default_name, + char **new_name) +{ + char *final_path = NULL; + char *final_name = NULL; + int final_path_len = 0; + int final_name_len = 0; + int suffix_count = 0; + /* means suffix on file name. up to "_99999" */ + const int max_suffix_count = 99999; + /* 1 means "_" */ + int suffix_len = (int)log10(max_suffix_count + 1) + 1; + + if (!parent_path || !default_name || !new_name) + return NULL; + + gl_sdbg("parent_path=[%s], default_name=[%s]", parent_path, default_name); + + /* 1 for NULL */ + final_name_len = strlen(default_name) + suffix_len + 1; + /* 1 for / */ + final_path_len = strlen(parent_path) + 1 + final_name_len; + + final_path = (char *)calloc(1, final_path_len); + if (!final_path) { + gl_dbgE("calloc failed!"); + return NULL; + } + final_name = (char *)calloc(1, final_name_len); + if (!final_name) { + gl_dbgE("calloc failed!"); + GL_FREE(final_path); + return NULL; + } + + do { + if (suffix_count == 0) { + snprintf(final_name, final_name_len, "%s", default_name); + } else { + snprintf(final_name, final_name_len, "%s %d", + default_name, suffix_count); + } + snprintf(final_path, final_path_len, "%s/%s", parent_path, + final_name); + + /** + * If dir is empty, 1 is returned, + * if it contains at least 1 file, 0 is returned. + * On failure, -1 is returned. + */ + if (gl_file_dir_is_empty(final_path) == 0) { + suffix_count++; + if (suffix_count > max_suffix_count) { + gl_dbgE("Max suffix count!"); + GL_FREE(final_path); + GL_FREE(final_name); + break; + } else { + memset(final_path, 0x00, final_path_len); + memset(final_name, 0x00, final_name_len); + continue; + } + } + + break; + } while (1); + + *new_name = final_name; + gl_sdbg("Decided path = [%s][%s]", final_path, final_name); + return final_path; +} + +bool _gl_fs_validate_name(const char *new_name) +{ + GL_CHECK_FALSE(new_name); + char invalid_chars[] = { '/', '\\', ':', '*', '?', '"', '<', '>', '|', '\0' }; + char *ptr = invalid_chars; + + if (strncmp(new_name, ".", strlen(".")) == 0) { + return false; + } + + gl_sdbg("new album name is %s\n", new_name); + while (*ptr != '\0') { + if (strchr(new_name, (*ptr)) != NULL) { + gl_dbg("invalid character is %c", *ptr); + return false; + } + ++ptr; + } + + return true; +} + +bool _gl_fs_validate_character(const char name_char) +{ + char invalid_chars[] = { '/', '\\', ':', '*', '?', '"', '<', '>', '|', '\0' }; + char *ptr = invalid_chars; + + gl_dbg("character is %c", name_char); + while (*ptr != '\0') { + if (name_char == *ptr) { + gl_dbg("invalid character is %c", *ptr); + return false; + } + ++ptr; + } + + return true; +} + +int _gl_fs_get_default_folder(char *path) +{ + int len = 0; + GL_CHECK_VAL(path, -1); + + len = snprintf(path, GL_DIR_PATH_LEN_MAX, "%s", + GL_ROOT_PATH_PHONE); + if (len < 0) { + gl_dbgE("snprintf returns failure!"); + return -1; + } else { + path[len] = '\0'; + len = -1; + } + + len = g_strlcat(path, GL_DEFAULT_PATH_IMAGES, + GL_DIR_PATH_LEN_MAX); + if (len >= GL_DIR_PATH_LEN_MAX) { + gl_dbgE("strlcat returns failure(%d)!", len); + return -1; + } + gl_sdbg("Default images path: %s.", path); + + return 0; +} + +bool _gl_fs_mkdir(const char *path) +{ + GL_CHECK_FALSE(path); + struct stat st; + if (stat(path, &st) < 0) { + if (!gl_file_mkpath(path)) { + gl_sdbgE("Failed to mkdir[%s]!", path); + return false; + } + } + return true; +} diff --git a/src/util/gl-lang.c b/src/util/gl-lang.c new file mode 100644 index 0000000..5f15c5d --- /dev/null +++ b/src/util/gl-lang.c @@ -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. +* +*/ + +#include +#include "gallery.h" +#include "gl-lang.h" +#include "gl-strings.h" +#include "gl-ctxpopup.h" +#include "gl-debug.h" +#include "gl-ui-util.h" +#include "gl-util.h" +#include "gl-progressbar.h" +#include "gl-controlbar.h" +#include "gl-notify.h" +#include "gl-albums-sel.h" +#include "gl-timeline.h" +#include "gl-albums-edit.h" +#include "gl-albums-rename.h" +#include "gl-thumbs.h" +#include "gl-thumbs-sel.h" +#include "gl-thumbs-edit.h" +#include "gl-nocontents.h" + +static int __gl_lang_update_albums(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->ctrlinfo.nf_it, -1); + _gl_ui_change_navi_title(ad->ctrlinfo.nf_it, GL_STR_ID_ALBUM, true); + return 0; +} + +int _gl_lang_update(void *data) +{ + char *locale = NULL; + int retcode = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &locale); + + if (retcode != SYSTEM_SETTINGS_ERROR_NONE) { + gl_dbgW("failed to get language[%d]", retcode); + } + + if (locale) { + elm_language_set(locale); + GL_FREE(locale); + } + + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + int view_mode = gl_get_view_mode(ad); + + /* Remove ctxpopup */ + _gl_ctxpopup_del(data); + + switch (view_mode) { + case GL_VIEW_ALBUMS: + __gl_lang_update_albums(data); + break; + case GL_VIEW_ALBUMS_EDIT: + _gl_albums_edit_update_lang(data); + break; + case GL_VIEW_ALBUMS_RENAME: + __gl_lang_update_albums(data); + _gl_albums_edit_update_lang(data); + break; + case GL_VIEW_ALBUMS_SELECT: + __gl_lang_update_albums(data); + break; + case GL_VIEW_TIMELINE: + _gl_timeline_update_lang(data); + break; + case GL_VIEW_THUMBS: + if (_gl_ctrl_get_tab_mode(ad) == GL_CTRL_TAB_ALBUMS) + __gl_lang_update_albums(data); + _gl_thumbs_update_lang(data); + break; + case GL_VIEW_THUMBS_EDIT: + if (_gl_ctrl_get_tab_mode(ad) == GL_CTRL_TAB_ALBUMS) + __gl_lang_update_albums(data); + _gl_thumbs_edit_update_lang(data); + break; + case GL_VIEW_THUMBS_SELECT: + if (_gl_ctrl_get_tab_mode(ad) == GL_CTRL_TAB_ALBUMS) + __gl_lang_update_albums(data); + _gl_thumbs_update_lang(data); + _gl_thumbs_sel_update_lang(data); + break; + default: + gl_dbgW("Other view_mode[%d]", view_mode); + } + + return 0; +} + diff --git a/src/util/gl-ta.c b/src/util/gl-ta.c new file mode 100644 index 0000000..a4e4428 --- /dev/null +++ b/src/util/gl-ta.c @@ -0,0 +1,614 @@ +/* +* 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. +* +*/ +#ifdef _ENABLE_TA +#include +#include +#include +#include +#include // time, ctime +#include // gettimeofday +#include +#include +#include +#include +#include "gl-ta.h" +#include +#include "gallery.h" +#include "gl-debug.h" + +#define GL_TA_BUF_LEN_MAX 512 +#define GL_TA_NAME_LEN_EXT 100 +#define GL_TA_HOST_NAME_LEN_MAX 256 +#define GL_TA_FORMAT_LEN_MAX 256 + +// internal func. +static void +__free_cps(void); +static int +__get_cp_index(char *name); +static void +__free_accums(void); +static int +__get_accum_index(char *name); + +// global var. +gl_ta_checkpoint **gl_g_cps = NULL; +static int gl_g_cp_index = 0; + +gl_ta_accum_item **gl_g_accums = NULL; +static int gl_g_accum_index = 0; +static int gl_g_accum_longest_name = 0; +static unsigned long gl_g_accum_first_time = 0xFFFFFFFF; // jmlee +static int gl_g_enable = 1; + +int +gl_ta_init(void) +{ + if (gl_g_accums) + return 0; + + gl_g_cps = (gl_ta_checkpoint **) malloc(GL_TA_MAX_CHECKPOINT * sizeof(gl_ta_checkpoint *)); + if (!gl_g_cps) + return -1; + memset(gl_g_cps, 0x00, GL_TA_MAX_CHECKPOINT * sizeof(gl_ta_checkpoint *)); + gl_g_accums = (gl_ta_accum_item **) malloc(GL_TA_MAX_CHECKPOINT * sizeof(gl_ta_accum_item *)); + if (!gl_g_accums) + return -1; + memset(gl_g_accums, 0x00, GL_TA_MAX_CHECKPOINT * sizeof(gl_ta_accum_item *)); + + gl_g_accum_first_time = 0xFFFFFFFF; + + return 0; +} + +int +gl_ta_release(void) +{ + if (!gl_g_accums) + return 0; + + __free_cps(); + __free_accums(); + + gl_g_accum_first_time = 0xFFFFFFFF; + + return 0; +} + +void +gl_ta_set_enable(int enable) +{ + gl_dbg("GL_TA : setting enable to %d\n", enable); + gl_g_enable = enable; +} + +int +gl_ta_get_numof_checkpoints() +{ + return gl_g_cp_index; +} + +char * +gl_ta_fmt(const char *fmt, ...) +{ + static char ta_buf[GL_TA_BUF_LEN_MAX] = { 0, }; + va_list args; + + va_start(args, fmt); + vsnprintf(ta_buf, GL_TA_BUF_LEN_MAX, fmt, args); + va_end(args); + + return ta_buf; +} + + +int +gl_ta_add_checkpoint(char *name, int show, char *filename, int line) +{ + gl_ta_checkpoint *cp = NULL; + struct timeval t; + + if (!gl_g_enable) + return -1; + + if (!gl_g_accums) + return 0; + + if (gl_g_cp_index == GL_TA_MAX_CHECKPOINT) + return -1; + + if (!name) + return -1; + + if (strlen(name) == 0) + return -1; + + cp = (gl_ta_checkpoint *) malloc(sizeof(gl_ta_checkpoint)); + if (!cp) + return -1; + memset(cp, 0x00, sizeof(gl_ta_checkpoint)); + cp->name = (char *)malloc(strlen(name) + 1); + if (!cp->name) + { + free(cp); + return -1; + } + memset(cp->name, 0x00, (strlen(name) + 1)); + g_strlcpy(cp->name, name, strlen(cp->name)); + if (show) + gl_sdbg("[CHECK-POINT] %s...(%s:%d)\n", name, filename, line); + + memset(&t,0x00,sizeof(struct timeval)); + gettimeofday(&t, NULL); + cp->timestamp = t.tv_sec * GL_TIME_USEC_PER_SEC + t.tv_usec; +#ifdef GL_TA_UNIT_MSEC + cp->timestamp = (cp->timestamp >= GL_TIME_MSEC_PER_SEC) ? cp->timestamp / GL_TIME_MSEC_PER_SEC : 0; +#endif + + gl_g_cps[gl_g_cp_index] = cp; + + gl_g_cp_index++; + + return 0; +} + +void +gl_ta_show_checkpoints(void) +{ + int i = 0; + + if (!gl_g_accums) + return; + + gl_dbg("BEGIN RESULT ============================\n"); + for (i = 0; i < gl_g_cp_index; i++) + { + gl_sdbg("[%d] %s : %ld us.\n", i, gl_g_cps[i]->name, gl_g_cps[i]->timestamp); + } + gl_dbg("END RESULT ============================\n"); +} + +void +gl_ta_show_diff(char *name1, char *name2) +{ + if (!gl_g_accums) + return; + + + gl_sdbg("Time takes from [%s] to [%s] : %ld us.\n", name1, name2, gl_ta_get_diff(name1, name2)); +} + +unsigned long +gl_ta_get_diff(char *name1, char *name2) +{ + int cp1, cp2; + + if (!gl_g_accums) + return 0; + + + // fail if bad param. + if (!name1 || !name2) + return -1; + + // fail if same. + if (strcmp(name1, name2) == 0) + return -1; + + // get index + if ((cp1 = __get_cp_index(name1)) == -1) + return -1; + + if ((cp2 = __get_cp_index(name2)) == -1) + return -1; + + // NOTE : + // return value must be positive value. + // bcz the value of higher index of gl_g_cps always higher than lower one. + return gl_g_cps[cp2]->timestamp - gl_g_cps[cp1]->timestamp; + +} + +static int +__get_cp_index(char *name) +{ + int i; + + //assert(name); + if (!name) + return -1; + + // find index + for (i = 0; i < gl_g_cp_index; i++) + { + if (strcmp(name, gl_g_cps[i]->name) == 0) + return i; + } + + return -1; +} + +static int +__get_accum_index(char *name) +{ + int i; + + //assert(name); + if (!name) + return -1; + + + // find index + for (i = 0; i < gl_g_accum_index; i++) + { + if (strcmp(name, gl_g_accums[i]->name) == 0) + return i; + } + + return -1; +} + +static void +__free_cps(void) +{ + int i = 0; + + if (!gl_g_cps) + return; + + for (i = 0; i < gl_g_cp_index; i++) + { + if (gl_g_cps[i]) + { + if (gl_g_cps[i]->name) + free(gl_g_cps[i]->name); + + free(gl_g_cps[i]); + + gl_g_cps[i] = NULL; + } + } + + free(gl_g_cps); + gl_g_cps = NULL; + + gl_g_cp_index = 0; +} + +static void +__free_accums(void) +{ + int i = 0; + + if (!gl_g_accums) + return; + + for (i = 0; i < gl_g_accum_index; i++) + { + if (gl_g_accums[i]) + { + if (gl_g_accums[i]->name) + free(gl_g_accums[i]->name); + + free(gl_g_accums[i]); + + gl_g_accums[i] = NULL; + } + } + + gl_g_accum_index = 0; + gl_g_accum_longest_name = 0; + + free(gl_g_accums); + gl_g_accums = NULL; +} + + +int +gl_ta_accum_item_begin(char *name, int show, char *filename, int line) +{ + gl_ta_accum_item *accum = NULL; + int index = 0; + int name_len = 0; + struct timeval t; + + if (!gl_g_enable) + return -1; + + if (!gl_g_accums) + return 0; + + + + if (gl_g_accum_index == GL_TA_MAX_ACCUM) + return -1; + + if (!name) + return -1; + + name_len = strlen(name); + if (name_len == 0) + return -1; + + // if 'name' is new one. create new item. + if ((index = __get_accum_index(name)) == -1) + { + accum = (gl_ta_accum_item *) malloc(sizeof(gl_ta_accum_item)); + if (!accum) + return -1; + + // clear first. + memset(accum, 0x00, sizeof(gl_ta_accum_item)); + accum->elapsed_min = 0xFFFFFFFF; + + accum->name = (char *)malloc(name_len + GL_TA_NAME_LEN_EXT); + if (!accum->name) + { + free(accum); + return -1; + } + memset(accum->name, 0x00, name_len + GL_TA_NAME_LEN_EXT); + g_strlcpy(accum->name, name, name_len); + // add it to list. + gl_g_accums[gl_g_accum_index] = accum; + gl_g_accum_index++; + + if (gl_g_accum_longest_name < name_len) + gl_g_accum_longest_name = name_len; + + } + else + { + accum = gl_g_accums[index]; + } + + // verify pairs of begin, end. + if (accum->on_estimate) + { + gl_sdbg("[%s] is not 'end'ed!\n", accum->name); + accum->num_unpair++; + return -1; + } + + memset(&t,0x00,sizeof(struct timeval)); + // get timestamp + gettimeofday(&t, NULL); + accum->timestamp = t.tv_sec * GL_TIME_USEC_PER_SEC + t.tv_usec; +#ifdef GL_TA_UNIT_MSEC + accum->timestamp = (accum->timestamp >= GL_TIME_MSEC_PER_SEC) ? accum->timestamp / GL_TIME_MSEC_PER_SEC : 0; +#endif + accum->on_estimate = 1; + + if (accum->first_start == 0) + { // assum that timestamp never could be zero. + accum->first_start = accum->timestamp; + + if (gl_g_accum_first_time > accum->first_start) + gl_g_accum_first_time = accum->first_start; + } + + if (show) + gl_sdbg("[ACCUM BEGIN] %s : %ld ---(%s:%d)\n", name, accum->timestamp, filename, line); + + accum->num_calls++; + + return 0; +} + +int +gl_ta_accum_item_end(char *name, int show, char *filename, int line) +{ + gl_ta_accum_item *accum = NULL; + long int tval = 0; + int index = 0; + struct timeval t; + + if (!gl_g_enable) + return -1; + + if (!gl_g_accums) + return 0; + + memset(&t,0x00,sizeof(struct timeval)); + // get time first for more accuracy. + gettimeofday(&t, NULL); + + if (gl_g_accum_index == GL_TA_MAX_ACCUM) + return -1; + + if (!name) + return -1; + + if (strlen(name) == 0) + return -1; + + // varify the 'name' is already exist. + if ((index = __get_accum_index(name)) == -1) + { + //printf("[%s] is not added before!\n", name); + return -1; + } + + accum = gl_g_accums[index]; + + // verify pairs of begin, end. + if (!accum->on_estimate) + { + gl_sdbg("[%s] is not 'begin' yet!\n", accum->name); + accum->num_unpair++; + return -1; + } + + // get current timestamp. + tval = t.tv_sec * GL_TIME_USEC_PER_SEC + t.tv_usec; +#ifdef GL_TA_UNIT_MSEC + tval = (tval >= GL_TIME_MSEC_PER_SEC) ? tval / GL_TIME_MSEC_PER_SEC : 0; +#endif + + // update last_end + accum->last_end = tval; + + // make get elapsed time. + tval = tval - accum->timestamp; + + // update min/max + accum->elapsed_max = tval > accum->elapsed_max ? tval : accum->elapsed_max; + accum->elapsed_min = tval < accum->elapsed_min ? tval : accum->elapsed_min; + + if (show) + gl_sdbg("[ACCUM END] %s : %ld + %ld ---(%s:%d)\n", name, accum->elapsed_accum, tval, filename, line); + + // add elapsed time + accum->elapsed_accum += tval; + accum->on_estimate = 0; + + return 0; +} + +void +__print_some_info(FILE * fp) +{ + if (!fp) + return; + + // comment + { + gl_dbg("\nb~ b~ b~\n\n"); + } + + // General infomation + { + time_t t_val; + char hostname[GL_TA_HOST_NAME_LEN_MAX] = { 0, }; + char time_buf[GL_TA_TIME_BUF_LEN] = { 0,}; + struct utsname uts; + struct rusage r_usage; + + gl_dbg("\n[[ General info ]]\n"); + + // time and date + time(&t_val); + gl_dbg("Date : %s",ctime_r(&t_val, time_buf)); + + memset(&uts,0x00,sizeof(struct utsname)); + // system + if (gethostname(hostname, GL_TA_HOST_NAME_LEN_MAX - 1) == 0 && uname(&uts) >= 0) + { + gl_dbg("Hostname : %s\n", hostname); + gl_dbg("System : %s\n", uts.sysname); + gl_dbg("Machine : %s\n", uts.machine); + gl_dbg("Nodename : %s\n", uts.nodename); + gl_dbg("Release : %s \n", uts.release); + gl_dbg("Version : %s \n", uts.version); + } + + memset(&r_usage,0x00,sizeof(struct rusage)); + // process info. + gl_dbg("Process priority : %d\n", getpriority(PRIO_PROCESS, getpid())); + getrusage(RUSAGE_SELF, &r_usage); + gl_dbg("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); + + + } + + // host environment variables + { + extern char **environ; + char **env = environ; + + gl_dbg("\n[[ Host environment variables ]]\n"); + while (*env) + { + gl_dbg("%s\n", *env); + env++; + } + } + + // applied samsung feature + { + } + + +} + +void +gl_ta_accum_show_result(int direction) +{ + int i = 0; + char format[GL_TA_FORMAT_LEN_MAX] = { 0, }; + FILE *fp = stderr; + + if (!gl_g_accums) + return; + + switch (direction) + { + case GL_TA_SHOW_STDOUT: + fp = stdout; + break; + case GL_TA_SHOW_STDERR: + fp = stderr; + break; + case GL_TA_SHOW_FILE: + { + fp = fopen(GL_TA_RESULT_FILE, "wt"); + if (!fp) + return; + } + } + __print_some_info(fp); + +#ifdef GL_TA_UNIT_MSEC + snprintf(format, sizeof(format), + "[%%3d] %%-%ds | \ttotal : %%4ld\tcalls : %%3ld\tavg : %%4ld\tmin : %%4ld\tmax : %%4ld\tstart : %%4lu\tend : %%4lu\tunpair : %%3ld\n", + gl_g_accum_longest_name); + gl_dbg("BEGIN RESULT ACCUM============================ : NumOfItems : %d, unit(msec)\n", gl_g_accum_index); +#else + snprintf(format, sizeof(format), + "[%%3d] %%-%ds | \ttotal : %%ld\tcalls : %%ld\tavg : %%ld\tmin : %%ld\tmax : %%ld\tstart : %%lu\tend : %%lu\tunpair : %%ld\n", + gl_g_accum_longest_name); + gl_dbg("BEGIN RESULT ACCUM============================ : NumOfItems : %d, unit(usec)\n", gl_g_accum_index); +#endif + + for (i = 0; i < gl_g_accum_index; i++) + { + // prevent 'devide by zero' error + if (gl_g_accums[i]->num_calls == 0) + gl_g_accums[i]->num_calls = 1; + + /*fprintf(fp, + format, + i, + gl_g_accums[i]->name, + gl_g_accums[i]->elapsed_accum, + gl_g_accums[i]->num_calls, + (gl_g_accums[i]->elapsed_accum == 0) ? 0 : (int)(gl_g_accums[i]->elapsed_accum / gl_g_accums[i]->num_calls), // Fix it! : devide by zero. + gl_g_accums[i]->elapsed_min, + gl_g_accums[i]->elapsed_max, + gl_g_accums[i]->first_start - gl_g_accum_first_time, + gl_g_accums[i]->last_end - gl_g_accum_first_time, + gl_g_accums[i]->num_unpair);*/ + } + gl_dbg("END RESULT ACCUM ============================\n"); + + if (direction == GL_TA_SHOW_FILE) + fclose(fp); +} + +#endif //_ENABLE_TA diff --git a/src/util/gl-thread-util.c b/src/util/gl-thread-util.c new file mode 100644 index 0000000..ee15cfa --- /dev/null +++ b/src/util/gl-thread-util.c @@ -0,0 +1,613 @@ +/* +* 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 "gl-thread-util.h" +#include "gl-ui-util.h" +#include "gl-util.h" +#include "gl-debug.h" +#include "gl-data.h" +#include "gl-popup.h" +#include "gl-progressbar.h" +#include "gl-strings.h" +#include "gl-notify.h" +#include "gl-albums.h" +#include "gl-thumbs.h" + +#define GALLERY_MAGIC_MAIN_CONTEXT (0x1983cdaf) +#define GALLERY_MAGIC_DETAIL_LIST_ITEM (0x1977abcd) +#define GALLERY_MAGIC_PIPE_DATA (0x0716ffcc) + +#define GALLERY_MAGIC unsigned int __magic +#define GALLERY_MAGIC_SET(d, m) (d)->__magic = (m) +#define GALLERY_MAGIC_CHECK(d, m) ((d) && ((d)->__magic == (m))) + +#define GL_THREAD_PBAR_TIMER_INC 0.5 + +typedef struct +{ + GALLERY_MAGIC; + int finished_cnt; + int state; /* 0: operation is over; 1: operation is in process */ + int popup_op; +} gl_thread_pipe_data; + +#define GL_TID syscall(__NR_gettid) + +static int _gl_thread_operate_medias(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + int ret = -1; + + int (*op_cb) (void *data); + op_cb = ad->pbarinfo.op_cb; + ad->pbarinfo.op_cb = NULL; + gl_dbg("Operation: %p", op_cb); + if (op_cb) + ret = op_cb(data); + if (ret < 0) { + gl_thread_set_cancel_state(ad, GL_PB_CANCEL_ERROR); + gl_dbgE("Operation failed!"); + return -1; + } + + return 0; +} + +static int _gl_thread_update_view(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + int (*update_cb) (void *data); + update_cb = ad->pbarinfo.update_cb; + ad->pbarinfo.update_cb = NULL; + ad->pbarinfo.del_item_cb = NULL; + ad->pbarinfo.total_cnt = 0; + gl_dbg("Update: %p", update_cb); + if (update_cb) + update_cb(data); + return 0; +} + +static void *_gl_thread_data_thread(void *data) +{ + GL_CHECK_NULL(data); + gl_appdata *ad = (gl_appdata *)data; + int cancel_flag = 0; + + gl_dbg("@@@@@@@@@@ :::: Child thread ID = %d :::: @@@@@@@@@@", GL_TID); + + gl_dbgW("Waiting for start signal ==="); + /* do not need to wait now......to show progressbar immediately + gl_thread_wait_next_signal(ad); + */ + gl_dbgW("Received start signal +++"); + + /* Media movement/deleting operation/add tag/remove tag */ + _gl_thread_operate_medias(data); + /* send finish signal */ + gl_thread_pipe_data pipe_data; + memset(&pipe_data, 0x00, sizeof(gl_thread_pipe_data)); + GALLERY_MAGIC_SET(&pipe_data, GALLERY_MAGIC_PIPE_DATA); + /* Set over state */ + pipe_data.state = 0; + gl_thread_get_cancel_state(ad, &cancel_flag); + + ecore_pipe_write(ad->pbarinfo.sync_pipe, &pipe_data, sizeof(gl_thread_pipe_data)); + + gl_dbg("@@@@@@@@@@ :::: Child thread done :::: @@@@@@@@@@"); + + return (void *)0; +} + +static Eina_Bool _gl_thread_del_pbar_idler_cb(void *data) +{ + gl_dbg("Delete progressbar..."); + GL_CHECK_CANCEL(data); + gl_appdata *ad = (gl_appdata *)data; + /* Reset pb_cancel */ + gl_thread_set_cancel_state(ad, GL_PB_CANCEL_NONE); + /* Destroy lock */ + gl_thread_destroy_lock(ad); + /* Operation done, destroy progressbar */ + gl_pb_del_pbar(ad); + + GL_IF_DEL_TIMER(ad->pbarinfo.del_pbar_timer); + return ECORE_CALLBACK_CANCEL; +} + +static void _gl_thread_pipe_cb(void *data, void *buffer, unsigned int nbyte) +{ + gl_dbg(":::::::::: Main thread ID = %d ::::::::::", GL_TID); + GL_CHECK(data); + GL_CHECK(buffer); + gl_appdata *ad = (gl_appdata *)data; + gl_thread_pipe_data *p_pipe_data = (gl_thread_pipe_data *) buffer; + gl_dbg("Pipe state is %d", p_pipe_data->state); + + if (!GALLERY_MAGIC_CHECK(p_pipe_data, GALLERY_MAGIC_PIPE_DATA)) { + gl_dbgE("##### :: Check p_pipe_data Magic failed :: #####"); + return; + } + + int cancel_flag = false; + gl_thread_get_cancel_state(ad, &cancel_flag); + + if (p_pipe_data->popup_op) + { + if (p_pipe_data->state) + { + /* Check cancel_flag */ + if (cancel_flag != GL_PB_CANCEL_NORMAL) { + gl_dbgE("Failed to kill thread, try again!"); + gl_thread_emit_next_signal(ad); + return; + } + } + } + + /* Update progressbar state */ + if (p_pipe_data->state) { + /*int (*del_item_cb) (void *data, int index); + del_item_cb = ad->pbarinfo.del_item_cb; + gl_sdbg("Delete callback: %p", del_item_cb); + if (del_item_cb) + del_item_cb(data, p_pipe_data->finished_cnt-1);*/ + + /* Check cancel_flag */ + if (cancel_flag != GL_PB_CANCEL_NORMAL) { + gl_dbgE("Failed to kill thread, try again!"); + gl_thread_emit_next_signal(ad); + return; + } + + /* 1. Moving/deleting is in porcess */ + gl_pb_refresh_thread_pbar(ad, p_pipe_data->finished_cnt, + ad->pbarinfo.total_cnt); + gl_dbg("@@@ finished/all = %d/%d, updating progressbar @@@", + p_pipe_data->finished_cnt, ad->pbarinfo.total_cnt); + /* Emit signal to notice child thread handle next media */ + gl_dbg("Emit next signal..."); + gl_thread_emit_next_signal(ad); + } else { + /* 2. Moving/deleting is over, show finished count */ + gl_dbg("@@@ finished: %d, updating progressbar @@@", + ad->pbarinfo.finished_cnt); + gl_pb_refresh_thread_pbar(ad, ad->pbarinfo.finished_cnt, + ad->pbarinfo.finished_cnt); + ad->pbarinfo.finished_cnt = 0; + gl_dbg("@@@@@@@ :::: Pipe close && Update view :::: @@@@@@@"); + /* Delete timer for some error case, that timer called after idler callback */ + GL_IF_DEL_TIMER(ad->pbarinfo.start_thread_timer); + + int cancel_flag = false; + gl_thread_get_cancel_state(ad, &cancel_flag); + if (cancel_flag == GL_PB_CANCEL_RESET) { + /* Set medias_op_type none to stop refreshing view*/ + ad->maininfo.medias_op_type = GL_MEDIA_OP_NONE; + gl_dbgW("Cancel error case, set reset state!"); + } else if (cancel_flag == GL_PB_CANCEL_ERROR) { + gl_dbgW("Operation error!"); + _gl_notify_create_notiinfo(GL_STR_OPERATION_FAILED); + } + + if (cancel_flag != GL_PB_CANCEL_BUTTON) { + /* Use timer to delete progressbar to refresh status totally */ + GL_IF_DEL_TIMER(ad->pbarinfo.del_pbar_timer); + Ecore_Timer *timer = NULL; + timer = ecore_timer_add(0.5f, _gl_thread_del_pbar_idler_cb, + ad); + ad->pbarinfo.del_pbar_timer = timer; + } + + gl_dbg("MMC state: %d, OP type: %d.", ad->maininfo.mmc_state, + ad->maininfo.medias_op_type); + /* Operate medias related to MMC while moving medias */ + if (ad->maininfo.mmc_state == GL_MMC_STATE_REMOVED_MOVING) { + ad->maininfo.mmc_state = GL_MMC_STATE_REMOVED; + + /** + * 1, Places: Add tag; + * 2, Tags: Add tag/remove tag; + * 3, Albums: Move/Delete/Add tag. + * + * Case 1: Source folder/tag/marker does exist, update view. + * Case 2: Source folder is MMC, and it vanished. + */ + gl_cluster *cur_album = _gl_albums_get_current(data); + if (cur_album && cur_album->cluster && + cur_album->cluster->type == GL_STORE_T_MMC) { + gl_dbgW("MMC removed, change to albums view!"); + gl_pop_to_ctrlbar_ly(ad); + } else { + _gl_thread_update_view(ad); + } + } else { + /* Operated files on MMC, reset MMC state */ + if (ad->maininfo.mmc_state == GL_MMC_STATE_ADDED_MOVING) { + ad->maininfo.mmc_state = GL_MMC_STATE_ADDED; + } else if (ad->maininfo.mmc_state == GL_MMC_STATE_ADDING_MOVING) { + ad->maininfo.mmc_state = GL_MMC_STATE_ADDED; + } + /* Refresh view */ + _gl_thread_update_view(ad); + } + + /* Free Ecore_Pipe object created */ + GL_IF_DEL_PIPE(ad->pbarinfo.sync_pipe); + /* Set medias_op_type none to stop refreshing view*/ + ad->maininfo.medias_op_type = GL_MEDIA_OP_NONE; + } +} + +/******************************************************* +** Prototype : gl_thread_emit_next_signal +** Description : Emit signal to notice child thread handle next media. +** Input : void *data +** Output : None +** Return Value : +** Calls : +** Called By : +** +** History : +** 1.Date : 2011/06/10 +** Author : Samsung +** Modification : Created function +** +*********************************************************/ +int gl_thread_emit_next_signal(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + pthread_mutex_lock(&(ad->pbarinfo.refresh_lock)); + gl_dbg("refresh_flag: %d.", ad->pbarinfo.refresh_flag); + if (ad->pbarinfo.refresh_flag == 0) + { + ad->pbarinfo.refresh_flag = 1; + pthread_cond_signal(&(ad->pbarinfo.refresh_cond)); + } + pthread_mutex_unlock(&(ad->pbarinfo.refresh_lock)); + + return 0; +} + +/******************************************************* +** Prototype : gl_thread_wait_next_signal +** Description : Wait start signal to handle next media. +** Input : void *data +** Output : None +** Return Value : +** Calls : +** Called By : +** +** History : +** 1.Date : 2011/06/10 +** Author : Samsung +** Modification : Created function +** +*********************************************************/ +int gl_thread_wait_next_signal(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + pthread_mutex_lock(&(ad->pbarinfo.refresh_lock)); + gl_dbg("refresh_flag: %d.", ad->pbarinfo.refresh_flag); + while (ad->pbarinfo.refresh_flag == 0) + { + gl_dbg("Thread waiting..."); + pthread_cond_wait(&(ad->pbarinfo.refresh_cond), &(ad->pbarinfo.refresh_lock)); + } + ad->pbarinfo.refresh_flag = 0; + pthread_mutex_unlock(&(ad->pbarinfo.refresh_lock)); + + return 0; +} + +/******************************************************* +** Prototype : gl_thread_set_cancel_state +** Description : Set the value of cancel flag. +** Input : void *data +** Input : int val +** Output : None +** Return Value : +** Calls : +** Called By : +** +** History : +** 1.Date : 2011/06/10 +** Author : Samsung +** Modification : Created function +** +*********************************************************/ +int +gl_thread_set_cancel_state(void *data, int val) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + pthread_mutex_lock(&(ad->pbarinfo.pbar_lock)); + ad->pbarinfo.pbar_cancel = val; + pthread_mutex_unlock(&(ad->pbarinfo.pbar_lock)); + + return 0; +} + +/******************************************************* +** Prototype : gl_thread_get_cancel_state +** Description : Get the value of cancel flag. +** Input : void *data +** Output : int* val +** Return Value : +** Calls : +** Called By : +** +** History : +** 1.Date : 2011/06/10 +** Author : Samsung +** Modification : Created function +** +*********************************************************/ +int +gl_thread_get_cancel_state(void *data, int *val) +{ + GL_CHECK_VAL(val, -1); + gl_appdata *ad = (gl_appdata *)data; + + pthread_mutex_lock(&(ad->pbarinfo.pbar_lock)); + *val = ad->pbarinfo.pbar_cancel; + pthread_mutex_unlock(&(ad->pbarinfo.pbar_lock)); + + return 0; +} + + +/******************************************************* +** Prototype : gl_thread_write_pipe +** Description : Write date to pipe in order to make progressbar refreshed +** Input : void *data +** Input : int finished_cnt +** Input : int popup_op +** Output : None +** Return Value : +** Calls : +** Called By : +** +** History : +** 1.Date : 2011/06/10 +** Author : Samsung +** Modification : Created function +** +*********************************************************/ +void gl_thread_write_pipe(void *data, int finished_cnt, int popup_op) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + int cancel_flag = false; + gl_dbg("Wait next signal..."); + gl_thread_wait_next_signal(ad); + gl_dbg("Receive next signal..."); + gl_thread_pipe_data pipe_data; + memset(&pipe_data, 0x00, sizeof(gl_thread_pipe_data)); + GALLERY_MAGIC_SET(&pipe_data, GALLERY_MAGIC_PIPE_DATA); + + pipe_data.state = 1; + pipe_data.finished_cnt = finished_cnt; + pipe_data.popup_op = popup_op; + + gl_thread_get_cancel_state(ad, &cancel_flag); + + if (cancel_flag == GL_PB_CANCEL_BUTTON || + cancel_flag == GL_PB_CANCEL_MMC || + cancel_flag == GL_PB_CANCEL_ERROR || + cancel_flag == GL_PB_CANCEL_RESET) + { + //send cancel signal through pipe + pipe_data.finished_cnt = -1; + /* Set over state */ + pipe_data.state = 0; + ecore_pipe_write(ad->pbarinfo.sync_pipe, &pipe_data, sizeof(gl_thread_pipe_data)); + //exit the child thread + if (cancel_flag == GL_PB_CANCEL_BUTTON) + { + gl_dbg("Cancel button tapped, child thread exit!"); + } + else if (cancel_flag == GL_PB_CANCEL_MMC) + { + gl_dbg("MMC removed, child thread exit!"); + } + else if (cancel_flag == GL_PB_CANCEL_ERROR) + { + gl_dbg("Error happened, child thread exit!"); + } + else if (cancel_flag == GL_PB_CANCEL_RESET) { + gl_dbg("Reset gallery, child thread exit!"); + } + + pthread_exit((void *)1); + } + else + { + gl_dbg("Writing pipe..."); + ecore_pipe_write(ad->pbarinfo.sync_pipe, &pipe_data, sizeof(gl_thread_pipe_data)); + } +} + +/******************************************************* +** Prototype : gl_thread_gen_data_thread +** Description : Create child thread for moving or deleting medias +** Input : void *data +** Output : None +** Return Value : +** Calls : +** Called By : +** +** History : +** 1.Date : 2011/06/10 +** Author : Samsung +** Modification : Created function +** +*********************************************************/ +int +gl_thread_gen_data_thread(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + pthread_t tid; + pthread_attr_t attr; + int ret = -1; + + gl_dbg("Creating child thread."); + //add pipe for update progressbar status + ad->pbarinfo.sync_pipe = ecore_pipe_add(_gl_thread_pipe_cb, ad); + //initialize thread attributes + ret = pthread_attr_init(&attr); + if (ret == 0) + { + ret = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); + if (ret == 0) + { + //create child thread + ret = pthread_create(&tid, &attr, _gl_thread_data_thread, ad); + if (ret != 0) + { + gl_dbgE("[Error] ##### :: pthread_create failed :: #####"); + pthread_attr_destroy(&attr); + return -1; + } + } + } + + gl_dbg("\n\n[Done] @@@@@@@@@@ :::: pthread_create successfull :::: @@@@@@@@@@\n"); + pthread_attr_destroy(&attr); + + return 0; +} + +/******************************************************* +** Prototype : gl_thread_destroy_lock +** Description : Destroy mutex lock. +** Input : void *data +** Output : None +** Return Value : +** Calls : +** Called By : +** +** History : +** 1.Date : 2011/06/10 +** Author : Samsung +** Modification : Created function +** +*********************************************************/ +int +gl_thread_destroy_lock(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg("@@@@@@@@@@ :::: Destroy MUTEX :::: @@@@@@@@@@"); + + /** + * The variable below was accessed without holding a guarding lock. + * In a multithreaded environment, this can lead to a race condition. + * Add lock to prevent from RC. + */ + pthread_mutex_lock(&(ad->pbarinfo.refresh_lock)); + ad->pbarinfo.refresh_flag = 0; + pthread_mutex_unlock(&(ad->pbarinfo.refresh_lock)); + + pthread_cond_destroy(&(ad->pbarinfo.refresh_cond)); + pthread_mutex_destroy(&(ad->pbarinfo.pbar_lock)); + pthread_mutex_destroy(&(ad->pbarinfo.refresh_lock)); + + return 0; +} + +/******************************************************* +** Prototype : gl_thread_init_lock +** Description : Initialize mutex lock +** Input : void *data +** Output : None +** Return Value : +** Calls : +** Called By : +** +** History : +** 1.Date : 2011/06/10 +** Author : Samsung +** Modification : Created function +** +*********************************************************/ +int gl_thread_init_lock(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg("@@@@@@@@@@ :::: Initialize MUTEX :::: @@@@@@@@@@"); + + pthread_mutex_init(&(ad->pbarinfo.pbar_lock), NULL); + pthread_mutex_init(&(ad->pbarinfo.refresh_lock), NULL); + pthread_cond_init(&(ad->pbarinfo.refresh_cond), NULL); + + /** + * The variable below was accessed without holding a guarding lock. + * In a multithreaded environment, this can lead to a race condition. + * Add lock to prevent from RC. + */ + pthread_mutex_lock(&(ad->pbarinfo.refresh_lock)); + ad->pbarinfo.refresh_flag = 0; + pthread_mutex_unlock(&(ad->pbarinfo.refresh_lock)); + + return 0; +} + +int _gl_thread_set_op_cb(void *data, void *op_cb) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + ad->pbarinfo.op_cb = op_cb; + return 0; +} + +int _gl_thread_set_update_cb(void *data, void *update_cb) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + ad->pbarinfo.update_cb = update_cb; + return 0; +} + +int _gl_thread_set_del_item_cb(void *data, void *del_item_cb) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + ad->pbarinfo.del_item_cb = del_item_cb; + return 0; +} + +int _gl_thread_set_total_cnt(void *data, int total_cnt) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + ad->pbarinfo.total_cnt = total_cnt; + return 0; +} + diff --git a/src/util/gl-ui-util.c b/src/util/gl-ui-util.c new file mode 100644 index 0000000..e577b51 --- /dev/null +++ b/src/util/gl-ui-util.c @@ -0,0 +1,805 @@ +/* +* 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 "gl-fs.h" +#include "gl-ui-util.h" +#include "gl-util.h" +#include "gl-ext-ug-load.h" +#include "gl-ext-exec.h" +#include "gl-button.h" +#include "gl-thumbs.h" +#include "gl-controlbar.h" +#include "gl-albums.h" +#include "gl-debug.h" +#include "gl-data.h" +#include "gl-thread-util.h" +#include "gl-pinchzoom.h" +#include "gl-popup.h" +#include "gl-ctxpopup.h" +#include "gl-progressbar.h" +#include "gl-albums-sel.h" +#include "gl-thumbs-edit.h" +#include "gl-thumbs-sel.h" +#include "gl-strings.h" +#include "gl-icons.h" +#include "gl-notify.h" +#include "gl-file-util.h" +#include "gl-timeline.h" + +#define GL_NAVIBAR_STYLE_DEFAULT GL_CHECKBOX_STYLE_DEFAULT +#define GL_SELALL_TIMER_INT 0.3 + +int _gl_ui_hide_back_button(Elm_Object_Item *nf_it) +{ + GL_CHECK_VAL(nf_it, -1); + elm_object_item_part_content_set(nf_it, GL_NAVIFRAME_PREV_BTN, NULL); + return 0; +} + +static void __gl_ui_show_title_toolbar(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + ad->entryinfo.b_hide_sip = true; + Evas_Object *nf = ad->maininfo.naviframe; + Elm_Object_Item *navi_it = elm_naviframe_top_item_get(nf); + GL_CHECK(navi_it); + switch (ad->maininfo.rotate_mode) { + case APP_DEVICE_ORIENTATION_90: + case APP_DEVICE_ORIENTATION_270: + elm_naviframe_item_title_enabled_set(navi_it, EINA_FALSE, EINA_FALSE); + break; + default: + break; + } +} + +static void __gl_ui_hide_title_toolbar(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + ad->entryinfo.b_hide_sip = false; + Evas_Object *nf = ad->maininfo.naviframe; + Elm_Object_Item *navi_it = elm_naviframe_top_item_get(nf); + GL_CHECK(navi_it); + elm_naviframe_item_title_enabled_set(navi_it, EINA_TRUE, EINA_FALSE); +} + +int _gl_ui_clear_btns(void *data) +{ + GL_CHECK_VAL(data, -1); + Evas_Object *btn = NULL; + gl_dbg(""); + + /* Remove more */ + btn = _gl_ui_get_btn(data, NULL, GL_NAVIFRAME_MORE); + GL_IF_DEL_OBJ(btn); + /* Remove TOOLBAR */ + btn = _gl_ui_get_btn(data, NULL, GL_NAVIFRAME_TOOLBAR); + GL_IF_DEL_OBJ(btn); + btn = _gl_ui_get_btn(data, NULL, GL_NAVIFRAME_TITLE_RIGHT_BTN); + GL_IF_DEL_OBJ(btn); + btn = _gl_ui_get_btn(data, NULL, GL_NAVIFRAME_TITLE_LEFT_BTN); + GL_IF_DEL_OBJ(btn); + return 0; +} + +Evas_Object *gl_ui_load_edj(Evas_Object *parent, const char *file, const char *group) +{ + Evas_Object *eo = NULL; + eo = elm_layout_add(parent); + GL_CHECK_NULL(eo); + + int r = 0; + r = elm_layout_file_set(eo, file, group); + if (!r) { + evas_object_del(eo); + return NULL; + } + + evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(eo, EVAS_HINT_FILL, EVAS_HINT_FILL); + return eo; +} + +int _gl_ui_rm_selall_btn(Elm_Object_Item *nf_it) +{ + GL_CHECK_VAL(nf_it, -1); + Evas_Object *btn = NULL; + btn = elm_object_item_part_content_get(nf_it, + GL_NAVIFRAME_TITLE_RIGHT_BTN); + GL_IF_DEL_OBJ(btn); + return 0; +} + +int _gl_ui_add_selall_btn(Evas_Object *naviframe, Elm_Object_Item *nf_it, + Evas_Smart_Cb cb_func, void *data) +{ + GL_CHECK_VAL(data, -1); + GL_CHECK_VAL(naviframe, -1); + gl_appdata *ad = (gl_appdata *)data; + Elm_Object_Item *_nf_it = nf_it; + + if (_nf_it == NULL) { + _nf_it = elm_naviframe_top_item_get(naviframe); + GL_CHECK_VAL(_nf_it, -1); + } + Evas_Object *sel_all_btn = NULL; + sel_all_btn = _gl_but_create_image_but(naviframe, + GL_ICON_TITLE_SELECT_ALL, NULL, + GL_BUTTON_STYLE_NAVI_TITLE_ICON, + cb_func, data, EINA_FALSE); + GL_CHECK_VAL(sel_all_btn, -1); + elm_object_item_part_content_set(_nf_it, GL_NAVIFRAME_TITLE_RIGHT_BTN, + sel_all_btn); + ad->selinfo.ck_state = false; + return 0; +} + +#if 0 +int _gl_ui_add_xpt_btns(Elm_Object_Item *nf_it, gl_ui_xpt_btn_e xpt_btn, + Evas_Smart_Cb r_cb, Evas_Smart_Cb l_cb, void *data) +{ + /* Get expanded title */ + Evas_Object *title = NULL; + title = elm_object_item_part_content_get(nf_it, "title"); + GL_CHECK_VAL(title, -1); + /* Camera */ + if (xpt_btn & GL_UI_XPT_CAMERA) { + /* New-album , add left before right for customized TTS */ + if (xpt_btn & GL_UI_XPT_SHARE) + _gl_expn_title_add_left_btn(title, GL_ICON_SHARE, + _gl_str(GL_STR_ID_NEW_ALBUM), + l_cb, data); + _gl_expn_title_add_right_btn(title, GL_ICON_CAMERA, + _gl_str(GL_STR_ID_CAMERA), r_cb, + data); + /* Select-all */ + } else if (xpt_btn & GL_UI_XPT_SEL_ALL) { + if (xpt_btn & GL_UI_XPT_DONE) + _gl_expn_title_add_left_btn(title, GL_ICON_DONE, + _gl_str(GL_STR_ID_DONE), + l_cb, data); + _gl_expn_title_add_right_btn(title, GL_ICON_TITLE_SELECT_ALL, + GL_STR_SELECT_ALL, r_cb, data); + } else { + gl_dbgE("Wrong mode!"); + } + _gl_expn_title_set_tts(title); + return 0; +} + +Evas_Object *_gl_ui_get_xpt_btn(Elm_Object_Item *nf_it, gl_ui_xpt_btn_e ui_btn) +{ + /* Get expanded title */ + Evas_Object *title = NULL; + title = elm_object_item_part_content_get(nf_it, "title"); + GL_CHECK_NULL(title); + gl_xtp_btn_e xpt_btn = GL_XPT_BTN_RIGHT; + if (ui_btn & GL_UI_XPT_SHARE) + xpt_btn = GL_XPT_BTN_LEFT; + return _gl_expn_title_get_btn(title, xpt_btn); +} + +int _gl_ui_disable_xpt_btn(Elm_Object_Item *nf_it, gl_ui_xpt_btn_e ui_btn, bool b_disabled) +{ + Evas_Object *btn = NULL; + btn = _gl_ui_get_xpt_btn(nf_it, ui_btn); + if (btn) + elm_object_disabled_set(btn, b_disabled); + else + gl_dbgE("Failed to get xpt button!"); + return 0; +} + +int _gl_ui_clear_xpt_btns(Elm_Object_Item *nf_it) +{ + /* Get expanded title */ + Evas_Object *title = NULL; + title = elm_object_item_part_content_get(nf_it, "title"); + GL_CHECK_VAL(title, -1); + _gl_expn_title_clear_btns(title); + return 0; +} +#endif + +Evas_Object *_gl_ui_create_gridview_ly(void *data, Evas_Object *parent) +{ + GL_CHECK_NULL(parent); + GL_CHECK_NULL(data); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg(""); + + Evas_Object *layout = NULL; + layout = gl_ui_load_edj(ad->maininfo.naviframe, GL_EDJ_FILE, + GL_GRP_GRIDVIEW); + evas_object_show(layout); + + return layout; +} + +gl_icon_type_e _gl_ui_elm_bg_file_set(Evas_Object *bg, gl_item *git) +{ + if (git == NULL || git->item == NULL) { + gl_dbgE("Invalid item :%p", git); + elm_bg_file_set(bg, GL_ICON_CONTENTS_BROKEN, NULL); + return GL_ICON_CORRUPTED_FILE; + } + + elm_bg_file_set(bg, _GET_ICON(git->item->thumb_url), NULL); + return GL_ICON_NORMAL; +} + +int _gl_ui_set_content(Evas_Object *layout, const char *part, + Evas_Object *new_content) +{ + GL_CHECK_VAL(layout, -1); + GL_CHECK_VAL(new_content, -1); + Evas_Object *old_content = NULL; + + old_content = elm_object_part_content_get(layout, part); + if (old_content && old_content == new_content) { + gl_dbg("Already set"); + return 0; + } + + gl_dbg("Set content"); + elm_object_part_content_set(layout, part, new_content); + + return 0; +} + +int _gl_ui_set_toolbar_state(void *data, bool b_hide) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->maininfo.naviframe, -1); + Elm_Object_Item *navi_it = elm_naviframe_top_item_get(ad->maininfo.naviframe); + GL_CHECK_VAL(navi_it, -1); + if (b_hide) + elm_object_item_signal_emit(navi_it, "elm,state,toolbar,instant_close", + ""); + else + elm_object_item_signal_emit(navi_it, "elm,state,toolbar,instant_open", + ""); + return 0; + +} + +bool _gl_ui_hide_keypad(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + if (ad->entryinfo.b_hide_sip) { + if (ad->entryinfo.context) { + ad->entryinfo.b_hide_sip = false; + return true; + } + } + return false; + +} + +int _gl_ui_add_conform_cbs(void *data) +{ + GL_CHECK_VAL(data, -1); + + gl_appdata *ad = (gl_appdata *)data; + Evas_Object *naviframe = ad->maininfo.naviframe; + Evas_Object *conform = NULL; + + /* Get conformant */ + conform = (Evas_Object *)evas_object_data_get(naviframe, + GL_NAVIFRAME_OBJ_DATA_KEY); + GL_CHECK_VAL(conform, -1); + + evas_object_smart_callback_add(conform, GL_IMF_ON, + __gl_ui_show_title_toolbar, data); + evas_object_smart_callback_add(conform, GL_IMF_OFF, + __gl_ui_hide_title_toolbar, data); + evas_object_smart_callback_add(conform, GL_STA_ON, + __gl_ui_show_title_toolbar, data); + evas_object_smart_callback_add(conform, GL_STA_OFF, + __gl_ui_hide_title_toolbar, data); + return 0; +} + +int _gl_ui_del_conform_cbs(Evas_Object *naviframe) +{ + GL_CHECK_VAL(naviframe, -1); + Evas_Object *conform = NULL; + + /* Get conformant */ + conform = (Evas_Object *)evas_object_data_get(naviframe, + GL_NAVIFRAME_OBJ_DATA_KEY); + GL_CHECK_VAL(conform, -1); + + evas_object_smart_callback_del(conform, GL_IMF_ON, + __gl_ui_show_title_toolbar); + evas_object_smart_callback_del(conform, GL_IMF_OFF, + __gl_ui_hide_title_toolbar); + evas_object_smart_callback_del(conform, GL_STA_ON, + __gl_ui_show_title_toolbar); + evas_object_smart_callback_del(conform, GL_STA_OFF, + __gl_ui_hide_title_toolbar); + return 0; +} + + +int _gl_ui_set_conform_overlap(Evas_Object *naviframe) +{ + GL_CHECK_VAL(naviframe, -1); + Evas_Object *conform = NULL; + + /* Get conformant */ + conform = (Evas_Object *)evas_object_data_get(naviframe, + GL_NAVIFRAME_OBJ_DATA_KEY); + GL_CHECK_VAL(conform, -1); + /* Modify to start content from 0,0 */ + elm_object_signal_emit(conform, "elm,state,indicator,overlap", ""); + evas_object_data_set(conform, "overlap", (void *)EINA_TRUE); + return 0; +} + +int _gl_ui_disable_btn(Evas_Object *btn) +{ + if (btn) + elm_object_disabled_set(btn, EINA_TRUE); + return 0; +} + +int _gl_ui_enable_btn(Evas_Object *btn) +{ + if (btn) + elm_object_disabled_set(btn, EINA_FALSE); + return 0; +} + +/* Set button more */ +int _gl_ui_disable_menu(Elm_Object_Item *nf_it, bool b_disabled) +{ + GL_CHECK_VAL(nf_it, -1); + Evas_Object *btn = NULL; + gl_dbg("more: %d", b_disabled); + btn = elm_object_item_part_content_get(nf_it, GL_NAVIFRAME_MORE); + if (btn) + elm_object_disabled_set(btn, b_disabled); + return 0; +} + +/* Get button*/ +Evas_Object *_gl_ui_get_btn(void *data, Elm_Object_Item *nf_it, + const char *part) +{ + Elm_Object_Item *_nf_it = nf_it; + + if (_nf_it == NULL) { + GL_CHECK_NULL(data); + gl_appdata *ad = (gl_appdata *)data; + _nf_it = elm_naviframe_top_item_get(ad->maininfo.naviframe); + GL_CHECK_NULL(_nf_it); + } + + return elm_object_item_part_content_get(_nf_it, part); +} + +/* Update all realized items's checkbox */ +int _gl_ui_update_realized_list_ck(Evas_Object *view, const char *part, + Eina_Bool state) +{ + GL_CHECK_VAL(part, -1); + GL_CHECK_VAL(view, -1); + Eina_List *list = NULL; + Eina_List *l = NULL; + Elm_Object_Item *it = NULL; + + list = elm_genlist_realized_items_get(view); + GL_CHECK_VAL(list, -1); + + EINA_LIST_FOREACH(list, l, it) { + if (it == NULL) { + gl_dbgE("Invalid item!"); + continue; + } + _gl_ui_set_checkbox_state(it, part, state); + } + return 0; +} + +int _gl_ui_update_realized_grid_ck(Evas_Object *view, const char *part1, + const char *part2, Eina_Bool state) +{ + GL_CHECK_VAL(view, -1); + Eina_List *grid = NULL; + Eina_List *l = NULL; + Elm_Object_Item *it = NULL; + + grid = elm_gengrid_realized_items_get(view); + GL_CHECK_VAL(grid, -1); + + EINA_LIST_FOREACH(grid, l, it) { + if (it == NULL) { + gl_dbgE("Invalid item!"); + continue; + } + if (part1) + _gl_ui_set_checkbox_state(it, part1, state); + if (part2) + _gl_ui_set_checkbox_state(it, part2, state); + } + return 0; +} + +int _gl_ui_set_checkbox_state(Elm_Object_Item *it, const char *part, + Eina_Bool state) +{ + GL_CHECK_VAL(part, -1); + GL_CHECK_VAL(it, -1); + Evas_Object *ck = NULL; + + ck = elm_object_item_part_content_get(it, part); + if (ck == NULL) { + gl_dbgE("Invalid checkbox!"); + return -1; + } + + if (elm_check_state_get(ck) != state) + elm_check_state_set(ck, state); + return 0; +} + +/* Update all realized items's field */ +int _gl_ui_update_realized_list_field(Evas_Object *view, const char *part) +{ + GL_CHECK_VAL(part, -1); + GL_CHECK_VAL(view, -1); + Eina_List *list = NULL; + Eina_List *l = NULL; + Elm_Object_Item *it = NULL; + + list = elm_genlist_realized_items_get(view); + GL_CHECK_VAL(list, -1); + + EINA_LIST_FOREACH(list, l, it) { + if (_gl_ui_update_list_field(it, part) < 0) + return -1; + } + return 0; +} + +int _gl_ui_update_list_field(Elm_Object_Item *it, const char *part) +{ + GL_CHECK_VAL(part, -1); + GL_CHECK_VAL(it, -1); + elm_genlist_item_fields_update(it, part, + ELM_GENLIST_ITEM_FIELD_CONTENT); + return 0; +} + +int _gl_ui_reset_scroller_pos(Evas_Object *obj) +{ + GL_CHECK_VAL(obj, -1); + evas_object_data_set(obj, "prev_scroller_x", (void *)0); + evas_object_data_set(obj, "prev_scroller_y", (void *)0); + evas_object_data_set(obj, "prev_scroller_w", (void *)0); + evas_object_data_set(obj, "prev_scroller_h", (void *)0); + return 0; +} + +int _gl_ui_del_scroller_pos(Evas_Object *obj) +{ + GL_CHECK_VAL(obj, -1); + evas_object_data_del(obj, "prev_scroller_x"); + evas_object_data_del(obj, "prev_scroller_y"); + evas_object_data_del(obj, "prev_scroller_w"); + evas_object_data_del(obj, "prev_scroller_h"); + return 0; +} + +int _gl_ui_save_scroller_pos(Evas_Object *obj) +{ + GL_CHECK_VAL(obj, -1); + Evas_Coord x = 0; + Evas_Coord y = 0; + Evas_Coord w = 0; + Evas_Coord h = 0; + + elm_scroller_region_get(obj, &x, &y, &w, &h); + gl_dbg("(%dx%d), (%dx%d)", x, y, w, h); + evas_object_data_set(obj, "prev_scroller_x", (void *)x); + evas_object_data_set(obj, "prev_scroller_y", (void *)y); + evas_object_data_set(obj, "prev_scroller_w", (void *)w); + evas_object_data_set(obj, "prev_scroller_h", (void *)h); + return 0; +} + +int _gl_ui_restore_scroller_pos(Evas_Object *obj) +{ + GL_CHECK_VAL(obj, -1); + Evas_Coord x = 0; + Evas_Coord y = 0; + Evas_Coord w = 0; + Evas_Coord h = 0; + + x = (Evas_Coord)evas_object_data_get(obj, "prev_scroller_x"); + y = (Evas_Coord)evas_object_data_get(obj, "prev_scroller_y"); + w = (Evas_Coord)evas_object_data_get(obj, "prev_scroller_w"); + h = (Evas_Coord)evas_object_data_get(obj, "prev_scroller_h"); + gl_dbg("(%dx%d), (%dx%d)", x, y, w, h); + if (w > 0 && h > 0) + elm_scroller_region_show(obj, x, y, w, h); + return 0; +} + +int _gl_ui_rotate_view(void *data, int view_mode) +{ + GL_CHECK_VAL(data, -1); + gl_dbg("view_mode: %d", view_mode); + + switch (view_mode) { + case GL_VIEW_ALBUMS: + case GL_VIEW_ALBUMS_EDIT: + case GL_VIEW_ALBUM_REORDER: + _gl_albums_rotate_view(data); + break; + case GL_VIEW_ALBUMS_SELECT: + _gl_albums_sel_rotate_view(data); + break; + case GL_VIEW_THUMBS: + case GL_VIEW_THUMBS_EDIT: + case GL_VIEW_THUMBS_SELECT: + _gl_thumbs_rotate_view(data); + break; + case GL_VIEW_TIMELINE: + _gl_timeline_view_rotate(data); + break; + default: + break; + } + return 0; +} + +/* Delete naviframe items from top one to @to_it */ +int _gl_ui_del_nf_items(Evas_Object *nf, Elm_Object_Item *to_it) +{ + GL_CHECK_VAL(nf, -1); + Eina_List *nf_items = NULL; + Eina_List *l = NULL; + Elm_Object_Item *it = NULL; + + nf_items = elm_naviframe_items_get(nf); + EINA_LIST_REVERSE_FOREACH(nf_items, l, it) { + if (it != to_it) { + gl_dbg("Delete one item!"); + elm_object_item_del(it); + it = NULL; + } else { + break; + } + } + eina_list_free(nf_items); + return 0; +} + +int _gl_ui_set_translate_str(Evas_Object *obj, const char *str) +{ + GL_CHECK_VAL(str, -1); + GL_CHECK_VAL(obj, -1); + char *domain = GL_STR_DOMAIN_LOCAL; + if (strstr(str, "IDS_COM")) + domain = GL_STR_DOMAIN_SYS; + elm_object_domain_translatable_text_set(obj, domain, str); + return 0; +} + +int _gl_ui_set_translatable_item(Elm_Object_Item *nf_it, const char *str) +{ + GL_CHECK_VAL(str, -1); + GL_CHECK_VAL(nf_it, -1); + char *domain = GL_STR_DOMAIN_LOCAL; + if (strstr(str, "IDS_COM")) + domain = GL_STR_DOMAIN_SYS; + elm_object_item_domain_text_translatable_set(nf_it, domain, EINA_TRUE); + return 0; +} + +int _gl_ui_set_translatable_item_part(Elm_Object_Item *nf_it, const char *part, + const char *str) +{ + GL_CHECK_VAL(str, -1); + GL_CHECK_VAL(nf_it, -1); + char *domain = GL_STR_DOMAIN_LOCAL; + if (strstr(str, "IDS_COM")) + domain = GL_STR_DOMAIN_SYS; + elm_object_item_domain_part_text_translatable_set(nf_it, part, domain, + EINA_TRUE); + return 0; +} + +int _gl_ui_set_translate_part_str(Evas_Object *obj, const char *part, + const char *str) +{ + GL_CHECK_VAL(str, -1); + GL_CHECK_VAL(part, -1); + GL_CHECK_VAL(obj, -1); + + char *domain = GL_STR_DOMAIN_LOCAL; + if (strstr(str, "IDS_COM")) + domain = GL_STR_DOMAIN_SYS; + elm_object_domain_translatable_part_text_set(obj, part, domain, str); + return 0; +} + +/* Change naviframe item title text */ +int _gl_ui_change_title(Elm_Object_Item *nf_it, const char *text) +{ + GL_CHECK_VAL(text, -1); + GL_CHECK_VAL(nf_it, -1); + elm_object_item_text_set(nf_it, text); + _gl_ui_set_translatable_item(nf_it, text); + return 0; +} + +/* Update the label text for selected item showed in naviframe title */ +int _gl_ui_update_label_text(Elm_Object_Item *nf_it, int sel_cnt, bool b_lang) +{ + GL_CHECK_VAL(nf_it, -1); + gl_dbg("Count: %d, lang: %d", sel_cnt, b_lang); + char *pd_selected = GL_STR_PD_SELECTED; + + /* Update the label text */ + if (sel_cnt > 0) { + char *text = NULL; + text = g_strdup_printf(_gl_str(pd_selected), sel_cnt); + elm_object_item_text_set(nf_it, text); + GL_GFREEIF(text); + } else if (!b_lang) { + /* Don't need to update text if it's called by language_changed_cb*/ + elm_object_item_text_set(nf_it, GL_STR_ID_SELECT_ITEM); + _gl_ui_set_translatable_item(nf_it, GL_STR_ID_SELECT_ITEM); + } + return 0; +} + +/* Change naviframe item title text */ +int _gl_ui_change_navi_title(Elm_Object_Item *nf_it, char *text, bool b_dropdown) +{ + GL_CHECK_VAL(text, -1); + GL_CHECK_VAL(nf_it, -1); + + elm_object_item_part_text_set(nf_it, "elm.text.title", _gl_str(text)); + return 0; +} + +/* Update the label text for selected item showed in naviframe title */ +int _gl_ui_update_navi_title_text(Elm_Object_Item *nf_it, int sel_cnt, bool b_lang) +{ + GL_CHECK_VAL(nf_it, -1); + gl_dbg("Count: %d, lang: %d", sel_cnt, b_lang); + char *pd_selected = GL_STR_PD_SELECTED; + + Evas_Object *btn = elm_object_item_part_content_get(nf_it, GL_NAVIFRAME_TITLE_RIGHT_BTN); + + if (btn) { + if (sel_cnt > 0) { + elm_object_disabled_set(btn, EINA_FALSE); + } else { + elm_object_disabled_set(btn, EINA_TRUE); + } + } + + /* Update the label text */ + if (sel_cnt > 0) { + char *text = NULL; + text = g_strdup_printf(_gl_str(pd_selected), sel_cnt); + elm_object_item_part_text_set(nf_it, "elm.text.title", _gl_str(text)); + gl_dbg("Text is : %s", text); + GL_GFREEIF(text); + } else if (!b_lang) { + /* Don't need to update text if it's called by language_changed_cb*/ + gl_dbg("Text is : %s", GL_STR_ID_SELECT_ITEM); + elm_object_item_part_text_set(nf_it, "elm.text.title", _gl_str(GL_STR_ID_SELECT_ITEM)); + } + return 0; +} + +int _gl_ui_add_selall_ck(Evas_Object *parent, char *part, char *part_btn, + Evas_Smart_Cb cb_func, void *data) +{ + GL_CHECK_VAL(data, -1); + GL_CHECK_VAL(parent, -1); + gl_appdata *ad = (gl_appdata *)data; + Evas_Object *sel_all_btn = NULL; + Evas_Object *sel_all_ck = NULL; + + _gl_ui_set_translate_part_str(parent, "select.all.area.label", GL_STR_ID_SELECT_ALL); + if (part) { + sel_all_ck = elm_check_add(parent); + GL_CHECK_VAL(sel_all_ck, -1); + elm_check_state_set(sel_all_ck, EINA_FALSE); + elm_object_part_content_set(parent, "select.all.area.check", sel_all_ck); + ad->selinfo.selectall_ck = sel_all_ck; + if (part_btn) { + sel_all_btn = elm_button_add(parent); + GL_CHECK_VAL(sel_all_btn, -1); + elm_object_part_content_set(parent, "select.all.area.check.fg", sel_all_btn); + elm_object_style_set(sel_all_btn, "transparent"); + evas_object_smart_callback_add(sel_all_btn, "clicked", cb_func, data); + } + } + return 0; +} + +#ifdef _USE_GRID_CHECK +int _gl_show_grid_checks(Evas_Object *view, const char *ck_part) +{ + GL_CHECK_VAL(ck_part, -1); + GL_CHECK_VAL(view, -1); + + Elm_Object_Item *first_it = NULL; + Elm_Object_Item *next_it = NULL; + Elm_Object_Item *last_it = NULL; + first_it = elm_gengrid_first_item_get(view); + last_it = elm_gengrid_last_item_get(view); + if (first_it) + elm_gengrid_item_update(first_it); + while (first_it) { + next_it = elm_gengrid_item_next_get(first_it); + if (next_it == NULL) { + gl_dbgE("Invalid item! Break!"); + break; + } + elm_gengrid_item_update(next_it); + first_it = next_it; + if (last_it == first_it) { + gl_dbg("done!"); + break; + } + } + return 0; +} + +int _gl_show_grid_checks_dual(Evas_Object *view, const char *ck_part, const char *ck_part2) +{ + GL_CHECK_VAL(ck_part, -1); + GL_CHECK_VAL(view, -1); + + Elm_Object_Item *first_it = NULL; + Elm_Object_Item *next_it = NULL; + Elm_Object_Item *last_it = NULL; + first_it = elm_gengrid_first_item_get(view); + last_it = elm_gengrid_last_item_get(view); + if (first_it) + elm_gengrid_item_update(first_it); + while (first_it) { + next_it = elm_gengrid_item_next_get(first_it); + if (next_it == NULL) { + gl_dbgE("Invalid item! Break!"); + break; + } + elm_gengrid_item_update(next_it); + first_it = next_it; + if (last_it == first_it) { + gl_dbg("done!"); + break; + } + } + return 0; +} +#endif + diff --git a/src/util/gl-util.c b/src/util/gl-util.c new file mode 100644 index 0000000..d7e96ff --- /dev/null +++ b/src/util/gl-util.c @@ -0,0 +1,2414 @@ +/* +* 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 +#ifdef _USE_SVI +#include +#endif +#include +#include +#include +#include "gl-debug.h" +#include "gallery.h" +#include "gl-albums.h" +#include "gl-thumbs.h" +#include "gl-util.h" +#include "gl-ui-util.h" +#include "gl-controlbar.h" +#include "gl-thread-util.h" +#include "gl-popup.h" +#include "gl-ctxpopup.h" +#include "gl-progressbar.h" +#include "gl-ext-ug-load.h" +#include "gl-ext-exec.h" +#include "gl-pinchzoom.h" +#include "gl-albums-sel.h" +#include "gl-thumbs-sel.h" +#include "gl-thumbs-edit.h" +#include "gl-notify.h" +#include "gl-editfield.h" +#include "gl-strings.h" +#include "gl-icons.h" +#include "gl-data-type.h" +#include "gl-fs.h" +#include "gl-db-update.h" +#ifdef _USE_ROTATE_BG +#include "gl-exif.h" +#endif +#include "gl-timeline.h" +#include "gl-file-util.h" + +#define GL_FILE_COPY_BUF_MAX 16384 +/* Time for displaying progressbar UI compeletely */ +#define GL_TIMER_INTERVAL_PBAR_SHOWED 0.5 +#define GL_TIMER_INTERVAL_VIBRATION 0.5 +#ifdef _USE_ROTATE_BG +#define GL_ROTATE_DELAY 0.25 +#endif +#define GL_SO_PATH_IMAGEVIEWER "/usr/ug/lib/libug-image-viewer-efl.so" +#define GL_FS_MIN_SIZE (500 * 1024) + +/* Use timer to show progressbar totally before write pipe */ +static Eina_Bool _gl_start_thread_op_timer_cb(void *data) +{ + gl_dbg("Emit START signal..."); + GL_CHECK_CANCEL(data); + gl_appdata *ad = (gl_appdata *)data; + /* Emit signal to notice child thread to handle next item. */ + gl_thread_emit_next_signal(ad); + GL_IF_DEL_TIMER(ad->pbarinfo.start_thread_timer); + return ECORE_CALLBACK_CANCEL; +} + +/** +* Use thread to move/copy/delete/add tag to/remove tag from medias +* for displaying progrssabar UI +*/ +int _gl_use_thread_operate_medias(void *data, char *pbar_title, int all_cnt, + int op_type) +{ + gl_dbg("all_cnt: %d, op_type: %d.", all_cnt, op_type); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + /* Initialize thread mutex lock */ + gl_thread_init_lock(ad); + /* Make progressbar */ + gl_pb_make_thread_pbar_wheel(ad, ad->maininfo.win, pbar_title); + /* Set pb_cancel, indicates thread operation is beginning */ + gl_thread_set_cancel_state(ad, GL_PB_CANCEL_NORMAL); + /* Initialize progressbar */ + gl_pb_refresh_thread_pbar(ad, 0, all_cnt); + /* Use timer to emit next signal to show progressbarbar totally */ + GL_IF_DEL_TIMER(ad->pbarinfo.start_thread_timer); + Ecore_Timer *timer = NULL; + timer = ecore_timer_add(GL_TIMER_INTERVAL_PBAR_SHOWED, + _gl_start_thread_op_timer_cb, ad); + ad->pbarinfo.start_thread_timer = timer; + /* Set media operation type */ + ad->maininfo.medias_op_type = op_type; + /* Generate child thread */ + gl_thread_gen_data_thread(ad); + return 0; +} + +bool __gl_util_get_supported_storages_callback(int storageId, storage_type_e type, storage_state_e state, const char *path, void *data) +{ + GL_CHECK_FALSE(data); + + gl_appdata *ad = (gl_appdata *)data; + if (type == STORAGE_TYPE_EXTERNAL) { + ad->maininfo.externalStorageId = storageId; + return false; + } + return true; +} + +static Eina_Bool __gl_db_update_noti_idler_cb(void *data) +{ + GL_CHECK_FALSE(data); + gl_appdata *ad = (gl_appdata *)data; + gl_dbgW("Storage state changed!"); + int error_code = -1; + + error_code = storage_foreach_device_supported(__gl_util_get_supported_storages_callback, ad); + if (error_code == STORAGE_ERROR_NONE) { + storage_state_e state; + error_code = storage_get_state(ad->maininfo.externalStorageId, &state); + if (error_code == STORAGE_ERROR_NONE) { + if (state == STORAGE_STATE_MOUNTED) { + gl_dbg("state[%d] : STORAGE_STATE_MOUNTED", state); + if (ad->maininfo.mmc_state == GL_MMC_STATE_REMOVED) + ad->maininfo.mmc_state = GL_MMC_STATE_ADDING_MOVING; + else + ad->maininfo.mmc_state = GL_MMC_STATE_ADDED; + + gl_update_view(ad, GL_UPDATE_VIEW_MMC_ADDED); + //evas_object_smart_callback_call(ad->maininfo.naviframe, + // "gallery,db,data,updated", data); + /* Remove ctxpopup */ + _gl_ctxpopup_del(ad); + } else if (state == STORAGE_STATE_REMOVED || + state == STORAGE_STATE_UNMOUNTABLE) { + gl_dbg("state[%d] : STORAGE_STATE_REMOVED", state); + if (ad->maininfo.mmc_state == GL_MMC_STATE_ADDED_MOVING) { + /* + * Set pb_cancel status, + * indicates MMC removed while moving or deleting. + */ + gl_thread_set_cancel_state(ad, GL_PB_CANCEL_MMC); + /* MMC moved while moving or deleting */ + ad->maininfo.mmc_state = GL_MMC_STATE_REMOVED_MOVING; + } else if (ad->maininfo.mmc_state == GL_MMC_STATE_REMOVED_MOVING) { + gl_dbgW("View updated on GL_MMC_STATE_ADDED_MOVING"); + GL_IF_DEL_IDLER(ad->maininfo.mmc_idler); + return ECORE_CALLBACK_CANCEL; + } else { + /* MMC is extracted */ + ad->maininfo.mmc_state = GL_MMC_STATE_REMOVED; + } + gl_update_view(ad, GL_UPDATE_VIEW_MMC_REMOVED); + //evas_object_smart_callback_call(ad->maininfo.naviframe, + // "gallery,db,data,updated", data); + /* Remove ctxpopup */ + _gl_ctxpopup_del(ad); + } + } + } else + gl_dbgE("Error when check MMC Status"); + GL_IF_DEL_IDLER(ad->maininfo.mmc_idler); + return ECORE_CALLBACK_CANCEL; +} + +void _gl_db_update_sdcard_info(int storage_id, storage_state_e state, void *user_data) { + + GL_CHECK(user_data); + gl_appdata *ad = (gl_appdata *)user_data; + GL_IF_DEL_IDLER(ad->maininfo.mmc_idler); + gl_dbg("mmc_idler: %p", ad->maininfo.mmc_idler); + ad->maininfo.mmc_idler = ecore_idler_add(__gl_db_update_noti_idler_cb, + user_data); +} + +static inline int __gl_set_sound_status(void *data, int status) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + ad->maininfo.sound_status = status; + return 0; +} + +static int __gl_get_sound_status(void *data) +{ + GL_CHECK_VAL(data, -1); + + bool check = false; + int retcode = system_settings_get_value_bool(SYSTEM_SETTINGS_KEY_SOUND_SILENT_MODE, &check); + if (retcode != SYSTEM_SETTINGS_ERROR_NONE) { + gl_dbgE("Failed to get sound status!"); + return -1; + } + + gl_dbg("sound: %d", check); + __gl_set_sound_status(data, (check == true) ? 0 : 1); + return 0; +} + +static void __gl_change_sound_status_cb(system_settings_key_e key, void *data) +{ + __gl_get_sound_status(data); +} + +static int __gl_reg_svi_noti(void *data) +{ + GL_CHECK_VAL(data, -1); + int retcode = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_SOUND_SILENT_MODE, + __gl_change_sound_status_cb, data); + if (retcode != SYSTEM_SETTINGS_ERROR_NONE) { + gl_dbgE("Failed to register the sound status callback"); + return -1; + } + return 0; +} + +static int __gl_dereg_svi_noti(void) +{ + int retcode = system_settings_unset_changed_cb (SYSTEM_SETTINGS_KEY_SOUND_SILENT_MODE); + if (retcode != SYSTEM_SETTINGS_ERROR_NONE) { + gl_dbgE("Failed to un-register the sound status callback"); + return -1; + } + return 0; +} + +/* Check if there is any MMC file contained in select_medias_elist */ +static bool _gl_check_mmc_file_selected(void *data) +{ + gl_dbg(""); + GL_CHECK_FALSE(data); + gl_appdata *ad = (gl_appdata *)data; + gl_item *gitem = NULL; + int i = 0; + int on_mmc = -1; + int cnt = _gl_data_selected_list_count(ad); + for (i = 0; i < cnt; i++) { + gitem = NULL; + on_mmc = -1; + + gitem = _gl_data_selected_list_get_nth(ad, i); + /* File on MMC is selected */ + if (gitem && gitem->item && gitem->item->file_url) { + on_mmc = strncmp(GL_ROOT_PATH_MMC, + gitem->item->file_url, + strlen(GL_ROOT_PATH_MMC)); + if (on_mmc == 0) + return true; + } + } + return false; +} + +/* Copy thumbnail and file */ +static Eina_Bool __gl_file_cp(void *data, const char *src, const char *dst) +{ + GL_CHECK_FALSE(src); + GL_CHECK_FALSE(dst); + /* Copy file first */ + if (_gl_fs_copy(data, src, dst)) { + if (_gl_local_data_add_media(dst, NULL) < 0) { + gl_dbgE("Copy media thumbnail failed!"); + return EINA_FALSE; + } + } else { + gl_dbgE("Copy file failed!"); + return EINA_FALSE; + } + return EINA_TRUE; +} + +/* Move thumbnail and file */ +static Eina_Bool __gl_file_mv(void *data, gl_item *gitem, const char *src, const char *dst, int mc_mode) +{ + GL_CHECK_FALSE(src); + GL_CHECK_FALSE(dst); + GL_CHECK_FALSE(gitem); + GL_CHECK_FALSE(data); + /* Move file first */ + if (_gl_fs_move(data, src, dst)) { + if (_gl_local_data_move_media(gitem->item, dst) < 0) { + gl_dbgE("Move media thumbnail failed!"); + return EINA_FALSE; + } + } else { + gl_dbgE("Move file failed!"); + return EINA_FALSE; + } + + return EINA_TRUE; +} + +int gl_get_entry_text(Evas_Object * entry, char *entry_text, int len_max) +{ + gl_dbg(""); + GL_CHECK_VAL(entry_text, -1); + GL_CHECK_VAL(entry, -1); + + memset(entry_text, 0x00, len_max); + + char *entry_str = (char *)elm_entry_entry_get(entry); + if (entry_str) + { + if (strlen(entry_str) == 0) + { + gl_dbg("Entry string is empty!"); + } + else + { + char *entry_utf8 = elm_entry_markup_to_utf8(entry_str); // changes user input to utf-8 encoding format + if (entry_utf8 == NULL) + { + gl_dbgE("Make entry string to UTF8 failed!"); + return -1; + } + else if (strlen(entry_utf8) == 0) + { + gl_dbg("Entry text is empty!"); + } + else + { + g_strlcpy(entry_text, entry_utf8, len_max); + entry_text[len_max - 1] = '\0'; + } + + GL_FREE(entry_utf8); + } + } + else + { + gl_dbgE("Get entry string failed!"); + return -1; + } + + return 0; +} + +/** +* Change utf8 string to markup, then set it as entry text. +* To fix special character "&" issue, to convert "&" to "&". f.e. +* Myfiles->rename folder to AB&C->Gallery/Rename ->displayed as "AB" +*/ +int gl_set_entry_text(Evas_Object *entry, char *entry_text) +{ + GL_CHECK_VAL(entry, -1); + char *entry_makeup = NULL; + gl_dbg("Entry UTF8 text: %s.", entry_text); + + if (entry_text) { + entry_makeup = elm_entry_utf8_to_markup(entry_text); + if (entry_makeup == NULL) { + gl_dbgE("Make utf8 string to makeup failed!"); + return -1; + } + gl_dbg("Entry makeup text: %s.", entry_makeup); + } + /* Empty string set if entry_makeup is NULL */ + elm_entry_entry_set(entry, entry_makeup); + + GL_FREEIF(entry_makeup); + return 0; +} + +/** +* Check album name is valid and remove unuseful characters +* 1) not only includes space; +* 2) contains invalid character; +* 3) it's empty. +* +* @param b_new +* true: add a new album ; false: rename a album. +* @param b_enter +* true: Enter key pressed ; false: Button Done clicked. +* +*/ +int _gl_get_valid_album_name(void *data, char *album_name, bool b_new, + bool b_enter) +{ + GL_CHECK_VAL(album_name, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + int mode = 0; + gl_sdbg("Input album name: %s", album_name); + char *popup_desc; + popup_desc = (char *)calloc(GL_POPUP_STRING_MAX, sizeof(char)); + if (popup_desc == NULL) { + gl_dbg("memory allocation fail"); + return -1; + } + /* Check album name length */ + if (strlen(album_name) == 0) { + gl_dbgW("Inserted text is empty!"); + if (b_enter) { + gl_dbg("Enter key pressed."); + goto INVALID_ALBUM_NAME; + } + + if (b_new) + mode = GL_POPUP_ALBUM_NEW_EMPTY; + else + mode = GL_POPUP_ALBUM_RENAME_EMPTY; + snprintf(popup_desc, GL_POPUP_STRING_MAX, "%s
%s", + GL_STR_ENTRY_IS_EMPTY, GL_STR_RETRY_Q); + gl_popup_create_popup(ad, mode, popup_desc); + goto INVALID_ALBUM_NAME; + } + gl_sdbg("Inserted album name: %s, length: %d", album_name, strlen(album_name)); + + /* Removes leading and trailing whitespace */ + g_strstrip((gchar *)album_name); + if (strlen(album_name) == 0) { + gl_dbgW("Album name includes only space!"); + if (b_enter) { + gl_dbg("Enter key pressed."); + goto INVALID_ALBUM_NAME; + } + + if (b_new) + mode = GL_POPUP_ALBUM_NEW_EMPTY; + else + mode = GL_POPUP_ALBUM_RENAME_EMPTY; + snprintf(popup_desc, GL_POPUP_STRING_MAX, "%s
%s", + GL_STR_INVALID_INPUT_PARAMETER, GL_STR_RETRY_Q); + gl_popup_create_popup(ad, mode, popup_desc); + goto INVALID_ALBUM_NAME; + } + + /* Check if there is any invalid character in string */ + if (_gl_fs_validate_name(album_name) == false) { + gl_dbgW("Album name includes invalid character!"); + if (b_new) + mode = GL_POPUP_ALBUM_NEW_INVALID; + else + mode = GL_POPUP_ALBUM_RENAME_INVALID; + snprintf(popup_desc, GL_POPUP_STRING_MAX, "%s
%s", + GL_STR_INVALID_INPUT_PARAMETER, GL_STR_RETRY_Q); + gl_popup_create_popup(ad, mode, popup_desc); + goto INVALID_ALBUM_NAME; + } + + GL_FREE(popup_desc); + + return 0; + + INVALID_ALBUM_NAME: + GL_FREE(popup_desc); + return -1; +} + +int _gl_validate_album_name(void *data, char *album_name) +{ + GL_CHECK_VAL(album_name, -1); + GL_CHECK_VAL(data, -1); + gl_sdbg("Input album name: %s", album_name); + + /* Check album name length */ + if (strlen(album_name) == 0) { + gl_dbgW("Inserted text is empty!"); + _gl_popup_create_local(data, GL_POPUP_NOBUT, GL_STR_ID_ENTRY_IS_EMPTY); + goto INVALID_ALBUM_NAME; + } + + /* Removes leading and trailing whitespace */ + g_strstrip((gchar *)album_name); + gl_sdbg("Inserted album name: %s, length: %d", album_name, strlen(album_name)); + + if (strlen(album_name) == 0) { + gl_dbgW("Album name includes only space!"); + _gl_popup_create_local(data, GL_POPUP_NOBUT, GL_STR_ID_INVALID_INPUT_PARAMETER); + goto INVALID_ALBUM_NAME; + } + + /* Check if there is any invalid character in string */ + if (_gl_fs_validate_name(album_name) == false) { + gl_dbgW("Album name includes invalid character!"); + _gl_popup_create_local(data, GL_POPUP_NOBUT, GL_STR_ID_INVALID_INPUT_PARAMETER); + goto INVALID_ALBUM_NAME; + } + + return 0; + + INVALID_ALBUM_NAME: + + return -1; +} + +int _gl_validate_input_character(void *data, char *album_name) +{ + GL_CHECK_VAL(album_name, -1); + GL_CHECK_VAL(data, -1); + gl_sdbg("Input album name: %s", album_name); + + /* Check if there is any invalid character in string */ + if (_gl_fs_validate_character(album_name[strlen(album_name) - 1]) == false) { + gl_dbgW("Album name includes invalid character!"); + _gl_popup_create_local(data, GL_POPUP_NOBUT, GL_STR_ID_INVALID_INPUT_PARAMETER); + goto INVALID_ALBUM_NAME; + } + + return 0; + + INVALID_ALBUM_NAME: + + return -1; +} + +/* * +* In case of system folder, the displayed name should be translated into system language +* +* @param album +* check album display name for getting proper translation +* +* @return +* the translated album display name +*/ +char *_gl_get_i18n_album_name(gl_album_s *cluster) +{ + GL_CHECK_NULL(cluster); + char *i18n_name = NULL; + + if (_gl_data_is_camera_album(cluster)) { + /* system folder name: Camera */ + i18n_name = GL_STR_ID_CAMERA; + } else if (_gl_data_is_default_album(GL_STR_ALBUM_DOWNLOADS, cluster)) { + /* system folder name: Downloads */ + i18n_name = GL_STR_ID_DOWNLOADS; + } else if (_gl_data_is_screenshot_album(GL_STR_ALBUM_SCREENSHOTS, cluster)) { + /* system folder name: Screenshots */ + i18n_name = GL_STR_ID_SCREENSHOTS; + } else if (cluster->type == GL_STORE_T_ALL) { + GL_FREEIF(cluster->display_name); + cluster->display_name = strdup(GL_STR_ID_ALL_ALBUMS); + i18n_name = cluster->display_name; + } else if (cluster->type == GL_STORE_T_PHONE || + cluster->type == GL_STORE_T_MMC) { + if (_gl_data_is_root_path(cluster->path)) { + /* check root case */ + i18n_name = GL_STR_ID_NO_NAME; + } else { + /* if the folder is not a system folder, return itself */ + i18n_name = cluster->display_name; + } + } else { + /* if the folder is not a system folder, return itself */ + i18n_name = cluster->display_name; + } + + if (i18n_name == NULL || strlen(i18n_name) <= 0) + i18n_name = GL_STR_ID_NO_NAME; + + return i18n_name; +} + +int gl_get_selected_files_path_str(void *data, gchar sep_c, char **path_str, + int *sel_cnt) +{ + GL_CHECK_VAL(path_str, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->selinfo.elist, -1); + GString *selected_path_list = g_string_new(NULL); + gl_item *current = NULL; + int selected_item_cnt = 0; + Eina_List *l = NULL; + + EINA_LIST_FOREACH(ad->selinfo.elist, l, current) { + if (current == NULL || current->item == NULL) { + if (selected_path_list) { + g_string_free(selected_path_list, true); + selected_path_list = NULL; + } + return -1; + } + + if (strstr(selected_path_list->str, current->item->file_url)) { + gl_dbgW("Already appended!"); + } else { + selected_item_cnt++; + g_string_append(selected_path_list, + current->item->file_url); + g_string_append_c(selected_path_list, sep_c); + } + + } + gl_dbg("Selected items count: %d.", selected_item_cnt); + if (sel_cnt) + *sel_cnt = selected_item_cnt; + int len = strlen(selected_path_list->str); + g_string_truncate(selected_path_list, len - 1); + /** + * Frees the memory allocated for the GString. + * If free_segment is true it also frees the character data. + * If it's false, the caller gains ownership of the buffer + * and must free it after use with g_free(). + */ + *path_str = g_string_free(selected_path_list, false); + GL_CHECK_VAL(*path_str, -1); + gl_dbg("Total string:\n\n\t>>@@:> %s <:@@<<\n", *path_str); + return 0; +} + +bool gl_make_new_album(const char *name) +{ + gl_dbg(""); + char path[GL_DIR_PATH_LEN_MAX] = { 0, }; + + snprintf(path, GL_DIR_PATH_LEN_MAX, "%s/%s", GL_DEFAULT_PATH_IMAGES, name); + path[strlen(path)] = '\0'; + gl_sdbg("Making %s directory", path); + + _gl_fs_mkdir(GL_DEFAULT_PATH_IMAGES); + bool isSuccessful = _gl_fs_mkdir(path); + return isSuccessful; +} + +/* Used for loal medias, thumbnail was moved to new dest first, then rename file */ +int _gl_move_media_thumb(void *data, gl_item *gitem, char *new_dir_name, + bool is_full_path, int *popup_op, int mc_mode) +{ + gl_dbg("Move/Copy[%d] media item START>>>", mc_mode); + char new_path[GL_FILE_PATH_LEN_MAX] = { 0, }; + char ext[GL_FILE_EXT_LEN_MAX] = { 0, }; + char new_path_noext[GL_FILE_PATH_LEN_MAX] = { 0, }; + + if (gitem == NULL || gitem->item == NULL || popup_op == NULL) { + gl_dbgE("Invalid parameters!"); + return -1; + } + + *popup_op = GL_POPUP_OP_NONE; + + if (is_full_path) { + if (!gitem->item->file_url || !strlen(gitem->item->file_url) || + !gitem->item->display_name) { + gl_dbgE("Invalid file!"); + return -1; + } + snprintf(new_path, sizeof(new_path), "%s/%s", new_dir_name, + (char *)(gitem->item->display_name)); + gl_sdbg("New path : %s", new_path); + + if (mc_mode == GL_MC_MOVE && !g_strcmp0(new_path, gitem->item->file_url)) { + *popup_op = GL_POPUP_OP_SAME_ALBUM; + gl_dbg("File already in destination"); + return 0; + } else if (gl_file_exists(new_path)) { /* return true if file exists, rename new file */ + _gl_fs_get_path_without_ext(new_path, ext, new_path_noext); + char *final_path = NULL; + final_path = _gl_fs_get_unique_full_path(new_path_noext, ext); + if (final_path == NULL) + return -1; + gl_dbg("Created unique path: %s", final_path); + memset(new_path, 0x00, GL_FILE_PATH_LEN_MAX); + g_strlcpy(new_path, final_path, GL_FILE_PATH_LEN_MAX); + GL_FREE(final_path); + *popup_op = GL_POPUP_OP_DUPLICATED_NAME; + } + } else { + snprintf(new_path, GL_FILE_PATH_LEN_MAX, "%s/%s/%s", + GL_DEFAULT_PATH_IMAGES, new_dir_name, + (char *)(gitem->item->display_name)); + } + + new_path[strlen(new_path)] = '\0'; + + Eina_Bool ret = EINA_FALSE; + switch (mc_mode) { + case GL_MC_MOVE: + /* stop using "rename" when moving from mmc to phone for correct db update */ + ret = __gl_file_mv(data, gitem, gitem->item->file_url, new_path, mc_mode); + break; + case GL_MC_COPY: + ret = __gl_file_cp(gitem->ad, gitem->item->file_url, new_path); + break; + default: + gl_dbgE("Wrong mode!"); + } + + gl_dbg("Move/Copy media item OVER<<<"); + if (!ret) + return -1; + else + return 0; +} + +/* Used for loal medias, thumbnail was moved to new dest first, then rename file */ +int _gl_move_media_thumb_by_id(void *data, const char *uuid, char *new_dir_name, + int *popup_op, int mc_mode) +{ + gl_dbg("Move/Copy[%d] media item START>>>", mc_mode); + char new_path[GL_FILE_PATH_LEN_MAX] = { 0, }; + char ext[GL_FILE_EXT_LEN_MAX] = { 0, }; + char new_path_noext[GL_FILE_PATH_LEN_MAX] = { 0, }; + + if (uuid == NULL || popup_op == NULL) { + gl_dbgE("Invalid parameters!"); + return -1; + } + + *popup_op = GL_POPUP_OP_NONE; + media_info_h media_h = NULL; + int ret = -1; + char *path = NULL; + char *name = NULL; + + ret = media_info_get_media_from_db(uuid, &media_h); + if (ret != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Get media failed[%d]!", ret); + goto GL_DONE; + } + ret = media_info_get_display_name(media_h, &name); + if (ret != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Get storage type failed!"); + goto GL_DONE; + } + ret = media_info_get_file_path(media_h, &path); + if (ret != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Get media file path failed!"); + goto GL_DONE; + } + + snprintf(new_path, sizeof(new_path), "%s/%s", new_dir_name, name); + gl_sdbg("New path : %s", new_path); + + /* Don't move, in 'All albums' */ + if (!g_strcmp0(new_path, path)) { + *popup_op = GL_POPUP_OP_SAME_ALBUM; + gl_dbg("File already in destination"); + ret = 0; + goto GL_DONE; + } else if (gl_file_exists(new_path)) { /* return true if file exists, rename new file */ + _gl_fs_get_path_without_ext(new_path, ext, new_path_noext); + char *final_path = NULL; + final_path = _gl_fs_get_unique_full_path(new_path_noext, ext); + if (final_path == NULL) + goto GL_DONE; + gl_dbg("Created unique path: %s", final_path); + memset(new_path, 0x00, GL_FILE_PATH_LEN_MAX); + g_strlcpy(new_path, final_path, GL_FILE_PATH_LEN_MAX); + GL_FREE(final_path); + *popup_op = GL_POPUP_OP_DUPLICATED_NAME; + } + + new_path[strlen(new_path)] = '\0'; + + switch (mc_mode) { + case GL_MC_MOVE: + if (!_gl_fs_move(data, path, new_path)) { + ret = -1; + goto GL_DONE; + } + ret = media_info_move_to_db(media_h, new_path); + break; + case GL_MC_COPY: + if (!__gl_file_cp(data, path, new_path)) { + ret = -1; + goto GL_DONE; + } + break; + default: + gl_dbgE("Wrong mode!"); + } + + GL_DONE: + GL_FREEIF(name); + GL_FREEIF(path); + if (media_h) + media_info_destroy(media_h); + + gl_dbg("Move/Copy media item OVER<<<"); + if (ret != MEDIA_CONTENT_ERROR_NONE) + return -1; + else + return 0; +} + +/* Used for move file to new dest */ +int _gl_move_media(gl_item *gitem, char *new_dir_name, bool is_full_path) +{ + gl_dbg("Move media START>>>"); + char new_path[GL_FILE_PATH_LEN_MAX] = { 0, }; + char ext[GL_FILE_EXT_LEN_MAX] = { 0, }; + char new_path_noext[GL_FILE_PATH_LEN_MAX] = { 0, }; + if (!gitem || !gitem->item) { + gl_dbgE("Invalid gitem!"); + return -1; + } + + if (is_full_path) { + if (!gitem->item->file_url || !strlen(gitem->item->file_url) || + !gitem->item->display_name) { + gl_dbgE("file url or name is invalid!"); + return -1; + } + snprintf(new_path, sizeof(new_path), "%s/%s", + new_dir_name, (char *)(gitem->item->display_name)); + gl_dbg("New path : %s", new_path); + + if (!g_strcmp0(new_path, gitem->item->file_url)) { + gl_dbgW("File exists!"); + return 0; + } else if (gl_file_exists(new_path)) { + _gl_fs_get_path_without_ext(new_path, ext, new_path_noext); + char *final_path = NULL; + final_path = _gl_fs_get_unique_full_path(new_path_noext, ext); + if (final_path == NULL) + return -1; + gl_dbg("Created unique path: %s", final_path); + memset(new_path, 0x00, GL_FILE_PATH_LEN_MAX); + g_strlcpy(new_path, final_path, GL_FILE_PATH_LEN_MAX); + GL_FREE(final_path); + } + } else { + snprintf(new_path, GL_FILE_PATH_LEN_MAX, "%s/%s/%s", + GL_DEFAULT_PATH_IMAGES, new_dir_name, + (char *)(gitem->item->display_name)); + } + + new_path[strlen(new_path)] = '\0'; + + if (!_gl_fs_move(gitem->ad, gitem->item->file_url, new_path)) { + gl_dbg("Move media OVER<<<"); + return -1; + } else { + if (_gl_local_data_add_media(new_path, NULL) < 0) { + gl_dbgE("Move media thumbnail failed!"); + return EINA_FALSE; + } + gl_dbg("Move media OVER<<<"); + return 0; + } +} + +/** +* Check if there is any media in Gallery. +* +* False returned if none medias exist, other return True. +*/ +bool gl_check_gallery_empty(void *data) +{ + GL_CHECK_FALSE(data); + gl_appdata *ad = (gl_appdata *)data; + + if (ad->albuminfo.elist == NULL) { + gl_dbgE("ad->albuminfo.elist is empty!"); + return true; + } + + Eina_List *clist = ad->albuminfo.elist->clist; + if (clist == NULL) { + gl_dbgW("Albums list is invalid!"); + return true; + } + + int len = eina_list_count(clist); + if (len == 0) { + gl_dbgW("Albums list is empty!"); + return true; + } + return false; +} + +bool gl_is_image_valid(void *data, char *filepath) +{ + GL_CHECK_FALSE(data); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_FALSE(filepath); + + Evas_Object *image = NULL; + int width = 0; + int height = 0; + Evas *evas = NULL; + + evas = evas_object_evas_get(ad->maininfo.win); + GL_CHECK_FALSE(evas); + + image = evas_object_image_add(evas); + GL_CHECK_FALSE(image); + + evas_object_image_filled_set(image, 0); + evas_object_image_load_scale_down_set(image, 0); + evas_object_image_file_set(image, filepath, NULL); + evas_object_image_size_get(image, &width, &height); + evas_object_del(image); + image = NULL; + + if (width <= 0 || height <= 0) { + gl_sdbg("Cannot load file : %s", filepath); + return false; + } + + return true; +} + +/* +* Check MMC state(Inserted/Removed) for Move/Delete/Add tag/Remove. +*/ +int gl_check_mmc_state(void *data, char *dest_folder) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + /* MMC hasn't been inserted */ + if (ad->maininfo.mmc_state == GL_MMC_STATE_REMOVED) + return 0; + + int on_mmc = -1; + /** + * 1, Places: Add tag; + * 2, Tags: Add tag/remove tag; + * 3, Albums: Move/Delete/Add tag. + */ + /* Move files to MMC album */ + if (dest_folder) { + on_mmc = strncmp(GL_ROOT_PATH_MMC, dest_folder, + strlen(GL_ROOT_PATH_MMC)); + if (on_mmc == 0) + goto ON_MMC; + } + + gl_cluster *cur_album = _gl_albums_get_current(data); + char src_folder_path[GL_DIR_PATH_LEN_MAX] = { 0, }; + GL_CHECK_VAL(cur_album, -1); + GL_CHECK_VAL(cur_album->cluster, -1); + /* Move files from MMC album */ + GL_CHECK_VAL(cur_album->cluster->uuid, -1); + g_strlcpy(src_folder_path, cur_album->cluster->path, + GL_DIR_PATH_LEN_MAX); + on_mmc = strncmp(GL_ROOT_PATH_MMC, src_folder_path, + strlen(GL_ROOT_PATH_MMC)); + /* Check MMC files selected in album [All albums] */ + if (on_mmc == 0) { + goto ON_MMC; + } else if (cur_album->cluster->type == GL_STORE_T_ALL) { + gl_dbg("In album [All albums]."); + if (_gl_check_mmc_file_selected(ad)) + goto ON_MMC; + } + return 0; + + ON_MMC: + gl_dbgW("Operate medias on MMC!"); + ad->maininfo.mmc_state = GL_MMC_STATE_ADDED_MOVING; + return 0; +} + +static int __gl_reg_db_noti(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + int error_code = -1; + + error_code = storage_foreach_device_supported(__gl_util_get_supported_storages_callback, ad); + /* Save the init status of MMC */ + if (error_code == STORAGE_ERROR_NONE) { + storage_state_e state; + error_code = storage_get_state(ad->maininfo.externalStorageId, &state); + if (error_code == STORAGE_ERROR_NONE) { + if (state == STORAGE_STATE_MOUNTED) { + gl_dbg("###### :::::: MMC loaded! :::::: ######"); + ad->maininfo.mmc_state = GL_MMC_STATE_ADDED; + } else if (state == STORAGE_STATE_REMOVED || + state == STORAGE_STATE_UNMOUNTABLE) { + gl_dbg("###### :::::: MMC removed! :::::: ######"); + ad->maininfo.mmc_state = GL_MMC_STATE_REMOVED; + } + } + } + + gl_dbg("Enable the noti handle for DB update status!"); + /* Set DB update status callback */ + error_code = storage_set_state_changed_cb(ad->maininfo.externalStorageId, _gl_db_update_sdcard_info, ad); + if (error_code != STORAGE_ERROR_NONE) { + gl_dbgE("storage_set_state_changed_cb failed!"); + } + return 0; +} + +static int __gl_dereg_db_noti(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + int error_code = -1; + + gl_dbg("Disable the noti handle for DB update status!"); + error_code = storage_unset_state_changed_cb(ad->maininfo.externalStorageId, _gl_db_update_sdcard_info); + if (error_code != STORAGE_ERROR_NONE) { + gl_dbgE("storage_unset_state_changed_cb failed!"); + } + return 0; +} + +/* +* Get view mode of app +*/ +int gl_get_view_mode(void *data) +{ + GL_CHECK_VAL(data, GL_VIEW_NONE); + gl_appdata *ad = (gl_appdata *)data; + return ad->maininfo.view_mode; +} + +/* +* Set view mode of app +*/ +int gl_set_view_mode(void *data, int mode) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + ad->maininfo.view_mode = mode; + return 0; +} + +int gl_del_invalid_widgets(void *data, int invalid_m) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg(""); + if (ad->popupinfo.popup) { + /* Remove popup */ + evas_object_del(ad->popupinfo.popup); + ad->popupinfo.popup = NULL; + } else if (ad->uginfo.ug) { + /* Destroy UG */ + gl_dbg("Destroy UG!"); + if (ad->uginfo.ug) { + app_control_destroy(ad->uginfo.ug); + ad->uginfo.ug = NULL; + ad->uginfo.ug_type = -1; + } + } + + switch (invalid_m) { + case GL_INVALID_NEW_ENTRY: + case GL_INVALID_NEW_ENTRY_NOC: + if (ad->entryinfo.mode == GL_ENTRY_NEW_ALBUM) { + gl_dbg("Destroy New album/tag view!"); + if (invalid_m == GL_INVALID_NEW_ENTRY) { + gl_dbg("Pop to nf_it_edit"); + elm_naviframe_item_pop_to(ad->gridinfo.nf_it); + } + } + break; + default: + ad->entryinfo.mode = GL_ENTRY_NONE; + break; + } + return 0; +} + +/* 'Delete medias' is available in tab Albums and Places */ +static int __gl_del_medias_op(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + /* Get all selected medias count */ + int cnt = _gl_data_selected_list_count(ad); + gl_item *gitem = NULL; + int i = 0; + int popup_op = GL_POPUP_OP_NONE; + + /* Removed media from selected_media_elist */ + Eina_List *media_elist = NULL; + for (i = 0; i < cnt; i++) { + gitem = eina_list_nth(ad->selinfo.elist, i); + if (gitem != NULL && gitem->item != NULL) { + if (_gl_data_delete_file(gitem->item->file_url, gitem->item->uuid, false) < 0) + gl_dbgE("Failed to delete file!"); + _gl_thumbs_get_list(data, &media_elist); + media_elist = eina_list_remove(media_elist, gitem); + _gl_thumbs_set_list(data, media_elist); + gl_dbgE("elm_item: %p", gitem->elm_item); + gitem->b_deleted = true; + } else { + gl_dbgE("Invalid item!"); + } + + gl_dbg("Write pipe, make progressbar updated!"); + gl_thread_write_pipe(ad, i+1, popup_op); + gitem = NULL; + } + return 0; +} + +/* Delete UI item */ +/* +static int __gl_del_gengrid_item(void *data, int index) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_item *gitem = NULL; + gl_dbg("elist cnt: %d", eina_list_count(ad->selinfo.elist)); + // Get selected media + gitem = eina_list_nth(ad->selinfo.elist, index); + if (gitem) { + gl_dbgE("elm_item: %p", gitem->elm_item); + if (gitem->elm_item) { + elm_object_item_del(gitem->elm_item); + gitem->elm_item = NULL; + } + } + return 0; +} +*/ +int _gl_update_operation_view(void *data, const char *noti_str) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + int cancel_flag = false; + gl_thread_get_cancel_state(ad, &cancel_flag); + gl_dbgW("======================"); + + if (GL_VIEW_THUMBS == gl_get_view_mode(data)) { + elm_naviframe_item_pop_to(ad->gridinfo.nf_it); + _gl_thumbs_update_items(data); + } else if (!ad->albuminfo.b_new_album && !_gl_thumbs_check_zero(data)) { + /* Deleting process done, change to normal view */ + _gl_thumbs_edit_pop_view(ad); + } else { + gl_dbgW("Empty album, change to Albums view!"); + Elm_Object_Item *nf_it = elm_naviframe_top_item_get(ad->maininfo.naviframe); + if (nf_it == ad->gridinfo.nf_it) { + /* pop_cb will be launched */ + gl_set_view_mode(data, GL_VIEW_THUMBS); + } + elm_naviframe_item_pop_to(ad->ctrlinfo.nf_it); + ad->albuminfo.b_new_album = false; + /* Refine me */ + if (_gl_ctrl_get_tab_mode(ad) == GL_CTRL_TAB_TIMELINE) { + gl_set_view_mode(data, GL_VIEW_TIMELINE); + _gl_timeline_update_view(data); + } else if (_gl_ctrl_get_tab_mode(ad) == GL_CTRL_TAB_ALBUMS) { + gl_set_view_mode(data, GL_VIEW_ALBUMS); + gl_albums_update_view(data); + } + + /* Add notification */ + _gl_notify_create_notiinfo(noti_str); + } + /* Add notification */ + if (noti_str && cancel_flag != GL_PB_CANCEL_ERROR) + _gl_notify_create_notiinfo(noti_str); + return 0; +} + +/* Update view after deleting process done */ +static int __gl_update_del_medias_view(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + /* Clear selected list */ + _gl_data_selected_list_finalize(data); + Eina_List *media_elist = NULL; + _gl_data_update_item_list(ad, NULL, &media_elist); + _gl_thumbs_clear_and_set_list(ad, media_elist); + + if (_gl_thumbs_check_zero(data)) { + gl_sdbg("is_zero"); + _gl_update_albums_list(ad); + } else { + /*update view soon after removing over*/ + _gl_thumbs_update_view(ad); +// _gl_thumbs_update_sequence(ad); + } + _gl_update_operation_view(ad, GL_STR_DELETED); + + _gl_db_update_lock_once(data, false); + return 0; +} + +char *_gl_delete_folder(char *path) +{ + GL_CHECK_NULL(path); + char *del_path = strdup(path); + if (NULL == del_path) + return NULL; + char *sub_path = del_path; + while (gl_file_dir_is_empty(del_path) == 1) { + gl_dbg("this dir is empty, rm it!"); + if (gl_file_rmdir(del_path) == EINA_FALSE) { + gl_dbgE("file_rmdir failed!"); + GL_FREE(del_path); + return NULL; + } + sub_path = strrchr(del_path, '/'); + if (sub_path) { + *sub_path = '\0'; + } + } + GL_FREE(del_path); + return path; +} + +int gl_del_medias(void *data) +{ + gl_dbg(""); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + /* Get all selected medias count */ + int cnt = _gl_data_selected_list_count(ad); + if (cnt != 0) { + _gl_db_update_lock_always(data, true); + + /* Check MMC state for cancel operation */ + gl_check_mmc_state(ad, NULL); + gl_dbg("MMC state: %d.", ad->maininfo.mmc_state); + _gl_set_file_op_cbs(data, __gl_del_medias_op, NULL, + __gl_update_del_medias_view, cnt); + _gl_use_thread_operate_medias(ad, GL_STR_ID_DELETING, cnt, + GL_MEDIA_OP_DELETE); + } + return 0; +} + +/* 'Delete medias' is available in Dali view */ +int _gl_del_media_by_id(void *data, const char *uuid) +{ + GL_CHECK_VAL(uuid, -1); + GL_CHECK_VAL(data, -1); + media_info_h media_h = NULL; + media_content_storage_e storage_type = 0; + int ret = -1; + + ret = media_info_get_media_from_db(uuid, &media_h); + if (ret != MEDIA_CONTENT_ERROR_NONE || media_h == NULL) { + gl_dbgE("Get media failed[%d]!", ret); + goto DEL_MEDIA_BY_ID_FAILED; + } + ret = media_info_get_storage_type(media_h, &storage_type); + if (ret != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Get storage type failed!"); + goto DEL_MEDIA_BY_ID_FAILED; + } + char *path = NULL; + ret = media_info_get_file_path(media_h, &path); + if (ret != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Get media file path failed!"); + GL_FREEIF(path); + goto DEL_MEDIA_BY_ID_FAILED; + } + if (!gl_file_unlink(path)) { + char *error_msg = calloc(1, GL_ARRAY_LEN_MAX); + if (error_msg != NULL) { + strerror_r(errno, error_msg, GL_ARRAY_LEN_MAX); + gl_dbgE("file_unlink failed[%s]!", error_msg); + GL_FREE(error_msg); + } + GL_FREEIF(path); + goto DEL_MEDIA_BY_ID_FAILED; + } + + /* Delete record from DB then delete media from file system */ + ret = media_info_delete_from_db(uuid); + if (ret != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("media_info_delete_from_db failed[%d]!", ret); + goto DEL_MEDIA_BY_ID_FAILED; + } + + GL_FREEIF(path); + + if (media_h) { + media_info_destroy(media_h); + media_h = NULL; + } + return 0; + +DEL_MEDIA_BY_ID_FAILED: + + GL_FREEIF(path); + + if (media_h) { + media_info_destroy(media_h); + media_h = NULL; + } + return -1; +} + +int gl_remove_album(void *data, gl_cluster *album_item, bool is_hide) +{ + GL_CHECK_VAL(data, -1); + + if (album_item == NULL || album_item->cluster == NULL || + album_item->cluster->uuid == NULL) { + gl_dbgE("Invalid album!"); + return -1; + } + + gl_sdbg("Remove album: %s, id=%s", album_item->cluster->display_name, + album_item->cluster->uuid); + /* remove album from db*/ + if (_gl_local_data_delete_album(album_item->cluster, + NULL, data, is_hide) != 0) { + gl_dbgE("delete album failed!"); + //return -1; + } + + _gl_delete_folder(album_item->cluster->path); + return 0; +} + +static int __gl_update_del_albums_view(void *data) +{ + GL_CHECK_VAL(data, -1); + _gl_update_albums_list(data); + /* update the albums view */ + _gl_albums_change_mode(data, false); + _gl_db_update_lock_always(data, false); + return 0; +} + +/* delete albums */ +static int __gl_del_albums_op(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->albuminfo.sel_elist, -1); + gl_cluster *album = NULL; + int cnt = _gl_data_get_albums_selected_cnt(ad); + int i = 0; + int ret = -1; + + if (cnt == 0) { + gl_dbgE("Empty list!"); + return -1; + } + gl_dbg("cnt= %d", cnt); + for (i = 0; i < cnt; i++) { + album = eina_list_nth(ad->albuminfo.sel_elist, i); + + if (album && album->cluster && album->cluster->uuid) { + if ((ret = gl_remove_album(ad, album, false)) < 0) + gl_dbgE("remove album failed[%d]!", ret); + } + gl_thread_write_pipe(ad, i+1, GL_POPUP_OP_NONE); + } + return 0; +} + +int _gl_del_albums(void *data) +{ + gl_dbg(""); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + /* Get all selected albums count */ + int cnt = _gl_data_get_albums_selected_cnt(ad); + if (cnt !=0) { + _gl_db_update_lock_always(data, true); + /* Check MMC state for cancel operation */ + gl_check_mmc_state(ad, NULL); + gl_dbg("MMC state: %d.", ad->maininfo.mmc_state); + _gl_set_file_op_cbs(data, __gl_del_albums_op, NULL, + __gl_update_del_albums_view, cnt); + _gl_use_thread_operate_medias(ad, GL_STR_ID_DELETING, cnt, + GL_MEDIA_OP_DELETE_ALBUM); + } + + return 0; +} + +int _gl_data_update_sel_item_list(void *data, Eina_List *p_elist) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_item *gitem = NULL; + int count = eina_list_count(p_elist); + int i; + gitem = eina_list_nth(p_elist, 0); + if (gitem) { + gitem->album->elist = NULL; + } + for (i = 0; i < count ; i++) { + gitem = eina_list_nth(p_elist, i); + _gl_data_restore_update_selected(ad->selinfo.elist, gitem); + } + return 0; +} + +#ifdef _USE_ROTATE_BG +/* b_path == true, Use saved folder path to check cluster uuid + * b_select == true, Update albums in select view for tag adding + */ +int _gl_refresh_albums_list(void *data, bool b_path, bool b_select) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_cluster *cur_album = _gl_albums_get_current(data); + char *uuid = NULL; + bool b_get_cur_album = false; + + if (ad->albuminfo.view) { + elm_gengrid_clear(ad->albuminfo.view); + } + if (ad->albuminfo.select_view) { + elm_gengrid_clear(ad->albuminfo.select_view); + } + /* Save cluster ID to set new cur_album from new albums list */ + if (cur_album && cur_album->cluster && cur_album->cluster->uuid) { + uuid = strdup(cur_album->cluster->uuid); + b_get_cur_album = true; + if (ad->gridinfo.view && + ad->gridinfo.view != ad->gridinfo.nocontents) { + elm_gengrid_clear(ad->gridinfo.view); + } + if (ad->gridinfo.select_view && + ad->gridinfo.select_view != ad->gridinfo.nocontents) { + elm_gengrid_clear(ad->gridinfo.select_view); + } + } else { + if (_gl_ctrl_get_tab_mode(ad) == GL_CTRL_TAB_ALBUMS) { + gl_dbgW("Current album is unavailable!"); + } else if (!_gl_thumbs_check_zero(data)) { + /* Update data if items list exists */ + Eina_List *sel_id_list= NULL; + Eina_List *media_elist = NULL; + int view_m = gl_get_view_mode(ad); + if (view_m == GL_VIEW_THUMBS_EDIT || + view_m == GL_VIEW_THUMBS_SELECT) { + gl_dbg("Edit view."); + /* Get ID list of selected items */ + _gl_data_save_selected_str_ids(data, &sel_id_list); + } + _gl_data_clear_selected_info(ad); + _gl_data_update_item_list(ad, &sel_id_list, &media_elist); + _gl_thumbs_clear_and_set_list(ad, media_elist); + } + } + + _gl_data_get_cluster_list_edit_mode(ad); + /* need to reset current album */ + _gl_albums_set_current(data, NULL); + cur_album = NULL; + + if (b_get_cur_album) { + if (b_path) { + gl_dbg("Path: %s", ad->albuminfo.dest_folder); + if (strlen(ad->albuminfo.dest_folder) > 0 && + GL_FILE_EXISTS(ad->albuminfo.dest_folder)) { + gl_dbgW("Cluster record updated!"); + _gl_data_get_cluster_by_path(ad, + ad->albuminfo.dest_folder, + &cur_album); + } else { + gl_dbgE("Invalid folder path!"); + _gl_data_get_cluster_by_id(ad, uuid, &cur_album); + } + } else { + _gl_data_get_cluster_by_id(ad, uuid, &cur_album); + } + + if (cur_album && cur_album->cluster) { + _gl_albums_set_current(data, cur_album); + gl_sdbg("Reset current album: %s", + cur_album->cluster->display_name); + /* Get ID list of selected items */ + int view_m = gl_get_view_mode(ad); + Eina_List *sel_id_list = NULL; + Eina_List *media_elist = NULL; + if (view_m == GL_VIEW_THUMBS_EDIT || + view_m == GL_VIEW_THUMBS_SELECT) { + _gl_data_copy_selected_info_save_current_selected(ad, &sel_id_list); + } + _gl_data_update_item_list(ad, &sel_id_list, &media_elist); + _gl_data_update_sel_item_list(ad, media_elist); + _gl_thumbs_clear_and_set_list(ad, media_elist); + } else { + /* Clear selected items list if current album doesn't exist */ + _gl_data_clear_selected_info(ad); + /* Clear items list if current album doesn't exist */ + _gl_thumbs_clear_and_set_list(ad, NULL); + } + } + + GL_FREEIF(uuid); + return 0; +} + +#endif + +int _gl_update_albums_data(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_cluster *cur_album = _gl_albums_get_current(data); + char *uuid = NULL; + + if (cur_album && cur_album->cluster && cur_album->cluster->uuid) + uuid = strdup(cur_album->cluster->uuid); + + _gl_data_get_cluster_list(ad); + /* need to reset current album */ + _gl_albums_set_current(data, NULL); + cur_album = NULL; + + if (uuid) { + _gl_data_get_cluster_by_id(ad, uuid, &cur_album); + if (cur_album) + _gl_albums_set_current(data, cur_album); + GL_FREE(uuid); + } + + return 0; +} + +int _gl_update_albums_list(void *data) +{ +#ifdef _USE_ROTATE_BG + return _gl_refresh_albums_list(data, false, false); +#else + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_cluster *cur_album = _gl_albums_get_current(data); + char cluster_id[GL_MTYPE_ITEN_ID_LEN_MAX] = { 0, }; + bool b_get_cur_album = false; + + /* Save cluster ID to set new current_album from new albums list */ + if (cur_album && cur_album->cluster && cur_album->cluster->uuid) { + g_strlcpy(cluster_id, cur_album->cluster->uuid, + GL_MTYPE_ITEN_ID_LEN_MAX); + b_get_cur_album = true; + } else { + gl_dbg("None album selected, current album is unavailable."); + } + + _gl_data_get_cluster_list(ad); + /* need to reset current album */ + _gl_albums_set_current(data, NULL); + cur_album = NULL; + + if (b_get_cur_album) { + _gl_data_get_cluster_by_id(ad, cluster_id, &cur_album); + if (cur_album && cur_album->cluster) { + _gl_albums_set_current(data, cur_album); + gl_sdbg("Reset current album: %s", + cur_album->cluster->display_name); + Eina_List *sel_id_list= NULL; + Eina_List *media_elist = NULL; + int view_m = gl_get_view_mode(ad); + if (view_m == GL_VIEW_THUMBS_EDIT || + view_m == GL_VIEW_THUMBS_SELECT) { + gl_dbg("Edit view."); + /* Get ID list of selected items */ + _gl_data_save_selected_str_ids(data, &sel_id_list); + } + _gl_data_clear_selected_info(ad); + _gl_data_update_item_list(ad, &sel_id_list, &media_elist); + _gl_thumbs_clear_and_set_list(ad, media_elist); + return 0; + } else { + /* Clear items list if current album doesn't exist */ + if (ad->selinfo.elist) + _gl_data_clear_selected_info(ad); + } + } + + return 0; +#endif +} + +/** +* Move files under root album [/opt/media or /opt/storage/sdcard] to a newly created album. +* Used in 'Rename' album case. +*/ +int gl_move_root_album(void *data, gl_cluster *cur_album, char *dest_path) +{ + GL_CHECK_VAL(data, -1); + GL_CHECK_VAL(cur_album, -1); + GL_CHECK_VAL(cur_album->cluster, -1); + gl_appdata *ad = (gl_appdata *)data; + Eina_List *medias_elist = NULL; + + /* Get all medias of current album */ + _gl_data_get_items_album(ad, cur_album, GL_GET_ALL_RECORDS, + GL_GET_ALL_RECORDS, &medias_elist); + GL_CHECK_VAL(medias_elist, -1); + + Eina_List *l = NULL; + gl_item *gitem = NULL; + int popup_op = GL_POPUP_OP_NONE; + + /* Move medias of album to dest folder */ + EINA_LIST_FOREACH(medias_elist, l, gitem) { + if (gitem && gitem->item) { + gl_sdbg("Move [%s]", gitem->item->file_url); + if (_gl_move_media_thumb(data, gitem, dest_path, true, &popup_op, GL_MC_MOVE) != 0) + gl_dbgW("Failed to move this item"); + + gitem = NULL; + } else { + gl_dbgE("Invalid item!"); + } + } + + /* Free item list */ + _gl_data_util_clear_item_list(&(medias_elist)); + return 0; +} + +/* 'Move medias' is only available in tab Albums */ +static int __gl_move_copy_op(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + int i = 0; + /* Get selected medias count */ + int cnt = _gl_data_selected_list_count(ad); + gl_item *gitem = NULL; + int popup_op = GL_POPUP_OP_NONE; + + for (i = 0; i < cnt; i++) { + gitem = eina_list_nth(ad->selinfo.elist, i); + if (gitem && gitem->item) { + gl_sdbg("Selected [%s]", gitem->item->file_url); + + if (ad->maininfo.medias_op_type == GL_MEDIA_OP_COPY) { + if (_gl_move_media_thumb(data, gitem, ad->albuminfo.dest_folder, true, &popup_op, GL_MC_COPY) != 0) + gl_dbg("Failed to copy this item"); + gl_dbg("File Copied:::::::%d/%d-->try to update progressbar", i, cnt); + } else if (ad->maininfo.medias_op_type == GL_MEDIA_OP_MOVE) { + if (_gl_move_media_thumb(data, gitem, ad->albuminfo.dest_folder, true, &popup_op, ad->albuminfo.file_mc_mode) != 0) + gl_dbg("Failed to move this item"); + + /*_gl_thumbs_get_list(data, &media_elist); + media_elist = eina_list_remove(media_elist, gitem); + _gl_thumbs_set_list(data, media_elist); + gl_dbgE("elm_item: %p", gitem->elm_item); + gitem->b_deleted = true;*/ + gl_dbg("File Moved:::::::%d/%d-->try to update progressbar", i, cnt); + } else { + gl_dbg("Invalid medias_op_type: %d!", ad->maininfo.medias_op_type); + } + } else { + gl_dbg("Invalid item!"); + } + + gl_dbg("Write pipe, make progressbar updated!"); + gl_thread_write_pipe(ad, i+1, popup_op); + + popup_op = GL_POPUP_OP_NONE; + } + return 0; +} + +/* Update view after moving process done */ +static int __gl_update_move_copy_view(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + int view_mode = gl_get_view_mode(ad); + gl_dbg("view_mode: %d", view_mode); + + const char *noti_str = NULL; + if (view_mode == GL_VIEW_THUMBS_SELECT) { + noti_str = GL_STR_ADDED; + /* Clear selected list */ + _gl_data_clear_selected_info(data); + _gl_albums_set_current(data, NULL); + /* Update albums list and items list */ + _gl_update_albums_data(ad); + } else if (ad->maininfo.medias_op_type == GL_MEDIA_OP_COPY) { + noti_str = GL_STR_COPIED; + /* Clear selected list */ + _gl_data_selected_list_finalize(data); + /* Update albums list */ + _gl_update_albums_data(ad); + } else if (ad->maininfo.medias_op_type == GL_MEDIA_OP_MOVE) { + noti_str = GL_STR_MOVED; + /* Clear selected list */ + _gl_data_selected_list_finalize(data); + /* Update albums list and items list */ + if (_gl_thumbs_check_zero(data)) { + gl_sdbg("is_zero"); + _gl_update_albums_list(ad); + } else { + _gl_update_albums_list(ad); + /*update view soon after removing over*/ + _gl_thumbs_update_view(ad); +// _gl_thumbs_update_sequence(ad); + } + } else { + gl_dbgE("Wrong mode!"); + } + + _gl_update_operation_view(ad, noti_str); + + _gl_db_update_lock_always(data, false); + return 0; +} + +int gl_move_copy_to_album(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + char folder_fullpath[GL_DIR_PATH_LEN_MAX] = { 0, }; + gl_cluster *cur_album = _gl_albums_get_current(data); + int cnt = _gl_data_selected_list_count(ad); + + _gl_db_update_lock_always(data, true); + + if (ad->albuminfo.file_mc_mode == GL_MC_COPY) { + + unsigned long long free_size = gl_fs_get_free_space(GL_STORE_T_PHONE); + gl_dbg("Free space is %lld", free_size); + + if (free_size <= GL_FS_MIN_SIZE) { + gl_dbgW("Low memory."); + gl_popup_create_popup(ad, GL_POPUP_ALBUM_MEMORY_FULL, + GL_DEVICE_MEMORY_FULL); + goto GL_FAILED; + } + } + + /** + * 'move_album_id == NULL' is new album case, + * other move/save to some existed album. + */ + if (ad->albuminfo.path == NULL) { + gl_dbg("---Popup list item: New album---"); + if (gl_make_new_album(ad->albuminfo.new_name) == false) { + gl_popup_create_popup(ad, GL_POPUP_NOBUT, + GL_STR_SAME_NAME_ALREADY_IN_USE); + gl_dbgE("Failed to make a new directory!"); + goto GL_FAILED; + } + snprintf(folder_fullpath, GL_DIR_PATH_LEN_MAX, "%s/%s", + GL_DEFAULT_PATH_IMAGES, ad->albuminfo.new_name); + } else { + g_strlcpy(folder_fullpath, ad->albuminfo.path, + GL_DIR_PATH_LEN_MAX); + GL_FREE(ad->albuminfo.path); + } + + if (!ad->albuminfo.b_new_album && + (cur_album == NULL || cur_album->cluster == NULL)) { + gl_dbgE("[Error] Current album is NULL!"); + goto GL_FAILED; + } + + memset(ad->albuminfo.dest_folder, 0x00, GL_DIR_PATH_LEN_MAX); + g_strlcpy(ad->albuminfo.dest_folder, folder_fullpath, + GL_DIR_PATH_LEN_MAX); + /* Check MMC state for cancel operation */ + gl_check_mmc_state(ad, folder_fullpath); + gl_dbg("MMC state: %d.", ad->maininfo.mmc_state); + if (cnt != 0) { + if (ad->albuminfo.file_mc_mode == GL_MC_MOVE) { + _gl_set_file_op_cbs(data, __gl_move_copy_op, + NULL, __gl_update_move_copy_view, cnt); + _gl_use_thread_operate_medias(ad, GL_STR_ID_MOVING, cnt, + GL_MEDIA_OP_MOVE); + } else if (ad->albuminfo.file_mc_mode == GL_MC_COPY) { + _gl_set_file_op_cbs(data, __gl_move_copy_op, NULL, + __gl_update_move_copy_view, cnt); + _gl_use_thread_operate_medias(ad, GL_STR_ID_COPYING, cnt, + GL_MEDIA_OP_COPY); + } else { + gl_dbgE("Wrong mode!"); + } + } + return 0; + + GL_FAILED: + + _gl_notify_check_selall(ad, ad->gridinfo.nf_it, ad->gridinfo.count, + _gl_data_selected_list_count(ad)); + /* Update the label text */ + _gl_thumbs_update_label_text(ad->gridinfo.nf_it, + _gl_data_selected_list_count(ad), false); + _gl_db_update_lock_always(data, false); + return -1; +} + +#ifdef _USE_ROTATE_BG + +int _gl_delay(double sec) +{ + gl_dbg("Start"); + struct timeval tv; + unsigned int start_t = 0; + unsigned int end_t = 0; + unsigned int delay_t = (unsigned int)(sec * GL_TIME_USEC_PER_SEC); + + gettimeofday(&tv, NULL); + start_t = tv.tv_sec * GL_TIME_USEC_PER_SEC + tv.tv_usec; + + for (end_t = start_t; end_t - start_t < delay_t;) { + gettimeofday(&tv, NULL); + end_t = tv.tv_sec * GL_TIME_USEC_PER_SEC + tv.tv_usec; + } + + gl_dbg("End"); + return 0; +} + +int _gl_rotate_op(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + /* Get all selected medias count */ + int cnt = _gl_data_selected_list_count(ad); + gl_item *gitem = NULL; + int i = 0; + int popup_op = GL_POPUP_OP_NONE; + unsigned int orient = GL_ORIENTATION_ROT_ERR; + unsigned int new_orient = GL_ORIENTATION_ROT_ERR; + int ret = -1; + bool b_left = false; + + if (ad->maininfo.medias_op_type == GL_MEDIA_OP_ROTATING_LEFT) + b_left = true; + + gl_cluster *current_album = _gl_albums_get_current(data); + /* Save cluster path to set new current_album from new albums list */ + if (current_album && current_album->cluster && + current_album->cluster->path && + strlen(current_album->cluster->path)) + g_strlcpy(ad->albuminfo.dest_folder, + current_album->cluster->path, GL_DIR_PATH_LEN_MAX); + else + gl_dbgE("Invalid folder path!"); + + /* Removed media from selected_media_elist */ + for (i = 0; i < cnt; i++) { + gitem = eina_list_nth(ad->selinfo.elist, i); + if (gitem != NULL && gitem->item != NULL && + gitem->item->file_url && + gitem->item->type == MEDIA_CONTENT_TYPE_IMAGE && + GL_FILE_EXISTS(gitem->item->file_url)) { + /* Save orient in file */ + ret = _gl_exif_get_orientation(gitem->item->file_url, + &orient); + if (ret == 0) { + new_orient = _gl_exif_get_rotated_orientation(orient, + b_left); + _gl_exif_set_orientation(gitem->item->file_url, + new_orient); + /* Update thumbnail */ + media_info_refresh_metadata_to_db(gitem->item->uuid); + } + } else { + gl_dbgE("Invalid item!"); + } + + /* Add some delay for last two images to wait for thumb updated */ + if (i > cnt - 2) + _gl_delay(GL_ROTATE_DELAY); + + if (i == cnt) { + gl_dbgW("Last image rotated!"); + /* Add another delay for last thumb */ + _gl_delay(GL_ROTATE_DELAY); + } + gl_dbg("Write pipe, make progressbar updated!"); + gl_thread_write_pipe(ad, i+1, popup_op); + gitem = NULL; + } + return 0; +} + +/* Update view after rotation process done */ +int _gl_update_rotate_view(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + gl_item *gitem = NULL; + Eina_List *tmp = NULL; + EINA_LIST_FOREACH(ad->selinfo.elist, tmp, gitem) { + if (gitem && gitem->elm_item) { + gitem->checked = false; + elm_gengrid_item_update(gitem->elm_item); + } + } + + /* Clear selected list */ + _gl_data_selected_list_finalize(data); + + memset(ad->albuminfo.dest_folder, 0x00, GL_DIR_PATH_LEN_MAX); + + _gl_update_operation_view(ad, NULL); + _gl_db_update_lock_always(data, false); + return 0; +} + +int _gl_rotate_images(void *data, bool b_left) +{ + gl_dbg(""); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + /* Get all selected medias count */ + int cnt = _gl_data_selected_list_count(ad); + /* Check MMC state for cancel operation */ + gl_check_mmc_state(ad, NULL); + gl_dbg("MMC state: %d.", ad->maininfo.mmc_state); + /* Rotate left */ + int op_type = GL_MEDIA_OP_ROTATING_LEFT; + /* Rotate right */ + if (!b_left) + op_type = GL_MEDIA_OP_ROTATING_RIGHT; + _gl_db_update_lock_always(data, true); + _gl_set_file_op_cbs(data, _gl_rotate_op, NULL, _gl_update_rotate_view, + cnt); + _gl_use_thread_operate_medias(ad, GL_STR_ID_ROTATING, cnt, op_type); + + return 0; +} + +int _gl_rotate_image_by_id(void *data, const char *uuid, bool b_left) +{ + GL_CHECK_VAL(uuid, -1); + GL_CHECK_VAL(data, -1); + unsigned int orient = GL_ORIENTATION_ROT_ERR; + unsigned int new_orient = GL_ORIENTATION_ROT_ERR; + int ret = -1; + media_info_h media_h = NULL; + char *path = NULL; + media_content_type_e media_type = 0; + + ret = media_info_get_media_from_db(uuid, &media_h); + if (ret != MEDIA_CONTENT_ERROR_NONE || media_h == NULL) { + gl_dbgE("Get media failed[%d]!", ret); + if (media_h) + media_info_destroy(media_h); + return -1; + } + ret = media_info_get_media_type(media_h, &media_type); + if (ret != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Get storage type failed!"); + media_info_destroy(media_h); + return -1; + } + ret = media_info_get_file_path(media_h, &path); + if (ret != MEDIA_CONTENT_ERROR_NONE) { + gl_dbgE("Get media file path failed!"); + media_info_destroy(media_h); + return -1; + } + if (media_type == MEDIA_CONTENT_TYPE_IMAGE && GL_FILE_EXISTS(path)) { + /* Save orient in file */ + ret = _gl_exif_get_orientation(path, &orient); + if (ret == 0) { + new_orient = _gl_exif_get_rotated_orientation(orient, + b_left); + _gl_exif_set_orientation(path, new_orient); + /* Update thumbnail */ + media_info_refresh_metadata_to_db(uuid); + } + } + + GL_FREE(path); + media_info_destroy(media_h); + media_h = NULL; + return 0; +} +#endif + +Eina_Bool gl_update_view(void *data, int mode) +{ + GL_CHECK_FALSE(data); + gl_appdata *ad = (gl_appdata *)data; + int view_mode = gl_get_view_mode(ad); + gl_dbg("view_mode: %d", view_mode); + if (mode == GL_UPDATE_VIEW_NONE) { + gl_dbg("Don't need to update"); + return EINA_FALSE; + } + + /* MMC, WEB, INOTIFY, need to update data first */ + if (mode >= GL_UPDATE_VIEW_MMC_REMOVED && + view_mode != GL_VIEW_THUMBS_SELECT) { + /* Albums list should be updated first */ + _gl_update_albums_list(data); + } + + if (view_mode == GL_VIEW_ALBUMS || + view_mode == GL_VIEW_ALBUMS_EDIT || + view_mode == GL_VIEW_ALBUMS_RENAME) { + /* Albums list should be updated first */ + gl_albums_update_view(ad); + } else if (view_mode == GL_VIEW_THUMBS) { + gl_cluster *cur = _gl_albums_get_current(data); + /* MMC removed, change to albums view if in mmc album */ + if (mode == GL_UPDATE_VIEW_MMC_REMOVED && + _gl_ctrl_get_tab_mode(ad) == GL_CTRL_TAB_ALBUMS && cur && + cur->cluster && cur->cluster->type == GL_STORE_T_MMC) { + gl_dbgW("MMC removed, change to albums view!"); + gl_pop_to_ctrlbar_ly(ad); + return EINA_TRUE; + } + + _gl_thumbs_update_view(data); + return EINA_TRUE; + } else if (view_mode == GL_VIEW_THUMBS_EDIT) { + /* Check thread operation case */ + if (ad->pbarinfo.sync_pipe) { + gl_dbgW("Thread operation is in process!"); + return EINA_TRUE; + } + + gl_cluster *cur = _gl_albums_get_current(data); + if (mode == GL_UPDATE_VIEW_MMC_REMOVED && + _gl_ctrl_get_tab_mode(ad) == GL_CTRL_TAB_ALBUMS && cur && + cur->cluster && cur->cluster->type == GL_STORE_T_MMC) { + /* MMC removed, change to albums view if in mmc album */ + gl_dbgW("MMC removed, change to albums view!"); + gl_pop_to_ctrlbar_ly(ad); + return EINA_TRUE; + } + + _gl_thumbs_update_view(data); + return EINA_TRUE; + } else if (view_mode == GL_VIEW_ALBUMS_SELECT) { + _gl_albums_sel_update_view(ad); + } else if (view_mode == GL_VIEW_THUMBS_SELECT) { + Evas_Object *layout_inner = elm_object_part_content_get(ad->albuminfo.select_layout, "split.view"); + if (!layout_inner) { + gl_dbgE("Failed to add split album view!"); + } else { + _create_split_album_view(ad, layout_inner); + elm_object_part_content_set(ad->albuminfo.select_layout, "split.view", layout_inner); + } + _gl_thumbs_sel_update_view(ad); + } else if (view_mode == GL_VIEW_TIMELINE) { + _gl_timeline_update_view(data); + } + return EINA_TRUE; +} + +/** +* Parse medias type and count of selected items, +* and set different type for share items. +*/ +int gl_get_share_mode(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + int share_mode = GL_SHARE_NONE; + int image_cnt = 0; + int video_cnt = 0; + int sel_cnt = 0; + int view_m = gl_get_view_mode(ad); + if (view_m == GL_VIEW_ALBUMS_EDIT) { + sel_cnt = ad->selinfo.sel_cnt; + } else if (view_m == GL_VIEW_ALBUMS) { + sel_cnt = ad->selinfo.sel_cnt; + } else { + GL_CHECK_VAL(ad->selinfo.elist, -1); + sel_cnt = eina_list_count(ad->selinfo.elist); + } + image_cnt = ad->selinfo.images_cnt; + if (image_cnt > sel_cnt) { + gl_dbgE("Images count is wrong!"); + return -1; + } + + video_cnt = sel_cnt - image_cnt; + gl_dbg("Selected items count: %d, image count: %d, video count: %d.", + sel_cnt, image_cnt, video_cnt); + + if (image_cnt && video_cnt) { + share_mode = GL_SHARE_IMAGE_VIDEO; + } else if (image_cnt) { + if (ad->selinfo.jpeg_cnt == sel_cnt) { + if (image_cnt == 1) + share_mode = GL_SHARE_IMAGE_ONE_JPEG; + else + share_mode = GL_SHARE_IMAGE_MULTI_JPEG; + } else { + if (image_cnt == 1) + share_mode = GL_SHARE_IMAGE_ONE; + else + share_mode = GL_SHARE_IMAGE_MULTI; + } + } else if (video_cnt) { + if (video_cnt == 1) { + share_mode = GL_SHARE_VIDEO_ONE; + } else { + share_mode = GL_SHARE_VIDEO_MULTI; + } + } else { + gl_dbgE("Error: no video and image!"); + return -1; + } + gl_dbg("share_mode is %d.", share_mode); + + return share_mode; +} + +/** +* It's in thumbnails view, video list view, or selectioinfo view. +* Destroy invalid widegets or UGs. +* Pop current invalid view to controlbar layout, +* to show Albums view/Map/Tags view. +*/ +int gl_pop_to_ctrlbar_ly(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg(""); + + /* Destroy thumbnails/video_list view then pop to ctrlbar_ly */ + _gl_thumbs_destroy_view(data, true); + + if (gl_check_gallery_empty(ad)) { + /* None albums exist, Change to albums view. */ + gl_dbgW("Empty Gallery, change to Albums view."); + if (_gl_ctrl_get_tab_mode(ad) != GL_CTRL_TAB_ALBUMS) { + /* Change to Albums tab. */ + gl_dbg("Not in Albums tab."); + _gl_ctrl_sel_tab(data, GL_CTRL_TAB_ALBUMS); + return 0; + } + /* None albums, disable edit button/controlbar */ + _gl_albums_check_btns(data); + } else { + /* Change to albums view. */ + gl_dbg("Change to Albums view."); + /* None editable albums, disable edit button */ + _gl_albums_check_btns(data); + } + return 0; +} + +time_t gl_util_get_current_systemtime(void) +{ + struct timeval now; + memset(&now, 0x00, sizeof(struct timeval)); + struct tm local_time; + memset(&local_time, 0x00, sizeof(struct tm)); + + /* get current time */ + gettimeofday(&now, NULL); + localtime_r((time_t *)(&(now.tv_sec)), &local_time); + + return mktime(&local_time); +} + +/* Change int to char * of video duration, caller need to free the allocated memory */ +char *_gl_get_duration_string(unsigned int v_dur) +{ + char *dur_str = calloc(1, GL_FILE_PATH_LEN_MAX); + GL_CHECK_NULL(dur_str); + if (v_dur > 0) { + int duration = floor(v_dur / GL_TIME_MSEC_PER_SEC); + int dur_hr = 0; + int dur_min = 0; + int dur_sec = 0; + int tmp = 0; + + if (duration >= GL_TIME_SEC_PER_HOUR) { + dur_sec = duration % GL_TIME_SEC_PER_MIN; + tmp = floor(duration / GL_TIME_SEC_PER_MIN); + dur_min = tmp % GL_TIME_MIN_PER_HOUR; + dur_hr = floor(tmp / GL_TIME_MIN_PER_HOUR); + } else if (duration >= GL_TIME_SEC_PER_MIN) { + dur_hr = 0; + dur_min = floor(duration / GL_TIME_SEC_PER_MIN); + dur_sec = duration % GL_TIME_SEC_PER_MIN; + } else { + dur_hr = 0; + dur_min = 0; + dur_sec = duration % GL_TIME_SEC_PER_MIN; + } + + snprintf(dur_str, GL_FILE_PATH_LEN_MAX, "%02d:%02d:%02d", + dur_hr, dur_min, dur_sec); + } else { + snprintf(dur_str, GL_FILE_PATH_LEN_MAX, "00:00:00"); + } + dur_str[strlen(dur_str)] = '\0'; + return dur_str; +} + +gl_icon_type_e _gl_get_icon_type(gl_item *git) +{ + if (git == NULL || git->item == NULL || git->item->file_url == NULL) { + gl_dbgE("Invalid item :%p", git); + return GL_ICON_CORRUPTED_FILE; + } + + return GL_ICON_NORMAL; +} + +char *_gl_str(char *str_id) +{ + GL_CHECK_NULL(str_id); + if (strstr(str_id, "IDS_COM")) + return dgettext(GL_STR_DOMAIN_SYS, str_id); + else if (strstr(str_id, "IDS_")) + return dgettext(GL_STR_DOMAIN_LOCAL, str_id); + else + return str_id; +} + +bool _gl_is_str_id(const char *str_id) +{ + GL_CHECK_NULL(str_id); + if (strstr(str_id, "IDS_")) + return true; + else + return false; +} + +double _gl_get_win_factor(Evas_Object *win, int *width, int *height) +{ + if (win == NULL) { + gl_dbgE("Invalid window!"); + return 1.0f; + } + + double factor = 1.0f; + int win_x = 0; + int win_y = 0; + int win_w = 0; + int win_h = 0; + + elm_win_screen_size_get(win, &win_x, &win_y, &win_w, &win_h); + gl_dbg("Window size: %dx%d, %dx%d", win_x, win_y, win_w, win_h); + int win_p_h = win_w > win_h ? win_w : win_h; + double scale = elm_config_scale_get(); + gl_dbg("scale: %f", scale); + + if (win_p_h < GL_WIN_HEIGHT) { + factor = (double)(win_p_h - (int)(GL_FIXED_HEIGHT * scale)) / (double)(GL_WIN_HEIGHT - GL_FIXED_HEIGHT); + } else if (scale > factor) { + factor = (GL_WIN_HEIGHT - GL_FIXED_HEIGHT * scale) / (GL_WIN_HEIGHT - GL_FIXED_HEIGHT); + } else if (scale < factor) { + factor = (GL_WIN_HEIGHT - GL_FIXED_HEIGHT) / (GL_WIN_HEIGHT - GL_FIXED_HEIGHT * scale); + } else { + factor = scale; + } + gl_dbg("factor: %f", factor); + if (width) + *width = win_w; + if (height) + *height = win_h; + return factor; +} + +/** + * @brief font size + * + * 0 : small + * 1 : normal + * 2 : large + * 3 : huge + * 4 : giant + */ +int _gl_get_font_size(void) +{ + int mode = -1; + int retcode = system_settings_get_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, &mode); + gl_dbg("mode: %d", mode); + if (retcode != SYSTEM_SETTINGS_ERROR_NONE) { + gl_dbgE("Failed to get font size!"); + return -1; + } + return mode; +} + +#ifdef _USE_SVI +int _gl_init_svi(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + if (svi_init(&(ad->maininfo.svi_handle)) != 0) { + gl_dbgE("svi_init failed!"); + return -1; + } + + return __gl_get_sound_status(data); +} + +int _gl_fini_svi(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + if (ad->maininfo.svi_handle) { + svi_fini(ad->maininfo.svi_handle); + ad->maininfo.svi_handle = 0; + } + return 0; +} + +int _gl_play_sound(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + if (ad->maininfo.sound_status) + svi_play(ad->maininfo.svi_handle, SVI_VIB_NONE, + SVI_SND_TOUCH_TOUCH1); + return 0; +} + +int _gl_play_vibration(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + svi_play(ad->maininfo.svi_handle, SVI_VIB_TOUCH_TOUCH, SVI_SND_NONE); + return 0; +} +#endif + +int _gl_reg_storage_state_change_notify(void *data) +{ + __gl_reg_db_noti(data); + __gl_reg_svi_noti(data); + return 0; +} + +int _gl_dereg_storage_state_change_notify(void *data) +{ + __gl_dereg_db_noti(data); + __gl_dereg_svi_noti(); + return 0; +} + +int _gl_set_file_op_cbs(void *data, void *op_cb, void *del_item_cb, + void *update_cb, int total_cnt) +{ + GL_CHECK_VAL(data, -1); + _gl_thread_set_op_cb(data, op_cb); + _gl_thread_set_update_cb(data, update_cb); + _gl_thread_set_del_item_cb(data, del_item_cb); + _gl_thread_set_total_cnt(data, total_cnt); + return 0; +} + +int _gl_append_album_images_path(void *data, gl_media_s *item) +{ + GL_CHECK_VAL(item, -1); + GL_CHECK_VAL(item->file_url, -1); + GL_CHECK_VAL(data, -1); + + gl_get_album_images_path_s *get_d = (gl_get_album_images_path_s *)data; + GL_CHECK_VAL(get_d->files, -1); + + char **files = get_d->files; + files[get_d->index++] = g_strdup(item->file_url); + gl_sdbg("file_url: %s!", files[get_d->index - 1]); + return 0; +} + +int _gl_get_album_images_path(void *data, char **files, bool b_hide) +{ + GL_CHECK_VAL(data, 0); + GL_CHECK_VAL(files, 0); + gl_get_album_images_path_s *get_d = g_new0(gl_get_album_images_path_s, 1); + GL_CHECK_VAL(get_d, 0); + get_d->files = files; + int count = _gl_data_get_albums_selected_files(data, + _gl_append_album_images_path, + (void *)get_d); + GL_GFREE(get_d); + return count; +} + +int _gl_free_selected_list(void *data) +{ + GL_CHECK_VAL(data, -1); + int view_mode = gl_get_view_mode(data); + if (GL_VIEW_ALBUMS == view_mode) + _gl_data_finalize_albums_selected_list(data); + if (GL_VIEW_THUMBS == view_mode) + _gl_data_selected_list_finalize(data); + return 0; +} + +int _gl_dlopen_imageviewer(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + if (ad->maininfo.dlopen_iv_handle) { + gl_dbgE("Already opened imageviewer so lib!"); + return -1; + } + + ad->maininfo.dlopen_iv_handle = dlopen(GL_SO_PATH_IMAGEVIEWER, RTLD_NOW); + if (ad->maininfo.dlopen_iv_handle == NULL) { + gl_sdbgE("Lib %s is not opened, %s!", GL_SO_PATH_IMAGEVIEWER, + dlerror()); + return -1; + } + gl_sdbg("dlopen %s done", GL_SO_PATH_IMAGEVIEWER); + return 0; +} + +int _gl_dlclose_imageviewer(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + if (ad->maininfo.dlopen_iv_handle) { + dlclose(ad->maininfo.dlopen_iv_handle); + ad->maininfo.dlopen_iv_handle = NULL; + gl_sdbg("dlclose %s done", GL_SO_PATH_IMAGEVIEWER); + return 0; + } + return -1; +} + diff --git a/src/widget/gl-button.c b/src/widget/gl-button.c new file mode 100644 index 0000000..07c0035 --- /dev/null +++ b/src/widget/gl-button.c @@ -0,0 +1,127 @@ +/* +* 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 "gl-debug.h" +#include "gl-ui-util.h" +#include "gl-button.h" +#include "gl-strings.h" +#include "gl-util.h" + +#define GL_BTN_POPUP "popup" + +/******************************************************* +** Prototype : _gl_but_create_but +** Description : Create button +** Input : Evas_Object *parent +** Input : const char *icon +** Input : const char *text +** Input : const char *style +** Input : Evas_Smart_Cb cb_func +** Input : const void *data +** Output : None +** Return Value : +** Calls : +** Called By : +** +** History : +** 1.Date : 2011/06/10 +** Author : Samsung +** Modification : Created function +** +*********************************************************/ +Evas_Object *_gl_but_create_but(Evas_Object *parent, const char *icon, + const char *text, const char *style, + Evas_Smart_Cb cb_func, const void *data) +{ + Evas_Object *btn = NULL; + GL_CHECK_NULL(parent); + + btn = elm_button_add(parent); + GL_CHECK_NULL(btn); + if (style) + elm_object_style_set(btn, style); + evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, EVAS_HINT_FILL); + + if (icon) { + gl_sdbg("Button icon: %s", icon); + Evas_Object *ic = NULL; + ic = elm_icon_add(btn); + GL_CHECK_NULL(ic); + GL_ICON_SET_FILE(ic, icon); + elm_image_aspect_fixed_set(ic, EINA_TRUE); + elm_image_fill_outside_set(ic, EINA_TRUE); + evas_object_size_hint_aspect_set(ic, + EVAS_ASPECT_CONTROL_VERTICAL, + 1, 1); + evas_object_size_hint_align_set(ic, EVAS_HINT_FILL, + EVAS_HINT_FILL); + evas_object_size_hint_weight_set(ic, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + elm_image_resizable_set(ic, EINA_TRUE, EINA_TRUE); + elm_object_content_set(btn, ic); + } + + if (text) { + gl_sdbg("Button text: %s", text); + _gl_ui_set_translate_str(btn, text); + } + + if (cb_func) + evas_object_smart_callback_add(btn, "clicked", cb_func, data); + + return btn; +} + +Evas_Object *_gl_but_create_image_but(Evas_Object *parent, const char *icon, + const char *text, const char *style, + Evas_Smart_Cb cb_func, void *data, + Eina_Bool flag_propagate) +{ + GL_CHECK_NULL(parent); + Evas_Object *btn; + btn = elm_button_add(parent); + GL_CHECK_NULL(btn); + + if (style) { + elm_object_style_set(btn, style); + } + if (text) { + gl_sdbg("Button text: %s", text); + _gl_ui_set_translate_str(btn, text); + } + + if (icon) { + Evas_Object *ic = elm_image_add(parent); + GL_CHECK_NULL(ic); + GL_ICON_SET_FILE(ic, icon); + elm_image_resizable_set(ic, EINA_TRUE, EINA_TRUE); + evas_object_show(ic); + elm_object_content_set(btn, ic); + } + + evas_object_propagate_events_set(btn, flag_propagate); + if (cb_func) + evas_object_smart_callback_add(btn, "clicked", cb_func, data); + return btn; +} + +Evas_Object *_gl_but_create_but_popup(Evas_Object *parent, const char *text, + Evas_Smart_Cb cb_func, const void *data) +{ + return _gl_but_create_but(parent, NULL, text, GL_BTN_POPUP, cb_func, data); +} + diff --git a/src/widget/gl-controlbar.c b/src/widget/gl-controlbar.c new file mode 100644 index 0000000..8e0e292 --- /dev/null +++ b/src/widget/gl-controlbar.c @@ -0,0 +1,345 @@ +/* +* 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 "gl-debug.h" +#include "gl-ui-util.h" +#include "gl-util.h" +#include "gl-controlbar.h" +#include "gl-albums.h" +#include "gl-thumbs.h" +#include "gl-data.h" +#include "gl-strings.h" +#include "gl-icons.h" +#include "gl-progressbar.h" +#include "gl-ctxpopup.h" +#include "gl-thumbs-edit.h" +#include "gl-timeline.h" +#include "gl-albums-edit.h" + +static int __gl_ctrl_reset_previous_tab(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + int tab_mode = _gl_ctrl_get_tab_mode(ad); + + switch (tab_mode) { + case GL_CTRL_TAB_ALBUMS: + _gl_albums_hide_view_tab(data); + break; + case GL_CTRL_TAB_TIMELINE: + _gl_timeline_hide_view(data); + break; + default: + gl_dbgW("Wrong tabbar mode!"); + return -1; + } + /* Hide previous view */ + Evas_Object *pre_view = NULL; + pre_view = elm_object_part_content_unset(ad->ctrlinfo.ctrlbar_view_ly, + "elm.swallow.view"); + evas_object_hide(pre_view); + return 0; +} + +int _gl_ctrl_show_view(void *data, const char *label) +{ + GL_PROFILE_IN; + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + int tab_mode = _gl_ctrl_get_tab_mode(ad); + gl_dbg("tab_mode: %d, label: %s", tab_mode, label); + + if (!g_strcmp0(label, GL_STR_ALBUMS)) { + gl_dbg("Albums"); + if (tab_mode == GL_CTRL_TAB_ALBUMS) { + gl_dbg("Already in Albums Tab."); + return -1; + } + __gl_ctrl_reset_previous_tab(ad); + _gl_ctrl_set_tab_mode(ad, GL_CTRL_TAB_ALBUMS); + _gl_albums_show_view_tab(data, ad->ctrlinfo.ctrlbar_view_ly); + } else if (!g_strcmp0(label, "Timeline"/*_gl_str(GL_STR_ID_TIME_LINE)*/)) { +// :TODO Timeline need to be addressed + gl_dbg(" Timeline"); + if (tab_mode == GL_CTRL_TAB_TIMELINE) { + gl_dbg("Already in Timeline Tab."); + return -1; + } + + __gl_ctrl_reset_previous_tab(ad); + _gl_ctrl_set_tab_mode(ad, GL_CTRL_TAB_TIMELINE); + _gl_timeline_create_view(data, ad->ctrlinfo.ctrlbar_view_ly); + } + GL_PROFILE_OUT; + return 0; +} + +/* Enable all buttons except for some special cases */ +static int __gl_ctrl_enable_btns(gl_appdata *ad, Elm_Object_Item *nf_it) +{ + gl_dbg(""); + GL_CHECK_VAL(ad, -1); + GL_CHECK_VAL(nf_it, -1); + int view_mode = gl_get_view_mode(ad); + + if (view_mode == GL_VIEW_THUMBS_EDIT) { + _gl_thumbs_edit_disable_btns(ad, false); + } else if (view_mode == GL_VIEW_ALBUMS_EDIT) { + _gl_albums_edit_disable_btns(ad, false); + } else { + _gl_ui_disable_menu(nf_it, false); + _gl_ctrl_disable_items(nf_it, false); + } + return 0; +} + +Evas_Object *_gl_ctrl_add_layout(Evas_Object *parent) +{ + GL_CHECK_NULL(parent); + Evas_Object *layout = NULL; + layout = gl_ui_load_edj(parent, GL_EDJ_FILE, GL_GRP_CONTROLBAR); + GL_CHECK_NULL(layout); + evas_object_show(layout); + return layout; +} + +Evas_Object *_gl_ctrl_add_main_layout(Evas_Object *parent) +{ + GL_PROFILE_IN; + GL_CHECK_NULL(parent); + + Evas_Object *layout = elm_layout_add(parent); + GL_CHECK_NULL(layout); + 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_layout_theme_set(layout, "layout", "application", "default"); + evas_object_show(layout); + + GL_PROFILE_OUT; + return layout; +} + +int _gl_ctrl_show_title(void *data, int tab_mode) +{ + GL_PROFILE_IN; + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->ctrlinfo.ctrlbar_ly, -1); + char *text = NULL; + gl_dbg("tab_mode: %d", tab_mode); + + switch (tab_mode) { + case GL_CTRL_TAB_ALBUMS: + text = GL_STR_ID_ALBUMS; + break; + case GL_CTRL_TAB_TIMELINE: + // :TODO Timeline token need to be addressed + text = GL_STR_TIME_VIEW; + break; + default: + gl_dbgE("Wrong mode!"); + return -1; + } + + if (text) { + gl_sdbg("text: %s", text); + _gl_ui_change_navi_title(ad->ctrlinfo.nf_it, text, true); + } else { + gl_dbgE("Invalid text!"); + return -1; + } + GL_PROFILE_OUT; + return 0; +} + +int _gl_ctrl_sel_tab(void *data, int tab_mode) +{ + gl_dbg("_gl_ctrl_sel_tab"); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->ctrlinfo.ctrlbar_ly, -1); + const char *text = NULL; + + switch (tab_mode) { + case GL_CTRL_TAB_ALBUMS: + text = GL_STR_ALBUMS; + break; + case GL_CTRL_TAB_TIMELINE: + gl_dbg("GL_CTRL_TAB_TIMELINE"); + // :TODO Timeline token need to be addressed + text = "Timeline";//GL_STR_TIME_LINE;//_gl_str(GL_STR_ID_TIME_LINE); + break; + default: + gl_dbgE("Wrong mode!"); + return -1; + } + + gl_dbg("text: %s[%d]", text, tab_mode); + _gl_ctrl_show_view(data, text); + return 0; +} + +int _gl_ctrl_set_tab_mode(void *data, int mode) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg("mode: %d", mode); + ad->ctrlinfo.tab_mode = mode; + return 0; +} + +int _gl_ctrl_get_tab_mode(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + return ad->ctrlinfo.tab_mode; +} + +int _gl_ctrl_change_easymode(void *data) +{ + GL_CHECK_VAL(data, -1); + + /* Remove ctxpopup */ + _gl_ctxpopup_del(data); + /* Clear old view first */ + gl_pop_to_ctrlbar_ly(data); + /* Initialize tab view */ + __gl_ctrl_reset_previous_tab(data); + /* Reset tab view mode to re-entrance same tab view */ + _gl_ctrl_set_tab_mode(data, GL_CTRL_TAB_INIT); + _gl_ctrl_show_view(data, GL_STR_ALBUMS); + return 0; +} + +int _gl_ctrl_enable_btns(void *data, Elm_Object_Item *nf_it) +{ + return __gl_ctrl_enable_btns(data, nf_it); +} + +Evas_Object *_gl_ctrl_add_toolbar(Evas_Object *parent) +{ + Evas_Object *toolbar = elm_toolbar_add(parent); + GL_CHECK_NULL(toolbar); + elm_object_style_set(toolbar, "default"); + 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 *_gl_ctrl_append_item(Evas_Object *obj, const char *icon, + const char *label, Evas_Smart_Cb func, + const void *data) +{ + Elm_Object_Item *it = NULL; + it = elm_toolbar_item_append(obj, icon, label, func, data); + if (label) + _gl_ui_set_translatable_item(it, label); + return it; +} + +int _gl_ctrl_disable_items(Elm_Object_Item *nf_it, bool b_disabled) +{ + GL_CHECK_VAL(nf_it, -1); + Evas_Object *toolbar = NULL; + + toolbar = elm_object_item_part_content_get(nf_it, "toolbar"); + GL_CHECK_VAL(toolbar, -1); + + Elm_Object_Item *it = NULL; + Elm_Object_Item *next_it = NULL; + char *text = NULL; + it = elm_toolbar_first_item_get(toolbar); + while (it) { + next_it = elm_toolbar_item_next_get(it); + text = (char *)elm_object_item_text_get(it); + if (text && !g_strcmp0(text, _gl_str(GL_STR_ID_CANCEL))) { + it = next_it; + continue; + } + _gl_ctrl_disable_item(it, b_disabled); + it = next_it; + } + return 0; +} + +int _gl_ctrl_disable_items_with_check(Elm_Object_Item *nf_it, bool b_disabled, + char *check_str, bool b_check_disabled) +{ + GL_CHECK_VAL(nf_it, -1); + Evas_Object *toolbar = NULL; + toolbar = elm_object_item_part_content_get(nf_it, "toolbar"); + GL_CHECK_VAL(toolbar, -1); + + Elm_Object_Item *it = NULL; + Elm_Object_Item *next_it = NULL; + char *text = NULL; + it = elm_toolbar_first_item_get(toolbar); + while (it) { + next_it = elm_toolbar_item_next_get(it); + text = (char *)elm_object_item_text_get(it); + if (text && !g_strcmp0(text, _gl_str(GL_STR_ID_CANCEL))) { + it = next_it; + continue; + } + if (check_str) { + if (text && !g_strcmp0(text, _gl_str(check_str))) + _gl_ctrl_disable_item(it, b_check_disabled); + else + _gl_ctrl_disable_item(it, b_disabled); + } else { + _gl_ctrl_disable_item(it, b_disabled); + } + it = next_it; + } + return 0; +} + +int _gl_ctrl_disable_item_with_check(Elm_Object_Item *nf_it, char *check_str, + bool b_disabled) +{ + GL_CHECK_VAL(check_str, -1); + GL_CHECK_VAL(nf_it, -1); + Evas_Object *toolbar = NULL; + toolbar = elm_object_item_part_content_get(nf_it, "toolbar"); + GL_CHECK_VAL(toolbar, -1); + + Elm_Object_Item *it = NULL; + Elm_Object_Item *next_it = NULL; + char *text = NULL; + it = elm_toolbar_first_item_get(toolbar); + while (it) { + next_it = elm_toolbar_item_next_get(it); + text = (char *)elm_object_item_text_get(it); + if (text && !g_strcmp0(text, _gl_str(check_str))) { + _gl_ctrl_disable_item(it, b_disabled); + return 0; + } + it = next_it; + } + return -1; +} + +int _gl_ctrl_disable_item(Elm_Object_Item *it, Eina_Bool b_disabled) +{ + GL_CHECK_VAL(it, -1); + /* dlog fatal is enabled. Elm_Object_Item cannot be NULL. */ + elm_object_item_disabled_set(it, b_disabled); + return 0; +} + diff --git a/src/widget/gl-ctxpopup.c b/src/widget/gl-ctxpopup.c new file mode 100644 index 0000000..05c068c --- /dev/null +++ b/src/widget/gl-ctxpopup.c @@ -0,0 +1,368 @@ +/* +* 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 "gallery.h" +#include "gl-ctxpopup.h" +#include "gl-ui-util.h" +#include "gl-util.h" +#include "gl-debug.h" +#include "gl-strings.h" +#include "gl-button.h" +#include "gl-controlbar.h" +#include "gl-thumbs.h" +#include "gl-albums.h" + +#define GL_CTXPOPUP_OBJ_DATA_KEY "gl_ctxpopup_data_key" +#define GL_CTXPOPUP_OBJ_MORE_BTN_KEY "gl_ctxpopup_more_btn_key" +#define GL_CTXPOPUP_OBJ_ROTATE_KEY "gl_ctxpopup_rotate_key" +#define GL_CTXPOPUP_STYLE_MORE "more/default" + +typedef struct _gl_ctx_data_t gl_ctx_data_s; +struct _gl_ctx_data_t { + int items_count; +}; + +static void __gl_ctxpopup_move_for_hwkey(void *data, Evas_Object *ctxpopup) +{ + GL_CHECK(ctxpopup); + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + int win_w = 0; + int win_h = 0; + int move_x = 0; + int move_y = 0; + + elm_win_screen_size_get(ad->maininfo.win, NULL, NULL, &win_w, &win_h); + int changed_ang = elm_win_rotation_get(ad->maininfo.win); + gl_dbg("New angle: %d", changed_ang); + + switch (changed_ang) { + case APP_DEVICE_ORIENTATION_0: + case APP_DEVICE_ORIENTATION_180: + move_x = win_w/2; + move_y = win_h; + break; + case APP_DEVICE_ORIENTATION_90: + move_x = win_h/2; + move_y = win_w; + break; + case APP_DEVICE_ORIENTATION_270: + move_x = win_h/2; + move_y = win_w; + break; + } + + gl_dbg("move_x: %d, move_y: %d", move_x, move_y); + evas_object_move(ctxpopup, move_x, move_y); +} + +static bool __gl_ctxpopup_check_btn_pos(void *data, Evas_Object *btn, int x, + int y, int w, int h) +{ + GL_CHECK_FALSE(data); + GL_CHECK_FALSE(btn); + gl_appdata *ad = (gl_appdata *)data; + int win_w = 0, win_h = 0; + + elm_win_screen_size_get(ad->maininfo.win, NULL, NULL, &win_w, &win_h); + + if (((x > 0) && (x < win_w)) && ((y > 0) && (y < win_h)) && + ((w > 0) && (h > 0))) { + /* button's position is inside the main window, and button's size is not zero */ + return true; + } + + return false; +} + +static char *__gl_ctxpopup_get_icon(char *label_id) +{ + GL_CHECK_NULL(label_id); + char *path = NULL; + + if (!g_strcmp0(GL_STR_ID_EDIT_IMAGE, label_id)) { + path = GL_ICON_EDIT_IMAGE; + } else if (!g_strcmp0(GL_STR_ID_DELETE, label_id)) { + path = GL_ICON_DELETE; + } else if (!g_strcmp0(GL_STR_ID_MOVE, label_id)) { + path = GL_ICON_MOVE; + } else if (!g_strcmp0(GL_STR_ID_COPY, label_id)) { + path = GL_ICON_COPY; + } else if (!g_strcmp0(GL_STR_ID_ROTATE_LEFT, label_id)) { + path = GL_ICON_ROTATE_LEFT; + } else if (!g_strcmp0(GL_STR_ID_ROTATE_RIGHT, label_id)) { + path = GL_ICON_ROTATE_RIGHT; + } +#ifdef SUPPORT_SLIDESHOW + else if (!g_strcmp0(GL_STR_ID_SLIDESHOW, label_id)) { + path = GL_ICON_SLIDESHOW; + } +#endif + else if (!g_strcmp0(GL_STR_ID_NEW_ALBUM, label_id)) { + path = GL_ICON_NEW_ALBUM; + } else if (!g_strcmp0(GL_STR_ID_SHARE, label_id)) { + path = GL_ICON_SHARE; + } else if (!g_strcmp0(GL_STR_ID_EDIT, label_id)) { + path = GL_ICON_EDIT; + } else if (!g_strcmp0(GL_STR_ID_RENAME, label_id)) { + path = GL_ICON_RENAME; + } else if (!g_strcmp0(GL_STR_ID_SETTINGS, label_id)) { + path = GL_ICON_SETTINGS; + } + return path; +} + +static void __gl_ctxpopup_hide_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(obj); + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + + bool ct_rotate = (bool)evas_object_data_get(obj, + GL_CTXPOPUP_OBJ_ROTATE_KEY); + + if (!ct_rotate) { + gl_dbg("ctxpopup is dismissed"); + evas_object_del(obj); + ad->maininfo.ctxpopup = NULL; + } else { + gl_dbg("ctxpopup is not dismissed"); + /* when "dismissed" cb is called next time, + * ctxpopup should be dismissed if device is not rotated. */ + evas_object_data_set(obj, GL_CTXPOPUP_OBJ_ROTATE_KEY, + (void *)false); + /* If ctxpopup is not dismissed, then it must be shown again. + * Otherwise "dismissed" cb will be called one more time. */ + evas_object_show(ad->maininfo.ctxpopup); + } +} + +/* Basic winset: ctxpopup only activated from more button */ +static int __gl_ctxpopup_show(void *data, Evas_Object *btn, Evas_Object *ctxpopup) +{ + GL_CHECK_VAL(ctxpopup, -1); + GL_CHECK_VAL(btn, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + int x_position = 0; + int y_position = 0; + int w = 0; + int h = 0; + + elm_ctxpopup_direction_priority_set(ctxpopup, ELM_CTXPOPUP_DIRECTION_UP, + ELM_CTXPOPUP_DIRECTION_LEFT, + ELM_CTXPOPUP_DIRECTION_RIGHT, + ELM_CTXPOPUP_DIRECTION_DOWN); + /* Only for more button */ + evas_object_geometry_get(btn, &x_position, &y_position, &w, &h); + if (__gl_ctxpopup_check_btn_pos(data, btn, x_position, y_position, w, h) == true) { + /* the more button is inside the main window */ + evas_object_move(ctxpopup, x_position+w/2, y_position + h/2); + gl_dbg("(%d, %d) - (%d, %d)", x_position, y_position, w, h); + } else { + /* the more button is not inside the main windown, + possibly because the target has HW more/back keys. */ + __gl_ctxpopup_move_for_hwkey(data, ctxpopup); + } + + evas_object_show(ctxpopup); + ad->maininfo.ctxpopup = ctxpopup; + return 0; +} + +static void __gl_ctxpopup_parent_resize_cb(void *data, Evas *e, + Evas_Object *obj, void *ei) +{ + gl_dbg(""); + GL_CHECK(data); + evas_object_data_set((Evas_Object *)data, GL_CTXPOPUP_OBJ_ROTATE_KEY, + (void *)true); +} + +static void __gl_ctxpopup_items_update_cb(void *data, Evas_Object *obj, void *ei) +{ + gl_dbg(""); + GL_CHECK(data); + int (*update_cb)(void *data, Evas_Object *parent); + update_cb = evas_object_data_get((Evas_Object *)data, + "gl_ctxpopup_update_items_cb"); + gl_sdbg("callback: %p", update_cb); + if (update_cb) + update_cb(ei, (Evas_Object *)data); +} + + +static void __gl_ctxpopup_rotate_cb(void *data, Evas_Object *obj, void *ei) +{ + gl_dbg(""); + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + + Evas_Object *more_btn = NULL; + more_btn = (Evas_Object *)evas_object_data_get(ad->maininfo.ctxpopup, + GL_CTXPOPUP_OBJ_MORE_BTN_KEY); + GL_CHECK(more_btn); + __gl_ctxpopup_show(data, more_btn, ad->maininfo.ctxpopup); +} + +static void __gl_ctxpopup_del_cb(void *data, Evas *e, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + GL_CHECK(obj); + Evas_Object *ctxpopup = obj; + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK(ad->maininfo.naviframe); + + evas_object_data_del(ctxpopup, GL_CTXPOPUP_OBJ_MORE_BTN_KEY); + evas_object_data_del(ctxpopup, GL_CTXPOPUP_OBJ_ROTATE_KEY); + evas_object_smart_callback_del(ctxpopup, "dismissed", + __gl_ctxpopup_hide_cb); + evas_object_event_callback_del(ctxpopup, EVAS_CALLBACK_DEL, + __gl_ctxpopup_del_cb); + evas_object_event_callback_del(ad->maininfo.naviframe, + EVAS_CALLBACK_RESIZE, + __gl_ctxpopup_parent_resize_cb); + evas_object_smart_callback_del(ad->maininfo.naviframe, + "ctxpopup,items,update", + __gl_ctxpopup_items_update_cb); + evas_object_smart_callback_del(elm_object_top_widget_get(ctxpopup), + "rotation,changed", + __gl_ctxpopup_rotate_cb); + void *ctx_data = evas_object_data_get(ctxpopup, GL_CTXPOPUP_OBJ_DATA_KEY); + GL_FREEIF(ctx_data); + gl_dbg("done"); +} + +static int __gl_ctxpopup_add_callbacks(void *data, Evas_Object *ctxpopup) +{ + GL_CHECK_VAL(data, -1); + GL_CHECK_VAL(ctxpopup, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->maininfo.naviframe, -1); + + evas_object_smart_callback_add(ctxpopup, "dismissed", + __gl_ctxpopup_hide_cb, data); + evas_object_event_callback_add(ctxpopup, EVAS_CALLBACK_DEL, + __gl_ctxpopup_del_cb, data); + evas_object_event_callback_add(ad->maininfo.naviframe, + EVAS_CALLBACK_RESIZE, + __gl_ctxpopup_parent_resize_cb, + ctxpopup); + evas_object_smart_callback_add(ad->maininfo.naviframe, + "ctxpopup,items,update", + __gl_ctxpopup_items_update_cb, ctxpopup); + evas_object_smart_callback_add(elm_object_top_widget_get(ctxpopup), + "rotation,changed", + __gl_ctxpopup_rotate_cb, data); + + gl_dbg("done"); + return 0; +} + +Elm_Object_Item *_gl_ctxpopup_append(Evas_Object *obj, char *label_id, + Evas_Smart_Cb func, const void *data) +{ + Evas_Object *ic = NULL; + char *path = __gl_ctxpopup_get_icon(label_id); + + if (path) { + ic = elm_image_add(obj); + GL_CHECK_NULL(ic); + GL_ICON_SET_FILE(ic, path); + } + + gl_ctx_data_s *ctx_data = NULL; + ctx_data = (gl_ctx_data_s *)evas_object_data_get(obj, + GL_CTXPOPUP_OBJ_DATA_KEY); + if (ctx_data) { + ctx_data->items_count++; + } + return elm_ctxpopup_item_append(obj, _gl_str(label_id), NULL, func, data); +} + +Elm_Object_Item *_gl_ctxpopup_append_with_icon(Evas_Object *obj, char *label, + char *icon_path, Evas_Smart_Cb func, const void *data) +{ + Evas_Object *ic = NULL; + + if (icon_path) { + ic = elm_image_add(obj); + GL_CHECK_NULL(ic); + GL_ICON_SET_FILE(ic, icon_path); + } + + gl_ctx_data_s *ctx_data = NULL; + ctx_data = (gl_ctx_data_s *)evas_object_data_get(obj, + GL_CTXPOPUP_OBJ_DATA_KEY); + if (ctx_data) { + ctx_data->items_count++; + } + return elm_ctxpopup_item_append(obj, label, ic, func, data); +} + +int _gl_ctxpopup_create(void *data, Evas_Object *but, ctx_append_cb append_cb) +{ + gl_dbg(""); + GL_CHECK_VAL(append_cb, -1); + GL_CHECK_VAL(but, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->maininfo.naviframe, -1); + + _gl_ctxpopup_del(data); + + gl_ctx_data_s *ctx_data = (gl_ctx_data_s *)calloc(1, sizeof(gl_ctx_data_s)); + GL_CHECK_VAL(ctx_data, -1); + + Evas_Object *ctxpopup = elm_ctxpopup_add(ad->maininfo.naviframe); + eext_object_event_callback_add(ctxpopup, EEXT_CALLBACK_BACK, eext_ctxpopup_back_cb, NULL); + eext_object_event_callback_add(ctxpopup, EEXT_CALLBACK_MORE, eext_ctxpopup_back_cb, NULL); + elm_object_style_set(ctxpopup, GL_CTXPOPUP_STYLE_MORE); + /* more btn is needed to decide ctxpopup's position. */ + evas_object_data_set(ctxpopup, GL_CTXPOPUP_OBJ_MORE_BTN_KEY, but); + evas_object_data_set(ctxpopup, GL_CTXPOPUP_OBJ_ROTATE_KEY, + (void *)false); + evas_object_data_set(ctxpopup, GL_CTXPOPUP_OBJ_DATA_KEY, + (void *)ctx_data); + + /* Add callbacks for ctxpopup */ + __gl_ctxpopup_add_callbacks(data, ctxpopup); + + /* Append items */ + append_cb(data, ctxpopup); + + /* check count*/ + if (ctx_data->items_count == 0) { + gl_dbgW("Remove empty ctxpopup"); + evas_object_del(ctxpopup); + return -1; + } + + return __gl_ctxpopup_show(data, but, ctxpopup); +} + +int _gl_ctxpopup_del(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + if (ad->maininfo.ctxpopup) { + evas_object_del(ad->maininfo.ctxpopup); + ad->maininfo.ctxpopup = NULL; + gl_dbg("Ctxpopup removed"); + } + return 0; +} + diff --git a/src/widget/gl-editfield.c b/src/widget/gl-editfield.c new file mode 100644 index 0000000..92bd53f --- /dev/null +++ b/src/widget/gl-editfield.c @@ -0,0 +1,400 @@ +/* +* 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 "gl-editfield.h" +#include "gl-ui-util.h" +#include "gl-util.h" +#include "gl-popup.h" +#include "gl-data.h" +#include "gl-strings.h" +#include "gl-debug.h" +#include "gl-notify.h" + +/* Maximum number of entry string, 50 Chars of album name (UI) */ +#define GL_ENTRY_STR_CHAR_MAX 50 + +/* The maximun length reached callback */ +static void __gl_editfield_maxlen_reached_cb(void *data, Evas_Object *obj, + void *ei) +{ + gl_dbg("Entry maximum length reached, show notification."); + GL_CHECK(data); + /* Show popup */ + _gl_notify_create_notiinfo(_gl_str(GL_STR_ID_MAX_NO_CHARS_REACHED)); +} + +/* +* Callback registered to signal 'changed' of entry. +* It would get the entry string and check whether it's different +* with original string or not, if so, enable 'Done' button, other disable it. +*/ +static void __gl_editfield_space_check_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(obj); + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + + GL_CHECK(ad->entryinfo.done_btn); + const char *entry_str = NULL; + + /* Get entry string. */ + entry_str = elm_entry_entry_get(obj); + GL_CHECK(entry_str); + /** + * Changes entry string to utf-8 encoding format, + * other some special characters cannot be showed correctly. + */ + char *entry_utf8 = elm_entry_markup_to_utf8(entry_str); + GL_CHECK(entry_utf8); + /** + * Removes leading and trailing whitespace + * to avoid showing popup when new name is only composed by space + * or avoid showing popup in the case when after trip leading and trailing space, + * new name is same as existing name + */ + g_strstrip((gchar *)entry_utf8); + GL_CHECK(entry_utf8); + gl_sdbg("New entry string without space: [%s]", entry_utf8); + + bool b_disabled = false; + /** + * If entry string is empty, disable 'Done' button, + * including create album/tag and rename album/tag. + */ + if (!strlen(entry_utf8)) { + gl_dbg("Entry string is empty!"); + b_disabled = true; + } else { + int (*valiate_cb)(void *data, char *text); + valiate_cb = evas_object_data_get(obj, "gl_entry_validate_cb_key"); + gl_dbgW("valiate_cb[%p]", valiate_cb); + if (valiate_cb && valiate_cb(data, entry_utf8) < 0) { + entry_utf8[strlen(entry_utf8)-1] = '\0'; + elm_entry_entry_set(obj, entry_utf8); + elm_entry_cursor_end_set(obj); + if (!strlen(entry_utf8)) + b_disabled = true; + } + } + + gl_dbg("En/Disable Done button[%d]", b_disabled); + elm_object_disabled_set(ad->entryinfo.done_btn, b_disabled); + + /* Free string got from elm_entry_markup_to_utf8() */ + GL_FREEIF(entry_utf8); +} + +/* +* make a new album +*/ +static void __gl_editfield_enter_cb(void *data, Evas_Object *obj, void *ei) +{ + gl_dbg(""); + GL_CHECK(obj); + GL_CHECK(data); + /* Unfocus to hide cursor */ + _gl_editfield_hide_imf(data); + int (*process_cb)(void *data, bool b_enter); + process_cb = evas_object_data_get(obj, "gl_entry_process_cb_key"); + gl_dbgW("process_cb[%p]", process_cb); + if (process_cb) + process_cb(data, true); + else + gl_dbgW("Invalid process_cb"); +} + +int __gl_editfield_set_entry(void *data, Evas_Object *layout, + Evas_Object *entry, char *default_label) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg(""); + + GL_FREEIF(ad->entryinfo.limit_filter); + Elm_Entry_Filter_Limit_Size *limit_filter = (Elm_Entry_Filter_Limit_Size *)calloc(1, sizeof(Elm_Entry_Filter_Limit_Size)); + GL_CHECK_VAL(limit_filter, -1); + ad->entryinfo.limit_filter = limit_filter; + /* Album name, the length is limited to 50 Chars*/ + limit_filter->max_char_count = GL_ENTRY_STR_CHAR_MAX; + limit_filter->max_byte_count = 0; + + elm_entry_markup_filter_append(entry, elm_entry_filter_limit_size, + limit_filter); + elm_entry_input_panel_return_key_type_set(entry, + ELM_INPUT_PANEL_RETURN_KEY_TYPE_DONE); + elm_entry_autocapital_type_set(entry, ELM_AUTOCAPITAL_TYPE_SENTENCE); + + if (gl_set_entry_text(entry, default_label) != 0) { + gl_dbgE("gl_set_entry_text failed!"); + return -1; + } + elm_entry_cursor_end_set(entry); + evas_object_smart_callback_add(entry, "maxlength,reached", + __gl_editfield_maxlen_reached_cb, ad); + evas_object_smart_callback_add(entry, "activated", + __gl_editfield_enter_cb, ad); + /* Add space check callback */ + evas_object_smart_callback_add(entry, "changed", + __gl_editfield_space_check_cb, ad); + evas_object_smart_callback_add(entry, "preedit,changed", + __gl_editfield_space_check_cb, ad); + return 0; +} + +Evas_Object *_gl_editfield_create(void *data, Evas_Object *parent, + char *default_label) +{ + GL_CHECK_NULL(data); + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_NULL(parent); + Evas_Object *layout = NULL; + Evas_Object *entry_layout = NULL; + Evas_Object *entry = NULL; + + layout = elm_layout_add(parent); + GL_CHECK_NULL(layout); + elm_layout_theme_set(layout, "layout", "application", "searchbar_base"); + elm_object_signal_emit(layout, "elm,state,show,searchbar", "elm"); + + entry_layout = elm_layout_add(layout); + if (entry_layout == NULL) { + evas_object_del(layout); + return NULL; + } + /* Customized theme */ + elm_layout_theme_set(entry_layout, "layout", "searchbar", "default"); + elm_object_part_content_set(layout, "searchbar", entry_layout); + + entry = elm_entry_add(entry_layout); + if (entry == NULL) { + evas_object_del(entry_layout); + return NULL; + } + + elm_entry_single_line_set(entry, EINA_TRUE); + elm_entry_scrollable_set(entry, EINA_TRUE); + elm_object_part_content_set(entry_layout, "elm.swallow.content", entry); + elm_entry_cnp_mode_set(entry, ELM_CNP_MODE_PLAINTEXT); + elm_entry_input_panel_layout_set(entry, ELM_INPUT_PANEL_LAYOUT_NORMAL); + + ad->entryinfo.entry = entry; + ad->entryinfo.context = elm_entry_imf_context_get(ad->entryinfo.entry); + ad->entryinfo.editfield = entry_layout; + /* Set callback */ + __gl_editfield_set_entry(ad, entry_layout, entry, default_label); + evas_object_show(entry_layout); + + return layout; +} + +/* Add editfield to genlist item */ +Evas_Object *_gl_editfield_create_genlist(void *data, Evas_Object *parent, + Elm_Object_Item *it, char *label) +{ + GL_CHECK_NULL(label); + GL_CHECK_NULL(parent); + GL_CHECK_NULL(data); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg(""); + Evas_Object *entry = NULL; + + _gl_editfield_destroy_imf(ad); + entry = elm_entry_add(parent); + if (entry == NULL) { + gl_dbgE("elm_entry_add failed!"); + return NULL; + } + + elm_entry_single_line_set(entry, EINA_TRUE); + elm_entry_scrollable_set(entry, EINA_TRUE); + GL_FREEIF(ad->entryinfo.limit_filter); + Elm_Entry_Filter_Limit_Size *limit_filter = (Elm_Entry_Filter_Limit_Size *)calloc(1, sizeof(Elm_Entry_Filter_Limit_Size)); + GL_CHECK_NULL(limit_filter); + ad->entryinfo.limit_filter = limit_filter; + /* Tag name, the length is limited to 255 Chars */ + limit_filter->max_char_count = GL_ENTRY_STR_CHAR_MAX; + limit_filter->max_byte_count = 0; + elm_entry_cnp_mode_set(entry, ELM_CNP_MODE_PLAINTEXT); + elm_entry_input_panel_return_key_type_set(entry, + ELM_INPUT_PANEL_RETURN_KEY_TYPE_DONE); + elm_entry_autocapital_type_set(entry, ELM_AUTOCAPITAL_TYPE_SENTENCE); + elm_entry_markup_filter_append(entry, elm_entry_filter_limit_size, + limit_filter); + evas_object_smart_callback_add(entry, "maxlength,reached", + __gl_editfield_maxlen_reached_cb, ad); + evas_object_smart_callback_add(entry, "activated", + __gl_editfield_enter_cb, ad); + /** + * Do not unset rename mode on unfocused event + *otherwise clipboard does not work properly + */ + ad->entryinfo.entry = entry; + ad->entryinfo.context = elm_entry_imf_context_get(entry); + + _gl_editfield_show_imf(data); + gl_set_entry_text(entry, label); + elm_entry_cursor_end_set(entry); + + if (!ad->entryinfo.b_hide_toolbar) { + ad->entryinfo.b_hide_toolbar = true; + _gl_ui_set_toolbar_state(data, ad->entryinfo.b_hide_toolbar); + } + return entry; +} + +Evas_Object *_gl_editfield_create_entry(void *data, Evas_Object *layout, char *text) +{ + GL_CHECK_NULL(data); + gl_appdata *ad = (gl_appdata *)data; + static Elm_Entry_Filter_Limit_Size limit_filter_data; + + Evas_Object *entry = elm_entry_add(layout); + GL_CHECK_NULL(entry); + + elm_entry_single_line_set(entry, EINA_TRUE); + elm_entry_scrollable_set(entry, EINA_TRUE); + + limit_filter_data.max_char_count = GL_ENTRY_STR_CHAR_MAX; + if (text) + elm_entry_entry_set(entry, text); + elm_entry_cursor_end_set(entry); + + elm_entry_markup_filter_append(entry, elm_entry_filter_limit_size, + &limit_filter_data); + + evas_object_smart_callback_add(entry, "maxlength,reached", + __gl_editfield_maxlen_reached_cb, data); + evas_object_smart_callback_add(entry, "changed", + __gl_editfield_space_check_cb, data); + evas_object_smart_callback_add(entry, "preedit,changed", + __gl_editfield_space_check_cb, data); + evas_object_smart_callback_add(entry, "activated", + __gl_editfield_enter_cb, data); + elm_entry_cnp_mode_set(entry, ELM_CNP_MODE_PLAINTEXT); + elm_entry_input_panel_return_key_type_set(entry, + ELM_INPUT_PANEL_RETURN_KEY_TYPE_DONE); + elm_entry_autocapital_type_set(entry, ELM_AUTOCAPITAL_TYPE_SENTENCE); + ad->entryinfo.entry = entry; + ad->entryinfo.context = elm_entry_imf_context_get(entry); + + return entry; +} + +/* Hide input panel and entry cursor */ +int _gl_editfield_hide_imf(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg(""); + + /* Unfocus to hide cursor */ + if (ad->entryinfo.entry) + elm_object_focus_set(ad->entryinfo.entry, EINA_FALSE); + + return 0; +} + +/* Show input panel and entry cursor */ +int _gl_editfield_show_imf(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg(""); + + if (ad->entryinfo.entry) { + evas_object_show(ad->entryinfo.entry); + elm_object_focus_set(ad->entryinfo.entry, EINA_TRUE); + } + + return 0; +} + +int _gl_editfield_destroy_imf(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + if (ad->entryinfo.entry == NULL) + return -1; + /* Remove callbacks */ + _gl_ui_del_conform_cbs(ad->maininfo.naviframe); + + evas_object_smart_callback_del(ad->entryinfo.entry, + "maxlength,reached", + __gl_editfield_maxlen_reached_cb); + evas_object_smart_callback_del(ad->entryinfo.entry, + "activated", __gl_editfield_enter_cb); + + evas_object_smart_callback_del(ad->entryinfo.entry, + "changed", + __gl_editfield_space_check_cb); + evas_object_smart_callback_del(ad->entryinfo.entry, + "preedit,changed", + __gl_editfield_space_check_cb); + ad->entryinfo.mode = GL_ENTRY_NONE; + + GL_IF_DEL_OBJ(ad->entryinfo.popup); + GL_IF_DEL_OBJ(ad->entryinfo.editfield); + GL_FREEIF(ad->entryinfo.limit_filter); + ad->entryinfo.entry = NULL; + ad->entryinfo.context = NULL; + ad->entryinfo.done_btn = NULL; + ad->entryinfo.nf_it = NULL; + ad->entryinfo.op_cb = NULL; + GL_FREEIF(ad->albuminfo.temp_album_name); + return 0; +} + +int _gl_editfield_change_navi_title(void *data, int r) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + if (ad->entryinfo.nf_it) { + gl_dbg("entryinfo.nf_it created"); + if (!ad->entryinfo.b_hide_sip) { + gl_dbg("SIP is hided, no need hide the title"); + return 0; + } + } else { + gl_dbg("entryinfo.nf_it not created"); + return -1; + } + GL_CHECK_VAL(ad->maininfo.naviframe, -1); + Elm_Object_Item *navi_it = elm_naviframe_top_item_get(ad->maininfo.naviframe); + GL_CHECK_VAL(navi_it, -1); + switch (r) { + case APP_DEVICE_ORIENTATION_0: + case APP_DEVICE_ORIENTATION_180: + elm_naviframe_item_title_enabled_set(navi_it, EINA_TRUE, EINA_FALSE); + break; + case APP_DEVICE_ORIENTATION_90: + case APP_DEVICE_ORIENTATION_270: + elm_naviframe_item_title_enabled_set(navi_it, EINA_FALSE, EINA_FALSE); + break; + default: + break; + } + return 0; +} + +Evas_Object *_gl_editfield_get_entry(void *data) +{ + GL_CHECK_NULL(data); + gl_appdata *ad = (gl_appdata *)data; + return ad->entryinfo.entry; +} + diff --git a/src/widget/gl-gesture.c b/src/widget/gl-gesture.c new file mode 100644 index 0000000..9f7a3ec --- /dev/null +++ b/src/widget/gl-gesture.c @@ -0,0 +1,557 @@ +/* +* 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 "gl-gesture.h" +#include "gl-util.h" +#include "gl-debug.h" +#include "gl-thumbs.h" +#include "gl-timeline.h" + +#define GL_PINCH_TOUCH_HOLD_RANGE 80 +#define GL_PINCH_TOUCH_FACTOR 4 +#define GL_PINCH_HOLD_TIME_DELAY 0.35f +#define GL_GESTURE_KEY_DATA "gesture_data" + +typedef struct _gl_gesture_t gl_gesture_s; +typedef struct _gl_pinch_event_t gl_pinch_event_s; +typedef enum _gl_pinch_plan_t gl_pinch_plan_e; + +struct _gl_gesture_t { + gl_appdata *ad; + Evas_Object *parent; + Evas_Object *gesture; + gl_gesture_cb zoom_in_cb; + gl_gesture_cb zoom_out_cb; + void *zoom_in_data; + void *zoom_out_data; + + int dis_old; + int pinch_dis_old; + Eina_List *s_event_elist; + Ecore_Job *pinch_job; + int next_plan; +}; + +struct _gl_pinch_event_t { + int device; + + struct gl_prev { + Evas_Coord x; + Evas_Coord y; + } prev; + + Evas_Coord x; + Evas_Coord y; + Evas_Coord w; + Evas_Coord h; + Evas_Object *object; + Ecore_Timer *hold_timer; + int ts; /* Time stamp to calculate whether scrolling or moving */ + int v; /* Velocity */ + int pinch_dis; + Evas_Object *pinch_obj; /* Object between thumb and index */ + Evas_Object *test; /* To see dis center */ +}; + +enum _gl_pinch_plan_t { + GL_PINCH_PLAN_NONE, + GL_PINCH_PLAN_OUT, + GL_PINCH_PLAN_IN, + GL_PINCH_PLAN_MAX +}; + +static gl_pinch_event_s *__gl_gesture_create_event_obj(void *data, + Evas_Object *object, + int device) +{ + GL_CHECK_NULL(data); + gl_gesture_s *gesture_d = (gl_gesture_s *)data; + gl_pinch_event_s *ev = NULL; + /*gl_dbg(""); */ + + ev = calloc(1, sizeof(gl_pinch_event_s)); + if (ev == NULL) { + gl_dbg("Cannot allocate event_t"); + return NULL; + } + + ev->object = object; + ev->device = device; + evas_object_geometry_get(object, &ev->x, &ev->y, &ev->w, &ev->h); + + gesture_d->s_event_elist = eina_list_append(gesture_d->s_event_elist, + ev); + return ev; +} + +static int __gl_gesture_destroy_event_obj(void *data, gl_pinch_event_s *ev) +{ + GL_CHECK_VAL(ev, -1); + GL_CHECK_VAL(data, -1); + gl_gesture_s *gesture_d = (gl_gesture_s *)data; + /*gl_dbg(""); */ + + ev->pinch_obj = NULL; + ev->pinch_dis = 0; + gesture_d->s_event_elist = eina_list_remove(gesture_d->s_event_elist, + ev); + GL_IF_DEL_TIMER(ev->hold_timer); + /* We don't need to reset the hold_timer object */ + + GL_FREE(ev); + return 0; +} + +static gl_pinch_event_s *__gl_gesture_get_event_obj(void *data, int device) +{ + GL_CHECK_NULL(data); + gl_gesture_s *gesture_d = (gl_gesture_s *)data; + Eina_List *l = NULL; + gl_pinch_event_s *ev = NULL; + + EINA_LIST_FOREACH(gesture_d->s_event_elist, l, ev) { + if (ev && ev->device == device) + break; + ev = NULL; + } + + return ev; +} + +static int __gl_gesture_get_distance(Evas_Coord x1, Evas_Coord y1, Evas_Coord x2, + Evas_Coord y2) +{ + int dis, dx, dy; + + dx = x1 - x2; + dy = y1 - y2; + + dis = (int)sqrt(dx * dx + dy * dy); + return dis; +} + +static Eina_Bool __gl_gesture_hold_timer_cb(void *data) +{ + gl_pinch_event_s *ev0 = (gl_pinch_event_s *)data; + GL_IF_DEL_TIMER(ev0->hold_timer); + return ECORE_CALLBACK_CANCEL; +} + +static int __gl_gesture_get_multi_device(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_gesture_s *gesture_d = (gl_gesture_s *)data; + Eina_List *l = NULL; + gl_pinch_event_s *ev = NULL; + + EINA_LIST_FOREACH(gesture_d->s_event_elist, l, ev) { + if (ev && ev->device != 0) + return ev->device; + } + return 0; +} + +static void __gl_gesture_mouse_down_event(void *data, Evas *e, + Evas_Object *evas_obj, void *ei) +{ + GL_CHECK(ei); + GL_CHECK(data); + Evas_Event_Mouse_Down *ev = (Evas_Event_Mouse_Down *)ei; + /*gl_dbg(""); */ + + gl_pinch_event_s *ev0; + ev0 = __gl_gesture_get_event_obj(data, 0); + if (ev0) + return; + + ev0 = __gl_gesture_create_event_obj(data, evas_obj, 0); + if (!ev0) + return; + + ev0->hold_timer = NULL; + ev0->prev.x = ev->output.x; + ev0->prev.y = ev->output.y; +} + +static void __gl_gesture_multi_down_event(void *data, Evas *evas, + Evas_Object *obj, void *ei) +{ + GL_CHECK(ei); + GL_CHECK(data); + gl_pinch_event_s *ev; + Evas_Event_Multi_Down *down = (Evas_Event_Multi_Down *)ei; + /*gl_dbg(""); */ + + ev = __gl_gesture_get_event_obj(data, down->device); + if (ev) + return; + + ev = __gl_gesture_create_event_obj(data, obj, down->device); + if (!ev) + return; + + ev->hold_timer = NULL; + ev->prev.x = down->output.x; + ev->prev.y = down->output.y; +} + +static void __gl_gesture_mouse_up_event(void *data, Evas *e, + Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_gesture_s *gesture_d = (gl_gesture_s *)data; + int mdevice; + gl_pinch_event_s *ev0; + gl_pinch_event_s *ev = NULL; + /*gl_dbg(""); */ + Evas_Event_Mouse_Up *p_ev = (Evas_Event_Mouse_Up *)ei; + + ev0 = __gl_gesture_get_event_obj(data, 0); + if (ev0 == NULL) { + gl_dbg("Cannot get event0"); + return; + } + /* check whether device multi is on or off */ + mdevice = __gl_gesture_get_multi_device(data); + /*gl_dbg("mdevice[%d]", mdevice); */ + if (mdevice == 0) { + } else { + /*gl_dbg(" device multi is on"); */ + /* when device multi is on */ + ev = __gl_gesture_get_event_obj(data, mdevice); + if (ev == NULL) { + gl_dbg("Cannot get event multi"); + return; + } + + GL_IF_DEL_TIMER(ev->hold_timer); + ev->hold_timer = ecore_timer_add(GL_PINCH_HOLD_TIME_DELAY, + __gl_gesture_hold_timer_cb, ev); + } + + if (!gesture_d->ad->gridinfo.multi_touch) { + _gl_thumbs_change_view(gesture_d->ad, ev0->prev.x, p_ev->output.x); + } else { + gesture_d->ad->gridinfo.multi_touch = false; + } + __gl_gesture_destroy_event_obj(data, ev0); +} + +static void __gl_gesture_multi_up_event(void *data, Evas *evas, + Evas_Object *obj, void *ei) +{ + GL_CHECK(ei); + GL_CHECK(data); + gl_gesture_s *gesture_d = (gl_gesture_s *)data; + Evas_Event_Multi_Up *up = (Evas_Event_Multi_Up *)ei; + gl_pinch_event_s *ev0 = NULL; + gl_pinch_event_s *ev = NULL; + /*gl_dbg(""); */ + + ev = __gl_gesture_get_event_obj(data, up->device); + if (ev == NULL) { + gl_dbg("Cannot get device multi"); + return; + } + + gesture_d->dis_old = 0; + gesture_d->pinch_dis_old = 0; + /*dis_old = 0; */ + + /* act depends on device 0 on or off */ + ev0 = __gl_gesture_get_event_obj(data, 0); + if (ev0) { + /* up when device 0 is on */ + /* timer for pinch */ + GL_IF_DEL_TIMER(ev0->hold_timer); + ev0->hold_timer = ecore_timer_add(GL_PINCH_HOLD_TIME_DELAY, + __gl_gesture_hold_timer_cb, + ev0); + } else { + /* up when device 0 is off */ + } + __gl_gesture_destroy_event_obj(data, ev); +} + +static void __gl_gesture_mouse_move_event(void *data, Evas *e, + Evas_Object *obj, void *ei) +{ + GL_CHECK(ei); + GL_CHECK(data); +// Evas_Event_Mouse_Move *ev = (Evas_Event_Mouse_Move *)ei; + gl_pinch_event_s *ev0; + /*gl_dbg(""); */ + + ev0 = __gl_gesture_get_event_obj(data, 0); + if (ev0 == NULL) { + /*gl_dbg("Cannot get device0"); */ + return; + } + + __gl_gesture_get_multi_device(data); +} + +static void __gl_gesture_zoom_out_job_cb(void *data) +{ + GL_CHECK(data); + gl_gesture_s *gesture_d = (gl_gesture_s *)data; + if (gesture_d->next_plan != GL_PINCH_PLAN_OUT) { + gl_dbgW("State is wrong[plan:%d]!", gesture_d->next_plan); + GL_IF_DEL_JOB(gesture_d->pinch_job); + return; + } + gl_dbg("Pinch zoom out"); + + if (gesture_d->zoom_out_cb) + gesture_d->zoom_out_cb(gesture_d->gesture, + gesture_d->zoom_out_data); + + GL_IF_DEL_JOB(gesture_d->pinch_job); +} + +static void __gl_gesture_zoom_in_job_cb(void *data) +{ + GL_CHECK(data); + gl_gesture_s *gesture_d = (gl_gesture_s *)data; + if (gesture_d->next_plan != GL_PINCH_PLAN_IN) { + gl_dbgW("State is wrong[plan:%d]!", gesture_d->next_plan); + GL_IF_DEL_JOB(gesture_d->pinch_job); + return; + } + gl_dbg("Pinch zoom in"); + + if (gesture_d->zoom_in_cb) + gesture_d->zoom_in_cb(gesture_d->gesture, + gesture_d->zoom_in_data); + + GL_IF_DEL_JOB(gesture_d->pinch_job); +} + +static void __gl_gesture_multi_move_event(void *data, Evas *evas, + Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_gesture_s *gesture_d = (gl_gesture_s *)data; + Evas_Event_Multi_Move *move = (Evas_Event_Multi_Move *)ei; + int dis_new; + gl_pinch_event_s *ev0; + gl_pinch_event_s *ev; + /*(gl_dbg(""); */ + + ev = __gl_gesture_get_event_obj(data, move->device); + if (ev == NULL) { + gl_dbg("Cannot get multi device"); + return; + } + gesture_d->ad->gridinfo.multi_touch = true; + + if (_gl_is_timeline_edit_mode(gesture_d->ad)) { + gl_dbg("Prevent multi move in timeline edit mode"); + return; + } + + if (gl_get_view_mode(gesture_d->ad) == GL_VIEW_THUMBS + || gl_get_view_mode(gesture_d->ad) == GL_VIEW_THUMBS_EDIT + || gl_get_view_mode(gesture_d->ad) == GL_VIEW_THUMBS_SELECT) { + if (gl_get_view_mode(gesture_d->ad) == GL_VIEW_THUMBS_EDIT) { + gl_dbg("Prevent multi move in thumbs edit view"); + return; + } + if (gesture_d->ad->gridinfo.split_view_mode == SPLIT_VIEW) { + gl_dbg("Prevent multi move in split view"); + return; + } + if (gl_get_view_mode(gesture_d->ad) == GL_VIEW_THUMBS_SELECT) { + gl_dbg("Prevent multi move in thumbs select view"); + return; + } + } + ev->prev.x = move->cur.output.x; + ev->prev.y = move->cur.output.y; + + ev0 = __gl_gesture_get_event_obj(data, 0); + if (ev0 == NULL) { + gl_dbg("Cannot get device0"); + return; + } + + dis_new = __gl_gesture_get_distance(ev0->prev.x, ev0->prev.y, + ev->prev.x, ev->prev.y); + + int dis_old = gesture_d->dis_old; + if (dis_old != 0) { + if (dis_old - dis_new > 0 && + ev->pinch_dis > GL_PINCH_TOUCH_HOLD_RANGE) { + if (gesture_d->pinch_dis_old && + ev->pinch_dis < (gesture_d->pinch_dis_old * GL_PINCH_TOUCH_FACTOR)) { + ev->pinch_dis += (dis_old - dis_new); + gesture_d->dis_old = dis_new; + return; + } + + gesture_d->next_plan = GL_PINCH_PLAN_OUT; /* plan to zoom-out */ + if (!gesture_d->pinch_job) { + gl_dbgW("Add job pinch zoom out"); + gesture_d->pinch_job = ecore_job_add(__gl_gesture_zoom_out_job_cb, + data); + } else { + gl_dbgW("Added job pinch zoom out"); + } + + gesture_d->pinch_dis_old = ev->pinch_dis; + ev->pinch_dis = 0; + } else if (dis_old - dis_new < 0 && + ev->pinch_dis < -GL_PINCH_TOUCH_HOLD_RANGE) { + if (gesture_d->pinch_dis_old && + ev->pinch_dis > (gesture_d->pinch_dis_old * GL_PINCH_TOUCH_FACTOR)) { + ev->pinch_dis += (dis_old - dis_new); + gesture_d->dis_old = dis_new; + return; + } + + gesture_d->next_plan = GL_PINCH_PLAN_IN; /* plan to zoom-in */ + if (!gesture_d->pinch_job) { + gl_dbgW("Add job pinch zoom in"); + gesture_d->pinch_job = ecore_job_add(__gl_gesture_zoom_in_job_cb, + data); + } else { + gl_dbgW("Added job pinch zoom in"); + } + + gesture_d->pinch_dis_old = ev->pinch_dis; + ev->pinch_dis = 0; + } + ev->pinch_dis += (dis_old - dis_new); + } + gl_dbg("dis_new: %d, dis_old: %d, pinch_dis %d", dis_new, dis_old, + ev->pinch_dis); + + /* Reset dis_old value */ + gesture_d->dis_old = dis_new; +} + +static void __gl_gesture_del_cb(void *data, Evas *e, Evas_Object *obj, + void *ei) +{ + gl_dbg("Delete gesture ---"); + if (data) { + gl_gesture_s *gesture_d = (gl_gesture_s *)data; + GL_IF_DEL_JOB(gesture_d->pinch_job); + evas_object_data_del(gesture_d->gesture, GL_GESTURE_KEY_DATA); + GL_FREE(gesture_d); + } + gl_dbg("Delete gesture +++"); +} + +Evas_Object *_gl_gesture_add(void *data, Evas_Object *parent) +{ + GL_CHECK_NULL(parent); + GL_CHECK_NULL(data); + Evas_Object *gesture = NULL; + + gesture = evas_object_rectangle_add(evas_object_evas_get(parent)); + GL_CHECK_NULL(gesture); + evas_object_color_set(gesture, 0, 0, 0, 0); + + gl_gesture_s *gesture_d = (gl_gesture_s *)calloc(1, sizeof(gl_gesture_s)); + if (gesture_d == NULL) { + evas_object_del(gesture); + return NULL; + } + + gesture_d->ad = data; + gesture_d->parent = parent; + gesture_d->gesture = gesture; + + evas_object_event_callback_add(gesture, EVAS_CALLBACK_MOUSE_DOWN, + __gl_gesture_mouse_down_event, + gesture_d); + evas_object_event_callback_add(gesture, EVAS_CALLBACK_MOUSE_UP, + __gl_gesture_mouse_up_event, gesture_d); + evas_object_event_callback_add(gesture, EVAS_CALLBACK_MOUSE_MOVE, + __gl_gesture_mouse_move_event, + gesture_d); + + evas_object_event_callback_add(gesture, EVAS_CALLBACK_MULTI_DOWN, + __gl_gesture_multi_down_event, + gesture_d); + evas_object_event_callback_add(gesture, EVAS_CALLBACK_MULTI_UP, + __gl_gesture_multi_up_event, gesture_d); + evas_object_event_callback_add(gesture, EVAS_CALLBACK_MULTI_MOVE, + __gl_gesture_multi_move_event, + gesture_d); + + evas_object_data_set(gesture, GL_GESTURE_KEY_DATA, (void *)gesture_d); + evas_object_event_callback_add(gesture, EVAS_CALLBACK_DEL, + __gl_gesture_del_cb, gesture_d); + return gesture; +} + +int _gl_gesture_set_zoom_in_cb(Evas_Object *gesture, gl_gesture_cb cb, + void *data) +{ + GL_CHECK_VAL(cb, -1); + GL_CHECK_VAL(gesture, -1); + gl_gesture_s *gesture_d = NULL; + + gesture_d = (gl_gesture_s *)evas_object_data_get(gesture, + GL_GESTURE_KEY_DATA); + GL_CHECK_VAL(gesture_d, -1); + gesture_d->zoom_in_cb = cb; + gesture_d->zoom_in_data = data; + return 0; +} + +int _gl_gesture_set_zoom_out_cb(Evas_Object *gesture, gl_gesture_cb cb, + void *data) +{ + GL_CHECK_VAL(cb, -1); + GL_CHECK_VAL(gesture, -1); + gl_gesture_s *gesture_d = NULL; + + gesture_d = (gl_gesture_s *)evas_object_data_get(gesture, + GL_GESTURE_KEY_DATA); + GL_CHECK_VAL(gesture_d, -1); + gesture_d->zoom_out_cb = cb; + gesture_d->zoom_out_data = data; + return 0; +} + +int _gl_gesture_reset_flags(Evas_Object *gesture) +{ + GL_CHECK_VAL(gesture, -1); + gl_gesture_s *gesture_d = NULL; + + gesture_d = (gl_gesture_s *)evas_object_data_get(gesture, + GL_GESTURE_KEY_DATA); + GL_CHECK_VAL(gesture_d, -1); + GL_IF_DEL_JOB(gesture_d->pinch_job); + gesture_d->next_plan = GL_PINCH_PLAN_NONE; + return 0; +} + +Evas_Object *_gl_gesture_get_parent(Evas_Object *gesture) +{ + GL_CHECK_NULL(gesture); + gl_gesture_s *gesture_d = NULL; + + gesture_d = (gl_gesture_s *)evas_object_data_get(gesture, + GL_GESTURE_KEY_DATA); + GL_CHECK_NULL(gesture_d); + return gesture_d->parent; +} + diff --git a/src/widget/gl-nocontents.c b/src/widget/gl-nocontents.c new file mode 100644 index 0000000..4395aa5 --- /dev/null +++ b/src/widget/gl-nocontents.c @@ -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. +* +*/ + +#include "gl-nocontents.h" +#include "gl-ui-util.h" +#include "gl-util.h" +#include "gl-icons.h" +#include "gl-strings.h" +#include "gl-debug.h" + +/** + * Create Nocontents. + */ +Evas_Object *_gl_nocontents_create(Evas_Object *parent) +{ + GL_CHECK_NULL(parent); + Evas_Object *noc_lay = NULL; + /* Full view nocontents */ + noc_lay = elm_layout_add(parent); + GL_CHECK_NULL(noc_lay); + elm_layout_theme_set(noc_lay, "layout", "nocontents", "text"); + Evas_Object *icon = elm_image_add(noc_lay); + GL_ICON_SET_FILE(icon, GL_ICON_NOCONGENTS_VIDEOS); + elm_object_part_content_set(noc_lay, "nocontents.image", icon); + + _gl_ui_set_translate_part_str(noc_lay, "elm.text", _gl_str(GL_STR_ID_NO_ITEMS)); + _gl_ui_set_translate_part_str(noc_lay, "elm.help.text", _gl_str(GL_STR_ID_NO_ITEMS_SECOND)); + elm_layout_signal_emit(noc_lay, "text,disabled", ""); + elm_layout_signal_emit(noc_lay, "align.center", "elm"); + return noc_lay; +} + +/** + * Update label of Nocontents. + */ +bool _gl_nocontents_update_label(Evas_Object *noc, const char *new_label) +{ + GL_CHECK_VAL(new_label, -1); + GL_CHECK_VAL(noc, -1); + const char *label = NULL; + + label = elm_object_part_text_get(noc, GL_NOCONTENTS_TEXT); + GL_CHECK_VAL(label, -1); + gl_dbg("Nocontents label: %s", label); + /* Update label if they're different */ + if (g_strcmp0(label, GL_STR_NO_ALBUMS)) { + gl_dbgW("Update nocontents label!"); + elm_object_part_text_set(noc, GL_NOCONTENTS_TEXT, new_label); + return true; + } + return false; +} + diff --git a/src/widget/gl-notify.c b/src/widget/gl-notify.c new file mode 100644 index 0000000..2bc5c9d --- /dev/null +++ b/src/widget/gl-notify.c @@ -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. +* +*/ +#include +#include +#include +#include +#include "gl-notify.h" +#include "gl-thumbs.h" +#include "gl-thumbs-sel.h" +#include "gl-pinchzoom.h" +#include "gl-controlbar.h" +#include "gl-thread-util.h" +#include "gl-ui-util.h" +#include "gl-util.h" +#include "gl-strings.h" +#include "gl-debug.h" +#include "gl-ext-exec.h" + +typedef struct _gl_noti_t gl_noti_s; +struct _gl_noti_t { + notification_h handle; + int priv_id; +}; + +int _gl_notify_create_notiinfo(const char *text) +{ + GL_CHECK_VAL(text, -1); + int ret = notification_status_message_post(text); + if (ret != 0) + gl_sdbgE("status_message_post()... [0x%x]!", ret); + return ret; +} + +/** +* Check select-all widget state. +*/ +int _gl_notify_check_selall(void *data, Elm_Object_Item *nf_it, int all_cnt, + int selected_cnt) +{ + GL_CHECK_VAL(data, -1); + GL_CHECK_VAL(nf_it, -1); + gl_appdata *ad = (gl_appdata *)data; + int view_mode = gl_get_view_mode(ad); + + gl_dbg("selected_cnt/all_cnt = %d/%d", selected_cnt, all_cnt); + if (selected_cnt > all_cnt) { + gl_dbgE("selected_cnt > all_cnt!"); + return -1; + } else if (selected_cnt == all_cnt) { + ad->selinfo.ck_state = EINA_TRUE; + } else { + ad->selinfo.ck_state = EINA_FALSE; + } + + if (ad->selinfo.selectall_ck) { + elm_check_state_set(ad->selinfo.selectall_ck, ad->selinfo.ck_state); + } + if (selected_cnt > 0) { + /* Enable/Disable control bar buttons */ + _gl_ctrl_enable_btns(ad, nf_it); + _gl_thumbs_disable_slideshow(ad, false); + } else if (view_mode == GL_VIEW_THUMBS_SELECT) { + /* Disable control bar buttons */ + _gl_thumbs_sel_disable_btns(data, true); + } else { + /* Disable control bar buttons */ + _gl_ui_disable_menu(nf_it, true); + _gl_ctrl_disable_items(nf_it, true); + _gl_thumbs_disable_slideshow(ad, true); + } + + return 0; +} + +int _gl_notify_destroy(void *noti) +{ + GL_CHECK_VAL(noti, -1); + gl_noti_s *noti_d = noti; + + if (noti_d->handle) { + int err = 0; + err = notification_delete(noti_d->handle); + if (err != NOTIFICATION_ERROR_NONE) { + gl_dbgE("notification_delete().. [0x%x]", err); + } + + err = notification_free(noti_d->handle); + if (err != NOTIFICATION_ERROR_NONE) { + gl_dbgE("notification_free().. [0x%x]", err); + } + } + noti_d->handle = NULL; + GL_GFREE(noti_d); + return 0; +} + +int _gl_notify_update_size(void *noti, unsigned long long total) +{ + GL_CHECK_VAL(noti, -1); + gl_noti_s *noti_d = noti; + GL_CHECK_VAL(noti_d->handle, -1); + gl_dbg("%lld", total); + + int err = 0; + err = notification_set_size(noti_d->handle, (double)total); + if (err != NOTIFICATION_ERROR_NONE) { + gl_dbgE("notification_update_size().. [0x%x]", err); + return -1; + } + return 0; +} + +int _gl_notify_update_progress(void *noti, unsigned long long total, + unsigned long long byte) +{ + GL_CHECK_VAL(noti, -1); + gl_noti_s *noti_d = noti; + GL_CHECK_VAL(noti_d->handle, -1); + gl_dbg("%lld/%lld", byte, total); + + int err = 0; + double progress = (double)byte / total; + err = notification_set_progress(noti_d->handle, progress); + if (err != NOTIFICATION_ERROR_NONE) { + gl_dbgE("notification_update_progress().. [0x%x]", err); + return -1; + } + return 0; +} + diff --git a/src/widget/gl-popup.c b/src/widget/gl-popup.c new file mode 100644 index 0000000..ea3999a --- /dev/null +++ b/src/widget/gl-popup.c @@ -0,0 +1,1780 @@ +/* +* 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 "gallery.h" +#include "gl-popup.h" +#include "gl-ui-util.h" +#include "gl-util.h" +#include "gl-debug.h" +#include "gl-albums.h" +#include "gl-albums-new.h" +#include "gl-progressbar.h" +#include "gl-strings.h" +#include "gl-button.h" +#include "gl-controlbar.h" +#include "gl-editfield.h" +#include "gl-ctxpopup.h" +#include "gl-thumbs.h" +#include "gl-timeline.h" + +enum gl_popup_obj_del_cb_type{ + GL_POPUP_OBJ_DEL_CB_TYPE_ITEM, + GL_POPUP_OBJ_DEL_CB_TYPE_ALBUM +}; + +#define GL_POPUP_GENLIST_ITEM_W 618 + +#define GL_POPUP_TIMEOUT_1S 1.0 +#define GL_POPUP_TIMEOUT_2S 2.0 +#define GL_POPUP_TIMEOUT_3S 3.0 +#define GL_POPUP_OBJ_DATA_KEY "gl_popup_data_key" +#define GL_POPUP_OBJ_DEL_CB_KEY "gl_popup_cb_key" +#define GL_POPUP_OBJ_DEL_CB_DATA_KEY "gl_popup_cb_data_key" +#define GL_POPUP_OBJ_DEL_CB_TYPE_KEY "gl_popup_cb_type_key" +#define GL_POPUP_GENLIST_DATA_KEY "gl_popup_genlist_data_key" +#define SETTINGS_STORAGE_UG_NAME "setting-storage-efl" +#define GL_POPUP_GENLIST_HEIGHT_HD 260 +#define GL_POPUP_GENLIST_WIDTH_HD 630 +#define GL_POPUP_GENLIST_HEIGHT_QHD 185 +#define GL_POPUP_GENLIST_WIDTH_QHD 450 +#define GL_POPUP_GENLIST_HEIGHT_WVGA 202 +#define GL_POPUP_GENLIST_WIDTH_WVGA 480 + +typedef struct _gl_popup_t gl_popup_s; +typedef struct _gl_popup_menu_t gl_popup_menu_s; +typedef struct _gl_popup_resize_t gl_popup_resize_s; + +struct _gl_popup_t { + gl_appdata *ad; + Evas_Object *popup; + Evas_Smart_Cb cb1; + Evas_Smart_Cb cb2; + Evas_Smart_Cb cb3; + const void *data1; + const void *data2; + const void *data3; +}; + +struct _gl_popup_menu_t { + gl_appdata *ad; + Evas_Object *popup; + void *op_func; +}; + +struct _gl_popup_resize_t { + gl_appdata *ad; + Evas_Object *genlist; + Evas_Object *box; + Ecore_Job *job; + int item_height; +}; + +static void __gl_popup_resp(void *data, const char *text); + +static void __gl_popup_genlist_lang_changed(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(obj); + elm_genlist_realized_items_update(obj); +} + +/* Delete popup contents */ +static int __gl_popup_clear_content(Evas_Object *popup) +{ + GL_CHECK_VAL(popup, -1); + gl_dbg(""); + + Evas_Object *content = elm_object_content_get(popup); + GL_CHECK_VAL(content, -1); + Eina_List *chidren = elm_box_children_get(content); + GL_CHECK_VAL(chidren, -1); + Evas_Object *genlist = eina_list_nth(chidren, 0); + GL_CHECK_VAL(genlist, -1); + elm_genlist_clear(genlist); + elm_box_clear(content); + return 0; +} + +static Eina_Bool __gl_popup_timeout_cb(void *data) +{ + GL_CHECK_FALSE(data); + gl_appdata *ad = (gl_appdata *)data; + GL_IF_DEL_TIMER(ad->popupinfo.del_timer); + GL_IF_DEL_OBJ(ad->popupinfo.popup); + return ECORE_CALLBACK_CANCEL; +} + +static int __gl_popup_add_timer(void *data, double to_inc) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + GL_IF_DEL_TIMER(ad->popupinfo.del_timer); + ad->popupinfo.del_timer = ecore_timer_add(to_inc, __gl_popup_timeout_cb, + data); + return 0; +} + +static void __gl_popup_del_resp_cb(void *data, Evas_Object *obj, + void *event_info) +{ + GL_CHECK(obj); + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + const char *text = NULL; + + text = elm_object_text_get(obj); + GL_CHECK(text); + gl_dbg("Button: %s", text); + + if (!g_strcmp0(text, GL_STR_DELETE)) { + void *del_cb = evas_object_data_get(ad->popupinfo.popup, + GL_POPUP_OBJ_DEL_CB_KEY); + void *cb_data = evas_object_data_get(ad->popupinfo.popup, + GL_POPUP_OBJ_DEL_CB_DATA_KEY); + GL_IF_DEL_OBJ(ad->popupinfo.popup); + if (del_cb && cb_data) { + int (*_del_cb) (void *cb_data); + _del_cb = del_cb; + _del_cb(cb_data); + } else { + gl_dbgE("Invalid callback!"); + } + } else { + __gl_popup_resp(data, text); + } +} + +static void __gl_popup_resp(void *data, const char *text) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + int mode = ad->popupinfo.mode; + GL_CHECK(text); + gl_dbg("Button: %s, mode: %d", text, mode); + + switch (mode) { + case GL_POPUP_ALBUM_NEW_EMPTY: + case GL_POPUP_ALBUM_NEW_DUPLICATE: + case GL_POPUP_ALBUM_NEW_INVALID: + case GL_POPUP_ALBUM_RENAME_EMPTY: + case GL_POPUP_ALBUM_RENAME_DUPLICATE: + case GL_POPUP_ALBUM_RENAME_INVALID: + if (!g_strcmp0(text, _gl_str(GL_STR_ID_YES)) || + !g_strcmp0(text, _gl_str(GL_STR_ID_OK))) + _gl_editfield_show_imf(data); + else if (!g_strcmp0(text, _gl_str(GL_STR_ID_NO)) || + !g_strcmp0(text, _gl_str(GL_STR_ID_CANCEL))) + elm_naviframe_item_pop(ad->maininfo.naviframe); + break; + case GL_POPUP_NOBUT_APPEXIT: + if (ad->popupinfo.popup) { + __gl_popup_clear_content(ad->popupinfo.popup); + evas_object_del(ad->popupinfo.popup); + ad->popupinfo.popup = NULL; + } + elm_exit(); + return; + case GL_POPUP_SLIDESHOW: + case GL_POPUP_LONGPRESSED: + case GL_POPUP_MEDIA_DELETE: { + _gl_free_selected_list(data); + break; + } + case GL_POPUP_ALBUM_MEMORY_FULL: + GL_IF_DEL_OBJ(ad->popupinfo.memory_full_popup); + elm_naviframe_item_pop(ad->maininfo.naviframe); + + if (!g_strcmp0(text, _gl_str(GL_STR_SETTINGS))) { + app_control_h app_control; + int ret = 0; + + ret = app_control_create(&app_control); + + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("app_control create failed"); + return; + } + + ret = app_control_set_operation(app_control, APP_CONTROL_OPERATION_VIEW); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("app_control_set_operation()... [0x%x]", ret); + goto END; + } + + ret = app_control_set_app_id(app_control, SETTINGS_STORAGE_UG_NAME); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("app_control_set_uri()... [0x%x]", ret); + goto END; + } + + ret = app_control_send_launch_request(app_control, NULL, NULL); + if (ret != APP_CONTROL_ERROR_NONE) { + gl_dbgE("app_control launch Failed... [0x%x]", ret); + goto END; + } +END: + if (app_control) { + app_control_destroy(app_control); + } + } + break; + default: + break; + } + + GL_IF_DEL_OBJ(ad->popupinfo.popup); +} + +static void __gl_popup_resp_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + GL_CHECK(obj); + + const char *text = NULL; + + text = elm_object_text_get(obj); + GL_CHECK(text); + gl_dbg("Button: %s", text); + __gl_popup_resp(data, text); +} + +static void __gl_popup_block_clicked_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + _gl_free_selected_list(data); + GL_IF_DEL_OBJ(ad->popupinfo.popup); +} + +static void __gl_popup_genlist_delete_cb(void *data, Evas *e, Evas_Object *obj, + void *ei) +{ + gl_dbg("Delete genlist ---"); + if (obj) { + evas_object_data_del(obj, GL_POPUP_OBJ_DATA_KEY); + gl_popup_resize_s *resize_d = evas_object_data_get(obj, + GL_POPUP_GENLIST_DATA_KEY); + if (resize_d) { + GL_IF_DEL_JOB(resize_d->job); + GL_FREE(resize_d); + } + } + if (data) + elm_genlist_item_class_free((Elm_Genlist_Item_Class *)data); + + gl_dbg("Delete genlist +++"); +} + +/* This works if mini_menustyle used */ +static int __gl_popup_set_min_size(Evas_Object *box, int cnt) +{ + GL_CHECK_VAL(box, -1); + +/* #define GENLIST_HEIGHT_1LINE 110 // (114 - top/bottom padding) */ +/*modify the hight to solve the pop up scroll issue*/ +#define GL_POPUP_GENLIST_ITEM_H 114 +#define GL_POPUP_GENLIST_ITEM_H2 136 + + int item_height = GL_POPUP_GENLIST_ITEM_H; + int font_size = _gl_get_font_size(); + gl_dbg("font size: %d", font_size); + if (font_size == 4) + item_height = GL_POPUP_GENLIST_ITEM_H2; + int min_h = 0; + if (cnt > 3) + min_h = item_height * 4; + else + min_h = item_height * cnt; + + evas_object_size_hint_min_set(box, + GL_POPUP_GENLIST_ITEM_W * elm_config_scale_get(), + min_h * elm_config_scale_get()); + return item_height; +} + +static void __gl_popup_mouseup_cb(void *data, Evas *e, Evas_Object *obj, + void *event_info) +{ + gl_dbg(""); + GL_CHECK(data); + GL_CHECK(event_info); + Evas_Event_Mouse_Up *ev = event_info; + if (ev->button == 3) { + gl_dbg("Delete popup!"); + __gl_popup_resp(data, GL_STR_ID_CANCEL); + } +} + +/*static void __gl_popup_keydown_cb(void *data, Evas *e, Evas_Object *obj, + void *event_info) +{ + gl_dbg(""); + GL_CHECK(data); + GL_CHECK(event_info); + Evas_Event_Key_Down *ev = event_info; + if (!strcmp(ev->keyname, KEY_BACK)) { + gl_dbg("Delete popup!"); + __gl_popup_resp(data, _gl_str(GL_STR_ID_CANCEL)); + } +}*/ + + +/* We need to perform cancellation, not just delete popup */ +static inline void __gl_popup_ea_back_cb(void *data, Evas_Object *obj, void *ei) +{ + gl_dbg("Use customized callback"); + __gl_popup_resp(data, _gl_str(GL_STR_ID_CANCEL)); +} + +static void __gl_popup_local_resp_cb(void *data, Evas_Object *obj, void *ei) +{ + evas_object_del((Evas_Object *)data); +} + +static void __gl_popup_local_mouseup_cb(void *data, Evas *e, Evas_Object *obj, void *ei) +{ + gl_dbg(""); + GL_CHECK(data); + GL_CHECK(ei); + Evas_Event_Mouse_Up *ev = ei; + if (ev->button == 3) { + gl_dbg("Delete popup!"); + GL_IF_DEL_OBJ(obj); + } +} + +/*static void __gl_popup_local_keydown_cb(void *data, Evas *e, Evas_Object *obj, void *ei) +{ + gl_dbg(""); + GL_CHECK(data); + GL_CHECK(ei); + Evas_Event_Key_Down *ev = ei; + if (!strcmp(ev->keyname, KEY_BACK)) { + gl_dbg("Delete popup!"); + GL_IF_DEL_OBJ(obj); + } +}*/ + +static void __gl_popup_local_delete_cb(void *data, Evas *e, Evas_Object *obj, void *ei) +{ + gl_dbg("Delete popup ---"); + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + GL_IF_DEL_TIMER(ad->popupinfo.del_timer); + evas_object_event_callback_del(obj, EVAS_CALLBACK_MOUSE_UP, + __gl_popup_local_mouseup_cb); + /* Disable EVAS_CALLBACK_KEY_DOWN event */ + /*evas_object_event_callback_del(obj, EVAS_CALLBACK_KEY_DOWN, + __gl_popup_local_keydown_cb);*/ + _gl_editfield_show_imf(data); + gl_dbg("Delete popup +++"); +} + +static void __gl_popup_local_block_clicked_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_IF_DEL_OBJ(obj); +} + +static Eina_Bool __gl_popup_local_timeout_cb(void *data) +{ + GL_CHECK_CANCEL(data); + Evas_Object *popup = (Evas_Object *)data; + gl_appdata *ad = (gl_appdata *)evas_object_data_get(popup, + GL_POPUP_OBJ_DATA_KEY); + GL_IF_DEL_OBJ(popup); + + GL_CHECK_CANCEL(ad); + GL_IF_DEL_TIMER(ad->popupinfo.del_timer); + return ECORE_CALLBACK_CANCEL; +} + +static Evas_Object *__gl_popup_add(Evas_Object *parent, const char *style, + const char *title, const char *text, + void *data) +{ + GL_CHECK_NULL(parent); + Evas_Object *popup = elm_popup_add(parent); + GL_CHECK_NULL(popup); + if (style) + elm_object_style_set(popup, style); + if (title) + _gl_ui_set_translate_part_str(popup, "title,text", title); + if (text) + _gl_ui_set_translate_str(popup, text); + evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + + /*Add callback for Hardware Key*/ + evas_object_event_callback_add(popup, EVAS_CALLBACK_MOUSE_UP, + __gl_popup_mouseup_cb, data); + /* Disable EVAS_CALLBACK_KEY_DOWN event */ + /*evas_object_event_callback_add(popup, EVAS_CALLBACK_KEY_DOWN, + __gl_popup_keydown_cb, data);*/ + /*Delete the Popup if the Popup has a BACK event.*/ + eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, + __gl_popup_ea_back_cb, data); + return popup; +} + +static Evas_Object *__gl_popup_add_local(Evas_Object *parent, const char *style, + const char *title, const char *text, + void *data) +{ + GL_CHECK_NULL(parent); + Evas_Object *popup = elm_popup_add(parent); + GL_CHECK_NULL(popup); + if (style) + elm_object_style_set(popup, style); + if (title) + _gl_ui_set_translate_part_str(popup, "title,text", title); + if (text) + _gl_ui_set_translate_str(popup, text); + evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + + /*Add callback for Hardware Key*/ + evas_object_event_callback_add(popup, EVAS_CALLBACK_MOUSE_UP, + __gl_popup_local_mouseup_cb, data); + /* Disable EVAS_CALLBACK_KEY_DOWN event */ + /*evas_object_event_callback_add(popup, EVAS_CALLBACK_KEY_DOWN, + __gl_popup_local_keydown_cb, data);*/ + /*Delete the Popup if the Popup has a BACK event.*/ + eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, + eext_popup_back_cb, NULL); + return popup; +} + +static void __gl_popup_genlist_realized(void *data, Evas_Object *obj, void *ei) +{ + if (elm_genlist_first_item_get(obj) == ei) { + gl_dbg("Emit signal"); + evas_object_smart_callback_call(obj, "popup,genlist,realized", + data); + } +} + +static Evas_Object *__gl_popup_add_genlist(void *data, Evas_Object *parent, + const char *style, + Elm_Gen_Item_Text_Get_Cb text_get, + Elm_Gen_Item_Content_Get_Cb content_get, + void *append_func) +{ + GL_CHECK_NULL(parent); + + /* Set item of Genlist.*/ + Elm_Genlist_Item_Class *gic = NULL; + gic = elm_genlist_item_class_new(); + GL_CHECK_NULL(gic); + gic->item_style = style; + gic->func.text_get = text_get; + gic->func.content_get = content_get; + gic->func.state_get = NULL; + gic->func.del = NULL; + + /* Create genlist */ + Evas_Object *genlist = elm_genlist_add(parent); + if (genlist == NULL) { + elm_genlist_item_class_free(gic); + return NULL; + } + evas_object_smart_callback_add(genlist, "realized", + __gl_popup_genlist_realized, data); + /* Register delete callback */ + evas_object_event_callback_add(genlist, EVAS_CALLBACK_DEL, + __gl_popup_genlist_delete_cb, + (void *)gic); + evas_object_smart_callback_add(genlist, "language,changed", + __gl_popup_genlist_lang_changed, NULL); + 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); + if (append_func) { + void (*append_cb) (void *popup_data, Evas_Object *gl, Elm_Genlist_Item_Class *gic); + append_cb = append_func; + append_cb(data, genlist, gic); + } + + if (elm_genlist_items_count(genlist) <= 3) + elm_scroller_policy_set(genlist, ELM_SCROLLER_POLICY_OFF, + ELM_SCROLLER_POLICY_OFF); + return genlist; +} + +static void __gl_popup_delete_cb(void *data, Evas *e, Evas_Object *obj, void *ei) +{ + gl_dbg("Delete popup ---"); + evas_object_event_callback_del(obj, EVAS_CALLBACK_MOUSE_UP, + __gl_popup_mouseup_cb); + /* Disable EVAS_CALLBACK_KEY_DOWN event */ + /*evas_object_event_callback_del(obj, EVAS_CALLBACK_KEY_DOWN, + __gl_popup_keydown_cb);*/ + GL_FREEIF(data); + gl_dbg("Delete popup +++"); +} + +static void __gl_popup_menu_delete_cb(void *data, Evas *e, Evas_Object *obj, + void *ei) +{ + gl_dbg("Delete popup ---"); + + evas_object_event_callback_del(obj, EVAS_CALLBACK_MOUSE_UP, + __gl_popup_mouseup_cb); + /* Disable EVAS_CALLBACK_KEY_DOWN event */ + /*evas_object_event_callback_del(obj, EVAS_CALLBACK_KEY_DOWN, + __gl_popup_keydown_cb);*/ + /* Remove key data for popup */ + evas_object_data_del(obj, GL_POPUP_OBJ_DATA_KEY); + + GL_FREEIF(data); + gl_dbg("Delete popup +++"); +} + +static void __gl_popup_menu_sel_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(ei); + GL_CHECK(data); + gl_popup_menu_s *share_d = (gl_popup_menu_s *)data; + GL_CHECK(share_d->ad); + gl_appdata *ad = share_d->ad; + char *id = NULL; + + id = (char *)elm_object_item_data_get(ei); + GL_CHECK(id); + gl_sdbg("label id: %s", id); + + int (*op_cb) (void *data, const char *label) = NULL; + if (share_d->op_func) { + op_cb = share_d->op_func; + } + GL_IF_DEL_OBJ(ad->popupinfo.popup); + ad->popupinfo.mode = GL_POPUP_NOBUT; + if (op_cb) + op_cb(ad, _gl_str(id)); +} + +static char *__gl_popup_menu_get_text(void *data, Evas_Object *obj, + const char *part) +{ + if (!strcmp(part, "elm.text")) { + char *str = NULL; + GL_CHECK_NULL(data); + str = _gl_str((char *)data); + if (str) + return strdup(str); + } + return NULL; +} + +#ifdef SUPPORT_SLIDESHOW +static void __gl_popup_slideshow_append(void *data, Evas_Object *gl, + Elm_Genlist_Item_Class *gic) +{ + GL_CHECK(gic); + GL_CHECK(gl); + GL_CHECK(data); + gl_dbg("append items"); + + elm_genlist_item_append(gl, gic, (void *)GL_STR_ID_ALL_ITEMS, + NULL, ELM_GENLIST_ITEM_NONE, + __gl_popup_menu_sel_cb, data); + elm_genlist_item_append(gl, gic, (void *)GL_STR_ID_SELECT_ITEMS, + NULL, ELM_GENLIST_ITEM_NONE, + __gl_popup_menu_sel_cb, data); + elm_genlist_item_append(gl, gic, (void *)GL_STR_ID_SETTINGS, + NULL, ELM_GENLIST_ITEM_NONE, + __gl_popup_menu_sel_cb, data); +} +#endif + +#if 0 +static void __gl_popup_album_longpressed_append(void *data, Evas_Object *gl, + Elm_Genlist_Item_Class *gic) +{ + GL_CHECK(gic); + GL_CHECK(gl); + GL_CHECK(data); + gl_dbg("append items"); + gl_popup_menu_s *share_d = (gl_popup_menu_s *)data; + GL_CHECK(share_d->ad); + gl_appdata *ad = share_d->ad; + gl_cluster *album = _gl_albums_get_current(ad); + GL_CHECK(album); + + elm_genlist_item_append(gl, gic, (void *)GL_STR_ID_SHARE, + NULL, ELM_GENLIST_ITEM_NONE, + __gl_popup_menu_sel_cb, data); +#ifdef SUPPORT_SLIDESHOW + elm_genlist_item_append(gl, gic, (void *)GL_STR_ID_SLIDESHOW, + NULL, ELM_GENLIST_ITEM_NONE, + __gl_popup_menu_sel_cb, data); +#endif + + if (GL_STORE_T_ALL != album->cluster->type) + elm_genlist_item_append(gl, gic, (void *)GL_STR_ID_DELETE, + NULL, ELM_GENLIST_ITEM_NONE, + __gl_popup_menu_sel_cb, data); + if ((GL_STORE_T_PHONE == album->cluster->type || + GL_STORE_T_MMC == album->cluster->type) && + !_gl_data_is_camera_album(album->cluster)) + elm_genlist_item_append(gl, gic, (void *)GL_STR_ID_RENAME, + NULL, ELM_GENLIST_ITEM_NONE, + __gl_popup_menu_sel_cb, data); +} +#endif + +static void __gl_popup_thumb_longpressed_append(void *data, Evas_Object *gl, + Elm_Genlist_Item_Class *gic) +{ + GL_CHECK(gic); + GL_CHECK(gl); + GL_CHECK(data); + gl_dbg("append items"); + gl_popup_menu_s *share_d = (gl_popup_menu_s *)data; + GL_CHECK(share_d->ad); + gl_appdata *ad = share_d->ad; + GL_CHECK(ad->selinfo.elist); + gl_item *gitem = (gl_item *)eina_list_nth(ad->selinfo.elist, 0); + GL_CHECK(gitem); + GL_CHECK(gitem->item); + gl_dbg("item storage type: %d", gitem->item->storage_type); + elm_genlist_item_append(gl, gic, (void *)GL_STR_ID_SHARE, + NULL, ELM_GENLIST_ITEM_NONE, + __gl_popup_menu_sel_cb, data); + if ((GL_STORE_T_PHONE == gitem->item->storage_type || + GL_STORE_T_MMC == gitem->item->storage_type) && + MEDIA_CONTENT_TYPE_IMAGE == gitem->item->type) + elm_genlist_item_append(gl, gic, (void *)GL_STR_ID_EDIT, + NULL, ELM_GENLIST_ITEM_NONE, + __gl_popup_menu_sel_cb, data); + if (GL_STORE_T_PHONE == gitem->item->storage_type || + GL_STORE_T_MMC == gitem->item->storage_type) { + elm_genlist_item_append(gl, gic, (void *)GL_STR_ID_DELETE, + NULL, ELM_GENLIST_ITEM_NONE, + __gl_popup_menu_sel_cb, data); + } + + if ((GL_STORE_T_PHONE == gitem->item->storage_type || + GL_STORE_T_MMC == gitem->item->storage_type)) { + elm_genlist_item_append(gl, gic, (void *)GL_STR_ID_MOVE, + NULL, ELM_GENLIST_ITEM_NONE, + __gl_popup_menu_sel_cb, data); + elm_genlist_item_append(gl, gic, (void *)GL_STR_ID_COPY, + NULL, ELM_GENLIST_ITEM_NONE, + __gl_popup_menu_sel_cb, data); + } + /* + if (MEDIA_CONTENT_TYPE_IMAGE == gitem->item->type) + elm_genlist_item_append(gl, gic, (void *)GL_STR_ID_DETAILS, + NULL, ELM_GENLIST_ITEM_NONE, + __gl_popup_menu_sel_cb, data);*/ +} + +static void __gl_popup_btn_new_album_cb(void *data, Evas_Object *obj, void *ei) +{ + gl_dbg(""); + GL_CHECK(data); + gl_popup_menu_s *menu_d = NULL; + menu_d = (gl_popup_menu_s *)data; + GL_CHECK(menu_d->ad); + gl_appdata *ad = menu_d->ad; + + _gl_albums_new_create_view(ad, menu_d->op_func); + ad->popupinfo.mode = GL_POPUP_NOBUT; +} + +static void __gl_popup_move_cb(void *data, Evas_Object *obj, void *ei) +{ + gl_dbg(""); + /* Get 'menu data' via 'GL_POPUP_OBJ_DATA_KEY' */ + GL_CHECK(obj); + gl_popup_menu_s *menu_d = NULL; + menu_d = (gl_popup_menu_s *)evas_object_data_get(obj, GL_POPUP_OBJ_DATA_KEY); + GL_CHECK(menu_d); + GL_CHECK(menu_d->ad); + gl_appdata *ad = menu_d->ad; + GL_FREEIF(ad->albuminfo.path); + + if (data) { + GL_CHECK(menu_d->op_func); + ad->albuminfo.path = strdup((char *)data); + gl_sdbg("Dest album path: %s", ad->albuminfo.path); + int (*mc_cb)(void *data); + mc_cb = menu_d->op_func; + mc_cb(ad); + } + + GL_IF_DEL_OBJ(ad->popupinfo.popup); + ad->popupinfo.mode = GL_POPUP_NOBUT; +} + +static void __gl_popup_move_append(void *data, Evas_Object *gl, + Elm_Genlist_Item_Class *gic) +{ + GL_CHECK(gic); + GL_CHECK(gl); + GL_CHECK(data); + gl_popup_menu_s *menu_d = (gl_popup_menu_s *)data; + GL_CHECK(menu_d->ad); + gl_appdata *ad = menu_d->ad; + GL_CHECK(menu_d->op_func); + GL_CHECK(ad->maininfo.naviframe); + int i = 0; + Eina_List *album_list = NULL; + int all_count = 0; + char *label = NULL; + gl_cluster *album = NULL; + gl_cluster *cur_album = _gl_albums_get_current(ad); + evas_object_data_set(gl, GL_POPUP_OBJ_DATA_KEY, menu_d); + /*elm_genlist_item_append(gl, gic, (void *)GL_STR_ID_NEW_ALBUM, + NULL, ELM_GENLIST_ITEM_NONE, + __gl_popup_move_cb, NULL);*/ + + if (ad->albuminfo.elist && ad->albuminfo.elist->clist) { + album_list = ad->albuminfo.elist->clist; + all_count = eina_list_count(album_list); + } else { + gl_dbgE("cluster list is NULL"); + return; + } + + gl_dbg("cluster list length: %d", all_count); + for (i = 0; i < all_count; i++) { + album = eina_list_nth(album_list, i); + GL_CHECK(album); + GL_CHECK(album->cluster); + GL_CHECK(album->cluster->display_name); + GL_CHECK(album->cluster->uuid); + + if (cur_album && cur_album->cluster && + cur_album->cluster->uuid && + !g_strcmp0(album->cluster->uuid, cur_album->cluster->uuid)) + continue; + if (album->cluster->type == GL_STORE_T_MMC || + album->cluster->type == GL_STORE_T_PHONE) { + label = _gl_get_i18n_album_name(album->cluster); + elm_genlist_item_append(gl, gic, (void *)label, + NULL, ELM_GENLIST_ITEM_NONE, + __gl_popup_move_cb, + album->cluster->path); + } + } +} + +static void __gl_popup_genlist_resize_job_cb(void *data) +{ + GL_CHECK(data); + gl_popup_resize_s *resize_d = (gl_popup_resize_s *)data; + Evas_Object *track = NULL; + Elm_Object_Item *item = elm_genlist_first_item_get(resize_d->genlist); + track = elm_object_item_track(item); + if (track) { + Evas_Coord h = 0; + evas_object_geometry_get(track, NULL, NULL, NULL, &h); + gl_dbg("size diff: %d-%d", h, resize_d->item_height); + if (resize_d->item_height != h) { + int cnt = elm_genlist_items_count(resize_d->genlist); + int min_h = 0; + if (cnt > 3) + min_h = h * 4; + else + min_h = h * cnt; + + evas_object_size_hint_min_set(resize_d->box, + GL_POPUP_GENLIST_ITEM_W * elm_config_scale_get(), + min_h); + } + } + elm_object_item_untrack(item); + GL_IF_DEL_JOB(resize_d->job); +} + +static void __gl_popup_genlist_realized_resize(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_popup_resize_s *resize_d = (gl_popup_resize_s *)data; + GL_IF_DEL_JOB(resize_d->job); + resize_d->job = ecore_job_add(__gl_popup_genlist_resize_job_cb, data); +} + +static int __gl_popup_add_resize_op(gl_appdata *ad, Evas_Object *box, Evas_Object *genlist) +{ + gl_popup_resize_s *resize_d = NULL; + resize_d = (gl_popup_resize_s *)calloc(1, sizeof(gl_popup_resize_s)); + GL_CHECK_VAL(resize_d, -1); + + resize_d->box = box; + resize_d->genlist = genlist; + resize_d->ad = ad; + evas_object_smart_callback_add(genlist, "popup,genlist,realized", + __gl_popup_genlist_realized_resize, + (void *)resize_d); + evas_object_data_set(genlist, GL_POPUP_GENLIST_DATA_KEY, + (void *)resize_d); + + resize_d->item_height = __gl_popup_set_min_size(box, + elm_genlist_items_count(genlist)); + return 0; +} + +/* Title + menustyle(genlist) + one button */ +static int __gl_popup_create_menu(void *data, const char *title, + void *append_func, void *op_func, int mode) +{ + gl_dbg(""); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + if (ad->popupinfo.popup) { + gl_dbg("The existed popup is deleted"); + evas_object_del(ad->popupinfo.popup); + ad->popupinfo.popup = NULL; + } + + gl_popup_menu_s *menu_d = NULL; + menu_d = (gl_popup_menu_s *)calloc(1, sizeof(gl_popup_menu_s)); + GL_CHECK_VAL(menu_d, -1); + + Evas_Object *box = NULL; + Evas_Object *genlist = NULL; + Evas_Object *popup = __gl_popup_add(ad->maininfo.win, + "content_no_vhpad", + title, NULL, data); + if (popup == NULL) { + GL_FREE(menu_d); + return -1; + } + /* Register delete callback */ + evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, + __gl_popup_menu_delete_cb, menu_d); + menu_d->ad = ad; + menu_d->popup = popup; + menu_d->op_func = op_func; + evas_object_data_set(popup, GL_POPUP_OBJ_DATA_KEY, menu_d); + + box = elm_box_add(popup); + evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + /* Create genlist */ + genlist = __gl_popup_add_genlist(menu_d, box, "1text/popup", + __gl_popup_menu_get_text, NULL, + append_func); + __gl_popup_add_resize_op(ad, box, genlist); + + elm_box_pack_end(box, genlist); + evas_object_show(genlist); + evas_object_show(box); + elm_object_content_set(popup, box); + evas_object_show(popup); + ad->popupinfo.popup = popup; + ad->popupinfo.mode = mode; + return 0; +} + +/* Title + menustyle(genlist) + one button */ +static int __gl_popup_create_album_menu(void *data, const char *title, + void *append_func, void *op_func, int mode) +{ + gl_dbg(""); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + if (ad->popupinfo.popup) { + gl_dbg("The existed popup is deleted"); + evas_object_del(ad->popupinfo.popup); + ad->popupinfo.popup = NULL; + } + + gl_popup_menu_s *menu_d = NULL; + menu_d = (gl_popup_menu_s *)calloc(1, sizeof(gl_popup_menu_s)); + GL_CHECK_VAL(menu_d, -1); + + Evas_Object *box = NULL; + Evas_Object *genlist = NULL; + Evas_Object *popup = __gl_popup_add(ad->maininfo.win, NULL, + title, NULL, data); + if (popup == NULL) { + GL_FREE(menu_d); + return -1; + } + /* Register delete callback */ + evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, + __gl_popup_menu_delete_cb, menu_d); + menu_d->ad = ad; + menu_d->popup = popup; + menu_d->op_func = op_func; + evas_object_data_set(popup, GL_POPUP_OBJ_DATA_KEY, menu_d); + + box = elm_box_add(popup); + evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + /* Create genlist */ + genlist = __gl_popup_add_genlist(menu_d, box, "1text/popup", + __gl_popup_menu_get_text, NULL, + append_func); + + if (elm_genlist_items_count(genlist) > 0) { +// __gl_popup_add_resize_op(ad, box, genlist); + elm_box_pack_end(box, genlist); + evas_object_show(genlist); + evas_object_show(box); + + elm_object_style_set(popup, "content_no_vhpad"); + elm_object_content_set(popup, box); + } else { + GL_IF_DEL_OBJ(genlist); + GL_IF_DEL_OBJ(box); + + _gl_ui_set_translate_str(popup, GL_STR_ID_THERE_IS_ONLY_ONE_ALBUM); + } + + evas_object_show(popup); + ad->popupinfo.popup = popup; + ad->popupinfo.mode = mode; + return 0; +} + +int _gl_popup_create(void *data, const char *title, const char *text, + const char *str1, Evas_Smart_Cb cb1, const void *data1, + const char *str2, Evas_Smart_Cb cb2, const void *data2, + const char *str3, Evas_Smart_Cb cb3, const void *data3) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + + if (ad->popupinfo.popup) { + gl_dbg("Delte the existed popup first"); + evas_object_del(ad->popupinfo.popup); + ad->popupinfo.popup = NULL; + } + + Evas_Object *popup = NULL; + popup = __gl_popup_add(ad->maininfo.win, NULL, title, text, data); + GL_CHECK_VAL(popup, -1); + gl_popup_s *popup_d = (gl_popup_s *)calloc(1, sizeof(gl_popup_s)); + if (popup_d == NULL) { + gl_dbgE("Calloc failed!"); + evas_object_del(popup); + return -1; + } + evas_object_data_set(popup, GL_POPUP_OBJ_DATA_KEY, popup_d); + /* Register delete callback */ + evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, + __gl_popup_delete_cb, popup_d); + popup_d->ad = ad; + popup_d->popup = popup; + + if (str1 && cb1) { + Evas_Object *btn1 = NULL; + btn1 = _gl_but_create_but_popup(popup, str1, cb1, + data1); + elm_object_part_content_set(popup, "button1", btn1); + popup_d->cb1 = cb1; + popup_d->data1 = data1; + } + if (str2 && cb2) { + Evas_Object *btn2 = NULL; + btn2 = _gl_but_create_but_popup(popup, str2, cb2, + data2); + elm_object_part_content_set(popup, "button2", btn2); + popup_d->cb2 = cb2; + popup_d->data2 = data2; + } + if (str3 && cb3) { + Evas_Object *btn3 = NULL; + btn3 = _gl_but_create_but_popup(popup, str3, cb3, + data3); + elm_object_part_content_set(popup, "button3", btn3); + popup_d->cb3 = cb3; + popup_d->data3 = data3; + } + + evas_object_show(popup); + ad->popupinfo.popup = popup; + return 0; +} + +static void __gl_popup_del_lang_changed(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(obj); + int sel_cnt = (int)data; + if (sel_cnt < 1) { + gl_dbg("Do not need to update the laungue manual"); + return; + } + int del_type = (int)evas_object_data_get(obj, + GL_POPUP_OBJ_DEL_CB_TYPE_KEY); + char *popup_str = NULL; + if (del_type == GL_POPUP_OBJ_DEL_CB_TYPE_ITEM) { + popup_str = g_strdup_printf(GL_STR_DELETE_PD_FILES, sel_cnt); + } else { + popup_str = g_strdup_printf(GL_STR_DELETE_PD_ALBUMS, sel_cnt); + } + elm_object_text_set(obj, popup_str); +} + +int _gl_popup_create_del(void *data, int mode, void *sel_cb, void *del_cb, + void *cb_data) +{ + GL_CHECK_VAL(cb_data, -1); + GL_CHECK_VAL(del_cb, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + int sel_cnt = 0; + char *fmt_str = NULL; + char *popup_str = NULL; + char *one_selected = NULL; + char *mul_selected = NULL; + + if (ad->popupinfo.popup != NULL) { + gl_dbg("The existed popup is deleted"); + evas_object_del(ad->popupinfo.popup); + } + + if (sel_cb) { + int (*_sel_cb) (void *data); + _sel_cb = sel_cb; + sel_cnt = _sel_cb(cb_data); + gl_dbg("mode: %d", mode); + switch (mode) { + case GL_POPUP_DEL_FILE : + one_selected = GL_STR_ID_DELETE_1_FILE; + mul_selected = GL_STR_DELETE_PD_FILES; + break; + case GL_POPUP_DEL_ALBUM: + one_selected = GL_STR_ID_DELETE_1_ALBUM; + mul_selected = GL_STR_DELETE_PD_ALBUMS; + break; + default: + gl_dbgE("Wrong delete mode!"); + return -1; + } + + if (sel_cnt == 1) { + popup_str = g_strdup(one_selected); + } else { + fmt_str = mul_selected; + popup_str = g_strdup_printf(fmt_str, sel_cnt); + } + } else { + popup_str = g_strdup(GL_STR_ID_DELETE_COMFIRMATION); + } + gl_dbg("popup string: %s", popup_str); + + Evas_Object *popup = __gl_popup_add(ad->maininfo.win, NULL, + GL_STR_ID_DELETE, + popup_str, data); + GL_CHECK_VAL(popup, -1); + evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, + __gl_popup_delete_cb, NULL); + + + /*only when sel_cnt > 1, we need to change langue manual*/ + if (sel_cnt > 1) { + evas_object_smart_callback_add(popup, "language,changed", + __gl_popup_del_lang_changed, + (void *)sel_cnt); + if (mode == GL_POPUP_DEL_FILE) + evas_object_data_set(popup, + GL_POPUP_OBJ_DEL_CB_TYPE_KEY, + (void *)GL_POPUP_OBJ_DEL_CB_TYPE_ITEM); + else + evas_object_data_set(popup, + GL_POPUP_OBJ_DEL_CB_TYPE_KEY, + (void *)GL_POPUP_OBJ_DEL_CB_TYPE_ALBUM); + } + evas_object_data_set(popup, GL_POPUP_OBJ_DEL_CB_KEY, del_cb); + evas_object_data_set(popup, GL_POPUP_OBJ_DEL_CB_DATA_KEY, cb_data); + + Evas_Object *btn1 = NULL; + Evas_Object *btn2 = NULL; + btn1 = _gl_but_create_but_popup(popup, GL_STR_ID_CANCEL, + __gl_popup_del_resp_cb, data); + btn2 = _gl_but_create_but_popup(popup, GL_STR_ID_DELETE, + __gl_popup_del_resp_cb, data); + elm_object_part_content_set(popup, "button1", btn1); + elm_object_part_content_set(popup, "button2", btn2); + + evas_object_show(popup); + ad->popupinfo.popup = popup; + ad->popupinfo.mode = GL_POPUP_MEDIA_DELETE; + + GL_FREE(popup_str); + return 0; +} + +int gl_popup_create_popup(void *data, gl_popup_mode mode, char *desc) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg(""); + + if (ad->popupinfo.popup) { + gl_dbg("The existed popup is deleted"); + evas_object_del(ad->popupinfo.popup); + ad->popupinfo.popup = NULL; + } + + gl_pb_del_pbar(ad); + Evas_Object *popup = NULL; + + if (mode == GL_POPUP_ALBUM_MEMORY_FULL) { + popup = __gl_popup_add(ad->maininfo.win, NULL, GL_DATA_SAVE_FAILED, desc, + data); + } else { + popup = __gl_popup_add(ad->maininfo.win, NULL, NULL, desc, + data); + } + + GL_CHECK_VAL(popup, -1); + evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, + __gl_popup_delete_cb, NULL); + + Evas_Object *btn1 = NULL; + Evas_Object *btn2 = NULL; + + switch (mode) { + case GL_POPUP_NOBUT: + case GL_POPUP_NOBUT_APPEXIT: + __gl_popup_add_timer(ad, GL_POPUP_TIMEOUT_3S); + break; + case GL_POPUP_ONEBUT: + btn1 = _gl_but_create_but_popup(popup, GL_STR_ID_CLOSE, + __gl_popup_resp_cb, data); + elm_object_part_content_set(popup, "button1", btn1); + break; + case GL_POPUP_ALBUM_NEW_EMPTY: + case GL_POPUP_ALBUM_NEW_DUPLICATE: + case GL_POPUP_ALBUM_NEW_INVALID: + case GL_POPUP_ALBUM_RENAME_EMPTY: + case GL_POPUP_ALBUM_RENAME_DUPLICATE: + case GL_POPUP_ALBUM_RENAME_INVALID: + btn1 = _gl_but_create_but_popup(popup, GL_STR_ID_NO, + __gl_popup_resp_cb, data); + elm_object_part_content_set(popup, "button1", btn1); + btn2 = _gl_but_create_but_popup(popup, GL_STR_ID_YES, + __gl_popup_resp_cb, data); + elm_object_part_content_set(popup, "button2", btn2); + gl_dbg("Hide Entry cursor and IMF"); + _gl_editfield_hide_imf(ad); + break; + case GL_POPUP_ALBUM_MEMORY_FULL: + btn1 = _gl_but_create_but_popup(popup, GL_STR_ID_CANCEL_ABB, + __gl_popup_resp_cb, data); + elm_object_part_content_set(popup, "button1", btn1); + btn2 = _gl_but_create_but_popup(popup, GL_STR_SETTINGS, + __gl_popup_resp_cb, data); + elm_object_part_content_set(popup, "button2", btn2); + break; + + default: + gl_dbgE("Other popup mode..."); + break; + } + + evas_object_show(popup); + + /* Focus popup and IMF hide */ + elm_object_focus_set(popup, EINA_TRUE); + + if (mode == GL_POPUP_ALBUM_MEMORY_FULL) { + ad->popupinfo.memory_full_popup = popup; + } else { + ad->popupinfo.popup = popup; + } + ad->popupinfo.mode = mode; + + return 0; +} + +Evas_Object *_gl_popup_create_local(void *data, gl_popup_mode mode, char *desc) +{ + GL_CHECK_NULL(data); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg(""); + + Evas_Object *win = ad->maininfo.win; + if (ad->maininfo.entry_win) + win = ad->maininfo.entry_win; + + Evas_Object *popup = __gl_popup_add_local(win, NULL, NULL, desc, data); + GL_CHECK_NULL(popup); + evas_object_data_set(popup, GL_POPUP_OBJ_DATA_KEY, data); + evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, + __gl_popup_local_delete_cb, data); + Evas_Object *btn1 = NULL; + + switch (mode) { + case GL_POPUP_NOBUT: + GL_IF_DEL_TIMER(ad->popupinfo.del_timer); + ad->popupinfo.del_timer = ecore_timer_add(GL_POPUP_TIMEOUT_3S, + __gl_popup_local_timeout_cb, + popup); + evas_object_smart_callback_add(popup, "block,clicked", + __gl_popup_local_block_clicked_cb, + popup); + break; + case GL_POPUP_ONEBUT: + btn1 = _gl_but_create_but_popup(popup, GL_STR_ID_OK, + __gl_popup_local_resp_cb, popup); + elm_object_part_content_set(popup, "button1", btn1); + break; + default: + gl_dbgW("Other popup mode[%d]", mode); + break; + } + + evas_object_show(popup); + elm_object_focus_set(popup, EINA_FALSE); + return popup; +} + +#ifdef SUPPORT_SLIDESHOW +int _gl_popup_create_slideshow(void *data, void *op_func) +{ + gl_dbg(""); + GL_CHECK_VAL(data, -1); + __gl_popup_create_menu(data, GL_STR_ID_SLIDESHOW, + __gl_popup_slideshow_append, op_func, + GL_POPUP_SLIDESHOW); + _gl_popup_add_block_callback(data); + return 0; +} +#endif + +int _gl_popup_create_move(void *data, void *op_func) +{ + gl_dbg(""); + GL_CHECK_VAL(data, -1); + __gl_popup_create_album_menu(data, GL_STR_ID_MOVE, + __gl_popup_move_append, op_func, + GL_POPUP_MEDIA_MOVE); + _gl_popup_add_buttons(data, GL_STR_ID_NEW_ALBUM, + __gl_popup_btn_new_album_cb); + return 0; +} + +int _gl_popup_create_copy(void *data, void *op_func) +{ + gl_dbg(""); + GL_CHECK_VAL(data, -1); + __gl_popup_create_album_menu(data, GL_STR_ID_COPY, + __gl_popup_move_append, op_func, + GL_POPUP_MEDIA_MOVE); + _gl_popup_add_buttons(data, GL_STR_ID_NEW_ALBUM, + __gl_popup_btn_new_album_cb); + return 0; +} + +int _gl_popup_create_move_with_append(void *data, void *op_func, void *append_func, const char *title) +{ + gl_dbg(""); + GL_CHECK_VAL(data, -1); + __gl_popup_create_album_menu(data, title, append_func, op_func, + GL_POPUP_MEDIA_MOVE); + return 0; +} + +int _gl_popup_create_longpressed_album_with_append(void *data, void *op_func, void *append_func, const char *title) +{ + gl_dbg(""); + GL_CHECK_VAL(data, -1); + __gl_popup_create_menu(data, title, append_func, op_func, + GL_POPUP_LONGPRESSED); + _gl_popup_add_block_callback(data); + return 0; +} + +int _gl_popup_create_longpressed_thumb_with_append(void *data, void *op_func, void *append_func, const char *title) +{ + gl_dbg(""); + GL_CHECK_VAL(data, -1); + __gl_popup_create_menu(data, title, append_func, op_func, + GL_POPUP_LONGPRESSED); + _gl_popup_add_block_callback(data); + return 0; +} + +int _gl_popup_create_longpressed_thumb(void *data, void *op_func, char *file_name) +{ + gl_dbg(""); + GL_CHECK_VAL(data, -1); + __gl_popup_create_menu(data, file_name, + __gl_popup_thumb_longpressed_append, op_func, + GL_POPUP_LONGPRESSED); + _gl_popup_add_block_callback(data); + return 0; +} + +int _gl_popup_add_buttons(void *data, const char *text, Evas_Smart_Cb cb_func) +{ + Evas_Object *btn1 = NULL; + Evas_Object *btn2 = NULL; + gl_appdata *ad = (gl_appdata *)data; + /* Button 'cancel' */ + btn1 = _gl_but_create_but_popup(ad->popupinfo.popup, GL_STR_ID_CANCEL, + __gl_popup_resp_cb, data); + elm_object_part_content_set(ad->popupinfo.popup, "button1", btn1); + + void *menu_data = evas_object_data_get(ad->popupinfo.popup, + GL_POPUP_OBJ_DATA_KEY); + btn2 = _gl_but_create_but_popup(ad->popupinfo.popup, text, cb_func, + menu_data); + elm_object_part_content_set(ad->popupinfo.popup, "button2", btn2); + return 0; +} + +int _gl_popup_add_block_callback(void *data) +{ + gl_appdata *ad = (gl_appdata *)data; + evas_object_smart_callback_add(ad->popupinfo.popup, "block,clicked", + __gl_popup_block_clicked_cb, data); + return 0; +} + +void _gl_time_view_selected_cb(void *data, Evas_Object *obj, void *event_info) +{ + gl_dbg("ENTRY"); + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + if (ad->popupinfo.popup) { + evas_object_del(ad->popupinfo.popup); + ad->popupinfo.popup = NULL; + } + int view_mode = gl_get_view_mode(ad); + if (view_mode == GL_VIEW_TIMELINE) { + gl_dbg("EXIT 1"); + return; + } + _gl_ctrl_show_view(data, "Timeline"); + gl_dbg("EXIT"); +} + +void _gl_album_view_selected_cb(void *data, Evas_Object *obj, void *event_info) +{ + gl_dbg("ENTRY"); + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + if (ad->popupinfo.popup) { + evas_object_del(ad->popupinfo.popup); + ad->popupinfo.popup = NULL; + } + int view_mode = gl_get_view_mode(ad); + if (view_mode == GL_VIEW_ALBUMS) { + gl_dbg("EXIT 1"); + return; + } + _gl_ctrl_show_view(data, GL_STR_ALBUMS); + gl_dbg("EXIT"); +} + +void _gl_asc_sort_selected_cb(void *data, Evas_Object *obj, void *event_info) +{ + gl_dbg("ENTRY"); + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + if (ad->popupinfo.popup) { + evas_object_del(ad->popupinfo.popup); + ad->popupinfo.popup = NULL; + } + if (ad->maininfo.view_mode == GL_VIEW_THUMBS) { + if (ad->gridinfo.media_display_order == ORDER_ASC) { + gl_dbg("EXIT 1"); + return; + } + ad->gridinfo.media_display_order = ORDER_ASC; + _gl_thumbs_update_items(ad); + } else if (ad->maininfo.view_mode == GL_VIEW_TIMELINE) { + __gl_timeline_asc_mode_set(ad); + } + gl_dbg("EXIT"); +} + +void _gl_desc_sort_selected_cb(void *data, Evas_Object *obj, void *event_info) +{ + gl_dbg("ENTRY"); + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + if (ad->popupinfo.popup) { + evas_object_del(ad->popupinfo.popup); + ad->popupinfo.popup = NULL; + } + if (ad->maininfo.view_mode == GL_VIEW_THUMBS) { + if (ad->gridinfo.media_display_order == ORDER_DESC) { + gl_dbg("EXIT 1"); + return; + } + ad->gridinfo.media_display_order = ORDER_DESC; + _gl_thumbs_update_items(ad); + } else if (ad->maininfo.view_mode == GL_VIEW_TIMELINE) { + __gl_timeline_desc_mode_set(ad); + } + gl_dbg("EXIT"); +} + +void _gl_list_viewas_popup_cb_add(Evas_Object *btn, Evas_Object *btn1, void *ad) +{ + evas_object_smart_callback_add(btn, "clicked", _gl_time_view_selected_cb, ad); + evas_object_smart_callback_add(btn1, "clicked", _gl_album_view_selected_cb, ad); +} + +void _gl_list_sortby_popup_cb_add(Evas_Object *btn, Evas_Object *btn1, void *ad) +{ + evas_object_smart_callback_add(btn, "clicked", _gl_desc_sort_selected_cb, ad); + evas_object_smart_callback_add(btn1, "clicked", _gl_asc_sort_selected_cb, ad); +} + +void _gl_list_pop_create(void *data, Evas_Object *obj, void *ei, char *title, char *first_text, char *second_text, int state_index) +{ + gl_dbg("ENTRY"); + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + int w,h; + _gl_ctxpopup_del(data); + Evas_Object * popup = elm_popup_add(ad->maininfo.win); + evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + _gl_ui_set_translate_part_str(popup, "title,text", title); + + Evas_Object *ly = elm_layout_add(popup); + Evas_Object *ly1 = elm_layout_add(ly); + elm_layout_file_set(ly, GL_EDJ_FILE, "list_popup_swallow_ly"); + elm_layout_file_set(ly1, GL_EDJ_FILE, "list_popup_content_ly"); + _gl_ui_set_translate_part_str(ly1, "elm.text", first_text); + _gl_ui_set_translate_part_str(ly1, "elm.text.second", second_text); + + Evas_Object *group_radio = elm_radio_add(ly1); + elm_radio_state_value_set(group_radio, 0); + elm_radio_value_set(group_radio, 0); + + Evas_Object *radio = elm_radio_add(ly1); + Evas_Object *radio1 = elm_radio_add(ly1); + elm_radio_group_add(radio, group_radio); + elm_radio_state_value_set(radio, 0); + evas_object_propagate_events_set(radio, EINA_TRUE); + evas_object_show(radio); + elm_object_part_content_set(ly1,"elm.swallow", radio); + + elm_radio_group_add(radio1, group_radio); + elm_radio_state_value_set(radio1, 1); + elm_radio_value_set(group_radio, state_index); + evas_object_propagate_events_set(radio1, EINA_TRUE); + evas_object_show(radio1); + elm_object_part_content_set(ly1, "elm.swallow.second", radio1); + + Evas_Object *btn = elm_button_add(ly1); + Evas_Object *btn1 = elm_button_add(ly1); + elm_object_style_set(btn, "transparent"); + elm_object_style_set(btn1, "transparent"); + elm_object_part_content_set(ly1, "button1", btn); + elm_object_part_content_set(ly1, "button2", btn1); + + if (strcmp(title, GL_STR_SORT)) { + _gl_list_viewas_popup_cb_add(btn, btn1, ad); + } else { + _gl_list_sortby_popup_cb_add(btn, btn1, ad); + } + ad->popupinfo.popup = popup; + elm_object_part_content_set(ly,"list", ly1); + elm_object_content_set(popup, ly); + evas_object_show(popup); + evas_object_geometry_get(ad->maininfo.win, NULL, NULL, &w, &h); + Edje_Message_Int *msg = (Edje_Message_Int *)malloc(sizeof(Edje_Message_Int) + sizeof(int)); + GL_CHECK(msg); + if ((w == GL_STR_SCREEN_WIDTH_WVGA && h == GL_STR_SCREEN_HEIGHT_WVGA) || (w == GL_STR_SCREEN_HEIGHT_WVGA && h == GL_STR_SCREEN_WIDTH_WVGA)) { + msg->val = GL_POPUP_GENLIST_HEIGHT_WVGA; + edje_object_message_send(elm_layout_edje_get(ly) ,EDJE_MESSAGE_INT, 2, msg); + } else if ((w == GL_STR_SCREEN_WIDTH_QHD && h == GL_STR_SCREEN_HEIGHT_QHD) || (w == GL_STR_SCREEN_HEIGHT_QHD && h == GL_STR_SCREEN_WIDTH_QHD)) { + msg->val = GL_POPUP_GENLIST_HEIGHT_QHD; + edje_object_message_send(elm_layout_edje_get(ly), EDJE_MESSAGE_INT, 2, msg); + } else if ((w == GL_STR_SCREEN_WIDTH_HD && h == GL_STR_SCREEN_HEIGHT_HD) || (w == GL_STR_SCREEN_HEIGHT_HD && h == GL_STR_SCREEN_WIDTH_HD)) { + msg->val = GL_POPUP_GENLIST_HEIGHT_HD; + edje_object_message_send(elm_layout_edje_get(ly), EDJE_MESSAGE_INT, 2, msg); + } + free(msg); + eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, + eext_popup_back_cb, NULL); + evas_object_repeat_events_set(popup, EINA_FALSE); + gl_dbg("EXIT"); +} + +static void __gl_thumbs_edit_cancel_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg(""); + if (ad->popupinfo.popup) { + evas_object_del(ad->popupinfo.popup); + } + ad->popupinfo.popup = NULL; +} + +static void __gl_thumbs_edit_move_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg(""); + + if (ad->popupinfo.popup) { + evas_object_del(ad->popupinfo.popup); + } + ad->popupinfo.popup = NULL; + ad->albuminfo.file_mc_mode = GL_MC_MOVE; + if (ad->gridinfo.it) { + gl_item *gitem = NULL; + int cnt = _gl_data_selected_list_count(ad); + int i; + for (i = 0; i < cnt; i++) { + gitem = eina_list_nth(ad->selinfo.elist, i); + GL_CHECK(gitem); + GL_CHECK(gitem->album); + GL_CHECK(gitem->album->cluster); + if (!strcmp(ad->albuminfo.path, gitem->album->cluster->path)) { + _gl_popup_create_local(data, GL_POPUP_NOBUT, + GL_STR_ID_SAME_DESTINATION_ERROR_MSG); + return; + } + } + gl_move_copy_to_album(ad); + } +} + +static void __gl_thumbs_edit_create_album_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg(""); + + if (ad->popupinfo.popup) { + evas_object_del(ad->popupinfo.popup); + } + ad->popupinfo.popup = NULL; + ad->albuminfo.path = NULL; + ad->albuminfo.file_mc_mode = GL_MC_COPY; + if (_gl_thumbs_get_edit_mode(data) == GL_THUMBS_EDIT_COPY) { + ad->albuminfo.file_mc_mode = GL_MC_COPY; + } else if (_gl_thumbs_get_edit_mode(data) == GL_THUMBS_EDIT_MOVE) { + ad->albuminfo.file_mc_mode = GL_MC_MOVE; + } + _gl_albums_new_create_view(ad, gl_move_copy_to_album); + return; +} + +static void __gl_thumbs_edit_copy_cb(void *data, Evas_Object *obj, void *ei) +{ + GL_CHECK(data); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg(""); + + if (ad->popupinfo.popup) { + evas_object_del(ad->popupinfo.popup); + } + ad->popupinfo.popup = NULL; + ad->albuminfo.file_mc_mode = GL_MC_COPY; + if (ad->gridinfo.it) { + gl_move_copy_to_album(ad); + } +} + +static void __gl_popup_move_copy_sel_cb(void *data, Evas_Object *obj, void *ei) +{ + gl_dbg(""); + GL_CHECK(obj); + GL_CHECK(data); + gl_popup_menu_s *menu_d = evas_object_data_get(obj, GL_POPUP_OBJ_DATA_KEY); + GL_CHECK(menu_d); + GL_CHECK(menu_d->ad); + gl_appdata *ad = menu_d->ad; + GL_FREEIF(ad->albuminfo.path); + + Elm_Object_Item *it = (Elm_Object_Item *)ei; + Elm_Object_Item *it_f = NULL; + Elm_Object_Item *it_l = NULL; + bool flag = false; + + it_f = elm_genlist_first_item_get(obj); + it_l = elm_genlist_last_item_get(obj); + + if (it_f && it_l) { + if (elm_genlist_item_selected_get(it_l)) { + flag = true; + } + while (it_f != NULL && it_f != it_l && !flag) { + if (elm_genlist_item_selected_get(it_f)) { + flag = true; + break; + } + it_f = elm_genlist_item_next_get(it_f); + } + } + + if (flag) { + ad->gridinfo.it = it; + if (data) { + ad->albuminfo.path = strdup((char *)data); + } + if (_gl_thumbs_get_edit_mode(ad) == GL_THUMBS_EDIT_COPY) { + __gl_thumbs_edit_copy_cb(ad, NULL, NULL); + } else if (_gl_thumbs_get_edit_mode(ad) == GL_THUMBS_EDIT_MOVE) { + __gl_thumbs_edit_move_cb(ad, NULL, NULL); + } + return; + } +} + +static char *__gl_popup_menu_get_genlist_text(void *data, Evas_Object *obj, + const char *part) +{ + gl_dbg(""); + gl_cluster *album = (gl_cluster *)data; + char *label = NULL; + label = _gl_get_i18n_album_name(album->cluster); + + if (!strcmp(part, "elm.text")) { + char *str = NULL; + GL_CHECK_NULL(label); + str = _gl_str((char *)label); + if (str) + return strdup(str); + } + return NULL; +} + +Evas_Object *__gl_popup_menu_get_genlist_content(void *data, Evas_Object *obj, + const char *part) +{ + gl_cluster *album_item = (gl_cluster *)data; + Evas_Object *ic = elm_icon_add(obj); + + if (!strcmp(part, "elm.swallow.icon")) { + if (GL_STORE_T_MMC == album_item->cluster->type) { + GL_ICON_SET_FILE(ic, GL_ICON_MMC); + evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1); + } else { + GL_ICON_SET_FILE(ic, GL_ICON_FOLDER); + evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1); + } + } + return ic; +} + +void _gl_genlist_item_apend(void *data, Evas_Object *gl, Elm_Genlist_Item_Class *gic) +{ + GL_CHECK(gic); + GL_CHECK(gl); + GL_CHECK(data); + gl_popup_menu_s *menu_d = (gl_popup_menu_s *)data; + GL_CHECK(menu_d->ad); + gl_appdata *ad = menu_d->ad; + GL_CHECK(ad->maininfo.win); + int i = 0; + Eina_List *album_list = NULL; + int all_count = 0; + gl_cluster *album = NULL; + + evas_object_data_set(gl, GL_POPUP_OBJ_DATA_KEY, menu_d); + if (ad->albuminfo.elist && ad->albuminfo.elist->clist) { + album_list = ad->albuminfo.elist->clist; + all_count = eina_list_count(album_list); + } else { + gl_dbgE("cluster list is NULL"); + return; + } + + for (i = 0; i < all_count; i++) { + album = eina_list_nth(album_list, i); + GL_CHECK(album); + GL_CHECK(album->cluster); + GL_CHECK(album->cluster->display_name); + GL_CHECK(album->cluster->uuid); + + if (album->cluster->type == GL_STORE_T_MMC || + album->cluster->type == GL_STORE_T_PHONE) { + elm_genlist_item_append(gl, gic, (void *)album, + NULL, ELM_GENLIST_ITEM_NONE, + __gl_popup_move_copy_sel_cb, + album->cluster->path); + } + } +} + +int _gl_popup_create_copy_move(void *data, void *sel_cb, void *cb_data) +{ + GL_CHECK_VAL(cb_data, -1); + GL_CHECK_VAL(data, -1); + gl_dbg(""); + gl_appdata *ad = (gl_appdata *)data; + + Evas_Object *parent = ad->maininfo.win; + Evas_Object *popup = elm_popup_add(parent); + evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + if (_gl_thumbs_get_edit_mode(data) == GL_THUMBS_EDIT_COPY) { + _gl_ui_set_translate_part_str(popup, "title,text", GL_STR_ID_COPY); + } else if (_gl_thumbs_get_edit_mode(data) == GL_THUMBS_EDIT_MOVE) { + _gl_ui_set_translate_part_str(popup, "title,text", GL_STR_ID_MOVE); + } + evas_object_show(popup); + ad->popupinfo.popup = popup; + + Evas_Object *btn1 = elm_button_add(parent); + Evas_Object *btn2 = elm_button_add(parent); + elm_object_style_set(btn1, "default"); + elm_object_style_set(btn2, "default"); + evas_object_size_hint_weight_set(btn1, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_weight_set(btn2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(btn1, 1, 1); + evas_object_size_hint_align_set(btn2, 1, 1); + elm_object_part_content_set(popup, "button1", btn1); + elm_object_part_content_set(popup, "button2", btn2); + evas_object_smart_callback_add(btn1, "clicked", __gl_thumbs_edit_cancel_cb, ad); + evas_object_smart_callback_add(btn2, "clicked", __gl_thumbs_edit_create_album_cb, ad); + _gl_ui_set_translate_part_str(btn1, "default", GL_STR_ID_CANCEL); + _gl_ui_set_translate_part_str(btn2, "default", GL_STR_ID_NEW_ALBUM); + + gl_popup_menu_s *menu_d = NULL; + menu_d = (gl_popup_menu_s *)calloc(1, sizeof(gl_popup_menu_s)); + GL_CHECK_VAL(menu_d, -1); + menu_d->ad = ad; + Evas_Object *genlist = __gl_popup_add_genlist(menu_d, popup, "default", + __gl_popup_menu_get_genlist_text, __gl_popup_menu_get_genlist_content, + _gl_genlist_item_apend); + Evas_Object *ly = elm_layout_add(popup); + elm_layout_file_set(ly, GL_EDJ_FILE, "list_popup_swallow_ly"); + Evas_Object *ly1 = elm_layout_add(popup); + elm_layout_file_set(ly1, GL_EDJ_FILE, "list_popup_content_ly"); + elm_object_part_content_set(ly,"list", genlist); + elm_object_content_set(popup, ly); + int w,h; + evas_object_geometry_get(ad->maininfo.win, NULL, NULL, &w, &h); + Edje_Message_Int *msg = (Edje_Message_Int *)malloc(sizeof(Edje_Message_Int) + sizeof(int)); + GL_CHECK_VAL(msg, -1); + if ((w == GL_STR_SCREEN_WIDTH_WVGA && h == GL_STR_SCREEN_HEIGHT_WVGA) || (w == GL_STR_SCREEN_HEIGHT_WVGA && h == GL_STR_SCREEN_WIDTH_WVGA)) { + msg->val = GL_POPUP_GENLIST_HEIGHT_WVGA; + edje_object_message_send(elm_layout_edje_get(ly) ,EDJE_MESSAGE_INT, 2, msg); + } else if ((w == GL_STR_SCREEN_WIDTH_QHD && h == GL_STR_SCREEN_HEIGHT_QHD) || (w == GL_STR_SCREEN_HEIGHT_QHD && h == GL_STR_SCREEN_WIDTH_QHD)) { + msg->val = GL_POPUP_GENLIST_HEIGHT_QHD; + edje_object_message_send(elm_layout_edje_get(ly), EDJE_MESSAGE_INT, 2, msg); + } else if ((w == GL_STR_SCREEN_WIDTH_HD && h == GL_STR_SCREEN_HEIGHT_HD) || (w == GL_STR_SCREEN_HEIGHT_HD && h == GL_STR_SCREEN_WIDTH_HD)) { + msg->val = GL_POPUP_GENLIST_HEIGHT_HD; + edje_object_message_send(elm_layout_edje_get(ly), EDJE_MESSAGE_INT, 2, msg); + } + free(msg); + evas_object_show(genlist); + eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, + eext_popup_back_cb, NULL); + + return 0; +} diff --git a/src/widget/gl-progressbar.c b/src/widget/gl-progressbar.c new file mode 100644 index 0000000..94f53f6 --- /dev/null +++ b/src/widget/gl-progressbar.c @@ -0,0 +1,261 @@ +/* +* 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 "gallery.h" +#include "gl-progressbar.h" +#include "gl-ui-util.h" +#include "gl-util.h" +#include "gl-debug.h" +#include "gl-albums.h" +#include "gl-thumbs.h" +#include "gl-controlbar.h" +#include "gl-thread-util.h" +#include "gl-strings.h" +#include "gl-button.h" + +#define GL_ALBUMS_PBAR_BG_COLOR_VAL 48 +#define GL_WEB_DOWNLOAD_INVALID_ID 0//-2 +#define GL_PBAR_STATUS_LEN_MAX 128 +#define GL_PBAR_WIDTH_MIN_INC (576*elm_config_scale_get()) //(144x4) + +#define GL_PROGRESSBAR_STYLE_GALLERY_PROGRESS "gallery/list_progress" +#define GL_PROGRESSBAR_STYLE_PROGRESS "list_progress" +#define GL_PROGRESSBAR_STYLE_WHEEL "wheel" +#define GL_LABEL_STYLE_DEFAULT GL_CHECKBOX_STYLE_DEFAULT +#define GL_PROGRESSBAR_STYLE_PROCESS "list_process" +/* Font style for show text of downloading web album */ +#define GL_FONT_STYLE_ALBUM_S "" +#define GL_FONT_STYLE_ALBUM_E "" + +static void __gl_pb_cancel_thread_pbar_cb(void *data, Evas_Object *obj, void *ei) +{ + gl_dbg(""); + /* set cancel false value */ + gl_thread_set_cancel_state(data, GL_PB_CANCEL_BUTTON); + /* delete progressbar */ + gl_pb_del_pbar(data); +} + +static Eina_Bool __gl_pb_pbar_timer_cb(void *data) +{ + gl_dbg("Timeout, destroy progressbar and timer."); + gl_pb_del_pbar(data); + return ECORE_CALLBACK_CANCEL; +} + +#if 0 +/* We need to perform cancellation, not just delete popup */ +static inline void __gl_pb_ea_back_cb(void *data, Evas_Object *obj, void *ei) +{ + gl_dbg("Use customized callback"); + Evas_Object *btn_cancel = NULL; + btn_cancel = elm_object_part_content_get(obj, "button1"); + GL_CHECK(btn_cancel); + evas_object_smart_callback_call(btn_cancel, "clicked", NULL); +} +#endif + +int gl_pb_make_thread_pbar_wheel(void *data, Evas_Object *parent, char *title) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + Evas_Object *popup = NULL; + Evas_Object *progressbar = NULL; + + gl_pb_del_pbar(ad); + popup = elm_popup_add(parent); + + /*Delete the Popup if the Popup has a BACK event.*/ + eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, + __gl_pb_cancel_thread_pbar_cb, data); + Evas_Object *popupLayout = elm_layout_add(popup); + elm_layout_file_set(popupLayout, GL_EDJ_FILE, "popup_text_progressbar_view_layout"); + evas_object_size_hint_weight_set(popupLayout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(popupLayout); + + progressbar = elm_progressbar_add(popup); + elm_object_style_set(progressbar, GL_PROGRESSBAR_STYLE_WHEEL); + 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); + elm_progressbar_pulse(progressbar, EINA_TRUE); + evas_object_show(progressbar); + + if (title && (!strcmp(GL_STR_ID_MOVING, title) || !strcmp(GL_STR_ID_COPYING, title))) { + elm_object_part_content_set(popupLayout, "progressbar", progressbar); + } else { + elm_object_part_content_set(popupLayout, "progressbar_left", progressbar); + _gl_ui_set_translate_part_str(popupLayout, "elm.text.description", title); + } + elm_object_content_set(popup, popupLayout); + evas_object_show(popup); + + ad->pbarinfo.popup = popup; + ad->pbarinfo.pbar = progressbar; + ad->pbarinfo.finished_cnt = 0; + + + return 0; +} + +int gl_pb_refresh_thread_pbar(void *data, int cur_cnt, int total_cnt) +{ + GL_CHECK_VAL(data, -1); + char status_info[GL_POPUP_DESC_LEN_MAX] = { 0, }; + double percent = 0.0; + gl_appdata *ad = (gl_appdata *)data; + GL_CHECK_VAL(ad->pbarinfo.pbar, -1); + GL_CHECK_VAL(ad->pbarinfo.status_label, -1); + + snprintf(status_info, sizeof(status_info), + GL_FONT_STYLE_POP_S"%d/%d"GL_FONT_STYLE_POP_E, cur_cnt, + total_cnt); + /* Save medias count already operated */ + ad->pbarinfo.finished_cnt = cur_cnt; + elm_object_text_set(ad->pbarinfo.status_label, status_info); + evas_object_show(ad->pbarinfo.status_label); + + if (total_cnt != 0) { + percent = (double)cur_cnt / (double)total_cnt; + elm_progressbar_value_set(ad->pbarinfo.pbar, percent); + } + + return 0; +} + +/* Use timer to destroy progressbar */ +int gl_pb_add_pbar_timer(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + ad->pbarinfo.pbar_timer = ecore_timer_add(1.0f, __gl_pb_pbar_timer_cb, + data); + return 0; +} + +int gl_pb_del_pbar(void *data) +{ + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg("destroy progressbar"); + + if (ad->pbarinfo.popup) { + evas_object_del(ad->pbarinfo.popup); + ad->pbarinfo.popup = NULL; + ad->pbarinfo.pbar = NULL; + ad->pbarinfo.status_label = NULL; + ad->pbarinfo.finished_cnt = 0; + } + GL_IF_DEL_TIMER(ad->pbarinfo.pbar_timer); + return 0; +} + +Evas_Object *gl_pb_make_pbar(void *data, Evas_Object *parent, char *state) +{ + GL_CHECK_NULL(data); + gl_appdata *ad = (gl_appdata *)data; + gl_dbg("Make progressbar, state:%s", state); + char label_str[GL_POPUP_DESC_LEN_MAX] = { 0, }; + + if (ad->pbarinfo.popup) { + if (ad->pbarinfo.pbar_timer) { + gl_dbg("Del pbar timer in update case!"); + ecore_timer_del(ad->pbarinfo.pbar_timer); + ad->pbarinfo.pbar_timer = NULL; + } + gl_dbg("Progressbar already created, update its label."); + snprintf(label_str, sizeof(label_str), + GL_FONT_STYLE_POP_S"%s"GL_FONT_STYLE_POP_E, state); + elm_object_text_set(ad->pbarinfo.status_label, label_str); + return ad->pbarinfo.popup; + } + gl_pb_del_pbar(ad); + Evas_Object *popup = NULL; + Evas_Object *progressbar = NULL; + Evas_Object *layout = NULL; + Evas_Object *label = NULL; + + popup = elm_popup_add(parent); + + /*Delete the Popup if the Popup has a BACK event.*/ + eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, eext_popup_back_cb, + NULL); + + elm_object_style_set(popup, "content_no_vhpad"); + + label = elm_label_add(popup); + elm_object_style_set(label, "popup/default"); + snprintf(label_str, sizeof(label_str), + GL_FONT_STYLE_POP_S"%s"GL_FONT_STYLE_POP_E, state); + elm_object_text_set(label, label_str); + /** + * width got from evas_object_geometry_get equals 0 + * Text couldn't be showed, comment 3 lines codes below + */ + /*Evas_Coord width = 0; + evas_object_geometry_get(popup, NULL, NULL, &width, NULL); + elm_label_wrap_width_set(label, (int)(width * 0.5));*/ + elm_label_line_wrap_set(label, ELM_WRAP_MIXED); + evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, 0.0); + evas_object_show(label); + + layout = elm_layout_add(popup); + elm_layout_file_set(layout, GL_EDJ_FILE, "popup_processing"); + evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + + progressbar = elm_progressbar_add(popup); + elm_object_style_set(progressbar, GL_PROGRESSBAR_STYLE_PROCESS); + elm_progressbar_horizontal_set(progressbar, EINA_TRUE); + elm_progressbar_unit_format_set(progressbar, NULL); + elm_progressbar_pulse(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); + + ad->pbarinfo.popup = popup; + ad->pbarinfo.pbar = progressbar; + ad->pbarinfo.status_label = label; + return popup; +} + +Evas_Object *_gl_pb_make_place_pbar(Evas_Object *parent) +{ + GL_CHECK_NULL(parent); + gl_dbg(""); + + Evas_Object *progressbar = NULL; + progressbar = elm_progressbar_add(parent); + elm_object_style_set(progressbar, GL_PROGRESSBAR_STYLE_PROCESS); + elm_progressbar_unit_format_set(progressbar, NULL); + elm_progressbar_pulse(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); + return progressbar; +} + diff --git a/src/widget/gl-rotate-bg.c b/src/widget/gl-rotate-bg.c new file mode 100644 index 0000000..2a9fc0d --- /dev/null +++ b/src/widget/gl-rotate-bg.c @@ -0,0 +1,445 @@ +/* +* 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. +* +*/ + +#ifdef _USE_ROTATE_BG + +#include "gl-rotate-bg.h" +#include "gl-exif.h" +#include "gl-debug.h" +#include "gl-icons.h" + +#define GL_ROTATE_BG_DATA_KEY "gl_bg_data" +#define GL_ROTATE_BG_GROUP "gl_bg_layout" + +typedef struct _gl_bg { + Evas_Object *base; + Evas_Object *img; + char *file; + bool b_preload; + void *user_data; +} gl_bg; + +static int __gl_rotate_bg_image_rotate_180(Evas_Object *obj) +{ + GL_CHECK_VAL(obj, -1); + unsigned int *data = NULL; + unsigned int *data2 = NULL; + unsigned int *to = NULL; + unsigned int *from = NULL; + int x = 0; + int hw = 0; + int iw = 0; + int ih = 0; + + evas_object_image_size_get(obj, &iw, &ih); + int size = iw * ih * sizeof(unsigned int); + + /* EINA_FALSE for reading */ + data = evas_object_image_data_get(obj, EINA_FALSE); + /* memcpy */ + data2 = calloc(1, size); + GL_CHECK_VAL(data2, -1); + memcpy(data2, data, size); + + data = evas_object_image_data_get(obj, EINA_TRUE); + + hw = iw * ih; + x = hw; + to = data; + from = data2 + hw - 1; + for (; --x >= 0;) { + *to = *from; + to++; + from--; + } + + + GL_FREE(data2); + + evas_object_image_data_set(obj, data); + evas_object_image_data_update_add(obj, 0, 0, iw, ih); + return 0; +} + +static int __gl_rotate_bg_image_rotate_90(Evas_Object *obj) +{ + GL_CHECK_VAL(obj, -1); + unsigned int *data = NULL; + unsigned int *data2 = NULL; + unsigned int *to = NULL; + unsigned int *from = NULL; + int x = 0; + int y = 0; + int w = 0; + int hw = 0; + int iw = 0; + int ih = 0; + + evas_object_image_size_get(obj, &iw, &ih); + int size = iw * ih * sizeof(unsigned int); + + /* EINA_FALSE for reading */ + data = evas_object_image_data_get(obj, EINA_FALSE); + /* memcpy */ + data2 = calloc(1, size); + GL_CHECK_VAL(data2, -1); + memcpy(data2, data, size); + + /* set width, height */ + w = ih; + ih = iw; + iw = w; + hw = w * ih; + + /* set width, height to image obj */ + evas_object_image_size_set(obj, iw, ih); + data = evas_object_image_data_get(obj, EINA_TRUE); + to = data + w - 1; + hw = -hw - 1; + from = data2; + + for (x = iw; --x >= 0;) { + for (y = ih; --y >= 0;) { + *to = *from; + from++; + to += w; + } + + to += hw; + } + + GL_FREE(data2); + + evas_object_image_data_set(obj, data); + evas_object_image_data_update_add(obj, 0, 0, iw, ih); + return 0; +} + +static int __gl_rotate_bg_image_rotate_270(Evas_Object *obj) +{ + GL_CHECK_VAL(obj, -1); + unsigned int *data = NULL; + unsigned int *data2 = NULL; + unsigned int *to = NULL; + unsigned int *from = NULL; + int x = 0; + int y = 0; + int w = 0; + int hw = 0; + int iw = 0; + int ih = 0; + + evas_object_image_size_get(obj, &iw, &ih); + int size = iw * ih * sizeof(unsigned int); + + /* EINA_FALSE for reading */ + data = evas_object_image_data_get(obj, EINA_FALSE); + /* memcpy */ + data2 = calloc(1, size); + GL_CHECK_VAL(data2, -1); + memcpy(data2, data, size); + + /* set width, height */ + w = ih; + ih = iw; + iw = w; + hw = w * ih; + + /* set width, height to image obj */ + evas_object_image_size_set(obj, iw, ih); + data = evas_object_image_data_get(obj, EINA_TRUE); + + to = data + hw - w; + w = -w; + hw = hw + 1; + from = data2; + + for (x = iw; --x >= 0;) { + for (y = ih; --y >= 0;) { + *to = *from; + from++; + to += w; + } + + to += hw; + } + + GL_FREE(data2); + + evas_object_image_data_set(obj, data); + evas_object_image_data_update_add(obj, 0, 0, iw, ih); + return 0; +} + +/* check its orientation */ +int __gl_rotate_bg_rotate_image(Evas_Object *obj, unsigned int orient) +{ + switch (orient) { + case GL_ORIENTATION_ROT_90: + __gl_rotate_bg_image_rotate_90(obj); + break; + case GL_ORIENTATION_ROT_180: + __gl_rotate_bg_image_rotate_180(obj); + break; + case GL_ORIENTATION_ROT_270: + __gl_rotate_bg_image_rotate_270(obj); + break; + default: + break; + } + + return 0; +} + +static void __gl_rotate_bg_delete_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + if (data) { + gl_bg *bg_data = (gl_bg *)data; + GL_FREEIF(bg_data->file); + GL_FREE(data); + } +} + +static void __gl_rotate_bg_custom_resize(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + GL_CHECK(data); + gl_bg *bg_data = (gl_bg *)data; + Evas_Coord bx = 0; + Evas_Coord by = 0; + Evas_Coord bw = 0; + Evas_Coord bh = 0; + Evas_Coord iw = 0; + Evas_Coord ih = 0; + Evas_Coord fx = 0; + Evas_Coord fy = 0; + Evas_Coord fw = 0; + Evas_Coord fh = 0; + Evas_Coord nx = 0; + Evas_Coord ny = 0; + Evas_Coord nw = 0; + Evas_Coord nh = 0; + + if ((!bg_data->img) || (!bg_data->base)) { + gl_dbgE("Invalid object!"); + return; + } + /* grab image size */ + evas_object_image_size_get(bg_data->img, &iw, &ih); + if ((iw < 1) || (ih < 1)) { + gl_dbgE("(iw < 1) || (ih < 1)!"); + return; + } + + /* grab base object dimensions */ + evas_object_geometry_get(bg_data->base, &bx, &by, &bw, &bh); + + /* set some defaults */ + nx = bx; + ny = by; + nw = bw; + nh = bh; + + + fw = bw; + fh = ((ih * fw) / iw); + if (fh < bh) { + fh = bh; + fw = ((iw * fh) / ih); + } + fx = ((bw - fw) / 2); + fy = ((bh - fh) / 2); + + evas_object_move(bg_data->img, nx, ny); + evas_object_resize(bg_data->img, nw, nh); + evas_object_image_fill_set(bg_data->img, fx, fy, fw, fh); +} + +Evas_Object *_gl_rotate_bg_add_layout(Evas_Object *parent, const char *file, const char *group) +{ + Evas_Object *eo = NULL; + int r = 0; + + eo = elm_layout_add(parent); + if (eo) { + r = elm_layout_file_set(eo, file, group); + if (!r) { + evas_object_del(eo); + return NULL; + } + + evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(eo, EVAS_HINT_FILL, EVAS_HINT_FILL); + } + + return eo; +} + +Evas_Object *_gl_rotate_bg_add(Evas_Object *parent, bool b_preload) +{ + GL_CHECK_NULL(parent); + + gl_bg *bg_data = (gl_bg *)calloc(1, sizeof(gl_bg)); + GL_CHECK_NULL(bg_data); + + Evas_Object *base = NULL; + base = _gl_rotate_bg_add_layout(parent, GL_EDJ_FILE, + GL_ROTATE_BG_GROUP); + if (base == NULL) { + GL_FREE(bg_data); + return NULL; + } + + bg_data->base= base; + bg_data->b_preload = b_preload; + if (!b_preload) + evas_object_event_callback_add(base, EVAS_CALLBACK_RESIZE, + __gl_rotate_bg_custom_resize, + bg_data); + evas_object_event_callback_add(base, EVAS_CALLBACK_DEL, + __gl_rotate_bg_delete_cb, bg_data); + + evas_object_data_set(base, GL_ROTATE_BG_DATA_KEY, bg_data); + return base; +} + +int _gl_rotate_bg_set_data(Evas_Object *bg, void *data) +{ + GL_CHECK_VAL(bg, -1); + + gl_bg *bg_data = evas_object_data_get(bg, GL_ROTATE_BG_DATA_KEY); + GL_CHECK_VAL(bg_data, -1); + bg_data->user_data = data; + return 0; +} + +int _gl_rotate_bg_get_data(Evas_Object *bg, void **data) +{ + GL_CHECK_VAL(data, -1); + GL_CHECK_VAL(bg, -1); + + gl_bg *bg_data = evas_object_data_get(bg, GL_ROTATE_BG_DATA_KEY); + GL_CHECK_VAL(bg_data, -1); + *data = bg_data->user_data; + return 0; +} + +int _gl_rotate_bg_set_file(Evas_Object *bg, const char *file, int w, int h) +{ + GL_CHECK_VAL(file, -1); + GL_CHECK_VAL(bg, -1); + + gl_bg *bg_data = evas_object_data_get(bg, GL_ROTATE_BG_DATA_KEY); + GL_CHECK_VAL(bg_data, -1); + + Evas_Object *image_obj = NULL; + if (!bg_data->b_preload) { + image_obj = evas_object_image_add(evas_object_evas_get(bg)); + evas_object_repeat_events_set(image_obj, EINA_TRUE); + bg_data->img = image_obj; + bg_data->file = strdup(file); + elm_object_part_content_set(bg, "elm.swallow.image", image_obj); + evas_object_image_load_size_set(image_obj, w, h); + evas_object_image_file_set(image_obj, file, NULL); + evas_object_image_preload(image_obj, EINA_TRUE); + } else { + image_obj = elm_image_add(bg); + evas_object_repeat_events_set(image_obj, EINA_TRUE); + bg_data->img = image_obj; + bg_data->file = strdup(file); + elm_object_part_content_set(bg, "elm.swallow.image", image_obj); + elm_image_fill_outside_set(image_obj, EINA_TRUE); + elm_image_file_set(image_obj, file, NULL); + elm_image_preload_disabled_set(image_obj, EINA_FALSE); + elm_image_smooth_set(image_obj, EINA_FALSE); + } + return 0; +} + +int _gl_rotate_bg_get_file(Evas_Object *bg, char **file) +{ + GL_CHECK_VAL(file, -1); + GL_CHECK_VAL(bg, -1); + + gl_bg *bg_data = evas_object_data_get(bg, GL_ROTATE_BG_DATA_KEY); + GL_CHECK_VAL(bg_data, -1); + *file = bg_data->file; + return 0; +} + +int _gl_rotate_bg_rotate_image(Evas_Object *bg, unsigned int orient) +{ + GL_CHECK_VAL(bg, -1); + + gl_bg *bg_data = evas_object_data_get(bg, GL_ROTATE_BG_DATA_KEY); + GL_CHECK_VAL(bg_data, -1); + + if (bg_data->file && g_strcmp0(bg_data->file, GL_ICON_NO_THUMBNAIL) && + g_strcmp0(bg_data->file, GL_ICON_CONTENTS_BROKEN)) + __gl_rotate_bg_rotate_image(bg_data->img, orient); + else + __gl_rotate_bg_rotate_image(bg_data->img, GL_ORIENTATION_ROT_0); + if (!bg_data->b_preload) + __gl_rotate_bg_custom_resize(bg_data, NULL, NULL, NULL); + return 0; +} + +int _gl_rotate_bg_add_image(Evas_Object *bg, int w, int h) +{ + GL_CHECK_VAL(bg, -1); + + gl_bg *bg_data = evas_object_data_get(bg, GL_ROTATE_BG_DATA_KEY); + GL_CHECK_VAL(bg_data, -1); + + Evas_Object *image_obj = NULL; + if (!bg_data->b_preload) { + image_obj = evas_object_image_add(evas_object_evas_get(bg)); + evas_object_repeat_events_set(image_obj, EINA_TRUE); + bg_data->img = image_obj; + elm_object_part_content_set(bg, "elm.swallow.image", image_obj); + evas_object_image_load_size_set(image_obj, w, h); + } else { + image_obj = elm_image_add(bg); + evas_object_repeat_events_set(image_obj, EINA_TRUE); + bg_data->img = image_obj; + elm_object_part_content_set(bg, "elm.swallow.image", image_obj); + } + return 0; +} + +int _gl_rotate_bg_set_image_file(Evas_Object *bg, const char *file) +{ + GL_CHECK_VAL(bg, -1); + + gl_bg *bg_data = evas_object_data_get(bg, GL_ROTATE_BG_DATA_KEY); + GL_CHECK_VAL(bg_data, -1); + GL_CHECK_VAL(bg_data->img, -1); + + if (!bg_data->b_preload) { + evas_object_image_file_set(bg_data->img, file, NULL); + evas_object_image_preload(bg_data->img, EINA_FALSE); + __gl_rotate_bg_custom_resize(bg_data, NULL, NULL, NULL); + } else { + elm_image_fill_outside_set(bg_data->img, EINA_TRUE); + elm_image_file_set(bg_data->img, file, NULL); + elm_image_preload_disabled_set(bg_data->img, EINA_FALSE); + elm_image_smooth_set(bg_data->img, EINA_FALSE); + } + + return 0; +} + +#endif diff --git a/src/widget/gl-thumb.c b/src/widget/gl-thumb.c new file mode 100644 index 0000000..945db20 --- /dev/null +++ b/src/widget/gl-thumb.c @@ -0,0 +1,549 @@ +/* +* 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 "gl-debug.h" +#include "gl-thumb.h" +#include "gl-util.h" +#include "gl-pinchzoom.h" +#include "gl-strings.h" +#include "gl-icons.h" +#ifdef _USE_ROTATE_BG +#include "gl-rotate-bg.h" +#include "gl-exif.h" +#endif +#include "gl-gesture.h" + +/* Size of thumbnails in gridview */ +#define GL_GRID_W 180 +#define GL_GRID_H 133 + +#define GL_GRID_W_ZOOM_03 240 +#define GL_GRID_H_ZOOM_03 178 + +#define GL_GRID_W_ZOOM_02 360 +#define GL_GRID_H_ZOOM_02 267 + +#define GL_GRID_5_PER_ROW 5 +#define GL_GRID_8_PER_ROW 8 +#define GL_GRID_4_PER_ROW 4 +#define GL_GRID_3_PER_ROW 3 +#define GL_GRID_2_PER_ROW 2 + +#define GL_GRID_6_PER_ROW 6 +#define GL_GRID_7_PER_ROW 7 +#define GL_GRID_10_PER_ROW 10 + +#define GL_GRID_L_W GL_GRID_W_ZOOM_02 +#define GL_GRID_L_H GL_GRID_H_ZOOM_02 + +#define GL_GRID_ITEM_L_CNT 6 +#define GL_GRID_ITEM_ZOOM_02_CNT 8 +#define GL_GRID_ITEM_ZOOM_03_CNT 18 + +#define GL_PHOTOFRAME_VIDEO "video" +#define GL_PHOTOFRAME_VIDEO2 "video2" +#define GL_PHOTOFRAME_VIDEO3 "video3" +#define GL_PHOTOFRAME_DEFAULT "layout" +#define GL_PHOTOFRAME_DEFAULT2 "layout2" +#define GL_PHOTOFRAME_DEFAULT3 "layout3" +#define GL_PHOTOFRAME_BURSTSHOT "burstshot" +#define GL_PHOTOFRAME_BURSTSHOT1 "burstshot1" +#define GL_PHOTOFRAME_BURSTSHOT2 "burstshot2" + +static Evas_Object *__gl_thumb_add_image(Evas_Object *parent, char *path, + unsigned int orient, int w, int h) +{ + GL_CHECK_NULL(parent); + +#ifdef _USE_ROTATE_BG + Evas_Object *bg = _gl_rotate_bg_add(parent, true); +#else + Evas_Object *bg = elm_bg_add(parent); +#endif + if (bg == NULL) + return NULL; + +#ifdef _USE_ROTATE_BG + _gl_rotate_bg_set_file(bg, path, w, h); + _gl_rotate_bg_rotate_image(bg, orient); +#else + elm_bg_file_set(bg, path, NULL); + elm_bg_load_size_set(bg, w, h); + evas_object_size_hint_max_set(bg, w, h); + evas_object_size_hint_aspect_set(bg, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1); + 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); +#endif + return bg; +} + +Evas_Object *_gl_thumb_show_image(Evas_Object *obj, char *path, int orient, + int w, int h, int zoom_level) +{ + GL_CHECK_NULL(obj); + + Evas_Object *layout = elm_layout_add(obj); + GL_CHECK_NULL(layout); + + Evas_Object *bg = __gl_thumb_add_image(layout, path, orient, w, h); + if (bg == NULL) { + evas_object_del(layout); + return NULL; + } + + char *bs_style = GL_PHOTOFRAME_DEFAULT; + if (zoom_level == GL_ZOOM_IN_ONE) + bs_style = GL_PHOTOFRAME_DEFAULT2; + else if (zoom_level == GL_ZOOM_IN_TWO) + bs_style = GL_PHOTOFRAME_DEFAULT3; + elm_layout_theme_set(layout, GL_CLASS_GENGRID, GL_GRP_PHOTOFRAME, + bs_style); + elm_object_part_content_set(layout, "elm.swallow.icon", bg); + + evas_object_show(layout); + + return layout; +} + +Evas_Object *_gl_thumb_show_burstshot(Evas_Object *obj, char *path1, + char *path2, char *path3, + unsigned int orient, int w, int h, + int zoom_level) +{ + GL_CHECK_NULL(obj); + Evas_Object *bg = NULL; + char *part = NULL; + char *path = NULL; + int i = 0; + + Evas_Object *layout = elm_layout_add(obj); + GL_CHECK_NULL(layout); + const char *bs_style = GL_PHOTOFRAME_BURSTSHOT; + if (zoom_level == GL_ZOOM_IN_ONE) + bs_style = GL_PHOTOFRAME_BURSTSHOT1; + else if (zoom_level == GL_ZOOM_IN_TWO) + bs_style = GL_PHOTOFRAME_BURSTSHOT2; + elm_layout_theme_set(layout, GL_CLASS_GENGRID, GL_GRP_PHOTOFRAME, + bs_style); + + /* Add bg for burstshot mode */ + for (i = 0; i < 3; i++) { + switch (i) { + case 0: + part = "elm.swallow.icon1"; + path = path1; + break; + case 1: + part = "elm.swallow.icon2"; + path = path2; + break; + case 2: + part = "elm.swallow.icon3"; + path = path3; + break; + } + + bg = __gl_thumb_add_image(layout, path, orient, w, h); + if (bg == NULL) { + evas_object_del(layout); + return NULL; + } + elm_object_part_content_set(layout, part, bg); + } + evas_object_show(layout); + return layout; +} + +Evas_Object *_gl_thumb_show_video(Evas_Object *obj, char *path, + unsigned int v_dur, int w, int h, + int zoom_level) +{ + GL_CHECK_NULL(obj); + + Evas_Object *layout = elm_layout_add(obj); + GL_CHECK_NULL(layout); + +#ifdef _USE_ROTATE_BG + Evas_Object *bg = _gl_rotate_bg_add(layout, true); +#else + Evas_Object *bg = elm_bg_add(layout); +#endif + if (bg == NULL) { + evas_object_del(layout); + return NULL; + } + +#ifdef _USE_ROTATE_BG + _gl_rotate_bg_set_file(bg, path, w, h); + _gl_rotate_bg_rotate_image(bg, GL_ORIENTATION_ROT_0); +#else + elm_bg_file_set(bg, path, NULL); + elm_bg_load_size_set(bg, w, h); + evas_object_size_hint_max_set(bg, w, h); + evas_object_size_hint_aspect_set(bg, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1); + 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); +#endif + + char *bs_style = GL_PHOTOFRAME_VIDEO; + if (zoom_level == GL_ZOOM_IN_ONE) + bs_style = GL_PHOTOFRAME_VIDEO2; + else if (zoom_level == GL_ZOOM_IN_TWO) + bs_style = GL_PHOTOFRAME_VIDEO3; + elm_layout_theme_set(layout, GL_CLASS_GENGRID, GL_GRP_PHOTOFRAME, + bs_style); + elm_object_part_content_set(layout, "elm.swallow.icon", bg); + + char *dur_str = _gl_get_duration_string(v_dur); + GL_CHECK_NULL(dur_str); + elm_object_part_text_set(layout, GL_GRID_TEXT, dur_str); + GL_FREE(dur_str); + + evas_object_show(layout); + return layout; +} + +Evas_Object *_gl_thumb_show_checkbox(Evas_Object *obj, bool checked, + Evas_Smart_Cb func, const void *data) +{ + GL_CHECK_NULL(func); + GL_CHECK_NULL(obj); + Evas_Object *ck = NULL; + + ck = elm_check_add(obj); + GL_CHECK_NULL(ck); + +#ifdef _USE_GRID_CHECK + elm_object_style_set(ck, "grid"); +#else + elm_object_style_set(ck, GL_CHECKBOX_STYLE_THUMB); +#endif + evas_object_propagate_events_set(ck, EINA_FALSE); + + elm_check_state_set(ck, checked); + + evas_object_smart_callback_add(ck, "changed", func, data); + + evas_object_show(ck); + return ck; +} + +Evas_Object *_gl_thumb_show_mode(Evas_Object *obj, gl_cm_mode_e mode) +{ + Evas_Object *icon = NULL; + const char *file = NULL; + + switch (mode) { + case GL_CM_MODE_PANORAMA: + file = GL_ICON_PANORAMA; + break; + case GL_CM_MODE_BURSTSHOT: + file = GL_ICON_BURSTSHOT; + break; + case GL_CM_MODE_SOUND: + file = GL_ICON_SOUND_SHOT; + break; + case GL_CM_MODE_ANIMATE: + file = GL_ICON_SOUND_SHOT; + break; + case GL_CM_MODE_BEST: + file = GL_ICON_SOUND_SHOT; + break; + default: + break; + } + + if (file) { + GL_CHECK_NULL(obj); + icon = elm_icon_add(obj); + GL_CHECK_NULL(icon); + GL_ICON_SET_FILE(icon, file); + evas_object_show(icon); + } + return icon; +} + +Evas_Object *_gl_thumb_add_gengrid(Evas_Object *parent) +{ + GL_CHECK_NULL(parent); + Evas_Object *grid = elm_gengrid_add(parent); + GL_CHECK_NULL(grid); + +#ifdef _USE_CUSTOMIZED_GENGRID_STYLE + elm_object_style_set(grid, GL_GENGRID_STYLE_GALLERY); +#endif +#ifdef _USE_SCROL_HORIZONRAL + elm_gengrid_align_set(grid, 0.5, 0.5); + elm_gengrid_horizontal_set(grid, EINA_TRUE); + elm_scroller_bounce_set(grid, EINA_TRUE, EINA_FALSE); +#else + elm_gengrid_align_set(grid, 0.0, 0.0); + elm_gengrid_horizontal_set(grid, EINA_FALSE); + elm_scroller_bounce_set(grid, EINA_FALSE, EINA_TRUE); +#endif + elm_scroller_policy_set(grid, ELM_SCROLLER_POLICY_OFF, + ELM_SCROLLER_POLICY_AUTO); + elm_gengrid_multi_select_set(grid, EINA_TRUE); + evas_object_size_hint_weight_set(grid, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + return grid; +} + +/* Update all gengrid item, class callback would be called again */ +int _gl_thumb_update_gengrid(Evas_Object *view) +{ + GL_CHECK_VAL(view, -1); + + Elm_Object_Item *_first_it = NULL; + _first_it = elm_gengrid_first_item_get(view); + while (_first_it) { + elm_gengrid_item_update(_first_it); + _first_it = elm_gengrid_item_next_get(_first_it); + } + + return 0; +} + +#ifdef _USE_SCROL_HORIZONRAL +/* Change icon size and gengrid alignment */ +int _gl_thumb_set_size(void *data, Evas_Object *view, int *size_w, int *size_h) +{ + GL_CHECK_VAL(view, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + int rotate_mode = ad->maininfo.rotate_mode; + int _w = 0; + int _h = 0; + int _w_l = 0; + int _h_l = 0; + int align_c = 0; + int count = elm_gengrid_items_count(view); + int win_w = 0; + int win_h = 0; + double scale = _gl_get_win_factor(ad->maininfo.win, &win_w, &win_h); + gl_dbg("rotate_mode: %d, zoom level: %d", rotate_mode, + ad->pinchinfo.zoom_level); + + _w_l = (int)(GL_GRID_L_W * scale); + _h_l = (int)(GL_GRID_L_H * scale); + + if (ad->pinchinfo.zoom_level == GL_ZOOM_IN_TWO) { + _w = (int)(win_w / GL_GRID_3_PER_ROW); + _h = (int)(GL_GRID_H_ZOOM_02 * scale); + align_c = GL_GRID_ITEM_ZOOM_02_CNT; + } else if (ad->pinchinfo.zoom_level == GL_ZOOM_IN_ONE) { + GL_THUMB_SIZE: + _w = (int)(win_w / GL_GRID_4_PER_ROW); + _h = (int)(GL_GRID_H_ZOOM_03 * scale); + align_c = GL_GRID_ITEM_ZOOM_03_CNT; + } else if (ad->pinchinfo.zoom_level == GL_ZOOM_DEFAULT) { + _w = (int)(win_w / GL_GRID_8_PER_ROW); + _h = (int)(GL_GRID_H * scale); + } else { + /* Set size same as ZOOM_IN_TWO except zoom_in_one and default level */ + goto GL_THUMB_SIZE; + } + + if ((rotate_mode == APP_DEVICE_ORIENTATION_270) || + (rotate_mode == APP_DEVICE_ORIENTATION_90)) { + align_c = GL_GRID_ITEM_L_CNT; + elm_gengrid_item_size_set(view, _w_l, _h_l); + if (size_w) + *size_w = _w_l-4; + if (size_h) + *size_h = _h_l-4; + } else { + elm_gengrid_item_size_set(view, _w, _h); + if (size_w) + *size_w = _w-4; + if (size_h) + *size_h = _h-4; + } + if (count <= align_c) + elm_gengrid_align_set(view, 0.5, 0.5); + else + elm_gengrid_align_set(view, 0.0, 0.5); + if (size_w && size_h) + gl_dbg("P: %dx%d, size_w: %d,size_h: %d", _w, _h, *size_w, *size_h); + return 0; +} +#else +/* Change icon size and gengrid alignment */ +int _gl_thumb_set_size(void *data, Evas_Object *view, int *size_w, int *size_h) +{ + GL_CHECK_VAL(view, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + int rotate_mode = ad->maininfo.rotate_mode; + int _w = 0; + int _h = 0; + int _w_l = 0; + int _h_l = 0; + int win_w = 0; + int win_h = 0; + double scale = _gl_get_win_factor(ad->maininfo.win, &win_w, &win_h); + + if (gl_get_view_mode(ad) == GL_VIEW_THUMBS_EDIT) { + ad->pinchinfo.zoom_level = GL_ZOOM_IN_ONE; + } + gl_dbg("rotate_mode: %d, zoom level: %d", rotate_mode, + ad->pinchinfo.zoom_level); + + if (ad->pinchinfo.zoom_level == GL_ZOOM_IN_TWO) { + _w = (int)(win_w / GL_GRID_3_PER_ROW); + _w_l = (int)(win_h / GL_GRID_6_PER_ROW); + } else if (ad->pinchinfo.zoom_level == GL_ZOOM_IN_ONE) { + GL_THUMB_SIZE: + _w = (int)(win_w / GL_GRID_4_PER_ROW); + _w_l = (int)(win_h / GL_GRID_7_PER_ROW); + } else if (ad->pinchinfo.zoom_level == GL_ZOOM_DEFAULT) { + _w = (int)(win_w / GL_GRID_8_PER_ROW); + _w_l = (int)(win_h / GL_GRID_10_PER_ROW); + } else { + /* Set size same as ZOOM_IN_TWO except zoom_in_one and default level */ + goto GL_THUMB_SIZE; + } + + _h_l = _w_l; + _h = _w; + if ((rotate_mode == APP_DEVICE_ORIENTATION_270) || + (rotate_mode == APP_DEVICE_ORIENTATION_90)) { + elm_gengrid_item_size_set(view, _w_l, _h_l); + if (size_w) + *size_w = _w_l-4; + if (size_h) + *size_h = _h_l-4; + } else { + elm_gengrid_item_size_set(view, _w, _h); + if (size_w) + *size_w = _w-4; + if (size_h) + *size_h = _h-4; + } + /*if (elm_gengrid_items_count(view) <= align_c) + elm_gengrid_align_set(view, 0.5, 0.5); + else + elm_gengrid_align_set(view, 0.0, 0.0);*/ + if (size_w && size_h) + gl_dbg("P: %dx%d, size_w: %d,size_h: %d", _w, _h, *size_w, *size_h); + return 0; +} +#endif + +int _gl_thumb_split_set_size(void *data, Evas_Object *view) +{ + GL_CHECK_VAL(view, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + int rotate_mode = ad->maininfo.rotate_mode; + int _w = 0; + int _h = 0; + int _w_l = 0; + int _h_l = 0; + int win_w = 0; + int win_h = 0; + double scale = _gl_get_win_factor(ad->maininfo.win, &win_w, &win_h); + gl_dbg("rotate_mode: %d, zoom level: %d, scale : %f", rotate_mode, + ad->pinchinfo.zoom_level, scale); + + _w = (int)((2*win_w) / (3*GL_GRID_2_PER_ROW)); + _h = _w; + _w_l = (int)((win_h-win_w/3) / GL_GRID_5_PER_ROW); + _h_l = _w_l; + + if ((rotate_mode == APP_DEVICE_ORIENTATION_270) || + (rotate_mode == APP_DEVICE_ORIENTATION_90)) { + elm_gengrid_item_size_set(view, _w_l, _h_l); + } else { + elm_gengrid_item_size_set(view, _w, _h); + } + + return 0; +} + +/*Preappend date item*/ +bool _gl_thumb_insert_date(void *data, Evas_Object *parent) +{ + GL_CHECK_FALSE(data); + GL_CHECK_FALSE(parent); + gl_appdata *ad = (gl_appdata *)data; + bool b_remove = false; + + if (ad->pinchinfo.zoom_level != GL_ZOOM_DEFAULT) + b_remove = true; + + gl_item *gitem = NULL; + gl_item *pre_gitem = NULL; + gl_item *inserted_gitem = NULL; + bool b_insert = false; + Elm_Object_Item *elm_item = NULL; + Elm_Object_Item *next_elm_item = NULL; + Elm_Gengrid_Item_Class *dgic = &(ad->gridinfo.date_gic); + + elm_item = elm_gengrid_first_item_get(parent); + while (elm_item) { + next_elm_item = elm_gengrid_item_next_get(elm_item); + gitem = elm_object_item_data_get(elm_item); + if (gitem == NULL) { + gl_dbgE("Invalid data item!"); + continue; + } else if (b_remove) { /* Remove */ + if (elm_gengrid_item_item_class_get(elm_item) == dgic) { + gl_dbg("Remove date item %p", dgic); + gitem->preappend = false; + elm_object_item_del(elm_item); + } + goto GL_THUMB_NEXT; + } else if (pre_gitem == NULL) { /* Insert */ + b_insert = true; + } else if (gitem->elm_item && !gitem->preappend && + pre_gitem->item) { + struct tm t1; + struct tm t2; + int mth = 0; + int yth = 0; + localtime_r((time_t *)&(pre_gitem->item->mtime), + &t1); + mth = t1.tm_mon; + yth = t1.tm_year; + localtime_r((time_t *) &(gitem->item->mtime), &t2); + if (mth != t2.tm_mon || yth != t2.tm_year) + b_insert = true; + } + if (b_insert && gitem->elm_item && !gitem->preappend) { + elm_gengrid_item_insert_before(parent, dgic, + gitem, gitem->elm_item, + NULL, NULL); + gitem->preappend = true; + gitem->pre_gitem = gitem; + inserted_gitem = gitem; + } else if (inserted_gitem) { + gitem->pre_gitem = inserted_gitem; + } + + pre_gitem = gitem; + b_insert = false; + + GL_THUMB_NEXT: + + gitem->pre_gitem = NULL; + elm_item = next_elm_item; + } + + return true; +} + diff --git a/src/widget/gl-tile.c b/src/widget/gl-tile.c new file mode 100644 index 0000000..84c0a45 --- /dev/null +++ b/src/widget/gl-tile.c @@ -0,0 +1,555 @@ +/* +* 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 "gl-debug.h" +#include "gl-tile.h" +#include "gl-util.h" +#include "gl-button.h" +#include "gl-controlbar.h" +#include "gallery.h" +#include "gl-icons.h" +#ifdef _USE_ROTATE_BG +#include "gl-rotate-bg.h" +#endif +#include "gl-gesture.h" +#include "gl-strings.h" +#include "gl-timeline.h" + +/* Width and height of album item (4+331, 4+331) */ +#define GL_TILE_ITEM_WIDTH 360 +#define GL_TILE_ITEM_HEIGHT 354 +#define GL_TILE_ITEM_L_W 426 +#define GL_TILE_ITEM_L_H 426 +#define GL_TILE_2_PER_ROW 2 +#define GL_TILE_3_PER_ROW 3 +#define GL_TILE_ITEM_CNT 6 +#define GL_TILE_ITEM_CNT2 12 +#define GL_TILE_ITEM_L_CNT 3 +/* Items count of each column */ +#define GL_TILE_ITEM_C_CNT 3 +#define GL_TILE_ALIGN_LEFT 0.0f +#define GL_TILE_ALIGN_CON1 0.25f +#define GL_TILE_ALIGN_CON2 0.75f +#define GL_TILE_ALIGN_MID 0.5f +#define GL_TILE_ALIGN_BOT 1.0f +/* Size of album icon */ +#define GL_TILE_W (GL_TILE_ITEM_WIDTH-8) +#define GL_TILE_H (GL_TILE_ITEM_HEIGHT-8) + +#define GL_CHECKBOX_STYLE_ALBUM "gallery/album" +#define GL_CHECKBOX_STYLE_ALBUM_GRID "gallery/album/grid" + +static Evas_Object *__gl_tile_add_icon_bg(Evas_Object *obj, bg_file_set_cb func, + void *data) +{ + GL_CHECK_NULL(func); + GL_CHECK_NULL(obj); + Evas_Object *bg = NULL; + +#ifdef _USE_ROTATE_BG + bg = _gl_rotate_bg_add(obj, true); +#else + bg = elm_bg_add(obj); +#endif + GL_CHECK_NULL(bg); + + if (data) { + double scale = elm_config_scale_get(); + int wid = 0; + int hei = 0; + wid = (int)(GL_TILE_W * scale); + hei = (int)(GL_TILE_H * scale); +#ifdef _USE_ROTATE_BG + _gl_rotate_bg_add_image(bg, wid, hei); +#else + elm_bg_load_size_set(bg, wid, hei); +#endif + + func(bg, data); + } + + evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(bg, 0.5, 0.5); + evas_object_show(bg); + + return bg; +} + +static Eina_Bool __gl_tile_zoom_out_cb(Evas_Object *gesture, void *data) +{ + GL_CHECK_FALSE(data); + Evas_Object *parent = NULL; + Evas_Object *view = NULL; + gl_appdata *ad = (gl_appdata *)data; + int view_m = gl_get_view_mode(data); + gl_dbg("view_m: %d", view_m); + + if (view_m == GL_VIEW_TIMELINE) { + if ((ad->pinchinfo.zoom_level > GL_ZOOM_DEFAULT)) { + /* Skip in wrong mode */ + ad->pinchinfo.zoom_level--; + gl_dbg("Update time view size"); + _gl_timeline_update_grid_size(data); + } else { + gl_dbg("Already at max zoom level : %d", ad->pinchinfo.zoom_level); + } + return false; + } + if ((ad->maininfo.rotate_mode == APP_DEVICE_ORIENTATION_270) || + (ad->maininfo.rotate_mode == APP_DEVICE_ORIENTATION_90)) { + gl_dbg("Skip in landscape mode"); + /* Keep level if pinching zoom in in landscape mode */ + return false; + } + + parent = _gl_gesture_get_parent(gesture); + GL_CHECK_FALSE(parent); + view = elm_object_part_content_get(parent, "elm.swallow.view"); + GL_CHECK_CANCEL(view); + + /* Not a valid gengrid */ + if (elm_gengrid_items_count(view) <= 0) + return false; + + int level = (int)evas_object_data_get(view, GL_GESTURE_KEY_PINCH_LEVEL); + if (GL_ZOOM_NONE == level) + return false; + if (level >= GL_ZOOM_DEFAULT) { + level--; + evas_object_data_set(view, GL_GESTURE_KEY_PINCH_LEVEL, + (void *)level); + } + gl_dbg("level: %d", level); + /* Update item size */ + _gl_tile_update_item_size(data, view, true); + return false; +} + +static Eina_Bool __gl_tile_zoom_in_cb(Evas_Object *gesture, void *data) +{ + GL_CHECK_FALSE(data); + Evas_Object *parent = NULL; + Evas_Object *view = NULL; + gl_appdata *ad = (gl_appdata *)data; + int view_m = gl_get_view_mode(data); + gl_dbg("view_m: %d", view_m); + + if (view_m == GL_VIEW_TIMELINE) { + if ((ad->pinchinfo.zoom_level >= GL_ZOOM_DEFAULT) && + (ad->pinchinfo.zoom_level < (GL_ZOOM_MAX - 1))) { + /* Skip in wrong mode */ + ad->pinchinfo.zoom_level++; + gl_dbg("Update time view size"); + _gl_timeline_update_grid_size(data); + } else { + gl_dbg("Already at max zoom level : %d", ad->pinchinfo.zoom_level); + } + return false; + } + + if ((ad->maininfo.rotate_mode == APP_DEVICE_ORIENTATION_270) || + (ad->maininfo.rotate_mode == APP_DEVICE_ORIENTATION_90)) { + gl_dbg("Skip in landscape mode"); + /* Keep level if pinching zoom in in landscape mode */ + return false; + } + + parent = _gl_gesture_get_parent(gesture); + GL_CHECK_CANCEL(parent); + view = elm_object_part_content_get(parent, "elm.swallow.view"); + GL_CHECK_FALSE(view); + + /* Not a valid gengrid */ + if (elm_gengrid_items_count(view) <= 0) + return false; + + int level = (int)evas_object_data_get(view, GL_GESTURE_KEY_PINCH_LEVEL); + if (GL_ZOOM_DEFAULT == level) + return false; + if (level < GL_ZOOM_DEFAULT) { + level++; + evas_object_data_set(view, GL_GESTURE_KEY_PINCH_LEVEL, + (void *)level); + } + gl_dbg("level: %d", level); + /* Update item size */ + _gl_tile_update_item_size(data, view, true); + return false; +} + +static void __gl_title_grid_del_cb(void *data, Evas *e, Evas_Object *obj, + void *ei) +{ + gl_dbg("Delete grid ---"); + if (obj) { + evas_object_data_del(obj, GL_GESTURE_KEY_PINCH_LEVEL); + } + gl_dbg("Delete grid +++"); +} + +Evas_Object *_gl_tile_show_part_icon(Evas_Object *obj, const char *part, + bg_file_set_cb func, void *data) +{ + GL_CHECK_NULL(part); + GL_CHECK_NULL(strlen(part)); + GL_CHECK_NULL(obj); + + if (!g_strcmp0(part, GL_TILE_ICON)) { + Evas_Object *bg = NULL; + bg = __gl_tile_add_icon_bg(obj, func, data); + return bg; + } + return NULL; +} + +Evas_Object *_gl_tile_show_part_dim(Evas_Object *obj) +{ + GL_CHECK_NULL(obj); + + Evas *evas = evas_object_evas_get(obj); + GL_CHECK_NULL(evas); + Evas_Object *bg = NULL; + bg = evas_object_rectangle_add(evas); + GL_CHECK_NULL(bg); + + evas_object_color_set(bg, 220, 218, 211, 153); + 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); + evas_object_show(bg); + return bg; +} + +Evas_Object *_gl_tile_show_part_checkbox_grid(Evas_Object *obj, bool checked, + Evas_Smart_Cb func, + const void *data) +{ + GL_CHECK_NULL(func); + GL_CHECK_NULL(obj); + Evas_Object *ck = NULL; + + ck = elm_check_add(obj); + GL_CHECK_NULL(ck); + elm_object_style_set(ck, GL_CHECKBOX_STYLE_ALBUM_GRID); + evas_object_repeat_events_set(ck, EINA_TRUE); + elm_check_state_set(ck, checked); + evas_object_smart_callback_add(ck, "changed", func, data); + evas_object_show(ck); + return ck; +} + +Evas_Object *_gl_tile_show_part_checkbox(Evas_Object *obj, bool checked, + Evas_Smart_Cb func, const void *data) +{ + GL_CHECK_NULL(func); + GL_CHECK_NULL(obj); + Evas_Object *ck = NULL; + + ck = elm_check_add(obj); + GL_CHECK_NULL(ck); + evas_object_propagate_events_set(ck, EINA_FALSE); + elm_check_state_set(ck, checked); + evas_object_smart_callback_add(ck, "changed", func, data); + evas_object_show(ck); + return ck; +} + +Evas_Object *_gl_tile_show_part_rename(Evas_Object *obj, Evas_Smart_Cb func, + const void *data) +{ + GL_CHECK_NULL(func); + GL_CHECK_NULL(obj); + Evas_Object *btn = NULL; + btn = _gl_but_create_but(obj, NULL, NULL, GL_BUTTON_STYLE_RENAME, func, + data); + GL_CHECK_NULL(btn); + evas_object_propagate_events_set(btn, EINA_FALSE); + return btn; +} + +Evas_Object *_gl_tile_show_part_type_icon(Evas_Object *obj, int sns_type) +{ + GL_CHECK_NULL(obj); + Evas_Object *icon = elm_icon_add(obj); + GL_CHECK_NULL(icon); + + switch (sns_type) { + case GL_TILE_TYPE_CAMERA: + GL_ICON_SET_FILE(icon, GL_ICON_ALBUM_CAMERA); + break; + case GL_TILE_TYPE_DOWNLOAD: + GL_ICON_SET_FILE(icon, GL_ICON_ALBUM_DOWNLOAD); + break; + case GL_TILE_TYPE_FOLDER: + GL_ICON_SET_FILE(icon, GL_ICON_ALBUM_FOLDER); + break; + case GL_TILE_TYPE_MMC_STORAGE: + GL_ICON_SET_FILE(icon, GL_ICON_ALBUM_MMC); + break; + default: + gl_dbgE("Unknow sns_type[%d]!", sns_type); + } + + evas_object_show(icon); + return icon; +} + +int _gl_tile_get_mtime(time_t *mtime1, time_t *mtime2, char *buf, int max_len) +{ + char *date1 = NULL; + char *date2 = NULL; + char *date3 = NULL; + + date1 = (char *)calloc(1, GL_DATE_INFO_LEN_MAX); + GL_CHECK_VAL(date1, -1); + + date2 = (char *)calloc(1, GL_DATE_INFO_LEN_MAX); + if (date2 == NULL) + goto GL_TILE_ERROR; + + date3 = (char *)calloc(1, GL_DATE_INFO_LEN_MAX); + if (date3 == NULL) + goto GL_TILE_ERROR; + + struct tm t1; + memset(&t1, 0x00, sizeof(struct tm)); + localtime_r(mtime1, &t1); + strftime(date1, GL_DATE_INFO_LEN_MAX, "%Y.%m.%d", &t1); + strftime(date3, GL_DATE_INFO_LEN_MAX, "%Y.%m", &t1); + + struct tm t2; + memset(&t2, 0x00, sizeof(struct tm)); + localtime_r(mtime2, &t2); + strftime(date2, GL_DATE_INFO_LEN_MAX, "%Y.%m.%d", &t2); + + if (!g_strcmp0(date1, date2)) { + g_strlcpy(buf, date1, max_len); + } else { + strftime(date2, GL_DATE_INFO_LEN_MAX, "%Y.%m", &t2); + snprintf(buf, max_len, "%s - %s", date2, date3); + } + + GL_FREEIF(date1); + GL_FREEIF(date2); + GL_FREEIF(date3); + return 0; + + GL_TILE_ERROR: + + GL_FREEIF(date1); + GL_FREEIF(date2); + GL_FREEIF(date3); + return -1; +} + +Evas_Object *_gl_tile_add_gengrid(Evas_Object *parent) +{ + GL_CHECK_NULL(parent); + Evas_Object *grid = elm_gengrid_add(parent); + GL_CHECK_NULL(grid); + +#ifdef _USE_CUSTOMIZED_GENGRID_STYLE + elm_object_style_set(grid, GL_GENGRID_STYLE_GALLERY); +#endif + /* horizontal scrolling */ +#ifdef _USE_SCROL_HORIZONRAL + elm_gengrid_align_set(grid, GL_TILE_ALIGN_MID, GL_TILE_ALIGN_MID); + elm_gengrid_horizontal_set(grid, EINA_TRUE); + elm_scroller_bounce_set(grid, EINA_TRUE, EINA_FALSE); +#else + elm_gengrid_align_set(grid, GL_TILE_ALIGN_MID, 0.0); + elm_gengrid_horizontal_set(grid, EINA_FALSE); + elm_scroller_bounce_set(grid, EINA_FALSE, EINA_TRUE); +#endif + elm_scroller_policy_set(grid, ELM_SCROLLER_POLICY_OFF, + ELM_SCROLLER_POLICY_AUTO); + + elm_gengrid_multi_select_set(grid, EINA_TRUE); + evas_object_size_hint_weight_set(grid, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_data_set(grid, GL_GESTURE_KEY_PINCH_LEVEL, + (void *)GL_ZOOM_DEFAULT); + evas_object_event_callback_add(grid, EVAS_CALLBACK_DEL, + __gl_title_grid_del_cb, grid); + return grid; +} + +#ifdef _USE_SCROL_HORIZONRAL +/* Change icon size and gengrid alignment */ +int _gl_tile_update_item_size(void *data, Evas_Object *grid, bool b_update) +{ + GL_CHECK_VAL(grid, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + int rotate_mode = ad->maininfo.rotate_mode; + int w = 0; + int h = 0; + int c = 0; + int c2 = 0; + int w_l = 0; + int h_l = 0; + int c_l = 0; + int win_w = 0; + int win_h = 0; + double scale = _gl_get_win_factor(ad->maininfo.win, &win_w, &win_h); + gl_dbg("rotate_mode: %d, b_update: %d", rotate_mode, b_update); + + w = (int)(win_w / GL_TILE_2_PER_ROW); + h = (int)(GL_TILE_ITEM_HEIGHT * scale); + w_l= (int)(win_h / GL_TILE_3_PER_ROW); + h_l = (int)(GL_TILE_ITEM_L_H * scale); + c = GL_TILE_ITEM_CNT; + c_l = GL_TILE_ITEM_L_CNT; + c2 = GL_TILE_ITEM_C_CNT; + + /* Change size in pinch zoom out mode */ + int level = (int)evas_object_data_get(grid, GL_GESTURE_KEY_PINCH_LEVEL); + if (level < GL_ZOOM_DEFAULT) { + gl_dbg("Use smaller size"); + w = (int)(win_w / GL_TILE_3_PER_ROW); + h *= 0.75f; + c = GL_TILE_ITEM_CNT2; + c2 = GL_TILE_ITEM_C_CNT + 1; + } + gl_dbg("P %dx%d L %dx%d C %dx%d", w, h, w_l, h_l, c, c_l); + + double align_x = 0.0f; + double align_y = 0.0f; + unsigned int count = 0; + count = elm_gengrid_items_count(grid); + elm_gengrid_align_get(grid, &align_x, &align_y); + gl_dbg("count: %d, align_x: %f, align_y: %f", count, align_x, align_y); + + if ((rotate_mode == APP_DEVICE_ORIENTATION_270) || + (rotate_mode == APP_DEVICE_ORIENTATION_90)) { + /* >=3, (0.0, 0.5); <3, (0.5, 0.5) */ + if (count >= c_l && (align_x > GL_TILE_ALIGN_CON1 || + align_y > GL_TILE_ALIGN_CON2)) + elm_gengrid_align_set(grid, GL_TILE_ALIGN_LEFT, + GL_TILE_ALIGN_MID); + else if (count < c_l && (align_x < GL_TILE_ALIGN_CON1 || + align_y > GL_TILE_ALIGN_CON2)) + elm_gengrid_align_set(grid, GL_TILE_ALIGN_MID, + GL_TILE_ALIGN_MID); + + elm_gengrid_item_size_set(grid, w_l, h_l); + } else { + /* >=6, (0.0, 1.0); <3, (0.5, 0.5); <6, (0.5, 1.0) */ + if (count >= c && (align_x > GL_TILE_ALIGN_CON1 || + align_y < GL_TILE_ALIGN_CON2)) { + elm_gengrid_align_set(grid, GL_TILE_ALIGN_LEFT, + GL_TILE_ALIGN_MID); + } else if (count < c) { + if (count < c2 && + (align_x < GL_TILE_ALIGN_CON1 || + align_y > GL_TILE_ALIGN_CON2)) + elm_gengrid_align_set(grid, GL_TILE_ALIGN_MID, + GL_TILE_ALIGN_MID); + else if (count >= c2 && + (align_x < GL_TILE_ALIGN_CON1 || + align_y < GL_TILE_ALIGN_CON2)) + elm_gengrid_align_set(grid, GL_TILE_ALIGN_MID, + GL_TILE_ALIGN_MID); + } + elm_gengrid_item_size_set(grid, w, h); + } + + if (b_update) + elm_gengrid_realized_items_update(grid); + return 0; +} +#else +/* Change icon size and gengrid alignment */ +int _gl_tile_update_item_size(void *data, Evas_Object *grid, bool b_update) +{ + GL_CHECK_VAL(grid, -1); + GL_CHECK_VAL(data, -1); + gl_appdata *ad = (gl_appdata *)data; + int rotate_mode = ad->maininfo.rotate_mode; + int w = 0; + int h = 0; + int c = 0; + int w_l = 0; + int h_l = 0; + int c_l = 0; + int win_w = 0; + int win_h = 0; + double scale = _gl_get_win_factor(ad->maininfo.win, &win_w, &win_h); + gl_dbg("rotate_mode: %d, b_update: %d", rotate_mode, b_update); + + w = (int)(win_w / GL_TILE_2_PER_ROW); + h = (int)(298 * scale); + w_l= (int)(win_h / GL_TILE_3_PER_ROW); + h_l = w_l; + c = GL_TILE_ITEM_CNT; + c_l = GL_TILE_ITEM_L_CNT; + + /* Change size in pinch zoom out mode */ + int level = (int)evas_object_data_get(grid, GL_GESTURE_KEY_PINCH_LEVEL); + if (level < GL_ZOOM_DEFAULT) { + gl_dbg("Use smaller size"); + w = (int)(win_w / GL_TILE_3_PER_ROW); + h = (int)(200 * scale); + c = GL_TILE_ITEM_CNT2; + } + h = w + win_w/9; + h_l = w_l + win_h/9; + gl_dbg("P %dx%d L %dx%d C %dx%d", w, h, w_l, h_l, c, c_l); + + double align_x = 0.0f; + double align_y = 0.0f; + unsigned int count = 0; + count = elm_gengrid_items_count(grid); + elm_gengrid_align_get(grid, &align_x, &align_y); + gl_dbg("count: %d, align_x: %f, align_y: %f", count, align_x, align_y); + + if ((rotate_mode == APP_DEVICE_ORIENTATION_270) || + (rotate_mode == APP_DEVICE_ORIENTATION_90)) { + /* >=3, (0.5, 0.0); <3, (0.5, 0.5) */ + if (count >= c_l && align_y > GL_TILE_ALIGN_CON1) + elm_gengrid_align_set(grid, GL_TILE_ALIGN_MID, 0.0); + else if (count < c_l && align_y < GL_TILE_ALIGN_CON1) + elm_gengrid_align_set(grid, GL_TILE_ALIGN_MID, 0.0); + + elm_gengrid_item_size_set(grid, w_l, h_l); + } else { + /* >=6, (0.5, 0.0); <3, (0.5, 0.5); <6, (0.5, 1.0) */ + if (count >= c && (align_x > GL_TILE_ALIGN_CON1 || + align_y < GL_TILE_ALIGN_CON2)) { + elm_gengrid_align_set(grid, GL_TILE_ALIGN_MID, 0.0); + } else if (count < c && align_y < GL_TILE_ALIGN_CON1) { + elm_gengrid_align_set(grid, GL_TILE_ALIGN_MID, 0.0); + } + elm_gengrid_item_size_set(grid, w, h); + } + + if (b_update) + elm_gengrid_realized_items_update(grid); + return 0; +} +#endif + +Evas_Object *_gl_tile_add_gesture(void *data, Evas_Object *parent) +{ + GL_CHECK_NULL(parent); + GL_CHECK_NULL(data); + Evas_Object *gesture = _gl_gesture_add(data, parent); + GL_CHECK_NULL(gesture); + _gl_gesture_set_zoom_in_cb(gesture, __gl_tile_zoom_in_cb, data); + _gl_gesture_set_zoom_out_cb(gesture, __gl_tile_zoom_out_cb, data); + return gesture; +} + diff --git a/tizen-manifest.xml b/tizen-manifest.xml new file mode 100644 index 0000000..ea207f7 --- /dev/null +++ b/tizen-manifest.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.tizen.gallery.png + + diff --git a/widget/CMakeLists.txt b/widget/CMakeLists.txt new file mode 100644 index 0000000..68793d9 --- /dev/null +++ b/widget/CMakeLists.txt @@ -0,0 +1,49 @@ +SET(GALLERY_WIDGET gallery-widget) + +SET(SRCS + src/gl_widget_main.c + src/gl_widget_create.c +) + +INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}) + +INCLUDE(FindPkgConfig) +pkg_check_modules(app_pkgs REQUIRED + capi-appfw-application + capi-appfw-widget-application + capi-content-media-content + elementary + edje + evas + appcore-efl +# ecore-x + dlog +# widget + widget_service +# widget_provider_app +# widget_provider +) + +ADD_DEFINITIONS(${app_pkgs_CFLAGS}) +FIND_PROGRAM(UNAME NAMES uname) +EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH") +IF("${ARCH}" STREQUAL "arm") + ADD_DEFINITIONS("-DTARGET") + MESSAGE("add -DTARGET") +ENDIF("${ARCH}" STREQUAL "arm") + +ADD_DEFINITIONS("-DLOG_TAG=\"WIDGET_APP\"") +INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/include") + +SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie -Wl,-z,noexecstack") + +ADD_EXECUTABLE(${GALLERY_WIDGET} ${SRCS}) +TARGET_LINK_LIBRARIES(${GALLERY_WIDGET} ${app_pkgs_LDFLAGS} "-pie -lm") + +#edj compile + +INSTALL(TARGETS ${GALLERY_WIDGET} DESTINATION ${BINDIR}) + +#install application HOME directory +INSTALL(DIRECTORY DESTINATION ${DATADIR}) +ADD_SUBDIRECTORY(res) diff --git a/widget/include/gl_widget.h b/widget/include/gl_widget.h new file mode 100644 index 0000000..f9bf2fe --- /dev/null +++ b/widget/include/gl_widget.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 GL_WIDGET_H +#define GL_WIDGET_H + +typedef struct widget_data { + Evas_Object *win; + Evas_Object *layout; + Evas_Object *bg; + Evas_Object *conformant; + char *content; + Evas_Object *parent; + Ecore_Timer *timer; + bool is_edit; + bool showAlbumDetails; + bool showDateDetails; +} _widget_data; + +int gl_widget_create(_widget_data *data, int w, int h); + +#endif// GL_WIDGET_H +/* End of a file */ diff --git a/widget/include/gl_widget_debug.h b/widget/include/gl_widget_debug.h new file mode 100644 index 0000000..3b15c9c --- /dev/null +++ b/widget/include/gl_widget_debug.h @@ -0,0 +1,69 @@ +/* +* 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 GL_WIDGET_DEBUG_H +#define GL_WIDGET_DEBUG_H + +#if !defined(FLOG) +#define DbgPrint(format, arg...) LOGD(format, ##arg) +#define ErrPrint(format, arg...) LOGE(format, ##arg) +#define WarnPrint(format, arg...) LOGW(format, ##arg) +#else +extern FILE *__file_log_fp; +#define DbgPrint(format, arg...) do { fprintf(__file_log_fp, "[LOG] [%s/%s:%d] " format, util_basename(__FILE__), __func__, __LINE__, ##arg); fflush(__file_log_fp); } while (0) +#define ErrPrint(format, arg...) do { fprintf(__file_log_fp, "[ERR] [%s/%s:%d] " format, util_basename(__FILE__), __func__, __LINE__, ##arg); fflush(__file_log_fp); } while (0) +#define WarnPrint(format, arg...) do { fprintf(__file_log_fp, "[WRN] [%s/%s:%d] " format, util_basename(__FILE__), __func__, __LINE__, ##arg); fflush(__file_log_fp); } while (0) +#endif + +// DbgPrint("FREE\n"); +#define DbgFree(a) do { \ + free(a); \ +} while (0) + +#define DbgXFree(a) do { \ + DbgPrint("XFree\n"); \ + XFree(a); \ +} while (0) + + +#if defined(_ENABLE_PERF) +#define PERF_INIT() \ + struct timeval __stv; \ + struct timeval __etv; \ + struct timeval __rtv + +#define PERF_BEGIN() do { \ + if (gettimeofday(&__stv, NULL) < 0) { \ + ErrPrint("gettimeofday: %s\n", strerror(errno)); \ + } \ +} while (0) + +#define PERF_MARK(tag) do { \ + if (gettimeofday(&__etv, NULL) < 0) { \ + ErrPrint("gettimeofday: %s\n", strerror(errno)); \ + } \ + timersub(&__etv, &__stv, &__rtv); \ + DbgPrint("[%s] %u.%06u\n", tag, __rtv.tv_sec, __rtv.tv_usec); \ +} while (0) +#else +#define PERF_INIT() +#define PERF_BEGIN() +#define PERF_MARK(tag) +#endif + +#endif// GL_WIDGET_DEBUG_H +/* End of a file */ diff --git a/widget/res/CMakeLists.txt b/widget/res/CMakeLists.txt new file mode 100644 index 0000000..1a69bf3 --- /dev/null +++ b/widget/res/CMakeLists.txt @@ -0,0 +1,9 @@ +# install edj +ADD_CUSTOM_TARGET(gallerywidget.edj + COMMAND edje_cc ${EDJE_CFLAGS} + ${CMAKE_CURRENT_SOURCE_DIR}/gallerywidget.edc gallerywidget.edj + -id ${CMAKE_CURRENT_SOURCE_DIR}/images/ + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/gallerywidget.edc +) +ADD_DEPENDENCIES(${PROJECT_NAME} gallerywidget.edj) +INSTALL(FILES gallerywidget.edj DESTINATION ${EDJDIR}) diff --git a/widget/res/gallerywidget.edc b/widget/res/gallerywidget.edc new file mode 100644 index 0000000..7e4b1fc --- /dev/null +++ b/widget/res/gallerywidget.edc @@ -0,0 +1,525 @@ +/* +* 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 STYLE_TAGS \ + tag: "br" "\n";\ + tag: "ps" "ps";\ + tag: "tab" "\t";\ + tag: "b" "+ font_weight=Bold"; + +#define STYLE_TAG_MATCH \ + tag: "match" "+ color=#3db8cc"; + +externals { + external: "elm"; + external: "feedback"; +} + +collections { + plugins { + plugin { + name: "touch_sound_plugin"; + source: "feedback"; + param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP"; // FEEDBACK_TYPE_SOUND, FEEDBACK_PATTERN_TOUCH_TAP + /* 2014.06.11 updated from libsvi(feedback) + Above plugin will run below external function: + int feedback_play_type(feedback_type_e type, feedback_pattern_e pattern); + param1: feedback_type_e + FEEDBACK_TYPE_NONE = 0, + FEEDBACK_TYPE_SOUND = 1, + FEEDBACK_TYPE_VIBRATION, + FEEDBACK_TYPE_LED, + FEEDBACK_TYPE_END + + * param2 enumeration: + FEEDBACK_PATTERN_TAP = 0, + FEEDBACK_PATTERN_SIP, + FEEDBACK_PATTERN_SIP_BACKSPACE, + FEEDBACK_PATTERN_SIP_FUNCTION, + FEEDBACK_PATTERN_SIP_FJKEY, + ... + + * For more information please refer libsvi. + */ + } + } + base_scale:1.7; + group { + name:"widget_custom_main"; + parts { + part { + name:"bg"; + type:RECT; + description { + state:"default" 0.0; + rel1.relative:0.0 0.0; + rel2.relative:1.0 1.0; + color:0 0 0 20; + } + }//end bg + part { + name:"TitleText"; + type:TEXT; + mouse_events:1; + repeat_events:1; + description { + state:"default" 0.0; + fixed: 1 1; + rel1 { + relative:0.0 172/820; + } + rel2 { + relative:1.0 (172+107)/820; + } + text { + size:50; + align:0.5 0.5; + fit: 0 1; + ellipsis: -1.0; + } + } + }//end TitleText + part { + name:"HelpText"; + type:TEXT; + mouse_events:1; + repeat_events:1; + description { + state:"default" 0.0; + fixed: 1 1; + rel1 { + relative:0 (172+107+15)/820; + } + rel2 { + relative:1.0 (172+107+15+52)/820; + } + text { + size:30; + align:0.5 0.5; + fit: 0 1; + ellipsis: -1.0; + } + } + }//end HelpText + part { + name:"image0"; + type:SWALLOW; + mouse_events:1; + repeat_events:1; + description { + state:"default" 0.0; + rel1{ + relative:0.0 0.0; + to:"bg"; + } + rel2{ + relative:0.5 0.5; + to:"bg"; + } + align:0.0 0.0; + visible:0; + } + description { + state:"show" 0.0; + inherit:"default"; + visible:1; + } + }//end image0 + part { + name:"image1"; + type:SWALLOW; + mouse_events:1; + repeat_events:1; + description { + state:"default" 0.0; + rel1{ + relative:0.5 0.0; + to:"bg"; + } + rel2{ + relative:1.0 0.5; + to:"bg"; + } + align:0.0 0.0; + visible:0; + } + description { + state:"show" 0.0; + inherit:"default"; + visible:1; + } + }//end image1 + part { + name:"image2"; + type:SWALLOW; + mouse_events:1; + repeat_events:1; + description { + state:"default" 0.0; + rel1{ + relative:0.0 0.5; + to:"bg"; + } + rel2{ + relative:0.5 1.0; + to:"bg"; + } + align:0.0 0.0; + visible:0; + } + description { + state:"show" 0.0; + inherit:"default"; + visible:1; + } + }//end image2 + part { + name:"image3"; + type:SWALLOW; + mouse_events:1; + repeat_events:1; + description { + state:"default" 0.0; + rel1{ + relative:0.5 0.5; + to:"bg"; + } + rel2{ + relative:1.0 1.0; + to:"bg"; + } + align:0.0 0.0; + visible:0; + } + description { + state:"show" 0.0; + inherit:"default"; + visible:1; + } + }//end image3 + part { + name:"image4"; + type:SWALLOW; + mouse_events:1; + repeat_events:1; + description { + state:"default" 0.0; + rel1{ + relative:0.0 0.0; + to:"bg"; + } + rel2{ + relative:1.0 0.5; + to:"bg"; + } + align:0.0 0.0; + visible:0; + } + description { + state:"show" 0.0; + inherit:"default"; + visible:1; + } + }//end image4 + part { + name:"image5"; + type:SWALLOW; + mouse_events:1; + repeat_events:1; + description { + state:"default" 0.0; + rel1{ + relative:0.0 0.5; + to:"bg"; + } + rel2{ + relative:1.0 1.0; + to:"bg"; + } + align:0.0 0.0; + visible:0; + } + description { + state:"show" 0.0; + inherit:"default"; + visible:1; + } + }//end image5 + part { + name:"image6"; + type:SWALLOW; + mouse_events:1; + repeat_events:1; + description { + state:"default" 0.0; + rel1{ + relative:0.0 0.0; + to:"bg"; + } + rel2{ + relative:1.0 1.0; + to:"bg"; + } + align:0.0 0.0; + visible:0; + } + description { + state:"show" 0.0; + inherit:"default"; + visible:1; + } + }//end image6 + part { + name: "Edit_button"; + type: SWALLOW; + description { + state: "default" 0.0; + fixed: 0 1; + align: 1.0 0.0; + rel1 { relative: 1.0 0.0; to: "bg"; offset: -15 0;} + rel2 { relative: 1.0 0.0; to: "bg"; offset: 0 15;} + } + } // end Edit_button + part { + name: "Edit_button_fg"; + mouse_events: 1; + repeat_events: 1; + type: RECT; + description { + state: "default" 0.0; + visible: 1; + align: 1.0 0.0; + rel1 { relative: 0.0 0.0; to: "Edit_button"; } + rel2 { relative: 1.0 1.0; to: "Edit_button"; } + color: 0 0 0 0; + } + } // edn Edit_button + + part { + name: "DateInfo"; + type: TEXT; + description { + state: "default" 0.0; + fixed: 1 1; + rel1 { + relative: 29/712 708/820; + } + rel2 { + relative: 1.0 751/820; + } + color : 255 255 255 255; + text {text:""; font:"Tizen"; align : 0.0 0.5; size : 20;} + visible : 0; + } + description { + state:"show" 0.0; + inherit:"default"; + visible:1; + } + } // end DateInfo + + part { + name: "AlbumInfo"; + type: TEXT; + description { + fixed: 1 1; + state: "default" 0.0; + rel1 { + relative: 29/712 751/820; + } + rel2 { + relative: 1.0 794/820; + } + color : 255 255 255 255; + text {text:""; font:"Tizen"; align : 0.0 0.5; size : 20;} + visible : 0; + } + description { + state:"show" 0.0; + inherit:"default"; + visible:1; + } + } // end AlbumInfo + }//end parts + programs { + program { name: "touch_snd1"; + source: "Edit_button_fg"; + signal: "mouse,clicked,1"; + action: RUN_PLUGIN "touch_sound_plugin"; + } + program { + name:"changeToSecond"; + signal:"change0"; + source:"elm"; + action:STATE_SET "animated" 0.0; + target:"image0"; + transition: LINEAR 0.5; + }//end changeToSecond + program { + name:"hideAll"; + signal:"hideall"; + source:"elm"; + action:STATE_SET "default" 0.0; + target:"image0"; + target:"image1"; + target:"image2"; + target:"image3"; + target:"image4"; + target:"image5"; + target:"image6"; + transition: LINEAR 0.5; + }//end hideAll + program { + name:"hidealbum_date_info"; + signal:"hide_album_date_info"; + source:"elm"; + action:STATE_SET "default" 0.0; + target:"AlbumInfo"; + target:"DateInfo"; + }//end hideAll + program { + name:"show0"; + signal:"show0"; + source:"elm"; + action:STATE_SET "show" 0.0; + target:"image0"; + transition: LINEAR 0.5; + }//end show0 + program { + name:"show1"; + signal:"show1"; + source:"elm"; + action:STATE_SET "show" 0.0; + target:"image1"; + transition: LINEAR 0.5; + }//end show1 + program { + name:"show2"; + signal:"show2"; + source:"elm"; + action:STATE_SET "show" 0.0; + target:"image2"; + transition: LINEAR 0.5; + }//end show2 + program { + name:"show3"; + signal:"show3"; + source:"elm"; + action:STATE_SET "show" 0.0; + target:"image3"; + transition: LINEAR 0.5; + }//end show3 + program { + name:"show4"; + signal:"show4"; + source:"elm"; + action:STATE_SET "show" 0.0; + target:"image4"; + transition: LINEAR 0.5; + }//end show4 + program { + name:"show5"; + signal:"show5"; + source:"elm"; + action:STATE_SET "show" 0.0; + target:"image5"; + transition: LINEAR 0.5; + }//end show5 + program { + name:"show6"; + signal:"show6"; + source:"elm"; + action:STATE_SET "show" 0.0; + target:"image6"; + transition: LINEAR 0.5; + }//end show6 + program { + name:"showAlbumInfo"; + signal:"showAlbumInfo"; + source:"elm"; + action:STATE_SET "show" 0.0; + target:"AlbumInfo"; + }//end showAlbumInfo + program { + name:"showDateInfo"; + signal:"showDateInfo"; + source:"elm"; + action:STATE_SET "show" 0.0; + target:"DateInfo"; + }//end showDateInfo + program { + name:"hideAlbumInfo"; + signal:"hideAlbumInfo"; + source:"elm"; + action:STATE_SET "default" 0.0; + target:"AlbumInfo"; + }//end hideAlbumInfo + program { + name:"hideDateInfo"; + signal:"hideDateInfo"; + source:"elm"; + action:STATE_SET "default" 0.0; + target:"DateInfo"; + }//end hideDateInfo + }//end programs + }//end group + group { + name: "today_button"; + styles { + style { name: "empty_state_3"; + base: "font=Tizen:style=Regular font_size=18 align=center color=#FFFFFF wrap=mixed ellipsis=1.0"; + STYLE_TAGS + STYLE_TAG_MATCH + } + } + images { + image: "today_button.png" COMP; + } + parts { + part { name: "bg"; + type: IMAGE; + description { state: "default" 0.0; + min: 54 27; + color: 255 255 255 254; + image { + normal: "today_button.png"; + } + } + part { name: "elm.text"; + type: TEXTBLOCK; + scale: 1; + effect: PLAIN; + description { state: "default" 0.0; + visible: 1; + text { + style: "empty_state_3"; + min: 1 1; + max: 1 1; + //ellipsis: -1.0; + } + rel1 { + relative: 0.0 0.0; to: "bg"; + offset: 15 2; + } + rel2 { + relative: 1.0 1.0; to: "bg"; + offset: -15 -2; + } + } + } + } +} +}//end collections diff --git a/widget/res/images/today_button.png b/widget/res/images/today_button.png new file mode 100644 index 0000000..d60c5ae Binary files /dev/null and b/widget/res/images/today_button.png differ diff --git a/widget/res/preview_gallery_4x4.png b/widget/res/preview_gallery_4x4.png new file mode 100644 index 0000000..d15566d Binary files /dev/null and b/widget/res/preview_gallery_4x4.png differ diff --git a/widget/src/gl_widget_create.c b/widget/src/gl_widget_create.c new file mode 100644 index 0000000..5c442df --- /dev/null +++ b/widget/src/gl_widget_create.c @@ -0,0 +1,803 @@ +/* +* 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 +#include +#include "gl_widget_debug.h" +#include "gl-data-type.h" +#include "gl_widget.h" + +#define NUMBER_OF_ITERATION 4 +#define IMAGES_THRESHOLD 5 +#define SWALLOWS_COUNT 7 +#define TIMER_INTERVAL 5 +#define WIDGET_HEIGHT 500 +#define WIDGET_WIDTH 500 +#define EDJE_FILE "edje/gallerywidget.edj" +#define GL_WIDGET_ARGV_IV_VIEW_BY "View By" +#define GL_WIDGET_ARGV_IV_VIEW_BY_FOLER "By Folder" +#define GL_WIDGET_ARGV_IV_PATH "Path" +#define GL_WIDGET_UG_PKG_IV "image-viewer-efl" + +#define GL_STR_ID_JAN dgettext("sys_string", "IDS_COM_BODY_JANUARY") +#define GL_STR_ID_FEB dgettext("sys_string", "IDS_COM_BODY_FEBRUARY") +#define GL_STR_ID_MAR dgettext("sys_string", "IDS_COM_BODY_MARCH") +#define GL_STR_ID_APR dgettext("sys_string", "IDS_COM_BODY_APRIL") +#define GL_STR_ID_MAY dgettext("sys_string", "IDS_COM_BODY_MAY") +#define GL_STR_ID_JUN dgettext("sys_string", "IDS_COM_BODY_JUNE") +#define GL_STR_ID_JUL dgettext("sys_string", "IDS_COM_BODY_JULY") +#define GL_STR_ID_AUG dgettext("sys_string", "IDS_COM_BODY_AUGUST") +#define GL_STR_ID_SEP dgettext("sys_string", "IDS_COM_BODY_SEPTEMBER") +#define GL_STR_ID_OCT dgettext("sys_string", "IDS_COM_BODY_OCTOBER") +#define GL_STR_ID_NOV dgettext("sys_string", "IDS_COM_BODY_NOVEMBER") +#define GL_STR_ID_DEC dgettext("sys_string", "IDS_COM_BODY_DECEMBER") + +char **selected_images = NULL; //array of strings storing the images selected by user +int images_in_loops[] = {3, 2, 1,4}; //count of images in each iteration of animation +int swallows_in_loops[5][10] = {{1, 1, 0, 0, 0, 1 ,0}, {0, 0, 0, 0, 1, 1, 0}, {0, 0, 0, 0, 0, 0, 1}, {1, 1, 1, 1, 0, 0, 0}}; //arrangement of swallows in each iteration of animation +int images_count = 0; //counter which represents the index of images to be used in each iteration +int selected_count = 0; //number of images selected by user. +int loop_count = 0; //counter to the iteration number; + +static void gl_widget_on_no_image_cb(void *data,Evas_Object *obj, + const char *emission, const char *source); + +void gl_widget_win_del_cb(void *data, Evas *evas, Evas_Object *obj, + void *event_info) +{ + ecore_timer_del(data); +} + +void gl_widget_key_down_cb(void *data, Evas *evas, Evas_Object *obj, + void *event_info) +{ + elm_exit(); +} + +void gl_widget_app_get_resource(const char *edj_file_in, char *edj_path_out, + int edj_path_max) +{ + char *res_path = app_get_resource_path(); + if (res_path) { + snprintf(edj_path_out, edj_path_max, "%s%s", res_path, + edj_file_in); + free(res_path); + } +} + +void _gl_launch_iv(void *data, Evas_Object *obj, void *event_info) +{ + if (!obj) { + dlog_print(DLOG_ERROR, LOG_TAG, "Invalid object!!"); + return; + } + + char *file_name = NULL; + char *group_name = NULL; + elm_image_file_get (obj, &file_name, &group_name); + if (file_name) { + int ret; + app_control_h service = NULL; + app_control_create(&service); + if (!service) { + dlog_print(DLOG_ERROR, LOG_TAG, "fail to create service"); + return; + } + app_control_add_extra_data(service, GL_WIDGET_ARGV_IV_VIEW_BY, + GL_WIDGET_ARGV_IV_VIEW_BY_FOLER); + app_control_add_extra_data(service, GL_WIDGET_ARGV_IV_PATH, file_name); + app_control_set_app_id(service, GL_WIDGET_UG_PKG_IV); + ret = app_control_send_launch_request(service, NULL, NULL); + if (ret != APP_CONTROL_ERROR_NONE) { + dlog_print(DLOG_ERROR, LOG_TAG, "image load failed"); + app_control_destroy(service); + } + } else { + dlog_print(DLOG_ERROR, LOG_TAG, "image path could not be retrieved"); + } +} + +static Eina_Bool gl_widget_animator_cb(void *data) +{ + dlog_print(DLOG_ERROR, LOG_TAG, "ENTRY gl_widget_animator_cb"); + Evas_Object *layout = (Evas_Object *)data; + char buffer[50] = {0,}; + int i = 0; + + if (!layout) { + dlog_print(DLOG_ERROR, LOG_TAG, "Invalid layout!!"); + return EINA_FALSE; + } + + elm_object_signal_emit(layout, "hideall", "elm"); + + for (i = 0 ; i < SWALLOWS_COUNT; i++) { + snprintf(buffer, sizeof(buffer), "image%d", i); + Evas_Object *content = elm_object_part_content_get(layout, buffer); + elm_object_part_content_unset(layout, buffer); + evas_object_hide(content); + + if (swallows_in_loops[loop_count % NUMBER_OF_ITERATION][i] == 1) { + images_count = images_count % selected_count; + Evas_Object *image_object = elm_image_add(layout); + dlog_print(DLOG_ERROR, LOG_TAG, "gl_widget_animator_cb Image is %s", + selected_images[images_count]); + + if (!elm_image_file_set(image_object, selected_images[images_count], NULL)) { + dlog_print(DLOG_ERROR, LOG_TAG, "File Set Failed"); + } + + elm_image_aspect_fixed_set(image_object,EINA_FALSE); + snprintf(buffer, sizeof(buffer), "image%d", i); + elm_object_part_content_set(layout, buffer, image_object); + snprintf(buffer, sizeof(buffer), "show%d", i); + elm_object_signal_emit(layout, buffer, "elm"); + images_count++; + evas_object_smart_callback_add (image_object, + "clicked", _gl_launch_iv, layout); + } + } + return EINA_TRUE; +} + +static Eina_Bool gl_widget_animator_cb_for_less_than_five_images(void *data) +{ + Evas_Object *layout = (Evas_Object *)data; + + if (!layout) { + dlog_print(DLOG_ERROR, LOG_TAG, "Invalid layout!!"); + return EINA_FALSE; + } + + elm_object_signal_emit(layout, "hideall", "elm"); + Evas_Object *content = elm_object_part_content_get(layout, "image6"); + elm_object_part_content_unset(layout, "image6"); + evas_object_hide(content); + + Evas_Object *image_object = elm_image_add(layout); + dlog_print(DLOG_ERROR, LOG_TAG, "selected images: %s", + selected_images[images_count]); + elm_image_file_set(image_object, selected_images[images_count], NULL); + elm_image_aspect_fixed_set(image_object, EINA_FALSE); + elm_object_part_content_set(layout, "image6", image_object); + elm_object_signal_emit(layout, "show6", "elm"); + images_count++; + images_count = images_count % selected_count; + evas_object_smart_callback_add(image_object, "clicked", + _gl_launch_iv, layout); + + return EINA_TRUE; +} + +static Eina_Bool gl_widget_timer_cb(void *data) +{ + if (!data) { + dlog_print(DLOG_ERROR, LOG_TAG, "Invalid userdata!!"); + return EINA_FALSE; + } + + if (selected_count >= IMAGES_THRESHOLD) { + gl_widget_animator_cb(data); + } else { + gl_widget_animator_cb_for_less_than_five_images(data); + } + + loop_count++; + return EINA_TRUE; +} + +static Eina_Bool gl_widget_check_albumInfo(char** patharray, int count) +{ + int refcount = 0; + if (!patharray || count <= 0) { + dlog_print(DLOG_ERROR, LOG_TAG, "Invalid data!!"); + return EINA_FALSE; + } + + char *basepath = NULL; + char *ref = strrchr(patharray[0], '/'); + unsigned int reflength = ref - patharray[0]; + + basepath = (char*)malloc(sizeof(char) * (reflength + 1)); + if (!basepath) { + dlog_print(DLOG_ERROR, LOG_TAG, "allocation failed!!"); + return EINA_FALSE; + } + + strncpy(basepath, patharray[0], reflength); + basepath[reflength] = '\0'; + + for (refcount = 1; refcount < count; refcount++) { + if (strstr(patharray[refcount], basepath) == NULL) { + free(basepath); + dlog_print(DLOG_ERROR, LOG_TAG, "different selection!!"); + return EINA_FALSE; + } + } + + free(basepath); + return EINA_TRUE; +} + +char *_gl_widget_get_file_date(const char *filename) +{ + struct stat statbuf = {0}; + struct tm tmtime; + + if (!filename) + return NULL; + + if (stat(filename, &statbuf) == -1) + return NULL; + + time_t temptime = statbuf.st_mtime; + memset(&tmtime, 0x00, sizeof(struct tm)); + localtime_r(&temptime, &tmtime); + + struct tm ct; + time_t ctime = 0; + memset(&ct, 0x00, sizeof(struct tm)); + time(&ctime); + localtime_r(&ctime, &ct); + + char *month[12] = { GL_STR_ID_JAN, GL_STR_ID_FEB, GL_STR_ID_MAR, GL_STR_ID_APR, GL_STR_ID_MAY, GL_STR_ID_JUN, + GL_STR_ID_JUL, GL_STR_ID_AUG, GL_STR_ID_SEP, GL_STR_ID_OCT, GL_STR_ID_NOV, GL_STR_ID_DEC}; + + char * str = g_strdup_printf("%s%02d, %s %d", "", + tmtime.tm_mday, month[tmtime.tm_mon], 1900 + tmtime.tm_year); + return str; +} + +static Eina_Bool gl_widget_check_dateInfo(char** patharray, int count) +{ + int refcount = 0; + if (!patharray || count <= 0) { + dlog_print(DLOG_ERROR, LOG_TAG, "Invalid data!!"); + return EINA_FALSE; + } + + char * date = NULL; + + char * next_date = NULL; + date = _gl_widget_get_file_date(patharray[0]); + if (!date) { + dlog_print(DLOG_ERROR, LOG_TAG, "failed to extract date!!"); + return EINA_FALSE; + } + + for (refcount = 1; refcount < count; refcount++) { + next_date = _gl_widget_get_file_date(patharray[refcount]); + if (!next_date) { + dlog_print(DLOG_ERROR, LOG_TAG, "failed to extract date!!"); + free(date); + return EINA_FALSE; + } + if (strcmp(date, next_date)) { + free(date); + free(next_date); + return EINA_FALSE; + } + free(next_date); + } + + return EINA_TRUE; +} + +static char *gl_widget_extract_album_path(char* pathInfo) +{ + if (!pathInfo) { + dlog_print(DLOG_ERROR, LOG_TAG, "Invalid path!!"); + return NULL; + } + + char* albumname = NULL; + char *albumpath = NULL; + char *rootpath = NULL; + char *refptr = NULL; + Eina_Bool useralbum = EINA_FALSE; + + refptr = strrchr(pathInfo, '/'); + if (!refptr) { + return NULL; + } + + unsigned int albumpathlength = refptr - pathInfo; + albumpath = (char *)malloc((albumpathlength + 1) * sizeof(char)); + if (!albumpath) { + return NULL; + } + + strncpy(albumpath, pathInfo, albumpathlength); + albumpath[albumpathlength] = '\0'; + + refptr = strrchr(albumpath, '/'); + if (!refptr) { + free(albumpath); + return NULL; + } + + return albumpath; +} + +static Eina_Bool gl_widget_check_default_album(char* pathInfo) +{ + if (!pathInfo) { + dlog_print(DLOG_ERROR, LOG_TAG, "Invalid path!!"); + return EINA_FALSE; + } + char *path = gl_widget_extract_album_path(pathInfo); + if (!path) { + dlog_print(DLOG_ERROR, LOG_TAG, "Failed to extract path!!"); + return EINA_FALSE; + } + + if (!strcmp("/opt/usr/media/Pictures/", path) || + !strcmp("/opt/usr/media/Images/", path) || + !strcmp("/opt/usr/media/DCIM/Camera", path) || + !strcmp("/opt/usr/media/Downloads/", path) || + !strcmp("/opt/storage/sdcard/DCIM/", path)) { + free(path); + return EINA_TRUE; + } + + free(path); + + return EINA_FALSE; +} + +static char *gl_widget_extract_album_info(char* pathInfo) +{ + if (!pathInfo) { + dlog_print(DLOG_ERROR, LOG_TAG, "Invalid path!!"); + return NULL; + } + + char* albumname = NULL; + char *albumpath = NULL; + char *rootpath = NULL; + char *refptr = NULL; + Eina_Bool useralbum = EINA_FALSE; + + refptr = strrchr(pathInfo, '/'); + if (!refptr) { + return NULL; + } + + unsigned int albumpathlength = refptr - pathInfo; + albumpath = (char *)malloc((albumpathlength + 1) * sizeof(char)); + if (!albumpath) { + return NULL; + } + + strncpy(albumpath, pathInfo, albumpathlength); + albumpath[albumpathlength] = '\0'; + + refptr = strrchr(albumpath, '/'); + if (!refptr) { + free(albumpath); + return NULL; + } + + unsigned int albumnamelength = strlen(albumpath) - (refptr - albumpath); + albumname = (char *)malloc((albumnamelength + 1) * sizeof(char)); + if (!albumname) { + free(albumpath); + return NULL; + } + + strncpy(albumname, refptr + 1, albumnamelength); + albumname[albumnamelength] = '\0'; + + free(albumpath); + + return albumname; +} + +static char *gl_widget_extract_date_info(char** patharray, int count) +{ + int refcount = 0; + if (!patharray || count <= 0) { + dlog_print(DLOG_ERROR, LOG_TAG, "Invalid data!!"); + return NULL; + } + char * date = _gl_widget_get_file_date(patharray[0]); + return date; +} + +void _gl_widget_show_album_date_info(int arrayLength, char** pathArray, + _widget_data* widget_data, Evas_Object* layout) { + + Eina_Bool isSameAlbum = gl_widget_check_albumInfo(pathArray, arrayLength); + Eina_Bool isDefaultAlbum = false; + if (isSameAlbum) { + isDefaultAlbum = gl_widget_check_default_album(pathArray[0]); + } + widget_data->showAlbumDetails = isSameAlbum && !isDefaultAlbum; + widget_data->showDateDetails = gl_widget_check_dateInfo(pathArray, + arrayLength); + if (widget_data->showAlbumDetails) { + char* albuminfo = gl_widget_extract_album_info(pathArray[0]); + if (albuminfo) { + dlog_print(DLOG_ERROR, LOG_TAG, "showAlbumDetails!!"); + elm_object_part_text_set(layout, "AlbumInfo", albuminfo); + elm_object_signal_emit(layout, "showAlbumInfo", "elm"); + } + } else { + elm_object_part_text_set(layout, "AlbumInfo", ""); + elm_object_signal_emit(layout, "hideAlbumInfo", "elm"); + } + if (widget_data->showDateDetails) { + char* dateinfo = gl_widget_extract_date_info(pathArray, arrayLength); + if (dateinfo) { + dlog_print(DLOG_ERROR, LOG_TAG, "showDateDetails!!"); + elm_object_part_text_set(layout, "DateInfo", dateinfo); + elm_object_signal_emit(layout, "showDateInfo", "elm"); + } + } else { + elm_object_part_text_set(layout, "DateInfo", ""); + elm_object_signal_emit(layout, "hideDateInfo", "elm"); + } +} + +static void gl_widget_result_cb(app_control_h request, app_control_h reply, + app_control_result_e result, void *data) +{ + _widget_data *widget_data = (_widget_data *)data; + if (!widget_data) { + dlog_print(DLOG_ERROR, LOG_TAG, "Invalid userdata!!"); + return; + } + Evas_Object *layout = widget_data->layout; + if (!layout) { + return; + } + char **pathArray = NULL; + int arrayLength = 0; + int i = 0; + int j = 0; + char buffer[100] = {0,}; + + char *dbPath = "/opt/usr/media/selectedimages.eet"; + Eet_File *fp = NULL; + + app_control_get_extra_data_array(reply, APP_CONTROL_DATA_PATH, + &pathArray, &arrayLength); + if (arrayLength > 0) { + dlog_print(DLOG_ERROR, LOG_TAG, "Result Length %d", arrayLength); + selected_images = (char **)malloc(arrayLength * sizeof(char *)); + fp = eet_open(dbPath,EET_FILE_MODE_READ_WRITE); + if (!fp) { + dlog_print(DLOG_ERROR, LOG_TAG, "File open failed"); + return; + } + snprintf(buffer, sizeof(buffer), "%d", arrayLength); + eet_write(fp, "imageCnt", buffer, strlen(buffer) + 1, 0); + if (selected_images) { + for (j = 0 ; j < arrayLength; j++) { + selected_images[j] = strdup (pathArray[j]); + snprintf(buffer, sizeof(buffer), "image%d", j); + eet_write(fp, buffer, pathArray[j], + strlen(pathArray[j]) + 1, 0); + } + eet_close(fp); + } else { + dlog_print(DLOG_ERROR, LOG_TAG, "Selected Image is NULL"); + } + if (!widget_data->is_edit) { + _gl_widget_create_edit_btn(widget_data); + } + } else { + if (!widget_data->is_edit) { + Evas_Object *btn = elm_object_part_content_unset( + widget_data->layout, + "Edit_button"); + if (btn) { + evas_object_hide(btn); + } + } + return; + } + if (widget_data->is_edit) { + if (widget_data->timer) { + ecore_timer_del(widget_data->timer); + } + widget_data->is_edit = false; + } + + _gl_widget_show_album_date_info(arrayLength, pathArray, widget_data, + layout); + for (i = 0; i < arrayLength; i++) { + if (pathArray[i]) { + free (pathArray[i]); + } + } + if (pathArray) { + free(pathArray); + } + selected_count = arrayLength; + if (selected_count >= IMAGES_THRESHOLD) { + gl_widget_animator_cb(layout); + } else { + gl_widget_animator_cb_for_less_than_five_images(layout); + } + + loop_count++; + elm_object_signal_callback_del(layout, "mouse,clicked,1", + "bg", gl_widget_on_no_image_cb); + + if (selected_count > 1) { + widget_data->timer = ecore_timer_loop_add(TIMER_INTERVAL, + gl_widget_timer_cb, layout); + } +} + +static void gl_widget_on_edit_cb(void *data, Evas_Object *obj, void *event_info) +{ + if (!data) { + dlog_print(DLOG_ERROR, LOG_TAG, "Invalid userdata!!"); + return; + } + _widget_data *widget_data = (_widget_data *)data; + widget_data->is_edit = true; + app_control_h service = NULL; + int ret = -1; + + ret = app_control_create(&service); + if (ret != APP_CONTROL_ERROR_NONE) { + dlog_print(DLOG_ERROR, LOG_TAG, "Failed to create app control!!"); + } else { + app_control_set_operation(service, APP_CONTROL_OPERATION_PICK); + app_control_add_extra_data(service, + "http://tizen.org/appcontrol/data/selection_mode", + "multiple"); + app_control_set_mime(service, "image/*"); + app_control_add_extra_data(service, "launch-type", "multiple"); + app_control_add_extra_data(service, "file-type", "image"); + app_control_set_app_id(service,"ug-gallery-efl"); + + ret = app_control_send_launch_request(service, + gl_widget_result_cb, (void *)widget_data); + if (ret != APP_CONTROL_ERROR_NONE) { + dlog_print(DLOG_ERROR, LOG_TAG, + "lauching operation pic failed"); + ret = -1; + } else { + ret = 0; + } + + app_control_destroy(service); + } +} + +void _gl_widget_create_edit_btn(_widget_data* widget_data) { + + if (widget_data) { + Evas_Object* boxTop = elm_box_add(widget_data->layout); + evas_object_size_hint_weight_set(boxTop, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(boxTop, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_box_horizontal_set(boxTop, EINA_TRUE); + elm_box_homogeneous_set(boxTop, EINA_FALSE); + Evas_Object* button = elm_button_add(boxTop); + elm_object_style_set(button, "transparent"); + Evas_Object* layoutButton = elm_layout_add(button); + evas_object_size_hint_weight_set(layoutButton, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(layoutButton, EVAS_HINT_FILL, + EVAS_HINT_FILL); + elm_layout_file_set(layoutButton, + "/usr/apps/org.tizen.gallery/res/edje/gallerywidget.edj", + "today_button"); + elm_object_domain_translatable_part_text_set(layoutButton, "elm.text", + "gallery", "IDS_QP_ACBUTTON_EDIT_ABB"); + evas_object_show(layoutButton); + elm_object_content_set(button, layoutButton); + elm_box_pack_end(boxTop, button); + evas_object_show(boxTop); + evas_object_show(button); + elm_object_part_content_set(widget_data->layout, "Edit_button", boxTop); + evas_object_smart_callback_add(button, "clicked", gl_widget_on_edit_cb, + widget_data); + } +} + +static int gl_widget_launch_gallery_ug(_widget_data *widget_data) +{ + app_control_h service = NULL; + int ret = -1; + + ret = app_control_create(&service); + if (ret != APP_CONTROL_ERROR_NONE) { + dlog_print(DLOG_ERROR, LOG_TAG, "Failed to create app control!!"); + } else { + app_control_set_operation(service, APP_CONTROL_OPERATION_PICK); + app_control_add_extra_data(service, + "http://tizen.org/appcontrol/data/selection_mode", + "multiple"); + app_control_set_mime(service, "image/*"); + app_control_add_extra_data(service, "launch-type", "multiple"); + app_control_add_extra_data(service, "file-type", "image"); + app_control_set_app_id(service,"ug-gallery-efl"); + + ret = app_control_send_launch_request(service, + gl_widget_result_cb, + (void *)widget_data); + if (ret != APP_CONTROL_ERROR_NONE) { + dlog_print(DLOG_ERROR, LOG_TAG, "lauching operation pic failed"); + ret = -1; + } else { + ret = 0; + } + + app_control_destroy(service); + } + return ret; +} + +static void gl_widget_on_no_image_cb(void *data, Evas_Object *obj, + const char *emission, const char *source) +{ + _widget_data *widget_data = (_widget_data *)data; + if (!widget_data) { + dlog_print(DLOG_ERROR, LOG_TAG, "Invalid userdata!!"); + return; + } + + Evas_Object *layout = widget_data->layout; + if (!layout) { + dlog_print(DLOG_ERROR, LOG_TAG, "Invalid layout!!"); + return; + } + + gl_widget_launch_gallery_ug(widget_data); +} + +Eina_Bool gl_widget_load_preselected_images() +{ + char *dbPath = "/opt/usr/media/selectedimages.eet"; + Eet_File *fp = NULL; + + fp = eet_open(dbPath, EET_FILE_MODE_READ); + if (fp) { + int size = 0; + int i = 0; + int arrayLength = 0; + char buffer[100] = {0,}; + char *data = NULL; + + data = eet_read(fp, "imageCnt", &size); + if (data != NULL) { + snprintf(buffer, sizeof(buffer), "%s", data); + arrayLength = atoi(buffer); + selected_count = arrayLength; + dlog_print(DLOG_ERROR, LOG_TAG, "selected_count %d - arrayLength %d", selected_count, arrayLength); + free(data); + } + selected_images = (char **)malloc(arrayLength * sizeof(char *)); + if (!selected_images) { + eet_close(fp); + return EINA_FALSE; + } + + for (i = 0 ; i < arrayLength; i++) { + selected_images[i] = (char *)malloc(100 * sizeof(char)); + if (selected_images[i]) { + snprintf(buffer, sizeof(buffer), "image%d", i); + data = eet_read(fp, buffer, &size); + if (data) { + strncpy(selected_images[i], data, 100); + free(data); + } + } + } + + eet_close(fp); + return EINA_TRUE; + } + return EINA_FALSE; +} + +static void _gl_widget_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) +{ + dlog_print(DLOG_INFO, LOG_TAG, "update_item[%d], update_type[%d], media_type[%d]", update_item, + update_type, media_type); + if (!data) { + dlog_print(DLOG_ERROR, LOG_TAG, "Invalid userdata!!"); + return ; + } + if (update_item == MEDIA_ITEM_FILE && update_type == MEDIA_CONTENT_DELETE) { + _widget_data *widget_data = (_widget_data *)data; + if (selected_count == 1) { + if (!strcmp(selected_images[0], path)) { + Evas_Object *btn = elm_object_part_content_unset( + widget_data->layout, + "Edit_button"); + if (btn) { + evas_object_hide(btn); + } + elm_object_signal_emit(widget_data->layout, "hideall", "elm"); + elm_object_signal_emit(widget_data->layout, "hide_album_date_info", "elm"); + } + elm_object_signal_callback_add(widget_data->layout, "mouse,clicked,1", "bg", gl_widget_on_no_image_cb, widget_data); + } + } +} + +int gl_widget_create(_widget_data *widget_data, int w, int h) +{ + if (!widget_data) { + dlog_print(DLOG_ERROR, LOG_TAG, "Invalid userdata!!"); + return -1; + } + char edj_path[PATH_MAX] = {0,}; + Evas_Object *layout = NULL; + dlog_print(DLOG_ERROR, LOG_TAG, "here0 - %x", widget_data->win); + layout = elm_layout_add(widget_data->win); + if (!layout) { + dlog_print(DLOG_ERROR, LOG_TAG, "Invalid layout!!"); + return -1; + } + + elm_layout_file_set(layout, + "/usr/apps/org.tizen.gallery/res/edje/gallerywidget.edj", + "widget_custom_main"); + evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_resize(layout, WIDGET_WIDTH,WIDGET_HEIGHT); + evas_object_show(layout); + widget_data->layout = layout; + + if (!gl_widget_load_preselected_images()) { + elm_object_domain_translatable_part_text_set(layout, "TitleText", "gallery", + "IDS_GALLERY_OPT_GALLERY_ABB"); + elm_object_domain_translatable_part_text_set(layout, "HelpText", "gallery", + "IDS_HS_NPBODY_TAP_HERE_TO_ADD_IMAGES"); + elm_object_signal_callback_add(layout, "mouse,clicked,1", "bg", gl_widget_on_no_image_cb, widget_data); + } else { + if (selected_count >= IMAGES_THRESHOLD) { + gl_widget_animator_cb(layout); + } else { + gl_widget_animator_cb_for_less_than_five_images(layout); + } + loop_count++; + if (selected_count > 1) { + widget_data->timer = ecore_timer_loop_add(TIMER_INTERVAL, gl_widget_timer_cb, layout); + } + _gl_widget_create_edit_btn(widget_data); + _gl_widget_show_album_date_info(selected_count, selected_images, widget_data, + layout); + } + + evas_object_resize(layout, w, h); + evas_object_event_callback_add(widget_data->win, EVAS_CALLBACK_KEY_DOWN, + gl_widget_key_down_cb, NULL); + + int ret = media_content_set_db_updated_cb(_gl_widget_db_update_cb, widget_data); + if (ret != MEDIA_CONTENT_ERROR_NONE) { + dlog_print(DLOG_ERROR, LOG_TAG, "Set db updated cb failed[%d]!", ret); + } + return 0; +} +/* End of a file */ diff --git a/widget/src/gl_widget_main.c b/widget/src/gl_widget_main.c new file mode 100644 index 0000000..9a997c3 --- /dev/null +++ b/widget/src/gl_widget_main.c @@ -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. +* +*/ + +#include +#include +#include +#include + +//#include +#include +#include +//#include +#include +#include + +#include "gl_widget.h" +#include "gl_widget_debug.h" + +void *getWidgetData(widget_context_h context) +{ + void *data = NULL; + widget_app_context_get_tag(context, &data); + return data; +} + +int widget_Create(widget_context_h context, bundle *content, int w, int h, void *data) +{ + Evas_Object *win = NULL; + int ret = widget_app_get_elm_win(context, &win); + if (ret != WIDGET_ERROR_NONE) { + DbgPrint("failed to get window. err = %d", ret); + } + elm_config_accel_preference_set("3d"); + + struct widget_data *widget_data = NULL; + + widget_data = calloc(1, sizeof(*widget_data)); + if (!widget_data) { + DbgPrint("failed to create instance"); + return WIDGET_ERROR_OUT_OF_MEMORY; + } + bindtextdomain(PACKAGE, "/usr/apps/org.tizen.gallery/res/locale"); + + widget_data->win = win; + + evas_object_resize(widget_data->win, w, h); + evas_object_color_set(widget_data->win, 0, 0, 0, 0); + evas_object_show(widget_data->win); + + widget_data->is_edit = false; + gl_widget_create(widget_data, w, h); + DbgPrint("Resized to %dx%d\n", w, h); + + widget_app_context_set_tag(context, widget_data); + + return WIDGET_ERROR_NONE; +} + +int widget_Destroy(widget_context_h context, widget_app_destroy_type_e reason, bundle *content, void *data) +{ + if (reason != WIDGET_APP_DESTROY_TYPE_PERMANENT) { + // Save the current status at the bundle object. + } + struct widget_data *widget_data = NULL; + + widget_data = (struct widget_data *)getWidgetData(context); + if (!widget_data) { + return WIDGET_ERROR_INVALID_PARAMETER; + } + widget_app_context_set_tag(context, NULL); + + evas_object_del(widget_data->win); + free(widget_data->content); + + if (widget_data->timer) { + ecore_timer_del(widget_data->timer); + } + free(widget_data); + + remove("/opt/usr/media/selectedimages.eet"); + + return WIDGET_ERROR_NONE; +} + +int widget_Pause(widget_context_h context, void *data) +{ + return WIDGET_ERROR_NONE; +} + +int widget_Resume(widget_context_h context, void *data) +{ + return WIDGET_ERROR_NONE; +} + +int widget_Resize(widget_context_h context, int w, int h, void *data) +{ + struct widget_data *widget_data = NULL; + + widget_data = (struct widget_data *)getWidgetData(context); + if (!widget_data) { + return WIDGET_ERROR_INVALID_PARAMETER; + } + + evas_object_resize(widget_data->win, w, h); + evas_object_resize(widget_data->bg, w, h); + evas_object_resize(widget_data->conformant, w, h); + + DbgPrint("Resized to %dx%d\n", w, h); + + return WIDGET_ERROR_NONE; +} + +int widget_Update(widget_context_h context, bundle *content, int force, void *data) +{ + return WIDGET_ERROR_NONE; +} + +static void app_language_changed(app_event_info_h event_info, void *data) +{ + DbgPrint("language change triggered"); + char *lang = NULL; + app_event_get_language(event_info, &lang); + if (lang) { + elm_language_set(lang); + free(lang); + } +} + +static void app_region_changed(app_event_info_h event_info, void *data) +{ + DbgPrint("region change triggered"); +} + +widget_class_h app_create(void *data) +{ + app_event_handler_h lang_changed_handler; + app_event_handler_h region_changed_handler; + + widget_app_add_event_handler(&lang_changed_handler, APP_EVENT_LANGUAGE_CHANGED, + &app_language_changed, data); + widget_app_add_event_handler(®ion_changed_handler, APP_EVENT_REGION_FORMAT_CHANGED, + &app_region_changed, data); + + widget_instance_lifecycle_callback_s ops; + ops.create = widget_Create; + ops.destroy = widget_Destroy; + ops.pause = widget_Pause; + ops.resume = widget_Resume; + ops.resize = widget_Resize; + ops.update = widget_Update; + + return widget_app_class_create(ops, data); +} + +void app_terminate(void *data) +{ + /** + * @TODO: + */ +} + +int main(int argc, char *argv[]) +{ + int result = WIDGET_ERROR_NONE; + + widget_app_lifecycle_callback_s ops = {0,}; + ops.create = app_create; + ops.terminate = app_terminate; + + result = widget_app_main(argc, argv, &ops, NULL); + if (result != WIDGET_ERROR_NONE) { + DbgPrint("widget_app_main() is failed. err = %d", result); + } + + return result; +} + +/* End of a file */