summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjk7744.park <jk7744.park@samsung.com>2015-02-01 13:05:47 +0900
committerjk7744.park <jk7744.park@samsung.com>2015-02-01 13:05:47 +0900
commitf34e558e4b2f29d073629182d7fd9f89e58d0281 (patch)
tree0376b896619de5f6d0580962f21f9b2c0ae2ca23
parent9fa9ce7793e00bb10411830092a7a057925472f2 (diff)
downloadtaskmanager-tizen_2.3.tar.gz
taskmanager-tizen_2.3.tar.bz2
taskmanager-tizen_2.3.zip
-rw-r--r--CMakeLists.sub26
-rw-r--r--[-rwxr-xr-x]CMakeLists.txt120
-rwxr-xr-xLICENSE204
-rwxr-xr-xLICENSE.Flora206
-rwxr-xr-xNOTICE4
-rw-r--r--data/CMakeLists.txt28
-rw-r--r--data/conf.h35
-rw-r--r--data/icons/icon_taskmgr.pngbin17581 -> 0 bytes
-rw-r--r--data/images/clear_all_button_icon.pngbin0 -> 3234 bytes
-rw-r--r--data/images/default.pngbin0 -> 57662 bytes
-rw-r--r--data/recent_app-genlist-theme.edc143
-rw-r--r--data/recent_app-item.edc271
-rw-r--r--data/task-mgr-lite-hd.edc402
-rw-r--r--data/task-mgr-lite-wvga.edc402
-rw-r--r--debian/changelog20
-rwxr-xr-xdebian/compat1
-rw-r--r--debian/control18
-rw-r--r--debian/org.tizen.taskmgr.install.in3
-rwxr-xr-xdebian/org.tizen.taskmgr.postinst8
-rwxr-xr-xdebian/rules119
-rw-r--r--include/genlist.h33
-rw-r--r--include/genlist_item.h43
-rw-r--r--include/recent_apps.h85
-rw-r--r--include/task-mgr-lite.h43
-rw-r--r--org.tizen.task-mgr.efl55
-rw-r--r--org.tizen.task-mgr.manifest11
-rw-r--r--org.tizen.task-mgr.xml11
-rw-r--r--packaging/org.tizen.task-mgr.spec69
-rwxr-xr-xpackaging/org.tizen.taskmgr.spec54
-rw-r--r--po/CMakeLists.txt5
-rw-r--r--po/CMakeLists.txt~23
-rwxr-xr-x[-rw-r--r--]po/ar.po39
-rwxr-xr-xpo/as.po6
-rwxr-xr-x[-rw-r--r--]po/az.po39
-rwxr-xr-x[-rw-r--r--]po/bg.po39
-rwxr-xr-xpo/bn.po6
-rwxr-xr-x[-rw-r--r--]po/ca.po39
-rwxr-xr-x[-rw-r--r--]po/cs.po39
-rwxr-xr-x[-rw-r--r--]po/da.po39
-rwxr-xr-xpo/de.po9
-rwxr-xr-x[-rw-r--r--]po/el_GR.po39
-rwxr-xr-x[-rw-r--r--]po/en.po39
-rwxr-xr-x[-rw-r--r--]po/en_PH.po39
-rwxr-xr-x[-rw-r--r--]po/en_US.po39
-rwxr-xr-x[-rw-r--r--]po/es_ES.po39
-rwxr-xr-x[-rw-r--r--]po/es_US.po39
-rwxr-xr-x[-rw-r--r--]po/et.po39
-rwxr-xr-x[-rw-r--r--]po/eu.po39
-rwxr-xr-x[-rw-r--r--]po/fi.po39
-rwxr-xr-xpo/fr.po9
-rwxr-xr-x[-rw-r--r--]po/fr_CA.po39
-rwxr-xr-x[-rw-r--r--]po/ga.po39
-rwxr-xr-x[-rw-r--r--]po/gl.po39
-rwxr-xr-xpo/gu.po6
-rwxr-xr-x[-rw-r--r--]po/hi.po39
-rwxr-xr-x[-rw-r--r--]po/hr.po39
-rwxr-xr-x[-rw-r--r--]po/hu.po39
-rwxr-xr-x[-rw-r--r--]po/hy.po39
-rwxr-xr-x[-rw-r--r--]po/id.po20
-rwxr-xr-x[-rw-r--r--]po/is.po39
-rwxr-xr-x[-rw-r--r--]po/it_IT.po39
-rwxr-xr-x[-rw-r--r--]po/ja_JP.po39
-rwxr-xr-x[-rw-r--r--]po/ka.po39
-rwxr-xr-x[-rw-r--r--]po/kk.po39
-rwxr-xr-xpo/km.po6
-rwxr-xr-xpo/kn.po6
-rwxr-xr-x[-rw-r--r--]po/ko_KR.po38
-rwxr-xr-xpo/lo.po6
-rwxr-xr-x[-rw-r--r--]po/lt.po39
-rwxr-xr-x[-rw-r--r--]po/lv.po39
-rwxr-xr-x[-rw-r--r--]po/mk.po39
-rwxr-xr-xpo/ml.po6
-rwxr-xr-xpo/mr.po6
-rwxr-xr-x[-rw-r--r--]po/ms.po20
-rwxr-xr-xpo/my.po6
-rwxr-xr-x[-rw-r--r--]po/nb.po39
-rwxr-xr-xpo/ne.po6
-rwxr-xr-xpo/nl.po9
-rwxr-xr-xpo/or.po6
-rwxr-xr-xpo/pa.po6
-rwxr-xr-x[-rw-r--r--]po/pl.po39
-rwxr-xr-x[-rw-r--r--]po/pt_BR.po39
-rwxr-xr-x[-rw-r--r--]po/pt_PT.po39
-rwxr-xr-x[-rw-r--r--]po/ro.po39
-rwxr-xr-x[-rw-r--r--]po/ru_RU.po39
-rwxr-xr-xpo/si.po6
-rwxr-xr-x[-rw-r--r--]po/sk.po39
-rwxr-xr-x[-rw-r--r--]po/sl.po39
-rwxr-xr-x[-rw-r--r--]po/sr.po39
-rwxr-xr-x[-rw-r--r--]po/sv.po39
-rwxr-xr-xpo/ta.po6
-rwxr-xr-xpo/te.po6
-rwxr-xr-x[-rw-r--r--]po/th.po38
-rwxr-xr-xpo/tl.po6
-rwxr-xr-x[-rw-r--r--]po/tr_TR.po39
-rwxr-xr-x[-rw-r--r--]po/uk.po39
-rwxr-xr-x[-rw-r--r--]po/ur.po38
-rwxr-xr-x[-rw-r--r--]po/uz.po39
-rwxr-xr-x[-rw-r--r--]po/vi.po20
-rwxr-xr-x[-rw-r--r--]po/zh_CN.po39
-rwxr-xr-x[-rw-r--r--]po/zh_HK.po39
-rwxr-xr-x[-rw-r--r--]po/zh_TW.po39
-rwxr-xr-xsrc/_cpu.c111
-rwxr-xr-xsrc/_cpu.h28
-rwxr-xr-xsrc/_eina.c310
-rwxr-xr-xsrc/_eina.h36
-rwxr-xr-xsrc/_genlist.c877
-rwxr-xr-xsrc/_genlist.h45
-rwxr-xr-xsrc/_info.c134
-rwxr-xr-xsrc/_info.h28
-rwxr-xr-xsrc/_logic.c414
-rwxr-xr-xsrc/_logic.h33
-rwxr-xr-xsrc/_progressbar.c51
-rwxr-xr-xsrc/_progressbar.h28
-rwxr-xr-xsrc/_util_efl.c288
-rwxr-xr-xsrc/_util_efl.h43
-rwxr-xr-xsrc/_util_log.h63
-rw-r--r--src/genlist.c478
-rw-r--r--src/genlist_item.c817
-rwxr-xr-xsrc/recent_apps.c804
-rwxr-xr-xsrc/task-mgr-lite.c477
-rwxr-xr-xsrc/taskmanager.c306
-rwxr-xr-xsrc/taskmanager.h135
-rw-r--r--task-mgr-spin.creator.user186
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)
diff --git a/LICENSE b/LICENSE
new file mode 100755
index 0000000..54b213e
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,204 @@
+Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
diff --git a/LICENSE.Flora b/LICENSE.Flora
deleted file mode 100755
index 571fe79..0000000
--- a/LICENSE.Flora
+++ /dev/null
@@ -1,206 +0,0 @@
-Flora License
-
-Version 1.1, April, 2013
-
-http://floralicense.org/license/
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-1. Definitions.
-
-"License" shall mean the terms and conditions for use, reproduction,
-and distribution as defined by Sections 1 through 9 of this document.
-
-"Licensor" shall mean the copyright owner or entity authorized by
-the copyright owner that is granting the License.
-
-"Legal Entity" shall mean the union of the acting entity and
-all other entities that control, are controlled by, or are
-under common control with that entity. For the purposes of
-this definition, "control" means (i) the power, direct or indirect,
-to cause the direction or management of such entity,
-whether by contract or otherwise, or (ii) ownership of fifty percent (50%)
-or more of the outstanding shares, or (iii) beneficial ownership of
-such entity.
-
-"You" (or "Your") shall mean an individual or Legal Entity
-exercising permissions granted by this License.
-
-"Source" form shall mean the preferred form for making modifications,
-including but not limited to software source code, documentation source,
-and configuration files.
-
-"Object" form shall mean any form resulting from mechanical
-transformation or translation of a Source form, including but
-not limited to compiled object code, generated documentation,
-and conversions to other media types.
-
-"Work" shall mean the work of authorship, whether in Source or Object form,
-made available under the License, as indicated by a copyright notice
-that is included in or attached to the work (an example is provided
-in the Appendix below).
-
-"Derivative Works" shall mean any work, whether in Source or Object form,
-that is based on (or derived from) the Work and for which the editorial
-revisions, annotations, elaborations, or other modifications represent,
-as a whole, an original work of authorship. For the purposes of this License,
-Derivative Works shall not include works that remain separable from,
-or merely link (or bind by name) to the interfaces of, the Work and
-Derivative Works thereof.
-
-"Contribution" shall mean any work of authorship, including the original
-version of the Work and any modifications or additions to that Work or
-Derivative Works thereof, that is intentionally submitted to Licensor
-for inclusion in the Work by the copyright owner or by an individual or
-Legal Entity authorized to submit on behalf of the copyright owner.
-For the purposes of this definition, "submitted" means any form of
-electronic, verbal, or written communication sent to the Licensor or
-its representatives, including but not limited to communication on
-electronic mailing lists, source code control systems, and issue
-tracking systems that are managed by, or on behalf of, the Licensor
-for the purpose of discussing and improving the Work, but excluding
-communication that is conspicuously marked or otherwise designated
-in writing by the copyright owner as "Not a Contribution."
-
-"Contributor" shall mean Licensor and any individual or Legal Entity
-on behalf of whom a Contribution has been received by Licensor and
-subsequently incorporated within the Work.
-
-"Tizen Certified Platform" shall mean a software platform that complies
-with the standards set forth in the Tizen Compliance Specification
-and passes the Tizen Compliance Tests as defined from time to time
-by the Tizen Technical Steering Group and certified by the Tizen
-Association or its designated agent.
-
-2. Grant of Copyright License. Subject to the terms and conditions of
-this License, each Contributor hereby grants to You a perpetual,
-worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-copyright license to reproduce, prepare Derivative Works of,
-publicly display, publicly perform, sublicense, and distribute the
-Work and such Derivative Works in Source or Object form.
-
-3. Grant of Patent License. Subject to the terms and conditions of
-this License, each Contributor hereby grants to You a perpetual,
-worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-(except as stated in this section) patent license to make, have made,
-use, offer to sell, sell, import, and otherwise transfer the Work
-solely as incorporated into a Tizen Certified Platform, where such
-license applies only to those patent claims licensable by such
-Contributor that are necessarily infringed by their Contribution(s)
-alone or by combination of their Contribution(s) with the Work solely
-as incorporated into a Tizen Certified Platform to which such
-Contribution(s) was submitted. If You institute patent litigation
-against any entity (including a cross-claim or counterclaim
-in a lawsuit) alleging that the Work or a Contribution incorporated
-within the Work constitutes direct or contributory patent infringement,
-then any patent licenses granted to You under this License for that
-Work shall terminate as of the date such litigation is filed.
-
-4. Redistribution. You may reproduce and distribute copies of the
-Work or Derivative Works thereof pursuant to the copyright license
-above, in any medium, with or without modifications, and in Source or
-Object form, provided that You meet the following conditions:
-
- 1. You must give any other recipients of the Work or Derivative Works
- a copy of this License; and
- 2. You must cause any modified files to carry prominent notices stating
- that You changed the files; and
- 3. You must retain, in the Source form of any Derivative Works that
- You distribute, all copyright, patent, trademark, and attribution
- notices from the Source form of the Work, excluding those notices
- that do not pertain to any part of the Derivative Works; and
- 4. If the Work includes a "NOTICE" text file as part of its distribution,
- then any Derivative Works that You distribute must include a readable
- copy of the attribution notices contained within such NOTICE file,
- excluding those notices that do not pertain to any part of
- the Derivative Works, in at least one of the following places:
- within a NOTICE text file distributed as part of the Derivative Works;
- within the Source form or documentation, if provided along with the
- Derivative Works; or, within a display generated by the Derivative Works,
- if and wherever such third-party notices normally appear.
- The contents of the NOTICE file are for informational purposes only
- and do not modify the License. You may add Your own attribution notices
- within Derivative Works that You distribute, alongside or as an addendum
- to the NOTICE text from the Work, provided that such additional attribution
- notices cannot be construed as modifying the License. You may add Your own
- copyright statement to Your modifications and may provide additional or
- different license terms and conditions for use, reproduction, or
- distribution of Your modifications, or for any such Derivative Works
- as a whole, provided Your use, reproduction, and distribution of
- the Work otherwise complies with the conditions stated in this License
- and your own copyright statement or terms and conditions do not conflict
- the conditions stated in the License including section 3.
-
-5. Submission of Contributions. Unless You explicitly state otherwise,
-any Contribution intentionally submitted for inclusion in the Work
-by You to the Licensor shall be under the terms and conditions of
-this License, without any additional terms or conditions.
-Notwithstanding the above, nothing herein shall supersede or modify
-the terms of any separate license agreement you may have executed
-with Licensor regarding such Contributions.
-
-6. Trademarks. This License does not grant permission to use the trade
-names, trademarks, service marks, or product names of the Licensor,
-except as required for reasonable and customary use in describing the
-origin of the Work and reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty. Unless required by applicable law or
-agreed to in writing, Licensor provides the Work (and each
-Contributor provides its Contributions) on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-implied, including, without limitation, any warranties or conditions
-of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-PARTICULAR PURPOSE. You are solely responsible for determining the
-appropriateness of using or redistributing the Work and assume any
-risks associated with Your exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory,
-whether in tort (including negligence), contract, or otherwise,
-unless required by applicable law (such as deliberate and grossly
-negligent acts) or agreed to in writing, shall any Contributor be
-liable to You for damages, including any direct, indirect, special,
-incidental, or consequential damages of any character arising as a
-result of this License or out of the use or inability to use the
-Work (including but not limited to damages for loss of goodwill,
-work stoppage, computer failure or malfunction, or any and all
-other commercial damages or losses), even if such Contributor
-has been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing
-the Work or Derivative Works thereof, You may choose to offer,
-and charge a fee for, acceptance of support, warranty, indemnity,
-or other liability obligations and/or rights consistent with this
-License. However, in accepting such obligations, You may act only
-on Your own behalf and on Your sole responsibility, not on behalf
-of any other Contributor, and only if You agree to indemnify,
-defend, and hold each Contributor harmless for any liability
-incurred by, or claims asserted against, such Contributor by reason
-of your accepting any such warranty or additional liability.
-
-END OF TERMS AND CONDITIONS
-
-APPENDIX: How to apply the Flora License to your work
-
-To apply the Flora License to your work, attach the following
-boilerplate notice, with the fields enclosed by brackets "[]"
-replaced with your own identifying information. (Don't include
-the brackets!) The text should be enclosed in the appropriate
-comment syntax for the file format. We also recommend that a
-file or class name and description of purpose be included on the
-same "printed page" as the copyright notice for easier
-identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Flora License, Version 1.1 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://floralicense.org/license/
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
diff --git a/NOTICE b/NOTICE
index db64ab0..b2e5019 100755
--- a/NOTICE
+++ b/NOTICE
@@ -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
deleted file mode 100644
index 983c883..0000000
--- a/data/icons/icon_taskmgr.png
+++ /dev/null
Binary files differ
diff --git a/data/images/clear_all_button_icon.png b/data/images/clear_all_button_icon.png
new file mode 100644
index 0000000..4ba500c
--- /dev/null
+++ b/data/images/clear_all_button_icon.png
Binary files differ
diff --git a/data/images/default.png b/data/images/default.png
new file mode 100644
index 0000000..9765b1b
--- /dev/null
+++ b/data/images/default.png
Binary files differ
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})
diff --git a/po/ar.po b/po/ar.po
index 682d9ae..2455a00 100644..100755
--- a/po/ar.po
+++ b/po/ar.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/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 "কোনো এপ্লিকেশ্বন নাই"
+
diff --git a/po/az.po b/po/az.po
index 0e19b31..10db1bf 100644..100755
--- a/po/az.po
+++ b/po/az.po
@@ -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"
diff --git a/po/bg.po b/po/bg.po
index 5f23713..e3e0f6a 100644..100755
--- a/po/bg.po
+++ b/po/bg.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/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 "কোনও অ্যাপ্লিকেশন নেই"
+
diff --git a/po/ca.po b/po/ca.po
index 0fc9c8f..8107e5d 100644..100755
--- a/po/ca.po
+++ b/po/ca.po
@@ -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"
diff --git a/po/cs.po b/po/cs.po
index adf6ec5..e99f240 100644..100755
--- a/po/cs.po
+++ b/po/cs.po
@@ -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"
diff --git a/po/da.po b/po/da.po
index 589fc55..953f0c0 100644..100755
--- a/po/da.po
+++ b/po/da.po
@@ -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 "Διαγραφή όλων"
diff --git a/po/en.po b/po/en.po
index 3f98ece..3f97657 100644..100755
--- a/po/en.po
+++ b/po/en.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_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"
diff --git a/po/et.po b/po/et.po
index c75bf12..c0ecffd 100644..100755
--- a/po/et.po
+++ b/po/et.po
@@ -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"
diff --git a/po/eu.po b/po/eu.po
index 8678cd0..312b761 100644..100755
--- a/po/eu.po
+++ b/po/eu.po
@@ -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"
diff --git a/po/fi.po b/po/fi.po
index 0fad832..9153502 100644..100755
--- a/po/fi.po
+++ b/po/fi.po
@@ -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"
diff --git a/po/ga.po b/po/ga.po
index ebb8c17..cbabc7e 100644..100755
--- a/po/ga.po
+++ b/po/ga.po
@@ -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"
diff --git a/po/gl.po b/po/gl.po
index d2af007..cff6ebe 100644..100755
--- a/po/gl.po
+++ b/po/gl.po
@@ -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 "કોઇ એપ્લિકેશનો નથી"
+
diff --git a/po/hi.po b/po/hi.po
index 79f4ada..659efdc 100644..100755
--- a/po/hi.po
+++ b/po/hi.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/hr.po b/po/hr.po
index 6907f81..ae80187 100644..100755
--- a/po/hr.po
+++ b/po/hr.po
@@ -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"
diff --git a/po/hu.po b/po/hu.po
index a4d3775..3f911b5 100644..100755
--- a/po/hu.po
+++ b/po/hu.po
@@ -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"
diff --git a/po/hy.po b/po/hy.po
index 36c3e25..b824401 100644..100755
--- a/po/hy.po
+++ b/po/hy.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/id.po b/po/id.po
index fb7537c..f821a2c 100644..100755
--- a/po/id.po
+++ b/po/id.po
@@ -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"
diff --git a/po/is.po b/po/is.po
index 727282c..18c3bfe 100644..100755
--- a/po/is.po
+++ b/po/is.po
@@ -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 "全て消去"
diff --git a/po/ka.po b/po/ka.po
index 898b29d..f719bfc 100644..100755
--- a/po/ka.po
+++ b/po/ka.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/kk.po b/po/kk.po
index 643fbde..a55632a 100644..100755
--- a/po/kk.po
+++ b/po/kk.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/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 "ບໍ່ມີແອພພລິເຄຊັນ"
+
diff --git a/po/lt.po b/po/lt.po
index 897d8ad..9d45bae 100644..100755
--- a/po/lt.po
+++ b/po/lt.po
@@ -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ą"
diff --git a/po/lv.po b/po/lv.po
index 2f75264..5d4153f 100644..100755
--- a/po/lv.po
+++ b/po/lv.po
@@ -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"
diff --git a/po/mk.po b/po/mk.po
index 398a2bd..cfbda17 100644..100755
--- a/po/mk.po
+++ b/po/mk.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/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 "कोणतेही अनुप्रयोग नाहीत"
+
diff --git a/po/ms.po b/po/ms.po
index 6955d87..6e06d99 100644..100755
--- a/po/ms.po
+++ b/po/ms.po
@@ -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 "အပလီေကးရွင္းမ်ား မရွိပါ"
+
diff --git a/po/nb.po b/po/nb.po
index 32acb7a..dc25bb9 100644..100755
--- a/po/nb.po
+++ b/po/nb.po
@@ -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 "ਕੋਈ ਅਨੁਪ੍ਰਯੋਗ ਨਹੀਂ"
+
diff --git a/po/pl.po b/po/pl.po
index 97ba671..f44b22e 100644..100755
--- a/po/pl.po
+++ b/po/pl.po
@@ -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"
diff --git a/po/ro.po b/po/ro.po
index 18fad11..c32c3bd 100644..100755
--- a/po/ro.po
+++ b/po/ro.po
@@ -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 "යෙදුම් නොමැත"
+
diff --git a/po/sk.po b/po/sk.po
index 55357f6..f5fe503 100644..100755
--- a/po/sk.po
+++ b/po/sk.po
@@ -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"
diff --git a/po/sl.po b/po/sl.po
index 1acbdbc..4ddc82e 100644..100755
--- a/po/sl.po
+++ b/po/sl.po
@@ -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"
diff --git a/po/sr.po b/po/sr.po
index 0d3ff15..6324641 100644..100755
--- a/po/sr.po
+++ b/po/sr.po
@@ -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"
diff --git a/po/sv.po b/po/sv.po
index 61babd1..9269f2c 100644..100755
--- a/po/sv.po
+++ b/po/sv.po
@@ -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 "అప్లికేషన్‌లు లేవు"
+
diff --git a/po/th.po b/po/th.po
index 996c1dd..16ec7cd 100644..100755
--- a/po/th.po
+++ b/po/th.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/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"
diff --git a/po/uk.po b/po/uk.po
index 83807af..7e8d9e3 100644..100755
--- a/po/uk.po
+++ b/po/uk.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/ur.po b/po/ur.po
index 8492da6..259dd69 100644..100755
--- a/po/ur.po
+++ b/po/ur.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/uz.po b/po/uz.po
index 6583e92..60438bd 100644..100755
--- a/po/uz.po
+++ b/po/uz.po
@@ -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"
diff --git a/po/vi.po b/po/vi.po
index aa6c018..ca4578b 100644..100755
--- a/po/vi.po
+++ b/po/vi.po
@@ -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>