CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-PROJECT(taskmgr C)
+PROJECT(task-mgr)
+# 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_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
+SET(PACKAGE "${PROJECT_NAME}")
+SET(RESOURCE_DIR "${CMAKE_SOURCE_DIR}/res")
+SET(EDJDIR "${RESOURCE_DIR}/edje/${PACKAGE}")
INCLUDE(FindPkgConfig)
pkg_check_modules(pkgs REQUIRED
- ecore
- ecore-file
- ecore-input
- ecore-x
- edje
- eina
- evas
appcore-efl
+ evas
+ edje
elementary
- aul
- utilX
- rua
- vconf
- sysman
- ail
+ ecore
+ eina
+ capi-appfw-application
+ capi-system-info
+ capi-appfw-package-manager
+ capi-appfw-app-manager
dlog
+ pkgmgr-info
+ rua
+ feedback
)
+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")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIE")
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -fPIE")
-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_PROFILING "-O0 -g -pg -fPIE")
+SET(CMAKE_CXX_FLAGS_PROFILING "-O0 -std=c++0x -g -pg -fPIE")
+SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -fPIE")
+SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -std=c++0x -g -fPIE")
+SET(CMAKE_C_FLAGS_RELEASE "-O2 -g -fPIE")
+SET(CMAKE_CXX_FLAGS_RELEASE "-O2 -std=c++0x -g -fPIE")
+SET(CMAKE_C_FLAGS_CCOV "-O2 -g --coverage -fPIE")
+SET(CMAKE_CXX_FLAGS_CCOV "-O2 -std=c++0x -g --coverage -fPIE")
-ADD_DEFINITIONS("-fpie")
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
-ADD_DEFINITIONS("-DVENDOR=\"${VENDOR}\"")
-ADD_DEFINITIONS("-DPACKAGE=\"${PACKAGE}\"")
-ADD_DEFINITIONS("-DPACKAGE_NAME=\"${PKGNAME}\"")
-ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
-ADD_DEFINITIONS("-DRESDIR=\"${RESDIR}\"")
-ADD_DEFINITIONS("-DDATADIR=\"${DATADIR}\"")
-ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"")
-ADD_DEFINITIONS("-DICONDIR=\"${ICONDIR}\"")
-ADD_DEFINITIONS("-DIMAGEDIR=\"${IMAGEDIR}\"")
-ADD_DEFINITIONS("-DEDJDIR=\"${EDJDIR}\"")
+MESSAGE(${CMAKE_C_FLAGS})
-SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
+ADD_DEFINITIONS("-DEDJEDIR=\"${EDJEDIR}\"")
+ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"")
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})
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS})
-#install application HOME directory
-INSTALL(DIRECTORY DESTINATION ${DATADIR})
+# Install
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION bin)
-#install etc
-ADD_SUBDIRECTORY(data)
+#Install images
+INSTALL(DIRECTORY res/images/ DESTINATION res/images)
-# i18n
-ADD_SUBDIRECTORY(po)
+# Install Manifest File
+INSTALL(FILES data/org.tizen.task-mgr.xml DESTINATION /usr/share/packages)
+INSTALL(FILES data/org.tizen.task-mgr.efl DESTINATION /etc/smack/accesses.d)
+# End of a file
+ADD_SUBDIRECTORY(res)
--- /dev/null
+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.
+
+++ /dev/null
-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.
-
-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.
+++ /dev/null
-ADD_CUSTOM_TARGET(taskmgr.edj
- COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images
- ${CMAKE_SOURCE_DIR}/data/taskmgr.edc ${CMAKE_BINARY_DIR}/data/taskmgr.edj
- DEPENDS ${CMAKE_SOURCE_DIR}/data/taskmgr.edc
-)
-ADD_DEPENDENCIES(${PROJECT_NAME} taskmgr.edj)
-INSTALL(FILES ${CMAKE_BINARY_DIR}/data/taskmgr.edj DESTINATION ${EDJDIR})
-
-# install theme
-#ADD_CUSTOM_TARGET(theme_taskmanager.edj
-# COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/themes
-# ${CMAKE_SOURCE_DIR}/data/themes/theme_taskmanager.edc ${CMAKE_BINARY_DIR}/data/theme_taskmanager.edj
-# DEPENDS ${CMAKE_SOURCE_DIR}/data/themes/theme_taskmanager.edc
-#)
-#ADD_DEPENDENCIES(${PROJECT_NAME} theme_taskmanager.edj)
-#INSTALL(FILES ${CMAKE_BINARY_DIR}/data/theme_taskmanager.edj DESTINATION ${EDJDIR})
-
-# install images
-INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/icons/ DESTINATION ${IMAGEDIR} FILES_MATCHING PATTERN "*.png")
-
--- /dev/null
+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--- ------
--- /dev/null
+<?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" api-version="2.3.1">
+ <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>
+++ /dev/null
-/*
- * 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.
- */
-
-#define BTN_H 76
-#define GENLIST_BG 246 245 237
-
-collections {
-
- group {
- name: "task_manager";
- images {
- image: "39_multitasking_btn_bg.png" COMP;
- }
- parts {
- part {
- name: "bg";
- type: RECT;
- scale: 1;
- mouse_events: 0;
- description {
- state: "default" 0.0;
-// color: GENLIST_BG 255;
- color: 0 0 0 0;
- }
- }
-
- part {
- name: "list";
- type: SWALLOW;
- scale: 1;
- description {
- state: "default" 0.0;
- rel1 { relative: 0.0 0.0; to: "bg"; }
- rel2 { relative: 1.0 1.0; to: "bg"; }
- }
- description {
- state: "hide" 0.0;
- inherit: "default" 0.0;
- visible: 0;
- }
- }
- }
- }
-
- group {
- name: "icon";
- parts {
- part {
- name: "bg";
- type: RECT;
- scale: 1;
- mouse_events: 0;
- description {
- state: "default" 0.0;
- color: 0 0 0 0;
- }
- }
-
- part {
- name: "icon_ly";
- type: SWALLOW;
- scale: 1;
- description {
- state: "default" 0.0;
- rel1 { relative: 0.0 0.0; to: "bg"; }
- rel2 { relative: 1.0 1.0; to: "bg"; }
- }
- }
- part {
- name: "icon";
- type: SWALLOW;
- scale: 1;
- description {
- state: "default" 0.0;
- rel1 { to: "icon_ly"; }
- rel2 { to: "icon_ly"; }
- }
- }
- }
- }
-
- group {
- name: "info";
- parts {
- part {
- name: "bg";
- type: RECT;
- scale: 1;
- mouse_events: 0;
- description {
- min: 240 105;
- state: "default" 0.0;
- color: 0 0 0 0;
- }
- }
- part {
- name: "padding/t";
- type: RECT;
- scale: 1;
- description {
- state: "default" 0.0;
- min: 0 10;
- fixed: 0 1;
- align: 0.5 0.0;
- color: 0 0 0 0;
- rel1 { relative: 0.0 0.0; to: "bg"; }
- rel2 { relative: 1.0 0.0; to: "bg"; }
- }
- }
- part {
- name: "padding/l";
- type: RECT;
- scale: 1;
- description {
- state: "default" 0.0;
- min: 10 0;
- fixed: 1 0;
- align: 0.0 0.5;
- color: 0 0 0 0;
- rel1 { relative: 0.0 0.0; to: "bg"; }
- rel2 { relative: 0.0 1.0; to: "bg"; }
- }
- }
- part {
- name: "padding/b";
- type: RECT;
- scale: 1;
- description {
- state: "default" 0.0;
- min: 0 10;
- fixed: 0 1;
- align: 0.5 1.0;
- color: 0 0 0 0;
- rel1 { relative: 0.0 1.0; to: "bg"; }
- rel2 { relative: 1.0 1.0; to: "bg"; }
- }
- }
- part {
- name: "padding/r";
- type: RECT;
- scale: 1;
- description {
- state: "default" 0.0;
- min: 10 0;
- fixed: 1 0;
- align: 1.0 0.5;
- color: 0 0 0 0;
- rel1 { relative: 1.0 0.0; to: "bg"; }
- rel2 { relative: 1.0 1.0; to: "bg"; }
- }
- }
-
- part {
- name: "swallow";
- type: SWALLOW;
- scale: 1;
- description {
- state: "default" 0.0;
- min: 1 1;
- rel1 {
- relative: 1.0 1.0;
- to_x: "padding/l";
- to_y: "padding/t";
- }
- rel2 {
- relative: 0.0 0.0;
- to_x: "padding/r";
- to_y: "padding/b";
- }
- }
- }
- }
- }
-}
+++ /dev/null
-/*
- * Copyright 2012 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-collections {
-
- ////////////// BUTTON STYLE1 GROUP START /////////////////////////////////////////////
- group { name: "elm/button/base/text_only/style1_tm";
- images {
- image: "00_button_03_normal.png" COMP;
- image: "00_button_03_press.png" COMP;
- image: "00_button_03_focus.png" COMP;
- }
- script {
- public button_state = 0; //0:enabled, 1: disabled
- }
- parts {
- part { name: "base";
- type: RECT;
- mouse_events: 1;
- description { state: "default" 0.0;
- min: 0 70;
- color: 0 0 0 0;
- }
- }
- part { name: "button_image";
- mouse_events: 1;
- scale: 1;
- description { state: "default" 0.0;
- min: 0 50;
- fixed: 0 1;
- rel1 {
- to: "base";
- relative: 0.0 0.5;
- }
- rel2 {
- to: "base";
- relative: 1.0 0.5;
- }
- image {
- normal: "00_button_03_normal.png";
- border: 7 7 7 7;
- border_scale: 1;
- }
- }
- description { state: "clicked" 0.0;
- inherit: "default" 0.0;
- image.normal: "00_button_03_press.png";
- }
- description { state: "disabled" 0.0;
- inherit: "default" 0.0;
- }
- description { state: "focused" 0.0;
- inherit: "default" 0.0;
- image.normal: "00_button_03_focus.png";
- }
- }
- part {
- name: "padding_left";
- type: RECT;
- scale: 1;
- mouse_events: 0;
- description { state: "default" 0.0;
- align: 0.0 0.0;
- rel1.relative: 0.0 0.0;
- rel2.relative: 0.0 1.0;
- min: 5 5;
- fixed: 1 0;
- color: 0 0 0 0;
- }
- }
- part {
- name: "padding_right";
- type: RECT;
- scale: 1;
- mouse_events: 0;
- description { state: "default" 0.0;
- align: 1.0 0.0;
- rel1.relative: 1.0 0.0;
- rel2.relative: 1.0 1.0;
- min: 5 5;
- fixed: 1 0;
- color: 0 0 0 0;
- }
- }
- part {
- name: "padding_top";
- type: RECT;
- scale: 1;
- mouse_events: 0;
- description { state: "default" 0.0;
- align: 0.0 0.0;
- rel1.relative: 0.0 0.0;
- rel2.relative: 1.0 0.0;
- min: 5 5;
- fixed: 0 1;
- color: 0 0 0 0;
- }
- }
- part {
- name: "padding_bottom";
- type: RECT;
- scale: 1;
- mouse_events: 0;
- description { state: "default" 0.0;
- align: 1.0 1.0;
- rel1.relative: 0.0 1.0;
- rel2.relative: 1.0 1.0;
- min: 5 5;
- fixed: 0 1;
- color: 0 0 0 0;
- }
- }
- part {
- name: "icon_rect";
- type: RECT;
- scale: 1;
- mouse_events: 0;
- description { state: "default" 0.0;
- visible: 1;
- min: 0 40;
- fixed: 1 0;
- rel1 {relative: 0.0 1.0; to_x: "elm.swallow.content"; to_y: "padding_top"; }
- rel2 {relative: 1.0 0.0; to_x: "elm.swallow.content"; to_y: "padding_bottom"; }
- align: 0.0 0.5;
- color: 0 0 0 0;
- }
- }
- part {
- name: "padding_icon_text";
- type: RECT;
- scale: 1;
- mouse_events: 0;
- description { state: "default" 0.0; //when only icon or no icon is there
- align: 0.0 0.0;
- rel1 { relative: 1.0 0.0; to: "icon_rect"; }
- rel2 { relative: 1.0 1.0; to: "icon_rect"; }
- fixed: 1 0;
- min: 0 0;
- color: 0 0 0 0;
- }
- description { state: "icononly" 0.0;
- inherit: "default" 0.0;
- }
- description { state: "visible" 0.0; //when icon is visible
- align: 0.0 0.0;
- rel1 { relative: 1.0 0.0; to: "icon_rect"; }
- rel2 { relative: 1.0 1.0; to: "icon_rect"; }
- fixed: 1 0;
- min: 5 0;
- color: 0 0 0 0;
- }
- }
- part { name: "elm.swallow.content";
- type: SWALLOW;
- scale: 1;
- description { state: "default" 0.0;
- visible: 0;
- align: 0.0 0.5;
- rel1 {relative: 1.0 1.0; to_x: "padding_left"; to_y: "padding_top"; }
- rel2 {relative: 1.0 0.0; to_x: "padding_left"; to_y: "padding_bottom"; }
- fixed: 1 0;
- }
- description { state: "visible" 0.0;
- fixed: 1 0;
- visible: 1;
- align: 0.0 0.5;
- rel1 {relative: 1.0 1.0; to_x: "padding_left"; to_y: "padding_top"; }
- rel2 {relative: 1.0 0.0; to_x: "padding_left"; to_y: "padding_bottom"; }
- aspect: 1.0 1.0;
- aspect_preference: VERTICAL;
- }
- description { state: "icononly" 0.0;;
- visible: 1;
- min: 40 40;
- rel1 {relative: 1.0 1.0; to_x: "padding_left"; to_y: "padding_top"; }
- rel2 {relative: 0.0 0.0; to_x: "padding_right"; to_y: "padding_bottom"; }
- align: 0.5 0.5;
- aspect: 1.0 1.0;
- aspect_preference: VERTICAL;
- }
- }
- part { name: "elm.text";
- type: TEXT;
-// effect: SHADOW;
- mouse_events: 0;
- scale: 1;
- description { state: "default" 0.0;
- visible: 0;
- rel1 { relative: 1.0 1.0; to_x: "padding_icon_text"; to_y: "padding_top"; }
- rel2 { relative: 0.0 0.0; to_x: "padding_right"; to_y:"padding_bottom"; }
- align: 0.5 0.5;
- color: 90 73 40 255;
- color2: 255 255 255 255;
- text {
- font: "SLP:style=Medium";
- size: 24;
- min: 0 0;
- align: 0.5 0.5;
- max: 1 0;
- }
- }
- description { state: "visible" 0.0;
- inherit: "default" 0.0;
- visible: 1;
- min: 90 40;
- }
- description { state: "clicked" 0.0;
- inherit: "default" 0.0;
- visible: 1;
- min: 0 0;
- color: 255 255 255 255;
- color2: 0 0 0 102;
- }
- description { state: "disabled" 0.0;
- inherit: "default" 0.0;
- color: 0 0 0 128;
- color3: 0 0 0 0;
- }
- description { state: "disabled_visible" 0.0;
- inherit: "default" 0.0;
- color: 0 0 0 128;
- color3: 0 0 0 0;
- visible: 1;
- }
- description { state: "focused" 0.0;
- inherit: "default" 0.0;
- visible: 1;
- min: 0 0;
- color: 255 255 255 255;
- color2: 0 0 0 102;
- }
- }
- part { name: "over2";
- type: RECT;
- mouse_events: 1;
- repeat_events: 1;
- ignore_flags: ON_HOLD;
- description { state: "default" 0.0;
- color: 0 0 0 0;
- }
- description { state: "disabled" 0.0;
- inherit: "default" 0.0;
- visible: 0;
- }
- }
- part { name: "over3";
- type: RECT;
- mouse_events: 1;
- repeat_events: 1;
- description { state: "default" 0.0;
- color: 0 0 0 0;
- }
- description { state: "clicked" 0.0;
- inherit: "default" 0.0;
- visible: 1;
- }
- }
- part { name: "disabler";
- type: RECT;
- description { state: "default" 0.0;
- color: 0 0 0 0;
- visible: 0;
- }
- description { state: "disabled" 0.0;
- inherit: "default" 0.0;
- visible: 1;
- }
- }
- }
- programs {
- program { name: "button_click";
- signal: "mouse,down,1";
- source: "over2";
- action: SIGNAL_EMIT "elm,action,press" "";
- after: "button_click_anim";
- }
- program { name: "button_click_anim";
- action: STATE_SET "clicked" 0.0;
- target: "button_image";
- after: "text_clicked";
- }
- program { name: "text_clicked";
- script {
- new st[31];
- new Float:vl;
- get_state(PART:"elm.text", st, 30, vl);
- if (!strcmp(st, "visible"))
- set_state(PART:"elm.text", "clicked", 0.0);
- }
- }
- program { name: "button_unpress";
- action: SIGNAL_EMIT "elm,action,unpress" "";
- }
- program { name: "button_mouseout_clicked";
- signal: "mouse,up,1";
- source: "over3";
- script {
- new st[31];
- new Float:vl;
- get_state(PART:"elm.swallow.content", st, 30, vl);
- if (strcmp(st, "icononly"))
- {
- emit("elm,action,default,text,set", "");
- set_state(PART:"elm.text", "visible", 0.0);
- }
- if(get_int(button_state) !=1)
- set_state(PART:"button_image", "default", 0.0);
- }
- after: button_unpress;
- }
- program { name: "button_click2";
- signal: "mouse,down,1";
- source: "over3";
- action: STATE_SET "clicked" 0.0;
- target: "over3";
- }
- program { name: "button_unclick2";
- signal: "mouse,clicked,1";
- source: "over3";
- action: STATE_SET "default" 0.0;
- target: "over3";
- }
- program { name: "button_unclick3";
- signal: "mouse,clicked,1";
- source: "over2";
- action: SIGNAL_EMIT "elm,action,click" "";
- }
- program { name: "text_show";
- signal: "elm,state,text,visible";
- source: "elm";
- script {
- new st[31];
- new Float:vl;
- get_state(PART:"elm.swallow.content", st, 30, vl);
- if (!strcmp(st, "icononly"))
- {
- set_state(PART:"elm.swallow.content", "visible", 0.0);
- set_state(PART:"padding_icon_text", "visible", 0.0);
- }
- set_state(PART:"elm.text", "visible", 0.0);
- }
- }
- program { name: "text_hide";
- signal: "elm,state,text,hidden";
- source: "elm";
- script {
- new st[31];
- new Float:vl;
- get_state(PART:"elm.swallow.content", st, 30, vl);
- if (!strcmp(st, "visible"))
- {
- set_state(PART:"elm.swallow.content", "icononly", 0.0);
- set_state(PART:"padding_icon_text", "icononly", 0.0);
- }
- set_state(PART:"elm.text", "default", 0.0);
- }
- }
- program { name: "icon_show";
- signal: "elm,state,icon,visible";
- source: "elm";
- script {
- new st[31];
- new Float:vl;
- get_state(PART:"elm.text", st, 30, vl);
- if (!strcmp(st, "visible"))
- {
- set_state(PART:"elm.swallow.content", "visible", 0.0);
- set_state(PART:"padding_icon_text", "visible", 0.0);
- }
- else
- {
- set_state(PART:"elm.swallow.content", "icononly", 0.0);
- set_state(PART:"padding_icon_text", "icononly", 0.0);
- }
- }
- }
- program { name: "icon_hide";
- signal: "elm,state,icon,hidden";
- source: "elm";
- action: STATE_SET "default" 0.0;
- target: "elm.swallow.content";
- }
- program { name: "disable";
- signal: "elm,state,disabled";
- source: "elm";
- action: STATE_SET "disabled" 0.0;
- target: "button_image";
- target: "over2";
- target: "disabler";
- after: "disable_text";
- }
- program { name: "disable_text";
- script {
- new st[31];
- new Float:vl;
- get_state(PART:"elm.text", st, 30, vl);
- if (!strcmp(st, "visible"))
- set_state(PART:"elm.text", "disabled_visible", 0.0);
- else
- set_state(PART:"elm.text", "disabled", 0.0);
- set_int(button_state, 1);
- }
- }
- program { name: "enable";
- signal: "elm,state,enabled";
- source: "elm";
- action: STATE_SET "default" 0.0;
- target: "button_image";
- target: "over2";
- target: "disabler";
- after: "enable_text";
- }
- program { name: "enable_text";
- script {
- new st[31];
- new Float:vl;
- get_state(PART:"elm.text", st, 30, vl);
- if (!strcmp(st, "disabled_visible"))
- set_state(PART:"elm.text", "visible", 0.0);
- else
- set_state(PART:"elm.text", "default", 0.0);
- set_int(button_state, 0);
- }
- }
- program { name: "focused";
- signal: "elm,action,focus";
- source: "elm";
- action: STATE_SET "focused" 0.0;
- target: "button_image";
- target: "elm.text";
- }
- program { name: "unfocused";
- signal: "elm,action,unfocus";
- source: "elm";
- action: STATE_SET "default" 0.0;
- target: "button_image";
- after: "unfocus_text";
- }
- program { name: "unfocus_text";
- action: STATE_SET "visible" 0.0;
- target: "elm.text";
- }
- }
- }
-
- ////////////// BUTTON STYLE2 GROUP START /////////////////////////////////////////////
- group { name: "elm/button/base/text_only/style2_tm";
- images {
- image: "00_button_03_normal.png" COMP;
- image: "00_button_03_press.png" COMP;
- image: "00_button_03_focus.png" COMP;
- }
- script {
- public button_state = 0; //0:enabled, 1: disabled
- }
- parts {
- part { name: "base";
- type: RECT;
- mouse_events: 1;
- description { state: "default" 0.0;
- min: 0 70;
- color: 0 0 0 0;
- }
- }
- part { name: "button_image";
- mouse_events: 1;
- scale: 1;
- description { state: "default" 0.0;
- min: 0 50;
- fixed: 0 1;
- rel1 {
- to: "base";
- relative: 0.0 0.5;
- }
- rel2 {
- to: "base";
- relative: 1.0 0.5;
- }
- image {
- normal: "00_button_03_normal.png";
- border: 7 7 7 7;
- border_scale: 1;
- }
- }
- description { state: "clicked" 0.0;
- inherit: "default" 0.0;
- image.normal: "00_button_03_press.png";
- }
- description { state: "disabled" 0.0;
- inherit: "default" 0.0;
- }
- description { state: "focused" 0.0;
- inherit: "default" 0.0;
- image.normal: "00_button_03_focus.png";
- }
- }
- part {
- name: "padding_left";
- type: RECT;
- scale: 1;
- mouse_events: 0;
- description { state: "default" 0.0;
- align: 0.0 0.0;
- rel1.relative: 0.0 0.0;
- rel2.relative: 0.0 1.0;
- min: 5 5;
- fixed: 1 0;
- color: 0 0 0 0;
- }
- }
- part {
- name: "padding_right";
- type: RECT;
- scale: 1;
- mouse_events: 0;
- description { state: "default" 0.0;
- align: 1.0 0.0;
- rel1.relative: 1.0 0.0;
- rel2.relative: 1.0 1.0;
- min: 5 5;
- fixed: 1 0;
- color: 0 0 0 0;
- }
- }
- part {
- name: "padding_top";
- type: RECT;
- scale: 1;
- mouse_events: 0;
- description { state: "default" 0.0;
- align: 0.0 0.0;
- rel1.relative: 0.0 0.0;
- rel2.relative: 1.0 0.0;
- min: 5 5;
- fixed: 0 1;
- color: 0 0 0 0;
- }
- }
- part {
- name: "padding_bottom";
- type: RECT;
- scale: 1;
- mouse_events: 0;
- description { state: "default" 0.0;
- align: 1.0 1.0;
- rel1.relative: 0.0 1.0;
- rel2.relative: 1.0 1.0;
- min: 5 5;
- fixed: 0 1;
- color: 0 0 0 0;
- }
- }
- part {
- name: "icon_rect";
- type: RECT;
- scale: 1;
- mouse_events: 0;
- description { state: "default" 0.0;
- visible: 1;
- min: 0 40;
- fixed: 1 0;
- rel1 {relative: 0.0 1.0; to_x: "elm.swallow.content"; to_y: "padding_top"; }
- rel2 {relative: 1.0 0.0; to_x: "elm.swallow.content"; to_y: "padding_bottom"; }
- align: 0.0 0.5;
- color: 0 0 0 0;
- }
- }
- part {
- name: "padding_icon_text";
- type: RECT;
- scale: 1;
- mouse_events: 0;
- description { state: "default" 0.0; //when only icon or no icon is there
- align: 0.0 0.0;
- rel1 { relative: 1.0 0.0; to: "icon_rect"; }
- rel2 { relative: 1.0 1.0; to: "icon_rect"; }
- fixed: 1 0;
- min: 0 0;
- color: 0 0 0 0;
- }
- description { state: "icononly" 0.0;
- inherit: "default" 0.0;
- }
- description { state: "visible" 0.0; //when icon is visible
- align: 0.0 0.0;
- rel1 { relative: 1.0 0.0; to: "icon_rect"; }
- rel2 { relative: 1.0 1.0; to: "icon_rect"; }
- fixed: 1 0;
- min: 5 0;
- color: 0 0 0 0;
- }
- }
- part { name: "elm.swallow.content";
- type: SWALLOW;
- scale: 1;
- description { state: "default" 0.0;
- visible: 0;
- align: 0.0 0.5;
- rel1 {relative: 1.0 1.0; to_x: "padding_left"; to_y: "padding_top"; }
- rel2 {relative: 1.0 0.0; to_x: "padding_left"; to_y: "padding_bottom"; }
- fixed: 1 0;
- }
- description { state: "visible" 0.0;
- fixed: 1 0;
- visible: 1;
- align: 0.0 0.5;
- rel1 {relative: 1.0 1.0; to_x: "padding_left"; to_y: "padding_top"; }
- rel2 {relative: 1.0 0.0; to_x: "padding_left"; to_y: "padding_bottom"; }
- aspect: 1.0 1.0;
- aspect_preference: VERTICAL;
- }
- description { state: "icononly" 0.0;;
- visible: 1;
- min: 40 40;
- rel1 {relative: 1.0 1.0; to_x: "padding_left"; to_y: "padding_top"; }
- rel2 {relative: 0.0 0.0; to_x: "padding_right"; to_y: "padding_bottom"; }
- align: 0.5 0.5;
- aspect: 1.0 1.0;
- aspect_preference: VERTICAL;
- }
- }
- part { name: "elm.text";
- type: TEXT;
-// effect: SHADOW;
- mouse_events: 0;
- scale: 1;
- description { state: "default" 0.0;
- visible: 0;
- rel1 { relative: 1.0 1.0; to_x: "padding_icon_text"; to_y: "padding_top"; }
- rel2 { relative: 0.0 0.0; to_x: "padding_right"; to_y:"padding_bottom"; }
- align: 0.5 0.5;
- color: 90 73 40 255;
- color2: 255 255 255 255;
- text {
- font: "SLP:style=Medium";
- size: 20;
- min: 0 0;
- align: 0.5 0.5;
- max: 1 0;
- }
- }
- description { state: "visible" 0.0;
- inherit: "default" 0.0;
- visible: 1;
- min: 90 40;
- }
- description { state: "clicked" 0.0;
- inherit: "default" 0.0;
- visible: 1;
- min: 0 0;
- color: 255 255 255 255;
- color2: 0 0 0 102;
- }
- description { state: "disabled" 0.0;
- inherit: "default" 0.0;
- color: 0 0 0 128;
- color3: 0 0 0 0;
- }
- description { state: "disabled_visible" 0.0;
- inherit: "default" 0.0;
- color: 0 0 0 128;
- color3: 0 0 0 0;
- visible: 1;
- }
- description { state: "focused" 0.0;
- inherit: "default" 0.0;
- visible: 1;
- min: 0 0;
- color: 255 255 255 255;
- color2: 0 0 0 102;
- }
- }
- part { name: "over2";
- type: RECT;
- mouse_events: 1;
- repeat_events: 1;
- ignore_flags: ON_HOLD;
- description { state: "default" 0.0;
- color: 0 0 0 0;
- }
- description { state: "disabled" 0.0;
- inherit: "default" 0.0;
- visible: 0;
- }
- }
- part { name: "over3";
- type: RECT;
- mouse_events: 1;
- repeat_events: 1;
- description { state: "default" 0.0;
- color: 0 0 0 0;
- }
- description { state: "clicked" 0.0;
- inherit: "default" 0.0;
- visible: 1;
- }
- }
- part { name: "disabler";
- type: RECT;
- description { state: "default" 0.0;
- color: 0 0 0 0;
- visible: 0;
- }
- description { state: "disabled" 0.0;
- inherit: "default" 0.0;
- visible: 1;
- }
- }
- }
- programs {
- program { name: "button_click";
- signal: "mouse,down,1";
- source: "over2";
- action: SIGNAL_EMIT "elm,action,press" "";
- after: "button_click_anim";
- }
- program { name: "button_click_anim";
- action: STATE_SET "clicked" 0.0;
- target: "button_image";
- after: "text_clicked";
- }
- program { name: "text_clicked";
- script {
- new st[31];
- new Float:vl;
- get_state(PART:"elm.text", st, 30, vl);
- if (!strcmp(st, "visible"))
- set_state(PART:"elm.text", "clicked", 0.0);
- }
- }
- program { name: "button_unpress";
- action: SIGNAL_EMIT "elm,action,unpress" "";
- }
- program { name: "button_mouseout_clicked";
- signal: "mouse,up,1";
- source: "over3";
- script {
- new st[31];
- new Float:vl;
- get_state(PART:"elm.swallow.content", st, 30, vl);
- if (strcmp(st, "icononly"))
- {
- emit("elm,action,default,text,set", "");
- set_state(PART:"elm.text", "visible", 0.0);
- }
- if(get_int(button_state) !=1)
- set_state(PART:"button_image", "default", 0.0);
- }
- after: button_unpress;
- }
- program { name: "button_click2";
- signal: "mouse,down,1";
- source: "over3";
- action: STATE_SET "clicked" 0.0;
- target: "over3";
- }
- program { name: "button_unclick2";
- signal: "mouse,clicked,1";
- source: "over3";
- action: STATE_SET "default" 0.0;
- target: "over3";
- }
- program { name: "button_unclick3";
- signal: "mouse,clicked,1";
- source: "over2";
- action: SIGNAL_EMIT "elm,action,click" "";
- }
- program { name: "text_show";
- signal: "elm,state,text,visible";
- source: "elm";
- script {
- new st[31];
- new Float:vl;
- get_state(PART:"elm.swallow.content", st, 30, vl);
- if (!strcmp(st, "icononly"))
- {
- set_state(PART:"elm.swallow.content", "visible", 0.0);
- set_state(PART:"padding_icon_text", "visible", 0.0);
- }
- set_state(PART:"elm.text", "visible", 0.0);
- }
- }
- program { name: "text_hide";
- signal: "elm,state,text,hidden";
- source: "elm";
- script {
- new st[31];
- new Float:vl;
- get_state(PART:"elm.swallow.content", st, 30, vl);
- if (!strcmp(st, "visible"))
- {
- set_state(PART:"elm.swallow.content", "icononly", 0.0);
- set_state(PART:"padding_icon_text", "icononly", 0.0);
- }
- set_state(PART:"elm.text", "default", 0.0);
- }
- }
- program { name: "icon_show";
- signal: "elm,state,icon,visible";
- source: "elm";
- script {
- new st[31];
- new Float:vl;
- get_state(PART:"elm.text", st, 30, vl);
- if (!strcmp(st, "visible"))
- {
- set_state(PART:"elm.swallow.content", "visible", 0.0);
- set_state(PART:"padding_icon_text", "visible", 0.0);
- }
- else
- {
- set_state(PART:"elm.swallow.content", "icononly", 0.0);
- set_state(PART:"padding_icon_text", "icononly", 0.0);
- }
- }
- }
- program { name: "icon_hide";
- signal: "elm,state,icon,hidden";
- source: "elm";
- action: STATE_SET "default" 0.0;
- target: "elm.swallow.content";
- }
- program { name: "disable";
- signal: "elm,state,disabled";
- source: "elm";
- action: STATE_SET "disabled" 0.0;
- target: "button_image";
- target: "over2";
- target: "disabler";
- after: "disable_text";
- }
- program { name: "disable_text";
- script {
- new st[31];
- new Float:vl;
- get_state(PART:"elm.text", st, 30, vl);
- if (!strcmp(st, "visible"))
- set_state(PART:"elm.text", "disabled_visible", 0.0);
- else
- set_state(PART:"elm.text", "disabled", 0.0);
- set_int(button_state, 1);
- }
- }
- program { name: "enable";
- signal: "elm,state,enabled";
- source: "elm";
- action: STATE_SET "default" 0.0;
- target: "button_image";
- target: "over2";
- target: "disabler";
- after: "enable_text";
- }
- program { name: "enable_text";
- script {
- new st[31];
- new Float:vl;
- get_state(PART:"elm.text", st, 30, vl);
- if (!strcmp(st, "disabled_visible"))
- set_state(PART:"elm.text", "visible", 0.0);
- else
- set_state(PART:"elm.text", "default", 0.0);
- set_int(button_state, 0);
- }
- }
- program { name: "focused";
- signal: "elm,action,focus";
- source: "elm";
- action: STATE_SET "focused" 0.0;
- target: "button_image";
- target: "elm.text";
- }
- program { name: "unfocused";
- signal: "elm,action,unfocus";
- source: "elm";
- action: STATE_SET "default" 0.0;
- target: "button_image";
- after: "unfocus_text";
- }
- program { name: "unfocus_text";
- action: STATE_SET "visible" 0.0;
- target: "elm.text";
- }
- }
- }
-
-
- ////////////// GENLIST GROUP START /////////////////////////////////////////////
-
-#define BEAT_GENLIST_PART_BASE( param_item_height ) \
- part { name: "base"; \
- type: RECT; \
- repeat_events: 1; \
- scale: 1; \
- description { state: "default" 0.0; \
- min: 0 param_item_height; \
- color: 246 245 237 255; \
- } \
- }
-
-#define BEAT_GENLIST_PART_BG \
- part { name: "bg"; \
- type: RECT; \
- clip_to: "disclip"; \
- mouse_events: 0; \
- description { state: "default" 0.0; \
- color: 246 245 237 255; \
- } \
- description { state: "hide" 0.0; \
- inherit: "default" 0.0; \
- rel1 { relative: -0.025 0.0; } \
- rel2 { relative: 0.975 1.0; } \
- } \
- description { state: "hide" 0.1; \
- inherit: "default" 0.0; \
- rel1 { relative: -0.13 0.0; } \
- rel2 { relative: 0.87 1.0; } \
- } \
- description { state: "hide" 0.2; \
- inherit: "default" 0.0; \
- rel1 { relative: -0.5 0.0; } \
- rel2 { relative: 0.5 1.0; } \
- } \
- description { state: "hide" 0.3; \
- inherit: "default" 0.0; \
- rel1 { relative: -1.0 0.0; } \
- rel2 { relative: 0.0 1.0; } \
- } \
- }
-
-#define BEAT_GENLIST_PART_BG_IMAGE \
- part { name: "bg_image"; \
- clip_to: "disclip"; \
- mouse_events: 0; \
- description { state: "default" 0.0; \
- visible: 0; \
- image.normal: "00_list_bar_press_1x80.png"; \
- } \
- description { state: "selected" 0.0; \
- inherit: "default" 0.0; \
- visible: 1; \
- } \
- }
-
-#define BEAT_GENLIST_PART_BOTTOM_LINE \
- part { name: "bottom_line"; \
- type: RECT; \
- clip_to: "disclip"; \
- mouse_events: 0; \
- description { state: "default" 0.0; \
- min: 0 1; \
- fixed: 0 1; \
- visible: 1; \
- color: 212 212 212 255; \
- rel1 { \
- relative: 0.0 1.0; \
- offset: 0 -1; \
- } \
- } \
- }
-
-#define BEAT_GENLIST_PART_PADDING_TOP( param_padding_size ) \
- part { name: "elm.padding.top"; \
- type: RECT; \
- scale: 1; \
- description { \
- state: "default" 0.0; \
- min: 0 param_padding_size; \
- fixed: 0 1; \
- visible: 0; \
- rel2.relative: 0.0 0.0; \
- align: 0.0 0.0; \
- } \
- }
-
-#define BEAT_GENLIST_PART_PADDING_BOTTOM( param_padding_size ) \
- part { name: "elm.padding.bottom"; \
- type: RECT; \
- scale: 1; \
- description { \
- state: "default" 0.0; \
- min: 0 param_padding_size; \
- fixed: 0 1; \
- visible: 0; \
- rel1.relative: 0.0 1.0; \
- align: 0.0 1.0; \
- } \
- }
-
-
-#define BEAT_GENLIST_PART_PADDING_LEFT( param_padding_size ) \
- part { name: "elm.padding.left"; \
- type: RECT; \
- scale: 1; \
- description { \
- state: "default" 0.0; \
- min: param_padding_size 0; \
- fixed: 1 0; \
- visible: 0; \
- rel2.relative: 0.0 1.0; \
- align: 0.0 0.0; \
- } \
- }
-
-
-
-#define BEAT_GENLIST_PART_PADDING_RIGHT( param_padding_size ) \
- part { name: "elm.padding.right"; \
- type: RECT; \
- scale: 1; \
- description { state: "default" 0.0; \
- min: param_padding_size 0; \
- fixed: 1 0; \
- visible: 0; \
- rel1.relative: 1.0 0.0; \
- align: 1.0 0.0; \
- } \
- }
-
-#define BEAT_GENLIST_PART_DISCLIP \
- part { name: "disclip"; \
- type: RECT; \
- description { state: "default" 0.0; \
- rel1.to: "bg"; \
- rel2.to: "bg"; \
- } \
- description { state: "disabled" 0.0; \
- inherit: "default" 0.0; \
- color: 255 255 255 64; \
- } \
- }
-
-
- group { name: "elm/genlist/item_compress/taskswitcher/default";
- alias: "elm/genlist/item_compress_odd/taskswitcher/default";
-
- data.item: "stacking" "above";
- data.item: "selectraise" "on";
- data.item: "texts" "elm.text elm.text.right elm.text.button";
- data.item: "contents" "elm.swallow.icon elm.swallow.end";
- data.item: "treesize" "20";
- images {
- image: "00_list_bar_press_1x80.png" COMP;
- image: "39_mini_controller_button_nor.png" COMP;
- image: "39_mini_controller_button_press.png" COMP;
- }
- parts {
- BEAT_GENLIST_PART_BASE( 70 )
- BEAT_GENLIST_PART_BG
- BEAT_GENLIST_PART_BG_IMAGE
- BEAT_GENLIST_PART_BOTTOM_LINE
- BEAT_GENLIST_PART_PADDING_TOP( 10 )
- BEAT_GENLIST_PART_PADDING_BOTTOM( 10 )
- BEAT_GENLIST_PART_PADDING_LEFT( 15 )
- BEAT_GENLIST_PART_PADDING_RIGHT( 15 )
-
- part {
- name: "end.bg";
- type: RECT;
- scale: 1;
- clip_to: "disclip";
- description {
- state: "default" 0.0;
- min: 110 70;
- fixed: 1 0;
- align: 1.0 0.5;
- visible: 0;
- rel1 {
- relative: 0.0 0.0;
- to_x: "elm.padding.right";
- }
- rel2 {
- relative: 0.0 1.0;
- to_x: "elm.padding.right";
- }
- }
- }
- part {
- name: "end.padding.left";
- type: RECT;
- scale: 1;
- clip_to: "disclip";
- description {
- state: "default" 0.0;
- min: 10 10;
- fixed: 1 1;
- align: 0.0 0.0;
- visible: 0;
- rel1 {
- relative: 0.0 0.0;
- to: "end.bg";
- }
- rel2 {
- relative: 0.0 0.0;
- to: "end.bg";
- }
- }
- }
- part {
- name: "end.padding.right";
- type: RECT;
- scale: 1;
- clip_to: "disclip";
- description {
- state: "default" 0.0;
- min: 10 10;
- fixed: 1 1;
- align: 1.0 1.0;
- visible: 0;
- rel1 {
- relative: 1.0 1.0;
- to: "end.bg";
- }
- rel2 {
- relative: 1.0 1.0;
- to: "end.bg";
- }
- }
- }
- part {
- name: "elm.swallow.end";
- type: SWALLOW;
- scale: 1;
- clip_to: "disclip";
- description {
- state: "default" 0.0;
- align: 0.5 0.5;
- rel1 {
- relative: 1.0 1.0;
- to: "end.padding.left";
- }
- rel2 {
- relative: 0.0 0.0;
- to: "end.padding.right";
- }
- }
- }
-
- part {
- name: "elm.text";
- clip_to: "disclip";
- type: TEXT;
- mouse_events: 0;
- scale: 1;
- description {
- state: "default" 0.0;
- rel1 {
- relative: 1.0 0.0;
- offset: 0 0;
- to_x: "elm.swallow.icon";
- }
- rel2 {
- to_x: "elm.text.right";
- relative: 0.0 1.0;
- offset: 0 0;
- }
- color: 0 0 0 255;
- text {
- font: "SLP:style=Roman";
- size: 32;
- min: 0 1;
- align: 0.0 0.5;
- }
- }
- description {
- state: "selected" 0.0;
- inherit: "default" 0.0;
- color: 225 225 225 255;
- }
- }
- part {
- name: "elm.text.right";
- clip_to: "disclip";
- type: TEXT;
- mouse_events: 0;
- scale: 1;
- description {
- state: "default" 0.0;
- visible: 1;
- min: 70 50;
- max: 70 50;
- fixed: 1 0;
- align: 1.0 0.5;
- rel1 {
- to_x: "end.bg";
- }
- rel2 {
- relative: 0.0 1.0;
- to_x: "end.bg";
- }
- color: 213 129 31 255;
- text {
- font: "SLP:style=Medium";
- size: 24;
- min: 0 1;
- align: 0.5 0.5;
- }
- }
- description {
- state: "hide" 0.0;
- inherit: "default" 0.0;
- min: 0 0;
- max: 0 0;
- visible: 0;
- }
- description {
- state: "selected" 0.0;
- inherit: "default" 0.0;
- color: 225 225 225 255;
- }
- }
-
- part {
- name: "elm.text.button";
- clip_to: "disclip";
- type: TEXT;
- mouse_events: 0;
- scale: 1;
- description {
- state: "default" 0.0;
- rel1 { to: "elm.swallow.end"; }
- rel2 { to: "elm.swallow.end"; }
- color: 0 0 0 255;
- text {
- font: "SLP:style=Roman";
- size: 22;
- min: 0 1;
- align: 0.5 0.5;
- }
- }
- description {
- state: "selected" 0.0;
- inherit: "default" 0.0;
- color: 225 225 225 255;
- }
- }
-
- part {
- name: "elm.swallow.icon";
- clip_to: "disclip";
- type: SWALLOW;
- description {
- state: "default" 0.0;
- fixed: 1 0;
- align: 0.0 0.5;
- rel1 {
- relative: 1.0 0.0;
- to_x: "elm.padding.left";
- }
- rel2.to_x: "elm.padding.left";
- }
- }
- BEAT_GENLIST_PART_DISCLIP
- }
-
- programs {
- program { name: "go_active";
- signal: "elm,state,selected";
- source: "elm";
- action: STATE_SET "selected" 0.0;
- target: "bg_image";
- target: "elm.text";
- }
- program { name: "go_passive";
- signal: "elm,state,unselected";
- source: "elm";
- action: STATE_SET "default" 0.0;
- target: "bg_image";
- target: "elm.text";
- transition: LINEAR 0.1;
- }
- program { name: "go_disabled";
- signal: "elm,state,disabled";
- source: "elm";
- action: STATE_SET "disabled" 0.0;
- target: "disclip";
- }
- program { name: "go_enabled";
- signal: "elm,state,enabled";
- source: "elm";
- action: STATE_SET "default" 0.0;
- target: "disclip";
- }
-
- program {
- name: "hide/mem";
- signal: "prog.hide.mem";
- source: "taskmanager";
- action: STATE_SET "hide" 0.0;
- target: "elm.text.right";
- }
- program {
- name: "show/mem";
- signal: "prog.show.mem";
- source: "taskmanager";
- action: STATE_SET "default" 0.0;
- target: "elm.text.right";
- }
-
- }
- }
- group { name: "elm/genlist/item_compress/taskswitcher_btn/default";
- alias: "elm/genlist/item_compress_odd/taskswitcher_btn/default";
-
- images {
- image: "39_mini_controller_button_nor.png" COMP;
- image: "39_mini_controller_button_press.png" COMP;
- }
-
- data.item: "stacking" "above";
- data.item: "selectraise" "on";
- data.item: "texts" "elm.text";
- data.item: "contents" "elm.swallow.icon";
- data.item: "treesize" "20";
- parts {
- BEAT_GENLIST_PART_BASE( 70 )
- BEAT_GENLIST_PART_BG
- BEAT_GENLIST_PART_BG_IMAGE
- BEAT_GENLIST_PART_BOTTOM_LINE
- BEAT_GENLIST_PART_PADDING_TOP( 10 )
- BEAT_GENLIST_PART_PADDING_BOTTOM( 10 )
- BEAT_GENLIST_PART_PADDING_LEFT( 10 )
- BEAT_GENLIST_PART_PADDING_RIGHT( 10 )
-
-
- part { name: "label.bg";
- clip_to: "disclip";
- type: IMAGE;
- description { state: "default" 0.0;
- align: 0.5 0.5;
- rel1 {
- relative: 1.0 1.0;
- to_x: "elm.padding.left";
- to_y: "elm.padding.top";
- }
- rel2 {
- relative: 0.0 0.0;
- to_x: "elm.padding.right";
- to_y: "elm.padding.bottom";
- }
- image {
- normal: "39_mini_controller_button_nor.png";
- border: 5 5 5 5;
- border_scale: 1;
- }
- }
- description {
- state: "selected" 0.0;
- inherit: "default" 0.0;
- image {
- normal: "39_mini_controller_button_press.png";
- border: 5 5 5 5;
- border_scale: 1;
- }
- }
- }
-
- part { name: "elm.text";
- clip_to: "disclip";
- type: TEXT;
- mouse_events: 0;
- scale: 1;
- description {
- state: "default" 0.0;
- rel1 {
- to: "label.bg";
- }
- rel2 {
- to: "label.bg";
- }
- color: 0 0 0 255;
- text {
- font: "SLP:style=Roman";
- size: 28;
- min: 0 1;
- align: 0.5 0.5;
- }
- }
- description { state: "selected" 0.0;
- inherit: "default" 0.0;
- color: 225 225 225 255;
- }
- }
-
- part { name: "elm.swallow.icon";
- clip_to: "disclip";
- type: SWALLOW;
- description { state: "default" 0.0;
- fixed: 1 0;
- align: 0.5 0.5;
- rel1.to_x: "elm.padding.left";
- rel2.to_x: "elm.padding.right";
- }
- }
- BEAT_GENLIST_PART_DISCLIP
- }
- programs {
- program { name: "go_disabled";
- signal: "elm,state,disabled";
- source: "elm";
- action: STATE_SET "disabled" 0.0;
- target: "disclip";
- }
- program { name: "go_enabled";
- signal: "elm,state,enabled";
- source: "elm";
- action: STATE_SET "default" 0.0;
- target: "disclip";
- }
- program { name: "selected";
- signal: "mouse,down,1";
- source: "label.bg";
- action: STATE_SET "selected" 0.0;
- target: "label.bg";
- target: "elm.text";
- transition: LINEAR 0.1;
- }
- program { name: "released";
- signal: "mouse,up,1";
- source: "label.bg";
- action: STATE_SET "default" 0.0;
- target: "label.bg";
- target: "elm.text";
- transition: LINEAR 0.1;
- }
- program { name: "clicked";
- signal: "mouse,clicked,1";
- source: "label.bg";
- action: SIGNAL_EMIT "clicked" "label";
- }
- }
- }
-}
- ////////////// GENLIST GROUP END /////////////////////////////////////////////
+++ /dev/null
-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
-
+++ /dev/null
-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
+++ /dev/null
-@PREFIX@/*
-/usr/share/applications/*
-/usr/share/icons/default/small/org.tizen.taskmgr.png
+++ /dev/null
-#!/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
+++ /dev/null
-#!/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
--- /dev/null
+/*
+ * 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_CONF_H__
+#define __TASK_MGR_CONF_H__
+
+//size
+#define BASE_WIDTH 540
+#define BASE_HEIGHT 960
+
+#define CLEAR_ICON_WIDTH 60
+#define CLEAR_ICON_HEIGHT 60
+#define CLEAR_LINE_WIDTH 2
+#define CLEAR_LINE_HEIGHT 120
+#define CLEAR_ITEM_WIDTH CLEAR_ICON_WIDTH
+#define CLEAR_ITEM_HEIGHT CLEAR_LINE_HEIGHT
+
+#define ITEM_ICON_WIDTH 88
+#define ITEM_ICON_HEIGHT 88
+#define ITEM_LINE_WIDTH 2
+#define ITEM_LINE_HEIGHT 148
+#define ITEM_WIDTH ITEM_ICON_WIDTH
+#define ITEM_HEIGHT ITEM_LINE_HEIGHT
+
+//color
+#define BG_COLOR (255*0.5)
+
+//edc
+#define LAYOUT EDJEDIR"/layout.edj"
+#define BOX_LAYOUT EDJEDIR"/box.edj"
+#define ITEM_LAYOUT EDJEDIR"/item.edj"
+
+#define BOX_GROUP_NAME "box"
+
+#endif //__TASK_MGR_CONF_H__
--- /dev/null
+/*
+ * 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_ITEM_H__
+#define __TASK_MGR_ITEM_H__
+
+#include "list.h"
+#include "util.h"
+
+
+
+extern list_type_default_s *item_get_info(Evas_Object *item);
+
+extern void item_clear_set_disable(Evas_Object *scroller);
+extern Evas_Object *item_clear_all_create(Evas_Object *scroller);
+extern void item_clear_all_destroy(Evas_Object *scroller);
+
+extern Evas_Object *item_create(Evas_Object *scroller, list_type_default_s *info);
+extern void item_destroy(Evas_Object *item);
+extern void item_terminate(Evas_Object *item);
+
+
+
+#endif //__TASK_MGR_ITEM_H__
--- /dev/null
+/*
+ * 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_LIST_H__
+#define __TASK_MGR_LIST_H__
+
+#include "util.h"
+
+typedef struct {
+
+ char *pkgid;
+ char *appid;
+ char *name;
+ char *icon;
+ char *arg;
+
+ int pid;
+ Eina_Bool nodisplay;
+ Eina_Bool taskmanage;
+ Eina_Bool unmounted;
+ Eina_Bool multi_launch;
+ Eina_Bool isAlreadySet;
+
+ time_t launch_time;
+
+} list_type_default_s;
+
+
+
+extern task_mgr_error_e list_create(Eina_List **pkg_list);
+extern void list_destroy(Eina_List *pkg_list);
+
+extern task_mgr_error_e list_sort(Eina_List *pkg_list, int (*_sort_cb)(const void *d1, const void *d2));
+
+#endif //__TASK_MGR_LIST_H__
--- /dev/null
+/*
+ * 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_LOG_H__
+#define __TASK_MGR_LOG_H__
+
+#include <unistd.h>
+#include <dlog.h>
+
+#undef LOG_TAG
+#define LOG_TAG "TASK_MGR"
+
+#if !defined(_D)
+#define _D(fmt, arg...) LOGD(fmt"\n", ##arg)
+#endif
+
+#if !defined(_W)
+#define _W(fmt, arg...) LOGW(fmt"\n", ##arg)
+#endif
+
+#if !defined(_E)
+#define _E(fmt, arg...) LOGE(fmt"\n", ##arg)
+#endif
+
+#if !defined(_SD)
+#define _SD(fmt, arg...) SECURE_LOGD(fmt"\n", ##arg)
+#endif
+
+#if !defined(_SW)
+#define _SW(fmt, arg...) SECURE_LOGW(fmt"\n", ##arg)
+#endif
+
+#if !defined(_SE)
+#define _SE(fmt, arg...) SECURE_LOGE(fmt"\n", ##arg)
+#endif
+
+#define retvm_if_timer(timer, expr, val, fmt, arg...) do { \
+ if (expr) { \
+ _E(fmt, ##arg); \
+ _E("(%s) -> %s() return", #expr, __FUNCTION__); \
+ timer = NULL; \
+ return (val); \
+ } \
+} while (0)
+
+#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)
+
+#define goto_if(expr, val) do { \
+ if(expr) { \
+ _E("(%s) -> goto", #expr); \
+ goto val; \
+ } \
+} while (0)
+
+#define break_if(expr) { \
+ if(expr) { \
+ _E("(%s) -> break", #expr); \
+ break; \
+ } \
+}
+
+#define continue_if(expr) { \
+ if(expr) { \
+ _E("(%s) -> continue", #expr); \
+ continue; \
+ } \
+}
+
+
+
+#endif //__TASK_MGR_LOG_H__
--- /dev/null
+/*
+ * 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_H__
+#define __TASK_MGR_H__
+
+typedef struct {
+ Evas *e;
+ Evas_Object *win;
+ Evas_Object *bg;
+ Evas_Object *layout;
+ Evas_Object *scroller;
+ Evas_Object *box;
+
+ Eina_List *pkg_list;
+
+ int root_w;
+ int root_h;
+} main_s;
+typedef main_s *main_h;
+
+
+extern main_h main_get_info(void);
+
+#endif //__TASK_MGR_H__
--- /dev/null
+/*
+ * 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_SCROLLER_H__
+#define __TASK_MGR_SCROLLER_H__
+
+#include "util.h"
+
+
+
+extern task_mgr_error_e scroller_push_item(Evas_Object *scroller, Evas_Object *item);
+extern void scroller_pop_item(Evas_Object *scroller, Evas_Object *item, int terminate);
+
+extern task_mgr_error_e scroller_push_all_item(Evas_Object *scroller, Eina_List *list);
+extern void scroller_pop_all_item(Evas_Object *scroller, int terminate);
+
+extern int scroller_count(Evas_Object *scroller);
+extern Eina_Bool scroller_is_scrolling(Evas_Object *scroller);
+
+extern void scroller_freeze(Evas_Object *scroller);
+extern void scroller_unfreeze(Evas_Object *scroller);
+
+extern Evas_Object *scroller_create(Evas_Object *layout);
+extern void scroller_destroy(Evas_Object *scroller);
+
+
+
+#endif //__TASK_MGR_SCROLLER_H__
--- /dev/null
+/*
+ * 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_UTIL_H__
+ #define __TASK_MGR_UTIL_H__
+
+
+
+/* data key */
+#define DATA_KEY_RUNNING_LIST "rn_list"
+#define DATA_KEY_IS_SCROLLING "is_scing"
+#define DATA_KEY_ITEM_INFO "it_if"
+
+/* Multi-language */
+#if !defined(_)
+#define _(str) gettext(str)
+#endif
+
+
+
+/* Enum */
+typedef enum {
+ TASK_MGR_ERROR_NONE = 0,
+ TASK_MGR_ERROR_FAIL = -1,
+ TASK_MGR_ERROR_DB_FAILED = -2,
+ TASK_MGR_ERROR_OUT_OF_MEMORY = -3,
+ TASK_MGR_ERROR_INVALID_PARAMETER = -4,
+ TASK_MGR_ERROR_NO_DATA = -5,
+} task_mgr_error_e;
+
+extern Eina_Bool util_kill_app(const char *appid);
+extern Eina_Bool util_launch_app(const char *appid);
+
+
+
+#endif //__TASK_MGR_UTIL_H__
--- /dev/null
+<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>
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>\r
-<manifest xmlns="http://tizen.org/ns/packages" package="org.tizen.taskmgr" version="0.14.5" install-location="internal-only">\r
- <label>taskmgr</label>\r
- <author email="hhh.kwon@samsung.com" href="www.samsung.com">Hong Kwon</author>\r
- <description>Task Manager</description>\r
- <ui-application appid="org.tizen.taskmgr" exec="/usr/apps/org.tizen.taskmgr/bin/taskmgr" nodisplay="true" multiple="false" type="capp" taskmanage="false">\r
- <label>taskmgr</label>\r
- </ui-application>\r
-</manifest>\r
--- /dev/null
+%define Exec task-mgr
+%define AppInstallPath /usr/apps/%{name}
+
+Name: org.tizen.task-mgr
+Summary: Taskmanager application
+Version: 0.0.1
+Release: 1
+License: Apache-2.0
+Source0: %{name}-%{version}.tar.gz
+
+%if "%{?tizen_profile_name}" == "wearable"
+ExcludeArch: %{arm} %ix86 x86_64
+%endif
+
+%if "%{?tizen_profile_name}" == "tv"
+ExcludeArch: %{arm} %ix86 x86_64
+%endif
+
+BuildRequires: pkgconfig(appcore-efl)
+BuildRequires: pkgconfig(capi-appfw-application)
+BuildRequires: pkgconfig(ecore)
+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(pkgmgr-info)
+BuildRequires: pkgconfig(rua)
+BuildRequires: pkgconfig(feedback)
+
+%description
+Taskmanager application.
+
+%prep
+%setup -q
+
+%build
+export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE"
+export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
+export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
+
+cmake . -DCMAKE_INSTALL_PREFIX="%{AppInstallPath}" -DCMAKE_TARGET="%{Exec}" -DCMAKE_PACKAGE="%{name}"
+make %{?jobs:-j%jobs}
+
+%install
+rm -rf %{buildroot}
+%make_install
+
+%post
+/sbin/ldconfig
+
+%postun -p /sbin/ldconfig
+
+%files
+%manifest %{name}.manifest
+%defattr(-,root,root,-)
+%{AppInstallPath}/bin/task-mgr
+%{AppInstallPath}/res/*
+%{_datarootdir}/packages/%{name}.xml
+/etc/smack/accesses.d/%{name}.efl
+%{AppInstallPath}/res/locale/*/LC_MESSAGES/*
+++ /dev/null
-<manifest>
- <request>
- <domain name="_"/>
- </request>
- <assign>
- <filesystem path="/opt/usr/apps/org.tizen.taskmgr/data" label="User" />
- </assign>
-</manifest>
+++ /dev/null
-Name: org.tizen.taskmgr
-Summary: Task Manager
-Version: 0.14.5
-Release: 1
-Group: devel
-License: Flora Software License
-Source0: %{name}-%{version}.tar.gz
-Source1001: org.tizen.taskmgr.manifest
-BuildRequires: pkgconfig(appcore-efl)
-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
-cp %{SOURCE1001} .
-
-%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
-
-%files
-%manifest %{name}.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
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-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 "محول المهام"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-msgstr "Tarixçəni sil"
-
-msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS"
-msgstr "Bütün proqramları bağla"
-
-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"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-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 "Превключване на задачи"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-msgstr "Netejar l'historial"
-
-msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS"
-msgstr "Tancar totes les aplicacions"
-
-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"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-msgstr "Smazat historii"
-
-msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS"
-msgstr "Ukončit všechny aplikace"
-
-msgid "IDS_TASKMGR_HEADER_RUNNING"
-msgstr "Spuštěno"
-
-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"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-msgstr "Ryd historik"
-
-msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS"
-msgstr "Luk alle programmer"
-
-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"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-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 "Εφαρμογή εναλλαγής εργασιών"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-msgstr "Clear history"
-
-msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS"
-msgstr "Close all applications"
-
-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"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-msgstr "Clear history"
-
-msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS"
-msgstr "Close all applications"
-
-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"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-msgstr "Clear history"
-
-msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS"
-msgstr "Close all applications"
-
-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"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-msgstr "Borrar historial"
-
-msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS"
-msgstr "Cerrar todas las aplicaciones"
-
-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"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-msgstr "Eliminar historial"
-
-msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS"
-msgstr "Cerrar todas las aplicaciones"
-
-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"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-msgstr "Kustuta ajalugu"
-
-msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS"
-msgstr "Sulge kõik rakendused"
-
-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"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-msgstr "Garbitu historia"
-
-msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS"
-msgstr "Itxi aplikazio guztiak"
-
-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"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-msgstr "Tyhjennä historia"
-
-msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS"
-msgstr "Sulje kaikki sovellukset"
-
-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"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-msgstr "Effacer historique"
-
-msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS"
-msgstr "Fermer toutes les applications"
-
-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"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-msgstr "Glan stair"
-
-msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS"
-msgstr "Dún gach feidhmchlár"
-
-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"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-msgstr "Borrar o historial"
-
-msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS"
-msgstr "Pechar todas as aplicacións"
-
-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"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-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 "कार्य स्विचर"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-msgstr "Obriši povijest"
-
-msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS"
-msgstr "Zatvori sve aplikacije"
-
-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"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-msgstr "Előzmények törlése"
-
-msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS"
-msgstr "Összes alkalmazás bezárása"
-
-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ó"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-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 "Առաջադրանքների փոխարկիչ"
-
+++ /dev/null
-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_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"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-msgstr "Hreinsa feril"
-
-msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS"
-msgstr "Loka öllum forritum"
-
-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"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-msgstr "Cancella cronologia"
-
-msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS"
-msgstr "Chiudi tutte le applicazioni"
-
-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à"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-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 "タスク切替"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-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 "დავალების გადამრთველი"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-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 "Тапсырма қосқыш"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-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 "작업 전환기"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-msgstr "Valyti istoriją"
-
-msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS"
-msgstr "Uždaryti visas programas"
-
-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"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-msgstr "Notīrīt vēsturi"
-
-msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS"
-msgstr "Aizvērt visas programmas"
-
-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"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-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 "Менувач на задачи"
-
+++ /dev/null
-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_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"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-msgstr "Tøm logg"
-
-msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS"
-msgstr "Lukk alle programmer"
-
-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"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-msgstr "Wyczyść historię"
-
-msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS"
-msgstr "Zamknij wszystkie aplikacje"
-
-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ń"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-msgstr "Limpar histórico"
-
-msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS"
-msgstr "Fechar todos os aplicativos"
-
-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"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-msgstr "Limpar histórico"
-
-msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS"
-msgstr "Fechar todas as aplicações"
-
-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"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-msgstr "Ştergere istoric"
-
-msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS"
-msgstr "Închideţi toate aplicaţiile"
-
-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"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-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 "Диспетчер задач"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-msgstr "Vymazať históriu"
-
-msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS"
-msgstr "Ukončite všetky aplikácie"
-
-msgid "IDS_TASKMGR_HEADER_RUNNING"
-msgstr "Spustené"
-
-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"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-msgstr "Počisti zgodovino"
-
-msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS"
-msgstr "Zapri vse programe"
-
-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"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-msgstr "Obriši istoriju"
-
-msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS"
-msgstr "Zatvori sve aplikacije"
-
-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"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-msgstr "Rensa historik"
-
-msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS"
-msgstr "Stäng alla program"
-
-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"
-
+++ /dev/null
-msgid "IDS_COM_BODY_HIGH_VOLUMES_MAY_HARM_YOUR_HEARING_IF_YOU_LISTEN_FOR_A_LONG_TIME"
-msgstr "ระดับเสียงที่สูงอาจเป็นอันตรายต่อการฟังของคุณได้ หากคุณฟังเป็นเวลานาน"
-
-msgid "IDS_COM_BODY_ANDROID"
-msgstr "Android"
-
-msgid "IDS_COM_BODY_JAVA"
-msgstr "Java"
-
-msgid "IDS_COM_BODY_WARNING"
-msgstr "เตือน"
-
-msgid "IDS_COM_BODY_MEDIA"
-msgstr "มีเดีย"
-
-msgid "IDS_COM_OPT_HEADPHONES_ABB"
-msgstr "หูฟัง"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-msgstr "Geçmişi sil"
-
-msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS"
-msgstr "Tüm uygulamaları kapat"
-
-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"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-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 "Диспетчер задач"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-msgstr "Jurnalni tozalash"
-
-msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS"
-msgstr "Barcha ilovalar yopilsin"
-
-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"
-
+++ /dev/null
-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_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"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-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 "任务切换器"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-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 "工作切換器"
-
+++ /dev/null
-msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
-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 "任務切換"
-
--- /dev/null
+ADD_SUBDIRECTORY(edje)
+#ADD_SUBDIRECTORY(images)
+ADD_SUBDIRECTORY(po)
--- /dev/null
+#install edj
+ADD_CUSTOM_TARGET(layout.edj
+ COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images
+ ${CMAKE_CURRENT_SOURCE_DIR}/layout.edc layout.edj
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/layout.edc
+)
+ADD_DEPENDENCIES(${PROJECT_NAME} layout.edj)
+INSTALL(FILES layout.edj DESTINATION ${EDJEDIR})
+
+ADD_CUSTOM_TARGET(box.edj
+ COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images
+ ${CMAKE_CURRENT_SOURCE_DIR}/box.edc box.edj
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/box.edc
+)
+ADD_DEPENDENCIES(${PROJECT_NAME} box.edj)
+INSTALL(FILES box.edj DESTINATION ${EDJEDIR})
+
+ADD_CUSTOM_TARGET(item.edj
+ COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images
+ ${CMAKE_CURRENT_SOURCE_DIR}/item.edc item.edj
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/item.edc
+)
+ADD_DEPENDENCIES(${PROJECT_NAME} item.edj)
+INSTALL(FILES item.edj DESTINATION ${EDJEDIR})
+
--- /dev/null
+/*
+ * 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"
+
+collections {
+ base_scale: 2.1;
+ group {
+ name: "box";
+ parts {
+ part {
+ name: "bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ min: BASE_WIDTH BASE_HEIGHT;
+ color: 0 0 0 0;
+ visible: 1;
+ }
+ }
+ part {
+ name: "box";
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 1.0; }
+ rel2 { relative: 1.0 1.0; }
+ align: 0.5 1.0;
+ fixed: 0 1;
+ visible: 1;
+ }
+ }
+ } //parts
+ } //group
+} //collections
--- /dev/null
+../../include/conf.h
\ No newline at end of file
--- /dev/null
+/*
+ * 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: "item_style";
+ base: "font=Tizen:style=Bold font_size=30 color=#ffffff align=left style=shadow shadow_color=#000000bf wrap=mixed";
+ tag: "br" "\n";
+ tag: "hilight" "+ font_weight=Bold";
+ tag: "b" "+ font_weight=Bold";
+ tag: "tab" "\t";
+ }
+}
+
+images {
+ image: "clear_all_button_icon.png" COMP;
+ image: "clear_all_button_icon_disable.png" COMP;
+}
+
+collections {
+ base_scale: 2.1;
+ group {
+ name: "item";
+ parts {
+ part {
+ name: "bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ color: 255 255 255 0;
+ min: ITEM_WIDTH ITEM_HEIGHT;
+ visible: 1;
+ }
+ }
+ part{
+ name: "line";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ rel1 { relative: 0.5 0.0; to: "bg"; }
+ rel2 { relative: 0.5 1.0; to: "bg"; }
+ min: ITEM_LINE_WIDTH 0;
+ fixed: 1 0;
+ visible: 1;
+ align: 0.5 0.5;
+ }
+ }
+ part {
+ name: "inner";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1.relative: 0.0 0.0;
+ rel2.relative: 1.0 1.0;
+ visible: 1;
+ }
+ }
+ part {
+ name: "focus";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to: "bg"; }
+ rel2 { relative: 1.0 1.0; to: "bg"; }
+ visible: 1;
+ }
+ }
+ }
+ }
+ group {
+ name: "item_inner";
+ parts {
+ part {
+ name: "bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ color: 255 255 255 0;
+ min: ITEM_WIDTH ITEM_HEIGHT;
+ visible: 1;
+ }
+ }
+ part {
+ name: "icon";
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.5 0.0; to: "bg"; }
+ rel2 { relative: 0.5 0.0; to: "bg"; }
+ visible: 1;
+ min: ITEM_ICON_WIDTH ITEM_ICON_HEIGHT;
+ fixed: 1 1;
+ align: 0.5 0.0;
+ }
+ }
+ part {
+ name: "name";
+ type: TEXTBLOCK;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ rel1 { relative: 1.0 0.0; to: "icon"; offset: 20 0; }
+ rel2 { relative: 1.0 1.0; to: "icon"; }
+ text {
+ text: "";
+ style: "item_style";
+ min: 1 0;
+ }
+ align: 0.0 0.5;
+ visible: 1;
+ }
+ }
+ } //parts
+ } //group
+
+ group {
+ name: "clear_item";
+ parts {
+ part {
+ name: "bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ color: 255 255 255 0;
+ min: ITEM_WIDTH CLEAR_ITEM_HEIGHT;
+ visible: 1;
+ }
+ }
+ part{
+ name: "line";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ rel1 { relative: 0.5 0.0; to: "bg"; }
+ rel2 { relative: 0.5 1.0; to: "bg"; }
+ min: CLEAR_LINE_WIDTH 0;
+ visible: 1;
+ align: 0.5 0.5;
+ fixed: 1 0;
+ }
+ }
+ part {
+ name: "clear_img";
+ type: IMAGE;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.5 0.0; to: "bg"; }
+ rel2 { relative: 0.5 0.0; to: "bg"; }
+ image {
+ normal: "clear_all_button_icon.png";
+ }
+ visible: 1;
+ min: CLEAR_ICON_WIDTH CLEAR_ICON_HEIGHT;
+ align: 0.5 0.0;
+ fixed: 1 1;
+ }
+ description {
+ state: "no,apps" 0.0;
+ inherit: "default" 0.0;
+ image {
+ normal: "clear_all_button_icon_disable.png";
+ }
+ }
+ }
+ part {
+ name: "name";
+ type: TEXTBLOCK;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ rel1 { relative: 1.0 0.0; to: "clear_img"; offset: 37 0; }
+ rel2 { relative: 1.0 1.0; to: "clear_img"; }
+ text {
+ text: "Clear all";
+ style: "item_style";
+ min: 1 0;
+ }
+ align: 0.0 0.5;
+ visible: 1;
+ fixed: 1 0;
+ }
+ description {
+ state: "no,apps" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 124;
+ }
+ }
+ part {
+ name: "event";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 0;
+ rel1.to: "clear_img";
+ rel2.to: "clear_img";
+ visible: 1;
+ }
+ description {
+ state: "no,apps" 0.0;
+ inherit: "default" 0.0;
+ visible: 0;
+ }
+ }
+ } //parts
+ programs {
+ program {
+ name: "event,click";
+ signal: "mouse,clicked,1";
+ source: "event";
+ action: SIGNAL_EMIT "click" "clear_item";
+ }
+ program {
+ name: "no,app";
+ signal: "no,apps";
+ source: "clear";
+ action: STATE_SET "no,apps" 0.0;
+ target: "clear_img";
+ target: "name";
+ target: "event";
+ }
+ }
+ } //group
+} //collections
--- /dev/null
+/*
+ * 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: "no_item_style";
+ base: "font=Tizen:style=Bold font_size=30 color=#ffffff align=center style=shadow shadow_color=#000000bf wrap=mixed";
+ tag: "br" "\n";
+ tag: "hilight" "+ font_weight=Bold";
+ tag: "b" "+ font_weight=Bold";
+ tag: "tab" "\t";
+ }
+}
+
+collections {
+ base_scale: 2.1;
+ group {
+ name: "layout";
+ parts {
+ part {
+ name: "bg";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ color: 0 0 0 BG_COLOR;
+ rel1 { relative: 0.0 0.0; }
+ rel2 { relative: 1.0 1.0; }
+ min: BASE_WIDTH BASE_HEIGHT;
+ visible: 1;
+ }
+ }
+ part {
+ name: "scroller";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to: "bg"; }
+ rel2 { relative: 1.0 1.0; to: "bg"; }
+ align: 0.5 1.0;
+ visible: 1;
+ }
+ }
+ part {
+ name: "no,apps,txt";
+ type: TEXTBLOCK;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ color: 255 255 255 255;
+ rel1 { relative: 0.15 0.4; to: "bg"; }
+ rel2 { relative: 0.85 0.5; to: "bg"; }
+ text {
+ text: " ";
+ style: "no_item_style";
+ align: 0.5 0.5;
+ }
+ visible: 0;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ } //parts
+ programs {
+ program {
+ signal: "no,apps,txt,show";
+ source: "no,apps,txt";
+ action: STATE_SET "show" 0.0;
+ target: "no,apps,txt";
+ }
+ program {
+ signal: "no,apps,txt,hide";
+ source: "no,apps,txt";
+ action: STATE_SET "default" 0.0;
+ target: "no,apps,txt";
+ }
+ }
+ } //group
+} //collections
# 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")
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)
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "ما من تطبيقات"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "مدير المهام"
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "مسح الكل"
+
--- /dev/null
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "সকলো পৰিষ্কাৰ"
+
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "কোনো এপ্লিকেশ্বন নাই"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Proqram yoxdur"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Tapşr mnc"
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Hamısını sil"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Няма приложения"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Задачи"
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Изтр. всч"
+
--- /dev/null
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "সমস্ত পরিষ্কার"
+
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "কোনও অ্যাপ্লিকেশন নেই"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Cap aplicació"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Adm tasq"
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Esbor tot"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Žádné aplikace"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Sp. úloh"
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Smazat vše"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Ingen applikationer"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Opg.styr"
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Slet alle"
+
--- /dev/null
+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"
+
msgstr "Verlauf löschen"
msgid "IDS_TASKMGR_BUTTON_CLOSE_ALL_APPLICATIONS"
-msgstr "Alle Anwendungen schließen."
+msgstr "Alle Anwendungen schließen"
msgid "IDS_TASKMGR_HEADER_RUNNING"
msgstr "Ausführen"
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Καμία εφαρμογή"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Διαχ. ερ."
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Διαγραφή όλων"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "No applications"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Task mgr"
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Clear all"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "No applications"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Task mgr"
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Clear all"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "No applications"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Task mgr"
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Clear all"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "No hay aplicaciones"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Adm tarea"
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Borrar todo"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "No hay aplicaciones"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Adm. tar."
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Eliminar todo"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Rakendusi pole"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Ül. hal."
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Tühjenda kõik"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Ez dago aplikaziorik"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Eg. kud."
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Garbitu guztiak"
+
--- /dev/null
+msgid "IDS_TASKMGR_BUTTON_CLEAR_HISTORY_ABB"
+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 "تغییر دهنده کار"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Sovelluksia ei ole"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Teht.h."
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Tyhj. kaikki"
+
--- /dev/null
+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"
+
--- /dev/null
+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"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Níl feidhmchláir ann"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Bain. tasc"
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Glan gach"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Non hai aplicacións"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Adm.tare."
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Borrar todo"
+
--- /dev/null
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "બધું સાફ કરો"
+
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "કોઇ એપ્લિકેશનો નથી"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "कोई एप्लीकेशंस नहीं"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "कार्य प्रबंधक"
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "सभी साफ करें"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Nema aplikacija"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Zadaci"
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Obriši sve"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Nincs alkalmazás"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Felad.kez."
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Össz. Törlése"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Ծրագրեր չկան"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Առջ. կռվչ"
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Մաքրել բոլորը"
+
--- /dev/null
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Hps semua"
+
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Tidak ada aplikasi"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Engin forrit"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Verkstjórn"
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Hreinsa allt"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Nessuna applicazione"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Gest att"
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Cancella tutto"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "アプリケーションがありません"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "タスクマネージャ"
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "全て消去"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "აპლიკაციები არ არის"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "მმართველი"
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "ყველას წაშლა"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Бағдарламалар жоқ"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Тапс ртш"
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Барлығын өшіру"
+
--- /dev/null
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "ជម្រះទាំងអស់"
+
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "គ្មានកម្មវិធី"
+
--- /dev/null
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "ಎಲ್ಲವನ್ನೂ ತೆರವುಗೊಳಿಸಿ"
+
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "ಅನ್ವಯಿಸುವಿಕೆಗಳಿಲ್ಲ"
+
--- /dev/null
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "모두 삭제"
+
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "애플리케이션이 없습니다"
+
--- /dev/null
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "ລຶບທັງໝົດ"
+
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "ບໍ່ມີແອພພລິເຄຊັນ"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Nėra programų"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Užd. tv."
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Valyti viską"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Nav programmu"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Uzd.pārv."
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Notīrīt visu"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Нема апликации"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Уред.зад."
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Бриши сѐ"
+
--- /dev/null
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "എല്ലാം മായ്ക്കുക"
+
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "ആപ്ലിക്കേഷനുകൾ ഒന്നുമില്ല"
+
--- /dev/null
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "सर्व साफ करा"
+
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "कोणतेही अनुप्रयोग नाहीत"
+
--- /dev/null
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Padam semua"
+
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Tiada aplikasi"
+
--- /dev/null
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "အားလံုးကိုရွင္းပစ္ပါ"
+
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "အပလီေကးရွင္းမ်ား မရွိပါ"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Ingen apper"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Oppg.beh"
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Tøm alle"
+
--- /dev/null
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "सबै सफा"
+
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "कुनै अनुप्रयोगहरू छैनन्"
+
--- /dev/null
+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"
+
--- /dev/null
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "ସମସ୍ତ ଖାଲି"
+
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "କୌଣସି ଆପ୍ଲିକେସନ୍ ନାହିଁ"
+
--- /dev/null
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "ਸਾਰੇ ਸਾਫ਼ ਕਰੋ"
+
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "ਕੋਈ ਅਨੁਪ੍ਰਯੋਗ ਨਹੀਂ"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Brak aplikacji"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Men. zad."
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Wyczyść wszys."
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Nenhum aplicativo"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Ger. tar."
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Limpar tudo"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Sem aplicações"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Ges. tar."
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Limpar tudo"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Nicio aplicaţie"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Man. act."
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Şterg. totală"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Нет приложений"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Диспетчер"
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Очистить все"
+
--- /dev/null
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "සියල්ල මකන්න"
+
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "යෙදුම් නොමැත"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Žiadne aplikácie"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Spr. úloh"
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Vymazať všetko"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Ni aplikacij"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Upr. opr."
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Počisti vse"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Nema aplikacija"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Men. zad."
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Obriši sve"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Inga program"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Uppg.hant"
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Rensa allt"
+
--- /dev/null
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "அனைத்தும் துடை"
+
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "பயன்பாடுகள் ஏதுமில்லை"
+
--- /dev/null
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "అన్ని క్లియర్ చేయి"
+
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "అప్లికేషన్లు లేవు"
+
--- /dev/null
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "ลบทั้งหมด"
+
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "ไม่มีแอพพลิเคชั่น"
+
--- /dev/null
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "I-clear lahat"
+
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Walang mga application"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Uygulama yok"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Grv yntcs"
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Tümünü sil"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Немає програм"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Дис.завд."
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Очистити все"
+
--- /dev/null
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "سب صاف کریں"
+
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "کوئی ایپلیکیشنز نہیں"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Ilovalar yo‘q"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "Vaz. mnjr"
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Barini tozala"
+
--- /dev/null
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "Xóa tất cả"
+
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "Không có ứng dụng"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "无应用程序"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "任务管理器"
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "全部清除"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "無應用程式"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "工作管理員"
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "全部清除"
+
--- /dev/null
+msgid "IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"
+msgstr "無應用程式"
+
+msgid "IDS_TASKMGR_BUTTON_TASK_MGR_ABB"
+msgstr "工作管理員"
+
+msgid "IDS_TASKMGR_BUTTON_CLEAR_ALL"
+msgstr "全部清除"
+
+++ /dev/null
-/*
- * 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;
-}
-
-
+++ /dev/null
-/*
- * 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__ */
+++ /dev/null
-/*
- * 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) {
- printf("[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) {
- _D("pid(%u):(%u)\n", pid, info->pid);
- 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;
-}
-
-
-
-
+++ /dev/null
-/*
- * 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__ */
+++ /dev/null
-/*
- * 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"
-};
-
-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;
- }
- 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;
- }
- 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"), info_ev->app_name);
- if (ad->popup_ask) {
- evas_object_del(ad->popup_ask);
- ad->popup_ask = NULL;
- }
- 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"), info_ev->app_name);
- if (ad->popup_ask) {
- evas_object_del(ad->popup_ask);
- ad->popup_ask = NULL;
- }
- 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;
-
- 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->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");
-
- if (!strncmp(&buf[strlen(buf) - 3], "edj", 3)) {
- icon_ly = _add_layout(obj, buf, "icon");
-
- } else {
- icon_ly = elm_icon_add(obj);
- elm_image_file_set(icon_ly, buf, NULL);
- }
-
- icon = _add_layout(obj, EDJ_NAME, "icon");
- retvm_if(icon == NULL, NULL, "Cannot add layout: icon\n");
-
- rt = evas_object_rectangle_add(evas_object_evas_get(obj));
- retvm_if(rt == NULL, NULL, "Failed to add rectangle\n");
-
- evas_object_color_set(rt, 0, 0, 0, 0);
- evas_object_size_hint_min_set(rt,
- (int)72 * elm_config_scale_get(),
- (int)72 * elm_config_scale_get());
- elm_object_part_content_set(icon, "icon_ly", rt);
-
- elm_object_part_content_set(icon, "icon", icon_ly);
-
- 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);
-
- 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);
-}
-
-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");
-
- if (!strcmp(part, "elm.icon")) {
-
- btn = elm_button_add(obj);
- 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);
- elm_object_focus_set(btn, EINA_FALSE);
-
- 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);
-
- 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);
-
- 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.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.func.text_get = _gl_text_get_his;
- itc_hl.func.content_get = _gl_content_get_his;
-
- itc_separator4.item_style = "dialogue/seperator";
- itc_separator2.item_style = "dialogue/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) {
- _D("kill all applist pid : %d", info->pid);
- if (info != NULL) {
- if (info->pid > 0) {
- kill(info->pid, SIGKILL);
- }
- }
- }
- refresh_app_info(ad);
- _del_progressbar(ad);
-
- return 0;
-}
-
+++ /dev/null
-/*
- * 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__ */
+++ /dev/null
-/*
- * 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, EDJ_NAME, "info");
- 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);
-}
-
-
+++ /dev/null
-/*
- * 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__ */
-
+++ /dev/null
-/*
- * 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 "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;
-}
-
-static void _back_cb(void *data, Evas_Object *obj, void *event_info)
-{
- elm_exit();
-}
-
-int _app_create(struct appdata *ad)
-{
- Evas_Object *ly, *bg, *nv, *bt, *gl;
- Evas_Object *conform = NULL;
- 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(ly);
- 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;
-
- bt = elm_button_add(nv);
- retvm_if(bt == NULL, -1, "Failed to add button\n");
- elm_object_style_set(bt, "naviframe/end_btn/default");
- evas_object_smart_callback_add(bt, "clicked", _back_cb, ad);
-
- elm_naviframe_item_push(nv,
- T_("IDS_TASKMGR_HEADER_TASK_SWITCHER"),
- bt, NULL, ly, NULL);
-
- 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");
- _del_popup_timer(ad);
- _show_progressbar(ad);
- _diable_popup(ad->popup_ask);
- 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;
- }
- printf("[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;
-}
-
-
-
+++ /dev/null
-/*
- * 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__ */
+++ /dev/null
-/*
- * 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);
-}
+++ /dev/null
-/*
- * 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__ */
+++ /dev/null
-/*
- * 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 "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) {
- printf("[Error] Cannot add genlist\n");
- return NULL;
- }
-
- evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND,
- EVAS_HINT_EXPAND);
- evas_object_size_hint_align_set(eo, EVAS_HINT_FILL, EVAS_HINT_FILL);
-
- return eo;
-}
-
-Evas_Object *_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) {
- printf("[Error] Cannot add layout\n");
- return NULL;
- }
-
- r = elm_layout_file_set(eo, file, group);
- if (!r) {
- printf("[Error] Cannot set file layout\n");
- evas_object_del(eo);
- return NULL;
- }
-
- 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) {
- printf("[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) {
- printf("[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) {
- printf("[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);
- evas_object_show(pu);
-
- bt1 = elm_button_add(pu);
- elm_object_text_set(bt1, S_("IDS_COM_SK_OK"));
- elm_object_part_content_set(pu, "button1", bt1);
- evas_object_smart_callback_add(bt1, "clicked", _ok_response_cb, data);
-
- bt2 = elm_button_add(pu);
- elm_object_text_set(bt2, S_("IDS_COM_POP_CANCEL"));
- elm_object_part_content_set(pu, "button2", bt2);
- evas_object_smart_callback_add(bt2, "clicked", _cancel_response_cb, data);
-
-
- 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) {
- printf("[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);
-
- 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;
-}
-
-
+++ /dev/null
-/*
- * 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__ */
+++ /dev/null
-/*
- * 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__ */
--- /dev/null
+/*
+ * 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 <app_manager.h>
+#include <stdbool.h>
+#include <rua.h>
+
+#include "conf.h"
+#include "item.h"
+#include "list.h"
+#include "log.h"
+#include "main.h"
+#include "scroller.h"
+#include "util.h"
+
+#define PRIVATE_DATA_KEY_CLEAR "p_clr"
+#define PRIVATE_DATA_KEY_NEXT_ITEM "p_n_it"
+#define PRIVATE_DATA_KEY_ITEM_INNER_FOR_MOVING "p_in_mv"
+#define PRIVATE_DATA_KEY_ITEM_ANIM_FOR_MOVING "p_an_mv"
+#define PRIVATE_DATA_KEY_ITEM_X "p_it_x"
+#define PRIVATE_DATA_KEY_ITEM_Y "p_it_y"
+#define PRIVATE_DATA_KEY_ITEM_W "p_it_w"
+#define PRIVATE_DATA_KEY_ITEM_H "p_it_h"
+#define PRIVATE_DATA_KEY_DOWN_X "p_dw_x"
+#define PRIVATE_DATA_KEY_DOWN_Y "p_dw_y"
+#define PRIVATE_DATA_KEY_DOWN_TIME "p_dw_t"
+#define PRIVATE_DATA_KEY_SCROLLED "p_sc"
+#define PRIVATE_DATA_KEY_PRESSED "p_pre"
+#define PRIVATE_DATA_KEY_ITEM_MOVED "p_it_mv"
+
+#define PRIVATE_MOVE_THRESHOLD 30
+#define PRIVATE_FLICK_TIME 100
+#define PRIVATE_ITEM_TERMINATE_THRESHOLD 2.0
+#define PRIVATE_ITEM_ALPHA 0.8
+#define PRIVATE_ITEM_ALPHA_MAX 100
+
+
+
+extern list_type_default_s *item_get_info(Evas_Object *item)
+{
+ retv_if(!item, NULL);
+ list_type_default_s *info = NULL;
+
+ info = evas_object_data_get(item, DATA_KEY_ITEM_INFO);
+
+ return info;
+}
+
+
+
+extern void item_clear_set_disable(Evas_Object *scroller)
+{
+ Evas_Object *clear_item = NULL;
+ ret_if(!scroller);
+
+ clear_item = evas_object_data_get(scroller, PRIVATE_DATA_KEY_CLEAR);
+ ret_if(!clear_item);
+ elm_layout_signal_emit(main_get_info()->layout, "no,apps,txt,show", "no,apps,txt");
+ elm_layout_signal_emit(clear_item, "no,apps", "clear");
+
+}
+
+
+
+static void _clear_all_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+ Evas_Object *scroller = data;
+ ret_if(!scroller);
+ _D("");
+ scroller_pop_all_item(scroller, 1);
+}
+
+
+
+extern Evas_Object *item_clear_all_create(Evas_Object *scroller)
+{
+ retv_if(!scroller, NULL);
+
+ Evas_Object *clear_item = NULL;
+
+ clear_item = elm_layout_add(scroller);
+ retv_if(!clear_item, NULL);
+
+ if (!elm_layout_file_set(clear_item, ITEM_LAYOUT, "clear_item")) {
+ _E("Failed to set the layout");
+ evas_object_del(clear_item);
+ return NULL;
+ }
+
+ elm_object_part_text_set(clear_item, "name", _("IDS_TASKMGR_BUTTON_CLEAR_ALL"));
+
+ elm_object_signal_callback_add(clear_item, "click", "clear_item", _clear_all_clicked_cb, scroller);
+ evas_object_data_set(scroller, PRIVATE_DATA_KEY_CLEAR, clear_item);
+
+ evas_object_size_hint_weight_set(clear_item, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_show(clear_item);
+
+ return clear_item;
+
+}
+
+
+
+extern void item_clear_all_destroy(Evas_Object *scroller)
+{
+ ret_if(!scroller);
+
+ Evas_Object *clear_item = NULL;
+
+ clear_item = evas_object_data_del(scroller, PRIVATE_DATA_KEY_CLEAR);
+ if (clear_item) evas_object_del(clear_item);
+}
+
+
+
+static Evas_Object *_content_set_item_inner(Evas_Object *item_outer)
+{
+ Evas_Object *box = NULL;
+ Evas_Object *item_inner = NULL;
+ Evas_Object *next_item = NULL;
+
+ box = main_get_info()->box;
+ retv_if(!box, NULL);
+
+ item_inner = evas_object_data_get(item_outer, PRIVATE_DATA_KEY_ITEM_INNER_FOR_MOVING);
+ retv_if(!item_inner, NULL);
+
+ next_item = evas_object_data_del(item_outer, PRIVATE_DATA_KEY_NEXT_ITEM);
+
+ elm_box_unpack(box, item_outer);
+ elm_object_part_content_set(item_outer, "inner", item_inner);
+
+ if (!next_item) {
+ elm_box_pack_end(box, item_outer);
+ } else {
+ elm_box_pack_before(box, item_outer, next_item);
+ }
+ return item_outer;
+}
+
+
+
+static Evas_Object *_content_unset_item_inner(Evas_Object *item_outer)
+{
+ Evas_Object *box = NULL;
+ Evas_Object *item_inner = NULL;
+ Evas_Object *tmp_item = NULL;
+ Eina_List *list = NULL;
+ const Eina_List *l = NULL;
+ const Eina_List *ln = NULL;
+
+
+ box = main_get_info()->box;
+ retv_if(!box, NULL);
+
+ item_inner = elm_object_part_content_unset(item_outer, "inner");
+ retv_if(!item_inner, NULL);
+ evas_object_data_set(item_outer, PRIVATE_DATA_KEY_ITEM_INNER_FOR_MOVING, item_inner);
+
+ list = elm_box_children_get(box);
+ retv_if(!list, NULL);
+
+ EINA_LIST_FOREACH_SAFE(list, l, ln, tmp_item) {
+ if (item_outer != tmp_item) continue;
+ Evas_Object *next_item = eina_list_data_get(ln);
+ evas_object_data_set(item_outer, PRIVATE_DATA_KEY_NEXT_ITEM, next_item);
+ break;
+ }
+ eina_list_free(list);
+
+ return item_outer;
+}
+
+
+
+#define ANIM_RATE 5
+#define ANIM_RATE_SPARE ANIM_RATE - 1
+static Eina_Bool _anim_move_item(void *data)
+{
+ Evas_Object *scroller = NULL;
+ Evas_Object *item_inner = NULL;
+ Evas_Object *item_outer = NULL;
+
+ int cur_x, cur_y;
+ int end_x, end_y;
+ int end_pos, cur_pos;
+ int vec_pos;
+
+ item_outer = data;
+ goto_if(!data, ERROR);
+
+ scroller = main_get_info()->scroller;
+ goto_if(!scroller, ERROR);
+
+ item_inner = evas_object_data_get(item_outer, PRIVATE_DATA_KEY_ITEM_INNER_FOR_MOVING);
+ goto_if(!item_inner, ERROR);
+
+ evas_object_geometry_get(item_inner, &cur_x, &cur_y, NULL, NULL);
+ evas_object_geometry_get(item_outer, &end_x, &end_y, NULL, NULL);
+
+ end_pos = end_x;
+ vec_pos = (end_x - cur_x)/ANIM_RATE;
+ cur_x += vec_pos;
+ cur_pos = cur_x;
+
+ if ((end_pos - cur_pos) < 0) { // Move : Right -> Left
+ evas_object_move(item_inner, cur_x, cur_y);
+ int alp = 255 - ((cur_pos - end_pos) * PRIVATE_ITEM_ALPHA) - 1;
+ if (alp < PRIVATE_ITEM_ALPHA_MAX) alp = PRIVATE_ITEM_ALPHA_MAX;
+ evas_object_color_set(item_inner, alp, alp, alp, alp);
+
+ if (cur_pos - ANIM_RATE_SPARE <= end_pos) {
+ evas_object_move(item_inner, end_x, end_y);
+ goto_if (! _content_set_item_inner(item_outer), ERROR);
+ /* unfreeze the scroller after setting the content */
+ scroller_unfreeze(scroller);
+ evas_object_data_del(item_outer, PRIVATE_DATA_KEY_ITEM_INNER_FOR_MOVING);
+ evas_object_data_del(item_outer, PRIVATE_DATA_KEY_ITEM_ANIM_FOR_MOVING);
+ return ECORE_CALLBACK_CANCEL;
+ }
+ }
+ else { // Move : Left -> Right
+ evas_object_move(item_inner, cur_x, cur_y);
+ int alp = 255 - ((end_pos - cur_pos) * PRIVATE_ITEM_ALPHA) - 1;
+ if (alp < PRIVATE_ITEM_ALPHA_MAX) alp = PRIVATE_ITEM_ALPHA_MAX;
+ evas_object_color_set(item_inner, alp, alp, alp, alp);
+
+ if (cur_pos + ANIM_RATE_SPARE >= end_pos) {
+ evas_object_move(item_inner, end_x, end_y);
+ goto_if (NULL == _content_set_item_inner(item_outer), ERROR);
+ /* unfreeze the scroller after setting the content */
+ scroller_unfreeze(scroller);
+ evas_object_data_del(item_outer, PRIVATE_DATA_KEY_ITEM_INNER_FOR_MOVING);
+ evas_object_data_del(item_outer, PRIVATE_DATA_KEY_ITEM_ANIM_FOR_MOVING);
+ return ECORE_CALLBACK_CANCEL;
+ }
+ }
+ return ECORE_CALLBACK_RENEW;
+
+ERROR:
+ if (item_outer) {
+ scroller_unfreeze(scroller);
+ evas_object_data_del(item_outer, PRIVATE_DATA_KEY_ITEM_INNER_FOR_MOVING);
+ evas_object_data_del(item_outer, PRIVATE_DATA_KEY_ITEM_ANIM_FOR_MOVING);
+ }
+ return ECORE_CALLBACK_CANCEL;
+}
+
+
+
+#define SLIPPED_LENGTH 40
+static Eina_Bool _anim_slipped_item(void *data)
+{
+ Evas_Object *scroller = NULL;
+ Evas_Object *item_outer = data;
+
+ int item_outer_w, item_outer_h;
+
+ goto_if(!item_outer, ERROR);
+
+ scroller = main_get_info()->scroller;
+ goto_if(!scroller, ERROR);
+
+ item_outer_w = (int)evas_object_data_get(item_outer, PRIVATE_DATA_KEY_ITEM_W);
+ item_outer_h = (int)evas_object_data_get(item_outer, PRIVATE_DATA_KEY_ITEM_H);
+
+ item_outer_h -= SLIPPED_LENGTH;
+ evas_object_size_hint_min_set(item_outer, item_outer_w, item_outer_h);
+ evas_object_data_set(item_outer, PRIVATE_DATA_KEY_ITEM_H, (void *)item_outer_h);
+
+ if (item_outer_h <= 0) {
+ scroller_pop_item(scroller, item_outer, 1);
+
+ if (scroller_count(scroller) < 2) {
+ item_clear_set_disable(scroller);
+ }
+ goto ERROR;
+ }
+
+ return ECORE_CALLBACK_RENEW;
+
+ERROR:
+ if (item_outer) {
+ evas_object_data_del(item_outer, PRIVATE_DATA_KEY_ITEM_W);
+ evas_object_data_del(item_outer, PRIVATE_DATA_KEY_ITEM_H);
+ evas_object_data_del(item_outer, PRIVATE_DATA_KEY_ITEM_ANIM_FOR_MOVING);
+ }
+ return ECORE_CALLBACK_CANCEL;
+}
+
+
+
+#define TERMINATE_LENGTH 60
+static Eina_Bool _anim_terminate_item(void *data)
+{
+ Evas_Object *item_outer = data;
+ Evas_Object *item_inner = NULL;
+
+ int item_x, item_y, item_w, item_h, is_boundary = 0;
+ int outer_x, outer_y;
+
+ goto_if(!item_outer, ERROR);
+
+ item_inner = evas_object_data_get(item_outer, PRIVATE_DATA_KEY_ITEM_INNER_FOR_MOVING);
+ if(!item_inner) {
+ item_inner = elm_object_part_content_unset(item_outer, "inner");
+ retv_if(!item_inner, ECORE_CALLBACK_CANCEL);
+ evas_object_data_set(item_outer, PRIVATE_DATA_KEY_ITEM_INNER_FOR_MOVING, item_inner);
+ }
+
+ evas_object_geometry_get(item_inner, &item_x, &item_y, &item_w, &item_h);
+ evas_object_geometry_get(item_outer, &outer_x, &outer_y, NULL, NULL);
+
+ if (item_x >= outer_x) {
+ item_x += TERMINATE_LENGTH;
+ } else {
+ item_x -= TERMINATE_LENGTH;
+ }
+
+ if (item_x >= main_get_info()->root_w || (item_x + item_w) <= 0) {
+ is_boundary = 1;
+ }
+
+ evas_object_move(item_inner, item_x, item_y);
+
+ if (is_boundary) {
+ Evas_Object *scroller = NULL;
+ Ecore_Animator *anim = NULL;
+
+ scroller = main_get_info()->scroller;
+ goto_if(!scroller, ERROR);
+
+ /* unfreeze the scroller after setting the content */
+ scroller_unfreeze(scroller);
+ evas_object_data_del(item_outer, PRIVATE_DATA_KEY_ITEM_INNER_FOR_MOVING);
+ evas_object_data_del(item_outer, PRIVATE_DATA_KEY_ITEM_ANIM_FOR_MOVING);
+ evas_object_color_set(item_inner, 255, 255, 255, 0);
+ elm_object_part_content_set(item_outer, "inner", item_inner);
+
+ anim = evas_object_data_get(item_outer, PRIVATE_DATA_KEY_ITEM_ANIM_FOR_MOVING);
+ if (anim) {
+ ecore_animator_del(anim);
+ anim = NULL;
+ evas_object_data_del(item_outer, PRIVATE_DATA_KEY_ITEM_ANIM_FOR_MOVING);
+ }
+ anim = ecore_animator_add(_anim_slipped_item, item_outer);
+ goto_if(!anim, ERROR);
+ evas_object_data_set(item_outer, PRIVATE_DATA_KEY_ITEM_ANIM_FOR_MOVING, anim);
+ return ECORE_CALLBACK_CANCEL;
+ }
+ return ECORE_CALLBACK_RENEW;
+
+ERROR:
+ if (item_outer) {
+ evas_object_data_del(item_outer, PRIVATE_DATA_KEY_ITEM_INNER_FOR_MOVING);
+ evas_object_data_del(item_outer, PRIVATE_DATA_KEY_ITEM_ANIM_FOR_MOVING);
+ }
+ return ECORE_CALLBACK_CANCEL;
+}
+
+
+
+static void _down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ Evas_Event_Mouse_Down *ei = event_info;
+ Evas_Object *item_outer = data;
+ Evas_Object *item_inner = NULL;
+
+ int x = ei->output.x;
+ int y = ei->output.y;
+ int down_time = ei->timestamp;
+ int rect_x, rect_y, rect_w, rect_h;
+
+ ret_if(!item_outer);
+
+ _D("Down (%d, %d)", x, y);
+
+ item_inner = elm_object_part_content_get(item_outer, "inner");
+ if (!item_inner) {
+ item_inner = evas_object_data_del(item_outer, PRIVATE_DATA_KEY_ITEM_INNER_FOR_MOVING);
+ ret_if(!item_inner);
+ elm_object_part_content_set(item_outer, "inner", item_inner);
+ }
+
+ evas_object_data_set(item_outer, PRIVATE_DATA_KEY_PRESSED, (void *) 1);
+ evas_object_data_set(item_outer, PRIVATE_DATA_KEY_DOWN_X, (void *) x);
+ evas_object_data_set(item_outer, PRIVATE_DATA_KEY_DOWN_Y, (void *) y);
+ evas_object_data_set(item_outer, PRIVATE_DATA_KEY_DOWN_TIME, (void *)down_time);
+
+ evas_object_geometry_get(item_outer, &rect_x, &rect_y, &rect_w, &rect_h);
+ evas_object_data_set(item_outer, PRIVATE_DATA_KEY_ITEM_X, (void *) rect_x);
+ evas_object_data_set(item_outer, PRIVATE_DATA_KEY_ITEM_Y, (void *) rect_y);
+ evas_object_data_set(item_outer, PRIVATE_DATA_KEY_ITEM_W, (void *) rect_w);
+ evas_object_data_set(item_outer, PRIVATE_DATA_KEY_ITEM_H, (void *) rect_h);
+}
+
+
+
+#define LAUNCHING_LENGTH 60
+#define SCROLLER_THRESHOLD 15
+static void _move_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ Evas_Event_Mouse_Move *ei = event_info;
+ Evas_Object *item_outer = data;
+
+ Evas_Object *layout = NULL;
+ Evas_Object *item_inner = NULL;
+ Evas_Object *scroller = NULL;
+ Ecore_Animator *anim = NULL;
+
+ int down_x, down_y;
+ int outer_x, outer_y;
+ int cur_x, cur_y, vec_x, vec_y;
+ int alpha = 0;
+
+ if (!item_outer) return;
+ if (!evas_object_data_get(item_outer, PRIVATE_DATA_KEY_PRESSED)) return;
+
+ scroller = main_get_info()->scroller;
+ ret_if(!scroller);
+ if (scroller_is_scrolling(scroller)) {
+ evas_object_data_set(item_outer, PRIVATE_DATA_KEY_SCROLLED, (void *)1);
+ evas_object_data_del(item_outer, PRIVATE_DATA_KEY_PRESSED);
+
+ return;
+ }
+
+ layout = main_get_info()->layout;
+ ret_if(!layout);
+
+ anim = evas_object_data_get(item_outer, PRIVATE_DATA_KEY_ITEM_ANIM_FOR_MOVING);
+ if (anim) return;
+
+ down_x = (int) evas_object_data_get(item_outer, PRIVATE_DATA_KEY_DOWN_X);
+ down_y = (int) evas_object_data_get(item_outer, PRIVATE_DATA_KEY_DOWN_Y);
+
+ outer_x = (int)evas_object_data_get(item_outer, PRIVATE_DATA_KEY_ITEM_X);
+ outer_y = (int)evas_object_data_get(item_outer, PRIVATE_DATA_KEY_ITEM_Y);
+
+ cur_x = ei->cur.output.x;
+ cur_y = ei->cur.output.y;
+
+ vec_x = cur_x - down_x;
+ vec_y = cur_y - down_y;
+
+ outer_x += vec_x;
+
+ if (!evas_object_data_get(item_outer, PRIVATE_DATA_KEY_ITEM_MOVED)) {
+ if (abs(vec_y) > abs(vec_x) + SCROLLER_THRESHOLD) {
+ evas_object_data_set(item_outer, PRIVATE_DATA_KEY_SCROLLED, (void *)1);
+ return;
+ }
+ if (abs(vec_x) <= PRIVATE_MOVE_THRESHOLD) return;
+ if (abs(vec_y) >= SCROLLER_THRESHOLD) return;
+ }
+
+ evas_object_data_set(item_outer, PRIVATE_DATA_KEY_ITEM_MOVED, (void *) 1);
+ item_inner = evas_object_data_get(item_outer, PRIVATE_DATA_KEY_ITEM_INNER_FOR_MOVING);
+ if (!item_inner) {
+ /* freeze the scroller before unsetting the content */
+ scroller_freeze(scroller);
+ ret_if(!_content_unset_item_inner(item_outer));
+ }
+
+ alpha = 255 -(abs(vec_x) * PRIVATE_ITEM_ALPHA);
+ if (alpha < PRIVATE_ITEM_ALPHA_MAX) {
+ alpha = PRIVATE_ITEM_ALPHA_MAX;
+ }
+
+ evas_object_color_set(item_inner, alpha, alpha, alpha, alpha);
+ evas_object_move(item_inner, outer_x, outer_y);
+}
+
+
+
+static void _item_terminate_anim(Evas_Object *item_outer)
+{
+ Ecore_Animator *anim = NULL;
+
+ anim = evas_object_data_get(item_outer, PRIVATE_DATA_KEY_ITEM_ANIM_FOR_MOVING);
+ if (anim) {
+ ecore_animator_del(anim);
+ anim = NULL;
+ evas_object_data_del(item_outer, PRIVATE_DATA_KEY_ITEM_ANIM_FOR_MOVING);
+ }
+
+ anim = ecore_animator_add(_anim_terminate_item, item_outer);
+ ret_if(!anim);
+ evas_object_data_set(item_outer, PRIVATE_DATA_KEY_ITEM_ANIM_FOR_MOVING, anim);
+}
+
+
+
+static void _up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ Evas_Event_Mouse_Up *ei = event_info;
+ Evas_Object *item_outer = data;
+
+ Evas_Object *scroller = NULL;
+
+ int x = ei->output.x;
+ int y = ei->output.y;
+ int up_time = ei->timestamp;
+ int down_time = 0;
+ int init_pos, item_pos, item_size, tm_threshold;
+
+ _D("Up (%d, %d)", x, y);
+
+ ret_if (!item_outer);
+
+ scroller = main_get_info()->scroller;
+ ret_if(!scroller);
+
+ evas_object_data_del(item_outer, PRIVATE_DATA_KEY_PRESSED);
+ evas_object_data_del(item_outer, PRIVATE_DATA_KEY_DOWN_Y);
+ evas_object_data_del(item_outer, PRIVATE_DATA_KEY_DOWN_X);
+ evas_object_data_del(item_outer, PRIVATE_DATA_KEY_ITEM_MOVED);
+ evas_object_data_del(item_outer, PRIVATE_DATA_KEY_SCROLLED);
+
+ down_time = (int) evas_object_data_del(item_outer, PRIVATE_DATA_KEY_DOWN_TIME);
+
+ /* This means the inner item has not been moved */
+ Evas_Object *item_inner = evas_object_data_get(item_outer, PRIVATE_DATA_KEY_ITEM_INNER_FOR_MOVING);
+ if (!item_inner) return;
+
+ init_pos = (int) evas_object_data_del(item_outer, PRIVATE_DATA_KEY_ITEM_X);
+ evas_object_data_del(item_outer, PRIVATE_DATA_KEY_ITEM_Y);
+ evas_object_geometry_get(item_inner, &item_pos, NULL, &item_size, NULL);
+ tm_threshold = item_size * PRIVATE_ITEM_TERMINATE_THRESHOLD;
+
+ if (abs(item_pos - init_pos) > tm_threshold || (up_time - down_time < PRIVATE_FLICK_TIME && abs(item_pos - init_pos) > 0)) {
+ _item_terminate_anim(item_outer);
+
+ } else if (item_pos != init_pos) {
+ Ecore_Animator *anim = NULL;
+ anim = evas_object_data_get(item_outer, PRIVATE_DATA_KEY_ITEM_ANIM_FOR_MOVING);
+ if (anim) {
+ ecore_animator_del(anim);
+ anim = NULL;
+ evas_object_data_del(item_outer, PRIVATE_DATA_KEY_ITEM_ANIM_FOR_MOVING);
+ }
+
+ anim = ecore_animator_add(_anim_move_item, item_outer);
+ ret_if(NULL == anim);
+ evas_object_data_set(item_outer, PRIVATE_DATA_KEY_ITEM_ANIM_FOR_MOVING, anim);
+ }
+}
+
+
+
+static void _clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ _D("Clicked");
+
+ ret_if(!data);
+ Evas_Object *item = data;
+ Evas_Object *item_inner = NULL;
+
+ const char *appid = NULL;
+
+ list_type_default_s *info = NULL;
+
+ item_inner = elm_object_part_content_get(item, "inner");
+ if (!item_inner) return;
+
+ info = item_get_info(item);
+ ret_if(!info);
+
+ appid = info->appid;
+ ret_if(!appid);
+
+ util_launch_app(appid);
+ //layout_hide_with_timer();
+}
+
+
+
+extern Evas_Object *item_create(Evas_Object *scroller, list_type_default_s *info)
+{
+ retv_if(NULL == scroller, NULL);
+ retv_if(NULL == info, NULL);
+
+ Evas_Object *focus = NULL;
+ Evas_Object *icon = NULL;
+ Evas_Object *item = NULL;
+ Evas_Object *item_inner = NULL;
+
+ item = elm_layout_add(scroller);
+ retv_if(NULL == item, NULL);
+ elm_layout_file_set(item, ITEM_LAYOUT, "item");
+ evas_object_size_hint_weight_set(item, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_show(item);
+
+ item_inner = elm_layout_add(scroller);
+ goto_if(NULL == item_inner, ERROR);
+ elm_layout_file_set(item_inner, ITEM_LAYOUT, "item_inner");
+ evas_object_size_hint_weight_set(item_inner, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_show(item_inner);
+ elm_object_part_content_set(item, "inner", item_inner);
+ evas_object_event_callback_add(item_inner, EVAS_CALLBACK_MOUSE_DOWN, _down_cb, item);
+ evas_object_event_callback_add(item_inner, EVAS_CALLBACK_MOUSE_MOVE, _move_cb, item);
+ evas_object_event_callback_add(item_inner, EVAS_CALLBACK_MOUSE_UP, _up_cb, item);
+
+ icon = evas_object_image_add(main_get_info()->e);
+ goto_if(NULL == icon, ERROR);
+ evas_object_image_file_set(icon, info->icon, NULL);
+ evas_object_image_filled_set(icon, EINA_TRUE);
+ evas_object_show(icon);
+ elm_object_part_content_set(item_inner, "icon", icon);
+ elm_object_part_text_set(item_inner, "name", info->name);
+
+ focus = elm_button_add(scroller);
+ goto_if(NULL == focus, ERROR);
+ elm_object_style_set(focus, "focus");
+ elm_object_part_content_set(item, "focus", focus);
+ evas_object_smart_callback_add(focus, "clicked", _clicked_cb, item);
+
+ evas_object_data_set(item, DATA_KEY_ITEM_INFO, info);
+
+ return item;
+
+ERROR:
+ item_destroy(item);
+ return NULL;
+}
+
+
+
+extern void item_destroy(Evas_Object *item)
+{
+ ret_if(!item);
+
+ Evas_Object *focus = NULL;
+ Evas_Object *icon = NULL;
+ Evas_Object *item_inner = NULL;
+
+ focus = elm_object_part_content_unset(item, "focus");
+ if (focus) {
+ evas_object_del(focus);
+ }
+
+ item_inner = elm_object_part_content_unset(item, "inner");
+ if (!item_inner) {
+ _E("cannot get the object");
+ evas_object_del(item);
+ return;
+ }
+
+ icon = elm_object_part_content_unset(item_inner, "icon");
+ if (icon) {
+ evas_object_del(icon);
+ } else {
+ _E("cannot get the object");
+ }
+
+ evas_object_data_del(item, DATA_KEY_ITEM_INFO);
+
+ evas_object_del(item_inner);
+ evas_object_del(item);
+}
+
+
+
+extern void item_terminate(Evas_Object *item)
+{
+ char *appid = NULL;
+ int ret;
+ bool running = false;
+
+ ret_if(!item);
+ ret_if(!item_get_info(item));
+ appid = item_get_info(item)->appid;
+ ret_if(!appid);
+
+ ret = app_manager_is_running(appid, &running);
+ ret_if(APP_MANAGER_ERROR_NONE != ret);
+
+ _D("Terminate: %s(%d)", appid, running);
+ if (running) {
+ util_kill_app(appid);
+ }
+
+ if (0 != rua_delete_history_with_pkgname(appid)) {
+ _E("Cannot delete history for package(%s)", appid);
+ }
+}
+
+
+
+//End of a file
--- /dev/null
+/*
+ * 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 <pkgmgr-info.h>
+#include <rua.h>
+
+#include "list.h"
+#include "log.h"
+#include "main.h"
+#include "util.h"
+
+typedef struct pkginfo {
+ char *appid;
+ bool taskmanage;
+ char *pkgid;
+ char *icon;
+ char *name;
+ bool nodisplay;
+} private_pkginfo_s;
+
+typedef struct {
+ char *appid;
+ int pid;
+} private_pid_s;
+
+static struct {
+ Eina_Hash *pkginfo_table;
+} private_table_s = {
+ .pkginfo_table = NULL,
+};
+
+
+
+static void _pkglist_unretrieve_item(list_type_default_s *default_info)
+{
+ if (!default_info) {
+ return;
+ }
+
+ if (default_info->name) {
+ free(default_info->name);
+ default_info->name = NULL;
+ }
+ if (default_info->icon) {
+ free(default_info->icon);
+ default_info->icon = NULL;
+ }
+ if (default_info->pkgid) {
+ free(default_info->pkgid);
+ default_info->pkgid = NULL;
+ }
+ if (default_info->arg) {
+ free(default_info->arg);
+ default_info->arg = NULL;
+ }
+ if (default_info->appid) {
+ free(default_info->appid);
+ default_info->appid = NULL;
+ }
+ if (default_info) {
+ free(default_info);
+ default_info = NULL;
+ }
+}
+
+
+
+static list_type_default_s *_pkglist_retrieve_item(const char *appid, const char *arg, time_t launch_time)
+{
+ retv_if(!appid, NULL);
+
+ private_pkginfo_s *pkg_info = NULL;
+ list_type_default_s *default_info = NULL;
+
+ pkg_info = eina_hash_find(private_table_s.pkginfo_table, appid);
+ if (!pkg_info) {
+ _D("app(%s) is not taskmanage app", appid);
+ return NULL;
+ }
+
+ if (!pkg_info->taskmanage) {
+ _D("app(%s) is not taskmanage app", appid);
+ return NULL;
+ }
+
+ default_info = calloc(1, sizeof(*default_info));
+ retv_if(!default_info, NULL);
+
+ default_info->taskmanage = pkg_info->taskmanage;
+ default_info->launch_time = launch_time;
+ default_info->nodisplay = pkg_info->nodisplay;
+
+ default_info->appid = strdup(appid);
+ goto_if(!default_info->appid, ERROR);
+
+ if (arg) {
+ default_info->arg = strdup(arg);
+ goto_if(!default_info->arg, ERROR);
+ }
+
+ if (pkg_info->pkgid) {
+ default_info->pkgid = strdup(pkg_info->pkgid);
+ goto_if(!default_info->pkgid, ERROR);
+ } else {
+ _E("Fail to get pkgid from pkg info table");
+ goto ERROR;
+ }
+
+ if (pkg_info->icon) {
+ default_info->icon = strdup(pkg_info->icon);
+ goto_if(!default_info->icon, ERROR);
+ } else {
+ _E("Fail to get icon from pkg info table");
+ goto ERROR;
+ }
+
+ if (pkg_info->name) {
+ default_info->name = strdup(pkg_info->name);
+ goto_if(!default_info->name, ERROR);
+ } else {
+ _E("Fail to get name from pkg info table");
+ goto ERROR;
+ }
+
+ _D("list add id : [%s], icon : [%s], name : [%s]", pkg_info->pkgid, pkg_info->icon, pkg_info->name);
+
+ return default_info;
+
+ERROR:
+
+ _pkglist_unretrieve_item(default_info);
+ return NULL;
+}
+
+
+
+int _get_pkginfo_cb(pkgmgrinfo_appinfo_h app_handle, void *user_data)
+{
+ char *appid = NULL;
+ char *pkgid = NULL;
+ char *name = NULL;
+ char *icon = NULL;
+ private_pkginfo_s *pkg_info = NULL;
+
+ pkg_info = calloc(1, sizeof(*pkg_info));
+ retv_if(!pkg_info, PMINFO_R_ERROR);
+
+ memset(pkg_info, 0, sizeof(private_pkginfo_s));
+
+ pkgmgrinfo_appinfo_get_appid(app_handle, &appid);
+ goto_if(!appid, ERROR);
+
+ pkg_info->appid = strdup(appid);
+ goto_if(!pkg_info->appid, ERROR);
+
+ if (PMINFO_R_OK != pkgmgrinfo_appinfo_is_taskmanage(app_handle, &pkg_info->taskmanage)) {
+ goto ERROR;
+ }
+
+ if (PMINFO_R_OK != pkgmgrinfo_appinfo_get_pkgid(app_handle, &pkgid)) {
+ goto ERROR;
+ }
+ pkg_info->pkgid = strdup(pkgid);
+ goto_if(!pkg_info->pkgid, ERROR);
+
+ if (PMINFO_R_OK != pkgmgrinfo_appinfo_get_icon(app_handle, &icon)) {
+ goto ERROR;
+ }
+ if (icon) {
+ pkg_info->icon= strdup(icon);
+ goto_if(!pkg_info->icon, ERROR);
+ }
+
+ if (PMINFO_R_OK != pkgmgrinfo_appinfo_get_label(app_handle, &name)) {
+ goto ERROR;
+ }
+ if (name) {
+ pkg_info->name= strdup(name);
+ goto_if(!pkg_info->name, ERROR);
+ }
+
+ if (PMINFO_R_OK != pkgmgrinfo_appinfo_is_nodisplay(app_handle, &pkg_info->nodisplay)) {
+ goto ERROR;
+ }
+
+ eina_hash_add(private_table_s.pkginfo_table, pkg_info->appid, pkg_info);
+
+ return PMINFO_R_OK;
+
+ERROR:
+ if (pkg_info->name) free(pkg_info->name);
+ if (pkg_info->icon) free(pkg_info->icon);
+ if (pkg_info->pkgid) free(pkg_info->pkgid);
+ if (pkg_info->appid) free(pkg_info->appid);
+ free(pkg_info);
+
+ return PMINFO_R_ERROR;
+}
+
+
+
+static task_mgr_error_e _create_pkginfo_table(void)
+{
+ _D("");
+ pkgmgrinfo_appinfo_filter_h handle;
+
+ int ret = 0;
+
+ private_table_s.pkginfo_table = eina_hash_string_superfast_new(NULL);
+
+ ret = pkgmgrinfo_appinfo_filter_create(&handle);
+ if (PMINFO_R_OK != ret) {
+ return TASK_MGR_ERROR_FAIL;
+ }
+
+ ret = pkgmgrinfo_appinfo_filter_add_bool(handle, PMINFO_APPINFO_PROP_APP_TASKMANAGE, 1);
+ if (PMINFO_R_OK != ret) {
+ pkgmgrinfo_appinfo_filter_destroy(handle);
+ return TASK_MGR_ERROR_FAIL;
+ }
+
+ ret = pkgmgrinfo_appinfo_filter_foreach_appinfo(handle, _get_pkginfo_cb, NULL);
+ if (ret != PMINFO_R_OK) {
+ pkgmgrinfo_appinfo_filter_destroy(handle);
+ return TASK_MGR_ERROR_FAIL;
+ }
+
+ pkgmgrinfo_appinfo_filter_destroy(handle);
+
+ return TASK_MGR_ERROR_NONE;
+}
+
+
+
+static Eina_Bool _remove_pkginfo(const Eina_Hash *hash, const void *key, void *data, void *fdata)
+{
+ retv_if(!data, EINA_FALSE);
+
+ private_pkginfo_s *pkg_info = data;
+
+ if (pkg_info->name) free(pkg_info->name);
+ if (pkg_info->icon) free(pkg_info->icon);
+ if (pkg_info->pkgid) free(pkg_info->pkgid);
+ if (pkg_info->appid) free(pkg_info->appid);
+
+ return EINA_TRUE;
+}
+
+
+
+static void _destroy_pkginfo_table(void)
+{
+ _D("");
+
+ eina_hash_foreach(private_table_s.pkginfo_table, _remove_pkginfo, NULL);
+ eina_hash_free(private_table_s.pkginfo_table);
+ private_table_s.pkginfo_table = 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 (!tmp1) return -1;
+ if (!tmp2) return 1;
+
+ if (!tmp1->appid) return 1;
+ else if (!tmp2->appid) return -1;
+
+ return tmp1->launch_time >= tmp2->launch_time ? -1 : 1;
+}
+
+
+
+extern task_mgr_error_e list_sort(Eina_List *list, int (*_sort_cb)(const void *d1, const void *d2))
+{
+ retv_if(!list, TASK_MGR_ERROR_INVALID_PARAMETER);
+
+ list = eina_list_sort(list, eina_list_count(list), _sort_cb);
+ retv_if(!list, TASK_MGR_ERROR_FAIL);
+
+ return TASK_MGR_ERROR_NONE;
+}
+
+
+
+extern task_mgr_error_e list_create(Eina_List **pkg_list)
+{
+ _D("");
+
+ rua_init();
+ char **table = NULL;
+ list_type_default_s *default_info = NULL;
+
+ int nrows = 0, ncols = 0;
+ int row = 0;
+
+ retv_if (TASK_MGR_ERROR_NONE != _create_pkginfo_table(), TASK_MGR_ERROR_FAIL);
+
+ if (-1 == rua_history_load_db(&table, &nrows, &ncols)) {
+ if (table) {
+ rua_history_unload_db(&table);
+ }
+ return TASK_MGR_ERROR_FAIL;
+ }
+
+ _D("Apps in rua history is %d", nrows);
+
+ for (; row < nrows; row++) {
+ struct rua_rec rec_result = {0, };
+ rua_history_get_rec(&rec_result, table, nrows, ncols, row);
+ default_info = _pkglist_retrieve_item(rec_result.pkg_name, rec_result.arg, rec_result.launch_time);
+ if (default_info) {
+ *pkg_list = eina_list_append(*pkg_list, default_info);
+ }
+ }
+
+ if (*pkg_list && TASK_MGR_ERROR_NONE != list_sort(*pkg_list, _launch_time_sort_cb)) {
+ _E("Cannot sort pkg_list");
+ }
+
+ if (!eina_list_count(*pkg_list)) {
+ _D("list is empty.");
+ _pkglist_unretrieve_item(default_info);
+ return TASK_MGR_ERROR_NO_DATA;
+
+ }
+
+ return TASK_MGR_ERROR_NONE;
+}
+
+
+
+extern void list_destroy(Eina_List *pkg_list)
+{
+ _D("");
+ list_type_default_s *default_info = NULL;
+
+ _destroy_pkginfo_table();
+
+ if (!pkg_list) {
+ _D("pkg_list is null");
+ return;
+ }
+
+ EINA_LIST_FREE(pkg_list, default_info) {
+ if (!default_info) {
+ continue;
+ }
+ _pkglist_unretrieve_item(default_info);
+ }
+
+ pkg_list = NULL;
+ rua_fini();
+}
--- /dev/null
+/*
+ * 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 <app.h>
+#include <appcore-efl.h>
+#include <Elementary.h>
+#include <aul.h>
+#include <malloc.h>
+
+#include "conf.h"
+#include "item.h"
+#include "list.h"
+#include "log.h"
+#include "main.h"
+#include "scroller.h"
+#include "util.h"
+
+#define KEY_BACK "XF86Back"
+#define PRIVATE_DATA_KEY_LIST_TIMER "pri_list_tm"
+
+static main_s main_info = {
+ .e = NULL,
+ .win = NULL,
+ .layout = NULL,
+ .scroller = NULL,
+ .box = NULL,
+ .pkg_list = NULL,
+
+ .root_w = 0,
+ .root_h = 0,
+};
+//main_h main_info_h = &main_info;
+
+
+
+extern main_h main_get_info(void)
+{
+ return &main_info;
+}
+
+
+
+static Eina_Bool _back_key_pressed(void *data, Evas_Object *obj, Evas_Object *src, Evas_Callback_Type type, void *event_info)
+{
+ _D("");
+ Evas_Event_Key_Down *ev = event_info;
+
+ if (type == EVAS_CALLBACK_KEY_DOWN && strncmp(KEY_BACK, ev->key, strlen(KEY_BACK)) == 0) {
+ _D("KEY PRESSED: %s", ev->key);
+
+ elm_exit();
+ return EINA_TRUE;
+ } else {
+ return EINA_FALSE;
+ }
+}
+
+
+
+static task_mgr_error_e _create_layout(Evas_Object *parent)
+{
+ _D("");
+ Evas_Object *layout = NULL;
+ Eina_Bool ret = EINA_FALSE;
+
+ // create bg
+ main_info.bg = elm_bg_add(main_info.win);
+ if (!main_info.bg) {
+ _E("cannot create bg");
+ evas_object_del(main_info.win);
+ }
+
+ elm_win_resize_object_add(main_info.win, main_info.bg);
+ evas_object_color_set(main_info.bg, 0, 0, 0, BG_COLOR);
+ evas_object_show(main_info.bg);
+
+ // create layout
+ layout = elm_layout_add(parent);
+ goto_if (!layout, ERROR);
+
+ ret = elm_layout_file_set(layout, LAYOUT, "layout");
+ goto_if(EINA_FALSE == ret, ERROR);
+
+ evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_move(layout, 0, 0);
+ evas_object_resize(layout, main_info.root_w, main_info.root_h);
+ evas_object_show(layout);
+
+ main_info.layout = layout;
+
+ // create scroller
+ main_info.scroller = scroller_create(layout);
+ goto_if(!main_info.scroller, ERROR);
+
+ return TASK_MGR_ERROR_NONE;
+
+ERROR:
+ if (layout) evas_object_del(layout);
+ if (main_info.bg) evas_object_del(main_info.bg);
+ evas_object_del(main_info.win);
+ return TASK_MGR_ERROR_FAIL;
+}
+
+
+
+static void _destroy_layout(void)
+{
+ if (main_info.layout) {
+ evas_object_del(main_info.layout);
+ main_info.layout = NULL;
+ }
+}
+
+
+
+static Eina_Bool _list_timer_cb(void *data)
+{
+ _D("");
+ Evas_Object *clear_item = NULL;
+ task_mgr_error_e ret = TASK_MGR_ERROR_NONE;
+
+ if (main_info.pkg_list) {
+ _D("Already loaded");
+ goto END;
+ }
+
+ clear_item = item_clear_all_create(main_info.scroller);
+ if (!clear_item) {
+ _E("Fail to create clear all button");
+ return ECORE_CALLBACK_CANCEL;
+ }
+ scroller_push_item(main_info.scroller, clear_item);
+
+ ret = list_create(&main_info.pkg_list);
+ elm_object_part_text_set(main_info.layout, "no,apps,txt", _("IDS_TASKMGR_NPBODY_NO_APPLICATIONS_ABB2"));
+ if (TASK_MGR_ERROR_NO_DATA == ret) {
+ _D("There is no application");
+ item_clear_set_disable(main_info.scroller);
+ } else if (TASK_MGR_ERROR_NONE != ret) {
+ _E("Fail to create pkglist");
+ goto END;
+ }
+
+ goto_if(TASK_MGR_ERROR_NONE != scroller_push_all_item(main_info.scroller, main_info.pkg_list), END);
+
+END:
+ evas_object_data_del(main_info.win, PRIVATE_DATA_KEY_LIST_TIMER);
+ return ECORE_CALLBACK_CANCEL;
+}
+
+
+
+static bool _create_cb(void *data)
+{
+ _D("");
+
+ Ecore_Timer *timer = NULL;
+
+ main_info.win = elm_win_add(NULL, "Task-mgr", ELM_WIN_BASIC);
+ retv_if(!main_info.win, false);
+
+ //elm_app_base_scale_set(2.2);
+ elm_win_screen_size_get(main_info.win, NULL, NULL, &main_info.root_w, &main_info.root_h);
+ _D("screen size is (%d, %d)", main_info.root_w, main_info.root_h);
+
+ elm_object_event_callback_add(main_info.win, _back_key_pressed, NULL);
+
+ elm_win_indicator_mode_set(main_info.win, ELM_WIN_INDICATOR_SHOW);
+ elm_win_indicator_opacity_set(main_info.win, ELM_WIN_INDICATOR_TRANSPARENT);
+
+ elm_win_borderless_set(main_info.win, EINA_TRUE);
+ elm_win_alpha_set(main_info.win, EINA_TRUE);
+ evas_object_show(main_info.win);
+
+ main_info.e = evas_object_evas_get(main_info.win);
+
+ if (_create_layout(main_info.win) != TASK_MGR_ERROR_NONE) {
+ _E("Failed to create a layout");
+ return false;
+ }
+
+ //create the list
+ timer = evas_object_data_get(main_info.win, PRIVATE_DATA_KEY_LIST_TIMER);
+ if (timer) {
+ ecore_timer_del(timer);
+ }
+
+ timer = ecore_timer_add(0.001f, _list_timer_cb, NULL);
+ if (timer) {
+ evas_object_data_set(main_info.win, PRIVATE_DATA_KEY_LIST_TIMER, timer);
+ } else {
+ _E("Cannot add a create list timer");
+ }
+
+ return true;
+}
+
+
+
+static void _terminate_cb(void *data)
+{
+ _D("");
+
+ /* list destroy */
+ list_destroy(main_info.pkg_list);
+ evas_object_data_del(main_info.win, PRIVATE_DATA_KEY_LIST_TIMER);
+
+ elm_cache_all_flush();
+ malloc_trim(0);
+ appcore_flush_memory();
+
+ scroller_destroy(main_info.layout);
+ _destroy_layout();
+
+ /**
+ * Even though the window is deleted automatically,
+ * It is good habit to delete window explicitly by your hands.
+ */
+
+ if (main_info.win) {
+ evas_object_del(main_info.win);
+ main_info.win = NULL;
+ }
+}
+
+
+
+static void _app_control(app_control_h service, void *data)
+{
+ _D("");
+
+ return;
+}
+
+
+
+static void _pause_cb(void *data)
+{
+ _D("");
+
+ elm_exit();
+ return;
+}
+
+
+
+static void _language_changed(app_event_info_h event_info, void *data)
+{
+ _D("");
+}
+
+
+
+int main(int argc, char **argv)
+{
+ int ret;
+ ui_app_lifecycle_callback_s lifecycle_callback = {0, };
+ app_event_handler_h event_handlers[5] = {NULL, };
+
+ lifecycle_callback.create = _create_cb;
+ lifecycle_callback.terminate = _terminate_cb;
+ lifecycle_callback.pause = _pause_cb;
+ lifecycle_callback.resume = NULL;
+ lifecycle_callback.app_control = _app_control;
+
+ ui_app_add_event_handler(&event_handlers[APP_EVENT_LOW_BATTERY], APP_EVENT_LOW_BATTERY, NULL, NULL);
+ ui_app_add_event_handler(&event_handlers[APP_EVENT_LOW_MEMORY], APP_EVENT_LOW_MEMORY, NULL, NULL);
+ ui_app_add_event_handler(&event_handlers[APP_EVENT_DEVICE_ORIENTATION_CHANGED], APP_EVENT_DEVICE_ORIENTATION_CHANGED, NULL, NULL);
+ ui_app_add_event_handler(&event_handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, _language_changed, NULL);
+ ui_app_add_event_handler(&event_handlers[APP_EVENT_REGION_FORMAT_CHANGED], APP_EVENT_REGION_FORMAT_CHANGED, NULL, NULL);
+
+ ret = ui_app_main(argc, argv, &lifecycle_callback, &main_info);
+
+ return ret;
+}
+
+/* End of a file */
--- /dev/null
+/*
+ * 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 "conf.h"
+ #include "item.h"
+ #include "list.h"
+ #include "log.h"
+ #include "main.h"
+ #include "scroller.h"
+ #include "util.h"
+
+#define PRIVATE_DATA_KEY_DRAG "pri_drag"
+#define PRIVATE_DATA_KEY_MOUSE_DOWN "pri_m_dw"
+#define PRIVATE_DATA_KEY_POP_ALL_TIMER "pri_pop_tm"
+#define PRIVATE_DATA_KEY_REVERSE_LIST "pri_re_li"
+#define PRIVATE_DATA_KEY_TERMINATE "pri_tm"
+
+
+
+extern task_mgr_error_e scroller_push_item(Evas_Object *scroller, Evas_Object *item)
+{
+ _D("");
+ retv_if(!scroller, TASK_MGR_ERROR_INVALID_PARAMETER);
+ retv_if(!item, TASK_MGR_ERROR_INVALID_PARAMETER);
+
+ Evas_Object *box_layout = NULL;
+ Evas_Object *box = NULL;
+
+ box_layout = elm_object_content_get(scroller);
+ retv_if(!box_layout, TASK_MGR_ERROR_FAIL);
+
+ box = elm_object_part_content_get(box_layout, BOX_GROUP_NAME);
+ retv_if(!box, TASK_MGR_ERROR_FAIL);
+
+ elm_box_pack_end(box, item);
+
+ return TASK_MGR_ERROR_NONE;
+}
+
+
+
+extern void scroller_pop_item(Evas_Object *scroller, Evas_Object *item, int terminate)
+{
+ ret_if(!scroller);
+ ret_if(!item);
+
+ Evas_Object *box_layout = NULL;
+ Evas_Object *box = NULL;
+ Evas_Object *tmp_item = NULL;
+
+ Eina_List *list = NULL;
+ const Eina_List *l = NULL;
+ const Eina_List *ln = NULL;
+
+ box_layout = elm_object_content_get(scroller);
+ ret_if(!box_layout);
+
+ box = elm_object_part_content_get(box_layout, BOX_GROUP_NAME);
+ ret_if(!box);
+
+ list = elm_box_children_get(box);
+ ret_if(!list);
+
+ EINA_LIST_FOREACH_SAFE(list, l, ln, tmp_item) {
+ if (item != tmp_item) continue;
+ if (terminate) item_terminate(item);
+
+ elm_box_unpack(box, item);
+ item_destroy(item);
+ break;
+ }
+ eina_list_free(list);
+}
+
+
+
+extern task_mgr_error_e scroller_push_all_item(Evas_Object *scroller, Eina_List *list)
+{
+ const Eina_List *l = NULL;
+ const Eina_List *ln = NULL;
+ list_type_default_s *info = NULL;
+ Evas_Object *item = NULL;
+
+ if (!list) {
+ _D("No app in the history list");
+ return TASK_MGR_ERROR_NONE;
+ }
+
+ EINA_LIST_FOREACH_SAFE(list, l, ln, info) {
+ if (!info) continue;
+ item = item_create(scroller, info);
+ continue_if(!item);
+ scroller_push_item(scroller, item);
+ }
+
+ return TASK_MGR_ERROR_NONE;
+}
+
+
+
+static Eina_Bool _pop_all_item_cb(void *data)
+{
+ Evas_Object *scroller = data;
+ Evas_Object *item = NULL;
+ Eina_List *list = NULL;
+ static int i = 0;
+ int count = 0;
+ int terminate = (int) evas_object_data_get(scroller, PRIVATE_DATA_KEY_TERMINATE);
+
+ list = evas_object_data_get(scroller, PRIVATE_DATA_KEY_REVERSE_LIST);
+ goto_if(!list, END);
+
+ count = eina_list_count(list);
+ _D("remove list count(include clear button) : %d", count);
+ if (i >= count-1) goto END;
+
+ item = eina_list_nth(list, i);
+ i++;
+ goto_if(!item, END);
+
+ scroller_pop_item(scroller, item, terminate);
+ return ECORE_CALLBACK_RENEW;
+
+END:
+ i = 0;
+ eina_list_free(list);
+ evas_object_data_del(scroller, PRIVATE_DATA_KEY_REVERSE_LIST);
+ evas_object_data_del(scroller, PRIVATE_DATA_KEY_TERMINATE);
+ evas_object_data_del(scroller, PRIVATE_DATA_KEY_POP_ALL_TIMER);
+ item_clear_set_disable(scroller);
+
+ return ECORE_CALLBACK_CANCEL;
+}
+
+
+
+extern void scroller_pop_all_item(Evas_Object *scroller, int terminate)
+{
+ Evas_Object *box_layout = NULL;
+ Evas_Object *box = NULL;
+ Eina_List *list = NULL;
+ Eina_List *reverse_list = NULL;
+ Ecore_Timer *timer = NULL;
+
+ ret_if(!scroller);
+
+ timer = evas_object_data_del(scroller, PRIVATE_DATA_KEY_POP_ALL_TIMER);
+ if (timer) {
+ _D("There is already a timer for popping all items.");
+ ecore_timer_del(timer);
+ }
+
+ /* An user tap the end all button, all items have to be terminated even if paused. */
+ if (!evas_object_data_get(scroller, PRIVATE_DATA_KEY_TERMINATE)) {
+ evas_object_data_set(scroller, PRIVATE_DATA_KEY_TERMINATE, (void *) terminate);
+ }
+
+ box_layout = elm_object_content_get(scroller);
+ ret_if(!box_layout);
+
+ box = elm_object_part_content_get(box_layout, BOX_GROUP_NAME);
+ ret_if(!box);
+
+ list = elm_box_children_get(box);
+ if (!list) return;
+
+ /* This reverse list should be freed in the timer */
+ reverse_list = eina_list_reverse_clone(list);
+ eina_list_free(list);
+ ret_if(!reverse_list);
+ evas_object_data_set(scroller, PRIVATE_DATA_KEY_REVERSE_LIST, reverse_list);
+
+ timer = ecore_timer_add(0.01f, _pop_all_item_cb, scroller);
+ if (!timer) {
+ _E("Cannot add a timer");
+ evas_object_data_del(scroller, PRIVATE_DATA_KEY_REVERSE_LIST);
+ evas_object_data_del(scroller, PRIVATE_DATA_KEY_TERMINATE);
+ eina_list_free(reverse_list);
+ return;
+ }
+
+ evas_object_data_set(scroller, PRIVATE_DATA_KEY_POP_ALL_TIMER, timer);
+}
+
+
+
+extern int scroller_count(Evas_Object *scroller)
+{
+ Evas_Object *box_layout = NULL;
+ Evas_Object *box = NULL;
+ Eina_List *list = NULL;
+
+ retv_if(!scroller, 0);
+
+ box_layout = elm_object_content_get(scroller);
+ retv_if(!box_layout, 0);
+
+ box = elm_object_part_content_get(box_layout, BOX_GROUP_NAME);
+ retv_if(!box, 0);
+
+ list = elm_box_children_get(box);
+ if (!list) {
+ _D("list is null");
+ return 0;
+ }
+
+ return eina_list_count(list);
+}
+
+
+
+extern Eina_Bool scroller_is_scrolling(Evas_Object *scroller)
+{
+ return evas_object_data_get(scroller, DATA_KEY_IS_SCROLLING)? EINA_TRUE:EINA_FALSE;
+}
+
+
+
+extern void scroller_freeze(Evas_Object *scroller)
+{
+ Evas_Object *box_layout = NULL;
+ Evas_Object *box = NULL;
+
+ ret_if(!scroller);
+
+ box_layout = elm_object_content_get(scroller);
+ ret_if(!box_layout);
+
+ box = elm_object_part_content_get(box_layout, BOX_GROUP_NAME);
+ ret_if(!box);
+
+ elm_object_scroll_freeze_push(box);
+}
+
+
+
+extern void scroller_unfreeze(Evas_Object *scroller)
+{
+ Evas_Object *box_layout = NULL;
+ Evas_Object *box = NULL;
+
+ ret_if(!scroller);
+
+ box_layout = elm_object_content_get(scroller);
+ ret_if(!box_layout);
+
+ box = elm_object_part_content_get(box_layout, BOX_GROUP_NAME);
+ ret_if(!box);
+
+ while (elm_object_scroll_freeze_get(box)) {
+ elm_object_scroll_freeze_pop(box);
+ }
+}
+
+
+
+static void _mouse_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ _D("Mouse is down");
+ evas_object_data_set(obj, PRIVATE_DATA_KEY_MOUSE_DOWN, (void *) 1);
+}
+
+
+
+static void _mouse_up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ _D("Mouse is up");
+ evas_object_data_del(obj, PRIVATE_DATA_KEY_MOUSE_DOWN);
+ if (evas_object_data_get(obj, PRIVATE_DATA_KEY_DRAG)) return;
+ evas_object_data_del(obj, DATA_KEY_IS_SCROLLING);
+}
+
+
+
+static void _anim_start_cb(void *data, Evas_Object *scroller, void *event_info)
+{
+ _D("start the scroller animation");
+ evas_object_data_set(scroller, DATA_KEY_IS_SCROLLING, (void *) 1);
+}
+
+
+
+static void _anim_stop_cb(void *data, Evas_Object *scroller, void *event_info)
+{
+ _D("stop the scroller animation");
+ if (evas_object_data_get(scroller, PRIVATE_DATA_KEY_MOUSE_DOWN)) return;
+ evas_object_data_del(scroller, DATA_KEY_IS_SCROLLING);
+}
+
+
+
+static void _drag_start_cb(void *data, Evas_Object *scroller, void *event_info)
+{
+ _D("start to drag the scroller animation");
+ evas_object_data_set(scroller, PRIVATE_DATA_KEY_DRAG, (void *) 1);
+}
+
+
+
+static void _drag_stop_cb(void *data, Evas_Object *scroller, void *event_info)
+{
+ _D("stop to drag the scroller animation");
+ evas_object_data_del(scroller, PRIVATE_DATA_KEY_DRAG);
+}
+
+
+
+static void _scroll_cb(void *data, Evas_Object *scroller, void *event_info)
+{
+ evas_object_data_set(scroller, DATA_KEY_IS_SCROLLING, (void *) 1);
+}
+
+
+
+extern Evas_Object *scroller_create(Evas_Object *layout)
+{
+ retv_if(!layout, NULL);
+
+ Evas_Object *box = NULL;
+ Evas_Object *box_layout = NULL;
+ Evas_Object *scroller = NULL;
+
+ scroller = elm_scroller_add(layout);
+ retv_if(!scroller, NULL);
+
+ elm_scroller_bounce_set(scroller, EINA_FALSE, EINA_FALSE);
+ elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
+ //elm_object_style_set(scroller, "list_effect");
+ elm_object_focus_allow_set(scroller, EINA_FALSE);
+ elm_object_part_content_set(layout, "scroller", scroller);
+ evas_object_show(scroller);
+
+ evas_object_event_callback_add(scroller, EVAS_CALLBACK_MOUSE_DOWN, _mouse_down_cb, NULL);
+ evas_object_event_callback_add(scroller, EVAS_CALLBACK_MOUSE_UP, _mouse_up_cb, NULL);
+ evas_object_smart_callback_add(scroller, "scroll,anim,start", _anim_start_cb, NULL);
+ evas_object_smart_callback_add(scroller, "scroll,anim,stop", _anim_stop_cb, NULL);
+ evas_object_smart_callback_add(scroller, "scroll,drag,start", _drag_start_cb, NULL);
+ evas_object_smart_callback_add(scroller, "scroll,drag,stop", _drag_stop_cb, NULL);
+ evas_object_smart_callback_add(scroller, "scroll", _scroll_cb, NULL);
+ /* Because change an align in box, use the layout betweein box and scroller. */
+
+ box_layout = elm_layout_add(scroller);
+ if (!box_layout) {
+ _E("Fail to create box layout");
+ evas_object_del(scroller);
+ return NULL;
+ }
+ elm_layout_file_set(box_layout, BOX_LAYOUT, BOX_GROUP_NAME);
+ evas_object_size_hint_align_set(box_layout, 0.5, 1.0);
+ evas_object_size_hint_weight_set(box_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_show(box_layout);
+ elm_object_content_set(scroller, box_layout);
+
+ box = elm_box_add(scroller);
+ if (!box) {
+ _E("Fail to create box");
+ evas_object_del(box_layout);
+ evas_object_del(scroller);
+ return NULL;
+ }
+ elm_box_horizontal_set(box, EINA_FALSE);
+ evas_object_size_hint_align_set(box, 0.5, 1.0);
+ evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_object_part_content_set(box_layout, BOX_GROUP_NAME, box);
+ evas_object_show(box);
+ main_get_info()->box = box;
+
+ return scroller;
+}
+
+
+
+void scroller_destroy(Evas_Object *scroller)
+{
+ ret_if(!scroller);
+
+ Evas_Object *item = NULL;
+ Evas_Object *box_layout = NULL;
+ Evas_Object *box = NULL;
+ Eina_List *list = NULL;
+
+ ret_if(!scroller);
+ scroller_pop_all_item(scroller, 0);
+
+ box_layout = elm_object_content_unset(scroller);
+ ret_if(!box_layout);
+
+ box = elm_object_part_content_unset(box_layout, BOX_GROUP_NAME);
+ ret_if(!box);
+
+ list = elm_box_children_get(box);
+ if (!list) {
+ _D("list is empty");
+ return;
+ }
+
+ EINA_LIST_FREE(list, item) {
+ if (!item) break;
+ item_destroy(item);
+ }
+ free(list);
+
+ evas_object_del(box);
+ evas_object_del(box_layout);
+
+ evas_object_event_callback_del(scroller, EVAS_CALLBACK_MOUSE_DOWN, _mouse_down_cb);
+ evas_object_event_callback_del(scroller, EVAS_CALLBACK_MOUSE_UP, _mouse_up_cb);
+ evas_object_smart_callback_del(scroller, "scroll,anim,start", _anim_start_cb);
+ evas_object_smart_callback_del(scroller, "scroll,anim,stop", _anim_stop_cb);
+ evas_object_smart_callback_del(scroller, "scroll,drag,start", _drag_start_cb);
+ evas_object_smart_callback_del(scroller, "scroll,drag,stop", _drag_stop_cb);
+ evas_object_smart_callback_del(scroller, "scroll", _scroll_cb);
+
+ evas_object_del(scroller);
+}
+
+
+
+/* End of the file */
+++ /dev/null
-/*
- * 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;
-}
-
-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) {
- fprintf(stderr,
- "[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) {
- fprintf(stderr,
- "[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;
-}
-
-
-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;
-}
-
-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);
-// _set_notification_level(win, UTILX_NOTIFICATION_LEVEL_NORMAL);
-
- /* 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 */
- printf("from AUL to %s(): %d msec\n", __func__,
- appcore_measure_time_from("APP_START_TIME"));
- printf("from create to %s(): %d msec\n", __func__,
- appcore_measure_time());
-
- if (ad->win)
- elm_win_activate(ad->win);
- 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);
-}
+++ /dev/null
-/*
- * 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;
-};
-
-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___ */
--- /dev/null
+/*
+ * 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 <app_manager.h>
+//#include <app_manager_extension.h>
+#include <app_control.h>
+#include <stdbool.h>
+
+#include "log.h"
+#include "util.h"
+
+
+
+extern Eina_Bool util_kill_app(const char *appid)
+{
+ app_context_h context = NULL;
+ Eina_Bool ret = EINA_TRUE;
+
+ retv_if(!appid, EINA_FALSE);
+
+ ret = app_manager_get_app_context(appid, &context);
+ if (ret != APP_MANAGER_ERROR_NONE) {
+ _E("fail to app_manager_get_app_context(%d)", ret);
+ return EINA_FALSE;
+ }
+
+ ret = app_manager_terminate_app(context);
+ app_context_destroy(context);
+
+ if (ret != APP_MANAGER_ERROR_NONE) {
+ _E("fail to terminate_app (%d)", ret);
+ return EINA_FALSE;
+ }
+
+ _D("terminate app = %s", appid);
+
+ return ret;
+}
+
+
+
+extern Eina_Bool util_launch_app(const char *appid)
+{
+ int ret;
+ bool running = false;
+
+ if (!appid || strlen(appid) == 0) {
+ _E("Fail to launch, due to Null appid.");
+ return EINA_FALSE;
+ }
+ _D("Launching: %s", appid);
+ ret = app_manager_is_running(appid, &running);
+ retv_if(APP_MANAGER_ERROR_NONE != ret, EINA_FALSE);
+
+ if (running) {
+ _D("THE APP IS RUNNING");
+
+ app_context_h context = NULL;
+ ret = app_manager_get_app_context(appid, &context);
+ if (ret != APP_MANAGER_ERROR_NONE) {
+ _E("fail to app_manager_get_app_context(%d)", ret);
+ return EINA_FALSE;
+ }
+
+ ret = app_manager_resume_app(context);
+ app_context_destroy(context);
+
+ if (ret != APP_MANAGER_ERROR_NONE) {
+ _E("fail to app_manager_resume_app(%d)", ret);
+ return EINA_FALSE;
+ }
+
+ } else {
+ _D("THE APP IS NOT RUNNING");
+
+ app_control_h service = NULL;
+ retv_if(APP_CONTROL_ERROR_NONE != app_control_create(&service), EINA_FALSE);
+ retv_if(!service, EINA_FALSE);
+
+ app_control_set_operation(service, APP_CONTROL_OPERATION_MAIN);
+ app_control_set_app_id(service, appid);
+
+ ret = app_control_send_launch_request(service, NULL, NULL);
+ (void)app_control_destroy(service);
+ retv_if(APP_CONTROL_ERROR_NONE != ret, EINA_FALSE);
+ }
+
+ return EINA_TRUE;
+}
+
+
+
+//End of file