diff options
-rw-r--r-- | CMakeLists.sub | 26 | ||||
-rw-r--r--[-rwxr-xr-x] | CMakeLists.txt | 120 | ||||
-rwxr-xr-x | LICENSE | 204 | ||||
-rwxr-xr-x | LICENSE.Flora | 206 | ||||
-rwxr-xr-x | NOTICE | 4 | ||||
-rw-r--r-- | data/CMakeLists.txt | 28 | ||||
-rw-r--r-- | data/conf.h | 35 | ||||
-rw-r--r-- | data/icons/icon_taskmgr.png | bin | 17581 -> 0 bytes | |||
-rw-r--r-- | data/images/clear_all_button_icon.png | bin | 0 -> 3234 bytes | |||
-rw-r--r-- | data/images/default.png | bin | 0 -> 57662 bytes | |||
-rw-r--r-- | data/recent_app-genlist-theme.edc | 143 | ||||
-rw-r--r-- | data/recent_app-item.edc | 271 | ||||
-rw-r--r-- | data/task-mgr-lite-hd.edc | 402 | ||||
-rw-r--r-- | data/task-mgr-lite-wvga.edc | 402 | ||||
-rw-r--r-- | debian/changelog | 20 | ||||
-rwxr-xr-x | debian/compat | 1 | ||||
-rw-r--r-- | debian/control | 18 | ||||
-rw-r--r-- | debian/org.tizen.taskmgr.install.in | 3 | ||||
-rwxr-xr-x | debian/org.tizen.taskmgr.postinst | 8 | ||||
-rwxr-xr-x | debian/rules | 119 | ||||
-rw-r--r-- | include/genlist.h | 33 | ||||
-rw-r--r-- | include/genlist_item.h | 43 | ||||
-rw-r--r-- | include/recent_apps.h | 85 | ||||
-rw-r--r-- | include/task-mgr-lite.h | 43 | ||||
-rw-r--r-- | org.tizen.task-mgr.efl | 55 | ||||
-rw-r--r-- | org.tizen.task-mgr.manifest | 11 | ||||
-rw-r--r-- | org.tizen.task-mgr.xml | 11 | ||||
-rw-r--r-- | packaging/org.tizen.task-mgr.spec | 69 | ||||
-rwxr-xr-x | packaging/org.tizen.taskmgr.spec | 54 | ||||
-rw-r--r-- | po/CMakeLists.txt | 5 | ||||
-rw-r--r-- | po/CMakeLists.txt~ | 23 | ||||
-rwxr-xr-x[-rw-r--r--] | po/ar.po | 39 | ||||
-rwxr-xr-x | po/as.po | 6 | ||||
-rwxr-xr-x[-rw-r--r--] | po/az.po | 39 | ||||
-rwxr-xr-x[-rw-r--r--] | po/bg.po | 39 | ||||
-rwxr-xr-x | po/bn.po | 6 | ||||
-rwxr-xr-x[-rw-r--r--] | po/ca.po | 39 | ||||
-rwxr-xr-x[-rw-r--r--] | po/cs.po | 39 | ||||
-rwxr-xr-x[-rw-r--r--] | po/da.po | 39 | ||||
-rwxr-xr-x | po/de.po | 9 | ||||
-rwxr-xr-x[-rw-r--r--] | po/el_GR.po | 39 | ||||
-rwxr-xr-x[-rw-r--r--] | po/en.po | 39 | ||||
-rwxr-xr-x[-rw-r--r--] | po/en_PH.po | 39 | ||||
-rwxr-xr-x[-rw-r--r--] | po/en_US.po | 39 | ||||
-rwxr-xr-x[-rw-r--r--] | po/es_ES.po | 39 | ||||
-rwxr-xr-x[-rw-r--r--] | po/es_US.po | 39 | ||||
-rwxr-xr-x[-rw-r--r--] | po/et.po | 39 | ||||
-rwxr-xr-x[-rw-r--r--] | po/eu.po | 39 | ||||
-rwxr-xr-x[-rw-r--r--] | po/fi.po | 39 | ||||
-rwxr-xr-x | po/fr.po | 9 | ||||
-rwxr-xr-x[-rw-r--r--] | po/fr_CA.po | 39 | ||||
-rwxr-xr-x[-rw-r--r--] | po/ga.po | 39 | ||||
-rwxr-xr-x[-rw-r--r--] | po/gl.po | 39 | ||||
-rwxr-xr-x | po/gu.po | 6 | ||||
-rwxr-xr-x[-rw-r--r--] | po/hi.po | 39 | ||||
-rwxr-xr-x[-rw-r--r--] | po/hr.po | 39 | ||||
-rwxr-xr-x[-rw-r--r--] | po/hu.po | 39 | ||||
-rwxr-xr-x[-rw-r--r--] | po/hy.po | 39 | ||||
-rwxr-xr-x[-rw-r--r--] | po/id.po | 20 | ||||
-rwxr-xr-x[-rw-r--r--] | po/is.po | 39 | ||||
-rwxr-xr-x[-rw-r--r--] | po/it_IT.po | 39 | ||||
-rwxr-xr-x[-rw-r--r--] | po/ja_JP.po | 39 | ||||
-rwxr-xr-x[-rw-r--r--] | po/ka.po | 39 | ||||
-rwxr-xr-x[-rw-r--r--] | po/kk.po | 39 | ||||
-rwxr-xr-x | po/km.po | 6 | ||||
-rwxr-xr-x | po/kn.po | 6 | ||||
-rwxr-xr-x[-rw-r--r--] | po/ko_KR.po | 38 | ||||
-rwxr-xr-x | po/lo.po | 6 | ||||
-rwxr-xr-x[-rw-r--r--] | po/lt.po | 39 | ||||
-rwxr-xr-x[-rw-r--r--] | po/lv.po | 39 | ||||
-rwxr-xr-x[-rw-r--r--] | po/mk.po | 39 | ||||
-rwxr-xr-x | po/ml.po | 6 | ||||
-rwxr-xr-x | po/mr.po | 6 | ||||
-rwxr-xr-x[-rw-r--r--] | po/ms.po | 20 | ||||
-rwxr-xr-x | po/my.po | 6 | ||||
-rwxr-xr-x[-rw-r--r--] | po/nb.po | 39 | ||||
-rwxr-xr-x | po/ne.po | 6 | ||||
-rwxr-xr-x | po/nl.po | 9 | ||||
-rwxr-xr-x | po/or.po | 6 | ||||
-rwxr-xr-x | po/pa.po | 6 | ||||
-rwxr-xr-x[-rw-r--r--] | po/pl.po | 39 | ||||
-rwxr-xr-x[-rw-r--r--] | po/pt_BR.po | 39 | ||||
-rwxr-xr-x[-rw-r--r--] | po/pt_PT.po | 39 | ||||
-rwxr-xr-x[-rw-r--r--] | po/ro.po | 39 | ||||
-rwxr-xr-x[-rw-r--r--] | po/ru_RU.po | 39 | ||||
-rwxr-xr-x | po/si.po | 6 | ||||
-rwxr-xr-x[-rw-r--r--] | po/sk.po | 39 | ||||
-rwxr-xr-x[-rw-r--r--] | po/sl.po | 39 | ||||
-rwxr-xr-x[-rw-r--r--] | po/sr.po | 39 | ||||
-rwxr-xr-x[-rw-r--r--] | po/sv.po | 39 | ||||
-rwxr-xr-x | po/ta.po | 6 | ||||
-rwxr-xr-x | po/te.po | 6 | ||||
-rwxr-xr-x[-rw-r--r--] | po/th.po | 38 | ||||
-rwxr-xr-x | po/tl.po | 6 | ||||
-rwxr-xr-x[-rw-r--r--] | po/tr_TR.po | 39 | ||||
-rwxr-xr-x[-rw-r--r--] | po/uk.po | 39 | ||||
-rwxr-xr-x[-rw-r--r--] | po/ur.po | 38 | ||||
-rwxr-xr-x[-rw-r--r--] | po/uz.po | 39 | ||||
-rwxr-xr-x[-rw-r--r--] | po/vi.po | 20 | ||||
-rwxr-xr-x[-rw-r--r--] | po/zh_CN.po | 39 | ||||
-rwxr-xr-x[-rw-r--r--] | po/zh_HK.po | 39 | ||||
-rwxr-xr-x[-rw-r--r--] | po/zh_TW.po | 39 | ||||
-rwxr-xr-x | src/_cpu.c | 111 | ||||
-rwxr-xr-x | src/_cpu.h | 28 | ||||
-rwxr-xr-x | src/_eina.c | 310 | ||||
-rwxr-xr-x | src/_eina.h | 36 | ||||
-rwxr-xr-x | src/_genlist.c | 877 | ||||
-rwxr-xr-x | src/_genlist.h | 45 | ||||
-rwxr-xr-x | src/_info.c | 134 | ||||
-rwxr-xr-x | src/_info.h | 28 | ||||
-rwxr-xr-x | src/_logic.c | 414 | ||||
-rwxr-xr-x | src/_logic.h | 33 | ||||
-rwxr-xr-x | src/_progressbar.c | 51 | ||||
-rwxr-xr-x | src/_progressbar.h | 28 | ||||
-rwxr-xr-x | src/_util_efl.c | 288 | ||||
-rwxr-xr-x | src/_util_efl.h | 43 | ||||
-rwxr-xr-x | src/_util_log.h | 63 | ||||
-rw-r--r-- | src/genlist.c | 478 | ||||
-rw-r--r-- | src/genlist_item.c | 817 | ||||
-rwxr-xr-x | src/recent_apps.c | 804 | ||||
-rwxr-xr-x | src/task-mgr-lite.c | 477 | ||||
-rwxr-xr-x | src/taskmanager.c | 306 | ||||
-rwxr-xr-x | src/taskmanager.h | 135 | ||||
-rw-r--r-- | task-mgr-spin.creator.user | 186 |
124 files changed, 5116 insertions, 5109 deletions
diff --git a/CMakeLists.sub b/CMakeLists.sub new file mode 100644 index 0000000..27df942 --- /dev/null +++ b/CMakeLists.sub @@ -0,0 +1,26 @@ +## PROJECT NAME +PROJECT(${CMAKE_TARGET} C) + +## INCLUDES +INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include) + +## DEFINITIONS +ADD_DEFINITIONS("") + +## LIBRARY PATH +SET(SLP_LD_PATH_FLAGS "") + +## LIBRARY +SET(SLP_LD_FLAGS "") + +## DEBUG +SET(SLP_DEBUG_FLAGS "-g") + +## OPTIMIZATION +SET(SLP_OPT_FLAGS "-O0") + +## COMPILER FLAGS +SET(SLP_COMPILER_FLAGS "-Wall -Wunused") + +## LINKER FLAGS +SET(SLP_LINKER_FLAGS "") diff --git a/CMakeLists.txt b/CMakeLists.txt index 0b0e472..93eb87b 100755..100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,103 +1,71 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6) -PROJECT(taskmgr C) +PROJECT(task-mgr-lite) +# FIND ALL SOURCE IN A SOURCE DIRECTORY +AUX_SOURCE_DIRECTORY(${CMAKE_SOURCE_DIR}/src SRCS) -SET(SRCS - src/taskmanager.c - src/_util_efl.c - src/_genlist.c - src/_logic.c -# src/_cpu.c - src/_eina.c -# src/_info.c - src/_progressbar.c -) - -SET(VENDOR tizen) -SET(PACKAGE ${PROJECT_NAME}) -SET(PKGNAME "org.${VENDOR}.${PACKAGE}") -SET(PREFIX ${CMAKE_INSTALL_PREFIX}) -SET(BINDIR "${PREFIX}/bin") -SET(RESDIR "${PREFIX}/res") -SET(DATADIR "/opt/usr/apps/org.${VENDOR}.${PACKAGE}/data") -SET(LOCALEDIR "${RESDIR}/locale") -SET(ICONDIR "/usr/share/icons/default/small") -SET(IMAGEDIR "${RESDIR}/images/${PACKAGE}") -SET(EDJDIR "${RESDIR}/edje/${PACKAGE}") - -INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/src) - -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}) +#INCLUDE FILE +INCLUDE(CMakeLists.sub) +SET(PACKAGE "${PROJECT_NAME}") +SET(RESOURCE_DIR "${CMAKE_SOURCE_DIR}/res") +SET(EDJDIR "${RESOURCE_DIR}/edje/${PACKAGE}") INCLUDE(FindPkgConfig) pkg_check_modules(pkgs REQUIRED + appcore-efl + evas + edje + elementary ecore - ecore-file - ecore-input ecore-x - edje eina - evas - appcore-efl - elementary + capi-appfw-application aul - utilX + capi-system-info + capi-appfw-package-manager + capi-appfw-app-manager + pkgmgr-info rua - vconf - sysman - ail - dlog - efl-assist + feedback ) +ADD_DEFINITIONS("-DLOG_TAG=\"TASK_MGR_LITE\"") + +SET(PREFIX ${CMAKE_INSTALL_PREFIX}) +SET(RESDIR "${PREFIX}/res") +SET(EDJEDIR "${RESDIR}/edje") +SET(LOCALEDIR "${RESDIR}/locale") + FOREACH(flag ${pkgs_CFLAGS}) SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") ENDFOREACH(flag) -SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC") -SET(CMAKE_C_FLAGS_DEBUG "-O0 -g") -SET(CMAKE_C_FLAGS_RELEASE "-O2") -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") +SET(CMAKE_C_FLAGS "${SLP_DEBUG_FLAGS} ${SLP_OPT_FLAGS} ${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} ${SLP_COMPILER_FLAGS}") +SET(CMAKE_CXX_FLAGS "${SLP_DEBUG_FLAGS} ${SLP_OPT_FLAGS} ${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} ${SLP_COMPILER_FLAGS}") -ADD_DEFINITIONS("-fpie") +MESSAGE(${CMAKE_C_FLAGS}) -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("-DEDJEDIR=\"${EDJEDIR}\"") ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"") -ADD_DEFINITIONS("-DICONDIR=\"${ICONDIR}\"") -ADD_DEFINITIONS("-DIMAGEDIR=\"${IMAGEDIR}\"") -ADD_DEFINITIONS("-DEDJDIR=\"${EDJDIR}\"") - -SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed") ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS}) -TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} "-pie") -# install binary -INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR}) -# install desktop file & icon -#CONFIGURE_FILE(${PKGNAME}.desktop.in ${CMAKE_BINARY_DIR}/${PKGNAME}.desktop) -INSTALL(FILES ${CMAKE_BINARY_DIR}/${PKGNAME}.xml DESTINATION /usr/share/packages) -INSTALL(FILES ${CMAKE_SOURCE_DIR}/${PKGNAME}.png DESTINATION ${ICONDIR}) -INSTALL(FILES ${CMAKE_SOURCE_DIR}/${PKGNAME}.rule DESTINATION /opt/etc/smack/accesses.d) +TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} ${SLP_LD_PATH_FLAGS} ${SLP_LD_FLAGS} ${SLP_LINKER_FLAGS}) + +# Install +INSTALL(TARGETS ${PROJECT_NAME} DESTINATION bin) -#install application HOME directory -INSTALL(DIRECTORY DESTINATION ${DATADIR}) +#Install images +INSTALL(DIRECTORY data/images/ DESTINATION res/images) -# i18n +# Install Manifest File +INSTALL(FILES org.tizen.task-mgr.xml DESTINATION /usr/share/packages) +INSTALL(FILES data/recent_app-genlist-theme.edj DESTINATION res/edje) +INSTALL(FILES data/recent_app-item.edj DESTINATION res/edje) +INSTALL(FILES data/task-mgr-lite-hd.edj DESTINATION res/edje) +INSTALL(FILES data/task-mgr-lite-wvga.edj DESTINATION res/edje) +INSTALL(FILES org.tizen.task-mgr.efl DESTINATION /etc/smack/accesses.d) +# End of a file ADD_SUBDIRECTORY(po) +ADD_SUBDIRECTORY(data) @@ -0,0 +1,204 @@ +Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + diff --git a/LICENSE.Flora b/LICENSE.Flora deleted file mode 100755 index 571fe79..0000000 --- a/LICENSE.Flora +++ /dev/null @@ -1,206 +0,0 @@ -Flora License - -Version 1.1, April, 2013 - -http://floralicense.org/license/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, -and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by -the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and -all other entities that control, are controlled by, or are -under common control with that entity. For the purposes of -this definition, "control" means (i) the power, direct or indirect, -to cause the direction or management of such entity, -whether by contract or otherwise, or (ii) ownership of fifty percent (50%) -or more of the outstanding shares, or (iii) beneficial ownership of -such entity. - -"You" (or "Your") shall mean an individual or Legal Entity -exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, -including but not limited to software source code, documentation source, -and configuration files. - -"Object" form shall mean any form resulting from mechanical -transformation or translation of a Source form, including but -not limited to compiled object code, generated documentation, -and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, -made available under the License, as indicated by a copyright notice -that is included in or attached to the work (an example is provided -in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, -that is based on (or derived from) the Work and for which the editorial -revisions, annotations, elaborations, or other modifications represent, -as a whole, an original work of authorship. For the purposes of this License, -Derivative Works shall not include works that remain separable from, -or merely link (or bind by name) to the interfaces of, the Work and -Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original -version of the Work and any modifications or additions to that Work or -Derivative Works thereof, that is intentionally submitted to Licensor -for inclusion in the Work by the copyright owner or by an individual or -Legal Entity authorized to submit on behalf of the copyright owner. -For the purposes of this definition, "submitted" means any form of -electronic, verbal, or written communication sent to the Licensor or -its representatives, including but not limited to communication on -electronic mailing lists, source code control systems, and issue -tracking systems that are managed by, or on behalf of, the Licensor -for the purpose of discussing and improving the Work, but excluding -communication that is conspicuously marked or otherwise designated -in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity -on behalf of whom a Contribution has been received by Licensor and -subsequently incorporated within the Work. - -"Tizen Certified Platform" shall mean a software platform that complies -with the standards set forth in the Tizen Compliance Specification -and passes the Tizen Compliance Tests as defined from time to time -by the Tizen Technical Steering Group and certified by the Tizen -Association or its designated agent. - -2. Grant of Copyright License. Subject to the terms and conditions of -this License, each Contributor hereby grants to You a perpetual, -worldwide, non-exclusive, no-charge, royalty-free, irrevocable -copyright license to reproduce, prepare Derivative Works of, -publicly display, publicly perform, sublicense, and distribute the -Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of -this License, each Contributor hereby grants to You a perpetual, -worldwide, non-exclusive, no-charge, royalty-free, irrevocable -(except as stated in this section) patent license to make, have made, -use, offer to sell, sell, import, and otherwise transfer the Work -solely as incorporated into a Tizen Certified Platform, where such -license applies only to those patent claims licensable by such -Contributor that are necessarily infringed by their Contribution(s) -alone or by combination of their Contribution(s) with the Work solely -as incorporated into a Tizen Certified Platform to which such -Contribution(s) was submitted. If You institute patent litigation -against any entity (including a cross-claim or counterclaim -in a lawsuit) alleging that the Work or a Contribution incorporated -within the Work constitutes direct or contributory patent infringement, -then any patent licenses granted to You under this License for that -Work shall terminate as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the -Work or Derivative Works thereof pursuant to the copyright license -above, in any medium, with or without modifications, and in Source or -Object form, provided that You meet the following conditions: - - 1. You must give any other recipients of the Work or Derivative Works - a copy of this License; and - 2. You must cause any modified files to carry prominent notices stating - that You changed the files; and - 3. You must retain, in the Source form of any Derivative Works that - You distribute, all copyright, patent, trademark, and attribution - notices from the Source form of the Work, excluding those notices - that do not pertain to any part of the Derivative Works; and - 4. If the Work includes a "NOTICE" text file as part of its distribution, - then any Derivative Works that You distribute must include a readable - copy of the attribution notices contained within such NOTICE file, - excluding those notices that do not pertain to any part of - the Derivative Works, in at least one of the following places: - within a NOTICE text file distributed as part of the Derivative Works; - within the Source form or documentation, if provided along with the - Derivative Works; or, within a display generated by the Derivative Works, - if and wherever such third-party notices normally appear. - The contents of the NOTICE file are for informational purposes only - and do not modify the License. You may add Your own attribution notices - within Derivative Works that You distribute, alongside or as an addendum - to the NOTICE text from the Work, provided that such additional attribution - notices cannot be construed as modifying the License. You may add Your own - copyright statement to Your modifications and may provide additional or - different license terms and conditions for use, reproduction, or - distribution of Your modifications, or for any such Derivative Works - as a whole, provided Your use, reproduction, and distribution of - the Work otherwise complies with the conditions stated in this License - and your own copyright statement or terms and conditions do not conflict - the conditions stated in the License including section 3. - -5. Submission of Contributions. Unless You explicitly state otherwise, -any Contribution intentionally submitted for inclusion in the Work -by You to the Licensor shall be under the terms and conditions of -this License, without any additional terms or conditions. -Notwithstanding the above, nothing herein shall supersede or modify -the terms of any separate license agreement you may have executed -with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade -names, trademarks, service marks, or product names of the Licensor, -except as required for reasonable and customary use in describing the -origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or -agreed to in writing, Licensor provides the Work (and each -Contributor provides its Contributions) on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -implied, including, without limitation, any warranties or conditions -of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A -PARTICULAR PURPOSE. You are solely responsible for determining the -appropriateness of using or redistributing the Work and assume any -risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, -whether in tort (including negligence), contract, or otherwise, -unless required by applicable law (such as deliberate and grossly -negligent acts) or agreed to in writing, shall any Contributor be -liable to You for damages, including any direct, indirect, special, -incidental, or consequential damages of any character arising as a -result of this License or out of the use or inability to use the -Work (including but not limited to damages for loss of goodwill, -work stoppage, computer failure or malfunction, or any and all -other commercial damages or losses), even if such Contributor -has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing -the Work or Derivative Works thereof, You may choose to offer, -and charge a fee for, acceptance of support, warranty, indemnity, -or other liability obligations and/or rights consistent with this -License. However, in accepting such obligations, You may act only -on Your own behalf and on Your sole responsibility, not on behalf -of any other Contributor, and only if You agree to indemnify, -defend, and hold each Contributor harmless for any liability -incurred by, or claims asserted against, such Contributor by reason -of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -APPENDIX: How to apply the Flora License to your work - -To apply the Flora License to your work, attach the following -boilerplate notice, with the fields enclosed by brackets "[]" -replaced with your own identifying information. (Don't include -the brackets!) The text should be enclosed in the appropriate -comment syntax for the file format. We also recommend that a -file or class name and description of purpose be included on the -same "printed page" as the copyright notice for easier -identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Flora License, Version 1.1 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://floralicense.org/license/ - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - @@ -1,3 +1 @@ -Copyright (c) 2012 Samsung Electronics Co., Ltd. All rights reserved. -Except as noted, this software is licensed under Flora License, Version 1.1 -Please, see the LICENSE file for Flora License, Version 1.1 terms and conditions. +Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt new file mode 100644 index 0000000..cc2648e --- /dev/null +++ b/data/CMakeLists.txt @@ -0,0 +1,28 @@ + +ADD_CUSTOM_TARGET(recent_app-genlist-theme.edj + COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images + ${CMAKE_SOURCE_DIR}/data/recent_app-genlist-theme.edc ${CMAKE_BINARY_DIR}/data/recent_app-genlist-theme.edj + DEPENDS ${CMAKE_SOURCE_DIR}/data/recent_app-genlist-theme.edc +) +ADD_DEPENDENCIES(${PROJECT_NAME} recent_app-genlist-theme.edj) + +ADD_CUSTOM_TARGET(recent_app-item.edj + COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images + ${CMAKE_SOURCE_DIR}/data/recent_app-item.edc ${CMAKE_BINARY_DIR}/data/recent_app-item.edj + DEPENDS ${CMAKE_SOURCE_DIR}/data/recent_app-item.edc +) +ADD_DEPENDENCIES(${PROJECT_NAME} recent_app-item.edj) + +ADD_CUSTOM_TARGET(task-mgr-lite-hd.edj + COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images + ${CMAKE_SOURCE_DIR}/data/task-mgr-lite-hd.edc ${CMAKE_BINARY_DIR}/data/task-mgr-lite-hd.edj + DEPENDS ${CMAKE_SOURCE_DIR}/data/task-mgr-lite-hd.edc +) +ADD_DEPENDENCIES(${PROJECT_NAME} task-mgr-lite-hd.edj) + +ADD_CUSTOM_TARGET(task-mgr-lite-wvga.edj + COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images + ${CMAKE_SOURCE_DIR}/data/task-mgr-lite-wvga.edc ${CMAKE_BINARY_DIR}/data/task-mgr-lite-wvga.edj + DEPENDS ${CMAKE_SOURCE_DIR}/data/task-mgr-lite-wvga.edc +) +ADD_DEPENDENCIES(${PROJECT_NAME} task-mgr-lite-wvga.edj)
\ No newline at end of file diff --git a/data/conf.h b/data/conf.h new file mode 100644 index 0000000..cd7184e --- /dev/null +++ b/data/conf.h @@ -0,0 +1,35 @@ +/* + * Task Manager + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 __CONF_X_H__ +#define __CONF_X_H__ + +#define SCREEN_WIDTH 480.0 +#define INDICATOR_SIZE 60 + +#define BG_AREA_COLOR_CLASS "B016" +#define NO_ITEM_TEXT_TEXT_STYLE "ATO004" + +#define SCREEN_HEIGHT_HD 1280.0 +#define ITEM_HEIGHT_HD 155 + +#define SCREEN_HEIGHT_WVGA 800.0 +#define ITEM_HEIGHT_WVGA 116 + +#endif diff --git a/data/icons/icon_taskmgr.png b/data/icons/icon_taskmgr.png Binary files differdeleted file mode 100644 index 983c883..0000000 --- a/data/icons/icon_taskmgr.png +++ /dev/null diff --git a/data/images/clear_all_button_icon.png b/data/images/clear_all_button_icon.png Binary files differnew file mode 100644 index 0000000..4ba500c --- /dev/null +++ b/data/images/clear_all_button_icon.png diff --git a/data/images/default.png b/data/images/default.png Binary files differnew file mode 100644 index 0000000..9765b1b --- /dev/null +++ b/data/images/default.png diff --git a/data/recent_app-genlist-theme.edc b/data/recent_app-genlist-theme.edc new file mode 100644 index 0000000..048b890 --- /dev/null +++ b/data/recent_app-genlist-theme.edc @@ -0,0 +1,143 @@ +/* + * Task Manager + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 "conf.h" + +#define GENLIST_NAME(NAME) \ + name: "elm/genlist/item/"NAME; \ + alias: "elm/genlist/item_odd/"NAME; \ + alias: "elm/genlist/item_compress/"NAME; \ + alias: "elm/genlist/item_compress_odd/"NAME; \ + alias: "elm/genlist/tree/"NAME; \ + alias: "elm/genlist/tree_odd/"NAME; \ + alias: "elm/genlist/tree_compress/"NAME; \ + alias: "elm/genlist/tree_compress_odd/"NAME; \ + + +#define GENLIST_PROLOG \ +data.item: "stacking" "above"; \ +data.item: "selectraise" "on"; \ +data.item: "treesize" 0; + +collections +{ + base_scale: 1.8; + group + { + GENLIST_NAME("recent_app,list,full/default") + GENLIST_PROLOG + + parts + { + part + { + name: "disclip"; + type: RECT; + mouse_events: 1; + scale: 1; + description + { + state: "default" 0.0; + rel1 {relative: 0.0 0.0;} + rel2 {relative: 1.0 1.0;} + } + description + { + state: "disabled" 0.0; + inherit: "default" 0.0; + } + } + part + { + name: "bg"; + clip_to: "disclip"; + type: RECT; + scale: 1; + mouse_events: 1; + description + { + state: "default" 0.0; + color: 0 0 0 0; + rel1 { relative: 0.0 0.0; } + rel2 { relative: 1.0 1.0; } + min: SCREEN_WIDTH 60; + } + description + { + state: "selected" 0.0; + inherit: "default" 0.0; + } + } + + part { + name: "top,line"; + clip_to: "disclip"; + type: RECT; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; } + rel2 { relative: 1.0 0.0; offset: 0 0; } + color: 0 0 0 0; + } + } + + part + { + name: "bottom,line"; + clip_to: "disclip"; + type: RECT; + mouse_events: 0; + description + { + state: "default" 0.0; + rel1 { relative: 0.0 1.0; offset: 0 -1; } + rel2 { relative: 1.0 1.0; } + color: 0 0 0 0; + } + } + }//parts + }//group + + group { + GENLIST_NAME("noti/default"); + GENLIST_PROLOG + + data.item: "contents" "elm.icon"; + + parts { + part { + name: "elm.icon"; + type: SWALLOW; + mouse_events: 1; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; } + rel2 { relative: 1.0 1.0; } + visible: 1; + min: SCREEN_WIDTH 108; + max: SCREEN_WIDTH 108; + } + } + + } + } +} diff --git a/data/recent_app-item.edc b/data/recent_app-item.edc new file mode 100644 index 0000000..4d63684 --- /dev/null +++ b/data/recent_app-item.edc @@ -0,0 +1,271 @@ +/* + * Task Manager + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 "conf.h" + +// #define ENABLE_QUIT_BTN + +styles { + style { + name: "title_style_item"; + base: "font=Tizen:style=Regular text_class=tizen font_size=25 align=left color=#ffffffff style=shadow shadow_color=#000000bf wrap=mixed"; + } +} + +collections +{ + base_scale: 1.8; + plugins { + plugin { + name: "touch_sound"; + source: "feedback"; + param: "1 0"; + } + } + +/* group + { + name: "recent_app_item_scroller"; + parts + { + part + { + name: "bg"; + type: RECT; + scale: 1; + description + { + state: "default" 0.0; + color: 0 0 0 0; + min: SCREEN_WIDTH ITEM_HEIGHT_WVGA; + max: SCREEN_WIDTH ITEM_HEIGHT_WVGA; + rel1 {relative: 0.0 0.0;} + rel2 {relative: 1.0 1.0;} + } + } + } + }*/ + group + { + name: "recent_app_item_main"; + parts + { + part + { + name: "bg"; + type: RECT; + scale: 1; + mouse_events: 0; + description + { + state: "default" 0.0; + color: 0 0 0 0; + min: SCREEN_WIDTH ITEM_HEIGHT_WVGA; + max: SCREEN_WIDTH ITEM_HEIGHT_WVGA; + rel1 {relative: 0.0 0.0;} + rel2 {relative: 1.0 1.0;} + } + } + part { + name: "clipper_clear_all_icon"; + type: RECT; + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + color: 255 255 255 255; + } + description { + state: "fade_out" 0.0; + inherit: "default"; + color: 255 255 255 0; + } + } + part { + name: "clipper_clear_all_text"; + type: RECT; + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + color: 255 255 255 255; + } + description { + state: "fade_out" 0.0; + inherit: "default"; + color: 255 255 255 0; + } + } + part + { + name: "clear_all_button"; // clear_all_icon(image) + type: SWALLOW; + scale: 1; + clip_to: "clipper_clear_all_icon"; + mouse_events: 0; + description + { + state: "default" 0.0; + rel1 {relative: 0.48 0.4; to: "bg"; offset: 0 -7;} + rel2 {relative: 0.52 1.0; to: "bg";} + align: 0.5 0.5; + min: 46 46; + visible: 1; + } + description + { + state: "hide" 0.0; + inherit: "default" 0.0; + visible: 0; + } + } + part{ + name: "icon_text"; // icon_text + type: TEXTBLOCK; + clip_to: "clipper_clear_all_text"; + scale: 1; + mouse_events: 0; + description + { + state: "default" 0.0; + fixed : 0 1; + color: 255 255 255 255; + rel1 {relative: 0.61 0.0; to_x: "bg"; to_y: "icon_image";} + rel2 {relative: 0.90 1.0; to_x: "bg"; to_y: "icon_image";} + align: 0.5 0.5; + text { + style: title_style_item; + min : 0 1; + } + } + } + part{ + name: "clear_all_text"; // clear_all_text + type: TEXTBLOCK; + clip_to: "clipper_clear_all_text"; + scale: 1; + mouse_events: 0; + description + { + state: "default" 0.0; + fixed : 0 1; + color: 255 255 255 255; + rel1 {relative: 0.61 0.5; to_x: "bg"; to_y: "clear_all_button";} + rel2 {relative: 0.90 0.5; to_x: "bg"; to_y: "clear_all_button";} + align: 0.5 0.5; + text { + style: title_style_item; + min : 0 1; + } + } + } + +#if defined(ENABLE_QUIT_BTN) + part{ + name: "quit"; + type: TEXT; + scale: 1; + description + { + state: "default" 0.0; + color: 255 0 0 255; + rel1 {relative: 0.2 0.0; to: "icon_image"; offset: 0 -23;} + rel2 {relative: 0.8 0.1; to: "icon_image"; offset: 0 -8;} + text { + min : 0 1; + size: 15; + align: 0.5 0.0; + } + } + description + { + state: "show" 0.0; + inherit: "default" 0.0; + text { + text: Quit; + } + } + } +#endif + + part{ + name: "icon_button"; + type: RECT; + scale: 1; + mouse_events: 1; + /*repeat_events: 1;*/ + description + { + state: "default" 0.0; + color: 0 0 0 0; + rel1 {relative: 0.35 0.1; to: "bg";} + rel2 {relative: 0.8 0.9; to: "bg";} + } + } + part + { + name: "icon_image"; + type: SWALLOW; + scale: 1; + description + { + state: "default" 0.0; + rel1 {relative: 0.48 0.15; to: "bg";} + rel2 {relative: 0.52 0.95; to: "bg";} + min: 72 72; + max: 72 72; + } + } + } + programs{ +#if defined(ENABLE_QUIT_BTN) + program { + name: "quit_show"; + signal: "quit,show"; + source: "layout"; + action: STATE_SET "show" 0.0; + target: "quit"; + } + program { + name: "quit_hide"; + signal: "quit,hide"; + source: "layout"; + action: STATE_SET "default" 0.0; + target: "quit"; + } +#endif + program { + name: "clear_all_button_fade_out"; + signal: "clear_all_button_fade_out"; + source: "layout"; + action: STATE_SET "fade_out" 0.0; + target: "clipper_clear_all_icon"; + transition: LINEAR 0.2; + } + program { + name: "clear_all_text_fade_out"; + signal: "clear_all_text_fade_out"; + source: "layout"; + action: STATE_SET "fade_out" 0.0; + target: "clipper_clear_all_text"; + transition: LINEAR 0.2; + } + } + } +} diff --git a/data/task-mgr-lite-hd.edc b/data/task-mgr-lite-hd.edc new file mode 100644 index 0000000..4f03b47 --- /dev/null +++ b/data/task-mgr-lite-hd.edc @@ -0,0 +1,402 @@ +/* + * Task Manager + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 "conf.h" + +styles { + style { + name: "title_style_hd"; + base: "font="DEFAULT_FONT":style=Normal text_class="DEFAULT_FONT" font_size=22 align=center color=#ffffffff style=shadow shadow_color=#000000bf wrap=mixed"; + } + + style { + name: "no_item_style_hd"; + base: "font="DEFAULT_FONT":style=Normal text_class="DEFAULT_FONT" font_size=30 align=center color=#ffffffff color_class=NO_ITEM_TEXT_TEXT_STYLE style=shadow shadow_color=#000000bf wrap=mixed"; + } +} +/* +images { + image: "btn_clear.png" COMP; + image: "btn_sys_moni.png" COMP; +} +*/ +collections +{ + base_scale: 1.8; + group + { + name: "task_mgr_ui"; + parts + { + part + { + name: "bg"; + type: RECT; + description + { + state: "default" 0.0; + + color: 0 0 0 178; + // color_class: BG_AREA_COLOR_CLASS; + + rel1 {relative: 0.0 0.0;} + rel2 {relative: 1.0 1.0;} + } + } + part{ + name: "static_line"; + type: RECT; + scale: 1; + mouse_events: 0; + clip_to: "clipper"; + description + { + state: "default" 0.0; + color: 255 255 255 255; + rel1 {relative: 0.0 0.0; to: "genlist"; offset: 0 100;} + rel2 {relative: 1.0 1.0; to: "genlist";} + align : 0.5 0.5; + fixed : 1 1; + min : 2 0; + max : 2 -1; + visible: 0; + } + description + { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { + name: "clipper"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + color: 255 255 255 255; + // rel1.to: "static_line"; + // rel2.to: "static_line"; + } + description { + state: "fade_out" 0.0; + inherit: "default"; + color: 255 255 255 0; + } + } + part + { + name: "genlist"; + type: SWALLOW; + description + { + state: "default" 0.0; + visible: 1.0; + rel1 + { + relative: 0.0 0.0; + to: "bg"; + } + + rel2 + { + relative: 1.0 1.0; + to: "bg"; + } + } + description + { + state: "1_item" 0.0; + visible: 1.0; + rel1 + { + relative: 0.0 (SCREEN_HEIGHT_HD-ITEM_HEIGHT_HD)/SCREEN_HEIGHT_HD; + to: "bg"; + } + + rel2 + { + relative: 1.0 1.0; + to: "bg"; + } + } + description + { + state: "2_item" 0.0; + visible: 1.0; + rel1 + { + relative: 0.0 (SCREEN_HEIGHT_HD-(2*ITEM_HEIGHT_HD))/SCREEN_HEIGHT_HD; + to: "bg"; + } + + rel2 + { + relative: 1.0 1.0; + to: "bg"; + } + } + description + { + state: "3_item" 0.0; + visible: 1.0; + rel1 + { + relative: 0.0 (SCREEN_HEIGHT_HD-(3*ITEM_HEIGHT_HD))/SCREEN_HEIGHT_HD; + to: "bg"; + } + + rel2 + { + relative: 1.0 1.0; + to: "bg"; + } + } + description + { + state: "4_item" 0.0; + visible: 1.0; + rel1 + { + relative: 0.0 (SCREEN_HEIGHT_HD-(4*ITEM_HEIGHT_HD))/SCREEN_HEIGHT_HD; + to: "bg"; + } + + rel2 + { + relative: 1.0 1.0; + to: "bg"; + } + } + description + { + state: "5_item" 0.0; + visible: 1.0; + rel1 + { + relative: 0.0 (SCREEN_HEIGHT_HD-(5*ITEM_HEIGHT_HD))/SCREEN_HEIGHT_HD; + to: "bg"; + } + + rel2 + { + relative: 1.0 1.0; + to: "bg"; + } + } + description + { + state: "6_item" 0.0; + visible: 1.0; + rel1 + { + relative: 0.0 (SCREEN_HEIGHT_HD-(6*ITEM_HEIGHT_HD))/SCREEN_HEIGHT_HD; + to: "bg"; + } + + rel2 + { + relative: 1.0 1.0; + to: "bg"; + } + } + description + { + state: "7_item" 0.0; + visible: 1.0; + rel1 + { + relative: 0.0 (SCREEN_HEIGHT_HD-(7*ITEM_HEIGHT_HD))/SCREEN_HEIGHT_HD; + to: "bg"; + } + + rel2 + { + relative: 1.0 1.0; + to: "bg"; + } + } + description + { + state: "8_item" 0.0; + visible: 1.0; + rel1 + { + relative: 0.0 (SCREEN_HEIGHT_HD-(8*ITEM_HEIGHT_HD))/SCREEN_HEIGHT_HD; + to: "bg"; + } + + rel2 + { + relative: 1.0 1.0; + to: "bg"; + } + } + } + part{ + name: "no_item_label"; + type: TEXTBLOCK; + scale: 1; + mouse_events: 0; + description + { + state: "default" 0.0; + color: 255 255 255 255; + rel1 {relative: 0.0 0.0; to: "bg";} + rel2 {relative: 1.0 1.0; to: "bg";} + text + { + text: "No recent apps"; + style: "no_item_style_hd"; + align: 0.5 0.5; + } + + visible: 0; + } + description + { + state: "visible" 0.0; + inherit: "default"; + + visible: 1; + } + } + } + + programs + { + program + { + signal: "no_apps_text,show"; + source: "no_item_label"; + action: STATE_SET "visible" 0.0; + target: "no_item_label"; + } + + program + { + signal: "no_apps_text,hide"; + source: "no_item_label"; + action: STATE_SET "default" 0.0; + target: "no_item_label"; + } + program + { + signal: "1_item,show"; + source: "genlist"; + action: STATE_SET "1_item" 0.0; + target: "genlist"; + } + + program + { + signal: "2_item,show"; + source: "genlist"; + action: STATE_SET "2_item" 0.0; + target: "genlist"; + } + program + { + signal: "3_item,show"; + source: "genlist"; + action: STATE_SET "3_item" 0.0; + target: "genlist"; + } + + program + { + signal: "4_item,show"; + source: "genlist"; + action: STATE_SET "4_item" 0.0; + target: "genlist"; + } + program + { + signal: "5_item,show"; + source: "genlist"; + action: STATE_SET "5_item" 0.0; + target: "genlist"; + } + program + { + signal: "6_item,show"; + source: "genlist"; + action: STATE_SET "6_item" 0.0; + target: "genlist"; + } + program + { + signal: "7_item,show"; + source: "genlist"; + action: STATE_SET "7_item" 0.0; + target: "genlist"; + } + program + { + signal: "8_item,show"; + source: "genlist"; + action: STATE_SET "8_item" 0.0; + target: "genlist"; + } + program + { + signal: "default,show"; + source: "genlist"; + action: STATE_SET "default" 0.0; + target: "genlist"; + } + program { + signal: "line_fade_out"; + source: "clipper"; + action: STATE_SET "fade_out" 0.0; + target: "clipper"; + transition: LINEAR 0.1; + } + program { + signal: "clipper_show"; + source: "clipper"; + action: STATE_SET "default" 0.0; + target: "clipper"; + } + program { + signal: "line,show"; + source: "static_line"; + action: STATE_SET "show" 0.0; + target: "static_line"; + } + program { + signal: "line,hide"; + source: "static_line"; + action: STATE_SET "default" 0.0; + target: "static_line"; + } + script + { + public message(Msg_Type:type, id, ...) { + if((type == MSG_INT_SET) && (id == 1)) { + new distance = getarg(2); + custom_state(PART:"static_line", "show", 0.0); + set_state_val(PART:"static_line", STATE_REL1_OFFSET, 0, 100-distance); + set_state(PART:"static_line", "custom", 0.0); + } + } + } + } + } +} diff --git a/data/task-mgr-lite-wvga.edc b/data/task-mgr-lite-wvga.edc new file mode 100644 index 0000000..2de28ad --- /dev/null +++ b/data/task-mgr-lite-wvga.edc @@ -0,0 +1,402 @@ +/* + * Task Manager + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 "conf.h" + +styles { + style { + name: "title_style_wvga"; + base: "font="DEFAULT_FONT":style=Normal text_class="DEFAULT_FONT" font_size=22 align=center color=#ffffffff style=shadow shadow_color=#000000bf wrap=mixed"; + } + + style { + name: "no_item_style_wvga"; + base: "font="DEFAULT_FONT":style=Normal text_class="DEFAULT_FONT" font_size=30 align=center color=#ffffffff color_class=NO_ITEM_TEXT_TEXT_STYLE style=shadow shadow_color=#000000bf wrap=mixed"; + } +} +/* +images { + image: "btn_clear.png" COMP; + image: "btn_sys_moni.png" COMP; +} +*/ +collections +{ + base_scale: 1.8; + group + { + name: "task_mgr_ui"; + parts + { + part + { + name: "bg"; + type: RECT; + description + { + state: "default" 0.0; + + color: 0 0 0 178; + // color_class: BG_AREA_COLOR_CLASS; + + rel1 {relative: 0.0 0.0;} + rel2 {relative: 1.0 1.0;} + } + } + part{ + name: "static_line"; + type: RECT; + scale: 1; + mouse_events: 0; + clip_to: "clipper"; + description + { + state: "default" 0.0; + color: 255 255 255 255; + rel1 {relative: 0.0 0.0; to: "genlist"; offset: 0 100;} + rel2 {relative: 1.0 1.0; to: "genlist";} + align : 0.5 0.5; + fixed : 1 1; + min : 2 0; + max : 2 -1; + visible: 0; + } + description + { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { + name: "clipper"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + color: 255 255 255 255; + // rel1.to: "static_line"; + // rel2.to: "static_line"; + } + description { + state: "fade_out" 0.0; + inherit: "default"; + color: 255 255 255 0; + } + } + part + { + name: "genlist"; + type: SWALLOW; + description + { + state: "default" 0.0; + visible: 1.0; + rel1 + { + relative: 0.0 0.0; + to: "bg"; + } + + rel2 + { + relative: 1.0 1.0; + to: "bg"; + } + } + description + { + state: "1_item" 0.0; + visible: 1.0; + rel1 + { + relative: 0.0 (SCREEN_HEIGHT_WVGA-ITEM_HEIGHT_WVGA)/SCREEN_HEIGHT_WVGA; + to: "bg"; + } + + rel2 + { + relative: 1.0 1.0; + to: "bg"; + } + } + description + { + state: "2_item" 0.0; + visible: 1.0; + rel1 + { + relative: 0.0 (SCREEN_HEIGHT_WVGA-(2*ITEM_HEIGHT_WVGA))/SCREEN_HEIGHT_WVGA; + to: "bg"; + } + + rel2 + { + relative: 1.0 1.0; + to: "bg"; + } + } + description + { + state: "3_item" 0.0; + visible: 1.0; + rel1 + { + relative: 0.0 (SCREEN_HEIGHT_WVGA-(3*ITEM_HEIGHT_WVGA))/SCREEN_HEIGHT_WVGA; + to: "bg"; + } + + rel2 + { + relative: 1.0 1.0; + to: "bg"; + } + } + description + { + state: "4_item" 0.0; + visible: 1.0; + rel1 + { + relative: 0.0 (SCREEN_HEIGHT_WVGA-(4*ITEM_HEIGHT_WVGA))/SCREEN_HEIGHT_WVGA; + to: "bg"; + } + + rel2 + { + relative: 1.0 1.0; + to: "bg"; + } + } + description + { + state: "5_item" 0.0; + visible: 1.0; + rel1 + { + relative: 0.0 (SCREEN_HEIGHT_WVGA-(5*ITEM_HEIGHT_WVGA))/SCREEN_HEIGHT_WVGA; + to: "bg"; + } + + rel2 + { + relative: 1.0 1.0; + to: "bg"; + } + } + description + { + state: "6_item" 0.0; + visible: 1.0; + rel1 + { + relative: 0.0 (SCREEN_HEIGHT_WVGA-(6*ITEM_HEIGHT_WVGA))/SCREEN_HEIGHT_WVGA; + to: "bg"; + } + + rel2 + { + relative: 1.0 1.0; + to: "bg"; + } + } + description + { + state: "7_item" 0.0; + visible: 1.0; + rel1 + { + relative: 0.0 (SCREEN_HEIGHT_WVGA-(7*ITEM_HEIGHT_WVGA))/SCREEN_HEIGHT_WVGA; + to: "bg"; + } + + rel2 + { + relative: 1.0 1.0; + to: "bg"; + } + } + description + { + state: "8_item" 0.0; + visible: 1.0; + rel1 + { + relative: 0.0 (SCREEN_HEIGHT_WVGA-(8*ITEM_HEIGHT_WVGA))/SCREEN_HEIGHT_WVGA; + to: "bg"; + } + + rel2 + { + relative: 1.0 1.0; + to: "bg"; + } + } + } + part{ + name: "no_item_label"; + type: TEXTBLOCK; + scale: 1; + mouse_events: 0; + description + { + state: "default" 0.0; + color: 255 255 255 255; + rel1 {relative: 0.0 0.0; to: "bg";} + rel2 {relative: 1.0 1.0; to: "bg";} + text + { + text: "No recent apps"; + style: "no_item_style_wvga"; + align: 0.5 0.5; + } + + visible: 0; + } + description + { + state: "visible" 0.0; + inherit: "default"; + + visible: 1; + } + } + } + + programs + { + program + { + signal: "no_apps_text,show"; + source: "no_item_label"; + action: STATE_SET "visible" 0.0; + target: "no_item_label"; + } + + program + { + signal: "no_apps_text,hide"; + source: "no_item_label"; + action: STATE_SET "default" 0.0; + target: "no_item_label"; + } + program + { + signal: "1_item,show"; + source: "genlist"; + action: STATE_SET "1_item" 0.0; + target: "genlist"; + } + + program + { + signal: "2_item,show"; + source: "genlist"; + action: STATE_SET "2_item" 0.0; + target: "genlist"; + } + program + { + signal: "3_item,show"; + source: "genlist"; + action: STATE_SET "3_item" 0.0; + target: "genlist"; + } + + program + { + signal: "4_item,show"; + source: "genlist"; + action: STATE_SET "4_item" 0.0; + target: "genlist"; + } + program + { + signal: "5_item,show"; + source: "genlist"; + action: STATE_SET "5_item" 0.0; + target: "genlist"; + } + program + { + signal: "6_item,show"; + source: "genlist"; + action: STATE_SET "6_item" 0.0; + target: "genlist"; + } + program + { + signal: "7_item,show"; + source: "genlist"; + action: STATE_SET "7_item" 0.0; + target: "genlist"; + } + program + { + signal: "8_item,show"; + source: "genlist"; + action: STATE_SET "8_item" 0.0; + target: "genlist"; + } + program + { + signal: "default,show"; + source: "genlist"; + action: STATE_SET "default" 0.0; + target: "genlist"; + } + program { + signal: "line_fade_out"; + source: "clipper"; + action: STATE_SET "fade_out" 0.0; + target: "clipper"; + transition: LINEAR 0.1; + } + program { + signal: "clipper_show"; + source: "clipper"; + action: STATE_SET "default" 0.0; + target: "clipper"; + } + program { + signal: "line,show"; + source: "static_line"; + action: STATE_SET "show" 0.0; + target: "static_line"; + } + program { + signal: "line,hide"; + source: "static_line"; + action: STATE_SET "default" 0.0; + target: "static_line"; + } + script + { + public message(Msg_Type:type, id, ...) { + if((type == MSG_INT_SET) && (id == 1)) { + new distance = getarg(2); + custom_state(PART:"static_line", "show", 0.0); + set_state_val(PART:"static_line", STATE_REL1_OFFSET, 0, 100-distance); + set_state(PART:"static_line", "custom", 0.0); + } + } + } + } + } +} diff --git a/debian/changelog b/debian/changelog deleted file mode 100644 index 6f22138..0000000 --- a/debian/changelog +++ /dev/null @@ -1,20 +0,0 @@ -taskmanager (0.14.5-1) oneiric; urgency=low - - * update version to 0.14.5-1 - - -- minho07.kim <minho07.kim@samsung.com> Mon, 21 Jan 2013 13:45:25 +0900 - -taskmanager (0.14.3-1) oneiric; urgency=low - - * Fix N_SE-17797 : Running Apps are blinking. - - -- minho07.kim <minho07.kim@samsung.com> Mon, 07 Jan 2013 15:26:49 +0900 - -taskmanager (0.14.2-1) oneiric; urgency=low - - * Apply open code - * Git : apps/home/taskmanager - * Tag : taskmanager_0.14.2-1 - - -- Hong Kwon <hhh.kwon@samsung.com> Mon, 13 Aug 2012 19:47:16 +0900 - diff --git a/debian/compat b/debian/compat deleted file mode 100755 index 7ed6ff8..0000000 --- a/debian/compat +++ /dev/null @@ -1 +0,0 @@ -5 diff --git a/debian/control b/debian/control deleted file mode 100644 index 86b9915..0000000 --- a/debian/control +++ /dev/null @@ -1,18 +0,0 @@ -Source: taskmanager -Section: devel -Priority: extra -Maintainer: Junghyun Kim <jh1114.kim>, hhh.kwon <hhh.kwon@samsung.com> -Uploaders: Noha Park <noha.park@samsung.com> -Build-Depends: debhelper (>= 5), libappcore-efl-dev, libelm-dev, libaul-1-dev, libslp-utilx-dev, librua-dev, libslp-sysman-dev, libail-0-dev, dlog-dev -Standards-Version: 3.7.2 - -Package: org.tizen.taskmgr -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Task Manager - -Package: org.tizen.taskmgr-dbg -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Task Manager Debug Symbols - Debug symbols for taskmanager diff --git a/debian/org.tizen.taskmgr.install.in b/debian/org.tizen.taskmgr.install.in deleted file mode 100644 index b3f2e22..0000000 --- a/debian/org.tizen.taskmgr.install.in +++ /dev/null @@ -1,3 +0,0 @@ -@PREFIX@/* -/usr/share/applications/* -/usr/share/icons/default/small/org.tizen.taskmgr.png diff --git a/debian/org.tizen.taskmgr.postinst b/debian/org.tizen.taskmgr.postinst deleted file mode 100755 index ab566dd..0000000 --- a/debian/org.tizen.taskmgr.postinst +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -if [ x"${USER}" == x"root" ] -then - #5000 is inhouse user id - #do not use relative path - chown -R 5000:5000 /usr/apps/org.tizen.taskmgr/data -fi diff --git a/debian/rules b/debian/rules deleted file mode 100755 index 1df424f..0000000 --- a/debian/rules +++ /dev/null @@ -1,119 +0,0 @@ -#!/usr/bin/make -f -# -*- makefile -*- -# Sample debian/rules that uses debhelper. -# This file was originally written by Joey Hess and Craig Small. -# As a special exception, when this file is copied by dh-make into a -# dh-make output file, you may use that output file without restriction. -# This special exception was added by Craig Small in version 0.37 of dh-make. - -# Uncomment this to turn on verbose mode. -#export DH_VERBOSE=1 - -CFLAGS ?= -Wall -g -CXXFLAGS ?= -Wall -g -LDFLAGS ?= -PREFIX ?= /opt/apps/org.tizen.taskmgr -RESDIR ?= /opt/apps/org.tizen.taaskmgr/res -DATADIR ?= /opt/apps/org.tizen.taskmgr/data - -ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) - CFLAGS += -O0 - CXXFLAGS += -O0 -else - CFLAGS += -O2 - CXXFLAGS += -O2 -endif - -CFLAGS += -fPIC -CXXFLAGS += -fPIC - -LDFLAGS += -Wl,--rpath=$(PREFIX)/lib -Wl,--hash-style=both -Wl,--as-needed -CMAKE_BUILD_DIR ?= ${CURDIR}/cmake_build_tmp - -configure: configure-stamp -configure-stamp: - dh_testdir - # Add here commands to configure the package. - mkdir -p $(CMAKE_BUILD_DIR) && cd $(CMAKE_BUILD_DIR) && \ - CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" cmake .. -DCMAKE_INSTALL_PREFIX=$(PREFIX) - - touch configure-stamp - -build: build-stamp - -build-stamp: configure-stamp - dh_testdir - - # Add here commands to compile the package. - cd $(CMAKE_BUILD_DIR) && $(MAKE) - #docbook-to-man debian/wavplayer.sgml > wavplayer.1 - - for f in `find $(CURDIR)/debian/ -name "*.in"`; do \ - cat $$f > $${f%.in}; \ - sed -i -e "s#@PREFIX@#$(PREFIX)#g" $${f%.in}; \ - sed -i -e "s#@RESDIR@#$(RESDIR)#g" $${f%.in}; \ - sed -i -e "s#@DATADIR@#$(DATADIR)#g" $${f%.in}; \ - done - - touch $@ - -clean: - dh_testdir - dh_testroot - rm -f build-stamp configure-stamp - - # Add here commands to clean up after the build process. - rm -rf $(CMAKE_BUILD_DIR) - - for f in `find $(CURDIR)/debian/ -name "*.in"`; do \ - rm -f $${f%.in}; \ - done - - dh_clean - -install: build - dh_testdir - dh_testroot - dh_clean -k -# dh_installdirs - - # Add here commands to install the package into debian/wavplayer. - cd $(CMAKE_BUILD_DIR) && $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install - -# Build architecture-independent files here. -binary-indep: build install -# We have nothing to do by default. - -# Build architecture-dependent files here. -binary-arch: build install - dh_testdir - dh_testroot -# dh_installchangelogs -# dh_installdocs - dh_installexamples - dh_install --sourcedir=debian/tmp -# dh_installmenu -# dh_installdebconf -# dh_installlogrotate -# dh_installemacsen -# dh_installpam -# dh_installmime -# dh_python -# dh_installinit -# dh_installcron -# dh_installinfo - dh_installman - dh_link - dh_strip --dbg-package=org.tizen.taskmgr-dbg - dh_compress - dh_fixperms -# dh_perl - dh_makeshlibs - dh_installdeb - dh_shlibdeps - dh_gencontrol - dh_md5sums - dh_builddeb - -binary: binary-indep binary-arch -.PHONY: build clean binary-indep binary-arch binary install configure diff --git a/include/genlist.h b/include/genlist.h new file mode 100644 index 0000000..de2a8fa --- /dev/null +++ b/include/genlist.h @@ -0,0 +1,33 @@ +/* + * Task Manager + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 GENLIST_H_ +#define GENLIST_H_ + +extern Evas_Object* recent_app_panel_create(Evas_Object *win); +extern Eina_Bool genlist_update_timer_cb(void *data); +extern void genlist_item_show(Evas_Object *genlist); +extern Evas_Object *genlist_init(Evas_Object *win, Evas_Object *layout, Eina_List *running_apps, Eina_List *recent_apps); +extern void genlist_clear_list(Evas_Object *genlist); +extern void genlist_icon_transparent(Eina_List *recent_apps, Eina_List *running_apps); +extern void genlist_update(Evas_Object *genlist, Eina_List *recent_apps, Eina_List *running_apps); +extern int genlist_count(); +extern Elm_Object_Item *genlist_clear_all_item_btn(void); + +#endif /* GENLIST_H_ */ diff --git a/include/genlist_item.h b/include/genlist_item.h new file mode 100644 index 0000000..bc7a66a --- /dev/null +++ b/include/genlist_item.h @@ -0,0 +1,43 @@ +/* + * Task Manager + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 __RECENT_APP_ITEM_H__ +#define __RECENT_APP_ITEM_H__ + +extern Eina_Bool is_scrolling; +extern Eina_Bool no_shutdown; +extern Eina_Bool icon_pressed; +Evas_Object *layout; + +extern Elm_Genlist_Item_Class *get_item_class(void); +extern Elm_Genlist_Item_Class *get_clear_all_class(void); +extern void set_running_app_counter(int new_count); +extern void set_recent_app_counter(int new_count); +extern void remove_item_from_genlist(Evas_Object *genlist, Elm_Object_Item *item_new); +extern Elm_Genlist_Item_Class *genlist_item_class_create(void); +extern Elm_Genlist_Item_Class *genlist_clear_all_class_create(void); +extern void genlist_item_class_destroy(void); +extern void genlist_clear_all_class_destroy(void); +extern void on_list_scroll_drag_stop(void *data, Evas_Object *obj, void *event_info); +extern void on_list_scroll_drag_start(void *data, Evas_Object *obj, void *event_info); +extern void on_list_scroll_move(void *data, Evas_Object *obj, void *event_info); // This is for moving center line. +extern void transparent_icon_cb(void *data, Evas_Object *obj, void *event_info); +extern Evas_Object* recent_app_item_create(Evas_Object *win, char *icon, char *title, char *appid, list_type_default_s *item); + +#endif diff --git a/include/recent_apps.h b/include/recent_apps.h new file mode 100644 index 0000000..e815521 --- /dev/null +++ b/include/recent_apps.h @@ -0,0 +1,85 @@ +/* + * Task Manager + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 RECENT_APPS_H_ +#define RECENT_APPS_H_ + +#define retv_if(expr, val) do { \ + if(expr) { \ + LOGE("(%s) -> %s() return", #expr, __FUNCTION__); \ + return (val); \ + } \ +} while (0) + +#define ret_if(expr) do { \ + if(expr) { \ + LOGE("(%s) -> %s() return", #expr, __FUNCTION__); \ + return; \ + } \ +} while (0) + +typedef struct _app_list { + Eina_List *list; + unsigned int cur_idx; +} app_list; + +typedef struct { + int pid; + Eina_Bool is_running; + Elm_Object_Item *it; + Evas_Object *data; + Evas_Object *box; + Evas_Object *icon_object; +// Evas_Object *line1; +// Evas_Object *line2; + + char *pkgid; + char *appid; + char *name; + char *icon; + char *arg; + + Eina_Bool nodisplay; +// Eina_Bool enabled; + Eina_Bool unmounted; + Eina_Bool multi_launch; + Eina_Bool isAlreadySet; + + time_t launch_time; +} list_type_default_s; + +typedef struct +{ + char *appid; + int pid; +} Get_Pid_Struct; + +extern void recent_apps_kill_all(); +extern int recent_apps_find_by_appid(char *appid); +extern Eina_Bool launch_app(const char *appid); +extern Eina_Bool recent_apps_kill_selected(char *appid, int pid); + +extern int recent_app_list_create(app_list **history_list_p, app_list **running_list_p); +extern void recent_app_list_destroy(app_list *history_list, app_list *running_list); + +/*temporarily unused: +list_type_default_s *find_app_from_db_by_pkgid(char *pkg_id); +*/ + +#endif /* RECENT_APPS_H_ */ diff --git a/include/task-mgr-lite.h b/include/task-mgr-lite.h new file mode 100644 index 0000000..9e271cd --- /dev/null +++ b/include/task-mgr-lite.h @@ -0,0 +1,43 @@ +/* + * Task Manager + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 __TASK_MGR_LITE__H__ +#define __TASK_MGR_LITE__H__ + +#define EDJE_DIR "/usr/apps/org.tizen.task-mgr/res/edje/" +#define EDJE_DIR_TASK_MGR_LITE_HD EDJE_DIR"task-mgr-lite-hd.edj" +#define EDJE_DIR_TASK_MGR_LITE_WVGA EDJE_DIR"task-mgr-lite-wvga.edj" + +#define D_(str) dgettext("task-mgr", str) + +#define WVGA_SCREEN_WIDTH 480 +#define WVGA_SCREEN_HEIGHT 800 +#define WIDTH_REGION 453 +#define HEIGHT_REGION 103 +#define MULTIPLIER_PAGES 3 + +extern Evas_Object *task_mgr_get_win(void); +extern Evas_Object *task_mgr_get_layout(void); +extern Evas_Object *task_mgr_get_list(void); +extern Eina_List *task_mgr_history_list(void); +extern Eina_List *task_mgr_running_list(void); +extern int task_mgr_get_screen_width(void); +extern void task_mgr_hide(void); + +#endif // __TASK_MGR_LITE__H__ diff --git a/org.tizen.task-mgr.efl b/org.tizen.task-mgr.efl new file mode 100644 index 0000000..fafbb49 --- /dev/null +++ b/org.tizen.task-mgr.efl @@ -0,0 +1,55 @@ +org.tizen.task-mgr system::vconf rwxat- ------ +org.tizen.task-mgr system::homedir rwxat- ------ +org.tizen.task-mgr system::media rwxat- ------ +org.tizen.task-mgr system::share rwxat- ------ +org.tizen.task-mgr system::use_internet r----- ------ +org.tizen.task-mgr system::vconf_network rwx--- ------ +org.tizen.task-mgr system::vconf_system rwx--- ------ +org.tizen.task-mgr system::vconf_inhouse rwx--- ------ +org.tizen.task-mgr system::vconf_multimedia rw---- ------ +org.tizen.task-mgr system::ext_storage rwxat- ------ +org.tizen.task-mgr secure-storage-client rw---- ------ +org.tizen.task-mgr pulseaudio rwxat- ------ +org.tizen.task-mgr system r-x--- ------ +org.tizen.task-mgr xorg rw---- ------ +org.tizen.task-mgr device::bklight rw---- ------ +org.tizen.task-mgr org.tizen.indicator rwx--- ------ +org.tizen.task-mgr org.tizen.quickpanel rwx--- ------ +org.tizen.task-mgr crash-popup r-x--- ------ +org.tizen.task-mgr system-server rwx--- ------ +org.tizen.task-mgr immvibed rw---- ------ +org.tizen.task-mgr display_wd r-x--- ------ +org.tizen.task-mgr sound_server rwxa-- ------ +org.tizen.task-mgr dbus rwx--- ------ +org.tizen.task-mgr e17 rw---- ------ +org.tizen.task-mgr aul rwx--- ------ +org.tizen.task-mgr aul::launch rwx--- ------ +org.tizen.task-mgr aul::terminate --x--- ------ +org.tizen.task-mgr app-svc rwx--- ------ +org.tizen.task-mgr aul_amd rwx--- ------ +org.tizen.task-mgr pkgmgr::db rwx--- ------ +org.tizen.task-mgr trm -w---- ------ +org.tizen.task-mgr svi-data r-x--- ------ +org.tizen.task-mgr ail::db rw---- ------ +org.tizen.task-mgr org.tizen.oma-dm r-x--- ------ +org.tizen.task-mgr _ -w---- ------ +org.tizen.task-mgr sys-assert::core rwxat- ------ +org.tizen.task-mgr isf rwx--- ------ +org.tizen.task-mgr media-server r-x--- ------ +org.tizen.task-mgr deviced rwx--- ------ +org.tizen.task-mgr notification::db rw---- ------ +org.tizen.task-mgr data-provider-master rw---- ------ +org.tizen.task-mgr data-provider-master::notification rw---- ------ +org.tizen.task-mgr data-provider-master::notification.client rw---- ------ +org.tizen.task-mgr org.tizen.setting::default-resources r-x--- ------ +org.tizen.task-mgr starter::vconf rw---- ------ +org.tizen.task-mgr device::app_logging -w---- ------ +org.tizen.task-mgr device::sys_logging -w---- ------ +org.tizen.task-mgr oma-ds-agent::cfg r----- ------ +org.tizen.task-mgr oma-ds-agent::svc rw---- ------ +org.tizen.task-mgr rua::db rwx--- ------ +org.tizen.indicator org.tizen.task-mgr rwx--- ------ +e17 org.tizen.task-mgr rw---- ------ +system org.tizen.task-mgr -w---- ------ +display_wd org.tizen.task-mgr -w---- ------ +dbus org.tizen.task-mgr rwx--- ------ diff --git a/org.tizen.task-mgr.manifest b/org.tizen.task-mgr.manifest new file mode 100644 index 0000000..9a6888c --- /dev/null +++ b/org.tizen.task-mgr.manifest @@ -0,0 +1,11 @@ +<manifest> + <define> + <domain name="org.tizen.task-mgr" /> + </define> + <request> + <domain name="org.tizen.task-mgr" /> + </request> + <assign> + <filesystem path="/usr/apps/org.tizen.task-mgr/bin/task-mgr" label="org.tizen.task-mgr" exec_label="org.tizen.task-mgr" /> + </assign> +</manifest> diff --git a/org.tizen.task-mgr.xml b/org.tizen.task-mgr.xml new file mode 100644 index 0000000..a361e93 --- /dev/null +++ b/org.tizen.task-mgr.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<manifest xmlns="http://tizen.org/ns/packages" package="org.tizen.task-mgr" version="0.1.0" install-location="internal-only"> + <label>task-mgr</label> + <author email="k.maskanka@samsung.com" href="www.samsung.com">Kamil Maslanka</author> + <author email="m.skorupinsk@samsung.com" href="www.samsung.com">Michal Skorupinski</author> + <description>TASK MANAGER APPLICATION</description> + <ui-application appid="org.tizen.task-mgr" exec="/usr/apps/org.tizen.task-mgr/bin/task-mgr" nodisplay="true" multiple="false" type="capp" taskmanage="false" hw-acceleration="use-GL"> + <label>task-mgr</label> + <label xml:lang="en-us">task-mgr</label> + </ui-application> +</manifest> diff --git a/packaging/org.tizen.task-mgr.spec b/packaging/org.tizen.task-mgr.spec new file mode 100644 index 0000000..97a1ef3 --- /dev/null +++ b/packaging/org.tizen.task-mgr.spec @@ -0,0 +1,69 @@ +%define Exec task-mgr +%define _project_name task-mgr +%define _package_name org.tizen.%{_project_name} +%define AppInstallPath /usr/apps/%{_package_name} + +Name: org.tizen.task-mgr +Summary: Taskmanager application +Version: 0.0.1 +Release: 1 +License: Apache-2.0 +Source0: %{name}-%{version}.tar.gz + +BuildRequires: pkgconfig(appcore-efl) +BuildRequires: pkgconfig(capi-appfw-application) +BuildRequires: pkgconfig(ecore) +BuildRequires: pkgconfig(ecore-x) +BuildRequires: pkgconfig(eina) +BuildRequires: pkgconfig(evas) +BuildRequires: pkgconfig(edje) +BuildRequires: edje-tools +BuildRequires: gettext-tools +BuildRequires: pkgconfig(dlog) +BuildRequires: pkgconfig(elementary) +BuildRequires: pkgconfig(capi-system-info) +BuildRequires: pkgconfig(capi-appfw-package-manager) +BuildRequires: pkgconfig(capi-appfw-app-manager) +BuildRequires: cmake +BuildRequires: pkgconfig(aul) +BuildRequires: pkgconfig(pkgmgr-info) +BuildRequires: pkgconfig(rua) +BuildRequires: pkgconfig(feedback) + +%description +Taskmanager application. + +%prep +%setup -q + +%build +%if 0%{?sec_build_binary_debug_enable} +export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE" +export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE" +export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE" +%endif +cmake . -DCMAKE_INSTALL_PREFIX="%{AppInstallPath}" -DCMAKE_TARGET="%{Exec}" -DCMAKE_PACKAGE="%{_package_name}" +make %{?jobs:-j%jobs} + +%install +rm -rf %{buildroot} +%make_install + +%post +/sbin/ldconfig +chown -R root:root %{AppInstallPath} + +%postun -p /sbin/ldconfig + +%files +%manifest %{_package_name}.manifest +%defattr(-,root,root,-) +%{AppInstallPath}/bin/task-mgr +%{AppInstallPath}/res/edje/recent_app-genlist-theme.edj +%{AppInstallPath}/res/edje/recent_app-item.edj +%{AppInstallPath}/res/edje/task-mgr-lite-hd.edj +%{AppInstallPath}/res/edje/task-mgr-lite-wvga.edj +%{AppInstallPath}/res/images/*.png +/usr/share/packages/%{_package_name}.xml +/etc/smack/accesses.d/%{_package_name}.efl +%{AppInstallPath}/res/locale/*/LC_MESSAGES/* diff --git a/packaging/org.tizen.taskmgr.spec b/packaging/org.tizen.taskmgr.spec deleted file mode 100755 index 8f08991..0000000 --- a/packaging/org.tizen.taskmgr.spec +++ /dev/null @@ -1,54 +0,0 @@ -Name: org.tizen.taskmgr -Summary: Task Manager -Version: 0.14.7 -Release: 1 -Group: devel -License: Flora Software License -Source0: %{name}-%{version}.tar.gz -BuildRequires: pkgconfig(appcore-efl) -BuildRequires: pkgconfig(efl-assist) -BuildRequires: pkgconfig(elementary) -BuildRequires: pkgconfig(aul) -BuildRequires: pkgconfig(utilX) -BuildRequires: pkgconfig(rua) -BuildRequires: pkgconfig(sysman) -BuildRequires: pkgconfig(ail) - -BuildRequires: cmake -BuildRequires: edje-bin -BuildRequires: embryo-bin -BuildRequires: gettext-devel - -%description -Task Manager. - -%prep -%setup -q - -%build -%define PREFIX "/usr/apps/org.tizen.taskmgr" -%define RESDIR "/usr/apps/org.tizen.taskmgr/res" -%define DATADIR "/opt/usr/apps/org.tizen.taskmgr/data" - -cmake . -DCMAKE_INSTALL_PREFIX=%{PREFIX} - -make %{?jobs:-j%jobs} - -%install -rm -rf %{buildroot} -%make_install - -mkdir -p %{buildroot}/usr/share/license -cp LICENSE.Flora %{buildroot}/usr/share/license/%{name} - -%files -%manifest org.tizen.taskmgr.manifest -%defattr(-,root,root,-) -/usr/apps/org.tizen.taskmgr/bin/* -/usr/apps/org.tizen.taskmgr/res/* -%attr(-,inhouse,inhouse) -/opt/usr/apps/org.tizen.taskmgr/data -/usr/share/packages/* -/usr/share/icons/default/small/org.tizen.taskmgr.png -/opt/etc/smack/accesses.d/org.tizen.taskmgr.rule -/usr/share/license/%{name} diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt index d7a85f7..2d1db70 100644 --- a/po/CMakeLists.txt +++ b/po/CMakeLists.txt @@ -1,6 +1,6 @@ # for i18n -SET(POFILES hy.po az.po eu.po bg.po ca.po zh_CN.po zh_HK.po zh_TW.po hr.po cs.po da.po nl_NL.po en.po en_US.po et.po fi.po fr_FR.po gl.po ka.po de_DE.po el_GR.po hu.po is.po ga.po it_IT.po ja_JP.po kk.po ko_KR.po lv.po lt.po mk.po nb.po pl.po pt_PT.po pt_BR.po ro.po ru_RU.po sr.po sk.po sl.po es_ES.po es_US.po es_MX.po sv.po tr_TR.po uk.po uz.po ar.po zh_SG.po hi.po en_PH.po fr_CA.po) +SET(POFILES ar.po az.po bg.po ca.po cs.po da.po de.po el_GR.po en.po en_PH.po en_US.po es_ES.po es_US.po et.po eu.po fi.po fr.po fr_CA.po ga.po gl.po hi.po hr.po hu.po hy.po is.po it_IT.po ja_JP.po ka.po kk.po ko_KR.po lt.po lv.po mk.po nb.po nl.po pl.po pt_BR.po pt_PT.po ro.po ru_RU.po sk.po sl.po sr.po sv.po tr_TR.po uk.po uz.po zh_CN.po zh_HK.po zh_TW.po) SET(MSGFMT "/usr/bin/msgfmt") @@ -15,8 +15,7 @@ FOREACH(pofile ${POFILES}) COMMAND ${MSGFMT} -o ${moFile} ${absPofile} DEPENDS ${absPofile} ) - INSTALL(FILES ${moFile} - DESTINATION ${LOCALEDIR}/${lang}/LC_MESSAGES RENAME ${PROJECT_NAME}.mo) + INSTALL(FILES ${moFile} DESTINATION ${LOCALEDIR}/${lang}/LC_MESSAGES RENAME ${PROJECT_NAME}.mo) SET(moFiles ${moFiles} ${moFile}) ENDFOREACH(pofile) diff --git a/po/CMakeLists.txt~ b/po/CMakeLists.txt~ new file mode 100644 index 0000000..bc0eeba --- /dev/null +++ b/po/CMakeLists.txt~ @@ -0,0 +1,23 @@ +# for i18n + +SET(POFILES ar.po az.po bg.po ca.po cs.po da.po de.po el_GR.po en.po en_PH.po en_US.po es_ES.po es_US.po et.po eu.po fi.po fr.po fr_CA.po ga.po gl.po hi.po hr.po hu.po hy.po is.po it_IT.po ja_JP.po ka.po kk.po lt.po lv.po mk.po nb.po nl.po pl.po pt_BR.po pt_PT.po ro.po ru_RU.po sk.po sl.po sr.po sv.po tr_TR.po uk.po uz.po zh_CN.po zh_HK.po zh_TW.po) + +SET(MSGFMT "/usr/bin/msgfmt") + +FOREACH(pofile ${POFILES}) + SET(pofile ${CMAKE_CURRENT_SOURCE_DIR}/${pofile}) + MESSAGE("PO: ${pofile}") + GET_FILENAME_COMPONENT(absPofile ${pofile} ABSOLUTE) + GET_FILENAME_COMPONENT(lang ${absPofile} NAME_WE) + SET(moFile ${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo) + ADD_CUSTOM_COMMAND( + OUTPUT ${moFile} + COMMAND ${MSGFMT} -o ${moFile} ${absPofile} + DEPENDS ${absPofile} + ) + INSTALL(FILES ${moFile} DESTINATION ${LOCALEDIR}/${lang}/LC_MESSAGES RENAME ${PROJECT_NAME}.mo) + SET(moFiles ${moFiles} ${moFile}) +ENDFOREACH(pofile) + +MESSAGE(".mo files: ${moFiles}") +ADD_CUSTOM_TARGET(po ALL DEPENDS ${moFiles}) @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "مسح المحفوظات" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "ما من تطبيقات" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "إغلاق جميع التطبيقات" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "مدير المهام" -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "الركض" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "لا توجد تطبيقات مفتوحة" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "لا توجد تطبيقات مستخدمة مؤخرا" - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "المستخدمة مؤخرًا" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "هل تريد مسح محفوظات التطبيق كافة؟" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "هل تريد مسح محفوظات %s؟" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "هل تريد إغلاق جميع التطبيقات؟ قد يؤدي ذلك إلى فقد البيانات" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "هل تريد إغلاق تطبيق %s؟ قد يؤدي ذلك إلى فقد البيانات" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "يتعذر فتح التطبيق" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "محول المهام" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "مسح الكل" diff --git a/po/as.po b/po/as.po new file mode 100755 index 0000000..789e74a --- /dev/null +++ b/po/as.po @@ -0,0 +1,6 @@ +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "সকলো পৰিষ্কাৰ" + +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "কোনো এপ্লিকেশ্বন নাই" + @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Tarixçəni sil" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Proqram yoxdur" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Bütün proqramları bağla" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Tapşr mnc" -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "İşləyir" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "Açıq proqram yoxdur" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "Son işlənmiş prqrm yoxdur" - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Son istifadə olunan" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Bütün proqram tarixçəsi silinsin?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "%s tarixçəsi silinsin?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Bütün proqramlar bağlansın? Bu məlumatların itirilməsinə səbəb ola bilər" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "%s proqramı bağlansın? Bu məlumatların itirilməsinə səbəb ola bilər" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "Proqramı açmaq mümkün deyil" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Tapşırıq keçiricisi" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Hamısını sil" @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Изтриване хронол." +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Няма приложения" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Затвори всички приложения" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Задачи" -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "Изпълнява се" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "Няма отворени приложения" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "Няма изп. наскоро прил." - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Последно използван" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Изтриване на хронологията на всички приложения?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "Изтриване на хронологията на %s?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Затваряне на всички приложения? Това може да причини загуба на данни" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Затваряне на приложението %s? Това може да причини загуба на данни" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "Приложението не може да се отвори" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Превключване на задачи" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Изтр. всч" diff --git a/po/bn.po b/po/bn.po new file mode 100755 index 0000000..6f12ad8 --- /dev/null +++ b/po/bn.po @@ -0,0 +1,6 @@ +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "সমস্ত পরিষ্কার" + +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "কোনও অ্যাপ্লিকেশন নেই" + @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Netejar l'historial" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Cap aplicació" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Tancar totes les aplicacions" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Adm tasq" -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "En funcionament" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "Cap aplicació oberta" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "Cap aplic utilitz fa poc" - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Utilitzats recentment" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Esborrar tot l'historial d'aplicacions?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "Esborrar l'historial de %s?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Tancar totes les aplicacions? Aquesta acció pot fer que es perdin dades" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Tancar l'aplicació %s? Aquesta acció pot fer que es perdin dades" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "No es pot obrir l'aplicació" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Commutador de tasques" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Esbor tot" @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Smazat historii" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Žádné aplikace" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Ukončit všechny aplikace" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Sp. úloh" -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "Běh" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "Žádné otevřené aplikace" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "Žádné použité aplikace" - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Poslední použitý" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Smazat historii všech aplikací?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "Smazat historii %s?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Ukončit všechny aplikace? Může dojít ke ztrátě dat" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Ukončit aplikaci %s? Může dojít ke ztrátě dat" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "Aplikaci se nepodařilo otevřít" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Přepínač úloh" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Smazat vše" @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Ryd historik" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Ingen applikationer" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Luk alle programmer" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Opg.styr" -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "Kører" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "Ingen åbne programmer" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "Ingen sen. brugte progr." - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Senest brugt" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Slet al programhistorik?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "Slet %s historik?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Lukke alle programmer? Dette kan medføre tab af data" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Luk %s program? Dette kan medføre tab af data" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "Kan ikke åbne program" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Opgaveskifter" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Slet alle" diff --git a/po/de.po b/po/de.po new file mode 100755 index 0000000..cc49976 --- /dev/null +++ b/po/de.po @@ -0,0 +1,9 @@ +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Keine Anwendungen" + +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Task-Mgr." + +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Alle löschen" + diff --git a/po/el_GR.po b/po/el_GR.po index c05eafe..3e6c930 100644..100755 --- a/po/el_GR.po +++ b/po/el_GR.po @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Εκκαθ. ιστορικού" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Καμία εφαρμογή" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Κλείσιμο όλων των εφαρμογών" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Διαχ. ερ." -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "Σε εκτέλεση" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "Καμία ανοιχτή εφαρμογή" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "Καμία πρόσφ. χρησ. εφαρ." - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Χρησιμοποιήθηκε πρόσφατα" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Εκκαθάριση ιστορικού όλων των εφαρμογών;" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "Εκκαθάριση ιστορικού %s;" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Να κλείσουν όλες οι εφαρμογές; Αυτό ενδέχεται να προκαλέσει την απώλεια δεδομένων" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Να κλείσει η εφαρμογή %s; Αυτό ενδέχεται να προκαλέσει την απώλεια δεδομένων" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "Δεν είναι δυνατό το άνοιγμα της εφαρμογής" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Εφαρμογή εναλλαγής εργασιών" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Διαγραφή όλων" @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Clear history" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "No applications" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Close all applications" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Task mgr" -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "Running" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "No apps open" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "No recently used apps" - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Recently used" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Clear all apps history?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "Clear %s history?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Close all apps? This may cause data to be lost." - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Close %s app? This may cause data to be lost" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "Unable to open application" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Task switcher" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Clear all" diff --git a/po/en_PH.po b/po/en_PH.po index 1526d83..3f97657 100644..100755 --- a/po/en_PH.po +++ b/po/en_PH.po @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Clear history" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "No applications" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Close all applications" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Task mgr" -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "Running" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "No apps open" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "No recently used apps" - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Recently used" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Clear all apps history?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "Clear %s history?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Close all apps? This may cause data to be lost." - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Close %s app? This may cause data to be lost." - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "Unable to open application" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Task switcher" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Clear all" diff --git a/po/en_US.po b/po/en_US.po index 1526d83..3f97657 100644..100755 --- a/po/en_US.po +++ b/po/en_US.po @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Clear history" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "No applications" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Close all applications" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Task mgr" -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "Running" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "No apps open" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "No recently used apps" - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Recently used" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Clear all apps history?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "Clear %s history?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Close all apps? This may cause data to be lost." - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Close %s app? This may cause data to be lost." - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "Unable to open application" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Task switcher" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Clear all" diff --git a/po/es_ES.po b/po/es_ES.po index 093c114..8adcae0 100644..100755 --- a/po/es_ES.po +++ b/po/es_ES.po @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Borrar historial" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "No hay aplicaciones" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Cerrar todas las aplicaciones" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Adm tarea" -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "En uso" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "Sin aplicaciones abiertas" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "Sin aplic usadas recient" - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "De uso reciente" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "¿Borrar todo el historial de aplicaciones?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "¿Borrar el historial de %s?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "¿Cerrar todas las aplicaciones? Esta acción puede provocar la pérdida de datos" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "¿Cerrar la aplicación %s? Esta acción puede provocar la pérdida de datos" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "No se puede abrir la aplicación" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Conmutador de tareas" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Borrar todo" diff --git a/po/es_US.po b/po/es_US.po index 75c339b..948a691 100644..100755 --- a/po/es_US.po +++ b/po/es_US.po @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Eliminar historial" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "No hay aplicaciones" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Cerrar todas las aplicaciones" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Adm. tar." -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "En uso" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "No hay aplic. abiertas" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "No hay aplic. usadas rec." - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "De uso reciente" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "¿Eliminar historial de todas las aplicaciones?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "¿Eliminar historial de %s?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "¿Cerrar todas las aplicaciones? Esto puede causar la pérdida de datos" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "¿Cerrar aplicación %s? Esto puede causar la pérdida de datos" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "No se pudo abrir la aplicación" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Conmutador de tareas" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Eliminar todo" @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Kustuta ajalugu" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Rakendusi pole" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Sulge kõik rakendused" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Ül. hal." -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "Töötab" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "Ükski rak. ei ole avatud" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "Hiljuti kasut. rak. pole" - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Hiljuti kasutatud" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Kas kustutada kogu rakenduste ajalugu?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "Kas kustutada rakenduse %s ajalugu?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Kas sulgeda kõik vestlused? See võib põhjustada andmekao" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Kas sulgeda rakendus %s? See võib põhjustada andmekao" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "Rakendust ei saa avada" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Ülesannete vahetaja" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Tühjenda kõik" @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Garbitu historia" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Ez dago aplikaziorik" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Itxi aplikazio guztiak" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Eg. kud." -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "Funtzionatzen" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "Aplikazio irekirik ez" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "Berriki erabili ez diren apl." - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Berriki erabili da" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Garbitu aplikazioen historia osoa?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "Garbitu %s historia?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Itxi aplikazio guztiak? Baliteke datuak galaraztea" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Itxi %s aplikazioa? Baliteke datuak gala+J135raztea" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "Ezin da aplikazioa ireki" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Ataza aldatzailea" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Garbitu guztiak" @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Tyhjennä historia" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Sovelluksia ei ole" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Sulje kaikki sovellukset" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Teht.h." -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "Käynnissä" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "Sovelluksia ei käynnissä" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "Viim. käyt. sov. ei ole" - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Viimeksi käytetyt" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Tyhjennetäänkö koko sovellushistoria?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "Tyhjennetäänkö kohteen %s historia?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Suljetaanko kaikki sovellukset? Tietoja voidaan menettää" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Suljetaanko sovellus %s? Tietoja voidaan menettää" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "Sovellusta ei voi avata" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Tehtävänvaihtaja" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Tyhj. kaikki" diff --git a/po/fr.po b/po/fr.po new file mode 100755 index 0000000..4071977 --- /dev/null +++ b/po/fr.po @@ -0,0 +1,9 @@ +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Aucune application" + +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Gest. tâches" + +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Effacer tout" + diff --git a/po/fr_CA.po b/po/fr_CA.po index 8b2bc6c..4071977 100644..100755 --- a/po/fr_CA.po +++ b/po/fr_CA.po @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Effacer historique" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Aucune application" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Fermer toutes les applications" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Gest. tâches" -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "Exécution" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "Aucune appli ouverte" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "Auc appli récemment util" - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Récemment utilisée" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Effacer l'historique de toutes les applications ?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "Effacer l'historique %s ?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Fermer toutes les applications ? Cela peut entrainer la perte de données" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Fermer l'application %s ? Cela peut entrainer la perte de données" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "Impossible d'ouvrir l'application" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Sélecteur de tâches" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Effacer tout" @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Glan stair" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Níl feidhmchláir ann" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Dún gach feidhmchlár" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Bain. tasc" -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "Ar rith" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "Níl fchláir oscailte ann" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "Níl f'chláir le déanaí ann" - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Úsáidte le déanaí" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Glan gach stair feidhmchlár?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "Glan stair %s?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Dún gach feidhmchlár? Is féidir go gcaillfear sonraí dá bharr" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Dún feidhmchlár %s? Is féidir go gcaillfear sonraí dá bharr" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "Ní féidir an feidhmchlár a oscailt" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Malartóir tascanna" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Glan gach" @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Borrar o historial" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Non hai aplicacións" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Pechar todas as aplicacións" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Adm.tare." -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "Executando" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "Sen aplicacións abertas" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "Ning. aplic. usada recen." - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Usado recentemente" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Desexas borrar o historial de todas as aplicacións?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "Desexas borrar o historial de %s?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Desexas pechar todas as aplicacións? É posible que isto provoque a perda de datos" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Desexas pechar a aplicación %s? É posible que isto provoque a perda de datos" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "Non se pode abrir a aplicación" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Selector de tarefas" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Borrar todo" diff --git a/po/gu.po b/po/gu.po new file mode 100755 index 0000000..6d7abd5 --- /dev/null +++ b/po/gu.po @@ -0,0 +1,6 @@ +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "બધું સાફ કરો" + +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "કોઇ એપ્લિકેશનો નથી" + @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "इतिहास साफ़ करें" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "कोई एप्लीकेशंस नहीं" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "सभी एप्लीकेशंस बंद करें" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "कार्य प्रबंधक" -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "चल रहा है" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "कोई ऐप्स खुली नहीं" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "कोई हाल ही में उपयोग की गई ऐप्स नहीं" - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "हाल ही में उपयोग किए" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "सभी ऐप इतिहास साफ़ करें?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "%s इतिहास साफ़ करें?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "सभी ऐप्स बंद करें? इससे डाटा हानि हो सकती है" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "%s ऐप बंद करें? इससे डाटा हानि हो सकती है" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "एप्लीकेशन खोलने में अक्षम" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "कार्य स्विचर" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "सभी साफ करें" @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Obriši povijest" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Nema aplikacija" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Zatvori sve aplikacije" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Zadaci" -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "Pokrenuto" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "Nema otvorenih aplikacija" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "Nema nedavnih aplikacija" - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Nedavno korišteno" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Obrisati svu povijest aplikacija?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "Obrisati %s povijest?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Zatvoriti sve aplikacije? To može uzrokovati gubitak podataka" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Zatvoriti %s aplikaciju? To može uzrokovati gubitak podataka" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "Nemoguće otvoriti aplikaciju" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Biranje zadatka" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Obriši sve" @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Előzmények törlése" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Nincs alkalmazás" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Összes alkalmazás bezárása" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Felad.kez." -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "Futás" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "Nincs megnyitott alk." - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "A legut. alk. list. üres" - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Legutóbb használt" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Törli az összes alkalmazás előzményeit?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "Törli a(z) %s előzményeit?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Bezárja az összes alkalmazást? Így adatok veszhetnek el" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Bezár %s alkalmazást? Így adatok veszhetnek el" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "Nem lehet megnyitni az alkalmazást" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Feladatváltó" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Össz. Törlése" @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Մաքրել պատմությունը" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Ծրագրեր չկան" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Փակել բոլոր ծրագրերը" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Առջ. կռվչ" -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "Աշխատեցում" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "Բաց ծագրեր չկան" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "Վերջերս օգտ. ծրագրեր չկան" - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Վերջերս օգտագործված" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Մաքրե՞լ բոլոր ծրագրերի պատմությունը:" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "Մաքրե՞լ %s պատմությունը:" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Փակե՞լ բոլոր ծրագրերը: Դա կարող է հանգեցնել տվյալների կորստի" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Փակե՞լ %s ծրագիրը: Դա կարող է հանգեցնել տվյալների կորստի" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "Անհնար է բացել ծրագիրը" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Առաջադրանքների փոխարկիչ" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Մաքրել բոլորը" @@ -1,18 +1,6 @@ -msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME" -msgstr "Volume tinggi dapat membahayakan pendengaran Anda jika Anda mendengarkannya dalam waktu yang lama" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Hps semua" -msgid "IDS_COM_BODY_ANDROID" -msgstr "Android" - -msgid "IDS_COM_BODY_JAVA" -msgstr "Java" - -msgid "IDS_COM_BODY_WARNING" -msgstr "Peringatan" - -msgid "IDS_COM_BODY_MEDIA" -msgstr "Media" - -msgid "IDS_COM_OPT_HEADPHONES_ABB" -msgstr "Headphone" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Tidak ada aplikasi" @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Hreinsa feril" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Engin forrit" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Loka öllum forritum" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Verkstjórn" -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "Í keyrslu" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "Engin opin forrit" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "Engin nýlega notuð forrit" - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Notað nýlega" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Hreinsa feril allra forrita?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "Hreinsa feril %s?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Loka öllum forritum? Gögn gætu mögulega tapast" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Loka %s forritum? Gögn gætu mögulega tapast" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "Mistókst að opna forrit" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Verkefnaskipti" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Hreinsa allt" diff --git a/po/it_IT.po b/po/it_IT.po index b7b4a8a..8233878 100644..100755 --- a/po/it_IT.po +++ b/po/it_IT.po @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Cancella cronologia" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Nessuna applicazione" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Chiudi tutte le applicazioni" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Gest att" -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "In esecuzione" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "Nessuna applicaz. aperta" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "Ness. utilizz. di recente" - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Utilizzato di recente" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Cancellare la cronologia di tutte le applicazioni?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "Cancellare la cronologia di %s?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Chiudere tutte le applicazioni? Potrebbe verificarsi la perdita di dati" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Chiudere l'applicazione %s? Potrebbe verificarsi la perdita di dati" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "Impossibile aprire l'applicazione" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Cambia attività" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Cancella tutto" diff --git a/po/ja_JP.po b/po/ja_JP.po index 92d5c53..8482108 100644..100755 --- a/po/ja_JP.po +++ b/po/ja_JP.po @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "履歴を消去" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "アプリケーションがありません" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "全アプリを終了します。" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "タスクマネージャ" -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "実行中" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "起動アプリはありません。" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "最近使ったアプリはありません。" - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "最近使用" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "全てのアプリ履歴を消去しますか?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "%sの履歴を消去しますか?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "全てのアプリを終了しますか?この操作で、データが失われる可能性があります。" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "%sアプリを終了しますか?この操作で、データが失われる可能性があります。" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "アプリケーションを起動できません。" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "タスク切替" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "全て消去" @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "ისტორიის წაშლა" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "აპლიკაციები არ არის" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "ყველა პროგრამის დახურვა" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "მმართველი" -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "ჩართული" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "პროგრამები არაა გახსნილი" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "ბოლო პროგრამები არ არის" - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "ბოლოს გამოყენებული" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "წაშლით პროგრამის მთელ ისტორიას?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "გასუფთავდეს ”%s”-ს ისტორია?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "დაიხუროს ყველა პროგრამა? შეიძლება ამან გამოიწვიოს მონაცემთა დაკარგვა" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "დაიხუროს პროგრამა ”%s”? შეიძლება ამან გამოიწვიოს მონაცემთა დაკარგვა" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "პროგრამის გახსნა შეუძლებელია" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "დავალების გადამრთველი" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "ყველას წაშლა" @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Журналды тазалау" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Бағдарламалар жоқ" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Барлық қолданбаларды жабыңыз" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Тапс ртш" -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "Іске қосу" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "Ашық қолданба жоқ" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "Соңғы пайда. қолданба жоқ" - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Соңғы пайдаланылған" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Барлық қолданба журналын тазалау керек пе?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "%s журналын тазалау керек пе?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Барлық қолданбаны жабу керек пе? Ол деректердің жоғалуына себеп болуы мүмкін" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "%s қолданбасын жабу керек пе? Ол деректердің жоғалуына себеп болуы мүмкін" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "Қолданбаны ашу мүмкін емес" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Тапсырма қосқыш" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Барлығын өшіру" diff --git a/po/km.po b/po/km.po new file mode 100755 index 0000000..9834b7f --- /dev/null +++ b/po/km.po @@ -0,0 +1,6 @@ +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "ជម្រះទាំងអស់" + +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "គ្មានកម្មវិធី" + diff --git a/po/kn.po b/po/kn.po new file mode 100755 index 0000000..b5c4367 --- /dev/null +++ b/po/kn.po @@ -0,0 +1,6 @@ +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "ಎಲ್ಲವನ್ನೂ ತೆರವುಗೊಳಿಸಿ" + +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "ಅನ್ವಯಿಸುವಿಕೆಗಳಿಲ್ಲ" + diff --git a/po/ko_KR.po b/po/ko_KR.po index 4b72422..6f70f88 100644..100755 --- a/po/ko_KR.po +++ b/po/ko_KR.po @@ -1,36 +1,6 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "기록 삭제" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "모두 삭제" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "모든 애플리케이션을 종료합니다" - -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "실행" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "실행 중인 애플리케이션이 없습니다" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "최근 사용된 애플리케이션이 없습니다" - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "최근 사용" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "애플리케이션 기록을 모두 삭제할까요?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "%s 기록을 삭제할까요?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "애플리케이션을 모두 종료할까요? 데이터가 손실될 수 있습니다" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "%s 애플리케이션을 종료할까요? 데이터가 손실될 수 있습니다" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "애플리케이션을 실행하지 못하였습니다" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "작업 전환기" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "애플리케이션이 없습니다" diff --git a/po/lo.po b/po/lo.po new file mode 100755 index 0000000..57efa11 --- /dev/null +++ b/po/lo.po @@ -0,0 +1,6 @@ +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "ລຶບທັງໝົດ" + +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "ບໍ່ມີແອພພລິເຄຊັນ" + @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Valyti istoriją" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Nėra programų" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Uždaryti visas programas" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Užd. tv." -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "Vykdoma" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "Nėra atidarytų programų" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "Nėra neseniai naud.progr." - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Pastarąjį kartą naudota" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Išvalyti visą programų istoriją?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "Išvalyti %s istoriją?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Uždaryti visas programas? Taip galite prarasti duomenis" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Uždaryti programą %s? Taip galite prarasti duomenis" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "Neįmanoma atidaryti programos" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Užduočių jungiklis" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Valyti viską" @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Notīrīt vēsturi" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Nav programmu" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Aizvērt visas programmas" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Uzd.pārv." -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "Darbojas" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "Nav atvērtu programmu" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "Nav nesen lietotu progr." - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Nesen lietota" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Vai notīrīt visu programmu vēsturi?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "Vai notīrīt %s vēsturi?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Vai aizvērt visas programmas? Tādejādi var tikt zaudēti dati" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Vai aizvērt %s programmu? Tādejādi var tikt zaudēti dati" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "Nevar atvērt programmu" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Uzdevumu pārslēdzējs" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Notīrīt visu" @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Бриши историја" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Нема апликации" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Затвори ги сите апликации" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Уред.зад." -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "Активни" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "Нема отворени апликации" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "Нема последни апликации" - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Последни користени" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Да се избрише целата историја на апликацијата?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "Да се избрише историјата на %s?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Да се затворат сите апликации? Тоа може да предизвика да се изгубат податоци" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Да се затвори апликацијата %s? Тоа може да предизвика да се изгубат податоци" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "Не може да се отвори апликацијата" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Менувач на задачи" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Бриши сѐ" diff --git a/po/ml.po b/po/ml.po new file mode 100755 index 0000000..dda80d4 --- /dev/null +++ b/po/ml.po @@ -0,0 +1,6 @@ +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "എല്ലാം മായ്ക്കുക" + +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "ആപ്ലിക്കേഷനുകൾ ഒന്നുമില്ല" + diff --git a/po/mr.po b/po/mr.po new file mode 100755 index 0000000..2b9885b --- /dev/null +++ b/po/mr.po @@ -0,0 +1,6 @@ +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "सर्व साफ करा" + +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "कोणतेही अनुप्रयोग नाहीत" + @@ -1,18 +1,6 @@ -msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME" -msgstr "Kelantangan tinggi mungkin merosakkan pendengaran anda jika anda mendengar untuk masa yang lama" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Padam semua" -msgid "IDS_COM_BODY_ANDROID" -msgstr "Android" - -msgid "IDS_COM_BODY_JAVA" -msgstr "Java" - -msgid "IDS_COM_BODY_WARNING" -msgstr "Amaran" - -msgid "IDS_COM_BODY_MEDIA" -msgstr "Media" - -msgid "IDS_COM_OPT_HEADPHONES_ABB" -msgstr "Fon kepala" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Tiada aplikasi" diff --git a/po/my.po b/po/my.po new file mode 100755 index 0000000..b18cf92 --- /dev/null +++ b/po/my.po @@ -0,0 +1,6 @@ +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "အားလံုးကိုရွင္းပစ္ပါ" + +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "အပလီေကးရွင္းမ်ား မရွိပါ" + @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Tøm logg" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Ingen apper" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Lukk alle programmer" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Oppg.beh" -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "Kjørende" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "Ingen programmer åpne" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "Ingen nylig brukte prog." - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Nylig brukt" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Tømme alle programlogger?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "Tømme %s logg?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Lukke alle programmer? Dette kan føre til at data går tapt" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Lukke %s programmet? Dette kan føre til at data går tapt" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "Kan ikke åpne program" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Oppgaveveksler" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Tøm alle" diff --git a/po/ne.po b/po/ne.po new file mode 100755 index 0000000..0c727cb --- /dev/null +++ b/po/ne.po @@ -0,0 +1,6 @@ +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "सबै सफा" + +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "कुनै अनुप्रयोगहरू छैनन्" + diff --git a/po/nl.po b/po/nl.po new file mode 100755 index 0000000..af0ea61 --- /dev/null +++ b/po/nl.po @@ -0,0 +1,9 @@ +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Geen applicaties" + +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Taakbeheer" + +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Wis alles" + diff --git a/po/or.po b/po/or.po new file mode 100755 index 0000000..bb3d337 --- /dev/null +++ b/po/or.po @@ -0,0 +1,6 @@ +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "ସମସ୍ତ ଖାଲି" + +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "କୌଣସି ଆପ୍ଲିକେସନ୍ ନାହିଁ" + diff --git a/po/pa.po b/po/pa.po new file mode 100755 index 0000000..90e577c --- /dev/null +++ b/po/pa.po @@ -0,0 +1,6 @@ +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "ਸਾਰੇ ਸਾਫ਼ ਕਰੋ" + +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "ਕੋਈ ਅਨੁਪ੍ਰਯੋਗ ਨਹੀਂ" + @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Wyczyść historię" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Brak aplikacji" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Zamknij wszystkie aplikacje" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Men. zad." -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "Uruchomione" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "Brak otwartych aplikacji" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "Brak ostat. używ. aplik." - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Ostatnio używany" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Wyczyścić historię wszystkich aplikacji?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "Wyczyścić historię %s?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Zamknąć wszystkie aplikacje? To może spowodować utratę danych" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Zamknąć aplikację %s? To może spowodować utratę danych" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "Nie można otworzyć aplikacji" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Menedżer zadań" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Wyczyść wszys." diff --git a/po/pt_BR.po b/po/pt_BR.po index 7f755a4..d614a54 100644..100755 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Limpar histórico" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Nenhum aplicativo" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Fechar todos os aplicativos" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Ger. tar." -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "Em execução" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "Sem aplicativos abertos" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "Sem aplic. usados antes" - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Utilizado recentemente" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Limpar todo o histórico do aplicativo?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "Limpar histórico de %s?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Fechar todos os aplicativos? Isto pode causar perda de dados" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Fechar o aplicativo %s? Isto pode causar perda de dados" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "Não é possível abrir aplicativo" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Comutador de tarefas" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Limpar tudo" diff --git a/po/pt_PT.po b/po/pt_PT.po index dd7c192..4ba0d24 100644..100755 --- a/po/pt_PT.po +++ b/po/pt_PT.po @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Limpar histórico" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Sem aplicações" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Fechar todas as aplicações" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Ges. tar." -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "A ser executado" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "Sem aplicações abertas" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "Sem aplics. util. recent." - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Utilizado recentemente" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Limpar o histórico de todas as aplicações?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "Limpar histórico de %s?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Fechar todas as aplicações? Isto pode causar a perda de dados" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Fechar %s aplicações? Isto pode causar a perda de dados" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "Impossível abrir aplicação" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Comutador de tarefas" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Limpar tudo" @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Ştergere istoric" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Nicio aplicaţie" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Închideţi toate aplicaţiile" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Man. act." -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "În funcţiune" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "Nicio aplicaţie deschisă" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "Nicio aplic. util. recent" - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Utilizată recent" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Ştergeţi istoricul tuturor aplicaţiilor?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "Ştergeţi istoricul %s?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Închideţi toate aplicaţiile? Aceasta poate cauza pierderea datelor" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Închideţi aplicaţia %s? Aceasta poate cauza pierderea datelor" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "Imposibil de deschis aplicaţia" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Comutator activităţi" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Şterg. totală" diff --git a/po/ru_RU.po b/po/ru_RU.po index a8b43e0..41358f3 100644..100755 --- a/po/ru_RU.po +++ b/po/ru_RU.po @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Очистить журнал" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Нет приложений" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Закрыть все приложения" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Диспетчер" -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "Запущенные" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "Нет открытых приложений" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "Нет последних приложений" - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Недавно использовавшийся" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Очистить журнал всех приложений?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "Очистить журнал %s?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Закрыть все приложения? Это может привести к потере данных" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Закрыть приложение %s? Это может привести к потере данных" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "Не удалось открыть приложение" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Диспетчер задач" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Очистить все" diff --git a/po/si.po b/po/si.po new file mode 100755 index 0000000..f317038 --- /dev/null +++ b/po/si.po @@ -0,0 +1,6 @@ +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "සියල්ල මකන්න" + +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "යෙදුම් නොමැත" + @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Vymazať históriu" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Žiadne aplikácie" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Ukončite všetky aplikácie" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Spr. úloh" -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "Beh" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "Žiadne otvorené aplikácie" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "Žiadne nap. použ. aplik." - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Nedávno použité" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Vymazať celú históriu aplikácií?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "Vymazať históriu aplikácie %s?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Ukončiť všetky aplikácie? Môže to spôsobiť stratu údajov" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Ukončiť aplikáciu %s? Môže to spôsobiť stratu údajov" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "Aplikácia sa nedá otvoriť" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Prepínanie úloh" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Vymazať všetko" @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Počisti zgodovino" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Ni aplikacij" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Zapri vse programe" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Upr. opr." -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "Se izvaja" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "Ni odprtih programov" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "Ni nedavno up. programov" - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Nazadnje uporabljeno" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Želite počistiti zgodovino vseh programov?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "Želite počistiti zgodovino programa %s?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Želite zapreti vse programe? To lahko povzroči izgubo podatkov" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Želite zapreti program %s? To lahko povzroči izgubo podatkov" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "Programa ni mogoče odpreti" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Preklopnik med opravili" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Počisti vse" @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Obriši istoriju" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Nema aplikacija" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Zatvori sve aplikacije" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Men. zad." -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "Izvršavanje" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "Nema otvorenih aplikacija" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "Aplik. nisu skoro korišć." - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Nedavno korišćeno" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Obrisati istoriju za sve aplikacije?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "Obrisati %s istoriju?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Zatvoriti sve aplikacije? To može dovesti do gubitka podataka" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Zatvoriti %s aplikaciju? To može dovesti do gubitka podataka" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "Nije moguće otvoriti aplikaciju" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Planer zadataka" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Obriši sve" @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Rensa historik" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Inga program" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Stäng alla program" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Uppg.hant" -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "Körs" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "Inga öppna program" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "Inga nyligen anv. program" - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Nyligen använd" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Rensa all programhistorik?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "Rensa historik för %s?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Stäng alla program? Detta kan medföra att data förloras" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Stäng %s program? Detta kan medföra att data förloras" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "Det går inte att öppna program" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Aktivitetsväxlare" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Rensa allt" diff --git a/po/ta.po b/po/ta.po new file mode 100755 index 0000000..3fa77fc --- /dev/null +++ b/po/ta.po @@ -0,0 +1,6 @@ +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "அனைத்தும் துடை" + +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "பயன்பாடுகள் ஏதுமில்லை" + diff --git a/po/te.po b/po/te.po new file mode 100755 index 0000000..b71d74f --- /dev/null +++ b/po/te.po @@ -0,0 +1,6 @@ +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "అన్ని క్లియర్ చేయి" + +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "అప్లికేషన్లు లేవు" + @@ -1,36 +1,6 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "ลบประวัติ" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "ลบทั้งหมด" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "ปิดแอพพลิเคชั่นทั้งหมด" - -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "การทำงาน" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "ไม่มีแอพส์ที่เปิดไว้" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "ไม่มีแอพส์ที่ใช้ล่าสุด" - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "ใช้ล่าสุด" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "ล้างประวัติแอพส์ทั้งหมด?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "ล้างประวัติ %s?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "ปิดแอพส์ทั้งหมด? การดำเนินการนี้อาจทำให้สูญเสียข้อมูลไปได้" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "ปิดแอพส์ %s? การดำเนินการนี้อาจทำให้สูญเสียข้อมูลไปได้" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "ไม่สามารถเปิดแอพพลิเคชั่น" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "ตัวสลับสิ่งที่ต้องทำ" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "ไม่มีแอพพลิเคชั่น" diff --git a/po/tl.po b/po/tl.po new file mode 100755 index 0000000..6ee739a --- /dev/null +++ b/po/tl.po @@ -0,0 +1,6 @@ +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "I-clear lahat" + +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Walang mga application" + diff --git a/po/tr_TR.po b/po/tr_TR.po index 848c355..a7297e1 100644..100755 --- a/po/tr_TR.po +++ b/po/tr_TR.po @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Geçmişi sil" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Uygulama yok" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Tüm uygulamaları kapat" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Grv yntcs" -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "Çalışıyor" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "Açık uygulama yok" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "Son kullanılan uyg yok" - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Son kullanılanlar" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Tüm uygulama geçmişi silinsin mi?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "%s geçmişi silinsin mi?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Tüm uygulamalar kapatılsın mı? Bu veri kaybına neden olabilir" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "%s uygulaması kapatılsın mı? Bu veri kaybına neden olabilir" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "Uygulama açılamıyor" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Görev değiştirici" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Tümünü sil" @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Очищення історії" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Немає програм" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Закрити всі програми" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Дис.завд." -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "Виконується" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "Немає відкритих програм" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "Немає нещод. вик. програм" - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Нещодавно використані" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Очистити всю історію програм?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "Очистити історію %s?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Закрити усі програми? Це може спричинити втрату даних" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Закрити програму %s? Це може спричинити втрату даних" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "Неможливо відкрити програму" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Диспетчер задач" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Очистити все" @@ -1,36 +1,6 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "تاریخ نامہ صاف کریں" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "سب صاف کریں" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "سب ایپلیکیشنز بند کریں" - -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "چل رہا ہے" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "کوئی ایپلیکیشنز کھلی نہیں" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "حالیہ ایپلیکیشنز نہیں" - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "حالیہ استعمال کردہ" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "سب ایپلیکیشن تاریخ نامہ صاف کریں؟" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "تاریخ نامہ %s صاف کریں؟" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "سب ایپلیکیشنز بند کریں؟ اس کی وجہ سے ڈیٹا ضائع ہوسکتا ہے" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "ایپلیکیشن %s بند کریں؟ اس کی وجہ سے ڈیٹا ضائع ہوسکتا ہے" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "ایپلیکیشن کھولنے سے قاصر" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "ٹاسک سوئچر" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "کوئی ایپلیکیشنز نہیں" @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "Jurnalni tozalash" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Ilovalar yo‘q" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "Barcha ilovalar yopilsin" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "Vaz. mnjr" -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "Ishlamoqda" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "Ochilgan ilovalar yo‘q" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "Foydalanilmayotgan ilova" - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "Oxirgi foydalanilgan" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "Barcha ilovalar jurnali tozalansinmi?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "%s jurnali tozalansinmi?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "Barcha ilovalar yopilsinmi? Bu ma’lumot yo‘qotilishiga olib kelishi mumkin" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "%s ilovasi yopilsinmi? Bu ma’lumot yo‘qotilishiga olib kelishi mumkin" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "Ilovani ochib bo‘lmaydi" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "Topshiriq almashtiruvchisi" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Barini tozala" @@ -1,18 +1,6 @@ -msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME" -msgstr "Nghe âm lượng to trong thời gian dài có thể làm hại thính giác của bạn" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "Xóa tất cả" -msgid "IDS_COM_BODY_ANDROID" -msgstr "Android" - -msgid "IDS_COM_BODY_JAVA" -msgstr "Java" - -msgid "IDS_COM_BODY_WARNING" -msgstr "Cảnh báo" - -msgid "IDS_COM_BODY_MEDIA" -msgstr "Media" - -msgid "IDS_COM_OPT_HEADPHONES_ABB" -msgstr "Tai nghe" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "Không có ứng dụng" diff --git a/po/zh_CN.po b/po/zh_CN.po index 19088c5..369f1e0 100644..100755 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "清除历史" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "无应用程序" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "关闭所有应用程序" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "任务管理器" -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "正在运行" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "无开启应用程序" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "无最近使用的应用程序" - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "最近使用" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "是否清除所有应用程序历史?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "是否清除 %s 历史?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "是否关闭所有应用程序?这可能导致数据丢失" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "是否关闭 %s 应用程序?这可能导致数据丢失" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "无法打开应用程序" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "任务切换器" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "全部清除" diff --git a/po/zh_HK.po b/po/zh_HK.po index 916d9c1..3486f99 100644..100755 --- a/po/zh_HK.po +++ b/po/zh_HK.po @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "清除記錄" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "無應用程式" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "關閉所有應用程式" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "工作管理員" -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "執行" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "無開啟的應用程式" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "無最近使用的應用程式" - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "最近使用" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "清除所有應用程式記錄嗎?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "清除 %s 記錄嗎?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "關閉所有應用程式嗎?這可能會導致數據遺失" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "關閉 %s 應用程式嗎?這可能會導致數據遺失" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "無法開啟應用程式" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "工作切換器" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "全部清除" diff --git a/po/zh_TW.po b/po/zh_TW.po index 89c754b..3486f99 100644..100755 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -1,36 +1,9 @@ -msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -msgstr "清除歷程記錄" +msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2" +msgstr "無應用程式" -msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS" -msgstr "關閉所有應用程式" +msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB" +msgstr "工作管理員" -msgid "IDS_TASKMGR_HEADER_RUNNING" -msgstr "執行中" - -msgid "IDS_TASKMGR_MBODY_NO_APPS_OPEN" -msgstr "沒有開啟應用程式" - -msgid "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -msgstr "沒有最近使用的應用程式" - -msgid "IDS_TASKMGR_MBODY_RECENTLY_USED" -msgstr "最近使用" - -msgid "IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q" -msgstr "清除所有應用程式歷程記錄嗎?" - -msgid "IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q" -msgstr "清除 %s 歷程記錄嗎?" - -msgid "IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "關閉所有應用程式嗎?這可能會導致資料遺失" - -msgid "IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST" -msgstr "關閉 %s 應用程式嗎?這可能會導致資料遺失" - -msgid "IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION" -msgstr "無法開啟應用程式" - -msgid "IDS_TASKMGR_HEADER_TASK_SWITCHER" -msgstr "任務切換" +msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL" +msgstr "全部清除" diff --git a/src/_cpu.c b/src/_cpu.c deleted file mode 100755 index 0aaa89d..0000000 --- a/src/_cpu.c +++ /dev/null @@ -1,111 +0,0 @@ -/* - * org.tizen.taskmgr - * Copyright (c) 2012 Samsung Electronics Co., Ltd. - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include <unistd.h> -#include <stdio.h> -#include <sys/time.h> - -#include "_util_log.h" -#include "_cpu.h" - -int _get_sysconf(int *ncpu, long *tick) -{ - *ncpu = sysconf(_SC_NPROCESSORS_ONLN); - *ncpu = *ncpu < 1 ? 1 : *ncpu; - *tick = sysconf(_SC_CLK_TCK); - return 0; -} - -int _get_stat_info(pid_t pid, unsigned int *ut, unsigned int *st) -{ - FILE *fp; - char buf[128] = {0, }; - unsigned long cutime, cstime; - int i; - int ret = -1; - - snprintf(buf, sizeof(buf), "/proc/%d/stat", (int)pid); - - *ut = *st = 0; - cutime = cstime = 0; - fp = fopen(buf, "r"); - if (fp) { - retvm_if(fp == NULL, -1, "Failed to open %s\n", buf); - ret = fscanf(fp, "%*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %lu %lu %ld %ld", - ut, st, &cutime, &cstime); - if(ret < 0) - { - _E("Failed to fscanf() \n"); - fclose(fp); - return -1; - } - *ut += cutime; - *st += cstime; - fclose(fp); - - return 0; - } - return -1; -} - -double _get_cpu_ratio(void *data, int ncpu, long tick) -{ - struct _task_info *tinfo = (struct _task_info *)data; - unsigned int utime, stime; - struct timeval timev; - double usr, sys; - int r; - unsigned long long jiffy; - - retvm_if(tinfo == NULL, -1, "Invalid argument: tinfo is NULL\n"); - - utime = 0; - stime = 0; - r = _get_stat_info(tinfo->pid, &utime, &stime); - if (r < 0) { - _D("failed\n"); - return 0; - } - /* retvm_if(r < 0, -1, "Failed to get stat info\n"); */ - - gettimeofday(&timev, NULL); - jiffy = (timev.tv_sec - tinfo->oldtimev.tv_sec) * tick + - ((timev.tv_usec - tinfo->oldtimev.tv_usec) * tick) / 1000000; - - if(utime >= tinfo->oldutime) { - usr = ((double)(utime - tinfo->oldutime) * 100 / jiffy) / ncpu; - } else { - usr = 0.0; - } - if(stime >= tinfo->oldstime) { - sys = ((double)(stime - tinfo->oldstime) * 100 / jiffy) / ncpu; - } else { - sys = 0.0; - } - - /* _D("per:%lf] %lf %lf/ %u %u/ %u %u/ %u\n", - usr+sys, usr, sys, utime, stime, tinfo->oldutime, tinfo->oldstime, jiffy); - */ - - tinfo->oldutime = utime; - tinfo->oldstime = stime; - tinfo->oldtimev = timev; - - return usr + sys; -} - - diff --git a/src/_cpu.h b/src/_cpu.h deleted file mode 100755 index 2a95bf7..0000000 --- a/src/_cpu.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * org.tizen.taskmgr - * Copyright (c) 2012 Samsung Electronics Co., Ltd. - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -#ifndef __TASKMANAGER_CPU_H__ -#define __TASKMANAGER_CPU_H__ - -#include "taskmanager.h" - -int _get_sysconf(int *ncpu, long *tick); -double _get_cpu_ratio(void *data, int ncpu, long tick); - -#endif -/* __TASKMANAGER_CPU_H__ */ diff --git a/src/_eina.c b/src/_eina.c deleted file mode 100755 index dad2109..0000000 --- a/src/_eina.c +++ /dev/null @@ -1,310 +0,0 @@ -/* - * org.tizen.taskmgr - * Copyright (c) 2012 Samsung Electronics Co., Ltd. - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - - - -#include <stdlib.h> -#include <string.h> -#include <stdio.h> - -#include <Eina.h> -#include <ail.h> -#include <aul.h> -#include <rua.h> - -#include "taskmanager.h" -#include "_util_log.h" - -#define TASKMANAGER_ICON_NAME "org.tizen.taskmgr.png" - -static int grp_cnt[TS_MAX]; - -void _init_grp_cnt(void) -{ - int i; - - for(i = 0; i < TS_MAX; i++) { - grp_cnt[i] = 0; - } -} - -int _get_grp_cnt(int which) -{ - return grp_cnt[which]; -} - -int runapp_info_get(const aul_app_info *ainfo, void *data) -{ - ail_appinfo_h handle; - ail_error_e ret; - - char *valc; - bool valb; - char buf[1024] = { 0, }; - struct appdata *ad = data; - struct _task_info *info; - - retvm_if(ainfo == NULL, -1, "Invalid argument: ainfo is NULL\n"); - retvm_if(data == NULL, -1, "Invalid argument: data is NULL\n"); - - retvm_if(ainfo->pid <= 0, -1, "Invalid pid(%u)\n", ainfo->pid); - - /* filtering */ - if (ainfo->pid == getpid()) { - return 0; - } - - retvm_if(ainfo->pkg_name == NULL, 0, "Invalid pkg_name(%s)\n", ainfo->pkg_name); - -// _D("running app is (%s)\n", ainfo->pkg_name); - ret = ail_package_get_appinfo(ainfo->pkg_name, &handle); - retvm_if(ret != AIL_ERROR_OK, -1, - "Failed to get appinfo, pkg_name:%s\n", ainfo->pkg_name); - - ret = ail_appinfo_get_bool(handle, AIL_PROP_X_SLP_TASKMANAGE_BOOL, &valb); - if (valb == 0) { - goto exit; - } - info = calloc(1, sizeof(struct _task_info)); - if (info == NULL) { - _E("Failed to calloc task_info\n"); - goto exit; - } - info->pkg_name = strdup(ainfo->pkg_name); - - ret = ail_appinfo_get_str(handle, AIL_PROP_NAME_STR, &valc); - if (valc == NULL) { - _D("%s: Failed to get ail name\n", ainfo->pkg_name); - valc = "Unknown"; - } - info->app_name = strdup(valc); - - ret = ail_appinfo_get_str(handle, AIL_PROP_ICON_STR, &valc); - if (valc == NULL || (ecore_file_exists(valc) == EINA_FALSE)) { - _D("%s: Failed to get ail icon\n", ainfo->pkg_name); - valc = TASKMANAGER_ICON_NAME; - } - - snprintf(buf, sizeof(buf), "%s", valc); - info->icn_path = strdup(buf); -// _D("get app name[%s] set [%s], icon path[%s]\n", ainfo->pkg_name, info->app_name, buf); - - info->ad = ad; - info->pid = ainfo->pid; - info->category = TS_INUSE; -// info->mem_total = ad->mem_total; - _D("%s/pid(%d)\n", info->app_name, info->pid); - - ad->applist[TS_INUSE] = eina_list_prepend(ad->applist[TS_INUSE], info); - grp_cnt[TS_INUSE]++; - - exit: - ret = ail_package_destroy_appinfo(handle); - retvm_if(ret != AIL_ERROR_OK, -1, "Failed to destroy appinfo\n"); - return 0; -} - -int taskmanager_get_history_app_info(void *data) -{ - struct appdata *ad = data; - struct _task_info *info, *info_r; - Eina_List *l_r; - int flag = 0; - - struct rua_rec rec_result = { 0, }; - char **table = NULL; - char buf[1024] = { 0, }; - int nrows = 0, ncols = 0; - int row = 0; - - ail_appinfo_h handle; - ail_error_e ret; - bool valb; - char *valc; - - retvm_if(data == NULL, -1, "Invalid argument: data is NULL\n"); - retvm_if(rua_init() == -1, -1, "Failed to rua_init\n"); - - if (rua_history_load_db(&table, &nrows, &ncols) == -1) { - rua_fini(); - return -1; - } - - if (nrows == 0) { - rua_history_unload_db(&table); - rua_fini(); - return 0; - } - - ad->applist[TS_HISTORY] = eina_list_nth_list(ad->applist[TS_HISTORY], 0); - for (row = 0; row < nrows; row++) { - rua_history_get_rec(&rec_result, table, nrows, ncols, row); - - /* filtering - * pkg_name could be NULL or 0 length because it is launch by fork. - */ - if (rec_result.pkg_name == NULL - || strlen(rec_result.pkg_name) < 1) { - continue; - } - - _D("%s\n", rec_result.pkg_name); - ret = ail_package_get_appinfo(rec_result.pkg_name, &handle); - if (ret != AIL_ERROR_OK) { - _D("Failed to get appinfo(%d)\n", ret); - continue; - } - - ret = ail_appinfo_get_bool(handle, AIL_PROP_X_SLP_TASKMANAGE_BOOL, &valb); - if(valb == 0) { - _D("ail_appinfo_get_bool(handle, AIL_PROP_X_SLP_TASKMANAGE_BOOL, &valb) => valb is 0"); - goto cont; - } - - EINA_LIST_FOREACH(ad->applist[TS_INUSE], l_r, info_r) { - if (info_r != NULL) { - if (!strcmp - (rec_result.pkg_name, info_r->pkg_name)) { - flag = 1; - break; - } - } - } - - if (flag == 0) { - info = calloc(1, sizeof(struct _task_info)); - if(info == NULL) { - _E("Failed to calloc _task_info\n"); - if(handle) { - ret = ail_package_destroy_appinfo(handle); - } - return -1; - } - - info->pkg_name = strdup(rec_result.pkg_name); - - ret = ail_appinfo_get_str(handle, AIL_PROP_NAME_STR, &valc); - if (valc == NULL) { - _D("Failed to get ail name\n"); - valc = "Unknown"; - } - info->app_name = strdup(valc); - _D("%s\n", info->app_name); - - ret = ail_appinfo_get_str(handle, AIL_PROP_ICON_STR, &valc); - if (valc == NULL || (ecore_file_exists(valc) == EINA_FALSE)) { - _D("Failed to get ail icon\n"); - valc = TASKMANAGER_ICON_NAME; - } - snprintf(buf, sizeof(buf), "%s", valc); - info->icn_path = strdup(buf); - _D("%s\n", info->icn_path); - - info->ad = ad; - info->pid = 0; - info->category = TS_HISTORY; - - if (rec_result.arg != NULL) { - if (strlen(rec_result.arg) > 0) { - info->b = bundle_decode( - (const bundle_raw *)rec_result.arg, - strlen(rec_result.arg)); - } - } - - ad->applist[TS_HISTORY] = - eina_list_append(ad->applist[TS_HISTORY], info); - grp_cnt[TS_HISTORY]++; - - } - - flag = 0; - -cont: - ret = ail_package_destroy_appinfo(handle); - } - - rua_history_unload_db(&table); - rua_fini(); - - return 0; -} - -int _free_einalist_all(struct appdata *ad) -{ - Eina_List *l; - struct _task_info *info = NULL; - int i; - - if (ad == NULL) { - _E("[Error] Invalid argument: appdata is NULL\n"); - return -1; - } - - for (i = 0; i < TS_MAX; i++) { - if (ad->applist[i] == NULL) - continue; - - EINA_LIST_FOREACH(ad->applist[i], l, info) { - if (info != NULL) { - if (info->b) - bundle_free(info->b); - - taskmanager_free_info(info); - info = NULL; - } - } - - eina_list_free(ad->applist[i]); - ad->applist[i] = NULL; - } - - return 0; -} - -int _subt_einalist_item(struct appdata *ad, int pid) -{ -_D("func\n"); - Eina_List *l; - int ret = -1; - struct _task_info *info; - - retvm_if(ad == NULL, -1, "Invalid argument: appdata is NULL\n"); - retvm_if(ad->applist[TS_INUSE] == NULL, -1, "applist is NULL\n"); - - EINA_LIST_FOREACH(ad->applist[TS_INUSE], l, info) { - if (info == NULL) { - _E("Failed to get info\n"); - continue; - } - - if (pid > 0 && pid == info->pid) { - if(info->app_name) _D("killed [%s]\n", info->app_name); - ad->applist[TS_INUSE] = - eina_list_remove_list(ad->applist[TS_INUSE], l); - taskmanager_free_info(info); - info = NULL; - ret = 0; - } - } - return ret; -} - - - - diff --git a/src/_eina.h b/src/_eina.h deleted file mode 100755 index 98bf76f..0000000 --- a/src/_eina.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * org.tizen.taskmgr - * Copyright (c) 2012 Samsung Electronics Co., Ltd. - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - - - -#ifndef __TASKMANAGER_EINA_H__ -#define __TASKMANAGER_EINA_H__ - -#include <aul.h> - -#include "taskmanager.h" - -void _init_grp_cnt(void); -int _get_grp_cnt(int which); -int runapp_info_get(const aul_app_info *ainfo, void *data); -int taskmanager_get_history_app_info(void *data); -int _free_einalist_all(struct appdata *ad); -int _subt_einalist_item(struct appdata *ad, int pid); - -#endif -/* __TASKMANAGER_EINA_H__ */ diff --git a/src/_genlist.c b/src/_genlist.c deleted file mode 100755 index 2cb208c..0000000 --- a/src/_genlist.c +++ /dev/null @@ -1,877 +0,0 @@ -/* - * org.tizen.taskmgr - * Copyright (c) 2012 Samsung Electronics Co., Ltd. - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - - - -#include <stdio.h> -#include <unistd.h> -#include <appcore-efl.h> -#include <vconf.h> -#include <utilX.h> -#include <aul.h> -#include <rua.h> -#include <Ecore_X.h> -#include <Eina.h> -#include <unistd.h> -#include <time.h> -#include <sys/time.h> -#include <pthread.h> - -#include "taskmanager.h" -#include "_genlist.h" -#include "_util_log.h" -#include "_util_efl.h" -#include "_logic.h" -#include "_cpu.h" -#include "_eina.h" -#include "_info.h" -#include "_progressbar.h" - -static Elm_Object_Item *g_egi; - -/* group list:gl, data list:dl, button list:bl, no list: nl */ -static Elm_Genlist_Item_Class itc_gl; -static Elm_Genlist_Item_Class itc_hl; -static Elm_Genlist_Item_Class itc_dl; -static Elm_Genlist_Item_Class itc_bl; -static Elm_Genlist_Item_Class itc_nl; -static Elm_Genlist_Item_Class itc_separator4; -static Elm_Genlist_Item_Class itc_separator2; - -static char *button_text[TS_MAX] = { - "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS", - "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB" -}; - -static void end_all_inuse_cb(void *data, Evas_Object *obj, void *event_info); -static void delete_all_history_cb(void *data, Evas_Object *obj, - void *event_info); -void (*func_del[TS_MAX]) (void *data, Evas_Object *obj, void *event_info) = { -&end_all_inuse_cb, &delete_all_history_cb}; - -static void end_inuse_cb(void *data, Evas_Object *obj, void *event_info); -static void delete_history_cb(void *data, Evas_Object *obj, void *event_info); -void (*func_end[TS_MAX]) (void *data, Evas_Object *obj, void *event_info) = { -&end_inuse_cb, &delete_history_cb}; - -static char *group_name[TS_MAX] = { - "IDS_TASKMGR_HEADER_RUNNING", - "IDS_TASKMGR_MBODY_RECENTLY_USED" -}; - -static char *nolist_text[TS_MAX] = { - "IDS_TASKMGR_MBODY_NO_APPS_OPEN", - "IDS_TASKMGR_MBODY_NO_RECENTLY_USED_APPS" -}; - -static Evas_Object *group_btn[TS_MAX]; - -void taskmanager_free_info(struct _task_info *info); -Eina_Bool _update_list(void *data); - -static void clear_genlist(void *data) -{ - ret_if(data == NULL); - - struct appdata *ad = data; - - if (ad->gl) { - elm_genlist_clear(ad->gl); - } -} - -void clear_task_manager_list(void *data) -{ - ret_if(data == NULL); - - struct appdata *ad = data; - _free_einalist_all(ad); - clear_genlist(ad); -} - -static void app_genlist_item_update(void *data) -{ - ret_if(data == NULL); - - struct appdata *ad = (struct appdata *)data; - - Elm_Object_Item *it_r; - Eina_List *realized_item_list, *l_r; - unsigned int cnt = 0; - - realized_item_list = elm_genlist_realized_items_get(ad->gl); - cnt = eina_list_count(realized_item_list); - if (cnt > 0) { - EINA_LIST_FOREACH(realized_item_list, l_r, it_r) { - if (it_r != NULL) { - elm_genlist_item_update(it_r); - } - } - } -} - -Eina_Bool alert_app_info(void *data) -{ - retv_if(data == NULL, -1); - - struct appdata *ad = (struct appdata *)data; - - app_genlist_item_update(ad); - return ECORE_CALLBACK_CANCEL; -} - -static void end_all_inuse_cb(void *data, Evas_Object *obj, void *event_info) -{ - ret_if(data == NULL); - - struct appdata *ad = data; - char buf[_BUF_MAX] = { 0, }; - - ad->mode = MODE_END_ALL_INUSE; - snprintf(buf, sizeof(buf), T_("IDS_TASKMGR_POP_CLOSE_ALL_APPS_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST")); - if (ad->popup_ask) { - evas_object_del(ad->popup_ask); - ad->popup_ask = NULL; - } - if (!ad->flag_select) { - ad->popup_ask = _add_popup_ask(ad->win, buf, ad); - } -} - -static void -delete_all_history_cb(void *data, Evas_Object *obj, void *event_info) -{ -_D("func\n"); - ret_if(data == NULL); - - struct appdata *ad = data; - char buf[_BUF_MAX] = { 0, }; - - ad->mode = MODE_DEL_ALL_HISTORY; - snprintf(buf, sizeof(buf), T_("IDS_TASKMGR_POP_CLEAR_ALL_APP_HISTORY_Q")); - if (ad->popup_ask) { - evas_object_del(ad->popup_ask); - ad->popup_ask = NULL; - } - if (!ad->flag_select) { - ad->popup_ask = _add_popup_ask(ad->win, buf, ad); - } -} - -static void end_inuse_cb(void *data, Evas_Object *obj, void *event_info) -{ - ret_if(data == NULL); - - struct _task_info *info_ev = (struct _task_info *)data; - struct appdata *ad = info_ev->ad; - char buf[_BUF_MAX] = { 0, }; - - ad->mode = MODE_END_INUSE; - snprintf(buf, _BUF_MAX, T_("IDS_TASKMGR_POP_CLOSE_PS_APP_Q_THIS_MAY_CAUSE_DATA_TO_BE_LOST"), - evas_textblock_text_utf8_to_markup(NULL, info_ev->app_name)); - if (ad->popup_ask) { - evas_object_del(ad->popup_ask); - ad->popup_ask = NULL; - } - if (!ad->flag_select) { - ad->popup_ask = _add_popup_ask(ad->win, buf, ad); - } - g_egi = (void *)info_ev->it; -} - -static void delete_history_cb(void *data, Evas_Object *obj, void *event_info) -{ - ret_if(data == NULL); - - struct _task_info *info_ev = (struct _task_info *)data; - struct appdata *ad = info_ev->ad; - char buf[_BUF_MAX] = { 0, }; - - ad->mode = MODE_DEL_HISTORY; - - snprintf(buf, _BUF_MAX, T_("IDS_TASKMGR_POP_CLEAR_PS_HISTORY_Q"), - evas_textblock_text_utf8_to_markup(NULL, info_ev->app_name)); - if (ad->popup_ask) { - evas_object_del(ad->popup_ask); - ad->popup_ask = NULL; - } - if (!ad->flag_select) { - ad->popup_ask = _add_popup_ask(ad->win, buf, ad); - } - g_egi = (void *)info_ev->it; -} - -static void nl_sel(void *data, Evas_Object *obj, void *event_info) -{ - _D("func\n"); - Elm_Object_Item *item = (Elm_Object_Item *) event_info; - elm_genlist_item_selected_set(item, EINA_FALSE); - return; -} - -static char *nl_text_get(void *data, Evas_Object *obj, const char *part) -{ - char buf[_BUF_MAX] = { 0, }; - - if (!strcmp(part, "elm.text")) { - snprintf(buf, sizeof(buf), "%s", T_(nolist_text[(int)data])); - - return strdup(buf); - } - return NULL; -} - -static void _gl_sel_app(void *data, Evas_Object *obj, void *event_info) -{ - _D("func\n"); - Elm_Object_Item *item = (Elm_Object_Item *) event_info; - struct appdata *ad = (struct appdata *)data; - struct _task_info *info; - /* parameter to block double click */ - static int selected = 0; - Elm_Object_Item *it = (Elm_Object_Item *) event_info; - int ret = -1; - - ad->flag_select = EINA_TRUE; - - elm_genlist_item_selected_set(it, EINA_FALSE); - - retm_if(ad == NULL, "Invalid argument: appdata is NULL\n"); - - if (ad->update_timer) { - ecore_timer_del(ad->update_timer); - ad->update_timer = NULL; - } - - if (selected == 1) - return; - selected = 1; - - if (item == NULL) { - _E("[Error] Cannot find genlist item\n"); - selected = 0; - return; - } - - info = (struct _task_info *)elm_object_item_data_get(item); - if (info == NULL) { - _E("[Error] Cannot get item data: info\n"); - selected = 0; - return; - } - if (info->ad == NULL) { - _E("[Error] Cannot get item data: info->ad\n"); - selected = 0; - return; - } - - if (info->pid) { - /* when application is alive */ - ret = aul_resume_pid(info->pid); - selected = 0; - } else { - /* when application is dead */ - if (info->pkg_name == NULL) { - util_show_popup_with_message(info->ad->win, - 3.0, - T_("IDS_TASKMGR_POP_UNABLE_TO_OPEN_APPLICATION")); - selected = 0; - - } else { - _unset_notification_level(info->ad->win); - - if (!strcmp(info->pkg_name, "org.tizen.phone")) { - /* exception : Because dialer doesn't need bundle - * since being unifyed dialer, voice call and video call - */ - ret = aul_open_app(info->pkg_name); - selected = 0; - } else { - ret = aul_open_app(info->pkg_name); - selected = 0; - } - } - } - if(ret == 0) { - _D("exit after 0.3 sec\n"); - ad->exit_timer = ecore_timer_add(0.3, _exit_cb, ad); - } -} - - -static Evas_Object *_gl_content_get_app(void *data, Evas_Object *obj, - const char *part) -{ - struct _task_info *info = (struct _task_info *)data; - char buf[_BUF_MAX] = { 0, }; - - Evas_Object *icon = NULL; - Evas_Object *btn = NULL; - - Evas_Object *rt, *icon_ly = NULL; - - retvm_if(data == NULL, NULL, "Invalid argument: task info is NULL\n"); - - if (!strcmp(part, "elm.icon.1")) { - snprintf(buf, sizeof(buf), "%s", info->icn_path); - retvm_if(buf == NULL, NULL, "%s icon is NULL\n", info->app_name); - if (!ecore_file_exists(buf) || strlen(buf) < 4) - snprintf((char *)buf, (size_t) sizeof(buf), - (const char *)IMAGEDIR "/icon_taskmgr.png"); - - icon = elm_icon_add(obj); - elm_image_file_set(icon, buf, NULL); - elm_image_preload_disabled_set(icon, EINA_TRUE); - - evas_object_size_hint_min_set(icon, - (int)72 * elm_config_scale_get(), - (int)72 * elm_config_scale_get()); - - return icon; - - } else if (!strcmp(part, "elm.icon.2")) { - btn = elm_button_add(obj); - /*elm_object_text_set(btn, S_("IDS_COM_BODY_END")); - elm_object_style_set(btn, "default"); - - evas_object_smart_callback_add(btn, "clicked", - func_end[info->category], info); - elm_object_focus_set(btn, EINA_FALSE); - evas_object_propagate_events_set(btn, EINA_FALSE);*/ - - elm_object_style_set(btn, "icon_minus"); - evas_object_smart_callback_add(btn, "clicked", - func_end[info->category], info); - evas_object_propagate_events_set(btn, EINA_FALSE); - - return btn; - } - - return NULL; -} - -static char *_gl_text_get_app(void *data, Evas_Object *obj, const char *part) -{ - struct _task_info *info = (struct _task_info *)data; - char buf[_BUF_MAX] = { 0, }; - - retvm_if(data == NULL, NULL, "Invalid argument: task info is NULL\n"); - retvm_if(part == NULL, NULL, "Invalid argument: part is NULL\n"); - - if (!strcmp(part, "elm.text")) { - snprintf(buf, _BUF_MAX, "%s", info->app_name); - return strdup(buf); - - } - return NULL; -} - -static void _bl_sel(void *data, Evas_Object *obj, void *event_info) -{ - _D("func\n"); - Elm_Object_Item *item = (Elm_Object_Item *) event_info; - elm_genlist_item_selected_set(item, EINA_FALSE); - - _D("DBG : %x", group_btn[(int)data]); - elm_object_focus_set(group_btn[(int)data], EINA_TRUE); -} - -static Evas_Object *_bl_content_get(void *data, Evas_Object *obj, - const char *part) -{ - Evas_Object *btn = NULL; - struct appdata *ad = evas_object_data_get(obj, "appdata"); - retv_if(ad == NULL, NULL); - - if (part && !strcmp(part, "elm.icon")) { - - btn = elm_button_add(obj); - retvm_if(btn == NULL, NULL, "elm_button_add() failed"); - elm_object_style_set(btn, "default"); - - elm_object_text_set(btn, T_(button_text[(int)data])); - evas_object_smart_callback_add(btn, "clicked", - func_del[(int)data], ad); - - evas_object_size_hint_min_set(btn, 0, 50); - evas_object_size_hint_max_set(btn, 0, 50); - evas_object_propagate_events_set(btn, EINA_FALSE); - - _D("DBG : %x", btn); - group_btn[(int)data] = btn; - - return btn; - - } - return NULL; -} - -static char *_gl_text_get_title(void *data, Evas_Object *obj, const char *part) -{ - char buf[_BUF_MAX]; - - if (!strcmp(part, "elm.text")) { - snprintf(buf, sizeof(buf), "%s (%d)", - T_(group_name[(int)data]), _get_grp_cnt((int)data)); - return strdup(buf); - } - return NULL; -} - -static char *_gl_text_get_his(void *data, Evas_Object *obj, const char *part) -{ - struct _task_info *info = (struct _task_info *)data; - char buf[_BUF_MAX] = { 0, }; - - if (!strcmp(part, "elm.text")) { - snprintf(buf, _BUF_MAX, "%s", info->app_name); - return strdup(buf); - } - return NULL; -} - -static Evas_Object *_gl_content_get_his(void *data, Evas_Object *obj, - const char *part) -{ - struct _task_info *info = (struct _task_info *)data; - char buf[_BUF_MAX] = { 0, }; - - Evas_Object *icon = NULL; - Evas_Object *btn = NULL; - - retvm_if(data == NULL, NULL, "Invalid argument: task info is NULL\n"); - - if (!strcmp(part, "elm.icon.1")) { - snprintf(buf, sizeof(buf), "%s", info->icn_path); - retvm_if(buf == NULL, NULL, "%s icon is NULL\n", info->app_name); - if (!ecore_file_exists(buf) || strlen(buf) < 4) - snprintf((char *)buf, (size_t) sizeof(buf), - (const char *)IMAGEDIR "/icon_taskmgr.png"); - - icon = elm_icon_add(obj); - elm_image_file_set(icon, buf, NULL); - elm_image_preload_disabled_set(icon, EINA_TRUE); - - evas_object_size_hint_min_set(icon, - (int)72 * elm_config_scale_get(), - (int)72 * elm_config_scale_get()); - - return icon; - - } else if (!strcmp(part, "elm.icon.2")) { - btn = elm_button_add(obj); - /*elm_object_text_set(btn, S_("IDS_COM_OPT_DELETE")); - elm_object_style_set(btn, "default"); - - evas_object_smart_callback_add(btn, "clicked", - func_end[info->category], info); - elm_object_focus_set(btn, EINA_FALSE); - evas_object_propagate_events_set(btn, EINA_FALSE);*/ - - elm_object_style_set(btn, "icon_minus"); - evas_object_smart_callback_add(btn, "clicked", - func_end[info->category], info); - evas_object_propagate_events_set(btn, EINA_FALSE); - - return btn; - } - - return NULL; - -} - -void _set_itc(void) -{ - itc_gl.item_style = "grouptitle"; - itc_gl.func.text_get = _gl_text_get_title; - - //itc_dl.item_style = "2text.2icon.7"; - //itc_dl.item_style = "1text.2icon.4"; - itc_dl.item_style = "1text.2icon.6"; - itc_dl.func.text_get = _gl_text_get_app; - itc_dl.func.content_get = _gl_content_get_app; - - //itc_hl.item_style = "1text.2icon.4"; - itc_hl.item_style = "1text.2icon.6"; - itc_hl.func.text_get = _gl_text_get_his; - itc_hl.func.content_get = _gl_content_get_his; - - itc_separator4.item_style = "seperator"; - itc_separator2.item_style = "seperator"; - - itc_bl.item_style = "1icon"; - itc_bl.func.content_get = _bl_content_get; - - itc_nl.item_style = "1text"; - itc_nl.func.text_get = nl_text_get; - -} - -int check_genlist(struct appdata *ad) -{ - Elm_Object_Item *egi; - struct _task_info *info; - - egi = elm_genlist_first_item_get(ad->gl); - while(egi) { - info = (struct _task_info *)elm_object_item_data_get(egi); - if(info) { - _D("%s info[0x%x]\n", (int)info < 3 ? "-" : info->app_name, info); - } else { - _D("group\n"); - } - egi = elm_genlist_item_next_get(egi); - } - - return 0; -} - -int _set_genlist_from_eina(struct appdata *ad) -{ - _D("func\n"); - Eina_List *l; - Elm_Object_Item *git, *item; - struct _task_info *info; - int i; - - retvm_if(ad == NULL, -1, "Invalid argument: appdata is NULL\n"); - retvm_if(ad->gl == NULL, -1, "Invalid argument:genlist is NULL\n"); - - for (i = 0; i < TS_MAX; i++) { - git = elm_genlist_item_append(ad->gl, &itc_gl, - (void *)i, NULL, - ELM_GENLIST_ITEM_NONE, - NULL, NULL); - retvm_if(git == NULL, -1, "Failed append item\n"); - elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); - - if (eina_list_count(ad->applist[i]) > 0) { - - item = elm_genlist_item_append(ad->gl, &itc_separator4, - NULL, NULL, - ELM_GENLIST_ITEM_NONE, - NULL, NULL); - elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); - - elm_genlist_item_append(ad->gl, &itc_bl, - (void *)i, NULL, - ELM_GENLIST_ITEM_NONE, - _bl_sel, (void *)i); - - item = elm_genlist_item_append(ad->gl, &itc_separator2, - NULL, NULL, - ELM_GENLIST_ITEM_NONE, - NULL, NULL); - elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); - - ad->applist[i] = eina_list_nth_list(ad->applist[i], 0); - EINA_LIST_FOREACH(ad->applist[i], l, info) { - if (info != NULL) { - info->it = elm_genlist_item_append(ad->gl, - (i == TS_INUSE) ? &itc_dl : &itc_hl, - (void *)info, NULL, - ELM_GENLIST_ITEM_NONE, - _gl_sel_app, ad); - } - } - } else { - item = elm_genlist_item_append(ad->gl, &itc_nl, - (void *)i, NULL, - ELM_GENLIST_ITEM_NONE, - nl_sel, NULL); - elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); - } - } - return 0; -} - -void _set_genlist(struct appdata *ad) -{ -_D("func\n"); - retm_if(ad == NULL, "Invalid argument: appdata is NULL\n"); - int ret = AUL_R_ERROR; - int retry_cnt = 0; - int sleep_value = 1000; - - _init_grp_cnt(); - - while (ret != AUL_R_OK && retry_cnt < 5) { - usleep(sleep_value); - ret = aul_app_get_running_app_info(runapp_info_get, ad); - - if (ret != AUL_R_OK) { - _D("Fail to get running app information from ail"); - } - - retry_cnt++; - sleep_value *= 2; - } - - taskmanager_get_history_app_info(ad); - _set_genlist_from_eina(ad); - -} - -void refresh_app_info(struct appdata *ad) -{ -_D("func\n"); - retm_if(ad == NULL, "Invalid argument: appdata is NULL\n"); - - _free_einalist_all(ad); - clear_genlist(ad); - - _set_genlist(ad); - - alert_app_info(ad); - -} - -void _del_popup_timer(struct appdata *ad) -{ - if (ad->popup_timer) { - ecore_timer_del(ad->popup_timer); - ad->popup_timer = NULL; - } -} - -void taskmanager_free_info(struct _task_info *info) -{ - if (info) { - if (info->app_name) { - free(info->app_name); - info->app_name = NULL; - } - if (info->pkg_name) { - free(info->pkg_name); - info->pkg_name = NULL; - } - if (info->icn_path) { - free(info->icn_path); - info->icn_path = NULL; - } - - free(info); - } -} - -int response_end_inuse(struct appdata *ad) -{ -_D("func\n"); - Eina_List *l, *l_next; - struct _task_info *info; - Eina_Bool dead = EINA_FALSE; - - retvm_if(ad == NULL, -1, "Invalid argument: appdata is NULL\n"); - - ad->ending = EINA_TRUE; - - EINA_LIST_FOREACH_SAFE(ad->applist[TS_INUSE], l, l_next, info) { - _D("applist pid : %d", info->pid); - if (info->it == g_egi) { - _D("matched applist pid : %d", info->pid); - if (info->pid > 0) { - if (aul_terminate_pid(info->pid) < 0) { - kill(info->pid, SIGKILL); - dead = EINA_TRUE; - } - } - break; - } - } - ad->ending = EINA_FALSE; - - if(!dead){ - _D("matched applist is nothing\n"); - _del_progressbar(ad); - } - - return 0; -} - -Eina_Bool _refresh_idler_cb(void *data) -{ -_D("func\n"); - struct appdata *ad = (struct appdata *)data; - retvm_if(data == NULL, ECORE_CALLBACK_CANCEL, "Invalid argument: appdata is NULL\n:"); - - _del_popup_timer(ad); - _del_progressbar(ad); - refresh_app_info(ad); - return ECORE_CALLBACK_CANCEL; -} - -int response_end_all_inuse(struct appdata *ad) -{ - Eina_List *l; - struct _task_info *info; - - retvm_if(ad == NULL, -1, "Invalid argument: appdata is NULL\n"); - - ad->ending = EINA_TRUE; - - if(ad->update_timer) { - ecore_timer_del(ad->update_timer); - ad->update_timer = NULL; - } - - ad->endcnt = eina_list_count(ad->applist[TS_INUSE]); - _D("set end count (%d)\n", ad->endcnt); - - EINA_LIST_FOREACH(ad->applist[TS_INUSE], l, info) { - if (info != NULL) { - _D("applist pid : %d", info->pid); - if (info->pid > 0) { - if (aul_terminate_pid(info->pid) < 0) { - kill(info->pid, SIGKILL); - } - _D("terminated\n"); - } - } - } - ad->ending = EINA_FALSE; - return 0; -} - -int response_del_history(struct appdata *ad) -{ - Eina_List *l, *l_next; - struct _task_info *info; - - retvm_if(ad == NULL, -1, "Invalid argument: appdata is NULL\n"); - - _show_progressbar(ad); - EINA_LIST_FOREACH_SAFE(ad->applist[TS_HISTORY], l, l_next, info) { - _D("history applist pid : %d", info->pid); - if (info->it == g_egi) { - - if (rua_init() == -1) { - break; - } - rua_delete_history_with_pkgname(info->pkg_name); - rua_fini(); - - ad->applist[TS_HISTORY] = - eina_list_remove_list(ad->applist[TS_HISTORY], l); - - if (info->b) { - bundle_free(info->b); - } - - elm_object_item_del(info->it); - taskmanager_free_info(info); - break; - } - } - alert_app_info(ad); - refresh_app_info(ad); - _del_popup_timer(ad); - _del_progressbar(ad); - - ad->mode = MODE_NONE; - return 0; -} - -int response_del_all_history(struct appdata *ad) -{ - Eina_List *l; - struct _task_info *info; - - retvm_if(ad == NULL, -1, "Invalid argument: appdata is NULL\n"); - - if(ad->update_timer) { - _D("update timer is deleted\n"); - ecore_timer_del(ad->update_timer); - ad->update_timer = NULL; - } - - - _show_progressbar(ad); - - if (rua_init() == -1) { - return -1; - } - - EINA_LIST_FOREACH(ad->applist[TS_HISTORY], l, info) { - if (info != NULL) { - rua_delete_history_with_pkgname(info->pkg_name); - } - } - - if (eina_list_count(ad->applist[TS_INUSE]) == 0) { - rua_clear_history(); - } - - rua_fini(); - refresh_app_info(ad); - _del_popup_timer(ad); - _del_progressbar(ad); - - ad->mode = MODE_NONE; - return 0; -} - -int response_kill_inuse(struct appdata *ad) -{ - Eina_List *l, *l_next; - struct _task_info *info; - - retvm_if(ad == NULL, -1, "Invalid argument: appdata is NULL\n"); - - _show_progressbar(ad); - - EINA_LIST_FOREACH_SAFE(ad->applist[TS_INUSE], l, l_next, info) { - _D("kill applist pid : %d", info->pid); - if (info->it == g_egi) { - if (info->pid > 0) { - kill(info->pid, SIGKILL); - } - - ad->applist[TS_INUSE] = - eina_list_remove_list(ad->applist[TS_INUSE], l); - taskmanager_free_info(info); - break; - } - } - refresh_app_info(ad); - _del_progressbar(ad); - - return 0; -} - -int response_kill_all_inuse(struct appdata *ad) -{ - Eina_List *l; - struct _task_info *info; - - retvm_if(ad == NULL, -1, "Invalid argument: appdata is NULL\n"); - - _show_progressbar(ad); - - EINA_LIST_FOREACH(ad->applist[TS_INUSE], l, info) { - if (info != NULL) { - if (info->pid > 0) { - kill(info->pid, SIGKILL); - } - } - } - refresh_app_info(ad); - _del_progressbar(ad); - - return 0; -} - diff --git a/src/_genlist.h b/src/_genlist.h deleted file mode 100755 index ee47515..0000000 --- a/src/_genlist.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * org.tizen.taskmgr - * Copyright (c) 2012 Samsung Electronics Co., Ltd. - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - - - -#ifndef __TASKMANAGER_GENLIST_H__ -#define __TASKMANAGER_GENLIST_H__ - -#include <Elementary.h> -#include "taskmanager.h" - -Eina_Bool alert_app_info(void *data); -void clear_task_manager_list(void *data); -void refresh_app_info(struct appdata *ad); -void load_task_manager_list(struct appdata *ad); -void _set_itc(void); -void _set_genlist(struct appdata *ad); -void _del_popup_timer(struct appdata *ad); -int response_end_inuse(struct appdata *ad); -int response_end_all_inuse(struct appdata *ad); -int response_del_history(struct appdata *ad); -int response_del_all_history(struct appdata *ad); -int response_kill_inuse(struct appdata *ad); -int response_kill_all_inuse(struct appdata *ad); -void _fini_pthread(void); -Eina_Bool _update_list(void *data); -void _restart_pthread(struct appdata *ad); - -#endif -/* __TASKMANAGER_GENLIST_H__ */ diff --git a/src/_info.c b/src/_info.c deleted file mode 100755 index 9ae42e7..0000000 --- a/src/_info.c +++ /dev/null @@ -1,134 +0,0 @@ -/* - * org.tizen.taskmgr - * Copyright (c) 2012 Samsung Electronics Co., Ltd. - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - - - -#include <stdio.h> - -#include <appcore-common.h> - -#include "taskmanager.h" -#include "_util_log.h" -#include "_util_efl.h" - -static void ctxpopup_clear(void *data) -{ - struct appdata *ad = data; - - retm_if(data == NULL, "Invalid argument: appdata is NULL\n"); - - if (ad->info_timer) { - ecore_timer_del(ad->info_timer); - ad->info_timer = NULL; - } - - if (ad->info_ctxpopup) { - evas_object_del(ad->info_ctxpopup); - ad->info_ctxpopup = NULL; - } - -} - -static void label_resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) -{ - Evas_Object *ly = (Evas_Object *)data; - Evas_Coord w, h; - Evas_Coord pw, ph; - - retm_if(ly == NULL, "Invalid argument: Evas_Object is NULL\n"); - - edje_object_part_geometry_get(_EDJ(ly), - "padding/t", NULL, NULL, &pw, &ph); - evas_object_geometry_get(obj, NULL, NULL, &w, &h); - evas_object_size_hint_min_set(ly, (w + ph * 2), (h + ph * 2)); -} - -static void _ctxpopup_hide_cb(void *data, Evas_Object *obj, void *event_info) -{ - struct appdata *ad = (struct appdata *)data; - ctxpopup_clear(ad); -} - -int _util_move_ctxpopup(Evas_Object *eo, Evas_Object *target) -{ - double scale; - Evas_Coord tx, ty, tw, th; - Evas_Coord cx, cy; - - retvm_if(eo == NULL, -1, "Invalid argument: ctxpopup is NULL\n"); - - scale = elm_config_scale_get(); - - evas_object_geometry_get(target, &tx, &ty, &tw, &th); - - cx = tx + (int)(tw * 0.5); - cy = ty + (int)(10.0 * scale); - - evas_object_move(eo, cx, cy); - - return 0; -} - -static Eina_Bool info_hide_cb(void *data) -{ - struct appdata *ad = data; - - ctxpopup_clear(ad); - - return ECORE_CALLBACK_CANCEL; -} - -void create_info_ctxpopup(void *data, Evas_Object *obj, void *event_info) -{ - struct appdata *ad = (struct appdata *)data; - Evas_Object *lb, *ly; - double scale = 0.0; - char buf[128] = {0, }; - - retm_if(data == NULL, "Invalid argument: appdata is NULL\n"); - - if (ad->info_ctxpopup) { - evas_object_del(ad->info_ctxpopup); - ad->info_ctxpopup = NULL; - } - - scale = elm_config_scale_get(); - - ad->info_ctxpopup = _add_ctxpopup(ad->win); - evas_object_smart_callback_add(ad->info_ctxpopup, "dismissed", - _ctxpopup_hide_cb, ad); - - ly = _add_layout(ad->info_ctxpopup, NULL, NULL); - evas_object_resize(ly, (int)(240.0 * scale), (int)(105.0 * scale)); - elm_object_content_set(ad->info_ctxpopup, ly); - - snprintf(buf, sizeof(buf), - "<font_size=22>%s<font_size>", _("IDS_TASKMGR_INFO_MESSAGE")); - lb = _add_label(ly, buf); - evas_object_event_callback_add(lb, EVAS_CALLBACK_RESIZE, - label_resize_cb, ly); - elm_layout_content_set(ly, "swallow", lb); - - _util_move_ctxpopup(ad->info_ctxpopup, ad->info_btn); - - ad->info_timer = ecore_timer_add(3, info_hide_cb, ad); - - evas_object_show(ad->info_ctxpopup); -} - - diff --git a/src/_info.h b/src/_info.h deleted file mode 100755 index e555f82..0000000 --- a/src/_info.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * org.tizen.taskmgr - * Copyright (c) 2012 Samsung Electronics Co., Ltd. - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - - - -#ifndef __TASKMANAGER_INFO_H__ -#define __TASKMANAGER_INFO_H__ - -void create_info_ctxpopup(void *data, Evas_Object *obj, void *event_info); - -#endif -/* __TASKMANAGER_INFO_H__ */ - diff --git a/src/_logic.c b/src/_logic.c deleted file mode 100755 index d2064c6..0000000 --- a/src/_logic.c +++ /dev/null @@ -1,414 +0,0 @@ -/* - * org.tizen.taskmgr - * Copyright (c) 2012 Samsung Electronics Co., Ltd. - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - - - -#include <appcore-common.h> -#include <ail.h> -#include <aul.h> -#include <Ecore_X.h> -#include <vconf.h> -#include <utilX.h> - -#include "taskmanager.h" -#include "_util_log.h" -#include "_util_efl.h" -#include "_genlist.h" -#include "_eina.h" -#include "_progressbar.h" -#include "_info.h" - -int _dead_cb(int pid, void *data) -{ -_D("func\n"); - /* redraw list */ - struct appdata *ad = (struct appdata *)data; - retvm_if(ad == NULL, -1, "Invalid argument: appdata is NULL\n"); - - int ret = -1; - - if (ad->update_timer) { - ecore_timer_del(ad->update_timer); - ad->update_timer = NULL; - } - - ret = _subt_einalist_item(ad, pid); - _D("mode(%d) count(%d) pid(%d) \n", ad->mode, ad->endcnt, pid); - - if (ret != -1) { - switch (ad->mode) { - default: - case MODE_END_INUSE: - case MODE_DEL_HISTORY: - case MODE_DEL_ALL_HISTORY: - case MODE_KILL_INUSE: - _D("aa\n"); - _del_popup_timer(ad); - _del_progressbar(ad); - refresh_app_info(ad); - //_restart_pthread(ad); - break; - - case MODE_END_ALL_INUSE: - case MODE_KILL_ALL_INUSE: - _D("bb\n"); - if (ad->endcnt <= 1) { - _D("count set 0\n"); - - if(ad->killall_timer) - { - ecore_timer_del(ad->killall_timer); - ad->killall_timer = NULL; - } - - _del_popup_timer(ad); - _del_progressbar(ad); - if (ad->popup_ask) { - evas_object_del(ad->popup_ask); - ad->popup_ask = NULL; - } - refresh_app_info(ad); - - } else { - ad->endcnt--; - } - break; - } - } - - return ret; -} - -Eina_Bool _back_cb(void* data, Elm_Object_Item *it) -{ - struct appdata *ad = (struct appdata *)data; - retvm_if(ad == NULL, -1, "Invalid argument: appdata is NULL\n"); - - if(ad->popup_progressbar){ - _D("Disabled back function when closing all apps is progressing.\n"); - return ECORE_CALLBACK_DONE; - } - else if(ad->popup_ask){ - _D("pop up is showed. Disenabled the pop up by back btn.\n"); - elm_genlist_realized_items_update(ad->gl); - evas_object_del(ad->popup_ask); - ad->popup_ask = NULL; - } - else{ - _D("terminating taskmgr by back btn.\n"); - elm_exit(); - } - return EINA_FALSE; -} - -int _app_create(struct appdata *ad) -{ - Evas_Object *ly, *bg, *nv, *bt, *gl; - Evas_Object *conform = NULL; - Elm_Object_Item *nf_it; - int w, h; - - ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h); - - retvm_if(ad == NULL, -1, "Invalid argument: appdata is NULL\n"); - ad->ending = EINA_FALSE; - - conform = elm_conformant_add(ad->win); - retvm_if(conform == NULL, -1, "Failed to add conformant \n"); - evas_object_size_hint_weight_set(conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_win_resize_object_add(ad->win, conform); - evas_object_show(conform); - - ly = _add_layout_main(conform, EINA_TRUE, EINA_FALSE); - retvm_if(ly == NULL, -1, "Failed to add layout main\n"); - elm_object_content_set(conform, ly); - evas_object_resize(ly, w, h); - - bg = _add_bg(ad->win, "group_list"); - retvm_if(bg == NULL, -1, "Failed to add bg\n"); - elm_object_part_content_set(ly, "elm.swallow.bg", bg); - - nv = _add_naviframe(ly); - retvm_if(nv == NULL, -1, "Failed to add naviframe\n"); - ad->nv = nv; - - /*ly = _add_layout(ad->nv, EDJ_NAME, GRP_TM); - retvm_if(ly == NULL, -1, "Failed to add layout\n"); - ad->ly = ly;*/ - - /* Load default content (running task) */ - gl = _add_genlist(nv); - retvm_if(gl == NULL, -1, "Failed to add genlist\n"); - elm_genlist_block_count_set(gl, 20); - evas_object_data_set(gl, "appdata", ad); - //elm_object_part_content_set(ly, "list", gl); - ad->gl = gl; - - nf_it = elm_naviframe_item_push(nv, - T_("IDS_TASKMGR_HEADER_TASK_SWITCHER"), - NULL, NULL, gl, NULL); - /* push naviframe item */ - elm_naviframe_item_pop_cb_set(nf_it, _back_cb, ad); - - ad->flag_select = EINA_FALSE; - - return 0; -} -static void _get_win_geometry(struct appdata *ad) -{ - Ecore_X_Window focus_win; - Ecore_X_Window root_win; - - focus_win = ecore_x_window_focus_get(); - root_win = ecore_x_window_root_get(focus_win); - ecore_x_window_size_get(root_win, &ad->root_w, &ad->root_h); -} - -/* this func is to exit taskmanager after launching application */ -static Eina_Bool __climsg_cb(void *data, int type, void *event) -{ -_D("%s\n", __func__); - static Atom a_deact; - pid_t pid_a, pid_d; - - struct appdata *ad = (struct appdata *)data; - Ecore_X_Event_Client_Message *ev = event; - - if(ev == NULL) { - _E("Invalid argument: event is NULL\n"); - _exit_cb(ad); - return ECORE_CALLBACK_CANCEL; - } - - pid_a = ev->data.l[1]; - pid_d = ev->data.l[3]; - a_deact = ecore_x_atom_get("_X_ILLUME_DEACTIVATE_WINDOW"); - - /* when pid_a == pid_d, this is useless data */ - if (pid_a == pid_d) { - return ECORE_CALLBACK_RENEW; - } - - if (ev->message_type == a_deact) { - _exit_cb(ad); - return ECORE_CALLBACK_CANCEL; - } else { - _D("messagre is act\n"); - - } - - return ECORE_CALLBACK_CANCEL; -} - -static int runapp_count = 0; - -int _runapp_info_get_count(const aul_app_info *ainfo, void *data) -{ - ail_appinfo_h handle; - ail_error_e ret; - bool is_taskmanage; - - retvm_if(ainfo == NULL, -1, "Invalid argument: ainfo is NULL\n"); - - retvm_if(ainfo->pid <= 0, -1, "Invalid pid(%u)\n", ainfo->pid); - - /* filtering */ - if (ainfo->pid == getpid()) - { - return 0; - } - - retvm_if(ainfo->pkg_name == NULL, 0, "Invalid pkg_name(%s)\n", ainfo->pkg_name); - - ret = ail_package_get_appinfo(ainfo->pkg_name, &handle); - retvm_if(ret != AIL_ERROR_OK, -1, - "Failed to get appinfo, pkg_name:%s\n", ainfo->pkg_name); - - ret = ail_appinfo_get_bool(handle, AIL_PROP_X_SLP_TASKMANAGE_BOOL, &is_taskmanage); - if (is_taskmanage == 0) { - ret = ail_package_destroy_appinfo(handle); - retvm_if(ret != AIL_ERROR_OK, -1, "Failed to destroy appinfo\n"); - return 0; - } - - ++runapp_count; - _D("running(%s)\n", ainfo->pkg_name); - _D("runapp count : %d\n", runapp_count); - - ret = ail_package_destroy_appinfo(handle); - retvm_if(ret != AIL_ERROR_OK, -1, "Failed to destroy appinfo\n"); - return 0; -} - -Eina_Bool _kill_all_timer_cb(void *data) -{ - _D("func\n"); - - struct appdata *ad = data; - - int ret = AUL_R_ERROR; - int retry_cnt = 0; - int sleep_value = 500; - - runapp_count = 0; - - while(ret != AUL_R_OK && retry_cnt < 5) - { - usleep(sleep_value); - ret = aul_app_get_running_app_info(_runapp_info_get_count, ad); - - if(ret != AUL_R_OK) - { - _D("Fail to get running app information\n"); - } - - retry_cnt++; - sleep_value *= 2; - } - _D("runapp count : %d\n", runapp_count); - - /* count inuse app number */ - /** if(count == 0) dead_cb */ - if(runapp_count == 0) - { - _D("runapp_count == 0\n"); - _del_popup_timer(ad); - _del_progressbar(ad); - if (ad->popup_ask) { - evas_object_del(ad->popup_ask); - ad->popup_ask = NULL; - } - refresh_app_info(ad); - //_restart_pthread(ad); - return ECORE_CALLBACK_CANCEL; - } - - return ECORE_CALLBACK_RENEW; -} - -void _ok_response_cb(void *data, Evas_Object *obj, void *event_info) -{ - struct appdata *ad = (struct appdata *)data; - - retm_if(data == NULL, "Invalid argument: appdata is NULL\n"); - - switch (ad->mode) { - case MODE_END_INUSE: - if (ad->popup_ask) { - evas_object_del(ad->popup_ask); - ad->popup_ask = NULL; - } - _D("end inuse\n"); - _del_popup_timer(ad); - _show_progressbar(ad); - response_end_inuse(ad); - //_restart_pthread(ad); - break; - - case MODE_END_ALL_INUSE: - _D("end all inuse\n"); - if(ad->popup_ask) { - evas_object_del(ad->popup_ask); - ad->popup_ask = NULL; - } - _del_popup_timer(ad); - _show_progressbar(ad); - response_end_all_inuse(ad); - ad->killall_timer = ecore_timer_add(2.0, _kill_all_timer_cb, ad); - break; - - case MODE_DEL_HISTORY: - if (ad->popup_ask) { - evas_object_del(ad->popup_ask); - ad->popup_ask = NULL; - } - _D("del inuse\n"); - _del_popup_timer(ad); - response_del_history(ad); - break; - - case MODE_DEL_ALL_HISTORY: - if (ad->popup_ask) { - evas_object_del(ad->popup_ask); - ad->popup_ask = NULL; - } - _D("del all inuse\n"); - _del_popup_timer(ad); - response_del_all_history(ad); - break; - - case MODE_KILL_INUSE: - if (ad->popup_ask) { - evas_object_del(ad->popup_ask); - ad->popup_ask = NULL; - } - _D("kill all inuse\n"); - response_kill_inuse(ad); - break; - - case MODE_KILL_ALL_INUSE: - if (ad->popup_ask) { - evas_object_del(ad->popup_ask); - ad->popup_ask = NULL; - } - _D("kill all inuse\n"); - response_kill_all_inuse(ad); - break; - - default: - if (ad->popup_ask) { - evas_object_del(ad->popup_ask); - ad->popup_ask = NULL; - } - _E("[Wanning] taskmanager: check mode [%d]\n", - ad->mode); - break; - } -} - -void _cancel_response_cb(void *data, Evas_Object *obj, void *event_info) -{ - struct appdata *ad = (struct appdata *)data; - - retm_if(data == NULL, "Invalid argument: appdata is NULL\n"); - if (ad->popup_ask) { - evas_object_del(ad->popup_ask); - ad->popup_ask = NULL; - } -} - -Eina_Bool _create_idler_cb(void *data) -{ - struct appdata *ad = (struct appdata *)data; - retvm_if(ad == NULL, ECORE_CALLBACK_CANCEL, "Invalid argument\n"); - - _check_show_state(); - - evas_object_show(ad->win); - - _key_grab(ad); - - _get_win_geometry(ad); - ecore_event_handler_add(ECORE_X_EVENT_CLIENT_MESSAGE, __climsg_cb, ad); - - - return ECORE_CALLBACK_CANCEL; -} - - - diff --git a/src/_logic.h b/src/_logic.h deleted file mode 100755 index a99dfab..0000000 --- a/src/_logic.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * org.tizen.taskmgr - * Copyright (c) 2012 Samsung Electronics Co., Ltd. - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - - - -#ifndef __TASKMANAGER_LOGIC_H__ -#define __TASKMANAGER_LOGIC_H__ - -#include "taskmanager.h" - -int _dead_cb(int pid, void *data); -Eina_Bool _create_idler_cb(void *data); -int _app_create(struct appdata *ad); -void _ok_response_cb(void *data, Evas_Object *obj, void *event_info); -void _cancel_response_cb(void *data, Evas_Object *obj, void *event_info); - -#endif -/* __TASKMANAGER_LOGIC_H__ */ diff --git a/src/_progressbar.c b/src/_progressbar.c deleted file mode 100755 index ac33092..0000000 --- a/src/_progressbar.c +++ /dev/null @@ -1,51 +0,0 @@ -/* - * org.tizen.taskmgr - * Copyright (c) 2012 Samsung Electronics Co., Ltd. - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - - - -#include "taskmanager.h" -#include "_util_log.h" -#include "_util_efl.h" - -void _del_progressbar(void *data) -{ - _D("%s\n", __func__); - struct appdata *ad = (struct appdata *)data; - retm_if(ad == NULL, "Invalid argument: appdata is NULL\n"); - - if (ad->popup_progressbar) { - evas_object_hide(ad->popup_progressbar); - evas_object_del(ad->popup_progressbar); - ad->popup_progressbar = NULL; - } -} - -void _show_progressbar(void *data) -{ - _D("%s\n", __func__); - struct appdata *ad = (struct appdata *)data; - retm_if(ad == NULL, "Invalid argument: appdata is NULL\n"); - - if (ad->popup_progressbar) - _del_progressbar(ad); - - ad->popup_progressbar = _add_progressbar(ad->win, "list_process", - ad->root_w, ad->root_h); - - evas_object_show(ad->popup_progressbar); -} diff --git a/src/_progressbar.h b/src/_progressbar.h deleted file mode 100755 index 56b5891..0000000 --- a/src/_progressbar.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * org.tizen.taskmgr - * Copyright (c) 2012 Samsung Electronics Co., Ltd. - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - - - -#ifndef __TASKMANAGER_PROGRESSBAR_H__ -#define __TASKMANAGER_PROGRESSBAR_H__ - -void _show_progressbar(void *data); -void _del_progressbar(void *data); - -#endif -/* __TASKMANAGER_PROGRESSBAR_H__ */ diff --git a/src/_util_efl.c b/src/_util_efl.c deleted file mode 100755 index 43ebc65..0000000 --- a/src/_util_efl.c +++ /dev/null @@ -1,288 +0,0 @@ -/* - * org.tizen.taskmgr - * Copyright (c) 2012 Samsung Electronics Co., Ltd. - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - - - -#include <appcore-efl.h> -#include <efl_assist.h> - -#include "taskmanager.h" -#include "_util_log.h" -#include "_util_efl.h" -#include "_logic.h" - -Evas_Object *_add_window(const char *name) -{ - Evas_Object *eo; - int w, h; - - eo = elm_win_add(NULL, name, ELM_WIN_BASIC); - if (eo) { - elm_win_title_set(eo, name); - elm_win_borderless_set(eo, EINA_TRUE); - ecore_x_window_size_get(ecore_x_window_root_first_get(), - &w, &h); - evas_object_resize(eo, w, h); - } - - return eo; -} - -Evas_Object *_add_bg(Evas_Object *parent, char *style) -{ - Evas_Object *bg; - - bg = elm_bg_add(parent); - retvm_if(bg == NULL, NULL, "Failed to add bg\n"); - if (style) elm_object_style_set(bg, style); - evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, - EVAS_HINT_EXPAND); - evas_object_show(bg); - return bg; -} - -Evas_Object *_add_genlist(Evas_Object *parent) -{ - Evas_Object *eo; - - eo = elm_genlist_add(parent); - if (eo == NULL) { - _D("[Error] Cannot add genlist\n"); - return NULL; - } - elm_genlist_mode_set(eo, ELM_LIST_COMPRESS); - - 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 *_add_icon(Evas_Object *parent, const char *png) -{ - Evas_Object *eo; - char buf[128] = { 0, }; - - eo = elm_icon_add(parent); - if (eo == NULL) { - printf("[Error] Cannot add button\n"); - return NULL; - } - - snprintf(buf, sizeof(buf), "%s/%s", IMAGEDIR, png); - elm_image_file_set(eo, buf, NULL); - elm_image_resizable_set(eo, 1, 1); - evas_object_size_hint_aspect_set(eo, EVAS_ASPECT_CONTROL_VERTICAL, 1, - 1); - - return eo; -} - -Evas_Object *_add_layout(Evas_Object *parent, const char *file, - const char *group) -{ - Evas_Object *eo = NULL; - int r; - - eo = elm_layout_add(parent); - if (eo == NULL) { - _E("[Error] Cannot add layout\n"); - return NULL; - } - - elm_layout_theme_set(eo, "layout", "application", "default"); - - evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, - EVAS_HINT_EXPAND); - - return eo; -} - -Evas_Object *_add_ctxpopup(Evas_Object *parent) -{ - Evas_Object *eo = NULL; - - eo = elm_ctxpopup_add(parent); - if (eo == NULL) { - printf("[Error] Cannot add ctxpopup\n"); - return NULL; - } - - elm_ctxpopup_horizontal_set(eo, EINA_TRUE); - elm_ctxpopup_direction_priority_set(eo, - ELM_CTXPOPUP_DIRECTION_DOWN, - ELM_CTXPOPUP_DIRECTION_UP, - ELM_CTXPOPUP_DIRECTION_LEFT, - ELM_CTXPOPUP_DIRECTION_RIGHT); - - return eo; -} - -Evas_Object *_add_label(Evas_Object *parent, const char *msg) -{ - Evas_Object *eo = NULL; - - eo = elm_label_add(parent); - if (eo == NULL) { - _E("[Error] Cannot add label\n"); - return NULL; - } - - elm_label_line_wrap_set(eo, ELM_WRAP_WORD); - elm_object_text_set(eo, msg); - - return eo; -} - -static Eina_Bool _disappear_popup(void *data) -{ - Evas_Object *eo = (Evas_Object *)data; - if (eo == NULL) { - _E("[Error] Invalid argument: popup is NULL\n"); - return ECORE_CALLBACK_CANCEL; - } - evas_object_del(eo); - return ECORE_CALLBACK_CANCEL; -} - -void _diable_popup(void *data) -{ - Evas_Object *btn = NULL; - Evas_Object *eo = (Evas_Object *)data; - if(eo == NULL) { - _E("[Error] Invalid argument: popup is NULL\n"); - return; - } - - btn = elm_object_part_content_get(eo, "button1"); - if(btn) { - elm_object_disabled_set(btn, EINA_TRUE); - } - - btn = elm_object_part_content_get(eo, "button2"); - if(btn) { - elm_object_disabled_set(btn, EINA_TRUE); - } -} - -Evas_Object *_add_popup_ask(Evas_Object *parent, char *text, void *data) -{ - Evas_Object *pu, *bt1, *bt2; - retvm_if(parent == NULL, NULL, "Invalid argument: parent is NULL\n"); - - pu = elm_popup_add(parent); - retvm_if(pu == NULL, NULL, "Falied to add popup\n"); - evas_object_size_hint_weight_set(pu, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_object_part_text_set(pu, "title,text", S_("IDS_COM_POP_WARNING")); - elm_object_text_set(pu, text); - - bt1 = elm_button_add(pu); - elm_object_text_set(bt1, S_("IDS_COM_POP_CANCEL")); - elm_object_part_content_set(pu, "button1", bt1); - evas_object_smart_callback_add(bt1, "clicked", _cancel_response_cb, data); - - bt2 = elm_button_add(pu); - elm_object_text_set(bt2, S_("IDS_COM_SK_OK")); - elm_object_part_content_set(pu, "button2", bt2); - evas_object_smart_callback_add(bt2, "clicked", _ok_response_cb, data); - - evas_object_show(pu); - - return pu; -} - -void util_show_popup_with_message(Evas_Object *parent, double in, - const char *msg) -{ - Evas_Object *eo = NULL; - - eo = elm_popup_add(parent); - if (eo == NULL) { - _E("[Error] Cannot add popup\n"); - return; - } - - evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, - EVAS_HINT_EXPAND); - elm_object_text_set(eo, msg); - - ecore_timer_add(in, _disappear_popup, eo); -} - -Evas_Object *_add_naviframe(Evas_Object *parent) -{ - Evas_Object *nv; - - retv_if(parent == NULL, NULL); - - nv = elm_naviframe_add(parent); - retvm_if(nv == NULL, NULL, "Failed to add naviframe\n"); - elm_object_part_content_set(parent, "elm.swallow.content", nv); - ea_object_event_callback_add(nv, EA_CALLBACK_BACK, ea_naviframe_back_cb, NULL); - - evas_object_show(nv); - - return nv; -} - -Evas_Object *_add_layout_main(Evas_Object *parent, - Eina_Bool content, Eina_Bool transparent) -{ - Evas_Object *ly; - - retv_if(parent == NULL, NULL); - - ly = elm_layout_add(parent); - retvm_if(ly == NULL, NULL, "Failed elm_layout_add.\n"); - - elm_layout_theme_set(ly, "layout", "application", "default"); - evas_object_size_hint_weight_set(ly, - EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_win_resize_object_add(parent, ly); - if (content) - elm_object_signal_emit(ly, "elm,state,show,content", "elm"); - if (transparent) - elm_object_signal_emit(ly, "elm,bg,show,transparent", "elm"); - evas_object_show(ly); - return ly; -} - -Evas_Object *_add_progressbar(Evas_Object *parent, const char *style, - Evas_Coord w, Evas_Coord h) -{ - Evas_Object *pb; - double scale; - - retvm_if(parent == NULL, NULL, "Invalid argument: parent is NULL\n"); - - scale = elm_config_scale_get(); - - pb = elm_progressbar_add(parent); - retvm_if(pb == NULL, NULL, "Failed to add progressbar\n"); - - elm_object_style_set(pb, style); - evas_object_resize(pb, w, (int)(60 * scale)); - evas_object_move(pb, 0, h / 2); - elm_progressbar_pulse(pb, EINA_TRUE); - evas_object_show(pb); - - return pb; -} - - diff --git a/src/_util_efl.h b/src/_util_efl.h deleted file mode 100755 index 1c41009..0000000 --- a/src/_util_efl.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * org.tizen.taskmgr - * Copyright (c) 2012 Samsung Electronics Co., Ltd. - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - - - -#ifndef __TASKMANAGER_UTIL_EFL_H__ -#define __TASKMANAGER_UTIL_EFL_H__ - -#include <Elementary.h> - -Evas_Object *_add_window(const char *name); -Evas_Object *_add_bg(Evas_Object *parent, char *style); -Evas_Object *_add_genlist(Evas_Object *parent); -Evas_Object *_add_icon(Evas_Object *parent, const char *png); -Evas_Object *_add_layout(Evas_Object *parent, const char *file, const char *group); -Evas_Object *_add_ctxpopup(Evas_Object *parent); -Evas_Object *_add_label(Evas_Object *parent, const char *msg); -Evas_Object *_add_naviframe(Evas_Object *parent); -Evas_Object *_add_layout_main(Evas_Object *parent, - Eina_Bool content, Eina_Bool transparent); -Evas_Object *_add_progressbar(Evas_Object *parent, const char *style, - Evas_Coord w, Evas_Coord h); -void _diable_popup(void *data); -Evas_Object *_add_popup_ask(Evas_Object *parent, char *text, void *data); -void util_show_popup_with_message(Evas_Object *parent, double in, const char *msg); - -#endif -/* __TASKMANAGER_UTIL_EFL_H__ */ diff --git a/src/_util_log.h b/src/_util_log.h deleted file mode 100755 index efd24e1..0000000 --- a/src/_util_log.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * org.tizen.taskmgr - * Copyright (c) 2012 Samsung Electronics Co., Ltd. - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - - - -#ifndef __TASKMANAGER_UTIL_LOG_H__ -#define __TASKMANAGER_UTIL_LOG_H__ - -#include <unistd.h> -#include <dlog.h> - -#undef LOG_TAG -#define LOG_TAG "TASKMANAGER" -#define _E(fmt, arg...) LOGE("[%s,%d] "fmt,__FUNCTION__,__LINE__,##arg) -#define _D(fmt, arg...) LOGD("[%s,%d] "fmt,__FUNCTION__,__LINE__,##arg) - -#define retvm_if(expr, val, fmt, arg...) do { \ - if(expr) { \ - _E(fmt, ##arg); \ - _E("(%s) -> %s() return", #expr, __FUNCTION__); \ - return (val); \ - } \ -} while (0) - -#define retv_if(expr, val) do { \ - if(expr) { \ - _E("(%s) -> %s() return", #expr, __FUNCTION__); \ - return (val); \ - } \ -} while (0) - -#define retm_if(expr, fmt, arg...) do { \ - if(expr) { \ - _E(fmt, ##arg); \ - _E("(%s) -> %s() return", #expr, __FUNCTION__); \ - return; \ - } \ -} while (0) - -#define ret_if(expr) do { \ - if(expr) { \ - _E("(%s) -> %s() return", #expr, __FUNCTION__); \ - return; \ - } \ -} while (0) - -#endif -/* __TASKMANAGER_UTIL_LOG_H__ */ diff --git a/src/genlist.c b/src/genlist.c new file mode 100644 index 0000000..93f73c8 --- /dev/null +++ b/src/genlist.c @@ -0,0 +1,478 @@ +/* + * Task Manager + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <stdio.h> +#include <stdlib.h> +#include <appcore-efl.h> +#include <Evas.h> +#include <Elementary.h> +#include <Eina.h> +#include <stdbool.h> +#include <aul.h> +#include <dlog.h> + +#include "genlist.h" +#include "recent_apps.h" +#include "task-mgr-lite.h" +#include "genlist_item.h" + +#define N_ITEMS 30 + +Ecore_Timer *timer_for_animation = NULL; + +int velocity_factor; +int index_for_animation; +Elm_Object_Item* clear_all_item; + +static struct +{ + // Evas_Object *task_mgr_genlist; + Evas_Object *selected_item_layout; + Elm_Genlist_Item_Class *recent_app_item_expanded; + + bool is_visible; + bool is_mouse_down; + bool is_expanded; + bool is_dragged; + bool is_scroll_anim_on; + bool is_longpressed; + + char *runned_app_pkgname; + + struct + { + int x; + int y; + } mouse_down_info; + + int recent_app_count; + + Elm_Theme *theme; + +} s_recent_app_info = { + // .task_mgr_genlist = NULL, + .recent_app_item_expanded = NULL, + .is_visible = true, + .is_mouse_down = false, + .is_expanded = false, + .is_dragged = false, + .is_scroll_anim_on = false, + .is_longpressed = false, + .runned_app_pkgname = NULL, + .recent_app_count = -1, + .theme = NULL, +}; + +static void recent_app_panel_del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + LOGD("%s\n", __FUNCTION__); + + if (s_recent_app_info.theme) + { + elm_theme_free(s_recent_app_info.theme); + s_recent_app_info.theme = NULL; + } + + genlist_item_class_destroy(); + genlist_clear_all_class_destroy(); +} + +Evas_Object* recent_app_panel_create(Evas_Object *win) +{ + LOGD("Creating task_mgr_genlist widget, noti count is : [%d]", s_recent_app_info.recent_app_count); + Evas_Object *genlist; + + if (s_recent_app_info.theme) + { + LOGE("[CHECK] Theme is already created"); + } + else + { + s_recent_app_info.theme = elm_theme_new(); + if (!s_recent_app_info.theme) + { + LOGE("Failed to create a theme object"); + return NULL; + } + + elm_theme_extension_add(s_recent_app_info.theme, EDJE_DIR "recent_app-genlist-theme.edj"); + } + + genlist = elm_genlist_add(win); + if (!genlist) + { + LOGE("Failed to create a new genlist"); + LOGE("Failed to get genlist"); + elm_theme_free(s_recent_app_info.theme); + s_recent_app_info.theme = NULL; + return NULL; + } + + elm_layout_theme_set(genlist, "genlist", "base", "default"); + + genlist_item_class_create(); + genlist_clear_all_class_create(); + + elm_object_theme_set(genlist, s_recent_app_info.theme); + evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS); + + evas_object_event_callback_add(genlist, EVAS_CALLBACK_DEL, recent_app_panel_del_cb, NULL); + + return genlist; +} + +Eina_Bool genlist_update_timer_cb(void *data) +{ + LOGD("%s\n", __FUNCTION__); + Evas_Object *task_mgr_genlist = (Evas_Object*)data; + + if (elm_genlist_items_count(task_mgr_genlist) > 1) + { + evas_object_smart_callback_call(task_mgr_genlist, "genlist empty", (void*)0); + } + else + { + evas_object_smart_callback_call(task_mgr_genlist, "genlist empty", (void*)1); + } + + return EINA_FALSE; +} + +static void on_selected(void *data, Evas_Object *obj, void *event_info) +{ + LOGD("item selected"); +} + +static void genlist_add_item(list_type_default_s *item) +{ + LOGD("%s\n", __FUNCTION__); + + Evas_Object *task_mgr_genlist = task_mgr_get_list();; + Elm_Genlist_Item_Class *item_class = get_item_class(); + Elm_Object_Item *it = NULL; + + LOGD("Adding item: %p\n", item); + it = elm_genlist_item_append(task_mgr_genlist, item_class, + item, NULL, + ELM_GENLIST_ITEM_NONE, + on_selected, NULL); + + item->it = it; + item->pid = recent_apps_find_by_appid(item->appid); + + /** + * @TODO + * CHECK-THIS + * Do we really need to do this? + * While creating an item "it", it will carry the "item" as its callback-data. + * So we can access it when we need using elm_object_item_data_get without below function call. + */ + elm_object_item_data_set(it, item); +} + +void genlist_item_show(Evas_Object *genlist) +{ + LOGD("%s\n", __FUNCTION__); + int genlist_item_count; + Evas_Object *layout; + + layout = task_mgr_get_layout(); + + genlist_item_count = elm_genlist_items_count(genlist); + LOGD("ELM COUNT = %d\n", genlist_item_count); + + int width = task_mgr_get_screen_width(); + int item_n; + + char signal[13] = {0,}; + snprintf(signal, 12, "%d_item,show", genlist_item_count); + + if (width == 720) + { + item_n = 9; + } + else + { + item_n = 8; + } + + + if (genlist_item_count >= item_n) + { + elm_layout_signal_emit(layout, "default,show", "genlist"); + } + else if (genlist_item_count >= 2) + { + elm_layout_signal_emit(layout, signal, "genlist"); + } + else if (genlist_item_count == 1) + { + elm_layout_signal_emit(layout, "1_item,show", "genlist"); + evas_object_smart_callback_call(genlist, "genlist empty", (void*)1); + } +} + +static void on_genlist_state_changed(void *data, Evas_Object *obj, void *event_info) +{ + int is_empty = (int)event_info; + Evas_Object *layout = data; + + LOGD("GENLIST TASK SIGNAL"); + if (is_empty == 0) + { + elm_layout_signal_emit(layout, "no_apps_text,hide", "no_item_label"); + elm_layout_signal_emit(layout, "line,show", "static_line"); + elm_layout_signal_emit(layout, "clipper_show", "clipper"); + LOGD("Show TaskManager."); + } + else + { + elm_genlist_clear(obj); + + elm_object_part_text_set(layout, "no_item_label", D_("IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2")); + elm_layout_signal_emit(layout, "no_apps_text,show", "no_item_label"); + elm_layout_signal_emit(layout, "line,hide", "static_line"); + LOGD("Hide TaskManager(No Applications) - SHOW , Remove clear button. / STMS : %s", D_("IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2")); + } +} + +Evas_Object *genlist_init(Evas_Object *win, Evas_Object *layout, Eina_List *running_apps, Eina_List *recent_apps) +{ + LOGD("in gen list: %p %p\n", running_apps, recent_apps); + + if (!win) + { + LOGE("Win is NULL"); + return NULL; + } + + if (!layout) + { + LOGE("Layout is NULL"); + return NULL; + } + + Evas_Object *task_mgr_genlist = recent_app_panel_create(win); + + if (!task_mgr_genlist) + { + LOGE("Failed to create task_mgr_genlist panel"); + return NULL; + } + + elm_scroller_policy_set(task_mgr_genlist, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); + elm_object_part_content_set(layout, "genlist", task_mgr_genlist); + + evas_object_show(task_mgr_genlist); + + evas_object_smart_callback_add(task_mgr_genlist, "scroll", on_list_scroll_move, (void*)1); + evas_object_smart_callback_add(task_mgr_genlist, "scroll,drag,stop", on_list_scroll_drag_stop, (void*)0); + evas_object_smart_callback_add(task_mgr_genlist, "scroll,drag,start", on_list_scroll_drag_start, (void*)0); + evas_object_smart_callback_add(task_mgr_genlist, "scroll,anim,stop", on_list_scroll_drag_stop, (void*)0); + evas_object_smart_callback_add(task_mgr_genlist, "edge,top", on_list_scroll_move, (void*)0); + evas_object_smart_callback_add(task_mgr_genlist, "genlist empty", on_genlist_state_changed, layout); + + return task_mgr_genlist; +} + +void genlist_clear_list(Evas_Object *genlist) +{ + LOGD("%s\n", __FUNCTION__); + elm_genlist_clear(genlist); +} + +static Eina_Bool animator_callback(void *data, double timeline) +{ + LOGD("animator_callback"); + + int move_to_y = 0; + int object_x, object_y; + evas_object_geometry_get(data, &object_x, &object_y, NULL, NULL); + LOGD("evas_object_geometry_get : %d / %d", object_x, object_y); + move_to_y = object_y + velocity_factor*1.5; + + LOGD("animator_callback position : %d", move_to_y); + evas_object_move(data, object_x, move_to_y); + + if (move_to_y > 820 || timeline >= 1.0) + { + return ECORE_CALLBACK_CANCEL; + } + + return ECORE_CALLBACK_RENEW; /* re-issue the timer */ +} + +static Eina_Bool animator_callback_with_finished_cb(void *data, double timeline) +{ + LOGD("animator_callback_with_finished_cb"); + + int move_to_y = 0; + int object_x, object_y; + evas_object_geometry_get(data, &object_x, &object_y, NULL, NULL); + LOGD("evas_object_geometry_get : %d / %d", object_x, object_y); + move_to_y = object_y + velocity_factor*1.5; + + LOGD("animator_callback_with_finished_cb position : %d", move_to_y); + + evas_object_move(data, object_x, move_to_y); + + if (move_to_y > 820 || timeline >= 1.0) + { + LOGD("!! Finish animation and hide task-mgr !!"); + task_mgr_hide(); + return EINA_FALSE; + } + + velocity_factor++; + return EINA_TRUE; /* re-issue the timer */ +} + +void genlist_icon_transparent(Eina_List *recent_apps, Eina_List *running_apps) +{ + velocity_factor = 0; + int index = 0; + double duration = 2.0; + list_type_default_s *item = NULL; + + int genlist_item_count; + Evas_Object* task_mgr_genlist = task_mgr_get_list(); + + genlist_item_count = elm_genlist_items_count(task_mgr_genlist); + LOGD("khee :: ELM COUNT = %d\n", genlist_item_count); + + Elm_Object_Item *it = elm_genlist_first_item_get(task_mgr_genlist); + + // first_item(Clear_all item) has no "item"(item = NULL), so animation start from the second one. + it = elm_genlist_item_next_get(it); + if (it == NULL) + { + LOGE("it == NULL\n"); + return; + } + + elm_object_signal_emit(layout, "clear_all_text_fade_out", "layout"); + elm_object_signal_emit(layout, "clear_all_button_fade_out", "layout"); + + for (index = 0; index < 7; index++) + { + LOGD("START %d Icon's animation.", index); + item = elm_object_item_data_get(it); + if (item == NULL) + { + LOGD("Elm_Object_Item's item is NULL!"); + it = elm_genlist_item_next_get(it); + continue; + } + + // For fading "icon's line" out. + elm_object_signal_emit(item->data, "line,fade_out", "layout"); + + if (!index) + { + LOGD("Animation for the first icon"); + Ecore_Animator *anim; + anim = ecore_animator_timeline_add(duration, animator_callback_with_finished_cb, item->data); + if (!anim) + { + LOGE("Failed to create an animator"); + } + } + else + { + LOGD("Animation for others"); + Ecore_Animator *anim; + anim = ecore_animator_timeline_add(duration, animator_callback, item->data); + if (!anim) + { + LOGE("Failed to create an animator"); + } + } + + /** + * When could we delete this "anim" object? + */ + it = elm_genlist_item_next_get(it); + } +} + +static void add_clear_btn_to_genlist(Evas_Object *notification) +{ + LOGD("%s\n", __FUNCTION__); + Elm_Genlist_Item_Class *item_class = get_clear_all_class(); + + clear_all_item = elm_genlist_item_append(notification, item_class, + NULL, NULL, + ELM_GENLIST_ITEM_NONE, + NULL, NULL); + if (!clear_all_item) + { + LOGE("Failed to add clear all item to genlist"); + } +} + +void genlist_update(Evas_Object *genlist, Eina_List *recent_apps, Eina_List *running_apps) +{ + LOGD("%s\n", __FUNCTION__); + + genlist_clear_list(genlist); + + Eina_List *l; + list_type_default_s *item; + + if (eina_list_count(recent_apps) + eina_list_count(running_apps) > 0) + { + add_clear_btn_to_genlist(genlist); + } + + EINA_LIST_FOREACH(running_apps, l, item) + { + genlist_add_item(item); + } + + LOGD("Are there recent apps: %p\n", recent_apps); + LOGD("Adding recent apps... %d\n", eina_list_count(recent_apps)); + + EINA_LIST_FOREACH(recent_apps, l, item) + { + genlist_add_item(item); + } + + genlist_item_show(genlist); +} + +int genlist_count() +{ + Evas_Object *task_mgr_genlist = task_mgr_get_list(); + + if (!task_mgr_genlist) + { + return -1; + } + else + { + return elm_genlist_items_count(task_mgr_genlist); + } +} + +Elm_Object_Item *genlist_clear_all_item_btn(void) +{ + return clear_all_item; +} + diff --git a/src/genlist_item.c b/src/genlist_item.c new file mode 100644 index 0000000..6c4a5bf --- /dev/null +++ b/src/genlist_item.c @@ -0,0 +1,817 @@ +/* + * Task Manager + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <Elementary.h> +#include <stdbool.h> +#include <dlog.h> +#include <Ecore_X.h> +#include <feedback.h> +#include <math.h> + +#include "recent_apps.h" +#include "genlist_item.h" +#include "task-mgr-lite.h" +#include "genlist.h" + +#define ICON_X_COORD 203 +#define RECENT_APP_ITEM_WIDTH WVGA_SCREEN_WIDTH +#define RECENT_APP_ITEM_HEIGHT 116 +#define QUIT_TEXT_LEFT 75 +#define QUIT_TEXT_RIGHT 360 +#define BORDER 88 +#define HALF_LENGTH 240 +#define X_BORDER 36 +#define Y_BORDER 72 +#define Y_FIRST_BORDER 142 +#define Y_LAST1_BORDER 116 +#define Y_LAST2_BORDER 17 +#define TASKMGR_RES_PATH "/usr/apps/org.tizen.task-mgr/res" + +Evas_Object* recent_app_item_create(Evas_Object *win, char *icon, char *title, char *appid, list_type_default_s *item); +//static Evas_Object* _recent_app_item_scroller_create(Evas_Object *win); +static Evas_Object* _recent_app_item_main_create(Evas_Object *win, char *icon_path, char *title, char *appid, list_type_default_s *item); + +static void _icon_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info); +static void _icon_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info); +static void _icon_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_info); + +Eina_Bool is_scrolling = EINA_FALSE; +Eina_Bool is_first = EINA_TRUE; +Eina_Bool no_shutdown = EINA_FALSE; +Eina_Bool icon_pressed = EINA_FALSE; + +static Elm_Genlist_Item_Class *genlist_class = NULL; +static Elm_Genlist_Item_Class *genlist_clear_all_class = NULL; + +static Ecore_Idler* idler = NULL; +Evas_Object *recent_app_item = NULL; + +static struct info { + Evas_Object *clear_item_layout; +} s_info = { + .clear_item_layout = NULL, +}; + +static struct +{ + int pressed; + int quit_visible; + int object_x; + int object_y; + int click_x; + // Evas_Object *data; + int layer_number; + Evas_Object *layout; + int layout_x; + int layout_y; + int touch_x; + int touch_y; + int is_moving; + int is_vertical_scrolling; + int is_vertical_scroll_lock; +} move_info = { + .pressed = 0, + .object_x = 0, + .object_y = 0, + .click_x = 0, + // .data = NULL, + .quit_visible = 0, + .layer_number = -1, + .layout = NULL, + .layout_x = 0, + .layout_y = 0, + .touch_x = 0, + .touch_y = 0, + .is_moving = 0, + .is_vertical_scrolling = 0, + .is_vertical_scroll_lock = 0 +}; + +typedef struct +{ + unsigned int running_app_count; + unsigned int recent_app_count; +} App_Counter; + +static App_Counter app_counter; + +void set_running_app_counter(int new_count) +{ + app_counter.running_app_count = new_count; +} + +void set_recent_app_counter(int new_count) +{ + app_counter.recent_app_count = new_count; +} + +void remove_item_from_genlist(Evas_Object *genlist, Elm_Object_Item *item_new) +{ + list_type_default_s *item = elm_object_item_data_get(item_new); + + if (item->pid > 0) { + } + + elm_object_item_del(item_new); + + app_counter.recent_app_count++; + app_counter.running_app_count--; + + LOGD("Running / Recent %s %d %d\n", __FUNCTION__, app_counter.running_app_count, app_counter.recent_app_count); + +} + +Elm_Genlist_Item_Class *get_item_class(void) +{ + return genlist_class; +} + +Elm_Genlist_Item_Class *get_clear_all_class(void) +{ + return genlist_clear_all_class; +} + +static Evas_Object* _recent_app_item_content_set(void *data, Evas_Object *obj, const char *part) +{ + LOGD("%s\n", __FUNCTION__); + list_type_default_s *item = data; + + if (strcmp(part, "elm.icon") != 0) { + LOGD("%s", part); + return NULL; + } + if (item) + LOGD("Setting content: %s; %s %p\n", item->icon, item->name, item->it); + else + { + LOGE("Item is NULL !!"); + return NULL; + } + + if (!item->isAlreadySet) + { + LOGD("It is already set."); + } + + + if (item->icon == NULL) + item->icon = "/usr/apps/com.samsung.task-mgr/res/images/default.png"; + + recent_app_item = recent_app_item_create(obj, item->icon, item->name, item->appid, item); + + Evas_Object *parent = elm_object_parent_widget_get(recent_app_item); + LOGD("Parent is: %s\n", elm_object_widget_type_get(parent)); + + item->isAlreadySet = true; + + LOGD("%s END\n", __FUNCTION__); + return recent_app_item; +} + +static void _recent_app_item_content_del(void *data, Evas_Object *obj) +{ + LOGD("%s\n", __FUNCTION__); + list_type_default_s *item = data; + + if (item->data) + { + LOGD("Data exist: %p", item->data); + + evas_object_del(item->data); + + LOGD("Item deleted"); + } + + item->isAlreadySet = false; +} + +static void _clear_all_button_del(void *data, Evas_Object *obj) +{ + LOGD("%s\n", __FUNCTION__); + if (s_info.clear_item_layout) + { + evas_object_del(s_info.clear_item_layout); + s_info.clear_item_layout = NULL; + } + + LOGD("%s END\n", __FUNCTION__); +} + +static void clear_all_btn_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + LOGD("Removing all items...\n"); + Evas_Object *layout = task_mgr_get_layout(); + if (!layout) + { + LOGE("layout == NULL"); + return; + } + + feedback_play_type(FEEDBACK_TYPE_SOUND, FEEDBACK_PATTERN_TAP); + + if (task_mgr_get_screen_width() == 720) + { + LOGD("On REDWOOD target (HD) : No Animation."); + task_mgr_hide(); + } + else + { + LOGD("On Kiran target (WVGA) : Animation."); + elm_layout_signal_emit(layout, "line_fade_out", "clipper"); + genlist_icon_transparent(task_mgr_history_list(), task_mgr_running_list()); + } +} + +static void _clear_all_btn_show_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + LOGD("%s\n", __FUNCTION__); + elm_layout_signal_emit(task_mgr_get_layout(), "line,show", "static_line"); +} + +static Evas_Object* _clear_all_button_create(void *data, Evas_Object *obj, const char *part) +{ + Evas_Object *win = task_mgr_get_win(); + Evas_Object *clear_button; + + if (!win) + { + LOGE("Failed to obtain the window"); + return NULL; + } + + s_info.clear_item_layout = elm_layout_add(win); + if (!s_info.clear_item_layout) + { + LOGE("Failed to create layout"); + return NULL; + } + + if (!elm_layout_file_set(s_info.clear_item_layout, TASKMGR_RES_PATH"/edje/recent_app-item.edj", "recent_app_item_main")) + { + LOGE("Failed to set file for notification item main layout"); + evas_object_del(s_info.clear_item_layout); + return NULL; + } + + clear_button = elm_button_add(win); + if (!clear_button) + { + LOGE("Failed to create button"); + evas_object_del(s_info.clear_item_layout); + return NULL; + } + + elm_object_style_set(clear_button, "naviframe/title_cancel"); + + elm_object_part_text_set(s_info.clear_item_layout, "clear_all_text", D_("IDS_TASKMGR_BUTTON_CLEAR_ALL")); + + /** + * clear_button --> for the accessibility (to build a focus chain) + */ + elm_object_part_content_set(s_info.clear_item_layout, "clear_all_button", clear_button); + elm_object_signal_callback_add(s_info.clear_item_layout, "mouse,clicked,1", "icon_button", clear_all_btn_clicked_cb, NULL); + + /** + * To show static_line, after clear_all button show. + */ + evas_object_event_callback_add(s_info.clear_item_layout, EVAS_CALLBACK_SHOW, _clear_all_btn_show_cb, NULL); + + evas_object_size_hint_min_set(s_info.clear_item_layout, ELM_SCALE_SIZE(RECENT_APP_ITEM_WIDTH), ELM_SCALE_SIZE(RECENT_APP_ITEM_HEIGHT)); + evas_object_size_hint_max_set(s_info.clear_item_layout, RECENT_APP_ITEM_WIDTH, RECENT_APP_ITEM_HEIGHT); + + evas_object_resize(s_info.clear_item_layout, RECENT_APP_ITEM_WIDTH, RECENT_APP_ITEM_HEIGHT); + + evas_object_show(s_info.clear_item_layout); + layout = s_info.clear_item_layout; + + return s_info.clear_item_layout; +} + +Elm_Genlist_Item_Class *genlist_item_class_create(void) +{ + LOGD("Genlist item class create"); + if (!genlist_class) + { + genlist_class = elm_genlist_item_class_new(); + genlist_class->item_style = "noti"; + genlist_class->func.content_get = _recent_app_item_content_set; + genlist_class->func.state_get = NULL; + genlist_class->func.del = _recent_app_item_content_del; + } + + return genlist_class; +} + +Elm_Genlist_Item_Class *genlist_clear_all_class_create(void) +{ + LOGD("Genlist clear all class create"); + if (!genlist_clear_all_class) + { + genlist_clear_all_class = elm_genlist_item_class_new(); + genlist_clear_all_class->item_style = "noti"; + genlist_clear_all_class->func.content_get = _clear_all_button_create; + genlist_clear_all_class->func.state_get = NULL; + genlist_clear_all_class->func.del = _clear_all_button_del; + } + + return genlist_clear_all_class; +} + +void genlist_item_class_destroy(void) +{ + if (genlist_class) + { + LOGD("Genlist class free"); + elm_genlist_item_class_free(genlist_class); + genlist_class = NULL; + } +} + +void genlist_clear_all_class_destroy(void) +{ + if (genlist_clear_all_class) + { + elm_genlist_item_class_free(genlist_clear_all_class); + genlist_clear_all_class = NULL; + } +} + +static Eina_Bool __idler_cb(void *data) +{ + int x = 0, y = 0, width = 0, height = 0, distance = 0; + Evas_Object* layout = task_mgr_get_layout(); + Evas_Object* track = elm_object_item_track(genlist_clear_all_item_btn()); // Get 'track Object'. + evas_object_geometry_get(track, &x, &y, &width, &height); // Get status of the 'track object' + + if ((x == 0 && y == 0 && width == 0 && height == 0)) // When "Clear all" icon is out of screen, center line do not need to move. + { + LOGD("Clear all icon is out of screen, so just return."); + distance = 100; + } + else + { + distance = (-1 * y) + 10; + } + + LOGD("distance : %d", distance); + Edje_Message_Int_Set *msg = malloc(sizeof(*msg) + 1 * sizeof(int)); + msg->count = 2; + msg->val[0] = distance; + edje_object_message_send(elm_layout_edje_get(layout), EDJE_MESSAGE_INT_SET, 1, msg); + free(msg); + + elm_object_item_untrack(genlist_clear_all_item_btn()); + idler = NULL; + + return ECORE_CALLBACK_CANCEL; +} +void on_list_scroll_drag_stop(void *data, Evas_Object *obj, void *event_info) // This is for moving center line. +{ + LOGD("on_list_scroll_drag_stop"); + move_info.is_vertical_scrolling = 0; +} +void on_list_scroll_drag_start(void *data, Evas_Object *obj, void *event_info) +{ + LOGD("on_list_scroll_drag_start"); + move_info.is_vertical_scrolling = 1; +} + +void on_list_scroll_move(void *data, Evas_Object *obj, void *event_info) // This is for moving center line. +{ + int x = 0, y = 0, width = 0, height = 0, distance = 0; + Evas_Object* layout = task_mgr_get_layout(); + Evas_Object* track = elm_object_item_track(genlist_clear_all_item_btn()); // Get 'track Object'. + int genlist_item_count = elm_genlist_items_count(task_mgr_get_list()); + int action = (int)data; + + move_info.is_vertical_scrolling = 1; + + LOGD("Action : %d", action); + if (action == 1) + { + is_scrolling = EINA_TRUE; + } + else if (action == 0 && icon_pressed == EINA_FALSE) + { + LOGE("Scroll end\n"); + //is_scrolling = EINA_FALSE; + } + + evas_object_geometry_get(track, &x, &y, &width, &height); // Get status of the 'track object' + LOGD("clear_all_ITEM's geometry information : %d,%d,%d,%d", x,y,width, height); + + if (genlist_item_count <= 7) + { + LOGD("genlist_item_count is %d (under 8). so just return.", genlist_item_count); + elm_object_item_untrack(genlist_clear_all_item_btn()); + return; + } + + if ((x == 0 && y == 0 && width == 0 && height == 0)) // When "Clear all" icon is out of screen, center line do not need to move. + { + LOGD("Clear all icon is out of screen, so just return."); + distance = 100; + } + else + { + distance = (-1 * y) + 10; + } + + LOGD("distance : %d", distance); + Edje_Message_Int_Set *msg = malloc(sizeof(*msg) + 1 * sizeof(int)); + msg->count = 2; + msg->val[0] = distance; + edje_object_message_send(elm_layout_edje_get(layout), EDJE_MESSAGE_INT_SET, 1, msg); + free(msg); + + elm_object_item_untrack(genlist_clear_all_item_btn()); // Untrack the 'track object' after use. + + if (action == 0) { + if (idler) { + ecore_idler_del(idler); + idler = NULL; + } + idler = ecore_idler_add(__idler_cb, NULL); + } +} + +void transparent_icon_cb(void *data, Evas_Object *obj, void *event_info) +{ + Evas_Object *icon = NULL; + Evas_Object *layout = (Evas_Object *) data; + int object_x = 0, alpha = 255; + + if (!layout) + { + LOGE("Cannot get a layout"); + return; + } + + icon = elm_object_part_content_get(layout, "icon"); + + if (!icon) + { + LOGE("Cannot get a icon"); + return; + } + + evas_object_geometry_get(icon, &object_x, NULL, NULL, NULL); + + alpha = alpha - abs((ICON_X_COORD - object_x)); + + evas_object_color_set(layout, alpha, alpha, alpha, alpha); //color cannot be larger than alpha + + if ((object_x > QUIT_TEXT_RIGHT) || (object_x < QUIT_TEXT_LEFT)) + { + elm_object_signal_emit(layout, "quit,show", "layout"); + } + else + { + elm_object_signal_emit(layout, "quit,hide", "layout"); + } + +} + +static void on_scroller_edge(void *data) +{ + list_type_default_s *item = data; + char *appid = item->appid; + Evas_Object *genlist = task_mgr_get_list(); + + LOGD("Edge reached: %s\n", appid); + time_t launch_time = item->launch_time; + recent_apps_kill_selected(appid, item->pid); + + item->launch_time = launch_time; //needed because killing an app resets its running time + + remove_item_from_genlist(genlist, item->it); + + genlist_item_show(genlist); +} + +static void on_icon_clicked(void *data, Evas_Object *obj, const char *emission, const char *source) +{ + list_type_default_s *item = data; + const char *appid = item->appid; + LOGD("%s\n", __FUNCTION__); + + no_shutdown = EINA_TRUE; + icon_pressed = EINA_FALSE; + + if (is_scrolling == EINA_FALSE) + { + launch_app(appid); + + feedback_play_type(FEEDBACK_TYPE_SOUND, FEEDBACK_PATTERN_TAP); + + if (item->pid < 0) + { + app_counter.recent_app_count--; + elm_object_item_del(item->it); + + genlist_item_show(task_mgr_get_list()); + + LOGE("Running / Recent %s %d %d\n", __FUNCTION__, app_counter.running_app_count, app_counter.recent_app_count); + } + // Exit task-mgr, after launch app. + elm_exit(); + } + else + { + is_scrolling = EINA_FALSE; + } +} + +Evas_Object* recent_app_item_create(Evas_Object *win, char *icon, char *title, char *appid, list_type_default_s *item) +{ + LOGD(""); + Evas_Object *box = NULL; + Evas_Object *item_main = NULL; + + if (!win) + { + LOGE("Failed to get lockscreen window"); + return NULL; + } + + item_main = _recent_app_item_main_create(win, icon, title, appid, item); + if (!item_main) + { + LOGE("Failed to create item main"); + return NULL; + } + + box = elm_box_add(win); + if (!box) + { + LOGE("Failed to create box"); + evas_object_del(item_main); + return NULL; + } + elm_box_horizontal_set(box, EINA_TRUE); + + evas_object_size_hint_min_set(box, ELM_SCALE_SIZE(RECENT_APP_ITEM_WIDTH * MULTIPLIER_PAGES), ELM_SCALE_SIZE(RECENT_APP_ITEM_HEIGHT)); + evas_object_size_hint_max_set(box, RECENT_APP_ITEM_WIDTH * MULTIPLIER_PAGES, RECENT_APP_ITEM_HEIGHT); + evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + + elm_box_pack_end(box, item_main); + + evas_object_show(box); + + return box; //BOX temp +} + +static void _icon_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + int object_x, object_y; + if (move_info.pressed) + { + return; + } + + Evas_Object *scroller = task_mgr_get_list(); + + if (!scroller) + { + LOGE("Failed to get scroller"); + return; + } + +// elm_scroller_movement_block_set(scroller, ELM_SCROLLER_MOVEMENT_BLOCK_VERTICAL); + + list_type_default_s *item = (list_type_default_s*)data; + Evas_Object *edje_object = elm_layout_edje_get(item->data); + if (!edje_object) + { + return; + } + if (!item->icon_object) + { + return; + } + + move_info.layout = item->data; + int layout_x, layout_y; + evas_object_geometry_get(move_info.layout, &layout_x, &layout_y, NULL, NULL); + evas_object_geometry_get(item->icon_object, &object_x, &object_y, NULL, NULL); + move_info.object_x = object_x; + move_info.object_y = object_y; + move_info.layout_x = layout_x; + move_info.layout_y = layout_y; + + move_info.pressed = 1; + move_info.layer_number = evas_object_layer_get(item->icon_object); +} + +static void _icon_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + LOGE("Mouse up"); + if (!move_info.pressed) + { + return; + } + + list_type_default_s *item = (list_type_default_s*)data; + Evas_Object *scroller = task_mgr_get_list(); + + if (!scroller) + { + LOGE("Failed to get scroller"); + return; + } + if (!item->icon_object) + { + return; + } + + elm_scroller_movement_block_set(scroller, ELM_SCROLLER_MOVEMENT_NO_BLOCK); + move_info.is_vertical_scroll_lock = 0; + + is_first = EINA_TRUE; + + int object_x, object_y; + evas_object_geometry_get(item->icon_object, &object_x, &object_y, NULL, NULL); + move_info.pressed = 0; + + Ecore_X_Screen *screen = ecore_x_default_screen_get(); + int w; + int h; + ecore_x_screen_size_get (screen, &w, &h); + + if (object_x > w - ELM_SCALE_SIZE(BORDER) - move_info.click_x || object_x < ELM_SCALE_SIZE(BORDER) - move_info.click_x) + { + on_scroller_edge(data); + move_info.pressed = 0; + return; + } + if (object_x != move_info.object_x) + { + evas_object_move(item->data, move_info.layout_x, move_info.layout_y); + } + evas_object_layer_set(item->icon_object, move_info.layer_number); + move_info.object_x = -1; + move_info.object_y = -1; + move_info.layer_number = -1; + + move_info.is_moving = 0; + move_info.touch_x = 0; + move_info.touch_y = 0; + + int alpha = 255; + evas_object_color_set(item->icon_object, alpha, alpha, alpha, alpha); +} + +static void _icon_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + LOGD("Mouse move"); + Ecore_Event_Mouse_Move *move = event_info; + list_type_default_s *item = (list_type_default_s*)data; + if (!move_info.is_moving) + { + move_info.is_moving = 1; + move_info.touch_x = move->y; + move_info.touch_y = move->x; + return; + } + if ((!move_info.is_vertical_scroll_lock) && (abs(move_info.touch_x - move->y) < 30)) + { + LOGD("Under sensitive factor !!!!! :: %d", abs(move_info.touch_x - move->y)); + return; + } + if (move_info.is_vertical_scrolling) + { + LOGD("is_vertical_scrolling TRUE !!!!!"); + return; + } + + if (!move_info.pressed) + { + return; + } + + if (obj == NULL) + { + return; + } + if (!item->data) + { + return; + } + if (!item->icon_object) + { + return; + } + + int object_x = 0, object_y = 0, object_y1 = 0, alpha = 255; + + is_scrolling = EINA_TRUE; + elm_scroller_movement_block_set(task_mgr_get_list(), ELM_SCROLLER_MOVEMENT_BLOCK_VERTICAL); + move_info.is_vertical_scroll_lock = 1; + + evas_object_geometry_get(item->icon_object, &object_x, &object_y, NULL, NULL); + evas_object_geometry_get(item->data, NULL, &object_y1, NULL, NULL); + + move_info.layout_y = object_y1; + + alpha = alpha - abs(ELM_SCALE_SIZE(ICON_X_COORD) - object_x); + + evas_object_color_set(item->icon_object, alpha, alpha, alpha, alpha); //color cannot be larger than alpha + + Ecore_X_Screen *screen = ecore_x_default_screen_get(); + int w; + int h; + ecore_x_screen_size_get (screen, &w, &h); + + LOGE("%d %d", move->y, move->x); + + if (is_first == EINA_TRUE) + { + is_first = EINA_FALSE; + + if (w == 720) + move_info.click_x = (move->y - move_info.object_x)*0.25; + else + move_info.click_x = move->y - move_info.object_x; + } + + evas_object_move(item->data, ELM_SCALE_SIZE((move->y - move_info.object_x)- move_info.click_x) , move_info.layout_y); +} + +static void del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + LOGE("Deleted"); + list_type_default_s *item = data; + item->data = NULL; +} + +static Evas_Object* _recent_app_item_main_create(Evas_Object *win, char *icon_path, char *title, char *appid, list_type_default_s *item) +{ + LOGD(""); + Evas_Object *layout = NULL; + Evas_Object *icon = NULL; + + if (!win) + { + LOGE("Failed to get lockscreen window"); + return NULL; + } + + layout = elm_layout_add(win); + if (!layout) + { + LOGE("Failed to create layout"); + return NULL; + } + + if (!elm_layout_file_set(layout, EDJE_DIR"recent_app-item.edj", "recent_app_item_main")) + { + LOGE("Failed to set file for notification item main layout"); + return NULL; + } + + icon = elm_image_add(win); + if (!icon) + { + LOGE("Failed to create icon file"); + return NULL; + } + + item->data = layout; + item->icon_object = icon; + + evas_object_event_callback_add(layout, EVAS_CALLBACK_MOUSE_DOWN, _icon_mouse_down, item); + evas_object_event_callback_add(layout, EVAS_CALLBACK_MOUSE_UP, _icon_mouse_up, item); + evas_object_event_callback_add(layout, EVAS_CALLBACK_MOUSE_MOVE, _icon_mouse_move, item); + elm_object_signal_callback_add(layout, "mouse,clicked,*", "icon_button", on_icon_clicked, item); + + elm_image_file_set(icon, icon_path, NULL); + elm_object_part_content_set(layout, "icon_image", icon); + + if (title) + { + elm_object_part_text_set(layout, "icon_text", title); + } + + evas_object_show(icon); + evas_object_show(layout); + + evas_object_event_callback_add(layout, EVAS_CALLBACK_DEL, del_cb, item); + + return layout; +} diff --git a/src/recent_apps.c b/src/recent_apps.c new file mode 100755 index 0000000..d722f8b --- /dev/null +++ b/src/recent_apps.c @@ -0,0 +1,804 @@ +/* + * Task Manager + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <Elementary.h> +#include <aul.h> +#include <pkgmgr-info.h> +#include <rua.h> +#include <dlog.h> +#include <Evas.h> +#include <libintl.h> +#include <vconf.h> +#include <glib.h> + +#include "recent_apps.h" + +#define PACKAGE_SETTING_TIME_EFL "setting-time-efl" +#define PACKAGE_OMA_DM "com.samsung.oma-dm" +#define PACKAGE_CAMERA "com.samsung.camera-app-lite" +#define METADATA_MULTI_LAUNCH_KEY "http://developer.samsung.com/tizen/metadata/multiwindow" + +typedef enum { + RECENT_APPS_ERROR_OK = 0, + RECENT_APPS_ERROR_FAIL = -1, + RECENT_APPS_ERROR_DB_FAILED = -2, + RECENT_APPS_ERROR_OUT_OF_MEMORY = -3, + RECENT_APPS_ERROR_INVALID_PARAMETER = -4, + RECENT_APPS_ERROR_NO_DATA = -5, +} recent_apps_error_e; + +static struct info +{ + Eina_Bool is_usp_mode; +} s_info = { + .is_usp_mode = 0, +}; + +GHashTable *ai_tbl; +GHashTable *ar_tbl; + +struct appinfo { + char *appid; + bool taskmanage; + int support_mode; + char *pkgid; + char *icon; + char *name; + bool nodisplay; + int support_feature; +}; + +struct rinfo { + char *appid; +}; + +/* +struct timeval tv; +long long rua_history_load_db_startTime = 0LL; +long long rua_history_load_db_endTime = 0LL; + +long long rua_history_get_rec_startTime = 0LL; +long long rua_history_get_rec_endTime = 0LL; + +long long retrieve_item_startTime = 0LL; +long long retrieve_item_endTime = 0LL; + +long long for_total_startTime = 0LL; +long long for_total_endTime = 0LL; + +long long if_total_startTime = 0LL; +long long if_total_endTime = 0LL; + +long long pkgmgr_startTime = 0LL; +long long pkgmgr_endTime = 0LL; + +void stop_watch_start(long long startTime) +{ + +} +void stop_watch_end(char* name, long long startTime, long long endTime) +{ + +} +*/ + +static int get_app_taskmanage(const char *appid) +{ + int ret = 0; + bool taskmanage; + pkgmgrinfo_appinfo_h handle; + ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle); + + if (ret != PMINFO_R_OK) + { + return -1; + } + + ret = pkgmgrinfo_appinfo_is_taskmanage(handle, &taskmanage); + + if (ret != PMINFO_R_OK) + { + pkgmgrinfo_appinfo_destroy_appinfo(handle); + return -1; + } + + LOGD("app %s is taskmanage: %d\n", appid, taskmanage); + pkgmgrinfo_appinfo_destroy_appinfo(handle); + + return taskmanage; +} + +static Eina_Bool kill_pid(int pid) +{ + Eina_Bool ret = EINA_TRUE; + + if (aul_terminate_pid(pid) < 0) + { + if (kill(pid, SIGKILL) < 0) + { + LOGE("kill: %s (%d)", strerror(errno), pid); + ret = EINA_FALSE; + } + } + else + { + LOGD("terminate pid = %d\n", pid); + } + + return ret; +} + +static int recent_apps_kill_all_cb(const aul_app_info *ainfo, void *data) +{ + if ( ainfo && + ainfo->appid && + get_app_taskmanage(ainfo->appid) == 1 && + strcmp(ainfo->appid, "com.samsung.task-mgr") != 0 + ) + { + kill_pid(ainfo->pid); + } + + return 0; + +} + +void recent_apps_kill_all() +{ + LOGD("%s\n", __FUNCTION__); + aul_app_get_running_app_info(recent_apps_kill_all_cb, NULL); +} + +Eina_Bool launch_app(const char *appid) +{ + if (appid == NULL || strlen(appid) == 0) + { + LOGE("Fail to launch, due to Null appid."); + return EINA_FALSE; + } + LOGD("Launching: %s\n", appid); + Eina_Bool to_ret = aul_app_is_running(appid); + + if (to_ret) + { + LOGD("THE APP IS RUNNING: %d\n", to_ret); + aul_open_app(appid); + } + else + { + LOGD("THE APP IS NOT RUNNING: %d\n", to_ret); + aul_launch_app(appid, NULL); + } + + return to_ret; +} + +static int recent_apps_find_by_appid_cb(const aul_app_info *ainfo, void *data) +{ + Get_Pid_Struct *gps = data; + const char *appid = gps->appid; + + LOGD("Comparing: %s <> %s (%d)\n", appid, ainfo->appid, ainfo->pid); + + if (strcmp(appid, ainfo->appid) == 0) + { + LOGD("FOUND\n"); + gps->pid = ainfo->pid; + } + + return 0; +} + +int recent_apps_find_by_appid(char *appid) +{ + LOGD("%s\n", __FUNCTION__); + Get_Pid_Struct gps; + gps.appid = appid; + gps.pid = -1; + + aul_app_get_running_app_info(recent_apps_find_by_appid_cb, &gps); + + return gps.pid; +} + +Eina_Bool recent_apps_kill_selected(char *appid, int pid) +{ + int killed = EINA_FALSE; + + LOGD("%s\n", __FUNCTION__); + + LOGD("Pid returned: %d (%s)\n", pid, appid); + + if (appid == NULL) + { + LOGE("appid == NULL"); + return EINA_FALSE; + } + + if (pid > -1) + { + if (aul_app_is_running(appid) == EINA_TRUE) + { + killed = kill_pid(pid); + } + else + { + LOGE("Not running app[%s]", appid); + } + } + rua_delete_history_with_pkgname(appid); + + LOGD("END %d %s\n", killed, __FUNCTION__); + return killed; +} + +recent_apps_error_e list_sort(app_list *list, int (*_sort_cb)(const void *d1, const void *d2)) +{ + retv_if(NULL == list, RECENT_APPS_ERROR_INVALID_PARAMETER); + + list->list = eina_list_sort(list->list, eina_list_count(list->list), _sort_cb); + retv_if(NULL == list->list, RECENT_APPS_ERROR_FAIL); + + return RECENT_APPS_ERROR_OK; +} + +static int _app_metadata_list_cb(const char *metadata_name, const char *metadata_value, void *user_data) +{ + retv_if(NULL == user_data, 0); + + LOGD("%s\n", metadata_name); + + if (metadata_name) { + *((bool *)user_data) = !strcmp(metadata_name, METADATA_MULTI_LAUNCH_KEY); + } + + return 0; +} + +bool list_is_multi_launch(pkgmgrinfo_appinfo_h app_handle) +{ + bool multi_launch = false; + + /** + * This function will invoke the callback before return. + * So the callback function can update this "multi_launch" value. + */ + if (PMINFO_R_OK != pkgmgrinfo_appinfo_foreach_metadata(app_handle, _app_metadata_list_cb, &multi_launch)) + { + return false; + } + + return multi_launch; +} + +static void list_unretrieve_item(list_type_default_s *default_info) +{ + ret_if(NULL == default_info); + list_type_default_s* item = default_info; + + LOGD("FREING %p %s 's Item(list_type_default_s) in %s\n", item, item->appid, __FUNCTION__); + + if (item->appid) + { + free(item->appid); + item->appid = NULL; + } + + if (item->pkgid) + { + free(item->pkgid); + item->pkgid = NULL; + } + + if (item->name) + { + free(item->name); + item->name = NULL; + } + + if (item->icon) + { + free(item->icon); + item->icon = NULL; + } + + if (item->arg) + { + free(item->arg); + item->arg = NULL; + } + + if (item) + { + free(item); + item = NULL; + } + + LOGD("%s END \n", __FUNCTION__); +} + +static list_type_default_s *list_retrieve_item(const char *appid, const char *arg, time_t launch_time) +{ + retv_if(NULL == appid, NULL); + + list_type_default_s *default_info = NULL; + bool taskmanage = false; + struct appinfo * ai; + int ret = 0, status = 0; + + ai = g_hash_table_lookup(ai_tbl, appid); + if (!ai) + { + LOGE("Fail to get ai table !!"); + return NULL; + } + + /** + * Check whether it supports taskmanage or not. + */ + taskmanage = ai->taskmanage; + if (!taskmanage) + { + LOGE("Not support taskmanage"); + return NULL; + } + + default_info = calloc(1, sizeof(*default_info)); + if (NULL == default_info) + { + LOGE("calloc: %s\n", strerror(errno)); + return NULL; + } + + default_info->appid = strdup(appid); + if (!default_info->appid) + { + LOGE("strdup: %s\n", strerror(errno)); + goto ERROR; + } + + if (!strcmp(default_info->appid, PACKAGE_CAMERA)) + { + LOGD("Should check camera app's status using vconfkey"); + ret = vconf_get_int("db/camera/display_state", &status); + LOGD("Camera App's display status :: %d", status); + /** + * Get camera app's status, and decide to show camera app's icon or not. + */ + if(ret == -1) { + LOGE("Fail to get vconf value (db/camera/display_state)!!"); + } + else + { + if(!status) + { + LOGD("Camera app must NOT display on task-mgr !!"); + goto ERROR; + } + } + } +/* + if (!strcmp(default_info->appid, PACKAGE_SETTING_TIME_EFL) || !strcmp(default_info->appid, PACKAGE_OMA_DM)) + { + LOGD("Date and time, oma-dm don't want to be shown on Task-Manager"); + free(default_info); + return NULL; + } +*/ + if (arg) + { + default_info->arg = strdup(arg); + if (!default_info->arg) + { + LOGE("strdup: %s\n", strerror(errno)); + goto ERROR; + } + } + + if (ai->pkgid) + { + default_info->pkgid = strdup(ai->pkgid); + } + else + { + LOGE("Fail to get pkgid from ai table !!"); + goto ERROR; + } + + if (ai->icon) + { + default_info->icon = strdup(ai->icon); + } + else + { + LOGE("Fail to get icon from ai table !!"); + goto ERROR; + } + + if (ai->name) + { + default_info->name = strdup(ai->name); + } + else + { + LOGE("Fail to get name from ai table !!"); + goto ERROR; + } + + LOGD("[%s]\n[%s]\n[%s]\n", ai->pkgid, ai->icon, ai->name); + + default_info->launch_time = launch_time; + + return default_info; + +ERROR: + if (default_info->icon) free(default_info->icon); + if (default_info->pkgid) free(default_info->pkgid); + if (default_info->appid) free(default_info->appid); + if (default_info->arg) free(default_info->arg); + if (default_info) free(default_info); + return NULL; +} + +static int _launch_time_sort_cb(const void *d1, const void *d2) +{ + list_type_default_s *tmp1 = (list_type_default_s *) d1; + list_type_default_s *tmp2 = (list_type_default_s *) d2; + + if (NULL == tmp1) return -1; + if (NULL == tmp2) return 1; + + if (NULL == tmp1->appid) return 1; + else if (NULL == tmp2->appid) return -1; + + return tmp1->launch_time >= tmp2->launch_time ? -1 : 1; +} + +void list_destroy(app_list *list) +{ + LOGD("START %s\n", __FUNCTION__); + + list_type_default_s *default_info = NULL; + + ret_if(NULL == list); + if (NULL == list->list) + { + free(list); + list = NULL; + return; + } + + LOGD("FREE ALL %s\n", __FUNCTION__); + + EINA_LIST_FREE(list->list, default_info) + { + if (NULL != default_info) + { + LOGD("FREING: %s %s\n", __FUNCTION__, default_info->appid); + list_unretrieve_item(default_info); + } + } + + free(list); + list = NULL; + LOGD("END %s\n", __FUNCTION__); +} + + +int __app_list_cb(pkgmgrinfo_appinfo_h app_handle, void *user_data) +{ + char *appid = NULL; + struct appinfo *ai; + char *pkgid = NULL; + char *name = NULL; + char *icon = NULL; + + ai = calloc(1, sizeof(*ai)); + + memset(ai, 0, sizeof(struct appinfo)); + + pkgmgrinfo_appinfo_get_appid(app_handle, &appid); + + ai->appid= strdup(appid); + + if (PMINFO_R_OK != pkgmgrinfo_appinfo_is_taskmanage(app_handle, &ai->taskmanage)) + { + goto ERROR; + } + + if (PMINFO_R_OK != pkgmgrinfo_appinfo_get_support_mode(app_handle, &ai->support_mode)) { + goto ERROR; + } + + if (PMINFO_R_OK != pkgmgrinfo_appinfo_get_pkgid(app_handle, &pkgid)) + { + goto ERROR; + } + + ai->pkgid = strdup(pkgid); + + if (PMINFO_R_OK != pkgmgrinfo_appinfo_get_icon(app_handle, &icon)) + { + goto ERROR; + } + + if(icon) + ai->icon= strdup(icon); + + if (PMINFO_R_OK != pkgmgrinfo_appinfo_get_label(app_handle, &name)) + { + goto ERROR; + } + if(name) + ai->name= strdup(name); + + if (PMINFO_R_OK != pkgmgrinfo_appinfo_is_nodisplay(app_handle, &ai->nodisplay)) + { + goto ERROR; + } + + if (PMINFO_R_OK != pkgmgrinfo_appinfo_get_support_feature(app_handle, &ai->support_feature)) + { + goto ERROR; + } + + g_hash_table_insert(ai_tbl, ai->appid, ai); + return 0; + +ERROR: + if (ai->appid) free(ai->appid); + if (ai->pkgid) free(ai->pkgid); + if (ai->icon) free(ai->icon); + if (ai->name) free(ai->name); + free(ai); + return 0; +} + +static int iterfunc(const aul_app_info* info, void* data) +{ + struct rinfo *ri; + + ri = calloc(1, sizeof(*ri)); + memset(ri, 0, sizeof(struct rinfo)); + + ri->appid = strdup(info->appid); + + g_hash_table_insert(ar_tbl, ri->appid, ri); + + return 0; +} + + +static int __load_pkginfo() +{ + int ret = 0; + ai_tbl = g_hash_table_new(g_str_hash, g_str_equal); + + pkgmgrinfo_appinfo_filter_h handle; + + ret = pkgmgrinfo_appinfo_filter_create(&handle); + if (ret != PMINFO_R_OK) + { + return -1; + } + + ret = pkgmgrinfo_appinfo_filter_add_bool(handle, PMINFO_APPINFO_PROP_APP_TASKMANAGE, 1); + if (ret != PMINFO_R_OK) + { + pkgmgrinfo_appinfo_filter_destroy(handle); + return -1; + } + + ret = pkgmgrinfo_appinfo_filter_foreach_appinfo(handle, __app_list_cb, NULL); + if (ret != PMINFO_R_OK) + { + pkgmgrinfo_appinfo_filter_destroy(handle); + return -1; + } + + pkgmgrinfo_appinfo_filter_destroy(handle); + + ar_tbl = g_hash_table_new(g_str_hash, g_str_equal); + aul_app_get_running_app_info(iterfunc, NULL); + + return 0; +} + +int recent_app_list_create(app_list **history_list_p, app_list **running_list_p) +{ + LOGD("%s\n", __FUNCTION__); + rua_init(); + + list_type_default_s *default_info = NULL; + + char **table = NULL; + int nrows = 0; + int ncols = 0; + int row = 0; + app_list *history_list = NULL; + app_list *running_list = NULL; + int mode; + + if (__load_pkginfo() == -1) + { + LOGE("Fail to load pkginfo !!"); + return 0; + } + + if (vconf_get_int(VCONFKEY_SETAPPL_PSMODE, &mode) == 0) + { + if (mode == SETTING_PSMODE_EMERGENCY) + { + LOGD("USP mode is enabled."); + s_info.is_usp_mode = 1; + } + else + { + LOGD("USP mode is disabled."); + s_info.is_usp_mode = 0; + } + } + else + { + LOGD("Fail to get VConfkey (VCONFKEY_SETAPPL_PSMODE)"); + s_info.is_usp_mode = 0; + } +/* + gettimeofday(&tv, 0); + rua_history_load_db_startTime = (long long)tv.tv_sec * 1000000LL + (long long)tv.tv_usec / 1LL; +*/ + if (-1 == rua_history_load_db(&table, &nrows, &ncols)) + { + if (table) + { + rua_history_unload_db(&table); + } + return 0; + } +/* + gettimeofday(&tv, 0); + rua_history_load_db_endTime = (long long)tv.tv_sec * 1000000LL + (long long)tv.tv_usec / 1LL; + LOGD("[TIME] [rua_history_load_db] time : %lld ms", (rua_history_load_db_endTime - rua_history_load_db_startTime)/1000); +*/ + + LOGD("Apps in history: %d\n", nrows); + + history_list = calloc(1, sizeof(*history_list)); + if (!history_list) + { + LOGE("calloc: %s\n", strerror(errno)); + if (table) + { + rua_history_unload_db(&table); + } + return 0; + } + + running_list = calloc(1, sizeof(*running_list)); + if (!running_list) + { + LOGE("calloc: %s\n", strerror(errno)); + if (table) + { + rua_history_unload_db(&table); + } + free(history_list); + return 0; + } +/* + gettimeofday(&tv, 0); + for_total_startTime = (long long)tv.tv_sec * 1000000LL + (long long)tv.tv_usec / 1LL; +*/ + // History list + for (; row < nrows; row++) { + struct rua_rec rec_result = {0,}; +/* + gettimeofday(&tv, 0); + rua_history_get_rec_startTime = (long long)tv.tv_sec * 1000000LL + (long long)tv.tv_usec / 1LL; +*/ + rua_history_get_rec(&rec_result, table, nrows, ncols, row); +/* + gettimeofday(&tv, 0); + rua_history_get_rec_endTime = (long long)tv.tv_sec * 1000000LL + (long long)tv.tv_usec / 1LL; + LOGD("[TIME] [rua_history_get_rec] time : %lld ms", (rua_history_get_rec_endTime - rua_history_get_rec_startTime)/1000); +*/ +/* + gettimeofday(&tv, 0); + retrieve_item_startTime = (long long)tv.tv_sec * 1000000LL + (long long)tv.tv_usec / 1LL; +*/ + default_info = list_retrieve_item(rec_result.pkg_name, rec_result.arg, rec_result.launch_time); +/* + gettimeofday(&tv, 0); + retrieve_item_endTime = (long long)tv.tv_sec * 1000000LL + (long long)tv.tv_usec / 1LL; + LOGD("[TIME] [list_retrieve_item] time : %lld ms", (retrieve_item_endTime - retrieve_item_startTime)/1000); +*/ + +/* + gettimeofday(&tv, 0); + if_total_startTime = (long long)tv.tv_sec * 1000000LL + (long long)tv.tv_usec / 1LL; +*/ + + if (default_info) + { + if (g_hash_table_lookup(ar_tbl, rec_result.pkg_name)) + { + LOGD("App added into the running_list : pkgid:%s - appid:%s", default_info->pkgid, default_info->appid); + running_list->list = eina_list_append(running_list->list, default_info); + } + else + { + LOGD("App added into the history_list : : pkgid:%s - appid:%s", default_info->pkgid, default_info->appid); + history_list->list = eina_list_append(history_list->list, default_info); + } + } +/* gettimeofday(&tv, 0); + if_total_endTime = (long long)tv.tv_sec * 1000000LL + (long long)tv.tv_usec / 1LL; + LOGD("[TIME] [IF_TOTAL] Total time : %lld ms", (if_total_endTime - if_total_startTime)/1000); +*/ + } +/* + gettimeofday(&tv, 0); + for_total_endTime = (long long)tv.tv_sec * 1000000LL + (long long)tv.tv_usec / 1LL; + LOGD("[TIME] [FOR_TOTAL] Total time : %lld ms", (for_total_endTime - for_total_startTime)/1000); +*/ + + if (history_list->list && RECENT_APPS_ERROR_OK != list_sort(history_list, _launch_time_sort_cb)) + { + LOGE("Cannot sort list for history apps"); + } + + if (running_list->list && RECENT_APPS_ERROR_OK != list_sort(running_list, _launch_time_sort_cb)) + { + LOGE("Cannot sort list for history apps"); + } + + rua_history_unload_db(&table); + + LOGD("HISTORY LIST: %p %d\n", history_list->list, eina_list_count(history_list->list)); + LOGD("RUNNING LIST: %p %d\n", running_list->list, eina_list_count(running_list->list)); + + *history_list_p = history_list; + *running_list_p = running_list; + + if (!eina_list_count(history_list->list) && !eina_list_count(running_list->list)) + { + LOGD("Don't need to init genlist."); + list_unretrieve_item(default_info); + return 0; + } + + return 1; +} + +void recent_app_list_destroy(app_list *history_list, app_list *running_list) +{ + LOGD("%s\n", __FUNCTION__); + + if (history_list && history_list->list != NULL) + { + list_destroy(history_list); + } + + if (running_list && running_list->list != NULL) + { + list_destroy(running_list); + } +} + +/* End of a file */ diff --git a/src/task-mgr-lite.c b/src/task-mgr-lite.c new file mode 100755 index 0000000..f8fae51 --- /dev/null +++ b/src/task-mgr-lite.c @@ -0,0 +1,477 @@ +/* + * Task Manager + * + * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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 <stdio.h> +#include <stdlib.h> +#include <appcore-efl.h> +#include <Evas.h> +#include <Elementary.h> +#include <Eina.h> +#include <aul.h> +#include <rua.h> +#include <bundle.h> +#include <Ecore_X.h> +#include <vconf.h> +#include <malloc.h> +#include <time.h> +#include <feedback.h> +#include <dlog.h> + +#include "genlist.h" +#include "recent_apps.h" +#include "genlist_item.h" +#include "task-mgr-lite.h" + +#define BUF_SIZE 1024 +#define WHITE "#F5F5F5" +#define LABEL_POSITION_X 203 +#define LABEL_POSITION_Y 367 +#define LABEL_RESIZE_HEIGHT 42 +#define KEY_BACK "XF86Stop" +#define KEY_HOME "XF86Phone" + +static struct +{ + Evas_Object *win; + Evas_Object *layout; + Evas_Object *list; + Evas_Object *bg; + app_list *history_list; + app_list *running_list; + int status; + int width; + int height; + Evas_Object *gesture_1; + Evas_Object *gesture_2; +} App_Info; + +/* +long long list_create_startTime = 0LL; +long long list_create_endTime = 0LL; + +struct timeval tv; +*/ +Evas_Object *task_mgr_get_win(void) +{ + return App_Info.win; +} + +Evas_Object *task_mgr_get_layout(void) +{ + return App_Info.layout; +} + +Evas_Object *task_mgr_get_list(void) +{ + return App_Info.list; +} + +Eina_List *task_mgr_history_list(void) +{ + return App_Info.history_list ? App_Info.history_list->list : NULL; +} + +Eina_List *task_mgr_running_list(void) +{ + return App_Info.running_list ? App_Info.running_list->list : NULL; +} + +int task_mgr_get_screen_width(void) +{ + return App_Info.width; +} + +void task_mgr_hide(void) +{ + if (elm_genlist_items_count(App_Info.list) > 1) + { + recent_apps_kill_all(); + elm_genlist_clear(App_Info.list); + rua_clear_history(); + + elm_exit(); + } +} + +static Eina_Bool on_hw_back(void *data, Evas_Object *obj, Evas_Object *src, Evas_Callback_Type type, void *event_info) +{ + LOGD("%s\n", __FUNCTION__); + Evas_Event_Key_Down *ev = event_info; + + if (type == EVAS_CALLBACK_KEY_DOWN && strncmp(KEY_BACK, ev->key, strlen(KEY_BACK)) == 0) + { + LOGD("KEY PRESSED: %s\n", ev->key); + + elm_exit(); + return EINA_TRUE; + } + else + { + return EINA_FALSE; + } + +} + +Eina_Bool on_tap_timer(void *data) +{ + LOGD("%s\n", __FUNCTION__); + if (no_shutdown == EINA_FALSE) + { +// set_autorotate(EINA_FALSE, EINA_FALSE); +// elm_win_withdrawn_set(App_Info.win, EINA_TRUE); + } + else + { + no_shutdown = EINA_FALSE; + } + + return ECORE_CALLBACK_CANCEL; +} + +static Evas_Event_Flags on_swipe_gesture(void *data, void *event_info) +{ + LOGD("%s\n", __FUNCTION__); + const char *number = data; + Elm_Gesture_Line_Info *info = event_info; + + LOGD("FLICK detected %s %f no_shutdown: %d\n", number, info->angle, no_shutdown); + + if (strcmp(number, "list") == 0) + { + is_scrolling = EINA_FALSE; + } + ecore_timer_add(1, on_tap_timer, NULL); + + return EVAS_EVENT_FLAG_NONE; +} + +static Evas_Object *add_layout(Evas_Object *parent, int w, int h) +{ + Evas_Object *layout = elm_layout_add(parent); + + if (!layout) + { + LOGE("Failed to create layout"); + return NULL; + } + evas_object_show(layout); + + evas_object_resize(layout, w, h); + + return layout; +} + +static Evas_Object *add_bg(Evas_Object *parent, int w, int h) +{ + Evas_Object *bg = elm_bg_add(parent); + if (!bg) + { + return NULL; + } + + evas_object_resize(bg, w, h); + evas_object_color_set(bg, 8, 8, 8, 100); + evas_object_show(bg); + + return bg; +} + +static int create_layout(void) +{ + LOGD("%s\n", __FUNCTION__); + Evas_Object *layout; + Eina_Bool layout_set = false; + + if (App_Info.layout) + { + LOGE("Already created"); + return 0; + } + + layout = add_layout(App_Info.win, App_Info.width, App_Info.height); + if (!layout) + { + LOGE("Failed to create layout"); + return -1; + } + + if (App_Info.width == 720 && App_Info.height == 1280) + { + LOGD("Resolution: HD"); + layout_set = elm_layout_file_set(layout, EDJE_DIR_TASK_MGR_LITE_HD, "task_mgr_ui"); + } + else if (App_Info.width == 480 && App_Info.height == 800) + { + LOGD("Resolution: WVGA"); + layout_set = elm_layout_file_set(layout, EDJE_DIR_TASK_MGR_LITE_WVGA, "task_mgr_ui"); + } + else + { + LOGD("Resolution: WVGA (default)"); + layout_set = elm_layout_file_set(layout, EDJE_DIR_TASK_MGR_LITE_WVGA, "task_mgr_ui"); + } + + if (EINA_FALSE == layout_set) + { + evas_object_del(layout); + LOGE("Cannot load layout"); + return -1; + } + + App_Info.layout = layout; + return 0; +} + +int init_gesture() +{ + App_Info.gesture_1 = elm_gesture_layer_add(App_Info.layout); + if (!App_Info.gesture_1) + { + LOGE("Failed to create gesture layer"); + return -1; + } + + elm_gesture_layer_attach(App_Info.gesture_1, App_Info.layout); + elm_gesture_layer_cb_set(App_Info.gesture_1, ELM_GESTURE_N_TAPS, ELM_GESTURE_STATE_END, on_swipe_gesture, "layout"); + + if (App_Info.list) + { + App_Info.gesture_2 = elm_gesture_layer_add(App_Info.list); + if (!App_Info.gesture_2) + { + LOGE("Failed to create gesture layer"); + evas_object_del(App_Info.gesture_1); + return -1; + } + + elm_gesture_layer_attach(App_Info.gesture_2, App_Info.list); + elm_gesture_layer_cb_set(App_Info.gesture_2, ELM_GESTURE_N_TAPS, ELM_GESTURE_STATE_END, on_swipe_gesture, "list"); + } + + return 0; +} + +static void delete_layout(void) +{ + LOGD("%s\n", __FUNCTION__); + if (App_Info.layout) + { + evas_object_del(App_Info.layout); + App_Info.layout = NULL; + } +} + +static int load_data(void) +{ + LOGD("%s\n", __FUNCTION__); + int ret = 0; + + if (App_Info.history_list || App_Info.running_list) { + LOGD("Already loaded"); + return 0; + } + + ret = recent_app_list_create(&App_Info.history_list, &App_Info.running_list); + + LOGD("LISTs : %p, %p", App_Info.history_list, App_Info.running_list); + if (!ret) + { + LOGD("No Applications should display !!"); + elm_object_part_text_set(App_Info.layout, "no_item_label", D_("IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2")); + elm_layout_signal_emit(App_Info.layout, "no_apps_text,show", "no_item_label"); + LOGD("Hide TaskManager(No Applications) - STMS : %s", D_("IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2")); + + return 0; + } + else + { + LOGD("App list should display !!"); + if (!App_Info.list) { + elm_layout_signal_emit(App_Info.layout, "no_apps_text,hide", "no_item_label"); + /** + * static_line show should be shown after clear all button flush ! + * static_line will be shown by _clear_all_btn_show_cb() in genlist_item.c + **/ + App_Info.list = genlist_init(App_Info.win, App_Info.layout, App_Info.running_list->list, App_Info.history_list->list); + elm_scroller_single_direction_set(App_Info.list, ELM_SCROLLER_SINGLE_DIRECTION_HARD); + + if (init_gesture() < 0) + { + LOGE("Failed to create a gesture layer"); + } + } + + genlist_update(App_Info.list, App_Info.history_list->list, App_Info.running_list->list); + } + + LOGD("%s END. \n", __FUNCTION__); + return 0; +} + +static int _create_app(void *data) +{ + elm_app_base_scale_set(1.8); + + LOGD("Application Create Callback "); + + int w = 0, h = 0; + + Evas_Object *win; + Ecore_X_Screen *screen; + + win = elm_win_add(NULL, "Taskmanager", ELM_WIN_BASIC); + if (!win) + { + LOGE("Failed to create win"); + return -1; + } + App_Info.win = win; + + screen = ecore_x_default_screen_get(); + if (!screen) { + evas_object_del(win); + return -1; + } + + ecore_x_screen_size_get (screen, &w, &h); + App_Info.width = w; + App_Info.height = h; + + feedback_initialize(); + + Evas_Object *bg = add_bg(win, w, h); + if (!bg) + { + LOGE("Failed to create bg"); + evas_object_del(win); + return -1; + } + App_Info.bg = bg; + + //4175 MB + + elm_object_event_callback_add(win, on_hw_back, NULL); + + elm_win_indicator_mode_set(win, ELM_WIN_INDICATOR_SHOW); + elm_win_indicator_opacity_set(win, ELM_WIN_INDICATOR_TRANSPARENT); + + elm_win_borderless_set(win, EINA_TRUE); + elm_win_alpha_set(win, EINA_TRUE); + evas_object_show(win); + + if (create_layout() < 0) + { + LOGE("Failed to create a layout"); + } + + if (load_data() < 0) + { + LOGE("Failed to load data"); + } + + return EXIT_SUCCESS; +} + +static int _terminate_app(void *data) +{ + LOGD("%s\n", __FUNCTION__); + + if (App_Info.gesture_1) + { + evas_object_del(App_Info.gesture_1); + App_Info.gesture_1 = NULL; + } + + if (App_Info.gesture_2) + { + evas_object_del(App_Info.gesture_2); + App_Info.gesture_2 = NULL; + } + + if (App_Info.list) + { + genlist_clear_list(App_Info.list); + evas_object_del(App_Info.list); + App_Info.list = NULL; + } + + delete_layout(); + + recent_app_list_destroy(App_Info.history_list, App_Info.running_list); + App_Info.history_list = NULL; + App_Info.running_list = NULL; + + rua_fini(); + + elm_cache_all_flush(); + malloc_trim(0); + appcore_flush_memory(); + + /** + * Even though the window is deleted automatically, + * It is good habit to delete window explicitly by your hands. + */ + + if (App_Info.bg) { + evas_object_del(App_Info.bg); + App_Info.bg = NULL; + } + + if (App_Info.win) { + evas_object_del(App_Info.win); + App_Info.win = NULL; + } + + return 0; +} + +static int _reset_app(bundle* bundle, void *data) +{ + LOGD("%s\n", __FUNCTION__); + + return EXIT_SUCCESS; +} + +static int _pause_app(void *data) +{ + LOGD("%s\n", __FUNCTION__); + + elm_exit(); + return EXIT_SUCCESS; +} + +int main(int argc, char **argv) +{ + LOGD("Application Main Function \n"); + int ret; + struct appcore_ops ops = + { + .create = _create_app, + .terminate = _terminate_app, + .reset = _reset_app, + .pause = _pause_app, + .resume = NULL, + }; + ops.data = &App_Info; + ret = appcore_efl_main("task-mgr", &argc, &argv, &ops); + + return ret; +} + +/* End of a file */ diff --git a/src/taskmanager.c b/src/taskmanager.c deleted file mode 100755 index 59fabf8..0000000 --- a/src/taskmanager.c +++ /dev/null @@ -1,306 +0,0 @@ -/* - * org.tizen.taskmgr - * Copyright (c) 2012 Samsung Electronics Co., Ltd. - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - - - -#include <stdio.h> -#include <unistd.h> -#include <appcore-efl.h> -#include <Elementary.h> -#include <Ecore_X.h> -#include <utilX.h> -#include <vconf.h> -#include <aul.h> -#include <sysman.h> - -#include "taskmanager.h" -#include "_util_log.h" -#include "_util_efl.h" -#include "_logic.h" -#include "_genlist.h" - -struct text_part { - char *part; - char *msgid; -}; - -enum { - IDLELOCK_OFF = 0x0, - IDLELOCK_ON, - IDLELOCK_MAX, -}; - -enum { - LCD_OFF = 0x0, - LCD_ON, - LCD_MAX, -}; - -static struct text_part main_txt[] = { -}; - -static void update_ts(Evas_Object *eo, struct text_part *tp, int size) -{ - int i; - - if (eo == NULL || tp == NULL || size < 0) - return; - - for (i = 0; i < size; i++) { - if (tp[i].part && tp[i].msgid) - edje_object_part_text_set(eo, - tp[i].part, _(tp[i].msgid)); - } -} - -static int _lang_changed(void *data) -{ - struct appdata *ad = data; - - if (ad->ly == NULL) - return 0; - - update_ts(elm_layout_edje_get(ad->ly), - main_txt, sizeof(main_txt) / sizeof(main_txt[0])); - - return 0; -} - -int _get_vconf_idlelock(void) -{ - int ret = -1; - int lock = IDLELOCK_OFF; - - ret = vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &lock); - retvm_if(ret < 0, -1, "Failed to get vconf\n"); - _D("idlelock vconf:%d\n", lock); - - return lock == VCONFKEY_IDLE_LOCK ? IDLELOCK_ON : IDLELOCK_OFF; -} - -int _get_vconf_lcdstate(void) -{ - int ret = -1; - int lcd = 0; - - ret = vconf_get_int(VCONFKEY_PM_STATE, &lcd); - retvm_if(ret < 0, -1, "Failed to get vconf\n"); - _D("lcd vconf:%d\n", lcd); - - return lcd == VCONFKEY_PM_STATE_LCDOFF ? LCD_OFF : LCD_ON; -} - -Eina_Bool _exit_cb(void *data) -{ - /* - int lock = IDLELOCK_ON; - lock = _get_vconf_idlelock(); - - _D("lock(%d)\n", lock); - if(lock == IDLELOCK_OFF){ - _D("normal case\n"); - elm_exit(); - } - else{ - _D("IDLELOCK is set, taskmnager doesn't exit\n"); - return ECORE_CALLBACK_CANCEL; - } - return ECORE_CALLBACK_CANCEL; - */ - _D(""); - elm_exit(); - return ECORE_CALLBACK_CANCEL; -} - -void _key_grab(struct appdata *ad) -{ - int ret = 0; - Ecore_X_Window xwin; /* key grab */ - Ecore_X_Display *disp; /* key grab */ - - /* Key Grab */ - disp = ecore_x_display_get(); - xwin = elm_win_xwindow_get(ad->win); - - ret = utilx_grab_key(disp, xwin, KEY_SELECT, SHARED_GRAB); - retm_if(ret < 0, "Failed to grab home key\n"); -} - -int _set_launch_effect(Evas_Object *win) -{ - Ecore_X_Window xwin = 0; - static Ecore_X_Atom ATOM_WM_WINDOW_ROLE = 0; - static Ecore_X_Atom ATOM_NET_WM_NAME = 0; - retvm_if(win == NULL, -1, "[Error] Invalid argument: win is NULL\n"); - - ATOM_WM_WINDOW_ROLE = ecore_x_atom_get("WM_WINDOW_ROLE"); - if (!ATOM_WM_WINDOW_ROLE) { - _E("[App] %s(%d) XInternAtom(WM_WINDOW_ROLE) failed.\n", - __func__, __LINE__); - } - - ATOM_NET_WM_NAME = ecore_x_atom_get("_NET_WM_NAME"); - if (!ATOM_NET_WM_NAME) { - _E("[App] %s(%d) XInternAtom(ATOM_NET_WM_NAME) failed.\n", - __func__, __LINE__); - } - - xwin = elm_win_xwindow_get(win); - ecore_x_window_prop_string_set(xwin, ATOM_WM_WINDOW_ROLE, - "TASK_MANAGER"); - ecore_x_window_prop_string_set(xwin, ATOM_NET_WM_NAME, "TASK_MANAGER"); - - ecore_x_icccm_name_class_set(xwin, "TASK_MANAGER", "TASK_MANAGER"); - return 0; -} - -int _unset_notification_level(Evas_Object *win) -{ - Ecore_X_Window xwin; - - xwin = elm_win_xwindow_get(win); - ecore_x_netwm_window_type_set(xwin, ECORE_X_WINDOW_TYPE_NORMAL); - return 0; -} - -#if 0 -int _set_notification_level(Evas_Object *win, Utilx_Notification_Level level) -{ - Ecore_X_Window xwin = 0; - - xwin = elm_win_xwindow_get(win); - ecore_x_netwm_window_type_set(xwin, ECORE_X_WINDOW_TYPE_NOTIFICATION); - utilx_set_system_notification_level(ecore_x_display_get(), xwin, level); - return 0; -} -#endif - -void _check_show_state(void) -{ - int lcd = LCD_OFF, idlelock = IDLELOCK_OFF; - lcd = _get_vconf_lcdstate(); - idlelock = _get_vconf_idlelock(); - if(lcd == LCD_OFF || idlelock == IDLELOCK_ON) - { - elm_exit(); - } -} - -int app_create(void *data) -{ - Evas_Object *win; - struct appdata *ad = data; - int r; - - win = _add_window(PACKAGE); - retv_if(win == NULL, -1); - elm_win_indicator_mode_set(win, ELM_WIN_INDICATOR_SHOW); - ad->win = win; - - _set_launch_effect(win); - - /* init internationalization */ - r = appcore_set_i18n(PACKAGE, LOCALEDIR); - retvm_if(r < 0, -1, "Failed to set i18n\n"); - /*_lang_changed(ad);*/ - - //elm_theme_extension_add(NULL, EDJ_THEME); - - _app_create(ad); - _set_itc(); - _set_genlist(ad); - - /* set dead signal listener */ - aul_listen_app_dead_signal(_dead_cb, ad); - - appcore_set_event_callback(APPCORE_EVENT_LANG_CHANGE, - _lang_changed, ad); - - ecore_idler_add(_create_idler_cb, ad); - - return 0; -} - -static int app_terminate(void *data) -{ - return 0; -} - -static int app_pause(void *data) -{ - return 0; -} - -static int app_resume(void *data) -{ -_D("func\n"); - struct appdata *ad = data; - - refresh_app_info(ad); - if (ad->killall_timer) { - ecore_timer_del(ad->killall_timer); - ad->killall_timer = NULL; - } - if (ad->exit_timer) { - ecore_timer_del(ad->exit_timer); - ad->exit_timer = NULL; - } - - return 0; -} - -static int app_reset(bundle *b, void *data) -{ - struct appdata *ad = data; - - /* appcore measure time example */ - _D("from AUL to %s(): %d msec\n", __func__, - appcore_measure_time_from("APP_START_TIME")); - _D("from create to %s(): %d msec\n", __func__, - appcore_measure_time()); - - if (ad->win) { - elm_win_activate(ad->win); - ad->flag_select = EINA_FALSE; - } - - return 0; -} - -int main(int argc, char *argv[]) -{ - sysconf_set_mempolicy(OOM_IGNORE); - - struct appdata ad; - struct appcore_ops ops = { - .create = app_create, - .terminate = app_terminate, - .pause = app_pause, - .resume = app_resume, - .reset = app_reset, - }; - - /* appcore measure time example */ - _D("from AUL to %s(): %d msec\n", __func__, - appcore_measure_time_from("APP_START_TIME")); - - memset(&ad, 0x0, sizeof(struct appdata)); - ops.data = &ad; - - return appcore_efl_main(PACKAGE, &argc, &argv, &ops); -} diff --git a/src/taskmanager.h b/src/taskmanager.h deleted file mode 100755 index bedb288..0000000 --- a/src/taskmanager.h +++ /dev/null @@ -1,135 +0,0 @@ -/* - * org.tizen.taskmgr - * Copyright (c) 2012 Samsung Electronics Co., Ltd. - * - * Licensed under the Flora License, Version 1.1 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - - - -#ifndef __TASKMANAGER_H__ -#define __TASKMANAGER_H__ - -#include <Elementary.h> -#include <Ecore_X.h> -#include <utilX.h> -#include <bundle.h> - -#if !defined(PACKAGE) -#define PACKAGE "taskmanager" -#endif - -#ifndef PREFIX -#define PREFIX "/usr/apps/org.tizen."PACKAGE -#endif - -#if !defined(RESDIR) -# define RESDIR PREFIX"/res" -#endif - -#if !defined(LOCALEDIR) -#define LOCALEDIR RESDIR"/locale" -#endif - -#if !defined(EDJDIR) -#define EDJDIR RESDIR"/edje"PACKAGE -#endif - -#if !defined(IMAGEDIR) -# define IMAGEDIR RESDIR"/images/"PACKAGE -#endif - -#define EDJ_NAME EDJDIR"/taskmgr.edj" -#define EDJ_THEME EDJDIR"/theme_taskmanager.edj" -#define GRP_TM "task_manager" - -#define S_(str) dgettext("sys_string", str) -#define T_(str) gettext(str) - -#define _BUF_MAX 256 -#define _EDJ(x) elm_layout_edje_get(x) - -#define POPUP_TIMER 1.0 -#define POPUP_TERMINATE_TIMER 1.5 - -struct appdata { - Evas *evas; - Evas_Object *win, *ly, *nv, *gl; - - Evas_Coord root_w, root_h; - - Eina_List *applist[2]; - /* runapp : 0, history: 1 */ - - Ecore_Timer *popup_timer; - Evas_Object *popup_ask; - Evas_Object *popup_progressbar; - - Ecore_Timer *update_timer; - Ecore_Timer *exit_timer; - - Ecore_Timer *killall_timer; - - double mem_total; - - int mode; - int ending; - int endcnt; - - Eina_Bool flag_select; -}; - -struct _task_info { - char *app_name; - char *pkg_name; - char *icn_path; - pid_t pid; - struct appdata *ad; - double mem, mem_total; - double cpu; - Elm_Object_Item *it; - int category; - bundle *b; - unsigned int oldutime, oldstime; - struct timeval oldtimev; -}; - - /* MODE_KILL_INUSE = MODE_END_INUSE * 2 - * MODE_KILL_ALL_INUSE = MODE_END_ALL_INUSE * 2 - */ -enum task_mode { - MODE_NONE = 0, - MODE_END_INUSE, - MODE_KILL_INUSE, - MODE_END_ALL_INUSE, - MODE_DEL_HISTORY, - MODE_DEL_ALL_HISTORY, - MODE_KILL_ALL_INUSE, -}; - -enum task_status { - TS_INUSE = 0, - TS_HISTORY, - TS_MAX, -}; - -Evas_Object *load_edj(Evas_Object *parent, const char *file, const char *group); -int _unset_notification_level(Evas_Object *win); -int _set_notification_level(Evas_Object *win, Utilx_Notification_Level level); -void _key_grab(struct appdata *ad); -Eina_Bool _exit_cb(void *data); -void _check_show_state(void); - -#endif -/* __TASKMANAGER_H___ */ diff --git a/task-mgr-spin.creator.user b/task-mgr-spin.creator.user new file mode 100644 index 0000000..2b896cd --- /dev/null +++ b/task-mgr-spin.creator.user @@ -0,0 +1,186 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE QtCreatorProject> +<!-- Written by QtCreator 3.0.1, 2014-09-11T20:00:05. --> +<qtcreator> + <data> + <variable>ProjectExplorer.Project.ActiveTarget</variable> + <value type="int">0</value> + </data> + <data> + <variable>ProjectExplorer.Project.EditorSettings</variable> + <valuemap type="QVariantMap"> + <value type="bool" key="EditorConfiguration.AutoIndent">false</value> + <value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value> + <value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value> + <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0"> + <value type="QString" key="language">Cpp</value> + <valuemap type="QVariantMap" key="value"> + <value type="QByteArray" key="CurrentPreferences">CppGlobal</value> + </valuemap> + </valuemap> + <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1"> + <value type="QString" key="language">QmlJS</value> + <valuemap type="QVariantMap" key="value"> + <value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value> + </valuemap> + </valuemap> + <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value> + <value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value> + <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value> + <value type="int" key="EditorConfiguration.IndentSize">4</value> + <value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value> + <value type="bool" key="EditorConfiguration.MouseNavigation">true</value> + <value type="int" key="EditorConfiguration.PaddingMode">1</value> + <value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value> + <value type="int" key="EditorConfiguration.SmartBackspaceBehavior">1</value> + <value type="bool" key="EditorConfiguration.SpacesForTabs">true</value> + <value type="int" key="EditorConfiguration.TabKeyBehavior">1</value> + <value type="int" key="EditorConfiguration.TabSize">8</value> + <value type="bool" key="EditorConfiguration.UseGlobal">true</value> + <value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value> + <value type="bool" key="EditorConfiguration.addFinalNewLine">false</value> + <value type="bool" key="EditorConfiguration.cleanIndentation">true</value> + <value type="bool" key="EditorConfiguration.cleanWhitespace">true</value> + <value type="bool" key="EditorConfiguration.inEntireDocument">true</value> + </valuemap> + </data> + <data> + <variable>ProjectExplorer.Project.PluginSettings</variable> + <valuemap type="QVariantMap"/> + </data> + <data> + <variable>ProjectExplorer.Project.Target.0</variable> + <valuemap type="QVariantMap"> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{684c47e8-d6bb-4ad1-a9c6-9180bed66dfd}</value> + <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value> + <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value> + <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value> + <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0"> + <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/khee85/spin/task-mgr-lite</value> + <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> + <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> + <valuelist type="QVariantList" key="GenericProjectManager.GenericMakeStep.BuildTargets"> + <value type="QString">all</value> + </valuelist> + <value type="bool" key="GenericProjectManager.GenericMakeStep.Clean">false</value> + <value type="QString" key="GenericProjectManager.GenericMakeStep.MakeArguments"></value> + <value type="QString" key="GenericProjectManager.GenericMakeStep.MakeCommand"></value> + <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">GenericProjectManager.GenericMakeStep</value> + </valuemap> + <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value> + </valuemap> + <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1"> + <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> + <valuelist type="QVariantList" key="GenericProjectManager.GenericMakeStep.BuildTargets"> + <value type="QString">clean</value> + </valuelist> + <value type="bool" key="GenericProjectManager.GenericMakeStep.Clean">true</value> + <value type="QString" key="GenericProjectManager.GenericMakeStep.MakeArguments"></value> + <value type="QString" key="GenericProjectManager.GenericMakeStep.MakeCommand"></value> + <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">GenericProjectManager.GenericMakeStep</value> + </valuemap> + <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value> + </valuemap> + <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value> + <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value> + <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Default</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Default</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">GenericProjectManager.GenericBuildConfiguration</value> + </valuemap> + <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">1</value> + <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0"> + <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> + <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value> + </valuemap> + <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy locally</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value> + </valuemap> + <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value> + <valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/> + <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0"> + <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/> + <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value> + <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value> + <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value> + <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value> + <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value> + <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value> + <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value> + <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value> + <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value> + <value type="int" key="Analyzer.Valgrind.NumCallers">25</value> + <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/> + <value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value> + <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value> + <value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value> + <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value> + <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value> + <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds"> + <value type="int">0</value> + <value type="int">1</value> + <value type="int">2</value> + <value type="int">3</value> + <value type="int">4</value> + <value type="int">5</value> + <value type="int">6</value> + <value type="int">7</value> + <value type="int">8</value> + <value type="int">9</value> + <value type="int">10</value> + <value type="int">11</value> + <value type="int">12</value> + <value type="int">13</value> + <value type="int">14</value> + </valuelist> + <value type="int" key="PE.EnvironmentAspect.Base">2</value> + <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/> + <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Arguments"></value> + <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Executable"></value> + <value type="bool" key="ProjectExplorer.CustomExecutableRunConfiguration.UseTerminal">false</value> + <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.WorkingDirectory">%{buildDir}</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Custom Executable</value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> + <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.CustomExecutableRunConfiguration</value> + <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value> + <value type="bool" key="RunConfiguration.UseCppDebugger">true</value> + <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">false</value> + <value type="bool" key="RunConfiguration.UseMultiProcess">false</value> + <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value> + <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value> + </valuemap> + <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value> + </valuemap> + </data> + <data> + <variable>ProjectExplorer.Project.TargetCount</variable> + <value type="int">1</value> + </data> + <data> + <variable>ProjectExplorer.Project.Updater.EnvironmentId</variable> + <value type="QByteArray">{34f591bc-6b5b-4cb5-922e-abe922ef66f6}</value> + </data> + <data> + <variable>ProjectExplorer.Project.Updater.FileVersion</variable> + <value type="int">15</value> + </data> +</qtcreator> |