--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
+ <storageModule moduleId="org.eclipse.cdt.core.settings">
+ <cconfiguration id="org.tizen.nativecore.config.sbi.gcc45.app.debug.1309505987">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecore.config.sbi.gcc45.app.debug.1309505987" moduleId="org.eclipse.cdt.core.settings" name="Debug">
+ <externalSettings/>
+ <extensions>
+ <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+ <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.tizen.nativecore.NativeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ </extensions>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <configuration artifactName="task-mgr" buildArtefactType="org.tizen.nativecore.buildArtefactType.app" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.tizen.nativecore.buildArtefactType.app,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" description="" errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;" id="org.tizen.nativecore.config.sbi.gcc45.app.debug.1309505987" name="Debug" parent="org.tizen.nativecore.config.sbi.gcc45.app.debug">
+ <folderInfo id="org.tizen.nativecore.config.sbi.gcc45.app.debug.1309505987." name="/" resourcePath="">
+ <toolChain id="org.tizen.nativecore.toolchain.sbi.gcc45.app.debug.777356552" name="Tizen Native Toolchain" superClass="org.tizen.nativecore.toolchain.sbi.gcc45.app.debug">
+ <targetPlatform binaryParser="org.eclipse.cdt.core.ELF" id="org.tizen.nativeide.target.sbi.gnu.platform.base.775693905" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+ <builder autoBuildTarget="all" buildPath="${workspace_loc:/timer}/Debug" enableAutoBuild="true" id="org.tizen.nativecore.target.sbi.gnu.builder.1835398685" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Tizen Application Builder" superClass="org.tizen.nativecore.target.sbi.gnu.builder"/>
+ <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.161308378" name="Archiver" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver"/>
+ <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler.2106263175" name="C++ Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler">
+ <option id="gnu.cpp.compiler.option.optimization.level.1599255694" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
+ <option defaultValue="gnu.cpp.compiler.debugging.level.max" id="sbi.gnu.cpp.compiler.option.debugging.level.core.1398377897" name="Debug level" superClass="sbi.gnu.cpp.compiler.option.debugging.level.core" valueType="enumerated"/>
+ <option defaultValue="false" id="sbi.gnu.cpp.compiler.option.misc.pic.core.1265873312" name="-fPIC option" superClass="sbi.gnu.cpp.compiler.option.misc.pic.core" valueType="boolean"/>
+ <option id="sbi.gnu.cpp.compiler.option.1572448586" name="Tizen-Target" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
+ <listOptionValue builtIn="false" value="wearable-3.0-emulator.core.private_llvm36.i386.core.app"/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks_inc.core.678059276" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.cpp.compiler.option.frameworks_inc.core" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/libxml2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appcore-agent""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appcore-watch""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appfw""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/badge""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/base""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cairo""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/chromium-ewk""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ckm""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/contacts-svc""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/content""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/context-service""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/csr""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali-toolkit""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dbus-1.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/device""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dlog""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-buffer-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-con-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-file-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-ipc-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ector-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/e_dbus-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/edje-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eet-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-extension""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efreet-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1/eina""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eio-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eldbus-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/elementary-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/embryo-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/emile-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eo-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eom""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-client-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/feedback""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/fontconfig""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/freetype2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/gio-unix-2.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/glib-2.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/harfbuzz""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/iotcon""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/json-glib-1.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/location""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/maps""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media-content""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/messaging""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/metadata-editor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minizip""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/msg-service""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/network""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/notification""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/nsd/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/phonenumber-utils""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/rua/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/sensor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/storage""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/system""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/telephony""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/telephony-client""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ug-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ui""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/vconf""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_service""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_viewer_evas""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/yaca""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/dbus-1.0/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/glib-2.0/include""/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks_cflags.core.2022510975" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.cpp.compiler.option.frameworks_cflags.core" valueType="stringList">
+ <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
+ <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
+ <listOptionValue builtIn="false" value=" -fPIE"/>
+ <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ </option>
+ <option id="gnu.cpp.compiler.option.include.paths.2133672781" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/inc}""/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks.core.1630141478" name="Tizen-Frameworks" superClass="sbi.gnu.cpp.compiler.option.frameworks.core" valueType="userObjs">
+ <listOptionValue builtIn="false" value="Native_API"/>
+ </option>
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1849804143" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+ </tool>
+ <tool command="clang" id="org.tizen.nativecore.tool.sbi.gnu.c.compiler.1316515652" name="C Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.c.compiler">
+ <option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.option.optimization.level.1162407253" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" valueType="enumerated"/>
+ <option defaultValue="gnu.c.debugging.level.max" id="sbi.gnu.c.compiler.option.debugging.level.core.154475389" name="Debug level" superClass="sbi.gnu.c.compiler.option.debugging.level.core" valueType="enumerated"/>
+ <option defaultValue="false" id="sbi.gnu.c.compiler.option.misc.pic.core.1941776672" name="-fPIC option" superClass="sbi.gnu.c.compiler.option.misc.pic.core" valueType="boolean"/>
+ <option id="sbi.gnu.c.compiler.option.912947849" name="Tizen-Target" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
+ <listOptionValue builtIn="false" value="wearable-3.0-emulator.core.private_llvm36.i386.core.app"/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks_inc.core.102598672" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.c.compiler.option.frameworks_inc.core" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/libxml2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appcore-agent""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appcore-watch""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appfw""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/badge""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/base""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cairo""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/chromium-ewk""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ckm""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/contacts-svc""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/content""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/context-service""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/csr""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali-toolkit""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dbus-1.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/device""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dlog""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-buffer-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-con-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-file-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-ipc-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ector-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/e_dbus-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/edje-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eet-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-extension""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efreet-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1/eina""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eio-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eldbus-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/elementary-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/embryo-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/emile-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eo-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eom""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-client-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/feedback""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/fontconfig""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/freetype2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/gio-unix-2.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/glib-2.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/harfbuzz""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/iotcon""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/json-glib-1.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/location""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/maps""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media-content""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/messaging""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/metadata-editor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minizip""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/msg-service""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/network""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/notification""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/nsd/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/phonenumber-utils""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/rua/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/sensor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/storage""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/system""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/telephony""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/telephony-client""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ug-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ui""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/vconf""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_service""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_viewer_evas""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/yaca""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/dbus-1.0/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/glib-2.0/include""/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks_cflags.core.2015755914" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.c.compiler.option.frameworks_cflags.core" valueType="stringList">
+ <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
+ <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
+ <listOptionValue builtIn="false" value=" -fPIE"/>
+ <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ </option>
+ <option id="gnu.c.compiler.option.include.paths.184309749" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/inc}""/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks.core.1807908986" name="Tizen-Frameworks" superClass="sbi.gnu.c.compiler.option.frameworks.core" valueType="userObjs">
+ <listOptionValue builtIn="false" value="Native_API"/>
+ </option>
+ <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.155881715" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+ </tool>
+ <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.1804964280" name="C Linker" superClass="org.tizen.nativeide.tool.sbi.gnu.c.linker.base"/>
+ <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.linker.54335095" name="C++ Linker" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.linker">
+ <option defaultValue="false" id="sbi.gnu.cpp.linker.option.shared_flag.core.993200104" name="Linker.Shared" superClass="sbi.gnu.cpp.linker.option.shared_flag.core" valueType="boolean"/>
+ <option defaultValue="false" id="sbi.gnu.cpp.linker.option.noundefined.core.1439544389" name="Report unresolved symbol references (-Wl,--no-undefined)" superClass="sbi.gnu.cpp.linker.option.noundefined.core" valueType="boolean"/>
+ <option id="sbi.gnu.cpp.linker.option.frameworks_lflags.core.1005179627" name="Tizen-Frameworks-Other-Lflags" superClass="sbi.gnu.cpp.linker.option.frameworks_lflags.core" valueType="stringList">
+ <listOptionValue builtIn="false" value="${TC_LINKER_MISC}"/>
+ <listOptionValue builtIn="false" value="${RS_LINKER_MISC}"/>
+ <listOptionValue builtIn="false" value="-pie -lpthread "/>
+ <listOptionValue builtIn="false" value="-Xlinker -rpath="/home/developer/sdk_tools/lib""/>
+ <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ <listOptionValue builtIn="false" value="-Xlinker --version-script="${PROJ_PATH}/.exportMap""/>
+ <listOptionValue builtIn="false" value="-L"${SBI_SYSROOT}/usr/lib""/>
+ <listOptionValue builtIn="false" value="$(RS_LIBRARIES)"/>
+ </option>
+ <option id="gnu.cpp.link.option.paths.1803080059" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/lib}""/>
+ </option>
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.13904589" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
+ <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
+ <additionalInput kind="additionalinput" paths="$(LIBS)"/>
+ </inputType>
+ </tool>
+ <tool command="i386-linux-gnueabi-as" id="org.tizen.nativeapp.tool.sbi.gnu.assembler.base.1439855539" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1849625719" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+ </tool>
+ <tool id="org.tizen.nativecore.tool.fnmapgen.645211846" name="C FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen"/>
+ <tool id="org.tizen.nativecore.tool.fnmapgen.cpp.1405159421" name="C++ FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen.cpp"/>
+ <tool id="org.tizen.nativecore.tool.ast.2127862350" name="C Static Analyzer" superClass="org.tizen.nativecore.tool.ast"/>
+ <tool id="org.tizen.nativecore.tool.ast.cpp.841656285" name="C++ Static Analyzer" superClass="org.tizen.nativecore.tool.ast.cpp"/>
+ <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib.199331119" name="Archive Generator" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib"/>
+ <tool id="org.tizen.nativecore.tool.sbi.po.compiler.668758474" name="PO Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.po.compiler"/>
+ <tool id="org.tizen.nativecore.tool.sbi.edc.compiler.1336985194" name="EDC Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.edc.compiler">
+ <option command="-id " id="sbi.gnu.edc.compiler.option.misc.id.622015380" superClass="sbi.gnu.edc.compiler.option.misc.id" valueType="stringList">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/res/edje/images""/>
+ </option>
+ </tool>
+ </toolChain>
+ </folderInfo>
+ <sourceEntries>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="inc"/>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="res"/>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="shared"/>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
+ </sourceEntries>
+ </configuration>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+ </cconfiguration>
+ <cconfiguration id="org.tizen.nativecore.config.sbi.gcc45.app.release.590416803">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecore.config.sbi.gcc45.app.release.590416803" moduleId="org.eclipse.cdt.core.settings" name="Release">
+ <externalSettings/>
+ <extensions>
+ <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+ <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.tizen.nativecore.NativeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ </extensions>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <configuration artifactName="org.tizen.timer" buildArtefactType="org.tizen.nativecore.buildArtefactType.app" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.tizen.nativecore.buildArtefactType.app,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" description="" errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;" id="org.tizen.nativecore.config.sbi.gcc45.app.release.590416803" name="Release" parent="org.tizen.nativecore.config.sbi.gcc45.app.release">
+ <folderInfo id="org.tizen.nativecore.config.sbi.gcc45.app.release.590416803." name="/" resourcePath="">
+ <toolChain id="org.tizen.nativecore.toolchain.sbi.gcc45.app.release.812927782" name="Tizen Native Toolchain" superClass="org.tizen.nativecore.toolchain.sbi.gcc45.app.release">
+ <targetPlatform binaryParser="org.eclipse.cdt.core.ELF" id="org.tizen.nativeide.target.sbi.gnu.platform.base.1335861332" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+ <builder buildPath="${workspace_loc:/timer}/Release" id="org.tizen.nativecore.target.sbi.gnu.builder.231072114" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Tizen Application Builder" superClass="org.tizen.nativecore.target.sbi.gnu.builder"/>
+ <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.1949939564" name="Archiver" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver"/>
+ <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler.644456245" name="C++ Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler">
+ <option id="gnu.cpp.compiler.option.optimization.level.1738200173" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
+ <option defaultValue="gnu.cpp.compiler.debugging.level.default" id="sbi.gnu.cpp.compiler.option.debugging.level.core.1008047369" name="Debug level" superClass="sbi.gnu.cpp.compiler.option.debugging.level.core" valueType="enumerated"/>
+ <option defaultValue="false" id="sbi.gnu.cpp.compiler.option.misc.pic.core.527218528" name="-fPIC option" superClass="sbi.gnu.cpp.compiler.option.misc.pic.core" valueType="boolean"/>
+ <option id="sbi.gnu.cpp.compiler.option.367701614" name="Tizen-Target" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
+ <listOptionValue builtIn="false" value="wearable-3.0-emulator.core_llvm36.i386.core.app"/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks_inc.core.802349464" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.cpp.compiler.option.frameworks_inc.core" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/libxml2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appcore-agent""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appcore-watch""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appfw""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/badge""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/base""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cairo""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/chromium-ewk""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ckm""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/contacts-svc""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/content""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/context-service""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/csr""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali-toolkit""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dbus-1.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/device""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dlog""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-buffer-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-con-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-file-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-ipc-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ector-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/e_dbus-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/edje-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eet-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-extension""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efreet-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1/eina""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eio-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eldbus-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/elementary-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/embryo-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/emile-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eo-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eom""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-client-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/feedback""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/fontconfig""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/freetype2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/gio-unix-2.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/glib-2.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/harfbuzz""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/iotcon""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/json-glib-1.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/location""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/maps""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media-content""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/messaging""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/metadata-editor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minizip""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/network""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/notification""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/nsd/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/phonenumber-utils""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/sensor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/storage""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/system""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/telephony""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ui""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_service""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_viewer_evas""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/dbus-1.0/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/glib-2.0/include""/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks_cflags.core.1532951874" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.cpp.compiler.option.frameworks_cflags.core" valueType="stringList">
+ <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
+ <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
+ <listOptionValue builtIn="false" value=" -fPIE"/>
+ <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ </option>
+ <option id="gnu.cpp.compiler.option.include.paths.1705291216" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/inc}""/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks.core.223647103" name="Tizen-Frameworks" superClass="sbi.gnu.cpp.compiler.option.frameworks.core" valueType="userObjs">
+ <listOptionValue builtIn="false" value="Native_API"/>
+ </option>
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.606807934" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+ </tool>
+ <tool command="clang" id="org.tizen.nativecore.tool.sbi.gnu.c.compiler.1425706840" name="C Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.c.compiler">
+ <option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.option.optimization.level.1428244788" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" valueType="enumerated"/>
+ <option defaultValue="gnu.c.debugging.level.default" id="sbi.gnu.c.compiler.option.debugging.level.core.1311205853" name="Debug level" superClass="sbi.gnu.c.compiler.option.debugging.level.core" valueType="enumerated"/>
+ <option defaultValue="false" id="sbi.gnu.c.compiler.option.misc.pic.core.1240071290" name="-fPIC option" superClass="sbi.gnu.c.compiler.option.misc.pic.core" valueType="boolean"/>
+ <option id="sbi.gnu.c.compiler.option.1422985977" name="Tizen-Target" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
+ <listOptionValue builtIn="false" value="wearable-3.0-emulator.core_llvm36.i386.core.app"/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks_inc.core.1925770073" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.c.compiler.option.frameworks_inc.core" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/libxml2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appcore-agent""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appcore-watch""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appfw""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/badge""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/base""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/cairo""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/chromium-ewk""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ckm""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/contacts-svc""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/content""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/context-service""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/csr""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dali-toolkit""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dbus-1.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/device""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/dlog""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-buffer-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-con-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-file-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-imf-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-input-evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ecore-ipc-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ector-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/e_dbus-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/edje-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eet-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efl-extension""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/efreet-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eina-1/eina""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eio-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eldbus-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/elementary-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/embryo-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/emile-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eo-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/eom""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ethumb-client-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/evas-1""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/feedback""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/fontconfig""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/freetype2""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/gio-unix-2.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/glib-2.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/harfbuzz""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/iotcon""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/json-glib-1.0""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/location""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/maps""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/media-content""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/messaging""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/metadata-editor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/minizip""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/network""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/notification""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/nsd/""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/phonenumber-utils""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/sensor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/storage""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/system""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/telephony""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/ui""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_service""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/widget_viewer_evas""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/dbus-1.0/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/glib-2.0/include""/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks_cflags.core.1788147765" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.c.compiler.option.frameworks_cflags.core" valueType="stringList">
+ <listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
+ <listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
+ <listOptionValue builtIn="false" value=" -fPIE"/>
+ <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ </option>
+ <option id="gnu.c.compiler.option.include.paths.958482017" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/inc}""/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks.core.562544544" name="Tizen-Frameworks" superClass="sbi.gnu.c.compiler.option.frameworks.core" valueType="userObjs">
+ <listOptionValue builtIn="false" value="Native_API"/>
+ </option>
+ <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1663319438" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+ </tool>
+ <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.1495945020" name="C Linker" superClass="org.tizen.nativeide.tool.sbi.gnu.c.linker.base"/>
+ <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.linker.833080090" name="C++ Linker" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.linker">
+ <option defaultValue="false" id="sbi.gnu.cpp.linker.option.shared_flag.core.1320205047" name="Linker.Shared" superClass="sbi.gnu.cpp.linker.option.shared_flag.core" valueType="boolean"/>
+ <option defaultValue="false" id="sbi.gnu.cpp.linker.option.noundefined.core.1839092749" name="Report unresolved symbol references (-Wl,--no-undefined)" superClass="sbi.gnu.cpp.linker.option.noundefined.core" valueType="boolean"/>
+ <option id="sbi.gnu.cpp.linker.option.frameworks_lflags.core.1255100665" name="Tizen-Frameworks-Other-Lflags" superClass="sbi.gnu.cpp.linker.option.frameworks_lflags.core" valueType="stringList">
+ <listOptionValue builtIn="false" value="${TC_LINKER_MISC}"/>
+ <listOptionValue builtIn="false" value="${RS_LINKER_MISC}"/>
+ <listOptionValue builtIn="false" value="-pie -lpthread "/>
+ <listOptionValue builtIn="false" value="-Xlinker -rpath="/home/developer/sdk_tools/lib""/>
+ <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ <listOptionValue builtIn="false" value="-Xlinker --version-script="${PROJ_PATH}/.exportMap""/>
+ <listOptionValue builtIn="false" value="-L"${SBI_SYSROOT}/usr/lib""/>
+ <listOptionValue builtIn="false" value="$(RS_LIBRARIES)"/>
+ </option>
+ <option id="gnu.cpp.link.option.paths.1340886692" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/lib}""/>
+ </option>
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.516500854" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
+ <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
+ <additionalInput kind="additionalinput" paths="$(LIBS)"/>
+ </inputType>
+ </tool>
+ <tool command="i386-linux-gnueabi-as" id="org.tizen.nativeapp.tool.sbi.gnu.assembler.base.324848913" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.420016342" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+ </tool>
+ <tool id="org.tizen.nativecore.tool.fnmapgen.186341524" name="C FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen"/>
+ <tool id="org.tizen.nativecore.tool.fnmapgen.cpp.703217599" name="C++ FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen.cpp"/>
+ <tool id="org.tizen.nativecore.tool.ast.1952510977" name="C Static Analyzer" superClass="org.tizen.nativecore.tool.ast"/>
+ <tool id="org.tizen.nativecore.tool.ast.cpp.1272503557" name="C++ Static Analyzer" superClass="org.tizen.nativecore.tool.ast.cpp"/>
+ <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib.1513486035" name="Archive Generator" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib"/>
+ <tool id="org.tizen.nativecore.tool.sbi.po.compiler.920136820" name="PO Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.po.compiler"/>
+ <tool id="org.tizen.nativecore.tool.sbi.edc.compiler.1488310140" name="EDC Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.edc.compiler"/>
+ </toolChain>
+ </folderInfo>
+ <sourceEntries>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="inc"/>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="res"/>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="shared"/>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
+ </sourceEntries>
+ </configuration>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+ </cconfiguration>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <project id="timer.org.tizen.nativecore.target.sbi.gcc45.app.1413302621" name="Tizen Native Application" projectType="org.tizen.nativecore.target.sbi.gcc45.app"/>
+ </storageModule>
+ <storageModule moduleId="scannerConfiguration">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+ <scannerConfigBuildInfo instanceId="org.tizen.nativecore.config.sbi.gcc45.app.debug.1309505987">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="org.tizen.nativecore.config.sbi.gcc45.app.release.590416803">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+ </scannerConfigBuildInfo>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
+ <storageModule moduleId="refreshScope"/>
+</cproject>
--- /dev/null
+{
+ global: main;
+ local: *;
+};
--- /dev/null
+TPK
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>taskmanager</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+ <triggers>full,incremental,</triggers>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.cdt.core.cnature</nature>
+ <nature>org.eclipse.cdt.core.ccnature</nature>
+ <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+ <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+ </natures>
+ <filteredResources>
+ <filter>
+ <id>0</id>
+ <name></name>
+ <type>26</type>
+ <matcher>
+ <id>org.eclipse.ui.ide.multiFilter</id>
+ <arguments>1.0-projectRelativePath-matches-false-false-*/.tpk</arguments>
+ </matcher>
+ </filter>
+ <filter>
+ <id>0</id>
+ <name></name>
+ <type>6</type>
+ <matcher>
+ <id>org.eclipse.ui.ide.multiFilter</id>
+ <arguments>1.0-name-matches-false-false-project_def.prop</arguments>
+ </matcher>
+ </filter>
+ </filteredResources>
+</projectDescription>
--- /dev/null
+#delete
+#add
+#modify
+author-signature.xml
+signature1.xml
+bin/task-mgr
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<tproject xmlns="http://www.tizen.org/tproject">
+ <platforms>
+ <platform>
+ <name>wearable-3.0</name>
+ </platform>
+ </platforms>
+ <package>
+ <blacklist/>
+ <resFallback autoGen="true"/>
+ </package>
+</tproject>
-Hong Kwon <hhh.kwon at samsung dot com>
-Minho Kim <minho07.kim at samsung dot com>
+Vijay Tiwari <vijay.tiwari@samsung.com>
\ No newline at end of file
--- /dev/null
+# Appendix\r
--- /dev/null
+# Add inputs and outputs from these tool invocations to the build variables
+
+C_DEPS +=
+
+SYSROOT := $(SBI_SYSROOT)
+
+ROOTSTRAP_INCS := $(addprefix -I $(SYSROOT)/,$(PLATFORM_INCS_EX))
+EFL_INCS :=
+
+RS_LIBRARIES := $(addprefix -l,$(RS_LIBRARIES_EX))
+
+PLATFORM_INCS := $(ROOTSTRAP_INCS) $(EFL_INCS) \
+ -I"$(SDK_PATH)/library"
+
--- /dev/null
+
+DEBUG_OP = -g3
+CPP_DEBUG_OP =
+
+OPTIMIZATION_OP = -O0
+CPP_OPTIMIZATION_OP =
+
+COMPILE_FLAGS = $(DEBUG_OP) $(OPTIMIZATION_OP) -Wall -c -fmessage-length=0
+
+CPP_COMPILE_FLAGS = $(CPP_DEBUG_OP) $(CPP_OPTIMIZATION_OP)
+
+LINK_FLAGS =
+
+AR_FLAGS =
+
+EDC_COMPILE_FLAGS =
\ No newline at end of file
--- /dev/null
+BUILD_SCRIPT_VERSION := 1.0.7
+
+all : app_build
+
+clean : app_clean
+
+version : make_version
+
+
+BSLASH := \\#
+BSLASH2SLASH = $(subst $(BSLASH),/,$(1))
+REMOVE_TAIL = $(patsubst %/,%,$(1))
+
+PROJ_ROOT := $(call BSLASH2SLASH,$(PROJPATH))
+
+-include $(PROJ_ROOT)/project_def.prop
+-include basedef.mk
+-include tooldef.mk
+-include flags.mk
+-include prepost.mk
+
+APPTYPE := $(type)
+
+OBJ_OUTPUT := $(call BSLASH2SLASH,$(OUTPUT_DIR)/objs)
+
+OS_NAME = $(shell $(UNAME))
+
+#LOWER_APPNAME := $(shell echo translit($(APPNAME),[A-Z],[a-z])|$(M4))
+LOWER_APPNAME := $(shell echo $(APPNAME)|$(TR) [A-Z] [a-z])
+
+ifeq ($(strip $(APPTYPE)),app)
+APPFILE := $(OUTPUT_DIR)/$(LOWER_APPNAME)
+endif
+ifeq ($(strip $(APPTYPE)),staticLib)
+APPFILE := $(OUTPUT_DIR)/lib$(LOWER_APPNAME).a
+endif
+ifeq ($(strip $(APPTYPE)),sharedLib)
+APPFILE := $(OUTPUT_DIR)/lib$(LOWER_APPNAME).so
+endif
+
+ifneq ($(strip $(PLATFORM_INCS)),)
+PLATFORM_INCS_FILE := $(OBJ_OUTPUT)/platform_incs_file.inc
+endif
+
+FIND_FILES = $(shell $(FIND) $(PROJ_ROOT)/$(dir $(1)) -type f -name $(notdir $(1)) -printf '$(dir $(1))%P ')
+
+NORMAL_SRCS := $(filter-out %*.c %*.cpp,$(USER_SRCS))
+WIDLCARD_SRCS := $(filter %*.c %*.cpp,$(USER_SRCS))
+ALL_SRCS := $(NORMAL_SRCS) $(foreach var,$(WIDLCARD_SRCS),$(call FIND_FILES,$(var)))
+
+C_SRCS := $(filter %.c,$(ALL_SRCS))
+CPP_SRCS := $(filter %.cpp,$(ALL_SRCS))
+
+USER_EDCS := $(subst $(BSLASH),/,$(USER_EDCS))
+NORMAL_EDCS := $(filter-out %*.edc,$(USER_EDCS))
+WIDLCARD_EDCS := $(filter %*.edc,$(USER_EDCS))
+EDCS := $(NORMAL_EDCS) $(foreach var,$(WIDLCARD_EDCS),$(call FIND_FILES,$(var)))
+
+NORMAL_POS := $(filter-out %*.po,$(USER_POS))
+WIDLCARD_POS := $(filter %*.po,$(USER_POS))
+POS := $(NORMAL_POS) $(foreach var,$(WIDLCARD_POS),$(call FIND_FILES,$(var)))
+
+LIBPATHS := $(addprefix -L$(PROJ_ROOT)/,$(USER_LIB_DIRS)) \
+ $(addprefix -L,$(USER_LIB_DIRS_ABS))
+LIBS += $(addprefix -l,$(USER_LIBS))
+UOBJS := $(addprefix $(PROJ_ROOT)/,$(USER_OBJS)) \
+ $(USER_OBJS_ABS)
+
+M_OPT = -MMD -MP -MF"$(@:%.o=%.d)"
+
+FUNC_C2O = $(patsubst %.c,$(OBJ_OUTPUT)/%.o,$(1))
+FUNC_CPP2O = $(patsubst %.cpp,$(OBJ_OUTPUT)/%.o,$(1))
+FUNC_EDC2EDJ = $(patsubst %.edc,$(OUTPUT_DIR)/%.edj,$(1))
+FUNC_PO2MO = $(patsubst %.po,$(OUTPUT_DIR)/res/locale/%/LC_MESSAGES/$(LOWER_APPNAME).mo,$(notdir $(1)))
+
+
+C_OBJS := $(call FUNC_C2O,$(C_SRCS))
+CPP_OBJS := $(call FUNC_CPP2O,$(CPP_SRCS))
+OBJS := $(C_OBJS) $(CPP_OBJS)
+EDJ_FILES := $(call FUNC_EDC2EDJ,$(EDCS))
+MO_FILES := $(call FUNC_PO2MO,$(POS))
+DEPS := $(OBJS:.o=.d)
+
+
+ifneq ($(strip $(DEPS)),)
+-include $(DEPS)
+endif
+
+ifeq ($(strip $(APPTYPE)),app)
+$(APPFILE) : $(OBJS) $(UOBJS)
+ @echo ' Building target: $@'
+ @echo ' Invoking: C/C++ Linker'
+ @$(MKDIR) $(MKDIR_OP) $(subst $(BSLASH),/,$(@D))
+ $(CXX) -o "$(APPFILE)" $(OBJS) $(UOBJS) $(LIBPATHS) -Xlinker --as-needed $(LIBS) $(LINK_FLAGS) $(TC_LINKER_MISC) $(RS_LINKER_MISC) -pie -lpthread -Xlinker -rpath="/home/developer/sdk_tools/lib" --sysroot="$(SYSROOT)" -Xlinker --version-script="$(PROJ_PATH)/.exportMap" -L"$(SBI_SYSROOT)/usr/lib" $(RS_LIBRARIES) -Xlinker -rpath="/opt/usr/apps/$(APPID)/lib" -Werror-implicit-function-declaration
+ @echo ' Finished building target: $@'
+endif
+ifeq ($(strip $(APPTYPE)),staticLib)
+$(APPFILE) : $(OBJS) $(UOBJS)
+ @echo ' Building target: $@'
+ @echo ' Invoking: Archive utility'
+ @$(MKDIR) $(MKDIR_OP) $(subst $(BSLASH),/,$(@D))
+ $(AR) -r "$(APPFILE)" $(OBJS) $(UOBJS) $(AR_FLAGS)
+ @echo ' Finished building target: $@'
+endif
+ifeq ($(strip $(APPTYPE)),sharedLib)
+$(APPFILE) : $(OBJS) $(UOBJS)
+ @echo ' Building target: $@'
+ @echo ' Invoking: C/C++ Linker'
+ @$(MKDIR) $(MKDIR_OP) $(subst $(BSLASH),/,$(@D))
+ $(CXX) -o "$(APPFILE)" $(OBJS) $(UOBJS) $(LIBPATHS) -Xlinker --as-needed $(LIBS) $(LINK_FLAGS) $(TC_LINKER_MISC) $(RS_LINKER_MISC) -shared -lpthread --sysroot="$(SYSROOT)" -L"$(SYSROOT)/usr/lib" $(RS_LIBRARIES)
+ @echo ' Finished building target: $@'
+endif
+
+
+ifneq ($(strip $(C_SRCS)),)
+CDEFS += $(addprefix -D,$(USER_DEFS))
+CDEFS += $(addprefix -U,$(USER_UNDEFS))
+
+INCS := $(addprefix -I$(PROJ_ROOT)/,$(USER_INC_DIRS)) \
+ $(addprefix -I,$(USER_INC_DIRS_ABS)) \
+ $(addprefix -include$(PROJ_ROOT)/,$(USER_INC_FILES)) \
+ $(addprefix -include,$(USER_INC_FILES_ABS))
+
+$(C_OBJS) : $(OBJ_OUTPUT)/%.o : $(PROJ_ROOT)/%.c $(PLATFORM_INCS_FILE)
+ @echo ' Building file: $<'
+ @echo ' Invoking: C Compiler'
+ @$(MKDIR) $(MKDIR_OP) $(subst $(BSLASH),/,$(@D))
+ifeq ($(strip $(APPTYPE)),sharedLib)
+ $(CC) -c $< -o $@ $(CDEFS) $(INCS) -I"pch" $(COMPILE_FLAGS) $(TC_COMPILER_MISC) $(RS_COMPILER_MISC) -fPIC --sysroot="$(SYSROOT)" -Werror-implicit-function-declaration $(M_OPT) @$(PLATFORM_INCS_FILE)
+else
+ $(CC) -c $< -o $@ $(CDEFS) $(INCS) -I"pch" $(COMPILE_FLAGS) $(TC_COMPILER_MISC) $(RS_COMPILER_MISC) -fPIE --sysroot="$(SYSROOT)" -Werror-implicit-function-declaration $(M_OPT) @$(PLATFORM_INCS_FILE)
+endif
+ @echo ' Finished building: $<'
+endif
+
+ifneq ($(strip $(CPP_SRCS)),)
+CPPDEFS += $(addprefix -D,$(USER_CPP_DEFS))
+CPPDEFS += $(addprefix -U,$(USER_CPP_UNDEFS))
+
+CPP_INCS := $(addprefix -I$(PROJ_ROOT)/,$(USER_CPP_INC_DIRS)) \
+ $(addprefix -I,$(USER_CPP_INC_DIRS_ABS)) \
+ $(addprefix -include$(PROJ_ROOT)/,$(USER_CPP_INC_FILES)) \
+ $(addprefix -include,$(USER_CPP_INC_FILES_ABS))
+
+$(CPP_OBJS) : $(OBJ_OUTPUT)/%.o : $(PROJ_ROOT)/%.cpp $(PLATFORM_INCS_FILE)
+ @echo ' Building file: $<'
+ @echo ' Invoking: C++ Compiler'
+ @$(MKDIR) $(MKDIR_OP) $(subst $(BSLASH),/,$(@D))
+ifeq ($(strip $(APPTYPE)),sharedLib)
+ $(CXX) -c $< -o $@ $(CPPDEFS) $(CPP_INCS) -I"pch" $(CPP_COMPILE_FLAGS) $(TC_COMPILER_MISC) $(RS_COMPILER_MISC) -fPIC --sysroot="$(SYSROOT)" -Werror-implicit-function-declaration $(M_OPT) @$(PLATFORM_INCS_FILE)
+else
+ $(CXX) -c $< -o $@ $(CPPDEFS) $(CPP_INCS) -I"pch" $(CPP_COMPILE_FLAGS) $(TC_COMPILER_MISC) $(RS_COMPILER_MISC) -fPIE --sysroot="$(SYSROOT)" -Werror-implicit-function-declaration $(M_OPT) @$(PLATFORM_INCS_FILE)
+endif
+ @echo ' Finished building: $<'
+endif
+
+
+$(OBJ_OUTPUT) :
+ @echo ' Building directory: $@'
+ @$(MKDIR) $(MKDIR_OP) $(OBJ_OUTPUT)
+
+preproc : $(OBJ_OUTPUT)
+ifneq ($(strip $(PREBUILD_COMMAND)),)
+ifneq ($(strip $(PREBUILD_DESC)),)
+ @echo $(PREBUILD_DESC)
+endif
+ @echo $(shell $(PREBUILD_COMMAND))
+endif
+
+
+postproc :
+ifneq ($(strip $(POSTBUILD_COMMAND)),)
+ifneq ($(strip $(POSTBUILD_DESC)),)
+ @echo $(POSTBUILD_DESC)
+endif
+ @echo $(shell $(POSTBUILD_COMMAND))
+endif
+
+ifneq ($(strip $(PLATFORM_INCS)),)
+$(PLATFORM_INCS_FILE) : $(OBJ_OUTPUT)
+ @echo ' Building inc file: $@'
+ifneq ($(findstring Linux,$(OS_NAME)),)
+ @echo $(PLATFORM_INCS) > $@
+else
+ifneq ($(findstring 3.82,$(MAKE_VERSION)),)
+ $(file > $@,$(PLATFORM_INCS))
+else
+ @echo $(PLATFORM_INCS) > $@
+endif
+endif
+endif
+
+ALL_EDJ_FILES :=
+
+define EDJ_PROC
+ALL_EDCS := $$(subst $(BSLASH),/,$$($(2)))
+NORMAL_EDCS := $$(filter-out %*.edc,$$(ALL_EDCS))
+WIDLCARD_EDCS := $$(filter %*.edc,$$(ALL_EDCS))
+EDCS := $$(NORMAL_EDCS) $$(foreach var_edc,$$(WIDLCARD_EDCS),$$(call FIND_FILES,$$(var_edc)))
+
+ifneq ($$(strip $$(EDCS)),)
+EDJ_FILES := $$(call FUNC_EDC2EDJ,$$(EDCS))
+
+ALL_EDJ_FILES += $$(EDJ_FILES)
+
+EDC_$(1)_COMPILER_FLAGS := -id "$$(SDK_TOOLPATH)/enventor/share/enventor/images"
+EDC_$(1)_COMPILER_FLAGS += -sd "$$(SDK_TOOLPATH)/enventor/share/enventor/sounds"
+EDC_$(1)_COMPILER_FLAGS += -fd "$$(SDK_TOOLPATH)/enventor/share/enventor/fonts"
+
+ifneq ($$(strip $(3)),)
+EDC_$(1)_COMPILER_FLAGS += $$(addprefix -id $$(PROJ_PATH)/,$$($(3)))
+endif
+ifneq ($$(strip $(4)),)
+EDC_$(1)_COMPILER_FLAGS += $$(addprefix -id ,$$($(4)))
+endif
+ifneq ($$(strip $(5)),)
+EDC_$(1)_COMPILER_FLAGS += $$(addprefix -sd $$(PROJ_PATH)/,$$($(5)))
+endif
+ifneq ($$(strip $(6)),)
+EDC_$(1)_COMPILER_FLAGS += $$(addprefix -sd ,$$($(6)))
+endif
+ifneq ($$(strip $(7)),)
+EDC_$(1)_COMPILER_FLAGS += $$(addprefix -fd $$(PROJ_PATH)/,$$($(7)))
+endif
+ifneq ($$(strip $(8)),)
+EDC_$(1)_COMPILER_FLAGS += $$(addprefix -fd ,$$($(8)))
+endif
+
+$$(EDJ_FILES) : $$(OUTPUT_DIR)/%.edj : $$(PROJ_ROOT)/%.edc
+ @echo ' Building file: $$<'
+ @echo ' Invoking: EDC Resource Compiler'
+ @$$(MKDIR) $$(MKDIR_OP) $$(subst $$(BSLASH),/,$$(@D))
+ $$(EDJE_CC) $$(EDC_$(1)_COMPILER_FLAGS) $$(CDEFS) "$$<" "$$@"
+ @echo ' Finished building: $$<'
+endif
+endef
+
+# Global EDCs
+ifneq ($(strip $(USER_EDCS)),)
+$(eval $(call EDJ_PROC,,USER_EDCS,USER_EDCS_IMAGE_DIRS,USER_EDCS_IMAGE_DIRS_ABS,USER_EDCS_SOUND_DIRS,USER_EDCS_SOUND_DIRS_ABS,USER_EDCS_FONT_DIRS,USER_EDCS_FONT_DIRS_ABS))
+endif
+
+# Individual EDCs
+ifneq ($(strip $(USER_EXT_EDC_KEYS)),)
+$(foreach var,$(USER_EXT_EDC_KEYS),$(eval $(call EDJ_PROC,$(var),USER_EXT_$(var)_EDCS,USER_EXT_$(var)_EDCS_IMAGE_DIRS,USER_EXT_$(var)_EDCS_IMAGE_DIRS_ABS,USER_EXT_$(var)_EDCS_SOUND_DIRS,USER_EXT_$(var)_EDCS_SOUND_DIRS_ABS,USER_EXT_$(var)_EDCS_FONT_DIRS,USER_EXT_$(var)_EDCS_FONT_DIRS_ABS)))
+endif
+
+
+ifneq ($(strip $(POS)),)
+define MO_RULE
+$(call FUNC_PO2MO,$(1)) : $(PROJ_ROOT)/$(1)
+ @echo ' Building file: $$<'
+ @echo ' Invoking: msgfmt String Formatter'
+ @$$(MKDIR) $$(MKDIR_OP) $$(subst $$(BSLASH),/,$$(@D))
+ $$(MSGFMT) -o $$@ $$<
+ @echo ' Finished building: $$<'
+endef
+
+$(foreach var,$(POS),$(eval $(call MO_RULE,$(var))))
+endif
+
+
+secondary-outputs : $(ALL_EDJ_FILES) $(MO_FILES)
+
+-include appendix.mk
+
+
+app_build : preproc $(APPFILE) secondary-outputs postproc
+
+app_clean :
+ rm -f "$(APPFILE)"
+ rm -rf "$(OUTPUT_DIR)"
+
+make_version :
+ @echo $(BUILD_SCRIPT_VERSION)
--- /dev/null
+# Add pre/post build process
+
+PREBUILD_COMMAND =
+PREBUILD_DESC =
+
+POSTBUILD_COMMAND =
+POSTBUILD_DESC =
--- /dev/null
+# Add inputs and outputs from these tool invocations to the build variables
+
+ifeq ($(strip $(BUILD_CONFIG)),)
+BUILD_CONFIG = Debug
+endif
+
+ifeq ($(strip $(OUTPUT_DIR)),)
+OUTPUT_DIR := $(PROJPATH)/$(BUILD_CONFIG)
+endif
+
+
+ifneq ($(strip $(MKDIR_BIN)),)
+MKDIR = $(MKDIR_BIN)
+MKDIR_OP = -p
+else
+MKDIR = mkdir
+MKDIR_OP = -p
+endif
+
+ifneq ($(strip $(UNAME_BIN)),)
+UNAME = $(UNAME_BIN)
+else
+UNAME = uname
+endif
+
+ifneq ($(strip $(M4_BIN)),)
+M4 = $(M4_BIN)
+else
+M4 = m4
+endif
+
+ifneq ($(strip $(TR_BIN)),)
+TR = $(TR_BIN)
+else
+TR = tr
+endif
+
+ifneq ($(strip $(FIND_BIN)),)
+FIND = $(FIND_BIN)
+else
+FIND = find
+endif
+
+ifneq ($(strip $(GREP_BIN)),)
+GREP = $(GREP_BIN)
+else
+GREP = grep
+endif
+
+ifneq ($(strip $(EDJE_CC_BIN)),)
+EDJE_CC = $(EDJE_CC_BIN)
+else
+EDJE_CC = edje_cc
+endif
+
+ifneq ($(strip $(MSGFMT_BIN)),)
+MSGFMT = $(MSGFMT_BIN)
+else
+MSGFMT = msgfmt
+endif
+
+++ /dev/null
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-PROJECT(task-mgr)
-# FIND ALL SOURCE IN A SOURCE DIRECTORY
-AUX_SOURCE_DIRECTORY(${CMAKE_SOURCE_DIR}/src SRCS)
-
-#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}")
-SET(ICONDIR "/usr/share/icons/")
-
-INCLUDE(FindPkgConfig)
-pkg_check_modules(pkgs REQUIRED
- appcore-efl
- evas
- edje
- elementary
- 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} -fPIE")
-SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -fPIE")
-
-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")
-
-SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
-
-MESSAGE(${CMAKE_C_FLAGS})
-
-ADD_DEFINITIONS("-DEDJEDIR=\"${EDJEDIR}\"")
-ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"")
-
-ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
-
-TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS})
-
-# Install
-INSTALL(TARGETS ${PROJECT_NAME} DESTINATION bin)
-
-#Install images
-INSTALL(DIRECTORY res/images/ DESTINATION res/images)
-
-# install manifest file & icon
-#INSTALL(FILES ${CMAKE_BINARY_DIR}/org.tizen.task-mgr.xml DESTINATION /usr/share/packages)
-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)
-INSTALL(FILES ${RESOURCE_DIR}/icon/org.tizen.task-mgr.png DESTINATION ${ICONDIR})
-
-
-# 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.
+
--- /dev/null
+
+# Add pre/post build process
+PREBUILD_DESC =
+PREBUILD_COMMAND =
+POSTBUILD_DESC =
+POSTBUILD_COMMAND =
+++ /dev/null
-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::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 org.tizen.oma-dm r-x--- ------
-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 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--- ------
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<manifest xmlns="http://tizen.org/ns/packages" api-version="2.4" package="org.tizen.task-mgr" version="1.0.0">
- <profile name="mobile"/>
+<manifest xmlns="http://tizen.org/ns/packages" api-version="3.0" package="org.tizen.task-mgr" version="1.0.0">
+ <profile name="wearable"/>
<ui-application appid="org.tizen.task-mgr" exec="task-mgr" multiple="false" nodisplay="false" taskmanage="true" type="capp">
<label>Recents</label>
<icon>org.tizen.task-mgr.png</icon>
/*
- * Task Manager
+ * Samsung API
+ * Copyright (c) 2013 Samsung Electronics Co., Ltd.
*
- * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * 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://www.apache.org/licenses/LICENSE-2.0
+ * 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,
+ * distributed under the License is distributed on an AS IS BASIS,
* WITHOUT 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 BG_COLOR (255*0.5)
//edc
-#define LAYOUT EDJEDIR"/layout.edj"
-#define BOX_LAYOUT EDJEDIR"/box.edj"
-#define ITEM_LAYOUT EDJEDIR"/item.edj"
+#define LAYOUT "edje/layout.edj"
+#define ITEM_LAYOUT "edje/item.edj"
#define BOX_GROUP_NAME "box"
#define BG_PART_NAME "bg"
--- /dev/null
+/*
+ * Samsung API
+ * Copyright (c) 2013 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 __TASK_MGR_ITEM_H__
+#define __TASK_MGR_ITEM_H__
+
+#include "list.h"
+#include "util.h"
+
+Evas_Object *item_create(void *data, list_type_default_s *info);
+void item_destroy(Evas_Object *item);
+void item_terminate(Evas_Object *item);
+void taskmanager_remove_all_task_info(void *data);
+list_type_default_s *item_get_info(Evas_Object *item);
+
+#endif //__TASK_MGR_ITEM_H__
/*
- * Task Manager
+ * Samsung API
+ * Copyright (c) 2013 Samsung Electronics Co., Ltd.
*
- * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * 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://www.apache.org/licenses/LICENSE-2.0
+ * 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,
+ * distributed under the License is distributed on an AS IS BASIS,
* WITHOUT 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__
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));
+task_mgr_error_e list_create();
+void list_destroy(Eina_List *pkg_list);
+Eina_List *list_pkg_list_get(void);
+void _pkglist_unretrieve_item(list_type_default_s *default_info);
#endif //__TASK_MGR_LIST_H__
/*
- * Task Manager
+ * Samsung API
+ * Copyright (c) 2013 Samsung Electronics Co., Ltd.
*
- * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * 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://www.apache.org/licenses/LICENSE-2.0
+ * 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,
+ * distributed under the License is distributed on an AS IS BASIS,
* WITHOUT 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__
#include <unistd.h>
#include <dlog.h>
+#define FONT_COLOR_RESET "\033[0m"
+#define FONT_COLOR_RED "\033[31m"
+#define FONT_COLOR_GREEN "\033[32m"
+#define FONT_COLOR_YELLOW "\033[33m"
+#define FONT_COLOR_BLUE "\033[34m"
+#define FONT_COLOR_PURPLE "\033[35m"
+#define FONT_COLOR_CYAN "\033[36m"
+#define FONT_COLOR_GRAY "\033[37m"
+
+#define WCOLOR_RED "\033[0;31m"
+#define WCOLOR_GREEN "\033[0;32m"
+#define WCOLOR_BROWN "\033[0;33m"
+#define WCOLOR_BLUE "\033[0;34m"
+#define WCOLOR_PURPLE "\033[0;35m"
+#define WCOLOR_CYAN "\033[0;36m"
+#define WCOLOR_LIGHTBLUE "\033[0;37m"
+#define WCOLOR_END "\033[0;m"
+#define MODULE_INFO (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__)
+
#undef LOG_TAG
#define LOG_TAG "TASK_MGR"
#if !defined(_D)
-#define _D(fmt, arg...) LOGD(fmt"\n", ##arg)
+#define _D(fmt, arg...) dlog_print(DLOG_DEBUG, \
+ LOG_TAG, "%s: %s(%d) > " WCOLOR_GREEN fmt WCOLOR_END, MODULE_INFO, \
+ __func__, __LINE__, ##arg)
#endif
#if !defined(_W)
-#define _W(fmt, arg...) LOGW(fmt"\n", ##arg)
+#define _W(fmt, arg...) (dlog_print(DLOG_WARN, \
+ LOG_TAG, "%s: %s(%d) > " WCOLOR_GREEN fmt WCOLOR_END, MODULE_INFO, \
+ __func__, __LINE__, ##arg))
#endif
#if !defined(_E)
-#define _E(fmt, arg...) LOGE(fmt"\n", ##arg)
+#define _E(fmt, arg...) (dlog_print(DLOG_ERROR, \
+ LOG_TAG, "%s: %s(%d) > " WCOLOR_RED fmt WCOLOR_END, MODULE_INFO, \
+ __func__, __LINE__, ##arg))
#endif
#if !defined(_SD)
-#define _SD(fmt, arg...) SECURE_LOGD(fmt"\n", ##arg)
+#define _SD(fmt, arg...) _D(fmt, arg...)
#endif
#if !defined(_SW)
-#define _SW(fmt, arg...) SECURE_LOGW(fmt"\n", ##arg)
+#define _SW(fmt, arg...) _W(fmt, arg...)
#endif
#if !defined(_SE)
-#define _SE(fmt, arg...) SECURE_LOGE(fmt"\n", ##arg)
+#define _SE(fmt, arg...) _E(fmt, arg...)
#endif
#define retvm_if_timer(timer, expr, val, fmt, arg...) do { \
--- /dev/null
+/*
+ * Samsung API
+ * Copyright (c) 2013 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 __TASK_MGR_H__
+#define __TASK_MGR_H__
+
+#include <efl_extension.h>
+enum {
+ POS_DOWN = 0,
+ POS_MOVE,
+ POS_UP,
+ POS_MAX
+};
+
+typedef struct {
+ Evas *e;
+ Evas_Object *win;
+ Evas_Object *bg;
+ Evas_Object *layout;
+ Evas_Object *scroller;
+ Evas_Object *box;
+ Eina_Bool is_scrolled;
+ Eina_List *pkg_list;
+ Eina_Bool is_widget_swipe; // widget moved :=> block scroll
+ Eina_Bool is_widget_history; // widget moved :=> block scroll
+ int deleteX, deleteY;
+ Eina_Bool is_launched;
+ Eina_Bool is_ignoring_svoice;
+ Evas_Object *moving_widget;
+ Evas_Object *deleting_widget;
+ Evas_Coord posx[POS_MAX];
+ Evas_Coord posy[POS_MAX];
+ struct timeval postime[POS_MAX];
+
+ Ecore_Animator *reverse_animator;
+ Ecore_Animator *delete_animator;
+ Eext_Circle_Surface *circle_surface;
+ Evas_Object *index;
+ Eina_Bool icon_move;
+ int root_w;
+ int root_h;
+ int cur_page;
+} main_s;
+typedef main_s *main_h;
+
+main_h main_get_info(void);
+
+#endif //__TASK_MGR_H__
--- /dev/null
+/*
+ * Samsung API
+ * Copyright (c) 2013 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 __TASK_MGR_SCROLLER_H__
+#define __TASK_MGR_SCROLLER_H__
+
+#include "util.h"
+
+task_mgr_error_e scroller_push_all_item(void *data);
+Evas_Object *scroller_create(void *data);
+void scroller_destroy(Evas_Object *scroller);
+void _index_sync(void *data);
+void index_refresh(void *data);
+Eina_Bool __check_velocity(void *data);
+int taskmanager_get_count(void *data);
+int end_taskmanager(void *data, Eina_Bool is_direct);
+void __set_reverse_animation(void *data, Evas_Object *obj);
+void unset_freeze_scroller(void *data);
+void __set_remove_animation(void *data, Evas_Object *obj);
+void close_button_disabled_set( Eina_Bool is_disabled );
+Eina_Bool _deleting_animator_cb(void *data, double pos);
+void __set_layout_color(Evas_Object *obj, int color);
+void set_freeze_scroller();
+
+#define FACTOR_A -1.59375
+#define FACTOR_B 255
+
+#endif //__TASK_MGR_SCROLLER_H__
--- /dev/null
+/*
+ * Samsung API
+ * Copyright (c) 2013 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 __TASK_MGR_UTIL_H__
+ #define __TASK_MGR_UTIL_H__
+
+
+
+/* data key */
+#define DATA_KEY_ITEM_INFO "it_if"
+#define PATH_MAX 4096 /* # chars in a path name including nul */
+/* Multi-language */
+#if !defined(_)
+#define _(str) gettext(str)
+#endif
+
+#define STYLE_EVEN_MAX 20
+#define STYLE_ODD_MAX 19
+
+static char *style_even[STYLE_EVEN_MAX] = {
+ "item/even_1",
+ "item/even_2",
+ "item/even_3",
+ "item/even_4",
+ "item/even_5",
+ "item/even_6",
+ "item/even_7",
+ "item/even_8",
+ "item/even_9",
+ "item/even_10",
+ "item/even_11",
+ "item/even_12",
+ "item/even_13",
+ "item/even_14",
+ "item/even_15",
+ "item/even_16",
+ "item/even_17",
+ "item/even_18",
+ "item/even_19",
+ "item/even_20",
+};
+
+static char *style_odd[STYLE_ODD_MAX] = {
+ "item/odd_1",
+ "item/odd_2",
+ "item/odd_3",
+ "item/odd_4",
+ "item/odd_5",
+ "item/odd_6",
+ "item/odd_7",
+ "item/odd_8",
+ "item/odd_9",
+ "item/odd_10",
+ "item/odd_11",
+ "item/odd_12",
+ "item/odd_13",
+ "item/odd_14",
+ "item/odd_15",
+ "item/odd_16",
+ "item/odd_17",
+ "item/odd_18",
+ "item/odd_19",
+};
+
+/* 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;
+
+Eina_Bool util_kill_app(const char *appid);
+Eina_Bool util_launch_app(const char *appid);
+int getEdjepath(const char *file_in, char *file_path_out, int file_path_max);
+
+
+#endif //__TASK_MGR_UTIL_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_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>
BuildRequires: gettext-tools
BuildRequires: pkgconfig(dlog)
BuildRequires: pkgconfig(elementary)
+BuildRequires: pkgconfig(efl-extension)
BuildRequires: pkgconfig(capi-system-info)
+BuildRequires: pkgconfig(capi-system-system-settings)
BuildRequires: pkgconfig(capi-appfw-package-manager)
BuildRequires: pkgconfig(capi-appfw-app-manager)
BuildRequires: cmake
%{AppInstallPath}/bin/task-mgr
%{AppInstallPath}/res/*
%{_datarootdir}/packages/%{name}.xml
-/etc/smack/accesses.d/%{name}.efl
-%{AppInstallPath}/res/locale/*/LC_MESSAGES/*
-/usr/share/packages/org.tizen.task-mgr.xml
/usr/share/icons/org.tizen.task-mgr.png
--- /dev/null
+
+# Project Name
+APPNAME = task-mgr
+
+# Project Type
+type = app
+
+# Project Profile
+profile = wearable-3.0
+
+# C Sources
+USER_SRCS = src/main.c src/item.c src/list.c src/scroller.c src/util.c
+USER_SRCS_ABS =
+
+# EDC Sources
+USER_EDCS =
+
+# PO Sources
+USER_POS =
+
+# User Defines
+USER_DEFS =
+USER_CPP_DEFS =
+
+# User Undefines
+USER_UNDEFS =
+USER_CPP_UNDEFS =
+
+# User Libraries
+USER_LIBS =
+
+# User Objects
+USER_OBJS =
+USER_OBJS_ABS =
+
+# User Includes
+## C Compiler
+USER_INC_DIRS = inc
+USER_INC_DIRS_ABS =
+USER_INC_FILES =
+USER_INC_FILES_ABS =
+## C++ Compiler
+USER_CPP_INC_DIRS =
+USER_CPP_INC_DIRS_ABS =
+USER_CPP_INC_FILES =
+USER_CPP_INC_FILES_ABS =
+
+# User Library Path
+USER_LIB_DIRS = lib
+USER_LIB_DIRS_ABS =
+
+# EDC Resource Path
+USER_EDCS_IMAGE_DIRS = edje/images
+USER_EDCS_IMAGE_DIRS_ABS =
+USER_EDCS_SOUND_DIRS = edje/sounds
+USER_EDCS_SOUND_DIRS_ABS =
+USER_EDCS_FONT_DIRS = edje/fonts
+USER_EDCS_FONT_DIRS_ABS =
+
+# EDC Flags
+USER_EXT_EDC_KEYS = EDC0
+
+USER_EXT_EDC0_EDCS = res/edje/item.edc res/edje/layout.edc
+USER_EXT_EDC0_EDCS_IMAGE_DIRS = res/edje/images
+USER_EXT_EDC0_EDCS_IMAGE_DIRS_ABS =
+USER_EXT_EDC0_EDCS_SOUND_DIRS = edje/sounds
+USER_EXT_EDC0_EDCS_SOUND_DIRS_ABS =
+USER_EXT_EDC0_EDCS_FONT_DIRS = edje/fonts
+USER_EXT_EDC0_EDCS_FONT_DIRS_ABS =
+
+# Resource Filter
+USER_RES_INCLUDE =
+USER_RES_EXCLUDE =
+
+++ /dev/null
-ADD_SUBDIRECTORY(edje)
-#ADD_SUBDIRECTORY(images)
-ADD_SUBDIRECTORY(po)
+++ /dev/null
-../../include/conf.h
\ No newline at end of file
/*
- * Task Manager
+ * Task Manager
+ * Copyright (c) 2013 Samsung Electronics Co., Ltd.
*
- * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * 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://www.apache.org/licenses/LICENSE-2.0
+ * 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,
+ * distributed under the License is distributed on an AS IS BASIS,
* WITHOUT 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 {
+#define WIN_W 360
+#define WIN_H 360
+//#define WIDGET_WIDTH 360
+//#define WIDGET_HEIGHT 360
-styles {
- style {
- name: "item_style";
- base: "font=Tizen:style=Bold font_size=32 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";
+//#define DEFAULT_FONT "Tizen"
+//#define DEFULAT_FONT_CLASS "tizen"
+base_scale : 1.3;
+color_classes{
+ color_class{
+ name: "AO0121L1";
+ color: 255 255 255 0;
+ }
+ color_class{
+ name: "AO0121L2";
+ color: 0 0 0 102;
+ }
+ color_class{
+ name: "AO0121L3";
+ color: 0 0 0 0;
+ }
+ color_class{
+ name: "AO014L1";
+ color: 255 255 255 255;
+ }
+ color_class{
+ name: "AO014L1P";
+ color: 255 255 255 127.5;
+ }
+ color_class{
+ name: "AO014L2";
+ color: 183.6 45.9 45.9 255;
+ }
+ color_class{
+ name: "AO014L2P";
+ color: 183.6 45.9 45.9 127.5;
+ }
+ color_class{
+ name: "AO014L3";
+ color: 0 0 0 89.25;
+ }
+ color_class{
+ name: "AT0111";
+ color: 255 255 255 255;
+ }
+ color_class{
+ name: "AO0111";
+ color: 38.25 38.25 38.25 255;
+ }
}
-}
-
-images {
- image: "clear_all_button_icon.png" COMP;
- image: "clear_all_button_icon_disable.png" COMP;
-}
-externals {
- external: "feedback";
-}
+ group {
+ name : "recent";
-collections {
- base_scale: 2.6;
- plugins {
- plugin {
- name: "touch_sound";
- source: "feedback";
- param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP";
+ images {
+ image : "recent_circle_stroke.png" COMP;
+ image : "recent_circle_bg_mask.png" COMP;
+ image : "widget_circle_bg_ef1.png" COMP;
+ image : "widget_circle_bg_ef2.png" COMP;
+ image : "b_recent_widget_del_bg.png" COMP;
+ image : "b_recent_widget_del_icon.png" COMP;
+ image : "b_recent_widget_del_shadow.png" COMP;
}
- }
- group {
- name: "item";
+
parts {
part {
- name: "bg";
- type: RECT;
- scale: 1;
+ name : "color_clipper";
+ type : RECT;
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;
+ state : "default" 0.0;
+ color : 255 255 255 255;
}
- }
- part{
- name: "line";
- type: RECT;
- scale: 1;
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;
+ state : "closeall" 0.0;
+ color : 255 255 255 0;
}
}
part {
- name: "inner";
- type: SWALLOW;
- scale: 1;
+ name : "bg";
+ type : SPACER;
description {
- state: "default" 0.0;
- rel1.relative: 0.0 0.0;
- rel2.relative: 1.0 1.0;
- visible: 1;
- fixed: 1 1;
+ state : "default" 0.0;
}
}
- }
- }
- group {
- name: "item_inner";
- parts {
part {
- name: "bg";
- type: RECT;
- scale: 1;
+ name : "txt.app_name";
+ type : SWALLOW;
+ clip_to : "color_clipper";
+ scale : 1;
+ description {
+ state : "default" 0.0;
+ align : 0.5 0.5;
+ fixed : 1.0 1.0;
+ rel1 {
+ relative : 102/WIN_W 27/WIN_H;
+ to : "bg";
+ }
+ rel2 {
+ relative : (WIN_W-102)/WIN_W (27+39)/WIN_H;
+ to : "bg";
+ }
+
+ color_class : "AT0111";
+ }
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;
+ state : "show" 0.0;
+ inherit : "default" 0.0;
+ visible : 1;
}
- }
- part {
- name: "icon";
- type: SWALLOW;
- scale: 1;
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;
+ state : "hide" 0.0;
+ inherit : "default" 0.0;
+ visible : 0;
}
}
part {
- name: "name";
- type: TEXTBLOCK;
- scale: 1;
+ name : "img.clipper";
+ type : RECT;
+ clip_to : "color_clipper";
+ scale : 1;
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;
+ state : "default" 0.0;
+ fixed : 1 1;
+
+ rel1 {
+ relative : 72/360 72/360;
+ to : "bg";
}
- align: 0.0 0.5;
- visible: 1;
+ rel2 {
+ relative : 288/360 288/360;
+ to : "bg";
+ }
+ }
+ description {
+ state : "closeall" 0.0;
+ inherit : "default" 0.0;
+ min : 176 176;
+ max : 176 176;
}
}
part {
- name: "event";
- type: RECT;
+ name : "img.app_image";
+ type : SWALLOW;
+ scale : 1;
+ mouse_events : 1;
+ repeat_events : 0;
+ clip_to : "img.clipper";
description {
- state: "default" 0.0;
- color: 0 0 0 0;
- rel1 { relative: 0.0 0.0; to: "icon"; }
- rel2 { relative: 1.0 1.0; to: "icon"; }
- visible: 1;
+ state : "default" 0.0;
+ fixed : 1 1;
+ rel1 {
+ relative : 72/360 72/360;
+ to : "bg";
+ }
+ rel2 {
+ relative : 288/360 288/360;
+ to : "bg";
+ }
+ }
+ description {
+ state : "icon_displaying" 0.0;
+ inherit : "default" 0.0;
+ min : 245 245;
+ max : 245 245;
+ }
+ description {
+ state : "closeall" 0.0;
+ inherit : "default" 0.0;
+ min : 176 176;
+ max : 176 176;
}
}
- } //parts
- programs {
- program {
- name: "click,sound";
- signal: "clicked";
- source: "event";
- action: RUN_PLUGIN "touch_sound";
- }
- } //programs
- } //group
-
- group {
- name: "clear_item";
- parts {
part {
- name: "bg";
- type: RECT;
- scale: 1;
+ name : "img.circle_bg_mask";
+ type : IMAGE;
+ scale : 1;
+ mouse_events : 1;
+ repeat_events : 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;
+ state : "default" 0.0s;
+ fixed : 1 1;
+ rel1 {
+ relative : 72/360 72/360;
+ to : "bg";
+ }
+ rel2 {
+ relative : 288/360 288/360;
+ to : "bg";
+ }
+ image.normal : "recent_circle_bg_mask.png";
+ // color_class : AO0111;
+ color : 0 0 0 255;
+ }
+ description {
+ state : "closeall" 0.0;
+ inherit : "default" 0.0;
+ min : 176 176;
+ max : 176 176;
}
}
part {
- name: "top_pad";
- type: SPACER;
- scale: 1;
+ name : "img.circle_bg_ef2";
+ type : IMAGE;
+ scale : 1;
+ mouse_events : 1;
+ repeat_events : 1;
+ clip_to : "color_clipper";
description {
- state: "default" 0.0;
- rel1 { relative: 0.0 0.0; to: "bg"; }
- rel2 { relative: 1.0 0.0; to: "bg"; }
- min: 0 CLEAR_PAD_HEIGHT;
- align: 0.5 0.0;
+ state : "default" 0.0s;
+ fixed : 1 1;
+ rel1 {
+ relative : 47/360 47/360;
+ to : "bg";
+ }
+ rel2 {
+ relative : 313/360 313/360;
+ to : "bg";
+ }
+ image.normal : "widget_circle_bg_ef2.png";
+ color_class : AO0121L2;
}
- }
- part{
- name: "line";
- type: RECT;
- scale: 1;
description {
- state: "default" 0.0;
- color: 255 255 255 255;
- rel1 { relative: 0.5 0.0; offset: 0 5; to: "clear_img"; }
- rel2 { relative: 0.5 1.0; to: "bg"; }
- min: CLEAR_LINE_WIDTH 0;
- visible: 1;
- align: 0.5 0.5;
- fixed: 1 0;
+ state : "closeall" 0.0;
+ inherit : "default" 0.0;
+ min : 176 176;
+ max : 176 176;
}
}
part {
- name: "clear_img";
- type: IMAGE;
- scale: 1;
+ name : "img.circle_bg_ef1";
+ type : IMAGE;
+ scale : 1;
+ mouse_events : 1;
+ repeat_events : 1;
+ clip_to : "color_clipper";
description {
- state: "default" 0.0;
- rel1 { relative: 0.5 1.0; to: "top_pad"; }
- rel2 { relative: 0.5 1.0; to: "top_pad"; }
- image {
- normal: "clear_all_button_icon.png";
+ state : "default" 0.0s;
+ fixed : 1 1;
+ rel1 {
+ relative : 47/360 47/360;
+ to : "bg";
}
- visible: 1;
- min: CLEAR_ICON_WIDTH CLEAR_ICON_HEIGHT;
- align: 0.5 0.0;
- fixed: 1 1;
+ rel2 {
+ relative : 313/360 313/360;
+ to : "bg";
+ }
+ image.normal : "widget_circle_bg_ef1.png";
+ color_class : AO0121L3;
}
description {
- state: "no,apps" 0.0;
- inherit: "default" 0.0;
- image {
- normal: "clear_all_button_icon_disable.png";
- }
+ state : "closeall" 0.0;
+ inherit : "default" 0.0;
+ min : 176 176;
+ max : 176 176;
}
}
- part {
- name: "name";
- type: TEXTBLOCK;
- scale: 1;
+
+ part{
+ name : "delete.touch";
+ type : RECT;
+ scale : 1;
+ mouse_events : 1;
+ repeat_events : 0;
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;
+ state : "default" 0.0;
+ min : 75 75;
+ max : 75 75;
+ fixed : 1 1;
+ color : 255 255 255 0;
+ rel1 {
+ relative : (216-30)/216 40/216 ;
+ to : "img.app_image";
+ }
+ rel2 {
+ relative : (216-30)/216 40/216 ;
+ to : "img.app_image";
}
- align: 0.0 0.5;
- visible: 1;
- fixed: 1 0;
+ // color: 255 0 0 255;
+ }
+ part {
+ name : "img.recent_delete_bg";
+ type : IMAGE ;
+ scale : 1;
+ mouse_events : 0;
+ repeat_events : 0;
+ clip_to : "color_clipper";
+ description{
+ state : "default" 0.0;
+ fixed : 1 1;
+ rel1 {
+ relative : (216-63)/216 0;
+ to : "img.app_image";
+ }
+ rel2 {
+ relative : (216)/216 63/216 ;
+ to : "img.app_image";
+ }
+ image.normal : "b_recent_widget_del_bg.png";
+ color_class : AO014L1;
+ }
+ description {
+ state : "pressed" 0.0;
+ inherit : "default" 0.0;
+ color_class : AO014L1P;
}
description {
- state: "no,apps" 0.0;
- inherit: "default" 0.0;
- color: 255 255 255 124;
+ state : "closeall" 0.0;
+ inherit : "default" 0.0;
+ min : 40 40;
+ max : 40 40;
+ color : 255 255 255 0;
}
}
part {
- name: "event";
- type: RECT;
+ name : "img.recent_delete_icon";
+ type : IMAGE ;
+ scale : 1;
+ mouse_events : 1;
+ repeat_events : 1;
+ clip_to : "color_clipper";
+ description{
+ state : "default" 0.0s;
+ fixed : 1 1;
+ rel1 {
+ relative : (216-63)/216 0;
+ to : "img.app_image";
+ }
+ rel2 {
+ relative : (216)/216 63/216 ;
+ to : "img.app_image";
+ }
+ image.normal : "b_recent_widget_del_icon.png";
+ color_class : AO014L2;
+ }
description {
- state: "default" 0.0;
- color: 0 0 0 0;
- rel1.to: "clear_img";
- rel2.to: "clear_img";
- visible: 1;
+ state : "pressed" 0.0;
+ inherit : "default" 0.0;
+ color_class : AO014L2P;
+ }
+ description {
+ state : "closeall" 0.0;
+ inherit : "default" 0.0;
+ min : 40 40;
+ max : 40 40;
+ color : 255 255 255 0;
+ }
+ }
+ part{
+ name : "img.recent_delete_icon_shadow";
+ type : IMAGE ;
+ scale : 1;
+ mouse_events : 1;
+ repeat_events : 1;
+ clip_to : "color_clipper";
+ description{
+ state : "default" 0.0s;
+ fixed : 1 1;
+ rel1 {
+ relative : (216-63)/216 0 ;
+ to : "img.app_image";
+ }
+ rel2 {
+ relative : (216)/216 63/216 ;
+ to : "img.app_image";
+ }
+ image.normal : "b_recent_widget_del_shadow.png";
+ color_class : AO014L3;
}
description {
- state: "no,apps" 0.0;
- inherit: "default" 0.0;
- visible: 0;
+ state : "closeall" 0.0;
+ inherit : "default" 0.0;
+ min : 40 40;
+ max : 40 40;
+ color : 255 255 255 0;
}
}
- } //parts
+
+ }
+
programs {
program {
- name: "click,sound";
- signal: "mouse,clicked,1";
- source: "event";
- action: RUN_PLUGIN "touch_sound";
+ name : "show,icon";
+ signal : "show,icon";
+ source : "bg";
+ action : STATE_SET "icon_displaying" 0.0;
+ target : "img.app_image";
+ }
+
+ program {
+ name : "closeall";
+ signal : "closeall";
+ source : "bg";
+ action : STATE_SET "closeall" 0.0;
+ target : "img.clipper";
+ target : "img.app_image";
+ target : "img.circle_bg_mask";
+ target : "img.circle_bg_ef1";
+ target : "img.circle_bg_ef2";
+ target : "color_clipper";
+ target : "img.recent_delete_bg";
+ target : "img.recent_delete_icon";
+ target : "img.recent_delete_icon_shadow";
+ transition : LINEAR 0.35;
+ }
+ program {
+ name : "closeall_center";
+ signal : "closeall_center";
+ source : "bg";
+ action : STATE_SET "closeall" 0.0;
+ target : "img.clipper";
+ target : "img.app_image";
+ target : "img.circle_bg_mask";
+ target : "img.circle_bg_ef1";
+ target : "img.circle_bg_ef2";
+ target : "color_clipper";
+ target : "img.recent_delete_bg";
+ target : "img.recent_delete_icon";
+ target : "img.recent_delete_icon_shadow";
+ transition : LINEAR 0.35;
+ after : "closeall_emit";
+ }
+ program {
+ name : "closeall_emit";
+ signal : "closeall_emit";
+ source : "bg";
+ action : SIGNAL_EMIT "closeall_end" "closeall";
+ }
+ program {
+ name : "delete,clicked";
+ signal : "mouse,clicked,1";
+ source : "delete.touch";
+ action : SIGNAL_EMIT "delete_button,clicked" "clicked";
+ }
+ program {
+ name : "app,clicked";
+ signal : "mouse,clicked,1";
+ source : "img.app_image";
+ action : SIGNAL_EMIT "app_icon,clicked" "clicked";
}
program {
- name: "no,app";
- signal: "no,apps";
- source: "clear";
- action: STATE_SET "no,apps" 0.0;
- target: "clear_img";
- target: "name";
- target: "event";
+ name : "close,pressed";
+ signal : "mouse,down,1";
+ source : "delete.touch";
+ action : SIGNAL_EMIT "delete_button,pressed" "pressed";
+ action : STATE_SET "pressed" 0.0;
+ target : "img.recent_delete_bg";
+ target : "img.recent_delete_icon";
+ after : "block,scroll";
+ }
+ program {
+ name : "block,scroll";
+ signal : "mouse,down,1";
+ source : "delete.touch";
+ action : SIGNAL_EMIT "delete_button,pressed" "pressed";
+ }
+ program {
+ name : "close,unpressed";
+ signal : "mouse,up,1";
+ source : "delete.touch";
+ action : SIGNAL_EMIT "delete_button,unpressed" "unpressed";
+ action : STATE_SET "default" 0.0;
+ target : "img.recent_delete_bg";
+ target : "img.recent_delete_icon";
+ after : "unblock,scroll";
+ }
+ program {
+ name : "unblock,scroll";
+ signal : "mouse,up,1";
+ source : "delete.touch";
+ action : SIGNAL_EMIT "delete_button,unpressed" "unpressed";
+ }
+ program {
+ name : "show,name";
+ signal : "show,name";
+ source : "bg";
+ action : STATE_SET "show" 0.0 ;
+ target : "txt.app_name";
+ transition : LINEAR 0.35;
+ }
+ program {
+ name : "hide,name";
+ signal : "hide,name";
+ source : "bg";
+ action : STATE_SET "hide" 0.0;
+ target : "txt.app_name";
+ transition : LINEAR 0.35;
}
}
- } //group
+ }
} //collections
/*
- * Task Manager
+ * Task Manager
+ * Copyright (c) 2013 Samsung Electronics Co., Ltd.
*
- * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * 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://www.apache.org/licenses/LICENSE-2.0
+ * 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,
+ * distributed under the License is distributed on an AS IS BASIS,
* WITHOUT 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 : 1.3;
+ color_classes{
+ color_class{
+ name: "AO0111";
+ color: 38.25 38.25 38.25 255;
+ }
+ color_class{
+ name: "AO0112";
+ color: 0 0 0 255;
+ }
+ color_class{
+ name: "AO0113";
+ color: 94.35 94.35 94.35 255;
+ }
+ color_class{
+ name: "AO0131";
+ color: 255 255 255 38.25;
+ }
+ color_class{
+ name: "AO0131P";
+ color: 255 255 255 127.5;
+ }
+ color_class{
+ name: "AO0132";
+ color: 255 255 255 255;
+ }
+ color_class{
+ name: "AO0132P";
+ color: 255 255 255 127.5;
+ }
-styles {
- style {
- name: "no_item_style";
- base: "font=Tizen:style=Bold font_size=32 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";
+ color_class{
+ name: "AO015";
+ color: 51 51 51 178.5;
+ }
+ color_class{
+ name: "AO015P";
+ color: 102 102 102 178.5;
+ }
+ color_class{
+ name: "AO015D";
+ color: 33.15 33.15 33.15 255;
+ }
+ color_class{
+ name: "AT0111";
+ color: 255 255 255 255;
+ }
+ color_class{
+ name: "AT0121";
+ color: 255 255 255 255;
+ }
+ color_class{
+ name: "AT0121P";
+ color: 255 255 255 127.5;
+ }
+ color_class{
+ name: "AT013";
+ color: 255 255 255 255;
+ }
+ color_class{
+ name: "AT013P";
+ color: 255 255 255 255;
+ }
+ color_class{
+ name: "AT013D";
+ color: 255 255 255 51;
+ }
+ color_class{
+ name: "AT014";
+ color: 255 255 255 255;
+ }
+ color_class{
+ name: "AT015";
+ color: 76.5 207.4 255 255;
+ }
+ color_class{
+ name: "AT015P";
+ color: 76.5 207.4 255 127.5;
+ }
+ color_class{
+ name: "AT015D";
+ color: 76.5 207.4 255 51;
+ }
}
+ styles {
+ style {
+ name: "style_no_apps";
+ base: "font="TIZEN":style=Regular text_class="AT013" font_size=28 align=center color=#FFFFFF wrap=mixed color_class=AT013";
+ tag: "br" "\n";
+ tag: "hilight" "+ color=#ffff";
+ tag: "b" "+ color=#ffff";
+ tag: "tab" "\t";
+ }
+ style {
+ name: "style_recent_name";
+ base: "font="TIZEN":style=Medium text_class="AT0111" font_size=30 align=center color=#FFFFFF wrap=mixed color_class=AT0111";
+ tag: "br" "\n";
+ tag: "hilight" "+ color=#ffff";
+ tag: "b" "+ color=#ffff";
+ tag: "tab" "\t";
+ }
}
-collections {
- base_scale: 2.6;
- group {
- name: "layout";
+group {
+ name : "taskmanager-main";
+
+ images {
+ image : "recent_no_recent_icon.png" COMP;
+ image : "tw_no_item_bg.png" COMP;
+ image : "tw_bottom_btn_bg.png" COMP;
+ }
+
parts {
part {
- name: "bg";
- type: SWALLOW;
- scale: 1;
+ name : "bg";
+ type : RECT;
+ description {
+ state : "default" 0.0;
+ color_class : AO0112;
+ }
+ /* description
+ {
+ state : "noitem" 0.0;
+ color_class : AO0112;
+ }*/
+
+ }
+ part {
+ name : "color_clipper";
+ type : RECT;
+ description {
+ state : "default" 0.0;
+ color : 255 255 255 255;
+ }
+ description {
+ state : "closeall" 0.0;
+ color : 255 255 255 0;
+ }
+ }
+ part {
+ name : "img.no_recent.bg";
+ type : IMAGE;
+ scale : 1;
description {
- state: "default" 0.0;
- rel1 { relative: 0.0 0.0; }
- rel2 { relative: 1.0 1.0; }
- visible: 1;
+ state : "default" 0.0;
+ visible : 0;
+ }
+ description {
+ state : "show" 0.0;
+ visible : 1;
+ min : 360 360;
+ max : 360 360;
+ rel1 {
+ relative : 0.5 0.5;
+ to : "bg";
+ }
+ rel2 {
+ relative : 0.5 0.5;
+ to : "bg";
+ }
+
+ fixed : 1 1;
+ color_class : "AO0113";
+ image.normal : "tw_no_item_bg.png";
}
}
part {
- name: "scroller";
- type: SWALLOW;
- scale: 1;
+ name : "img.no_recent_clipper";
+ type : RECT;
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;
+ state : "default" 0.0;
+ color : 255 255 255 204;
}
}
part {
- name: "no,apps,txt";
- type: TEXTBLOCK;
- scale: 1;
+ name : "img.no_recent";
+ type : IMAGE;
+ scale : 1;
+ clip_to : "img.no_recent_clipper";
+ description {
+ state : "default" 0.0;
+ visible : 0;
+ }
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"; }
+ state : "show" 0.0;
+ visible : 1;
+
+ min : 98 98;
+ max : 98 98;
+
+ rel1 {
+ relative : 0.5 0.5;
+ to : "bg";
+ }
+ rel2 {
+ relative : 0.5 0.5;
+ to : "bg";
+ }
+
+ fixed : 1 1;
+ image.normal : "recent_no_recent_icon.png";
+ }
+ }
+ part {
+ name : "txt.recent_title";
+ type : TEXTBLOCK;
+ scale : 1;
+ description {
+ state : "default" 0.0;
+ visible : 1;
+ rel1.relative : 64/360 51/360;
+ rel2.relative : 296/360 90/360;
+ align : 0.5 0.5;
+ fixed : 1 1;
text {
- text: " ";
- style: "no_item_style";
- align: 0.5 0.5;
+ style : style_recent_name;
+ min : 0 1;
+ align : 0.5 0.5;
}
- visible: 0;
}
+ }
+ part {
+ name : "txt.no_apps";
+ type : TEXTBLOCK;
+ scale : 1;
description {
- state: "show" 0.0;
- inherit: "default" 0.0;
- visible: 1;
+ state : "default" 0.0;
+ visible : 1;
+ color: 255 0 0 255;
}
+ description {
+ state : "show" 0.0;
+ visible : 1;
+ rel1.relative : 60/360 263/360;
+ rel2.relative : 300/360 300/360;
+ align : 0.5 0.5;
+ fixed : 1 1;
+ color_class : "AT014";
+ text {
+ text_class: "AT014";
+ style : style_no_apps;
+ min : 0 1;
+ align : 0.5 0.5;
+ }
+ }
+ }
+ 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";
+ }
+ }
+ }
+ part {
+ name : "index";
+ type : SWALLOW;
+ clip_to : "color_clipper";
+ scale : 1;
+ repeat_events: 1 ;
+ description {
+ state : "default" 0.0;
+ }
+ }
+ /* part {
+ name : "blocking";
+ type : RECT;
+ scale : 1;
+ description {
+ state : "default" 0.0;
+ color : 0 0 0 0;
+ rel1.to : "bg";
+ rel2.to : "bg";
+ }
+ description {
+ state : "unblocked" 0.0;
+ visible : 0;
+ }
+ }*/
+ part {
+ name: "close_all_bg";
+ type: IMAGE;
+ scale: 1;
+ mouse_events: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.5 1.0; to: "bg"; }
+ rel2 { relative: 0.5 1.0; to: "bg"; }
+ image {
+ normal: "tw_bottom_btn_bg.png";
+ }
+ align: 0.5 1.0;
+ fixed : 1 1;
+ min : 360 100;
+ max : 360 100;
+ color_class: "AO015";
+ fixed: 1 1;
+ //visible: 0;
+ }
+ description {
+ state: "pressed" 0.50;
+ inherit: "default" 0.0;
+ color_class: "AO015P";
+ visible: 1;
+ }
+ description {
+ state: "show" 0.50;
+ inherit: "default" 0.0;
+ visible: 1;
}
- } //parts
+ description {
+ state: "disabled" 0.50;
+ inherit: "default" 0.0;
+ color_class: "AO015D";
+ visible: 1;
+ }
+ }
+ part {
+ name: "close_all_text";
+ type: TEXTBLOCK;
+ scale: 1;
+ repeat_events: 1;
+ description {
+ state: "default" 0.0;
+ rel1 { relative: 0.0 0.0; to: "close_all_bg"; }
+ rel2 { relative: 1.0 1.0; to: "close_all_bg"; }
+ min : 160 42;
+ max : 160 42;
+ align: 0.5 0.5;
+ fixed: 1 1;
+ visible: 0;
+ color_class : "AT013";
+ text {
+ text_class: "AT013";
+ style : style_no_apps;
+ min : 0 1;
+ align : 0.5 0.5;
+ }
+ }
+ description {
+ state: "pressed" 0.50;
+ inherit: "default" 0.0;
+ color_class: "AO015P";
+ visible: 1;
+ }
+ description {
+ state: "show" 0.50;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "disabled" 0.50;
+ inherit: "default" 0.0;
+ color_class: "AO015D";
+ visible: 1;
+ }
+ }
+ }
programs {
program {
- signal: "no,apps,txt,show";
- source: "no,apps,txt";
- action: STATE_SET "show" 0.0;
- target: "no,apps,txt";
+ name : "show,txt.no_apps";
+ signal : "show,txt.no_apps";
+ source : "txt.no_apps";
+ action : STATE_SET "show" 0.0;
+ target : "txt.no_apps";
+ target : "img.no_recent";
+ target : "img.no_recent.bg";
+ target : "close_all_text";
+ }
+ /* program {
+ name : "set,unblock";
+ signal : "set,unblock";
+ source : "blocking";
+ action : STATE_SET "unblocked" 0.0;
+ target : "blocking";
+ }*/
+
+ program {
+ name : "close,clicked";
+ signal : "mouse,clicked,1";
+ source : "close_all_bg";
+ action : SIGNAL_EMIT "close_button,clicked" "clicked";
+ }
+ program {
+ name : "close,pressed";
+ signal : "mouse,down,1";
+ source : "close.bg";
+ action : STATE_SET "pressed" 0.0;
+ target : "close_all_text";
+ target : "close_all_bg";
+ }
+ program {
+ name : "close,unpressed";
+ signal : "mouse,up,1";
+ source : "close.bg";
+ action : STATE_SET "default" 0.0;
+ target : "close_all_text";
+ target : "close_all_bg";
}
program {
- signal: "no,apps,txt,hide";
- source: "no,apps,txt";
- action: STATE_SET "default" 0.0;
- target: "no,apps,txt";
+ name : "close,show";
+ signal : "set,close,show";
+ source : "close.bg";
+ action : STATE_SET "show" 0.0;
+ target : "close_all_text";
+ target : "close_all_bg";
+ }
+ program {
+ name : "close,default";
+ signal : "set,close,default";
+ source : "close.bg";
+ action : STATE_SET "default" 0.0;
+ target : "close_all_text";
+ target : "close_all_bg";
+ }
+ program {
+ name : "closeall";
+ signal : "closeall";
+ source : "bg";
+ action : STATE_SET "closeall" 0.0;
+ target : "color_clipper";
+ // transition : LINEAR 0.35;
}
}
- } //group
+ }
} //collections
/*
- * Task Manager
+ * Task Manager
+ * Copyright (c) 2013 Samsung Electronics Co., Ltd.
*
- * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * 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://www.apache.org/licenses/LICENSE-2.0
+ * 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,
+ * distributed under the License is distributed on an AS IS BASIS,
* WITHOUT 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 "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)
+#define TASKMGR_SIZE 360
+#define VERTICAL_SCROLL_THRESHOLD 20
+#define HORIZONTAL_SCROLL_THRESHOLD 15
+
+list_type_default_s *item_get_info(Evas_Object *item)
{
retv_if(!item, NULL);
list_type_default_s *info = NULL;
return info;
}
-
-
-extern void item_clear_set_disable(Evas_Object *scroller)
+Ecore_Animator *reverse_animator_add(void *data, Evas_Object *obj)
{
- 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");
-
+ main_h main_info = data;
+ retv_if(main_info == NULL, NULL);
+ retv_if(obj == NULL, NULL);
+
+ evas_object_hide(obj);
+ main_info->moving_widget = obj;
+ Ecore_Animator *animator = ecore_animator_timeline_add(0.2, _deleting_animator_cb, data);
+ return animator;
}
-
-
-static void _clear_all_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+static double _get_move(Evas_Coord x1, Evas_Coord y1, Evas_Coord x2, Evas_Coord y2)
{
- Evas_Object *scroller = data;
- ret_if(!scroller);
- _D("clear all item is clicked");
- scroller_pop_all_item(scroller, 1);
+ return ((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
}
-
-
-extern Evas_Object *item_clear_all_create(Evas_Object *scroller)
+void _mouse_up_cb_t(void *data, Evas * evas, Evas_Object * obj, void *event_info)
{
- retv_if(!scroller, NULL);
-
- Evas_Object *clear_item = NULL;
+ int i = 0;
+ _D("Vijay Mouse up reverse animation");
- clear_item = elm_layout_add(scroller);
- retv_if(!clear_item, NULL);
+ main_h main_info = data;
+ ret_if(main_info == 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;
+ if (main_info->reverse_animator) {
+ _D("reverse animation");
+ return;
}
- elm_object_part_text_set(clear_item, "name", _("IDS_TASKMGR_BUTTON_CLEAR_ALL"));
-
- elm_object_signal_callback_add(clear_item, "mouse,clicked,1", "event", _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);
+ Evas_Event_Mouse_Down *ev = event_info;
+ main_info->posx[POS_UP] = ev->canvas.x;
+ main_info->posy[POS_UP] = ev->canvas.y;
+
+ gettimeofday(&(main_info->postime[POS_UP]), NULL);
+
+ _D("swipe(%d)", main_info->is_widget_swipe);
+ main_info->icon_move = false;
+
+ if (main_info->is_widget_swipe == EINA_TRUE) {
+ if (_get_move(main_info->posx[POS_UP], main_info->posy[POS_UP], main_info->posx[POS_DOWN], main_info->posy[POS_DOWN]) > ((main_info->root_h/2) * (main_info->root_h/2))) {
+ /* to delete */
+ list_type_default_s *task = NULL;
+ task = item_get_info(obj);
+ if (task) {
+ _D("### count(%d)", taskmanager_get_count(main_info));
+ /* checking num : end taskmanager */
+ if (taskmanager_get_count(main_info) == 0) {
+ close_button_disabled_set(EINA_TRUE);
+ end_taskmanager(main_info, EINA_FALSE);
+
+ /* unfreeze */
+ unset_freeze_scroller(main_info);
+ } else {
+ main_info->reverse_animator = reverse_animator_add(main_info, obj);
+ if (main_info->reverse_animator == NULL) {
+ _E("ecore_animator_add() failed");
+ elm_box_unpack(main_info->box, obj);
+ evas_object_data_del(obj, DATA_KEY_ITEM_INFO);
+ evas_object_del(obj);
+ obj = NULL;
+ }
+ }
+ if (obj != NULL) {
+ _D("removed (%s)", task->name);
+ item_terminate(obj);
+ elm_box_unpack(main_info->box, obj);
+ item_destroy(obj);
+ index_refresh(main_info);
+ }
+ } else {
+ _E("NO TASK");
+ /* to origin */
+ __set_reverse_animation(main_info, obj);
+ }
+ } else if (__check_velocity(main_info)) {
+ int ox, oy, oh, ow ;
+ evas_object_geometry_get(obj, &ox, &oy, &ow, &oh);
+ main_info->deleteX = ox; main_info->deleteY = oy ;
+ __set_remove_animation(main_info, obj);
+ } else {
+ elm_object_signal_emit(obj, "show,name", "bg");
+ /* to origin */
+ evas_object_resize(obj, TASKMGR_SIZE, TASKMGR_SIZE);
+ __set_reverse_animation(main_info, obj);
+ }
} else {
- elm_box_pack_before(box, item_outer, next_item);
+ if (main_info->is_scrolled == EINA_TRUE) {
+ ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
+ _E("event onhold flag set !!!");
+ }
+ // unfreeze
+ unset_freeze_scroller(main_info);
}
- 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;
+ main_info->is_widget_swipe = EINA_FALSE;
+ main_info->is_scrolled = EINA_FALSE ;
+ for (i = 0; i < POS_MAX; i++) {
+ main_info->posx[i] = 0;
+ main_info->posy[i] = 0;
}
- 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)
+void _mouse_move_cb_t(void *data, Evas * evas, Evas_Object * obj, void *event_info)
{
- 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;
- }
+ static Eina_Bool is_revised = EINA_FALSE;
+ int ox, oy, oh, ow;
+ int distance = 0;
+ int color = 0;
+ main_h main_info = data;
+ ret_if(main_info == NULL);
+ if (main_info->reverse_animator) {
+ _D("reverse animation");
+ return;
}
- 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;
- }
+ if (main_info->is_scrolled) {
+ _D("horizontal scrolling~~~~ so skip move!!!!!");
+ return;
}
- return ECORE_CALLBACK_RENEW;
+ evas_object_geometry_get(obj, &ox, &oy, &ow, &oh);
-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);
+ if ((main_info->is_widget_swipe == false) && (abs(ox) > HORIZONTAL_SCROLL_THRESHOLD)) {
+ _D("item is moved more than horizontal threshold(%d)", ox);
+ return ;
}
- 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;
+ list_type_default_s *task = NULL;
+ task = item_get_info(obj);
+ _D("task->appid: %s task->name: %s", task->appid, task->name);
+ Eina_List *list = elm_box_children_get(main_info->box);
+ int cur_page;
+ elm_scroller_current_page_get(main_info->scroller, &cur_page, NULL);
- int item_outer_w, item_outer_h;
+ Evas_Object *curr_widget = NULL;
+ curr_widget = eina_list_nth(list, cur_page);
- 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, ELM_SCALE_SIZE(item_outer_w), ELM_SCALE_SIZE(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);
+ list_type_default_s *info = NULL;
+ info = item_get_info(curr_widget);
+ eina_list_free(list);
+ if (info != task) {
+ _D("this is not focused object so skip move");
+ return ;
+ }
+ Evas_Event_Mouse_Down *ev = event_info;
+ main_info->posx[POS_MOVE] = ev->canvas.x;
+ main_info->posy[POS_MOVE] = ev->canvas.y;
+
+ if ((abs(main_info->posy[POS_MOVE] - main_info->posy[POS_DOWN]) > VERTICAL_SCROLL_THRESHOLD) && (abs(main_info->posx[POS_MOVE] - main_info->posx[POS_DOWN]) < HORIZONTAL_SCROLL_THRESHOLD)) {
+ main_info->is_widget_swipe = EINA_TRUE;
+ main_info->is_widget_history = EINA_TRUE;
+ /* freeze */
+ set_freeze_scroller();
+ }
- if (scroller_count(scroller) < 2) {
- item_clear_set_disable(scroller);
+ if (main_info->is_widget_swipe == EINA_TRUE) {
+ /* set swipe */
+ evas_object_geometry_get(obj, &ox, &oy, &oh, &ow);
+ distance = main_info->posy[POS_MOVE] - main_info->posy[POS_DOWN];
+ _D("distance : %d", distance);
+ /* revision once */
+ if (is_revised == EINA_FALSE) {
+ if (distance > 0)
+ distance -= HORIZONTAL_SCROLL_THRESHOLD;
+ else
+ distance += HORIZONTAL_SCROLL_THRESHOLD;
+ elm_object_signal_emit(obj, "hide,name", "bg");
+ is_revised = EINA_TRUE;
}
- goto ERROR;
- }
- return ECORE_CALLBACK_RENEW;
+ main_info->icon_move = true;
-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);
+ evas_object_resize(obj, TASKMGR_SIZE - abs(distance), TASKMGR_SIZE - abs(distance));
+ evas_object_move(obj, (abs(distance)/2), distance + (abs(distance)/2));
+ /* color control */
+ color = (int)(FACTOR_A * abs(distance) + FACTOR_B);
+ __set_layout_color(obj, color);
+ } else {
+ is_revised = EINA_FALSE;
}
- return ECORE_CALLBACK_CANCEL;
}
-
-
-#define TERMINATE_LENGTH 60
-static Eina_Bool _anim_terminate_item(void *data)
+void _mouse_down_cb_t(void *data, Evas * evas, Evas_Object * obj, void *event_info)
{
- 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);
+ _D("[ == %s == ]", __func__);
+ main_h main_info = data;
+ ret_if(main_info == 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;
+ if (main_info->reverse_animator) {
+ _D("reverse animation");
+ return;
}
- 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);
+ Evas_Event_Mouse_Down *ev = event_info;
+ main_info->posx[POS_DOWN] = ev->canvas.x;
+ main_info->posy[POS_DOWN] = ev->canvas.y;
- /* 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;
+ if (gettimeofday(&(main_info->postime[POS_DOWN]), NULL) != 0)
+ return;
-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;
+ _D("down x(%d) y(%d)", main_info->posx[POS_DOWN], main_info->posy[POS_DOWN]);
}
-
-
-static void _down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+static void _clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
{
- Evas_Event_Mouse_Down *ei = event_info;
- Evas_Object *item_outer = data;
- Evas_Object *item_inner = NULL;
+ _D("Item Clicked");
+ main_h main_info = data;
+ ret_if(!main_info);
+ const char *appid = 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;
+ if (main_info->is_widget_history == EINA_TRUE) {
+ _D("widget is moved so skip launch");
+ main_info->is_widget_history = EINA_FALSE ;
+ } else {
+ list_type_default_s *info = NULL;
- ret_if(!item_outer);
+ info = item_get_info(obj);
+ ret_if(!info);
- _D("Down (%d, %d)", x, y);
+ appid = info->appid;
+ ret_if(!appid);
- 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);
+ util_launch_app(appid);
}
-
- 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)
+static Eina_Bool _deleting_widget_cb(void *data, double pos)
{
- 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);
+ main_h main_info = data;
+ retv_if(main_info == NULL, EINA_FALSE);
- anim = evas_object_data_get(item_outer, PRIVATE_DATA_KEY_ITEM_ANIM_FOR_MOVING);
- if (anim) return;
+ int ox, oy, oh, ow;
+ int color = 0;
+ double moveX = 0, moveY = 0;
- 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);
+ evas_object_geometry_get(main_info->deleting_widget, &ox, &oy, &oh, &ow);
- 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);
+ main_info->icon_move = true;
+ evas_object_resize(main_info->deleting_widget, TASKMGR_SIZE - (TASKMGR_SIZE * pos), TASKMGR_SIZE -(TASKMGR_SIZE * pos));
+ moveX = (TASKMGR_SIZE * pos) / 2; moveY = (TASKMGR_SIZE * pos) / 2;
+ evas_object_move(main_info->deleting_widget, (TASKMGR_SIZE * pos) / 2, oy + (TASKMGR_SIZE * pos) / 2);
- cur_x = ei->cur.output.x;
- cur_y = ei->cur.output.y;
+ _D(" posX= %d, posY= %d, pos= %fl, movex = %fl, movey = %fl", ox, oy, pos, moveX, moveY);
- vec_x = cur_x - down_x;
- vec_y = cur_y - down_y;
+ color = (int)(FACTOR_A * (oy + 20) + FACTOR_B);
+ __set_layout_color(main_info->deleting_widget, color);
- outer_x += vec_x;
+ if (pos < 1.0)
+ return EINA_TRUE;
+ main_info->reverse_animator = reverse_animator_add(main_info, main_info->deleting_widget);
- 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));
+ if (main_info->reverse_animator == NULL) {
+ _E("ecore_animator_add() failed");
+ elm_box_unpack(main_info->box, main_info->deleting_widget);
+ evas_object_data_del(main_info->deleting_widget, DATA_KEY_ITEM_INFO);
+ evas_object_del(main_info->deleting_widget);
+ main_info->deleting_widget = NULL;
}
+ main_info->delete_animator = NULL;
+ main_info->icon_move = false;
- 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);
+ return EINA_FALSE;
}
-
-
-static void _item_terminate_anim(Evas_Object *item_outer)
+Ecore_Animator *delete_animator_add(void *data, Evas_Object *obj)
{
- 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);
- }
+ main_h main_info = data;
+ retv_if(main_info == NULL, NULL);
+ retv_if(obj == NULL, NULL);
- 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);
+ main_info->deleting_widget = obj;
+ Ecore_Animator *animator = ecore_animator_timeline_add(0.3, _deleting_widget_cb, data);
+ return animator;
}
-
-
-static void _up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+static void _item_del_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
{
- 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);
+ list_type_default_s *task = NULL;
+ main_h main_info = data;
+ ret_if(!main_info);
+ task = item_get_info(obj);
+ if (!task) {
+ _E("can't get the object's data");
+ return ;
}
-}
-
-
-
-static void _clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
-{
- _D("Clicked");
-
- ret_if(!data);
- Evas_Object *item = data;
- Evas_Object *item_inner = NULL;
-
- const char *appid = NULL;
-
+ Eina_List *list = elm_box_children_get(main_info->box);
+ int cur_page;
+ elm_scroller_current_page_get(main_info->scroller, &cur_page, NULL);
+ Evas_Object *curr_widget = NULL;
+ curr_widget = eina_list_nth(list, cur_page);
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);
-
- elm_object_signal_emit(item_inner, "clicked", "event");
-
- util_launch_app(appid);
- //layout_hide_with_timer();
+ info = item_get_info(curr_widget);
+ eina_list_free(list);
+ if (task != info) {
+ _D("this is not focused object so skip delete");
+ return ;
+ }
+ if (taskmanager_get_count(main_info) == 1) {
+ item_terminate(obj);
+ item_destroy(obj);
+ index_refresh(main_info);
+ close_button_disabled_set(EINA_TRUE);
+ end_taskmanager(main_info, EINA_FALSE);
+ unset_freeze_scroller(main_info);
+ return;
+ } else {
+ main_info->delete_animator = delete_animator_add(main_info, obj);
+ if (main_info->delete_animator == NULL) {
+ _E("ecore_animator_add() failed");
+ elm_box_unpack(main_info->box, obj);
+ evas_object_data_del(obj, DATA_KEY_ITEM_INFO);
+ evas_object_del(obj);
+ obj = NULL;
+ return ;
+ }
+ }
+ item_terminate(obj);
+ item_destroy(obj);
+ index_refresh(main_info);
}
-
-
-extern Evas_Object *item_create(Evas_Object *scroller, list_type_default_s *info)
+Evas_Object *item_create(void *data, list_type_default_s *info)
{
- retv_if(NULL == scroller, NULL);
+ main_h main_info = data;
+ retv_if(NULL == main_info, NULL);
retv_if(NULL == info, NULL);
+ int ret = 0;
Evas_Object *icon = NULL;
Evas_Object *item = NULL;
- Evas_Object *item_inner = NULL;
-
- item = elm_layout_add(scroller);
+ item = elm_layout_add(main_info->box);
retv_if(NULL == item, NULL);
- elm_layout_file_set(item, ITEM_LAYOUT, "item");
+ char edje_path[PATH_MAX] = {0, };
+ ret = getEdjepath(ITEM_LAYOUT, edje_path, sizeof(edje_path));
+ retv_if(ret < 0, NULL);
+
+ elm_layout_file_set(item, edje_path, "recent");
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);
+ Evas_Object *label = elm_label_add(item);
+ if (label) {
+ char buf[256] = {0,};
+ ret = snprintf(buf, sizeof(buf) - 1, "<align=center> %s </align>", info->name);
+ retv_if(ret < 0, NULL);
+
+ elm_object_style_set(label, "slide_roll");
+ elm_object_text_set(label, buf);
+
+ elm_label_wrap_width_set(label, ELM_SCALE_SIZE(100));
+ elm_label_slide_mode_set(label, ELM_LABEL_SLIDE_MODE_ALWAYS);
+ elm_label_slide_duration_set(label, 3);
+ evas_object_show(label);
+
+ elm_object_part_content_set(item, "txt.app_name", label);
+ }
+
+ icon = evas_object_image_add(evas_object_evas_get(item));
goto_if(NULL == icon, ERROR);
+
+ _D("info->icon: %s", info->icon);
evas_object_image_file_set(icon, info->icon, NULL);
evas_object_image_filled_set(icon, EINA_TRUE);
+ elm_object_part_content_set(item, "img.app_image", icon);
evas_object_show(icon);
- elm_object_part_content_set(item_inner, "icon", icon);
- elm_object_part_text_set(item_inner, "name", info->name);
-
- elm_object_signal_callback_add(item_inner, "mouse,clicked,1", "event", _clicked_cb, item);
+ elm_object_signal_emit(item, "show,icon", "bg");
+ elm_object_signal_callback_add(item, "delete_button,clicked", "clicked", _item_del_cb, main_info);
+ elm_object_signal_callback_add(item, "app_icon,clicked", "clicked", _clicked_cb, main_info);
+ evas_object_event_callback_add(item, EVAS_CALLBACK_MOUSE_UP, _mouse_up_cb_t, main_info);
+ evas_object_event_callback_add(item, EVAS_CALLBACK_MOUSE_DOWN, _mouse_down_cb_t, main_info);
+ evas_object_event_callback_add(item, EVAS_CALLBACK_MOUSE_MOVE, _mouse_move_cb_t, main_info);
evas_object_data_set(item, DATA_KEY_ITEM_INFO, info);
return item;
return NULL;
}
-
-
-extern void item_destroy(Evas_Object *item)
+void item_destroy(Evas_Object *item)
{
ret_if(!item);
-
+ _D("Destroying item");
Evas_Object *icon = NULL;
Evas_Object *item_inner = NULL;
-
- item_inner = elm_object_part_content_unset(item, "inner");
- if (!item_inner) {
- _E("cannot get the object");
- evas_object_del(item);
- return;
+ list_type_default_s *info = item_get_info(item);
+ item_inner = elm_object_part_content_unset(item, "txt.app_name");
+ if (item_inner) {
+ _D("Delete the Label if it is NOT NULL.");
+ evas_object_del(item_inner);
+ item_inner = NULL;
}
- icon = elm_object_part_content_unset(item_inner, "icon");
+ icon = elm_object_part_content_unset(item, "img.app_image");
if (icon) {
+ _D("Delete the icon if it is NOT NULL.");
evas_object_del(icon);
- } else {
- _E("cannot get the object");
+ icon = NULL;
+ }
+ Eina_List *l = NULL;
+ list_type_default_s *_info = NULL;
+ main_h main_info = main_get_info();
+ EINA_LIST_FOREACH(main_info->pkg_list, l, _info) {
+ if (_info != info)
+ continue;
+ _D("REMOVED pkg : %x count(%d)", info, taskmanager_get_count(main_info->pkg_list));
+ _pkglist_unretrieve_item(info);
+ evas_object_data_del(item, DATA_KEY_ITEM_INFO);
+ evas_object_del(item);
+ item = NULL;
+ main_info->pkg_list = eina_list_remove_list(main_info->pkg_list, l);
+ break;
}
-
- 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)
+void item_terminate(Evas_Object *item)
{
char *appid = NULL;
int ret;
_D("Terminate: %s(%d)", appid, running);
if (running) {
+ _D("App is running. kill the app ");
util_kill_app(appid);
}
- if (0 != rua_delete_history_with_pkgname(appid)) {
- _E("Cannot delete history for package(%s)", appid);
- }
+ ret = rua_delete_history_with_pkgname(appid);
+ if (0 != ret)
+ _E("Cannot delete history for package(%s) and ret=%d, error:%s", appid, ret, get_error_message(ret));
}
+void taskmanager_remove_all_task_info(void *data)
+{
+ main_h main_info = data;
+ ret_if(main_info == NULL);
+ if (eina_list_count(main_info->pkg_list) == 0) {
+ _D("There is no applist");
+ return;
+ }
+
+ Eina_List *l = NULL;
+ list_type_default_s *info = NULL;
+ int ret = 0;
+ bool running = false;
+ if (rua_init() == -1) {
+ _E("rua_init() failed");
+ return;
+ }
+ char *appid = NULL;
+ EINA_LIST_FOREACH(main_info->pkg_list, l, info) {
+ if (!info)
+ continue;
+ ret = app_manager_is_running(info->appid, &running);
+ ret_if(APP_MANAGER_ERROR_NONE != ret);
+
+ _D("Terminate: %s(%d)", appid, running);
+ if (running) {
+ _D("App is running. kill the app");
+ util_kill_app(appid);
+ }
+ ret = rua_delete_history_with_pkgname(appid);
+ if (0 != ret)
+ _E("Cannot delete history for package(%s) and ret=%d, error:%s", appid, ret, get_error_message(ret));
+
+ }
+ rua_fini();
+}
//End of a file
/*
- * Task Manager
+ * Task Manager
+ * Copyright (c) 2013 Samsung Electronics Co., Ltd.
*
- * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * 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://www.apache.org/licenses/LICENSE-2.0
+ * 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,
+ * distributed under the License is distributed on an AS IS BASIS,
* WITHOUT 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 <app_manager.h>
#include <rua.h>
#include "list.h"
#include "log.h"
#include "main.h"
#include "util.h"
+#include "conf.h"
-typedef struct pkginfo {
- char *appid;
- bool taskmanage;
- char *pkgid;
- char *icon;
- char *name;
- bool nodisplay;
-} private_pkginfo_s;
+static struct _info {
+ Eina_List *app_list;
+} s_info;
-typedef struct {
- char *appid;
- int pid;
-} private_pid_s;
+void _pkglist_unretrieve_item(list_type_default_s *default_info)
+{
+ if (!default_info)
+ return;
-static struct {
- Eina_Hash *pkginfo_table;
-} private_table_s = {
- .pkginfo_table = NULL,
-};
+ free(default_info->name);
+ default_info->name = NULL;
+ free(default_info->icon);
+ default_info->icon = NULL;
+ free(default_info->pkgid);
+ default_info->pkgid = NULL;
-static void _pkglist_unretrieve_item(list_type_default_s *default_info)
-{
- if (!default_info) {
- return;
- }
+ free(default_info->appid);
+ default_info->appid = NULL;
- 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;
- }
+ free(default_info);
+ default_info = NULL;
}
-
-
-static list_type_default_s *_pkglist_retrieve_item(const char *appid, const char *arg, time_t launch_time)
+static list_type_default_s *_pkglist_item_create(app_info_h app_info)
{
- retv_if(!appid, NULL);
+ if (!app_info)
+ return NULL;
- private_pkginfo_s *pkg_info = NULL;
- list_type_default_s *default_info = NULL;
+ list_type_default_s *list_item = calloc(1, sizeof(list_type_default_s));
+ if (!list_item)
+ return NULL;
+ bool running = false;
- pkg_info = eina_hash_find(private_table_s.pkginfo_table, appid);
- if (!pkg_info) {
- _D("app(%s) is not taskmanage app", appid);
+ int ret = app_info_get_app_id(app_info, &list_item->appid);
+ if (ret != APP_MANAGER_ERROR_NONE) {
+ _E("app_info_get_app_id failed[%d]: %s", ret, get_error_message(ret));
+ _pkglist_unretrieve_item(list_item);
return NULL;
}
- if (!pkg_info->taskmanage) {
- _D("app(%s) is not taskmanage app", appid);
+ ret = app_manager_is_running(list_item->appid, &running);
+ if (ret != APP_MANAGER_ERROR_NONE)// || !running) { TODO: why running boolean is used
+ {
+ _E("app_manager_is_running failed[%d]: %s", ret, get_error_message(ret));
+ _pkglist_unretrieve_item(list_item);
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);
+ ret = app_info_get_package(app_info, &list_item->pkgid);
+ if (ret != APP_MANAGER_ERROR_NONE) {
+ _E("app_info_get_package failed[%d]: %s", ret, get_error_message(ret));
+ _pkglist_unretrieve_item(list_item);
+ return NULL;
}
- 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;
+ ret = app_info_get_label(app_info, &list_item->name);
+ if (ret != APP_MANAGER_ERROR_NONE) {
+ _E("app_info_get_app_id failed[%d]: %s", ret, get_error_message(ret));
+ _pkglist_unretrieve_item(list_item);
+ return NULL;
}
-
- 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;
+//instead of fetching icon for that app, we need to fetch last catpured snapshot.
+// But this functionality is not avaiable now. have to change when screen capture functionality avaiable.
+ ret = app_info_get_icon(app_info, &list_item->icon);
+ if (ret != APP_MANAGER_ERROR_NONE) {
+ _E("app_info_get_app_id failed[%d]: %s", ret, get_error_message(ret));
+ _pkglist_unretrieve_item(list_item);
+ return NULL;
}
-
- 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("pkg id: %s", list_item->pkgid);
+ if (strcmp(list_item->pkgid, "org.tizen.task-mgr") == 0) {
+ _E("ignoring Recents app");
+ _pkglist_unretrieve_item(list_item);
+ return NULL;
}
-
- _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;
+ return list_item;
}
-
-
-int _get_pkginfo_cb(pkgmgrinfo_appinfo_h app_handle, void *user_data)
+static int _launch_time_sort_cb(const void *d1, const void *d2)
{
- 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;
- }
+ list_type_default_s *tmp1 = (list_type_default_s *) d1;
+ list_type_default_s *tmp2 = (list_type_default_s *) d2;
- 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 (!tmp1) return -1;
+ if (!tmp2) return 1;
- 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);
- }
+ return tmp1->launch_time >= tmp2->launch_time ? -1 : 1;
+}
- 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;
- }
+static bool _pkglist_item_append(app_info_h app_info, void *user_data)
+{
+ struct rua_rec *record = user_data;
+ retvm_if(!record, false, "record data == NULL");
- eina_hash_add(private_table_s.pkginfo_table, pkg_info->appid, pkg_info);
+ list_type_default_s *list_item = _pkglist_item_create(app_info);
+ if (!list_item)
+ return true;
- return PMINFO_R_OK;
+ list_item->launch_time = record->launch_time;
-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);
+ s_info.app_list = eina_list_sorted_insert(s_info.app_list, _launch_time_sort_cb, list_item);
- return PMINFO_R_ERROR;
+ return false;
}
-
-
-static task_mgr_error_e _create_pkginfo_table(void)
+static int _pkglist_filter_create(app_info_filter_h *filter)
{
- _D("");
- pkgmgrinfo_appinfo_filter_h handle;
+ int ret = app_info_filter_create(filter);
+ retvm_if(ret != APP_MANAGER_ERROR_NONE, TASK_MGR_ERROR_FAIL, "app_info_filter_create failed");
- 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) {
+ ret = app_info_filter_add_bool(*filter, PACKAGE_INFO_PROP_APP_TASKMANAGE, true);
+ if (ret != APP_MANAGER_ERROR_NONE) {
+ _E("app_info_filer_add_bool failed[%d]: %s", ret, get_error_message(ret));
+ app_info_filter_destroy(*filter);
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_NONE;
+}
+
+static int _pkglist_find_and_append_app(struct rua_rec *record, app_info_filter_h *filter)
+{
+ int ret = app_info_filter_add_string(*filter, PACKAGE_INFO_PROP_APP_ID, record->pkg_name);
+ if (ret != APP_MANAGER_ERROR_NONE) {
+ _E("app_info_filter_add_string failed[%d]: %s", ret, get_error_message(ret));
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);
+ ret = app_info_filter_foreach_appinfo(*filter, _pkglist_item_append, record);
+ if (ret != APP_MANAGER_ERROR_NONE) {
+ _E("app_info_filter_foreach_app_info failed[%d]: %s", ret, get_error_message(ret));
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))
+Eina_List *list_pkg_list_get(void)
{
- 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;
+ return s_info.app_list;
}
-
-
-extern task_mgr_error_e list_create(Eina_List **pkg_list)
+task_mgr_error_e list_create(void)
{
- _D("");
-
- rua_init();
char **table = NULL;
- list_type_default_s *default_info = NULL;
+ int rows = 0;
+ int cols = 0;
+ struct rua_rec record;
- int nrows = 0, ncols = 0;
- int row = 0;
+ app_info_filter_h filter;
- 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);
- }
+ if (rua_init()) {
+ _E("rua_init failed");
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 (rua_history_load_db(&table, &rows, &cols) || !table) {
+ _E("rua_history_load_db failed");
+ return TASK_MGR_ERROR_FAIL;
}
- if (*pkg_list && TASK_MGR_ERROR_NONE != list_sort(*pkg_list, _launch_time_sort_cb)) {
- _E("Cannot sort pkg_list");
+ int ret = _pkglist_filter_create(&filter);
+ retvm_if(ret != TASK_MGR_ERROR_NONE, ret, "_pkglist_taskmanage_filter_create failed");
+
+ int row;
+ for (row = 0; row < rows; ++row) {
+ rua_history_get_rec(&record, table, rows, cols, row);
+ ret = _pkglist_find_and_append_app(&record, &filter);
+ if (ret != TASK_MGR_ERROR_NONE)
+ _W("Could not find or append application to the pkg list");
}
- if (!eina_list_count(*pkg_list)) {
- _D("list is empty.");
- _pkglist_unretrieve_item(default_info);
- return TASK_MGR_ERROR_NO_DATA;
+ rua_history_unload_db(&table);
+ app_info_filter_destroy(filter);
- }
+ if (rua_fini())
+ _E("rua_fini failed");
return TASK_MGR_ERROR_NONE;
}
-
-
-extern void list_destroy(Eina_List *pkg_list)
+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) {
+ if (!default_info)
continue;
- }
+
_pkglist_unretrieve_item(default_info);
}
pkg_list = NULL;
- rua_fini();
}
/*
- * Task Manager
+ * Task Manager
+ * Copyright (c) 2013 Samsung Electronics Co., Ltd.
*
- * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * 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://www.apache.org/licenses/LICENSE-2.0
+ * 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,
+ * distributed under the License is distributed on an AS IS BASIS,
* WITHOUT 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"
.scroller = NULL,
.box = NULL,
.pkg_list = NULL,
-
+ .index = NULL,
+ .circle_surface = NULL,
+ .is_scrolled = EINA_FALSE,
+ .icon_move = EINA_FALSE,
.root_w = 0,
.root_h = 0,
+ .cur_page = 0,
};
-//main_h main_info_h = &main_info;
-
-
-extern main_h main_get_info(void)
+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("");
}
}
-
-
-static task_mgr_error_e _create_layout(Evas_Object *parent)
+static task_mgr_error_e _create_layout(void *data)
{
_D("");
+ main_h main_info = data;
Evas_Object *layout = NULL;
- Evas_Object *rect = NULL;
Eina_Bool ret = EINA_FALSE;
// create layout
- layout = elm_layout_add(parent);
- goto_if (!layout, ERROR);
+ layout = elm_layout_add(main_info->win);
+ goto_if(!layout, ERROR);
+
+ char edje_path[PATH_MAX] = {0, };
+ int res = 0;
+ res = getEdjepath(LAYOUT, edje_path, sizeof(edje_path));
+ goto_if(res < 0, ERROR);
+ _D("edje_path is : %s", edje_path);
+ ret = elm_layout_file_set(layout, edje_path, "taskmanager-main");
- 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_resize(layout, main_info->root_w, main_info->root_h);
evas_object_show(layout);
- main_info.layout = layout;
-
- // create layout bg
- rect = evas_object_rectangle_add(evas_object_evas_get(layout));
- evas_object_size_hint_min_set(rect, main_info.root_w, main_info.root_h);
- evas_object_size_hint_weight_set(rect, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_resize(rect, main_info.root_w, main_info.root_h);
- evas_object_color_set(rect, 0, 0, 0, 0);
- evas_object_show(rect);
- elm_object_part_content_set(layout, BG_PART_NAME, rect);
+ main_info->layout = layout;
// create scroller
- main_info.scroller = scroller_create(layout);
- goto_if(!main_info.scroller, ERROR);
+ main_info->scroller = scroller_create(main_info);
+ 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);
+ if (layout) {
+ evas_object_del(layout);
+ layout = NULL;
+ }
+ evas_object_del(main_info->win);
+ main_info->win = NULL;
return TASK_MGR_ERROR_FAIL;
}
-
-
static void _destroy_layout(void)
{
Evas_Object *rect = NULL;
rect = elm_object_part_content_unset(main_info.layout, BG_PART_NAME);
if (rect) {
evas_object_del(rect);
+ rect = NULL;
}
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;
+ ret = list_create();
+ if (ret != TASK_MGR_ERROR_NONE) {
+ _E("Could not initialize list module");
+ goto END;
}
- 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");
+
+ main_info.pkg_list = list_pkg_list_get();
+ _D("List count: %d", eina_list_count(main_info.pkg_list));
+
+ if (!main_info.pkg_list) {
+ _E("pkg_list is empty");
+ elm_layout_signal_emit(main_info.layout, "show,txt.no_apps", "txt.no_apps");
+ elm_object_part_text_set(main_info.layout, "txt.no_apps", "No recent apps");
+ elm_object_part_text_set(main_info.layout, "txt.recent_title", "Recent apps");
goto END;
}
- goto_if(TASK_MGR_ERROR_NONE != scroller_push_all_item(main_info.scroller, main_info.pkg_list), END);
+ goto_if(TASK_MGR_ERROR_NONE != scroller_push_all_item(&main_info), 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.6);
+ elm_app_base_scale_set(1.3);
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);
main_info.e = evas_object_evas_get(main_info.win);
- if (_create_layout(main_info.win) != TASK_MGR_ERROR_NONE) {
+ if (_create_layout(&main_info) != TASK_MGR_ERROR_NONE) {
_E("Failed to create a layout");
return false;
}
-
+ elm_win_resize_object_add(main_info.win, main_info.layout);
//create the list
timer = evas_object_data_get(main_info.win, PRIVATE_DATA_KEY_LIST_TIMER);
- if (timer) {
+ if (timer)
ecore_timer_del(timer);
- }
timer = ecore_timer_add(0.001f, _list_timer_cb, NULL);
- if (timer) {
+ if (timer)
evas_object_data_set(main_info.win, PRIVATE_DATA_KEY_LIST_TIMER, timer);
- } else {
+ else
_E("Cannot add a create list timer");
- }
return true;
}
-
-
static void _terminate_cb(void *data)
{
_D("");
elm_cache_all_flush();
malloc_trim(0);
- appcore_flush_memory();
-
scroller_destroy(main_info.scroller);
_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();
+ end_taskmanager(data, EINA_TRUE);
return;
}
-
-
static void _language_changed(app_event_info_h event_info, void *data)
{
_D("");
}
-
-
int main(int argc, char **argv)
{
int ret;
/*
- * Task Manager
+ * Task Manager
+ * Copyright (c) 2013 Samsung Electronics Co., Ltd.
*
- * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * 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://www.apache.org/licenses/LICENSE-2.0
+ * 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,
+ * distributed under the License is distributed on an AS IS BASIS,
* WITHOUT 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 <Elementary.h>
- #include "conf.h"
- #include "item.h"
- #include "list.h"
- #include "log.h"
- #include "main.h"
- #include "scroller.h"
- #include "util.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"
+#define TASK_WIDGET_SIZE_W 216 //220
+#define TASK_WIDGET_SIZE_H 360
+#define TASK_PADDING_SIZE_W 25//19
+#define REVERSE_VALUE 30
+#define REMOVING_VALUE 12
+#define VELOCITY_VALUE 0.45
-
-extern task_mgr_error_e scroller_push_item(Evas_Object *scroller, Evas_Object *item)
+static inline int __get_msec(struct timeval *s, struct timeval *e)
{
- _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;
- Eina_List *list = NULL;
-
- box_layout = elm_object_content_get(scroller);
- retv_if(!box_layout, TASK_MGR_ERROR_FAIL);
-
- list = elm_box_children_get(box_layout);
- retv_if(!list, TASK_MGR_ERROR_FAIL);
+ return (e->tv_sec - s->tv_sec) * 1000 + (e->tv_usec - s->tv_usec + 500) / 1000;
+}
- box = eina_list_nth(list, 0);
- retv_if(!box, TASK_MGR_ERROR_FAIL);
+void close_button_disabled_set(Eina_Bool is_disabled)
+{
+ main_h main_info = main_get_info();
- eina_list_free(list);
+ if (is_disabled)
+ elm_object_signal_emit(main_info->layout, "set,close,default", "close.bg");
+ else {
+ elm_object_signal_emit(main_info->layout, "set,close,show", "close.bg");
+ elm_object_part_text_set(main_info->layout, "close_all_text", "CLOSE ALL");
+ }
+}
+void set_freeze_scroller()
+{
+ main_h main_info = main_get_info();
+ ret_if(main_info == NULL);
+ ret_if(main_info->scroller == NULL);
+ ret_if(main_info->box == NULL);
- elm_box_pack_end(box, item);
+ elm_object_scroll_freeze_push(main_info->box);
+}
- return TASK_MGR_ERROR_NONE;
+static Eina_Bool _quit_cb(void *data)
+{
+ elm_exit();
+ return EINA_FALSE;
}
+int taskmanager_get_count(void *data)
+{
+ main_h main_info = data;
+ retv_if(main_info == NULL, 0);
+ return (eina_list_count(main_info->pkg_list));
+}
-extern void scroller_pop_item(Evas_Object *scroller, Evas_Object *item, int terminate)
+int end_taskmanager(void *data, Eina_Bool is_direct)
{
- ret_if(!scroller);
- ret_if(!item);
+ _D("[ == %s == ]", __func__);
+ struct main_s *ad = data;
+ retv_if(ad == NULL, -1);
- Evas_Object *box_layout = NULL;
- Evas_Object *box = NULL;
- Evas_Object *tmp_item = NULL;
+ if (is_direct)
+ elm_exit();
+ else
+ ecore_timer_add(0.2, _quit_cb, NULL);
- Eina_List *box_list = 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);
+ set_freeze_scroller();
+ return 0;
+}
- box_list = elm_box_children_get(box_layout);
- ret_if(!box_list);
+static void __close_all_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+ _D("[ == %s == ]", __func__);
+ main_h main_info = data;
- box = eina_list_nth(box_list, 0);
- ret_if(!box);
+ taskmanager_remove_all_task_info(main_info);
+ end_taskmanager(main_info, EINA_TRUE);
+}
- eina_list_free(box_list);
+static void _delete_all_btn_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+ main_h main_info = data;
+ ret_if(main_info == NULL);
+ _D("[ == %s == ]", __func__);
- list = elm_box_children_get(box);
- ret_if(!list);
+ set_freeze_scroller();
- EINA_LIST_FOREACH_SAFE(list, l, ln, tmp_item) {
- if (item != tmp_item) continue;
- if (terminate) item_terminate(item);
+ Eina_List *list = elm_box_children_get(main_info->box);
+ int h_p, v_p;
+ elm_scroller_current_page_get(main_info->scroller, &h_p, &v_p);
+ Evas_Object *prev_widget = NULL;
+ Evas_Object *curr_widget = NULL;
+ Evas_Object *next_widget = NULL;
+ if (h_p >= 1)
+ prev_widget = eina_list_nth(list, h_p-1);
- elm_box_unpack(box, item);
- item_destroy(item);
- break;
- }
- eina_list_free(list);
-}
+ if (h_p < eina_list_count(list))
+ next_widget = eina_list_nth(list, h_p+1);
+ curr_widget = eina_list_nth(list, h_p);
+ if (prev_widget)
+ elm_object_signal_emit(prev_widget, "closeall", "bg");
-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 (next_widget)
+ elm_object_signal_emit(next_widget, "closeall", "bg");
- 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);
+ if (curr_widget) {
+ elm_object_signal_callback_add(curr_widget, "closeall_end", "closeall", __close_all_cb , main_info);
+ elm_object_signal_emit(curr_widget, "closeall_center", "bg");
}
- return TASK_MGR_ERROR_NONE;
+ elm_object_signal_emit(main_info->layout, "closeall", "bg");
}
-
-
-static Eina_Bool _pop_all_item_cb(void *data)
+Eina_Bool __check_velocity(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);
+ main_h main_info = data;
+ int x = abs(main_info->posy[POS_UP] - main_info->posy[POS_DOWN]);
+ int t = __get_msec(&(main_info->postime[POS_DOWN]), &(main_info->postime[POS_UP]));
+ double v = (double)x/t;
- count = eina_list_count(list);
- _D("remove list count(include clear button) : %d", count);
- if (i >= count-1) goto END;
+ _D("moving distance [%d]!!!!!!", x);
- item = eina_list_nth(list, i);
- i++;
- goto_if(!item, END);
+ if (x > REVERSE_VALUE + 10)
+ return EINA_TRUE;
- 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;
+ if (v > VELOCITY_VALUE)
+ return EINA_TRUE;
+ else
+ return EINA_FALSE;
}
+void unset_freeze_scroller(void *data)
+{
+ main_h main_info = data;
+ ret_if(main_info == NULL);
+ ret_if(main_info->scroller == NULL);
+ ret_if(main_info->box == NULL);
+ while (elm_object_scroll_freeze_get(main_info->box))
+ elm_object_scroll_freeze_pop(main_info->box);
+}
-extern void scroller_pop_all_item(Evas_Object *scroller, int terminate)
+void __set_layout_color(Evas_Object *obj, int color)
{
- Evas_Object *box_layout = NULL;
- Evas_Object *box = NULL;
- Eina_List *box_list = NULL;
- Eina_List *list = NULL;
- Eina_List *reverse_list = NULL;
- Ecore_Timer *timer = NULL;
+ Evas_Object *eo = (Evas_Object*)edje_object_part_object_get(elm_layout_edje_get(obj), "color_clipper");
+ if (eo)
+ evas_object_color_set(eo, color, color, color, color);
+ else
+ _E("edje_object_part_object_get() failed");
+}
- ret_if(!scroller);
+static Eina_Bool __reverse_animator_cb(void *data)
+{
+ int ox = 0, oy = 0, oh = 0, ow = 0;
+ int distance = 0;
+ int color = 0;
+ main_h main_info = data;
+ retv_if(main_info == NULL, EINA_FALSE);
+
+ evas_object_geometry_get(main_info->moving_widget, &ox, &oy, &oh, &ow);
+ //distance = abs(ox) - REVERSE_VALUE;
+ distance = abs(oy) - REVERSE_VALUE;
+ if (distance <= 0)
+ distance = 0;
+
+ if (oy >= 0)
+ evas_object_move(main_info->moving_widget, ox, distance);
+ else
+ evas_object_move(main_info->moving_widget, ox, (-1)*distance);
+
+ color = (int)(FACTOR_A * distance + FACTOR_B);
+ __set_layout_color(main_info->moving_widget, color);
+
+ if (distance <= 0) {
+ ecore_animator_del(main_info->reverse_animator);
+ main_info->reverse_animator = NULL;
+ unset_freeze_scroller(main_info);
+ return EINA_FALSE;
+ } else
+ return EINA_TRUE;
+}
- 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);
+void __set_reverse_animation(void *data, Evas_Object *obj)
+{
+ int ox = 0, oy = 0, oh = 0, ow = 0;
+ main_h main_info = data;
+ ret_if(main_info == NULL);
+
+ main_info->moving_widget = obj;
+ main_info->reverse_animator = ecore_animator_add(__reverse_animator_cb, data);
+ if (main_info->reverse_animator == NULL) {
+ _E("ecore_animator_add() failed");
+ evas_object_geometry_get(obj, &ox, &oy, &oh, &ow);
+ evas_object_move(obj, 0, oy);
+ __set_layout_color(obj, 255);
+ main_info->moving_widget = NULL;
+ /* unfreeze */
+ unset_freeze_scroller(main_info);
}
+}
- /* 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);
+Eina_Bool _deleting_animator_cb(void *data, double pos)
+{
+ main_h main_info = data;
+ retv_if(main_info == NULL, EINA_FALSE);
+
+ Evas_Coord x = 0, y = 0, w = 0, h = 0;
+ evas_object_geometry_get(main_info->box, &x, &y, &w, &h);
+
+ Eina_List *list_children = elm_box_children_get(main_info->box);
+ Eina_List *l = NULL;
+ Evas_Object *obj = NULL;
+ int order_children = 0;
+ int is_found = 0;
+ EINA_LIST_FOREACH(list_children, l, obj) {
+ if (obj == main_info->moving_widget)
+ is_found = 1;
+ if (is_found == 0)
+ evas_object_move(obj, x + ((TASK_WIDGET_SIZE_W + TASK_PADDING_SIZE_W) * order_children++), y);
+ else if (is_found == 1) {
+ is_found = 2;
+ order_children++;
+ } else if (is_found == 2) {
+ evas_object_move(obj, x + ((TASK_WIDGET_SIZE_W + TASK_PADDING_SIZE_W) * (order_children) - (TASK_WIDGET_SIZE_W + TASK_PADDING_SIZE_W)*pos), y);
+ ++order_children;
+ }
}
-
- box_layout = elm_object_content_get(scroller);
- ret_if(!box_layout);
-
- box_list = elm_box_children_get(box_layout);
- ret_if(!box_list);
-
- box = eina_list_nth(box_list, 0);
- ret_if(!box);
-
- eina_list_free(box_list);
-
- 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;
+ eina_list_free(list_children);
+ if (pos < 1.0)
+ return EINA_TRUE;
+ else {
+ elm_box_unpack(main_info->box, main_info->moving_widget);
+ evas_object_data_del(main_info->moving_widget, DATA_KEY_ITEM_INFO);
+ evas_object_del(main_info->moving_widget);
+ unset_freeze_scroller(main_info);
+ main_info->moving_widget = NULL;
+ main_info->reverse_animator = NULL;
+ return EINA_FALSE;
}
-
- evas_object_data_set(scroller, PRIVATE_DATA_KEY_POP_ALL_TIMER, timer);
}
-
-
-
-extern int scroller_count(Evas_Object *scroller)
+static Eina_Bool __removing_animator_cb(void *data)
{
- Evas_Object *box_layout = NULL;
- Evas_Object *box = NULL;
- Eina_List *box_list = NULL;
- Eina_List *list = NULL;
-
- retv_if(!scroller, 0);
-
- box_layout = elm_object_content_get(scroller);
- retv_if(!box_layout, 0);
-
- box_list = elm_box_children_get(box_layout);
- retv_if(!box_list, 0);
-
- box = eina_list_nth(box_list, 0);
- retv_if(!box, 0);
-
- eina_list_free(box_list);
-
- list = elm_box_children_get(box);
- if (!list) {
- _D("list is null");
- return 0;
+ int ox = 0, oy = 0, oh = 0, ow = 0;
+ int distance = 0;
+ int color = 0;
+ list_type_default_s *task = NULL;
+ main_h main_info = data;
+ retv_if(main_info == NULL, EINA_FALSE);
+
+ if (main_info->moving_widget == NULL) {
+ ecore_animator_del(main_info->reverse_animator);
+ main_info->reverse_animator = NULL;
+ return EINA_FALSE;
}
- return eina_list_count(list);
+ evas_object_geometry_get(main_info->moving_widget, &ox, &oy, &ow, &oh);
+
+ if (main_info->deleteX != ox) {
+ _D(" position is changed in the middle of animation, so adjust x, y position") ;
+ ox = main_info->deleteX ;
+ oy = main_info->deleteY ;
+ } else
+ main_info->deleteY = oy ;
+
+ distance = abs(oy) + REMOVING_VALUE;
+ if (distance >= main_info->root_h/2)
+ distance = main_info->root_h/2;
+
+ if (oy >= 0)
+ evas_object_move(main_info->moving_widget, ox, distance);
+ else
+ evas_object_move(main_info->moving_widget, ox, (-1)*distance);
+
+ color = (int)(FACTOR_A * distance + FACTOR_B);
+ __set_layout_color(main_info->moving_widget, color);
+
+ if (distance >= main_info->root_h/2) {
+ ecore_animator_del(main_info->reverse_animator);
+ main_info->reverse_animator = NULL;
+
+ task = evas_object_data_get(main_info->moving_widget, DATA_KEY_ITEM_INFO);
+ if (task) {
+ _D("removed (%s)", task->name);
+ item_terminate(main_info->moving_widget);
+ elm_box_unpack(main_info->box, main_info->moving_widget);
+ item_destroy(main_info->moving_widget);
+ index_refresh(main_info);
+ }
+ elm_box_unpack(main_info->box, main_info->moving_widget);
+ evas_object_data_del(main_info->moving_widget, DATA_KEY_ITEM_INFO);
+ evas_object_del(main_info->moving_widget);
+ main_info->moving_widget = NULL;
+
+ /* checking num : end taskmanager */
+ if (taskmanager_get_count(main_info) == 0)
+ end_taskmanager(main_info, EINA_FALSE);
+
+ unset_freeze_scroller(main_info);
+ main_info->deleteX = 0 ;
+ main_info->deleteY = 0 ;
+ return EINA_FALSE;
+ } else
+ return EINA_TRUE;
}
-
-
-extern Eina_Bool scroller_is_scrolling(Evas_Object *scroller)
+void __set_remove_animation(void *data, Evas_Object *obj)
{
- return evas_object_data_get(scroller, DATA_KEY_IS_SCROLLING)? EINA_TRUE:EINA_FALSE;
+ list_type_default_s *task = NULL;
+ main_h main_info = data;
+ ret_if(main_info == NULL);
+ ret_if(obj == NULL);
+
+ main_info->moving_widget = obj;
+ main_info->reverse_animator = ecore_animator_add(__removing_animator_cb, data);
+ if (main_info->reverse_animator == NULL) {
+ _E("ecore_animator_add() failed");
+
+ elm_box_unpack(main_info->box, obj);
+ evas_object_data_del(main_info->moving_widget, DATA_KEY_ITEM_INFO);
+ evas_object_del(main_info->moving_widget);
+ main_info->moving_widget = NULL;
+ unset_freeze_scroller(main_info);
+ close_button_disabled_set(EINA_TRUE);
+ end_taskmanager(main_info, EINA_FALSE);
+ }
}
-
-
-extern void scroller_freeze(Evas_Object *scroller)
+void _index_sync(void *data)
{
- Evas_Object *box_layout = NULL;
- Evas_Object *box = NULL;
- Eina_List *list = NULL;
+ main_h main_info = data;
+ ret_if(main_info == NULL);
+ ret_if(main_info->index == NULL);
- ret_if(!scroller);
+ int cur_page = -1;
+ elm_scroller_current_page_get(main_info->scroller, &cur_page, NULL);
- box_layout = elm_object_content_get(scroller);
- ret_if(!box_layout);
-
- list = elm_box_children_get(box_layout);
- ret_if(!list);
-
- box = eina_list_nth(list, 0);
- ret_if(!box);
-
- eina_list_free(list);
-
- elm_object_scroll_freeze_push(box);
-}
+ int num_index = eina_list_count(main_info->pkg_list);
+ _D("cur_page: %d List Count: %d", cur_page, num_index);
+ if (num_index == cur_page)
+ --cur_page;
+ int diff = 0;
+ if (num_index > 19)
+ diff = num_index - 19;
+ Elm_Object_Item *it = NULL;
+ if (diff > 0 && cur_page > 8) {
+ if (cur_page-diff < 10)
+ it = elm_index_item_find(main_info->index, (void*)(9));
+ else
+ it = elm_index_item_find(main_info->index, (void*)(cur_page-diff));
-extern void scroller_unfreeze(Evas_Object *scroller)
-{
- Evas_Object *box_layout = NULL;
- Evas_Object *box = NULL;
- Eina_List *list = NULL;
-
- ret_if(!scroller);
+ } else
+ it = elm_index_item_find(main_info->index, (void*)cur_page);
- box_layout = elm_object_content_get(scroller);
- ret_if(!box_layout);
+ _D("index(%d) it(%p)", cur_page, it);
- list = elm_box_children_get(box_layout);
- ret_if(!list);
+ if (it)
+ elm_index_item_selected_set(it, EINA_TRUE);
- box = eina_list_nth(list, 0);
- ret_if(!box);
+ Eina_List *list = elm_box_children_get(main_info->box);
+ Evas_Object *curr_widget = NULL;
+ curr_widget = eina_list_nth(list, cur_page);
+ Evas_Object *label = elm_object_part_content_get(curr_widget, "txt.app_name");
+ if (label)
+ elm_label_slide_go(label);
eina_list_free(list);
-
- while (elm_object_scroll_freeze_get(box)) {
- elm_object_scroll_freeze_pop(box);
- }
}
+void index_create(void *data)
+{
+ main_h main_info = data;
+ ret_if(main_info == NULL);
+ ret_if(main_info->index == NULL);
+
+ int i, num_index;
+ num_index = eina_list_count(main_info->pkg_list);
+
+ if (num_index > 19)
+ num_index = 19;
+
+ int is_odd = num_index%2;
+ Elm_Object_Item *it = NULL;
+
+ for (i = 0; i < num_index; ++i) {
+ it = elm_index_item_append(main_info->index, NULL, NULL, (void *) i);
+ if (is_odd) {
+ _D("style(%s)", style_odd[9-(num_index/2)+i]);
+ elm_object_item_style_set(it, style_odd[9-(num_index/2)+i]);
+ } else {
+ _D("style(%s)", style_even[10-(num_index/2)+i]);
+ elm_object_item_style_set(it, style_even[10-(num_index/2)+i]);
+ }
+ }
+ elm_index_level_go(main_info->index, 0);
+ _index_sync(main_info);
+}
-static void _mouse_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+void index_refresh(void *data)
{
- _D("Mouse is down");
- evas_object_data_set(obj, PRIVATE_DATA_KEY_MOUSE_DOWN, (void *) 1);
-}
+ main_h main_info = data;
+ ret_if(main_info == NULL);
+ ret_if(main_info->index == NULL);
+ int num_index;
+ num_index = eina_list_count(main_info->pkg_list);
+ _D("num_index(%d)", num_index);
-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);
+ elm_index_item_clear(main_info->index);
+ if (num_index >= 1)
+ index_create(main_info);
}
+task_mgr_error_e scroller_push_all_item(void *data)
+{
+ main_h main_info = data;
+ const Eina_List *l = NULL;
+ list_type_default_s *info = NULL;
+ Evas_Object *item = NULL;
+ if (!main_info->pkg_list) {
+ _D("No app in the history list");
+ return TASK_MGR_ERROR_NONE;
+ }
-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);
-}
+ EINA_LIST_FOREACH(main_info->pkg_list, l, info) {
+ if (!info)
+ continue;
+ item = item_create(main_info, info);
+ continue_if(!item);
+ evas_object_resize(item, main_info->root_w, main_info->root_h);
+ elm_box_pack_start(main_info->box, item);
+ }
+ if (eina_list_count(main_info->pkg_list) == 0) {
+ /* set no count */
+ close_button_disabled_set(EINA_TRUE);
+ elm_object_signal_emit(main_info->layout, "show,txt.no_apps", "txt.no_apps");
+ elm_object_part_text_set(main_info->layout, "txt.no_apps", "No recent apps");
+ elm_object_part_text_set(main_info->layout, "txt.recent_title", "Recent apps");
+ } else {
+ // elm_object_signal_emit(main_info->layout, "set,unblock", "blocking");
+ close_button_disabled_set(EINA_FALSE);
+ index_create(main_info);
+ }
+ return TASK_MGR_ERROR_NONE;
+}
-static void _anim_stop_cb(void *data, Evas_Object *scroller, void *event_info)
+static void _br_scroller_scrolled_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);
+ int cur_page = -1;
+ main_h main_info = data;
+ ret_if(main_info == NULL);
+ elm_scroller_current_page_get(main_info->scroller, &cur_page, NULL);
+ if (main_info->cur_page != cur_page) {
+ main_info->cur_page = cur_page;
+ _index_sync(main_info);
+ }
}
-
-
-static void _drag_start_cb(void *data, Evas_Object *scroller, void *event_info)
+static void _br_scroller_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);
-}
+ _D("drag starts");
+ main_h main_info = data;
+ ret_if(main_info == NULL);
+ main_info->is_scrolled = EINA_TRUE;
+}
+static void _br_scroller_ani_start_cb(void *data, Evas_Object *scroller, void *event_info)
+{
+ _D("animation starts");
+}
-static void _drag_stop_cb(void *data, Evas_Object *scroller, void *event_info)
+static void _br_scroller_ani_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);
+ _D("animation stoped");
}
+static void _box_layout_cb(Evas_Object *o, Evas_Object_Box_Data *priv, void *data)
+{
+ main_h main_info = data;
+ ret_if(main_info == NULL);
+ Evas_Coord x = 0, y = 0, w = 0, h = 0;
+ int n_children = 0;
+ Evas_Object_Box_Option *opt = NULL;
-static void _scroll_cb(void *data, Evas_Object *scroller, void *event_info)
-{
- evas_object_data_set(scroller, DATA_KEY_IS_SCROLLING, (void *) 1);
-}
+ evas_object_geometry_get(o, &x, &y, &w, &h);
+ _D("X: %d, Y: %d, W: %d, H: %d", x, y, w, h);
+ if (main_info->icon_move == EINA_TRUE)
+ return;
+ n_children = eina_list_count(priv->children);
+ if (n_children == 0)
+ return;
+ opt = eina_list_data_get(priv->children);
+ if (opt == NULL)
+ return;
-static void __resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
-{
- Evas_Object *scroller = obj;
+ if (opt->obj == NULL)
+ return;
- int x, y, w, h;
+ list_type_default_s *info = item_get_info(opt->obj);
+ int size_w = (n_children) * (TASK_WIDGET_SIZE_W + TASK_PADDING_SIZE_W) + 47 + TASK_PADDING_SIZE_W + 47;
+ evas_object_size_hint_min_set(o, size_w, -1);
- ret_if(!scroller);
+ Eina_List *l = NULL;
+ int order_children = 0;
- evas_object_geometry_get(scroller, &x, &y, &w, &h);
- _D("%s resize(%d, %d, %d, %d)", data, x, y, w, h);
+ EINA_LIST_FOREACH(priv->children, l, opt) {
+ evas_object_move(opt->obj, x + ((TASK_WIDGET_SIZE_W + TASK_PADDING_SIZE_W) * order_children++), y);
+ }
}
+/*
+static void _scroller_scroll_cb(void *data, Evas_Object *scroller, void *event_info)
+{
+ int page_no = -1;
+ main_h main_info = data;
+ ret_if(!main_info);
+ elm_scroller_current_page_get(main_info->scrollers, &page_no, NULL);
+// Saved.previous_page = page_no;
+}
+*/
-extern Evas_Object *scroller_create(Evas_Object *layout)
+Evas_Object *scroller_create(void *data)
{
- retv_if(!layout, NULL);
+ main_h main_info = data;
+ retv_if(!main_info, NULL);
Evas_Object *box = NULL;
- Evas_Object *box_layout = NULL;
- Evas_Object *rect = NULL;
+ Evas_Object *index = NULL;
+ Evas_Object *circle_scroller = NULL;
Evas_Object *scroller = NULL;
- scroller = elm_scroller_add(layout);
+ scroller = elm_scroller_add(main_info->layout);
retv_if(!scroller, NULL);
-
- elm_scroller_bounce_set(scroller, EINA_FALSE, EINA_FALSE);
+ elm_scroller_content_min_limit(scroller, EINA_FALSE, EINA_TRUE);
+ elm_scroller_bounce_set(scroller, EINA_TRUE, EINA_TRUE);
elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
+ elm_object_scroll_lock_y_set(scroller, EINA_TRUE);
+// elm_scroller_page_relative_set(scroller, 1.0, 0.0);
+ elm_scroller_page_scroll_limit_set(scroller, 1, 0);
+ //evas_object_smart_callback_add(scroller, "scroll", _scroller_scroll_cb, main_info);
+ evas_object_smart_callback_add(scroller, "scroll,drag,start", _br_scroller_drag_start_cb, main_info);
+ evas_object_smart_callback_add(scroller, "scroll", _br_scroller_scrolled_cb, main_info);
+ evas_object_smart_callback_add(scroller, "scroll,anim,start", _br_scroller_ani_start_cb, NULL);
+ evas_object_smart_callback_add(scroller, "scroll,anim,stop", _br_scroller_ani_stop_cb, NULL);
+
elm_object_style_set(scroller, "effect");
+ elm_object_part_content_set(main_info->layout, "list", scroller);
+ elm_scroller_page_size_set(scroller, TASK_WIDGET_SIZE_W + TASK_PADDING_SIZE_W, TASK_WIDGET_SIZE_H);
- elm_object_part_content_set(layout, "scroller", scroller);
evas_object_show(scroller);
- evas_object_size_hint_align_set(scroller, 0.5, 1.0);
-
- 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 another box betweein box and scroller. */
- box_layout = elm_box_add(scroller);
- if (!box_layout) {
- _E("Fail to create box layout");
- evas_object_del(scroller);
- return NULL;
- }
- elm_box_horizontal_set(box_layout, EINA_FALSE);
- elm_box_align_set(box_layout, 0.5, 1.0);
- 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);
- elm_object_content_set(scroller, box_layout);
- evas_object_show(box_layout);
box = elm_box_add(scroller);
if (!box) {
_E("Fail to create box");
- evas_object_del(box_layout);
evas_object_del(scroller);
+ scroller = NULL;
return NULL;
}
- elm_box_horizontal_set(box, EINA_FALSE);
- elm_box_align_set(box, 0.5, 1.0);
- evas_object_size_hint_align_set(box, 0.5, 1.0);
+ elm_box_horizontal_set(box, EINA_TRUE);
evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_box_pack_end(box_layout, box);
+ evas_object_size_hint_fill_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ elm_object_content_set(scroller, box);
+ elm_box_layout_set(box, _box_layout_cb, main_info, NULL);
evas_object_show(box);
- main_get_info()->box = box;
-
- evas_object_event_callback_add(scroller, EVAS_CALLBACK_RESIZE, __resize_cb, "scroller");
- evas_object_event_callback_add(box_layout, EVAS_CALLBACK_RESIZE, __resize_cb, "box_layout");
- evas_object_event_callback_add(box, EVAS_CALLBACK_RESIZE, __resize_cb, "box");
+ main_info->box = box;
+
+ circle_scroller = eext_circle_object_scroller_add(scroller, main_info->circle_surface);
+ eext_circle_object_scroller_policy_set(circle_scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
+ eext_rotary_object_event_activated_set(circle_scroller, EINA_TRUE);
+ evas_object_show(circle_scroller);
+
+ index = elm_index_add(main_info->layout);
+ elm_object_style_set(index, "circle");
+ evas_object_size_hint_weight_set(index, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(index, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ elm_index_horizontal_set(index, EINA_TRUE);
+ elm_index_autohide_disabled_set(index, EINA_TRUE);
+ elm_object_part_content_set(main_info->layout, "index", index);
+ main_info->index = index;
+
+ main_info->cur_page = 0;
+ edje_object_signal_callback_add(elm_layout_edje_get(main_info->layout), "close_button,clicked", "clicked", _delete_all_btn_clicked_cb, main_info);
+ close_button_disabled_set(EINA_TRUE);
return scroller;
}
-
-
void scroller_destroy(Evas_Object *scroller)
{
ret_if(!scroller);
Evas_Object *item = NULL;
Evas_Object *box_layout = NULL;
Evas_Object *box = NULL;
- Evas_Object *rect = NULL;
Eina_List *box_list = NULL;
Eina_List *list = NULL;
}
evas_object_del(box);
+ box = NULL;
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);
-
+ box_layout = NULL;
+ evas_object_smart_callback_del(scroller, "scroll,drag,start", _br_scroller_drag_start_cb);
+ evas_object_smart_callback_del(scroller, "scroll", _br_scroller_scrolled_cb);
+ evas_object_smart_callback_del(scroller, "scroll,anim,start", _br_scroller_ani_start_cb);
+ evas_object_smart_callback_del(scroller, "scroll,anim,stop", _br_scroller_ani_stop_cb);
evas_object_del(scroller);
+ scroller = NULL;
}
-
-
/* End of the file */
/*
- * Task Manager
+ * Task Manager
+ * Copyright (c) 2013 Samsung Electronics Co., Ltd.
*
- * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
+ * 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://www.apache.org/licenses/LICENSE-2.0
+ * 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,
+ * distributed under the License is distributed on an AS IS BASIS,
* WITHOUT 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_common.h>
#include <Elementary.h>
#include <app_manager.h>
#include <app_manager_extension.h>
#include "log.h"
#include "util.h"
-
-
-extern Eina_Bool util_kill_app(const char *appid)
+Eina_Bool util_kill_app(const char *appid)
{
app_context_h context = NULL;
Eina_Bool ret = EINA_TRUE;
-extern Eina_Bool util_launch_app(const char *appid)
+Eina_Bool util_launch_app(const char *appid)
{
int ret;
bool running = false;
return EINA_TRUE;
}
+int getEdjepath(const char *file_in, char *file_path_out, int file_path_max)
+{
+ int ret = -1;
+ char *res_path = app_get_resource_path();
+ if (res_path) {
+ ret = snprintf(file_path_out, file_path_max, "%s%s", res_path, file_in);
+ free(res_path);
+ }
+ return ret;
+}
//End of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE QtCreatorProject>
-<!-- Written by QtCreator 3.0.1, 2014-09-11T20:00:05. -->
-<qtcreator>
- <data>
- <variable>ProjectExplorer.Project.ActiveTarget</variable>
- <value type="int">0</value>
- </data>
- <data>
- <variable>ProjectExplorer.Project.EditorSettings</variable>
- <valuemap type="QVariantMap">
- <value type="bool" key="EditorConfiguration.AutoIndent">false</value>
- <value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
- <value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
- <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
- <value type="QString" key="language">Cpp</value>
- <valuemap type="QVariantMap" key="value">
- <value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
- </valuemap>
- </valuemap>
- <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
- <value type="QString" key="language">QmlJS</value>
- <valuemap type="QVariantMap" key="value">
- <value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
- </valuemap>
- </valuemap>
- <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
- <value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
- <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
- <value type="int" key="EditorConfiguration.IndentSize">4</value>
- <value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
- <value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
- <value type="int" key="EditorConfiguration.PaddingMode">1</value>
- <value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
- <value type="int" key="EditorConfiguration.SmartBackspaceBehavior">1</value>
- <value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
- <value type="int" key="EditorConfiguration.TabKeyBehavior">1</value>
- <value type="int" key="EditorConfiguration.TabSize">8</value>
- <value type="bool" key="EditorConfiguration.UseGlobal">true</value>
- <value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
- <value type="bool" key="EditorConfiguration.addFinalNewLine">false</value>
- <value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
- <value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
- <value type="bool" key="EditorConfiguration.inEntireDocument">true</value>
- </valuemap>
- </data>
- <data>
- <variable>ProjectExplorer.Project.PluginSettings</variable>
- <valuemap type="QVariantMap"/>
- </data>
- <data>
- <variable>ProjectExplorer.Project.Target.0</variable>
- <valuemap type="QVariantMap">
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{684c47e8-d6bb-4ad1-a9c6-9180bed66dfd}</value>
- <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
- <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
- <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
- <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/khee85/spin/task-mgr-lite</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
- <valuelist type="QVariantList" key="GenericProjectManager.GenericMakeStep.BuildTargets">
- <value type="QString">all</value>
- </valuelist>
- <value type="bool" key="GenericProjectManager.GenericMakeStep.Clean">false</value>
- <value type="QString" key="GenericProjectManager.GenericMakeStep.MakeArguments"></value>
- <value type="QString" key="GenericProjectManager.GenericMakeStep.MakeCommand"></value>
- <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">GenericProjectManager.GenericMakeStep</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
- </valuemap>
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
- <valuelist type="QVariantList" key="GenericProjectManager.GenericMakeStep.BuildTargets">
- <value type="QString">clean</value>
- </valuelist>
- <value type="bool" key="GenericProjectManager.GenericMakeStep.Clean">true</value>
- <value type="QString" key="GenericProjectManager.GenericMakeStep.MakeArguments"></value>
- <value type="QString" key="GenericProjectManager.GenericMakeStep.MakeCommand"></value>
- <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">GenericProjectManager.GenericMakeStep</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
- <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
- <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Default</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Default</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">GenericProjectManager.GenericBuildConfiguration</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">1</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
- <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
- <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy locally</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
- <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
- <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
- <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
- <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
- <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
- <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
- <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
- <value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
- <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
- <value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
- <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
- <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
- <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
- <value type="int">0</value>
- <value type="int">1</value>
- <value type="int">2</value>
- <value type="int">3</value>
- <value type="int">4</value>
- <value type="int">5</value>
- <value type="int">6</value>
- <value type="int">7</value>
- <value type="int">8</value>
- <value type="int">9</value>
- <value type="int">10</value>
- <value type="int">11</value>
- <value type="int">12</value>
- <value type="int">13</value>
- <value type="int">14</value>
- </valuelist>
- <value type="int" key="PE.EnvironmentAspect.Base">2</value>
- <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
- <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Arguments"></value>
- <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Executable"></value>
- <value type="bool" key="ProjectExplorer.CustomExecutableRunConfiguration.UseTerminal">false</value>
- <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.WorkingDirectory">%{buildDir}</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Custom Executable</value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
- <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.CustomExecutableRunConfiguration</value>
- <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
- <value type="bool" key="RunConfiguration.UseCppDebugger">true</value>
- <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">false</value>
- <value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
- <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
- <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
- </valuemap>
- <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
- </valuemap>
- </data>
- <data>
- <variable>ProjectExplorer.Project.TargetCount</variable>
- <value type="int">1</value>
- </data>
- <data>
- <variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
- <value type="QByteArray">{34f591bc-6b5b-4cb5-922e-abe922ef66f6}</value>
- </data>
- <data>
- <variable>ProjectExplorer.Project.Updater.FileVersion</variable>
- <value type="int">15</value>
- </data>
-</qtcreator>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<manifest xmlns="http://tizen.org/ns/packages" api-version="3.0" package="org.tizen.task-mgr" version="1.0.0">
+ <profile name="wearable"/>
+ <ui-application appid="org.tizen.task-mgr" exec="task-mgr" multiple="false" nodisplay="false" taskmanage="true" type="capp">
+ <label>Recents</label>
+ <icon>org.tizen.task-mgr.png</icon>
+ </ui-application>
+ <privileges>
+ <privilege>http://tizen.org/privilege/packagemanager.clearcache</privilege>
+ <privilege>http://tizen.org/privilege/appmanager.kill.bgapp</privilege>
+ <privilege>http://tizen.org/privilege/appmanager.launch</privilege>
+ <privilege>http://tizen.org/privilege/packagemanager.info</privilege>
+ </privileges>
+</manifest>