add_definitions("-DRES_DIR=\"${RES_DIR}/\"")
add_definitions("-DLOCALE_DIR=\"${LOCALE_DIR}\"")
+add_subdirectory(lib-apps-common)
add_subdirectory(lib-common)
add_subdirectory(lib-contact)
add_subdirectory(lib-phone)
--- /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.so.debug.119020880">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecore.config.sbi.gcc45.so.debug.119020880" 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 artifactExtension="so" artifactName="apps-common" buildArtefactType="org.tizen.nativecore.buildArtefactType.sharedLib" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.tizen.nativecore.buildArtefactType.sharedLib,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.so.debug.119020880" name="Debug" parent="org.tizen.nativecore.config.sbi.gcc45.so.debug">
+ <folderInfo id="org.tizen.nativecore.config.sbi.gcc45.so.debug.119020880." name="/" resourcePath="">
+ <toolChain id="org.tizen.nativecore.toolchain.sbi.gcc45.so.debug.2051485246" name="Tizen Native Toolchain" superClass="org.tizen.nativecore.toolchain.sbi.gcc45.so.debug">
+ <targetPlatform binaryParser="org.eclipse.cdt.core.ELF" id="org.tizen.nativeide.target.sbi.gnu.platform.base.589094415" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+ <builder autoBuildTarget="all" buildPath="${workspace_loc:/lib-apps-common}/Debug" enableAutoBuild="true" id="org.tizen.nativecore.target.sbi.gnu.builder.1048697282" 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.1819863057" name="Archiver" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver"/>
+ <tool command="arm-linux-gnueabi-g++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler.1237370598" name="C++ Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler">
+ <option id="gnu.cpp.compiler.option.optimization.level.1692620041" 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.124537019" name="Debug level" superClass="sbi.gnu.cpp.compiler.option.debugging.level.core" valueType="enumerated"/>
+ <option defaultValue="true" id="sbi.gnu.cpp.compiler.option.misc.pic.core.1293188600" name="-fPIC option" superClass="sbi.gnu.cpp.compiler.option.misc.pic.core" value="true" valueType="boolean"/>
+ <option id="sbi.gnu.cpp.compiler.option.883965797" name="Tizen-Target" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
+ <listOptionValue builtIn="false" value="mobile-2.4-device.core_gcc49.armel.core.sharedLib"/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks_inc.core.1221919882" 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/appfw""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/attach-panel""/>
+ <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/calendar-service2""/>
+ <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/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/ecore-x-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/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/ewebkit2-0""/>
+ <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/geofence""/>
+ <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/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/minicontrol""/>
+ <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/phonenumber-utils""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/sensor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/shortcut""/>
+ <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/web""/>
+ <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/wifi-direct""/>
+ <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.1868946826" 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="--sysroot="${SBI_SYSROOT}""/>
+ <listOptionValue builtIn="false" value="-mthumb"/>
+ <listOptionValue builtIn="false" value="-fvisibility=hidden"/>
+ </option>
+ <option id="gnu.cpp.compiler.option.include.paths.769492000" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/inc}""/>
+ <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/appfw""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/attach-panel""/>
+ <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/calendar-service2""/>
+ <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/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/ecore-x-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/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/ewebkit2-0""/>
+ <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/geofence""/>
+ <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/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/minicontrol""/>
+ <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/phonenumber-utils""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/sensor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/shortcut""/>
+ <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/web""/>
+ <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/wifi-direct""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/dbus-1.0/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/glib-2.0/include""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/lib-apps-common/inc}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/lib-apps-common/res/apps-common/edje}""/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks.core.1624823287" name="Tizen-Frameworks" superClass="sbi.gnu.cpp.compiler.option.frameworks.core" valueType="userObjs">
+ <listOptionValue builtIn="false" value="Native_API"/>
+ </option>
+ <option id="gnu.cpp.compiler.option.dialect.std.1155082077" name="Language standard" superClass="gnu.cpp.compiler.option.dialect.std" value="gnu.cpp.compiler.dialect.default" valueType="enumerated"/>
+ <option id="gnu.cpp.compiler.option.dialect.flags.1950104097" name="Other dialect flags" superClass="gnu.cpp.compiler.option.dialect.flags" value="-std=c++11" valueType="string"/>
+ <option id="gnu.cpp.compiler.option.other.other.1399230646" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" value="-c -fmessage-length=0 -Wno-unused-function" valueType="string"/>
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1940484793" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+ </tool>
+ <tool command="arm-linux-gnueabi-gcc" id="org.tizen.nativecore.tool.sbi.gnu.c.compiler.949181195" 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.823571777" 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.1300888938" name="Debug level" superClass="sbi.gnu.c.compiler.option.debugging.level.core" valueType="enumerated"/>
+ <option defaultValue="true" id="sbi.gnu.c.compiler.option.misc.pic.core.1090861130" name="-fPIC option" superClass="sbi.gnu.c.compiler.option.misc.pic.core" valueType="boolean"/>
+ <option id="sbi.gnu.c.compiler.option.1029738450" name="Tizen-Target" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
+ <listOptionValue builtIn="false" value="mobile-2.4-device.core_gcc49.armel.core.sharedLib"/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks_inc.core.553136690" 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/appfw""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/attach-panel""/>
+ <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/calendar-service2""/>
+ <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/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/ecore-x-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/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/ewebkit2-0""/>
+ <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/geofence""/>
+ <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/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/minicontrol""/>
+ <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/phonenumber-utils""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/sensor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/shortcut""/>
+ <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/web""/>
+ <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/wifi-direct""/>
+ <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.273368038" 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="--sysroot="${SBI_SYSROOT}""/>
+ <listOptionValue builtIn="false" value="-mthumb"/>
+ <listOptionValue builtIn="false" value="-fvisibility=hidden"/>
+ </option>
+ <option id="gnu.c.compiler.option.include.paths.1871191932" 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.1848864191" 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.925122232" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+ </tool>
+ <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.2079975459" name="C Linker" superClass="org.tizen.nativeide.tool.sbi.gnu.c.linker.base"/>
+ <tool command="arm-linux-gnueabi-g++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.linker.279768150" name="C++ Linker" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.linker">
+ <option defaultValue="true" id="sbi.gnu.cpp.linker.option.shared_flag.core.1951653136" name="Linker.Shared" superClass="sbi.gnu.cpp.linker.option.shared_flag.core" valueType="boolean"/>
+ <option defaultValue="true" id="sbi.gnu.cpp.linker.option.noundefined.core.227464450" 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.694339525" 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="-lpthread "/>
+ <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ <listOptionValue builtIn="false" value="-L"${SBI_SYSROOT}/usr/lib""/>
+ <listOptionValue builtIn="false" value="$(RS_LIBRARIES)"/>
+ </option>
+ <option id="gnu.cpp.link.option.paths.1870774001" 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.1668238422" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
+ <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
+ <additionalInput kind="additionalinput" paths="$(LIBS)"/>
+ </inputType>
+ </tool>
+ <tool command="arm-linux-gnueabi-as" id="org.tizen.nativeapp.tool.sbi.gnu.assembler.base.633178501" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.170319493" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+ </tool>
+ <tool id="org.tizen.nativecore.tool.fnmapgen.1693957368" name="C FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen"/>
+ <tool id="org.tizen.nativecore.tool.fnmapgen.cpp.614590376" name="C++ FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen.cpp"/>
+ <tool id="org.tizen.nativecore.tool.ast.1510343806" name="C Static Analyzer" superClass="org.tizen.nativecore.tool.ast"/>
+ <tool id="org.tizen.nativecore.tool.ast.cpp.658188695" name="C++ Static Analyzer" superClass="org.tizen.nativecore.tool.ast.cpp"/>
+ <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib.1643212896" name="Archive Generator" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib"/>
+ <tool id="org.tizen.nativecore.tool.sbi.po.compiler.800438767" name="PO Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.po.compiler"/>
+ <tool id="org.tizen.nativecore.tool.sbi.edc.compiler.910674138" name="EDC Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.edc.compiler">
+ <option id="sbi.gnu.edc.compiler.option.misc.id.89058249" name="Image Path (-id)" superClass="sbi.gnu.edc.compiler.option.misc.id" valueType="stringList">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/res}""/>
+ </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="src"/>
+ </sourceEntries>
+ </configuration>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+ </cconfiguration>
+ <cconfiguration id="org.tizen.nativecore.config.sbi.gcc45.so.release.1726378043">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecore.config.sbi.gcc45.so.release.1726378043" 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 artifactExtension="so" artifactName="org.tizen.apps-common" buildArtefactType="org.tizen.nativecore.buildArtefactType.sharedLib" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.tizen.nativecore.buildArtefactType.sharedLib,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.so.release.1726378043" name="Release" parent="org.tizen.nativecore.config.sbi.gcc45.so.release">
+ <folderInfo id="org.tizen.nativecore.config.sbi.gcc45.so.release.1726378043." name="/" resourcePath="">
+ <toolChain id="org.tizen.nativecore.toolchain.sbi.gcc45.so.release.479052506" name="Tizen Native Toolchain" superClass="org.tizen.nativecore.toolchain.sbi.gcc45.so.release">
+ <targetPlatform binaryParser="org.eclipse.cdt.core.ELF" id="org.tizen.nativeide.target.sbi.gnu.platform.base.1018798881" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+ <builder buildPath="${workspace_loc:/lib-apps-common}/Release" id="org.tizen.nativecore.target.sbi.gnu.builder.149016381" 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.2093589563" name="Archiver" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver"/>
+ <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler.1354158935" name="C++ Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler">
+ <option id="gnu.cpp.compiler.option.optimization.level.170350304" 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.596043701" name="Debug level" superClass="sbi.gnu.cpp.compiler.option.debugging.level.core" valueType="enumerated"/>
+ <option defaultValue="true" id="sbi.gnu.cpp.compiler.option.misc.pic.core.1024499531" name="-fPIC option" superClass="sbi.gnu.cpp.compiler.option.misc.pic.core" valueType="boolean"/>
+ <option id="sbi.gnu.cpp.compiler.option.1442464409" name="Tizen-Target" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
+ <listOptionValue builtIn="false" value="mobile-2.4-emulator.core_llvm36.i386.core.sharedLib"/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks_inc.core.76672609" 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/appfw""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/attach-panel""/>
+ <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/calendar-service2""/>
+ <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/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/ecore-x-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/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/ewebkit2-0""/>
+ <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/geofence""/>
+ <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/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/minicontrol""/>
+ <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/phonenumber-utils""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/sensor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/shortcut""/>
+ <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/web""/>
+ <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/wifi-direct""/>
+ <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.2001342911" 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="--sysroot="${SBI_SYSROOT}""/>
+ <listOptionValue builtIn="false" value="-fvisibility=hidden"/>
+ </option>
+ <option id="gnu.cpp.compiler.option.include.paths.944805796" 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.348478814" 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.925397267" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+ </tool>
+ <tool command="clang" id="org.tizen.nativecore.tool.sbi.gnu.c.compiler.1143748085" 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.1085259207" 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.913386253" name="Debug level" superClass="sbi.gnu.c.compiler.option.debugging.level.core" valueType="enumerated"/>
+ <option defaultValue="true" id="sbi.gnu.c.compiler.option.misc.pic.core.985782675" name="-fPIC option" superClass="sbi.gnu.c.compiler.option.misc.pic.core" valueType="boolean"/>
+ <option id="sbi.gnu.c.compiler.option.830715601" name="Tizen-Target" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
+ <listOptionValue builtIn="false" value="mobile-2.4-emulator.core_llvm36.i386.core.sharedLib"/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks_inc.core.1107604994" 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/appfw""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/attach-panel""/>
+ <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/calendar-service2""/>
+ <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/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/ecore-x-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/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/ewebkit2-0""/>
+ <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/geofence""/>
+ <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/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/minicontrol""/>
+ <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/phonenumber-utils""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/sensor""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/shortcut""/>
+ <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/web""/>
+ <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/wifi-direct""/>
+ <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.736334736" 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="--sysroot="${SBI_SYSROOT}""/>
+ <listOptionValue builtIn="false" value="-fvisibility=hidden"/>
+ </option>
+ <option id="gnu.c.compiler.option.include.paths.1225514754" 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.1948585633" 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.1470546473" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+ </tool>
+ <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.529786459" 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.1060663793" name="C++ Linker" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.linker">
+ <option defaultValue="true" id="sbi.gnu.cpp.linker.option.shared_flag.core.173109100" name="Linker.Shared" superClass="sbi.gnu.cpp.linker.option.shared_flag.core" valueType="boolean"/>
+ <option defaultValue="true" id="sbi.gnu.cpp.linker.option.noundefined.core.1619438138" 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.1242270603" 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="-lpthread "/>
+ <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ <listOptionValue builtIn="false" value="-L"${SBI_SYSROOT}/usr/lib""/>
+ <listOptionValue builtIn="false" value="$(RS_LIBRARIES)"/>
+ </option>
+ <option id="gnu.cpp.link.option.paths.86201883" 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.289818099" 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.744980287" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.285718668" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+ </tool>
+ <tool id="org.tizen.nativecore.tool.fnmapgen.323033626" name="C FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen"/>
+ <tool id="org.tizen.nativecore.tool.fnmapgen.cpp.713374260" name="C++ FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen.cpp"/>
+ <tool id="org.tizen.nativecore.tool.ast.1933211459" name="C Static Analyzer" superClass="org.tizen.nativecore.tool.ast"/>
+ <tool id="org.tizen.nativecore.tool.ast.cpp.790933542" name="C++ Static Analyzer" superClass="org.tizen.nativecore.tool.ast.cpp"/>
+ <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib.190560800" name="Archive Generator" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib"/>
+ <tool id="org.tizen.nativecore.tool.sbi.po.compiler.1412563891" name="PO Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.po.compiler"/>
+ <tool id="org.tizen.nativecore.tool.sbi.edc.compiler.211510250" 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="src"/>
+ </sourceEntries>
+ </configuration>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+ </cconfiguration>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <project id="lib-apps-common.org.tizen.nativecore.target.sbi.gcc45.so.1096739394" name="Tizen Native Shared Library" projectType="org.tizen.nativecore.target.sbi.gcc45.so"/>
+ </storageModule>
+ <storageModule moduleId="scannerConfiguration">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+ <scannerConfigBuildInfo instanceId="org.tizen.nativecore.config.sbi.gcc45.so.release.1726378043">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="org.tizen.nativecore.config.sbi.gcc45.so.debug.119020880">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+ </scannerConfigBuildInfo>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
+ <storageModule moduleId="refreshScope" versionNumber="2">
+ <configuration configurationName="Debug">
+ <resource resourceType="PROJECT" workspacePath="/lib-apps-common"/>
+ </configuration>
+ <configuration configurationName="Release">
+ <resource resourceType="PROJECT" workspacePath="/lib-apps-common"/>
+ </configuration>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
+</cproject>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>lib-apps-common</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.tizen.nativecore.apichecker.apicheckerbuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <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>
+ <nature>org.tizen.nativecore.apichecker.apicheckernature</nature>
+ </natures>
+ <filteredResources>
+ <filter>
+ <id>1456218244303</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>1456218244316</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>
+ <filter>
+ <id>1456218244318</id>
+ <name></name>
+ <type>22</type>
+ <matcher>
+ <id>org.eclipse.ui.ide.multiFilter</id>
+ <arguments>1.0-name-matches-false-false-CMakeLists.txt</arguments>
+ </matcher>
+ </filter>
+ </filteredResources>
+</projectDescription>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<tproject xmlns="http://www.tizen.org/tproject">
+ <platforms>
+ <platform>
+ <name>mobile-2.4</name>
+ </platform>
+ </platforms>
+ <package>
+ <blacklist/>
+ <resFallback autoGen="true"/>
+ </package>
+</tproject>
--- /dev/null
+cmake_minimum_required(VERSION 2.6)
+project(apps-common CXX)
+
+file(GLOB_RECURSE SOURCES src/*.cpp)
+include_directories(
+ ${CMAKE_CURRENT_SOURCE_DIR}/inc
+ ${CMAKE_CURRENT_SOURCE_DIR}/res/apps-common/edje
+)
+
+add_library(${PROJECT_NAME} SHARED ${SOURCES})
+target_link_libraries(${PROJECT_NAME} ${LIBRARIES})
+
+install(TARGETS ${PROJECT_NAME} DESTINATION ${LIB_DIR})
+
+add_subdirectory(res/apps-common)
--- /dev/null
+/*
+ * Copyright (c) 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 APP_APP_CONTROL_H
+#define APP_APP_CONTROL_H
+
+#include <app_control.h>
+
+namespace App
+{
+ class EXPORT_API AppControl
+ {
+ public:
+ /**
+ * @brief Create empty app control wrapper. The wrapper doesn't contain any
+ * value it can only be assigned to.
+ */
+ AppControl();
+
+ /**
+ * @brief Create app control request
+ *
+ * @see app_control_set_operation()
+ * @see app_control_set_mime()
+ * @see app_control_set_uri()
+ */
+ AppControl(const char *operation,
+ const char *mime = nullptr,
+ const char *uri = nullptr);
+
+ AppControl(const AppControl&) = delete;
+ AppControl(AppControl&&);
+ ~AppControl();
+
+ /**
+ * @return Stored app control handle
+ */
+ app_control_h getHandle() const;
+
+ /**
+ * @see app_control_add_extra_data()
+ */
+ void addExtra(const char *key, const char *value);
+
+ /**
+ * @see app_control_add_extra_data_array()
+ */
+ void addExtra(const char *key, const char **array, int length);
+
+ /**
+ * @brief Launch app control request
+ * @return App Control launch result
+ *
+ * @see app_control_set_launch_mode()
+ * @see app_control_send_launch_request()
+ */
+ int launch(app_control_reply_cb replyCallback = nullptr, void *userData = nullptr,
+ bool groupMode = true);
+
+ /**
+ * @see app_control_send_terminate_request()
+ */
+ void terminate();
+
+ /**
+ * @brief Prevent app control termination on destruction.
+ */
+ void detach();
+
+ AppControl &operator=(const AppControl&) = delete;
+ AppControl &operator=(AppControl&&);
+
+ private:
+ void reset();
+
+ app_control_h m_AppControl;
+ bool m_AutoTerminate;
+ };
+}
+
+#endif /* APP_APP_CONTROL_H */
--- /dev/null
+/*
+ * Copyright (c) 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 APP_APP_CONTROL_REQUEST_H
+#define APP_APP_CONTROL_REQUEST_H
+
+#include "App/AppControl.h"
+#include <string>
+#include <vector>
+
+#define APP_CONTROL_OPERATION_SETTING_CALL "http://tizen.org/appcontrol/operation/setting/call"
+
+#define APP_CONTROL_MIME_CONTACT "application/vnd.tizen.contact"
+
+#define APP_CONTROL_SELECT_SINGLE "single"
+#define APP_CONTROL_SELECT_MULTIPLE "multiple"
+
+#define APP_CONTROL_RESULT_ID "id"
+#define APP_CONTROL_RESULT_PHONE "phone"
+#define APP_CONTROL_RESULT_EMAIL "email"
+#define APP_CONTROL_RESULT_VCARD "vcf"
+
+namespace App
+{
+ /**
+ * @brief Request contact creation operation
+ * @param[in] number Phone number to save to the new contact
+ * @return AppControl wrapper
+ */
+ AppControl EXPORT_API requestContactCreate(const char *number);
+
+ /**
+ * @brief Request contact view operation
+ * @param[in] personId ID of person to view
+ * @return AppControl wrapper
+ */
+ AppControl EXPORT_API requestContactDetails(int personId);
+
+ /**
+ * @brief Request contact edit operation
+ * @param[in] personId ID of person to edit or 0 to launch pick first
+ * @param[in] number Phone number to add to the edited contact
+ * @return AppControl wrapper
+ */
+ AppControl EXPORT_API requestContactEdit(int personId, const char *number);
+
+ /**
+ * @brief Request contact pick operation
+ * @param[in] selectionMode One of APP_CONTROL_SELECT_* values
+ * @param[in] resultType One of APP_CONTROL_RESULT_* values
+ * @return AppControl wrapper
+ */
+ AppControl EXPORT_API requestContactPick(const char *selectionMode, const char *resultType);
+
+ /**
+ * @brief Request telephony call
+ * @param[in] number Number to call
+ * @return AppControl wrapper
+ */
+ AppControl EXPORT_API requestTelephonyCall(const char *number);
+
+ /**
+ * @brief Request launch call settings
+ * @return AppControl wrapper
+ */
+ AppControl EXPORT_API requestCallSettings();
+
+ /**
+ * @brief Request message composer
+ * @param[in] scheme URI scheme (e.g. sms:, mmsto: or mailto:)
+ * @param[in] to Message recipient
+ * @param[in] subject Message subject
+ * @param[in] text Message text
+ * @return AppControl wrapper
+ */
+ AppControl EXPORT_API requestMessageComposer(const char *scheme, const char *to,
+ const char *subject = nullptr, const char *text = nullptr);
+
+ /**
+ * @brief Request camera image capture
+ * @return AppControl wrapper
+ */
+ AppControl EXPORT_API requestCameraImage();
+
+ /**
+ * @brief Request pick image from gallery
+ * @return AppControl wrapper
+ */
+ AppControl EXPORT_API requestGalleryImage();
+
+ /**
+ * @brief Request share contact via other application
+ * @param[in] personId Contact's person ID
+ * @return AppControl wrapper
+ */
+ AppControl EXPORT_API requestShareContact(int personId);
+
+ /**
+ * @brief Request share "My Profile" via other application
+ * @param[in] recordId "My Profile" record ID
+ * @return AppControl wrapper
+ */
+ AppControl EXPORT_API requestShareMyProfile(int recordId);
+
+ /**
+ * @brief Get single first string from App Control array extra data.
+ * @param[in] appControl App Control handle
+ * @param[in] key Extra data array key
+ * @return First string from array on success, otherwise empty string.
+ */
+ std::string EXPORT_API getSingleExtraData(app_control_h appControl, const char *key);
+
+ /**
+ * @brief Get vector of integer values from App Control array extra data.
+ * @param[in] appControl App Control handle
+ * @param[in] key Extra data array key
+ * @return Vector of integer values on success, otherwise empty vector.
+ */
+ std::vector<int> EXPORT_API getIntExtraDataArray(app_control_h appControl, const char *key);
+}
+
+#endif /* APP_APP_CONTROL_REQUEST_H */
--- /dev/null
+/*
+ * Copyright (c) 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 APP_APPLICATION_H
+#define APP_APPLICATION_H
+
+#include <app.h>
+
+namespace App
+{
+ /**
+ * @brief Application lifecycle controller.
+ */
+ class EXPORT_API Application
+ {
+ public:
+ /**
+ * @brief Run application main loop.
+ * @param[in] argc argc parameter received in main()
+ * @param[in] argv argv parameter received in main()
+ */
+ int run(int argc, char **argv);
+
+ protected:
+ virtual ~Application() { }
+
+ /**
+ * @brief Called when application is created
+ * @return true on success, otherwise false
+ */
+ virtual bool onCreate() { return true; }
+
+ /**
+ * @brief Called when application is terminated
+ */
+ virtual void onTerminate() { }
+
+ /**
+ * @brief Called when application is paused
+ */
+ virtual void onPause() { }
+
+ /**
+ * @brief Called when application is resumed
+ */
+ virtual void onResume() { }
+
+ /**
+ * @brief Called when application receives App Control request
+ * @param request App Control request
+ */
+ virtual void onAppControl(app_control_h request) { }
+ };
+}
+
+#endif /* APP_APPLICATION_H */
--- /dev/null
+/*
+ * Copyright (c) 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 APP_PATH_H
+#define APP_PATH_H
+
+#include <string>
+#include <tizen.h>
+
+namespace App
+{
+ /**
+ * @return Resource directory path
+ */
+ EXPORT_API const std::string &getResourceDir();
+
+ /**
+ * @return Localization files directory path
+ */
+ EXPORT_API const std::string &getLocaleDir();
+
+ /**
+ * @brief Get resource file path.
+ * @param[in] relativePath File path relative to resource directory
+ * @return Full file path
+ */
+ EXPORT_API std::string getResourcePath(const std::string &relativePath);
+}
+
+#endif /* APP_PATH_H */
--- /dev/null
+/*
+ * Copyright (c) 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 UI_BUTTON_H
+#define UI_BUTTON_H
+
+#include "Ui/Control.h"
+#include <functional>
+
+namespace Ui
+{
+ /**
+ * @brief Provides convenient press and longpress events handling.
+ */
+ class EXPORT_API Button : public Control
+ {
+ public:
+ Button();
+ virtual ~Button() override;
+
+ /**
+ * @brief Set press-event callback.
+ */
+ void setPressedCallback(std::function<void(Button &)> callback);
+
+ /**
+ * @brief Set longpress-event callback.
+ * @details Callback should return true if the event was handled.
+ * If callback returns false onPressed event will be delivered
+ * as well when the button is released.
+ */
+ void setLongpressedCallback(std::function<bool(Button &)> callback);
+
+ private:
+ virtual Evas_Object *onCreate(Evas_Object *parent) override;
+ virtual void onCreated() override;
+
+ void onMouseDown(Evas *evas, Evas_Object *obj, void *eventInfo);
+ void onMouseUp(Evas *evas, Evas_Object *obj, void *eventInfo);
+ void onMouseOut(Evas *evas, Evas_Object *obj, void *eventInfo);
+
+ void resetTimer();
+ Eina_Bool onTimeout();
+
+ Ecore_Timer *m_Timer;
+ bool m_IsLongpressed;
+
+ std::function<void(Button &)> m_OnPressed;
+ std::function<bool(Button &)> m_OnLongpressed;
+ };
+}
+
+#endif /* UI_BUTTON_H */
--- /dev/null
+/*
+ * Copyright (c) 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 UI_CONTROL_H
+#define UI_CONTROL_H
+
+#include <Elementary.h>
+#include <tizen.h>
+
+namespace Ui
+{
+ class Window;
+
+ /**
+ * @brief Evas_Object wrapper.
+ * @details Ties the lifetime of this object to the underlying Evas_Object.
+ * @remark Should always be allocated with operator "new".
+ */
+ class EXPORT_API Control
+ {
+ public:
+ Control();
+ Control(const Control &that) = delete;
+ Control(Control &&that) = delete;
+ virtual ~Control();
+
+ Control & operator=(const Control &that) = delete;
+ Control & operator=(Control &&that) = delete;
+
+ /**
+ * @brief Create underlying Evas_Object by calling onCreate()
+ * @param[in] parent Parent Evas_Object
+ * @return Created Evas_Object on success, otherwise nullptr
+ */
+ Evas_Object *create(Evas_Object *parent);
+
+ /**
+ * @return Underlying Evas_Object.
+ */
+ Evas_Object *getEvasObject() const;
+
+ /**
+ * @return Main application window.
+ */
+ Window *getWindow() const;
+
+ /**
+ * @brief Get Control object from Evas_Object
+ * @param[in] object Evas_Object that belongs to some Control
+ * @return Control tied to Evas_Object
+ */
+ static Control *getControl(Evas_Object *object);
+
+ /**
+ * @brief Get main application window from any child object.
+ */
+ static Window *getWindow(Evas_Object *object);
+
+ protected:
+ /**
+ * @brief Called after create() is called
+ * @param[in] parent Parent Evas_Object
+ * @return Created Evas_Object on success, otherwise nullptr
+ */
+ virtual Evas_Object *onCreate(Evas_Object *parent) = 0;
+
+ /**
+ * @brief Called after onCreate() has returned
+ */
+ virtual void onCreated() { }
+
+ private:
+ void setEvasObject(Evas_Object *object);
+ Evas_Object *resetEvasObject();
+ void destroyEvasObject();
+
+ void onDestroy(Evas *e, Evas_Object *obj, void *event_info);
+
+ Evas_Object *m_Object;
+ };
+}
+
+#endif /* UI_CONTROL_H */
--- /dev/null
+/*
+ * Copyright (c) 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 UI_DATE_POPUP_H
+#define UI_DATE_POPUP_H
+
+#include "Ui/Popup.h"
+
+namespace Ui
+{
+ /**
+ * @brief Popup with date picker.
+ */
+ class EXPORT_API DatePopup : public Popup
+ {
+ public:
+ /**
+ * @brief Date input result callback.
+ * @param[in] Inputed date
+ */
+ typedef std::function<void(const tm&)> ResultCallback;
+
+ /**
+ * @brief Create date popup.
+ * @param[in] date Initial date value
+ */
+ DatePopup(tm date);
+
+ /**
+ * @brief Set date input result callback.
+ * @param[in] callback Callback to be called when user confirmed inputed date
+ */
+ void setResultCallback(ResultCallback callback);
+
+ private:
+ virtual void onCreated() override;
+ void onSetPressed();
+
+ tm m_Date;
+ ResultCallback m_OnResult;
+ Evas_Object *m_DatePicker;
+ };
+}
+
+#endif /* UI_DATE_POPUP_H */
--- /dev/null
+/*
+ * Copyright (c) 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 UI_EDITFIELD_H
+#define UI_EDITFIELD_H
+
+#include "Ui/Control.h"
+
+namespace Ui
+{
+ /**
+ * @brief Editfield layout with entry and "clear" button
+ */
+ class EXPORT_API Editfield : public Control
+ {
+ public:
+ /**
+ * @brief Allows method overload instead of shadowing
+ */
+ using Control::create;
+
+ /**
+ * @brief Create editfield with guide text.
+ * @param[in] parent Editfield parent
+ * @param[in] guideText Text to be displayed when entry is empty
+ * @return Created editfield.
+ */
+ static Editfield *create(Evas_Object *parent, const char *guideText);
+
+ /**
+ * @brief Set entry guide text.
+ * @param[in] guideText Text to be displayed when entry is empty
+ */
+ void setGuideText(const char *guideText);
+
+ /**
+ * @return Contained entry.
+ */
+ Evas_Object *getEntry();
+
+ /**
+ * @return Clear button.
+ */
+ Evas_Object *getClearButton();
+
+ private:
+ virtual Evas_Object *onCreate(Evas_Object *parent) override;
+
+ static void onChanged(Evas_Object *layout, Evas_Object *entry, void *eventInfo);
+ static void onFocused(Evas_Object *layout, Evas_Object *entry, void *eventInfo);
+ static void onUnfocused(Evas_Object *layout, Evas_Object *entry, void *eventInfo);
+ static void onClearPressed(Evas_Object *entry, Evas_Object *button, void *eventInfo);
+ };
+}
+
+#endif /* UI_EDITFIELD_H */
--- /dev/null
+/*
+ * Copyright (c) 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 UI_GENLIST_H
+#define UI_GENLIST_H
+
+#include "Ui/Control.h"
+#include "Ui/GenlistIterator.h"
+
+namespace Ui
+{
+ class GenlistGroupItem;
+ class EXPORT_API Genlist : public Control
+ {
+ public:
+ enum Position
+ {
+ Before,
+ After
+ };
+
+ /**
+ * @return Genlist first Item.
+ */
+ GenlistItem *getFirstItem() const;
+
+ /**
+ * @return Genlist last Item.
+ */
+ GenlistItem *getLastItem() const;
+
+ /**
+ * @return Genlist begin iterator.
+ */
+ GenlistIterator begin() const;
+
+ /**
+ * @return Genlist end iterator.
+ */
+ GenlistIterator end() const;
+
+ /**
+ * @brief Insert genlist Item at specified position.
+ * @param[in] item Item to insert
+ * @param[in] parent Parent group item
+ * @param[in] sibling Sibling item
+ * @param[in] position Insert before/after @a sibling
+ * @remarks Inserting item BEFORE nullptr (@a sibling)
+ * actually means that there is no items after it (i.e. item is appended).
+ * Same goes for inserting AFTER nullptr (i.e. item is prepended).
+ * This might seem like a counter-intuitive behavior but it supports
+ * commonly used pattern.
+ */
+ void insert(GenlistItem *item,
+ GenlistGroupItem *parent = nullptr,
+ GenlistItem *sibling = nullptr,
+ Position position = Before);
+
+ /**
+ * @brief Update specific parts of realized items
+ * @param[in] parts The name of item parts
+ * @param[in] type The type of item parts
+ * @see elm_genlist_item_fields_update()
+ */
+ void update(const char *parts, Elm_Genlist_Item_Field_Type type);
+
+ private:
+ virtual Evas_Object *onCreate(Evas_Object *parent) override;
+
+ static void onItemSelected(void *data, Evas_Object *obj, Elm_Object_Item *objectItem);
+ static void onItemExpanded(void *data, Evas_Object *obj, Elm_Object_Item *objectItem);
+ static void onItemContracted(void *data, Evas_Object *obj, Elm_Object_Item *objectItem);
+ static void onItemRealized(void *data, Evas_Object *obj, Elm_Object_Item *objectItem);
+ static void onItemUnrealized(void *data, Evas_Object *obj, Elm_Object_Item *objectItem);
+ };
+}
+
+#endif /* UI_GENLIST_H */
--- /dev/null
+/*
+ * Copyright (c) 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 UI_GENLIST_CHECK_ITEM
+#define UI_GENLIST_CHECK_ITEM
+
+#include "Ui/GenlistItem.h"
+
+namespace Ui
+{
+ /**
+ * @brief Genlist check item
+ */
+ class EXPORT_API GenlistCheckItem : public Ui::GenlistItem
+ {
+ public:
+ /**
+ * @brief Item check callback.
+ * @param[in] Whether item is checked
+ */
+ typedef std::function<void(bool)> CheckCallback;
+
+ GenlistCheckItem();
+
+ /**
+ * @return Whether the item is checked.
+ */
+ bool isChecked() const;
+
+ /**
+ * @brief Set item check state.
+ * @param[in] isChecked Whether item is checked
+ */
+ void setChecked(bool isChecked);
+
+ /**
+ * @brief Set item check callback.
+ * @param[in] callback Callback to be called when item is checked/unchecked
+ */
+ void setCheckCallback(CheckCallback callback);
+
+ protected:
+ /**
+ * @see GenlistItem::getContent()
+ * @remark Use it in derived class to create check component
+ */
+ virtual Evas_Object *getContent(Evas_Object *parent, const char *part) override;
+
+ /**
+ * @see GenlistItem::onSelected()
+ */
+ virtual void onSelected() override;
+
+ /**
+ * @brief Called when item is checked or unchecked.
+ * @param[in] isChecked Whether item is checked
+ */
+ virtual void onChecked(bool isChecked) { }
+
+ private:
+ void onChecked();
+ void onCheckChanged(Evas_Object *check, void *eventInfo);
+
+ std::string m_CheckPart;
+ Eina_Bool m_IsChecked;
+ CheckCallback m_OnChecked;
+ };
+}
+
+#endif /* UI_GENLIST_CHECK_ITEM */
--- /dev/null
+/*
+ * Copyright (c) 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 UI_GENLIST_GROUP_ITEM_H
+#define UI_GENLIST_GROUP_ITEM_H
+
+#include "Ui/Genlist.h"
+#include "Ui/GenlistItem.h"
+#include "Ui/GenlistIterator.h"
+#include <vector>
+
+namespace Ui
+{
+ class EXPORT_API GenlistGroupItem : virtual public GenlistItem
+ {
+ public:
+ GenlistGroupItem();
+ virtual ~GenlistGroupItem() override;
+
+ /**
+ * @return Group begin iterator.
+ */
+ GenlistIterator begin();
+
+ /**
+ * @return Group end iterator.
+ */
+ GenlistIterator end();
+
+ /**
+ * @return Whether the group has no items (i.e. GroupItem has no subitems).
+ */
+ bool empty() const;
+
+ /**
+ * @return Whether subitems are shown.
+ */
+ bool isExpanded() const;
+
+ /**
+ * @return Group item of the next group or nullptr if none.
+ */
+ GenlistGroupItem *getNextGroupItem() const;
+
+ /**
+ * @return Group item of the previous group or nullptr if none.
+ */
+ GenlistGroupItem *getPrevGroupItem() const;
+
+ /**
+ * @brief Insert sub item to the group.
+ * @details If group item is not yet inserted itself, sub item is cached
+ * and inserted into genlist when it's parent is inserted.
+ * @see Genlist::insert()
+ */
+ void insertSubItem(GenlistItem *item,
+ GenlistItem *sibling = nullptr,
+ Genlist::Position position = Genlist::Before);
+
+ protected:
+ /**
+ * @see GenlistItem::isGroupItem()
+ */
+ virtual bool isGroupItem() const override { return true; }
+
+ /**
+ * @see GenlistItem::getType()
+ */
+ virtual Elm_Genlist_Item_Type getType() const override { return ELM_GENLIST_ITEM_GROUP; }
+
+ /**
+ * @see GenlistItem::getItemClass()
+ */
+ virtual Elm_Genlist_Item_Class *getItemClass() const override;
+
+ /**
+ * @see GenlistItem::onInserted()
+ */
+ virtual void onInserted() override;
+
+ /**
+ * @see GenlistItem::onPop()
+ */
+ virtual void onPop() override;
+
+ /**
+ * @brief Called when tree item is expanded or contracted.
+ */
+ virtual void onExpanded(bool isExpanded);
+
+ private:
+ friend class Genlist;
+ friend class GenlistItem;
+
+ void insertSubItems();
+ void popSubItems();
+
+ void onSubItemInserted(GenlistItem *item);
+ void onSubItemDestroy(GenlistItem *item);
+
+ GenlistItem *m_FirstItem;
+ GenlistItem *m_LastItem;
+ std::vector<GenlistItem *> m_ItemsCache;
+ };
+}
+
+#endif /* UI_GENLIST_GROUP_ITEM_H */
--- /dev/null
+/*
+ * Copyright (c) 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 UI_GENLIST_ITEM_H
+#define UI_GENLIST_ITEM_H
+
+#include <Elementary.h>
+#include <functional>
+#include <tizen.h>
+
+namespace Ui
+{
+ class Genlist;
+ class GenlistGroupItem;
+
+ class EXPORT_API GenlistItem
+ {
+ public:
+ /**
+ * @brief Called when item is selected.
+ */
+ typedef std::function<void()> SelectCallback;
+
+ GenlistItem();
+ virtual ~GenlistItem();
+
+ /**
+ * @return Whether the item is realized.
+ */
+ bool isRealized() const;
+
+ /**
+ * @return Whether the item is a group item.
+ */
+ virtual bool isGroupItem() const { return false; }
+
+ /**
+ * @return Whether the item can receive focus.
+ */
+ virtual bool isFocusable() const { return false; }
+
+ /**
+ * @return Item type.
+ */
+ virtual Elm_Genlist_Item_Type getType() const { return ELM_GENLIST_ITEM_NONE; }
+
+ /**
+ * @return Genlist object item.
+ */
+ Elm_Object_Item *getObjectItem() const;
+
+ /**
+ * @return Parent genlist.
+ */
+ Genlist *getParent() const;
+
+ /**
+ * @return Parent genlist group item or nullptr if none.
+ */
+ GenlistGroupItem *getParentItem() const;
+
+ /**
+ * @return Next item in genlist or nullptr if none.
+ */
+ GenlistItem *getNextItem() const;
+
+ /**
+ * @return Previous item in genlist or nullptr if none.
+ */
+ GenlistItem *getPrevItem() const;
+
+ /**
+ * @brief Set item selection callback.
+ * @param[in] callback Callback to be called when item is selected
+ */
+ void setSelectCallback(SelectCallback callback);
+
+ /**
+ * @brief Scroll genlist to item.
+ * @param[in] position Item position on screen
+ * @param[in] isAnimated Whether scrolling is animated or immediate
+ */
+ void scrollTo(Elm_Genlist_Item_Scrollto_Type position = ELM_GENLIST_ITEM_SCROLLTO_IN,
+ bool isAnimated = false);
+
+ /**
+ * @brief Scroll to the item and give it focus.
+ * @see GenlistItem::scrollTo()
+ */
+ void focus(Elm_Genlist_Item_Scrollto_Type position = ELM_GENLIST_ITEM_SCROLLTO_IN,
+ bool isAnimated = false);
+
+ /**
+ * @brief Remove item from genlist without destroying it.
+ */
+ void pop();
+
+ protected:
+ /**
+ * @brief Create statically allocated item class
+ */
+ static Elm_Genlist_Item_Class createItemClass(const char *style,
+ const char *decorateStyle = nullptr,
+ const char *editStyle = nullptr);
+
+ /**
+ * @return Genlist item class of this item.
+ */
+ virtual Elm_Genlist_Item_Class *getItemClass() const;
+
+ /**
+ * @brief Called whenever any item's text part needs to be updated.
+ * @param[in] parent Parent genlist
+ * @param[in] part Name of the part
+ * @return Allocated string with text for a specified part,
+ * it will be deallocated with free() by genlist.
+ */
+ virtual char *getText(Evas_Object *parent, const char *part) { return nullptr; }
+
+ /**
+ * @brief Called whenever any item's content part needs to be updated.
+ * @param[in] parent Parent genlist
+ * @param[in] part Name of the part
+ * @return Content for a specified part.
+ */
+ virtual Evas_Object *getContent(Evas_Object *parent, const char *part) { return nullptr; }
+
+ /**
+ * @brief Called whenever any item's state part needs to be updated
+ * @details Genlist will emit signal "elm,state,x,active" or
+ * "elm,state,x,passive" with part's name instead of 'x'.
+ * @param[in] parent Parent genlist
+ * @param[in] part Name of the part
+ * @return EINA_TRUE for active, EINA_FALSE for passive
+ */
+ virtual Eina_Bool getState(Evas_Object *parent, const char *part) { return EINA_FALSE; }
+
+ /**
+ * @brief Called after item was inserted into genlist.
+ */
+ virtual void onInserted() { }
+
+ /**
+ * @brief Called before item is popped.
+ */
+ virtual void onPop() { }
+
+ /**
+ * @brief Called when item is selected.
+ */
+ virtual void onSelected() { }
+
+ /**
+ * @brief Called when item is focused by calling focus().
+ */
+ virtual void onFocused() { }
+
+ /**
+ * @brief Called when item is realized (became visible).
+ */
+ virtual void onRealized() { }
+
+ /**
+ * @brief Called when item is unrealized (became invisible)
+ * and its text and content is deleted until it is realized again.
+ */
+ virtual void onUnrealized() { }
+
+ private:
+ friend class Genlist;
+ void onInserted(Elm_Object_Item *item);
+ void onDestroy(Evas_Object *genlist);
+
+ void onSelected(Elm_Object_Item *item);
+ void onRealized(Elm_Object_Item *item);
+ void onUnrealized(Elm_Object_Item *item);
+
+ Elm_Object_Item *m_Item;
+ bool m_Preserve;
+
+ bool m_IsRealized;
+ bool m_IsFocusPending;
+
+ SelectCallback m_OnSelected;
+ };
+}
+
+#endif /* UI_GENLIST_ITEM_H */
--- /dev/null
+/*
+ * Copyright (c) 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 UI_GENLIST_ITERATOR_H
+#define UI_GENLIST_ITERATOR_H
+
+#include <iterator>
+#include <tizen.h>
+
+namespace Ui
+{
+ class GenlistItem;
+
+ /**
+ * @brief Genlist items iterator.
+ */
+ class EXPORT_API GenlistIterator :
+ public std::iterator<std::bidirectional_iterator_tag, GenlistItem *>
+ {
+ public:
+ /**
+ * @brief Create genlist iterator
+ * @param[in] item Item pointed by iterator
+ */
+ GenlistIterator(GenlistItem *item = nullptr);
+
+ /**
+ * @brief Increment iterator.
+ */
+ GenlistIterator &operator++();
+ GenlistIterator operator++(int);
+
+ /**
+ * @brief Decrement iterator.
+ */
+ GenlistIterator &operator--();
+ GenlistIterator operator--(int);
+
+ /**
+ * @brief Dereference iterator.
+ */
+ GenlistItem *operator*() const;
+
+ /**
+ * @brief Compare iterators for inequality.
+ */
+ bool operator!=(const GenlistIterator &that) const;
+
+ private:
+ GenlistItem *m_Item;
+ };
+}
+
+#endif /* UI_GENLIST_ITERATOR_H */
--- /dev/null
+/*
+ * Copyright (c) 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 UI_HOVERSEL_H
+#define UI_HOVERSEL_H
+
+#include "Ui/Control.h"
+#include <functional>
+
+namespace Ui
+{
+ class EXPORT_API Hoversel : public Control
+ {
+ public:
+ /**
+ * @brief Item selection callback.
+ * @param[in] Item value
+ * @return Whether to display selected item in hoversel button automatically
+ */
+ typedef std::function<bool(int)> SelectedCallback;
+
+ /**
+ * @brief Add item.
+ * @param[in] text Item text
+ * @param[in] value Item value which will be passed to SelectedCallback
+ * @return Added item on success, otherwise nullptr.
+ */
+ Elm_Object_Item *addItem(const char *text, int value);
+
+ /**
+ * @brief Set text of currently selected item.
+ * @param[in] text Text to be displayed in hoversel button
+ */
+ void setText(const char *text);
+
+ /**
+ * @brief Set item selection callback.
+ * @param[in] callback Callback to be called after item was selected
+ */
+ void setSelectedCallback(SelectedCallback callback);
+
+ protected:
+ virtual Evas_Object *onCreate(Evas_Object *parent) override;
+
+ private:
+ void onSelected(Evas_Object *hoversel, Elm_Object_Item *item);
+ static void onExpanded(void *data, Evas_Object *hoversel, void *eventInfo);
+ static void onDismissed(void *data, Evas_Object *hoversel, void *eventInfo);
+ static void onBackPressed(void *data, Evas_Object *hoversel, void *eventInfo);
+
+ SelectedCallback m_OnSelected;
+ };
+}
+
+#endif /* UI_HOVERSEL_H */
--- /dev/null
+/*
+ * Copyright (c) 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 UI_LIST_POPUP_H
+#define UI_LIST_POPUP_H
+
+#include "Ui/Popup.h"
+
+namespace Ui
+{
+ class EXPORT_API ListPopup : public Popup
+ {
+ public:
+ /**
+ * @brief Specific item selection callback.
+ */
+ typedef std::function<void()> ItemSelectedCallback;
+
+ /**
+ * @brief Any item selection callback.
+ * @param[in] Item data
+ */
+ typedef std::function<void(void *)> SelectedCallback;
+
+ /**
+ * @brief Create list popup
+ * @param[in] itemStyle Genlist item style
+ */
+ ListPopup(const char *itemStyle = "type1");
+
+ /**
+ * @brief Add ListPopup item
+ * @param[in] text Main text of the item
+ * @param[in] data Data associated with the item
+ * @param[in] callback Callback to be called when item is selected
+ * @return Added item on success, otherwise nullptr
+ */
+ Elm_Object_Item *addItem(std::string text, void *data, ItemSelectedCallback callback = nullptr);
+ Elm_Object_Item *addItem(std::string text, ItemSelectedCallback callback = nullptr);
+ Elm_Object_Item *addItem(void *data, ItemSelectedCallback callback = nullptr);
+
+ /**
+ * @brief Set item selection callback.
+ * @param[in] callback Callback to be called when any item is selected
+ */
+ void setSelectedCallback(SelectedCallback callback);
+
+ protected:
+ /**
+ * @see Control::onCreate()
+ */
+ virtual Evas_Object *onCreate(Evas_Object *parent) override;
+
+ /**
+ * @brief Called when item's text part needs to be updated.
+ * @details If "elm.text" part is not handled in this function then it will
+ * contain the text specified in ListPopup::addItem().
+ * @see Elm_Gen_Item_Text_Get_Cb.
+ */
+ virtual char *getItemText(void *data, const char *part) { return nullptr; }
+
+ /**
+ * @brief Called when item's content part needs to be updated.
+ * @see Elm_Gen_Item_Content_Get_Cb.
+ */
+ virtual Evas_Object *getItemContent(void *data, const char *part) { return nullptr; }
+
+ /**
+ * @brief Called when any item is selected.
+ * @param[in] data Item data
+ */
+ virtual void onItemSelected(void *data) { }
+
+ private:
+ struct ItemData;
+
+ static char *getText(ItemData *itemData, Evas_Object *genlist, const char *part);
+ static Evas_Object *getContent(ItemData *itemData, Evas_Object *genlist, const char *part);
+ static void onSelected(ListPopup *popup, Evas_Object *genlist, Elm_Object_Item *item);
+
+ Evas_Object *m_Genlist;
+ Elm_Genlist_Item_Class m_ItemClass;
+ SelectedCallback m_OnSelected;
+ };
+}
+
+#endif /* UI_LIST_POPUP_H */
--- /dev/null
+/*
+ * Copyright (c) 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 UI_MENU_H
+#define UI_MENU_H
+
+#include "Ui/Control.h"
+#include <functional>
+
+namespace Ui
+{
+ class EXPORT_API Menu : public Control
+ {
+ public:
+ /**
+ * @brief Item selection callback
+ */
+ typedef std::function<void()> ItemCallback;
+
+ /**
+ * @brief Add menu item
+ * @param[in] text Item text
+ * @param[in] callback Item selection callback
+ * @return Added item on success, otherwise nullptr
+ */
+ Elm_Object_Item *addItem(const char *text, ItemCallback callback);
+
+ /**
+ * @brief Show menu at the bottom of application window.
+ */
+ void show();
+
+ protected:
+ virtual Evas_Object *onCreate(Evas_Object *parent) override;
+
+ private:
+ static void onItemSelect(void *data, Evas_Object *obj, void *item);
+ static void onItemDestroy(void *data, Evas_Object *obj, void *item);
+ void onDismissed(Evas_Object *obj, void *eventInfo);
+ };
+}
+
+#endif /* UI_MENU_H */
--- /dev/null
+/*
+ * Copyright (c) 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 UI_NAVIFRAME_H
+#define UI_NAVIFRAME_H
+
+#include "Ui/Navigator.h"
+
+namespace Ui
+{
+ /**
+ * @brief Naviframe wrapper
+ */
+ class EXPORT_API Naviframe : public Navigator
+ {
+ public:
+ Naviframe();
+
+ /**
+ * @see Navigator::getCurrentView()
+ */
+ virtual View *getCurrentView() const override;
+
+ protected:
+ virtual Evas_Object *onCreate(Evas_Object *parent) override;
+ virtual NavigatorPage *attachView(View *view) override;
+ virtual void navigateToView(View *view) override;
+
+ Eina_Bool onItemPop(Elm_Object_Item *item);
+ void onTransition(Evas_Object *obj, void *eventInfo);
+ virtual bool onBackPressed() override;
+ };
+}
+
+#endif /* UI_NAVIFRAME_H */
--- /dev/null
+/*
+ * Copyright (c) 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 UI_NAVIFRAME_PAGE_H
+#define UI_NAVIFRAME_PAGE_H
+
+#include "Ui/NavigatorPage.h"
+
+namespace Ui
+{
+ class EXPORT_API NaviframePage : public NavigatorPage
+ {
+ public:
+ NaviframePage(Elm_Object_Item *naviItem);
+ virtual ~NaviframePage() override;
+
+ /**
+ * @see NavigatorPage::setTitle()
+ */
+ virtual void setTitle(const char *title) override;
+
+ /**
+ * @see NavigatorPage::setStyle()
+ */
+ virtual void setStyle(const char *style) override;
+
+ /**
+ * @see NavigatorPage::setContent()
+ */
+ virtual void setContent(const char *part, Evas_Object *content) override;
+
+ private:
+ friend class Naviframe;
+
+ Elm_Object_Item *m_NaviItem;
+ };
+}
+
+#endif /* UI_NAVIFRAME_PAGE_H */
--- /dev/null
+/*
+ * Copyright (c) 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 UI_NAVIGATOR_H
+#define UI_NAVIGATOR_H
+
+#include "Ui/View.h"
+
+namespace Ui
+{
+ class NavigatorPage;
+ class EXPORT_API Navigator : public View
+ {
+ public:
+ /**
+ * @return Currently displayed view
+ */
+ virtual View *getCurrentView() const = 0;
+
+ /**
+ * @brief Navigate to existing or new View
+ * @param[in] view View to navigate to
+ */
+ void navigateTo(View *view);
+
+ protected:
+ Navigator(NavigatorType type);
+
+ /**
+ * @brief Notify specified View about navigation
+ * @param[in] view View to notify
+ * @param[in] isCurrentView Specifies the new state of the @a view
+ */
+ void notifyNavigation(View *view, bool isCurrentView);
+
+ /**
+ * @brief Called after navigateTo() is called for a new view
+ * @param[in] view View to attach
+ * @return NavigatorPage for the view
+ */
+ virtual NavigatorPage *attachView(View *view) = 0;
+
+ /**
+ * @brief Called after navigateTo() is called
+ * @param[in] view View to navigate to
+ */
+ virtual void navigateToView(View *view) = 0;
+
+ /**
+ * @see View::onNavigation()
+ */
+ virtual void onNavigation(bool isCurrentView) override;
+
+ /**
+ * @see View::onBackPressed()
+ */
+ virtual bool onBackPressed() override;
+
+ /**
+ * @see View::onMenuPressed()
+ */
+ virtual void onMenuPressed() override;
+
+ private:
+ NavigatorType m_Type;
+ };
+}
+
+#endif /* UI_NAVIGATOR_H */
--- /dev/null
+/*
+ * Copyright (c) 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 UI_NAVIGATOR_PAGE_H
+#define UI_NAVIGATOR_PAGE_H
+
+#include <Elementary.h>
+#include <tizen.h>
+
+namespace Ui
+{
+ /**
+ * @brief Navigator page interface
+ */
+ class EXPORT_API NavigatorPage
+ {
+ public:
+ virtual ~NavigatorPage() { }
+
+ /**
+ * @brief Set page title.
+ * @param[in] title Page title
+ */
+ virtual void setTitle(const char *title) = 0;
+
+ /**
+ * @brief Set page style.
+ * @param[in] style Page style
+ */
+ virtual void setStyle(const char *style) = 0;
+
+ /**
+ * @brief Set page part content.
+ * @param[in] content Content to set to page part
+ */
+ virtual void setContent(const char *part, Evas_Object *content) = 0;
+ };
+}
+
+#endif /* UI_NAVIGATOR_PAGE_H */
--- /dev/null
+/*
+ * Copyright (c) 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 UI_POPUP_H
+#define UI_POPUP_H
+
+#include "Ui/Control.h"
+#include <functional>
+
+#define POPUP_BUTTON_MAX_COUNT 3
+
+namespace Ui
+{
+ class EXPORT_API Popup : public Control
+ {
+ public:
+ /**
+ * @brief Popup button pressed callback
+ * @return true to destroy the Popup, otherwise false
+ */
+ typedef std::function<bool()> ButtonCallback;
+
+ /**
+ * @brief Back button pressed callback
+ * @return true to destroy the Popup, otherwise false
+ */
+ typedef std::function<bool()> BackCallback;
+
+ Popup();
+
+ /**
+ * @brief Allows method overload instead of shadowing
+ */
+ using Control::create;
+
+ /**
+ * @brief Create popup with title, text and close button
+ * @param[in] parent Popup parent
+ * @param[in] title Popup title
+ * @param[in] text Popup text
+ * @param[in] button_text Text for close button
+ * @return Created popup
+ */
+ static Popup *create(Evas_Object *parent, const char *title,
+ const char *text, const char *button_text);
+
+ /**
+ * @brief Set Popup title
+ * @param[in] title Popup title
+ */
+ void setTitle(const char *title);
+
+ /**
+ * @brief Set Popup text
+ * @param[in] text Popup text
+ */
+ void setText(const char *text);
+
+ /**
+ * @brief Set Popup content
+ * @param[in] content Popup content
+ */
+ void setContent(Evas_Object *content);
+
+ /**
+ * @brief Add Popup button
+ * @param[in] text Button text
+ * @param[in] callback Button click callback
+ * @return Added button on success, otherwise nullptr
+ */
+ Evas_Object *addButton(const char *text, ButtonCallback callback = nullptr);
+
+ /**
+ * @brief Set callback on back button
+ * @param[in] callback Back callback
+ */
+ void setBackCallback(BackCallback callback);
+
+ protected:
+ virtual Evas_Object *onCreate(Evas_Object *parent) override;
+
+ private:
+ void onButtonPressed(Evas_Object *obj, void *eventInfo);
+ void onBackPressed(Evas_Object *obj, void *eventInfo);
+
+ ButtonCallback m_ButtonCbs[POPUP_BUTTON_MAX_COUNT];
+ size_t m_ButtonCount;
+ BackCallback m_OnBack;
+ };
+}
+
+#endif /* UI_POPUP_H */
--- /dev/null
+/*
+ * Copyright (c) 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 PROGRESS_CONTROLLER_H
+#define PROGRESS_CONTROLLER_H
+
+#include <Elementary.h>
+#include <functional>
+#include <tizen.h>
+
+namespace Ui
+{
+ class ProgressPopup;
+
+ /**
+ * @brief Controller for ProgressPopup
+ */
+ class EXPORT_API ProgressController
+ {
+ public:
+ /**
+ * @brief Finish progress callback.
+ */
+ typedef std::function<void(const ProgressController &)> FinishCallback;
+
+ /**
+ * @brief Create controller for ProgressPopup.
+ * @param[in] parent Parent object
+ * @param[in] title Progress popup title
+ * @param[in] maxValue max value of progress popup
+ */
+ ProgressController(Evas_Object *parent, const char *title, int maxValue);
+ ProgressController(const ProgressController &that) = delete;
+ virtual ~ProgressController();
+
+ ProgressController & operator=(const ProgressController &that) = delete;
+
+ /**
+ * @brief Run progress.
+ */
+ void run();
+
+ /**
+ * @brief Set finish function which is called when the progress is over.
+ * @param[in] callback Finish function
+ */
+ void setFinishCallback(FinishCallback callback);
+
+ protected:
+ virtual void onStart(Ecore_Thread *thread) = 0;
+ virtual void onCanceled() = 0;
+ virtual bool onCancel();
+
+ void cancel();
+ bool onProgress(size_t value);
+
+ private:
+ void createProgressPopup(Evas_Object *parent, const char *title, int maxValue);
+
+ static void onStart(void *data, Ecore_Thread *thread);
+ static void onNotify(void *data, Ecore_Thread *thread, void *msgData);
+ static void onFinish(void *data, Ecore_Thread *thread);
+ static void onCanceled(void *data, Ecore_Thread *thread);
+
+ private:
+ bool m_IsCanceled;
+ FinishCallback m_OnFinish;
+ ProgressPopup *m_ProgressPopup;
+ Ecore_Thread *m_Thread;
+ };
+}
+
+#endif /* PROGRESS_CONTROLLER_H */
--- /dev/null
+/*
+ * Copyright (c) 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 UI_PROGRESS_POPUP_H
+#define UI_PROGRESS_POPUP_H
+
+#include "Ui/Popup.h"
+
+namespace Ui
+{
+ class EXPORT_API ProgressPopup : public Popup
+ {
+ public:
+ /**
+ * @brief Create progress popup.
+ * @param[in] maxValue Max value of progressbar
+ */
+ ProgressPopup(size_t maxValue);
+
+ /**
+ * @brief Set progress of the progressbar
+ * @param[in] value Progress value
+ */
+ void setProgress(size_t value);
+
+ private:
+ virtual Evas_Object *onCreate(Evas_Object *parent) override;
+
+ private:
+ size_t m_MaxValue;
+ Evas_Object *m_Progressbar;
+ };
+}
+
+#endif /* UI_PROGRESS_POPUP_H */
--- /dev/null
+/*
+ * Copyright (c) 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 UI_SCALE_H
+#define UI_SCALE_H
+
+#include <tizen.h>
+
+#define UI_BASE_SCALE 2.6
+
+namespace Ui
+{
+ /**
+ * @brief Scale the value using application base scale and device config scale
+ * @param[in] value Value to scale (usually pixels)
+ * @return Value multiplied by scale factor
+ */
+ EXPORT_API int getScaledValue(int value);
+}
+
+#endif /* UI_SCALE_H */
--- /dev/null
+/*
+ * Copyright (c) 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 UI_TAB_PAGE_H
+#define UI_TAB_PAGE_H
+
+#include "Ui/Control.h"
+#include "Ui/NavigatorPage.h"
+
+namespace Ui
+{
+ class EXPORT_API TabPage : public Control, public NavigatorPage
+ {
+ public:
+ TabPage(size_t index, Elm_Object_Item *tabItem);
+ virtual ~TabPage() override;
+
+ /**
+ * @see NavigatorPage::setTitle()
+ */
+ virtual void setTitle(const char *title) override;
+
+ /**
+ * @see NavigatorPage::setStyle()
+ */
+ virtual void setStyle(const char *style) override;
+
+ /**
+ * @see NavigatorPage::setContent()
+ */
+ virtual void setContent(const char *part, Evas_Object *content) override;
+
+ private:
+ friend class TabView;
+ virtual Evas_Object *onCreate(Evas_Object *parent) override;
+
+ size_t m_Index;
+ Elm_Object_Item *m_TabItem;
+
+ Evas_Object *m_Sizer;
+ Evas_Object *m_Page;
+ };
+}
+
+#endif /* UI_TAB_PAGE_H */
--- /dev/null
+/*
+ * Copyright (c) 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 UI_TAB_VIEW_H
+#define UI_TAB_VIEW_H
+
+#include "Ui/Navigator.h"
+#include <vector>
+
+namespace Ui
+{
+ /**
+ * @brief Scrollable tab navigator
+ */
+ class EXPORT_API TabView : public Navigator
+ {
+ public:
+ TabView();
+
+ /**
+ * @see Navigator::getCurrentView()
+ */
+ virtual View *getCurrentView() const override;
+
+ protected:
+ virtual Evas_Object *onCreate(Evas_Object *parent) override;
+ virtual void onPageAttached() override;
+
+ virtual NavigatorPage *attachView(View *view) override;
+ virtual void navigateToView(View *view) override;
+
+ private:
+ static void onTabDestroy(void *data, Evas_Object *obj, void *tabItem);
+ void onTabSelect(Evas_Object *obj, void *tabItem);
+ void onPageChanged(Evas_Object *obj, void *eventInfo);
+ void onResize(Evas *e, Evas_Object *obj, void *eventInfo);
+
+ Evas_Object *m_Tabbar;
+ Evas_Object *m_Scroller;
+ Evas_Object *m_Box;
+
+ Evas_Coord m_Width;
+ Evas_Coord m_Height;
+
+ bool m_IsNavigating;
+ size_t m_CurrentPage;
+ std::vector<View *> m_Views;
+ };
+}
+
+#endif /* UI_TAB_VIEW_H */
--- /dev/null
+/*
+ * Copyright (c) 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 UI_THUMBNAIL_H
+#define UI_THUMBNAIL_H
+
+#include "Ui/Control.h"
+
+namespace Ui
+{
+ class EXPORT_API Thumbnail : public Control
+ {
+ public:
+ enum Size
+ {
+ SizeSmall,
+ SizeMedium,
+ SizeLarge
+ };
+
+ /**
+ * @brief Create thumbnail
+ * @param[in] size Thumbnail size
+ */
+ Thumbnail(Size size);
+
+ /**
+ * @brief Allows method overload instead of shadowing
+ */
+ using Control::create;
+
+ /**
+ * @brief Create thumbnail
+ * @param[in] parent Thumbnail parent
+ * @param[in] size Thumbnail size
+ * @param[in] path Thumbnail Image path or nullptr for default image
+ * @return Created thumbnail
+ */
+ static Thumbnail *create(Evas_Object *parent, Size size, const char *path = nullptr);
+
+ /**
+ * @return Thumbnail image object.
+ */
+ Evas_Object *getImage() const;
+
+ /**
+ * @brief Set thumbnail image path
+ * @param[in] path Image path or nullptr for default image
+ */
+ void setImagePath(const char *path);
+
+ /**
+ * @brief Set whether minimal size hint is set for image
+ * @param[in] isSet Whether to set image size hint
+ */
+ void setSizeHint(bool isSet);
+
+ protected:
+ virtual Evas_Object *onCreate(Evas_Object *parent) override;
+
+ private:
+ Size m_Size;
+ Evas_Object *m_Image;
+ };
+}
+
+#endif /* UI_THUMBNAIL_H */
--- /dev/null
+/*
+ * Copyright (c) 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 UI_VIEW_H
+#define UI_VIEW_H
+
+#include "Ui/Control.h"
+#include "Ui/NavigatorPage.h"
+
+namespace Ui
+{
+ class Navigator;
+ class Window;
+
+ /**
+ * @brief Navigation type supported by Navigator
+ */
+ enum NavigatorType
+ {
+ StackNavigator, /**< Allows navigation to the added View or the previous View */
+ TabNavigator /**< Allows navigation to any added View */
+ };
+
+ /**
+ * @brief Represents content of a Window or Navigator page
+ */
+ class EXPORT_API View : public Control
+ {
+ public:
+ /**
+ * @brief Get parent Navigator
+ * @param[in] type Navigator type
+ * @return Innermost parent Navigator of the specified type if exists,
+ * otherwise nullptr
+ */
+ Navigator *getNavigator(NavigatorType type = StackNavigator) const;
+
+ /**
+ * @return NavigatorPage of this View
+ */
+ NavigatorPage *getPage() const;
+
+ protected:
+ View();
+ virtual ~View() override;
+
+ /**
+ * @brief Called after Navigator has navigated to or from this View
+ * @param[in] isCurrentView Specifies the new state of this View
+ */
+ virtual void onNavigation(bool isCurrentView) { }
+
+ /**
+ * @brief Called when NavigatorPage is attached to this View
+ */
+ virtual void onPageAttached() { }
+
+ /**
+ * @brief Called when "back" button is pressed
+ * @return true to navigate to the previous view, otherwise false
+ */
+ virtual bool onBackPressed() { return true; }
+
+ /**
+ * @brief Called when "menu" button is pressed
+ */
+ virtual void onMenuPressed() { }
+
+ private:
+ friend class Window;
+ friend class Navigator;
+
+ void onViewAttached(Navigator *stackNavi, Navigator *tabNavi);
+ void onPageAttached(NavigatorPage *page);
+
+ Navigator *m_StackNavi;
+ Navigator *m_TabNavi;
+ NavigatorPage *m_NaviPage;
+ };
+}
+
+#endif /* UI_VIEW_H */
--- /dev/null
+/*
+ * Copyright (c) 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 UI_WINDOW_H
+#define UI_WINDOW_H
+
+#include "Ui/Control.h"
+
+namespace Ui
+{
+ class View;
+
+ /**
+ * @brief Application main window
+ */
+ class EXPORT_API Window : public Control
+ {
+ public:
+ Window();
+
+ /**
+ * @return Conformant Evas_Object.
+ */
+ Evas_Object *getConformant() const;
+
+ /**
+ * @return Basic Window layout Evas_Object.
+ */
+ Evas_Object *getBaseLayout() const;
+
+ /**
+ * @brief Attach main View to be displayed in the Window.
+ * @param[in] view Window main View
+ */
+ void attachView(View *view);
+
+ private:
+ virtual Evas_Object *onCreate(Evas_Object *parent) override;
+ void onBackPressed(Evas_Object *obj, void *eventInfo);
+ void onMenuPressed(Evas_Object *obj, void *eventInfo);
+
+ Evas_Object *m_Conform;
+ Evas_Object *m_Layout;
+ View *m_MainView;
+ };
+}
+
+#endif /* UI_WINDOW_H */
--- /dev/null
+/*
+ * Copyright (c) 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 UTILS_CALLBACK_H
+#define UTILS_CALLBACK_H
+
+#include "Utils/CallbackImpl.h"
+
+/**
+ * @brief Make C-style callback from non-static class method with object as first parameter.
+ * @details Generates static member function by adding void* first parameter.
+ * Generated function forwards calls to specified method on object passed as first parameter.
+ * @par example
+ * @code
+ *
+ * class SomeView : public View
+ * {
+ * ...
+ * private:
+ * void onButtonPressed(Evas_Object *obj, void *eventInfo);
+ * }
+ *
+ * void SomeView::someMethod(Evas_Object *parent)
+ * {
+ * Evas_Object *button = elm_button_add(parent);
+ * evas_object_smart_callback_add(button, "clicked",
+ * makeCallback(&SomeView::onButtonPressed), this);
+ * ...
+ * }
+ *
+ * @endcode
+ */
+#define makeCallback(method) \
+ ::Utils::Callback<decltype(method)>::makeWithFirstParam<method>()
+
+/**
+ * @brief Make C-style callback from non-static class method with object as last parameter.
+ * @see makeCallback()
+ */
+#define makeCallbackWithLastParam(method) \
+ ::Utils::Callback<decltype(method)>::makeWithLastParam<method>()
+
+#endif /* UTILS_CALLBACK_H */
--- /dev/null
+/*
+ * Copyright (c) 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 CALLBACK_IMPL_H
+#define CALLBACK_IMPL_H
+
+namespace Utils
+{
+ template <typename F>
+ class Callback;
+
+ template <typename R, typename... A>
+ class Callback<R(A...)>
+ {
+ public:
+ template <class C, R(C::*Method)(A...)>
+ static R stubWithFirstParam(void *object, A... args)
+ {
+ return (static_cast<C*>(object)->*Method)(args...);
+ }
+
+ template <class C, R(C::*Method)(A...)>
+ static R stubWithLastParam(A... args, void *object)
+ {
+ return (static_cast<C*>(object)->*Method)(args...);
+ }
+ };
+
+ template <typename R, typename C, typename... A>
+ class Callback<R(C::*)(A...)>
+ {
+ public:
+ typedef R(*WithFirstParam)(void*, A...);
+ typedef R(*WithLastParam)(A..., void*);
+
+ template <R(C::*Method)(A...)>
+ static WithFirstParam makeWithFirstParam()
+ {
+ return &Callback<R(A...)>::template stubWithFirstParam<C, Method>;
+ }
+
+ template <R(C::*Method)(A...)>
+ static WithLastParam makeWithLastParam()
+ {
+ return &Callback<R(A...)>::template stubWithLastParam<C, Method>;
+ }
+ };
+}
+
+#endif /* CALLBACK_IMPL_H */
--- /dev/null
+/*
+ * Copyright (c) 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 UTILS_ITERATOR_H
+#define UTILS_ITERATOR_H
+
+#include <iterator>
+#include <stddef.h>
+
+namespace Utils
+{
+ /**
+ * @brief Base class for index-based iterators.
+ * @details CRTP (Curiously Recurring Template Pattern) is used to generate
+ * operators that return or use derived type.
+ */
+ template <typename DerivedIterator,
+ typename ValueType,
+ typename Pointer = ValueType *,
+ typename Reference = ValueType &,
+ typename Distance = ptrdiff_t>
+ class IndexIterator :
+ public std::iterator<std::bidirectional_iterator_tag, ValueType, Distance, Pointer, Reference>
+ {
+ public:
+ /**
+ * @brief Create iterator from index.
+ * @param[in] index Current position of iterator
+ */
+ IndexIterator(size_t index = 0)
+ : m_Index(index) { }
+
+ /**
+ * @brief Dereference iterator.
+ */
+ Pointer operator->() const { return &*getDerived(); }
+
+ /**
+ * @brief Increment iterator.
+ */
+ DerivedIterator &operator++() { ++m_Index; return getDerived(); }
+ DerivedIterator operator++(int) { auto it(getDerived()); ++*this; return it; }
+
+ /**
+ * @brief Decrement iterator.
+ */
+ DerivedIterator &operator--() { --m_Index; return getDerived(); }
+ DerivedIterator operator--(int) { auto it(getDerived()); --*this; return it; }
+
+ /**
+ * @brief Compare iterators.
+ */
+ bool operator==(const IndexIterator &that) { return m_Index == that.m_Index; }
+ bool operator!=(const IndexIterator &that) { return m_Index != that.m_Index; }
+
+ protected:
+ /**
+ * @return Current index.
+ */
+ size_t getIndex() const { return m_Index; }
+
+ private:
+ DerivedIterator &getDerived() { return static_cast<DerivedIterator &>(*this); }
+ const DerivedIterator &getDerived() const { return static_cast<const DerivedIterator &>(*this); }
+
+ size_t m_Index;
+ };
+}
+
+#endif /* UTILS_ITERATOR_H */
--- /dev/null
+/*
+ * Copyright (c) 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 UTILS_LOGGER_H
+#define UTILS_LOGGER_H
+
+#define LOG_TAG "contacts"
+#include <dlog.h>
+
+#define __MODULE__ (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__)
+
+#include "Utils/Tracer.h"
+#define TRACE ::Utils::Tracer tracer(LOG_TAG, __MODULE__, __func__, __LINE__)
+
+#define DLOG(prio, fmt, arg...) dlog_print(prio, LOG_TAG, "%s: %s(%d) > " fmt, __MODULE__, __func__, __LINE__, ##arg)
+#define DBG(fmt, arg...) DLOG(DLOG_DEBUG, fmt, ##arg)
+#define ERR(fmt, arg...) DLOG(DLOG_ERROR, fmt, ##arg)
+
+#define LOG_IF(expr, action, fmt, arg...) \
+if (expr) { \
+ ERR(fmt, ##arg); \
+ action; \
+}
+
+#define LOG_IF_ERR(code, action, fmt, arg...) \
+LOG_IF(code != TIZEN_ERROR_NONE, action, fmt " %s.", ##arg, get_error_message(code))
+
+#define WARN_IF(expr, fmt, arg...) \
+LOG_IF(expr, , fmt, ##arg)
+
+#define WARN_IF_ERR(code, fmt, arg...) \
+LOG_IF_ERR(code, , fmt, ##arg)
+
+#define RETM_IF(expr, fmt, arg...) \
+LOG_IF(expr, return, fmt, ##arg)
+
+#define RETM_IF_ERR(code, fmt, arg...) \
+LOG_IF_ERR(code, return, fmt, ##arg)
+
+#define RETVM_IF(expr, val, fmt, arg...) \
+LOG_IF(expr, return val, fmt, ##arg)
+
+#define RETVM_IF_ERR(code, val, fmt, arg...) \
+LOG_IF_ERR(code, return val, fmt, ##arg)
+
+#endif /* UTILS_LOGGER_H */
--- /dev/null
+/*
+ * Copyright (c) 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 UTILS_RANGE_H
+#define UTILS_RANGE_H
+
+#include <iterator>
+
+namespace Utils
+{
+ /**
+ * @brief Convenience wrapper around std::advance.
+ * @param[in] iterator Input iterator
+ * @param[in] distance Distance to advance iterator
+ * @return New iterator at @a distance from @a iterator.
+ */
+ template <typename Iter, typename Distance>
+ inline Iter advance(Iter iterator, Distance distance)
+ {
+ std::advance(iterator, distance);
+ return iterator;
+ }
+
+ /**
+ * @brief Convenience wrapper for iterator pair.
+ */
+ template <typename Iter>
+ class Range
+ {
+ public:
+ typedef typename std::iterator_traits<Iter>::reference reference;
+
+ Range() = default;
+
+ /**
+ * @brief Create iterator range from static array.
+ * @param[in] array Static array
+ */
+ template <typename T, size_t N>
+ Range(T(&array)[N])
+ : m_Begin(array), m_End(array + N) { }
+
+ /**
+ * @brief Create iterator range from begin iterator and element count
+ * @param[in] begin Begin iterator
+ * @param[in] count Count of elements until range's end
+ */
+ Range(Iter begin, size_t count)
+ : m_Begin(std::move(begin)), m_End(advance(m_Begin, count)) { }
+
+ /**
+ * @brief Create iterator range from pair of iterators
+ * @param[in] begin Begin iterator
+ * @param[in] end End iterator
+ */
+ Range(Iter begin, Iter end)
+ : m_Begin(std::move(begin)), m_End(std::move(end)) { }
+
+ /**
+ * @return Whether range is empty (i. e. begin() == end()).
+ */
+ bool empty() const { return !(m_Begin != m_End); }
+
+ /**
+ * @return Range element count.
+ */
+ size_t count() const { return std::distance(m_Begin, m_End); }
+
+ /**
+ * @return Range begin iterator.
+ */
+ Iter &begin() { return m_Begin; }
+
+ /**
+ * @return Range end iterator.
+ */
+ Iter &end() { return m_End; }
+
+ /**
+ * @return Range begin iterator.
+ */
+ const Iter &begin() const { return m_Begin; }
+
+ /**
+ * @return Range end iterator.
+ */
+ const Iter &end() const { return m_End; }
+
+ /**
+ * @see empty()
+ */
+ explicit operator bool() const { return !empty(); }
+
+ /**
+ * @brief Get range element by index.
+ * @param[in] index Element index
+ * @return Range element reference.
+ */
+ reference operator[](size_t index) const { return *advance(m_Begin, index); }
+
+ private:
+ Iter m_Begin;
+ Iter m_End;
+ };
+
+ /**
+ * @brief Create iterator range from static array.
+ */
+ template <typename T, size_t N>
+ inline Range<T*> makeRange(T(&array)[N])
+ {
+ return { array };
+ }
+
+ /**
+ * @brief Create iterator range from two iterators.
+ */
+ template <typename Iter1, typename Iter2,
+ typename Iter = typename std::common_type<Iter1, Iter2>::type>
+ inline Range<Iter> makeRange(Iter1 &&begin, Iter2 &&end)
+ {
+ return { std::forward<Iter1>(begin), std::forward<Iter2>(end) };
+ }
+
+ /**
+ * @brief Get static array element count.
+ * @param[in] array Static array
+ * @return Array element count.
+ */
+ template <typename T, size_t N>
+ inline size_t count(T(&array)[N])
+ {
+ return N;
+ }
+
+ /**
+ * @brief Get element by index from static array or a default value if out of bounds.
+ * @param[in] array Static array
+ * @param[in] index Element index
+ * @param[in] value Default value
+ * @return Array element or @a value. Array element is always copied.
+ */
+ template <typename T, size_t N>
+ inline T at(T(&array)[N], size_t index, T value = T())
+ {
+ return index < N ? array[index] : value;
+ }
+}
+
+#endif /* UTILS_RANGE_H */
--- /dev/null
+/*
+ * Copyright (c) 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 UTILS_TRACER_H
+#define UTILS_TRACER_H
+
+#include <time.h>
+#include <tizen.h>
+
+namespace Utils
+{
+ /**
+ * @brief Code block logger. Writes logs when created and destroyed. Outputs elapsed time.
+ */
+ class EXPORT_API Tracer
+ {
+ public:
+ /**
+ * @brief Create tracer and write entry log.
+ * @param[in] tag Log tag
+ * @param[in] file Current source file
+ * @param[in] func Current function
+ * @param[in] line Current source line
+ */
+ Tracer(const char *tag, const char *file, const char *func, int line);
+ ~Tracer();
+
+ private:
+ const char *m_Tag;
+ const char *m_File;
+ const char *m_Func;
+ timespec m_startTime;
+ };
+}
+
+#endif /* UTILS_TRACER_H */
--- /dev/null
+/*
+ * Copyright (c) 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 UTILS_UNI_STRING_H
+#define UTILS_UNI_STRING_H
+
+#include <utils_i18n.h>
+#include <string>
+
+namespace Utils
+{
+ /**
+ * @brief Class wrapper for convenient work with multibyte UTF8 unicode string
+ */
+ class EXPORT_API UniString
+ {
+ public:
+ /**
+ * @brief Instantiation of the basic_string class template,
+ * that uses i18n_uchar as its character type
+ */
+ typedef std::basic_string<i18n_uchar> I18nString;
+
+ UniString() = default;
+ /**
+ * @brief Create new object, based on @a utf8Str string
+ * @param[in] utf8Str UTF8 multibyte unicode string
+ */
+ UniString(const char *utf8Str);
+
+ bool operator<(const UniString &that) const;
+ bool operator>(const UniString &that) const;
+ bool operator==(const UniString &that) const;
+ bool operator!=(const UniString &that) const;
+ bool operator<=(const UniString &that) const;
+ bool operator>=(const UniString &that) const;
+
+ /**
+ * @return I18n string
+ */
+ const I18nString &getI18nStr() const;
+
+ /**
+ * @return UTF8 multibyte string
+ */
+ const std::string &getUtf8Str() const;
+
+ private:
+ static std::string toUtf8(const I18nString &ustring);
+ static I18nString fromUtf8(const std::string &utf8Str);
+
+ mutable std::string m_Utf8Str;
+ I18nString m_UniStr;
+ };
+}
+
+#endif /* UTILS_UNI_STRING_H */
--- /dev/null
+set(EDCFILES apps-common-thumbnail.edc apps-common-buttons.edc)
+set(EDJDIR "${RES_DIR}/apps-common/edje")
+
+foreach(EDCFILE ${EDCFILES})
+ get_filename_component(EDJFILE ${EDCFILE} NAME_WE)
+ set(EDJFILE ${EDJFILE}.edj)
+
+ add_custom_target(${EDJFILE}
+ COMMAND edje_cc -id .. edje/${EDCFILE} ${EDJFILE}
+ DEPENDS edje/${EDCFILE}
+ )
+
+ add_dependencies(${PROJECT_NAME} ${EDJFILE})
+ install(FILES ${EDJFILE} DESTINATION ${EDJDIR})
+endforeach(${EDCFILE})
--- /dev/null
+/*
+ * Copyright (c) 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 APPS_COMMON_BUTTONS_H
+#define APPS_COMMON_BUTTONS_H
+
+#include "AppsCommonPath.h"
+
+#define APPS_COMMON_BUTTONS_EDJ APPS_COMMON_EDJ_DIR"apps-common-buttons.edj"
+
+#define BUTTON_STYLE_CUSTOM_DEFAULT "custom_default"
+#define BUTTON_STYLE_CUSTOM_CIRCLE "custom_circle"
+
+#define BUTTON_TEXT_CLASS "button_text"
+#define BUTTON_COLOR_CLASS_NORMAL "button_normal"
+#define BUTTON_COLOR_CLASS_PRESSED "button_pressed"
+
+#endif /* APPS_COMMON_BUTTONS_H */
--- /dev/null
+/*
+ * Copyright (c) 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 APPS_COMMON_PATH_H
+#define APPS_COMMON_PATH_H
+
+#define APPS_COMMON_IMG_DIR "apps-common/images/"
+#define APPS_COMMON_EDJ_DIR "apps-common/edje/"
+
+#endif /* APPS_COMMON_PATH_H */
--- /dev/null
+/*
+ * Copyright (c) 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 APPS_COMMON_PROGRESSBAR_LAYOUT_H
+#define APPS_COMMON_PROGRESSBAR_LAYOUT_H
+
+#include "AppsCommonPath.h"
+
+#define APPS_COMMON_PROGRESSBAR_LAYOUT_EDJ APPS_COMMON_EDJ_DIR"apps-common-progressbar-layout.edj"
+
+#define GROUP_PROGRESSBAR_LAYOUT "progressbar_layout"
+#define PART_PROGRESSBAR "swallow.progressbar"
+
+#define PROGRESSBAR_PAD_X 32
+#define PROGRESSBAR_PAD_Y 17
+
+#endif /* APPS_COMMON_PROGRESSBAR_LAYOUT_H */
--- /dev/null
+/*
+ * Copyright (c) 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 APPS_COMMON_THUMBNAIL_H
+#define APPS_COMMON_THUMBNAIL_H
+
+#include "AppsCommonPath.h"
+
+#define APPS_COMMON_THUMBNAIL_EDJ APPS_COMMON_EDJ_DIR"apps-common-thumbnail.edj"
+
+#define THUMBNAIL_DEFAULT_MEDIUM APPS_COMMON_IMG_DIR"contacts_caller_id_default.png"
+#define THUMBNAIL_DEFAULT_SMALL APPS_COMMON_IMG_DIR"contacts_caller_id_default_02.png"
+#define THUMBNAIL_DEFAULT_LARGE APPS_COMMON_IMG_DIR"contacts_caller_id_default_03.png"
+
+#define THUMBNAIL_BG_MEDIUM APPS_COMMON_IMG_DIR"contacts_caller_id_default_bg.png"
+#define THUMBNAIL_BG_SMALL APPS_COMMON_IMG_DIR"contacts_caller_id_default_bg_02.png"
+#define THUMBNAIL_BG_LARGE APPS_COMMON_IMG_DIR"contacts_caller_id_default_bg_03.png"
+
+#define GROUP_THUMBNAIL_SMALL "thumbnail_small"
+#define GROUP_THUMBNAIL_MEDIUM "thumbnail_medium"
+#define GROUP_THUMBNAIL_LARGE "thumbnail_large"
+
+#define GROUP_THUMBNAIL_DEFAULT_SMALL "default_thumbnail_small"
+#define GROUP_THUMBNAIL_DEFAULT_MEDIUM "default_thumbnail_medium"
+#define GROUP_THUMBNAIL_DEFAULT_LARGE "default_thumbnail_large"
+
+#define THUMBNAIL_SMALL_SIZE 98
+#define THUMBNAIL_MEDIUM_SIZE 166
+#define THUMBNAIL_LARGE_SIZE 240
+
+#endif /* APPS_COMMON_THUMBNAIL_H */
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "apps-common-colors.edc"
+
+#define BUTTON_CORNER_RADIUS "35"
+#define BUTTON_DEFAULT_H 78
+#define BUTTON_TEXT_H 54
+#define BUTTON_TEXT_X 20
+#define BUTTON_TEXT_Y ((BUTTON_DEFAULT_H-BUTTON_TEXT_H)/2)
+
+#define BUTTON_CIRCLE_SIZE 98
+#define BUTTON_CONTENT_SIZE 60
+#define BUTTON_CONTENT_REL (((BUTTON_CIRCLE_SIZE-BUTTON_CONTENT_SIZE)/2)/BUTTON_CIRCLE_SIZE)
+
+styles {
+ style {
+ name: "button_main";
+ base: "font=Tizen:style=Light font_size=40 align=center color=#ffffffff text_class="BUTTON_TEXT_CLASS" ellipsis=1.0";
+ }
+}
+
+collections {
+ base_scale: 2.6;
+
+ group {
+ name: "elm/button/base/custom";
+
+ parts {
+ part {
+ name: "tizen_vg_shape";
+ type: SWALLOW;
+ scale: 1;
+ clip_to: "bg";
+ description {
+ state: "default" 0.0;
+ }
+ }
+ part {
+ name: "bg";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ color_class: BUTTON_COLOR_CLASS_NORMAL;
+ }
+ description {
+ state: "pressed" 0.0;
+ color_class: BUTTON_COLOR_CLASS_PRESSED;
+ }
+ }
+ }
+ programs {
+ program {
+ name: "pressed";
+ signal: "mouse,down,*";
+ source: "*";
+ action: STATE_SET "pressed" 0.0;
+ target: "bg";
+ }
+ program {
+ name: "unpressed";
+ signal: "mouse,up,*";
+ source: "*";
+ action: STATE_SET "default" 0.0;
+ target: "bg";
+ }
+ program {
+ name: "clicked";
+ signal: "mouse,clicked,*";
+ source: "*";
+ action: SIGNAL_EMIT "elm,action,click" "";
+ }
+ }
+ }
+
+ group {
+ name: "elm/button/base/"BUTTON_STYLE_CUSTOM_DEFAULT;
+ inherit: "elm/button/base/custom";
+ data.item: "vector_ux" "default";
+ data.item: "corner_radius" BUTTON_CORNER_RADIUS;
+
+ parts {
+ part {
+ name: "elm.text";
+ type: TEXTBLOCK;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ relative: 0.0 (BUTTON_TEXT_Y/BUTTON_DEFAULT_H);
+ offset: BUTTON_TEXT_X 0;
+ }
+ rel2 {
+ relative: 1.0 (1.0-(BUTTON_TEXT_Y/BUTTON_DEFAULT_H));
+ offset: -BUTTON_TEXT_X 0;
+ }
+ text {
+ style: "button_main";
+ min: 1 1;
+ ellipsis: -1;
+ }
+ }
+ }
+ }
+ }
+
+ group {
+ name: "elm/button/base/"BUTTON_STYLE_CUSTOM_CIRCLE;
+ inherit: "elm/button/base/custom";
+ data.item: "vector_ux" "circle";
+
+ parts {
+ part {
+ name: "elm.swallow.content";
+ type: SWALLOW;
+ description {
+ state: "default" 0.0;
+ rel1.relative: BUTTON_CONTENT_REL BUTTON_CONTENT_REL;
+ rel2.relative: (1.0-BUTTON_CONTENT_REL) (1.0-BUTTON_CONTENT_REL);
+ }
+ }
+ }
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "AppsCommonButtons.h"
+
+color_classes {
+ color_class { //A03O003
+ name: "thumbnail_bg";
+ color: 255 255 255 255;
+ }
+ color_class { //A03O003L1
+ name: "thumbnail_default";
+ color: 61 185 204 128;
+ }
+ color_class {
+ name: BUTTON_COLOR_CLASS_NORMAL;
+ color: 82 198 216 255;
+ }
+ color_class {
+ name: BUTTON_COLOR_CLASS_PRESSED;
+ color: 48 139 153 255;
+ }
+ color_class { //W023 (Input Color 1)
+ name: "icon_expand";
+ color: 61 185 204 255;
+ }
+ color_class { //W0113 (Input Color 1)
+ name: "touch_icon_normal";
+ color: 61 185 204 255;
+ }
+ color_class { //W0113P
+ name: "touch_icon_pressed";
+ color: 34 104 115 255;
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "AppsCommonProgressbarLayout.h"
+
+collections {
+ base_scale: 2.6;
+ group {
+ name: GROUP_PROGRESSBAR_LAYOUT;
+
+ parts {
+ spacer { "spacer.top"; scale;
+ desc { "default";
+ min: 0 PROGRESSBAR_PAD_Y;
+ align: 0.5 0.0;
+ rel1.relative: 0.0 0.0;
+ rel2.relative: 1.0 0.0;
+ }
+ }
+ spacer { "spacer.left"; scale;
+ desc { "default";
+ min: PROGRESSBAR_PAD_X 0;
+ align: 0.0 0.5;
+ rel1.relative: 0.0 0.0;
+ rel2.relative: 0.0 1.0;
+ }
+ }
+ spacer { "spacer.right"; scale;
+ desc { "default";
+ min: PROGRESSBAR_PAD_X 0;
+ align: 1.0 0.5;
+ rel1.relative: 1.0 0.0;
+ rel2.relative: 1.0 1.0;
+ }
+ }
+ spacer { "spacer.bottom"; scale;
+ desc { "default";
+ min: 0 PROGRESSBAR_PAD_Y;
+ align: 0.5 1.0;
+ rel1.relative: 0.0 1.0;
+ rel2.relative: 1.0 1.0;
+ }
+ }
+ swallow { PART_PROGRESSBAR; scale;
+ desc { "default";
+ rel1 { relative: 1.0 1.0; to_x: "spacer.left"; to_y: "spacer.top"; }
+ rel2 { relative: 0.0 0.0; to_x: "spacer.right"; to_y: "spacer.bottom"; }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "AppsCommonThumbnail.h"
+#include "apps-common-colors.edc"
+#include "apps-common-utils.edc"
+
+collections {
+ IMAGE_WITH_MASK(GROUP_THUMBNAIL_SMALL, THUMBNAIL_BG_SMALL)
+ IMAGE_WITH_MASK(GROUP_THUMBNAIL_MEDIUM, THUMBNAIL_BG_MEDIUM)
+ IMAGE_WITH_MASK(GROUP_THUMBNAIL_LARGE, THUMBNAIL_BG_LARGE)
+
+ IMAGE_WITH_BG_AND_COLOR(GROUP_THUMBNAIL_DEFAULT_SMALL, THUMBNAIL_DEFAULT_SMALL, "thumbnail_default", THUMBNAIL_BG_SMALL, "thumbnail_bg")
+ IMAGE_WITH_BG_AND_COLOR(GROUP_THUMBNAIL_DEFAULT_MEDIUM, THUMBNAIL_DEFAULT_MEDIUM, "thumbnail_default", THUMBNAIL_BG_MEDIUM, "thumbnail_bg")
+ IMAGE_WITH_BG_AND_COLOR(GROUP_THUMBNAIL_DEFAULT_LARGE, THUMBNAIL_DEFAULT_LARGE, "thumbnail_default", THUMBNAIL_BG_LARGE, "thumbnail_bg")
+}
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#define IMAGE_WITH_COLOR(GROUP_NAME, IMAGE_PATH, COLOR_CLASS) \
+ group { \
+ name: GROUP_NAME; \
+ images.image: IMAGE_PATH COMP; \
+ parts { \
+ part { name: "image"; \
+ description { \
+ state: "default" 0.0; \
+ image.normal: IMAGE_PATH; \
+ color_class: COLOR_CLASS; \
+ aspect: 1 1; \
+ aspect_preference: SOURCE; \
+ } \
+ } \
+ } \
+ }
+
+#define IMAGE_WITH_BG_AND_COLOR(GROUP_NAME, IMAGE_PATH, COLOR_CLASS, BG_IMAGE_PATH, BG_COLOR_CLASS) \
+ group { \
+ name: GROUP_NAME; \
+ images.image: BG_IMAGE_PATH COMP; \
+ images.image: IMAGE_PATH COMP; \
+ parts { \
+ part { name: "image.bg"; \
+ description { \
+ state: "default" 0.0; \
+ image.normal: BG_IMAGE_PATH; \
+ color_class: BG_COLOR_CLASS; \
+ aspect: 1 1; \
+ aspect_preference: SOURCE; \
+ } \
+ } \
+ } \
+ parts { \
+ part { name: "image"; \
+ description { \
+ state: "default" 0.0; \
+ image.normal: IMAGE_PATH; \
+ color_class: COLOR_CLASS; \
+ aspect: 1 1; \
+ aspect_preference: SOURCE; \
+ } \
+ } \
+ } \
+ }
+
+#define IMAGE_WITH_MASK(GROUP_NAME, MASK_PATH) \
+ group { \
+ name: GROUP_NAME; \
+ images.image: MASK_PATH COMP; \
+ parts { \
+ part { name: "image.mask"; \
+ precise_is_inside: 1; \
+ description { \
+ state: "default" 0.0; \
+ image.normal: MASK_PATH; \
+ aspect: 1.0 1.0; \
+ aspect_preference: SOURCE; \
+ } \
+ } \
+ } \
+ parts { \
+ part { name: "elm.swallow.content"; \
+ type: SWALLOW; \
+ clip_to: "image.mask"; \
+ description { \
+ state: "default" 0.0; \
+ } \
+ } \
+ } \
+ }
+
+#define IMAGE_WITH_PRESSED_COLOR(GROUP_NAME, IMAGE_PATH, COLOR_CLASS, PRESSED_COLOR_CLASS) \
+ group { \
+ name: GROUP_NAME; \
+ images.image: IMAGE_PATH COMP; \
+ parts { \
+ part { name: "image"; \
+ description { \
+ state: "default" 0.0; \
+ image.normal: IMAGE_PATH; \
+ color_class: COLOR_CLASS; \
+ aspect: 1 1; \
+ aspect_preference: SOURCE; \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ color_class: PRESSED_COLOR_CLASS; \
+ } \
+ } \
+ } \
+ programs { \
+ program { \
+ name: "pressed"; \
+ signal: "mouse,down,*"; \
+ source: "*"; \
+ action: STATE_SET "pressed" 0.0; \
+ target: "image"; \
+ } \
+ program { \
+ name: "unpressed"; \
+ signal: "mouse,up,*"; \
+ source: "*"; \
+ action: STATE_SET "default" 0.0; \
+ target: "image"; \
+ } \
+ } \
+ }
+
+#define IMAGE_WITH_BG_PRESSED_COLOR(GROUP_NAME, IMAGE_PATH, COLOR_CLASS, BG_IMAGE_PATH, BG_COLOR_CLASS, PRESSED_BG_COLOR_CLASS) \
+ group { \
+ name: GROUP_NAME; \
+ images.image: IMAGE_PATH COMP; \
+ images.image: BG_IMAGE_PATH COMP; \
+ parts { \
+ part { name: "image.bg"; \
+ description { \
+ state: "default" 0.0; \
+ image.normal: BG_IMAGE_PATH; \
+ color_class: BG_COLOR_CLASS; \
+ aspect: 1 1; \
+ aspect_preference: SOURCE; \
+ } \
+ description { \
+ state: "pressed" 0.0; \
+ inherit: "default" 0.0; \
+ color_class: PRESSED_BG_COLOR_CLASS; \
+ } \
+ } \
+ part { name: "image"; \
+ description { \
+ state: "default" 0.0; \
+ image.normal: IMAGE_PATH; \
+ color_class: COLOR_CLASS; \
+ aspect: 1 1; \
+ aspect_preference: SOURCE; \
+ } \
+ } \
+ } \
+ programs { \
+ program { \
+ name: "pressed"; \
+ signal: "mouse,down,*"; \
+ source: "*"; \
+ action: STATE_SET "pressed" 0.0; \
+ target: "image.bg"; \
+ } \
+ program { \
+ name: "unpressed"; \
+ signal: "mouse,up,*"; \
+ source: "*"; \
+ action: STATE_SET "default" 0.0; \
+ target: "image.bg"; \
+ } \
+ } \
+ }
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "App/AppControl.h"
+#include "Utils/Logger.h"
+
+using namespace App;
+
+AppControl::AppControl()
+ : m_AppControl(nullptr), m_AutoTerminate(true)
+{
+}
+
+AppControl::AppControl(const char *operation, const char *mime, const char *uri)
+ : AppControl()
+{
+ app_control_create(&m_AppControl);
+ app_control_set_operation(m_AppControl, operation);
+ app_control_set_mime(m_AppControl, mime);
+ app_control_set_uri(m_AppControl, uri);
+}
+
+AppControl::AppControl(AppControl &&that)
+ : m_AppControl(that.m_AppControl), m_AutoTerminate(that.m_AutoTerminate)
+{
+ that.m_AppControl = nullptr;
+}
+
+AppControl::~AppControl()
+{
+ reset();
+}
+
+app_control_h AppControl::getHandle() const
+{
+ return m_AppControl;
+}
+
+void AppControl::addExtra(const char *key, const char *value)
+{
+ app_control_add_extra_data(m_AppControl, key, value);
+}
+
+void AppControl::addExtra(const char *key, const char **array, int length)
+{
+ app_control_add_extra_data_array(m_AppControl, key, array, length);
+}
+
+int AppControl::launch(app_control_reply_cb replyCallback, void *userData,
+ bool groupMode)
+{
+ if (groupMode) {
+ app_control_set_launch_mode(m_AppControl, APP_CONTROL_LAUNCH_MODE_GROUP);
+ }
+
+ int result = app_control_send_launch_request(m_AppControl, replyCallback, userData);
+ WARN_IF_ERR(result, "app_control_send_launch_request() failed.");
+
+ return result;
+}
+
+void AppControl::terminate()
+{
+ app_control_send_terminate_request(m_AppControl);
+}
+
+void AppControl::detach()
+{
+ m_AutoTerminate = false;
+}
+
+AppControl &AppControl::operator=(AppControl &&that)
+{
+ reset();
+ m_AppControl = that.m_AppControl;
+ m_AutoTerminate = that.m_AutoTerminate;
+ that.m_AppControl = nullptr;
+
+ return *this;
+}
+
+void AppControl::reset()
+{
+ if (m_AppControl) {
+ if (m_AutoTerminate) {
+ terminate();
+ }
+ app_control_destroy(m_AppControl);
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "App/AppControlRequest.h"
+#include "Utils/Logger.h"
+
+using namespace App;
+
+AppControl App::requestContactCreate(const char *number)
+{
+ AppControl request(APP_CONTROL_OPERATION_ADD, APP_CONTROL_MIME_CONTACT);
+ request.addExtra(APP_CONTROL_DATA_PHONE, number);
+ return request;
+}
+
+AppControl App::requestContactDetails(int personId)
+{
+ AppControl request(APP_CONTROL_OPERATION_VIEW, APP_CONTROL_MIME_CONTACT);
+ request.addExtra(APP_CONTROL_DATA_ID, std::to_string(personId).c_str());
+ return request;
+}
+
+AppControl App::requestContactEdit(int personId, const char *number)
+{
+ AppControl request(APP_CONTROL_OPERATION_EDIT, APP_CONTROL_MIME_CONTACT);
+ if (personId > 0) {
+ request.addExtra(APP_CONTROL_DATA_ID, std::to_string(personId).c_str());
+ }
+
+ request.addExtra(APP_CONTROL_DATA_PHONE, number);
+ return request;
+}
+
+AppControl App::requestContactPick(const char *selectionMode, const char *resultType)
+{
+ AppControl request(APP_CONTROL_OPERATION_PICK, APP_CONTROL_MIME_CONTACT);
+ request.addExtra(APP_CONTROL_DATA_SELECTION_MODE, selectionMode);
+ request.addExtra(APP_CONTROL_DATA_TYPE, resultType);
+ return request;
+}
+
+AppControl App::requestTelephonyCall(const char *number)
+{
+ return AppControl(APP_CONTROL_OPERATION_CALL, nullptr,
+ std::string("tel:").append(number).c_str());
+}
+
+AppControl App::requestCallSettings()
+{
+ return AppControl(APP_CONTROL_OPERATION_SETTING_CALL);
+}
+
+AppControl App::requestMessageComposer(const char *scheme, const char *to,
+ const char *subject, const char *text)
+{
+ AppControl request(APP_CONTROL_OPERATION_COMPOSE, nullptr,
+ std::string(scheme).append(to).c_str());
+ request.addExtra(APP_CONTROL_DATA_TITLE, subject);
+ request.addExtra(APP_CONTROL_DATA_TEXT, text);
+ return request;
+}
+
+AppControl App::requestCameraImage()
+{
+ return AppControl(APP_CONTROL_OPERATION_CREATE_CONTENT, "image/*");
+}
+
+AppControl App::requestGalleryImage()
+{
+ return AppControl(APP_CONTROL_OPERATION_PICK, "image/*");
+}
+
+AppControl App::requestShareContact(int personId)
+{
+ AppControl request(APP_CONTROL_OPERATION_SHARE, APP_CONTROL_MIME_CONTACT);
+ request.addExtra(APP_CONTROL_DATA_ID, std::to_string(personId).c_str());
+ return request;
+}
+
+AppControl App::requestShareMyProfile(int recordId)
+{
+ AppControl request = requestShareContact(recordId);
+ request.addExtra(APP_CONTROL_DATA_TYPE, "my_profile");
+ return request;
+}
+
+std::string App::getSingleExtraData(app_control_h appControl, const char *key)
+{
+ std::string result;
+ char **array = nullptr;
+ int count = 0;
+
+ int err = app_control_get_extra_data_array(appControl, key, &array, &count);
+ RETVM_IF_ERR(err, result, "app_control_get_extra_data_array() failed.");
+
+ if (array && array[0]) {
+ result = array[0];
+ }
+
+ for (int i = 0; i < count; ++i) {
+ free(array[i]);
+ }
+ free(array);
+
+ return result;
+}
+
+std::vector<int> App::getIntExtraDataArray(app_control_h appControl, const char *key)
+{
+ std::vector<int> result;
+ char **array = nullptr;
+ int count = 0;
+
+ int err = app_control_get_extra_data_array(appControl, key, &array, &count);
+ RETVM_IF_ERR(err, result, "app_control_get_extra_data_array() failed.");
+ result.reserve(count);
+
+ for (int i = 0; i < count; ++i) {
+ int value = atoi(array[i]);
+ result.push_back(value);
+ free(array[i]);
+ }
+ free(array);
+
+ return result;
+}
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "App/Application.h"
+#include "Utils/Callback.h"
+
+using namespace App;
+
+int Application::run(int argc, char **argv)
+{
+ ui_app_lifecycle_callback_s cbs;
+ cbs.create = makeCallback(&Application::onCreate);
+ cbs.terminate = makeCallback(&Application::onTerminate);
+ cbs.pause = makeCallback(&Application::onPause);
+ cbs.resume = makeCallback(&Application::onResume);
+ cbs.app_control = makeCallbackWithLastParam(&Application::onAppControl);
+
+ return ui_app_main(argc, argv, &cbs, this);
+}
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "App/Path.h"
+
+#include <app.h>
+
+const std::string &App::getLocaleDir()
+{
+ static std::string localeDir;
+ if (localeDir.empty()) {
+ #ifdef LOCALE_DIR
+ localeDir = LOCALE_DIR;
+ #else
+ localeDir = getResourcePath("locale/");
+ #endif
+ }
+
+ return localeDir;
+}
+
+const std::string &App::getResourceDir()
+{
+ static std::string resDir;
+ if (resDir.empty()) {
+ #ifdef RES_DIR
+ resDir = RES_DIR;
+ #else
+ char *path = app_get_resource_path();
+ resDir = path;
+ free(path);
+ #endif
+ }
+
+ return resDir;
+}
+
+std::string App::getResourcePath(const std::string &relativePath)
+{
+ return std::string(getResourceDir()).append(relativePath);
+}
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "Ui/Button.h"
+#include "Utils/Callback.h"
+
+#include <Ecore.h>
+
+using namespace Ui;
+
+Button::Button()
+ : m_Timer(nullptr), m_IsLongpressed(false)
+{
+}
+
+Button::~Button()
+{
+ resetTimer();
+}
+
+void Button::setPressedCallback(std::function<void(Button&)> callback)
+{
+ m_OnPressed = std::move(callback);
+}
+
+void Button::setLongpressedCallback(std::function<bool(Button&)> callback)
+{
+ m_OnLongpressed = std::move(callback);
+}
+
+Evas_Object *Button::onCreate(Evas_Object *parent)
+{
+ Evas_Object *button = elm_button_add(parent);
+ return button;
+}
+
+void Button::onCreated()
+{
+ evas_object_event_callback_add(getEvasObject(), EVAS_CALLBACK_MOUSE_DOWN,
+ makeCallback(&Button::onMouseDown), this);
+ evas_object_event_callback_add(getEvasObject(), EVAS_CALLBACK_MOUSE_UP,
+ makeCallback(&Button::onMouseUp), this);
+ evas_object_event_callback_add(getEvasObject(), EVAS_CALLBACK_MOUSE_OUT,
+ makeCallback(&Button::onMouseOut), this);
+}
+
+void Button::onMouseDown(Evas *evas, Evas_Object *obj, void *eventInfo)
+{
+ m_IsLongpressed = false;
+ m_Timer = ecore_timer_add(elm_config_longpress_timeout_get(),
+ makeCallback(&Button::onTimeout), this);
+}
+
+void Button::onMouseUp(Evas *evas, Evas_Object *obj, void *eventInfo)
+{
+ Evas_Event_Mouse_Up *e = (Evas_Event_Mouse_Up *) eventInfo;
+
+ if (!m_IsLongpressed) {
+ int x = 0, y = 0, w = 0, h = 0;
+ evas_object_geometry_get(obj, &x, &y, &w, &h);
+
+ if (m_OnPressed) {
+ if (e->output.x >= x && e->output.x <= x + w
+ && e->output.y >= y && e->output.x <= y + h) {
+ m_OnPressed(*this);
+ }
+ }
+
+ resetTimer();
+ }
+}
+
+void Button::onMouseOut(Evas *evas, Evas_Object *obj, void *eventInfo)
+{
+ resetTimer();
+}
+
+void Button::resetTimer()
+{
+ ecore_timer_del(m_Timer);
+ m_Timer = nullptr;
+}
+
+Eina_Bool Button::onTimeout()
+{
+ if (m_OnLongpressed) {
+ m_IsLongpressed = m_OnLongpressed(*this);
+ }
+
+ resetTimer();
+ return ECORE_CALLBACK_CANCEL;
+}
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "Ui/Control.h"
+#include "Ui/Window.h"
+#include "Utils/Callback.h"
+
+#define CONTROL_DATA_KEY "Ui::Control"
+
+using namespace Ui;
+
+Control::Control()
+ : m_Object(nullptr)
+{
+}
+
+Control::~Control()
+{
+ destroyEvasObject();
+}
+
+Evas_Object *Control::create(Evas_Object *parent)
+{
+ if (!m_Object) {
+ setEvasObject(onCreate(parent));
+ onCreated();
+ }
+
+ return m_Object;
+}
+
+Evas_Object *Control::getEvasObject() const
+{
+ return m_Object;
+}
+
+Window *Control::getWindow() const
+{
+ return getWindow(getEvasObject());
+}
+
+Control *Control::getControl(Evas_Object *object)
+{
+ return (Control *) evas_object_data_get(object, CONTROL_DATA_KEY);
+}
+
+Window *Control::getWindow(Evas_Object *object)
+{
+ Evas_Object *window = elm_object_top_widget_get(object);
+ return static_cast<Window *>(getControl(window));
+}
+
+void Control::setEvasObject(Evas_Object *object)
+{
+ m_Object = object;
+ if (!evas_object_data_get(m_Object, CONTROL_DATA_KEY)) {
+ evas_object_data_set(m_Object, CONTROL_DATA_KEY, this);
+ }
+
+ evas_object_event_callback_add(m_Object, EVAS_CALLBACK_FREE,
+ makeCallback(&Control::onDestroy), this);
+}
+
+Evas_Object *Control::resetEvasObject()
+{
+ Evas_Object *object = m_Object;
+ evas_object_event_callback_del_full(m_Object, EVAS_CALLBACK_FREE,
+ makeCallback(&Control::onDestroy), this);
+ m_Object = nullptr;
+ return object;
+}
+
+void Control::destroyEvasObject()
+{
+ if (m_Object) {
+ evas_object_del(resetEvasObject());
+ }
+}
+
+void Control::onDestroy(Evas *e, Evas_Object *obj, void *event_info)
+{
+ resetEvasObject();
+ delete this;
+}
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "Ui/DatePopup.h"
+
+using namespace Ui;
+
+DatePopup::DatePopup(tm date)
+ : m_Date(date), m_DatePicker(nullptr)
+{
+}
+
+void DatePopup::setResultCallback(ResultCallback callback)
+{
+ m_OnResult = std::move(callback);
+}
+
+void DatePopup::onCreated()
+{
+ setTitle("IDS_ST_BODY_SET_DATE");
+ addButton("IDS_PB_BUTTON_CANCEL");
+ addButton("IDS_PB_SK_SET", [this] {
+ onSetPressed();
+ return true;
+ });
+
+ m_DatePicker = elm_datetime_add(getEvasObject());
+ elm_datetime_format_set(m_DatePicker, "%%x");
+ elm_datetime_value_set(m_DatePicker, &m_Date);
+ setContent(m_DatePicker);
+}
+
+void DatePopup::onSetPressed()
+{
+ if (m_OnResult) {
+ elm_datetime_value_get(m_DatePicker, &m_Date);
+ m_OnResult(m_Date);
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "Ui/Editfield.h"
+
+#include <Elementary.h>
+
+using namespace Ui;
+
+Editfield *Editfield::create(Evas_Object *parent, const char *guideText)
+{
+ Editfield *editfield = new Editfield();
+ editfield->create(parent);
+ editfield->setGuideText(guideText);
+ return editfield;
+}
+
+Evas_Object *Editfield::onCreate(Evas_Object *parent)
+{
+ Evas_Object *layout = elm_layout_add(parent);
+ elm_layout_theme_set(layout, "layout", "editfield", "singleline");
+
+ Evas_Object *entry = elm_entry_add(parent);
+ elm_entry_single_line_set(entry, EINA_TRUE);
+ elm_entry_scrollable_set(entry, EINA_TRUE);
+ elm_object_part_content_set(layout, "elm.swallow.content", entry);
+
+ evas_object_smart_callback_add(entry, "changed", (Evas_Smart_Cb) onChanged, layout);
+ evas_object_smart_callback_add(entry, "focused", (Evas_Smart_Cb) onFocused, layout);
+ evas_object_smart_callback_add(entry, "unfocused", (Evas_Smart_Cb) onUnfocused, layout);
+
+ Evas_Object *button = elm_button_add(parent);
+ elm_object_style_set(button, "editfield_clear");
+ elm_object_focus_allow_set(button, EINA_FALSE);
+ elm_object_part_content_set(layout, "elm.swallow.button", button);
+ evas_object_smart_callback_add(button, "clicked", (Evas_Smart_Cb) onClearPressed, entry);
+
+ return layout;
+}
+
+void Editfield::setGuideText(const char *guideText)
+{
+ elm_object_translatable_part_text_set(getEntry(), "elm.guide", guideText);
+}
+
+Evas_Object *Editfield::getEntry()
+{
+ return elm_object_part_content_get(getEvasObject(), "elm.swallow.content");
+}
+
+Evas_Object *Editfield::getClearButton()
+{
+ return elm_object_part_content_get(getEvasObject(), "elm.swallow.button");
+}
+
+void Editfield::onChanged(Evas_Object *layout, Evas_Object *entry, void *eventInfo)
+{
+ if (elm_entry_is_empty(entry)) {
+ elm_object_signal_emit(layout, "elm,action,hide,button", "");
+ } else {
+ elm_object_signal_emit(layout, "elm,action,show,button", "");
+ }
+}
+
+void Editfield::onFocused(Evas_Object *layout, Evas_Object *entry, void *eventInfo)
+{
+ elm_object_signal_emit(layout, "elm,state,focused", "");
+}
+
+void Editfield::onUnfocused(Evas_Object *layout, Evas_Object *entry, void *eventInfo)
+{
+ elm_object_signal_emit(layout, "elm,state,unfocused", "");
+}
+
+void Editfield::onClearPressed(Evas_Object *entry, Evas_Object *button, void *eventInfo)
+{
+ elm_entry_entry_set(entry, "");
+ elm_object_focus_set(entry, EINA_TRUE);
+}
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "Ui/Genlist.h"
+#include "Ui/GenlistGroupItem.h"
+
+using namespace Ui;
+
+Evas_Object *Genlist::onCreate(Evas_Object *parent)
+{
+ Evas_Object *genlist = elm_genlist_add(parent);
+ elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
+
+ evas_object_smart_callback_add(genlist, "selected",
+ (Evas_Smart_Cb) &Genlist::onItemSelected, this);
+ evas_object_smart_callback_add(genlist, "expanded",
+ (Evas_Smart_Cb) &Genlist::onItemExpanded, this);
+ evas_object_smart_callback_add(genlist, "contracted",
+ (Evas_Smart_Cb) &Genlist::onItemContracted, this);
+ evas_object_smart_callback_add(genlist, "realized",
+ (Evas_Smart_Cb) &Genlist::onItemRealized, this);
+ evas_object_smart_callback_add(genlist, "unrealized",
+ (Evas_Smart_Cb) &Genlist::onItemUnrealized, this);
+
+ return genlist;
+}
+
+GenlistItem *Genlist::getFirstItem() const
+{
+ Elm_Object_Item *item = elm_genlist_first_item_get(getEvasObject());
+ return (GenlistItem *) elm_object_item_data_get(item);
+}
+
+GenlistItem *Genlist::getLastItem() const
+{
+ Elm_Object_Item *item = elm_genlist_last_item_get(getEvasObject());
+ return (GenlistItem *) elm_object_item_data_get(item);
+}
+
+GenlistIterator Genlist::begin() const
+{
+ return getFirstItem();
+}
+
+GenlistIterator Genlist::end() const
+{
+ return nullptr;
+}
+
+void Genlist::insert(GenlistItem *item, GenlistGroupItem *parent,
+ GenlistItem *sibling, Position position)
+{
+ if (!item) {
+ return;
+ }
+
+ if (item->m_Item) {
+ item->pop();
+ }
+
+ Elm_Object_Item *parentItem = parent ? parent->getObjectItem() : nullptr;
+ if (sibling) {
+ auto insert = (position == Before) ? elm_genlist_item_insert_before : elm_genlist_item_insert_after;
+ item->onInserted(insert(getEvasObject(), item->getItemClass(), item,
+ parentItem, sibling->getObjectItem(), item->getType(), nullptr, nullptr));
+ } else {
+ auto insert = (position == Before) ? elm_genlist_item_append : elm_genlist_item_prepend;
+ item->onInserted(insert(getEvasObject(), item->getItemClass(), item,
+ parentItem, item->getType(), nullptr, nullptr));
+ }
+}
+
+void Genlist::update(const char *parts, Elm_Genlist_Item_Field_Type type)
+{
+ Eina_List *list = elm_genlist_realized_items_get(getEvasObject());
+ Eina_List *node = nullptr;
+ void *item = nullptr;
+ EINA_LIST_FOREACH(list, node, item) {
+ elm_genlist_item_fields_update((Elm_Object_Item *) item, parts, type);
+ }
+
+ eina_list_free(list);
+}
+
+void Genlist::onItemSelected(void *data, Evas_Object *obj, Elm_Object_Item *objectItem)
+{
+ GenlistItem *item = (GenlistItem *) elm_object_item_data_get(objectItem);
+ if (item) {
+ item->onSelected(objectItem);
+ }
+}
+
+void Genlist::onItemExpanded(void *data, Evas_Object *obj, Elm_Object_Item *objectItem)
+{
+ GenlistItem *item = (GenlistItem *) elm_object_item_data_get(objectItem);
+ if (item && item->isGroupItem()) {
+ dynamic_cast<GenlistGroupItem *>(item)->onExpanded(true);
+ }
+}
+
+void Genlist::onItemContracted(void *data, Evas_Object *obj, Elm_Object_Item *objectItem)
+{
+ GenlistItem *item = (GenlistItem *) elm_object_item_data_get(objectItem);
+ if (item && item->isGroupItem()) {
+ dynamic_cast<GenlistGroupItem *>(item)->onExpanded(false);
+ }
+}
+
+void Genlist::onItemRealized(void *data, Evas_Object *obj, Elm_Object_Item *objectItem)
+{
+ GenlistItem *item = (GenlistItem *) elm_object_item_data_get(objectItem);
+ if (item) {
+ item->onRealized(objectItem);
+ }
+}
+
+void Genlist::onItemUnrealized(void *data, Evas_Object *obj, Elm_Object_Item *objectItem)
+{
+ GenlistItem *item = (GenlistItem *) elm_object_item_data_get(objectItem);
+ if (item) {
+ item->onUnrealized(objectItem);
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "Ui/GenlistCheckItem.h"
+#include "Utils/Callback.h"
+
+using namespace Ui;
+
+GenlistCheckItem::GenlistCheckItem()
+ : m_IsChecked(false)
+{ }
+
+bool GenlistCheckItem::isChecked() const
+{
+ return m_IsChecked;
+}
+
+void GenlistCheckItem::setChecked(bool isChecked)
+{
+ Evas_Object *check = elm_object_item_part_content_get(getObjectItem(), m_CheckPart.c_str());
+ if (check) {
+ elm_check_state_set(check, isChecked);
+ } else {
+ m_IsChecked = isChecked;
+ }
+}
+
+void GenlistCheckItem::setCheckCallback(CheckCallback callback)
+{
+ m_OnChecked = std::move(callback);
+}
+
+Evas_Object *GenlistCheckItem::getContent(Evas_Object *parent, const char *part)
+{
+ m_CheckPart = part;
+
+ Elm_Check *check = elm_check_add(parent);
+ elm_check_state_set(check, m_IsChecked);
+ elm_check_state_pointer_set(check, &m_IsChecked);
+ evas_object_propagate_events_set(check, EINA_FALSE);
+ evas_object_smart_callback_add(check, "changed",
+ makeCallback(&GenlistCheckItem::onCheckChanged), this);
+
+ return check;
+}
+
+void GenlistCheckItem::onSelected()
+{
+ setChecked(!m_IsChecked);
+ onChecked();
+}
+
+void GenlistCheckItem::onChecked()
+{
+ onChecked(m_IsChecked);
+
+ if (m_OnChecked) {
+ m_OnChecked(m_IsChecked);
+ }
+}
+
+void GenlistCheckItem::onCheckChanged(Evas_Object *check, void *eventInfo)
+{
+ onChecked();
+}
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "Ui/GenlistGroupItem.h"
+#include "Ui/Genlist.h"
+#include <algorithm>
+
+using namespace Ui;
+
+GenlistGroupItem::GenlistGroupItem()
+ : m_FirstItem(nullptr), m_LastItem(nullptr)
+{
+}
+
+GenlistGroupItem::~GenlistGroupItem()
+{
+ for (auto &&item : m_ItemsCache) {
+ delete item;
+ }
+}
+
+GenlistIterator GenlistGroupItem::begin()
+{
+ return m_FirstItem;
+}
+
+GenlistIterator GenlistGroupItem::end()
+{
+ return m_LastItem ? m_LastItem->getNextItem() : nullptr;
+}
+
+bool GenlistGroupItem::empty() const
+{
+ return m_FirstItem == nullptr;
+}
+
+bool GenlistGroupItem::isExpanded() const
+{
+ Elm_Object_Item *item = getObjectItem();
+ if (!item) {
+ return false;
+ }
+
+ if (getType() == ELM_GENLIST_ITEM_TREE) {
+ return elm_genlist_item_expanded_get(item);
+ }
+
+ return true;
+}
+
+GenlistGroupItem *GenlistGroupItem::getNextGroupItem() const
+{
+ GenlistItem *item = m_LastItem ? m_LastItem->getNextItem() : getNextItem();
+ if (item && item->isGroupItem()) {
+ return dynamic_cast<GenlistGroupItem *>(item);
+ }
+
+ return nullptr;
+}
+
+GenlistGroupItem *GenlistGroupItem::getPrevGroupItem() const
+{
+ GenlistItem *item = getPrevItem();
+ if (item) {
+ if (item->isGroupItem()) {
+ return dynamic_cast<GenlistGroupItem *>(item);
+ } else {
+ return item->getParentItem();
+ }
+ }
+
+ return nullptr;
+}
+
+void GenlistGroupItem::insertSubItem(GenlistItem *item, GenlistItem *sibling,
+ Genlist::Position position)
+{
+ if (!item) {
+ return;
+ }
+
+ Genlist *genlist = getParent();
+ if (genlist && isExpanded()) {
+ genlist->insert(item, this, sibling, position);
+ } else {
+ auto pos = m_ItemsCache.end();
+ if (sibling) {
+ pos = std::find(m_ItemsCache.begin(), m_ItemsCache.end(), sibling);
+ }
+
+ if (pos != m_ItemsCache.end()) {
+ if (position == Genlist::After) {
+ ++pos;
+ }
+ } else {
+ if (position == Genlist::After) {
+ pos = m_ItemsCache.begin();
+ }
+ }
+
+ m_ItemsCache.insert(pos, item);
+ }
+}
+
+Elm_Genlist_Item_Class *GenlistGroupItem::getItemClass() const
+{
+ static Elm_Genlist_Item_Class itc = createItemClass("group_index");
+ return &itc;
+}
+
+void GenlistGroupItem::onInserted()
+{
+ if (isExpanded()) {
+ insertSubItems();
+ }
+}
+
+void GenlistGroupItem::onPop()
+{
+ popSubItems();
+}
+
+void GenlistGroupItem::onExpanded(bool isExpanded)
+{
+ if (isExpanded) {
+ insertSubItems();
+ } else {
+ popSubItems();
+ }
+}
+
+void GenlistGroupItem::insertSubItems()
+{
+ Genlist *genlist = getParent();
+ if (genlist) {
+ for (auto &&item : m_ItemsCache) {
+ genlist->insert(item, this);
+ }
+ m_ItemsCache.clear();
+ }
+}
+
+void GenlistGroupItem::popSubItems()
+{
+ for (auto it = begin(), endIt = end(); it != endIt; ) {
+ GenlistItem *item = *it++;
+ item->pop();
+ m_ItemsCache.push_back(item);
+ }
+}
+
+void GenlistGroupItem::onSubItemInserted(GenlistItem *item)
+{
+ if (!m_FirstItem) {
+ m_FirstItem = m_LastItem = item;
+ return;
+ }
+
+ if (item->getNextItem() == m_FirstItem) {
+ m_FirstItem = item;
+ } else if (item->getPrevItem() == m_LastItem) {
+ m_LastItem = item;
+ }
+}
+
+void GenlistGroupItem::onSubItemDestroy(GenlistItem *item)
+{
+ if (m_FirstItem == m_LastItem) {
+ m_FirstItem = m_LastItem = nullptr;
+ return;
+ }
+
+ if (item == m_FirstItem) {
+ m_FirstItem = item->getNextItem();
+ } else if (item == m_LastItem) {
+ m_LastItem = item->getPrevItem();
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "Ui/GenlistItem.h"
+#include "Ui/GenlistGroupItem.h"
+#include "Ui/Genlist.h"
+#include "Utils/Callback.h"
+
+using namespace Ui;
+
+GenlistItem::GenlistItem()
+ : m_Item(nullptr), m_Preserve(false),
+ m_IsRealized(false), m_IsFocusPending(false)
+{
+}
+
+GenlistItem::~GenlistItem()
+{
+ if (m_Item) {
+ pop();
+ }
+}
+
+bool GenlistItem::isRealized() const
+{
+ return m_IsRealized;
+}
+
+Elm_Object_Item *GenlistItem::getObjectItem() const
+{
+ return m_Item;
+}
+
+Genlist *GenlistItem::getParent() const
+{
+ Evas_Object *genlist = elm_object_item_widget_get(getObjectItem());
+ return static_cast<Genlist *>(Control::getControl(genlist));
+}
+
+GenlistGroupItem *GenlistItem::getParentItem() const
+{
+ Elm_Object_Item *objectItem = elm_genlist_item_parent_get(getObjectItem());
+ GenlistItem *item = (GenlistItem *) elm_object_item_data_get(objectItem);
+ return dynamic_cast<GenlistGroupItem *>(item);
+}
+
+GenlistItem *GenlistItem::getNextItem() const
+{
+ Elm_Object_Item *item = elm_genlist_item_next_get(getObjectItem());
+ return (GenlistItem *) elm_object_item_data_get(item);
+}
+
+GenlistItem *GenlistItem::getPrevItem() const
+{
+ Elm_Object_Item *item = elm_genlist_item_prev_get(getObjectItem());
+ return (GenlistItem *) elm_object_item_data_get(item);
+}
+
+void GenlistItem::setSelectCallback(SelectCallback callback)
+{
+ m_OnSelected = std::move(callback);
+}
+
+void GenlistItem::scrollTo(Elm_Genlist_Item_Scrollto_Type position, bool isAnimated)
+{
+ auto scroll = isAnimated ? elm_genlist_item_bring_in : elm_genlist_item_show;
+ scroll(getObjectItem(), position);
+}
+
+void GenlistItem::focus(Elm_Genlist_Item_Scrollto_Type position, bool isAnimated)
+{
+ scrollTo(position, isAnimated);
+ if (m_IsRealized) {
+ onFocused();
+ } else {
+ m_IsFocusPending = true;
+ }
+}
+
+void GenlistItem::pop()
+{
+ onPop();
+
+ GenlistGroupItem *parent = getParentItem();
+ if (parent) {
+ parent->onSubItemDestroy(this);
+ }
+
+ m_Preserve = true;
+ elm_object_item_del(m_Item);
+ m_Preserve = false;
+}
+
+Elm_Genlist_Item_Class GenlistItem::createItemClass(const char *style,
+ const char *decorateStyle, const char *editStyle)
+{
+ Elm_Genlist_Item_Class itc = { ELM_GEN_ITEM_CLASS_HEADER, 0 };
+ itc.item_style = style;
+ itc.decorate_item_style = decorateStyle;
+ itc.decorate_all_item_style = editStyle;
+ itc.func.text_get = makeCallback(&GenlistItem::getText);
+ itc.func.content_get = makeCallback(&GenlistItem::getContent);
+ itc.func.state_get = makeCallback(&GenlistItem::getState);
+ itc.func.del = makeCallback(&GenlistItem::onDestroy);
+
+ return itc;
+}
+
+Elm_Genlist_Item_Class *GenlistItem::getItemClass() const
+{
+ static Elm_Genlist_Item_Class itc = createItemClass("type1");
+ return &itc;
+}
+
+void GenlistItem::onInserted(Elm_Object_Item *item)
+{
+ m_Item = item;
+ GenlistGroupItem *parent = getParentItem();
+ if (parent) {
+ parent->onSubItemInserted(this);
+ }
+ onInserted();
+}
+
+void GenlistItem::onDestroy(Evas_Object *genlist)
+{
+ m_Item = nullptr;
+ if (!m_Preserve) {
+ delete this;
+ }
+}
+
+void GenlistItem::onSelected(Elm_Object_Item *item)
+{
+ elm_genlist_item_selected_set(item, EINA_FALSE);
+ onSelected();
+
+ if (m_OnSelected) {
+ m_OnSelected();
+ }
+}
+
+void GenlistItem::onRealized(Elm_Object_Item *item)
+{
+ if (!m_Item) {
+ m_Item = item;
+ }
+
+ m_IsRealized = true;
+ onRealized();
+
+ if (m_IsFocusPending) {
+ onFocused();
+ m_IsFocusPending = false;
+ }
+}
+
+void GenlistItem::onUnrealized(Elm_Object_Item *item)
+{
+ m_IsRealized = false;
+ onUnrealized();
+}
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "Ui/GenlistIterator.h"
+#include "Ui/GenlistItem.h"
+
+using namespace Ui;
+
+GenlistIterator::GenlistIterator(GenlistItem *item)
+ : m_Item(item)
+{
+}
+
+GenlistIterator &GenlistIterator::operator++()
+{
+ if (m_Item) {
+ m_Item = m_Item->getNextItem();
+ }
+ return *this;
+}
+
+GenlistIterator GenlistIterator::operator++(int)
+{
+ auto it(*this);
+ ++*this;
+ return it;
+}
+
+GenlistIterator &GenlistIterator::operator--()
+{
+ if (m_Item) {
+ m_Item = m_Item->getPrevItem();
+ }
+ return *this;
+}
+
+GenlistIterator GenlistIterator::operator--(int)
+{
+ auto it(*this);
+ --*this;
+ return it;
+}
+
+GenlistItem *GenlistIterator::operator*() const
+{
+ return m_Item;
+}
+
+bool GenlistIterator::operator!=(const GenlistIterator &that) const
+{
+ return m_Item != that.m_Item;
+}
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "Ui/Hoversel.h"
+#include "Ui/Window.h"
+#include "Utils/Callback.h"
+
+#include <efl_extension.h>
+
+using namespace Ui;
+
+Elm_Object_Item *Hoversel::addItem(const char *text, int value)
+{
+ Elm_Object_Item *item = elm_hoversel_item_add(getEvasObject(), text,
+ nullptr, ELM_ICON_NONE, nullptr, (void *) (long) value);
+ elm_object_item_text_translatable_set(item, EINA_TRUE);
+ return item;
+}
+
+void Hoversel::setText(const char *text)
+{
+ elm_object_translatable_text_set(getEvasObject(), text);
+}
+
+void Hoversel::setSelectedCallback(SelectedCallback callback)
+{
+ m_OnSelected = std::move(callback);
+}
+
+Evas_Object *Hoversel::onCreate(Evas_Object *parent)
+{
+ Evas_Object *hoverParent = parent;
+ Window *window = getWindow(parent);
+ if (window) {
+ hoverParent = window->getBaseLayout();
+ }
+
+ Evas_Object *hoversel = elm_hoversel_add(parent);
+ elm_hoversel_hover_parent_set(hoversel, hoverParent);
+
+ evas_object_smart_callback_add(hoversel, "selected",
+ (Evas_Smart_Cb) makeCallback(&Hoversel::onSelected), this);
+ evas_object_smart_callback_add(hoversel, "expanded",
+ &Hoversel::onExpanded, this);
+ evas_object_smart_callback_add(hoversel, "dismissed",
+ &Hoversel::onDismissed, this);
+
+ return hoversel;
+}
+
+void Hoversel::onSelected(Evas_Object *hoversel, Elm_Object_Item *item)
+{
+ int value = (long) elm_object_item_data_get(item);
+ if (!m_OnSelected || m_OnSelected(value)) {
+ setText(elm_object_item_translatable_text_get(item));
+ }
+}
+
+void Hoversel::onExpanded(void *data, Evas_Object *hoversel, void *eventInfo)
+{
+ eext_object_event_callback_add(hoversel, EEXT_CALLBACK_BACK,
+ &Hoversel::onBackPressed, nullptr);
+}
+
+void Hoversel::onDismissed(void *data, Evas_Object *hoversel, void *eventInfo)
+{
+ eext_object_event_callback_del(hoversel, EEXT_CALLBACK_BACK,
+ &Hoversel::onBackPressed);
+}
+
+void Hoversel::onBackPressed(void *data, Evas_Object *hoversel, void *eventInfo)
+{
+ elm_hoversel_hover_end(hoversel);
+}
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "Ui/ListPopup.h"
+#include <app_i18n.h>
+
+using namespace Ui;
+
+struct ListPopup::ItemData
+{
+ std::string text;
+ void *userData;
+ ItemSelectedCallback callback;
+};
+
+ListPopup::ListPopup(const char *itemStyle)
+ : m_Genlist(nullptr), m_ItemClass{ ELM_GEN_ITEM_CLASS_HEADER, 0 }
+{
+ m_ItemClass.item_style = itemStyle;
+ m_ItemClass.func.text_get = (Elm_Gen_Item_Text_Get_Cb) &ListPopup::getText;
+ m_ItemClass.func.content_get = (Elm_Gen_Item_Content_Get_Cb) &ListPopup::getContent;
+ m_ItemClass.func.del = [](void *data, Evas_Object *obj) {
+ delete (ItemData *) data;
+ };
+}
+
+Elm_Object_Item *ListPopup::addItem(std::string text, void *data, ItemSelectedCallback callback)
+{
+ ItemData *itemData = new ItemData{ std::move(text), data, std::move(callback) };
+ return elm_genlist_item_append(m_Genlist, &m_ItemClass, itemData,
+ nullptr, ELM_GENLIST_ITEM_NONE, nullptr, nullptr);
+}
+
+Elm_Object_Item *ListPopup::addItem(std::string text, ItemSelectedCallback callback)
+{
+ return addItem(std::move(text), nullptr, std::move(callback));
+}
+
+Elm_Object_Item *ListPopup::addItem(void *data, ItemSelectedCallback callback)
+{
+ return addItem("", data, std::move(callback));
+}
+
+void ListPopup::setSelectedCallback(SelectedCallback callback)
+{
+ m_OnSelected = std::move(callback);
+}
+
+Evas_Object *ListPopup::onCreate(Evas_Object *parent)
+{
+ Evas_Object *popup = Popup::onCreate(parent);
+
+ m_Genlist = elm_genlist_add(parent);
+ elm_genlist_homogeneous_set(m_Genlist, EINA_TRUE);
+ elm_genlist_mode_set(m_Genlist, ELM_LIST_COMPRESS);
+ elm_scroller_content_min_limit(m_Genlist, EINA_FALSE, EINA_TRUE);
+ elm_object_part_content_set(popup, "elm.swallow.content", m_Genlist);
+
+ evas_object_smart_data_set(m_Genlist, this);
+ evas_object_smart_callback_add(m_Genlist, "selected",
+ (Evas_Smart_Cb) &ListPopup::onSelected, this);
+
+ return popup;
+}
+
+char *ListPopup::getText(ItemData *itemData, Evas_Object *genlist, const char *part)
+{
+ ListPopup *popup = (ListPopup *) evas_object_smart_data_get(genlist);
+ char *text = popup->getItemText(itemData->userData, part);
+ if (!text && strcmp(part, "elm.text") == 0) {
+ text = strdup(_(itemData->text.c_str()));
+ }
+
+ return text;
+}
+
+Evas_Object *ListPopup::getContent(ItemData *itemData, Evas_Object *genlist, const char *part)
+{
+ ListPopup *popup = (ListPopup *) evas_object_smart_data_get(genlist);
+ return popup->getItemContent(itemData->userData, part);
+}
+
+void ListPopup::onSelected(ListPopup *popup, Evas_Object *genlist, Elm_Object_Item *item)
+{
+ ItemData *itemData = (ItemData *) elm_object_item_data_get(item);
+ popup->onItemSelected(itemData->userData);
+
+ if (itemData->callback) {
+ itemData->callback();
+ }
+
+ if (popup->m_OnSelected) {
+ popup->m_OnSelected(itemData->userData);
+ }
+
+ elm_genlist_item_selected_set(item, EINA_FALSE);
+
+ /* FIXME: Destroying genlist from it's "selected" callback causes crash. */
+ ecore_job_add([](void *data) {
+ delete (ListPopup *) data;
+ }, popup);
+}
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "Ui/Menu.h"
+#include "Ui/Window.h"
+#include "Utils/Callback.h"
+
+#include <efl_extension.h>
+
+using namespace Ui;
+
+Elm_Object_Item *Menu::addItem(const char *text, ItemCallback callback)
+{
+ Elm_Object_Item *item = elm_ctxpopup_item_append(getEvasObject(), text, nullptr,
+ &Menu::onItemSelect, new ItemCallback(std::move(callback)));
+ elm_object_item_text_translatable_set(item, EINA_TRUE);
+ elm_object_item_del_cb_set(item, &Menu::onItemDestroy);
+ return item;
+}
+
+void Menu::show()
+{
+ Evas_Coord y = 0, h = 0;
+ evas_object_geometry_get(getWindow()->getEvasObject(), nullptr, &y, nullptr, &h);
+
+ Evas_Object *menu = getEvasObject();
+ evas_object_move(menu, 0, y + h);
+ evas_object_show(menu);
+}
+
+Evas_Object *Menu::onCreate(Evas_Object *parent)
+{
+ Window *window = getWindow(parent);
+ if (window) {
+ parent = window->getEvasObject();
+ }
+
+ Evas_Object *menu = elm_ctxpopup_add(parent);
+ elm_object_style_set(menu, "more/default");
+
+ evas_object_smart_callback_add(menu, "dismissed",
+ makeCallback(&Menu::onDismissed), this);
+ eext_object_event_callback_add(menu, EEXT_CALLBACK_BACK,
+ eext_ctxpopup_back_cb, nullptr);
+ eext_object_event_callback_add(menu, EEXT_CALLBACK_MORE,
+ eext_ctxpopup_back_cb, nullptr);
+
+ return menu;
+}
+
+void Menu::onItemSelect(void *data, Evas_Object *obj, void *item)
+{
+ ItemCallback &callback = *(ItemCallback *) data;
+ if (callback) {
+ callback();
+ }
+
+ elm_ctxpopup_dismiss(obj);
+}
+
+void Menu::onItemDestroy(void *data, Evas_Object *obj, void *item)
+{
+ delete (ItemCallback *) data;
+}
+
+void Menu::onDismissed(Evas_Object *obj, void *eventInfo)
+{
+ delete this;
+}
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "Ui/Naviframe.h"
+#include "Ui/NaviframePage.h"
+#include "Ui/View.h"
+#include "Utils/Callback.h"
+
+using namespace Ui;
+
+Naviframe::Naviframe()
+ : Navigator(StackNavigator)
+{
+}
+
+View *Naviframe::getCurrentView() const
+{
+ Elm_Object_Item *item = elm_naviframe_top_item_get(getEvasObject());
+ if (!item) {
+ return nullptr;
+ }
+
+ return static_cast<View*>(elm_object_item_data_get(item));
+}
+
+Evas_Object *Naviframe::onCreate(Evas_Object *parent)
+{
+ Evas_Object *naviframe = elm_naviframe_add(parent);
+ elm_naviframe_prev_btn_auto_pushed_set(naviframe, EINA_TRUE);
+
+ return naviframe;
+}
+
+NavigatorPage *Naviframe::attachView(View *view)
+{
+ Elm_Object_Item *naviItem = elm_naviframe_item_push(getEvasObject(), nullptr,
+ nullptr, nullptr, view->getEvasObject(), nullptr);
+ elm_object_item_data_set(naviItem, view);
+ elm_naviframe_item_pop_cb_set(naviItem, makeCallback(&Naviframe::onItemPop), this);
+ return new NaviframePage(naviItem);
+}
+
+void Naviframe::navigateToView(View *view)
+{
+ if (view != getCurrentView()) {
+ NaviframePage *page = static_cast<NaviframePage*>(view->getPage());
+ elm_naviframe_item_pop_to(page->m_NaviItem);
+ }
+}
+
+Eina_Bool Naviframe::onItemPop(Elm_Object_Item *item)
+{
+ evas_object_smart_callback_add(getEvasObject(), "transition,finished",
+ makeCallback(&Naviframe::onTransition), this);
+
+ View *view = static_cast<View*>(elm_object_item_data_get(item));
+ notifyNavigation(view, false);
+ return EINA_TRUE;
+}
+
+void Naviframe::onTransition(Evas_Object *obj, void *eventInfo)
+{
+ notifyNavigation(getCurrentView(), true);
+
+ evas_object_smart_callback_del(getEvasObject(), "transition,finished",
+ makeCallback(&Naviframe::onTransition));
+}
+
+bool Naviframe::onBackPressed()
+{
+ if (!Navigator::onBackPressed()) {
+ return false;
+ }
+
+ if (elm_naviframe_top_item_get(getEvasObject())
+ != elm_naviframe_bottom_item_get(getEvasObject())) {
+ elm_naviframe_item_pop(getEvasObject());
+ return false;
+ }
+
+ return true;
+}
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "Ui/NaviframePage.h"
+using namespace Ui;
+
+NaviframePage::NaviframePage(Elm_Object_Item *naviItem)
+ : m_NaviItem(naviItem)
+{
+}
+
+NaviframePage::~NaviframePage()
+{
+ elm_object_item_part_content_unset(m_NaviItem, "elm.swallow.content");
+ Evas_Object *navi = elm_object_item_widget_get(m_NaviItem);
+ if (m_NaviItem == elm_naviframe_top_item_get(navi)) {
+ elm_naviframe_item_pop(navi);
+ } else {
+ elm_object_item_del(m_NaviItem);
+ }
+}
+
+void NaviframePage::setTitle(const char *title)
+{
+ elm_object_item_translatable_part_text_set(m_NaviItem, "elm.text.title", title);
+ elm_naviframe_item_title_enabled_set(m_NaviItem, title != nullptr, EINA_TRUE);
+}
+
+void NaviframePage::setStyle(const char *style)
+{
+ elm_naviframe_item_style_set(m_NaviItem, style);
+}
+
+void NaviframePage::setContent(const char *part, Evas_Object *content)
+{
+ elm_object_item_part_content_set(m_NaviItem, part, content);
+}
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "Ui/Navigator.h"
+
+using namespace Ui;
+
+Navigator::Navigator(NavigatorType type)
+ : m_Type(type)
+{
+}
+
+void Navigator::navigateTo(View *view)
+{
+ if (!view || view == getCurrentView()) {
+ return;
+ }
+
+ notifyNavigation(getCurrentView(), false);
+
+ if (view->getNavigator(m_Type) != this) {
+ Navigator *stackNavi = m_StackNavi;
+ Navigator *tabNavi = m_TabNavi;
+ if (m_Type == StackNavigator) {
+ stackNavi = this;
+ } else {
+ tabNavi = this;
+ }
+
+ view->create(getEvasObject());
+ view->onViewAttached(stackNavi, tabNavi);
+ view->onPageAttached(attachView(view));
+ }
+
+ navigateToView(view);
+ notifyNavigation(view, true);
+}
+
+void Navigator::notifyNavigation(View *view, bool isCurrentView)
+{
+ if (view) {
+ view->onNavigation(isCurrentView);
+ }
+}
+
+void Navigator::onNavigation(bool isCurrentView)
+{
+ notifyNavigation(getCurrentView(), isCurrentView);
+}
+
+bool Navigator::onBackPressed()
+{
+ View *view = getCurrentView();
+ return view ? view->onBackPressed() : true;
+}
+
+void Navigator::onMenuPressed()
+{
+ View *view = getCurrentView();
+ if (view) {
+ view->onMenuPressed();
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "Ui/Popup.h"
+#include "Ui/Window.h"
+#include "Utils/Callback.h"
+
+#include <efl_extension.h>
+
+#define PART_POPUP_TITLE "title,text"
+
+using namespace Ui;
+
+namespace
+{
+ const char *buttonParts[POPUP_BUTTON_MAX_COUNT] = { "button1", "button2", "button3" };
+}
+
+Popup::Popup()
+ : m_ButtonCount(0)
+{
+}
+
+Popup *Popup::create(Evas_Object *parent, const char *title,
+ const char *text, const char *button_text)
+{
+ Popup *popup = new Popup();
+ popup->create(parent);
+ popup->setTitle(title);
+ popup->setText(text);
+ popup->addButton(button_text);
+ return popup;
+}
+
+void Popup::setTitle(const char *title)
+{
+ elm_object_translatable_part_text_set(getEvasObject(), PART_POPUP_TITLE, title);
+}
+
+void Popup::setText(const char *text)
+{
+ elm_object_translatable_text_set(getEvasObject(), text);
+}
+
+void Popup::setContent(Evas_Object *content)
+{
+ elm_object_part_content_set(getEvasObject(), "elm.swallow.content", content);
+}
+
+Evas_Object *Popup::addButton(const char *text, ButtonCallback callback)
+{
+ if (m_ButtonCount >= POPUP_BUTTON_MAX_COUNT) {
+ return nullptr;
+ }
+
+ Evas_Object *button = elm_button_add(getEvasObject());
+ elm_object_style_set(button, "bottom");
+ elm_object_translatable_text_set(button, text);
+ elm_object_part_content_set(getEvasObject(), buttonParts[m_ButtonCount], button);
+
+ m_ButtonCbs[m_ButtonCount] = std::move(callback);
+ evas_object_smart_data_set(button, &m_ButtonCbs[m_ButtonCount]);
+ evas_object_smart_callback_add(button, "clicked",
+ makeCallback(&Popup::onButtonPressed), this);
+
+ ++m_ButtonCount;
+ return button;
+}
+
+void Popup::setBackCallback(BackCallback callback)
+{
+ m_OnBack = std::move(callback);
+}
+
+Evas_Object *Popup::onCreate(Evas_Object *parent)
+{
+ Window *window = getWindow(parent);
+ if (window) {
+ parent = window->getBaseLayout();
+ }
+
+ Evas_Object *popup = elm_popup_add(parent);
+ elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
+ eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK,
+ makeCallback(&Popup::onBackPressed), this);
+ evas_object_show(popup);
+
+ return popup;
+}
+
+void Popup::onButtonPressed(Evas_Object *obj, void *eventInfo)
+{
+ ButtonCallback &callback = *(ButtonCallback *) evas_object_smart_data_get(obj);
+ if (!callback || callback()) {
+ delete this;
+ }
+}
+
+void Popup::onBackPressed(Evas_Object *obj, void *eventInfo)
+{
+ if (!m_OnBack || m_OnBack()) {
+ delete this;
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+
+#include "Ui/ProgressController.h"
+#include "Ui/ProgressPopup.h"
+#include "Utils/Logger.h"
+
+using namespace Ui;
+
+ProgressController::ProgressController(Evas_Object *parent, const char *title, int maxValue)
+ : m_IsCanceled(false), m_ProgressPopup(nullptr), m_Thread(nullptr)
+{
+ createProgressPopup(parent, title, maxValue);
+}
+
+ProgressController::~ProgressController()
+{
+ delete m_ProgressPopup;
+}
+
+void ProgressController::run()
+{
+ m_Thread = ecore_thread_feedback_run(onStart, onNotify, onFinish, onCanceled, this, EINA_FALSE);
+}
+
+void ProgressController::setFinishCallback(FinishCallback callback)
+{
+ m_OnFinish = std::move(callback);
+}
+
+bool ProgressController::onCancel()
+{
+ return true;
+}
+
+void ProgressController::cancel()
+{
+ m_IsCanceled = true;
+}
+
+bool ProgressController::onProgress(size_t value)
+{
+ ecore_thread_feedback(m_Thread, (void *)value);
+
+ return !m_IsCanceled;
+}
+
+void ProgressController::createProgressPopup(Evas_Object *parent, const char *title, int maxValue)
+{
+ m_ProgressPopup = new Ui::ProgressPopup(maxValue);
+ RETM_IF_ERR(!m_ProgressPopup, "m_ProgressPopup is NULL");
+
+ m_ProgressPopup->create(parent);
+ m_ProgressPopup->setTitle(title);
+
+ auto cancelFunction = [this] {
+ if (onCancel()) {
+ cancel();
+ }
+ return false;
+ };
+ m_ProgressPopup->addButton("IDS_PB_BUTTON_CANCEL", cancelFunction);
+ m_ProgressPopup->setBackCallback(cancelFunction);
+
+ elm_popup_orient_set(m_ProgressPopup->getEvasObject(), ELM_POPUP_ORIENT_BOTTOM);
+}
+
+void ProgressController::onStart(void *data, Ecore_Thread *thread)
+{
+ RETM_IF_ERR(!data, "invalid data");
+ ProgressController *controller = (ProgressController *)data;
+ controller->onStart(thread);
+}
+
+void ProgressController::onNotify(void *data, Ecore_Thread *thread, void *msgData)
+{
+ RETM_IF_ERR(!data || !msgData, "invalid data");
+ ProgressController *controller = (ProgressController *)data;
+
+ controller->m_ProgressPopup->setProgress((size_t)msgData);
+}
+
+void ProgressController::onFinish(void *data, Ecore_Thread *thread)
+{
+ RETM_IF_ERR(!data, "invalid data");
+ ProgressController *controller = (ProgressController *)data;
+ controller->m_OnFinish(*controller);
+
+ delete controller;
+}
+
+void ProgressController::onCanceled(void *data, Ecore_Thread *thread)
+{
+ RETM_IF_ERR(!data, "invalid data");
+ ProgressController *controller = (ProgressController *)data;
+ controller->onCanceled();
+
+ delete controller;
+}
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "App/Path.h"
+#include "Ui/ProgressPopup.h"
+#include "Utils/Logger.h"
+
+#include "AppsCommonProgressbarLayout.h"
+
+#define BUFFER_SIZE 64
+
+#define ZERO_PROGRESS "0%"
+
+using namespace Ui;
+
+namespace
+{
+ const std::string layoutFilePath = App::getResourcePath(APPS_COMMON_PROGRESSBAR_LAYOUT_EDJ);
+}
+
+ProgressPopup::ProgressPopup(size_t maxValue)
+ : m_MaxValue(maxValue), m_Progressbar(nullptr)
+{
+}
+
+void ProgressPopup::setProgress(size_t value)
+{
+ RETM_IF(value > m_MaxValue, "value is bigger than max value");
+ double progressValue = (double)value / m_MaxValue;
+
+ char progress[BUFFER_SIZE] = { 0, };
+ snprintf(progress, sizeof(progress), "%d%%", (int)(100.0 * progressValue));
+
+ char total[BUFFER_SIZE] = { 0, };
+ snprintf(total, sizeof(total), "%zu/%zu", value, m_MaxValue);
+
+ elm_progressbar_value_set(m_Progressbar, progressValue);
+ elm_object_part_text_set(m_Progressbar, "elm.text.bottom.left", progress);
+ elm_object_part_text_set(m_Progressbar, "elm.text.bottom.right", total);
+}
+
+Evas_Object *ProgressPopup::onCreate(Evas_Object *parent)
+{
+ Evas_Object *popup = Popup::onCreate(parent);
+
+ Evas_Object *layout = elm_layout_add(popup);
+ elm_layout_file_set(layout, layoutFilePath.c_str(), GROUP_PROGRESSBAR_LAYOUT);
+
+ m_Progressbar = elm_progressbar_add(layout);
+ elm_progressbar_pulse(m_Progressbar, EINA_TRUE);
+
+ char total[BUFFER_SIZE] = { 0, };
+ snprintf(total, sizeof(total), "%d/%zu", 0, m_MaxValue);
+ elm_object_part_text_set(m_Progressbar, "elm.text.bottom.left", ZERO_PROGRESS);
+ elm_object_part_text_set(m_Progressbar, "elm.text.bottom.right", total);
+
+ elm_object_part_content_set(layout, PART_PROGRESSBAR, m_Progressbar);
+ elm_object_content_set(popup, layout);
+
+ return popup;
+}
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "Ui/Scale.h"
+
+#include <Elementary.h>
+
+int Ui::getScaledValue(int value)
+{
+ static double factor = elm_config_scale_get() / elm_app_base_scale_get();
+ return value * factor;
+}
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "Ui/TabPage.h"
+#include "Utils/Logger.h"
+
+#define BUFFER_SIZE 64
+
+using namespace Ui;
+
+TabPage::TabPage(size_t index, Elm_Object_Item *tabItem)
+ : m_Index(index), m_TabItem(tabItem), m_Sizer(nullptr), m_Page(nullptr)
+{
+}
+
+TabPage::~TabPage()
+{
+ elm_object_part_content_unset(m_Page, "elm.swallow.content");
+ elm_object_item_del(m_TabItem);
+}
+
+Evas_Object *TabPage::onCreate(Evas_Object *parent)
+{
+ Evas_Object *layout = elm_layout_add(parent);
+ elm_layout_theme_set(layout, "layout", "application", "default");
+
+ m_Sizer = evas_object_rectangle_add(evas_object_evas_get(layout));
+ evas_object_color_set(m_Sizer, 0, 0, 0, 0);
+ elm_object_part_content_set(layout, "elm.swallow.bg", m_Sizer);
+
+ m_Page = elm_layout_add(parent);
+ elm_layout_theme_set(m_Page, "naviframe", "item", "basic/default");
+ elm_layout_signal_emit(m_Page, "elm,state,title,hide", "elm");
+ elm_layout_signal_emit(m_Page, "elm,state,toolbar,hide", "elm");
+ elm_object_part_content_set(layout, "elm.swallow.content", m_Page);
+
+ return layout;
+}
+
+void TabPage::setTitle(const char *title)
+{
+ elm_object_item_translatable_text_set(m_TabItem, title);
+}
+
+void TabPage::setStyle(const char *style)
+{
+ char buffer[BUFFER_SIZE];
+ snprintf(buffer, sizeof(buffer), "%s/default", style);
+ elm_layout_theme_set(m_Page, "naviframe", "item", buffer);
+}
+
+void TabPage::setContent(const char *part, Evas_Object *content)
+{
+ char buffer[BUFFER_SIZE];
+ snprintf(buffer, sizeof(buffer), "elm,state,%s,%s", part, content ? "show" : "hide");
+ elm_layout_signal_emit(m_Page, buffer, "elm");
+ elm_object_part_content_set(m_Page, part, content);
+}
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "Ui/TabView.h"
+#include "Ui/TabPage.h"
+#include "Utils/Callback.h"
+
+using namespace Ui;
+
+TabView::TabView()
+ : Navigator(TabNavigator), m_Tabbar(nullptr), m_Scroller(nullptr), m_Box(nullptr),
+ m_Width(0), m_Height(0), m_IsNavigating(false), m_CurrentPage(0)
+{
+}
+
+View *TabView::getCurrentView() const
+{
+ return m_CurrentPage < m_Views.size() ? m_Views[m_CurrentPage] : nullptr;
+}
+
+Evas_Object *TabView::onCreate(Evas_Object *parent)
+{
+ m_Scroller = elm_scroller_add(parent);
+ elm_scroller_page_relative_set(m_Scroller, 1.0, 0.0);
+ elm_scroller_page_scroll_limit_set(m_Scroller, 1, 0);
+ elm_scroller_loop_set(m_Scroller, EINA_FALSE, EINA_FALSE);
+ elm_scroller_policy_set(m_Scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
+ elm_object_scroll_lock_y_set(m_Scroller, EINA_TRUE);
+
+ evas_object_event_callback_add(m_Scroller, EVAS_CALLBACK_RESIZE,
+ makeCallback(&TabView::onResize), this);
+ evas_object_smart_callback_add(m_Scroller, "scroll,page,changed",
+ makeCallback(&TabView::onPageChanged), this);
+
+ m_Box = elm_box_add(m_Scroller);
+ elm_box_horizontal_set(m_Box, EINA_TRUE);
+ elm_object_content_set(m_Scroller, m_Box);
+
+ return m_Scroller;
+}
+
+void TabView::onPageAttached()
+{
+ m_Tabbar = elm_toolbar_add(getEvasObject());
+ elm_toolbar_shrink_mode_set(m_Tabbar, ELM_TOOLBAR_SHRINK_EXPAND);
+ elm_toolbar_select_mode_set(m_Tabbar, ELM_OBJECT_SELECT_MODE_ALWAYS);
+ elm_toolbar_transverse_expanded_set(m_Tabbar, EINA_TRUE);
+ evas_object_smart_data_set(m_Tabbar, this);
+ evas_object_smart_callback_add(m_Tabbar, "selected",
+ makeCallback(&TabView::onTabSelect), this);
+
+ getPage()->setStyle("tabbar/notitle");
+ getPage()->setContent("tabbar", m_Tabbar);
+}
+
+NavigatorPage *TabView::attachView(View *view)
+{
+ Elm_Object_Item *item = elm_toolbar_item_append(m_Tabbar, nullptr, nullptr, nullptr, nullptr);
+ elm_object_item_data_set(item, view);
+ elm_object_item_del_cb_set(item, &TabView::onTabDestroy);
+ m_Views.push_back(view);
+
+ size_t index = m_Views.size() - 1;
+ TabPage *page = new TabPage(index, item);
+
+ Evas_Object *layout = page->create(getEvasObject());
+ page->setContent("elm.swallow.content", view->create(layout));
+ evas_object_size_hint_min_set(page->m_Sizer, m_Width, m_Height);
+ elm_box_pack_end(m_Box, layout);
+ evas_object_show(layout);
+
+ return page;
+}
+
+void TabView::navigateToView(View *view)
+{
+ m_IsNavigating = true;
+
+ TabPage *page = static_cast<TabPage *>(view->getPage());
+ elm_scroller_page_show(m_Scroller, page->m_Index, 0);
+ elm_toolbar_item_selected_set(page->m_TabItem, EINA_TRUE);
+ m_CurrentPage = page->m_Index;
+
+ m_IsNavigating = false;
+}
+
+void TabView::onTabDestroy(void *data, Evas_Object *obj, void *tabItem)
+{
+ TabView *tabView = (TabView *) evas_object_smart_data_get(obj);
+ TabPage *page = static_cast<TabPage *>(((View *) data)->getPage());
+
+ auto it = tabView->m_Views.begin() + page->m_Index;
+ it = tabView->m_Views.erase(it);
+
+ for (; it != tabView->m_Views.end(); ++it) {
+ page = static_cast<TabPage *>((*it)->getPage());
+ --page->m_Index;
+ }
+}
+
+void TabView::onTabSelect(Evas_Object *obj, void *tabItem)
+{
+ View *view = (View *) elm_object_item_data_get((Elm_Object_Item *) tabItem);
+ if (!m_IsNavigating) {
+ navigateTo(view);
+ }
+}
+
+void TabView::onPageChanged(Evas_Object *obj, void *eventInfo)
+{
+ int index = 0;
+ elm_scroller_current_page_get(m_Scroller, &index, nullptr);
+ if (!m_IsNavigating) {
+ navigateTo(m_Views[index]);
+ }
+}
+
+void TabView::onResize(Evas *e, Evas_Object *obj, void *eventInfo)
+{
+ evas_object_geometry_get(obj, nullptr, nullptr, &m_Width, &m_Height);
+
+ for (auto &&view : m_Views) {
+ TabPage *page = static_cast<TabPage *>(view->getPage());
+ evas_object_size_hint_min_set(page->m_Sizer, m_Width, m_Height);
+ }
+
+ elm_scroller_page_size_set(m_Scroller, m_Width, m_Height);
+ elm_scroller_page_show(m_Scroller, m_CurrentPage, 0);
+}
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "Ui/Thumbnail.h"
+#include "Ui/Scale.h"
+
+#include "App/Path.h"
+#include "AppsCommonThumbnail.h"
+
+using namespace Ui;
+
+namespace
+{
+ const struct
+ {
+ const char *groupMask;
+ const char *groupDefault;
+ } params[] = {
+ { GROUP_THUMBNAIL_SMALL, GROUP_THUMBNAIL_DEFAULT_SMALL },
+ { GROUP_THUMBNAIL_MEDIUM, GROUP_THUMBNAIL_DEFAULT_MEDIUM },
+ { GROUP_THUMBNAIL_LARGE, GROUP_THUMBNAIL_DEFAULT_LARGE }
+ };
+
+ const std::string layoutPath = App::getResourcePath(APPS_COMMON_THUMBNAIL_EDJ);
+}
+
+Thumbnail::Thumbnail(Size size)
+ : m_Size(size), m_Image(nullptr)
+{
+}
+
+Thumbnail *Thumbnail::create(Evas_Object *parent, Size size, const char *path)
+{
+ Thumbnail *thumbnail = new Thumbnail(size);
+ thumbnail->create(parent);
+ thumbnail->setImagePath(path);
+ return thumbnail;
+}
+
+Evas_Object *Thumbnail::getImage() const
+{
+ return m_Image;
+}
+
+void Thumbnail::setImagePath(const char *path)
+{
+ if (path && *path) {
+ elm_image_file_set(m_Image, path, nullptr);
+ } else {
+ elm_image_file_set(m_Image, layoutPath.c_str(), params[m_Size].groupDefault);
+ }
+}
+
+void Thumbnail::setSizeHint(bool isSet)
+{
+ static int sizes[] = {
+ getScaledValue(THUMBNAIL_SMALL_SIZE),
+ getScaledValue(THUMBNAIL_MEDIUM_SIZE),
+ getScaledValue(THUMBNAIL_LARGE_SIZE)
+ };
+
+ int size = 0;
+ if (isSet) {
+ size = sizes[m_Size];
+ }
+
+ evas_object_size_hint_min_set(m_Image, size, size);
+}
+
+Evas_Object *Thumbnail::onCreate(Evas_Object *parent)
+{
+ Evas_Object *layout = elm_layout_add(parent);
+ elm_layout_file_set(layout, layoutPath.c_str(), params[m_Size].groupMask);
+
+ m_Image = elm_image_add(layout);
+ elm_image_aspect_fixed_set(m_Image, EINA_TRUE);
+ elm_image_fill_outside_set(m_Image, EINA_TRUE);
+ elm_object_part_content_set(layout, "elm.swallow.content", m_Image);
+
+ return layout;
+}
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "Ui/View.h"
+
+using namespace Ui;
+
+View::View()
+ : m_StackNavi(nullptr), m_TabNavi(nullptr),
+ m_NaviPage(nullptr)
+{
+}
+
+View::~View()
+{
+ delete m_NaviPage;
+}
+
+Navigator *View::getNavigator(NavigatorType type) const
+{
+ return type == StackNavigator ? m_StackNavi : m_TabNavi;
+}
+
+NavigatorPage *View::getPage() const
+{
+ return m_NaviPage;
+}
+
+void View::onViewAttached(Navigator *stackNavi, Navigator *tabNavi)
+{
+ m_StackNavi = stackNavi;
+ m_TabNavi = tabNavi;
+}
+
+void View::onPageAttached(NavigatorPage *page)
+{
+ if (page != m_NaviPage) {
+ delete m_NaviPage;
+ m_NaviPage = page;
+ }
+
+ onPageAttached();
+}
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "Ui/Window.h"
+#include "Ui/View.h"
+#include "Utils/Callback.h"
+
+#include <efl_extension.h>
+
+using namespace Ui;
+
+Window::Window()
+ : m_Conform(nullptr), m_Layout(nullptr), m_MainView(nullptr)
+{
+}
+
+Evas_Object *Window::onCreate(Evas_Object *parent)
+{
+ Evas_Object *window = elm_win_add(nullptr, nullptr, ELM_WIN_BASIC);
+ elm_win_indicator_mode_set(window, ELM_WIN_INDICATOR_SHOW);
+ elm_win_conformant_set(window, EINA_TRUE);
+ evas_object_show(window);
+
+ Evas_Object *bg = elm_bg_add(window);
+ evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(window, bg);
+ evas_object_show(bg);
+
+ m_Conform = elm_conformant_add(window);
+ evas_object_size_hint_weight_set(m_Conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_win_resize_object_add(window, m_Conform);
+ evas_object_show(m_Conform);
+
+ m_Layout = elm_layout_add(m_Conform);
+ elm_layout_theme_set(m_Layout, "layout", "application", "default");
+ evas_object_size_hint_weight_set(m_Layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_object_content_set(m_Conform, m_Layout);
+ evas_object_show(m_Layout);
+
+ eext_object_event_callback_add(m_Layout, EEXT_CALLBACK_BACK,
+ makeCallback(&Window::onBackPressed), this);
+ eext_object_event_callback_add(m_Layout, EEXT_CALLBACK_MORE,
+ makeCallback(&Window::onMenuPressed), this);
+
+ return window;
+}
+
+Evas_Object *Window::getConformant() const
+{
+ return m_Conform;
+}
+
+Evas_Object *Window::getBaseLayout() const
+{
+ return m_Layout;
+}
+
+void Window::attachView(View *view)
+{
+ m_MainView = view;
+ elm_object_part_content_set(m_Layout, "elm.swallow.content", view->create(m_Layout));
+}
+
+void Window::onBackPressed(Evas_Object *obj, void *eventInfo)
+{
+ if (!m_MainView || m_MainView->onBackPressed()) {
+ elm_win_lower(getEvasObject());
+ }
+}
+
+void Window::onMenuPressed(Evas_Object *obj, void *eventInfo)
+{
+ if (m_MainView) {
+ m_MainView->onMenuPressed();
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "Utils/Tracer.h"
+#include <dlog.h>
+
+using namespace Utils;
+
+void subtractTime(const timespec &a, const timespec &b, timespec &res)
+{
+ static const size_t ratio(1000000000);
+
+ res.tv_sec = b.tv_sec - a.tv_sec;
+ res.tv_nsec = b.tv_nsec - a.tv_nsec;
+ if (res.tv_nsec < 0)
+ {
+ --res.tv_sec;
+ res.tv_nsec += ratio;
+ }
+}
+
+Tracer::Tracer(const char *tag, const char *file, const char *func, int line)
+ : m_Tag(tag), m_File(file), m_Func(func)
+{
+ dlog_print(DLOG_DEBUG, m_Tag, "%s: %s(%d) <<< called", m_File, m_Func, line);
+ clock_gettime(CLOCK_REALTIME, &m_startTime);
+}
+
+Tracer::~Tracer()
+{
+ timespec endTime;
+ clock_gettime(CLOCK_REALTIME, &endTime);
+
+ timespec res;
+ subtractTime(m_startTime, endTime, res);
+
+ dlog_print(DLOG_DEBUG, m_Tag, "%s: %s >>> returned in %d.%03d seconds",
+ m_File, m_Func, res.tv_sec, res.tv_nsec / 1000000);
+}
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "Utils/UniString.h"
+#include <cstring>
+#include <memory>
+
+using namespace Utils;
+
+UniString::UniString(const char *utf8Str)
+{
+ if (utf8Str) {
+ m_Utf8Str = utf8Str;
+ }
+ m_UniStr = fromUtf8(m_Utf8Str);
+}
+
+bool UniString::operator<(const UniString &that) const
+{
+ return i18n_ustring_compare_code_point_order(m_UniStr.c_str(), that.m_UniStr.c_str()) < 0;
+}
+
+bool UniString::operator>(const UniString &that) const
+{
+ return i18n_ustring_compare_code_point_order(m_UniStr.c_str(), that.m_UniStr.c_str()) > 0;
+}
+
+bool UniString::operator==(const UniString &that) const
+{
+ return i18n_ustring_compare_code_point_order(m_UniStr.c_str(), that.m_UniStr.c_str()) == 0;
+}
+
+bool UniString::operator!=(const UniString &that) const
+{
+ return i18n_ustring_compare_code_point_order(m_UniStr.c_str(), that.m_UniStr.c_str()) != 0;
+}
+
+bool UniString::operator<=(const UniString &that) const
+{
+ return i18n_ustring_compare_code_point_order(m_UniStr.c_str(), that.m_UniStr.c_str()) <= 0;
+}
+
+bool UniString::operator>=(const UniString &that) const
+{
+ return i18n_ustring_compare_code_point_order(m_UniStr.c_str(), that.m_UniStr.c_str()) >= 0;
+}
+
+const UniString::I18nString &UniString::getI18nStr() const
+{
+ return m_UniStr;
+}
+
+const std::string &UniString::getUtf8Str() const
+{
+ if (m_Utf8Str.empty() && !m_UniStr.empty()) {
+ m_Utf8Str = toUtf8(m_UniStr);
+ }
+
+ return m_Utf8Str;
+}
+
+std::string UniString::toUtf8(const I18nString &ustring)
+{
+ char fakeValue;
+ int length = 0;
+ i18n_error_code_e err = I18N_ERROR_NONE;
+ i18n_ustring_to_UTF8(&fakeValue, 1, &length, ustring.c_str(), -1, &err);
+
+ std::string retVal(length + 1, 0);
+ i18n_ustring_to_UTF8(&retVal[0], length + 1, &length, ustring.c_str(), -1, &err);
+
+ return retVal;
+}
+
+UniString::I18nString UniString::fromUtf8(const std::string &utf8Str)
+{
+ i18n_uchar fakeValue;
+ int length = 0;
+ i18n_error_code_e err = I18N_ERROR_NONE;
+ i18n_ustring_from_UTF8(&fakeValue, 1, &length, utf8Str.c_str(), -1, &err);
+
+ I18nString retVal(length + 1, 0);
+ i18n_ustring_from_UTF8(&retVal[0], length + 1, &length, utf8Str.c_str(), -1, &err);
+
+ return retVal;
+}
<?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.so.debug.695076302">
- <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecore.config.sbi.gcc45.so.debug.695076302" moduleId="org.eclipse.cdt.core.settings" name="Debug">
+ <cconfiguration id="org.tizen.nativecore.config.sbi.gcc45.so.debug.119020880">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecore.config.sbi.gcc45.so.debug.119020880" 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.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 artifactExtension="so" artifactName="common" buildArtefactType="org.tizen.nativecore.buildArtefactType.sharedLib" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.tizen.nativecore.buildArtefactType.sharedLib,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.so.debug.695076302" name="Debug" parent="org.tizen.nativecore.config.sbi.gcc45.so.debug">
- <folderInfo id="org.tizen.nativecore.config.sbi.gcc45.so.debug.695076302." name="/" resourcePath="">
- <toolChain id="org.tizen.nativecore.toolchain.sbi.gcc45.so.debug.467798205" name="Tizen Native Toolchain" superClass="org.tizen.nativecore.toolchain.sbi.gcc45.so.debug">
- <targetPlatform binaryParser="org.eclipse.cdt.core.ELF" id="org.tizen.nativeide.target.sbi.gnu.platform.base.1642482178" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
- <builder autoBuildTarget="all" buildPath="${workspace_loc:/lib-common}/Debug" enableAutoBuild="true" id="org.tizen.nativecore.target.sbi.gnu.builder.223279362" 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.1347387967" name="Archiver" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver"/>
- <tool command="arm-linux-gnueabi-g++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler.1317870244" name="C++ Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler">
- <option id="gnu.cpp.compiler.option.optimization.level.1070316954" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
- <option id="sbi.gnu.cpp.compiler.option.debugging.level.core.2111831012" name="Debug level" superClass="sbi.gnu.cpp.compiler.option.debugging.level.core" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/>
- <option defaultValue="true" id="sbi.gnu.cpp.compiler.option.misc.pic.core.1652130279" name="-fPIC option" superClass="sbi.gnu.cpp.compiler.option.misc.pic.core" valueType="boolean"/>
- <option id="sbi.gnu.cpp.compiler.option.232124903" name="Tizen-Target" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
+ <configuration artifactExtension="so" artifactName="common" buildArtefactType="org.tizen.nativecore.buildArtefactType.sharedLib" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.tizen.nativecore.buildArtefactType.sharedLib,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.so.debug.119020880" name="Debug" parent="org.tizen.nativecore.config.sbi.gcc45.so.debug">
+ <folderInfo id="org.tizen.nativecore.config.sbi.gcc45.so.debug.119020880." name="/" resourcePath="">
+ <toolChain id="org.tizen.nativecore.toolchain.sbi.gcc45.so.debug.2051485246" name="Tizen Native Toolchain" superClass="org.tizen.nativecore.toolchain.sbi.gcc45.so.debug">
+ <targetPlatform binaryParser="org.eclipse.cdt.core.ELF" id="org.tizen.nativeide.target.sbi.gnu.platform.base.589094415" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+ <builder autoBuildTarget="all" buildPath="${workspace_loc:/lib-apps-common}/Debug" enableAutoBuild="true" id="org.tizen.nativecore.target.sbi.gnu.builder.1048697282" 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.1819863057" name="Archiver" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver"/>
+ <tool command="arm-linux-gnueabi-g++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler.1237370598" name="C++ Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler">
+ <option id="gnu.cpp.compiler.option.optimization.level.1692620041" 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.124537019" name="Debug level" superClass="sbi.gnu.cpp.compiler.option.debugging.level.core" valueType="enumerated"/>
+ <option defaultValue="true" id="sbi.gnu.cpp.compiler.option.misc.pic.core.1293188600" name="-fPIC option" superClass="sbi.gnu.cpp.compiler.option.misc.pic.core" value="true" valueType="boolean"/>
+ <option id="sbi.gnu.cpp.compiler.option.883965797" name="Tizen-Target" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
<listOptionValue builtIn="false" value="mobile-2.4-device.core_gcc49.armel.core.sharedLib"/>
</option>
- <option id="sbi.gnu.cpp.compiler.option.frameworks_inc.core.571970858" 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/appfw""/>
- <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/attach-panel""/>
- <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/calendar-service2""/>
- <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/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-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/ecore-x-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/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/ewebkit2-0""/>
- <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/geofence""/>
- <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/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/minicontrol""/>
- <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/phonenumber-utils""/>
- <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/sensor""/>
- <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/shortcut""/>
- <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/web""/>
- <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/wifi-direct""/>
- <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.447324550" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.cpp.compiler.option.frameworks_cflags.core" valueType="stringList">
+ <option id="sbi.gnu.cpp.compiler.option.frameworks_inc.core.1221919882" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.cpp.compiler.option.frameworks_inc.core" valueType="includePath"/>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks_cflags.core.1868946826" 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="--sysroot="${SBI_SYSROOT}""/>
<listOptionValue builtIn="false" value="-mthumb"/>
<listOptionValue builtIn="false" value="-fvisibility=hidden"/>
</option>
- <option id="gnu.cpp.compiler.option.include.paths.1001928294" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
+ <option id="gnu.cpp.compiler.option.include.paths.769492000" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/inc}""/>
<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/appfw""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/attach-panel""/>
<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/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/wifi-direct""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/dbus-1.0/include""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/glib-2.0/include""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/lib-apps-common/inc}""/>
<listOptionValue builtIn="false" value=""${workspace_loc:/lib-common/res/common/edje}""/>
</option>
- <option id="sbi.gnu.cpp.compiler.option.frameworks.core.1817117405" name="Tizen-Frameworks" superClass="sbi.gnu.cpp.compiler.option.frameworks.core" valueType="userObjs">
+ <option id="sbi.gnu.cpp.compiler.option.frameworks.core.1624823287" name="Tizen-Frameworks" superClass="sbi.gnu.cpp.compiler.option.frameworks.core" valueType="userObjs">
<listOptionValue builtIn="false" value="Native_API"/>
</option>
- <option id="gnu.cpp.compiler.option.preprocessor.def.1738564931" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" valueType="definedSymbols">
- <listOptionValue builtIn="false" value="_DEBUG"/>
- </option>
- <option id="gnu.cpp.compiler.option.dialect.std.1805867285" name="Language standard" superClass="gnu.cpp.compiler.option.dialect.std" value="gnu.cpp.compiler.dialect.default" valueType="enumerated"/>
- <option id="gnu.cpp.compiler.option.dialect.flags.1298753647" name="Other dialect flags" superClass="gnu.cpp.compiler.option.dialect.flags" value="-std=c++11" valueType="string"/>
- <option id="gnu.cpp.compiler.option.other.other.546357732" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" value="-c -fmessage-length=0 -Wno-unused-function" valueType="string"/>
- <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.857817635" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+ <option id="gnu.cpp.compiler.option.dialect.std.1155082077" name="Language standard" superClass="gnu.cpp.compiler.option.dialect.std" value="gnu.cpp.compiler.dialect.default" valueType="enumerated"/>
+ <option id="gnu.cpp.compiler.option.dialect.flags.1950104097" name="Other dialect flags" superClass="gnu.cpp.compiler.option.dialect.flags" value="-std=c++11" valueType="string"/>
+ <option id="gnu.cpp.compiler.option.other.other.1399230646" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" value="-c -fmessage-length=0 -Wno-unused-function" valueType="string"/>
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1940484793" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
</tool>
- <tool command="arm-linux-gnueabi-gcc" id="org.tizen.nativecore.tool.sbi.gnu.c.compiler.1047378174" 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.1323309447" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" valueType="enumerated"/>
- <option id="sbi.gnu.c.compiler.option.debugging.level.core.929226309" name="Debug level" superClass="sbi.gnu.c.compiler.option.debugging.level.core" value="gnu.c.debugging.level.max" valueType="enumerated"/>
- <option defaultValue="true" id="sbi.gnu.c.compiler.option.misc.pic.core.1548854511" name="-fPIC option" superClass="sbi.gnu.c.compiler.option.misc.pic.core" valueType="boolean"/>
- <option id="sbi.gnu.c.compiler.option.1987452490" name="Tizen-Target" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
+ <tool command="arm-linux-gnueabi-gcc" id="org.tizen.nativecore.tool.sbi.gnu.c.compiler.949181195" 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.823571777" 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.1300888938" name="Debug level" superClass="sbi.gnu.c.compiler.option.debugging.level.core" valueType="enumerated"/>
+ <option defaultValue="true" id="sbi.gnu.c.compiler.option.misc.pic.core.1090861130" name="-fPIC option" superClass="sbi.gnu.c.compiler.option.misc.pic.core" valueType="boolean"/>
+ <option id="sbi.gnu.c.compiler.option.1029738450" name="Tizen-Target" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
<listOptionValue builtIn="false" value="mobile-2.4-device.core_gcc49.armel.core.sharedLib"/>
</option>
- <option id="sbi.gnu.c.compiler.option.frameworks_inc.core.586005215" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.c.compiler.option.frameworks_inc.core" valueType="includePath">
+ <option id="sbi.gnu.c.compiler.option.frameworks_inc.core.553136690" 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/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/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.263163240" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.c.compiler.option.frameworks_cflags.core" valueType="stringList">
+ <option id="sbi.gnu.c.compiler.option.frameworks_cflags.core.273368038" 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="--sysroot="${SBI_SYSROOT}""/>
<listOptionValue builtIn="false" value="-mthumb"/>
<listOptionValue builtIn="false" value="-fvisibility=hidden"/>
</option>
- <option id="gnu.c.compiler.option.include.paths.1637369283" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
+ <option id="gnu.c.compiler.option.include.paths.1871191932" 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.1285632878" name="Tizen-Frameworks" superClass="sbi.gnu.c.compiler.option.frameworks.core" valueType="userObjs">
+ <option id="sbi.gnu.c.compiler.option.frameworks.core.1848864191" name="Tizen-Frameworks" superClass="sbi.gnu.c.compiler.option.frameworks.core" valueType="userObjs">
<listOptionValue builtIn="false" value="Native_API"/>
</option>
- <option id="gnu.c.compiler.option.preprocessor.def.symbols.499642517" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" valueType="definedSymbols">
- <listOptionValue builtIn="false" value="_DEBUG"/>
- </option>
- <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.68804720" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+ <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.925122232" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
</tool>
- <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.2075723903" name="C Linker" superClass="org.tizen.nativeide.tool.sbi.gnu.c.linker.base"/>
- <tool command="arm-linux-gnueabi-g++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.linker.694570481" name="C++ Linker" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.linker">
- <option defaultValue="true" id="sbi.gnu.cpp.linker.option.shared_flag.core.1333284292" name="Linker.Shared" superClass="sbi.gnu.cpp.linker.option.shared_flag.core" valueType="boolean"/>
- <option id="sbi.gnu.cpp.linker.option.frameworks_lflags.core.689785030" name="Tizen-Frameworks-Other-Lflags" superClass="sbi.gnu.cpp.linker.option.frameworks_lflags.core" valueType="stringList">
+ <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.2079975459" name="C Linker" superClass="org.tizen.nativeide.tool.sbi.gnu.c.linker.base"/>
+ <tool command="arm-linux-gnueabi-g++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.linker.279768150" name="C++ Linker" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.linker">
+ <option defaultValue="true" id="sbi.gnu.cpp.linker.option.shared_flag.core.1951653136" name="Linker.Shared" superClass="sbi.gnu.cpp.linker.option.shared_flag.core" valueType="boolean"/>
+ <option defaultValue="true" id="sbi.gnu.cpp.linker.option.noundefined.core.227464450" 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.694339525" 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="-lpthread "/>
<listOptionValue builtIn="false" value="-L"${SBI_SYSROOT}/usr/lib""/>
<listOptionValue builtIn="false" value="$(RS_LIBRARIES)"/>
</option>
- <option id="gnu.cpp.link.option.paths.2077226381" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
+ <option id="gnu.cpp.link.option.paths.1870774001" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/lib}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/lib-apps-common/${ConfigName}}""/>
+ </option>
+ <option id="gnu.cpp.link.option.libs.1937888726" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" valueType="libs">
+ <listOptionValue builtIn="false" srcPrefixMapping="" srcRootPath="" value="apps-common"/>
</option>
- <option id="gnu.cpp.link.option.flags.1195542035" name="Linker flags" superClass="gnu.cpp.link.option.flags" value="-fvisibility=default" valueType="string"/>
- <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.2067097503" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1668238422" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
</inputType>
</tool>
- <tool command="arm-linux-gnueabi-as" id="org.tizen.nativeapp.tool.sbi.gnu.assembler.base.931004966" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
- <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1367647067" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+ <tool command="arm-linux-gnueabi-as" id="org.tizen.nativeapp.tool.sbi.gnu.assembler.base.633178501" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.170319493" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
</tool>
- <tool id="org.tizen.nativecore.tool.fnmapgen.1934955929" name="C FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen"/>
- <tool id="org.tizen.nativecore.tool.fnmapgen.cpp.399439989" name="C++ FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen.cpp"/>
- <tool id="org.tizen.nativecore.tool.ast.1633694852" name="C Static Analyzer" superClass="org.tizen.nativecore.tool.ast"/>
- <tool id="org.tizen.nativecore.tool.ast.cpp.568571598" name="C++ Static Analyzer" superClass="org.tizen.nativecore.tool.ast.cpp"/>
- <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib.1942317324" name="Archive Generator" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib"/>
- <tool id="org.tizen.nativecore.tool.sbi.po.compiler.551082393" name="PO Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.po.compiler"/>
- <tool id="org.tizen.nativecore.tool.sbi.edc.compiler.2134749630" name="EDC Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.edc.compiler">
- <option command="-id " id="sbi.gnu.edc.compiler.option.misc.id.289390037" name="Image Path (-id)" superClass="sbi.gnu.edc.compiler.option.misc.id" valueType="stringList">
+ <tool id="org.tizen.nativecore.tool.fnmapgen.1693957368" name="C FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen"/>
+ <tool id="org.tizen.nativecore.tool.fnmapgen.cpp.614590376" name="C++ FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen.cpp"/>
+ <tool id="org.tizen.nativecore.tool.ast.1510343806" name="C Static Analyzer" superClass="org.tizen.nativecore.tool.ast"/>
+ <tool id="org.tizen.nativecore.tool.ast.cpp.658188695" name="C++ Static Analyzer" superClass="org.tizen.nativecore.tool.ast.cpp"/>
+ <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib.1643212896" name="Archive Generator" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib"/>
+ <tool id="org.tizen.nativecore.tool.sbi.po.compiler.800438767" name="PO Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.po.compiler"/>
+ <tool id="org.tizen.nativecore.tool.sbi.edc.compiler.910674138" name="EDC Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.edc.compiler">
+ <option id="sbi.gnu.edc.compiler.option.misc.id.89058249" name="Image Path (-id)" superClass="sbi.gnu.edc.compiler.option.misc.id" valueType="stringList">
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/res}""/>
</option>
- <option command="-sd " id="sbi.gnu.edc.compiler.option.misc.sd.1792823970" name="Sound Path (-sd)" superClass="sbi.gnu.edc.compiler.option.misc.sd"/>
- <option command="-fd " id="sbi.gnu.edc.compiler.option.misc.fd.576527165" name="Font Path (-fd)" superClass="sbi.gnu.edc.compiler.option.misc.fd"/>
</tool>
</toolChain>
</folderInfo>
</sourceEntries>
</configuration>
</storageModule>
- <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings">
+ <externalSettings containerId="lib-apps-common;" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
+ </storageModule>
</cconfiguration>
- <cconfiguration id="org.tizen.nativecore.config.sbi.gcc45.so.release.873999589">
- <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecore.config.sbi.gcc45.so.release.873999589" moduleId="org.eclipse.cdt.core.settings" name="Release">
+ <cconfiguration id="org.tizen.nativecore.config.sbi.gcc45.so.release.1726378043">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecore.config.sbi.gcc45.so.release.1726378043" 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.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 artifactExtension="so" artifactName="common" buildArtefactType="org.tizen.nativecore.buildArtefactType.sharedLib" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.tizen.nativecore.buildArtefactType.sharedLib,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.so.release.873999589" name="Release" parent="org.tizen.nativecore.config.sbi.gcc45.so.release">
- <folderInfo id="org.tizen.nativecore.config.sbi.gcc45.so.release.873999589." name="/" resourcePath="">
- <toolChain id="org.tizen.nativecore.toolchain.sbi.gcc45.so.release.721749050" name="Tizen Native Toolchain" superClass="org.tizen.nativecore.toolchain.sbi.gcc45.so.release">
- <targetPlatform binaryParser="org.eclipse.cdt.core.ELF" id="org.tizen.nativeide.target.sbi.gnu.platform.base.937055368" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
- <builder buildPath="${workspace_loc:/lib-common}/Release" id="org.tizen.nativecore.target.sbi.gnu.builder.546850785" 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.317445133" name="Archiver" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver"/>
- <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler.2025167515" name="C++ Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler">
- <option id="gnu.cpp.compiler.option.optimization.level.806251814" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
- <option id="sbi.gnu.cpp.compiler.option.debugging.level.core.1325981529" name="Debug level" superClass="sbi.gnu.cpp.compiler.option.debugging.level.core"/>
- <option defaultValue="true" id="sbi.gnu.cpp.compiler.option.misc.pic.core.397249650" name="-fPIC option" superClass="sbi.gnu.cpp.compiler.option.misc.pic.core" valueType="boolean"/>
- <option id="sbi.gnu.cpp.compiler.option.894924760" name="Tizen-Target" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
+ <configuration artifactExtension="so" artifactName="org.tizen.apps-common" buildArtefactType="org.tizen.nativecore.buildArtefactType.sharedLib" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.tizen.nativecore.buildArtefactType.sharedLib,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.so.release.1726378043" name="Release" parent="org.tizen.nativecore.config.sbi.gcc45.so.release">
+ <folderInfo id="org.tizen.nativecore.config.sbi.gcc45.so.release.1726378043." name="/" resourcePath="">
+ <toolChain id="org.tizen.nativecore.toolchain.sbi.gcc45.so.release.479052506" name="Tizen Native Toolchain" superClass="org.tizen.nativecore.toolchain.sbi.gcc45.so.release">
+ <targetPlatform binaryParser="org.eclipse.cdt.core.ELF" id="org.tizen.nativeide.target.sbi.gnu.platform.base.1018798881" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+ <builder buildPath="${workspace_loc:/lib-apps-common}/Release" id="org.tizen.nativecore.target.sbi.gnu.builder.149016381" 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.2093589563" name="Archiver" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver"/>
+ <tool command="clang++" id="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler.1354158935" name="C++ Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.compiler">
+ <option id="gnu.cpp.compiler.option.optimization.level.170350304" 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.596043701" name="Debug level" superClass="sbi.gnu.cpp.compiler.option.debugging.level.core" valueType="enumerated"/>
+ <option defaultValue="true" id="sbi.gnu.cpp.compiler.option.misc.pic.core.1024499531" name="-fPIC option" superClass="sbi.gnu.cpp.compiler.option.misc.pic.core" valueType="boolean"/>
+ <option id="sbi.gnu.cpp.compiler.option.1442464409" name="Tizen-Target" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
<listOptionValue builtIn="false" value="mobile-2.4-emulator.core_llvm36.i386.core.sharedLib"/>
</option>
- <option id="sbi.gnu.cpp.compiler.option.frameworks_inc.core.1952397329" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.cpp.compiler.option.frameworks_inc.core" valueType="includePath">
+ <option id="sbi.gnu.cpp.compiler.option.frameworks_inc.core.76672609" 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/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/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.260047136" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.cpp.compiler.option.frameworks_cflags.core" valueType="stringList">
+ <option id="sbi.gnu.cpp.compiler.option.frameworks_cflags.core.2001342911" 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="--sysroot="${SBI_SYSROOT}""/>
<listOptionValue builtIn="false" value="-fvisibility=hidden"/>
</option>
- <option id="gnu.cpp.compiler.option.include.paths.2121845948" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
+ <option id="gnu.cpp.compiler.option.include.paths.944805796" 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.1962691342" name="Tizen-Frameworks" superClass="sbi.gnu.cpp.compiler.option.frameworks.core" valueType="userObjs">
+ <option id="sbi.gnu.cpp.compiler.option.frameworks.core.348478814" 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.1467479112" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.925397267" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
</tool>
- <tool command="clang" id="org.tizen.nativecore.tool.sbi.gnu.c.compiler.1067601242" 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.1807378852" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" valueType="enumerated"/>
- <option id="sbi.gnu.c.compiler.option.debugging.level.core.83547491" name="Debug level" superClass="sbi.gnu.c.compiler.option.debugging.level.core"/>
- <option defaultValue="true" id="sbi.gnu.c.compiler.option.misc.pic.core.1199853147" name="-fPIC option" superClass="sbi.gnu.c.compiler.option.misc.pic.core" valueType="boolean"/>
- <option id="sbi.gnu.c.compiler.option.771653111" name="Tizen-Target" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
+ <tool command="clang" id="org.tizen.nativecore.tool.sbi.gnu.c.compiler.1143748085" 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.1085259207" 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.913386253" name="Debug level" superClass="sbi.gnu.c.compiler.option.debugging.level.core" valueType="enumerated"/>
+ <option defaultValue="true" id="sbi.gnu.c.compiler.option.misc.pic.core.985782675" name="-fPIC option" superClass="sbi.gnu.c.compiler.option.misc.pic.core" valueType="boolean"/>
+ <option id="sbi.gnu.c.compiler.option.830715601" name="Tizen-Target" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
<listOptionValue builtIn="false" value="mobile-2.4-emulator.core_llvm36.i386.core.sharedLib"/>
</option>
- <option id="sbi.gnu.c.compiler.option.frameworks_inc.core.66473485" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.c.compiler.option.frameworks_inc.core" valueType="includePath">
+ <option id="sbi.gnu.c.compiler.option.frameworks_inc.core.1107604994" 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/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/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.2054723299" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.c.compiler.option.frameworks_cflags.core" valueType="stringList">
+ <option id="sbi.gnu.c.compiler.option.frameworks_cflags.core.736334736" 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="--sysroot="${SBI_SYSROOT}""/>
<listOptionValue builtIn="false" value="-fvisibility=hidden"/>
</option>
- <option id="gnu.c.compiler.option.include.paths.1541438566" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
+ <option id="gnu.c.compiler.option.include.paths.1225514754" 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.676507669" name="Tizen-Frameworks" superClass="sbi.gnu.c.compiler.option.frameworks.core" valueType="userObjs">
+ <option id="sbi.gnu.c.compiler.option.frameworks.core.1948585633" 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.171950505" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
+ <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1470546473" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
</tool>
- <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.31509683" 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.1952638675" name="C++ Linker" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.linker">
- <option defaultValue="true" id="sbi.gnu.cpp.linker.option.shared_flag.core.792146774" name="Linker.Shared" superClass="sbi.gnu.cpp.linker.option.shared_flag.core" valueType="boolean"/>
- <option id="sbi.gnu.cpp.linker.option.frameworks_lflags.core.1452131585" name="Tizen-Frameworks-Other-Lflags" superClass="sbi.gnu.cpp.linker.option.frameworks_lflags.core" valueType="stringList">
+ <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.529786459" 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.1060663793" name="C++ Linker" superClass="org.tizen.nativecore.tool.sbi.gnu.cpp.linker">
+ <option defaultValue="true" id="sbi.gnu.cpp.linker.option.shared_flag.core.173109100" name="Linker.Shared" superClass="sbi.gnu.cpp.linker.option.shared_flag.core" valueType="boolean"/>
+ <option defaultValue="true" id="sbi.gnu.cpp.linker.option.noundefined.core.1619438138" 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.1242270603" 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="-lpthread "/>
<listOptionValue builtIn="false" value="-L"${SBI_SYSROOT}/usr/lib""/>
<listOptionValue builtIn="false" value="$(RS_LIBRARIES)"/>
</option>
- <option id="gnu.cpp.link.option.paths.1415008963" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
+ <option id="gnu.cpp.link.option.paths.86201883" 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.674575033" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.289818099" 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.321629108" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
- <inputType id="cdt.managedbuild.tool.gnu.assembler.input.884495380" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+ <tool command="i386-linux-gnueabi-as" id="org.tizen.nativeapp.tool.sbi.gnu.assembler.base.744980287" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.285718668" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
</tool>
- <tool id="org.tizen.nativecore.tool.fnmapgen.2100237367" name="C FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen"/>
- <tool id="org.tizen.nativecore.tool.fnmapgen.cpp.778291296" name="C++ FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen.cpp"/>
- <tool id="org.tizen.nativecore.tool.ast.929949104" name="C Static Analyzer" superClass="org.tizen.nativecore.tool.ast"/>
- <tool id="org.tizen.nativecore.tool.ast.cpp.1785871912" name="C++ Static Analyzer" superClass="org.tizen.nativecore.tool.ast.cpp"/>
- <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib.287417250" name="Archive Generator" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib"/>
- <tool id="org.tizen.nativecore.tool.sbi.po.compiler.762685848" name="PO Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.po.compiler"/>
- <tool id="org.tizen.nativecore.tool.sbi.edc.compiler.314944598" name="EDC Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.edc.compiler"/>
+ <tool id="org.tizen.nativecore.tool.fnmapgen.323033626" name="C FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen"/>
+ <tool id="org.tizen.nativecore.tool.fnmapgen.cpp.713374260" name="C++ FN-Map Generator" superClass="org.tizen.nativecore.tool.fnmapgen.cpp"/>
+ <tool id="org.tizen.nativecore.tool.ast.1933211459" name="C Static Analyzer" superClass="org.tizen.nativecore.tool.ast"/>
+ <tool id="org.tizen.nativecore.tool.ast.cpp.790933542" name="C++ Static Analyzer" superClass="org.tizen.nativecore.tool.ast.cpp"/>
+ <tool id="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib.190560800" name="Archive Generator" superClass="org.tizen.nativecore.tool.sbi.gnu.archiver.mergelib"/>
+ <tool id="org.tizen.nativecore.tool.sbi.po.compiler.1412563891" name="PO Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.po.compiler"/>
+ <tool id="org.tizen.nativecore.tool.sbi.edc.compiler.211510250" name="EDC Resource Compiler" superClass="org.tizen.nativecore.tool.sbi.edc.compiler"/>
</toolChain>
</folderInfo>
<sourceEntries>
</cconfiguration>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
- <project id="lib-common.org.tizen.nativecore.target.sbi.gcc45.so.642479293" name="Tizen Native Shared Library" projectType="org.tizen.nativecore.target.sbi.gcc45.so"/>
+ <project id="lib-apps-common.org.tizen.nativecore.target.sbi.gcc45.so.1096739394" name="Tizen Native Shared Library" projectType="org.tizen.nativecore.target.sbi.gcc45.so"/>
</storageModule>
<storageModule moduleId="scannerConfiguration">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
- <scannerConfigBuildInfo instanceId="org.tizen.nativecore.config.sbi.gcc45.so.debug.695076302">
+ <scannerConfigBuildInfo instanceId="org.tizen.nativecore.config.sbi.gcc45.so.release.1726378043">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
</scannerConfigBuildInfo>
- <scannerConfigBuildInfo instanceId="org.tizen.nativecore.config.sbi.gcc45.so.release.873999589">
+ <scannerConfigBuildInfo instanceId="org.tizen.nativecore.config.sbi.gcc45.so.debug.119020880">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
</scannerConfigBuildInfo>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
- <storageModule moduleId="com.samsung.tizen.nativeapp.projectInfo" version="1.0.0"/>
<storageModule moduleId="refreshScope" versionNumber="2">
<configuration configurationName="Debug">
- <resource resourceType="PROJECT" workspacePath="/lib-common"/>
+ <resource resourceType="PROJECT" workspacePath="/lib-apps-common"/>
</configuration>
<configuration configurationName="Release">
- <resource resourceType="PROJECT" workspacePath="/lib-common"/>
+ <resource resourceType="PROJECT" workspacePath="/lib-apps-common"/>
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
<name>lib-common</name>
<comment></comment>
<projects>
+ <project>lib-apps-common</project>
</projects>
<buildSpec>
<buildCommand>
- <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+ <name>org.tizen.nativecore.apichecker.apicheckerbuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
- <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
- <triggers>full,incremental,</triggers>
+ <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
- <name>org.tizen.nativecore.apichecker.core.builder</name>
+ <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+ <triggers>full,incremental,</triggers>
<arguments>
</arguments>
</buildCommand>
<nature>org.eclipse.cdt.core.ccnature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
- <nature>org.tizen.nativecore.apichecker.core.tizenCppNature</nature>
+ <nature>org.tizen.nativecore.apichecker.apicheckernature</nature>
</natures>
<filteredResources>
<filter>
- <id>1448271520682</id>
+ <id>0</id>
<name></name>
<type>26</type>
<matcher>
</matcher>
</filter>
<filter>
- <id>1448271520684</id>
+ <id>0</id>
<name></name>
<type>6</type>
<matcher>
</matcher>
</filter>
<filter>
- <id>1448271520687</id>
+ <id>0</id>
<name></name>
<type>22</type>
<matcher>
file(GLOB_RECURSE SOURCES src/*.cpp)
include_directories(
+ ${CMAKE_SOURCE_DIR}/lib-apps-common/inc
${CMAKE_CURRENT_SOURCE_DIR}/inc
${CMAKE_CURRENT_SOURCE_DIR}/res/common/edje
)
add_library(${PROJECT_NAME} SHARED ${SOURCES})
-target_link_libraries(${PROJECT_NAME} ${LIBRARIES})
+target_link_libraries(${PROJECT_NAME} ${LIBRARIES} apps-common)
install(TARGETS ${PROJECT_NAME} DESTINATION ${LIB_DIR})
+++ /dev/null
-/*
- * Copyright (c) 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 APP_APP_CONTROL_H
-#define APP_APP_CONTROL_H
-
-#include <app_control.h>
-
-namespace App
-{
- class EXPORT_API AppControl
- {
- public:
- /**
- * @brief Create empty app control wrapper. The wrapper doesn't contain any
- * value it can only be assigned to.
- */
- AppControl();
-
- /**
- * @brief Create app control request
- *
- * @see app_control_set_operation()
- * @see app_control_set_mime()
- * @see app_control_set_uri()
- */
- AppControl(const char *operation,
- const char *mime = nullptr,
- const char *uri = nullptr);
-
- AppControl(const AppControl&) = delete;
- AppControl(AppControl&&);
- ~AppControl();
-
- /**
- * @return Stored app control handle
- */
- app_control_h getHandle() const;
-
- /**
- * @see app_control_add_extra_data()
- */
- void addExtra(const char *key, const char *value);
-
- /**
- * @see app_control_add_extra_data_array()
- */
- void addExtra(const char *key, const char **array, int length);
-
- /**
- * @brief Launch app control request
- * @return App Control launch result
- *
- * @see app_control_set_launch_mode()
- * @see app_control_send_launch_request()
- */
- int launch(app_control_reply_cb replyCallback = nullptr, void *userData = nullptr,
- bool groupMode = true);
-
- /**
- * @see app_control_send_terminate_request()
- */
- void terminate();
-
- /**
- * @brief Prevent app control termination on destruction.
- */
- void detach();
-
- AppControl &operator=(const AppControl&) = delete;
- AppControl &operator=(AppControl&&);
-
- private:
- void reset();
-
- app_control_h m_AppControl;
- bool m_AutoTerminate;
- };
-}
-
-#endif /* APP_APP_CONTROL_H */
+++ /dev/null
-/*
- * Copyright (c) 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 APP_APP_CONTROL_REQUEST_H
-#define APP_APP_CONTROL_REQUEST_H
-
-#include "App/AppControl.h"
-#include <string>
-#include <vector>
-
-#define APP_CONTROL_OPERATION_SETTING_CALL "http://tizen.org/appcontrol/operation/setting/call"
-
-#define APP_CONTROL_MIME_CONTACT "application/vnd.tizen.contact"
-
-#define APP_CONTROL_SELECT_SINGLE "single"
-#define APP_CONTROL_SELECT_MULTIPLE "multiple"
-
-#define APP_CONTROL_RESULT_ID "id"
-#define APP_CONTROL_RESULT_PHONE "phone"
-#define APP_CONTROL_RESULT_EMAIL "email"
-#define APP_CONTROL_RESULT_VCARD "vcf"
-
-namespace App
-{
- /**
- * @brief Request contact creation operation
- * @param[in] number Phone number to save to the new contact
- * @return AppControl wrapper
- */
- AppControl EXPORT_API requestContactCreate(const char *number);
-
- /**
- * @brief Request contact view operation
- * @param[in] personId ID of person to view
- * @return AppControl wrapper
- */
- AppControl EXPORT_API requestContactDetails(int personId);
-
- /**
- * @brief Request contact edit operation
- * @param[in] personId ID of person to edit or 0 to launch pick first
- * @param[in] number Phone number to add to the edited contact
- * @return AppControl wrapper
- */
- AppControl EXPORT_API requestContactEdit(int personId, const char *number);
-
- /**
- * @brief Request contact pick operation
- * @param[in] selectionMode One of APP_CONTROL_SELECT_* values
- * @param[in] resultType One of APP_CONTROL_RESULT_* values
- * @return AppControl wrapper
- */
- AppControl EXPORT_API requestContactPick(const char *selectionMode, const char *resultType);
-
- /**
- * @brief Request telephony call
- * @param[in] number Number to call
- * @return AppControl wrapper
- */
- AppControl EXPORT_API requestTelephonyCall(const char *number);
-
- /**
- * @brief Request launch call settings
- * @return AppControl wrapper
- */
- AppControl EXPORT_API requestCallSettings();
-
- /**
- * @brief Request message composer
- * @param[in] scheme URI scheme (e.g. sms:, mmsto: or mailto:)
- * @param[in] to Message recipient
- * @param[in] subject Message subject
- * @param[in] text Message text
- * @return AppControl wrapper
- */
- AppControl EXPORT_API requestMessageComposer(const char *scheme, const char *to,
- const char *subject = nullptr, const char *text = nullptr);
-
- /**
- * @brief Request camera image capture
- * @return AppControl wrapper
- */
- AppControl EXPORT_API requestCameraImage();
-
- /**
- * @brief Request pick image from gallery
- * @return AppControl wrapper
- */
- AppControl EXPORT_API requestGalleryImage();
-
- /**
- * @brief Request share contact via other application
- * @param[in] personId Contact's person ID
- * @return AppControl wrapper
- */
- AppControl EXPORT_API requestShareContact(int personId);
-
- /**
- * @brief Request share "My Profile" via other application
- * @param[in] recordId "My Profile" record ID
- * @return AppControl wrapper
- */
- AppControl EXPORT_API requestShareMyProfile(int recordId);
-
- /**
- * @brief Get single first string from App Control array extra data.
- * @param[in] appControl App Control handle
- * @param[in] key Extra data array key
- * @return First string from array on success, otherwise empty string.
- */
- std::string EXPORT_API getSingleExtraData(app_control_h appControl, const char *key);
-
- /**
- * @brief Get vector of integer values from App Control array extra data.
- * @param[in] appControl App Control handle
- * @param[in] key Extra data array key
- * @return Vector of integer values on success, otherwise empty vector.
- */
- std::vector<int> EXPORT_API getIntExtraDataArray(app_control_h appControl, const char *key);
-}
-
-#endif /* APP_APP_CONTROL_REQUEST_H */
+++ /dev/null
-/*
- * Copyright (c) 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 APP_APPLICATION_H
-#define APP_APPLICATION_H
-
-#include <app.h>
-
-namespace App
-{
- /**
- * @brief Application lifecycle controller.
- */
- class EXPORT_API Application
- {
- public:
- /**
- * @brief Run application main loop.
- * @param[in] argc argc parameter received in main()
- * @param[in] argv argv parameter received in main()
- */
- int run(int argc, char **argv);
-
- protected:
- virtual ~Application() { }
-
- /**
- * @brief Called when application is created
- * @return true on success, otherwise false
- */
- virtual bool onCreate() { return true; }
-
- /**
- * @brief Called when application is terminated
- */
- virtual void onTerminate() { }
-
- /**
- * @brief Called when application is paused
- */
- virtual void onPause() { }
-
- /**
- * @brief Called when application is resumed
- */
- virtual void onResume() { }
-
- /**
- * @brief Called when application receives App Control request
- * @param request App Control request
- */
- virtual void onAppControl(app_control_h request) { }
- };
-}
-
-#endif /* APP_APPLICATION_H */
+++ /dev/null
-/*
- * Copyright (c) 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 APP_PATH_H
-#define APP_PATH_H
-
-#include <string>
-#include <tizen.h>
-
-namespace App
-{
- /**
- * @return Resource directory path
- */
- EXPORT_API const std::string &getResourceDir();
-
- /**
- * @return Localization files directory path
- */
- EXPORT_API const std::string &getLocaleDir();
-
- /**
- * @brief Get resource file path.
- * @param[in] relativePath File path relative to resource directory
- * @return Full file path
- */
- EXPORT_API std::string getResourcePath(const std::string &relativePath);
-}
-
-#endif /* APP_PATH_H */
+++ /dev/null
-/*
- * Copyright (c) 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 UI_BUTTON_H
-#define UI_BUTTON_H
-
-#include "Ui/Control.h"
-#include <functional>
-
-namespace Ui
-{
- /**
- * @brief Provides convenient press and longpress events handling.
- */
- class EXPORT_API Button : public Control
- {
- public:
- Button();
- virtual ~Button() override;
-
- /**
- * @brief Set press-event callback.
- */
- void setPressedCallback(std::function<void(Button &)> callback);
-
- /**
- * @brief Set longpress-event callback.
- * @details Callback should return true if the event was handled.
- * If callback returns false onPressed event will be delivered
- * as well when the button is released.
- */
- void setLongpressedCallback(std::function<bool(Button &)> callback);
-
- private:
- virtual Evas_Object *onCreate(Evas_Object *parent) override;
- virtual void onCreated() override;
-
- void onMouseDown(Evas *evas, Evas_Object *obj, void *eventInfo);
- void onMouseUp(Evas *evas, Evas_Object *obj, void *eventInfo);
- void onMouseOut(Evas *evas, Evas_Object *obj, void *eventInfo);
-
- void resetTimer();
- Eina_Bool onTimeout();
-
- Ecore_Timer *m_Timer;
- bool m_IsLongpressed;
-
- std::function<void(Button &)> m_OnPressed;
- std::function<bool(Button &)> m_OnLongpressed;
- };
-}
-
-#endif /* UI_BUTTON_H */
+++ /dev/null
-/*
- * Copyright (c) 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 UI_CONTROL_H
-#define UI_CONTROL_H
-
-#include <Elementary.h>
-#include <tizen.h>
-
-namespace Ui
-{
- class Window;
-
- /**
- * @brief Evas_Object wrapper.
- * @details Ties the lifetime of this object to the underlying Evas_Object.
- * @remark Should always be allocated with operator "new".
- */
- class EXPORT_API Control
- {
- public:
- Control();
- Control(const Control &that) = delete;
- Control(Control &&that) = delete;
- virtual ~Control();
-
- Control & operator=(const Control &that) = delete;
- Control & operator=(Control &&that) = delete;
-
- /**
- * @brief Create underlying Evas_Object by calling onCreate()
- * @param[in] parent Parent Evas_Object
- * @return Created Evas_Object on success, otherwise nullptr
- */
- Evas_Object *create(Evas_Object *parent);
-
- /**
- * @return Underlying Evas_Object.
- */
- Evas_Object *getEvasObject() const;
-
- /**
- * @return Main application window.
- */
- Window *getWindow() const;
-
- /**
- * @brief Get Control object from Evas_Object
- * @param[in] object Evas_Object that belongs to some Control
- * @return Control tied to Evas_Object
- */
- static Control *getControl(Evas_Object *object);
-
- /**
- * @brief Get main application window from any child object.
- */
- static Window *getWindow(Evas_Object *object);
-
- protected:
- /**
- * @brief Called after create() is called
- * @param[in] parent Parent Evas_Object
- * @return Created Evas_Object on success, otherwise nullptr
- */
- virtual Evas_Object *onCreate(Evas_Object *parent) = 0;
-
- /**
- * @brief Called after onCreate() has returned
- */
- virtual void onCreated() { }
-
- private:
- void setEvasObject(Evas_Object *object);
- Evas_Object *resetEvasObject();
- void destroyEvasObject();
-
- void onDestroy(Evas *e, Evas_Object *obj, void *event_info);
-
- Evas_Object *m_Object;
- };
-}
-
-#endif /* UI_CONTROL_H */
+++ /dev/null
-/*
- * Copyright (c) 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 UI_DATE_POPUP_H
-#define UI_DATE_POPUP_H
-
-#include "Ui/Popup.h"
-
-namespace Ui
-{
- /**
- * @brief Popup with date picker.
- */
- class EXPORT_API DatePopup : public Popup
- {
- public:
- /**
- * @brief Date input result callback.
- * @param[in] Inputed date
- */
- typedef std::function<void(const tm&)> ResultCallback;
-
- /**
- * @brief Create date popup.
- * @param[in] date Initial date value
- */
- DatePopup(tm date);
-
- /**
- * @brief Set date input result callback.
- * @param[in] callback Callback to be called when user confirmed inputed date
- */
- void setResultCallback(ResultCallback callback);
-
- private:
- virtual void onCreated() override;
- void onSetPressed();
-
- tm m_Date;
- ResultCallback m_OnResult;
- Evas_Object *m_DatePicker;
- };
-}
-
-#endif /* UI_DATE_POPUP_H */
+++ /dev/null
-/*
- * Copyright (c) 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 UI_EDITFIELD_H
-#define UI_EDITFIELD_H
-
-#include "Ui/Control.h"
-
-namespace Ui
-{
- /**
- * @brief Editfield layout with entry and "clear" button
- */
- class EXPORT_API Editfield : public Control
- {
- public:
- /**
- * @brief Allows method overload instead of shadowing
- */
- using Control::create;
-
- /**
- * @brief Create editfield with guide text.
- * @param[in] parent Editfield parent
- * @param[in] guideText Text to be displayed when entry is empty
- * @return Created editfield.
- */
- static Editfield *create(Evas_Object *parent, const char *guideText);
-
- /**
- * @brief Set entry guide text.
- * @param[in] guideText Text to be displayed when entry is empty
- */
- void setGuideText(const char *guideText);
-
- /**
- * @return Contained entry.
- */
- Evas_Object *getEntry();
-
- /**
- * @return Clear button.
- */
- Evas_Object *getClearButton();
-
- private:
- virtual Evas_Object *onCreate(Evas_Object *parent) override;
-
- static void onChanged(Evas_Object *layout, Evas_Object *entry, void *eventInfo);
- static void onFocused(Evas_Object *layout, Evas_Object *entry, void *eventInfo);
- static void onUnfocused(Evas_Object *layout, Evas_Object *entry, void *eventInfo);
- static void onClearPressed(Evas_Object *entry, Evas_Object *button, void *eventInfo);
- };
-}
-
-#endif /* UI_EDITFIELD_H */
+++ /dev/null
-/*
- * Copyright (c) 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 UI_GENLIST_H
-#define UI_GENLIST_H
-
-#include "Ui/Control.h"
-#include "Ui/GenlistIterator.h"
-
-namespace Ui
-{
- class GenlistGroupItem;
- class EXPORT_API Genlist : public Control
- {
- public:
- enum Position
- {
- Before,
- After
- };
-
- /**
- * @return Genlist first Item.
- */
- GenlistItem *getFirstItem() const;
-
- /**
- * @return Genlist last Item.
- */
- GenlistItem *getLastItem() const;
-
- /**
- * @return Genlist begin iterator.
- */
- GenlistIterator begin() const;
-
- /**
- * @return Genlist end iterator.
- */
- GenlistIterator end() const;
-
- /**
- * @brief Insert genlist Item at specified position.
- * @param[in] item Item to insert
- * @param[in] parent Parent group item
- * @param[in] sibling Sibling item
- * @param[in] position Insert before/after @a sibling
- * @remarks Inserting item BEFORE nullptr (@a sibling)
- * actually means that there is no items after it (i.e. item is appended).
- * Same goes for inserting AFTER nullptr (i.e. item is prepended).
- * This might seem like a counter-intuitive behavior but it supports
- * commonly used pattern.
- */
- void insert(GenlistItem *item,
- GenlistGroupItem *parent = nullptr,
- GenlistItem *sibling = nullptr,
- Position position = Before);
-
- /**
- * @brief Update specific parts of realized items
- * @param[in] parts The name of item parts
- * @param[in] type The type of item parts
- * @see elm_genlist_item_fields_update()
- */
- void update(const char *parts, Elm_Genlist_Item_Field_Type type);
-
- private:
- virtual Evas_Object *onCreate(Evas_Object *parent) override;
-
- static void onItemSelected(void *data, Evas_Object *obj, Elm_Object_Item *objectItem);
- static void onItemExpanded(void *data, Evas_Object *obj, Elm_Object_Item *objectItem);
- static void onItemContracted(void *data, Evas_Object *obj, Elm_Object_Item *objectItem);
- static void onItemRealized(void *data, Evas_Object *obj, Elm_Object_Item *objectItem);
- static void onItemUnrealized(void *data, Evas_Object *obj, Elm_Object_Item *objectItem);
- };
-}
-
-#endif /* UI_GENLIST_H */
+++ /dev/null
-/*
- * Copyright (c) 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 UI_GENLIST_CHECK_ITEM
-#define UI_GENLIST_CHECK_ITEM
-
-#include "Ui/GenlistItem.h"
-
-namespace Ui
-{
- /**
- * @brief Genlist check item
- */
- class EXPORT_API GenlistCheckItem : public Ui::GenlistItem
- {
- public:
- /**
- * @brief Item check callback.
- * @param[in] Whether item is checked
- */
- typedef std::function<void(bool)> CheckCallback;
-
- GenlistCheckItem();
-
- /**
- * @return Whether the item is checked.
- */
- bool isChecked() const;
-
- /**
- * @brief Set item check state.
- * @param[in] isChecked Whether item is checked
- */
- void setChecked(bool isChecked);
-
- /**
- * @brief Set item check callback.
- * @param[in] callback Callback to be called when item is checked/unchecked
- */
- void setCheckCallback(CheckCallback callback);
-
- protected:
- /**
- * @see GenlistItem::getContent()
- * @remark Use it in derived class to create check component
- */
- virtual Evas_Object *getContent(Evas_Object *parent, const char *part) override;
-
- /**
- * @see GenlistItem::onSelected()
- */
- virtual void onSelected() override;
-
- /**
- * @brief Called when item is checked or unchecked.
- * @param[in] isChecked Whether item is checked
- */
- virtual void onChecked(bool isChecked) { }
-
- private:
- void onChecked();
- void onCheckChanged(Evas_Object *check, void *eventInfo);
-
- std::string m_CheckPart;
- Eina_Bool m_IsChecked;
- CheckCallback m_OnChecked;
- };
-}
-
-#endif /* UI_GENLIST_CHECK_ITEM */
+++ /dev/null
-/*
- * Copyright (c) 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 UI_GENLIST_GROUP_ITEM_H
-#define UI_GENLIST_GROUP_ITEM_H
-
-#include "Ui/Genlist.h"
-#include "Ui/GenlistItem.h"
-#include "Ui/GenlistIterator.h"
-#include <vector>
-
-namespace Ui
-{
- class EXPORT_API GenlistGroupItem : virtual public GenlistItem
- {
- public:
- GenlistGroupItem();
- virtual ~GenlistGroupItem() override;
-
- /**
- * @return Group begin iterator.
- */
- GenlistIterator begin();
-
- /**
- * @return Group end iterator.
- */
- GenlistIterator end();
-
- /**
- * @return Whether the group has no items (i.e. GroupItem has no subitems).
- */
- bool empty() const;
-
- /**
- * @return Whether subitems are shown.
- */
- bool isExpanded() const;
-
- /**
- * @return Group item of the next group or nullptr if none.
- */
- GenlistGroupItem *getNextGroupItem() const;
-
- /**
- * @return Group item of the previous group or nullptr if none.
- */
- GenlistGroupItem *getPrevGroupItem() const;
-
- /**
- * @brief Insert sub item to the group.
- * @details If group item is not yet inserted itself, sub item is cached
- * and inserted into genlist when it's parent is inserted.
- * @see Genlist::insert()
- */
- void insertSubItem(GenlistItem *item,
- GenlistItem *sibling = nullptr,
- Genlist::Position position = Genlist::Before);
-
- protected:
- /**
- * @see GenlistItem::isGroupItem()
- */
- virtual bool isGroupItem() const override { return true; }
-
- /**
- * @see GenlistItem::getType()
- */
- virtual Elm_Genlist_Item_Type getType() const override { return ELM_GENLIST_ITEM_GROUP; }
-
- /**
- * @see GenlistItem::getItemClass()
- */
- virtual Elm_Genlist_Item_Class *getItemClass() const override;
-
- /**
- * @see GenlistItem::onInserted()
- */
- virtual void onInserted() override;
-
- /**
- * @see GenlistItem::onPop()
- */
- virtual void onPop() override;
-
- /**
- * @brief Called when tree item is expanded or contracted.
- */
- virtual void onExpanded(bool isExpanded);
-
- private:
- friend class Genlist;
- friend class GenlistItem;
-
- void insertSubItems();
- void popSubItems();
-
- void onSubItemInserted(GenlistItem *item);
- void onSubItemDestroy(GenlistItem *item);
-
- GenlistItem *m_FirstItem;
- GenlistItem *m_LastItem;
- std::vector<GenlistItem *> m_ItemsCache;
- };
-}
-
-#endif /* UI_GENLIST_GROUP_ITEM_H */
+++ /dev/null
-/*
- * Copyright (c) 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 UI_GENLIST_ITEM_H
-#define UI_GENLIST_ITEM_H
-
-#include <Elementary.h>
-#include <functional>
-#include <tizen.h>
-
-namespace Ui
-{
- class Genlist;
- class GenlistGroupItem;
-
- class EXPORT_API GenlistItem
- {
- public:
- /**
- * @brief Called when item is selected.
- */
- typedef std::function<void()> SelectCallback;
-
- GenlistItem();
- virtual ~GenlistItem();
-
- /**
- * @return Whether the item is realized.
- */
- bool isRealized() const;
-
- /**
- * @return Whether the item is a group item.
- */
- virtual bool isGroupItem() const { return false; }
-
- /**
- * @return Whether the item can receive focus.
- */
- virtual bool isFocusable() const { return false; }
-
- /**
- * @return Item type.
- */
- virtual Elm_Genlist_Item_Type getType() const { return ELM_GENLIST_ITEM_NONE; }
-
- /**
- * @return Genlist object item.
- */
- Elm_Object_Item *getObjectItem() const;
-
- /**
- * @return Parent genlist.
- */
- Genlist *getParent() const;
-
- /**
- * @return Parent genlist group item or nullptr if none.
- */
- GenlistGroupItem *getParentItem() const;
-
- /**
- * @return Next item in genlist or nullptr if none.
- */
- GenlistItem *getNextItem() const;
-
- /**
- * @return Previous item in genlist or nullptr if none.
- */
- GenlistItem *getPrevItem() const;
-
- /**
- * @brief Set item selection callback.
- * @param[in] callback Callback to be called when item is selected
- */
- void setSelectCallback(SelectCallback callback);
-
- /**
- * @brief Scroll genlist to item.
- * @param[in] position Item position on screen
- * @param[in] isAnimated Whether scrolling is animated or immediate
- */
- void scrollTo(Elm_Genlist_Item_Scrollto_Type position = ELM_GENLIST_ITEM_SCROLLTO_IN,
- bool isAnimated = false);
-
- /**
- * @brief Scroll to the item and give it focus.
- * @see GenlistItem::scrollTo()
- */
- void focus(Elm_Genlist_Item_Scrollto_Type position = ELM_GENLIST_ITEM_SCROLLTO_IN,
- bool isAnimated = false);
-
- /**
- * @brief Remove item from genlist without destroying it.
- */
- void pop();
-
- protected:
- /**
- * @brief Create statically allocated item class
- */
- static Elm_Genlist_Item_Class createItemClass(const char *style,
- const char *decorateStyle = nullptr,
- const char *editStyle = nullptr);
-
- /**
- * @return Genlist item class of this item.
- */
- virtual Elm_Genlist_Item_Class *getItemClass() const;
-
- /**
- * @brief Called whenever any item's text part needs to be updated.
- * @param[in] parent Parent genlist
- * @param[in] part Name of the part
- * @return Allocated string with text for a specified part,
- * it will be deallocated with free() by genlist.
- */
- virtual char *getText(Evas_Object *parent, const char *part) { return nullptr; }
-
- /**
- * @brief Called whenever any item's content part needs to be updated.
- * @param[in] parent Parent genlist
- * @param[in] part Name of the part
- * @return Content for a specified part.
- */
- virtual Evas_Object *getContent(Evas_Object *parent, const char *part) { return nullptr; }
-
- /**
- * @brief Called whenever any item's state part needs to be updated
- * @details Genlist will emit signal "elm,state,x,active" or
- * "elm,state,x,passive" with part's name instead of 'x'.
- * @param[in] parent Parent genlist
- * @param[in] part Name of the part
- * @return EINA_TRUE for active, EINA_FALSE for passive
- */
- virtual Eina_Bool getState(Evas_Object *parent, const char *part) { return EINA_FALSE; }
-
- /**
- * @brief Called after item was inserted into genlist.
- */
- virtual void onInserted() { }
-
- /**
- * @brief Called before item is popped.
- */
- virtual void onPop() { }
-
- /**
- * @brief Called when item is selected.
- */
- virtual void onSelected() { }
-
- /**
- * @brief Called when item is focused by calling focus().
- */
- virtual void onFocused() { }
-
- /**
- * @brief Called when item is realized (became visible).
- */
- virtual void onRealized() { }
-
- /**
- * @brief Called when item is unrealized (became invisible)
- * and its text and content is deleted until it is realized again.
- */
- virtual void onUnrealized() { }
-
- private:
- friend class Genlist;
- void onInserted(Elm_Object_Item *item);
- void onDestroy(Evas_Object *genlist);
-
- void onSelected(Elm_Object_Item *item);
- void onRealized(Elm_Object_Item *item);
- void onUnrealized(Elm_Object_Item *item);
-
- Elm_Object_Item *m_Item;
- bool m_Preserve;
-
- bool m_IsRealized;
- bool m_IsFocusPending;
-
- SelectCallback m_OnSelected;
- };
-}
-
-#endif /* UI_GENLIST_ITEM_H */
+++ /dev/null
-/*
- * Copyright (c) 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 UI_GENLIST_ITERATOR_H
-#define UI_GENLIST_ITERATOR_H
-
-#include <iterator>
-#include <tizen.h>
-
-namespace Ui
-{
- class GenlistItem;
-
- /**
- * @brief Genlist items iterator.
- */
- class EXPORT_API GenlistIterator :
- public std::iterator<std::bidirectional_iterator_tag, GenlistItem *>
- {
- public:
- /**
- * @brief Create genlist iterator
- * @param[in] item Item pointed by iterator
- */
- GenlistIterator(GenlistItem *item = nullptr);
-
- /**
- * @brief Increment iterator.
- */
- GenlistIterator &operator++();
- GenlistIterator operator++(int);
-
- /**
- * @brief Decrement iterator.
- */
- GenlistIterator &operator--();
- GenlistIterator operator--(int);
-
- /**
- * @brief Dereference iterator.
- */
- GenlistItem *operator*() const;
-
- /**
- * @brief Compare iterators for inequality.
- */
- bool operator!=(const GenlistIterator &that) const;
-
- private:
- GenlistItem *m_Item;
- };
-}
-
-#endif /* UI_GENLIST_ITERATOR_H */
+++ /dev/null
-/*
- * Copyright (c) 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 UI_HOVERSEL_H
-#define UI_HOVERSEL_H
-
-#include "Ui/Control.h"
-#include <functional>
-
-namespace Ui
-{
- class EXPORT_API Hoversel : public Control
- {
- public:
- /**
- * @brief Item selection callback.
- * @param[in] Item value
- * @return Whether to display selected item in hoversel button automatically
- */
- typedef std::function<bool(int)> SelectedCallback;
-
- /**
- * @brief Add item.
- * @param[in] text Item text
- * @param[in] value Item value which will be passed to SelectedCallback
- * @return Added item on success, otherwise nullptr.
- */
- Elm_Object_Item *addItem(const char *text, int value);
-
- /**
- * @brief Set text of currently selected item.
- * @param[in] text Text to be displayed in hoversel button
- */
- void setText(const char *text);
-
- /**
- * @brief Set item selection callback.
- * @param[in] callback Callback to be called after item was selected
- */
- void setSelectedCallback(SelectedCallback callback);
-
- protected:
- virtual Evas_Object *onCreate(Evas_Object *parent) override;
-
- private:
- void onSelected(Evas_Object *hoversel, Elm_Object_Item *item);
- static void onExpanded(void *data, Evas_Object *hoversel, void *eventInfo);
- static void onDismissed(void *data, Evas_Object *hoversel, void *eventInfo);
- static void onBackPressed(void *data, Evas_Object *hoversel, void *eventInfo);
-
- SelectedCallback m_OnSelected;
- };
-}
-
-#endif /* UI_HOVERSEL_H */
+++ /dev/null
-/*
- * Copyright (c) 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 UI_LIST_POPUP_H
-#define UI_LIST_POPUP_H
-
-#include "Ui/Popup.h"
-
-namespace Ui
-{
- class EXPORT_API ListPopup : public Popup
- {
- public:
- /**
- * @brief Specific item selection callback.
- */
- typedef std::function<void()> ItemSelectedCallback;
-
- /**
- * @brief Any item selection callback.
- * @param[in] Item data
- */
- typedef std::function<void(void *)> SelectedCallback;
-
- /**
- * @brief Create list popup
- * @param[in] itemStyle Genlist item style
- */
- ListPopup(const char *itemStyle = "type1");
-
- /**
- * @brief Add ListPopup item
- * @param[in] text Main text of the item
- * @param[in] data Data associated with the item
- * @param[in] callback Callback to be called when item is selected
- * @return Added item on success, otherwise nullptr
- */
- Elm_Object_Item *addItem(std::string text, void *data, ItemSelectedCallback callback = nullptr);
- Elm_Object_Item *addItem(std::string text, ItemSelectedCallback callback = nullptr);
- Elm_Object_Item *addItem(void *data, ItemSelectedCallback callback = nullptr);
-
- /**
- * @brief Set item selection callback.
- * @param[in] callback Callback to be called when any item is selected
- */
- void setSelectedCallback(SelectedCallback callback);
-
- protected:
- /**
- * @see Control::onCreate()
- */
- virtual Evas_Object *onCreate(Evas_Object *parent) override;
-
- /**
- * @brief Called when item's text part needs to be updated.
- * @details If "elm.text" part is not handled in this function then it will
- * contain the text specified in ListPopup::addItem().
- * @see Elm_Gen_Item_Text_Get_Cb.
- */
- virtual char *getItemText(void *data, const char *part) { return nullptr; }
-
- /**
- * @brief Called when item's content part needs to be updated.
- * @see Elm_Gen_Item_Content_Get_Cb.
- */
- virtual Evas_Object *getItemContent(void *data, const char *part) { return nullptr; }
-
- /**
- * @brief Called when any item is selected.
- * @param[in] data Item data
- */
- virtual void onItemSelected(void *data) { }
-
- private:
- struct ItemData;
-
- static char *getText(ItemData *itemData, Evas_Object *genlist, const char *part);
- static Evas_Object *getContent(ItemData *itemData, Evas_Object *genlist, const char *part);
- static void onSelected(ListPopup *popup, Evas_Object *genlist, Elm_Object_Item *item);
-
- Evas_Object *m_Genlist;
- Elm_Genlist_Item_Class m_ItemClass;
- SelectedCallback m_OnSelected;
- };
-}
-
-#endif /* UI_LIST_POPUP_H */
+++ /dev/null
-/*
- * Copyright (c) 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 UI_MENU_H
-#define UI_MENU_H
-
-#include "Ui/Control.h"
-#include <functional>
-
-namespace Ui
-{
- class EXPORT_API Menu : public Control
- {
- public:
- /**
- * @brief Item selection callback
- */
- typedef std::function<void()> ItemCallback;
-
- /**
- * @brief Add menu item
- * @param[in] text Item text
- * @param[in] callback Item selection callback
- * @return Added item on success, otherwise nullptr
- */
- Elm_Object_Item *addItem(const char *text, ItemCallback callback);
-
- /**
- * @brief Show menu at the bottom of application window.
- */
- void show();
-
- protected:
- virtual Evas_Object *onCreate(Evas_Object *parent) override;
-
- private:
- static void onItemSelect(void *data, Evas_Object *obj, void *item);
- static void onItemDestroy(void *data, Evas_Object *obj, void *item);
- void onDismissed(Evas_Object *obj, void *eventInfo);
- };
-}
-
-#endif /* UI_MENU_H */
+++ /dev/null
-/*
- * Copyright (c) 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 UI_NAVIFRAME_H
-#define UI_NAVIFRAME_H
-
-#include "Ui/Navigator.h"
-
-namespace Ui
-{
- /**
- * @brief Naviframe wrapper
- */
- class EXPORT_API Naviframe : public Navigator
- {
- public:
- Naviframe();
-
- /**
- * @see Navigator::getCurrentView()
- */
- virtual View *getCurrentView() const override;
-
- protected:
- virtual Evas_Object *onCreate(Evas_Object *parent) override;
- virtual NavigatorPage *attachView(View *view) override;
- virtual void navigateToView(View *view) override;
-
- Eina_Bool onItemPop(Elm_Object_Item *item);
- void onTransition(Evas_Object *obj, void *eventInfo);
- virtual bool onBackPressed() override;
- };
-}
-
-#endif /* UI_NAVIFRAME_H */
+++ /dev/null
-/*
- * Copyright (c) 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 UI_NAVIFRAME_PAGE_H
-#define UI_NAVIFRAME_PAGE_H
-
-#include "Ui/NavigatorPage.h"
-
-namespace Ui
-{
- class EXPORT_API NaviframePage : public NavigatorPage
- {
- public:
- NaviframePage(Elm_Object_Item *naviItem);
- virtual ~NaviframePage() override;
-
- /**
- * @see NavigatorPage::setTitle()
- */
- virtual void setTitle(const char *title) override;
-
- /**
- * @see NavigatorPage::setStyle()
- */
- virtual void setStyle(const char *style) override;
-
- /**
- * @see NavigatorPage::setContent()
- */
- virtual void setContent(const char *part, Evas_Object *content) override;
-
- private:
- friend class Naviframe;
-
- Elm_Object_Item *m_NaviItem;
- };
-}
-
-#endif /* UI_NAVIFRAME_PAGE_H */
+++ /dev/null
-/*
- * Copyright (c) 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 UI_NAVIGATOR_H
-#define UI_NAVIGATOR_H
-
-#include "Ui/View.h"
-
-namespace Ui
-{
- class NavigatorPage;
- class EXPORT_API Navigator : public View
- {
- public:
- /**
- * @return Currently displayed view
- */
- virtual View *getCurrentView() const = 0;
-
- /**
- * @brief Navigate to existing or new View
- * @param[in] view View to navigate to
- */
- void navigateTo(View *view);
-
- protected:
- Navigator(NavigatorType type);
-
- /**
- * @brief Notify specified View about navigation
- * @param[in] view View to notify
- * @param[in] isCurrentView Specifies the new state of the @a view
- */
- void notifyNavigation(View *view, bool isCurrentView);
-
- /**
- * @brief Called after navigateTo() is called for a new view
- * @param[in] view View to attach
- * @return NavigatorPage for the view
- */
- virtual NavigatorPage *attachView(View *view) = 0;
-
- /**
- * @brief Called after navigateTo() is called
- * @param[in] view View to navigate to
- */
- virtual void navigateToView(View *view) = 0;
-
- /**
- * @see View::onNavigation()
- */
- virtual void onNavigation(bool isCurrentView) override;
-
- /**
- * @see View::onBackPressed()
- */
- virtual bool onBackPressed() override;
-
- /**
- * @see View::onMenuPressed()
- */
- virtual void onMenuPressed() override;
-
- private:
- NavigatorType m_Type;
- };
-}
-
-#endif /* UI_NAVIGATOR_H */
+++ /dev/null
-/*
- * Copyright (c) 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 UI_NAVIGATOR_PAGE_H
-#define UI_NAVIGATOR_PAGE_H
-
-#include <Elementary.h>
-#include <tizen.h>
-
-namespace Ui
-{
- /**
- * @brief Navigator page interface
- */
- class EXPORT_API NavigatorPage
- {
- public:
- virtual ~NavigatorPage() { }
-
- /**
- * @brief Set page title.
- * @param[in] title Page title
- */
- virtual void setTitle(const char *title) = 0;
-
- /**
- * @brief Set page style.
- * @param[in] style Page style
- */
- virtual void setStyle(const char *style) = 0;
-
- /**
- * @brief Set page part content.
- * @param[in] content Content to set to page part
- */
- virtual void setContent(const char *part, Evas_Object *content) = 0;
- };
-}
-
-#endif /* UI_NAVIGATOR_PAGE_H */
+++ /dev/null
-/*
- * Copyright (c) 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 UI_POPUP_H
-#define UI_POPUP_H
-
-#include "Ui/Control.h"
-#include <functional>
-
-#define POPUP_BUTTON_MAX_COUNT 3
-
-namespace Ui
-{
- class EXPORT_API Popup : public Control
- {
- public:
- /**
- * @brief Popup button pressed callback
- * @return true to destroy the Popup, otherwise false
- */
- typedef std::function<bool()> ButtonCallback;
-
- /**
- * @brief Back button pressed callback
- * @return true to destroy the Popup, otherwise false
- */
- typedef std::function<bool()> BackCallback;
-
- Popup();
-
- /**
- * @brief Allows method overload instead of shadowing
- */
- using Control::create;
-
- /**
- * @brief Create popup with title, text and close button
- * @param[in] parent Popup parent
- * @param[in] title Popup title
- * @param[in] text Popup text
- * @param[in] button_text Text for close button
- * @return Created popup
- */
- static Popup *create(Evas_Object *parent, const char *title,
- const char *text, const char *button_text);
-
- /**
- * @brief Set Popup title
- * @param[in] title Popup title
- */
- void setTitle(const char *title);
-
- /**
- * @brief Set Popup text
- * @param[in] text Popup text
- */
- void setText(const char *text);
-
- /**
- * @brief Set Popup content
- * @param[in] content Popup content
- */
- void setContent(Evas_Object *content);
-
- /**
- * @brief Add Popup button
- * @param[in] text Button text
- * @param[in] callback Button click callback
- * @return Added button on success, otherwise nullptr
- */
- Evas_Object *addButton(const char *text, ButtonCallback callback = nullptr);
-
- /**
- * @brief Set callback on back button
- * @param[in] callback Back callback
- */
- void setBackCallback(BackCallback callback);
-
- protected:
- virtual Evas_Object *onCreate(Evas_Object *parent) override;
-
- private:
- void onButtonPressed(Evas_Object *obj, void *eventInfo);
- void onBackPressed(Evas_Object *obj, void *eventInfo);
-
- ButtonCallback m_ButtonCbs[POPUP_BUTTON_MAX_COUNT];
- size_t m_ButtonCount;
- BackCallback m_OnBack;
- };
-}
-
-#endif /* UI_POPUP_H */
+++ /dev/null
-/*
- * Copyright (c) 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 PROGRESS_CONTROLLER_H
-#define PROGRESS_CONTROLLER_H
-
-#include <Elementary.h>
-#include <functional>
-#include <tizen.h>
-
-namespace Ui
-{
- class ProgressPopup;
-
- /**
- * @brief Controller for ProgressPopup
- */
- class EXPORT_API ProgressController
- {
- public:
- /**
- * @brief Finish progress callback.
- */
- typedef std::function<void(const ProgressController &)> FinishCallback;
-
- /**
- * @brief Create controller for ProgressPopup.
- * @param[in] parent Parent object
- * @param[in] title Progress popup title
- * @param[in] maxValue max value of progress popup
- */
- ProgressController(Evas_Object *parent, const char *title, int maxValue);
- ProgressController(const ProgressController &that) = delete;
- virtual ~ProgressController();
-
- ProgressController & operator=(const ProgressController &that) = delete;
-
- /**
- * @brief Run progress.
- */
- void run();
-
- /**
- * @brief Set finish function which is called when the progress is over.
- * @param[in] callback Finish function
- */
- void setFinishCallback(FinishCallback callback);
-
- protected:
- virtual void onStart(Ecore_Thread *thread) = 0;
- virtual void onCanceled() = 0;
- virtual bool onCancel();
-
- void cancel();
- bool onProgress(size_t value);
-
- private:
- void createProgressPopup(Evas_Object *parent, const char *title, int maxValue);
-
- static void onStart(void *data, Ecore_Thread *thread);
- static void onNotify(void *data, Ecore_Thread *thread, void *msgData);
- static void onFinish(void *data, Ecore_Thread *thread);
- static void onCanceled(void *data, Ecore_Thread *thread);
-
- private:
- bool m_IsCanceled;
- FinishCallback m_OnFinish;
- ProgressPopup *m_ProgressPopup;
- Ecore_Thread *m_Thread;
- };
-}
-
-#endif /* PROGRESS_CONTROLLER_H */
+++ /dev/null
-/*
- * Copyright (c) 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 UI_PROGRESS_POPUP_H
-#define UI_PROGRESS_POPUP_H
-
-#include "Ui/Popup.h"
-
-namespace Ui
-{
- class EXPORT_API ProgressPopup : public Popup
- {
- public:
- /**
- * @brief Create progress popup.
- * @param[in] maxValue Max value of progressbar
- */
- ProgressPopup(size_t maxValue);
-
- /**
- * @brief Set progress of the progressbar
- * @param[in] value Progress value
- */
- void setProgress(size_t value);
-
- private:
- virtual Evas_Object *onCreate(Evas_Object *parent) override;
-
- private:
- size_t m_MaxValue;
- Evas_Object *m_Progressbar;
- };
-}
-
-#endif /* UI_PROGRESS_POPUP_H */
+++ /dev/null
-/*
- * Copyright (c) 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 UI_SCALE_H
-#define UI_SCALE_H
-
-#include <tizen.h>
-
-#define UI_BASE_SCALE 2.6
-
-namespace Ui
-{
- /**
- * @brief Scale the value using application base scale and device config scale
- * @param[in] value Value to scale (usually pixels)
- * @return Value multiplied by scale factor
- */
- EXPORT_API int getScaledValue(int value);
-}
-
-#endif /* UI_SCALE_H */
+++ /dev/null
-/*
- * Copyright (c) 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 UI_TAB_PAGE_H
-#define UI_TAB_PAGE_H
-
-#include "Ui/Control.h"
-#include "Ui/NavigatorPage.h"
-
-namespace Ui
-{
- class EXPORT_API TabPage : public Control, public NavigatorPage
- {
- public:
- TabPage(size_t index, Elm_Object_Item *tabItem);
- virtual ~TabPage() override;
-
- /**
- * @see NavigatorPage::setTitle()
- */
- virtual void setTitle(const char *title) override;
-
- /**
- * @see NavigatorPage::setStyle()
- */
- virtual void setStyle(const char *style) override;
-
- /**
- * @see NavigatorPage::setContent()
- */
- virtual void setContent(const char *part, Evas_Object *content) override;
-
- private:
- friend class TabView;
- virtual Evas_Object *onCreate(Evas_Object *parent) override;
-
- size_t m_Index;
- Elm_Object_Item *m_TabItem;
-
- Evas_Object *m_Sizer;
- Evas_Object *m_Page;
- };
-}
-
-#endif /* UI_TAB_PAGE_H */
+++ /dev/null
-/*
- * Copyright (c) 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 UI_TAB_VIEW_H
-#define UI_TAB_VIEW_H
-
-#include "Ui/Navigator.h"
-#include <vector>
-
-namespace Ui
-{
- /**
- * @brief Scrollable tab navigator
- */
- class EXPORT_API TabView : public Navigator
- {
- public:
- TabView();
-
- /**
- * @see Navigator::getCurrentView()
- */
- virtual View *getCurrentView() const override;
-
- protected:
- virtual Evas_Object *onCreate(Evas_Object *parent) override;
- virtual void onPageAttached() override;
-
- virtual NavigatorPage *attachView(View *view) override;
- virtual void navigateToView(View *view) override;
-
- private:
- static void onTabDestroy(void *data, Evas_Object *obj, void *tabItem);
- void onTabSelect(Evas_Object *obj, void *tabItem);
- void onPageChanged(Evas_Object *obj, void *eventInfo);
- void onResize(Evas *e, Evas_Object *obj, void *eventInfo);
-
- Evas_Object *m_Tabbar;
- Evas_Object *m_Scroller;
- Evas_Object *m_Box;
-
- Evas_Coord m_Width;
- Evas_Coord m_Height;
-
- bool m_IsNavigating;
- size_t m_CurrentPage;
- std::vector<View *> m_Views;
- };
-}
-
-#endif /* UI_TAB_VIEW_H */
+++ /dev/null
-/*
- * Copyright (c) 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 UI_THUMBNAIL_H
-#define UI_THUMBNAIL_H
-
-#include "Ui/Control.h"
-
-namespace Ui
-{
- class EXPORT_API Thumbnail : public Control
- {
- public:
- enum Size
- {
- SizeSmall,
- SizeMedium,
- SizeLarge
- };
-
- /**
- * @brief Create thumbnail
- * @param[in] size Thumbnail size
- */
- Thumbnail(Size size);
-
- /**
- * @brief Allows method overload instead of shadowing
- */
- using Control::create;
-
- /**
- * @brief Create thumbnail
- * @param[in] parent Thumbnail parent
- * @param[in] size Thumbnail size
- * @param[in] path Thumbnail Image path or nullptr for default image
- * @return Created thumbnail
- */
- static Thumbnail *create(Evas_Object *parent, Size size, const char *path = nullptr);
-
- /**
- * @return Thumbnail image object.
- */
- Evas_Object *getImage() const;
-
- /**
- * @brief Set thumbnail image path
- * @param[in] path Image path or nullptr for default image
- */
- void setImagePath(const char *path);
-
- /**
- * @brief Set whether minimal size hint is set for image
- * @param[in] isSet Whether to set image size hint
- */
- void setSizeHint(bool isSet);
-
- protected:
- virtual Evas_Object *onCreate(Evas_Object *parent) override;
-
- private:
- Size m_Size;
- Evas_Object *m_Image;
- };
-}
-
-#endif /* UI_THUMBNAIL_H */
+++ /dev/null
-/*
- * Copyright (c) 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 UI_VIEW_H
-#define UI_VIEW_H
-
-#include "Ui/Control.h"
-#include "Ui/NavigatorPage.h"
-
-namespace Ui
-{
- class Navigator;
- class Window;
-
- /**
- * @brief Navigation type supported by Navigator
- */
- enum NavigatorType
- {
- StackNavigator, /**< Allows navigation to the added View or the previous View */
- TabNavigator /**< Allows navigation to any added View */
- };
-
- /**
- * @brief Represents content of a Window or Navigator page
- */
- class EXPORT_API View : public Control
- {
- public:
- /**
- * @brief Get parent Navigator
- * @param[in] type Navigator type
- * @return Innermost parent Navigator of the specified type if exists,
- * otherwise nullptr
- */
- Navigator *getNavigator(NavigatorType type = StackNavigator) const;
-
- /**
- * @return NavigatorPage of this View
- */
- NavigatorPage *getPage() const;
-
- protected:
- View();
- virtual ~View() override;
-
- /**
- * @brief Called after Navigator has navigated to or from this View
- * @param[in] isCurrentView Specifies the new state of this View
- */
- virtual void onNavigation(bool isCurrentView) { }
-
- /**
- * @brief Called when NavigatorPage is attached to this View
- */
- virtual void onPageAttached() { }
-
- /**
- * @brief Called when "back" button is pressed
- * @return true to navigate to the previous view, otherwise false
- */
- virtual bool onBackPressed() { return true; }
-
- /**
- * @brief Called when "menu" button is pressed
- */
- virtual void onMenuPressed() { }
-
- private:
- friend class Window;
- friend class Navigator;
-
- void onViewAttached(Navigator *stackNavi, Navigator *tabNavi);
- void onPageAttached(NavigatorPage *page);
-
- Navigator *m_StackNavi;
- Navigator *m_TabNavi;
- NavigatorPage *m_NaviPage;
- };
-}
-
-#endif /* UI_VIEW_H */
+++ /dev/null
-/*
- * Copyright (c) 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 UI_WINDOW_H
-#define UI_WINDOW_H
-
-#include "Ui/Control.h"
-
-namespace Ui
-{
- class View;
-
- /**
- * @brief Application main window
- */
- class EXPORT_API Window : public Control
- {
- public:
- Window();
-
- /**
- * @return Conformant Evas_Object.
- */
- Evas_Object *getConformant() const;
-
- /**
- * @return Basic Window layout Evas_Object.
- */
- Evas_Object *getBaseLayout() const;
-
- /**
- * @brief Attach main View to be displayed in the Window.
- * @param[in] view Window main View
- */
- void attachView(View *view);
-
- private:
- virtual Evas_Object *onCreate(Evas_Object *parent) override;
- void onBackPressed(Evas_Object *obj, void *eventInfo);
- void onMenuPressed(Evas_Object *obj, void *eventInfo);
-
- Evas_Object *m_Conform;
- Evas_Object *m_Layout;
- View *m_MainView;
- };
-}
-
-#endif /* UI_WINDOW_H */
+++ /dev/null
-/*
- * Copyright (c) 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 UTILS_CALLBACK_H
-#define UTILS_CALLBACK_H
-
-#include "Utils/CallbackImpl.h"
-
-/**
- * @brief Make C-style callback from non-static class method with object as first parameter.
- * @details Generates static member function by adding void* first parameter.
- * Generated function forwards calls to specified method on object passed as first parameter.
- * @par example
- * @code
- *
- * class SomeView : public View
- * {
- * ...
- * private:
- * void onButtonPressed(Evas_Object *obj, void *eventInfo);
- * }
- *
- * void SomeView::someMethod(Evas_Object *parent)
- * {
- * Evas_Object *button = elm_button_add(parent);
- * evas_object_smart_callback_add(button, "clicked",
- * makeCallback(&SomeView::onButtonPressed), this);
- * ...
- * }
- *
- * @endcode
- */
-#define makeCallback(method) \
- ::Utils::Callback<decltype(method)>::makeWithFirstParam<method>()
-
-/**
- * @brief Make C-style callback from non-static class method with object as last parameter.
- * @see makeCallback()
- */
-#define makeCallbackWithLastParam(method) \
- ::Utils::Callback<decltype(method)>::makeWithLastParam<method>()
-
-#endif /* UTILS_CALLBACK_H */
+++ /dev/null
-/*
- * Copyright (c) 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 CALLBACK_IMPL_H
-#define CALLBACK_IMPL_H
-
-namespace Utils
-{
- template <typename F>
- class Callback;
-
- template <typename R, typename... A>
- class Callback<R(A...)>
- {
- public:
- template <class C, R(C::*Method)(A...)>
- static R stubWithFirstParam(void *object, A... args)
- {
- return (static_cast<C*>(object)->*Method)(args...);
- }
-
- template <class C, R(C::*Method)(A...)>
- static R stubWithLastParam(A... args, void *object)
- {
- return (static_cast<C*>(object)->*Method)(args...);
- }
- };
-
- template <typename R, typename C, typename... A>
- class Callback<R(C::*)(A...)>
- {
- public:
- typedef R(*WithFirstParam)(void*, A...);
- typedef R(*WithLastParam)(A..., void*);
-
- template <R(C::*Method)(A...)>
- static WithFirstParam makeWithFirstParam()
- {
- return &Callback<R(A...)>::template stubWithFirstParam<C, Method>;
- }
-
- template <R(C::*Method)(A...)>
- static WithLastParam makeWithLastParam()
- {
- return &Callback<R(A...)>::template stubWithLastParam<C, Method>;
- }
- };
-}
-
-#endif /* CALLBACK_IMPL_H */
+++ /dev/null
-/*
- * Copyright (c) 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 UTILS_ITERATOR_H
-#define UTILS_ITERATOR_H
-
-#include <iterator>
-#include <stddef.h>
-
-namespace Utils
-{
- /**
- * @brief Base class for index-based iterators.
- * @details CRTP (Curiously Recurring Template Pattern) is used to generate
- * operators that return or use derived type.
- */
- template <typename DerivedIterator,
- typename ValueType,
- typename Pointer = ValueType *,
- typename Reference = ValueType &,
- typename Distance = ptrdiff_t>
- class IndexIterator :
- public std::iterator<std::bidirectional_iterator_tag, ValueType, Distance, Pointer, Reference>
- {
- public:
- /**
- * @brief Create iterator from index.
- * @param[in] index Current position of iterator
- */
- IndexIterator(size_t index = 0)
- : m_Index(index) { }
-
- /**
- * @brief Dereference iterator.
- */
- Pointer operator->() const { return &*getDerived(); }
-
- /**
- * @brief Increment iterator.
- */
- DerivedIterator &operator++() { ++m_Index; return getDerived(); }
- DerivedIterator operator++(int) { auto it(getDerived()); ++*this; return it; }
-
- /**
- * @brief Decrement iterator.
- */
- DerivedIterator &operator--() { --m_Index; return getDerived(); }
- DerivedIterator operator--(int) { auto it(getDerived()); --*this; return it; }
-
- /**
- * @brief Compare iterators.
- */
- bool operator==(const IndexIterator &that) { return m_Index == that.m_Index; }
- bool operator!=(const IndexIterator &that) { return m_Index != that.m_Index; }
-
- protected:
- /**
- * @return Current index.
- */
- size_t getIndex() const { return m_Index; }
-
- private:
- DerivedIterator &getDerived() { return static_cast<DerivedIterator &>(*this); }
- const DerivedIterator &getDerived() const { return static_cast<const DerivedIterator &>(*this); }
-
- size_t m_Index;
- };
-}
-
-#endif /* UTILS_ITERATOR_H */
+++ /dev/null
-/*
- * Copyright (c) 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 UTILS_LOGGER_H
-#define UTILS_LOGGER_H
-
-#define LOG_TAG "contacts"
-#include <dlog.h>
-
-#define __MODULE__ (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__)
-
-#include "Utils/Tracer.h"
-#define TRACE ::Utils::Tracer tracer(LOG_TAG, __MODULE__, __func__, __LINE__)
-
-#define DLOG(prio, fmt, arg...) dlog_print(prio, LOG_TAG, "%s: %s(%d) > " fmt, __MODULE__, __func__, __LINE__, ##arg)
-#define DBG(fmt, arg...) DLOG(DLOG_DEBUG, fmt, ##arg)
-#define ERR(fmt, arg...) DLOG(DLOG_ERROR, fmt, ##arg)
-
-#define LOG_IF(expr, action, fmt, arg...) \
-if (expr) { \
- ERR(fmt, ##arg); \
- action; \
-}
-
-#define LOG_IF_ERR(code, action, fmt, arg...) \
-LOG_IF(code != TIZEN_ERROR_NONE, action, fmt " %s.", ##arg, get_error_message(code))
-
-#define WARN_IF(expr, fmt, arg...) \
-LOG_IF(expr, , fmt, ##arg)
-
-#define WARN_IF_ERR(code, fmt, arg...) \
-LOG_IF_ERR(code, , fmt, ##arg)
-
-#define RETM_IF(expr, fmt, arg...) \
-LOG_IF(expr, return, fmt, ##arg)
-
-#define RETM_IF_ERR(code, fmt, arg...) \
-LOG_IF_ERR(code, return, fmt, ##arg)
-
-#define RETVM_IF(expr, val, fmt, arg...) \
-LOG_IF(expr, return val, fmt, ##arg)
-
-#define RETVM_IF_ERR(code, val, fmt, arg...) \
-LOG_IF_ERR(code, return val, fmt, ##arg)
-
-#endif /* UTILS_LOGGER_H */
+++ /dev/null
-/*
- * Copyright (c) 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 UTILS_RANGE_H
-#define UTILS_RANGE_H
-
-#include <iterator>
-
-namespace Utils
-{
- /**
- * @brief Convenience wrapper around std::advance.
- * @param[in] iterator Input iterator
- * @param[in] distance Distance to advance iterator
- * @return New iterator at @a distance from @a iterator.
- */
- template <typename Iter, typename Distance>
- inline Iter advance(Iter iterator, Distance distance)
- {
- std::advance(iterator, distance);
- return iterator;
- }
-
- /**
- * @brief Convenience wrapper for iterator pair.
- */
- template <typename Iter>
- class Range
- {
- public:
- typedef typename std::iterator_traits<Iter>::reference reference;
-
- Range() = default;
-
- /**
- * @brief Create iterator range from static array.
- * @param[in] array Static array
- */
- template <typename T, size_t N>
- Range(T(&array)[N])
- : m_Begin(array), m_End(array + N) { }
-
- /**
- * @brief Create iterator range from begin iterator and element count
- * @param[in] begin Begin iterator
- * @param[in] count Count of elements until range's end
- */
- Range(Iter begin, size_t count)
- : m_Begin(std::move(begin)), m_End(advance(m_Begin, count)) { }
-
- /**
- * @brief Create iterator range from pair of iterators
- * @param[in] begin Begin iterator
- * @param[in] end End iterator
- */
- Range(Iter begin, Iter end)
- : m_Begin(std::move(begin)), m_End(std::move(end)) { }
-
- /**
- * @return Whether range is empty (i. e. begin() == end()).
- */
- bool empty() const { return !(m_Begin != m_End); }
-
- /**
- * @return Range element count.
- */
- size_t count() const { return std::distance(m_Begin, m_End); }
-
- /**
- * @return Range begin iterator.
- */
- Iter &begin() { return m_Begin; }
-
- /**
- * @return Range end iterator.
- */
- Iter &end() { return m_End; }
-
- /**
- * @return Range begin iterator.
- */
- const Iter &begin() const { return m_Begin; }
-
- /**
- * @return Range end iterator.
- */
- const Iter &end() const { return m_End; }
-
- /**
- * @see empty()
- */
- explicit operator bool() const { return !empty(); }
-
- /**
- * @brief Get range element by index.
- * @param[in] index Element index
- * @return Range element reference.
- */
- reference operator[](size_t index) const { return *advance(m_Begin, index); }
-
- private:
- Iter m_Begin;
- Iter m_End;
- };
-
- /**
- * @brief Create iterator range from static array.
- */
- template <typename T, size_t N>
- inline Range<T*> makeRange(T(&array)[N])
- {
- return { array };
- }
-
- /**
- * @brief Create iterator range from two iterators.
- */
- template <typename Iter1, typename Iter2,
- typename Iter = typename std::common_type<Iter1, Iter2>::type>
- inline Range<Iter> makeRange(Iter1 &&begin, Iter2 &&end)
- {
- return { std::forward<Iter1>(begin), std::forward<Iter2>(end) };
- }
-
- /**
- * @brief Get static array element count.
- * @param[in] array Static array
- * @return Array element count.
- */
- template <typename T, size_t N>
- inline size_t count(T(&array)[N])
- {
- return N;
- }
-
- /**
- * @brief Get element by index from static array or a default value if out of bounds.
- * @param[in] array Static array
- * @param[in] index Element index
- * @param[in] value Default value
- * @return Array element or @a value. Array element is always copied.
- */
- template <typename T, size_t N>
- inline T at(T(&array)[N], size_t index, T value = T())
- {
- return index < N ? array[index] : value;
- }
-}
-
-#endif /* UTILS_RANGE_H */
+++ /dev/null
-/*
- * Copyright (c) 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 UTILS_TRACER_H
-#define UTILS_TRACER_H
-
-#include <time.h>
-#include <tizen.h>
-
-namespace Utils
-{
- /**
- * @brief Code block logger. Writes logs when created and destroyed. Outputs elapsed time.
- */
- class EXPORT_API Tracer
- {
- public:
- /**
- * @brief Create tracer and write entry log.
- * @param[in] tag Log tag
- * @param[in] file Current source file
- * @param[in] func Current function
- * @param[in] line Current source line
- */
- Tracer(const char *tag, const char *file, const char *func, int line);
- ~Tracer();
-
- private:
- const char *m_Tag;
- const char *m_File;
- const char *m_Func;
- timespec m_startTime;
- };
-}
-
-#endif /* UTILS_TRACER_H */
+++ /dev/null
-/*
- * Copyright (c) 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 UTILS_UNI_STRING_H
-#define UTILS_UNI_STRING_H
-
-#include <utils_i18n.h>
-#include <string>
-
-namespace Utils
-{
- /**
- * @brief Class wrapper for convenient work with multibyte UTF8 unicode string
- */
- class EXPORT_API UniString
- {
- public:
- /**
- * @brief Instantiation of the basic_string class template,
- * that uses i18n_uchar as its character type
- */
- typedef std::basic_string<i18n_uchar> I18nString;
-
- UniString() = default;
- /**
- * @brief Create new object, based on @a utf8Str string
- * @param[in] utf8Str UTF8 multibyte unicode string
- */
- UniString(const char *utf8Str);
-
- bool operator<(const UniString &that) const;
- bool operator>(const UniString &that) const;
- bool operator==(const UniString &that) const;
- bool operator!=(const UniString &that) const;
- bool operator<=(const UniString &that) const;
- bool operator>=(const UniString &that) const;
-
- /**
- * @return I18n string
- */
- const I18nString &getI18nStr() const;
-
- /**
- * @return UTF8 multibyte string
- */
- const std::string &getUtf8Str() const;
-
- private:
- static std::string toUtf8(const I18nString &ustring);
- static I18nString fromUtf8(const std::string &utf8Str);
-
- mutable std::string m_Utf8Str;
- I18nString m_UniStr;
- };
-}
-
-#endif /* UTILS_UNI_STRING_H */
-set(EDCFILES common-thumbnail.edc common-buttons.edc)
+set(EDCFILES dummy.edc)
set(EDJDIR "${RES_DIR}/common/edje")
foreach(EDCFILE ${EDCFILES})
+++ /dev/null
-/*
- * Copyright (c) 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 COMMON_BUTTONS_H
-#define COMMON_BUTTONS_H
-
-#include "CommonPath.h"
-
-#define COMMON_BUTTONS_EDJ COMMON_EDJ_DIR"common-buttons.edj"
-
-#define BUTTON_STYLE_CUSTOM_DEFAULT "custom_default"
-#define BUTTON_STYLE_CUSTOM_CIRCLE "custom_circle"
-
-#define BUTTON_TEXT_CLASS "button_text"
-#define BUTTON_COLOR_CLASS_NORMAL "button_normal"
-#define BUTTON_COLOR_CLASS_PRESSED "button_pressed"
-
-#endif /* COMMON_BUTTONS_H */
+++ /dev/null
-/*
- * Copyright (c) 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 COMMON_PATH_H
-#define COMMON_PATH_H
-
-#define COMMON_IMG_DIR "common/images/"
-#define COMMON_EDJ_DIR "common/edje/"
-
-#endif /* COMMON_PATH_H */
+++ /dev/null
-/*
- * Copyright (c) 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 COMMON_PROGRESSBAR_LAYOUT_H
-#define COMMON_PROGRESSBAR_LAYOUT_H
-
-#include "CommonPath.h"
-
-#define COMMON_PROGRESSBAR_LAYOUT_EDJ COMMON_EDJ_DIR"common-progressbar-layout.edj"
-
-#define GROUP_PROGRESSBAR_LAYOUT "progressbar_layout"
-
-#define PART_PROGRESSBAR "swallow.progressbar"
-
-#define PROGRESSBAR_PAD_X 32
-#define PROGRESSBAR_PAD_Y 17
-
-#endif /* COMMON_PROGRESSBAR_LAYOUT_H */
+++ /dev/null
-/*
- * Copyright (c) 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 COMMON_THUMBNAIL_H
-#define COMMON_THUMBNAIL_H
-
-#include "CommonPath.h"
-
-#define COMMON_THUMBNAIL_EDJ COMMON_EDJ_DIR"common-thumbnail.edj"
-
-#define THUMBNAIL_DEFAULT_MEDIUM COMMON_IMG_DIR"contacts_caller_id_default.png"
-#define THUMBNAIL_DEFAULT_SMALL COMMON_IMG_DIR"contacts_caller_id_default_02.png"
-#define THUMBNAIL_DEFAULT_LARGE COMMON_IMG_DIR"contacts_caller_id_default_03.png"
-
-#define THUMBNAIL_BG_MEDIUM COMMON_IMG_DIR"contacts_caller_id_default_bg.png"
-#define THUMBNAIL_BG_SMALL COMMON_IMG_DIR"contacts_caller_id_default_bg_02.png"
-#define THUMBNAIL_BG_LARGE COMMON_IMG_DIR"contacts_caller_id_default_bg_03.png"
-
-#define GROUP_THUMBNAIL_SMALL "thumbnail_small"
-#define GROUP_THUMBNAIL_MEDIUM "thumbnail_medium"
-#define GROUP_THUMBNAIL_LARGE "thumbnail_large"
-
-#define GROUP_THUMBNAIL_DEFAULT_SMALL "default_thumbnail_small"
-#define GROUP_THUMBNAIL_DEFAULT_MEDIUM "default_thumbnail_medium"
-#define GROUP_THUMBNAIL_DEFAULT_LARGE "default_thumbnail_large"
-
-#define THUMBNAIL_SMALL_SIZE 98
-#define THUMBNAIL_MEDIUM_SIZE 166
-#define THUMBNAIL_LARGE_SIZE 240
-
-#endif /* COMMON_THUMBNAIL_H */
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "common-colors.edc"
-
-#define BUTTON_CORNER_RADIUS "35"
-#define BUTTON_DEFAULT_H 78
-#define BUTTON_TEXT_H 54
-#define BUTTON_TEXT_X 20
-#define BUTTON_TEXT_Y ((BUTTON_DEFAULT_H-BUTTON_TEXT_H)/2)
-
-#define BUTTON_CIRCLE_SIZE 98
-#define BUTTON_CONTENT_SIZE 60
-#define BUTTON_CONTENT_REL (((BUTTON_CIRCLE_SIZE-BUTTON_CONTENT_SIZE)/2)/BUTTON_CIRCLE_SIZE)
-
-styles {
- style {
- name: "button_main";
- base: "font=Tizen:style=Light font_size=40 align=center color=#ffffffff text_class="BUTTON_TEXT_CLASS" ellipsis=1.0";
- }
-}
-
-collections {
- base_scale: 2.6;
-
- group {
- name: "elm/button/base/custom";
-
- parts {
- part {
- name: "tizen_vg_shape";
- type: SWALLOW;
- scale: 1;
- clip_to: "bg";
- description {
- state: "default" 0.0;
- }
- }
- part {
- name: "bg";
- type: RECT;
- description {
- state: "default" 0.0;
- color_class: BUTTON_COLOR_CLASS_NORMAL;
- }
- description {
- state: "pressed" 0.0;
- color_class: BUTTON_COLOR_CLASS_PRESSED;
- }
- }
- }
- programs {
- program {
- name: "pressed";
- signal: "mouse,down,*";
- source: "*";
- action: STATE_SET "pressed" 0.0;
- target: "bg";
- }
- program {
- name: "unpressed";
- signal: "mouse,up,*";
- source: "*";
- action: STATE_SET "default" 0.0;
- target: "bg";
- }
- program {
- name: "clicked";
- signal: "mouse,clicked,*";
- source: "*";
- action: SIGNAL_EMIT "elm,action,click" "";
- }
- }
- }
-
- group {
- name: "elm/button/base/"BUTTON_STYLE_CUSTOM_DEFAULT;
- inherit: "elm/button/base/custom";
- data.item: "vector_ux" "default";
- data.item: "corner_radius" BUTTON_CORNER_RADIUS;
-
- parts {
- part {
- name: "elm.text";
- type: TEXTBLOCK;
- scale: 1;
- description {
- state: "default" 0.0;
- rel1 {
- relative: 0.0 (BUTTON_TEXT_Y/BUTTON_DEFAULT_H);
- offset: BUTTON_TEXT_X 0;
- }
- rel2 {
- relative: 1.0 (1.0-(BUTTON_TEXT_Y/BUTTON_DEFAULT_H));
- offset: -BUTTON_TEXT_X 0;
- }
- text {
- style: "button_main";
- min: 1 1;
- ellipsis: -1;
- }
- }
- }
- }
- }
-
- group {
- name: "elm/button/base/"BUTTON_STYLE_CUSTOM_CIRCLE;
- inherit: "elm/button/base/custom";
- data.item: "vector_ux" "circle";
-
- parts {
- part {
- name: "elm.swallow.content";
- type: SWALLOW;
- description {
- state: "default" 0.0;
- rel1.relative: BUTTON_CONTENT_REL BUTTON_CONTENT_REL;
- rel2.relative: (1.0-BUTTON_CONTENT_REL) (1.0-BUTTON_CONTENT_REL);
- }
- }
- }
- }
-}
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "CommonButtons.h"
-
-color_classes {
- color_class { //A03O003
- name: "thumbnail_bg";
- color: 255 255 255 255;
- }
- color_class { //A03O003L1
- name: "thumbnail_default";
- color: 61 185 204 128;
- }
- color_class {
- name: BUTTON_COLOR_CLASS_NORMAL;
- color: 82 198 216 255;
- }
- color_class {
- name: BUTTON_COLOR_CLASS_PRESSED;
- color: 48 139 153 255;
- }
- color_class { //W023 (Input Color 1)
- name: "icon_expand";
- color: 61 185 204 255;
- }
- color_class { //W0113 (Input Color 1)
- name: "touch_icon_normal";
- color: 61 185 204 255;
- }
- color_class { //W0113P
- name: "touch_icon_pressed";
- color: 34 104 115 255;
- }
-}
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "CommonProgressbarLayout.h"
-
-collections {
- base_scale: 2.6;
- group {
- name: GROUP_PROGRESSBAR_LAYOUT;
-
- parts {
- spacer { "spacer.top"; scale;
- desc { "default";
- min: 0 PROGRESSBAR_PAD_Y;
- align: 0.5 0.0;
- rel1.relative: 0.0 0.0;
- rel2.relative: 1.0 0.0;
- }
- }
- spacer { "spacer.left"; scale;
- desc { "default";
- min: PROGRESSBAR_PAD_X 0;
- align: 0.0 0.5;
- rel1.relative: 0.0 0.0;
- rel2.relative: 0.0 1.0;
- }
- }
- spacer { "spacer.right"; scale;
- desc { "default";
- min: PROGRESSBAR_PAD_X 0;
- align: 1.0 0.5;
- rel1.relative: 1.0 0.0;
- rel2.relative: 1.0 1.0;
- }
- }
- spacer { "spacer.bottom"; scale;
- desc { "default";
- min: 0 PROGRESSBAR_PAD_Y;
- align: 0.5 1.0;
- rel1.relative: 0.0 1.0;
- rel2.relative: 1.0 1.0;
- }
- }
- swallow { PART_PROGRESSBAR; scale;
- desc { "default";
- rel1 { relative: 1.0 1.0; to_x: "spacer.left"; to_y: "spacer.top"; }
- rel2 { relative: 0.0 0.0; to_x: "spacer.right"; to_y: "spacer.bottom"; }
- }
- }
- }
- }
-}
\ No newline at end of file
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "CommonThumbnail.h"
-#include "common-colors.edc"
-#include "common-utils.edc"
-
-collections {
- IMAGE_WITH_MASK(GROUP_THUMBNAIL_SMALL, THUMBNAIL_BG_SMALL)
- IMAGE_WITH_MASK(GROUP_THUMBNAIL_MEDIUM, THUMBNAIL_BG_MEDIUM)
- IMAGE_WITH_MASK(GROUP_THUMBNAIL_LARGE, THUMBNAIL_BG_LARGE)
-
- IMAGE_WITH_BG_AND_COLOR(GROUP_THUMBNAIL_DEFAULT_SMALL, THUMBNAIL_DEFAULT_SMALL, "thumbnail_default", THUMBNAIL_BG_SMALL, "thumbnail_bg")
- IMAGE_WITH_BG_AND_COLOR(GROUP_THUMBNAIL_DEFAULT_MEDIUM, THUMBNAIL_DEFAULT_MEDIUM, "thumbnail_default", THUMBNAIL_BG_MEDIUM, "thumbnail_bg")
- IMAGE_WITH_BG_AND_COLOR(GROUP_THUMBNAIL_DEFAULT_LARGE, THUMBNAIL_DEFAULT_LARGE, "thumbnail_default", THUMBNAIL_BG_LARGE, "thumbnail_bg")
-}
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#define IMAGE_WITH_COLOR(GROUP_NAME, IMAGE_PATH, COLOR_CLASS) \
- group { \
- name: GROUP_NAME; \
- images.image: IMAGE_PATH COMP; \
- parts { \
- part { name: "image"; \
- description { \
- state: "default" 0.0; \
- image.normal: IMAGE_PATH; \
- color_class: COLOR_CLASS; \
- aspect: 1 1; \
- aspect_preference: SOURCE; \
- } \
- } \
- } \
- }
-
-#define IMAGE_WITH_BG_AND_COLOR(GROUP_NAME, IMAGE_PATH, COLOR_CLASS, BG_IMAGE_PATH, BG_COLOR_CLASS) \
- group { \
- name: GROUP_NAME; \
- images.image: BG_IMAGE_PATH COMP; \
- images.image: IMAGE_PATH COMP; \
- parts { \
- part { name: "image.bg"; \
- description { \
- state: "default" 0.0; \
- image.normal: BG_IMAGE_PATH; \
- color_class: BG_COLOR_CLASS; \
- aspect: 1 1; \
- aspect_preference: SOURCE; \
- } \
- } \
- } \
- parts { \
- part { name: "image"; \
- description { \
- state: "default" 0.0; \
- image.normal: IMAGE_PATH; \
- color_class: COLOR_CLASS; \
- aspect: 1 1; \
- aspect_preference: SOURCE; \
- } \
- } \
- } \
- }
-
-#define IMAGE_WITH_MASK(GROUP_NAME, MASK_PATH) \
- group { \
- name: GROUP_NAME; \
- images.image: MASK_PATH COMP; \
- parts { \
- part { name: "image.mask"; \
- precise_is_inside: 1; \
- description { \
- state: "default" 0.0; \
- image.normal: MASK_PATH; \
- aspect: 1.0 1.0; \
- aspect_preference: SOURCE; \
- } \
- } \
- } \
- parts { \
- part { name: "elm.swallow.content"; \
- type: SWALLOW; \
- clip_to: "image.mask"; \
- description { \
- state: "default" 0.0; \
- } \
- } \
- } \
- }
-
-#define IMAGE_WITH_PRESSED_COLOR(GROUP_NAME, IMAGE_PATH, COLOR_CLASS, PRESSED_COLOR_CLASS) \
- group { \
- name: GROUP_NAME; \
- images.image: IMAGE_PATH COMP; \
- parts { \
- part { name: "image"; \
- description { \
- state: "default" 0.0; \
- image.normal: IMAGE_PATH; \
- color_class: COLOR_CLASS; \
- aspect: 1 1; \
- aspect_preference: SOURCE; \
- } \
- description { \
- state: "pressed" 0.0; \
- inherit: "default" 0.0; \
- color_class: PRESSED_COLOR_CLASS; \
- } \
- } \
- } \
- programs { \
- program { \
- name: "pressed"; \
- signal: "mouse,down,*"; \
- source: "*"; \
- action: STATE_SET "pressed" 0.0; \
- target: "image"; \
- } \
- program { \
- name: "unpressed"; \
- signal: "mouse,up,*"; \
- source: "*"; \
- action: STATE_SET "default" 0.0; \
- target: "image"; \
- } \
- } \
- }
-
-#define IMAGE_WITH_BG_PRESSED_COLOR(GROUP_NAME, IMAGE_PATH, COLOR_CLASS, BG_IMAGE_PATH, BG_COLOR_CLASS, PRESSED_BG_COLOR_CLASS) \
- group { \
- name: GROUP_NAME; \
- images.image: IMAGE_PATH COMP; \
- images.image: BG_IMAGE_PATH COMP; \
- parts { \
- part { name: "image.bg"; \
- description { \
- state: "default" 0.0; \
- image.normal: BG_IMAGE_PATH; \
- color_class: BG_COLOR_CLASS; \
- aspect: 1 1; \
- aspect_preference: SOURCE; \
- } \
- description { \
- state: "pressed" 0.0; \
- inherit: "default" 0.0; \
- color_class: PRESSED_BG_COLOR_CLASS; \
- } \
- } \
- part { name: "image"; \
- description { \
- state: "default" 0.0; \
- image.normal: IMAGE_PATH; \
- color_class: COLOR_CLASS; \
- aspect: 1 1; \
- aspect_preference: SOURCE; \
- } \
- } \
- } \
- programs { \
- program { \
- name: "pressed"; \
- signal: "mouse,down,*"; \
- source: "*"; \
- action: STATE_SET "pressed" 0.0; \
- target: "image.bg"; \
- } \
- program { \
- name: "unpressed"; \
- signal: "mouse,up,*"; \
- source: "*"; \
- action: STATE_SET "default" 0.0; \
- target: "image.bg"; \
- } \
- } \
- }
--- /dev/null
+collections {
+ base_scale: 2.8;
+}
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "App/AppControl.h"
-#include "Utils/Logger.h"
-
-using namespace App;
-
-AppControl::AppControl()
- : m_AppControl(nullptr), m_AutoTerminate(true)
-{
-}
-
-AppControl::AppControl(const char *operation, const char *mime, const char *uri)
- : AppControl()
-{
- app_control_create(&m_AppControl);
- app_control_set_operation(m_AppControl, operation);
- app_control_set_mime(m_AppControl, mime);
- app_control_set_uri(m_AppControl, uri);
-}
-
-AppControl::AppControl(AppControl &&that)
- : m_AppControl(that.m_AppControl), m_AutoTerminate(that.m_AutoTerminate)
-{
- that.m_AppControl = nullptr;
-}
-
-AppControl::~AppControl()
-{
- reset();
-}
-
-app_control_h AppControl::getHandle() const
-{
- return m_AppControl;
-}
-
-void AppControl::addExtra(const char *key, const char *value)
-{
- app_control_add_extra_data(m_AppControl, key, value);
-}
-
-void AppControl::addExtra(const char *key, const char **array, int length)
-{
- app_control_add_extra_data_array(m_AppControl, key, array, length);
-}
-
-int AppControl::launch(app_control_reply_cb replyCallback, void *userData,
- bool groupMode)
-{
- if (groupMode) {
- app_control_set_launch_mode(m_AppControl, APP_CONTROL_LAUNCH_MODE_GROUP);
- }
-
- int result = app_control_send_launch_request(m_AppControl, replyCallback, userData);
- WARN_IF_ERR(result, "app_control_send_launch_request() failed.");
-
- return result;
-}
-
-void AppControl::terminate()
-{
- app_control_send_terminate_request(m_AppControl);
-}
-
-void AppControl::detach()
-{
- m_AutoTerminate = false;
-}
-
-AppControl &AppControl::operator=(AppControl &&that)
-{
- reset();
- m_AppControl = that.m_AppControl;
- m_AutoTerminate = that.m_AutoTerminate;
- that.m_AppControl = nullptr;
-
- return *this;
-}
-
-void AppControl::reset()
-{
- if (m_AppControl) {
- if (m_AutoTerminate) {
- terminate();
- }
- app_control_destroy(m_AppControl);
- }
-}
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "App/AppControlRequest.h"
-#include "Utils/Logger.h"
-
-using namespace App;
-
-AppControl App::requestContactCreate(const char *number)
-{
- AppControl request(APP_CONTROL_OPERATION_ADD, APP_CONTROL_MIME_CONTACT);
- request.addExtra(APP_CONTROL_DATA_PHONE, number);
- return request;
-}
-
-AppControl App::requestContactDetails(int personId)
-{
- AppControl request(APP_CONTROL_OPERATION_VIEW, APP_CONTROL_MIME_CONTACT);
- request.addExtra(APP_CONTROL_DATA_ID, std::to_string(personId).c_str());
- return request;
-}
-
-AppControl App::requestContactEdit(int personId, const char *number)
-{
- AppControl request(APP_CONTROL_OPERATION_EDIT, APP_CONTROL_MIME_CONTACT);
- if (personId > 0) {
- request.addExtra(APP_CONTROL_DATA_ID, std::to_string(personId).c_str());
- }
-
- request.addExtra(APP_CONTROL_DATA_PHONE, number);
- return request;
-}
-
-AppControl App::requestContactPick(const char *selectionMode, const char *resultType)
-{
- AppControl request(APP_CONTROL_OPERATION_PICK, APP_CONTROL_MIME_CONTACT);
- request.addExtra(APP_CONTROL_DATA_SELECTION_MODE, selectionMode);
- request.addExtra(APP_CONTROL_DATA_TYPE, resultType);
- return request;
-}
-
-AppControl App::requestTelephonyCall(const char *number)
-{
- return AppControl(APP_CONTROL_OPERATION_CALL, nullptr,
- std::string("tel:").append(number).c_str());
-}
-
-AppControl App::requestCallSettings()
-{
- return AppControl(APP_CONTROL_OPERATION_SETTING_CALL);
-}
-
-AppControl App::requestMessageComposer(const char *scheme, const char *to,
- const char *subject, const char *text)
-{
- AppControl request(APP_CONTROL_OPERATION_COMPOSE, nullptr,
- std::string(scheme).append(to).c_str());
- request.addExtra(APP_CONTROL_DATA_TITLE, subject);
- request.addExtra(APP_CONTROL_DATA_TEXT, text);
- return request;
-}
-
-AppControl App::requestCameraImage()
-{
- return AppControl(APP_CONTROL_OPERATION_CREATE_CONTENT, "image/*");
-}
-
-AppControl App::requestGalleryImage()
-{
- return AppControl(APP_CONTROL_OPERATION_PICK, "image/*");
-}
-
-AppControl App::requestShareContact(int personId)
-{
- AppControl request(APP_CONTROL_OPERATION_SHARE, APP_CONTROL_MIME_CONTACT);
- request.addExtra(APP_CONTROL_DATA_ID, std::to_string(personId).c_str());
- return request;
-}
-
-AppControl App::requestShareMyProfile(int recordId)
-{
- AppControl request = requestShareContact(recordId);
- request.addExtra(APP_CONTROL_DATA_TYPE, "my_profile");
- return request;
-}
-
-std::string App::getSingleExtraData(app_control_h appControl, const char *key)
-{
- std::string result;
- char **array = nullptr;
- int count = 0;
-
- int err = app_control_get_extra_data_array(appControl, key, &array, &count);
- RETVM_IF_ERR(err, result, "app_control_get_extra_data_array() failed.");
-
- if (array && array[0]) {
- result = array[0];
- }
-
- for (int i = 0; i < count; ++i) {
- free(array[i]);
- }
- free(array);
-
- return result;
-}
-
-std::vector<int> App::getIntExtraDataArray(app_control_h appControl, const char *key)
-{
- std::vector<int> result;
- char **array = nullptr;
- int count = 0;
-
- int err = app_control_get_extra_data_array(appControl, key, &array, &count);
- RETVM_IF_ERR(err, result, "app_control_get_extra_data_array() failed.");
- result.reserve(count);
-
- for (int i = 0; i < count; ++i) {
- int value = atoi(array[i]);
- result.push_back(value);
- free(array[i]);
- }
- free(array);
-
- return result;
-}
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "App/Application.h"
-#include "Utils/Callback.h"
-
-using namespace App;
-
-int Application::run(int argc, char **argv)
-{
- ui_app_lifecycle_callback_s cbs;
- cbs.create = makeCallback(&Application::onCreate);
- cbs.terminate = makeCallback(&Application::onTerminate);
- cbs.pause = makeCallback(&Application::onPause);
- cbs.resume = makeCallback(&Application::onResume);
- cbs.app_control = makeCallbackWithLastParam(&Application::onAppControl);
-
- return ui_app_main(argc, argv, &cbs, this);
-}
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "App/Path.h"
-
-#include <app.h>
-
-const std::string &App::getLocaleDir()
-{
- static std::string localeDir;
- if (localeDir.empty()) {
- #ifdef LOCALE_DIR
- localeDir = LOCALE_DIR;
- #else
- localeDir = getResourcePath("locale/");
- #endif
- }
-
- return localeDir;
-}
-
-const std::string &App::getResourceDir()
-{
- static std::string resDir;
- if (resDir.empty()) {
- #ifdef RES_DIR
- resDir = RES_DIR;
- #else
- char *path = app_get_resource_path();
- resDir = path;
- free(path);
- #endif
- }
-
- return resDir;
-}
-
-std::string App::getResourcePath(const std::string &relativePath)
-{
- return std::string(getResourceDir()).append(relativePath);
-}
--- /dev/null
+int dummy()
+{
+ return 0;
+}
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "Ui/Button.h"
-#include "Utils/Callback.h"
-
-#include <Ecore.h>
-
-using namespace Ui;
-
-Button::Button()
- : m_Timer(nullptr), m_IsLongpressed(false)
-{
-}
-
-Button::~Button()
-{
- resetTimer();
-}
-
-void Button::setPressedCallback(std::function<void(Button&)> callback)
-{
- m_OnPressed = std::move(callback);
-}
-
-void Button::setLongpressedCallback(std::function<bool(Button&)> callback)
-{
- m_OnLongpressed = std::move(callback);
-}
-
-Evas_Object *Button::onCreate(Evas_Object *parent)
-{
- Evas_Object *button = elm_button_add(parent);
- return button;
-}
-
-void Button::onCreated()
-{
- evas_object_event_callback_add(getEvasObject(), EVAS_CALLBACK_MOUSE_DOWN,
- makeCallback(&Button::onMouseDown), this);
- evas_object_event_callback_add(getEvasObject(), EVAS_CALLBACK_MOUSE_UP,
- makeCallback(&Button::onMouseUp), this);
- evas_object_event_callback_add(getEvasObject(), EVAS_CALLBACK_MOUSE_OUT,
- makeCallback(&Button::onMouseOut), this);
-}
-
-void Button::onMouseDown(Evas *evas, Evas_Object *obj, void *eventInfo)
-{
- m_IsLongpressed = false;
- m_Timer = ecore_timer_add(elm_config_longpress_timeout_get(),
- makeCallback(&Button::onTimeout), this);
-}
-
-void Button::onMouseUp(Evas *evas, Evas_Object *obj, void *eventInfo)
-{
- Evas_Event_Mouse_Up *e = (Evas_Event_Mouse_Up *) eventInfo;
-
- if (!m_IsLongpressed) {
- int x = 0, y = 0, w = 0, h = 0;
- evas_object_geometry_get(obj, &x, &y, &w, &h);
-
- if (m_OnPressed) {
- if (e->output.x >= x && e->output.x <= x + w
- && e->output.y >= y && e->output.x <= y + h) {
- m_OnPressed(*this);
- }
- }
-
- resetTimer();
- }
-}
-
-void Button::onMouseOut(Evas *evas, Evas_Object *obj, void *eventInfo)
-{
- resetTimer();
-}
-
-void Button::resetTimer()
-{
- ecore_timer_del(m_Timer);
- m_Timer = nullptr;
-}
-
-Eina_Bool Button::onTimeout()
-{
- if (m_OnLongpressed) {
- m_IsLongpressed = m_OnLongpressed(*this);
- }
-
- resetTimer();
- return ECORE_CALLBACK_CANCEL;
-}
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "Ui/Control.h"
-#include "Ui/Window.h"
-#include "Utils/Callback.h"
-
-#define CONTROL_DATA_KEY "Ui::Control"
-
-using namespace Ui;
-
-Control::Control()
- : m_Object(nullptr)
-{
-}
-
-Control::~Control()
-{
- destroyEvasObject();
-}
-
-Evas_Object *Control::create(Evas_Object *parent)
-{
- if (!m_Object) {
- setEvasObject(onCreate(parent));
- onCreated();
- }
-
- return m_Object;
-}
-
-Evas_Object *Control::getEvasObject() const
-{
- return m_Object;
-}
-
-Window *Control::getWindow() const
-{
- return getWindow(getEvasObject());
-}
-
-Control *Control::getControl(Evas_Object *object)
-{
- return (Control *) evas_object_data_get(object, CONTROL_DATA_KEY);
-}
-
-Window *Control::getWindow(Evas_Object *object)
-{
- Evas_Object *window = elm_object_top_widget_get(object);
- return static_cast<Window *>(getControl(window));
-}
-
-void Control::setEvasObject(Evas_Object *object)
-{
- m_Object = object;
- if (!evas_object_data_get(m_Object, CONTROL_DATA_KEY)) {
- evas_object_data_set(m_Object, CONTROL_DATA_KEY, this);
- }
-
- evas_object_event_callback_add(m_Object, EVAS_CALLBACK_FREE,
- makeCallback(&Control::onDestroy), this);
-}
-
-Evas_Object *Control::resetEvasObject()
-{
- Evas_Object *object = m_Object;
- evas_object_event_callback_del_full(m_Object, EVAS_CALLBACK_FREE,
- makeCallback(&Control::onDestroy), this);
- m_Object = nullptr;
- return object;
-}
-
-void Control::destroyEvasObject()
-{
- if (m_Object) {
- evas_object_del(resetEvasObject());
- }
-}
-
-void Control::onDestroy(Evas *e, Evas_Object *obj, void *event_info)
-{
- resetEvasObject();
- delete this;
-}
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "Ui/DatePopup.h"
-
-using namespace Ui;
-
-DatePopup::DatePopup(tm date)
- : m_Date(date), m_DatePicker(nullptr)
-{
-}
-
-void DatePopup::setResultCallback(ResultCallback callback)
-{
- m_OnResult = std::move(callback);
-}
-
-void DatePopup::onCreated()
-{
- setTitle("IDS_ST_BODY_SET_DATE");
- addButton("IDS_PB_BUTTON_CANCEL");
- addButton("IDS_PB_SK_SET", [this] {
- onSetPressed();
- return true;
- });
-
- m_DatePicker = elm_datetime_add(getEvasObject());
- elm_datetime_format_set(m_DatePicker, "%%x");
- elm_datetime_value_set(m_DatePicker, &m_Date);
- setContent(m_DatePicker);
-}
-
-void DatePopup::onSetPressed()
-{
- if (m_OnResult) {
- elm_datetime_value_get(m_DatePicker, &m_Date);
- m_OnResult(m_Date);
- }
-}
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "Ui/Editfield.h"
-
-#include <Elementary.h>
-
-using namespace Ui;
-
-Editfield *Editfield::create(Evas_Object *parent, const char *guideText)
-{
- Editfield *editfield = new Editfield();
- editfield->create(parent);
- editfield->setGuideText(guideText);
- return editfield;
-}
-
-Evas_Object *Editfield::onCreate(Evas_Object *parent)
-{
- Evas_Object *layout = elm_layout_add(parent);
- elm_layout_theme_set(layout, "layout", "editfield", "singleline");
-
- Evas_Object *entry = elm_entry_add(parent);
- elm_entry_single_line_set(entry, EINA_TRUE);
- elm_entry_scrollable_set(entry, EINA_TRUE);
- elm_object_part_content_set(layout, "elm.swallow.content", entry);
-
- evas_object_smart_callback_add(entry, "changed", (Evas_Smart_Cb) onChanged, layout);
- evas_object_smart_callback_add(entry, "focused", (Evas_Smart_Cb) onFocused, layout);
- evas_object_smart_callback_add(entry, "unfocused", (Evas_Smart_Cb) onUnfocused, layout);
-
- Evas_Object *button = elm_button_add(parent);
- elm_object_style_set(button, "editfield_clear");
- elm_object_focus_allow_set(button, EINA_FALSE);
- elm_object_part_content_set(layout, "elm.swallow.button", button);
- evas_object_smart_callback_add(button, "clicked", (Evas_Smart_Cb) onClearPressed, entry);
-
- return layout;
-}
-
-void Editfield::setGuideText(const char *guideText)
-{
- elm_object_translatable_part_text_set(getEntry(), "elm.guide", guideText);
-}
-
-Evas_Object *Editfield::getEntry()
-{
- return elm_object_part_content_get(getEvasObject(), "elm.swallow.content");
-}
-
-Evas_Object *Editfield::getClearButton()
-{
- return elm_object_part_content_get(getEvasObject(), "elm.swallow.button");
-}
-
-void Editfield::onChanged(Evas_Object *layout, Evas_Object *entry, void *eventInfo)
-{
- if (elm_entry_is_empty(entry)) {
- elm_object_signal_emit(layout, "elm,action,hide,button", "");
- } else {
- elm_object_signal_emit(layout, "elm,action,show,button", "");
- }
-}
-
-void Editfield::onFocused(Evas_Object *layout, Evas_Object *entry, void *eventInfo)
-{
- elm_object_signal_emit(layout, "elm,state,focused", "");
-}
-
-void Editfield::onUnfocused(Evas_Object *layout, Evas_Object *entry, void *eventInfo)
-{
- elm_object_signal_emit(layout, "elm,state,unfocused", "");
-}
-
-void Editfield::onClearPressed(Evas_Object *entry, Evas_Object *button, void *eventInfo)
-{
- elm_entry_entry_set(entry, "");
- elm_object_focus_set(entry, EINA_TRUE);
-}
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "Ui/Genlist.h"
-#include "Ui/GenlistGroupItem.h"
-
-using namespace Ui;
-
-Evas_Object *Genlist::onCreate(Evas_Object *parent)
-{
- Evas_Object *genlist = elm_genlist_add(parent);
- elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
-
- evas_object_smart_callback_add(genlist, "selected",
- (Evas_Smart_Cb) &Genlist::onItemSelected, this);
- evas_object_smart_callback_add(genlist, "expanded",
- (Evas_Smart_Cb) &Genlist::onItemExpanded, this);
- evas_object_smart_callback_add(genlist, "contracted",
- (Evas_Smart_Cb) &Genlist::onItemContracted, this);
- evas_object_smart_callback_add(genlist, "realized",
- (Evas_Smart_Cb) &Genlist::onItemRealized, this);
- evas_object_smart_callback_add(genlist, "unrealized",
- (Evas_Smart_Cb) &Genlist::onItemUnrealized, this);
-
- return genlist;
-}
-
-GenlistItem *Genlist::getFirstItem() const
-{
- Elm_Object_Item *item = elm_genlist_first_item_get(getEvasObject());
- return (GenlistItem *) elm_object_item_data_get(item);
-}
-
-GenlistItem *Genlist::getLastItem() const
-{
- Elm_Object_Item *item = elm_genlist_last_item_get(getEvasObject());
- return (GenlistItem *) elm_object_item_data_get(item);
-}
-
-GenlistIterator Genlist::begin() const
-{
- return getFirstItem();
-}
-
-GenlistIterator Genlist::end() const
-{
- return nullptr;
-}
-
-void Genlist::insert(GenlistItem *item, GenlistGroupItem *parent,
- GenlistItem *sibling, Position position)
-{
- if (!item) {
- return;
- }
-
- if (item->m_Item) {
- item->pop();
- }
-
- Elm_Object_Item *parentItem = parent ? parent->getObjectItem() : nullptr;
- if (sibling) {
- auto insert = (position == Before) ? elm_genlist_item_insert_before : elm_genlist_item_insert_after;
- item->onInserted(insert(getEvasObject(), item->getItemClass(), item,
- parentItem, sibling->getObjectItem(), item->getType(), nullptr, nullptr));
- } else {
- auto insert = (position == Before) ? elm_genlist_item_append : elm_genlist_item_prepend;
- item->onInserted(insert(getEvasObject(), item->getItemClass(), item,
- parentItem, item->getType(), nullptr, nullptr));
- }
-}
-
-void Genlist::update(const char *parts, Elm_Genlist_Item_Field_Type type)
-{
- Eina_List *list = elm_genlist_realized_items_get(getEvasObject());
- Eina_List *node = nullptr;
- void *item = nullptr;
- EINA_LIST_FOREACH(list, node, item) {
- elm_genlist_item_fields_update((Elm_Object_Item *) item, parts, type);
- }
-
- eina_list_free(list);
-}
-
-void Genlist::onItemSelected(void *data, Evas_Object *obj, Elm_Object_Item *objectItem)
-{
- GenlistItem *item = (GenlistItem *) elm_object_item_data_get(objectItem);
- if (item) {
- item->onSelected(objectItem);
- }
-}
-
-void Genlist::onItemExpanded(void *data, Evas_Object *obj, Elm_Object_Item *objectItem)
-{
- GenlistItem *item = (GenlistItem *) elm_object_item_data_get(objectItem);
- if (item && item->isGroupItem()) {
- dynamic_cast<GenlistGroupItem *>(item)->onExpanded(true);
- }
-}
-
-void Genlist::onItemContracted(void *data, Evas_Object *obj, Elm_Object_Item *objectItem)
-{
- GenlistItem *item = (GenlistItem *) elm_object_item_data_get(objectItem);
- if (item && item->isGroupItem()) {
- dynamic_cast<GenlistGroupItem *>(item)->onExpanded(false);
- }
-}
-
-void Genlist::onItemRealized(void *data, Evas_Object *obj, Elm_Object_Item *objectItem)
-{
- GenlistItem *item = (GenlistItem *) elm_object_item_data_get(objectItem);
- if (item) {
- item->onRealized(objectItem);
- }
-}
-
-void Genlist::onItemUnrealized(void *data, Evas_Object *obj, Elm_Object_Item *objectItem)
-{
- GenlistItem *item = (GenlistItem *) elm_object_item_data_get(objectItem);
- if (item) {
- item->onUnrealized(objectItem);
- }
-}
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "Ui/GenlistCheckItem.h"
-#include "Utils/Callback.h"
-
-using namespace Ui;
-
-GenlistCheckItem::GenlistCheckItem()
- : m_IsChecked(false)
-{ }
-
-bool GenlistCheckItem::isChecked() const
-{
- return m_IsChecked;
-}
-
-void GenlistCheckItem::setChecked(bool isChecked)
-{
- Evas_Object *check = elm_object_item_part_content_get(getObjectItem(), m_CheckPart.c_str());
- if (check) {
- elm_check_state_set(check, isChecked);
- } else {
- m_IsChecked = isChecked;
- }
-}
-
-void GenlistCheckItem::setCheckCallback(CheckCallback callback)
-{
- m_OnChecked = std::move(callback);
-}
-
-Evas_Object *GenlistCheckItem::getContent(Evas_Object *parent, const char *part)
-{
- m_CheckPart = part;
-
- Elm_Check *check = elm_check_add(parent);
- elm_check_state_set(check, m_IsChecked);
- elm_check_state_pointer_set(check, &m_IsChecked);
- evas_object_propagate_events_set(check, EINA_FALSE);
- evas_object_smart_callback_add(check, "changed",
- makeCallback(&GenlistCheckItem::onCheckChanged), this);
-
- return check;
-}
-
-void GenlistCheckItem::onSelected()
-{
- setChecked(!m_IsChecked);
- onChecked();
-}
-
-void GenlistCheckItem::onChecked()
-{
- onChecked(m_IsChecked);
-
- if (m_OnChecked) {
- m_OnChecked(m_IsChecked);
- }
-}
-
-void GenlistCheckItem::onCheckChanged(Evas_Object *check, void *eventInfo)
-{
- onChecked();
-}
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "Ui/GenlistGroupItem.h"
-#include "Ui/Genlist.h"
-#include <algorithm>
-
-using namespace Ui;
-
-GenlistGroupItem::GenlistGroupItem()
- : m_FirstItem(nullptr), m_LastItem(nullptr)
-{
-}
-
-GenlistGroupItem::~GenlistGroupItem()
-{
- for (auto &&item : m_ItemsCache) {
- delete item;
- }
-}
-
-GenlistIterator GenlistGroupItem::begin()
-{
- return m_FirstItem;
-}
-
-GenlistIterator GenlistGroupItem::end()
-{
- return m_LastItem ? m_LastItem->getNextItem() : nullptr;
-}
-
-bool GenlistGroupItem::empty() const
-{
- return m_FirstItem == nullptr;
-}
-
-bool GenlistGroupItem::isExpanded() const
-{
- Elm_Object_Item *item = getObjectItem();
- if (!item) {
- return false;
- }
-
- if (getType() == ELM_GENLIST_ITEM_TREE) {
- return elm_genlist_item_expanded_get(item);
- }
-
- return true;
-}
-
-GenlistGroupItem *GenlistGroupItem::getNextGroupItem() const
-{
- GenlistItem *item = m_LastItem ? m_LastItem->getNextItem() : getNextItem();
- if (item && item->isGroupItem()) {
- return dynamic_cast<GenlistGroupItem *>(item);
- }
-
- return nullptr;
-}
-
-GenlistGroupItem *GenlistGroupItem::getPrevGroupItem() const
-{
- GenlistItem *item = getPrevItem();
- if (item) {
- if (item->isGroupItem()) {
- return dynamic_cast<GenlistGroupItem *>(item);
- } else {
- return item->getParentItem();
- }
- }
-
- return nullptr;
-}
-
-void GenlistGroupItem::insertSubItem(GenlistItem *item, GenlistItem *sibling,
- Genlist::Position position)
-{
- if (!item) {
- return;
- }
-
- Genlist *genlist = getParent();
- if (genlist && isExpanded()) {
- genlist->insert(item, this, sibling, position);
- } else {
- auto pos = m_ItemsCache.end();
- if (sibling) {
- pos = std::find(m_ItemsCache.begin(), m_ItemsCache.end(), sibling);
- }
-
- if (pos != m_ItemsCache.end()) {
- if (position == Genlist::After) {
- ++pos;
- }
- } else {
- if (position == Genlist::After) {
- pos = m_ItemsCache.begin();
- }
- }
-
- m_ItemsCache.insert(pos, item);
- }
-}
-
-Elm_Genlist_Item_Class *GenlistGroupItem::getItemClass() const
-{
- static Elm_Genlist_Item_Class itc = createItemClass("group_index");
- return &itc;
-}
-
-void GenlistGroupItem::onInserted()
-{
- if (isExpanded()) {
- insertSubItems();
- }
-}
-
-void GenlistGroupItem::onPop()
-{
- popSubItems();
-}
-
-void GenlistGroupItem::onExpanded(bool isExpanded)
-{
- if (isExpanded) {
- insertSubItems();
- } else {
- popSubItems();
- }
-}
-
-void GenlistGroupItem::insertSubItems()
-{
- Genlist *genlist = getParent();
- if (genlist) {
- for (auto &&item : m_ItemsCache) {
- genlist->insert(item, this);
- }
- m_ItemsCache.clear();
- }
-}
-
-void GenlistGroupItem::popSubItems()
-{
- for (auto it = begin(), endIt = end(); it != endIt; ) {
- GenlistItem *item = *it++;
- item->pop();
- m_ItemsCache.push_back(item);
- }
-}
-
-void GenlistGroupItem::onSubItemInserted(GenlistItem *item)
-{
- if (!m_FirstItem) {
- m_FirstItem = m_LastItem = item;
- return;
- }
-
- if (item->getNextItem() == m_FirstItem) {
- m_FirstItem = item;
- } else if (item->getPrevItem() == m_LastItem) {
- m_LastItem = item;
- }
-}
-
-void GenlistGroupItem::onSubItemDestroy(GenlistItem *item)
-{
- if (m_FirstItem == m_LastItem) {
- m_FirstItem = m_LastItem = nullptr;
- return;
- }
-
- if (item == m_FirstItem) {
- m_FirstItem = item->getNextItem();
- } else if (item == m_LastItem) {
- m_LastItem = item->getPrevItem();
- }
-}
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "Ui/GenlistItem.h"
-#include "Ui/GenlistGroupItem.h"
-#include "Ui/Genlist.h"
-#include "Utils/Callback.h"
-
-using namespace Ui;
-
-GenlistItem::GenlistItem()
- : m_Item(nullptr), m_Preserve(false),
- m_IsRealized(false), m_IsFocusPending(false)
-{
-}
-
-GenlistItem::~GenlistItem()
-{
- if (m_Item) {
- pop();
- }
-}
-
-bool GenlistItem::isRealized() const
-{
- return m_IsRealized;
-}
-
-Elm_Object_Item *GenlistItem::getObjectItem() const
-{
- return m_Item;
-}
-
-Genlist *GenlistItem::getParent() const
-{
- Evas_Object *genlist = elm_object_item_widget_get(getObjectItem());
- return static_cast<Genlist *>(Control::getControl(genlist));
-}
-
-GenlistGroupItem *GenlistItem::getParentItem() const
-{
- Elm_Object_Item *objectItem = elm_genlist_item_parent_get(getObjectItem());
- GenlistItem *item = (GenlistItem *) elm_object_item_data_get(objectItem);
- return dynamic_cast<GenlistGroupItem *>(item);
-}
-
-GenlistItem *GenlistItem::getNextItem() const
-{
- Elm_Object_Item *item = elm_genlist_item_next_get(getObjectItem());
- return (GenlistItem *) elm_object_item_data_get(item);
-}
-
-GenlistItem *GenlistItem::getPrevItem() const
-{
- Elm_Object_Item *item = elm_genlist_item_prev_get(getObjectItem());
- return (GenlistItem *) elm_object_item_data_get(item);
-}
-
-void GenlistItem::setSelectCallback(SelectCallback callback)
-{
- m_OnSelected = std::move(callback);
-}
-
-void GenlistItem::scrollTo(Elm_Genlist_Item_Scrollto_Type position, bool isAnimated)
-{
- auto scroll = isAnimated ? elm_genlist_item_bring_in : elm_genlist_item_show;
- scroll(getObjectItem(), position);
-}
-
-void GenlistItem::focus(Elm_Genlist_Item_Scrollto_Type position, bool isAnimated)
-{
- scrollTo(position, isAnimated);
- if (m_IsRealized) {
- onFocused();
- } else {
- m_IsFocusPending = true;
- }
-}
-
-void GenlistItem::pop()
-{
- onPop();
-
- GenlistGroupItem *parent = getParentItem();
- if (parent) {
- parent->onSubItemDestroy(this);
- }
-
- m_Preserve = true;
- elm_object_item_del(m_Item);
- m_Preserve = false;
-}
-
-Elm_Genlist_Item_Class GenlistItem::createItemClass(const char *style,
- const char *decorateStyle, const char *editStyle)
-{
- Elm_Genlist_Item_Class itc = { ELM_GEN_ITEM_CLASS_HEADER, 0 };
- itc.item_style = style;
- itc.decorate_item_style = decorateStyle;
- itc.decorate_all_item_style = editStyle;
- itc.func.text_get = makeCallback(&GenlistItem::getText);
- itc.func.content_get = makeCallback(&GenlistItem::getContent);
- itc.func.state_get = makeCallback(&GenlistItem::getState);
- itc.func.del = makeCallback(&GenlistItem::onDestroy);
-
- return itc;
-}
-
-Elm_Genlist_Item_Class *GenlistItem::getItemClass() const
-{
- static Elm_Genlist_Item_Class itc = createItemClass("type1");
- return &itc;
-}
-
-void GenlistItem::onInserted(Elm_Object_Item *item)
-{
- m_Item = item;
- GenlistGroupItem *parent = getParentItem();
- if (parent) {
- parent->onSubItemInserted(this);
- }
- onInserted();
-}
-
-void GenlistItem::onDestroy(Evas_Object *genlist)
-{
- m_Item = nullptr;
- if (!m_Preserve) {
- delete this;
- }
-}
-
-void GenlistItem::onSelected(Elm_Object_Item *item)
-{
- elm_genlist_item_selected_set(item, EINA_FALSE);
- onSelected();
-
- if (m_OnSelected) {
- m_OnSelected();
- }
-}
-
-void GenlistItem::onRealized(Elm_Object_Item *item)
-{
- if (!m_Item) {
- m_Item = item;
- }
-
- m_IsRealized = true;
- onRealized();
-
- if (m_IsFocusPending) {
- onFocused();
- m_IsFocusPending = false;
- }
-}
-
-void GenlistItem::onUnrealized(Elm_Object_Item *item)
-{
- m_IsRealized = false;
- onUnrealized();
-}
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "Ui/GenlistIterator.h"
-#include "Ui/GenlistItem.h"
-
-using namespace Ui;
-
-GenlistIterator::GenlistIterator(GenlistItem *item)
- : m_Item(item)
-{
-}
-
-GenlistIterator &GenlistIterator::operator++()
-{
- if (m_Item) {
- m_Item = m_Item->getNextItem();
- }
- return *this;
-}
-
-GenlistIterator GenlistIterator::operator++(int)
-{
- auto it(*this);
- ++*this;
- return it;
-}
-
-GenlistIterator &GenlistIterator::operator--()
-{
- if (m_Item) {
- m_Item = m_Item->getPrevItem();
- }
- return *this;
-}
-
-GenlistIterator GenlistIterator::operator--(int)
-{
- auto it(*this);
- --*this;
- return it;
-}
-
-GenlistItem *GenlistIterator::operator*() const
-{
- return m_Item;
-}
-
-bool GenlistIterator::operator!=(const GenlistIterator &that) const
-{
- return m_Item != that.m_Item;
-}
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "Ui/Hoversel.h"
-#include "Ui/Window.h"
-#include "Utils/Callback.h"
-
-#include <efl_extension.h>
-
-using namespace Ui;
-
-Elm_Object_Item *Hoversel::addItem(const char *text, int value)
-{
- Elm_Object_Item *item = elm_hoversel_item_add(getEvasObject(), text,
- nullptr, ELM_ICON_NONE, nullptr, (void *) (long) value);
- elm_object_item_text_translatable_set(item, EINA_TRUE);
- return item;
-}
-
-void Hoversel::setText(const char *text)
-{
- elm_object_translatable_text_set(getEvasObject(), text);
-}
-
-void Hoversel::setSelectedCallback(SelectedCallback callback)
-{
- m_OnSelected = std::move(callback);
-}
-
-Evas_Object *Hoversel::onCreate(Evas_Object *parent)
-{
- Evas_Object *hoverParent = parent;
- Window *window = getWindow(parent);
- if (window) {
- hoverParent = window->getBaseLayout();
- }
-
- Evas_Object *hoversel = elm_hoversel_add(parent);
- elm_hoversel_hover_parent_set(hoversel, hoverParent);
-
- evas_object_smart_callback_add(hoversel, "selected",
- (Evas_Smart_Cb) makeCallback(&Hoversel::onSelected), this);
- evas_object_smart_callback_add(hoversel, "expanded",
- &Hoversel::onExpanded, this);
- evas_object_smart_callback_add(hoversel, "dismissed",
- &Hoversel::onDismissed, this);
-
- return hoversel;
-}
-
-void Hoversel::onSelected(Evas_Object *hoversel, Elm_Object_Item *item)
-{
- int value = (long) elm_object_item_data_get(item);
- if (!m_OnSelected || m_OnSelected(value)) {
- setText(elm_object_item_translatable_text_get(item));
- }
-}
-
-void Hoversel::onExpanded(void *data, Evas_Object *hoversel, void *eventInfo)
-{
- eext_object_event_callback_add(hoversel, EEXT_CALLBACK_BACK,
- &Hoversel::onBackPressed, nullptr);
-}
-
-void Hoversel::onDismissed(void *data, Evas_Object *hoversel, void *eventInfo)
-{
- eext_object_event_callback_del(hoversel, EEXT_CALLBACK_BACK,
- &Hoversel::onBackPressed);
-}
-
-void Hoversel::onBackPressed(void *data, Evas_Object *hoversel, void *eventInfo)
-{
- elm_hoversel_hover_end(hoversel);
-}
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "Ui/ListPopup.h"
-#include <app_i18n.h>
-
-using namespace Ui;
-
-struct ListPopup::ItemData
-{
- std::string text;
- void *userData;
- ItemSelectedCallback callback;
-};
-
-ListPopup::ListPopup(const char *itemStyle)
- : m_Genlist(nullptr), m_ItemClass{ ELM_GEN_ITEM_CLASS_HEADER, 0 }
-{
- m_ItemClass.item_style = itemStyle;
- m_ItemClass.func.text_get = (Elm_Gen_Item_Text_Get_Cb) &ListPopup::getText;
- m_ItemClass.func.content_get = (Elm_Gen_Item_Content_Get_Cb) &ListPopup::getContent;
- m_ItemClass.func.del = [](void *data, Evas_Object *obj) {
- delete (ItemData *) data;
- };
-}
-
-Elm_Object_Item *ListPopup::addItem(std::string text, void *data, ItemSelectedCallback callback)
-{
- ItemData *itemData = new ItemData{ std::move(text), data, std::move(callback) };
- return elm_genlist_item_append(m_Genlist, &m_ItemClass, itemData,
- nullptr, ELM_GENLIST_ITEM_NONE, nullptr, nullptr);
-}
-
-Elm_Object_Item *ListPopup::addItem(std::string text, ItemSelectedCallback callback)
-{
- return addItem(std::move(text), nullptr, std::move(callback));
-}
-
-Elm_Object_Item *ListPopup::addItem(void *data, ItemSelectedCallback callback)
-{
- return addItem("", data, std::move(callback));
-}
-
-void ListPopup::setSelectedCallback(SelectedCallback callback)
-{
- m_OnSelected = std::move(callback);
-}
-
-Evas_Object *ListPopup::onCreate(Evas_Object *parent)
-{
- Evas_Object *popup = Popup::onCreate(parent);
-
- m_Genlist = elm_genlist_add(parent);
- elm_genlist_homogeneous_set(m_Genlist, EINA_TRUE);
- elm_genlist_mode_set(m_Genlist, ELM_LIST_COMPRESS);
- elm_scroller_content_min_limit(m_Genlist, EINA_FALSE, EINA_TRUE);
- elm_object_part_content_set(popup, "elm.swallow.content", m_Genlist);
-
- evas_object_smart_data_set(m_Genlist, this);
- evas_object_smart_callback_add(m_Genlist, "selected",
- (Evas_Smart_Cb) &ListPopup::onSelected, this);
-
- return popup;
-}
-
-char *ListPopup::getText(ItemData *itemData, Evas_Object *genlist, const char *part)
-{
- ListPopup *popup = (ListPopup *) evas_object_smart_data_get(genlist);
- char *text = popup->getItemText(itemData->userData, part);
- if (!text && strcmp(part, "elm.text") == 0) {
- text = strdup(_(itemData->text.c_str()));
- }
-
- return text;
-}
-
-Evas_Object *ListPopup::getContent(ItemData *itemData, Evas_Object *genlist, const char *part)
-{
- ListPopup *popup = (ListPopup *) evas_object_smart_data_get(genlist);
- return popup->getItemContent(itemData->userData, part);
-}
-
-void ListPopup::onSelected(ListPopup *popup, Evas_Object *genlist, Elm_Object_Item *item)
-{
- ItemData *itemData = (ItemData *) elm_object_item_data_get(item);
- popup->onItemSelected(itemData->userData);
-
- if (itemData->callback) {
- itemData->callback();
- }
-
- if (popup->m_OnSelected) {
- popup->m_OnSelected(itemData->userData);
- }
-
- elm_genlist_item_selected_set(item, EINA_FALSE);
-
- /* FIXME: Destroying genlist from it's "selected" callback causes crash. */
- ecore_job_add([](void *data) {
- delete (ListPopup *) data;
- }, popup);
-}
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "Ui/Menu.h"
-#include "Ui/Window.h"
-#include "Utils/Callback.h"
-
-#include <efl_extension.h>
-
-using namespace Ui;
-
-Elm_Object_Item *Menu::addItem(const char *text, ItemCallback callback)
-{
- Elm_Object_Item *item = elm_ctxpopup_item_append(getEvasObject(), text, nullptr,
- &Menu::onItemSelect, new ItemCallback(std::move(callback)));
- elm_object_item_text_translatable_set(item, EINA_TRUE);
- elm_object_item_del_cb_set(item, &Menu::onItemDestroy);
- return item;
-}
-
-void Menu::show()
-{
- Evas_Coord y = 0, h = 0;
- evas_object_geometry_get(getWindow()->getEvasObject(), nullptr, &y, nullptr, &h);
-
- Evas_Object *menu = getEvasObject();
- evas_object_move(menu, 0, y + h);
- evas_object_show(menu);
-}
-
-Evas_Object *Menu::onCreate(Evas_Object *parent)
-{
- Window *window = getWindow(parent);
- if (window) {
- parent = window->getEvasObject();
- }
-
- Evas_Object *menu = elm_ctxpopup_add(parent);
- elm_object_style_set(menu, "more/default");
-
- evas_object_smart_callback_add(menu, "dismissed",
- makeCallback(&Menu::onDismissed), this);
- eext_object_event_callback_add(menu, EEXT_CALLBACK_BACK,
- eext_ctxpopup_back_cb, nullptr);
- eext_object_event_callback_add(menu, EEXT_CALLBACK_MORE,
- eext_ctxpopup_back_cb, nullptr);
-
- return menu;
-}
-
-void Menu::onItemSelect(void *data, Evas_Object *obj, void *item)
-{
- ItemCallback &callback = *(ItemCallback *) data;
- if (callback) {
- callback();
- }
-
- elm_ctxpopup_dismiss(obj);
-}
-
-void Menu::onItemDestroy(void *data, Evas_Object *obj, void *item)
-{
- delete (ItemCallback *) data;
-}
-
-void Menu::onDismissed(Evas_Object *obj, void *eventInfo)
-{
- delete this;
-}
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "Ui/Naviframe.h"
-#include "Ui/NaviframePage.h"
-#include "Ui/View.h"
-#include "Utils/Callback.h"
-
-using namespace Ui;
-
-Naviframe::Naviframe()
- : Navigator(StackNavigator)
-{
-}
-
-View *Naviframe::getCurrentView() const
-{
- Elm_Object_Item *item = elm_naviframe_top_item_get(getEvasObject());
- if (!item) {
- return nullptr;
- }
-
- return static_cast<View*>(elm_object_item_data_get(item));
-}
-
-Evas_Object *Naviframe::onCreate(Evas_Object *parent)
-{
- Evas_Object *naviframe = elm_naviframe_add(parent);
- elm_naviframe_prev_btn_auto_pushed_set(naviframe, EINA_TRUE);
-
- return naviframe;
-}
-
-NavigatorPage *Naviframe::attachView(View *view)
-{
- Elm_Object_Item *naviItem = elm_naviframe_item_push(getEvasObject(), nullptr,
- nullptr, nullptr, view->getEvasObject(), nullptr);
- elm_object_item_data_set(naviItem, view);
- elm_naviframe_item_pop_cb_set(naviItem, makeCallback(&Naviframe::onItemPop), this);
- return new NaviframePage(naviItem);
-}
-
-void Naviframe::navigateToView(View *view)
-{
- if (view != getCurrentView()) {
- NaviframePage *page = static_cast<NaviframePage*>(view->getPage());
- elm_naviframe_item_pop_to(page->m_NaviItem);
- }
-}
-
-Eina_Bool Naviframe::onItemPop(Elm_Object_Item *item)
-{
- evas_object_smart_callback_add(getEvasObject(), "transition,finished",
- makeCallback(&Naviframe::onTransition), this);
-
- View *view = static_cast<View*>(elm_object_item_data_get(item));
- notifyNavigation(view, false);
- return EINA_TRUE;
-}
-
-void Naviframe::onTransition(Evas_Object *obj, void *eventInfo)
-{
- notifyNavigation(getCurrentView(), true);
-
- evas_object_smart_callback_del(getEvasObject(), "transition,finished",
- makeCallback(&Naviframe::onTransition));
-}
-
-bool Naviframe::onBackPressed()
-{
- if (!Navigator::onBackPressed()) {
- return false;
- }
-
- if (elm_naviframe_top_item_get(getEvasObject())
- != elm_naviframe_bottom_item_get(getEvasObject())) {
- elm_naviframe_item_pop(getEvasObject());
- return false;
- }
-
- return true;
-}
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "Ui/NaviframePage.h"
-using namespace Ui;
-
-NaviframePage::NaviframePage(Elm_Object_Item *naviItem)
- : m_NaviItem(naviItem)
-{
-}
-
-NaviframePage::~NaviframePage()
-{
- elm_object_item_part_content_unset(m_NaviItem, "elm.swallow.content");
- Evas_Object *navi = elm_object_item_widget_get(m_NaviItem);
- if (m_NaviItem == elm_naviframe_top_item_get(navi)) {
- elm_naviframe_item_pop(navi);
- } else {
- elm_object_item_del(m_NaviItem);
- }
-}
-
-void NaviframePage::setTitle(const char *title)
-{
- elm_object_item_translatable_part_text_set(m_NaviItem, "elm.text.title", title);
- elm_naviframe_item_title_enabled_set(m_NaviItem, title != nullptr, EINA_TRUE);
-}
-
-void NaviframePage::setStyle(const char *style)
-{
- elm_naviframe_item_style_set(m_NaviItem, style);
-}
-
-void NaviframePage::setContent(const char *part, Evas_Object *content)
-{
- elm_object_item_part_content_set(m_NaviItem, part, content);
-}
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "Ui/Navigator.h"
-
-using namespace Ui;
-
-Navigator::Navigator(NavigatorType type)
- : m_Type(type)
-{
-}
-
-void Navigator::navigateTo(View *view)
-{
- if (!view || view == getCurrentView()) {
- return;
- }
-
- notifyNavigation(getCurrentView(), false);
-
- if (view->getNavigator(m_Type) != this) {
- Navigator *stackNavi = m_StackNavi;
- Navigator *tabNavi = m_TabNavi;
- if (m_Type == StackNavigator) {
- stackNavi = this;
- } else {
- tabNavi = this;
- }
-
- view->create(getEvasObject());
- view->onViewAttached(stackNavi, tabNavi);
- view->onPageAttached(attachView(view));
- }
-
- navigateToView(view);
- notifyNavigation(view, true);
-}
-
-void Navigator::notifyNavigation(View *view, bool isCurrentView)
-{
- if (view) {
- view->onNavigation(isCurrentView);
- }
-}
-
-void Navigator::onNavigation(bool isCurrentView)
-{
- notifyNavigation(getCurrentView(), isCurrentView);
-}
-
-bool Navigator::onBackPressed()
-{
- View *view = getCurrentView();
- return view ? view->onBackPressed() : true;
-}
-
-void Navigator::onMenuPressed()
-{
- View *view = getCurrentView();
- if (view) {
- view->onMenuPressed();
- }
-}
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "Ui/Popup.h"
-#include "Ui/Window.h"
-#include "Utils/Callback.h"
-
-#include <efl_extension.h>
-
-#define PART_POPUP_TITLE "title,text"
-
-using namespace Ui;
-
-namespace
-{
- const char *buttonParts[POPUP_BUTTON_MAX_COUNT] = { "button1", "button2", "button3" };
-}
-
-Popup::Popup()
- : m_ButtonCount(0)
-{
-}
-
-Popup *Popup::create(Evas_Object *parent, const char *title,
- const char *text, const char *button_text)
-{
- Popup *popup = new Popup();
- popup->create(parent);
- popup->setTitle(title);
- popup->setText(text);
- popup->addButton(button_text);
- return popup;
-}
-
-void Popup::setTitle(const char *title)
-{
- elm_object_translatable_part_text_set(getEvasObject(), PART_POPUP_TITLE, title);
-}
-
-void Popup::setText(const char *text)
-{
- elm_object_translatable_text_set(getEvasObject(), text);
-}
-
-void Popup::setContent(Evas_Object *content)
-{
- elm_object_part_content_set(getEvasObject(), "elm.swallow.content", content);
-}
-
-Evas_Object *Popup::addButton(const char *text, ButtonCallback callback)
-{
- if (m_ButtonCount >= POPUP_BUTTON_MAX_COUNT) {
- return nullptr;
- }
-
- Evas_Object *button = elm_button_add(getEvasObject());
- elm_object_style_set(button, "bottom");
- elm_object_translatable_text_set(button, text);
- elm_object_part_content_set(getEvasObject(), buttonParts[m_ButtonCount], button);
-
- m_ButtonCbs[m_ButtonCount] = std::move(callback);
- evas_object_smart_data_set(button, &m_ButtonCbs[m_ButtonCount]);
- evas_object_smart_callback_add(button, "clicked",
- makeCallback(&Popup::onButtonPressed), this);
-
- ++m_ButtonCount;
- return button;
-}
-
-void Popup::setBackCallback(BackCallback callback)
-{
- m_OnBack = std::move(callback);
-}
-
-Evas_Object *Popup::onCreate(Evas_Object *parent)
-{
- Window *window = getWindow(parent);
- if (window) {
- parent = window->getBaseLayout();
- }
-
- Evas_Object *popup = elm_popup_add(parent);
- elm_popup_align_set(popup, ELM_NOTIFY_ALIGN_FILL, 1.0);
- eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK,
- makeCallback(&Popup::onBackPressed), this);
- evas_object_show(popup);
-
- return popup;
-}
-
-void Popup::onButtonPressed(Evas_Object *obj, void *eventInfo)
-{
- ButtonCallback &callback = *(ButtonCallback *) evas_object_smart_data_get(obj);
- if (!callback || callback()) {
- delete this;
- }
-}
-
-void Popup::onBackPressed(Evas_Object *obj, void *eventInfo)
-{
- if (!m_OnBack || m_OnBack()) {
- delete this;
- }
-}
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-
-#include "Ui/ProgressController.h"
-#include "Ui/ProgressPopup.h"
-#include "Utils/Logger.h"
-
-using namespace Ui;
-
-ProgressController::ProgressController(Evas_Object *parent, const char *title, int maxValue)
- : m_IsCanceled(false), m_ProgressPopup(nullptr), m_Thread(nullptr)
-{
- createProgressPopup(parent, title, maxValue);
-}
-
-ProgressController::~ProgressController()
-{
- delete m_ProgressPopup;
-}
-
-void ProgressController::run()
-{
- m_Thread = ecore_thread_feedback_run(onStart, onNotify, onFinish, onCanceled, this, EINA_FALSE);
-}
-
-void ProgressController::setFinishCallback(FinishCallback callback)
-{
- m_OnFinish = std::move(callback);
-}
-
-bool ProgressController::onCancel()
-{
- return true;
-}
-
-void ProgressController::cancel()
-{
- m_IsCanceled = true;
-}
-
-bool ProgressController::onProgress(size_t value)
-{
- ecore_thread_feedback(m_Thread, (void *)value);
-
- return !m_IsCanceled;
-}
-
-void ProgressController::createProgressPopup(Evas_Object *parent, const char *title, int maxValue)
-{
- m_ProgressPopup = new Ui::ProgressPopup(maxValue);
- RETM_IF_ERR(!m_ProgressPopup, "m_ProgressPopup is NULL");
-
- m_ProgressPopup->create(parent);
- m_ProgressPopup->setTitle(title);
-
- auto cancelFunction = [this] {
- if (onCancel()) {
- cancel();
- }
- return false;
- };
- m_ProgressPopup->addButton("IDS_PB_BUTTON_CANCEL", cancelFunction);
- m_ProgressPopup->setBackCallback(cancelFunction);
-
- elm_popup_orient_set(m_ProgressPopup->getEvasObject(), ELM_POPUP_ORIENT_BOTTOM);
-}
-
-void ProgressController::onStart(void *data, Ecore_Thread *thread)
-{
- RETM_IF_ERR(!data, "invalid data");
- ProgressController *controller = (ProgressController *)data;
- controller->onStart(thread);
-}
-
-void ProgressController::onNotify(void *data, Ecore_Thread *thread, void *msgData)
-{
- RETM_IF_ERR(!data || !msgData, "invalid data");
- ProgressController *controller = (ProgressController *)data;
-
- controller->m_ProgressPopup->setProgress((size_t)msgData);
-}
-
-void ProgressController::onFinish(void *data, Ecore_Thread *thread)
-{
- RETM_IF_ERR(!data, "invalid data");
- ProgressController *controller = (ProgressController *)data;
- controller->m_OnFinish(*controller);
-
- delete controller;
-}
-
-void ProgressController::onCanceled(void *data, Ecore_Thread *thread)
-{
- RETM_IF_ERR(!data, "invalid data");
- ProgressController *controller = (ProgressController *)data;
- controller->onCanceled();
-
- delete controller;
-}
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "App/Path.h"
-#include "Ui/ProgressPopup.h"
-#include "Utils/Logger.h"
-
-#include "CommonProgressbarLayout.h"
-
-#define BUFFER_SIZE 64
-
-#define ZERO_PROGRESS "0%"
-
-using namespace Ui;
-
-namespace
-{
- const std::string layoutFilePath = App::getResourcePath(COMMON_PROGRESSBAR_LAYOUT_EDJ);
-}
-
-ProgressPopup::ProgressPopup(size_t maxValue)
- : m_MaxValue(maxValue), m_Progressbar(nullptr)
-{
-}
-
-void ProgressPopup::setProgress(size_t value)
-{
- RETM_IF(value > m_MaxValue, "value is bigger than max value");
- double progressValue = (double)value / m_MaxValue;
-
- char progress[BUFFER_SIZE] = { 0, };
- snprintf(progress, sizeof(progress), "%d%%", (int)(100.0 * progressValue));
-
- char total[BUFFER_SIZE] = { 0, };
- snprintf(total, sizeof(total), "%zu/%zu", value, m_MaxValue);
-
- elm_progressbar_value_set(m_Progressbar, progressValue);
- elm_object_part_text_set(m_Progressbar, "elm.text.bottom.left", progress);
- elm_object_part_text_set(m_Progressbar, "elm.text.bottom.right", total);
-}
-
-Evas_Object *ProgressPopup::onCreate(Evas_Object *parent)
-{
- Evas_Object *popup = Popup::onCreate(parent);
-
- Evas_Object *layout = elm_layout_add(popup);
- elm_layout_file_set(layout, layoutFilePath.c_str(), GROUP_PROGRESSBAR_LAYOUT);
-
- m_Progressbar = elm_progressbar_add(layout);
- elm_progressbar_pulse(m_Progressbar, EINA_TRUE);
-
- char total[BUFFER_SIZE] = { 0, };
- snprintf(total, sizeof(total), "%d/%zu", 0, m_MaxValue);
- elm_object_part_text_set(m_Progressbar, "elm.text.bottom.left", ZERO_PROGRESS);
- elm_object_part_text_set(m_Progressbar, "elm.text.bottom.right", total);
-
- elm_object_part_content_set(layout, PART_PROGRESSBAR, m_Progressbar);
- elm_object_content_set(popup, layout);
-
- return popup;
-}
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "Ui/Scale.h"
-
-#include <Elementary.h>
-
-int Ui::getScaledValue(int value)
-{
- static double factor = elm_config_scale_get() / elm_app_base_scale_get();
- return value * factor;
-}
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "Ui/TabPage.h"
-#include "Utils/Logger.h"
-
-#define BUFFER_SIZE 64
-
-using namespace Ui;
-
-TabPage::TabPage(size_t index, Elm_Object_Item *tabItem)
- : m_Index(index), m_TabItem(tabItem), m_Sizer(nullptr), m_Page(nullptr)
-{
-}
-
-TabPage::~TabPage()
-{
- elm_object_part_content_unset(m_Page, "elm.swallow.content");
- elm_object_item_del(m_TabItem);
-}
-
-Evas_Object *TabPage::onCreate(Evas_Object *parent)
-{
- Evas_Object *layout = elm_layout_add(parent);
- elm_layout_theme_set(layout, "layout", "application", "default");
-
- m_Sizer = evas_object_rectangle_add(evas_object_evas_get(layout));
- evas_object_color_set(m_Sizer, 0, 0, 0, 0);
- elm_object_part_content_set(layout, "elm.swallow.bg", m_Sizer);
-
- m_Page = elm_layout_add(parent);
- elm_layout_theme_set(m_Page, "naviframe", "item", "basic/default");
- elm_layout_signal_emit(m_Page, "elm,state,title,hide", "elm");
- elm_layout_signal_emit(m_Page, "elm,state,toolbar,hide", "elm");
- elm_object_part_content_set(layout, "elm.swallow.content", m_Page);
-
- return layout;
-}
-
-void TabPage::setTitle(const char *title)
-{
- elm_object_item_translatable_text_set(m_TabItem, title);
-}
-
-void TabPage::setStyle(const char *style)
-{
- char buffer[BUFFER_SIZE];
- snprintf(buffer, sizeof(buffer), "%s/default", style);
- elm_layout_theme_set(m_Page, "naviframe", "item", buffer);
-}
-
-void TabPage::setContent(const char *part, Evas_Object *content)
-{
- char buffer[BUFFER_SIZE];
- snprintf(buffer, sizeof(buffer), "elm,state,%s,%s", part, content ? "show" : "hide");
- elm_layout_signal_emit(m_Page, buffer, "elm");
- elm_object_part_content_set(m_Page, part, content);
-}
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "Ui/TabView.h"
-#include "Ui/TabPage.h"
-#include "Utils/Callback.h"
-
-using namespace Ui;
-
-TabView::TabView()
- : Navigator(TabNavigator), m_Tabbar(nullptr), m_Scroller(nullptr), m_Box(nullptr),
- m_Width(0), m_Height(0), m_IsNavigating(false), m_CurrentPage(0)
-{
-}
-
-View *TabView::getCurrentView() const
-{
- return m_CurrentPage < m_Views.size() ? m_Views[m_CurrentPage] : nullptr;
-}
-
-Evas_Object *TabView::onCreate(Evas_Object *parent)
-{
- m_Scroller = elm_scroller_add(parent);
- elm_scroller_page_relative_set(m_Scroller, 1.0, 0.0);
- elm_scroller_page_scroll_limit_set(m_Scroller, 1, 0);
- elm_scroller_loop_set(m_Scroller, EINA_FALSE, EINA_FALSE);
- elm_scroller_policy_set(m_Scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
- elm_object_scroll_lock_y_set(m_Scroller, EINA_TRUE);
-
- evas_object_event_callback_add(m_Scroller, EVAS_CALLBACK_RESIZE,
- makeCallback(&TabView::onResize), this);
- evas_object_smart_callback_add(m_Scroller, "scroll,page,changed",
- makeCallback(&TabView::onPageChanged), this);
-
- m_Box = elm_box_add(m_Scroller);
- elm_box_horizontal_set(m_Box, EINA_TRUE);
- elm_object_content_set(m_Scroller, m_Box);
-
- return m_Scroller;
-}
-
-void TabView::onPageAttached()
-{
- m_Tabbar = elm_toolbar_add(getEvasObject());
- elm_toolbar_shrink_mode_set(m_Tabbar, ELM_TOOLBAR_SHRINK_EXPAND);
- elm_toolbar_select_mode_set(m_Tabbar, ELM_OBJECT_SELECT_MODE_ALWAYS);
- elm_toolbar_transverse_expanded_set(m_Tabbar, EINA_TRUE);
- evas_object_smart_data_set(m_Tabbar, this);
- evas_object_smart_callback_add(m_Tabbar, "selected",
- makeCallback(&TabView::onTabSelect), this);
-
- getPage()->setStyle("tabbar/notitle");
- getPage()->setContent("tabbar", m_Tabbar);
-}
-
-NavigatorPage *TabView::attachView(View *view)
-{
- Elm_Object_Item *item = elm_toolbar_item_append(m_Tabbar, nullptr, nullptr, nullptr, nullptr);
- elm_object_item_data_set(item, view);
- elm_object_item_del_cb_set(item, &TabView::onTabDestroy);
- m_Views.push_back(view);
-
- size_t index = m_Views.size() - 1;
- TabPage *page = new TabPage(index, item);
-
- Evas_Object *layout = page->create(getEvasObject());
- page->setContent("elm.swallow.content", view->create(layout));
- evas_object_size_hint_min_set(page->m_Sizer, m_Width, m_Height);
- elm_box_pack_end(m_Box, layout);
- evas_object_show(layout);
-
- return page;
-}
-
-void TabView::navigateToView(View *view)
-{
- m_IsNavigating = true;
-
- TabPage *page = static_cast<TabPage *>(view->getPage());
- elm_scroller_page_show(m_Scroller, page->m_Index, 0);
- elm_toolbar_item_selected_set(page->m_TabItem, EINA_TRUE);
- m_CurrentPage = page->m_Index;
-
- m_IsNavigating = false;
-}
-
-void TabView::onTabDestroy(void *data, Evas_Object *obj, void *tabItem)
-{
- TabView *tabView = (TabView *) evas_object_smart_data_get(obj);
- TabPage *page = static_cast<TabPage *>(((View *) data)->getPage());
-
- auto it = tabView->m_Views.begin() + page->m_Index;
- it = tabView->m_Views.erase(it);
-
- for (; it != tabView->m_Views.end(); ++it) {
- page = static_cast<TabPage *>((*it)->getPage());
- --page->m_Index;
- }
-}
-
-void TabView::onTabSelect(Evas_Object *obj, void *tabItem)
-{
- View *view = (View *) elm_object_item_data_get((Elm_Object_Item *) tabItem);
- if (!m_IsNavigating) {
- navigateTo(view);
- }
-}
-
-void TabView::onPageChanged(Evas_Object *obj, void *eventInfo)
-{
- int index = 0;
- elm_scroller_current_page_get(m_Scroller, &index, nullptr);
- if (!m_IsNavigating) {
- navigateTo(m_Views[index]);
- }
-}
-
-void TabView::onResize(Evas *e, Evas_Object *obj, void *eventInfo)
-{
- evas_object_geometry_get(obj, nullptr, nullptr, &m_Width, &m_Height);
-
- for (auto &&view : m_Views) {
- TabPage *page = static_cast<TabPage *>(view->getPage());
- evas_object_size_hint_min_set(page->m_Sizer, m_Width, m_Height);
- }
-
- elm_scroller_page_size_set(m_Scroller, m_Width, m_Height);
- elm_scroller_page_show(m_Scroller, m_CurrentPage, 0);
-}
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "Ui/Thumbnail.h"
-#include "Ui/Scale.h"
-
-#include "App/Path.h"
-#include "CommonThumbnail.h"
-
-using namespace Ui;
-
-namespace
-{
- const struct
- {
- const char *groupMask;
- const char *groupDefault;
- } params[] = {
- { GROUP_THUMBNAIL_SMALL, GROUP_THUMBNAIL_DEFAULT_SMALL },
- { GROUP_THUMBNAIL_MEDIUM, GROUP_THUMBNAIL_DEFAULT_MEDIUM },
- { GROUP_THUMBNAIL_LARGE, GROUP_THUMBNAIL_DEFAULT_LARGE }
- };
-
- const std::string layoutPath = App::getResourcePath(COMMON_THUMBNAIL_EDJ);
-}
-
-Thumbnail::Thumbnail(Size size)
- : m_Size(size), m_Image(nullptr)
-{
-}
-
-Thumbnail *Thumbnail::create(Evas_Object *parent, Size size, const char *path)
-{
- Thumbnail *thumbnail = new Thumbnail(size);
- thumbnail->create(parent);
- thumbnail->setImagePath(path);
- return thumbnail;
-}
-
-Evas_Object *Thumbnail::getImage() const
-{
- return m_Image;
-}
-
-void Thumbnail::setImagePath(const char *path)
-{
- if (path && *path) {
- elm_image_file_set(m_Image, path, nullptr);
- } else {
- elm_image_file_set(m_Image, layoutPath.c_str(), params[m_Size].groupDefault);
- }
-}
-
-void Thumbnail::setSizeHint(bool isSet)
-{
- static int sizes[] = {
- getScaledValue(THUMBNAIL_SMALL_SIZE),
- getScaledValue(THUMBNAIL_MEDIUM_SIZE),
- getScaledValue(THUMBNAIL_LARGE_SIZE)
- };
-
- int size = 0;
- if (isSet) {
- size = sizes[m_Size];
- }
-
- evas_object_size_hint_min_set(m_Image, size, size);
-}
-
-Evas_Object *Thumbnail::onCreate(Evas_Object *parent)
-{
- Evas_Object *layout = elm_layout_add(parent);
- elm_layout_file_set(layout, layoutPath.c_str(), params[m_Size].groupMask);
-
- m_Image = elm_image_add(layout);
- elm_image_aspect_fixed_set(m_Image, EINA_TRUE);
- elm_image_fill_outside_set(m_Image, EINA_TRUE);
- elm_object_part_content_set(layout, "elm.swallow.content", m_Image);
-
- return layout;
-}
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "Ui/View.h"
-
-using namespace Ui;
-
-View::View()
- : m_StackNavi(nullptr), m_TabNavi(nullptr),
- m_NaviPage(nullptr)
-{
-}
-
-View::~View()
-{
- delete m_NaviPage;
-}
-
-Navigator *View::getNavigator(NavigatorType type) const
-{
- return type == StackNavigator ? m_StackNavi : m_TabNavi;
-}
-
-NavigatorPage *View::getPage() const
-{
- return m_NaviPage;
-}
-
-void View::onViewAttached(Navigator *stackNavi, Navigator *tabNavi)
-{
- m_StackNavi = stackNavi;
- m_TabNavi = tabNavi;
-}
-
-void View::onPageAttached(NavigatorPage *page)
-{
- if (page != m_NaviPage) {
- delete m_NaviPage;
- m_NaviPage = page;
- }
-
- onPageAttached();
-}
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the License);
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "Ui/Window.h"
-#include "Ui/View.h"
-#include "Utils/Callback.h"
-
-#include <efl_extension.h>
-
-using namespace Ui;
-
-Window::Window()
- : m_Conform(nullptr), m_Layout(nullptr), m_MainView(nullptr)
-{
-}
-
-Evas_Object *Window::onCreate(Evas_Object *parent)
-{
- Evas_Object *window = elm_win_add(nullptr, nullptr, ELM_WIN_BASIC);
- elm_win_indicator_mode_set(window, ELM_WIN_INDICATOR_SHOW);
- elm_win_conformant_set(window, EINA_TRUE);
- evas_object_show(window);
-
- Evas_Object *bg = elm_bg_add(window);
- evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_win_resize_object_add(window, bg);
- evas_object_show(bg);
-
- m_Conform = elm_conformant_add(window);
- evas_object_size_hint_weight_set(m_Conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_win_resize_object_add(window, m_Conform);
- evas_object_show(m_Conform);
-
- m_Layout = elm_layout_add(m_Conform);
- elm_layout_theme_set(m_Layout, "layout", "application", "default");
- evas_object_size_hint_weight_set(m_Layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_object_content_set(m_Conform, m_Layout);
- evas_object_show(m_Layout);
-
- eext_object_event_callback_add(m_Layout, EEXT_CALLBACK_BACK,
- makeCallback(&Window::onBackPressed), this);
- eext_object_event_callback_add(m_Layout, EEXT_CALLBACK_MORE,
- makeCallback(&Window::onMenuPressed), this);
-
- return window;
-}
-
-Evas_Object *Window::getConformant() const
-{
- return m_Conform;
-}
-
-Evas_Object *Window::getBaseLayout() const
-{
- return m_Layout;
-}
-
-void Window::attachView(View *view)
-{
- m_MainView = view;
- elm_object_part_content_set(m_Layout, "elm.swallow.content", view->create(m_Layout));
-}
-
-void Window::onBackPressed(Evas_Object *obj, void *eventInfo)
-{
- if (!m_MainView || m_MainView->onBackPressed()) {
- elm_win_lower(getEvasObject());
- }
-}
-
-void Window::onMenuPressed(Evas_Object *obj, void *eventInfo)
-{
- if (m_MainView) {
- m_MainView->onMenuPressed();
- }
-}
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "Utils/Tracer.h"
-#include <dlog.h>
-
-using namespace Utils;
-
-void subtractTime(const timespec &a, const timespec &b, timespec &res)
-{
- static const size_t ratio(1000000000);
-
- res.tv_sec = b.tv_sec - a.tv_sec;
- res.tv_nsec = b.tv_nsec - a.tv_nsec;
- if (res.tv_nsec < 0)
- {
- --res.tv_sec;
- res.tv_nsec += ratio;
- }
-}
-
-Tracer::Tracer(const char *tag, const char *file, const char *func, int line)
- : m_Tag(tag), m_File(file), m_Func(func)
-{
- dlog_print(DLOG_DEBUG, m_Tag, "%s: %s(%d) <<< called", m_File, m_Func, line);
- clock_gettime(CLOCK_REALTIME, &m_startTime);
-}
-
-Tracer::~Tracer()
-{
- timespec endTime;
- clock_gettime(CLOCK_REALTIME, &endTime);
-
- timespec res;
- subtractTime(m_startTime, endTime, res);
-
- dlog_print(DLOG_DEBUG, m_Tag, "%s: %s >>> returned in %d.%03d seconds",
- m_File, m_Func, res.tv_sec, res.tv_nsec / 1000000);
-}
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include "Utils/UniString.h"
-#include <cstring>
-#include <memory>
-
-using namespace Utils;
-
-UniString::UniString(const char *utf8Str)
-{
- if (utf8Str) {
- m_Utf8Str = utf8Str;
- }
- m_UniStr = fromUtf8(m_Utf8Str);
-}
-
-bool UniString::operator<(const UniString &that) const
-{
- return i18n_ustring_compare_code_point_order(m_UniStr.c_str(), that.m_UniStr.c_str()) < 0;
-}
-
-bool UniString::operator>(const UniString &that) const
-{
- return i18n_ustring_compare_code_point_order(m_UniStr.c_str(), that.m_UniStr.c_str()) > 0;
-}
-
-bool UniString::operator==(const UniString &that) const
-{
- return i18n_ustring_compare_code_point_order(m_UniStr.c_str(), that.m_UniStr.c_str()) == 0;
-}
-
-bool UniString::operator!=(const UniString &that) const
-{
- return i18n_ustring_compare_code_point_order(m_UniStr.c_str(), that.m_UniStr.c_str()) != 0;
-}
-
-bool UniString::operator<=(const UniString &that) const
-{
- return i18n_ustring_compare_code_point_order(m_UniStr.c_str(), that.m_UniStr.c_str()) <= 0;
-}
-
-bool UniString::operator>=(const UniString &that) const
-{
- return i18n_ustring_compare_code_point_order(m_UniStr.c_str(), that.m_UniStr.c_str()) >= 0;
-}
-
-const UniString::I18nString &UniString::getI18nStr() const
-{
- return m_UniStr;
-}
-
-const std::string &UniString::getUtf8Str() const
-{
- if (m_Utf8Str.empty() && !m_UniStr.empty()) {
- m_Utf8Str = toUtf8(m_UniStr);
- }
-
- return m_Utf8Str;
-}
-
-std::string UniString::toUtf8(const I18nString &ustring)
-{
- char fakeValue;
- int length = 0;
- i18n_error_code_e err = I18N_ERROR_NONE;
- i18n_ustring_to_UTF8(&fakeValue, 1, &length, ustring.c_str(), -1, &err);
-
- std::string retVal(length + 1, 0);
- i18n_ustring_to_UTF8(&retVal[0], length + 1, &length, ustring.c_str(), -1, &err);
-
- return retVal;
-}
-
-UniString::I18nString UniString::fromUtf8(const std::string &utf8Str)
-{
- i18n_uchar fakeValue;
- int length = 0;
- i18n_error_code_e err = I18N_ERROR_NONE;
- i18n_ustring_from_UTF8(&fakeValue, 1, &length, utf8Str.c_str(), -1, &err);
-
- I18nString retVal(length + 1, 0);
- i18n_ustring_from_UTF8(&retVal[0], length + 1, &length, utf8Str.c_str(), -1, &err);
-
- return retVal;
-}
<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.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.tizen.nativecore.NativeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<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/appfw""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/attach-panel""/>
<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/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/wifi-direct""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/dbus-1.0/include""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/glib-2.0/include""/>
- <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/attach-panel""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/lib-apps-common/inc}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/lib-apps-common/res/apps-common/edje}""/>
<listOptionValue builtIn="false" value=""${workspace_loc:/lib-common/inc}""/>
- <listOptionValue builtIn="false" value=""${workspace_loc:/lib-contact/res/input/edje}""/>
<listOptionValue builtIn="false" value=""${workspace_loc:/lib-common/res/common/edje}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/lib-contact/res/input/edje}""/>
<listOptionValue builtIn="false" value=""${workspace_loc:/lib-contact/res/details/edje}""/>
</option>
<option id="sbi.gnu.cpp.compiler.option.frameworks.core.708088795" name="Tizen-Frameworks" superClass="sbi.gnu.cpp.compiler.option.frameworks.core" valueType="userObjs">
<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""/>
</option>
<option id="gnu.cpp.link.option.paths.1211677834" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/lib}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/lib-apps-common/${ConfigName}}""/>
<listOptionValue builtIn="false" value=""${workspace_loc:/lib-common/${ConfigName}}""/>
</option>
<option id="gnu.cpp.link.option.libs.812315232" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" valueType="libs">
+ <listOptionValue builtIn="false" srcPrefixMapping="" srcRootPath="" value="apps-common"/>
<listOptionValue builtIn="false" srcPrefixMapping="" srcRootPath="" value="common"/>
</option>
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1393240169" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings">
+ <externalSettings containerId="lib-apps-common;" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
<externalSettings containerId="lib-common;" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
</storageModule>
</cconfiguration>
<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.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.tizen.nativecore.NativeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.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/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""/>
<name>lib-contact</name>
<comment></comment>
<projects>
+ <project>lib-apps-common</project>
<project>lib-common</project>
</projects>
<buildSpec>
file(GLOB_RECURSE SOURCES src/*.cpp)
include_directories(
+ ${CMAKE_SOURCE_DIR}/lib-apps-common/inc
+ ${CMAKE_SOURCE_DIR}/lib-apps-common/res/apps-common/edje
${CMAKE_SOURCE_DIR}/lib-common/inc
${CMAKE_SOURCE_DIR}/lib-common/res/common/edje
${CMAKE_CURRENT_SOURCE_DIR}/inc
)
add_library(${PROJECT_NAME} SHARED ${SOURCES})
-target_link_libraries(${PROJECT_NAME} ${LIBRARIES} common)
+target_link_libraries(${PROJECT_NAME} ${LIBRARIES} apps-common common)
install(TARGETS ${PROJECT_NAME} DESTINATION ${LIB_DIR})
#include "DetailsItemLayout.h"
#include "DetailsItemLayoutMetrics.h"
-#include "../../../../lib-common/res/common/edje/common-colors.edc"
-#include "../../../../lib-common/res/common/edje/common-utils.edc"
+#include "../../../../lib-apps-common/res/apps-common/edje/apps-common-colors.edc"
+#include "../../../../lib-apps-common/res/apps-common/edje/apps-common-utils.edc"
styles {
style {
#include "InputItemLayout.h"
#include "InputItemLayoutMetrics.h"
-#include "../../../../lib-common/res/common/edje/common-colors.edc"
-#include "../../../../lib-common/res/common/edje/common-utils.edc"
+#include "../../../../lib-apps-common/res/apps-common/edje/apps-common-colors.edc"
+#include "../../../../lib-apps-common/res/apps-common/edje/apps-common-utils.edc"
collections
{
#include "Ui/DatePopup.h"
#include "Utils/Callback.h"
-#include "CommonButtons.h"
+#include "AppsCommonButtons.h"
#define DATE_BUFFER_SIZE 32
<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.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.tizen.nativecore.NativeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.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/wifi-direct""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/dbus-1.0/include""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/glib-2.0/include""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/lib-apps-common/inc}""/>
<listOptionValue builtIn="false" value=""${workspace_loc:/lib-common/inc}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/lib-common/res/common/edje}""/>
<listOptionValue builtIn="false" value=""${workspace_loc:/lib-logs/res/logs/edje}""/>
</option>
<option id="sbi.gnu.cpp.compiler.option.frameworks.core.738575116" name="Tizen-Frameworks" superClass="sbi.gnu.cpp.compiler.option.frameworks.core" valueType="userObjs">
<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""/>
</option>
<option id="gnu.cpp.link.option.paths.1865146897" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/lib}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/lib-apps-common/${ConfigName}}""/>
<listOptionValue builtIn="false" value=""${workspace_loc:/lib-common/${ConfigName}}""/>
</option>
<option id="gnu.cpp.link.option.libs.90965994" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" valueType="libs">
+ <listOptionValue builtIn="false" srcPrefixMapping="" srcRootPath="" value="apps-common"/>
<listOptionValue builtIn="false" srcPrefixMapping="" srcRootPath="" value="common"/>
</option>
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.2049958036" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings">
+ <externalSettings containerId="lib-apps-common;" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
<externalSettings containerId="lib-common;" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
</storageModule>
</cconfiguration>
<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.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.tizen.nativecore.NativeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.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/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""/>
<name>lib-logs</name>
<comment></comment>
<projects>
+ <project>lib-apps-common</project>
<project>lib-common</project>
</projects>
<buildSpec>
file(GLOB_RECURSE SOURCES src/*.cpp)
include_directories(
+ ${CMAKE_SOURCE_DIR}/lib-apps-common/inc
${CMAKE_SOURCE_DIR}/lib-common/inc
+ ${CMAKE_SOURCE_DIR}/lib-common/res/common/edje
${CMAKE_CURRENT_SOURCE_DIR}/inc
${CMAKE_CURRENT_SOURCE_DIR}/res/logs/edje
)
add_library(${PROJECT_NAME} SHARED ${SOURCES})
-target_link_libraries(${PROJECT_NAME} ${LIBRARIES} common)
+target_link_libraries(${PROJECT_NAME} ${LIBRARIES} apps-common common)
install(TARGETS ${PROJECT_NAME} DESTINATION ${LIB_DIR})
-add_subdirectory(res/logs)
\ No newline at end of file
+add_subdirectory(res/logs)
#include "LogItemLayout.h"
#include "log-colors.edc"
-#include "../../../../lib-common/res/common/edje/common-utils.edc"
+#include "../../../../lib-apps-common/res/apps-common/edje/apps-common-utils.edc"
#define LAYOUT_H 104
#define LAYOUT_W 105
<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.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.tizen.nativecore.NativeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<option id="sbi.gnu.cpp.compiler.option.1832462661" name="Tizen-Target" superClass="sbi.gnu.cpp.compiler.option" useByScannerDiscovery="false" valueType="userObjs">
<listOptionValue builtIn="false" value="mobile-2.4-device.core_gcc49.armel.core.sharedLib"/>
</option>
- <option id="sbi.gnu.cpp.compiler.option.frameworks_inc.core.2123696125" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.cpp.compiler.option.frameworks_inc.core" useByScannerDiscovery="false" 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/appfw""/>
- <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/attach-panel""/>
- <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/calendar-service2""/>
- <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/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-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/ecore-x-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/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/ewebkit2-0""/>
- <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/geofence""/>
- <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/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/minicontrol""/>
- <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/phonenumber-utils""/>
- <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/sensor""/>
- <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/shortcut""/>
- <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/web""/>
- <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/wifi-direct""/>
- <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_inc.core.2123696125" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.cpp.compiler.option.frameworks_inc.core" useByScannerDiscovery="false" valueType="includePath"/>
<option id="sbi.gnu.cpp.compiler.option.frameworks_cflags.core.425562116" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.cpp.compiler.option.frameworks_cflags.core" useByScannerDiscovery="false" valueType="stringList">
<listOptionValue builtIn="false" value="${TC_COMPILER_MISC}"/>
<listOptionValue builtIn="false" value="${RS_COMPILER_MISC}"/>
<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/wifi-direct""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/dbus-1.0/include""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/glib-2.0/include""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/lib-apps-common/inc}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/lib-apps-common/res/apps-common/edje}""/>
<listOptionValue builtIn="false" value=""${workspace_loc:/lib-common/inc}""/>
- <listOptionValue builtIn="false" value=""${workspace_loc:/lib-common/res/common/edje}""/>
<listOptionValue builtIn="false" value=""${workspace_loc:/lib-phone/res/dialer/edje}""/>
<listOptionValue builtIn="false" value=""${workspace_loc:/lib-phone/res/speeddial/edje}""/>
</option>
</option>
<option id="gnu.cpp.compiler.option.dialect.std.409971687" name="Language standard" superClass="gnu.cpp.compiler.option.dialect.std" useByScannerDiscovery="true" value="gnu.cpp.compiler.dialect.default" valueType="enumerated"/>
<option id="gnu.cpp.compiler.option.dialect.flags.941277382" name="Other dialect flags" superClass="gnu.cpp.compiler.option.dialect.flags" useByScannerDiscovery="true" value="-std=c++11" valueType="string"/>
- <option id="gnu.cpp.compiler.option.other.other.1221046090" superClass="gnu.cpp.compiler.option.other.other" value="-c -fmessage-length=0 -Wno-unused-function" valueType="string"/>
+ <option id="gnu.cpp.compiler.option.other.other.1221046090" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" useByScannerDiscovery="false" value="-c -fmessage-length=0 -Wno-unused-function" valueType="string"/>
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1204084428" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
</tool>
<tool command="arm-linux-gnueabi-gcc" id="org.tizen.nativecore.tool.sbi.gnu.c.compiler.1304746653" name="C Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.c.compiler">
<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""/>
</option>
<option id="gnu.cpp.link.option.paths.1445847391" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/lib}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/lib-apps-common/${ConfigName}}""/>
<listOptionValue builtIn="false" value=""${workspace_loc:/lib-common/${ConfigName}}""/>
</option>
<option id="gnu.cpp.link.option.libs.1774797368" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" valueType="libs">
+ <listOptionValue builtIn="false" srcPrefixMapping="" srcRootPath="" value="apps-common"/>
<listOptionValue builtIn="false" srcPrefixMapping="" srcRootPath="" value="common"/>
</option>
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1749001874" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings">
+ <externalSettings containerId="lib-apps-common;" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
<externalSettings containerId="lib-common;" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
</storageModule>
</cconfiguration>
<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.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.tizen.nativecore.NativeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.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/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""/>
<name>lib-phone</name>
<comment></comment>
<projects>
+ <project>lib-apps-common</project>
<project>lib-common</project>
</projects>
<buildSpec>
file(GLOB_RECURSE SOURCES src/*.cpp)
include_directories(
+ ${CMAKE_SOURCE_DIR}/lib-apps-common/inc
+ ${CMAKE_SOURCE_DIR}/lib-apps-common/res/apps-common/edje
${CMAKE_SOURCE_DIR}/lib-common/inc
- ${CMAKE_SOURCE_DIR}/lib-common/res/common/edje
${CMAKE_CURRENT_SOURCE_DIR}/res/dialer/edje
${CMAKE_CURRENT_SOURCE_DIR}/res/speeddial/edje
${CMAKE_CURRENT_SOURCE_DIR}/inc
)
add_library(${PROJECT_NAME} SHARED ${SOURCES})
-target_link_libraries(${PROJECT_NAME} ${LIBRARIES} common)
+target_link_libraries(${PROJECT_NAME} ${LIBRARIES} apps-common common)
install(TARGETS ${PROJECT_NAME} DESTINATION ${LIB_DIR})
#include "DialerLayout.h"
#include "DialerLayoutMetrics.h"
#include "DialerLayoutColors.h"
-#include "../../../../lib-common/res/common/edje/common-utils.edc"
+#include "../../../../lib-apps-common/res/apps-common/edje/apps-common-utils.edc"
collections {
#include "Utils/Callback.h"
#include "Utils/Logger.h"
-#include "CommonButtons.h"
+#include "AppsCommonButtons.h"
#include "DialerLayout.h"
#include <app_control.h>
Evas_Object *DialerView::onCreate(Evas_Object *parent)
{
- elm_theme_extension_add(nullptr, App::getResourcePath(COMMON_BUTTONS_EDJ).c_str());
+ elm_theme_extension_add(nullptr, App::getResourcePath(APPS_COMMON_BUTTONS_EDJ).c_str());
Evas_Object *layout = elm_layout_add(parent);
Eina_Bool res = elm_layout_file_set(layout, layoutFilePath.c_str(), GROUP_DIALER);
<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.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.tizen.nativecore.NativeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.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""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appcore-agent""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/appfw""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/attach-panel""/>
<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/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/wifi-direct""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/dbus-1.0/include""/>
<listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/lib/glib-2.0/include""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/lib-apps-common/inc}""/>
<listOptionValue builtIn="false" value=""${workspace_loc:/lib-common/inc}""/>
<listOptionValue builtIn="false" value=""${workspace_loc:/lib-contact/inc}""/>
<listOptionValue builtIn="false" value=""${workspace_loc:/lib-phone/inc}""/>
- <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/attach-panel""/>
<listOptionValue builtIn="false" value=""${workspace_loc:/lib-logs/inc}""/>
</option>
<option id="sbi.gnu.cpp.compiler.option.frameworks.core.597971735" name="Tizen-Frameworks" superClass="sbi.gnu.cpp.compiler.option.frameworks.core" valueType="userObjs">
<option id="gnu.cpp.compiler.option.other.other.1537343829" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" value="-c -fmessage-length=0 -Wno-unused-function" valueType="string"/>
<option id="gnu.cpp.compiler.option.dialect.std.832293131" name="Language standard" superClass="gnu.cpp.compiler.option.dialect.std" value="gnu.cpp.compiler.dialect.default" valueType="enumerated"/>
<option id="gnu.cpp.compiler.option.dialect.flags.2080308736" name="Other dialect flags" superClass="gnu.cpp.compiler.option.dialect.flags" value="-std=c++11" valueType="string"/>
+ <option id="sbi.gnu.cpp.compiler.option.misc.pic.core.421406969" name="-fPIC option" superClass="sbi.gnu.cpp.compiler.option.misc.pic.core" value="true" valueType="boolean"/>
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1364992888" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
</tool>
<tool command="arm-linux-gnueabi-gcc" id="org.tizen.nativecore.tool.sbi.gnu.c.compiler.2008298289" name="C Compiler" superClass="org.tizen.nativecore.tool.sbi.gnu.c.compiler">
<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""/>
</option>
<option id="gnu.cpp.link.option.paths.1170398727" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/lib}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/lib-apps-common/${ConfigName}}""/>
<listOptionValue builtIn="false" value=""${workspace_loc:/lib-common/${ConfigName}}""/>
- <listOptionValue builtIn="false" value=""${workspace_loc:/lib-phone/${ConfigName}}""/>
<listOptionValue builtIn="false" value=""${workspace_loc:/lib-contact/${ConfigName}}""/>
+ <listOptionValue builtIn="false" value=""${workspace_loc:/lib-phone/${ConfigName}}""/>
<listOptionValue builtIn="false" value=""${workspace_loc:/lib-logs/${ConfigName}}""/>
</option>
<option id="gnu.cpp.link.option.libs.1633189673" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" valueType="libs">
+ <listOptionValue builtIn="false" srcPrefixMapping="" srcRootPath="" value="apps-common"/>
<listOptionValue builtIn="false" srcPrefixMapping="" srcRootPath="" value="common"/>
<listOptionValue builtIn="false" srcPrefixMapping="" srcRootPath="" value="contact"/>
<listOptionValue builtIn="false" srcPrefixMapping="" srcRootPath="" value="phone"/>
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings">
- <externalSettings containerId="lib-common;" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
<externalSettings containerId="lib-contact;" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
<externalSettings containerId="lib-phone;" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
<externalSettings containerId="lib-logs;" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
+ <externalSettings containerId="lib-apps-common;" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
+ <externalSettings containerId="lib-common;" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
</storageModule>
</cconfiguration>
<cconfiguration id="org.tizen.nativecore.config.sbi.gcc45.app.release.1993690474">
<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.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.tizen.nativecore.NativeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.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/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""/>
<name>contacts</name>
<comment></comment>
<projects>
- <project>lib-common</project>
<project>lib-contact</project>
<project>lib-phone</project>
<project>lib-logs</project>
+ <project>lib-apps-common</project>
+ <project>lib-common</project>
</projects>
<buildSpec>
<buildCommand>
<blacklist/>
<resFallback autoGen="true"/>
<subProjects>
+ <tizenProject project="lib-apps-common"/>
<tizenProject project="lib-common"/>
<tizenProject project="lib-contact"/>
<tizenProject project="lib-phone"/>
file(GLOB_RECURSE SOURCES src/*.cpp)
include_directories(
+ ${CMAKE_SOURCE_DIR}/lib-apps-common/inc
${CMAKE_SOURCE_DIR}/lib-common/inc
${CMAKE_SOURCE_DIR}/lib-contact/inc
${CMAKE_SOURCE_DIR}/lib-phone/inc
add_executable(${PROJECT_NAME} ${SOURCES})
target_link_libraries(${PROJECT_NAME} ${LIBRARIES} -pie
+ apps-common
common
contact
phone
%{_bin_dir}
%{_lib_dir}
+%{_res_dir}/apps-common
%{_res_dir}/common
%{_res_dir}/details
%{_res_dir}/dialer