--- /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.nativecpp.config.sbi.gcc45.app.debug.emulator.1751325626">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecpp.config.sbi.gcc45.app.debug.emulator.1751325626" moduleId="org.eclipse.cdt.core.settings" name="Debug-Tizen-Emulator">
+ <externalSettings/>
+ <extensions>
+ <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" 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.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ </extensions>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <configuration artifactExtension="exe" artifactName="Calendar" buildArtefactType="org.tizen.nativecpp.buildArtefactType.app" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.tizen.nativecpp.buildArtefactType.app" description="" errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GASErrorParser;org.eclipse.cdt.core.CWDLocator;org.eclipse.cdt.core.GmakeErrorParser" id="org.tizen.nativecpp.config.sbi.gcc45.app.debug.emulator.1751325626" name="Debug-Tizen-Emulator" parent="org.tizen.nativecpp.config.sbi.gcc45.app.debug.emulator" postannouncebuildStep="" postbuildStep="" preannouncebuildStep="" prebuildStep="">
+ <folderInfo id="org.tizen.nativecpp.config.sbi.gcc45.app.debug.emulator.1751325626." name="/" resourcePath="">
+ <toolChain errorParsers="" id="org.tizen.nativecpp.toolchain.sbi.gcc45.app.debug.emulator.1892029492" name="Tizen Native Toolchain" superClass="org.tizen.nativecpp.toolchain.sbi.gcc45.app.debug.emulator">
+ <targetPlatform binaryParser="org.eclipse.cdt.core.ELF" id="org.tizen.nativeide.target.sbi.gnu.platform.base.1856951265" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+ <builder autoBuildTarget="all" buildPath="${workspace_loc:/Calendar/Debug-Tizen-Emulator}" enableAutoBuild="true" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.CWDLocator" id="org.tizen.nativecpp.target.sbi.gnu.builder.603053986" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Tizen Application Builder" parallelBuildOn="true" parallelizationNumber="5" superClass="org.tizen.nativecpp.target.sbi.gnu.builder"/>
+ <tool id="org.tizen.nativecpp.tool.sbi.gnu.archiver.1926215452" name="Archiver" superClass="org.tizen.nativecpp.tool.sbi.gnu.archiver"/>
+ <tool command="i386-linux-gnueabi-g++" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" errorParsers="org.eclipse.cdt.core.GCCErrorParser" id="org.tizen.nativecpp.tool.sbi.gnu.cpp.compiler.1826960502" name="C++ Compiler" superClass="org.tizen.nativecpp.tool.sbi.gnu.cpp.compiler">
+ <option id="gnu.cpp.compiler.option.optimization.level.322879977" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
+ <option id="gnu.cpp.compiler.option.debugging.level.1461066478" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/>
+ <option id="sbi.gnu.cpp.compiler.option.2136084113" name="Tizen-Target" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
+ <listOptionValue builtIn="false" value="tizen-emulator-2.0.cpp.partner_gcc45.i386.cpp.app"/>
+ </option>
+ <option id="gnu.cpp.compiler.option.include.paths.1375459491" 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_inc.cpp.137170895" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.cpp.compiler.option.frameworks_inc.cpp" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/libxml2""/>
+ <listOptionValue builtIn="false" value=""/home/sungwan/tizen-sdk/library""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/osp""/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks_cflags.cpp.147189630" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.cpp.compiler.option.frameworks_cflags.cpp" valueType="stringList">
+ <listOptionValue builtIn="false" value=""/>
+ <listOptionValue builtIn="false" value=" -fPIE"/>
+ <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks.cpp.899744908" name="Tizen-Frameworks" superClass="sbi.gnu.cpp.compiler.option.frameworks.cpp" valueType="userObjs">
+ <listOptionValue builtIn="false" value="osp"/>
+ </option>
+ <option id="gnu.cpp.compiler.option.preprocessor.def.1223125203" 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.warnings.toerrors.1009650812" name="Warnings as errors (-Werror)" superClass="gnu.cpp.compiler.option.warnings.toerrors" value="true" valueType="boolean"/>
+ <option id="gnu.cpp.compiler.option.debugging.prof.247942159" name="Generate prof information (-p)" superClass="gnu.cpp.compiler.option.debugging.prof" value="false" valueType="boolean"/>
+ <option id="gnu.cpp.compiler.option.debugging.gprof.760668120" name="Generate gprof information (-pg)" superClass="gnu.cpp.compiler.option.debugging.gprof" value="false" valueType="boolean"/>
+ <option id="sbi.gnu.cpp.compiler.option.debug.applog.312752313" name="Enable application logging (-D_APP_LOG)" superClass="sbi.gnu.cpp.compiler.option.debug.applog" value="false" valueType="boolean"/>
+ <inputType id="sbi.gnu.cpp.compiler.tizen.inputType.2048683037" superClass="sbi.gnu.cpp.compiler.tizen.inputType"/>
+ </tool>
+ <tool command="i386-linux-gnueabi-gcc" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" errorParsers="org.eclipse.cdt.core.GCCErrorParser" id="org.tizen.nativecpp.tool.sbi.gnu.c.compiler.674016825" name="C Compiler" superClass="org.tizen.nativecpp.tool.sbi.gnu.c.compiler">
+ <option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.option.optimization.level.1891569187" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" valueType="enumerated"/>
+ <option id="gnu.c.compiler.option.debugging.level.957285492" name="Debug Level" superClass="gnu.c.compiler.option.debugging.level" value="gnu.c.debugging.level.max" valueType="enumerated"/>
+ <option id="sbi.gnu.c.compiler.option.1296154116" name="Tizen-Target" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
+ <listOptionValue builtIn="false" value="tizen-emulator-2.0.cpp.partner_gcc45.i386.cpp.app"/>
+ </option>
+ <option id="gnu.c.compiler.option.include.paths.807177598" 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.cpp.510484615" name="Tizen-Frameworks" superClass="sbi.gnu.c.compiler.option.frameworks.cpp" valueType="userObjs">
+ <listOptionValue builtIn="false" value="osp"/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks_inc.cpp.1702421051" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.c.compiler.option.frameworks_inc.cpp" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/libxml2""/>
+ <listOptionValue builtIn="false" value=""/home/sungwan/tizen-sdk/library""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/osp""/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks_cflags.cpp.1797929835" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.c.compiler.option.frameworks_cflags.cpp" valueType="stringList">
+ <listOptionValue builtIn="false" value=""/>
+ <listOptionValue builtIn="false" value=" -fPIE"/>
+ <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ </option>
+ <option id="gnu.c.compiler.option.preprocessor.def.symbols.1190927696" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" valueType="definedSymbols">
+ <listOptionValue builtIn="false" value="_DEBUG"/>
+ </option>
+ <option id="gnu.c.compiler.option.warnings.toerrors.1007725084" name="Warnings as errors (-Werror)" superClass="gnu.c.compiler.option.warnings.toerrors" value="true" valueType="boolean"/>
+ <option id="sbi.gnu.c.compiler.option.debug.applog.643187856" name="Enable application logging (-D_APP_LOG)" superClass="sbi.gnu.c.compiler.option.debug.applog" value="true" valueType="boolean"/>
+ <inputType id="sbi.gnu.c.compiler.tizen.inputType.98870158" superClass="sbi.gnu.c.compiler.tizen.inputType"/>
+ </tool>
+ <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.1293888286" name="C Linker" superClass="org.tizen.nativeide.tool.sbi.gnu.c.linker.base"/>
+ <tool command="i386-linux-gnueabi-g++" commandLinePattern="${COMMAND} ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS} ${FLAGS}" errorParsers="org.eclipse.cdt.core.GLDErrorParser" id="org.tizen.nativecpp.tool.sbi.gnu.cpp.linker.387841169" name="C++ Linker" superClass="org.tizen.nativecpp.tool.sbi.gnu.cpp.linker">
+ <option id="gnu.cpp.link.option.paths.806419286" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/lib}""/>
+ </option>
+ <option id="sbi.gnu.cpp.linker.option.frameworks_lflags.cpp.2095979563" name="Tizen-Frameworks-Other-Lflags" superClass="sbi.gnu.cpp.linker.option.frameworks_lflags.cpp" valueType="stringList">
+ <listOptionValue builtIn="false" value="-Xlinker --as-needed"/>
+ <listOptionValue builtIn="false" value=""/>
+ <listOptionValue builtIn="false" value="-pie -lpthread "/>
+ <listOptionValue builtIn="false" value="-Xlinker -rpath=\$$ORIGIN/.. -Xlinker -rpath=\$$ORIGIN/../lib"/>
+ <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ <listOptionValue builtIn="false" value="-L"${SBI_SYSROOT}/usr/lib""/>
+ <listOptionValue builtIn="false" value="-L"${SBI_SYSROOT}/usr/lib/osp""/>
+ <listOptionValue builtIn="false" value="-losp-appfw"/>
+ <listOptionValue builtIn="false" value="-losp-uifw"/>
+ <listOptionValue builtIn="false" value="-losp-image"/>
+ <listOptionValue builtIn="false" value="-losp-json"/>
+ <listOptionValue builtIn="false" value="-losp-ime"/>
+ <listOptionValue builtIn="false" value="-losp-net"/>
+ <listOptionValue builtIn="false" value="-lpthread"/>
+ <listOptionValue builtIn="false" value="-losp-content"/>
+ <listOptionValue builtIn="false" value="-losp-locations"/>
+ <listOptionValue builtIn="false" value="-losp-telephony"/>
+ <listOptionValue builtIn="false" value="-losp-uix"/>
+ <listOptionValue builtIn="false" value="-losp-media"/>
+ <listOptionValue builtIn="false" value="-losp-messaging"/>
+ <listOptionValue builtIn="false" value="-losp-web"/>
+ <listOptionValue builtIn="false" value="-losp-social"/>
+ <listOptionValue builtIn="false" value="-losp-wifi"/>
+ <listOptionValue builtIn="false" value="-losp-bluetooth"/>
+ <listOptionValue builtIn="false" value="-losp-nfc"/>
+ <listOptionValue builtIn="false" value="-losp-face"/>
+ <listOptionValue builtIn="false" value="-losp-speech-tts"/>
+ <listOptionValue builtIn="false" value="-losp-speech-stt"/>
+ <listOptionValue builtIn="false" value="-losp-shell"/>
+ <listOptionValue builtIn="false" value="-losp-shell-core"/>
+ <listOptionValue builtIn="false" value="-lxml2"/>
+ </option>
+ <option id="gnu.cpp.link.option.debugging.prof.1855004593" name="Generate prof information (-p)" superClass="gnu.cpp.link.option.debugging.prof" value="false" valueType="boolean"/>
+ <option id="gnu.cpp.link.option.debugging.gprof.1143811435" name="Generate gprof information (-pg)" superClass="gnu.cpp.link.option.debugging.gprof" value="false" valueType="boolean"/>
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1335209371" 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" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" errorParsers="org.eclipse.cdt.core.GASErrorParser" id="org.tizen.nativeapp.tool.sbi.gnu.assembler.base.180811510" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.505720343" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+ </tool>
+ <tool command="msgfmt" commandLinePattern="${COMMAND} ${OUTPUT_FLAG} ${OUTPUT} ${INPUTS}" errorParsers="" id="org.tizen.nativecpp.tool.sbi.po.compiler.116959897" name="PO Resource Compiler" superClass="org.tizen.nativecpp.tool.sbi.po.compiler"/>
+ <tool command="edje_cc" commandLinePattern="${COMMAND} -id ../res/images ${INPUTS} ${OUTPUT}" errorParsers="" id="org.tizen.nativecpp.tool.sbi.edc.compiler.1777475695" name="EDC Resource Compiler" superClass="org.tizen.nativecpp.tool.sbi.edc.compiler"/>
+ </toolChain>
+ </folderInfo>
+ <sourceEntries>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="res"/>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="inc"/>
+ <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.nativecpp.config.sbi.gcc45.app.debug.device.171518306">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecpp.config.sbi.gcc45.app.debug.device.171518306" moduleId="org.eclipse.cdt.core.settings" name="Debug-Tizen-Device">
+ <externalSettings/>
+ <extensions>
+ <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" 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.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ </extensions>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <configuration artifactExtension="exe" artifactName="${ProjName}" buildArtefactType="org.tizen.nativecpp.buildArtefactType.app" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.tizen.nativecpp.buildArtefactType.app" description="" errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;" id="org.tizen.nativecpp.config.sbi.gcc45.app.debug.device.171518306" name="Debug-Tizen-Device" parent="org.tizen.nativecpp.config.sbi.gcc45.app.debug.device">
+ <folderInfo id="org.tizen.nativecpp.config.sbi.gcc45.app.debug.device.171518306." name="/" resourcePath="">
+ <toolChain id="org.tizen.nativecpp.toolchain.sbi.gcc45.app.debug.device.939774" name="Tizen Native Toolchain" superClass="org.tizen.nativecpp.toolchain.sbi.gcc45.app.debug.device">
+ <targetPlatform binaryParser="org.eclipse.cdt.core.ELF" id="org.tizen.nativeide.target.sbi.gnu.platform.base.2063411103" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+ <builder buildPath="${workspace_loc:/Calendar/Debug-Tizen-Device}" id="org.tizen.nativecpp.target.sbi.gnu.builder.738839746" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Tizen Application Builder" superClass="org.tizen.nativecpp.target.sbi.gnu.builder"/>
+ <tool id="org.tizen.nativecpp.tool.sbi.gnu.archiver.1931560796" name="Archiver" superClass="org.tizen.nativecpp.tool.sbi.gnu.archiver"/>
+ <tool command="arm-linux-gnueabi-g++" id="org.tizen.nativecpp.tool.sbi.gnu.cpp.compiler.2069314835" name="C++ Compiler" superClass="org.tizen.nativecpp.tool.sbi.gnu.cpp.compiler">
+ <option id="gnu.cpp.compiler.option.optimization.level.260438248" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
+ <option id="gnu.cpp.compiler.option.debugging.level.1846567654" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/>
+ <option id="sbi.gnu.cpp.compiler.option.773960288" name="Tizen-Target" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
+ <listOptionValue builtIn="false" value="tizen-device-2.0.cpp.partner_gcc45.armel.cpp.app"/>
+ </option>
+ <option id="gnu.cpp.compiler.option.include.paths.1303080444" 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_inc.cpp.930188054" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.cpp.compiler.option.frameworks_inc.cpp" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/libxml2""/>
+ <listOptionValue builtIn="false" value=""/home/sungwan/tizen-sdk/library""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/osp""/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks_cflags.cpp.596402036" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.cpp.compiler.option.frameworks_cflags.cpp" valueType="stringList">
+ <listOptionValue builtIn="false" value=""/>
+ <listOptionValue builtIn="false" value=" -fPIE"/>
+ <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks.cpp.410001358" name="Tizen-Frameworks" superClass="sbi.gnu.cpp.compiler.option.frameworks.cpp" valueType="userObjs">
+ <listOptionValue builtIn="false" value="osp"/>
+ </option>
+ <option id="gnu.cpp.compiler.option.preprocessor.def.1452599114" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" valueType="definedSymbols">
+ <listOptionValue builtIn="false" value="_DEBUG"/>
+ </option>
+ <inputType id="sbi.gnu.cpp.compiler.tizen.inputType.1386603625" superClass="sbi.gnu.cpp.compiler.tizen.inputType"/>
+ </tool>
+ <tool command="arm-linux-gnueabi-gcc" id="org.tizen.nativecpp.tool.sbi.gnu.c.compiler.1408063339" name="C Compiler" superClass="org.tizen.nativecpp.tool.sbi.gnu.c.compiler">
+ <option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.option.optimization.level.1772269098" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" valueType="enumerated"/>
+ <option id="gnu.c.compiler.option.debugging.level.1257207058" name="Debug Level" superClass="gnu.c.compiler.option.debugging.level" value="gnu.c.debugging.level.max" valueType="enumerated"/>
+ <option id="sbi.gnu.c.compiler.option.1600929677" name="Tizen-Target" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
+ <listOptionValue builtIn="false" value="tizen-device-2.0.cpp.partner_gcc45.armel.cpp.app"/>
+ </option>
+ <option id="gnu.c.compiler.option.include.paths.1024355022" 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.cpp.553070194" name="Tizen-Frameworks" superClass="sbi.gnu.c.compiler.option.frameworks.cpp" valueType="userObjs">
+ <listOptionValue builtIn="false" value="osp"/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks_inc.cpp.330104379" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.c.compiler.option.frameworks_inc.cpp" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/libxml2""/>
+ <listOptionValue builtIn="false" value=""/home/sungwan/tizen-sdk/library""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/osp""/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks_cflags.cpp.670500493" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.c.compiler.option.frameworks_cflags.cpp" valueType="stringList">
+ <listOptionValue builtIn="false" value=""/>
+ <listOptionValue builtIn="false" value=" -fPIE"/>
+ <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ </option>
+ <option id="gnu.c.compiler.option.preprocessor.def.symbols.1888558053" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" valueType="definedSymbols">
+ <listOptionValue builtIn="false" value="_DEBUG"/>
+ </option>
+ <inputType id="sbi.gnu.c.compiler.tizen.inputType.2061431545" superClass="sbi.gnu.c.compiler.tizen.inputType"/>
+ </tool>
+ <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.1552146659" name="C Linker" superClass="org.tizen.nativeide.tool.sbi.gnu.c.linker.base"/>
+ <tool command="arm-linux-gnueabi-g++" id="org.tizen.nativecpp.tool.sbi.gnu.cpp.linker.1030250166" name="C++ Linker" superClass="org.tizen.nativecpp.tool.sbi.gnu.cpp.linker">
+ <option id="gnu.cpp.link.option.paths.569449498" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/lib}""/>
+ </option>
+ <option id="sbi.gnu.cpp.linker.option.frameworks_lflags.cpp.752085530" name="Tizen-Frameworks-Other-Lflags" superClass="sbi.gnu.cpp.linker.option.frameworks_lflags.cpp" valueType="stringList">
+ <listOptionValue builtIn="false" value="-Xlinker --as-needed"/>
+ <listOptionValue builtIn="false" value=""/>
+ <listOptionValue builtIn="false" value="-pie -lpthread "/>
+ <listOptionValue builtIn="false" value="-Xlinker -rpath=\$$ORIGIN/.. -Xlinker -rpath=\$$ORIGIN/../lib"/>
+ <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ <listOptionValue builtIn="false" value="-L"${SBI_SYSROOT}/usr/lib""/>
+ <listOptionValue builtIn="false" value="-L"${SBI_SYSROOT}/usr/lib/osp""/>
+ <listOptionValue builtIn="false" value="-losp-appfw"/>
+ <listOptionValue builtIn="false" value="-losp-uifw"/>
+ <listOptionValue builtIn="false" value="-losp-image"/>
+ <listOptionValue builtIn="false" value="-losp-json"/>
+ <listOptionValue builtIn="false" value="-losp-ime"/>
+ <listOptionValue builtIn="false" value="-losp-net"/>
+ <listOptionValue builtIn="false" value="-lpthread"/>
+ <listOptionValue builtIn="false" value="-losp-content"/>
+ <listOptionValue builtIn="false" value="-losp-locations"/>
+ <listOptionValue builtIn="false" value="-losp-telephony"/>
+ <listOptionValue builtIn="false" value="-losp-uix"/>
+ <listOptionValue builtIn="false" value="-losp-media"/>
+ <listOptionValue builtIn="false" value="-losp-messaging"/>
+ <listOptionValue builtIn="false" value="-losp-web"/>
+ <listOptionValue builtIn="false" value="-losp-social"/>
+ <listOptionValue builtIn="false" value="-losp-wifi"/>
+ <listOptionValue builtIn="false" value="-losp-bluetooth"/>
+ <listOptionValue builtIn="false" value="-losp-nfc"/>
+ <listOptionValue builtIn="false" value="-losp-face"/>
+ <listOptionValue builtIn="false" value="-losp-speech-tts"/>
+ <listOptionValue builtIn="false" value="-losp-speech-stt"/>
+ <listOptionValue builtIn="false" value="-losp-shell"/>
+ <listOptionValue builtIn="false" value="-losp-shell-core"/>
+ <listOptionValue builtIn="false" value="-lxml2"/>
+ </option>
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1318565394" 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.1122281465" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.745943632" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+ </tool>
+ <tool id="org.tizen.nativecpp.tool.sbi.po.compiler.139954344" name="PO Resource Compiler" superClass="org.tizen.nativecpp.tool.sbi.po.compiler"/>
+ <tool id="org.tizen.nativecpp.tool.sbi.edc.compiler.739571374" name="EDC Resource Compiler" superClass="org.tizen.nativecpp.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>
+ <cconfiguration id="org.tizen.nativecpp.config.sbi.gcc45.app.release.1124416249">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecpp.config.sbi.gcc45.app.release.1124416249" 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.GmakeErrorParser" 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.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ </extensions>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <configuration artifactExtension="exe" artifactName="${ProjName}" buildArtefactType="org.tizen.nativecpp.buildArtefactType.app" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release,org.eclipse.cdt.build.core.buildArtefactType=org.tizen.nativecpp.buildArtefactType.app" description="" errorParsers="org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;" id="org.tizen.nativecpp.config.sbi.gcc45.app.release.1124416249" name="Release" parent="org.tizen.nativecpp.config.sbi.gcc45.app.release">
+ <folderInfo id="org.tizen.nativecpp.config.sbi.gcc45.app.release.1124416249." name="/" resourcePath="">
+ <toolChain id="org.tizen.nativecpp.toolchain.sbi.gcc45.app.release.731556072" name="Tizen Native Toolchain" superClass="org.tizen.nativecpp.toolchain.sbi.gcc45.app.release">
+ <targetPlatform binaryParser="org.eclipse.cdt.core.ELF" id="org.tizen.nativeide.target.sbi.gnu.platform.base.2048200043" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+ <builder buildPath="${workspace_loc:/Calendar/Release}" id="org.tizen.nativecpp.target.sbi.gnu.builder.361177906" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Tizen Application Builder" superClass="org.tizen.nativecpp.target.sbi.gnu.builder"/>
+ <tool id="org.tizen.nativecpp.tool.sbi.gnu.archiver.693257160" name="Archiver" superClass="org.tizen.nativecpp.tool.sbi.gnu.archiver"/>
+ <tool command="arm-linux-gnueabi-g++" id="org.tizen.nativecpp.tool.sbi.gnu.cpp.compiler.333535901" name="C++ Compiler" superClass="org.tizen.nativecpp.tool.sbi.gnu.cpp.compiler">
+ <option id="gnu.cpp.compiler.option.optimization.level.285266013" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
+ <option id="gnu.cpp.compiler.option.debugging.level.1691619210" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
+ <option id="sbi.gnu.cpp.compiler.option.169728016" name="Tizen-Target" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
+ <listOptionValue builtIn="false" value="tizen-device-2.0.cpp.partner_gcc45.armel.cpp.app"/>
+ </option>
+ <option id="gnu.cpp.compiler.option.include.paths.333791176" 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_inc.cpp.556269336" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.cpp.compiler.option.frameworks_inc.cpp" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/libxml2""/>
+ <listOptionValue builtIn="false" value=""/home/sungwan/tizen-sdk/library""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/osp""/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks_cflags.cpp.1938697235" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.cpp.compiler.option.frameworks_cflags.cpp" valueType="stringList">
+ <listOptionValue builtIn="false" value=""/>
+ <listOptionValue builtIn="false" value=" -fPIE"/>
+ <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks.cpp.1406380561" name="Tizen-Frameworks" superClass="sbi.gnu.cpp.compiler.option.frameworks.cpp" valueType="userObjs">
+ <listOptionValue builtIn="false" value="osp"/>
+ </option>
+ <inputType id="sbi.gnu.cpp.compiler.tizen.inputType.642852524" superClass="sbi.gnu.cpp.compiler.tizen.inputType"/>
+ </tool>
+ <tool command="arm-linux-gnueabi-gcc" id="org.tizen.nativecpp.tool.sbi.gnu.c.compiler.1441685007" name="C Compiler" superClass="org.tizen.nativecpp.tool.sbi.gnu.c.compiler">
+ <option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.option.optimization.level.745631856" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" valueType="enumerated"/>
+ <option id="gnu.c.compiler.option.debugging.level.1574266012" name="Debug Level" superClass="gnu.c.compiler.option.debugging.level" value="gnu.c.debugging.level.none" valueType="enumerated"/>
+ <option id="sbi.gnu.c.compiler.option.1964718468" name="Tizen-Target" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
+ <listOptionValue builtIn="false" value="tizen-device-2.0.cpp.partner_gcc45.armel.cpp.app"/>
+ </option>
+ <option id="gnu.c.compiler.option.include.paths.1232378738" 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.cpp.970955954" name="Tizen-Frameworks" superClass="sbi.gnu.c.compiler.option.frameworks.cpp" valueType="userObjs">
+ <listOptionValue builtIn="false" value="osp"/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks_inc.cpp.1228748901" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.c.compiler.option.frameworks_inc.cpp" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/libxml2""/>
+ <listOptionValue builtIn="false" value=""/home/sungwan/tizen-sdk/library""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/osp""/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks_cflags.cpp.460125612" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.c.compiler.option.frameworks_cflags.cpp" valueType="stringList">
+ <listOptionValue builtIn="false" value=""/>
+ <listOptionValue builtIn="false" value=" -fPIE"/>
+ <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ </option>
+ <inputType id="sbi.gnu.c.compiler.tizen.inputType.524477415" superClass="sbi.gnu.c.compiler.tizen.inputType"/>
+ </tool>
+ <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.439173106" name="C Linker" superClass="org.tizen.nativeide.tool.sbi.gnu.c.linker.base"/>
+ <tool command="arm-linux-gnueabi-g++" id="org.tizen.nativecpp.tool.sbi.gnu.cpp.linker.256674454" name="C++ Linker" superClass="org.tizen.nativecpp.tool.sbi.gnu.cpp.linker">
+ <option id="gnu.cpp.link.option.paths.419990482" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/lib}""/>
+ </option>
+ <option id="sbi.gnu.cpp.linker.option.frameworks_lflags.cpp.1134695451" name="Tizen-Frameworks-Other-Lflags" superClass="sbi.gnu.cpp.linker.option.frameworks_lflags.cpp" valueType="stringList">
+ <listOptionValue builtIn="false" value="-Xlinker --as-needed"/>
+ <listOptionValue builtIn="false" value=""/>
+ <listOptionValue builtIn="false" value="-pie -lpthread "/>
+ <listOptionValue builtIn="false" value="-Xlinker -rpath=\$$ORIGIN/.. -Xlinker -rpath=\$$ORIGIN/../lib"/>
+ <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ <listOptionValue builtIn="false" value="-L"${SBI_SYSROOT}/usr/lib""/>
+ <listOptionValue builtIn="false" value="-L"${SBI_SYSROOT}/usr/lib/osp""/>
+ <listOptionValue builtIn="false" value="-losp-appfw"/>
+ <listOptionValue builtIn="false" value="-losp-uifw"/>
+ <listOptionValue builtIn="false" value="-losp-image"/>
+ <listOptionValue builtIn="false" value="-losp-json"/>
+ <listOptionValue builtIn="false" value="-losp-ime"/>
+ <listOptionValue builtIn="false" value="-losp-net"/>
+ <listOptionValue builtIn="false" value="-lpthread"/>
+ <listOptionValue builtIn="false" value="-losp-content"/>
+ <listOptionValue builtIn="false" value="-losp-locations"/>
+ <listOptionValue builtIn="false" value="-losp-telephony"/>
+ <listOptionValue builtIn="false" value="-losp-uix"/>
+ <listOptionValue builtIn="false" value="-losp-media"/>
+ <listOptionValue builtIn="false" value="-losp-messaging"/>
+ <listOptionValue builtIn="false" value="-losp-web"/>
+ <listOptionValue builtIn="false" value="-losp-social"/>
+ <listOptionValue builtIn="false" value="-losp-wifi"/>
+ <listOptionValue builtIn="false" value="-losp-bluetooth"/>
+ <listOptionValue builtIn="false" value="-losp-nfc"/>
+ <listOptionValue builtIn="false" value="-losp-face"/>
+ <listOptionValue builtIn="false" value="-losp-speech-tts"/>
+ <listOptionValue builtIn="false" value="-losp-speech-stt"/>
+ <listOptionValue builtIn="false" value="-losp-shell"/>
+ <listOptionValue builtIn="false" value="-losp-shell-core"/>
+ <listOptionValue builtIn="false" value="-lxml2"/>
+ </option>
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.372445017" 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.1637761928" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.897704995" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+ </tool>
+ <tool id="org.tizen.nativecpp.tool.sbi.po.compiler.1210919772" name="PO Resource Compiler" superClass="org.tizen.nativecpp.tool.sbi.po.compiler"/>
+ <tool id="org.tizen.nativecpp.tool.sbi.edc.compiler.1547430561" name="EDC Resource Compiler" superClass="org.tizen.nativecpp.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>
+ <cconfiguration id="org.tizen.nativecpp.config.sbi.gcc45.app.debug.emulator.da.244118101">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecpp.config.sbi.gcc45.app.debug.emulator.da.244118101" moduleId="org.eclipse.cdt.core.settings" name="DA-Tizen-Emulator">
+ <externalSettings/>
+ <extensions>
+ <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" 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.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ </extensions>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <configuration artifactExtension="exe" artifactName="${ProjName}" buildArtefactType="org.tizen.nativecpp.buildArtefactType.app" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.tizen.nativecpp.buildArtefactType.app" description="" id="org.tizen.nativecpp.config.sbi.gcc45.app.debug.emulator.da.244118101" name="DA-Tizen-Emulator" parent="org.tizen.nativecpp.config.sbi.gcc45.app.debug.emulator.da">
+ <folderInfo id="org.tizen.nativecpp.config.sbi.gcc45.app.debug.emulator.da.244118101." name="/" resourcePath="">
+ <toolChain id="org.tizen.nativecpp.toolchain.sbi.gcc45.app.debug.emulator.da.674341324" name="Tizen Native Toolchain" superClass="org.tizen.nativecpp.toolchain.sbi.gcc45.app.debug.emulator.da">
+ <targetPlatform binaryParser="org.eclipse.cdt.core.ELF" id="org.tizen.nativeide.target.sbi.gnu.platform.base.291324364" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+ <builder buildPath="${workspace_loc:/Calendar/DA-Tizen-Emulator}" id="org.tizen.nativecpp.target.sbi.gnu.builder.372116971" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Tizen Application Builder" superClass="org.tizen.nativecpp.target.sbi.gnu.builder"/>
+ <tool id="org.tizen.nativecpp.tool.sbi.gnu.archiver.77330789" name="Archiver" superClass="org.tizen.nativecpp.tool.sbi.gnu.archiver"/>
+ <tool command="i386-linux-gnueabi-g++" id="org.tizen.nativecpp.tool.sbi.gnu.cpp.compiler.da.318500289" name="C++ Compiler" superClass="org.tizen.nativecpp.tool.sbi.gnu.cpp.compiler.da">
+ <option id="sbi.gnu.cpp.compiler.option.1428797124" name="Tizen-Target" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
+ <listOptionValue builtIn="false" value="tizen-emulator-2.0.cpp.partner_gcc45.i386.cpp.app"/>
+ </option>
+ <option id="gnu.cpp.compiler.option.include.paths.992313754" 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="${SDK_INSTALL_PATH}/library"/>
+ <listOptionValue builtIn="false" value=""${SDK_INSTALL_PATH}/library""/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks_inc.cpp.949834511" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.cpp.compiler.option.frameworks_inc.cpp" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/libxml2""/>
+ <listOptionValue builtIn="false" value=""/home/sungwan/tizen-sdk/library""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/osp""/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks_cflags.cpp.517248702" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.cpp.compiler.option.frameworks_cflags.cpp" valueType="stringList">
+ <listOptionValue builtIn="false" value=""/>
+ <listOptionValue builtIn="false" value=" -fPIE"/>
+ <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks.cpp.730434608" name="Tizen-Frameworks" superClass="sbi.gnu.cpp.compiler.option.frameworks.cpp" valueType="userObjs">
+ <listOptionValue builtIn="false" value="osp"/>
+ </option>
+ <option id="gnu.cpp.compiler.option.preprocessor.def.2056561746" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" valueType="definedSymbols">
+ <listOptionValue builtIn="false" value="_USE_DA_"/>
+ </option>
+ <inputType id="sbi.gnu.cpp.compiler.tizen.inputType.1741693063" superClass="sbi.gnu.cpp.compiler.tizen.inputType"/>
+ </tool>
+ <tool command="i386-linux-gnueabi-gcc" id="org.tizen.nativecpp.tool.sbi.gnu.c.compiler.1650511277" name="C Compiler" superClass="org.tizen.nativecpp.tool.sbi.gnu.c.compiler">
+ <option id="sbi.gnu.c.compiler.option.1251020731" name="Tizen-Target" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
+ <listOptionValue builtIn="false" value="tizen-emulator-2.0.cpp.partner_gcc45.i386.cpp.app"/>
+ </option>
+ <option id="gnu.c.compiler.option.include.paths.150708374" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/inc}""/>
+ <listOptionValue builtIn="false" value="${SDK_INSTALL_PATH}/library"/>
+ <listOptionValue builtIn="false" value=""${SDK_INSTALL_PATH}/library""/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks.cpp.654237939" name="Tizen-Frameworks" superClass="sbi.gnu.c.compiler.option.frameworks.cpp" valueType="userObjs">
+ <listOptionValue builtIn="false" value="osp"/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks_inc.cpp.1890915134" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.c.compiler.option.frameworks_inc.cpp" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/libxml2""/>
+ <listOptionValue builtIn="false" value=""/home/sungwan/tizen-sdk/library""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/osp""/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks_cflags.cpp.582544717" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.c.compiler.option.frameworks_cflags.cpp" valueType="stringList">
+ <listOptionValue builtIn="false" value=""/>
+ <listOptionValue builtIn="false" value=" -fPIE"/>
+ <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ </option>
+ <option id="gnu.c.compiler.option.preprocessor.def.symbols.782425475" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" valueType="definedSymbols">
+ <listOptionValue builtIn="false" value="_USE_DA_"/>
+ </option>
+ <inputType id="sbi.gnu.c.compiler.tizen.inputType.760697298" superClass="sbi.gnu.c.compiler.tizen.inputType"/>
+ </tool>
+ <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.580218478" name="C Linker" superClass="org.tizen.nativeide.tool.sbi.gnu.c.linker.base"/>
+ <tool command="i386-linux-gnueabi-g++" id="org.tizen.nativecpp.tool.sbi.gnu.cpp.linker.da.1975451795" name="C++ Linker" superClass="org.tizen.nativecpp.tool.sbi.gnu.cpp.linker.da">
+ <option id="gnu.cpp.link.option.paths.1402110619" 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="${SDK_INSTALL_PATH}/library/da/x86"/>
+ <listOptionValue builtIn="false" value=""${SDK_INSTALL_PATH}/library/da/x86""/>
+ </option>
+ <option id="sbi.gnu.cpp.linker.option.frameworks_lflags.cpp.164060987" name="Tizen-Frameworks-Other-Lflags" superClass="sbi.gnu.cpp.linker.option.frameworks_lflags.cpp" valueType="stringList">
+ <listOptionValue builtIn="false" value="-Xlinker --as-needed"/>
+ <listOptionValue builtIn="false" value=""/>
+ <listOptionValue builtIn="false" value="-pie -lpthread "/>
+ <listOptionValue builtIn="false" value="-Xlinker -rpath=\$$ORIGIN/.. -Xlinker -rpath=\$$ORIGIN/../lib"/>
+ <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ <listOptionValue builtIn="false" value="-L"${SBI_SYSROOT}/usr/lib""/>
+ <listOptionValue builtIn="false" value="-L"${SBI_SYSROOT}/usr/lib/osp""/>
+ <listOptionValue builtIn="false" value="-losp-appfw"/>
+ <listOptionValue builtIn="false" value="-losp-uifw"/>
+ <listOptionValue builtIn="false" value="-losp-image"/>
+ <listOptionValue builtIn="false" value="-losp-json"/>
+ <listOptionValue builtIn="false" value="-losp-ime"/>
+ <listOptionValue builtIn="false" value="-losp-net"/>
+ <listOptionValue builtIn="false" value="-lpthread"/>
+ <listOptionValue builtIn="false" value="-losp-content"/>
+ <listOptionValue builtIn="false" value="-losp-locations"/>
+ <listOptionValue builtIn="false" value="-losp-telephony"/>
+ <listOptionValue builtIn="false" value="-losp-uix"/>
+ <listOptionValue builtIn="false" value="-losp-media"/>
+ <listOptionValue builtIn="false" value="-losp-messaging"/>
+ <listOptionValue builtIn="false" value="-losp-web"/>
+ <listOptionValue builtIn="false" value="-losp-social"/>
+ <listOptionValue builtIn="false" value="-losp-wifi"/>
+ <listOptionValue builtIn="false" value="-losp-bluetooth"/>
+ <listOptionValue builtIn="false" value="-losp-nfc"/>
+ <listOptionValue builtIn="false" value="-losp-face"/>
+ <listOptionValue builtIn="false" value="-losp-speech-tts"/>
+ <listOptionValue builtIn="false" value="-losp-speech-stt"/>
+ <listOptionValue builtIn="false" value="-losp-shell"/>
+ <listOptionValue builtIn="false" value="-losp-shell-core"/>
+ <listOptionValue builtIn="false" value="-lxml2"/>
+ </option>
+ <option id="gnu.cpp.link.option.libs.206572174" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" valueType="libs">
+ <listOptionValue builtIn="false" value="daprobe"/>
+ </option>
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.762561480" 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.1141710483" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1674496866" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+ </tool>
+ <tool id="org.tizen.nativecpp.tool.sbi.po.compiler.1814926663" name="PO Resource Compiler" superClass="org.tizen.nativecpp.tool.sbi.po.compiler"/>
+ <tool id="org.tizen.nativecpp.tool.sbi.edc.compiler.873720266" name="EDC Resource Compiler" superClass="org.tizen.nativecpp.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="src"/>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="res"/>
+ </sourceEntries>
+ </configuration>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+ </cconfiguration>
+ <cconfiguration id="org.tizen.nativecpp.config.sbi.gcc45.app.debug.device.da.577459549">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecpp.config.sbi.gcc45.app.debug.device.da.577459549" moduleId="org.eclipse.cdt.core.settings" name="DA-Tizen-Device">
+ <externalSettings/>
+ <extensions>
+ <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" 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.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ </extensions>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <configuration artifactExtension="exe" artifactName="${ProjName}" buildArtefactType="org.tizen.nativecpp.buildArtefactType.app" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.tizen.nativecpp.buildArtefactType.app" description="" id="org.tizen.nativecpp.config.sbi.gcc45.app.debug.device.da.577459549" name="DA-Tizen-Device" parent="org.tizen.nativecpp.config.sbi.gcc45.app.debug.device.da">
+ <folderInfo id="org.tizen.nativecpp.config.sbi.gcc45.app.debug.device.da.577459549." name="/" resourcePath="">
+ <toolChain id="org.tizen.nativecpp.toolchain.sbi.gcc45.app.debug.device.da.813829651" name="Tizen Native Toolchain" superClass="org.tizen.nativecpp.toolchain.sbi.gcc45.app.debug.device.da">
+ <targetPlatform binaryParser="org.eclipse.cdt.core.ELF" id="org.tizen.nativeide.target.sbi.gnu.platform.base.1268815427" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+ <builder buildPath="${workspace_loc:/Calendar/DA-Tizen-Device}" id="org.tizen.nativecpp.target.sbi.gnu.builder.1878293371" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Tizen Application Builder" superClass="org.tizen.nativecpp.target.sbi.gnu.builder"/>
+ <tool id="org.tizen.nativecpp.tool.sbi.gnu.archiver.1716136726" name="Archiver" superClass="org.tizen.nativecpp.tool.sbi.gnu.archiver"/>
+ <tool command="arm-linux-gnueabi-g++" id="org.tizen.nativecpp.tool.sbi.gnu.cpp.compiler.da.135267948" name="C++ Compiler" superClass="org.tizen.nativecpp.tool.sbi.gnu.cpp.compiler.da">
+ <option id="sbi.gnu.cpp.compiler.option.282319682" name="Tizen-Target" superClass="sbi.gnu.cpp.compiler.option" valueType="userObjs">
+ <listOptionValue builtIn="false" value="tizen-device-2.0.cpp.partner_gcc45.armel.cpp.app"/>
+ </option>
+ <option id="gnu.cpp.compiler.option.include.paths.2051312289" 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="${SDK_INSTALL_PATH}/library"/>
+ <listOptionValue builtIn="false" value=""${SDK_INSTALL_PATH}/library""/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks_inc.cpp.427944221" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.cpp.compiler.option.frameworks_inc.cpp" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/libxml2""/>
+ <listOptionValue builtIn="false" value=""/home/sungwan/tizen-sdk/library""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/osp""/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks_cflags.cpp.1240429594" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.cpp.compiler.option.frameworks_cflags.cpp" valueType="stringList">
+ <listOptionValue builtIn="false" value=""/>
+ <listOptionValue builtIn="false" value=" -fPIE"/>
+ <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ </option>
+ <option id="sbi.gnu.cpp.compiler.option.frameworks.cpp.1502516937" name="Tizen-Frameworks" superClass="sbi.gnu.cpp.compiler.option.frameworks.cpp" valueType="userObjs">
+ <listOptionValue builtIn="false" value="osp"/>
+ </option>
+ <option id="gnu.cpp.compiler.option.preprocessor.def.2099719296" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" valueType="definedSymbols">
+ <listOptionValue builtIn="false" value="_USE_DA_"/>
+ </option>
+ <inputType id="sbi.gnu.cpp.compiler.tizen.inputType.846446939" superClass="sbi.gnu.cpp.compiler.tizen.inputType"/>
+ </tool>
+ <tool command="arm-linux-gnueabi-gcc" id="org.tizen.nativecpp.tool.sbi.gnu.c.compiler.1645862831" name="C Compiler" superClass="org.tizen.nativecpp.tool.sbi.gnu.c.compiler">
+ <option id="sbi.gnu.c.compiler.option.1409755636" name="Tizen-Target" superClass="sbi.gnu.c.compiler.option" valueType="userObjs">
+ <listOptionValue builtIn="false" value="tizen-device-2.0.cpp.partner_gcc45.armel.cpp.app"/>
+ </option>
+ <option id="gnu.c.compiler.option.include.paths.2046580924" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/inc}""/>
+ <listOptionValue builtIn="false" value="${SDK_INSTALL_PATH}/library"/>
+ <listOptionValue builtIn="false" value=""${SDK_INSTALL_PATH}/library""/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks.cpp.1732172101" name="Tizen-Frameworks" superClass="sbi.gnu.c.compiler.option.frameworks.cpp" valueType="userObjs">
+ <listOptionValue builtIn="false" value="osp"/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks_inc.cpp.2042675089" name="Tizen-Frameworks-Include-Path" superClass="sbi.gnu.c.compiler.option.frameworks_inc.cpp" valueType="includePath">
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/libxml2""/>
+ <listOptionValue builtIn="false" value=""/home/sungwan/tizen-sdk/library""/>
+ <listOptionValue builtIn="false" value=""${SBI_SYSROOT}/usr/include/osp""/>
+ </option>
+ <option id="sbi.gnu.c.compiler.option.frameworks_cflags.cpp.232355573" name="Tizen-Frameworks-Other-Cflags" superClass="sbi.gnu.c.compiler.option.frameworks_cflags.cpp" valueType="stringList">
+ <listOptionValue builtIn="false" value=""/>
+ <listOptionValue builtIn="false" value=" -fPIE"/>
+ <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ </option>
+ <option id="gnu.c.compiler.option.preprocessor.def.symbols.686813534" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" valueType="definedSymbols">
+ <listOptionValue builtIn="false" value="_USE_DA_"/>
+ </option>
+ <inputType id="sbi.gnu.c.compiler.tizen.inputType.1014512003" superClass="sbi.gnu.c.compiler.tizen.inputType"/>
+ </tool>
+ <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.1297629972" name="C Linker" superClass="org.tizen.nativeide.tool.sbi.gnu.c.linker.base"/>
+ <tool command="arm-linux-gnueabi-g++" id="org.tizen.nativecpp.tool.sbi.gnu.cpp.linker.da.1404308749" name="C++ Linker" superClass="org.tizen.nativecpp.tool.sbi.gnu.cpp.linker.da">
+ <option id="gnu.cpp.link.option.paths.1261961419" 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="${SDK_INSTALL_PATH}/library/da/arm"/>
+ <listOptionValue builtIn="false" value=""${SDK_INSTALL_PATH}/library/da/arm""/>
+ </option>
+ <option id="sbi.gnu.cpp.linker.option.frameworks_lflags.cpp.1607873256" name="Tizen-Frameworks-Other-Lflags" superClass="sbi.gnu.cpp.linker.option.frameworks_lflags.cpp" valueType="stringList">
+ <listOptionValue builtIn="false" value="-Xlinker --as-needed"/>
+ <listOptionValue builtIn="false" value=""/>
+ <listOptionValue builtIn="false" value="-pie -lpthread "/>
+ <listOptionValue builtIn="false" value="-Xlinker -rpath=\$$ORIGIN/.. -Xlinker -rpath=\$$ORIGIN/../lib"/>
+ <listOptionValue builtIn="false" value="--sysroot="${SBI_SYSROOT}""/>
+ <listOptionValue builtIn="false" value="-L"${SBI_SYSROOT}/usr/lib""/>
+ <listOptionValue builtIn="false" value="-L"${SBI_SYSROOT}/usr/lib/osp""/>
+ <listOptionValue builtIn="false" value="-losp-appfw"/>
+ <listOptionValue builtIn="false" value="-losp-uifw"/>
+ <listOptionValue builtIn="false" value="-losp-image"/>
+ <listOptionValue builtIn="false" value="-losp-json"/>
+ <listOptionValue builtIn="false" value="-losp-ime"/>
+ <listOptionValue builtIn="false" value="-losp-net"/>
+ <listOptionValue builtIn="false" value="-lpthread"/>
+ <listOptionValue builtIn="false" value="-losp-content"/>
+ <listOptionValue builtIn="false" value="-losp-locations"/>
+ <listOptionValue builtIn="false" value="-losp-telephony"/>
+ <listOptionValue builtIn="false" value="-losp-uix"/>
+ <listOptionValue builtIn="false" value="-losp-media"/>
+ <listOptionValue builtIn="false" value="-losp-messaging"/>
+ <listOptionValue builtIn="false" value="-losp-web"/>
+ <listOptionValue builtIn="false" value="-losp-social"/>
+ <listOptionValue builtIn="false" value="-losp-wifi"/>
+ <listOptionValue builtIn="false" value="-losp-bluetooth"/>
+ <listOptionValue builtIn="false" value="-losp-nfc"/>
+ <listOptionValue builtIn="false" value="-losp-face"/>
+ <listOptionValue builtIn="false" value="-losp-speech-tts"/>
+ <listOptionValue builtIn="false" value="-losp-speech-stt"/>
+ <listOptionValue builtIn="false" value="-losp-shell"/>
+ <listOptionValue builtIn="false" value="-losp-shell-core"/>
+ <listOptionValue builtIn="false" value="-lxml2"/>
+ </option>
+ <option id="gnu.cpp.link.option.libs.792949656" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" valueType="libs">
+ <listOptionValue builtIn="false" value="daprobe"/>
+ </option>
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1453208215" 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.435627942" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1327230074" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+ </tool>
+ <tool id="org.tizen.nativecpp.tool.sbi.po.compiler.1319955583" name="PO Resource Compiler" superClass="org.tizen.nativecpp.tool.sbi.po.compiler"/>
+ <tool id="org.tizen.nativecpp.tool.sbi.edc.compiler.926956975" name="EDC Resource Compiler" superClass="org.tizen.nativecpp.tool.sbi.edc.compiler"/>
+ </toolChain>
+ </folderInfo>
+ <sourceEntries>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="res"/>
+ <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="inc"/>
+ </sourceEntries>
+ </configuration>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+ </cconfiguration>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <project id="Calendar.org.tizen.nativecpp.target.sbi.gcc45.app.1751095700" name="Tizen Application" projectType="org.tizen.nativecpp.target.sbi.gcc45.app"/>
+ </storageModule>
+ <storageModule moduleId="com.samsung.tizen.nativeapp.projectInfo" version="1.0.0"/>
+ <storageModule moduleId="refreshScope" versionNumber="1">
+ <resource resourceType="PROJECT" workspacePath="/Calendar"/>
+ </storageModule>
+ <storageModule moduleId="scannerConfiguration">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+ <scannerConfigBuildInfo instanceId="org.tizen.nativecpp.config.sbi.gcc45.app.debug.emulator.1751325626">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.tizen.nativecommon.TizenGCCManagedMakePerProjectProfileCPP"/>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="org.tizen.nativecpp.config.sbi.gcc45.app.debug.device.171518306">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.tizen.nativecommon.TizenGCCManagedMakePerProjectProfileCPP"/>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="org.tizen.nativecpp.config.sbi.gcc45.app.debug.device.da.577459549">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.tizen.nativecommon.TizenGCCManagedMakePerProjectProfileCPP"/>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="org.tizen.nativecpp.config.sbi.gcc45.app.debug.emulator.da.244118101">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.tizen.nativecommon.TizenGCCManagedMakePerProjectProfileCPP"/>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="org.tizen.nativecpp.config.sbi.gcc45.app.release.1124416249">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.tizen.nativecommon.TizenGCCManagedMakePerProjectProfileCPP"/>
+ </scannerConfigBuildInfo>
+ </storageModule>
+</cproject>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>Calendar</name>
+ <comment></comment>
+ <projects>
+ <project>CalendarService</project>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+ <arguments>
+ <dictionary>
+ <key>?name?</key>
+ <value></value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.append_environment</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.autoBuildTarget</key>
+ <value>all</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.buildArguments</key>
+ <value>-j5</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.buildCommand</key>
+ <value>sbi-make</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.buildLocation</key>
+ <value>${workspace_loc:/Calendar/Debug-Tizen-Emulator}</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
+ <value>clean</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.contents</key>
+ <value>org.eclipse.cdt.make.core.activeConfigSettings</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.enableAutoBuild</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.enableCleanBuild</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.enableFullBuild</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.fullBuildTarget</key>
+ <value>all</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.stopOnError</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
+ <value>true</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+ <triggers>full,incremental,</triggers>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.tizen.nativecpp.apichecker.core.builder</name>
+ <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.nativecpp.apichecker.core.tizenCppNature</nature>
+ </natures>
+</projectDescription>
--- /dev/null
+# Target name and PKGID
+SET(this_target Calendar)
+SET(PKGID ph1vq2phrp)
+
+# include directory
+INCLUDE_DIRECTORIES(
+ /usr/include/osp
+ inc
+ )
+
+# Source files
+FILE(GLOB ${this_target}_SOURCE_FILES src/*.cpp)
+
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIE")
+
+# Create executable
+SET(CMAKE_EXECUTABLE_SUFFIX ".exe")
+ADD_EXECUTABLE (${this_target} ${${this_target}_SOURCE_FILES})
+
+# Set link libraries and link options
+TARGET_LINK_LIBRARIES(${this_target} -L/usr/lib/osp osp-appfw osp-uifw osp-social)
+TARGET_LINK_LIBRARIES(${this_target} -Xlinker --allow-shlib-undefined -pie)
+
+# Copy info, data, res, and Icons directories
+INSTALL(TARGETS ${this_target} DESTINATION ../usr/apps/${PKGID}/bin)
+
+# Copy resource
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/manifest.xml DESTINATION ../usr/apps/${PKGID}/info)
+INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/res DESTINATION ../usr/apps/${PKGID})
+INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/shared DESTINATION ../usr/apps/${PKGID})
--- /dev/null
+Flora License
+
+Version 1.0, May, 2012
+
+http://floralicense.org/license/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+"License" shall mean the terms and conditions for use, reproduction,
+and distribution as defined by Sections 1 through 9 of this document.
+
+"Licensor" shall mean the copyright owner or entity authorized by
+the copyright owner that is granting the License.
+
+"Legal Entity" shall mean the union of the acting entity and
+all other entities that control, are controlled by, or are
+under common control with that entity. For the purposes of
+this definition, "control" means (i) the power, direct or indirect,
+to cause the direction or management of such entity,
+whether by contract or otherwise, or (ii) ownership of fifty percent (50%)
+or more of the outstanding shares, or (iii) beneficial ownership of
+such entity.
+
+"You" (or "Your") shall mean an individual or Legal Entity
+exercising permissions granted by this License.
+
+"Source" form shall mean the preferred form for making modifications,
+including but not limited to software source code, documentation source,
+and configuration files.
+
+"Object" form shall mean any form resulting from mechanical
+transformation or translation of a Source form, including but
+not limited to compiled object code, generated documentation,
+and conversions to other media types.
+
+"Work" shall mean the work of authorship, whether in Source or Object form,
+made available under the License, as indicated by a copyright notice
+that is included in or attached to the work (an example is provided
+in the Appendix below).
+
+"Derivative Works" shall mean any work, whether in Source or Object form,
+that is based on (or derived from) the Work and for which the editorial
+revisions, annotations, elaborations, or other modifications represent,
+as a whole, an original work of authorship. For the purposes of this License,
+Derivative Works shall not include works that remain separable from,
+or merely link (or bind by name) to the interfaces of, the Work and
+Derivative Works thereof.
+
+"Contribution" shall mean any work of authorship, including the original
+version of the Work and any modifications or additions to that Work or
+Derivative Works thereof, that is intentionally submitted to Licensor
+for inclusion in the Work by the copyright owner or by an individual or
+Legal Entity authorized to submit on behalf of the copyright owner.
+For the purposes of this definition, "submitted" means any form of
+electronic, verbal, or written communication sent to the Licensor or
+its representatives, including but not limited to communication on
+electronic mailing lists, source code control systems, and issue
+tracking systems that are managed by, or on behalf of, the Licensor
+for the purpose of discussing and improving the Work, but excluding
+communication that is conspicuously marked or otherwise designated
+in writing by the copyright owner as "Not a Contribution."
+
+"Contributor" shall mean Licensor and any individual or Legal Entity
+on behalf of whom a Contribution has been received by Licensor and
+subsequently incorporated within the Work.
+
+"Tizen Certified Platform" shall mean a software platform that complies
+with the standards set forth in the Compatibility Definition Document
+and passes the Compatibility Test Suite as defined from time to time
+by the Tizen Technical Steering Group and certified by the Tizen
+Association or its designated agent.
+
+2. Grant of Copyright License. Subject to the terms and conditions of
+this License, each Contributor hereby grants to You a perpetual,
+worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+copyright license to reproduce, prepare Derivative Works of,
+publicly display, publicly perform, sublicense, and distribute the
+Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of
+this License, each Contributor hereby grants to You a perpetual,
+worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+(except as stated in this section) patent license to make, have made,
+use, offer to sell, sell, import, and otherwise transfer the Work
+solely as incorporated into a Tizen Certified Platform, where such
+license applies only to those patent claims licensable by such
+Contributor that are necessarily infringed by their Contribution(s)
+alone or by combination of their Contribution(s) with the Work solely
+as incorporated into a Tizen Certified Platform to which such
+Contribution(s) was submitted. If You institute patent litigation
+against any entity (including a cross-claim or counterclaim
+in a lawsuit) alleging that the Work or a Contribution incorporated
+within the Work constitutes direct or contributory patent infringement,
+then any patent licenses granted to You under this License for that
+Work shall terminate as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the
+Work or Derivative Works thereof pursuant to the copyright license
+above, in any medium, with or without modifications, and in Source or
+Object form, provided that You meet the following conditions:
+
+ 1. You must give any other recipients of the Work or Derivative Works
+ a copy of this License; and
+ 2. You must cause any modified files to carry prominent notices stating
+ that You changed the files; and
+ 3. You must retain, in the Source form of any Derivative Works that
+ You distribute, all copyright, patent, trademark, and attribution
+ notices from the Source form of the Work, excluding those notices
+ that do not pertain to any part of the Derivative Works; and
+ 4. If the Work includes a "NOTICE" text file as part of its distribution,
+ then any Derivative Works that You distribute must include a readable
+ copy of the attribution notices contained within such NOTICE file,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works, in at least one of the following places:
+ within a NOTICE text file distributed as part of the Derivative Works;
+ within the Source form or documentation, if provided along with the
+ Derivative Works; or, within a display generated by the Derivative Works,
+ if and wherever such third-party notices normally appear.
+ The contents of the NOTICE file are for informational purposes only
+ and do not modify the License.
+
+You may add Your own attribution notices within Derivative Works
+that You distribute, alongside or as an addendum to the NOTICE text
+from the Work, provided that such additional attribution notices
+cannot be construed as modifying the License. You may add Your own
+copyright statement to Your modifications and may provide additional or
+different license terms and conditions for use, reproduction, or
+distribution of Your modifications, or for any such Derivative Works
+as a whole, provided Your use, reproduction, and distribution of
+the Work otherwise complies with the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise,
+any Contribution intentionally submitted for inclusion in the Work
+by You to the Licensor shall be under the terms and conditions of
+this License, without any additional terms or conditions.
+Notwithstanding the above, nothing herein shall supersede or modify
+the terms of any separate license agreement you may have executed
+with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade
+names, trademarks, service marks, or product names of the Licensor,
+except as required for reasonable and customary use in describing the
+origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or
+agreed to in writing, Licensor provides the Work (and each
+Contributor provides its Contributions) on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+implied, including, without limitation, any warranties or conditions
+of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+PARTICULAR PURPOSE. You are solely responsible for determining the
+appropriateness of using or redistributing the Work and assume any
+risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory,
+whether in tort (including negligence), contract, or otherwise,
+unless required by applicable law (such as deliberate and grossly
+negligent acts) or agreed to in writing, shall any Contributor be
+liable to You for damages, including any direct, indirect, special,
+incidental, or consequential damages of any character arising as a
+result of this License or out of the use or inability to use the
+Work (including but not limited to damages for loss of goodwill,
+work stoppage, computer failure or malfunction, or any and all
+other commercial damages or losses), even if such Contributor
+has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing
+the Work or Derivative Works thereof, You may choose to offer,
+and charge a fee for, acceptance of support, warranty, indemnity,
+or other liability obligations and/or rights consistent with this
+License. However, in accepting such obligations, You may act only
+on Your own behalf and on Your sole responsibility, not on behalf
+of any other Contributor, and only if You agree to indemnify,
+defend, and hold each Contributor harmless for any liability
+incurred by, or claims asserted against, such Contributor by reason
+of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Flora License to your work
+
+To apply the Flora License to your work, attach the following
+boilerplate notice, with the fields enclosed by brackets "[]"
+replaced with your own identifying information. (Don't include
+the brackets!) The text should be enclosed in the appropriate
+comment syntax for the file format. We also recommend that a
+file or class name and description of purpose be included on the
+same "printed page" as the copyright notice for easier
+identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Flora License, Version 1.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://floralicense.org/license/
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
--- /dev/null
+Copyright (c) 2012 Samsung Electronics Co., Ltd. All rights reserved.
+Except as noted, this software is licensed under Flora License, Version 1.
+Please, see the LICENSE.Flora file for Flora License, Version 1 terms and conditions.
\ No newline at end of file
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClCalendarApp.h
+ * @brief This is the header file for the CalendarApp class.
+ */
+
+#ifndef _CL_CALENDAR_APP_H_
+#define _CL_CALENDAR_APP_H_
+
+#include <FApp.h>
+#include <FBase.h>
+#include <FSystem.h>
+#include "ClICalendarAppStatusChangedEventListener.h"
+#include "ClTypes.h"
+
+class CalendarApp
+ : public Tizen::App::UiApp
+ , public virtual Tizen::App::IAppControlProviderEventListener
+ , public virtual Tizen::System::ISettingEventListener
+{
+public:
+ const Tizen::Base::String* GetArgument(const Tizen::Base::String& key) const;
+ const Tizen::Base::String& GetInitialScene(void) const;
+ OperationType GetOperationType(void) const;
+ RequestId GetRequestId(void) const;
+
+ void AddCalendarAppStatusChangedEventListener(ICalendarAppStatusChangedEventListener& listener);
+ void RemoveCalendarAppStatusChangedEventListener(ICalendarAppStatusChangedEventListener& listener);
+
+ virtual ~CalendarApp(void);
+
+ virtual bool OnAppInitializing(Tizen::App::AppRegistry& appRegistry);
+ virtual bool OnAppInitialized(void);
+ virtual bool OnAppTerminating(Tizen::App::AppRegistry& appRegistry, bool forcedTermination = false);
+ virtual void OnForeground(void);
+ virtual void OnBackground(void);
+
+ virtual void OnAppControlRequestReceived(RequestId reqId, const Tizen::Base::String& operationId,
+ const Tizen::Base::String* pUriData, const Tizen::Base::String* pMimeType,
+ const Tizen::Base::Collection::IMap* pExtraData);
+
+ virtual void OnSettingChanged(Tizen::Base::String& key);
+
+ static Tizen::App::UiApp* CreateInstance(void);
+ static const Tizen::Base::String GetExportVcsFilePath(void);
+
+private:
+ CalendarApp(void);
+
+private:
+ OperationType __type;
+ RequestId __requestId;
+ Tizen::Base::String __initialScene;
+ Tizen::Base::String __mimeType;
+ Tizen::Base::String __uriScheme;
+ Tizen::Base::Collection::IMap* __pArgs;
+ Tizen::Base::Collection::LinkedList __listeners;
+}; // CalendarApp
+
+#endif // _CL_CALENDAR_APP_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClCalendarListForm.h
+ * @brief This is the header file for the CalendarListForm class.
+ */
+
+#ifndef _CL_CALENDAR_LIST_FORM_H_
+#define _CL_CALENDAR_LIST_FORM_H_
+
+#include <FBase.h>
+#include <FUi.h>
+
+class CalendarListForm
+ : public Tizen::Ui::Controls::Form
+ , public virtual Tizen::Ui::IActionEventListener
+ , public virtual Tizen::Ui::Controls::IFormBackEventListener
+ , public virtual Tizen::Ui::Controls::IListViewItemEventListener
+ , public virtual Tizen::Ui::Controls::IListViewItemProvider
+ , public virtual Tizen::Ui::Scenes::ISceneEventListener
+{
+public:
+ result Initialize(void);
+
+ CalendarListForm(void);
+ virtual ~CalendarListForm(void);
+
+ virtual result OnInitializing(void);
+ virtual result OnTerminating(void);
+
+ virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+
+ virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source);
+
+ virtual int GetItemCount(void);
+ virtual Tizen::Ui::Controls::ListItemBase* CreateItem(int index, int itemWidth);
+ virtual bool DeleteItem(int index, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth);
+
+ virtual void OnListViewItemStateChanged(Tizen::Ui::Controls::ListView& listView,
+ int index, int elementId, Tizen::Ui::Controls::ListItemStatus status);
+ virtual void OnListViewItemSwept(Tizen::Ui::Controls::ListView& listView,
+ int index, Tizen::Ui::Controls::SweepDirection direction);
+ virtual void OnListViewContextItemStateChanged(Tizen::Ui::Controls::ListView& listView,
+ int index, int elementId, Tizen::Ui::Controls::ListContextItemStatus status);
+ virtual void OnListViewItemLongPressed(Tizen::Ui::Controls::ListView& listView,
+ int index, int elementId, bool& invokeListViewItemCallback);
+ virtual void OnListViewItemReordered(Tizen::Ui::Controls::ListView& listView, int indexFrom, int indexTo);
+
+ virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId,
+ const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);
+ virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId,
+ const Tizen::Ui::Scenes::SceneId& nextSceneId);
+
+private:
+ Tizen::Base::Collection::IList* __pCalendars;
+}; // CalendarListForm
+
+#endif // _CL_CALENDAR_LIST_FORM_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClDayEventListForm.h
+ * @brief This is the header file for the DayEventListForm class.
+ */
+
+#ifndef _CL_DAY_EVENT_LIST_FORM_H_
+#define _CL_DAY_EVENT_LIST_FORM_H_
+
+#include <FBase.h>
+#include <FGraphics.h>
+#include <FLocales.h>
+#include <FSocial.h>
+#include <FUi.h>
+
+class DayEventListForm
+ : public Tizen::Ui::Controls::Form
+ , public virtual Tizen::Ui::Controls::IFormBackEventListener
+ , public virtual Tizen::Ui::Controls::IListViewItemEventListener
+ , public virtual Tizen::Ui::Controls::IListViewItemProvider
+ , public virtual Tizen::Ui::Scenes::ISceneEventListener
+{
+public:
+ result Initialize(void);
+
+ DayEventListForm(void);
+ virtual ~DayEventListForm(void);
+
+ virtual result OnInitializing(void);
+ virtual result OnTerminating(void);
+
+ virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source);
+
+ virtual int GetItemCount(void);
+ virtual Tizen::Ui::Controls::ListItemBase* CreateItem(int index, int itemWidth);
+ virtual bool DeleteItem(int index, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth);
+
+ virtual void OnListViewItemStateChanged(Tizen::Ui::Controls::ListView& listView,
+ int index, int elementId, Tizen::Ui::Controls::ListItemStatus status);
+ virtual void OnListViewItemSwept(Tizen::Ui::Controls::ListView& listView,
+ int index, Tizen::Ui::Controls::SweepDirection direction);
+ virtual void OnListViewContextItemStateChanged(Tizen::Ui::Controls::ListView& listView,
+ int index, int elementId, Tizen::Ui::Controls::ListContextItemStatus status);
+
+ virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId,
+ const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);
+ virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId,
+ const Tizen::Ui::Scenes::SceneId& nextSceneId);
+
+private:
+ const Tizen::Graphics::Color GetCalendarColor(const Tizen::Social::RecordId& calendarId) const;
+ const Tizen::Base::String GetDateRangeText(const Tizen::Base::DateTime& start, const Tizen::Base::DateTime& end, bool isAllDayEvent) const;
+
+private:
+ Tizen::Base::DateTime __startDate;
+ Tizen::Base::DateTime __endDate;
+ Tizen::Social::Calendarbook* __pCalendarbook;
+ Tizen::Locales::DateTimeFormatter* __pDateFormatter;
+ Tizen::Locales::DateTimeFormatter* __pTimeFormatter;
+ Tizen::Base::Collection::IList* __pEvents;
+ Tizen::Ui::Controls::ListView* __pEventsListView;
+};
+
+#endif // _CL_DAY_EVENT_LIST_FORM_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClDayPanel.h
+ * @brief This is the header file for the DayPanel class.
+ */
+
+#ifndef _CL_DAY_PANEL_H_
+#define _CL_DAY_PANEL_H_
+
+#include <FBase.h>
+#include <FGraphics.h>
+#include <FSocial.h>
+#include <FUi.h>
+
+#include "ClICalendarEventChangedEventListener.h"
+#include "ClICurrentDateChangedEventListener.h"
+#include "ClIDateFocusEventListener.h"
+#include "ClIEventActionEventListener.h"
+#include "ClIPanningAnimationControlProvider.h"
+
+class EventListPresentationModel;
+class PanningAnimationManager;
+
+class DayPanel
+ : public Tizen::Ui::Controls::Panel
+ , public virtual Tizen::Ui::Animations::IControlAnimatorEventListener
+ , public virtual Tizen::Ui::Scenes::ISceneEventListener
+ , public virtual ICalendarEventChangedEventListener
+ , public virtual ICurrentDateChangedEventListener
+ , public virtual IDateFocusEventListener
+ , public virtual IEventActionEventListener
+ , public virtual IPanningAnimationControlProvider
+{
+public:
+ result Initialize(void);
+
+ DayPanel(void);
+ virtual ~DayPanel(void);
+
+ virtual result OnInitializing(void);
+ virtual result OnTerminating(void);
+ virtual void OnUserEventReceivedN(RequestId requestId, Tizen::Base::Collection::IList* pArgs);
+
+ virtual void OnControlAnimationStarted(Tizen::Ui::Animations::ControlAnimator& source, Tizen::Ui::Control& control);
+ virtual void OnControlAnimationFinished(Tizen::Ui::Animations::ControlAnimator& source, Tizen::Ui::Control& control);
+ virtual void OnControlAnimationStopped(Tizen::Ui::Animations::ControlAnimator& source, Tizen::Ui::Control& control);
+
+ virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId,
+ const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);
+ virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId,
+ const Tizen::Ui::Scenes::SceneId& nextSceneId);
+
+ virtual void OnCalendarEventChanged(void);
+
+ virtual void OnCurrentDateChanged(const Tizen::Base::DateTime& currentDate, const Tizen::Base::DateTime& prevDate);
+
+ virtual void OnDateFocused(const Tizen::Base::DateTime& focusedDate);
+
+ virtual void OnEventActionPerformed(const Tizen::Social::CalEventInstance& event, EventAction actionId);
+
+ virtual Tizen::Ui::Control* GetCurrentControl(void);
+ virtual Tizen::Ui::Control* GetNextControl(void);
+ virtual Tizen::Ui::Control* GetPreviewControl(void);
+
+private:
+ void DrawCurrentDate(void);
+ void DrawEvents(void);
+ void Update(bool draw = true);
+
+private:
+ EventListPresentationModel* __pPm;
+ Tizen::Ui::Controls::Panel* __pPanelDayEvent[VIEW_SCROLL_EFFECT_COUNT];
+ PanningAnimationManager* __pPanningAnimationManager;
+}; // DayPanel
+
+#endif // _CL_DAY_PANEL_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClEventDeleterForm.h
+ * @brief This is the header file for the EventDeleterForm class.
+ */
+
+#ifndef _CL_EVENT_DELETER_FORM_H_
+#define _CL_EVENT_DELETER_FORM_H_
+
+#include <FBase.h>
+#include <FGraphics.h>
+#include <FLocales.h>
+#include <FSocial.h>
+#include <FUi.h>
+#include "ClICalendarEventChangedEventListener.h"
+
+class EventListPresentationModel;
+
+class EventDeleterForm
+ : public Tizen::Ui::Controls::Form
+ , public virtual Tizen::Ui::IActionEventListener
+ , public virtual Tizen::Ui::Controls::IFormBackEventListener
+ , public virtual Tizen::Ui::Controls::IGroupedListViewItemEventListener
+ , public virtual Tizen::Ui::Controls::IGroupedListViewItemProvider
+ , public virtual Tizen::Ui::Scenes::ISceneEventListener
+ , public virtual ICalendarEventChangedEventListener
+{
+public:
+ result Initialize(void);
+
+ EventDeleterForm(void);
+ virtual ~EventDeleterForm(void);
+
+ virtual result OnInitializing(void);
+ virtual result OnTerminating(void);
+ virtual void OnUserEventReceivedN(RequestId requestId, Tizen::Base::Collection::IList* pArgs);
+
+ virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source);
+
+ virtual int GetGroupCount(void);
+ virtual int GetItemCount(int groupIndex);
+ virtual Tizen::Ui::Controls::GroupItem* CreateGroupItem(int groupIndex, int itemWidth);
+ virtual bool DeleteGroupItem(int groupIndex, Tizen::Ui::Controls::GroupItem* pItem, int itemWidth);
+ virtual Tizen::Ui::Controls::ListItemBase* CreateItem(int groupIndex, int itemIndex, int itemWidth);
+ virtual bool DeleteItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth);
+
+ virtual void OnGroupedListViewItemStateChanged(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex, int itemIndex,
+ int elementId, Tizen::Ui::Controls::ListItemStatus status);
+ virtual void OnGroupedListViewItemSwept(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex, int itemIndex,
+ Tizen::Ui::Controls::SweepDirection direction);
+ virtual void OnGroupedListViewContextItemStateChanged(Tizen::Ui::Controls::GroupedListView& listView,
+ int groupIndex, int itemIndex,
+ int elementId, Tizen::Ui::Controls::ListContextItemStatus status);
+ virtual void OnGroupedListViewItemLongPressed(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex, int itemIndex,
+ int elementId, bool& invokeListViewItemCallback);
+ virtual void OnGroupedListViewGroupItemSelected(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex);
+
+ virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId,
+ const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);
+ virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId,
+ const Tizen::Ui::Scenes::SceneId& nextSceneId);
+
+ virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+
+ virtual void OnCalendarEventChanged(void);
+
+private:
+ result UpdateSelectedLabel(void);
+
+private:
+ EventListPresentationModel* __pPm;
+ Tizen::Base::Collection::IList* __pList;
+ Tizen::Ui::Controls::GroupedListView* __pGroupedListViewDeleteList;
+ Tizen::Social::Calendarbook* __pCalendarbook;
+ Tizen::Locales::DateTimeFormatter* __pDateFormatter;
+ Tizen::Locales::DateTimeFormatter* __pTimeFormatter;
+ Tizen::Ui::Controls::CheckButton* __pSelectAll;
+ Tizen::Ui::Controls::CheckButton* __pSelectBeforeToday;
+ Tizen::Ui::Controls::Panel* __pPanel;
+ Tizen::Ui::Controls::Label* __pLabel;
+ bool __topBottomItemEnabled;
+}; // EventDeleterForm
+
+#endif // _CL_EVENT_DELETER_FORM_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClEventDetailsForm.h
+ * @brief This is the header file for the EventDetailsForm class.
+ */
+
+#ifndef _CL_EVENT_DETAILS_FORM_H_
+#define _CL_EVENT_DETAILS_FORM_H_
+
+#include <FApp.h>
+#include <FBase.h>
+#include <FGraphics.h>
+#include <FUi.h>
+
+class EventPresentationModel;
+class SharePopup;
+
+class EventDetailsForm
+ : public Tizen::Ui::Controls::Form
+ , public virtual Tizen::Ui::IActionEventListener
+ , public virtual Tizen::Ui::Controls::IFormBackEventListener
+ , public virtual Tizen::Ui::Controls::ISectionTableViewItemEventListener
+ , public virtual Tizen::Ui::Controls::ISectionTableViewItemProvider
+ , public virtual Tizen::Ui::Scenes::ISceneEventListener
+{
+public:
+ result Initialize(void);
+
+ EventDetailsForm(void);
+ virtual ~EventDetailsForm(void);
+
+ virtual result OnInitializing(void);
+ virtual result OnTerminating(void);
+ virtual void OnUserEventReceivedN(RequestId requestId, Tizen::Base::Collection::IList* pArgs);
+
+ virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source);
+
+ virtual int GetSectionCount(void);
+ virtual int GetItemCount(int sectionIndex);
+ virtual Tizen::Ui::Controls::TableViewItem* CreateItem(int sectionIndex, int itemIndex, int itemWidth);
+ virtual bool DeleteItem(int sectionIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem);
+ virtual void UpdateItem(int sectionIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem);
+ virtual Tizen::Base::String GetSectionHeader(int sectionIndex);
+ virtual bool HasSectionHeader(int sectionIndex);
+ virtual Tizen::Base::String GetSectionFooter(int sectionIndex);
+ virtual bool HasSectionFooter(int sectionIndex);
+ virtual int GetDefaultItemHeight(void);
+
+ virtual void OnSectionTableViewItemStateChanged(Tizen::Ui::Controls::SectionTableView& tableView,
+ int sectionIndex, int itemIndex,
+ Tizen::Ui::Controls::TableViewItem* pItem,
+ Tizen::Ui::Controls::TableViewItemStatus status);
+ virtual void OnSectionTableViewContextItemActivationStateChanged(Tizen::Ui::Controls::SectionTableView& tableView,
+ int sectionIndex, int itemIndex,
+ Tizen::Ui::Controls::TableViewContextItem* pContextItem,
+ bool activated);
+
+ virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId,
+ const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);
+ virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId,
+ const Tizen::Ui::Scenes::SceneId& nextSceneId);
+
+ virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+
+ static EventDetailsForm* CreateEventDetailsFormN(void);
+
+private:
+ Tizen::Ui::Controls::TableViewItem* CreateMainItemN(int itemWidth, const Tizen::Base::String& title,
+ const Tizen::Base::DateTime& start, const Tizen::Base::DateTime& end);
+ Tizen::Ui::Controls::TableViewItem* CreateDescriptionItemN(int itemWidth, const Tizen::Base::String& description);
+ Tizen::Ui::Controls::TableViewItem* CreateLocationItemN(int itemWidth, const Tizen::Base::String& location);
+ Tizen::Ui::Controls::TableViewItem* CreateReminderItemN(int itemWidth, const Tizen::Base::String& alarm);
+ Tizen::Ui::Controls::TableViewItem* CreateRepeatItemN(int itemWidth, const Tizen::Base::String& repeat);
+// Tizen::Ui::Controls::TableViewItem* CreateSaveToItemN(int itemWidth, const Tizen::Base::String& calendarName,
+// const Tizen::Graphics::Bitmap* pCalendarIcon = null);
+ result SendAppControlResult(Tizen::App::AppCtrlResult appControlResult);
+ void InitializeSubMenu(void);
+
+private:
+ EventPresentationModel* __pPm;
+ Tizen::Ui::Controls::SectionTableView* __pTableView;
+ Tizen::Ui::Controls::ContextMenu* __pContextMenuSub;
+ SharePopup* __pSharePopup;
+}; // EventDetailsForm
+
+#endif // _CL_EVENT_DETAILS_FORM_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClEventEditorForm.h
+ * @brief This is the header file for the EventEditorForm class.
+ */
+
+#ifndef _CL_EVENT_EDITOR_FORM_H_
+#define _CL_EVENT_EDITOR_FORM_H_
+
+#include <FGraphics.h>
+#include <FSocial.h>
+#include <FUi.h>
+
+class EventPresentationModel;
+
+class EventEditorForm
+ : public Tizen::Ui::Controls::Form
+ , public virtual Tizen::Ui::IActionEventListener
+ , public virtual Tizen::Ui::IDateChangeEventListener
+ , public virtual Tizen::Ui::IKeypadEventListener
+ , public virtual Tizen::Ui::ITimeChangeEventListener
+ , public virtual Tizen::Ui::Controls::IFormBackEventListener
+ , public virtual Tizen::Ui::Controls::IExpandableEditAreaEventListener
+ , public virtual Tizen::Ui::Controls::ISectionTableViewItemEventListener
+ , public virtual Tizen::Ui::Controls::ISectionTableViewItemProvider
+ , public virtual Tizen::Ui::Scenes::ISceneEventListener
+{
+public:
+ result Initialize(void);
+
+ EventEditorForm(void);
+ virtual ~EventEditorForm(void);
+
+ virtual result OnInitializing(void);
+ virtual result OnTerminating(void);
+
+ virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source);
+
+ virtual void OnExpandableEditAreaLineAdded(Tizen::Ui::Controls::ExpandableEditArea& source, int newLineCount);
+ virtual void OnExpandableEditAreaLineRemoved(Tizen::Ui::Controls::ExpandableEditArea& source, int newLineCount);
+
+ virtual int GetSectionCount(void);
+ virtual int GetItemCount(int sectionIndex);
+ virtual Tizen::Ui::Controls::TableViewItem* CreateItem(int sectionIndex, int itemIndex, int itemWidth);
+ virtual bool DeleteItem(int sectionIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem);
+ virtual void UpdateItem(int sectionIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem);
+ virtual Tizen::Base::String GetSectionHeader(int sectionIndex);
+ virtual bool HasSectionHeader(int sectionIndex);
+ virtual Tizen::Base::String GetSectionFooter(int sectionIndex);
+ virtual bool HasSectionFooter(int sectionIndex);
+ virtual int GetDefaultItemHeight(void);
+
+ virtual void OnSectionTableViewItemStateChanged(Tizen::Ui::Controls::SectionTableView& tableView,
+ int sectionIndex, int itemIndex,
+ Tizen::Ui::Controls::TableViewItem* pItem,
+ Tizen::Ui::Controls::TableViewItemStatus status);
+ virtual void OnSectionTableViewContextItemActivationStateChanged(Tizen::Ui::Controls::SectionTableView& tableView,
+ int sectionIndex, int itemIndex,
+ Tizen::Ui::Controls::TableViewContextItem* pContextItem,
+ bool activated);
+
+ virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId,
+ const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);
+ virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId,
+ const Tizen::Ui::Scenes::SceneId& nextSceneId);
+
+ virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+
+ virtual void OnDateChanged(const Tizen::Ui::Control& source, int year, int month, int day);
+ virtual void OnDateChangeCanceled(const Tizen::Ui::Control& source);
+
+ virtual void OnKeypadWillOpen(Tizen::Ui::Control& source);
+ virtual void OnKeypadOpened(Tizen::Ui::Control& source);
+ virtual void OnKeypadClosed(Tizen::Ui::Control& source);
+ virtual void OnKeypadActionPerformed(Tizen::Ui::Control& source, Tizen::Ui::KeypadAction keypadAction);
+
+ virtual void OnTimeChanged(const Tizen::Ui::Control& source, int hour, int minute);
+ virtual void OnTimeChangeCanceled(const Tizen::Ui::Control& source);
+
+ static EventEditorForm* CreateEventEditorFormN(void);
+
+private:
+ enum EditEventFormStyle
+ {
+ EDIT_EVENT_FORM_STYLE_CREATE,
+ EDIT_EVENT_FORM_STYLE_EDIT
+ };
+
+ Tizen::Ui::Controls::TableViewItem* CreateTitleItemN(int itemWidth, const Tizen::Base::String& title);
+ Tizen::Ui::Controls::TableViewItem* CreateStartTimeItemN(int itemWidth, const Tizen::Base::DateTime& start, bool isAllDayEvent);
+ Tizen::Ui::Controls::TableViewItem* CreateEndTimeItemN(int itemWidth, const Tizen::Base::DateTime& end, bool isAllDayEvent);
+// Tizen::Ui::Controls::TableViewItem* CreateTimeZoneTimeN(int itemWidth, const Tizen::Base::String& timeZone);
+ Tizen::Ui::Controls::TableViewItem* CreateAllDayEventItemN(int itemWidth);
+ Tizen::Ui::Controls::TableViewItem* CreateDescriptionItemN(int itemWidth, const Tizen::Base::String& description);
+ Tizen::Ui::Controls::TableViewItem* CreateLocationItemN(int itemWidth, const Tizen::Base::String& location);
+ Tizen::Ui::Controls::TableViewItem* CreateReminderItemN(int itemWidth, int itemHeight, const Tizen::Base::String& reminder,
+ int index, bool showItem = true, bool hasAddButton = false);
+ Tizen::Ui::Controls::TableViewItem* CreateRepeatItemN(int itemWidth, const Tizen::Base::String& repeat);
+// Tizen::Ui::Controls::TableViewItem* CreateSaveToItemN(int itemWidth, const Tizen::Base::String& calendarName,
+// const Tizen::Graphics::Bitmap* pCalendarIcon = null);
+ result SetStyle(EditEventFormStyle style);
+// result Update(void);
+ result UpdatePm(void);
+
+private:
+ static const int MAX_COUNT_OF_REMINDER = 5;
+
+ EventPresentationModel* __pPm;
+ EditEventFormStyle __style;
+ Tizen::Ui::Controls::SectionTableView* __pTableView;
+ Tizen::Ui::Controls::EditField* __pEditFieldTitle;
+ Tizen::Ui::Controls::EditField* __pEditFieldLocation;
+ Tizen::Ui::Controls::EditDate* __pEditDateStartDate;
+ Tizen::Ui::Controls::EditTime* __pEditTimeStartTime;
+ Tizen::Ui::Controls::EditDate* __pEditDateEndDate;
+ Tizen::Ui::Controls::EditTime* __pEditTimeEndTime;
+ Tizen::Ui::Controls::CheckButton* __pCheckButtonAllDayEvent;
+// Tizen::Ui::Controls::Label* __pLabelTimeZone;
+ Tizen::Ui::Controls::Label* __pLabelReminder[MAX_COUNT_OF_REMINDER];
+ Tizen::Ui::Controls::Label* __pLabelRepeat;
+ Tizen::Ui::Controls::TableViewItem* __pTableViewItemNote;
+ Tizen::Ui::Controls::ExpandableEditArea* __pExpandableEditAreaNote;
+// Tizen::Ui::Controls::Label* __pLabelSaveTo;
+ Tizen::Ui::Controls::Button* __pButtonAddReminer;
+ Tizen::Ui::Controls::Button* __pButtonDeleteReminder;
+ Tizen::Ui::Controls::TableViewItem* __pItemReminder[MAX_COUNT_OF_REMINDER];
+}; // EventEditorForm
+
+#endif // _CL_EVENT_EDITOR_FORM_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClEventItem.h
+ * @brief This is the header file for the EventItem class.
+ */
+
+#ifndef _CL_EVENT_ITEM_H_
+#define _CL_EVENT_ITEM_H_
+
+#include <FBase.h>
+#include <FGraphics.h>
+#include <FLocales.h>
+#include <FUi.h>
+#include "ClTypes.h"
+
+class EventItem
+ : public Tizen::Ui::Controls::CustomItem
+{
+public:
+ const Tizen::Graphics::Color GetCalendarColor(void) const;
+ const Tizen::Base::String& GetDateRangeText(void) const;
+ const Tizen::Base::String& GetLocation(void) const;
+ const Tizen::Base::String& GetSearchText(void) const;
+ const Tizen::Base::String& GetTitle(void) const;
+ bool HasReminder(void) const;
+ void Initialize(EventItemStyle style, int width);
+ bool IsRepeatedEvent(void) const;
+ bool IsFacebookEvent(void) const;
+ void SetAllDayEvent(void);
+ void SetCalendarColor(const Tizen::Graphics::Color& calendarColor);
+ void SetDateRange(const Tizen::Base::DateTime& start, const Tizen::Base::DateTime& end,
+ const Tizen::Base::DateTime& current, Tizen::Locales::DateTimeFormatter* pTimeFormatter = null);
+ void SetDateRangeText(const Tizen::Base::String& range);
+ void SetFacebookEvent(bool isFacebookEvent);
+ void SetLocation(const Tizen::Base::String& location);
+ void SetReminder(bool hasReminder);
+ void SetRepeat(bool isRepeated);
+ void SetSearchText(const Tizen::Base::String& searchText);
+ void SetTitle(const Tizen::Base::String& title);
+ void UpdateElements(void);
+
+ EventItem(void);
+ virtual ~EventItem(void);
+
+private:
+ EventItemStyle __style;
+ int __width;
+ Tizen::Graphics::Color __calendarColor;
+ Tizen::Base::String __title;
+ Tizen::Base::String __location;
+ Tizen::Base::String __range;
+ Tizen::Base::String __searchText;
+ Tizen::Ui::Controls::ICustomElement* __pTitleElement;
+ Tizen::Ui::Controls::ICustomElement* __pLocationElement;
+ bool __hasReminder;
+ bool __isRepeated;
+ bool __isFacebook;
+}; // EventItem
+
+#endif // _CL_EVENT_ITEM_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClEventListPresentationModel.h
+ * @brief This is the header file for the EventListPresentationModel class.
+ */
+
+#ifndef _CL_EVENT_LIST_PRESENTATION_MODEL_H_
+#define _CL_EVENT_LIST_PRESENTATION_MODEL_H_
+
+#include <FBase.h>
+#include <FGraphics.h>
+#include <FLocales.h>
+#include <FSocial.h>
+#include "ClICalendarAppStatusChangedEventListener.h"
+#include "ClICalendarEventChangedEventListener.h"
+#include "ClICurrentDateChangedEventListener.h"
+#include "ClTypes.h"
+
+class EventListPresentationModel
+ : public virtual Tizen::Base::Runtime::ITimerEventListener
+ , public virtual Tizen::Social::ICalendarbookEventListener
+ , public virtual ICalendarAppStatusChangedEventListener
+{
+public:
+ virtual ~EventListPresentationModel(void);
+
+ result AddCalendarEventChangedEventListener(ICalendarEventChangedEventListener& listener);
+ result RemoveCalendarEventChangedEventListener(ICalendarEventChangedEventListener& listner);
+ result AddCurrentDateChangedEventListener(ICurrentDateChangedEventListener& listener);
+ result RemoveCurrentDateChangedEventListener(ICurrentDateChangedEventListener& listener);
+ Tizen::Base::DateTime GetCurrentDate(void) const;
+ int GetCurrentYear(void) const;
+ int GetCurrentMonth(void) const;
+ int GetCurrentDay(void) const;
+ int GetCurrentDayOfWeek(void) const;
+ Tizen::Locales::DateTimeFormatter* GetDateFormatter(void) const;
+ int GetStartDayOfWeek(int year, int month) const;
+ Tizen::Locales::DateTimeFormatter* GetTimeFormatter(void) const;
+ Tizen::Base::DateTime GetViewMinRange(void) const;
+ Tizen::Base::DateTime GetViewMaxRange(void) const;
+ ViewType GetViewType(void) const;
+
+ Tizen::Base::String GetDateString(const Tizen::Base::DateTime& date) const;
+ Tizen::Base::String GetMonthString(const Tizen::Base::DateTime& dateTime) const;
+ Tizen::Base::String GetYearString(const Tizen::Base::DateTime& dateTime) const;
+ Tizen::Base::String GetTimeString(const Tizen::Base::DateTime& time) const;
+ Tizen::Base::String GetTitleString(void) const;
+
+ Tizen::Graphics::Color GetCalendarColor(const Tizen::Social::RecordId& calendarId) const;
+
+ int GetWholeDayCount(void) const;
+ int GetAllDayEventCount(const Tizen::Base::DateTime& date) const;
+ int GetAllDayEventCount(int groupIndex) const;
+ int GetAllOriginalEventCount(void) const;
+ int GetEventCount(const Tizen::Base::DateTime& date) const;
+ int GetEventCount(int groupIndex) const;
+ int GetWholeEventCount(const Tizen::Base::DateTime& date) const;
+ int GetWholeEventCount(int groupIndex) const;
+ Tizen::Base::DateTime GetDateTimeFromGroupIndex(int groupIndex) const;
+ int GetGroupIndex(const Tizen::Base::DateTime& date) const;
+ const Tizen::Social::CalEventInstance* GetAllDayEvent(const Tizen::Base::DateTime& date, int index) const;
+ const Tizen::Social::CalEventInstance* GetAllDayEvent(int groupIndex, int index) const;
+ const Tizen::Social::CalEventInstance* GetEvent(const Tizen::Base::DateTime& date, int index) const;
+ const Tizen::Social::CalEventInstance* GetEvent(int groupIndex, int index) const;
+ const Tizen::Social::CalEventInstance* GetEventWithWholeIndex(const Tizen::Base::DateTime& date, int index) const;
+ const Tizen::Social::CalEventInstance* GetEventWithWholeIndex(int groupIndex, int index) const;
+
+ void AddCurrentYear(int year);
+ void AddCurrentMonth(int month);
+ void AddCurrentDay(int day);
+ void SetCurrentDate(const Tizen::Base::DateTime& current);
+ void SetTodayToCurrentDate(void);
+ void SetViewRange(const Tizen::Base::DateTime& minRange, const Tizen::Base::DateTime& maxRange);
+ void SetViewType(ViewType type);
+
+ result RemoveEvent(const Tizen::Social::CalEventInstance& event, bool deleteOriginal = false);
+ result RemoveEvents(const Tizen::Base::Collection::IList& events, bool deleteOriginal = false);
+
+ virtual void OnTimerExpired(Tizen::Base::Runtime::Timer& timer);
+
+ virtual void OnCalendarEventsChanged(const Tizen::Base::Collection::IList& eventChangeInfoList);
+ virtual void OnCalendarTodosChanged(const Tizen::Base::Collection::IList& todoChangeInfoList);
+
+ virtual void OnForeground(void);
+ virtual void OnBackground(void);
+
+ static int GetFirstDayOfWeek(void);
+ static EventListPresentationModel* GetInstance(void);
+ static Tizen::Base::DateTime GetToday(void);
+ static bool IsSameDay(const Tizen::Base::DateTime& day1, const Tizen::Base::DateTime& day2);
+ static bool IsToday(const Tizen::Base::DateTime& date);
+
+private:
+ EventListPresentationModel(void);
+
+ result AdjustEventsList(void);
+ result Construct(void);
+ int ConvertDayOfWeek(int dayOfWeek) const;
+ int FindGroupIndex(const Tizen::Base::DateTime& date, int start, int end) const;
+ void FireCalendarEventChangedEvent(void);
+ void FireCurrentDateChangedEvent(const Tizen::Base::DateTime& current, const Tizen::Base::DateTime& preview);
+ result LoadEvents(const Tizen::Base::DateTime& start, const Tizen::Base::DateTime& end);
+ void RemoveAllEvents(void);
+ void UnloadEvents(const Tizen::Base::DateTime& start, const Tizen::Base::DateTime& end);
+
+ static void CreateInstance(void);
+ static void DestroyInstance(void);
+
+private:
+ Tizen::Locales::Calendar* __pCalendar;
+ Tizen::Social::Calendarbook* __pCalendarbook;
+ Tizen::Base::Collection::IList* __pAllCalendars;
+ Tizen::Base::Collection::HashMap __calendars;
+ Tizen::Base::Collection::ArrayList __indexedEvents;
+ Tizen::Base::DateTime __minRange;
+ Tizen::Base::DateTime __maxRange;
+ ViewType __viewType;
+ Tizen::Base::DateTime __minRangeOfView;
+ Tizen::Base::DateTime __maxRangeOfView;
+ int __startNodeIndexOfView;
+ int __endNodeIndexOfView;
+ Tizen::Locales::DateTimeFormatter* __pDateFormatter;
+ Tizen::Locales::DateTimeFormatter* __pMonthFormatter;
+ Tizen::Locales::DateTimeFormatter* __pYearFormatter;
+ Tizen::Locales::DateTimeFormatter* __pTimeFormatter;
+ Tizen::Base::Collection::LinkedList __dateChangedListeners;
+ Tizen::Base::Collection::LinkedList __eventChangedListeners;
+ Tizen::Base::Runtime::Timer __timer;
+ bool __isEmpty;
+ bool __isPendingCalendarEventChangedEvent;
+
+ static EventListPresentationModel* __pInstance;
+}; // EventListPresentationModel
+
+#endif // _CL_EVENT_LIST_PRESENTATION_MODEL_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClEventPresentationModel.h
+ * @brief This is the header file for the EventPresentationModel class.
+ */
+
+#ifndef _CL_EVENT_PRESENTATION_MODEL_H_
+#define _CL_EVENT_PRESENTATION_MODEL_H_
+
+#include <FBase.h>
+#include <FGraphics.h>
+#include <FLocales.h>
+#include <FSocial.h>
+
+class EventPresentationModel
+{
+public:
+ result Construct(const Tizen::Social::RecordId eventId = Tizen::Social::INVALID_RECORD_ID);
+
+ Tizen::Graphics::Bitmap* GetCalendarIconN(void) const;
+ Tizen::Base::String GetCalendarName(void) const;
+ Tizen::Social::RecordId GetEventId(void) const;
+ Tizen::Base::String GetSubject(void) const;
+ Tizen::Base::String GetLocation(void) const;
+ Tizen::Base::DateTime GetStartTime(void) const;
+ Tizen::Base::DateTime GetEndTime(void) const;
+ Tizen::Base::String GetDateString(const Tizen::Base::DateTime& date) const;
+ Tizen::Base::String GetDateTimeString(const Tizen::Base::DateTime& date) const;
+ Tizen::Base::String GetTimeString(const Tizen::Base::DateTime& date) const;
+ Tizen::Base::String GetTimezone(void) const;
+ const Tizen::Social::Reminder* GetReminder(int index) const;
+ Tizen::Base::String GetReminderString(int index) const;
+ const Tizen::Social::Recurrence* GetRecurrence(void) const;
+ Tizen::Base::String GetRecurrenceString(void) const;
+ Tizen::Base::String GetDescription(void) const;
+ Tizen::Social::CalEventInstance* GetEventInstance(void);
+
+ bool IsEventInstance(void);
+ bool IsAllDayEvent(void) const;
+ bool IsRecurring(void) const;
+ bool IsAllEventEditing(void) const;
+
+ result RemoveEvent(void);
+ result RemoveEvent(bool deleteOriginal);
+ result SetCalendar(const Tizen::Social::RecordId calendarId);
+ result SetEventId(const Tizen::Social::RecordId eventId = Tizen::Social::INVALID_RECORD_ID);
+ result SetEventInstance(const Tizen::Social::CalEventInstance& event);
+ result SetVcsFile(const Tizen::Base::String& vcsFilePath);
+ result SetSubject(const Tizen::Base::String& subject);
+ result SetLocation(const Tizen::Base::String& location);
+ result SetStartTime(const Tizen::Base::DateTime& startTime);
+ result SetEndTime(const Tizen::Base::DateTime& endTime);
+ result SetStartEndTime(const Tizen::Base::DateTime& startTime, const Tizen::Base::DateTime& endTime);
+ void SetAllDayEvent(bool isAllDayEvent);
+ result SetTimezone(const Tizen::Base::String& timezoneId);
+ result SetRecurrence(Tizen::Social::Recurrence* pRecurrence);
+ result SetDescription(const Tizen::Base::String& description);
+ result SetCurrentDate(const Tizen::Base::DateTime& currentTime);
+ void SetAllEventEditing(bool allEventEditing);
+ result Update(void);
+// result Update(Tizen::Social::RecordId calendarId);
+ void Commit(void);
+ void Rollback(void);
+
+ int GetCountReminder(void);
+ result AddReminder(const Tizen::Social::Reminder& reminder);
+ result SetReminderAt(const Tizen::Social::Reminder& reminder, int index);
+ result RemoveReminderAt(int index);
+
+ EventPresentationModel(void);
+ virtual ~EventPresentationModel(void);
+
+private:
+ Tizen::Social::Calendar* __pCalendar;
+ Tizen::Social::CalEvent* __pEvent;
+ Tizen::Social::CalEvent* __pEventBackup;
+ Tizen::Social::CalEventInstance* __pEventInstance;
+ Tizen::Social::CalEventInstance* __pEventInstanceBackup;
+ Tizen::Locales::DateTimeFormatter* __pDateFormatter;
+ Tizen::Locales::DateTimeFormatter* __pDateTimeFormatter;
+ Tizen::Locales::DateTimeFormatter* __pTimeFormatter;
+ bool __allEventEditing;
+}; // EventPresentationModel
+
+#endif // _CL_EVENT_PRESENTATION_MODEL_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClEventSearchPresentationModel.h
+ * @brief This is the header file for the EventSearchPresentationModel class.
+ */
+
+#ifndef _CL_EVENT_SEARCH_PRESENTATION_MODEL_H_
+#define _CL_EVENT_SEARCH_PRESENTATION_MODEL_H_
+
+#include <FBase.h>
+#include <FGraphics.h>
+#include <FLocales.h>
+#include <FSocial.h>
+#include "ClICalendarEventChangedEventListener.h"
+
+class EventSearchPresentationModel
+ : public virtual Tizen::Social::ICalendarbookEventListener
+{
+public:
+ result Construct(void);
+
+ result AddCalendarEventChangedEventListener(ICalendarEventChangedEventListener& listener);
+ result RemoveCalendarEventChangedEventListener(ICalendarEventChangedEventListener& listner);
+
+ Tizen::Locales::DateTimeFormatter* GetDateFormatter(void) const;
+ Tizen::Locales::DateTimeFormatter* GetTimeFormatter(void) const;
+ Tizen::Base::String GetDateString(const Tizen::Base::DateTime& date) const;
+ Tizen::Base::String GetTimeString(const Tizen::Base::DateTime& time) const;
+
+ Tizen::Graphics::Color GetCalendarColor(const Tizen::Social::RecordId& calendarId) const;
+
+ int GetWholeDayCount(void) const;
+ int GetAllDayEventCount(const Tizen::Base::DateTime& date) const;
+ int GetAllDayEventCount(int groupIndex) const;
+ int GetEventCount(const Tizen::Base::DateTime& date) const;
+ int GetEventCount(int groupIndex) const;
+ int GetWholeEventCount(const Tizen::Base::DateTime& date) const;
+ int GetWholeEventCount(int groupIndex) const;
+ Tizen::Base::DateTime GetDateTimeFromGroupIndex(int groupIndex) const;
+ int GetGroupIndex(const Tizen::Base::DateTime& date) const;
+ const Tizen::Social::CalEventInstance* GetAllDayEvent(const Tizen::Base::DateTime& date, int index) const;
+ const Tizen::Social::CalEventInstance* GetAllDayEvent(int groupIndex, int index) const;
+ const Tizen::Social::CalEventInstance* GetEvent(const Tizen::Base::DateTime& date, int index) const;
+ const Tizen::Social::CalEventInstance* GetEvent(int groupIndex, int index) const;
+ const Tizen::Social::CalEventInstance* GetEventWithWholeIndex(const Tizen::Base::DateTime& date, int index) const;
+ const Tizen::Social::CalEventInstance* GetEventWithWholeIndex(int groupIndex, int index) const;
+
+ Tizen::Base::String GetSearchText(void) const;
+ result RemoveEvent(const Tizen::Social::CalEventInstance& event, bool deleteOriginal = false);
+ result SearchEvent(const Tizen::Base::String& text);
+
+ EventSearchPresentationModel(void);
+ virtual ~EventSearchPresentationModel(void);
+
+ virtual void OnCalendarEventsChanged(const Tizen::Base::Collection::IList& eventChangeInfoList);
+ virtual void OnCalendarTodosChanged(const Tizen::Base::Collection::IList& todoChangeInfoList);
+
+ static bool IsSameDay(const Tizen::Base::DateTime& day1, const Tizen::Base::DateTime& day2);
+ static bool IsToday(const Tizen::Base::DateTime& date);
+
+private:
+ int FindGroupIndex(const Tizen::Base::DateTime& date, int start, int end) const;
+ void RemoveAllEvents(void);
+
+private:
+ Tizen::Social::Calendarbook* __pCalendarbook;
+ Tizen::Base::Collection::HashMap __calendars;
+ Tizen::Base::Collection::ArrayList __indexedEvents;
+ Tizen::Base::Collection::LinkedList __eventChangedListeners;
+ Tizen::Locales::DateTimeFormatter* __pDateFormatter;
+ Tizen::Locales::DateTimeFormatter* __pTimeFormatter;
+ Tizen::Base::String __searchText;
+}; // EventSearchPresenationModel
+
+#endif // _CL_EVENT_SEARCH_PRESENTATION_MODEL_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClEventSearcherForm.h
+ * @brief This is the header file for the EventSearcherForm class.
+ */
+
+#ifndef _CL_EVENT_SEARCHER_FORM_H_
+#define _CL_EVENT_SEARCHER_FORM_H_
+
+#include <FBase.h>
+#include <FUi.h>
+#include "ClICalendarEventChangedEventListener.h"
+
+class EventSearchPresentationModel;
+class SharePopup;
+
+class EventSearcherForm
+ : public Tizen::Ui::Controls::Form
+ , public virtual Tizen::Ui::IActionEventListener
+ , public virtual Tizen::Ui::IKeypadEventListener
+ , public virtual Tizen::Ui::Controls::IFormBackEventListener
+ , public virtual Tizen::Ui::Controls::IGroupedListViewItemEventListener
+ , public virtual Tizen::Ui::Controls::IGroupedListViewItemProvider
+ , public virtual Tizen::Ui::Scenes::ISceneEventListener
+ , public virtual ICalendarEventChangedEventListener
+{
+public:
+ result Initialize(void);
+
+ EventSearcherForm(void);
+ virtual ~EventSearcherForm(void);
+
+ virtual result OnInitializing(void);
+ virtual result OnTerminating(void);
+ virtual void OnUserEventReceivedN(RequestId requestId, Tizen::Base::Collection::IList* pArgs);
+
+ virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+
+ virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source);
+
+ virtual int GetGroupCount(void);
+ virtual int GetItemCount(int groupIndex);
+ virtual Tizen::Ui::Controls::GroupItem* CreateGroupItem(int groupIndex, int itemWidth);
+ virtual bool DeleteGroupItem(int groupIndex, Tizen::Ui::Controls::GroupItem* pItem, int itemWidth);
+ virtual Tizen::Ui::Controls::ListItemBase* CreateItem(int groupIndex, int itemIndex, int itemWidth);
+ virtual bool DeleteItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth);
+
+ virtual void OnGroupedListViewItemStateChanged(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex, int itemIndex,
+ int elementId, Tizen::Ui::Controls::ListItemStatus status);
+ virtual void OnGroupedListViewItemSwept(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex, int itemIndex,
+ Tizen::Ui::Controls::SweepDirection direction);
+ virtual void OnGroupedListViewContextItemStateChanged(Tizen::Ui::Controls::GroupedListView& listView,
+ int groupIndex, int itemIndex,
+ int elementId, Tizen::Ui::Controls::ListContextItemStatus status);
+ virtual void OnGroupedListViewItemLongPressed(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex, int itemIndex,
+ int elementId, bool& invokeListViewItemCallback);
+ virtual void OnGroupedListViewGroupItemSelected(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex);
+
+ virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId,
+ const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);
+ virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId,
+ const Tizen::Ui::Scenes::SceneId& nextSceneId);
+
+ virtual void OnKeypadWillOpen(Tizen::Ui::Control& source);
+ virtual void OnKeypadOpened(Tizen::Ui::Control& source);
+ virtual void OnKeypadClosed(Tizen::Ui::Control& source);
+ virtual void OnKeypadActionPerformed(Tizen::Ui::Control& source, Tizen::Ui::KeypadAction keypadAction);
+
+ virtual void OnCalendarEventChanged(void);
+
+private:
+ EventSearchPresentationModel* __pPm;
+ Tizen::Ui::Controls::SearchBar* __pSearchBarInput;
+ Tizen::Ui::Controls::GroupedListView* __pGroupedListViewEvents;
+ Tizen::Ui::Controls::ListContextItem* __pContextItem;
+ SharePopup* __pSharePopup;
+};
+
+#endif // _CL_EVENT_SEARCHER_FORM_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClEventSelectorForm.h
+ * @brief This is the header file for the EventSelectorForm class.
+ */
+
+#ifndef _CL_EVENT_SELECTOR_FORM_H_
+#define _CL_EVENT_SELECTOR_FORM_H_
+
+#include <FApp.h>
+#include <FBase.h>
+#include <FGraphics.h>
+#include <FLocales.h>
+#include <FSocial.h>
+#include <FUi.h>
+
+class EventSelectorForm
+ : public Tizen::Ui::Controls::Form
+ , public virtual Tizen::Ui::IActionEventListener
+ , public virtual Tizen::Ui::Controls::IFormBackEventListener
+ , public virtual Tizen::Ui::Controls::IListViewItemEventListener
+ , public virtual Tizen::Ui::Controls::IListViewItemProvider
+ , public virtual Tizen::Ui::Scenes::ISceneEventListener
+{
+public:
+ result Initialize(void);
+
+ EventSelectorForm(void);
+ virtual ~EventSelectorForm(void);
+
+ virtual result OnInitializing(void);
+ virtual result OnTerminating(void);
+
+ virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source);
+
+ virtual int GetItemCount(void);
+ virtual Tizen::Ui::Controls::ListItemBase* CreateItem(int index, int itemWidth);
+ virtual bool DeleteItem(int index, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth);
+
+ virtual void OnListViewItemStateChanged(Tizen::Ui::Controls::ListView& listView,
+ int index, int elementId, Tizen::Ui::Controls::ListItemStatus status);
+ virtual void OnListViewItemSwept(Tizen::Ui::Controls::ListView& listView,
+ int index, Tizen::Ui::Controls::SweepDirection direction);
+ virtual void OnListViewContextItemStateChanged(Tizen::Ui::Controls::ListView& listView,
+ int index, int elementId, Tizen::Ui::Controls::ListContextItemStatus status);
+ virtual void OnListViewItemLongPressed(Tizen::Ui::Controls::ListView& listView,
+ int index, int elementId, bool& invokeListViewItemCallback);
+ virtual void OnListViewItemReordered(Tizen::Ui::Controls::ListView& listView, int indexFrom, int indexTo);
+
+ virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId,
+ const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);
+ virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId,
+ const Tizen::Ui::Scenes::SceneId& nextSceneId);
+
+ virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+
+private:
+ enum EventSelectorFormSelectionType
+ {
+ EVENT_SELECTOR_FORM_SELECTION_TYPE_SINGLE,
+ EVENT_SELECTOR_FORM_SELECTION_TYPE_MULTIPLE
+ };
+
+ Tizen::Graphics::Bitmap* CreateColorBarBitmapN(const Tizen::Graphics::Dimension& size, const Tizen::Graphics::Color& color);
+ Tizen::Graphics::Color GetCalendarColor(const Tizen::Social::RecordId& calendarId) const;
+ Tizen::Base::String GetDateRangeText(const Tizen::Base::DateTime& start, const Tizen::Base::DateTime& end, bool isAllDayEvent) const;
+ result LoadAllEvents(void);
+ result SendAppControlResult(Tizen::App::AppCtrlResult appControlResult, const Tizen::Base::Collection::IList* pResultList = null);
+
+private:
+ EventSelectorFormSelectionType __selectionType;
+ Tizen::Base::Collection::HashMap __allCalendars;
+ Tizen::Base::Collection::IList* __pEvents;
+ Tizen::Ui::Controls::ListView* __pListViewContents;
+ Tizen::Social::Calendarbook* __pCalendarbook;
+ Tizen::Locales::DateTimeFormatter* __pDateFormatter;
+ Tizen::Locales::DateTimeFormatter* __pTimeFormatter;
+}; // EventSelectorForm
+
+#endif // _CL_EVENT_SELECTOR_FORM_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClFormFactory.h
+ * @brief This is the header file for the FormFactory class.
+ */
+
+#ifndef _CL_FORM_FACTORY_H_
+#define _CL_FORM_FACTORY_H_
+
+#include <FUi.h>
+
+class FormFactory
+ : public virtual Tizen::Ui::Scenes::IFormFactory
+{
+public:
+ FormFactory(void);
+ virtual ~FormFactory(void);
+
+ virtual Tizen::Ui::Controls::Form* CreateFormN(const Tizen::Base::String& formId, const Tizen::Ui::Scenes::SceneId& sceneId);
+}; // FormFactory
+
+#endif // _CL_FORM_FACTORY_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClGoToDatePopup.h
+ * @brief This is the header file for the GoToDatePopup class.
+ */
+
+#ifndef _CL_GO_TO_DATE_POPUP_H_
+#define _CL_GO_TO_DATE_POPUP_H_
+
+#include <FBase.h>
+#include <FUi.h>
+
+class GoToDatePopup
+ : public Tizen::Ui::Controls::Popup
+ , public virtual Tizen::Ui::IActionEventListener
+{
+public:
+ virtual result OnInitializing(void);
+ virtual result OnTerminating(void);
+
+ virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+
+ static void RequestGoToDate(const Tizen::Base::DateTime& initialDate, Tizen::Ui::Control* pTarget);
+
+private:
+ GoToDatePopup(void);
+ virtual ~GoToDatePopup(void);
+
+private:
+ Tizen::Base::DateTime __date;
+ Tizen::Ui::Controls::EditDate* __pEditDate;
+ Tizen::Ui::Control* __pTarget;
+}; // GoToDatePopup
+
+#endif // _CL_GO_TO_DATE_POPUP_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClICalendarAppStatusChangedEventListener.h
+ * @brief This is the header file for the ICalendarAppStatusChangedEventListener interface.
+ */
+
+#ifndef _CL_ICALENDAR_APP_STATUS_CHANGED_EVENT_LISTENER_H_
+#define _CL_ICALENDAR_APP_STATUS_CHANGED_EVENT_LISTENER_H_
+
+#include <FBase.h>
+
+class ICalendarAppStatusChangedEventListener
+ : public Tizen::Base::Object
+{
+public:
+ virtual ~ICalendarAppStatusChangedEventListener(void) { }
+
+ virtual void OnForeground(void) = 0;
+ virtual void OnBackground(void) = 0;
+}; // ICalendarAppStatusChangedEventListener
+
+#endif // _CL_ICALENDAR_APP_STATUS_CHANGED_EVENT_LISTENER_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClICalendarEventChangedEventListener.h
+ * @brief This is the header file for the ICalendarEventChangedEventListener interface.
+ */
+
+#ifndef _CL_ICALENDAR_EVENT_CHANGED_EVENT_LISTENER_H_
+#define _CL_ICALENDAR_EVENT_CHANGED_EVENT_LISTENER_H_
+
+#include <FBase.h>
+
+class ICalendarEventChangedEventListener
+ : public Tizen::Base::Object
+{
+public:
+ virtual ~ICalendarEventChangedEventListener(void) { };
+
+ virtual void OnCalendarEventChanged(void) = 0;
+}; // ICurrentDateChangedEventListener
+
+#endif // _CL_ICALENDAR_EVENT_CHANGED_EVENT_LISTENER_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClICurrentDateChangedEventListener.h
+ * @brief This is the header file for the ICurrentDateChangedEventListener interface.
+ */
+
+#ifndef _CL_ICURRENT_DATE_CHANGED_EVENT_LISTENER_H_
+#define _CL_ICURRENT_DATE_CHANGED_EVENT_LISTENER_H_
+
+#include <FBase.h>
+
+class ICurrentDateChangedEventListener
+ : public Tizen::Base::Object
+{
+public:
+ virtual ~ICurrentDateChangedEventListener(void) { };
+
+ virtual void OnCurrentDateChanged(const Tizen::Base::DateTime& currentDate, const Tizen::Base::DateTime& prevDate) = 0;
+}; // ICurrentDateChangedEventListener
+
+#endif // _CL_ICURRENT_DATE_CHANGED_EVENT_LISTENER_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClIDateFocusEventListener.h
+ * @brief This is the header file for the IDateFocusEventListener interface.
+ */
+
+#ifndef _CL_IDATE_FOCUS_EVENT_LISTENER_H_
+#define _CL_IDATE_FOCUS_EVENT_LISTENER_H_
+
+#include <FBase.h>
+
+class IDateFocusEventListener
+{
+public:
+ virtual ~IDateFocusEventListener(void) { };
+
+ virtual void OnDateFocused(const Tizen::Base::DateTime& focusedDate) = 0;
+}; // IDateFocusEventListener
+
+#endif // _CL_IDATE_FOCUS_EVENT_LISTENER_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClIEventActionEventListener.h
+ * @brief This is the header file for the IEventActionEventListener interface.
+ */
+
+#ifndef _CL_IEVENT_ACTION_EVENT_LISTENER_H_
+#define _CL_IEVENT_ACTION_EVENT_LISTENER_H_
+
+#include <FSocial.h>
+#include "ClTypes.h"
+
+class IEventActionEventListener
+{
+public:
+ virtual ~IEventActionEventListener(void) { };
+
+ virtual void OnEventActionPerformed(const Tizen::Social::CalEventInstance& event, EventAction actionId) = 0;
+}; // IEventActionEventListener
+
+#endif // _CL_IEVENT_ACTION_EVENT_LISTENER_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClIPanningAnimationControlProvider.h
+ * @brief This is the header file for the IPanningAnimationControlProvider interface.
+ */
+
+#ifndef _CL_IPANNING_ANIMATION_CONTROL_PROVIDER_H_
+#define _CL_IPANNING_ANIMATION_CONTROL_PROVIDER_H_
+
+#include <FUi.h>
+
+class IPanningAnimationControlProvider
+{
+public:
+ virtual ~IPanningAnimationControlProvider(void) { };
+
+ virtual Tizen::Ui::Control* GetCurrentControl(void) = 0;
+ virtual Tizen::Ui::Control* GetNextControl(void) = 0;
+ virtual Tizen::Ui::Control* GetPreviewControl(void) = 0;
+}; // IPanningAnimationControlProvider
+
+#endif // _CL_IPANNING_ANIMATION_CONTROL_PROVIDER_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClListPanel.h
+ * @brief This is the header file for the ListPanel class.
+ */
+
+#ifndef _CL_LIST_PANEL_H_
+#define _CL_LIST_PANEL_H_
+
+#include <FBase.h>
+#include <FGraphics.h>
+#include <FLocales.h>
+#include <FUi.h>
+
+#include "ClICalendarEventChangedEventListener.h"
+#include "ClICurrentDateChangedEventListener.h"
+
+class EventListPresentationModel;
+class SharePopup;
+
+class ListPanel
+ : public Tizen::Ui::Controls::Panel
+ , public virtual Tizen::Ui::IActionEventListener
+ , public virtual Tizen::Ui::Controls::IGroupedListViewItemEventListener
+ , public virtual Tizen::Ui::Controls::IGroupedListViewItemProvider
+ , public virtual Tizen::Ui::Scenes::ISceneEventListener
+ , public virtual ICalendarEventChangedEventListener
+ , public virtual ICurrentDateChangedEventListener
+{
+public:
+ result Initialize(void);
+
+ ListPanel(void);
+ virtual ~ListPanel(void);
+
+ virtual result OnInitializing(void);
+ virtual result OnTerminating(void);
+ virtual void OnUserEventReceivedN(RequestId requestId, Tizen::Base::Collection::IList* pArgs);
+
+ virtual int GetGroupCount(void);
+ virtual int GetItemCount(int groupIndex);
+ virtual Tizen::Ui::Controls::GroupItem* CreateGroupItem(int groupIndex, int itemWidth);
+ virtual bool DeleteGroupItem(int groupIndex, Tizen::Ui::Controls::GroupItem* pItem, int itemWidth);
+ virtual Tizen::Ui::Controls::ListItemBase* CreateItem(int groupIndex, int itemIndex, int itemWidth);
+ virtual bool DeleteItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth);
+
+ virtual void OnGroupedListViewItemStateChanged(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex, int itemIndex,
+ int elementId, Tizen::Ui::Controls::ListItemStatus status);
+ virtual void OnGroupedListViewItemSwept(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex, int itemIndex,
+ Tizen::Ui::Controls::SweepDirection direction);
+ virtual void OnGroupedListViewContextItemStateChanged(Tizen::Ui::Controls::GroupedListView& listView,
+ int groupIndex, int itemIndex,
+ int elementId, Tizen::Ui::Controls::ListContextItemStatus status);
+ virtual void OnGroupedListViewItemLongPressed(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex, int itemIndex,
+ int elementId, bool& invokeListViewItemCallback);
+ virtual void OnGroupedListViewGroupItemSelected(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex);
+
+ virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId,
+ const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);
+ virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId,
+ const Tizen::Ui::Scenes::SceneId& nextSceneId);
+
+ virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+
+ virtual void OnCalendarEventChanged(void);
+
+ virtual void OnCurrentDateChanged(const Tizen::Base::DateTime& currentDate, const Tizen::Base::DateTime& prevDate);
+
+private:
+ result Update(void);
+
+private:
+ EventListPresentationModel* __pPm;
+ Tizen::Ui::Controls::GroupedListView* __pGroupedListViewEventsList;
+ Tizen::Ui::Controls::ListContextItem* __pContextItem;
+ Tizen::Locales::DateTimeFormatter* __pDateFormatter;
+ SharePopup* __pSharePopup;
+}; // ListPanel
+
+#endif // _CL_LIST_PANEL_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClMainForm.h
+ * @brief This is the header file for the MainForm class.
+ */
+
+#ifndef _CL_MAIN_FORM_H_
+#define _CL_MAIN_FORM_H_
+
+#include <FUi.h>
+
+class MainForm
+ : public Tizen::Ui::Controls::Form
+ , public virtual Tizen::Ui::IActionEventListener
+ , public virtual Tizen::Ui::ITouchEventListener
+ , public virtual Tizen::Ui::Controls::IFormBackEventListener
+{
+public:
+ result Initialize(void);
+
+ MainForm(void);
+ virtual ~MainForm(void);
+
+ virtual result OnInitializing(void);
+ virtual result OnTerminating(void);
+
+ virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source);
+
+ virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+
+ virtual void OnTouchPressed(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo & touchInfo);
+ virtual void OnTouchReleased(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo);
+ virtual void OnTouchMoved(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo);
+ virtual void OnTouchFocusIn(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo);
+ virtual void OnTouchFocusOut(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo);
+ virtual void OnTouchCanceled(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo);
+
+private:
+ void InitializeViewMenu(void);
+ void InitializeSubMenu(void);
+
+private:
+ Tizen::Ui::Controls::ContextMenu* __pContextMenuView;
+ Tizen::Ui::Controls::ContextMenu* __pContextMenuSub;
+ bool __isTitlePressed;
+}; // MainForm
+
+#endif // _CL_MAIN_FORM_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClMainFrame.h
+ * @brief This is the header file for the MainFrame class.
+ */
+
+#ifndef _CL_MAIN_FRAME_H_
+#define _CL_MAIN_FRAME_H_
+
+#include <FBase.h>
+#include <FUi.h>
+
+class MainFrame
+ : public Tizen::Ui::Controls::Frame
+{
+public:
+ MainFrame(void);
+ virtual ~MainFrame(void);
+
+ virtual result OnInitializing(void);
+ virtual result OnTerminating(void);
+}; // MainFrame
+
+#endif //_CL_MAIN_FRAME_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClMonthPanel.h
+ * @brief This is the header file for the MonthPanel class.
+ */
+
+#ifndef _CL_MONTH_PANEL_H_
+#define _CL_MONTH_PANEL_H_
+
+#include <FGraphics.h>
+#include <FSocial.h>
+#include <FUi.h>
+
+#include "ClICalendarEventChangedEventListener.h"
+#include "ClICurrentDateChangedEventListener.h"
+#include "ClIDateFocusEventListener.h"
+#include "ClIPanningAnimationControlProvider.h"
+
+class EventListPresentationModel;
+class PanningAnimationManager;
+class SharePopup;
+
+class MonthPanel
+ : public Tizen::Ui::Controls::Panel
+ , public virtual Tizen::Ui::Animations::IControlAnimatorEventListener
+ , public virtual Tizen::Ui::Controls::IListViewItemEventListener
+ , public virtual Tizen::Ui::Controls::IListViewItemProvider
+ , public virtual Tizen::Ui::Scenes::ISceneEventListener
+ , public virtual ICalendarEventChangedEventListener
+ , public virtual ICurrentDateChangedEventListener
+ , public virtual IDateFocusEventListener
+ , public virtual IPanningAnimationControlProvider
+{
+public:
+ result Initialize(void);
+
+ MonthPanel(void);
+ virtual ~MonthPanel(void);
+
+ virtual result OnInitializing(void);
+ virtual result OnTerminating(void);
+ virtual void OnUserEventReceivedN(RequestId requestId, Tizen::Base::Collection::IList* pArgs);
+
+ virtual void OnControlAnimationStarted(Tizen::Ui::Animations::ControlAnimator& source, Tizen::Ui::Control& control);
+ virtual void OnControlAnimationFinished(Tizen::Ui::Animations::ControlAnimator& source, Tizen::Ui::Control& control);
+ virtual void OnControlAnimationStopped(Tizen::Ui::Animations::ControlAnimator& source, Tizen::Ui::Control& control);
+
+ virtual void OnListViewItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListItemStatus status);
+ virtual void OnListViewItemSwept(Tizen::Ui::Controls::ListView& listView, int index, Tizen::Ui::Controls::SweepDirection direction);
+ virtual void OnListViewContextItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListContextItemStatus status);
+ virtual void OnListViewItemLongPressed(Tizen::Ui::Controls::ListView& listView, int index, int elementId, bool& invokeListViewItemCallback);
+ virtual void OnListViewItemReordered(Tizen::Ui::Controls::ListView& listView, int indexFrom, int indexTo);
+
+ virtual int GetItemCount(void);
+ virtual Tizen::Ui::Controls::ListItemBase* CreateItem(int index, int itemWidth);
+ virtual bool DeleteItem(int index, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth);
+
+ virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId,
+ const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);
+ virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId,
+ const Tizen::Ui::Scenes::SceneId& nextSceneId);
+
+ virtual void OnCalendarEventChanged(void);
+
+ virtual void OnCurrentDateChanged(const Tizen::Base::DateTime& currentDate, const Tizen::Base::DateTime& prevDate);
+
+ virtual void OnDateFocused(const Tizen::Base::DateTime& focusedDate);
+
+ virtual Tizen::Ui::Control* GetCurrentControl(void);
+ virtual Tizen::Ui::Control* GetNextControl(void);
+ virtual Tizen::Ui::Control* GetPreviewControl(void);
+
+private:
+ void DrawCalendar(void);
+ void DrawCurrentDate(void);
+ void Update(bool draw = true);
+
+private:
+ EventListPresentationModel* __pPm;
+ int __selectedIndex;
+ Tizen::Ui::Controls::Panel* __pPanelMonthCalendar[VIEW_SCROLL_EFFECT_COUNT];
+ Tizen::Ui::Controls::ListView* __pListViewEvent;
+ Tizen::Ui::Controls::ListContextItem* __pContextItem;
+ PanningAnimationManager* __pPanningAnimationManager;
+ SharePopup* __pSharePopup;
+}; // MonthPanel
+
+#endif // _CL_MONTH_PANEL_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClNodes.h
+ * @brief This is the header file for the EventNode class and EventListNode class.
+ */
+
+#ifndef _CL_NODES_H_
+#define _CL_NODES_H_
+
+#include <FBase.h>
+#include <FSocial.h>
+
+class EventNode
+ : public Tizen::Base::Object
+{
+public:
+ void AddRef(void);
+ void RemoveRef(void);
+ Tizen::Social::CalEventInstance* GetEvent(void);
+
+ EventNode(Tizen::Social::CalEventInstance& event);
+private:
+ EventNode(void);
+ EventNode(const EventNode&);
+ virtual ~EventNode(void);
+ EventNode& operator=(const EventNode&);
+
+ Tizen::Social::CalEventInstance* __pEvent;
+ int __refCount;
+}; // EventNode
+
+
+class EventListNode
+ : public Tizen::Base::Object
+{
+public:
+ void Add(EventNode& eventNode);
+
+ const Tizen::Base::DateTime& GetDate(void) const;
+ int GetAllDayEventCount(void) const;
+ int GetEventCount(void) const;
+ int GetWholeEventCount(void) const;
+ Tizen::Social::CalEventInstance* GetAllDayEvent(int index) const;
+ Tizen::Social::CalEventInstance* GetEvent(int index) const;
+ Tizen::Social::CalEventInstance* GetEventWithWholeIndex(int index) const;
+
+ EventListNode(const Tizen::Base::DateTime& date);
+ virtual ~EventListNode(void);
+
+private:
+ Tizen::Base::DateTime __date;
+ Tizen::Base::Collection::ArrayList* __pAllDayEvents;
+ Tizen::Base::Collection::ArrayList* __pEvents;
+}; // EventListNode
+
+#endif // _CL_NODES_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClPanelFactory.h
+ * @brief This is the header file for the PanelFactory class.
+ */
+
+#ifndef _CL_PANEL_FACTORY_H_
+#define _CL_PANEL_FACTORY_H_
+
+#include <FUi.h>
+
+class PanelFactory
+ : public virtual Tizen::Ui::Scenes::IPanelFactory
+{
+public:
+ PanelFactory(void);
+ virtual ~PanelFactory(void);
+
+ virtual Tizen::Ui::Controls::Panel* CreatePanelN(const Tizen::Base::String& panelId, const Tizen::Ui::Scenes::SceneId& sceneId);
+}; // PanelFactory
+
+#endif // _CL_PANEL_FACTORY_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClPanningAnimationManager.h
+ * @brief This is the header file for the PanningAnimationManager class.
+ */
+
+#ifndef _CL_PANNING_ANIMATION_MANAGER_H_
+#define _CL_PANNING_ANIMATION_MANAGER_H_
+
+#include <FGraphics.h>
+#include <FUi.h>
+
+#include "ClIPanningAnimationControlProvider.h"
+#include "ClTypes.h"
+
+class PanningAnimationManager
+ : public Tizen::Ui::TouchPanningGestureDetector
+ , public virtual Tizen::Ui::ITouchEventListener
+ , public virtual Tizen::Ui::ITouchPanningGestureEventListener
+ , public virtual Tizen::Ui::Animations::IControlAnimatorEventListener
+{
+public:
+ ViewScrollEffect GetScrollDirection(void) const;
+ void Initialize(IPanningAnimationControlProvider& provider);
+ result RunPanningAnimation(ViewScrollEffect scrollDirection);
+ void SetControlAnimatorEventListener(Tizen::Ui::Animations::IControlAnimatorEventListener& listener);
+
+ PanningAnimationManager(void);
+ virtual ~PanningAnimationManager(void);
+
+ virtual void OnTouchMoved(Tizen::Ui::Control& source, const Tizen::Ui::TouchEventInfo& touchInfo);
+
+ virtual void OnControlAnimationStarted(Tizen::Ui::Animations::ControlAnimator& source, Tizen::Ui::Control& control);
+ virtual void OnControlAnimationFinished(Tizen::Ui::Animations::ControlAnimator& source, Tizen::Ui::Control& control);
+ virtual void OnControlAnimationStopped(Tizen::Ui::Animations::ControlAnimator& source, Tizen::Ui::Control& control);
+
+ virtual void OnTouchPressed(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo & touchInfo);
+ virtual void OnTouchReleased(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo);
+ virtual void OnTouchMoved(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo);
+ virtual void OnTouchFocusIn(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo);
+ virtual void OnTouchFocusOut(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo);
+
+ virtual void OnPanningGestureStarted(Tizen::Ui::TouchPanningGestureDetector& gestureDetector);
+ virtual void OnPanningGestureChanged(Tizen::Ui::TouchPanningGestureDetector& gestureDetector);
+ virtual void OnPanningGestureFinished(Tizen::Ui::TouchPanningGestureDetector& gestureDetector);
+ virtual void OnPanningGestureCanceled(Tizen::Ui::TouchPanningGestureDetector& gestureDetector);
+
+private:
+ result RunPanningAnimation(int endPosition, bool runForce = false);
+
+private:
+ IPanningAnimationControlProvider* __pProvider;
+ Tizen::Ui::Animations::IControlAnimatorEventListener* __pControlAnimatorEventListener;
+ Tizen::Ui::Control* __pCurrent;
+ Tizen::Ui::Control* __pNext;
+ Tizen::Ui::Control* __pPreview;
+ ViewScrollEffect __effectDirection;
+ bool __isTouchPanningTriggered;
+ bool __isPanningEffectRunning;
+}; // PanningAnimationManager
+
+#endif // _CL_PANNING_ANIMATION_MANAGER_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClReminderForm.h
+ * @brief This is the header file for the ReminderForm class.
+ */
+
+#ifndef _CL_REMINDER_FORM_H_
+#define _CL_REMINDER_FORM_H_
+
+#include <FSocial.h>
+#include <FUi.h>
+
+class ReminderForm
+ : public Tizen::Ui::Controls::Form
+ , public virtual Tizen::Ui::IActionEventListener
+ , public virtual Tizen::Ui::IKeypadEventListener
+ , public virtual Tizen::Ui::Controls::IFormBackEventListener
+ , public virtual Tizen::Ui::Controls::IGroupedTableViewItemEventListener
+ , public virtual Tizen::Ui::Controls::IGroupedTableViewItemProvider
+ , public virtual Tizen::Ui::Scenes::ISceneEventListener
+{
+public:
+ result Initialize(void);
+
+ ReminderForm(void);
+ virtual ~ReminderForm(void);
+
+ virtual result OnInitializing(void);
+ virtual result OnTerminating(void);
+
+ virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source);
+
+ virtual int GetGroupCount(void);
+ virtual int GetItemCount(int groupIndex);
+ virtual Tizen::Ui::Controls::TableViewGroupItem* CreateGroupItem(int groupIndex, int itemWidth);
+ virtual bool DeleteGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem);
+ virtual void UpdateGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem);
+ virtual Tizen::Ui::Controls::TableViewItem* CreateItem(int groupIndex, int itemIndex, int itemWidth);
+ virtual bool DeleteItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem);
+ virtual void UpdateItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem);
+ virtual int GetDefaultGroupItemHeight(void);
+ virtual int GetDefaultItemHeight(void);
+
+ virtual void OnGroupedTableViewGroupItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status);
+ virtual void OnGroupedTableViewItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status);
+ virtual void OnGroupedTableViewContextItemActivationStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewContextItem* pContextItem, bool activated);
+
+ virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId,
+ const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);
+ virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId,
+ const Tizen::Ui::Scenes::SceneId& nextSceneId);
+
+ virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+
+ virtual void OnKeypadWillOpen(Tizen::Ui::Control& source);
+ virtual void OnKeypadOpened(Tizen::Ui::Control& source);
+ virtual void OnKeypadClosed(Tizen::Ui::Control& source);
+ virtual void OnKeypadActionPerformed(Tizen::Ui::Control& source, Tizen::Ui::KeypadAction keypadAction);
+
+ static ReminderForm* CreateReminderFormN(void);
+
+private:
+ enum ReminderType
+ {
+ REMINDER_TYPE_OFF = 0,
+ REMINDER_TYPE_ON_TIME,
+ REMINDER_TYPE_5_MINS_BEFORE,
+ REMINDER_TYPE_15_MINS_BEFORE,
+ REMINDER_TYPE_1_HOUR_BEFORE,
+ REMINDER_TYPE_1_DAY_BEFORE,
+ REMINDER_TYPE_2_DAYS_BEFORE,
+ REMINDER_TYPE_1_WEEK_BEFORE,
+ REMINDER_TYPE_CUSTOM,
+ REMINDER_TYPE_MAX
+ };
+
+private:
+ Tizen::Social::Reminder* __pReminder;
+ Tizen::Ui::Controls::EditField* __pEditFieldReminderTime;
+ Tizen::Ui::Controls::Button* __pButtonReminderTimeUnit;
+ Tizen::Ui::Controls::Label* __pLabelBefore;
+ Tizen::Ui::Controls::GroupedTableView* __pTableView;
+ Tizen::Ui::Controls::ContextMenu* __pContextMenuTimeUnitSelector;
+ ReminderType __reminderType;
+ Tizen::Social::ReminderTimeUnit __reminderTimeUnit;
+ Tizen::Base::String __reminderTimeUnitText;
+ int __customReminderTimeOffset;
+ int __index;
+}; // ReminderForm
+
+#endif // _CL_REMINDER_FORM_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClRepeatForm.h
+ * @brief This is the header file for the RepeatForm class.
+ */
+
+#ifndef _CL_REPEAT_FORM_H_
+#define _CL_REPEAT_FORM_H_
+
+#include <FBase.h>
+#include <FSocial.h>
+#include <FUi.h>
+
+class RepeatForm
+ : public Tizen::Ui::Controls::Form
+ , public virtual Tizen::Ui::IActionEventListener
+ , public virtual Tizen::Ui::IDateChangeEventListener
+ , public virtual Tizen::Ui::IKeypadEventListener
+ , public virtual Tizen::Ui::Controls::IFormBackEventListener
+ , public virtual Tizen::Ui::Controls::IGroupedTableViewItemEventListener
+ , public virtual Tizen::Ui::Controls::IGroupedTableViewItemProvider
+ , public virtual Tizen::Ui::Scenes::ISceneEventListener
+{
+public:
+ result Initialize(void);
+
+ RepeatForm(void);
+ virtual ~RepeatForm(void);
+
+ virtual result OnInitializing(void);
+ virtual result OnTerminating(void);
+
+ virtual void OnDateChanged(const Tizen::Ui::Control& source, int year, int month, int day);
+ virtual void OnDateChangeCanceled(const Tizen::Ui::Control& source);
+
+ virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source);
+
+ virtual int GetGroupCount(void);
+ virtual int GetItemCount(int groupIndex);
+ virtual Tizen::Ui::Controls::TableViewGroupItem* CreateGroupItem(int groupIndex, int itemWidth);
+ virtual bool DeleteGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem);
+ virtual void UpdateGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem);
+ virtual Tizen::Ui::Controls::TableViewItem* CreateItem(int groupIndex, int itemIndex, int itemWidth);
+ virtual bool DeleteItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem);
+ virtual void UpdateItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem);
+ virtual int GetDefaultGroupItemHeight(void);
+ virtual int GetDefaultItemHeight(void);
+
+ virtual void OnGroupedTableViewGroupItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status);
+ virtual void OnGroupedTableViewItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status);
+ virtual void OnGroupedTableViewContextItemActivationStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewContextItem* pContextItem, bool activated);
+
+ virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId,
+ const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);
+ virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId,
+ const Tizen::Ui::Scenes::SceneId& nextSceneId);
+
+ virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+
+ virtual void OnKeypadWillOpen(Tizen::Ui::Control& source);
+ virtual void OnKeypadOpened(Tizen::Ui::Control& source);
+ virtual void OnKeypadClosed(Tizen::Ui::Control& source);
+ virtual void OnKeypadActionPerformed(Tizen::Ui::Control& source, Tizen::Ui::KeypadAction keypadAction);
+
+ static RepeatForm* CreateRepeatFormN(void);
+
+private:
+ enum RepeatType
+ {
+ REPEAT_TYPE_OFF = 0,
+ REPEAT_TYPE_EVERY_DAY,
+ REPEAT_TYPE_EVERY_3DAYS,
+ REPEAT_TYPE_EVERY_WEEK,
+ REPEAT_TYPE_EVERY_2WEEKS,
+ REPEAT_TYPE_EVERY_MONTH,
+ REPEAT_TYPE_EVERY_YEAR,
+ REPEAT_TYPE_MAX
+ };
+
+ enum RepeatUntilType
+ {
+ REPEAT_UNTIL_TYPE_NONE = 0,
+ REPEAT_UNTIL_TYPE_COUNT,
+ REPEAT_UNTIL_TYPE_UNTIL_DATE,
+ REPEAT_UNTIL_TYPE_MAX
+ };
+
+private:
+ Tizen::Social::Recurrence* __pRepeat;
+ Tizen::Ui::Controls::GroupedTableView* __pTableView;
+ Tizen::Ui::Controls::EditField* __pEditFieldRepeatCount;
+ Tizen::Ui::Controls::EditDate* __pEditDateUntilDate;
+ Tizen::Base::DateTime __startDate;
+ Tizen::Base::DateTime __untilDate;
+ int __repeatCount;
+ RepeatType __repeatType;
+ RepeatUntilType __repeatUntilType;
+ bool __isRepeatUntilDefault;
+}; // RepeatForm
+
+#endif // _CL_REPEAT_FORM_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClResourceManager.h
+ * @brief This is the header file for the ResourceManager class.
+ */
+
+#ifndef _CL_RESOURCE_MANAGER_H_
+#define _CL_RESOURCE_MANAGER_H_
+
+#include <FApp.h>
+#include <FBase.h>
+#include <FGraphics.h>
+#include <FLocales.h>
+
+class ResourceManager
+{
+public:
+ static Tizen::Locales::DateTimeFormatter* CreateDateFormatterN(Tizen::Locales::DateTimeStyle dateStyle);
+ static Tizen::Locales::DateTimeFormatter* CreateDateTimeFormatterN(Tizen::Locales::DateTimeStyle dateStyle);
+ static Tizen::Locales::DateTimeFormatter* CreateTimeFormatterN(void);
+ static Tizen::Graphics::Bitmap* GetBitmapN(const Tizen::Base::String& bitmapPath);
+ static Tizen::Graphics::Bitmap* GetBlankBitmap(void);
+ static Tizen::Base::String GetString(const Tizen::Base::String& stringId);
+ static Tizen::Base::String GetMonthString(int month);
+ static Tizen::Base::String GetWeekString(int week);
+ static Tizen::Base::String GetWeekShortString(int week);
+
+ static Tizen::Base::DateTime ConvertUtcTimeToWallTime(const Tizen::Base::DateTime& utcTime);
+ static Tizen::Base::DateTime ConvertWallTimeToUtcTime(const Tizen::Base::DateTime& wallTime);
+private:
+ result Construct(void);
+
+ ResourceManager(void);
+ virtual ~ResourceManager(void);
+
+ static ResourceManager* GetInstance(void);
+ static void CreateInstance(void);
+ static void DestroyInstance(void);
+
+private:
+ Tizen::App::AppResource* __pAppResource;
+ Tizen::Graphics::Bitmap* __pBlankBitmap;
+ Tizen::Locales::DateTimeFormatter* __pMonthFormatter;
+ Tizen::Locales::DateTimeFormatter* __pWeekFormatter;
+ Tizen::Locales::DateTimeFormatter* __pWeekShortFormatter;
+ Tizen::Locales::TimeZone __timeZone;
+
+ static ResourceManager* __pInstance;
+}; // ResourceManager
+
+#endif // _CL_RESOURCE_MANAGER_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClSceneRegister.h
+ * @brief This is the header file for the SceneRegister class.
+ */
+
+#ifndef _CL_SCENE_REGISTER_H_
+#define _CL_SCENE_REGISTER_H_
+
+#include <FUi.h>
+
+class FormFactory;
+class PanelFactory;
+
+class SceneRegister
+{
+public:
+ static result RegisterAllScene(void);
+
+private:
+ void Construct(void);
+
+ SceneRegister(void);
+ virtual ~SceneRegister(void);
+
+ static void CreateInstance(void);
+ static void DestroyInstance(void);
+ static SceneRegister* GetInstance(void);
+
+private:
+ FormFactory* __pFormFactory;
+ PanelFactory* __pPanelFactory;
+
+ static SceneRegister* __pInstance;
+}; // SceneRegister
+
+#endif // _CL_SCENE_REGISTER_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClSettingForm.h
+ * @brief This is the header file for the SettingForm class.
+ */
+
+#ifndef _CL_SETTING_FORM_H_
+#define _CL_SETTING_FORM_H_
+
+#include <FBase.h>
+#include <FUi.h>
+
+class SettingForm
+ : public Tizen::Ui::Controls::Form
+ , public virtual Tizen::Ui::Controls::IFormBackEventListener
+ , public virtual Tizen::Ui::Controls::IGroupedTableViewItemEventListener
+ , public virtual Tizen::Ui::Controls::IGroupedTableViewItemProvider
+ , public virtual Tizen::Ui::Scenes::ISceneEventListener
+{
+public:
+ result Initialize(void);
+
+ SettingForm(void);
+ virtual ~SettingForm(void);
+
+ virtual result OnInitializing(void);
+ virtual result OnTerminating(void);
+
+ virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source);
+
+ virtual int GetGroupCount(void);
+ virtual int GetItemCount(int groupIndex);
+ virtual Tizen::Ui::Controls::TableViewGroupItem* CreateGroupItem(int groupIndex, int itemWidth);
+ virtual bool DeleteGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem);
+ virtual void UpdateGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem);
+ virtual Tizen::Ui::Controls::TableViewItem* CreateItem(int groupIndex, int itemIndex, int itemWidth);
+ virtual bool DeleteItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem);
+ virtual void UpdateItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem);
+ virtual int GetDefaultGroupItemHeight(void);
+ virtual int GetDefaultItemHeight(void);
+
+ virtual void OnGroupedTableViewGroupItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status);
+ virtual void OnGroupedTableViewItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem, Tizen::Ui::Controls::TableViewItemStatus status);
+ virtual void OnGroupedTableViewContextItemActivationStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewContextItem* pContextItem, bool activated);
+
+ virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId,
+ const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);
+ virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId,
+ const Tizen::Ui::Scenes::SceneId& nextSceneId);
+private:
+ Tizen::Ui::Controls::TableViewGroupItem* CreateEmptyGroupItemN(int itemWidth);
+ Tizen::Ui::Controls::TableViewItem* CreateLockTimeZoneOnOffItemN(int itemWidth, bool isOn);
+ Tizen::Ui::Controls::TableViewItem* CreateLockTimeZoneSelectionItemN(int itemWidth);
+ Tizen::Ui::Controls::TableViewGroupItem* CreateLockTimeZoneDescriptionItemN(int itemWidth);
+ Tizen::Ui::Controls::TableViewItem* CreateFirstDayOfWeekExpanderItemN(int itemWidth, bool isSundayFirst);
+ Tizen::Ui::Controls::TableViewItem* CreateFirstDayOfWeekSundayItemN(int itemWidth, bool isSelected);
+ Tizen::Ui::Controls::TableViewItem* CreateFirstDayOfWeekMondayItemN(int itemWidth, bool isSelected);
+ Tizen::Ui::Controls::TableViewItem* CreateImportItemN(int itemWidth);
+ Tizen::Ui::Controls::TableViewItem* CreateExportItemN(int itemWidth);
+
+private:
+ Tizen::Ui::Controls::GroupedTableView* __pGroupedTableView;
+ Tizen::Ui::Controls::Label* __pLabelLockTimeZone;
+ Tizen::Ui::Controls::Label* __pLabelFirstDayOfWeek;
+ int __descriptionItemHeight;
+ bool __isLockTimeZoneSet;
+ bool __isFirstDayOfWeekSelectionItemExpanded;
+ bool __isFirstDayOfWeekSunday;
+}; // SettingForm
+
+#endif // _CL_SETTING_FORM_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClSharePopup.h
+ * @brief This is the header file for the SharePopup class.
+ */
+
+#ifndef _CL_SHARE_POPUP_H_
+#define _CL_SHARE_POPUP_H_
+
+#include <FSocial.h>
+#include <FUi.h>
+
+class SharePopup
+ : public Tizen::Ui::Controls::Popup
+ , public virtual Tizen::Ui::IActionEventListener
+ , public virtual Tizen::Ui::Controls::IListViewItemEventListener
+ , public virtual Tizen::Ui::Controls::IListViewItemProvider
+{
+public:
+ result Initialize(void);
+ result RequestShare(Tizen::Social::RecordId eventId);
+
+ SharePopup(void);
+ virtual ~SharePopup(void);
+
+ virtual result OnInitializing(void);
+ virtual result OnTerminating(void);
+
+ virtual int GetItemCount(void);
+ virtual Tizen::Ui::Controls::ListItemBase* CreateItem(int index, int itemWidth);
+ virtual bool DeleteItem(int index, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth);
+
+ virtual void OnListViewItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListItemStatus status);
+ virtual void OnListViewItemSwept(Tizen::Ui::Controls::ListView& listView, int index, Tizen::Ui::Controls::SweepDirection direction);
+ virtual void OnListViewContextItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListContextItemStatus status);
+ virtual void OnListViewItemLongPressed(Tizen::Ui::Controls::ListView& listView, int index, int elementId, bool& invokeListViewItemCallback);
+ virtual void OnListViewItemReordered(Tizen::Ui::Controls::ListView& listView, int indexFrom, int indexTo);
+
+ virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+
+private:
+ Tizen::Ui::Controls::ListView* __pListView;
+ Tizen::Social::RecordId __eventId;
+}; // SharePopup
+
+#endif // _CL_SHARE_POPUP_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClTaskDetailsForm.h
+ * @brief This is the header file for the TaskDetailsForm class.
+ */
+
+#ifndef _CL_TASK_DETAILS_FORM_H_
+#define _CL_TASK_DETAILS_FORM_H_
+
+#include <FApp.h>
+#include <FBase.h>
+#include <FSocial.h>
+#include <FUi.h>
+
+class TaskDetailsForm
+ : public Tizen::Ui::Controls::Form
+ , public virtual Tizen::Ui::IActionEventListener
+ , public virtual Tizen::Ui::Controls::IFormBackEventListener
+ , public virtual Tizen::Ui::Controls::ISectionTableViewItemEventListener
+ , public virtual Tizen::Ui::Controls::ISectionTableViewItemProvider
+ , public virtual Tizen::Ui::Scenes::ISceneEventListener
+{
+public:
+ result Initialize(void);
+
+ TaskDetailsForm(void);
+ virtual ~TaskDetailsForm(void);
+
+ virtual result OnInitializing(void);
+ virtual result OnTerminating(void);
+
+ virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source);
+
+ virtual int GetSectionCount(void);
+ virtual int GetItemCount(int sectionIndex);
+ virtual Tizen::Ui::Controls::TableViewItem* CreateItem(int sectionIndex, int itemIndex, int itemWidth);
+ virtual bool DeleteItem(int sectionIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem);
+ virtual void UpdateItem(int sectionIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem);
+ virtual Tizen::Base::String GetSectionHeader(int sectionIndex);
+ virtual bool HasSectionHeader(int sectionIndex);
+ virtual Tizen::Base::String GetSectionFooter(int sectionIndex);
+ virtual bool HasSectionFooter(int sectionIndex);
+ virtual int GetDefaultItemHeight(void);
+
+ virtual void OnSectionTableViewItemStateChanged(Tizen::Ui::Controls::SectionTableView& tableView,
+ int sectionIndex, int itemIndex,
+ Tizen::Ui::Controls::TableViewItem* pItem,
+ Tizen::Ui::Controls::TableViewItemStatus status);
+ virtual void OnSectionTableViewContextItemActivationStateChanged(Tizen::Ui::Controls::SectionTableView& tableView,
+ int sectionIndex, int itemIndex,
+ Tizen::Ui::Controls::TableViewContextItem* pContextItem,
+ bool activated);
+
+ virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId,
+ const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);
+ virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId,
+ const Tizen::Ui::Scenes::SceneId& nextSceneId);
+
+ virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+
+private:
+ Tizen::Ui::Controls::TableViewItem* CreateMainItemN(int itemWidth, const Tizen::Base::String& title,
+ const Tizen::Base::DateTime& dueDate, bool isCompleted);
+ Tizen::Ui::Controls::TableViewItem* CreateDescriptionItemN(int itemWidth, const Tizen::Base::String& description);
+ Tizen::Ui::Controls::TableViewItem* CreateLocationItemN(int itemWidth, const Tizen::Base::String& location);
+ Tizen::Ui::Controls::TableViewItem* CreateReminderItemN(int itemWidth, const Tizen::Base::String& reminder);
+ Tizen::Ui::Controls::TableViewItem* CreatePriorityItemN(int itemWidth, const Tizen::Base::String& priority);
+ Tizen::Base::String GetReminderString(const Tizen::Social::Reminder* pReminder = null) const;
+ result SendAppControlResult(Tizen::App::AppCtrlResult appControlResult);
+
+private:
+ Tizen::Social::CalTodo* __pTask;
+ Tizen::Ui::Controls::SectionTableView* __pTableView;
+}; // TaskDetailsForm
+
+#endif // _CL_TASK_DETAILS_FORM_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClTaskItem.h
+ * @brief This is the header file for the TaskItem class.
+ */
+
+#ifndef _CL_TASK_ITEM_H_
+#define _CL_TASK_ITEM_H_
+
+#include <FBase.h>
+#include <FGraphics.h>
+#include <FLocales.h>
+#include <FUi.h>
+#include "ClTypes.h"
+
+class TaskItem
+ : public Tizen::Ui::Controls::CustomItem
+{
+public:
+ const Tizen::Graphics::Color GetCalendarColor(void) const;
+ const Tizen::Base::String& GetDueDateText(void) const;
+ const Tizen::Base::String& GetLocation(void) const;
+ TaskPriority GetPriority(void) const;
+ const Tizen::Base::String& GetTitle(void) const;
+ bool HasReminder(void) const;
+ void Initialize(TaskItemStyle style, int width);
+ bool IsCanceledTask(void) const;
+ bool IsCompletedTask(void) const;
+ bool IsFacebookTask(void) const;
+ void SetCalendarColor(const Tizen::Graphics::Color& calendarColor);
+ void SetCanceled(bool isCanceled);
+ void SetCompleted(bool isCompleted);
+ void SetDueDate(const Tizen::Base::DateTime& dueDate, Tizen::Locales::DateTimeFormatter* pTimeFormatter = null);
+ void SetDueDateText(const Tizen::Base::String& dueDateText);
+ void SetFacebookEvent(bool isFacebookEvent);
+ void SetLocation(const Tizen::Base::String& location);
+ void SetPriority(TaskPriority priority);
+ void SetReminder(bool hasReminder);
+ void SetTitle(const Tizen::Base::String& title);
+ void UpdateElements(void);
+
+ TaskItem(void);
+ virtual ~TaskItem(void);
+
+private:
+ TaskItemStyle __style;
+ int __width;
+ Tizen::Graphics::Color __calendarColor;
+ Tizen::Base::String __title;
+ Tizen::Base::String __location;
+ Tizen::Base::String __dueDate;
+ TaskPriority __priority;
+ bool __hasReminder;
+ bool __isCanceled;
+ bool __isCompleted;
+ bool __isFacebook;
+}; // TaskItem
+
+#endif // _CL_TASK_ITEM_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClTaskSelectorForm.h
+ * @brief This is the header file for the TaskSelectorForm class.
+ */
+
+#ifndef _CL_TASK_SELECTOR_FORM_H_
+#define _CL_TASK_SELECTOR_FORM_H_
+
+#include <FBase.h>
+#include <FLocales.h>
+#include <FSocial.h>
+#include <FUi.h>
+
+class TaskSelectorForm
+ : public Tizen::Ui::Controls::Form
+ , public virtual Tizen::Ui::IActionEventListener
+ , public virtual Tizen::Ui::Controls::IFormBackEventListener
+ , public virtual Tizen::Ui::Controls::IListViewItemEventListener
+ , public virtual Tizen::Ui::Controls::IListViewItemProvider
+ , public virtual Tizen::Ui::Scenes::ISceneEventListener
+{
+public:
+ result Initailize(void);
+
+ TaskSelectorForm(void);
+ virtual ~TaskSelectorForm(void);
+
+ virtual result OnInitializing(void);
+ virtual result OnTerminating(void);
+
+ virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source);
+
+ virtual int GetItemCount(void);
+ virtual Tizen::Ui::Controls::ListItemBase* CreateItem(int index, int itemWidth);
+ virtual bool DeleteItem(int index, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth);
+
+ virtual void OnListViewItemStateChanged(Tizen::Ui::Controls::ListView& listView,
+ int index, int elementId, Tizen::Ui::Controls::ListItemStatus status);
+ virtual void OnListViewItemSwept(Tizen::Ui::Controls::ListView& listView,
+ int index, Tizen::Ui::Controls::SweepDirection direction);
+ virtual void OnListViewContextItemStateChanged(Tizen::Ui::Controls::ListView& listView,
+ int index, int elementId, Tizen::Ui::Controls::ListContextItemStatus status);
+ virtual void OnListViewItemLongPressed(Tizen::Ui::Controls::ListView& listView,
+ int index, int elementId, bool& invokeListViewItemCallback);
+ virtual void OnListViewItemReordered(Tizen::Ui::Controls::ListView& listView, int indexFrom, int indexTo);
+
+ virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId,
+ const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);
+ virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId,
+ const Tizen::Ui::Scenes::SceneId& nextSceneId);
+
+ virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+
+private:
+ enum TaskSelectorFormSelectionType
+ {
+ TASK_SELECTOR_FORM_SELECTION_TYPE_SINGLE,
+ TASK_SELECTOR_FORM_SELECTION_TYPE_MULTIPLE
+ };
+
+ Tizen::Graphics::Bitmap* CreateColorBarBitmapN(const Tizen::Graphics::Dimension& size, const Tizen::Graphics::Color& color);
+ Tizen::Graphics::Color GetCalendarColor(const Tizen::Social::RecordId& calendarId) const;
+ result LoadAllTodos(void);
+ result SendAppControlResult(Tizen::App::AppCtrlResult appControlResult, const Tizen::Base::Collection::IList* pResultList = null);
+
+private:
+ TaskSelectorFormSelectionType __selectionType;
+ Tizen::Base::Collection::HashMap __allCalendars;
+ Tizen::Base::Collection::IList* __pTasks;
+ Tizen::Ui::Controls::ListView* __pListViewContents;
+ Tizen::Social::Calendarbook* __pCalendarbook;
+ Tizen::Locales::DateTimeFormatter* __pDateTimeFormatter;
+}; // TaskSelectorForm
+
+#endif // _CL_TASK_SELECTOR_FORM_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClThreeButtonPopup.h
+ * @brief This is the header file for the ThreeButtonPopup class.
+ */
+
+#ifndef _CL_THREE_BUTTON_POPUP_H_
+#define _CL_THREE_BUTTON_POPUP_H_
+
+#include <FSocial.h>
+#include <FUi.h>
+#include "ClTypes.h"
+
+class ThreeButtonPopup
+ : public Tizen::Ui::Controls::Popup
+ , public virtual Tizen::Ui::IActionEventListener
+{
+public:
+ virtual result OnInitializing(void);
+ virtual result OnTerminating(void);
+
+ virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+
+ static void RequestThreeButtonPopup(ThreeButtonPopupStyle style, Tizen::Ui::Control* pTarget, const Tizen::Social::CalEventInstance* pEvent = null);
+
+private:
+ ThreeButtonPopup(ThreeButtonPopupStyle style);
+ virtual ~ThreeButtonPopup(void);
+
+private:
+ ThreeButtonPopupStyle __style;
+ Tizen::Ui::Control* __pTarget;
+ const Tizen::Social::CalEventInstance* __pEvent;
+}; // ThreeButtonPopup
+
+#endif // _CL_THREE_BUTTON_POPUP_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClTwoButtonPopup.h
+ * @brief This is the header file for the TwoButtonPopup class.
+ */
+
+#ifndef _CL_TWO_BUTTON_POPUP_H_
+#define _CL_TWO_BUTTON_POPUP_H_
+
+#include <FSocial.h>
+#include <FUi.h>
+#include "ClTypes.h"
+
+class TwoButtonPopup
+ : public Tizen::Ui::Controls::Popup
+ , public virtual Tizen::Ui::IActionEventListener
+{
+public:
+ virtual result OnInitializing(void);
+ virtual result OnTerminating(void);
+
+ virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+
+ static void RequestTwoButtonPopup(TwoButtonPopupStyle style, Tizen::Ui::Control* pTarget, const Tizen::Social::CalEventInstance* pEvent = null);
+
+private:
+ TwoButtonPopup(TwoButtonPopupStyle style);
+ virtual ~TwoButtonPopup(void);
+
+private:
+ TwoButtonPopupStyle __style;
+ Tizen::Ui::Control* __pTarget;
+ const Tizen::Social::CalEventInstance* __pEvent;
+}; // TwoButtonPopup
+
+#endif // _CL_TWO_BUTTON_POPUP_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClTypes.h
+ * @brief This is the header file for the Calendar application types.
+ */
+
+#ifndef _CL_TYPES_H_
+#define _CL_TYPES_H_
+
+//SceneId IDSCN_
+extern const wchar_t* IDSCN_YEAR;
+extern const wchar_t* IDSCN_MONTH;
+extern const wchar_t* IDSCN_DAY;
+extern const wchar_t* IDSCN_LIST;
+extern const wchar_t* IDSCN_CALENDAR_SETTINGS;
+extern const wchar_t* IDSCN_CALENDAR_LIST;
+extern const wchar_t* IDSCN_DAY_EVENT_LIST;
+extern const wchar_t* IDSCN_EVENT_DETAILS;
+extern const wchar_t* IDSCN_EVENT_DELETER;
+extern const wchar_t* IDSCN_EVENT_EDITOR;
+extern const wchar_t* IDSCN_EVENT_SEARCHER;
+extern const wchar_t* IDSCN_EVENT_SELECTOR;
+extern const wchar_t* IDSCN_REMINDER;
+extern const wchar_t* IDSCN_REPEAT;
+extern const wchar_t* IDSCN_TASK_SELECTOR;
+extern const wchar_t* IDSCN_TASK_DETAILS;
+extern const wchar_t* IDSCN_SETTING;
+
+//FormId IDC_FORM
+extern const wchar_t* IDC_MAIN_FORM;
+extern const wchar_t* IDC_CALENDAR_SETTINGS_FORM;
+extern const wchar_t* IDC_CALENDAR_LIST_FORM;
+extern const wchar_t* IDC_DAY_EVENT_LIST_FORM;
+extern const wchar_t* IDC_EVENT_DETAILS_FORM;
+extern const wchar_t* IDC_EVENT_DELETER_FORM;
+extern const wchar_t* IDC_EVENT_SELECTOR_FORM;
+extern const wchar_t* IDC_EVENT_EDITOR_FORM;
+extern const wchar_t* IDC_EVENT_SEARCHER_FORM;
+extern const wchar_t* IDC_REMINDER_FORM;
+extern const wchar_t* IDC_REPEAT_FORM;
+extern const wchar_t* IDC_TASK_SELECTOR_FORM;
+extern const wchar_t* IDC_TASK_DETAILS_FORM;
+extern const wchar_t* IDC_SETTING_FORM;
+
+//PanelId IDC_PANEL
+extern const wchar_t* IDC_YEAR_PANEL;
+extern const wchar_t* IDC_MONTH_PANEL;
+extern const wchar_t* IDC_DAY_PANEL;
+extern const wchar_t* IDC_LIST_PANEL;
+
+//StringID IDS
+extern const wchar_t* IDS_CLD_BODY_YEAR;
+extern const wchar_t* IDS_CLD_TAB4_MONTH;
+extern const wchar_t* IDS_CLD_BODY_DAY;
+extern const wchar_t* IDS_CLD_BODY_LIST;
+extern const wchar_t* IDS_CLD_SK3_DELETE;
+extern const wchar_t* IDS_CLD_BUTTON_SEARCH;
+extern const wchar_t* IDS_COM_SK4_SHARE;
+extern const wchar_t* IDS_CLD_BODY_CALENDAR;
+extern const wchar_t* IDS_CLD_HEADER_CREATE_EVENT;
+extern const wchar_t* IDS_CLD_HEADER_EDIT_EVENT;
+extern const wchar_t* IDS_CLD_BODY_ALL_CALENDAR;
+extern const wchar_t* IDS_CLD_BODY_NO_TITLE;
+extern const wchar_t* IDS_CLD_BODY_ALL_DAY;
+extern const wchar_t* IDS_CLD_BODY_NO_EVENTS;
+extern const wchar_t* IDS_CLD_SK3_EDIT;
+extern const wchar_t* IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY;
+extern const wchar_t* IDS_CLD_MBODY_ALL_THIS_YEAR;
+extern const wchar_t* IDS_CLD_BODY_ALL_THIS_MONTH;
+extern const wchar_t* IDS_CLD_BODY_ALL_THIS_DAY;
+extern const wchar_t* IDS_CLD_BODY_REMINDER;
+extern const wchar_t* IDS_CLD_BODY_REPEAT;
+extern const wchar_t* IDS_ST_BODY_SAVE_TO;
+extern const wchar_t* IDS_CLD_BODY_TITLE;
+extern const wchar_t* IDS_CLD_BODY_LOCATION;
+extern const wchar_t* IDS_CLD_BODY_TIME_ZONE;
+extern const wchar_t* IDS_CLD_BODY_CREATE_DESCRIPTION;
+extern const wchar_t* IDS_CLD_BODY_OFF;
+extern const wchar_t* IDS_CLD_BODY_ON_TIME;
+extern const wchar_t* IDS_CLD_BODY_5_MIN_BEFORE;
+extern const wchar_t* IDS_CLD_OPT_15_MINS_BEFORE;
+extern const wchar_t* IDS_CLD_BODY_1_HOUR_BEFORE;
+extern const wchar_t* IDS_CLD_BODY_1_DAY_BEFORE;
+extern const wchar_t* IDS_CLD_BODY_2_DAYS_BEFORE;
+extern const wchar_t* IDS_CLD_BODY_1_WEEK_BEFORE;
+extern const wchar_t* IDS_CLD_BODY_BEFORE_LC;
+extern const wchar_t* IDS_CLD_BODY_EVERY_DAY_ATNT;
+extern const wchar_t* IDS_CLD_BODY_EVERY_3_DAYS;
+extern const wchar_t* IDS_CLD_BODY_EVERY_WEEK;
+extern const wchar_t* IDS_CLD_BODY_EVERY_2_WEEKS;
+extern const wchar_t* IDS_CLD_BODY_EVERY_MONTH;
+extern const wchar_t* IDS_CLD_BODY_EVERY_YEAR;
+extern const wchar_t* IDS_CLD_BODY_REPEAT_UNTIL;
+extern const wchar_t* IDS_CLD_BODY_NONE;
+extern const wchar_t* IDS_COM_POP_TIMES_LC;
+extern const wchar_t* IDS_CLD_BODY_REPEAT_WARNING;
+extern const wchar_t* IDS_COM_BODY_SELECT_ALL;
+extern const wchar_t* IDS_CLD_SK_SAVE;
+extern const wchar_t* IDS_CLD_SK_CANCEL;
+extern const wchar_t* IDS_EMAIL_OPT_ADD_TO_CALENDAR;
+extern const wchar_t* IDS_CLD_BODY_DUE_DATE;
+extern const wchar_t* IDS_CLD_BODY_PRIORITY;
+extern const wchar_t* IDS_COM_BODY_LOW;
+extern const wchar_t* IDS_COM_BODY_HIGH;
+extern const wchar_t* IDS_COM_BODY_PD_SELECTED;
+extern const wchar_t* IDS_CLD_POP_ALL_REPETITIVE_EVENTS;
+extern const wchar_t* IDS_COM_POP_DELETE_Q;
+extern const wchar_t* IDS_CLD_BODY_ONLY_THIS_EVENT;
+extern const wchar_t* IDS_CLD_OPT_SENDVIA_EMAIL;
+extern const wchar_t* IDS_CLD_OPT_MESSAGE_SEND_VIA;
+extern const wchar_t* IDS_COM_BODY_BLUETOOTH;
+extern const wchar_t* IDS_COM_BODY_NFC;
+extern const wchar_t* IDS_COM_OPT1_WI_FI_DIRECT;
+extern const wchar_t* IDS_COM_POP_AM_M_ABB;
+extern const wchar_t* IDS_COM_POP_PM_M_ABB;
+extern const wchar_t* IDS_CLD_MBODY_LOCK_TIME_ZONE;
+extern const wchar_t* IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG;
+extern const wchar_t* IDS_CLD_BODY_IMPORT_EVENTS_EVENTS_TASKS_ABB;
+extern const wchar_t* IDS_CLD_BODY_EXPORT_EVENTS_EVENTS_TASKS_ABB;
+extern const wchar_t* IDS_COM_POP_SAVING_FAILED;
+
+extern const wchar_t* IDS_MONTH_VIEW_LIST_TO;
+extern const wchar_t* IDS_EVENT_DETAILS_TO;
+
+extern const wchar_t* IDS_DAY_VIEW_ALL_DAY_EVENT;
+extern const wchar_t* IDS_LIST_VIEW_TAP_VIEW_BEFORE;
+extern const wchar_t* IDS_LIST_VIEW_TAP_VIEW_AFTER;
+extern const wchar_t* IDS_EVENT_EDITOR_FROM;
+extern const wchar_t* IDS_EVENT_EDITOR_TO;
+extern const wchar_t* IDS_EVENT_EDITOR_ALL_DAY_EVENT;
+extern const wchar_t* IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE;
+extern const wchar_t* IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR;
+extern const wchar_t* IDS_REMINDER_CUSTOM_TIME_UNIT_DAY;
+extern const wchar_t* IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK;
+extern const wchar_t* IDS_REMINDER_YEAR_BEFORE;
+extern const wchar_t* IDS_REMINDER_MONTH_BEFORE;
+extern const wchar_t* IDS_REMINDER_WEEK_BEFORE;
+extern const wchar_t* IDS_REMINDER_DAY_BEFORE;
+extern const wchar_t* IDS_REMINDER_HOUR_BEFORE;
+extern const wchar_t* IDS_REMINDER_MINUTE_BEFORE;
+extern const wchar_t* IDS_REPEAT_EVERY_DAY;
+extern const wchar_t* IDS_REPEAT_EVERY_WEEK;
+extern const wchar_t* IDS_REPEAT_EVERY_MONTH;
+extern const wchar_t* IDS_REPEAT_EVERY_YEAR;
+extern const wchar_t* IDS_REPEAT_EVERY_N_DAYS;
+extern const wchar_t* IDS_REPEAT_EVERY_N_WEEKS;
+extern const wchar_t* IDS_REPEAT_EVERY_N_MONTHS;
+extern const wchar_t* IDS_REPEAT_EVERY_N_YEARS;
+extern const wchar_t* IDS_TASK_PRIORITY_MIDDLE;
+extern const wchar_t* IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT;
+extern const wchar_t* IDS_POPUP_EDIT_EVENT_QUESTION;
+
+//bitmap ID
+extern const wchar_t* IDB_SPIN_LEFT;
+extern const wchar_t* IDB_SPIN_LEFT_PRESS;
+extern const wchar_t* IDB_SPIN_RIGHT;
+extern const wchar_t* IDB_SPIN_RIGHT_PRESS;
+
+extern const wchar_t* IDB_ALL_DAY_EVENT_LIST_EXPAND_CLOSED;
+extern const wchar_t* IDB_ALL_DAY_EVENT_LIST_EXPAND_CLOSED_PRESS;
+extern const wchar_t* IDB_ALL_DAY_EVENT_LIST_EXPAND_OPENED;
+extern const wchar_t* IDB_ALL_DAY_EVENT_LIST_EXPAND_OPENED_PRESS;
+extern const wchar_t* IDB_DAY_CURRENT_TIME;
+extern const wchar_t* IDB_DAY_EVENT_MORE;
+extern const wchar_t* IDB_DAY_EVENT_MORE_ARROW;
+extern const wchar_t* IDB_DAY_VIEW_TIME_LINE;
+extern const wchar_t* IDB_DAY_VIEW_TIME_LINE_PRESS;
+
+extern const wchar_t* IDB_LIST_ICON_ALARM;
+extern const wchar_t* IDB_LIST_ICON_DESCRIPTION;
+extern const wchar_t* IDB_LIST_ICON_FACEBOOK;
+extern const wchar_t* IDB_LIST_ICON_MAP;
+extern const wchar_t* IDB_LIST_ICON_PRIORITY;
+extern const wchar_t* IDB_LIST_ICON_PRIORITY_LOW;
+extern const wchar_t* IDB_LIST_ICON_REMINDER;
+extern const wchar_t* IDB_LIST_ICON_REPEAT;
+
+extern const wchar_t* IDB_TASK_EVENT_COMPLETION_PRESS;
+
+extern const wchar_t* IDB_ICON_ALARM_64X64;
+extern const wchar_t* IDB_MONTH_VIEW_DAY_EVENT;
+extern const wchar_t* IDB_MONTH_VIEW_DAY_FOCUS;
+extern const wchar_t* IDB_MONTH_VIEW_TODAY;
+extern const wchar_t* IDB_MONTH_VIEW_TODAY_FOCUS;
+
+extern const wchar_t* IDB_YEAR_DAY_FOCUS;
+extern const wchar_t* IDB_YEAR_MONTH_FOCUS;
+
+//extern const wchar_t* IDB_BUTTON_DELETE;
+//extern const wchar_t* IDB_BUTTON_DELETE_PRESS;
+extern const wchar_t* IDB_BUTTON_MINUS;
+extern const wchar_t* IDB_BUTTON_MINUS_PRESS;
+extern const wchar_t* IDB_BUTTON_PLUS;
+extern const wchar_t* IDB_BUTTON_PLUS_PRESS;
+extern const wchar_t* IDB_CIRCLE_BUTTON;
+extern const wchar_t* IDB_CIRCLE_BUTTON_PRESS;
+extern const wchar_t* IDB_CIRCLE_BUTTON_DELETE;
+extern const wchar_t* IDB_CIRCLE_BUTTON_DELETE_PRESS;
+
+extern const wchar_t* IDB_BLANK;
+extern const wchar_t* IDB_LIST_VIEW_NO_CONTENTS_TEXT;
+
+extern const wchar_t* IDB_FORM_BACK;
+extern const wchar_t* IDB_FORM_BACK_PRESS;
+
+//etc
+extern const wchar_t* ID_OPERATION_CONFIG;
+extern const wchar_t* ID_OPERATION_MAIN;
+extern const wchar_t* ID_OPERATION_PICK;
+extern const wchar_t* ID_OPERATION_VIEW;
+
+extern const wchar_t* KEY_CALENDAR_EVENT_ID;
+extern const wchar_t* KEY_CALENDAR_TODO_ID;
+extern const wchar_t* KEY_CALENDAR_ITEM_TYPE;
+extern const wchar_t* KEY_CALENDAR_VIEW_TYPE;
+extern const wchar_t* KEY_CALENDAR_SELECTION_MODE;
+extern const wchar_t* KEY_CALENDAR_PATH;
+extern const wchar_t* KEY_NOTIFICATION_MANAGER_APP_MESSAGE;
+extern const wchar_t* KEY_SYSTEM_24_HOUR_NOTATION_ENABLED;
+extern const wchar_t* KEY_SYSTEM_COUNTRY;
+extern const wchar_t* KEY_SYSTEM_FIRST_DAY_OF_WEEK;
+extern const wchar_t* KEY_SYSTEM_LANGUAGE;
+extern const wchar_t* KEY_SYSTEM_TIME_FORMAT;
+extern const wchar_t* KEY_SYSTEM_TIME_ZONE;
+
+extern const wchar_t* VALUE_CALENDAR_EVENT_TYPE;
+extern const wchar_t* VALUE_CALENDAR_TODO_TYPE;
+extern const wchar_t* VALUE_CALENDAR_VCS_TYPE;
+extern const wchar_t* VALUE_CALENDAR_SINGLE_SELECTION_MODE;
+extern const wchar_t* VALUE_CALENDAR_MULTIPLE_SELECTION_MODE;
+
+extern const wchar_t* VCS_EXPORT_PATH;
+
+// enums
+enum OperationType
+{
+ OPERATION_TYPE_DEFAULT,
+ OPERATION_TYPE_APPCONTROL
+};
+
+enum EventItemStyle
+{
+ EVENT_ITEM_STYLE_NORMAL,
+ EVENT_ITEM_STYLE_SELECTION
+};
+
+enum ViewType
+{
+ VIEW_TYPE_NONE,
+ VIEW_TYPE_MONTHLY,
+ VIEW_TYPE_DAILY,
+ VIEW_TYPE_LIST
+};
+
+enum EventAction
+{
+ EVENT_ACTION_SELECTION,
+ EVENT_ACTION_EDIT,
+ EVENT_ACTION_SHARE,
+ EVENT_ACTION_DELETE
+};
+
+enum ViewScrollEffect
+{
+ VIEW_SCROLL_EFFECT_CURRENT = 0,
+ VIEW_SCROLL_EFFECT_NEXT,
+ VIEW_SCROLL_EFFECT_PREVIEW,
+ VIEW_SCROLL_EFFECT_COUNT
+};
+
+enum TaskItemStyle
+{
+ TASK_ITEM_STYLE_NORMAL,
+ TASK_ITEM_STYLE_SELECTION
+};
+
+enum TaskPriority
+{
+ TASK_PRIORITY_LOW,
+ TASK_PRIORITY_NORMAL,
+ TASK_PRIORITY_HIGH
+};
+
+enum ThreeButtonPopupStyle
+{
+ THREE_BUTTON_POPUP_STYLE_EDIT,
+ THREE_BUTTON_POPUP_STYLE_DELETE,
+ THREE_BUTTON_POPUP_STYLE_NONE
+};
+
+enum TwoButtonPopupStyle
+{
+ TWO_BUTTON_POPUP_STYLE_REPEATED_EVENT,
+ TWO_BUTTON_POPUP_STYLE_SINGLE_EVENT,
+ TWO_BUTTON_POPUP_STYLE_NONE
+};
+
+enum
+{
+ IDA_MAIN_FORM_HEADER_TODAY = 10001,
+ IDA_MAIN_FORM_HEADER_VIEW_MENU = 10002,
+ IDA_MAIN_FORM_HEADER_GO_TO_DATE = 10003,
+ IDA_MAIN_FORM_FOOTER_CREATE = 10011,
+ IDA_MAIN_FORM_FOOTER_SUB_MENU = 10019,
+
+ IDA_VIEW_MENU_YEAR = 10301,
+ IDA_VIEW_MENU_MONTH = 10302,
+ IDA_VIEW_MENU_DAY = 10303,
+ IDA_VIEW_MENU_LIST = 10304,
+
+ IDA_SUB_MENU_DELETE = 10401,
+ IDA_SUB_MENU_SEARCH = 10402,
+ IDA_SUB_MENU_CALENDARS = 10403,
+
+ IDA_GO_TO_DATE_POPUP_DONE = 10801,
+
+ IDA_EVENT_POPUP_DELETE = 10901,
+
+ IDA_EVENT_POPUP_ONLY_THIS_EVENT_DELETE = 11901,
+ IDA_EVENT_POPUP_ALL_REPETITIVE_EVENT_DELETE = 11902,
+ IDA_EVENT_POPUP_ONLY_THIS_EVENT_EDIT = 11903,
+ IDA_EVENT_POPUP_ALL_REPETITIVE_EVENT_EDIT = 11904
+};
+
+#endif // _CL_TYPES_H_
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClYearPanel.h
+ * @brief This is the header file for the YearPanel class.
+ */
+
+#ifndef _CL_YEAR_PANEL_H_
+#define _CL_YEAR_PANEL_H_
+
+#include <FBase.h>
+#include <FGraphics.h>
+#include <FUi.h>
+
+#include "ClICurrentDateChangedEventListener.h"
+#include "ClIDateFocusEventListener.h"
+#include "ClIPanningAnimationControlProvider.h"
+
+class EventListPresentationModel;
+class PanningAnimationManager;
+
+class YearPanel
+ : public Tizen::Ui::Controls::Panel
+ , public virtual Tizen::Ui::Animations::IControlAnimatorEventListener
+ , public virtual Tizen::Ui::Scenes::ISceneEventListener
+ , public virtual ICurrentDateChangedEventListener
+ , public virtual IDateFocusEventListener
+ , public virtual IPanningAnimationControlProvider
+{
+public:
+ result Initialize(void);
+
+ YearPanel(void);
+ virtual ~YearPanel(void);
+
+ virtual result OnInitializing(void);
+ virtual result OnTerminating(void);
+ virtual void OnUserEventReceivedN(RequestId requestId, Tizen::Base::Collection::IList* pArgs);
+
+ virtual void OnControlAnimationStarted(Tizen::Ui::Animations::ControlAnimator& source, Tizen::Ui::Control& control);
+ virtual void OnControlAnimationFinished(Tizen::Ui::Animations::ControlAnimator& source, Tizen::Ui::Control& control);
+ virtual void OnControlAnimationStopped(Tizen::Ui::Animations::ControlAnimator& source, Tizen::Ui::Control& control);
+
+ virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId,
+ const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);
+ virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId,
+ const Tizen::Ui::Scenes::SceneId& nextSceneId);
+
+ virtual void OnCurrentDateChanged(const Tizen::Base::DateTime& currentDate, const Tizen::Base::DateTime& prevDate);
+
+ virtual void OnDateFocused(const Tizen::Base::DateTime& focusedDate);
+
+ virtual Tizen::Ui::Control* GetCurrentControl(void);
+ virtual Tizen::Ui::Control* GetNextControl(void);
+ virtual Tizen::Ui::Control* GetPreviewControl(void);
+
+private:
+ result CreateBitmapElements(void);
+ void DrawCurrentDate(void);
+ result Update(bool draw = true);
+
+private:
+ static const int YEAR_PANEL_COUNT_OF_WEEK = 7;
+ static const int YEAR_PANEL_COUNT_OF_DAY = 31;
+
+ EventListPresentationModel* __pPm;
+ Tizen::Ui::Controls::Panel* __pPanelYearCalendar[VIEW_SCROLL_EFFECT_COUNT];
+ PanningAnimationManager* __pPanningAnimationManager;
+ Tizen::Graphics::Bitmap* __pBitmapWeekText[YEAR_PANEL_COUNT_OF_WEEK];
+ Tizen::Graphics::Bitmap* __pBitmapWeekdayText[YEAR_PANEL_COUNT_OF_DAY];
+ Tizen::Graphics::Bitmap* __pBitmapHolidayText[YEAR_PANEL_COUNT_OF_DAY];
+ Tizen::Graphics::Bitmap* __pBitmapFocus;
+}; // YearPanel
+
+#endif // _CL_YEAR_PANEL_H_
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<Manifest xmlns="http://schemas.tizen.org/2012/12/manifest">
+ <Id>ph1vq2phrp</Id>
+ <Version>1.0.0</Version>
+ <Type>C++App</Type>
+ <Author/>
+ <Descriptions>
+ <Description Locale="eng-PH"/>
+ <Description Locale="zho-SG"/>
+ <Description Locale="kat-GE"/>
+ <Description Locale="est-EE"/>
+ <Description Locale="ukr-UA"/>
+ <Description Locale="srp-RS"/>
+ <Description Locale="hrv-HR"/>
+ <Description Locale="isl-IS"/>
+ <Description Locale="ell-GR"/>
+ <Description Locale="glg-ES"/>
+ <Description Locale="lit-LT"/>
+ <Description Locale="aze-AZ"/>
+ <Description Locale="eng-US"/>
+ <Description Locale="mkd-MK"/>
+ <Description Locale="zho-HK"/>
+ <Description Locale="slk-SK"/>
+ <Description Locale="hun-HU"/>
+ <Description Locale="hye-AM"/>
+ <Description Locale="ces-CZ"/>
+ <Description Locale="fin-FI"/>
+ <Description Locale="ara-AE"/>
+ <Description Locale="eus-ES"/>
+ <Description Locale="ita-IT"/>
+ <Description Locale="tur-TR"/>
+ <Description Locale="rus-RU"/>
+ <Description Locale="cat-ES"/>
+ <Description Locale="kaz-KZ"/>
+ <Description Locale="deu-DE"/>
+ <Description Locale="zho-CN"/>
+ <Description Locale="por-PT"/>
+ <Description Locale="slv-SI"/>
+ <Description Locale="fra-FR"/>
+ <Description Locale="ron-RO"/>
+ <Description Locale="hin-IN"/>
+ <Description Locale="fra-CA"/>
+ <Description Locale="spa-ES"/>
+ <Description Locale="nld-NL"/>
+ <Description Locale="dan-DK"/>
+ <Description Locale="por-BR"/>
+ <Description Locale="bul-BG"/>
+ <Description Locale="zho-TW"/>
+ <Description Locale="jpn-JP"/>
+ <Description Locale="swe-SE"/>
+ <Description Locale="kor-KR"/>
+ <Description Locale="spa-MX"/>
+ <Description Locale="nob-NO"/>
+ <Description Locale="uzb-UZ"/>
+ <Description Locale="pol-PL"/>
+ <Description Locale="gle-IE"/>
+ <Description Locale="lav-LV"/>
+ <Description Locale="eng-GB"/>
+ </Descriptions>
+ <Requirements>
+ <Feature Name="http://tizen.org/feature/platform.core.cpu.arch">x86</Feature>
+ <Feature Name="http://tizen.org/feature/platform.core.fpu.arch">vfpv3</Feature>
+ </Requirements>
+ <Apps>
+ <ApiVersion>2.0</ApiVersion>
+ <Privileges>
+ <Privilege>http://tizen.org/privilege/calendar.read</Privilege>
+ <Privilege>http://tizen.org/privilege/setting</Privilege>
+ <Privilege>http://tizen.org/privilege/calendar.write</Privilege>
+ <Privilege>http://tizen.org/privilege/application.launch</Privilege>
+ </Privileges>
+ <UiApp Main="True" MenuIconVisible="True" Name="Calendar" SubMode="True">
+ <UiScalability BaseScreenSize="Normal" CoordinateSystem="Logical" LogicalCoordinate="720"/>
+ <UiTheme SystemTheme="White"/>
+ <DisplayNames>
+ <DisplayName Locale="eng-PH">Calendar-Ref</DisplayName>
+ <DisplayName Locale="zho-SG">日历-Ref</DisplayName>
+ <DisplayName Locale="kat-GE">კალენდარი-Ref</DisplayName>
+ <DisplayName Locale="est-EE">Kalender-Ref</DisplayName>
+ <DisplayName Locale="ukr-UA">Календар-Ref</DisplayName>
+ <DisplayName Locale="srp-RS">Kalendar-Ref</DisplayName>
+ <DisplayName Locale="hrv-HR">Kalendar-Ref</DisplayName>
+ <DisplayName Locale="isl-IS">Dagbók-Ref</DisplayName>
+ <DisplayName Locale="ell-GR">Ημερολόγιο-Ref</DisplayName>
+ <DisplayName Locale="glg-ES">Calendario-Ref</DisplayName>
+ <DisplayName Locale="lit-LT">Kalend.-Ref</DisplayName>
+ <DisplayName Locale="aze-AZ">Təqvim-Ref</DisplayName>
+ <DisplayName Locale="eng-US">Calendar-Ref</DisplayName>
+ <DisplayName Locale="mkd-MK">Календар-Ref</DisplayName>
+ <DisplayName Locale="zho-HK">日曆-Ref</DisplayName>
+ <DisplayName Locale="hye-AM">Օրացույց-Ref</DisplayName>
+ <DisplayName Locale="hun-HU">Naptár-Ref</DisplayName>
+ <DisplayName Locale="slk-SK">Kalendár-Ref</DisplayName>
+ <DisplayName Locale="ces-CZ">Kalendář-Ref</DisplayName>
+ <DisplayName Locale="fin-FI">Kalenteri-Ref</DisplayName>
+ <DisplayName Locale="ara-AE">التقويم-Ref</DisplayName>
+ <DisplayName Locale="ita-IT">Calendario-Ref</DisplayName>
+ <DisplayName Locale="eus-ES">Egutegia-Ref</DisplayName>
+ <DisplayName Locale="tur-TR">Takvim-Ref</DisplayName>
+ <DisplayName Locale="rus-RU">Календарь-Ref</DisplayName>
+ <DisplayName Locale="cat-ES">Calendari-Ref</DisplayName>
+ <DisplayName Locale="kaz-KZ">Күнтізбе-Ref</DisplayName>
+ <DisplayName Locale="deu-DE">Kalender-Ref</DisplayName>
+ <DisplayName Locale="zho-CN">日历-Ref</DisplayName>
+ <DisplayName Locale="por-PT">Calendário-Ref</DisplayName>
+ <DisplayName Locale="slv-SI">Koledar-Ref</DisplayName>
+ <DisplayName Locale="fra-FR">Calendrier-Ref</DisplayName>
+ <DisplayName Locale="ron-RO">Calendar-Ref</DisplayName>
+ <DisplayName Locale="hin-IN">कैलेंडर-Ref</DisplayName>
+ <DisplayName Locale="fra-CA">Calendrier-Ref</DisplayName>
+ <DisplayName Locale="spa-ES">Calendario-Ref</DisplayName>
+ <DisplayName Locale="nld-NL">Agenda-Ref</DisplayName>
+ <DisplayName Locale="dan-DK">Kalender-Ref</DisplayName>
+ <DisplayName Locale="por-BR">Calendário-Ref</DisplayName>
+ <DisplayName Locale="bul-BG">Календар-Ref</DisplayName>
+ <DisplayName Locale="zho-TW">日曆-Ref</DisplayName>
+ <DisplayName Locale="jpn-JP">カレンダー-Ref</DisplayName>
+ <DisplayName Locale="swe-SE">Kalender-Ref</DisplayName>
+ <DisplayName Locale="kor-KR">일정-Ref</DisplayName>
+ <DisplayName Locale="spa-MX">Calendario-Ref</DisplayName>
+ <DisplayName Locale="nob-NO">Kalender-Ref</DisplayName>
+ <DisplayName Locale="uzb-UZ">Kalendar-Ref</DisplayName>
+ <DisplayName Locale="pol-PL">Kalendarz-Ref</DisplayName>
+ <DisplayName Locale="gle-IE">Féilire-Ref</DisplayName>
+ <DisplayName Locale="eng-GB">Calendar-Ref</DisplayName>
+ <DisplayName Locale="lav-LV">Kalendārs-Ref</DisplayName>
+ </DisplayNames>
+ <Icons>
+ <Icon Section="MainMenu" Type="Xhigh">mainmenu.png</Icon>
+ </Icons>
+ <AppControls>
+ <AppControl>
+ <Operation>http://tizen.org/appcontrol/operation/configure</Operation>
+ <Operation>http://tizen.org/appcontrol/operation/pick</Operation>
+ <Operation>http://tizen.org/appcontrol/operation/view</Operation>
+ </AppControl>
+ </AppControls>
+ <LaunchConditions/>
+ <Notifications/>
+ </UiApp>
+ </Apps>
+</Manifest>
--- /dev/null
+Name: apps.Calendar
+Summary: Calendar application
+Version: 1.0.0
+Release: 1
+Group: TO_BE/FILLED_IN
+License: Flora License, Version 1.0
+Source0: %{name}-%{version}.tar.gz
+BuildRequires: cmake
+BuildRequires: pkgconfig(osp-appfw)
+BuildRequires: pkgconfig(osp-uifw)
+BuildRequires: pkgconfig(osp-social)
+
+%description
+Calendar application
+
+%prep
+%setup -q
+
+%build
+MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
+%ifarch %{ix86}
+CXXFLAGS="$CXXFLAGS -D_OSP_DEBUG_ -D_OSP_X86_ -D_OSP_EMUL_" cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DFULLVER=%{version} -DMAJORVER=${MAJORVER}
+%else
+CXXFLAGS="$CXXFLAGS -D_OSP_DEBUG_ -D_OSP_ARMEL_" cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DFULLVER=%{version} -DMAJORVER=${MAJORVER}
+%endif
+
+# Call make instruction with smp support
+make %{?jobs:-j%jobs}
+
+%install
+rm -rf %{buildroot}
+%make_install
+
+%post
+/sbin/ldconfig
+PKG_ID=ph1vq2phrp
+echo "/usr/etc/package-manager/backend/tpk -i /usr/apps/"${PKG_ID}
+/usr/etc/package-manager/backend/tpk -i /usr/apps/${PKG_ID}
+cp -f /usr/lib/osp/osp-ui-app-loader /usr/apps/${PKG_ID}/bin/Calendar
+
+%postun
+/sbin/ldconfig
+PKG_ID=ph1vq2phrp
+echo "/usr/etc/package-manager/backend/tpk -u "${PKG_ID}
+/usr/etc/package-manager/backend/tpk -u ${PKG_ID}
+
+%files
+%defattr(-,root,root,-)
+/usr/apps/*
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">لا شيء</text>
+ <text id="IDS_COM_SK4_SHARE">مشاركة</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">تم تحديد %d</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">اختيار الكل</text>
+ <text id="IDS_COM_POP_CLOSE">إغلاق</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">مسح؟</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">طوال هذا الشهر</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">قبل يوم واحد</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">غير هامة</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">كل أسبوع</text>
+ <text id="IDS_COM_BODY_JANUARY">01</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">قبل</text>
+ <text id="IDS_COM_BODY_FEBRUARY">02</text>
+ <text id="IDS_COM_BODY_JULY">07</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">عرض رقم الأسبوع</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">البلوتوث</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">لا يوجد عنوان</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">إضافة حساب</text>
+ <text id="IDS_CLD_SK3_CREATE">إنشاء</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">توقيت غير صحيح</text>
+ <text id="IDS_CLD_BODY_LIST">اللائحة</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">هذا الحدث فقط</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">بحث</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">رسالة</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">08</text>
+ <text id="IDS_COM_BODY_MAY">05</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">جميع الأحداث المتكررة</text>
+ <text id="IDS_COM_BODY_OCTOBER">10</text>
+ <text id="IDS_COM_POP_TIMES_LC">الأوقات</text>
+ <text id="IDS_CLD_SK_CANCEL">إلغاء</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">تمت</text>
+ <text id="IDS_CLD_BODY_PRIORITY">الأولوية</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">بريد إلكتروني</text>
+ <text id="IDS_COM_BODY_HIGH">عالي</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">قبل يومين</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">فشلت العملية</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">مدة التكرار غير صحيحة</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">تعديل الحدث</text>
+ <text id="IDS_CLD_BODY_START_TIME">وقت البدء</text>
+ <text id="IDS_CLD_BODY_REPEAT">التكرار</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">قبل 5 دقائق</text>
+ <text id="IDS_CLD_SK3_EDIT">تعديل</text>
+ <text id="IDS_CLD_BODY_END_TIME">وقت الانتهاء</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">تثبيت المنطقة الزمنية</text>
+ <text id="IDS_CLD_BODY_OFF">غير مفعل</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">اختيار</text>
+ <text id="IDS_CLD_OPT_DELETE">حذف</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">تاريخ الانتهاء</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">حذف حدث</text>
+ <text id="IDS_ST_BODY_SAVE_TO">حفظ في</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">أسبوع (أسابيع)</text>
+ <text id="IDS_COM_BODY_NOVEMBER">11</text>
+ <text id="IDS_CLD_BODY_SUNDAY">أحد</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">قبل أسبوع واحد</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">إنشاء حدث</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">يوم</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">استيراد الأحداث/المهام</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">04</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">طوال هذا اليوم</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">كل أسبوعين</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">كل التقويمات</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">قبل ساعة واحدة</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">قم بتثبيت أوقات الأحداث وتواريخها على المنطقة الزمنية المحددة أدناه. لن تتغير الأوقات والتواريخ حتى إذا انتقلت إلى منطقة زمنية أخرى</text>
+ <text id="IDS_CLD_BODY_YEAR">سنة</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">جميع الأحداث قبل اليوم</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">تصدير الأحداث/المهام</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">09</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">كرر إلى</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">طوال هذا العام</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">قبل 15 دقيقة</text>
+ <text id="IDS_CLD_BODY_LOCATION">الموقع</text>
+ <text id="IDS_CLD_BODY_MONDAY">إثنين</text>
+ <text id="IDS_CLD_BODY_ON_TIME">فى الميعاد</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">كل 3 أيام</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">كل سنة</text>
+ <text id="IDS_COM_BODY_DECEMBER">12</text>
+ <text id="IDS_CLD_HEADER_DELETE">حذف</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">سيتم حذف هذا الحدث</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">إضافة إلى تقويم</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">لا توجد أحداث</text>
+ <text id="IDS_CLD_BODY_CALENDAR">التقويم</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">الشرح</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">طوال اليوم</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">المنطقة الزمنية</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">يوم (أيام)</text>
+ <text id="IDS_CLD_BUTTON_DELETE">حذف</text>
+ <text id="IDS_CLD_OPT_EDIT">تعديل</text>
+ <text id="IDS_COM_POP_AM_M_ABB">ص</text>
+ <text id="IDS_CLD_BODY_TITLE">العنوان</text>
+ <text id="IDS_CLD_TAB4_MONTH">شهر</text>
+ <text id="IDS_CLD_SK3_DELETE">مسح</text>
+ <text id="IDS_COM_POP_PM_M_ABB">م</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">03</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">أول يوم في الأسبوع</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">كل شهر</text>
+ <text id="IDS_CLD_BODY_REMINDER">تذكير</text>
+ <text id="IDS_COM_BODY_JUNE">06</text>
+ <text id="IDS_CST_BODY_NOTICE">إشعار</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">لا توجد عناصر</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">كل يوم</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">فشل الحفظ</text>
+ <text id="IDS_CLD_SK_SAVE">حفظ</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Yoxdur</text>
+ <text id="IDS_COM_SK4_SHARE">Paylaş</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d seçilmişdir</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Hamısını seç</text>
+ <text id="IDS_COM_POP_CLOSE">Bağla</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Silinsin?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Bütün bu ayı</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 gün əvvəl</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Alçaq</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">Hər həftə</text>
+ <text id="IDS_COM_BODY_JANUARY">Yanvar</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">əvvəl</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Fevral</text>
+ <text id="IDS_COM_BODY_JULY">İyul</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Həftənin nömrəsini göstər</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Başlıq yoxdur</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Hesab əlavə edin</text>
+ <text id="IDS_CLD_SK3_CREATE">Yarat</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Yanlış zaman</text>
+ <text id="IDS_CLD_BODY_LIST">Siyahı</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Yalnız bu tədbir</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Axtarış</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Mesaj</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">Avqust</text>
+ <text id="IDS_COM_BODY_MAY">May</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Bütün təkrarlanan hadisələr</text>
+ <text id="IDS_COM_BODY_OCTOBER">Oktyabr</text>
+ <text id="IDS_COM_POP_TIMES_LC">dəfə</text>
+ <text id="IDS_CLD_SK_CANCEL">Ləğv et</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">Bitdi</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Üstünlük</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">Elektron poçtlar</text>
+ <text id="IDS_COM_BODY_HIGH">Yüksək</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 gün əvvəl</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Əməliyyat alınmadı</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Yanlış təkrarlama müddəti</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Tədbir redaktə edin</text>
+ <text id="IDS_CLD_BODY_START_TIME">Başlama vaxtı</text>
+ <text id="IDS_CLD_BODY_REPEAT">Təkrar et</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 dəqiqə əvvəl</text>
+ <text id="IDS_CLD_SK3_EDIT">Redaktə et</text>
+ <text id="IDS_CLD_BODY_END_TIME">Bitmə vaxtı</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Saat qurşağını kilidlə</text>
+ <text id="IDS_CLD_BODY_OFF">Söndür</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Göndər</text>
+ <text id="IDS_CLD_OPT_DELETE">Sil</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Vədə tarixi</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Tədbir silinsin</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Yaddaşa yazma yer</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">həftə(lər)</text>
+ <text id="IDS_COM_BODY_NOVEMBER">Noyabr</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Bazar günü</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 həftə əvvəl</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Hadisə yarat</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Gün</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Tədb./tapşır.ı idxal et</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">Aprel</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Bütün bu günü</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">Hər 2 həftədən bir</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Bütün təqvim</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 saat əvvəl</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Hadisə vaxtlarını və tarixlərini aşağıda seçilmiş saat qurşağınıza kilidləyin. Hətta başqa saat qurşağına keçsəniz belə, vaxt və tarixlər dəyişməyəcək</text>
+ <text id="IDS_CLD_BODY_YEAR">İl</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Bugünə qədər olan bütün hadisələr</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Tədb./tapşır.ı ixrac et</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">Sentyabr</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Bunadək təkrar et</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Bütün bu ili</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 dəqiqə əvvəl</text>
+ <text id="IDS_CLD_BODY_LOCATION">Yerləşmə</text>
+ <text id="IDS_CLD_BODY_MONDAY">Bazar ertəsi</text>
+ <text id="IDS_CLD_BODY_ON_TIME">Vaxtında</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">Hər 3 gündən bir</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Hər il</text>
+ <text id="IDS_COM_BODY_DECEMBER">Dekabr</text>
+ <text id="IDS_CLD_HEADER_DELETE">Sil</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">Bu tədbir silinəcək</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Təqvimə əlavə edin</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">Hadisə yoxdur</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Təqvim</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Təsvir</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Bütün günü</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Vaxt zonası</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">gün(lər)</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Sil</text>
+ <text id="IDS_CLD_OPT_EDIT">Redaktə et</text>
+ <text id="IDS_COM_POP_AM_M_ABB">Günortadan əvvəl</text>
+ <text id="IDS_CLD_BODY_TITLE">Başlıq</text>
+ <text id="IDS_CLD_TAB4_MONTH">Ay</text>
+ <text id="IDS_CLD_SK3_DELETE">Sil</text>
+ <text id="IDS_COM_POP_PM_M_ABB">Günortadan sonra</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">Mart</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">Həftənin ilk günü</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">Hər ay</text>
+ <text id="IDS_CLD_BODY_REMINDER">Xatırladıcı</text>
+ <text id="IDS_COM_BODY_JUNE">İyun</text>
+ <text id="IDS_CST_BODY_NOTICE">Qeyd</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Elementlər yoxdur</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">Hər gün</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Yaddaşa yazmaq mümkün olmadı</text>
+ <text id="IDS_CLD_SK_SAVE">Yaddaşa yaz</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Няма</text>
+ <text id="IDS_COM_SK4_SHARE">Сподели</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d избрани</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Избери всички</text>
+ <text id="IDS_COM_POP_CLOSE">Затваряне</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Изтриване?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Всичко от този месец</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 ден преди</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Hисък</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">всяка седмица</text>
+ <text id="IDS_COM_BODY_JANUARY">Януари</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">преди</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Февруари</text>
+ <text id="IDS_COM_BODY_JULY">Юли</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Показване на номера на седмицата</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Няма заглавие</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Добавяне на акаунт</text>
+ <text id="IDS_CLD_SK3_CREATE">Създай</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Невалидно време</text>
+ <text id="IDS_CLD_BODY_LIST">Списък</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Само това събитие</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Търсене</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Съобщение</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">Август</text>
+ <text id="IDS_COM_BODY_MAY">Май</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Всички повтарящи се събития</text>
+ <text id="IDS_COM_BODY_OCTOBER">Октомври</text>
+ <text id="IDS_COM_POP_TIMES_LC">пъти</text>
+ <text id="IDS_CLD_SK_CANCEL">Отмени</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">Готово</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Приоритет</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">Email</text>
+ <text id="IDS_COM_BODY_HIGH">Висок</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 дни по-рано</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Операцията е неуспешна</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Невалиден период на повторение</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Редактиране на събитие</text>
+ <text id="IDS_CLD_BODY_START_TIME">Начално време</text>
+ <text id="IDS_CLD_BODY_REPEAT">Повтори</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 мин. по-рано</text>
+ <text id="IDS_CLD_SK3_EDIT">Редактиране</text>
+ <text id="IDS_CLD_BODY_END_TIME">Краен час</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Заключване на часова зона</text>
+ <text id="IDS_CLD_BODY_OFF">Изключено</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Избери</text>
+ <text id="IDS_CLD_OPT_DELETE">Изтриване</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Крайна дата</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Изтриване на събитие</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Запази в</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">седмици</text>
+ <text id="IDS_COM_BODY_NOVEMBER">Ноември</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Неделя</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 седмица преди</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Създаване на събитие</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Ден</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Импорт. събития/задачи</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">Април</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Всичко от този ден</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">На всеки 2 седмици</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Целия календар</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 час преди</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Заключване на часовете и датите на събитията към избраната от вас часова зона по-долу. Часовете и датите на събитията няма да се променят, дори да се придвижите в друг часови пояс</text>
+ <text id="IDS_CLD_BODY_YEAR">Година</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Всички събития преди днес</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Експор. събития/задачи</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">Септември</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Повтаряне докато</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Всичко от тази година</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 мин по-рано</text>
+ <text id="IDS_CLD_BODY_LOCATION">Позиция</text>
+ <text id="IDS_CLD_BODY_MONDAY">Понеделник</text>
+ <text id="IDS_CLD_BODY_ON_TIME">Време включване</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">На всеки 3 дни</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">всяка година</text>
+ <text id="IDS_COM_BODY_DECEMBER">Декември</text>
+ <text id="IDS_CLD_HEADER_DELETE">Изтриване</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">Това събитие ще бъде изтрито</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Добави в календара</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">Няма събития</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Календар</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Описание</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Цял ден</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Часова зона</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">дни</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Изтрий</text>
+ <text id="IDS_CLD_OPT_EDIT">Редактиране</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_CLD_BODY_TITLE">Заглавие</text>
+ <text id="IDS_CLD_TAB4_MONTH">Месец</text>
+ <text id="IDS_CLD_SK3_DELETE">Изтрий</text>
+ <text id="IDS_COM_POP_PM_M_ABB">PM</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">Март</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">Първи ден на седмицата</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">всеки месец</text>
+ <text id="IDS_CLD_BODY_REMINDER">Напомняне</text>
+ <text id="IDS_COM_BODY_JUNE">Юни</text>
+ <text id="IDS_CST_BODY_NOTICE">Известие</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Няма елементи</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">Всеки ден</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Запазване неуспешно</text>
+ <text id="IDS_CLD_SK_SAVE">Запази</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Cap</text>
+ <text id="IDS_COM_SK4_SHARE">Comp</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d seleccionat</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Seleccioni-ho tot</text>
+ <text id="IDS_COM_POP_CLOSE">Tancar</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Esborrar?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Tot el mes</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 dia abans</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Baixa</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">Cada setmana</text>
+ <text id="IDS_COM_BODY_JANUARY">Gener</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">abans</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Febrer</text>
+ <text id="IDS_COM_BODY_JULY">Juliol</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Mostrar el número de setmana</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Sense títol</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Afegir compte</text>
+ <text id="IDS_CLD_SK3_CREATE">Crear</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Hora no vàlida</text>
+ <text id="IDS_CLD_BODY_LIST">Llista</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Només aquest esdeveniment</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Cercar</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Missatge</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">Agost</text>
+ <text id="IDS_COM_BODY_MAY">Maig</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Tots els esdeveniments repetitius</text>
+ <text id="IDS_COM_BODY_OCTOBER">Octubre</text>
+ <text id="IDS_COM_POP_TIMES_LC">vegades</text>
+ <text id="IDS_CLD_SK_CANCEL">Cancel·lar</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">Finalit.</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Prioritat</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">Correu electrònic</text>
+ <text id="IDS_COM_BODY_HIGH">Alta</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 dies abans</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Operació fallida</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Període repetició no vàlid</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Editar esdeveniment</text>
+ <text id="IDS_CLD_BODY_START_TIME">Hora d'inici</text>
+ <text id="IDS_CLD_BODY_REPEAT">Repetir</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 min abans</text>
+ <text id="IDS_CLD_SK3_EDIT">Editar</text>
+ <text id="IDS_CLD_BODY_END_TIME">Hora finalització</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Bloquejar zona horària</text>
+ <text id="IDS_CLD_BODY_OFF">Desactivat</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Selec.</text>
+ <text id="IDS_CLD_OPT_DELETE">Esborrar</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Data de venciment</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Esborrar esdeveniment</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Desar a</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">setmana(es)</text>
+ <text id="IDS_COM_BODY_NOVEMBER">Novembre</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Diumenge</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 setmana abans</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Crear esdeveniment</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Dia</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Importar esdev/tasques</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">Abril</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Tot el dia</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">Cada 2 setmanes</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Tot el calendari</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 hora abans</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Bloquegi les dates i hores dels esdeveniments a la zona horària seleccionada a sota. Les dates i hores no es canviaran encara que les mogui a una altra zona horària</text>
+ <text id="IDS_CLD_BODY_YEAR">Any</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Tots els esdeveniments anteriors a avui</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Exportar esdev/tasques</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">Setembre</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Repetir fins</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Tot l'any</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 min abans</text>
+ <text id="IDS_CLD_BODY_LOCATION">Ubicació</text>
+ <text id="IDS_CLD_BODY_MONDAY">Dilluns</text>
+ <text id="IDS_CLD_BODY_ON_TIME">A l'hora</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">Cada 3 dies</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Cada any</text>
+ <text id="IDS_COM_BODY_DECEMBER">Desembre</text>
+ <text id="IDS_CLD_HEADER_DELETE">Esborrar</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">S'esborrarà aquest esdeveniment</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Afegir al calendari</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">No hi ha cap esdeveniment</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Calendari</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Descripció</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Tot el dia</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Zona horària</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">dia(dies)</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Esborr</text>
+ <text id="IDS_CLD_OPT_EDIT">Editar</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_CLD_BODY_TITLE">Títol</text>
+ <text id="IDS_CLD_TAB4_MONTH">Mes</text>
+ <text id="IDS_CLD_SK3_DELETE">Esborrar</text>
+ <text id="IDS_COM_POP_PM_M_ABB">PM</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">Març</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">Primer dia de la setmana</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">Cada mes</text>
+ <text id="IDS_CLD_BODY_REMINDER">Recordatori</text>
+ <text id="IDS_COM_BODY_JUNE">Juny</text>
+ <text id="IDS_CST_BODY_NOTICE">Avís</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">No hi ha elements</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">Cada dia</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Error en desar</text>
+ <text id="IDS_CLD_SK_SAVE">Desar</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Žádný</text>
+ <text id="IDS_COM_SK4_SHARE">Sdílet</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">Vybráno %d</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Vybrat vše</text>
+ <text id="IDS_COM_POP_CLOSE">Zavřít</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Odstranit?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Celý měsíc</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 den před</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Nízká</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">každý týden</text>
+ <text id="IDS_COM_BODY_JANUARY">Leden</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">před</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Únor</text>
+ <text id="IDS_COM_BODY_JULY">Červenec</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Zobrazit číslo týdne</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Žádný název</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Přidat účet</text>
+ <text id="IDS_CLD_SK3_CREATE">Vytv.</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Chybný čas</text>
+ <text id="IDS_CLD_BODY_LIST">Seznam</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Pouze tuto událost</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Hledat</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Zpráva</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">Srpen</text>
+ <text id="IDS_COM_BODY_MAY">Kvě</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Všechny opakované události</text>
+ <text id="IDS_COM_BODY_OCTOBER">Říjen</text>
+ <text id="IDS_COM_POP_TIMES_LC">krát</text>
+ <text id="IDS_CLD_SK_CANCEL">Zrušit</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">Hotovo</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Důležitost</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">E-mail</text>
+ <text id="IDS_COM_BODY_HIGH">Vysoká</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 dny před</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Otevření se nezdařilo</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Chybná perioda\nopakování</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Upravit událost</text>
+ <text id="IDS_CLD_BODY_START_TIME">Čas zahájení</text>
+ <text id="IDS_CLD_BODY_REPEAT">Opakovat</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 min. předem</text>
+ <text id="IDS_CLD_SK3_EDIT">Upravit</text>
+ <text id="IDS_CLD_BODY_END_TIME">Čas ukončení</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Zamknout časové pásmo</text>
+ <text id="IDS_CLD_BODY_OFF">Vyp</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Vybrat</text>
+ <text id="IDS_CLD_OPT_DELETE">Odstranit</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Termín</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Odstranit událost</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Uložit do</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">týdny</text>
+ <text id="IDS_COM_BODY_NOVEMBER">Listopad</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Neděle</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 týden před</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Vytvořit událost</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Den</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Import událostí/úkolů</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">Duben</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Celý den</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">Každé 2 týdny</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Celý kalendář</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 hodinu před</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Můžete svázat časy a data událostí s vybraným časovým pásmem. Časy a data se nezmění, ani když se přesunete do jiného časového pásma</text>
+ <text id="IDS_CLD_BODY_YEAR">Rok</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Všechny události do dneška</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Export událostí/úkolů</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">Září</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Opakovat do</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Celý rok</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 minut před</text>
+ <text id="IDS_CLD_BODY_LOCATION">Místo</text>
+ <text id="IDS_CLD_BODY_MONDAY">Pondělí</text>
+ <text id="IDS_CLD_BODY_ON_TIME">S časem</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">Každé 3 dny</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Každý rok</text>
+ <text id="IDS_COM_BODY_DECEMBER">Prosinec</text>
+ <text id="IDS_CLD_HEADER_DELETE">Odstranit</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">Událost bude odstraněna</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Přidat do Kalendáře</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">Žádné události</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Kalendář</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Popis</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Celodenní</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Časové pásmo</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">Den(dny)</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Odstr.</text>
+ <text id="IDS_CLD_OPT_EDIT">Upravit</text>
+ <text id="IDS_COM_POP_AM_M_ABB">dop.</text>
+ <text id="IDS_CLD_BODY_TITLE">Název</text>
+ <text id="IDS_CLD_TAB4_MONTH">Měsíc</text>
+ <text id="IDS_CLD_SK3_DELETE">Odstranit</text>
+ <text id="IDS_COM_POP_PM_M_ABB">odp.</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">Březen</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">První den týdne</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">každý měsíc</text>
+ <text id="IDS_CLD_BODY_REMINDER">Připomenutí</text>
+ <text id="IDS_COM_BODY_JUNE">Červen</text>
+ <text id="IDS_CST_BODY_NOTICE">Poznámka</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Žádné položky</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">každý den</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Uložení se nezdařilo</text>
+ <text id="IDS_CLD_SK_SAVE">Uložit</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Ingen</text>
+ <text id="IDS_COM_SK4_SHARE">Del</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d valgt</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Vælg alle</text>
+ <text id="IDS_COM_POP_CLOSE">Luk</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Slet?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Hele denne måned</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 dag før</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Lav</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">hver uge</text>
+ <text id="IDS_COM_BODY_JANUARY">Januar</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">før</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Februar</text>
+ <text id="IDS_COM_BODY_JULY">Juli</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Vis ugenummer</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Ingen titel</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Tilføj konto</text>
+ <text id="IDS_CLD_SK3_CREATE">Opret</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Ugyldigt tid</text>
+ <text id="IDS_CLD_BODY_LIST">Liste</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Kun denne begivenhed</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Søg</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Meddelelse</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">August</text>
+ <text id="IDS_COM_BODY_MAY">Maj</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Alle gentagende begivenheder</text>
+ <text id="IDS_COM_BODY_OCTOBER">Oktober</text>
+ <text id="IDS_COM_POP_TIMES_LC">gange</text>
+ <text id="IDS_CLD_SK_CANCEL">Annullér</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">Udført</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Prioritet</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">E-mail</text>
+ <text id="IDS_COM_BODY_HIGH">Høj</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 dage før</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Handlingen mislykkedes</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Ugyldig\ngentagelsesperiode</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Redigér begivenhed</text>
+ <text id="IDS_CLD_BODY_START_TIME">Starttid</text>
+ <text id="IDS_CLD_BODY_REPEAT">Gentag</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 min. før</text>
+ <text id="IDS_CLD_SK3_EDIT">Redigér</text>
+ <text id="IDS_CLD_BODY_END_TIME">Sluttidspunkt</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Lås tidszone</text>
+ <text id="IDS_CLD_BODY_OFF">Fra</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Vælg</text>
+ <text id="IDS_CLD_OPT_DELETE">Slet</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Forfaldsdato</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Slet begivenhed</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Gem på</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">uge(r)</text>
+ <text id="IDS_COM_BODY_NOVEMBER">November</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Søndag</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 uge før</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Opret hændelse</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Dag</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Importér beg./opgaver</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">April</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Hele dagen</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">Hver 2. uge</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Alle kalendere</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 time før</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Lås klokkesæt og datoer for begivenheder til din valgte tidszone herunder. Klokkeslæt og datoer ændres ikke, selv om du flytter til en anden tidszone</text>
+ <text id="IDS_CLD_BODY_YEAR">År</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Alle begivenheder før i dag</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Eksportér beg./opgaver</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">September</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Gentag indtil</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Hele dette år</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 min før</text>
+ <text id="IDS_CLD_BODY_LOCATION">Placering</text>
+ <text id="IDS_CLD_BODY_MONDAY">Mandag</text>
+ <text id="IDS_CLD_BODY_ON_TIME">Til tiden</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">Hver 3. dag</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Hvert år</text>
+ <text id="IDS_COM_BODY_DECEMBER">December</text>
+ <text id="IDS_CLD_HEADER_DELETE">Slet</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">Denne begivenhed vil blive slettet</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Føj til kalender</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">Ingen begivenheder</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Kalender</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Beskrivelse</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Hele dagen</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Tidszone</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">Dag(e)</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Slet</text>
+ <text id="IDS_CLD_OPT_EDIT">Redigér</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_CLD_BODY_TITLE">Titel</text>
+ <text id="IDS_CLD_TAB4_MONTH">Måned</text>
+ <text id="IDS_CLD_SK3_DELETE">Slet</text>
+ <text id="IDS_COM_POP_PM_M_ABB">PM</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">Marts</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">Første dag i ugen</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">hver måned</text>
+ <text id="IDS_CLD_BODY_REMINDER">Påmindelse</text>
+ <text id="IDS_COM_BODY_JUNE">Juni</text>
+ <text id="IDS_CST_BODY_NOTICE">Bemærkning</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Ingen elementer</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">hver dag</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Kunne ikke gemme</text>
+ <text id="IDS_CLD_SK_SAVE">Gem</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Ohne</text>
+ <text id="IDS_COM_SK4_SHARE">Senden</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d ausgewählt</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Alle auswählen</text>
+ <text id="IDS_COM_POP_CLOSE">Schließen</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Löschen?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Alle in diesem Monat</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 Tag vorher</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Niedrig</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">Jede Woche</text>
+ <text id="IDS_COM_BODY_JANUARY">Januar</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">vorher</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Februar</text>
+ <text id="IDS_COM_BODY_JULY">Juli</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Wochennummer anzeigen</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Kein Titel</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Konto hinzufügen</text>
+ <text id="IDS_CLD_SK3_CREATE">Erstellen</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Ungültige Zeit</text>
+ <text id="IDS_CLD_BODY_LIST">Liste</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Nur dieses Ereignis</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Suche</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Nachricht</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">August</text>
+ <text id="IDS_COM_BODY_MAY">Mai</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Alle sich wiederholenden Ereignisse</text>
+ <text id="IDS_COM_BODY_OCTOBER">Oktober</text>
+ <text id="IDS_COM_POP_TIMES_LC">mal</text>
+ <text id="IDS_CLD_SK_CANCEL">Abbrechen</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">OK</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Priorität</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">E-Mail</text>
+ <text id="IDS_COM_BODY_HIGH">Hoch</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 Tage vorher</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Vorgang fehlgeschlagen</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Ungültiger Wieder-\nholungszeitraum</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Ereignis bearbeiten</text>
+ <text id="IDS_CLD_BODY_START_TIME">Startzeit</text>
+ <text id="IDS_CLD_BODY_REPEAT">Wiederholen</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 Min. vorher</text>
+ <text id="IDS_CLD_SK3_EDIT">Bearbeiten</text>
+ <text id="IDS_CLD_BODY_END_TIME">Endzeit</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Zeitzone festlegen</text>
+ <text id="IDS_CLD_BODY_OFF">Aus</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Auswählen</text>
+ <text id="IDS_CLD_OPT_DELETE">Löschen</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Fälligkeitstag</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Ereignis löschen</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Speichern in</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">Woche(n)</text>
+ <text id="IDS_COM_BODY_NOVEMBER">November</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Sonntag</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 Woche vorher</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Ereignis erstellen</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Tag</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Ereignis/Aufgaben imp.</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">April</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Alle an diesem Tag</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">Alle 2 Wochen</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Alle Kalender</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 Stunde vorher</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Ereigniszeiten und -daten für die unten ausgewählte Zeitzone festlegen. Zeiten und Daten ändern sich nicht, auch wenn Sie in eine andere Zeitzone wechseln.</text>
+ <text id="IDS_CLD_BODY_YEAR">Jahr</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Alle Ereignisse vor heute</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Ereignis/Aufgaben exp.</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">September</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Wiederholen bis</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Alle in diesem Jahr</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 Minuten vorher</text>
+ <text id="IDS_CLD_BODY_LOCATION">Ort</text>
+ <text id="IDS_CLD_BODY_MONDAY">Montag</text>
+ <text id="IDS_CLD_BODY_ON_TIME">Pünktlich</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">Alle 3 Tage</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Jährlich</text>
+ <text id="IDS_COM_BODY_DECEMBER">Dezember</text>
+ <text id="IDS_CLD_HEADER_DELETE">Löschen</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">Dieses Ereignis wird gelöscht.</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Zu Kalender hinzufügen</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">Keine Ereignisse</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Kalender</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Beschreibung</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Ganzen Tag</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Zeitzone</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">Tag(e)</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Lösch.</text>
+ <text id="IDS_CLD_OPT_EDIT">Bearbeiten</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_CLD_BODY_TITLE">Titel</text>
+ <text id="IDS_CLD_TAB4_MONTH">Monat</text>
+ <text id="IDS_CLD_SK3_DELETE">Löschen</text>
+ <text id="IDS_COM_POP_PM_M_ABB">PM</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">März</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">Erster Tag der Woche</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">Monatlich</text>
+ <text id="IDS_CLD_BODY_REMINDER">Erinnerung</text>
+ <text id="IDS_COM_BODY_JUNE">Juni</text>
+ <text id="IDS_CST_BODY_NOTICE">Hinweis</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Keine Elemente</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">Täglich</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Speichern fehlgeschlagen</text>
+ <text id="IDS_CLD_SK_SAVE">Speichern</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Κανένα</text>
+ <text id="IDS_COM_SK4_SHARE">Κοινή χρήση</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d επιλέχθηκαν</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Επιλογή όλων</text>
+ <text id="IDS_COM_POP_CLOSE">Κλείσιμο</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Διαγραφή;</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Όλο το μήνα</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 ημέρα πριν</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Χαμηλή</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">κάθε εβδομάδα</text>
+ <text id="IDS_COM_BODY_JANUARY">Ιανουάριος</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">πριν</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Φεβρουάριος</text>
+ <text id="IDS_COM_BODY_JULY">Ιούλιος</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Εμφάνιση αριθμού εβδομάδας</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Χωρίς τίτλο</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Προσθήκη λογαριασμού</text>
+ <text id="IDS_CLD_SK3_CREATE">Δημ/ργία</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Μη έγκυρη ώρα</text>
+ <text id="IDS_CLD_BODY_LIST">Λίστα</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Μόνο αυτό το συμβάν</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Αναζήτηση</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Μήνυμα</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">Αύγουστος</text>
+ <text id="IDS_COM_BODY_MAY">Μάης</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Όλα τα επαναλαμβανόμενα συμβάντα</text>
+ <text id="IDS_COM_BODY_OCTOBER">Οκτώβριος</text>
+ <text id="IDS_COM_POP_TIMES_LC">φορές</text>
+ <text id="IDS_CLD_SK_CANCEL">Άκυρο</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">Τέλος</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Προτεραιότητα</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">Email</text>
+ <text id="IDS_COM_BODY_HIGH">Υψηλή</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 ημέρες πριν</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Λειτοσργία απέτστε</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Μη έγκυρη περίοδος\nεπανάληψης</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Επεξεργασία συμβάντος</text>
+ <text id="IDS_CLD_BODY_START_TIME">Ώρα έναρξης</text>
+ <text id="IDS_CLD_BODY_REPEAT">Επανάληψη</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 λεπτά πριν</text>
+ <text id="IDS_CLD_SK3_EDIT">Επεξεργ.</text>
+ <text id="IDS_CLD_BODY_END_TIME">Ώρα λήξης</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Κλείδωμα ζώνης ώρας</text>
+ <text id="IDS_CLD_BODY_OFF">Ανενεργό</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Επιλογή</text>
+ <text id="IDS_CLD_OPT_DELETE">Διαγραφή</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Προθεσμία</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Διαγραφή συμβάντος</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Αποθήκευση σε</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">εβδομάδα(ες)</text>
+ <text id="IDS_COM_BODY_NOVEMBER">Νοέμβριος</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Κυριακή</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 εβδομάδα πριν</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Δημιουργία συμβάντος</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Ημέρα</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Εισ. συμβάντων/εργασιών</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">Απρίλιος</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Όλη την ημέρα</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">Κάθε 2 βδομάδες</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Όλα τα ημερολόγια</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 ώρα πριν</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Κλείδωμα της ώρας και της ημερομηνίας του συμβάντος στη ζώνη ώρας που έχετε επιλέξει. Η ώρα και η ημερομηνία του συμβάντος δεν θα αλλάξουν ακόμα και αν μεταβείτε σε διαφορετική ζώνη ώρας</text>
+ <text id="IDS_CLD_BODY_YEAR">Έτος</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Όλα τα συμβάντα πριν από σήμερα</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Εξαγ.συμβάντων/εργασιών</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">Σεπτέμβριος</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Επανάληψη μέχρι</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Όλο το έτος</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">Πριν από 15 λεπτά</text>
+ <text id="IDS_CLD_BODY_LOCATION">Θέση</text>
+ <text id="IDS_CLD_BODY_MONDAY">Δευτέρα</text>
+ <text id="IDS_CLD_BODY_ON_TIME">Έγκαιρα</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">Κάθε 3 ημέρες</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Κάθε χρόνο</text>
+ <text id="IDS_COM_BODY_DECEMBER">Δεκέμβριος</text>
+ <text id="IDS_CLD_HEADER_DELETE">Διαγραφή</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">Αυτό το συμβάν θα διαγραφεί</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Προσθήκη στο ημερολόγιο</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">Κανένα συμβάν</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Ημερολόγιο</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Περιγραφή</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Ολοήμερο</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Ζώνη ώρας</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">Ημέρα(ες)</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Διαγρ.</text>
+ <text id="IDS_CLD_OPT_EDIT">Επεξεργασία</text>
+ <text id="IDS_COM_POP_AM_M_ABB">ΠΜ</text>
+ <text id="IDS_CLD_BODY_TITLE">Τίτλος</text>
+ <text id="IDS_CLD_TAB4_MONTH">Μήνας</text>
+ <text id="IDS_CLD_SK3_DELETE">Διαγραφή</text>
+ <text id="IDS_COM_POP_PM_M_ABB">ΜΜ</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">Μάρτιος</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">Πρώτη ημέρα της εβδομάδας</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">κάθε μήνα</text>
+ <text id="IDS_CLD_BODY_REMINDER">Υπενθύμιση</text>
+ <text id="IDS_COM_BODY_JUNE">Ιούνιος</text>
+ <text id="IDS_CST_BODY_NOTICE">Ειδοποίηση</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Κανένα στοιχείο</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">κάθε μέρα</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Αποτστία αποθήκεσσης</text>
+ <text id="IDS_CLD_SK_SAVE">Αποθ/ση</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">None</text>
+ <text id="IDS_COM_SK4_SHARE">Share</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d selected</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Select all</text>
+ <text id="IDS_COM_POP_CLOSE">Close</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Delete?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">All this month</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 day before</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Low</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">Every week</text>
+ <text id="IDS_COM_BODY_JANUARY">January</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">before</text>
+ <text id="IDS_COM_BODY_FEBRUARY">February</text>
+ <text id="IDS_COM_BODY_JULY">July</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Show week number</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">No title</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Add account</text>
+ <text id="IDS_CLD_SK3_CREATE">Create</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Invalid time</text>
+ <text id="IDS_CLD_BODY_LIST">List</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Only this event</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Search</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Message</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">August</text>
+ <text id="IDS_COM_BODY_MAY">May</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">All repetitive events</text>
+ <text id="IDS_COM_BODY_OCTOBER">October</text>
+ <text id="IDS_COM_POP_TIMES_LC">times</text>
+ <text id="IDS_CLD_SK_CANCEL">Cancel</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">Done</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Priority</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">Email</text>
+ <text id="IDS_COM_BODY_HIGH">High</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 days before</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Operation failed</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Invalid repeat period</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Edit event</text>
+ <text id="IDS_CLD_BODY_START_TIME">Start time</text>
+ <text id="IDS_CLD_BODY_REPEAT">Repeat</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 mins before</text>
+ <text id="IDS_CLD_SK3_EDIT">Edit</text>
+ <text id="IDS_CLD_BODY_END_TIME">End time</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Lock time zone</text>
+ <text id="IDS_CLD_BODY_OFF">Off</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Select</text>
+ <text id="IDS_CLD_OPT_DELETE">Delete</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Due date</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Delete event</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Save to</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">week(s)</text>
+ <text id="IDS_COM_BODY_NOVEMBER">November</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Sunday</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 week before</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Create event</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Day</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Import events/tasks</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">April</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">All this day</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">Every 2 weeks</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">All calendar</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 hour before</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Lock event times and dates to your selected time zone below. Times and dates will not change even if you move to another time zone</text>
+ <text id="IDS_CLD_BODY_YEAR">Year</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">All events before today</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Export events/tasks</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">September</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Repeat until</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">All this year</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 mins before</text>
+ <text id="IDS_CLD_BODY_LOCATION">Location</text>
+ <text id="IDS_CLD_BODY_MONDAY">Monday</text>
+ <text id="IDS_CLD_BODY_ON_TIME">On time</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">Every 3 days</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Every year</text>
+ <text id="IDS_COM_BODY_DECEMBER">December</text>
+ <text id="IDS_CLD_HEADER_DELETE">Delete</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">This event will be deleted</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Add to Calendar</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">No events</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Calendar</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Description</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">All day</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Time zone</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">day(s)</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Delete</text>
+ <text id="IDS_CLD_OPT_EDIT">Edit</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_CLD_BODY_TITLE">Title</text>
+ <text id="IDS_CLD_TAB4_MONTH">Month</text>
+ <text id="IDS_CLD_SK3_DELETE">Delete</text>
+ <text id="IDS_COM_POP_PM_M_ABB">PM</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">March</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">First day of week</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">Every month</text>
+ <text id="IDS_CLD_BODY_REMINDER">Reminder</text>
+ <text id="IDS_COM_BODY_JUNE">June</text>
+ <text id="IDS_CST_BODY_NOTICE">Notice</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">No items</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">Every day</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Saving failed</text>
+ <text id="IDS_CLD_SK_SAVE">Save</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">None</text>
+ <text id="IDS_COM_SK4_SHARE">Share</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d selected</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Select all</text>
+ <text id="IDS_COM_POP_CLOSE">Close</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Delete?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">All this month</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 day before</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Low</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">Every week</text>
+ <text id="IDS_COM_BODY_JANUARY">January</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">before</text>
+ <text id="IDS_COM_BODY_FEBRUARY">February</text>
+ <text id="IDS_COM_BODY_JULY">July</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Show week number</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">No title</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Add account</text>
+ <text id="IDS_CLD_SK3_CREATE">Create</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Invalid time</text>
+ <text id="IDS_CLD_BODY_LIST">List</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Only this event</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Search</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Message</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">August</text>
+ <text id="IDS_COM_BODY_MAY">May</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">All repetitive events</text>
+ <text id="IDS_COM_BODY_OCTOBER">October</text>
+ <text id="IDS_COM_POP_TIMES_LC">times</text>
+ <text id="IDS_CLD_SK_CANCEL">Cancel</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">Done</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Priority</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">Email</text>
+ <text id="IDS_COM_BODY_HIGH">High</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 days before</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Operation failed</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Invalid repeat period</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Edit event</text>
+ <text id="IDS_CLD_BODY_START_TIME">Start time</text>
+ <text id="IDS_CLD_BODY_REPEAT">Repeat</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 mins before</text>
+ <text id="IDS_CLD_SK3_EDIT">Edit</text>
+ <text id="IDS_CLD_BODY_END_TIME">End time</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Lock time zone</text>
+ <text id="IDS_CLD_BODY_OFF">Off</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Select</text>
+ <text id="IDS_CLD_OPT_DELETE">Delete</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Due date</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Delete event</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Save to</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">week(s)</text>
+ <text id="IDS_COM_BODY_NOVEMBER">November</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Sunday</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 week before</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Create event</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Day</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Import events/tasks</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">April</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">All this day</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">Every 2 weeks</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">All calendar</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 hour before</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Lock times and dates of events to your selected time zone below. Times and dates will not change even if you move to another time zone</text>
+ <text id="IDS_CLD_BODY_YEAR">Year</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">All events before today</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Export events/tasks</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">September</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Repeat until</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">All this year</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 mins before</text>
+ <text id="IDS_CLD_BODY_LOCATION">Location</text>
+ <text id="IDS_CLD_BODY_MONDAY">Monday</text>
+ <text id="IDS_CLD_BODY_ON_TIME">On time</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">Every 3 days</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Every year</text>
+ <text id="IDS_COM_BODY_DECEMBER">December</text>
+ <text id="IDS_CLD_HEADER_DELETE">Delete</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">This event will be deleted</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Add to Calendar</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">No events</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Calendar</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Description</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">All day</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Time zone</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">day(s)</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Delete</text>
+ <text id="IDS_CLD_OPT_EDIT">Edit</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_CLD_BODY_TITLE">Title</text>
+ <text id="IDS_CLD_TAB4_MONTH">Month</text>
+ <text id="IDS_CLD_SK3_DELETE">Delete</text>
+ <text id="IDS_COM_POP_PM_M_ABB">PM</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">March</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">First day of week</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">Every month</text>
+ <text id="IDS_CLD_BODY_REMINDER">Reminder</text>
+ <text id="IDS_COM_BODY_JUNE">June</text>
+ <text id="IDS_CST_BODY_NOTICE">Notice</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">No items</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">Everyday</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Saving failed</text>
+ <text id="IDS_CLD_SK_SAVE">Save</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">None</text>
+ <text id="IDS_COM_SK4_SHARE">Share</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d selected</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Select all</text>
+ <text id="IDS_COM_POP_CLOSE">Close</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Delete?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">All this month</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 day before</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Low</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">Every week</text>
+ <text id="IDS_COM_BODY_JANUARY">January</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">before</text>
+ <text id="IDS_COM_BODY_FEBRUARY">February</text>
+ <text id="IDS_COM_BODY_JULY">July</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Show week number</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">No title</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Add account</text>
+ <text id="IDS_CLD_SK3_CREATE">Create</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Invalid time</text>
+ <text id="IDS_CLD_BODY_LIST">List</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Only this event</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Search</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Message</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">August</text>
+ <text id="IDS_COM_BODY_MAY">May</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">All repetitive events</text>
+ <text id="IDS_COM_BODY_OCTOBER">October</text>
+ <text id="IDS_COM_POP_TIMES_LC">times</text>
+ <text id="IDS_CLD_SK_CANCEL">Cancel</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">Done</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Priority</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">Email</text>
+ <text id="IDS_COM_BODY_HIGH">High</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 days before</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Operation failed</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Invalid repeat period</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Edit event</text>
+ <text id="IDS_CLD_BODY_START_TIME">Start time</text>
+ <text id="IDS_CLD_BODY_REPEAT">Repeat</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 min before</text>
+ <text id="IDS_CLD_SK3_EDIT">Edit</text>
+ <text id="IDS_CLD_BODY_END_TIME">End time</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Lock time zone</text>
+ <text id="IDS_CLD_BODY_OFF">Off</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Select</text>
+ <text id="IDS_CLD_OPT_DELETE">Delete</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Due date</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Delete event</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Save to</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">week(s)</text>
+ <text id="IDS_COM_BODY_NOVEMBER">November</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Sunday</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 week before</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Create event</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Day</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Import events/tasks</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">April</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">All this day</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">Every 2 weeks</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">All calendar</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 hour before</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Lock event times and dates to your selected time zone below. Times and dates will not change even if you move to another time zone</text>
+ <text id="IDS_CLD_BODY_YEAR">Year</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">All events before today</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Export events/tasks</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">September</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Repeat until </text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">All this year</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 mins before</text>
+ <text id="IDS_CLD_BODY_LOCATION">Location</text>
+ <text id="IDS_CLD_BODY_MONDAY">Monday</text>
+ <text id="IDS_CLD_BODY_ON_TIME">On time</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">Every 3 days</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Every year</text>
+ <text id="IDS_COM_BODY_DECEMBER">December</text>
+ <text id="IDS_CLD_HEADER_DELETE">Delete</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">This event will be deleted</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Add to Calendar</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">No events</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Calendar</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Description</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">All day</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Time zone</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">day(s)</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Delete</text>
+ <text id="IDS_CLD_OPT_EDIT">Edit</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_CLD_BODY_TITLE">Title</text>
+ <text id="IDS_CLD_TAB4_MONTH">Month</text>
+ <text id="IDS_CLD_SK3_DELETE">Delete</text>
+ <text id="IDS_COM_POP_PM_M_ABB">PM</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">March</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">First day of week</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">Every month</text>
+ <text id="IDS_CLD_BODY_REMINDER">Reminder</text>
+ <text id="IDS_COM_BODY_JUNE">June</text>
+ <text id="IDS_CST_BODY_NOTICE">Notice</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">No items</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">Every day</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Saving failed</text>
+ <text id="IDS_CLD_SK_SAVE">Save</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Puudub</text>
+ <text id="IDS_COM_SK4_SHARE">Jaga</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d valitud</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Vali kõik</text>
+ <text id="IDS_COM_POP_CLOSE">Sulge</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Kustutada?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Kogu käesolev kuu</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 päev varem</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Madal</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">Iga nädal</text>
+ <text id="IDS_COM_BODY_JANUARY">Jaanuar</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">enne</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Veebruar</text>
+ <text id="IDS_COM_BODY_JULY">Juuli</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Näita nädala numbrit</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Pealkirjata</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Lisa konto</text>
+ <text id="IDS_CLD_SK3_CREATE">Loo</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Vale kellaaeg</text>
+ <text id="IDS_CLD_BODY_LIST">Loend</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Ainult see sündmus</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Otsi</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Sõnum</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">August</text>
+ <text id="IDS_COM_BODY_MAY">Mai</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Kõik korduvad sündmused</text>
+ <text id="IDS_COM_BODY_OCTOBER">Oktoober</text>
+ <text id="IDS_COM_POP_TIMES_LC">korda</text>
+ <text id="IDS_CLD_SK_CANCEL">Tühista</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">Valmis</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Prioriteet</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">E-post</text>
+ <text id="IDS_COM_BODY_HIGH">Kõrge</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 päeva varem</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Toiming nurjus</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Lubamatu kordusaeg</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Muuda sündmust</text>
+ <text id="IDS_CLD_BODY_START_TIME">Alguskellaaeg</text>
+ <text id="IDS_CLD_BODY_REPEAT">Korda</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 min enne</text>
+ <text id="IDS_CLD_SK3_EDIT">Muuda</text>
+ <text id="IDS_CLD_BODY_END_TIME">Lõppkellaaeg</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Lukusta ajavöönd</text>
+ <text id="IDS_CLD_BODY_OFF">Väljas</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Vali</text>
+ <text id="IDS_CLD_OPT_DELETE">Kustuta</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Tähtaeg</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Kustuta sündmus</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Salvestuskoht</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">nädal(at)</text>
+ <text id="IDS_COM_BODY_NOVEMBER">November</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Pühapäev</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 nädal varem</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Loo sündmus</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Päev</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Impordi sündm./üles.</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">Aprill</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Kogu tänane päev</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">Iga 2 nädala järel</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Kogu kalender</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 tund varem</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Lukustage sündmuste kellaajad ja kuupäevad allpool valitud ajavööndile. Kellaajad ja kuupäevad ei muutu isegi siis, kui liigute teise ajavööndisse</text>
+ <text id="IDS_CLD_BODY_YEAR">Aasta</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Kõik sündmused enne tänast</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Ekspordi sündm./üles.</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">September</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Korda kuni</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Kogu käesolev aasta</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 minutit varem</text>
+ <text id="IDS_CLD_BODY_LOCATION">Asukoht</text>
+ <text id="IDS_CLD_BODY_MONDAY">Esmaspäev</text>
+ <text id="IDS_CLD_BODY_ON_TIME">Kellaajal</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">Iga 3 päeva järel</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Iga aasta</text>
+ <text id="IDS_COM_BODY_DECEMBER">Detsember</text>
+ <text id="IDS_CLD_HEADER_DELETE">Kustuta</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">See sündmus kustutatakse</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Lisa kalendrisse</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">Sündmusi pole</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Kalender</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Kirjeldus</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Terve päev</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Ajavöönd</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">päev(a)</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Kust.</text>
+ <text id="IDS_CLD_OPT_EDIT">Muuda</text>
+ <text id="IDS_COM_POP_AM_M_ABB">EL</text>
+ <text id="IDS_CLD_BODY_TITLE">Pealkiri</text>
+ <text id="IDS_CLD_TAB4_MONTH">Kuu</text>
+ <text id="IDS_CLD_SK3_DELETE">Kustuta</text>
+ <text id="IDS_COM_POP_PM_M_ABB">PL</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">Märts</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">Nädala esimene päev</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">Iga kuu</text>
+ <text id="IDS_CLD_BODY_REMINDER">Meeldetuletus</text>
+ <text id="IDS_COM_BODY_JUNE">Juuni</text>
+ <text id="IDS_CST_BODY_NOTICE">Teavitus</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Üksusi ei ole</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">Iga päev</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Salvestamine nurjus</text>
+ <text id="IDS_CLD_SK_SAVE">Salvesta</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Bat ere ez</text>
+ <text id="IDS_COM_SK4_SHARE">Partekatu</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d aukeratuta</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Denak aukeratu</text>
+ <text id="IDS_COM_POP_CLOSE">Itxi</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Ezabatu?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Hilabete osoa</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">Egun 1 lehenago</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Txikia</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">Astero</text>
+ <text id="IDS_COM_BODY_JANUARY">Urtarrila</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">lehenago</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Otsaila</text>
+ <text id="IDS_COM_BODY_JULY">Uztaila</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Erakutsi aste zenbakia</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Izenbururik ez</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Kontua gehitu</text>
+ <text id="IDS_CLD_SK3_CREATE">Sortu</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Ordu baliogabea</text>
+ <text id="IDS_CLD_BODY_LIST">Zerrenda</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Gertakari hau soilik</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Bilaketa</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Mezua</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">Abuztua</text>
+ <text id="IDS_COM_BODY_MAY">Maiatza</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Gertaera errepikakor guztiak</text>
+ <text id="IDS_COM_BODY_OCTOBER">Urria</text>
+ <text id="IDS_COM_POP_TIMES_LC">aldiz</text>
+ <text id="IDS_CLD_SK_CANCEL">Ezeztatu</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">Amaituta</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Lehentasuna</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">Posta elektroniko mezuak</text>
+ <text id="IDS_COM_BODY_HIGH">Handia</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 egun lehenago</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Eragiketak huts egin du</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Errepikatze aldi baliogabea</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Editatu gertaera</text>
+ <text id="IDS_CLD_BODY_START_TIME">Hasiera ordua</text>
+ <text id="IDS_CLD_BODY_REPEAT">Errepikatu</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 min lehenago</text>
+ <text id="IDS_CLD_SK3_EDIT">Editatu</text>
+ <text id="IDS_CLD_BODY_END_TIME">Amaiera ordua</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Blokeatu ordu eremua</text>
+ <text id="IDS_CLD_BODY_OFF">Desaktibatuta</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Aukeratu</text>
+ <text id="IDS_CLD_OPT_DELETE">Ezabatu</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Epemuga</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Ezabatu gertaera</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Hemen gorde</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">astea(k)</text>
+ <text id="IDS_COM_BODY_NOVEMBER">Azaroa</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Igandea</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">Aste 1 lehenago</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Sortu gertaera</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Eguna</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Inportatu gertaerak/atazak</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">Apirila</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Egun osoa</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">2 astero</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Egutegi osoa</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">Ordu 1 lehenago</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Blokeatu ordu-eremuak eta datak azpian hautatu duzun ordu-eremuaren arabera. Ordua eta data ez dira aldatuko, nahiz eta beste ordu eremu batera mugitu</text>
+ <text id="IDS_CLD_BODY_YEAR">Urtea</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Gaurko egunaren aurreko gertakari guztiak</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Esportatu gertaerak/atazak</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">Iraila</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Errepikatu honera arte:</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Urte osoa</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 min lehenago</text>
+ <text id="IDS_CLD_BODY_LOCATION">Kokalekua</text>
+ <text id="IDS_CLD_BODY_MONDAY">Astelehena</text>
+ <text id="IDS_CLD_BODY_ON_TIME">Garaiz</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">3 egunero</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Urtero</text>
+ <text id="IDS_COM_BODY_DECEMBER">Abendua</text>
+ <text id="IDS_CLD_HEADER_DELETE">Ezabatu</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">Gertaera hau ezabatu egingo da</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Gehitu egutegira</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">Gertaerarik ez</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Egutegia</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Deskribapena</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Egun osoa</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Ordu eremua</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">egun(ak)</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Ezab.</text>
+ <text id="IDS_CLD_OPT_EDIT">Editatu</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_CLD_BODY_TITLE">Izenburua</text>
+ <text id="IDS_CLD_TAB4_MONTH">Hila</text>
+ <text id="IDS_CLD_SK3_DELETE">Ezabatu</text>
+ <text id="IDS_COM_POP_PM_M_ABB">PM</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">Martxoa</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">Asteko lehen eguna</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">Hilero</text>
+ <text id="IDS_CLD_BODY_REMINDER">Gogorarazlea</text>
+ <text id="IDS_COM_BODY_JUNE">Ekaina</text>
+ <text id="IDS_CST_BODY_NOTICE">Oharra</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Elementurik ez</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">Egunero</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Errorea gordetzerakoan</text>
+ <text id="IDS_CLD_SK_SAVE">Gorde</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Ei mitään</text>
+ <text id="IDS_COM_SK4_SHARE">Jaa</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d valittu</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Valitse kaikki</text>
+ <text id="IDS_COM_POP_CLOSE">Sulje</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Poistetaanko?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Koko kuukausi</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 päivää ennen</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Matala</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">viikoittain</text>
+ <text id="IDS_COM_BODY_JANUARY">Tammikuu</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">ennen</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Helmikuu</text>
+ <text id="IDS_COM_BODY_JULY">Heinäkuu</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Näytä viikon numero</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Otsikko puuttuu</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Lisää tili</text>
+ <text id="IDS_CLD_SK3_CREATE">Luo</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Aika ei kelpaa</text>
+ <text id="IDS_CLD_BODY_LIST">Luettelo</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Vain tämä tapahtuma</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Hae</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Viesti</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">Elokuu</text>
+ <text id="IDS_COM_BODY_MAY">Toukokuu</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Kaikki toistuvat tapahtumat</text>
+ <text id="IDS_COM_BODY_OCTOBER">Lokakuu</text>
+ <text id="IDS_COM_POP_TIMES_LC">kertaa</text>
+ <text id="IDS_CLD_SK_CANCEL">Peruuta</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">Valmis</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Tärkeys</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">Sähköposti</text>
+ <text id="IDS_COM_BODY_HIGH">Korkea</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 päivää ennen</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Toiminto epäonnistui</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Virheellinen\ntoistoajankohta</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Muokkaa tapahtumaa</text>
+ <text id="IDS_CLD_BODY_START_TIME">Alkamisaika</text>
+ <text id="IDS_CLD_BODY_REPEAT">Toista</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 min ennen</text>
+ <text id="IDS_CLD_SK3_EDIT">Muokkaa</text>
+ <text id="IDS_CLD_BODY_END_TIME">Päättymisaika</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Lukitse aikavyöhyke</text>
+ <text id="IDS_CLD_BODY_OFF">Pois</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Valitse</text>
+ <text id="IDS_CLD_OPT_DELETE">Poista</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Määräpäivä</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Poista tapahtuma</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Tallenna paikkaan</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">viikkoa</text>
+ <text id="IDS_COM_BODY_NOVEMBER">Marraskuu</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Sunnuntai</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 viikkoa ennen</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Luo tapahtuma</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Päivä</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Tuo tapahtumat/tehtävät</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">Huhtikuu</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Koko päivä</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">Joka toinen viikko</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Koko kalenteri</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 tuntia ennen</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Lukitse tapahtumien kellonajat ja päivämäärät valitun aikavyöhykkeen mukaisiksi. Kellonajat ja päivämäärät eivät muutu, vaikka siirryt toiselle aikavyöhykkeelle</text>
+ <text id="IDS_CLD_BODY_YEAR">Vuosi</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Kaikki tapahtumat ennen tätä päivää</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Vie tapahtumat/tehtävät</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">Syyskuu</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Toista asti</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Koko vuosi</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 minuuttia ennen</text>
+ <text id="IDS_CLD_BODY_LOCATION">Paikka</text>
+ <text id="IDS_CLD_BODY_MONDAY">Maanantai</text>
+ <text id="IDS_CLD_BODY_ON_TIME">Ajallaan</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">Joka kolmas päivä</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Vuosittain</text>
+ <text id="IDS_COM_BODY_DECEMBER">Joulukuu</text>
+ <text id="IDS_CLD_HEADER_DELETE">Poista</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">Tämä tapahtuma poistetaan</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Lisää kalenteriin</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">Ei tapahtumia</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Kalenteri</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Kuvaus</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Koko päivä</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Aikavyöhyke</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">päivä(ä)</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Poista</text>
+ <text id="IDS_CLD_OPT_EDIT">Muokkaa</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AP</text>
+ <text id="IDS_CLD_BODY_TITLE">Otsikko</text>
+ <text id="IDS_CLD_TAB4_MONTH">Kuukausi</text>
+ <text id="IDS_CLD_SK3_DELETE">Poista</text>
+ <text id="IDS_COM_POP_PM_M_ABB">IP</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">Maaliskuu</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">Viikon 1. päivä</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">kuukausittain</text>
+ <text id="IDS_CLD_BODY_REMINDER">Muistutus</text>
+ <text id="IDS_COM_BODY_JUNE">Kesäkuu</text>
+ <text id="IDS_CST_BODY_NOTICE">Ilmoitus</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Ei kohteita</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">Päivittäin</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Tallentaminen epäonnistui</text>
+ <text id="IDS_CLD_SK_SAVE">Tallenna</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Aucun</text>
+ <text id="IDS_COM_SK4_SHARE">Part.</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d sélectionnées</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Sélectionner tout</text>
+ <text id="IDS_COM_POP_CLOSE">Fermer</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Supprimer ?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Tout le mois</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 jour avant</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Faible</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">Chaque semaine</text>
+ <text id="IDS_COM_BODY_JANUARY">Janvier</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">avant</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Février</text>
+ <text id="IDS_COM_BODY_JULY">Juillet</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Afficher le numéro de la semaine</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Sans titre</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Ajouter un compte</text>
+ <text id="IDS_CLD_SK3_CREATE">Créer</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Heure non valide</text>
+ <text id="IDS_CLD_BODY_LIST">Liste</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Uniquement cet évènement</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Rechercher</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Message</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">Août</text>
+ <text id="IDS_COM_BODY_MAY">Mai</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Tous les évènements récurrents</text>
+ <text id="IDS_COM_BODY_OCTOBER">Octobre</text>
+ <text id="IDS_COM_POP_TIMES_LC">fois</text>
+ <text id="IDS_CLD_SK_CANCEL">Annuler</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">OK</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Priorité</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">Courriel</text>
+ <text id="IDS_COM_BODY_HIGH">Haute</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 jours avant</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Échec de l'opération</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Période de récurrence non valide</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Modifier l'événement</text>
+ <text id="IDS_CLD_BODY_START_TIME">Heure de début</text>
+ <text id="IDS_CLD_BODY_REPEAT">Nombre de répétitions</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 min avant</text>
+ <text id="IDS_CLD_SK3_EDIT">Modifier</text>
+ <text id="IDS_CLD_BODY_END_TIME">Heure de fin</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Verr. fuseau horaire</text>
+ <text id="IDS_CLD_BODY_OFF">Désactivé</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Sélectionner</text>
+ <text id="IDS_CLD_OPT_DELETE">Supprimer</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Date d'échéance</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Supprimer l'événement</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Enregistrer dans</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">semaine(s)</text>
+ <text id="IDS_COM_BODY_NOVEMBER">Novembre</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Dimanche</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 semaine avant</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Créer un évènement</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Jour</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Importer évèn./tâches</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">Avril</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Toute la journée</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">Toutes les 2 semaines</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Tout le calendrier</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 heure avant</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Verrouillez les heures et les dates des évènements en fonction du fuseau horaire sélectionné ci-dessous. Les heures et les dates ne seront pas modifiées même si vous définissez un autre fuseau horaire</text>
+ <text id="IDS_CLD_BODY_YEAR">Année</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Tous les évènements antérieurs à aujourd'hui</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Exporter évèn./tâches</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">Septembre</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Répéter jusqu'à</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Année complète</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 minutes avant</text>
+ <text id="IDS_CLD_BODY_LOCATION">Emplacement</text>
+ <text id="IDS_CLD_BODY_MONDAY">Lundi</text>
+ <text id="IDS_CLD_BODY_ON_TIME">À l'heure</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">Tous les 3 jours</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Chaque année</text>
+ <text id="IDS_COM_BODY_DECEMBER">Décembre</text>
+ <text id="IDS_CLD_HEADER_DELETE">Supprimer</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">Cet évènement sera supprimé</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Ajouter au calendrier</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">Aucun événement</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Calendrier</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Description</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Toute la journée</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Fuseau horaire</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">jour(s)</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Suppr.</text>
+ <text id="IDS_CLD_OPT_EDIT">Modifier</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_CLD_BODY_TITLE">Titre</text>
+ <text id="IDS_CLD_TAB4_MONTH">Mois</text>
+ <text id="IDS_CLD_SK3_DELETE">Supprimer</text>
+ <text id="IDS_COM_POP_PM_M_ABB">PM</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wifi direct</text>
+ <text id="IDS_COM_BODY_MARCH">Mars</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">Premier jour de la semaine</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">Chaque mois</text>
+ <text id="IDS_CLD_BODY_REMINDER">Rappel</text>
+ <text id="IDS_COM_BODY_JUNE">Juin</text>
+ <text id="IDS_CST_BODY_NOTICE">Avis</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Aucun élément</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">Tous les jours</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Échec de l'enregistrement</text>
+ <text id="IDS_CLD_SK_SAVE">Sauv.</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Aucun(e)</text>
+ <text id="IDS_COM_SK4_SHARE">Partag.</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d sélectionné(es)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Sélect. tout</text>
+ <text id="IDS_COM_POP_CLOSE">Fermer</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Supprimer ?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Tout le mois</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 jour avant</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Basse</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">Chaque semaine</text>
+ <text id="IDS_COM_BODY_JANUARY">Janvier</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">avant</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Février</text>
+ <text id="IDS_COM_BODY_JULY">Juillet</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Afficher le numéro de la semaine</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Sans titre</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Ajouter compte</text>
+ <text id="IDS_CLD_SK3_CREATE">Créer</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Heure non valide</text>
+ <text id="IDS_CLD_BODY_LIST">Liste</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Uniquement cet événement</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Rechercher</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Message</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">Août</text>
+ <text id="IDS_COM_BODY_MAY">Mai</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Tous les événements récurrents</text>
+ <text id="IDS_COM_BODY_OCTOBER">Octobre</text>
+ <text id="IDS_COM_POP_TIMES_LC">fois</text>
+ <text id="IDS_CLD_SK_CANCEL">Annuler</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">OK</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Priorité</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">Email</text>
+ <text id="IDS_COM_BODY_HIGH">Haute</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 jours avant</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Échec de l'opération</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Période répétée\nnon valide</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Modifier l'événement</text>
+ <text id="IDS_CLD_BODY_START_TIME">Heure de début</text>
+ <text id="IDS_CLD_BODY_REPEAT">Nombre de répétitions</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 min avant</text>
+ <text id="IDS_CLD_SK3_EDIT">Modifier</text>
+ <text id="IDS_CLD_BODY_END_TIME">Heure de fin</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Verrouiller fuseau horaire</text>
+ <text id="IDS_CLD_BODY_OFF">Désactivé</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Sélect.</text>
+ <text id="IDS_CLD_OPT_DELETE">Supprimer</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Date d'échéance</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Supprimer l'événement</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Enregistrer sur</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">semaine(s)</text>
+ <text id="IDS_COM_BODY_NOVEMBER">Novembre</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Dimanche</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 semaine avant</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Créer événement</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Jour</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Importer évén./tâches</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">Avril</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Toute la journée</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">Toutes les 2 semaines</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Tout le calendrier</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 heure avant</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Verrouillez les heures et les dates des événements en fonction du fuseau horaire sélectionné ci-dessous. Les heures et les dates ne seront pas modifiées même si vous définissez un autre fuseau horaire</text>
+ <text id="IDS_CLD_BODY_YEAR">Année</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Tous les événements antérieurs à aujourd'hui</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Exporter évén./tâches</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">Septembre</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Répéter jusqu'à</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Année complète</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 min avant</text>
+ <text id="IDS_CLD_BODY_LOCATION">Emplacement</text>
+ <text id="IDS_CLD_BODY_MONDAY">Lundi</text>
+ <text id="IDS_CLD_BODY_ON_TIME">A l'heure</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">Tous les 3 jours</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Chaque année</text>
+ <text id="IDS_COM_BODY_DECEMBER">Décembre</text>
+ <text id="IDS_CLD_HEADER_DELETE">Supprimer</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">Cet événement va être supprimé</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Ajouter au calendrier</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">Aucun événement</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Calendrier</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Description</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Journée entière</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Fuseau horaire</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">jour(s)</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Suppr.</text>
+ <text id="IDS_CLD_OPT_EDIT">Modifier</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_CLD_BODY_TITLE">Titre</text>
+ <text id="IDS_CLD_TAB4_MONTH">Mois</text>
+ <text id="IDS_CLD_SK3_DELETE">Supprimer</text>
+ <text id="IDS_COM_POP_PM_M_ABB">PM</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">Mars</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">Premier jour de la semaine</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">Chaque mois</text>
+ <text id="IDS_CLD_BODY_REMINDER">Rappel</text>
+ <text id="IDS_COM_BODY_JUNE">Juin</text>
+ <text id="IDS_CST_BODY_NOTICE">Avis d'information</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Aucun élément</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">Chaque jour</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Échec de l'enregistrement</text>
+ <text id="IDS_CLD_SK_SAVE">Sauveg.</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Dada</text>
+ <text id="IDS_COM_SK4_SHARE">Comhroinn</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d roghnaithe</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Roghnaigh gach</text>
+ <text id="IDS_COM_POP_CLOSE">Dún</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Scrios?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">An mhí seo ar fad</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 lá roimhe</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Íseal</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">Gach seachtain</text>
+ <text id="IDS_COM_BODY_JANUARY">Eanáir</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">roimh</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Feabhra</text>
+ <text id="IDS_COM_BODY_JULY">Iúil</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Taispeáin uimhir na seachtaine</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Níl teideal ann</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Cuir cuntas leis</text>
+ <text id="IDS_CLD_SK3_CREATE">Cruthaigh</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Am neamhbhailí</text>
+ <text id="IDS_CLD_BODY_LIST">Liostaigh</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">An t-imeacht seo amháin</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Cuardaigh</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Teachtaireacht</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">Lúnasa</text>
+ <text id="IDS_COM_BODY_MAY">Bealtaine</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Gach imeacht atriallach</text>
+ <text id="IDS_COM_BODY_OCTOBER">Deireadh Fómhair</text>
+ <text id="IDS_COM_POP_TIMES_LC">uaireanta</text>
+ <text id="IDS_CLD_SK_CANCEL">Cuir ar ceal</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">Déanta</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Tosaíocht</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">R-phost</text>
+ <text id="IDS_COM_BODY_HIGH">Ard</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 lá roimhe</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Theip ar oibrí ocht</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Tréimhse athdhéanaimh neamhbhailí</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Cuir imeacht in eagar</text>
+ <text id="IDS_CLD_BODY_START_TIME">Am tosaigh</text>
+ <text id="IDS_CLD_BODY_REPEAT">Athdhéan</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 nóim roimhe</text>
+ <text id="IDS_CLD_SK3_EDIT">Cuir in eagar</text>
+ <text id="IDS_CLD_BODY_END_TIME">Am deiridh</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Amchrios glasála</text>
+ <text id="IDS_CLD_BODY_OFF">As</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Roghnaigh</text>
+ <text id="IDS_CLD_OPT_DELETE">Scrios</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Spriocdháta</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Scrios imeacht</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Sábháil chuig</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">seachtain(í)</text>
+ <text id="IDS_COM_BODY_NOVEMBER">Samhain</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Dé Domhnaigh</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 seachtain roimhe</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Cruthaigh imeacht</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Lá</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Iompórt. imeacht/tasc.</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">Aibreán</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">An lá seo ar fad</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">Gach 2 sheachtain</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Gach féilire</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 uair an chloig roimhe</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Glasáil amanna agus dátaí imeachta chuig d'amchrios roghnaithe thíos. Ní athrófar amanna ná dátaí fiú má bhogann tú chuig amchrios eile</text>
+ <text id="IDS_CLD_BODY_YEAR">Bliain</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Gach imeacht roimh inniu</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Easpórt. imeacht/tasc.</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">Meán Fómhair</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Athdhéan go dtí</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">An bhliain seo ar fad</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 nóiméad roimhe</text>
+ <text id="IDS_CLD_BODY_LOCATION">Suíomh</text>
+ <text id="IDS_CLD_BODY_MONDAY">Dé Luain</text>
+ <text id="IDS_CLD_BODY_ON_TIME">In am</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">Gach 3 lá</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Gach bliain</text>
+ <text id="IDS_COM_BODY_DECEMBER">Nollaig</text>
+ <text id="IDS_CLD_HEADER_DELETE">Scrios</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">Scriosfar an t-imeacht seo</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Cuir le Féilire</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">Níl imeachtaí ann</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Féilire</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Cur síos</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">An lá ar fad</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Amchrios</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">lá (laethanta)</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Scrios</text>
+ <text id="IDS_CLD_OPT_EDIT">Cuir in eagar</text>
+ <text id="IDS_COM_POP_AM_M_ABB">R.N.</text>
+ <text id="IDS_CLD_BODY_TITLE">Teideal</text>
+ <text id="IDS_CLD_TAB4_MONTH">Mí</text>
+ <text id="IDS_CLD_SK3_DELETE">Scrios</text>
+ <text id="IDS_COM_POP_PM_M_ABB">I.N.</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">Márta</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">An chéad lá den tseachtain</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">Gach mí</text>
+ <text id="IDS_CLD_BODY_REMINDER">Meabhrúchán</text>
+ <text id="IDS_COM_BODY_JUNE">Meitheamh</text>
+ <text id="IDS_CST_BODY_NOTICE">Fógra</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Níl míreanna ann</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">Gach lá</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Theip ar shábháil</text>
+ <text id="IDS_CLD_SK_SAVE">Sábháil</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Ningún</text>
+ <text id="IDS_COM_SK4_SHARE">Compartir</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d seleccionadas</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Seleccionar todo</text>
+ <text id="IDS_COM_POP_CLOSE">Pechar</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Eliminar?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Todo este mes</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 día antes</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Baixa</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">Cada semana</text>
+ <text id="IDS_COM_BODY_JANUARY">Xaneiro</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">Antes</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Febreiro</text>
+ <text id="IDS_COM_BODY_JULY">Xullo</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Mostrar o número de semana</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Sen título</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Engadir conta</text>
+ <text id="IDS_CLD_SK3_CREATE">Crear</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Hora non válida</text>
+ <text id="IDS_CLD_BODY_LIST">Lista</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Só este evento</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Buscar</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Mensaxe</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">Agosto</text>
+ <text id="IDS_COM_BODY_MAY">Mai.</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Todos os eventos que se repiten</text>
+ <text id="IDS_COM_BODY_OCTOBER">Outubro</text>
+ <text id="IDS_COM_POP_TIMES_LC">veces</text>
+ <text id="IDS_CLD_SK_CANCEL">Cancelar</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">Fin.</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Prioridade</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">Correo electrónico</text>
+ <text id="IDS_COM_BODY_HIGH">Alta</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 días antes</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Fallo na operación</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Período de repetición non válido</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Editar evento</text>
+ <text id="IDS_CLD_BODY_START_TIME">Hora de inicio</text>
+ <text id="IDS_CLD_BODY_REPEAT">Repetir</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 min. antes</text>
+ <text id="IDS_CLD_SK3_EDIT">Editar</text>
+ <text id="IDS_CLD_BODY_END_TIME">Hora de finalización</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Bloquear zona horaria</text>
+ <text id="IDS_CLD_BODY_OFF">Desactivado</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Selecc.</text>
+ <text id="IDS_CLD_OPT_DELETE">Eliminar</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Data de vencemento</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Eliminar evento</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Gardar en</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">semana(s)</text>
+ <text id="IDS_COM_BODY_NOVEMBER">Novembro</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Domingo</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 semana antes</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Crear evento</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Día</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Import. eventos/tarefas</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">Abril</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Todo este día</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">Cada 2 semanas</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Todo o calendario</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 hora antes</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Bloquea horas e datas de eventos na zona horaria que seleccionaches abaixo. As horas e as datas non cambiarán aínda que vaias a outra zona horaria</text>
+ <text id="IDS_CLD_BODY_YEAR">Ano</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Todos os eventos anteriores a hoxe</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Export. eventos/tarefas</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">Setembro</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Repetir até</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Todo este ano</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 min. antes</text>
+ <text id="IDS_CLD_BODY_LOCATION">Situación</text>
+ <text id="IDS_CLD_BODY_MONDAY">Luns</text>
+ <text id="IDS_CLD_BODY_ON_TIME">En hora</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">Cada 3 días</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Cada ano</text>
+ <text id="IDS_COM_BODY_DECEMBER">Decembro</text>
+ <text id="IDS_CLD_HEADER_DELETE">Eliminar</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">Eliminarase este evento</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Engadir a Calendario</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">Non hai eventos</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Calendario</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Descrición</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Todo o día</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Zona horaria</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">día(s)</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Elim</text>
+ <text id="IDS_CLD_OPT_EDIT">Editar</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_CLD_BODY_TITLE">Título</text>
+ <text id="IDS_CLD_TAB4_MONTH">Mes</text>
+ <text id="IDS_CLD_SK3_DELETE">Eliminar</text>
+ <text id="IDS_COM_POP_PM_M_ABB">PM</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">Marzo</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">Primeiro día da semana</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">Cada mes</text>
+ <text id="IDS_CLD_BODY_REMINDER">Recordatorio</text>
+ <text id="IDS_COM_BODY_JUNE">Xuño</text>
+ <text id="IDS_CST_BODY_NOTICE">Aviso</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Sen elementos</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">Cada día</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Erro ao gardar</text>
+ <text id="IDS_CLD_SK_SAVE">Gardar</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">कुछ भी नहीं</text>
+ <text id="IDS_COM_SK4_SHARE">साझा करें</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d चयनित</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">सभी चुनें</text>
+ <text id="IDS_COM_POP_CLOSE">बंद करें</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">हटाएँ?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">यह पूरा महीना</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 दिन पहले</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">निम्न</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">प्रत्येक सप्ताह</text>
+ <text id="IDS_COM_BODY_JANUARY">जनवरी</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">पहले</text>
+ <text id="IDS_COM_BODY_FEBRUARY">फ़रवरी</text>
+ <text id="IDS_COM_BODY_JULY">जुलाई</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">सप्ताह नंबर दिखाएँ</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">ब्लूटूथ</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">कोई शीर्षक नहीं</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">खाता जोड़ें</text>
+ <text id="IDS_CLD_SK3_CREATE">बनाएँ</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">अमान्य समय</text>
+ <text id="IDS_CLD_BODY_LIST">सूची</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">केवल इस घटना</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">खोजें</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">सन्देश</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">अगस्त</text>
+ <text id="IDS_COM_BODY_MAY">मई</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">सभी दोहरानेवाली ईवेंट्स</text>
+ <text id="IDS_COM_BODY_OCTOBER">अक्टूबर</text>
+ <text id="IDS_COM_POP_TIMES_LC">बार</text>
+ <text id="IDS_CLD_SK_CANCEL">रद्द</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">हो गया</text>
+ <text id="IDS_CLD_BODY_PRIORITY">प्राथमिकता</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">ईमेल</text>
+ <text id="IDS_COM_BODY_HIGH">उच्च</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 दिन पहले</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">कार्र वाई ववफल</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">अमान्य पुनरावृति\nअवधि</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">प्रसंग संपादित करें</text>
+ <text id="IDS_CLD_BODY_START_TIME">प्रारंभ समय</text>
+ <text id="IDS_CLD_BODY_REPEAT">दोहराएँ</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 मिनट पहले</text>
+ <text id="IDS_CLD_SK3_EDIT">संपादन</text>
+ <text id="IDS_CLD_BODY_END_TIME">समाप्ति समय</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">समय क्षेत्र लॉक करें</text>
+ <text id="IDS_CLD_BODY_OFF">बंद</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">चुनें</text>
+ <text id="IDS_CLD_OPT_DELETE">हटाएँ</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">नियत तिथि</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">ईवेंट मिटाएँ</text>
+ <text id="IDS_ST_BODY_SAVE_TO">में सुरक्षित करें</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">सप्ताह</text>
+ <text id="IDS_COM_BODY_NOVEMBER">नवम्बर</text>
+ <text id="IDS_CLD_BODY_SUNDAY">रविवार</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 सप्ताह पहले</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">प्रसंग बनाएँ</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">दिन</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">प्रसंगों/कार्यों को आयात करें</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">अप्रैल</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">यह पूरा दिन</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">प्रत्येक 2 सप्ताह</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">सभी कैलेंडर</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 घंटा पहले</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">प्रसंग समय और तिथि को आपके नीचे के चयनित समय क्षेत्र में लॉक करें। आपके अन्य समय क्षेत्र में जाने पर भी समय और तिथि नहीं बदलेंगे</text>
+ <text id="IDS_CLD_BODY_YEAR">वर्ष</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">आज से पहले के सभी प्रसंग</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">प्रसंगों/कार्यों को निर्यात करें</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">सितम्बर</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">तब तक दोहराएँ</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">यह पूरा वर्ष</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 मिनट पहले</text>
+ <text id="IDS_CLD_BODY_LOCATION">स्थान</text>
+ <text id="IDS_CLD_BODY_MONDAY">सोमवार</text>
+ <text id="IDS_CLD_BODY_ON_TIME">समय पर</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">प्रत्येक 3 दिन</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">प्रति वर्ष</text>
+ <text id="IDS_COM_BODY_DECEMBER">दिसम्बर</text>
+ <text id="IDS_CLD_HEADER_DELETE">हटाएँ</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">यह प्रसंग हटाया जाएगा</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">कैलेंडर में जोड़ें</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">प्रसंग नहीं</text>
+ <text id="IDS_CLD_BODY_CALENDAR">कैलेंडर</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">विवरण</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">पूरा दिन</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">समय ज़ोन</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">दिन</text>
+ <text id="IDS_CLD_BUTTON_DELETE">हटाएँ</text>
+ <text id="IDS_CLD_OPT_EDIT">संपादित करें</text>
+ <text id="IDS_COM_POP_AM_M_ABB">ए ऍम</text>
+ <text id="IDS_CLD_BODY_TITLE">शीर्षक</text>
+ <text id="IDS_CLD_TAB4_MONTH">महीना</text>
+ <text id="IDS_CLD_SK3_DELETE">हटाएँ</text>
+ <text id="IDS_COM_POP_PM_M_ABB">PM</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi डायरेक्ट</text>
+ <text id="IDS_COM_BODY_MARCH">मार्च</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">सप्ताह का पहला दिन</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">प्रत्येक माह</text>
+ <text id="IDS_CLD_BODY_REMINDER">अनुस्मारक</text>
+ <text id="IDS_COM_BODY_JUNE">जून</text>
+ <text id="IDS_CST_BODY_NOTICE">नोटिस</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">कोई मदें नहीं</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">प्रत्येक दिन</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">सेव कर्ना ववफल</text>
+ <text id="IDS_CLD_SK_SAVE">सेव</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Ništa</text>
+ <text id="IDS_COM_SK4_SHARE">Dijeli</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d odabrano</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Odaberi sve</text>
+ <text id="IDS_COM_POP_CLOSE">Prekid</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Obrisati?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Cijeli ovaj mjesec</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 dan prije</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Niski</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">Tjedno</text>
+ <text id="IDS_COM_BODY_JANUARY">Siječanj</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">prije</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Veljača</text>
+ <text id="IDS_COM_BODY_JULY">Srpanj</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Prikaži broj tjedna</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Nema naslova</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Dodaj račun</text>
+ <text id="IDS_CLD_SK3_CREATE">Novi</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Neispravno vrijeme</text>
+ <text id="IDS_CLD_BODY_LIST">Popis</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Samo ovaj događaj</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Pretraživanje</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Poruka</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">Kolovoz</text>
+ <text id="IDS_COM_BODY_MAY">Svibanj</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Svi ponavljajući događaji</text>
+ <text id="IDS_COM_BODY_OCTOBER">Listopad</text>
+ <text id="IDS_COM_POP_TIMES_LC">puta</text>
+ <text id="IDS_CLD_SK_CANCEL">Prekid</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">OK</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Prioritet</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">Email</text>
+ <text id="IDS_COM_BODY_HIGH">Visoki</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 dana prije</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Neuspješno</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Neispravan period ponavljanja</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Uredi događaj</text>
+ <text id="IDS_CLD_BODY_START_TIME">Vrijeme početka</text>
+ <text id="IDS_CLD_BODY_REPEAT">Ponavljanje</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 min. prije</text>
+ <text id="IDS_CLD_SK3_EDIT">Uredi</text>
+ <text id="IDS_CLD_BODY_END_TIME">Vrijeme završetka</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Zaključati vremensku zonu</text>
+ <text id="IDS_CLD_BODY_OFF">Isključeno</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Odaberi</text>
+ <text id="IDS_CLD_OPT_DELETE">Obriši</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Datum kraja</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Obriši događaj</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Spremi na</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">tjedan(i)</text>
+ <text id="IDS_COM_BODY_NOVEMBER">Studeni</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Nedjelja</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 tjedan prije</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Novi događaj</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Dan</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Važni događaji/zadaci</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">Travanj</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Cijeli dan danas</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">Svaka 2 tjedna</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Svi kalendari</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 sat prije</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Zaključajte vremena i datume događaja za odabranu vremensku zonu. Vremena i datumi događaja neće se promijeniti, čak i ako pređete u drugu vremensku zonu</text>
+ <text id="IDS_CLD_BODY_YEAR">Godina</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Svi događaji prije danas</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Izvezi događaje/zadatke</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">Rujan</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Ponavljaj do</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Cijela ova godina</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 min prije</text>
+ <text id="IDS_CLD_BODY_LOCATION">Lokacija</text>
+ <text id="IDS_CLD_BODY_MONDAY">Ponedjeljak</text>
+ <text id="IDS_CLD_BODY_ON_TIME">Na vrijeme</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">Svaka 3 dana</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Godišnje</text>
+ <text id="IDS_COM_BODY_DECEMBER">Prosinac</text>
+ <text id="IDS_CLD_HEADER_DELETE">Obriši</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">Događaj će biti obrisan</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Dodaj u kalendar</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">Nema događaja</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Kalendar</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Opis</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Cijeli dan</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Vremenska zona</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">dan(i)</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Obriši</text>
+ <text id="IDS_CLD_OPT_EDIT">Uredi</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_CLD_BODY_TITLE">Naslov</text>
+ <text id="IDS_CLD_TAB4_MONTH">Mjesec</text>
+ <text id="IDS_CLD_SK3_DELETE">Obriši</text>
+ <text id="IDS_COM_POP_PM_M_ABB">PM</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">Ožujak</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">Prvi dan tjedna</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">Mjesečno</text>
+ <text id="IDS_CLD_BODY_REMINDER">Podsjetnik</text>
+ <text id="IDS_COM_BODY_JUNE">Lipanj</text>
+ <text id="IDS_CST_BODY_NOTICE">Obavijest</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Nema stavki</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">svaki dan</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Spremanje neuspješno</text>
+ <text id="IDS_CLD_SK_SAVE">Spremi</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Nincs</text>
+ <text id="IDS_COM_SK4_SHARE">Megosztás</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d kiválasztva</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Összes kijelölése</text>
+ <text id="IDS_COM_POP_CLOSE">Bezárás</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Törli?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Egész hónap</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 nappal előtte</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Alacsony</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">hetente</text>
+ <text id="IDS_COM_BODY_JANUARY">január</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">előtte</text>
+ <text id="IDS_COM_BODY_FEBRUARY">február</text>
+ <text id="IDS_COM_BODY_JULY">július</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Hét számának megjelenítése</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Nincs cím</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Fiók hozzáadása</text>
+ <text id="IDS_CLD_SK3_CREATE">Létrehoz</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Érvénytelen idő</text>
+ <text id="IDS_CLD_BODY_LIST">Lista</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Csak ez az egy esemény</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Keresés</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Üzenet</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">augusztus</text>
+ <text id="IDS_COM_BODY_MAY">máj.</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Összes ismétlődő esemény</text>
+ <text id="IDS_COM_BODY_OCTOBER">október</text>
+ <text id="IDS_COM_POP_TIMES_LC">alkalommal</text>
+ <text id="IDS_CLD_SK_CANCEL">Mégse</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">Kész</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Prioritás</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">E-mail</text>
+ <text id="IDS_COM_BODY_HIGH">Magas</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 nappal előtte</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Sikertelen művelet</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Érvénytelen\nIsmétlési időszak</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Esemény szerkesztése</text>
+ <text id="IDS_CLD_BODY_START_TIME">Kezdés ideje</text>
+ <text id="IDS_CLD_BODY_REPEAT">Ismétlés</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 perccel előtte</text>
+ <text id="IDS_CLD_SK3_EDIT">Szerkeszt</text>
+ <text id="IDS_CLD_BODY_END_TIME">Befejezés ideje</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Időzóna zárolása</text>
+ <text id="IDS_CLD_BODY_OFF">Ki</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Választ</text>
+ <text id="IDS_CLD_OPT_DELETE">Töröl</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Esedékesség</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Esemény törlése</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Mentés ide</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">hét</text>
+ <text id="IDS_COM_BODY_NOVEMBER">november</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Vasárnap</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 héttel előtte</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Esemény létrehozása</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Nap</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Esem./feladatok imp.</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">április</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Egész nap</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">2 hetente</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Minden naptár</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 órával előtte</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">A lenti kiválasztott időzónához kötheti az események idejét és dátumát. Ezek az idők és dátumok akkor sem fognak megváltozni, ha másik időzónába utazik</text>
+ <text id="IDS_CLD_BODY_YEAR">Év</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">A mai napnál korábbi összes esemény</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Esem./feladatok exp.</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">szeptember</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Ismétlés határideje:</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Egész év</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 perccel előtte</text>
+ <text id="IDS_CLD_BODY_LOCATION">Hely</text>
+ <text id="IDS_CLD_BODY_MONDAY">Hétfő</text>
+ <text id="IDS_CLD_BODY_ON_TIME">Időpontban</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">3 naponta</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Évente</text>
+ <text id="IDS_COM_BODY_DECEMBER">december</text>
+ <text id="IDS_CLD_HEADER_DELETE">Töröl</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">Törli ezt az eseményt?</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Hozzáadás a Naptárhoz</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">Nincs esemény</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Naptár</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Leírás</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Egész nap</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Időzóna</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">nap</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Törlés</text>
+ <text id="IDS_CLD_OPT_EDIT">Szerkeszt</text>
+ <text id="IDS_COM_POP_AM_M_ABB">de.</text>
+ <text id="IDS_CLD_BODY_TITLE">Cím</text>
+ <text id="IDS_CLD_TAB4_MONTH">Hónap</text>
+ <text id="IDS_CLD_SK3_DELETE">Töröl</text>
+ <text id="IDS_COM_POP_PM_M_ABB">du.</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">március</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">A hét első napja</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">havonta</text>
+ <text id="IDS_CLD_BODY_REMINDER">Emlékeztető</text>
+ <text id="IDS_COM_BODY_JUNE">június</text>
+ <text id="IDS_CST_BODY_NOTICE">Jegyzet</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Nincs tétel</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">Minden nap</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">A mentés nem sikerült</text>
+ <text id="IDS_CLD_SK_SAVE">Ment</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Չկա</text>
+ <text id="IDS_COM_SK4_SHARE">Համօգտգրծել</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d ընտրվել է</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Ընտրել բոլորը</text>
+ <text id="IDS_COM_POP_CLOSE">Փակել</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Ջնջե՞լ</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Ամբողջ այս ամիս</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 օր առաջ</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Ցածր</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">Ամեն շաբաթ</text>
+ <text id="IDS_COM_BODY_JANUARY">Հունվար</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">մինչև</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Փետրվար</text>
+ <text id="IDS_COM_BODY_JULY">Հուլիս</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Ցույց տալ շաբաթվա համարը</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Վերնագիր չկա</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Հաշվի ավելացում</text>
+ <text id="IDS_CLD_SK3_CREATE">Ստեղծել</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Անվավեր ժամանակ</text>
+ <text id="IDS_CLD_BODY_LIST">Ցանկ</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Միայն այս դեպքը</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Որոնել</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Հաղորդագրություն</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">Oգոստոս</text>
+ <text id="IDS_COM_BODY_MAY">Մայ</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Բոլոր կրկնվող իրադարձությունները</text>
+ <text id="IDS_COM_BODY_OCTOBER">Հոկտեմբեր</text>
+ <text id="IDS_COM_POP_TIMES_LC">անգամ</text>
+ <text id="IDS_CLD_SK_CANCEL">Չեղարկել</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">Պատրաստ</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Առաջնություն</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">Էլ.փոստ</text>
+ <text id="IDS_COM_BODY_HIGH">Բարձր</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 օր առաջ</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Գործողությունը ձախողվեց</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Կրկնման անվավեր ժամանակահատված</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Խմբագրել դեպքը</text>
+ <text id="IDS_CLD_BODY_START_TIME">Սկսման ժամանակ</text>
+ <text id="IDS_CLD_BODY_REPEAT">Կրկնություն</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 րոպե առաջ</text>
+ <text id="IDS_CLD_SK3_EDIT">Խմբագրել</text>
+ <text id="IDS_CLD_BODY_END_TIME">Ավարտի ժամանակ</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Կողպել ժամային գոտին</text>
+ <text id="IDS_CLD_BODY_OFF">Անջատված է</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Ընտրել</text>
+ <text id="IDS_CLD_OPT_DELETE">Ջնջել</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Կատարման ամսաթիվ</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Ջնջել դեպքը</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Պահպանել</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">շաբաթ</text>
+ <text id="IDS_COM_BODY_NOVEMBER">Նոյեմբեր</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Կիրակի</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 շաբաթ առաջ</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Ստղծլ իրդրձթյն.</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Օր</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Ներմուծել իրդրձ./առջդր.</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">ապրիլ</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Ամբողջ այս օրը</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">Ամեն 2 շաբաթը մեկ</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Բոլոր օրացույցները</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 ժամ առաջ</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Ստորև կողպել իրադարձությունների ժամերն ու ամսաթվերը՝ ըստ Ձեր ընտրած ժամային գոտու: Ժամերն ու ամսաթվերը չեն փոխվի, նույնիսկ եթե անցնեք այլ ժամային գոտու</text>
+ <text id="IDS_CLD_BODY_YEAR">Տարի</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Բոլոր իրադարձությունները մինչ այսօր</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Արտահանել իրդրձ./առջդր.</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">Սեպտեմբեր</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Կրկնել մինչև</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Ամբողջ այս տարին</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 րոպե առաջ</text>
+ <text id="IDS_CLD_BODY_LOCATION">Գտնվելու վայր</text>
+ <text id="IDS_CLD_BODY_MONDAY">Երկուշաբթի</text>
+ <text id="IDS_CLD_BODY_ON_TIME">Ժամանակին</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">Ամեն 3 օրը մեկ</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Ամեն տարի</text>
+ <text id="IDS_COM_BODY_DECEMBER">դեկտեմբեր</text>
+ <text id="IDS_CLD_HEADER_DELETE">Ջնջել</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">Այդ դեպքը կջնջվի</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Ավելացնել Օրացույցում</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">Իրադարձություններ չկան</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Օրացույց</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Նկարագրություն</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Ամբողջ օրը</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Ժամային գոտի</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">օր</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Վրցնլ</text>
+ <text id="IDS_CLD_OPT_EDIT">Խմբագրել</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_CLD_BODY_TITLE">Վերնագիր</text>
+ <text id="IDS_CLD_TAB4_MONTH">Ամիս</text>
+ <text id="IDS_CLD_SK3_DELETE">Ջնջել</text>
+ <text id="IDS_COM_POP_PM_M_ABB">PM</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">Մարտ</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">Շաբաթվա առաջին օրը</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">Ամեն ամիս</text>
+ <text id="IDS_CLD_BODY_REMINDER">Հիշեցում</text>
+ <text id="IDS_COM_BODY_JUNE">Հունիս</text>
+ <text id="IDS_CST_BODY_NOTICE">Նշում</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Տարրեր չկան</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">Ամեն օր</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Պահպանումը ձախողվեց</text>
+ <text id="IDS_CLD_SK_SAVE">Պահել</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Ekkert</text>
+ <text id="IDS_COM_SK4_SHARE">Deila</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d valið</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Velja allt</text>
+ <text id="IDS_COM_POP_CLOSE">Loka</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Á að eyða?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Allan mánuðinn</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 degi áður</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Lítið</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">Vikulega</text>
+ <text id="IDS_COM_BODY_JANUARY">Janúar</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">fyrir</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Febrúar</text>
+ <text id="IDS_COM_BODY_JULY">Júlí</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Sýna vikunúmer</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Titil vantar</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Bæta við reikningi</text>
+ <text id="IDS_CLD_SK3_CREATE">Búa til</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Ógildur tími</text>
+ <text id="IDS_CLD_BODY_LIST">Listi</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Aðeins þessi viðburður</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Leita</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Skilaboð</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">ágúst</text>
+ <text id="IDS_COM_BODY_MAY">Maí</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Allir endurteknir viðburðir</text>
+ <text id="IDS_COM_BODY_OCTOBER">október</text>
+ <text id="IDS_COM_POP_TIMES_LC">sinnum</text>
+ <text id="IDS_CLD_SK_CANCEL">Hætta við</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">Lokið</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Forgangur</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">Tölvupóstur</text>
+ <text id="IDS_COM_BODY_HIGH">Mikið</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 dögum áður</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Aðgerð mistókst</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Ógilt endurtekningatímabil</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Breyta viðburði</text>
+ <text id="IDS_CLD_BODY_START_TIME">Upphafstími</text>
+ <text id="IDS_CLD_BODY_REPEAT">Endurtaka</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 mín. fyrir</text>
+ <text id="IDS_CLD_SK3_EDIT">Breyta</text>
+ <text id="IDS_CLD_BODY_END_TIME">Lokatími</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Læsa tímabelti</text>
+ <text id="IDS_CLD_BODY_OFF">Slökkt</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Velja</text>
+ <text id="IDS_CLD_OPT_DELETE">Eyða</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Gjalddagi</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Eyða viðburði</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Vista í</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">viku/r</text>
+ <text id="IDS_COM_BODY_NOVEMBER">nóvember</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Sunnudagur</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 viku áður</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Búa til viðburð</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Dagur</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Flytja inn viðb./verk.</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">apríl</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Allan daginn</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">Á tveggja vikna fresti</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Allar dagbækur</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 klukkustund áður</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Læsa tíma og dagsetningu viðburðar á tiltekið tímabelti. Dagsetning og tími munu ekki breytast, jafnvel þótt þú farir í annað tímabelti</text>
+ <text id="IDS_CLD_BODY_YEAR">Ár</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Allir atburðir fyrir daginn í dag</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Flytja út viðb./verk.</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">september</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Endurtaka þar til</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Allt þetta ár</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 mínútum áður</text>
+ <text id="IDS_CLD_BODY_LOCATION">Staðsetning</text>
+ <text id="IDS_CLD_BODY_MONDAY">Mánudagur</text>
+ <text id="IDS_CLD_BODY_ON_TIME">Á réttum tíma</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">Á þriggja daga fresti</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Á hverju ári</text>
+ <text id="IDS_COM_BODY_DECEMBER">Desember</text>
+ <text id="IDS_CLD_HEADER_DELETE">Eyða</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">Þessum viðburði verður eytt</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Setja í Dagbók</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">Enginn viðburður</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Dagbók</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Lýsing</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Allan daginn</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Tímabelti</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">dag(ar)</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Eyða</text>
+ <text id="IDS_CLD_OPT_EDIT">Breyta</text>
+ <text id="IDS_COM_POP_AM_M_ABB">f.h.</text>
+ <text id="IDS_CLD_BODY_TITLE">Titill</text>
+ <text id="IDS_CLD_TAB4_MONTH">Mánuður</text>
+ <text id="IDS_CLD_SK3_DELETE">Eyða</text>
+ <text id="IDS_COM_POP_PM_M_ABB">e.h.</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">Mars</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">Fyrsti dagur vikunnar</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">Mánaðarlega</text>
+ <text id="IDS_CLD_BODY_REMINDER">Áminning</text>
+ <text id="IDS_COM_BODY_JUNE">Júní</text>
+ <text id="IDS_CST_BODY_NOTICE">Tilkynning</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Engin atriði</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">Á hverjum degi</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Mistókst að vista</text>
+ <text id="IDS_CLD_SK_SAVE">Vista</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Nessuno</text>
+ <text id="IDS_COM_SK4_SHARE">Condividi</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d selezionate</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Seleziona tutto</text>
+ <text id="IDS_COM_POP_CLOSE">Chiudi</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Eliminare?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Tutto del mese</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 giorno prima</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Bassa</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">Ogni settimana</text>
+ <text id="IDS_COM_BODY_JANUARY">Gennaio</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">prima</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Febbraio</text>
+ <text id="IDS_COM_BODY_JULY">Luglio</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Mostra numero settimana</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Nessun titolo</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Aggiungi account</text>
+ <text id="IDS_CLD_SK3_CREATE">Crea</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Ora non valida</text>
+ <text id="IDS_CLD_BODY_LIST">Elenco</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Solo questo evento</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Cerca</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Messaggio</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">Agosto</text>
+ <text id="IDS_COM_BODY_MAY">Maggio</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Tutti gli eventi ripetuti</text>
+ <text id="IDS_COM_BODY_OCTOBER">Ottobre</text>
+ <text id="IDS_COM_POP_TIMES_LC">volte</text>
+ <text id="IDS_CLD_SK_CANCEL">Annulla</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">Fatto</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Priorità</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">E-mail</text>
+ <text id="IDS_COM_BODY_HIGH">Alta</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 giorni prima</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Operazione non eseguita</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Periodo di\nripetizione non valido</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Modifica evento</text>
+ <text id="IDS_CLD_BODY_START_TIME">Ora inizio</text>
+ <text id="IDS_CLD_BODY_REPEAT">Ripeti</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 min prima</text>
+ <text id="IDS_CLD_SK3_EDIT">Modifica</text>
+ <text id="IDS_CLD_BODY_END_TIME">Ora fine</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Blocca fuso orario</text>
+ <text id="IDS_CLD_BODY_OFF">Non attivo</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Seleziona</text>
+ <text id="IDS_CLD_OPT_DELETE">Elimina</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Scadenza</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Elimina evento</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Salva in</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">settimana/e</text>
+ <text id="IDS_COM_BODY_NOVEMBER">Novembre</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Domenica</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 settimana prima</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Crea evento</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Giorno</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Importa eventi/attività</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">Aprile</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Tutto di oggi</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">Ogni 2 settimane</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Tutto il calendario</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 ora prima</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Bloccare l'ora e la data dell'evento in base al fuso orario selezionato di seguito. L'ora e la data non subiranno modifiche anche se si passa a un altro fuso orario</text>
+ <text id="IDS_CLD_BODY_YEAR">Anno</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Tutti gli eventi prima di oggi</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Esporta eventi/attività</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">Settembre</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Ripeti fino a</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Tutto l'anno</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 min prima</text>
+ <text id="IDS_CLD_BODY_LOCATION">Luogo</text>
+ <text id="IDS_CLD_BODY_MONDAY">Lunedì</text>
+ <text id="IDS_CLD_BODY_ON_TIME">All'ora esatta</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">Ogni 3 giorni</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Ogni anno</text>
+ <text id="IDS_COM_BODY_DECEMBER">Dicembre</text>
+ <text id="IDS_CLD_HEADER_DELETE">Elimina</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">Questo evento sarà eliminato</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Aggiungi in Agenda</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">Nessun evento</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Calendario</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Descrizione</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Tutto il giorno</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Fuso orario</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">giorni</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Elim.</text>
+ <text id="IDS_CLD_OPT_EDIT">Modifica</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_CLD_BODY_TITLE">Titolo</text>
+ <text id="IDS_CLD_TAB4_MONTH">Mese</text>
+ <text id="IDS_CLD_SK3_DELETE">Elimina</text>
+ <text id="IDS_COM_POP_PM_M_ABB">PM</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">Marzo</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">Primo giorno della settimana</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">Ogni mese</text>
+ <text id="IDS_CLD_BODY_REMINDER">Promemoria</text>
+ <text id="IDS_COM_BODY_JUNE">Giugno</text>
+ <text id="IDS_CST_BODY_NOTICE">Avviso</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Nessun elemento</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">Ogni giorno</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Errore salvataggio</text>
+ <text id="IDS_CLD_SK_SAVE">Salva</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">なし</text>
+ <text id="IDS_COM_SK4_SHARE">共有</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d件選択</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">全て選択</text>
+ <text id="IDS_COM_POP_CLOSE">閉じる</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">削除しますか?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">今月のイベント</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1日前</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">低</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">毎週</text>
+ <text id="IDS_COM_BODY_JANUARY">1月</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">前</text>
+ <text id="IDS_COM_BODY_FEBRUARY">2月</text>
+ <text id="IDS_COM_BODY_JULY">7月</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">週数を表示</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">件名なし</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">アカウント追加</text>
+ <text id="IDS_CLD_SK3_CREATE">作成</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">無効な時間</text>
+ <text id="IDS_CLD_BODY_LIST">リスト</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">このイベントのみ</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">検索</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">メッセージ</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">8月</text>
+ <text id="IDS_COM_BODY_MAY">5月</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">全てのイベント</text>
+ <text id="IDS_COM_BODY_OCTOBER">10月</text>
+ <text id="IDS_COM_POP_TIMES_LC">回</text>
+ <text id="IDS_CLD_SK_CANCEL">キャンセル</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">完了</text>
+ <text id="IDS_CLD_BODY_PRIORITY">優先度</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">Eメール</text>
+ <text id="IDS_COM_BODY_HIGH">高</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2日前</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">操作に失敗しました。</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">繰り返し期間が無効です</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">イベントを編集</text>
+ <text id="IDS_CLD_BODY_START_TIME">開始時刻</text>
+ <text id="IDS_CLD_BODY_REPEAT">繰り返し</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5分前</text>
+ <text id="IDS_CLD_SK3_EDIT">編集</text>
+ <text id="IDS_CLD_BODY_END_TIME">終了時刻</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">タイムゾーンを固定</text>
+ <text id="IDS_CLD_BODY_OFF">OFF</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">選択</text>
+ <text id="IDS_CLD_OPT_DELETE">削除</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">期日</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">イベントを削除</text>
+ <text id="IDS_ST_BODY_SAVE_TO">保存先設定</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">週</text>
+ <text id="IDS_COM_BODY_NOVEMBER">11月</text>
+ <text id="IDS_CLD_BODY_SUNDAY">日曜日</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1週間前</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">イベントを作成</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">日</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">イベント/タスクをインポート</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">4月</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">今日のイベント</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">隔週</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">全てのカレンダー</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1時間前</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">イベント日時を以下で選択したタイムゾーンに固定(他のタイムゾーンに移動しても日時を変更しない)</text>
+ <text id="IDS_CLD_BODY_YEAR">年</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">前日までの全てのイベント</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">イベント/タスクをエクスポート</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">9月</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">繰り返し期間</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">今年のイベント</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15分前</text>
+ <text id="IDS_CLD_BODY_LOCATION">場所</text>
+ <text id="IDS_CLD_BODY_MONDAY">月曜日</text>
+ <text id="IDS_CLD_BODY_ON_TIME">開始時刻</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">3日ごと</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">毎年</text>
+ <text id="IDS_COM_BODY_DECEMBER">12月</text>
+ <text id="IDS_CLD_HEADER_DELETE">削除</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">このイベントを削除します。</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">カレンダーに追加</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">イベントはありません。</text>
+ <text id="IDS_CLD_BODY_CALENDAR">カレンダー</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">詳細</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">終日</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">タイムゾーン</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">日</text>
+ <text id="IDS_CLD_BUTTON_DELETE">削除</text>
+ <text id="IDS_CLD_OPT_EDIT">編集</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_CLD_BODY_TITLE">タイトル</text>
+ <text id="IDS_CLD_TAB4_MONTH">月</text>
+ <text id="IDS_CLD_SK3_DELETE">削除</text>
+ <text id="IDS_COM_POP_PM_M_ABB">PM</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">3月</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">週の始まり</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">毎月</text>
+ <text id="IDS_CLD_BODY_REMINDER">通知</text>
+ <text id="IDS_COM_BODY_JUNE">6月</text>
+ <text id="IDS_CST_BODY_NOTICE">お知らせ</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">アイテムがありません。</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">Every day</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">保存に失敗しました。</text>
+ <text id="IDS_CLD_SK_SAVE">保存</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">არც ერთი</text>
+ <text id="IDS_COM_SK4_SHARE">გაზიარება</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d არჩეულია</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">ყველას არჩევა</text>
+ <text id="IDS_COM_POP_CLOSE">დახურვა</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">წაიშალოს?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">მთელი თვე</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 დღით ადრე</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">დაბალი</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">ყოველ კვირას</text>
+ <text id="IDS_COM_BODY_JANUARY">იანვარი</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">ვადამდე</text>
+ <text id="IDS_COM_BODY_FEBRUARY">თებერვალი</text>
+ <text id="IDS_COM_BODY_JULY">ივლისი</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">კვირის ნომრის ჩვენება</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">თემა არ არის</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">ანგარიშის დამატება</text>
+ <text id="IDS_CLD_SK3_CREATE">შექმ.</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">არასწორი დრო</text>
+ <text id="IDS_CLD_BODY_LIST">სია</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">მხოლოდ ეს მოვლენა</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">ძებნა</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">შეტყობინება</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">აგვისტო</text>
+ <text id="IDS_COM_BODY_MAY">მაისი</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">ყველა განმეორებითი მოვლენა</text>
+ <text id="IDS_COM_BODY_OCTOBER">ოქტომბერი</text>
+ <text id="IDS_COM_POP_TIMES_LC">დროები</text>
+ <text id="IDS_CLD_SK_CANCEL">გაუქმება</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">შესრულდა</text>
+ <text id="IDS_CLD_BODY_PRIORITY">პრიორიტეტი</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">ელ-ფოსტა</text>
+ <text id="IDS_COM_BODY_HIGH">მაღალი</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 დღით ადრე</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">ოპერაცია ვერ შესრულდა</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">გამეორების პერიოდი არასწორია</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">მოვლენის შესწორება</text>
+ <text id="IDS_CLD_BODY_START_TIME">დაწყების დრო</text>
+ <text id="IDS_CLD_BODY_REPEAT">გამეორება</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 წუთით ადრე</text>
+ <text id="IDS_CLD_SK3_EDIT">რედაქტირება</text>
+ <text id="IDS_CLD_BODY_END_TIME">დასრულების დრო</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">სთ. სარტყელის დაფიქსირება</text>
+ <text id="IDS_CLD_BODY_OFF">გამორთ.</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">არჩევა</text>
+ <text id="IDS_CLD_OPT_DELETE">წაშლა</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">შესრულების თარიღი</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">მოვლენის წაშლა</text>
+ <text id="IDS_ST_BODY_SAVE_TO">შენახვა</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">კვირა</text>
+ <text id="IDS_COM_BODY_NOVEMBER">ნოემბერი</text>
+ <text id="IDS_CLD_BODY_SUNDAY">კვირა</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 კვირის წინ</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">მოვლენის შექმნა</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">დღე</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">მოვლენ./დავალ. იმპორტი</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">აპრილი</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">მთელი დღე</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">ყოველ 2 კვირაში</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">მთელი კალენდარი</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 საათით ადრე</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">დააფიქსირეთ მოვლენის დროები და თარიღები თქვენს მიერ ქვემოთ არჩეული საათობრივი სარტყელით. დროები და თარიღები არ შეიცვლება, მაშინაც კი, თუ სხვა საათობრივ სარტყელში გადახვალთ</text>
+ <text id="IDS_CLD_BODY_YEAR">წელი</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">ყველა მოვლენა დღევანდელ დღემდე</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">მოვლენ./დავალ. ექსპორტი</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">სექტემბერი</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">გამეორება დრომდე</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">ყველა წლევანდელი</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 წუთით ადრე</text>
+ <text id="IDS_CLD_BODY_LOCATION">ადგილმდებარეობა</text>
+ <text id="IDS_CLD_BODY_MONDAY">ორშაბათი</text>
+ <text id="IDS_CLD_BODY_ON_TIME">დროზე</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">ყოველ 3 დღეში</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">ყოველ წელს</text>
+ <text id="IDS_COM_BODY_DECEMBER">დეკემბერი</text>
+ <text id="IDS_CLD_HEADER_DELETE">წაშლა</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">ეს მოვლენა წაიშლება</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">კალენდარში დამატება</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">მოვლენები არ არის</text>
+ <text id="IDS_CLD_BODY_CALENDAR">კალენდარი</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">აღწერა</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">ყველა დღე</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">საათობრივი სარტყელი</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">დღე</text>
+ <text id="IDS_CLD_BUTTON_DELETE">წაშლა</text>
+ <text id="IDS_CLD_OPT_EDIT">შეცვლა</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_CLD_BODY_TITLE">სათაური</text>
+ <text id="IDS_CLD_TAB4_MONTH">თვე</text>
+ <text id="IDS_CLD_SK3_DELETE">წაშლა</text>
+ <text id="IDS_COM_POP_PM_M_ABB">PM</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">მარტი</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">კვირის პირველი დღე</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">ყოველ თვე</text>
+ <text id="IDS_CLD_BODY_REMINDER">შეხსენება</text>
+ <text id="IDS_COM_BODY_JUNE">ივნისი</text>
+ <text id="IDS_CST_BODY_NOTICE">შენიშვნა</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">ელემენტები არ არის</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">ყოველდღე</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">ვერ შეინახა</text>
+ <text id="IDS_CLD_SK_SAVE">შენახვა</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Жоқ</text>
+ <text id="IDS_COM_SK4_SHARE">Бөлісу</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d таңдалды</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Бәрін бөлектеу</text>
+ <text id="IDS_COM_POP_CLOSE">Жабу</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Өшіресіз бе?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Осы айдың барлығында</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 күн алдын</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Төмен</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">Апта сайын</text>
+ <text id="IDS_COM_BODY_JANUARY">Қаңтар</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">дейін</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Ақпан</text>
+ <text id="IDS_COM_BODY_JULY">Шілде</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Апта нөмірін көрсету</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Тақырып жоқ</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Тіркелгі қосу</text>
+ <text id="IDS_CLD_SK3_CREATE">Жазу</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Уақыт қате</text>
+ <text id="IDS_CLD_BODY_LIST">Тізім</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Тек осы оқиға</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Іздеу</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Хабарлама</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">Тамыз</text>
+ <text id="IDS_COM_BODY_MAY">Maм.</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Барлық қайталанатын оқиғалар</text>
+ <text id="IDS_COM_BODY_OCTOBER">Қазан</text>
+ <text id="IDS_COM_POP_TIMES_LC">рет</text>
+ <text id="IDS_CLD_SK_CANCEL">Тоқтату</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">Дайын</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Ерекшелігі</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">Эл. пошта</text>
+ <text id="IDS_COM_BODY_HIGH">Жоғары</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 күн бурын</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Əрекет сəтсіз аяқталды</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Қайталау аралығы жарамсыз</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Оқиғаны өзгерту</text>
+ <text id="IDS_CLD_BODY_START_TIME">Бастау уақыты</text>
+ <text id="IDS_CLD_BODY_REPEAT">Қайталау</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 мин бұрын</text>
+ <text id="IDS_CLD_SK3_EDIT">Өзгер.</text>
+ <text id="IDS_CLD_BODY_END_TIME">Аяқтау уақыты</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Уақыт белдеуін құлыптау</text>
+ <text id="IDS_CLD_BODY_OFF">Өшірілген</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Таңдау</text>
+ <text id="IDS_CLD_OPT_DELETE">Жою</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Мерзімі</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Оқиғаны жою</text>
+ <text id="IDS_ST_BODY_SAVE_TO">ішінде сақтау</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">апта(лар)</text>
+ <text id="IDS_COM_BODY_NOVEMBER">Қараша</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Жексенбі</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 апта алдын</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Оқиға жасау</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Күн</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Оқиға/тапсырма импорт-у</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">Сәуір</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Бүгін күнімен</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">Әр 2 апта сайын</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Барлық күнтізбе</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 сағат алдын</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Төмендегі таңдалған уақыт белдеуі үшін оқиға уақыттары мен күндерін құлыптаңыз. Басқа уақыт белдеуіне ауысқанның өзінде уақыттар мен күндер өзгермейді</text>
+ <text id="IDS_CLD_BODY_YEAR">Жыл</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Бүгіннен бұрынғы барлық оқиғалар</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Оқиға/тапсырма экспор-у</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">Қыркүйек</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Дейін қайталау</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Барлығы биыл</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 минут бұрын</text>
+ <text id="IDS_CLD_BODY_LOCATION">Орналасу орны</text>
+ <text id="IDS_CLD_BODY_MONDAY">Дүйсенбі</text>
+ <text id="IDS_CLD_BODY_ON_TIME">Уақытында</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">Әр 3 күн сайын</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Жыл сайын</text>
+ <text id="IDS_COM_BODY_DECEMBER">Желтоқсан</text>
+ <text id="IDS_CLD_HEADER_DELETE">Жою</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">Бұл оқиға жойылады</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Күнтізбеге қосу</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">Оқиға жоқ</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Күнтізбе</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Сипаттама</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Барлық күні</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Уақыт зонасы</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">Күн (дер)</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Жою</text>
+ <text id="IDS_CLD_OPT_EDIT">Өзгерту</text>
+ <text id="IDS_COM_POP_AM_M_ABB">ТД</text>
+ <text id="IDS_CLD_BODY_TITLE">Тақырыбы</text>
+ <text id="IDS_CLD_TAB4_MONTH">Ай</text>
+ <text id="IDS_CLD_SK3_DELETE">Жою</text>
+ <text id="IDS_COM_POP_PM_M_ABB">TK</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">Наурыз</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">Аптаның бірінші күні</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">Ай сайын</text>
+ <text id="IDS_CLD_BODY_REMINDER">Еске салушы</text>
+ <text id="IDS_COM_BODY_JUNE">Маусым</text>
+ <text id="IDS_CST_BODY_NOTICE">Ескерту</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Баптар жоқ</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">Күн сайын</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Сақтау сəтсіз</text>
+ <text id="IDS_CLD_SK_SAVE">Сақтау</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">없음</text>
+ <text id="IDS_COM_SK4_SHARE">공유</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d개 선택</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">모두 선택</text>
+ <text id="IDS_COM_POP_CLOSE">닫기</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">삭제할까요?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">이번 달 일정 모두</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1일 전</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">낮음</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">매주</text>
+ <text id="IDS_COM_BODY_JANUARY">1월</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">전</text>
+ <text id="IDS_COM_BODY_FEBRUARY">2월</text>
+ <text id="IDS_COM_BODY_JULY">7월</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">몇째 주인지 표시</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">블루투스</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">제목이 없습니다</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">계정 추가</text>
+ <text id="IDS_CLD_SK3_CREATE">추가</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">시간이 바르지 않습니다</text>
+ <text id="IDS_CLD_BODY_LIST">목록</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">선택한 일정만</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">검색</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">메시지</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">8월</text>
+ <text id="IDS_COM_BODY_MAY">5월</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">반복 일정</text>
+ <text id="IDS_COM_BODY_OCTOBER">10월</text>
+ <text id="IDS_COM_POP_TIMES_LC">회</text>
+ <text id="IDS_CLD_SK_CANCEL">취소</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">완료</text>
+ <text id="IDS_CLD_BODY_PRIORITY">중요도</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">이메일</text>
+ <text id="IDS_COM_BODY_HIGH">높음</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2일 전</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">작업을 수행하지 못하였습니다</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">반복 기간이 바르지 않습니다</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">일정 편집</text>
+ <text id="IDS_CLD_BODY_START_TIME">시작 시간</text>
+ <text id="IDS_CLD_BODY_REPEAT">반복</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5분 전</text>
+ <text id="IDS_CLD_SK3_EDIT">편집</text>
+ <text id="IDS_CLD_BODY_END_TIME">종료 시간</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">시간대 고정</text>
+ <text id="IDS_CLD_BODY_OFF">끄기</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">선택</text>
+ <text id="IDS_CLD_OPT_DELETE">삭제</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">완료일</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">일정 삭제</text>
+ <text id="IDS_ST_BODY_SAVE_TO">저장</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">주</text>
+ <text id="IDS_COM_BODY_NOVEMBER">11월</text>
+ <text id="IDS_CLD_BODY_SUNDAY">일요일</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1주 전</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">일정 추가</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">일</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">일정/할 일 가져오기</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">4월</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">오늘 일정 모두</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">2주마다</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">모든 일정</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1시간 전</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">일정 등록 시 사용하는 시간과 날짜를 아래에서 선택한 시간대에 고정합니다. 다른 시간대로 이동하여도 디바이스의 시간과 날짜는 변경되지 않습니다</text>
+ <text id="IDS_CLD_BODY_YEAR">년</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">오늘 이전의 모든 일정</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">일정/할 일 내보내기</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">9월</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">반복 종료일</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">올해 모든 일정</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15분 전</text>
+ <text id="IDS_CLD_BODY_LOCATION">장소</text>
+ <text id="IDS_CLD_BODY_MONDAY">월요일</text>
+ <text id="IDS_CLD_BODY_ON_TIME">정각</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">3일마다</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">매년</text>
+ <text id="IDS_COM_BODY_DECEMBER">12월</text>
+ <text id="IDS_CLD_HEADER_DELETE">삭제</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">선택한 일정이 삭제됩니다</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">일정에 추가</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">일정이 없습니다</text>
+ <text id="IDS_CLD_BODY_CALENDAR">일정</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">설명</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">하루종일</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">표준 시간대</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">일</text>
+ <text id="IDS_CLD_BUTTON_DELETE">삭제</text>
+ <text id="IDS_CLD_OPT_EDIT">편집</text>
+ <text id="IDS_COM_POP_AM_M_ABB">오전</text>
+ <text id="IDS_CLD_BODY_TITLE">제목</text>
+ <text id="IDS_CLD_TAB4_MONTH">월</text>
+ <text id="IDS_CLD_SK3_DELETE">삭제</text>
+ <text id="IDS_COM_POP_PM_M_ABB">오후</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">3월</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">주 시작 요일</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">매월</text>
+ <text id="IDS_CLD_BODY_REMINDER">알림</text>
+ <text id="IDS_COM_BODY_JUNE">6월</text>
+ <text id="IDS_CST_BODY_NOTICE">알림</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">항목이 없습니다</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">매일</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">저장하지 못하였습니다</text>
+ <text id="IDS_CLD_SK_SAVE">저장</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Nav</text>
+ <text id="IDS_COM_SK4_SHARE">Koplietot</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d izvēlētas</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Izv. visu</text>
+ <text id="IDS_COM_POP_CLOSE">Aizvērt</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Vai dzēst?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Visu šo mēnesi</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 dienu pirms</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Zema</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">Katru nedēļu</text>
+ <text id="IDS_COM_BODY_JANUARY">Janvāris</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">pirms</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Februāris</text>
+ <text id="IDS_COM_BODY_JULY">Jūlijs</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Rādīt nedēļas numuru</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Nav nosaukuma</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Konta pievienošana</text>
+ <text id="IDS_CLD_SK3_CREATE">Izveidot</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Nederīgs laiks</text>
+ <text id="IDS_CLD_BODY_LIST">Saraksts</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Tikai šo notikumu</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Meklēt</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Ziņa</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">Augusts</text>
+ <text id="IDS_COM_BODY_MAY">Maijs</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Visi atkārtotie notikumi</text>
+ <text id="IDS_COM_BODY_OCTOBER">Oktobris</text>
+ <text id="IDS_COM_POP_TIMES_LC">reizes</text>
+ <text id="IDS_CLD_SK_CANCEL">Atcelt</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">Gatavs</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Prioritāte</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">E-pasts</text>
+ <text id="IDS_COM_BODY_HIGH">Augsta</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 dienas pirms</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Darbība neizdevās</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Nederīgs atkārtošanās periods</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Rediģēt notikumu</text>
+ <text id="IDS_CLD_BODY_START_TIME">Sākuma laiks</text>
+ <text id="IDS_CLD_BODY_REPEAT">Atkārtot</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 min. pirms</text>
+ <text id="IDS_CLD_SK3_EDIT">Rediģēt</text>
+ <text id="IDS_CLD_BODY_END_TIME">Beigu laiks</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Laika joslas bloķēšana</text>
+ <text id="IDS_CLD_BODY_OFF">Izslēgt</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Atlasīt</text>
+ <text id="IDS_CLD_OPT_DELETE">Dzēst</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Izpildes datums</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Dzēst notikumu</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Saglabāt</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">nedēļa(-s)</text>
+ <text id="IDS_COM_BODY_NOVEMBER">Novembris</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Svētdiena</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 nedēļu pirms</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Izveidot notikumu</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Diena</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Importēt notik./uzdev.</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">Aprīlis</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Visu šo dienu</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">Reizi 2 nedēļās</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Visu kalendāru</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 stundu pirms</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Bloķēt notikumu laiku un datumu tālāk izvēlētajai laika joslai. Pat ja tiks mainīta laika josla, notikumu laiks un datums nemainīsies</text>
+ <text id="IDS_CLD_BODY_YEAR">Gads</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Visi notikumi pirms šodienas</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Eksportēt notik./uzdev.</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">Septembris</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Atkārtot līdz</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Visu šo gadu</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">Pirms 15 min</text>
+ <text id="IDS_CLD_BODY_LOCATION">Atrašanās vieta</text>
+ <text id="IDS_CLD_BODY_MONDAY">Pirmdiena</text>
+ <text id="IDS_CLD_BODY_ON_TIME">Laikā</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">Reizi 3 dienās</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Katru gadu</text>
+ <text id="IDS_COM_BODY_DECEMBER">Decembris</text>
+ <text id="IDS_CLD_HEADER_DELETE">Dzēst</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">Šis notikums tiks dzēsts</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Pievienot kalendāram</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">Nav notikumu</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Kalendārs</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Apraksts</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Visu dienu</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Laika josla</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">diena(-s)</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Dzēst</text>
+ <text id="IDS_CLD_OPT_EDIT">Rediģēt</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_CLD_BODY_TITLE">Nosaukums</text>
+ <text id="IDS_CLD_TAB4_MONTH">Mēnesis</text>
+ <text id="IDS_CLD_SK3_DELETE">Dzēst</text>
+ <text id="IDS_COM_POP_PM_M_ABB">PM</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">Marts</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">Nedēļas pirmā diena</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">Katru mēnesi</text>
+ <text id="IDS_CLD_BODY_REMINDER">Atgādinājums</text>
+ <text id="IDS_COM_BODY_JUNE">Jūnijs</text>
+ <text id="IDS_CST_BODY_NOTICE">Paziņojums</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Nav vienumu</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">Katru dienu</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Saglabāšana neizdevās</text>
+ <text id="IDS_CLD_SK_SAVE">Saglabāt</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Nėra</text>
+ <text id="IDS_COM_SK4_SHARE">Bendrinti</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">Pasirinkta: %d</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Pasirinkti viską</text>
+ <text id="IDS_COM_POP_CLOSE">Uždaryti</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Ar trinti?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Visą šį mėnesį</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">Prieš 1 dieną</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Maža</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">Kas savaitę</text>
+ <text id="IDS_COM_BODY_JANUARY">Sausis</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">prieš</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Vasaris</text>
+ <text id="IDS_COM_BODY_JULY">Liepa</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Rodyti savaitės numerį</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Nėra pavadinimo</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Pridėti paskyrą</text>
+ <text id="IDS_CLD_SK3_CREATE">Kurti</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Netinkamas laikas</text>
+ <text id="IDS_CLD_BODY_LIST">Sąrašas</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Tik šis įvykis</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Ieškoti</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Žinutė</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">Rugpjūtis</text>
+ <text id="IDS_COM_BODY_MAY">Geg.</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Visi pasikartojantys įvykiai</text>
+ <text id="IDS_COM_BODY_OCTOBER">Spalis</text>
+ <text id="IDS_COM_POP_TIMES_LC">kartai</text>
+ <text id="IDS_CLD_SK_CANCEL">Atšaukti</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">Atlikta</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Pirmenybė</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">El. paštas</text>
+ <text id="IDS_COM_BODY_HIGH">Aukšta</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">Prieš 2 dienas</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Veiksmas nepavyko</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Neteisingas pakartot. laikas</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Redaguoti įvykį</text>
+ <text id="IDS_CLD_BODY_START_TIME">Pradžios laikas</text>
+ <text id="IDS_CLD_BODY_REPEAT">Kartoti</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">Prieš 5 min.</text>
+ <text id="IDS_CLD_SK3_EDIT">Redaguoti</text>
+ <text id="IDS_CLD_BODY_END_TIME">Pabaigos laikas</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Užfiksuoti laiko juostą</text>
+ <text id="IDS_CLD_BODY_OFF">Išjungta</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Rinktis</text>
+ <text id="IDS_CLD_OPT_DELETE">Trinti</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Terminas</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Naikinti įvykį</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Išsaugoti</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">savaitė(-s)</text>
+ <text id="IDS_COM_BODY_NOVEMBER">Lapkritis</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Sekmadienis</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">Prieš savaitę</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Kurti įvykį</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Diena</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Importuoti įvyk. / užd.</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">Balandis</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Visą šią dieną</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">Kas 2 savaites</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Visas kalendorius</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">Prieš 1 valandą</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Užfiksuoti įvykių laiką ir datą pagal toliau pasirinktą laiko juostą. Laikas ir data nesikeis, net jei būsite kitoje laiko juostoje</text>
+ <text id="IDS_CLD_BODY_YEAR">Metai</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Visi įvykiai iki šiandien</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Eksportuot įvyk. / užd.</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">Rugsėjis</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Kartoti iki</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Visus šiuos metus</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">Prieš 15 min.</text>
+ <text id="IDS_CLD_BODY_LOCATION">Vieta</text>
+ <text id="IDS_CLD_BODY_MONDAY">Pirmadienis</text>
+ <text id="IDS_CLD_BODY_ON_TIME">Laiku</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">Kas 3 d.</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Kiekvienais metais</text>
+ <text id="IDS_COM_BODY_DECEMBER">Gruodis</text>
+ <text id="IDS_CLD_HEADER_DELETE">Trinti</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">Šis įvykis bus panaikintas</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Pridėti į kalendorių</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">Nėra įvykių</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Kalend.</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Aprašas</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Visą dieną</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Laiko juosta</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">d.</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Trinti</text>
+ <text id="IDS_CLD_OPT_EDIT">Redaguoti</text>
+ <text id="IDS_COM_POP_AM_M_ABB">АМ</text>
+ <text id="IDS_CLD_BODY_TITLE">Pavadinimas</text>
+ <text id="IDS_CLD_TAB4_MONTH">Mėnuo</text>
+ <text id="IDS_CLD_SK3_DELETE">Trinti</text>
+ <text id="IDS_COM_POP_PM_M_ABB">PM</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">„Wi-Fi Direct“</text>
+ <text id="IDS_COM_BODY_MARCH">Kovas</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">Pirma savaitės diena</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">Kas mėnesį</text>
+ <text id="IDS_CLD_BODY_REMINDER">Priminimas</text>
+ <text id="IDS_COM_BODY_JUNE">Birželis</text>
+ <text id="IDS_CST_BODY_NOTICE">Pastaba</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Elementų nėra</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">Kiekvieną dieną</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Išsaugoti nepavyko</text>
+ <text id="IDS_CLD_SK_SAVE">Išsaugoti</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Ништо</text>
+ <text id="IDS_COM_SK4_SHARE">Сподели</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">Избрани се %d</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Избери ги сите</text>
+ <text id="IDS_COM_POP_CLOSE">Затвори</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Да се избрише?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Цел овој месец</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 ден претходно</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Низок</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">секоја седмица</text>
+ <text id="IDS_COM_BODY_JANUARY">Јануари</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">претходно извест.</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Февруари</text>
+ <text id="IDS_COM_BODY_JULY">Јули</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Прикажувај број на седмицата</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Нема наслов</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Додај сметка</text>
+ <text id="IDS_CLD_SK3_CREATE">Ново</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Неправилен час</text>
+ <text id="IDS_CLD_BODY_LIST">Листа</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Само овој настан</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Пребарување</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Порака</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">Август</text>
+ <text id="IDS_COM_BODY_MAY">Мај</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Сите повторливи настани</text>
+ <text id="IDS_COM_BODY_OCTOBER">Октомври</text>
+ <text id="IDS_COM_POP_TIMES_LC">пати</text>
+ <text id="IDS_CLD_SK_CANCEL">Откажи</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">Готово</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Приоритет</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">E-mail</text>
+ <text id="IDS_COM_BODY_HIGH">Висок</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 дена порано</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Неуспешна операција</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Неправилен период на повторување</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Измени настан</text>
+ <text id="IDS_CLD_BODY_START_TIME">Почетен час</text>
+ <text id="IDS_CLD_BODY_REPEAT">Повторување</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 минути претходно</text>
+ <text id="IDS_CLD_SK3_EDIT">Измени</text>
+ <text id="IDS_CLD_BODY_END_TIME">Краен час</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Заклучи временска зона</text>
+ <text id="IDS_CLD_BODY_OFF">Исклучено</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Избери</text>
+ <text id="IDS_CLD_OPT_DELETE">Избриши</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Рок</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Избриши настан</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Меморирај во</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">седмици</text>
+ <text id="IDS_COM_BODY_NOVEMBER">Ноември</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Недела</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 седмица претходно</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Нов настан</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Ден</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Увези настани/задачи</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">Април</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Цел овој ден</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">На 2 седмици</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Цел календар</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 час претходно</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Заклучување на времињата и датумите на настаните за вашата избрана временска зона подолу. Времињата и датумите нема да се сменат, дури и ако се преместите во друга временска зона</text>
+ <text id="IDS_CLD_BODY_YEAR">Година</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Сите настани пред денес</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Извези настани/задачи</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">Септември</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Повторувај до</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Цела оваа година</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 минути претходно</text>
+ <text id="IDS_CLD_BODY_LOCATION">Локација</text>
+ <text id="IDS_CLD_BODY_MONDAY">Понеделник</text>
+ <text id="IDS_CLD_BODY_ON_TIME">Во одредено време</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">На 3 денови</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Секоја година</text>
+ <text id="IDS_COM_BODY_DECEMBER">Декември</text>
+ <text id="IDS_CLD_HEADER_DELETE">Избриши</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">Овој настан ќе се избрише</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Додај во календар</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">Нема настани</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Календар</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Опис</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Цел ден</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Часовна зона</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">ден(ови)</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Бриши</text>
+ <text id="IDS_CLD_OPT_EDIT">Измени</text>
+ <text id="IDS_COM_POP_AM_M_ABB">АМ</text>
+ <text id="IDS_CLD_BODY_TITLE">Наслов</text>
+ <text id="IDS_CLD_TAB4_MONTH">Месец</text>
+ <text id="IDS_CLD_SK3_DELETE">Избриши</text>
+ <text id="IDS_COM_POP_PM_M_ABB">PM</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">Март</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">Прв ден на седмицата</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">секој месец</text>
+ <text id="IDS_CLD_BODY_REMINDER">Потсетник</text>
+ <text id="IDS_COM_BODY_JUNE">Јуни</text>
+ <text id="IDS_CST_BODY_NOTICE">Известување</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Нема записи</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">Секој ден</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Неуспешно снимање</text>
+ <text id="IDS_CLD_SK_SAVE">Сочувај</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Geen</text>
+ <text id="IDS_COM_SK4_SHARE">Delen</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d geselecteerd</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Alles selecteren</text>
+ <text id="IDS_COM_POP_CLOSE">Sluiten</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Verwijderen?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Alles van deze maand</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 dag van tevoren</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Laag</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">Wekelijks</text>
+ <text id="IDS_COM_BODY_JANUARY">Januari</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">voor</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Februari</text>
+ <text id="IDS_COM_BODY_JULY">Juli</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Weeknummer tonen</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Geen titel</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Account toevoegen</text>
+ <text id="IDS_CLD_SK3_CREATE">Nieuw</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Ongeldige tijd</text>
+ <text id="IDS_CLD_BODY_LIST">Lijst</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Alleen deze gebeurtenis</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Zoeken</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Bericht</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">Augustus</text>
+ <text id="IDS_COM_BODY_MAY">Mei</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Alle terugkerende agenda-items</text>
+ <text id="IDS_COM_BODY_OCTOBER">Oktober</text>
+ <text id="IDS_COM_POP_TIMES_LC">keer</text>
+ <text id="IDS_CLD_SK_CANCEL">Annuleren</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">Gereed</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Prioriteit</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">E-mail</text>
+ <text id="IDS_COM_BODY_HIGH">Hoog</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 dagen van tevoren</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Bewerking is mislukt</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Ongeldig herhaal-\nperiode</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Gebeurtenis bewerken</text>
+ <text id="IDS_CLD_BODY_START_TIME">Begintijd</text>
+ <text id="IDS_CLD_BODY_REPEAT">Herhalen</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 minuten van tevoren</text>
+ <text id="IDS_CLD_SK3_EDIT">Wijzigen</text>
+ <text id="IDS_CLD_BODY_END_TIME">Eindtijd</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Tijdzone vergrendelen</text>
+ <text id="IDS_CLD_BODY_OFF">Uit</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Select.</text>
+ <text id="IDS_CLD_OPT_DELETE">Wissen</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Datum gereed</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Gebeurtenis verwijderen</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Opslaan in</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">week/weken</text>
+ <text id="IDS_COM_BODY_NOVEMBER">November</text>
+ <text id="IDS_CLD_BODY_SUNDAY">zondag</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 week van tevoren</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Nieuwe afspraak</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Dag</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Agenda-items/taken imp</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">April</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Alles van vandaag</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">Om de 2 weken</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Alle agenda-items</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 uur van tevoren</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Zet de tijd en de datum van de agenda-items vast op de hieronder geselecteerde tijdzone. De tijd en de datum van het agenda-item veranderen niet, zelfs niet als u naar een andere tijdzone gaat</text>
+ <text id="IDS_CLD_BODY_YEAR">jaar</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Alle agenda-items voor vandaag</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Agenda-items/taken exp</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">September</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Herhalen tot</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Dit hele jaar</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 minuten voor</text>
+ <text id="IDS_CLD_BODY_LOCATION">Plaats</text>
+ <text id="IDS_CLD_BODY_MONDAY">maandag</text>
+ <text id="IDS_CLD_BODY_ON_TIME">Op tijd</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">Om de 3 dagen</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Jaarlijks</text>
+ <text id="IDS_COM_BODY_DECEMBER">December</text>
+ <text id="IDS_CLD_HEADER_DELETE">Wissen</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">Deze gebeurtenis wordt verwijderd</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Toevoegen aan agenda</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">Geen gebeurtenissen</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Agenda</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Omschrijving</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Hele dag</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Tijdzone</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">dag(en)</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Wissen</text>
+ <text id="IDS_CLD_OPT_EDIT">Bewerken</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_CLD_BODY_TITLE">Titel</text>
+ <text id="IDS_CLD_TAB4_MONTH">Maand</text>
+ <text id="IDS_CLD_SK3_DELETE">Wissen</text>
+ <text id="IDS_COM_POP_PM_M_ABB">PM</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">Maart</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">Eerste dag van de week</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">Maandelijks</text>
+ <text id="IDS_CLD_BODY_REMINDER">Herinnering</text>
+ <text id="IDS_COM_BODY_JUNE">Juni</text>
+ <text id="IDS_CST_BODY_NOTICE">Melding</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Geen items</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">Dagelijks</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Opslaan mislukt</text>
+ <text id="IDS_CLD_SK_SAVE">Opslaan</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Ingen</text>
+ <text id="IDS_COM_SK4_SHARE">Del</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d valgt</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Merk alt</text>
+ <text id="IDS_COM_POP_CLOSE">Lukk</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Slette?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Alle denne måneden</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 dag før</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Lav</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">Hver uke</text>
+ <text id="IDS_COM_BODY_JANUARY">Januar</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">før</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Februar</text>
+ <text id="IDS_COM_BODY_JULY">Juli</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Vis ukenummer</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Ingen tittel</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Legg til konto</text>
+ <text id="IDS_CLD_SK3_CREATE">Opprett</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Ugyldig tid</text>
+ <text id="IDS_CLD_BODY_LIST">Liste</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Bare denne hendelsen</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Søk</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Melding</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">August</text>
+ <text id="IDS_COM_BODY_MAY">Mai</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Alle gjentakende hendelser</text>
+ <text id="IDS_COM_BODY_OCTOBER">Oktober</text>
+ <text id="IDS_COM_POP_TIMES_LC">ganger</text>
+ <text id="IDS_CLD_SK_CANCEL">Avbryt</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">Utført</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Prioritet</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">E-post</text>
+ <text id="IDS_COM_BODY_HIGH">Høy</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 dager før</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Operasjonen mislyktes</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Ugyldig periode\nfor gjentagelse</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Rediger hendelse</text>
+ <text id="IDS_CLD_BODY_START_TIME">Starttid</text>
+ <text id="IDS_CLD_BODY_REPEAT">Gjenta</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 min før</text>
+ <text id="IDS_CLD_SK3_EDIT">Rediger</text>
+ <text id="IDS_CLD_BODY_END_TIME">Sluttid</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Lås tidssone</text>
+ <text id="IDS_CLD_BODY_OFF">Av</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Velg</text>
+ <text id="IDS_CLD_OPT_DELETE">Slett</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Forfallsdato</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Slett hendelse</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Lagre i</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">uke(r)</text>
+ <text id="IDS_COM_BODY_NOVEMBER">November</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Søndag</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 uke før</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Opprett hendelse</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Dag</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Imp. hendelser/oppgaver</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">April</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Alle denne dagen</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">Hver andre uke</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Hele kalenderen</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 time før</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Lås hendelsestider og -datoer til din valgte tidssone nedenfor. Klokkeslett og datoer vil ikke endre seg selv om du forflytter deg til en annen tidssone</text>
+ <text id="IDS_CLD_BODY_YEAR">År</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Alle hendelser før i dag</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Eks. hendelser/oppgaver</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">September</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Gjenta til</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Hele dette året</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 min før</text>
+ <text id="IDS_CLD_BODY_LOCATION">Sted</text>
+ <text id="IDS_CLD_BODY_MONDAY">Mandag</text>
+ <text id="IDS_CLD_BODY_ON_TIME">På tiden</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">Hver tredje dag</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Hvert år</text>
+ <text id="IDS_COM_BODY_DECEMBER">Desember</text>
+ <text id="IDS_CLD_HEADER_DELETE">Slett</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">Denne hendelsen vil bli slettet</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Legg til kalender</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">Ingen hendelser</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Kalender</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Beskrivelse</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Hele dagen</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Tidssone</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">Dag(er)</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Slett</text>
+ <text id="IDS_CLD_OPT_EDIT">Rediger</text>
+ <text id="IDS_COM_POP_AM_M_ABB">Formiddag</text>
+ <text id="IDS_CLD_BODY_TITLE">Tittel</text>
+ <text id="IDS_CLD_TAB4_MONTH">Måned</text>
+ <text id="IDS_CLD_SK3_DELETE">Slett</text>
+ <text id="IDS_COM_POP_PM_M_ABB">Ettermiddag</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">Mars</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">Første dag i uken</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">Hver måned</text>
+ <text id="IDS_CLD_BODY_REMINDER">Påminnelse</text>
+ <text id="IDS_COM_BODY_JUNE">Juni</text>
+ <text id="IDS_CST_BODY_NOTICE">Merknad</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Ingen elementer</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">hver dag</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Kunne ikke lagre</text>
+ <text id="IDS_CLD_SK_SAVE">Lagre</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Brak</text>
+ <text id="IDS_COM_SK4_SHARE">Udost.</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">Wybrano %d</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Zaznacz wszystko</text>
+ <text id="IDS_COM_POP_CLOSE">Zamknij</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Usunąć?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Wszystkie w tym miesiącu</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 dzień przed</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Niski</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">Co tydzień</text>
+ <text id="IDS_COM_BODY_JANUARY">Styczeń</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">przed</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Luty</text>
+ <text id="IDS_COM_BODY_JULY">Lipiec</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Wyświetlanie numeru tygodnia</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Brak tytułu</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Dodaj konto</text>
+ <text id="IDS_CLD_SK3_CREATE">Utwórz</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Nieprawidłowa godzina</text>
+ <text id="IDS_CLD_BODY_LIST">Lista</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Tylko to wydarzenie</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Szukaj</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Wiadomość</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">Sierpień</text>
+ <text id="IDS_COM_BODY_MAY">Maj</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Wszystkie powtarzające się wydarzenia</text>
+ <text id="IDS_COM_BODY_OCTOBER">Październik</text>
+ <text id="IDS_COM_POP_TIMES_LC">razy</text>
+ <text id="IDS_CLD_SK_CANCEL">Anuluj</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">OK</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Priorytet</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">E-mail</text>
+ <text id="IDS_COM_BODY_HIGH">Wysoki</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 dni przed</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Operacja nie powiodła się</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Nieprawidłowy okres\npowtarzania</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Edytuj wydarzenie</text>
+ <text id="IDS_CLD_BODY_START_TIME">Godzina rozpoczęcia</text>
+ <text id="IDS_CLD_BODY_REPEAT">Powtarzanie</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 min przed</text>
+ <text id="IDS_CLD_SK3_EDIT">Edytuj</text>
+ <text id="IDS_CLD_BODY_END_TIME">Godzina zakończenia</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Zablokuj strefę czasową</text>
+ <text id="IDS_CLD_BODY_OFF">Wył.</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Wybierz</text>
+ <text id="IDS_CLD_OPT_DELETE">Usuń</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Data zakończenia</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Usuń wydarzenie</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Zapisz w</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">tydzień</text>
+ <text id="IDS_COM_BODY_NOVEMBER">Listopad</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Niedziela</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 tydzień przed</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Utwórz</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Dzień</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Importuj wyd./zadania</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">Kwiecień</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Wszystkie w tym dniu</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">Co 2 tygodnie</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Cały kalendarz</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 godz. przed</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Zablokuj godziny i daty wydarzeń dla wybranej strefy czasowej. Godziny i daty nie ulegną zmianie, nawet jeśli przeniesiesz się do innej strefy czasowej</text>
+ <text id="IDS_CLD_BODY_YEAR">Rok</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Wszystkie wydarzenia przed dniem dzisiejszym</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Eksportuj wyd./zadania</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">Wrzesień</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Powtarzaj aż do</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Wszystkie w tym roku</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 min przed</text>
+ <text id="IDS_CLD_BODY_LOCATION">Miejsce</text>
+ <text id="IDS_CLD_BODY_MONDAY">Poniedziałek</text>
+ <text id="IDS_CLD_BODY_ON_TIME">Na czas</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">Co 3 dni</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Co roku</text>
+ <text id="IDS_COM_BODY_DECEMBER">Grudzień</text>
+ <text id="IDS_CLD_HEADER_DELETE">Usuń</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">To wydarzenie zostanie usunięte</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Dodaj do kalendarza</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">Brak wydarzeń</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Kalendarz</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Opis</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Cały dzień</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Strefa czasowa</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">dni</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Usuń</text>
+ <text id="IDS_CLD_OPT_EDIT">Edytuj</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_CLD_BODY_TITLE">Tytuł</text>
+ <text id="IDS_CLD_TAB4_MONTH">Miesiąc</text>
+ <text id="IDS_CLD_SK3_DELETE">Usuń</text>
+ <text id="IDS_COM_POP_PM_M_ABB">PM</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">Marzec</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">Pierwszy dzień tygodnia</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">Co miesiąc</text>
+ <text id="IDS_CLD_BODY_REMINDER">Przypomnienie</text>
+ <text id="IDS_COM_BODY_JUNE">Czerwiec</text>
+ <text id="IDS_CST_BODY_NOTICE">Uwaga</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Brak elementów</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">Codziennie</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Błąd zapisywania</text>
+ <text id="IDS_CLD_SK_SAVE">Zapisz</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Nenhum</text>
+ <text id="IDS_COM_SK4_SHARE">Compart.</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d selecionado(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Selecionar tudo</text>
+ <text id="IDS_COM_POP_CLOSE">Fechar</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Apagar?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">O mês todo</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 dia antes</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Baixa</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">Semanalmente</text>
+ <text id="IDS_COM_BODY_JANUARY">Janeiro</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">antes</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Fevereiro</text>
+ <text id="IDS_COM_BODY_JULY">Julho</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Exibir número da semana</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Sem título</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Adicionar conta</text>
+ <text id="IDS_CLD_SK3_CREATE">Criar</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Hora inválida</text>
+ <text id="IDS_CLD_BODY_LIST">Lista</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Apenas este evento</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Procurar</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Mensagem</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">Agosto</text>
+ <text id="IDS_COM_BODY_MAY">Maio</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Todos os eventos repetitivos</text>
+ <text id="IDS_COM_BODY_OCTOBER">Outubro</text>
+ <text id="IDS_COM_POP_TIMES_LC">vezes</text>
+ <text id="IDS_CLD_SK_CANCEL">Cancelar</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">OK</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Prioridade</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">E-mail</text>
+ <text id="IDS_COM_BODY_HIGH">Alta</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 dias antes</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Operação falhou</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Período de repetição inválido</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Editar evento</text>
+ <text id="IDS_CLD_BODY_START_TIME">Hora inicial</text>
+ <text id="IDS_CLD_BODY_REPEAT">Repetir</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 min. antes</text>
+ <text id="IDS_CLD_SK3_EDIT">Editar</text>
+ <text id="IDS_CLD_BODY_END_TIME">Hora final</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Bloquear fuso horário</text>
+ <text id="IDS_CLD_BODY_OFF">Desativado</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Selecionar</text>
+ <text id="IDS_CLD_OPT_DELETE">Apagar</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Data limite</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Apagar evento</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Salvar em</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">semana(s)</text>
+ <text id="IDS_COM_BODY_NOVEMBER">Novembro</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Domingo</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 semana antes</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Criar evento</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Dia</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Imp. eventos/tarefas</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">Abril</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">O dia todo</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">A cada 2 semanas</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Todos os calendários</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 hora antes</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Bloqueie as horas e as datas dos eventos no fuso horário selecionado abaixo. As horas e as datas não serão alteradas, mesmo que se desloque para outro fuso horário</text>
+ <text id="IDS_CLD_BODY_YEAR">Ano</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Todos os eventos anteriores a hoje</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Exp. eventos/tarefas</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">Setembro</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Repetir até</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">O ano todo</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 min antes</text>
+ <text id="IDS_CLD_BODY_LOCATION">Local</text>
+ <text id="IDS_CLD_BODY_MONDAY">Segunda</text>
+ <text id="IDS_CLD_BODY_ON_TIME">Na hora</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">A cada 3 dias</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Anualmente</text>
+ <text id="IDS_COM_BODY_DECEMBER">Dezembro</text>
+ <text id="IDS_CLD_HEADER_DELETE">Apagar</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">Este evento será apagado</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Adicionar à Agenda</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">Nenhum evento</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Calendário</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Descrição</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Todo o dia</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Fuso horário</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">dia(s)</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Apagar</text>
+ <text id="IDS_CLD_OPT_EDIT">Editar</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_CLD_BODY_TITLE">Título</text>
+ <text id="IDS_CLD_TAB4_MONTH">Mês</text>
+ <text id="IDS_CLD_SK3_DELETE">Apagar</text>
+ <text id="IDS_COM_POP_PM_M_ABB">PM</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">Março</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">Primeiro dia da semana</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">Mensalmente</text>
+ <text id="IDS_CLD_BODY_REMINDER">Lembrete</text>
+ <text id="IDS_COM_BODY_JUNE">Junho</text>
+ <text id="IDS_CST_BODY_NOTICE">Aviso</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Sem itens</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">Todos os dias</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Erro ao salvar</text>
+ <text id="IDS_CLD_SK_SAVE">Salvar</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Desligado</text>
+ <text id="IDS_COM_SK4_SHARE">Partilhar</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d seleccionada</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Selec. tudo</text>
+ <text id="IDS_COM_POP_CLOSE">Fechar</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Eliminar?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Todo este mês</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 dia antes</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Baixa</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">todas as semanas</text>
+ <text id="IDS_COM_BODY_JANUARY">Janeiro</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">antes</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Fevereiro</text>
+ <text id="IDS_COM_BODY_JULY">Julho</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Mostrar número da semana</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Sem título</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Adicionar conta</text>
+ <text id="IDS_CLD_SK3_CREATE">Criar</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Hora inválida</text>
+ <text id="IDS_CLD_BODY_LIST">Lista</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Apenas este evento</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Procurar</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Mensagem</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">Agosto</text>
+ <text id="IDS_COM_BODY_MAY">Maio</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Todos os eventos de repetição</text>
+ <text id="IDS_COM_BODY_OCTOBER">Outubro</text>
+ <text id="IDS_COM_POP_TIMES_LC">vezes</text>
+ <text id="IDS_CLD_SK_CANCEL">Cancelar</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">Concluído</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Prioridade</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">E-mail</text>
+ <text id="IDS_COM_BODY_HIGH">Alta</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 dias antes</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Operação falhou</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Período de\nrepetição inválido</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Editar evento</text>
+ <text id="IDS_CLD_BODY_START_TIME">Hora de início</text>
+ <text id="IDS_CLD_BODY_REPEAT">Repetir</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 min. antes</text>
+ <text id="IDS_CLD_SK3_EDIT">Editar</text>
+ <text id="IDS_CLD_BODY_END_TIME">Hora de fim</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Bloquear fuso horário</text>
+ <text id="IDS_CLD_BODY_OFF">Desligar</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Selec.</text>
+ <text id="IDS_CLD_OPT_DELETE">Eliminar</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Data limite</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Eliminar evento</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Guardar em</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">semana(s)</text>
+ <text id="IDS_COM_BODY_NOVEMBER">Novembro</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Domingo</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 semana antes</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Criar evento</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Dia</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Import. eventos/tarefas</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">Abril</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Todo este dia</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">De 2 em 2 semanas</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Todas as agendas</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 hora antes</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Bloqueie as horas e as datas dos eventos no fuso horário seleccionado abaixo. As horas e as datas não serão alteradas, mesmo que se desloque para outro fuso horário</text>
+ <text id="IDS_CLD_BODY_YEAR">Ano</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Todos os eventos anteriores a hoje</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Export. eventos/tarefas</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">Setembro</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Repetir até</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Todo este ano</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 minutos antes</text>
+ <text id="IDS_CLD_BODY_LOCATION">Localização</text>
+ <text id="IDS_CLD_BODY_MONDAY">Segunda-feira</text>
+ <text id="IDS_CLD_BODY_ON_TIME">Na hora</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">De 3 em 3 dias</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Todos os anos</text>
+ <text id="IDS_COM_BODY_DECEMBER">Dezembro</text>
+ <text id="IDS_CLD_HEADER_DELETE">Eliminar</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">Este evento será eliminado</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Adicionar à Agenda</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">Nenhuns eventos</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Calendário</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Descrição</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Todo o dia</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Fuso horário</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">Dia(s)</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Elim.</text>
+ <text id="IDS_CLD_OPT_EDIT">Editar</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_CLD_BODY_TITLE">Título</text>
+ <text id="IDS_CLD_TAB4_MONTH">Mês</text>
+ <text id="IDS_CLD_SK3_DELETE">Eliminar</text>
+ <text id="IDS_COM_POP_PM_M_ABB">PM</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">Março</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">Primeiro dia da semana</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">todos os meses</text>
+ <text id="IDS_CLD_BODY_REMINDER">Lembrete</text>
+ <text id="IDS_COM_BODY_JUNE">Junho</text>
+ <text id="IDS_CST_BODY_NOTICE">Notificação</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Sem itens</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">todos os dias</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Falha ao gravar</text>
+ <text id="IDS_CLD_SK_SAVE">Guardar</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Niciuna</text>
+ <text id="IDS_COM_SK4_SHARE">Partajare</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d selectate</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Selectare toate</text>
+ <text id="IDS_COM_POP_CLOSE">Închidere</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Ştergeţi?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Toate din această lună</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">Cu o zi înainte</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Scăzută</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">săptămânal</text>
+ <text id="IDS_COM_BODY_JANUARY">Ianuarie</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">înainte</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Februarie</text>
+ <text id="IDS_COM_BODY_JULY">Iulie</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Afişare număr săptămână</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Nici un titlu</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Adăugare cont</text>
+ <text id="IDS_CLD_SK3_CREATE">Creare</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Oră incorectă</text>
+ <text id="IDS_CLD_BODY_LIST">Listă</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Numai pentru acest eveniment</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Căutare</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Mesaj</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">August</text>
+ <text id="IDS_COM_BODY_MAY">Mai</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Toate evenimentele repetitive</text>
+ <text id="IDS_COM_BODY_OCTOBER">Octombrie</text>
+ <text id="IDS_COM_POP_TIMES_LC">ori</text>
+ <text id="IDS_CLD_SK_CANCEL">Anulare</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">Gata</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Prioritate</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">Email</text>
+ <text id="IDS_COM_BODY_HIGH">Ridicată</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">Cu 2 zile înainte</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Operaţie nereuşită</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Perioadă de repetiţie incorectă</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Editare eveniment</text>
+ <text id="IDS_CLD_BODY_START_TIME">Oră de început</text>
+ <text id="IDS_CLD_BODY_REPEAT">Repetare</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">Cu 5 min. înainte</text>
+ <text id="IDS_CLD_SK3_EDIT">Editare</text>
+ <text id="IDS_CLD_BODY_END_TIME">Oră terminare</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Blocare fus orar</text>
+ <text id="IDS_CLD_BODY_OFF">Oprit</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Selectare</text>
+ <text id="IDS_CLD_OPT_DELETE">Ştergere</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Dată limită</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Ştergere eveniment</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Salvare în</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">săptămâni</text>
+ <text id="IDS_COM_BODY_NOVEMBER">Noiembrie</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Duminică</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 săptămână înainte</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Creare eveniment</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Ziua</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Import even./activităţi</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">Aprilie</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Toate din această zi</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">La 2 săptămâni</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Întregul calendar</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">Cu o oră înainte</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Blocaţi orele şi datele evenimentului la fusul orar selectat de mai jos. Orele şi datele nu se vor modifica, nici dacă vă deplasaţi în alt fus orar</text>
+ <text id="IDS_CLD_BODY_YEAR">Anul</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Toate evenimentele anterioare zilei de astăzi</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Export even./activităţi</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">Septembrie</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Repetare până la</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Toate din anul acesta</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 minute înainte</text>
+ <text id="IDS_CLD_BODY_LOCATION">Amplasare</text>
+ <text id="IDS_CLD_BODY_MONDAY">Luni</text>
+ <text id="IDS_CLD_BODY_ON_TIME">La timp</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">La 3 zile</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">În fiecare an</text>
+ <text id="IDS_COM_BODY_DECEMBER">Decembrie</text>
+ <text id="IDS_CLD_HEADER_DELETE">Ştergere</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">Acest eveniment va fi şters</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Adăugare la calendar</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">Nu există evenimente</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Calendar</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Descriere</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Toată ziua</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Fus orar</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">zile</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Şterg.</text>
+ <text id="IDS_CLD_OPT_EDIT">Editare</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_CLD_BODY_TITLE">Titlu</text>
+ <text id="IDS_CLD_TAB4_MONTH">Lună</text>
+ <text id="IDS_CLD_SK3_DELETE">Ştergere</text>
+ <text id="IDS_COM_POP_PM_M_ABB">PM</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">Martie</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">Prima zi a săptămânii</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">lunar</text>
+ <text id="IDS_CLD_BODY_REMINDER">Memento</text>
+ <text id="IDS_COM_BODY_JUNE">Iunie</text>
+ <text id="IDS_CST_BODY_NOTICE">Notificare</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Niciun element</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">În fiecare zi</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Salvare nereuşită</text>
+ <text id="IDS_CLD_SK_SAVE">Salvare</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Нет</text>
+ <text id="IDS_COM_SK4_SHARE">Отправить</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">Выбрано: %d</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Выбрать все</text>
+ <text id="IDS_COM_POP_CLOSE">Закрыть</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Удалить?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Весь месяц</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">За 1 день</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Низкий</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">Еженедельно</text>
+ <text id="IDS_COM_BODY_JANUARY">Январь</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">за</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Февраль</text>
+ <text id="IDS_COM_BODY_JULY">Июль</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Показывать номер недели</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Нет названия</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Добавить уч. запись</text>
+ <text id="IDS_CLD_SK3_CREATE">Создать</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Неверное время</text>
+ <text id="IDS_CLD_BODY_LIST">Список файлов</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Только это событие</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Поиск</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Сообщение</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">Август</text>
+ <text id="IDS_COM_BODY_MAY">Май</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Все повторяющиеся события</text>
+ <text id="IDS_COM_BODY_OCTOBER">Октябрь</text>
+ <text id="IDS_COM_POP_TIMES_LC">раз.</text>
+ <text id="IDS_CLD_SK_CANCEL">Отмена</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">Готово</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Приоритет</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">E-mail</text>
+ <text id="IDS_COM_BODY_HIGH">Высокий</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">За 2 дня</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Сбой операции</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Неверный период повтора</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Изменить событие</text>
+ <text id="IDS_CLD_BODY_START_TIME">Время начала</text>
+ <text id="IDS_CLD_BODY_REPEAT">Повтор</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">За 5 минут</text>
+ <text id="IDS_CLD_SK3_EDIT">Изменить</text>
+ <text id="IDS_CLD_BODY_END_TIME">Время окончания</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Фикс. часовой пояс</text>
+ <text id="IDS_CLD_BODY_OFF">Выключено</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Выбор</text>
+ <text id="IDS_CLD_OPT_DELETE">Удалить</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Дата завершения</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Удалить событие</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Сохранить в</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">нед.</text>
+ <text id="IDS_COM_BODY_NOVEMBER">Ноябрь</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Воскресенье</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">За 1 неделю</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Создать событие</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">День</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Импорт событий/задач</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">Апрель</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Весь день</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">Каждые 2 недели</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Весь календарь</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">За 1 час</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Фиксация времени и дат событий в указанном ниже часовом поясе. Время и дата не будут изменяться даже при перемещении в другой часовой пояс</text>
+ <text id="IDS_CLD_BODY_YEAR">Год</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Все события до сегодня</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Экспорт событий/задач</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">Сентябрь</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Повторять до</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Весь год</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">За 15 минут</text>
+ <text id="IDS_CLD_BODY_LOCATION">Место</text>
+ <text id="IDS_CLD_BODY_MONDAY">Понедельник</text>
+ <text id="IDS_CLD_BODY_ON_TIME">Время включения</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">Через 3 дня</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Ежегодно</text>
+ <text id="IDS_COM_BODY_DECEMBER">Декабрь</text>
+ <text id="IDS_CLD_HEADER_DELETE">Удалить</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">Событие будет удалено</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Добавить в календарь</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">Нет событий</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Календарь</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Описание</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Весь день</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Часовой пояс</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">дн.</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Удал.</text>
+ <text id="IDS_CLD_OPT_EDIT">Изменить</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_CLD_BODY_TITLE">Название</text>
+ <text id="IDS_CLD_TAB4_MONTH">Месяц</text>
+ <text id="IDS_CLD_SK3_DELETE">Удалить</text>
+ <text id="IDS_COM_POP_PM_M_ABB">PM</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">Март</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">Первый день недели</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">Ежемесячно</text>
+ <text id="IDS_CLD_BODY_REMINDER">Напоминание</text>
+ <text id="IDS_COM_BODY_JUNE">Июнь</text>
+ <text id="IDS_CST_BODY_NOTICE">Уведомление</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Нет элементов</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">Каждый день</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Сбой сохранения</text>
+ <text id="IDS_CLD_SK_SAVE">Соxранить</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<!DOCTYPE Scene SYSTEM "UIForm.dtd">
+
+<Scene Bversion="3.0.0.v20120705" Dversion="20120315">
+ <LogicalCoordinate>720</LogicalCoordinate>
+ <Form id="IDL_CALENDAR_LIST_FORM">
+ <property backgroundColor="#F8F6EF" backgroundColorOpacity="100" orientation="Portrait" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_CENTER" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>
+ <layout mode="Portrait" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ <layout mode="Landscape" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ </Form>
+ <Footer>
+ <property backgroundBitmapPath="" color="#F8F6EF" colorOpacity="100" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" footerStyle="FOOTER_STYLE_BUTTON_TEXT" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" showBackButton="true"/>
+ <itemSet>
+ <footerItem actionId="50001" disabledIconPath="" highlightedIconPath="" normalIconPath="" pressedIconPath="" selectedIconPath="" text="::IDS_COM_SK_ADD_ACCOUNT"/>
+ </itemSet>
+ </Footer>
+ <Header>
+ <property backgroundBitmapPath="" color="#F8F6EF" colorOpacity="100" descriptionText="" descriptionTextColor="" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" headerStyle="HEADER_STYLE_TITLE" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" titleIconPath="" titleText="::IDS_CLD_BODY_CALENDAR" titleTextColor=""/>
+ <itemSet/>
+ </Header>
+ <GroupedListView id="IDC_CALENDARS_GROUPEDLISTVIEW" parent="IDL_CALENDAR_LIST_FORM">
+ <property backgroundColor="" backgroundColorOpacity="0" bitmapPathOfEmptyList="" colorOfEmptyListText="" fastScroll="false" itemDivider="true" itemDividerColor="" sectionColor="" sweepEnabled="false" textOfEmptyList=""/>
+ <layout bottomRelation="IDL_CALENDAR_LIST_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="true" centerVertical="true" height="1009" horizontalFitPolicy="FIT_POLICY_PARENT" leftRelation="IDL_CALENDAR_LIST_FORM" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="IDL_CALENDAR_LIST_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" style="CUSTOM_LIST_STYLE_NORMAL" topRelation="IDL_CALENDAR_LIST_FORM" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_PARENT" width="720" x="0" y="0"/>
+ <layout bottomRelation="IDL_CALENDAR_LIST_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="true" centerVertical="true" height="1009" horizontalFitPolicy="FIT_POLICY_PARENT" leftRelation="IDL_CALENDAR_LIST_FORM" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="IDL_CALENDAR_LIST_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" style="CUSTOM_LIST_STYLE_NORMAL" topRelation="IDL_CALENDAR_LIST_FORM" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_PARENT" width="720" x="0" y="0"/>
+ </GroupedListView>
+</Scene>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<!DOCTYPE Scene SYSTEM "UIForm.dtd">
+<Scene Bversion="3.0.0.201212071727" Dversion="20120315">
+ <LogicalCoordinate>720</LogicalCoordinate>
+ <Form id="IDL_DAY_EVENT_LIST_FORM">
+ <property backgroundColor="#F8F6EF" backgroundColorOpacity="100" orientation="Portrait" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_CENTER" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>
+ <layout mode="Portrait" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ <layout mode="Landscape" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ </Form>
+ <Footer>
+ <property backgroundBitmapPath="" color="#F8F6EF" colorOpacity="100" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" footerStyle="FOOTER_STYLE_BUTTON_ICON_TEXT" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" showBackButton="true"/>
+ <itemSet/>
+ </Footer>
+ <Header>
+ <property backgroundBitmapPath="" color="#F8F6EF" colorOpacity="100" descriptionText="" descriptionTextColor="" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" headerStyle="HEADER_STYLE_TITLE" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" titleIconPath="" titleText="" titleTextColor=""/>
+ <itemSet/>
+ </Header>
+ <ListView id="IDC_LISTVIEW" parent="IDL_DAY_EVENT_LIST_FORM">
+ <property backgroundColor="" backgroundColorOpacity="0" bitmapPathOfEmptyList="00_Nocontents_text.png" colorOfEmptyListText="" fastScroll="false" itemDivider="true" itemDividerColor="" sweepEnabled="false" textOfEmptyList="::IDS_CLD_BODY_NO_EVENTS"/>
+ <layout bottomRelation="IDL_DAY_EVENT_LIST_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="1022" horizontalFitPolicy="FIT_POLICY_PARENT" leftRelation="IDL_DAY_EVENT_LIST_FORM" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="IDL_DAY_EVENT_LIST_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="IDL_DAY_EVENT_LIST_FORM" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_PARENT" width="720" x="0" y="0"/>
+ <layout bottomRelation="IDL_DAY_EVENT_LIST_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="1022" horizontalFitPolicy="FIT_POLICY_PARENT" leftRelation="IDL_DAY_EVENT_LIST_FORM" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="IDL_DAY_EVENT_LIST_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="IDL_DAY_EVENT_LIST_FORM" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_PARENT" width="720" x="0" y="0"/>
+ </ListView>
+</Scene>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<!DOCTYPE Scene SYSTEM "UIForm.dtd">
+<Scene Bversion="3.0.0.201301221116" Dversion="20120315">
+ <LogicalCoordinate>720</LogicalCoordinate>
+ <Form id="IDL_EVENT_DELETER_FORM">
+ <property backgroundColor="#F8F6EF" backgroundColorOpacity="100" orientation="Portrait" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_CENTER" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>
+ <layout mode="Portrait" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ <layout mode="Landscape" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ </Form>
+ <Footer>
+ <property backgroundBitmapPath="" color="#F8F6EF" colorOpacity="100" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" footerStyle="FOOTER_STYLE_BUTTON_TEXT" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" showBackButton="true"/>
+ <itemSet>
+ <footerItem actionId="80001" disabledIconPath="" highlightedIconPath="" normalIconPath="" pressedIconPath="" selectedIconPath="" text="::IDS_CLD_BUTTON_DELETE"/>
+ </itemSet>
+ </Footer>
+ <Header>
+ <property backgroundBitmapPath="" color="#F8F6EF" colorOpacity="100" descriptionText="" descriptionTextColor="" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" headerStyle="HEADER_STYLE_TITLE" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" titleIconPath="" titleText="::IDS_CLD_OPT_DELETE_EVENT" titleTextColor=""/>
+ <itemSet/>
+ </Header>
+ <Panel id="IDC_PANEL" parent="IDL_EVENT_DELETER_FORM">
+ <property backgroundColor="" backgroundColorOpacity="0" compositeEnabled="true" groupStyle="GROUP_STYLE_NONE"/>
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="256" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDL_EVENT_DELETER_FORM" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="IDL_EVENT_DELETER_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="" topRelationType="" type="NONE" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="0" y="0"/>
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="256" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDL_EVENT_DELETER_FORM" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="IDL_EVENT_DELETER_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="" topRelationType="" type="NONE" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="0" y="0"/>
+ </Panel>
+ <CheckButton id="IDC_SELECTALL_CHECKBUTTON" parent="IDC_PANEL">
+ <property backgroundStyle="BACKGROUND_STYLE_DEFAULT" colorOfText="" colorOfTitleText="" disabledColor="" disabledColorOpacity="100" disabledTextColor="" disabledTitleTextColor="" groupId="0" groupStyle="GROUP_STYLE_NONE" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" highlightedTitleTextColor="" horizontalAlign="ALIGN_LEFT" normalColor="" normalColorOpacity="100" pressedColor="" pressedColorOpacity="100" pressedTextColor="" pressedTitleTextColor="" showTitleText="false" text="::IDS_COM_BODY_SELECT_ALL" titleText="" verticalAlign="ALIGN_MIDDLE"/>
+ <layout height="128" mode="Portrait" style="" width="720" x="0" y="0"/>
+ <layout height="108" mode="Landscape" style="" width="533" x="5" y="0"/>
+ </CheckButton>
+ <CheckButton id="IDC_BEFORETODAY_CHECKBUTTON" parent="IDC_PANEL">
+ <property backgroundStyle="BACKGROUND_STYLE_DEFAULT" colorOfText="" colorOfTitleText="" disabledColor="" disabledColorOpacity="100" disabledTextColor="" disabledTitleTextColor="" groupId="0" groupStyle="GROUP_STYLE_NONE" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" highlightedTitleTextColor="" horizontalAlign="ALIGN_LEFT" normalColor="" normalColorOpacity="100" pressedColor="" pressedColorOpacity="100" pressedTextColor="" pressedTitleTextColor="" showTitleText="false" text="::IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY" titleText="" verticalAlign="ALIGN_MIDDLE"/>
+ <layout height="128" mode="Portrait" style="" width="720" x="0" y="128"/>
+ <layout height="108" mode="Landscape" style="" width="533" x="44" y="33"/>
+ </CheckButton>
+ <Label id="IDC_LABEL" parent="IDL_EVENT_DELETER_FORM">
+ <property backgroundBitmapPath="" backgroundColor="#D7E1E8" backgroundColorOpacity="100" horizontalAlign="ALIGN_CENTER" text="" textColor="" textSize="32" textStyle="LABEL_TEXT_STYLE_BOLD" verticalAlign="ALIGN_MIDDLE"/>
+ <layout bottomRelation="IDL_EVENT_DELETER_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="48" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDL_EVENT_DELETER_FORM" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="IDL_EVENT_DELETER_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="0" y="963"/>
+ <layout bottomRelation="IDL_EVENT_DELETER_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="48" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDL_EVENT_DELETER_FORM" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="IDL_EVENT_DELETER_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="0" y="963"/>
+ </Label>
+ <GroupedListView id="IDC_GROUPEDLISTVIEW" parent="IDL_EVENT_DELETER_FORM">
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" bitmapPathOfEmptyList="" colorOfEmptyListText="" fastScroll="false" itemDivider="true" itemDividerColor="" sectionColor="" sweepEnabled="false" textOfEmptyList=""/>
+ <layout bottomRelation="IDC_LABEL" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_TOP" centerHorizontal="true" centerVertical="false" height="707" horizontalFitPolicy="FIT_POLICY_PARENT" leftRelation="IDL_EVENT_DELETER_FORM" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="IDL_EVENT_DELETER_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" style="CUSTOM_LIST_STYLE_NORMAL" topRelation="IDC_PANEL" topRelationType="RECT_EDGE_RELATION_TOP_TO_BOTTOM" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="0" y="256"/>
+ <layout bottomRelation="IDC_LABEL" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_TOP" centerHorizontal="true" centerVertical="false" height="707" horizontalFitPolicy="FIT_POLICY_PARENT" leftRelation="IDL_EVENT_DELETER_FORM" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="IDL_EVENT_DELETER_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" style="CUSTOM_LIST_STYLE_NORMAL" topRelation="IDC_PANEL" topRelationType="RECT_EDGE_RELATION_TOP_TO_BOTTOM" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="0" y="256"/>
+ </GroupedListView>
+</Scene>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<!DOCTYPE Scene SYSTEM "UIForm.dtd">
+<Scene Bversion="3.0.0.201212031816" Dversion="20120315">
+ <LogicalCoordinate>720</LogicalCoordinate>
+ <Form id="IDL_EVENT_DETAILS_FORM">
+ <property backgroundColor="#F8F6EF" backgroundColorOpacity="100" orientation="Portrait" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_CENTER" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>
+ <layout mode="Portrait" style="FORM_STYLE_INDICATOR|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ <layout mode="Landscape" style="FORM_STYLE_INDICATOR|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ </Form>
+ <Footer>
+ <property backgroundBitmapPath="" color="#F8F6EF" colorOpacity="100" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" footerStyle="FOOTER_STYLE_BUTTON_TEXT" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" showBackButton="true"/>
+ <itemSet>
+ <footerItem actionId="60001" disabledIconPath="" highlightedIconPath="" normalIconPath="" pressedIconPath="" selectedIconPath="" text="::IDS_CLD_SK3_EDIT"/>
+ <buttonItem actionId="60010" disabledBGBitmapPath="" disabledIconPath="" highlightedBGBitmapPath="" highlightedIconPath="P01_icon_more_press.png" normalBGBitmapPath="" normalIconPath="P01_icon_more.png" position="BUTTON_POSITION_LEFT" pressedBGBitmapPath="" pressedIconPath="P01_icon_more_press.png" style="BUTTON_ITEM_STYLE_ICON" text="" type="left"/>
+ </itemSet>
+ </Footer>
+ <SectionTableView id="IDC_SECTIONTABLEVIEW" parent="IDL_EVENT_DETAILS_FORM">
+ <property backgroundColor="" backgroundColorOpacity="0" fastScrollIndex="" groupedLookEnabled="true" itemDivider="true" itemDividerColor="" scrollBarStyle="TABLE_VIEW_SCROLL_BAR_STYLE_FADE_OUT" scrollInputMode="SCROLL_INPUT_MODE_ALLOW_ANY_DIRECTION" sectionColor="" useSearchIcon="false"/>
+ <layout bottomRelation="IDL_EVENT_DETAILS_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="1022" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDL_EVENT_DETAILS_FORM" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="IDL_EVENT_DETAILS_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="IDL_EVENT_DETAILS_FORM" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="0" y="0"/>
+ <layout bottomRelation="IDL_EVENT_DETAILS_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="1022" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDL_EVENT_DETAILS_FORM" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="IDL_EVENT_DETAILS_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="IDL_EVENT_DETAILS_FORM" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="0" y="0"/>
+ </SectionTableView>
+</Scene>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<!DOCTYPE Scene SYSTEM "UIForm.dtd">
+<Scene Bversion="3.0.0.201301151800" Dversion="20120315">
+ <LogicalCoordinate>720</LogicalCoordinate>
+ <Form id="IDL_EVENT_EDITOR_FORM">
+ <property backgroundColor="#F8F6EF" backgroundColorOpacity="100" orientation="Portrait" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_CENTER" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>
+ <layout mode="Portrait" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ <layout mode="Landscape" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ </Form>
+ <Footer>
+ <property backgroundBitmapPath="" color="#F8F6EF" colorOpacity="100" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" footerStyle="FOOTER_STYLE_BUTTON_TEXT" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" showBackButton="true"/>
+ <itemSet>
+ <footerItem actionId="20001" disabledIconPath="" highlightedIconPath="" normalIconPath="" pressedIconPath="" selectedIconPath="" text="::IDS_CLD_SK_SAVE"/>
+ </itemSet>
+ </Footer>
+ <Header>
+ <property backgroundBitmapPath="" color="#F8F6EF" colorOpacity="100" descriptionText="" descriptionTextColor="" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" headerStyle="HEADER_STYLE_TITLE" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" titleIconPath="" titleText="::IDS_CLD_HEADER_CREATE_EVENT" titleTextColor=""/>
+ <itemSet/>
+ </Header>
+ <SectionTableView id="IDC_SECTIONTABLEVIEW" parent="IDL_EVENT_EDITOR_FORM">
+ <property backgroundColor="" backgroundColorOpacity="0" fastScrollIndex="" groupedLookEnabled="true" itemDivider="true" itemDividerColor="" scrollBarStyle="TABLE_VIEW_SCROLL_BAR_STYLE_FADE_OUT" scrollInputMode="SCROLL_INPUT_MODE_ALLOW_ANY_DIRECTION" sectionColor="" useSearchIcon="false"/>
+ <layout bottomRelation="IDL_EVENT_EDITOR_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="1011" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDL_EVENT_EDITOR_FORM" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="IDL_EVENT_EDITOR_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="IDL_EVENT_EDITOR_FORM" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="0" y="0"/>
+ <layout bottomRelation="IDL_EVENT_EDITOR_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="484" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDL_EVENT_EDITOR_FORM" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="IDL_EVENT_EDITOR_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="IDL_EVENT_EDITOR_FORM" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="0" y="0"/>
+ </SectionTableView>
+</Scene>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<!DOCTYPE Scene SYSTEM "UIForm.dtd">
+<Scene Bversion="3.0.0.201301231702" Dversion="20120315">
+ <LogicalCoordinate>720</LogicalCoordinate>
+ <Form id="IDL_EVENT_SEARCHER_FORM">
+ <property backgroundColor="#F8F6EF" backgroundColorOpacity="100" orientation="Portrait" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_CENTER" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>
+ <layout mode="Portrait" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ <layout mode="Landscape" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ </Form>
+ <Footer>
+ <property backgroundBitmapPath="" color="#F8F6EF" colorOpacity="100" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" footerStyle="FOOTER_STYLE_BUTTON_ICON_TEXT" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" showBackButton="true"/>
+ <itemSet/>
+ </Footer>
+ <Header>
+ <property backgroundBitmapPath="" color="#F8F6EF" colorOpacity="100" descriptionText="" descriptionTextColor="" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" headerStyle="HEADER_STYLE_TITLE" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" titleIconPath="" titleText="::IDS_CLD_BUTTON_SEARCH" titleTextColor=""/>
+ <itemSet/>
+ </Header>
+ <SearchBar id="IDC_SEARCHBAR" parent="IDL_EVENT_SEARCHER_FORM">
+ <property backgroundBitmapPath="" buttonActionId="0" buttonText="" color="" colorOpacity="100" disabledButtonColor="" disabledButtonTextColor="" disabledSearchFieldColor="" disabledSearchFieldTextColor="" ellipsisPosition="ELLIPSIS_POSITION_END" guideText="::IDS_CLD_BUTTON_SEARCH" guideTextColor="" highlightedButtonColor="" highlightedButtonTextColor="" highlightedSearchFieldColor="" highlightedSearchFieldTextColor="" keypadAction="KEYPAD_ACTION_SEARCH" limitLength="500" lowerCaseMode="false" normalButtonColor="" normalButtonTextColor="" normalSearchFieldColor="" normalSearchFieldTextColor="" pressedButtonColor="" pressedButtonTextColor="" searchFieldTextSize="33" showSearchBarButton="true" text="" textPredictionEnabled="false"/>
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="true" centerVertical="false" height="86" horizontalFitPolicy="FIT_POLICY_PARENT" leftRelation="IDL_EVENT_SEARCHER_FORM" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="IDL_EVENT_SEARCHER_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="IDL_EVENT_SEARCHER_FORM" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="0" y="0"/>
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="true" centerVertical="false" height="86" horizontalFitPolicy="FIT_POLICY_PARENT" leftRelation="IDL_EVENT_SEARCHER_FORM" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="IDL_EVENT_SEARCHER_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="IDL_EVENT_SEARCHER_FORM" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="451" x="0" y="0"/>
+ </SearchBar>
+ <GroupedListView id="IDC_GROUPEDLISTVIEW" parent="IDL_EVENT_SEARCHER_FORM">
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" bitmapPathOfEmptyList="00_Nocontents_text.png" colorOfEmptyListText="" fastScroll="false" itemDivider="true" itemDividerColor="" sectionColor="" sweepEnabled="false" textOfEmptyList="::IDS_CLD_BODY_NO_EVENTS"/>
+ <layout bottomRelation="IDL_EVENT_SEARCHER_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="true" centerVertical="false" height="923" horizontalFitPolicy="FIT_POLICY_PARENT" leftRelation="IDL_EVENT_SEARCHER_FORM" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="IDL_EVENT_SEARCHER_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" style="CUSTOM_LIST_STYLE_NORMAL" topRelation="IDC_SEARCHBAR" topRelationType="RECT_EDGE_RELATION_TOP_TO_BOTTOM" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="0" y="88"/>
+ <layout bottomRelation="IDL_EVENT_SEARCHER_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="true" centerVertical="false" height="464" horizontalFitPolicy="FIT_POLICY_PARENT" leftRelation="IDL_EVENT_SEARCHER_FORM" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="IDL_EVENT_SEARCHER_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" style="CUSTOM_LIST_STYLE_NORMAL" topRelation="IDC_SEARCHBAR" topRelationType="RECT_EDGE_RELATION_TOP_TO_BOTTOM" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="0" y="88"/>
+ </GroupedListView>
+</Scene>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<!DOCTYPE Scene SYSTEM "UIForm.dtd">
+
+<Scene Bversion="3.0.0.201301081740" Dversion="20120315">
+ <LogicalCoordinate>720</LogicalCoordinate>
+ <Form id="IDL_EVENT_SELECTOR_FORM">
+ <property backgroundColor="#F8F6EF" backgroundColorOpacity="100" orientation="Portrait" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_CENTER" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>
+ <layout mode="Portrait" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ <layout mode="Landscape" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ </Form>
+ <Footer>
+ <property backgroundBitmapPath="" color="#F8F6EF" colorOpacity="100" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" footerStyle="FOOTER_STYLE_BUTTON_TEXT" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" showBackButton="true"/>
+ <itemSet>
+ <footerItem actionId="80001" disabledIconPath="" highlightedIconPath="" normalIconPath="" pressedIconPath="" selectedIconPath="" text="::IDS_CLD_SK3_DONE"/>
+ </itemSet>
+ </Footer>
+ <Header>
+ <property backgroundBitmapPath="" color="#F8F6EF" colorOpacity="100" descriptionText="" descriptionTextColor="" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" headerStyle="HEADER_STYLE_TITLE" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" titleIconPath="" titleText="::IDS_COM_SK_SELECT" titleTextColor=""/>
+ <itemSet/>
+ </Header>
+ <ListView id="IDC_LISTVIEW" parent="IDL_EVENT_SELECTOR_FORM">
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" bitmapPathOfEmptyList="00_Nocontents_text.png" colorOfEmptyListText="" fastScroll="false" itemDivider="true" itemDividerColor="" sweepEnabled="false" textOfEmptyList="::IDS_CLD_BODY_NO_EVENTS"/>
+ <layout bottomRelation="IDL_EVENT_SELECTOR_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="true" centerVertical="true" height="1009" horizontalFitPolicy="FIT_POLICY_PARENT" leftRelation="IDL_EVENT_SELECTOR_FORM" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="IDL_EVENT_SELECTOR_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="IDL_EVENT_SELECTOR_FORM" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_PARENT" width="720" x="0" y="0"/>
+ <layout bottomRelation="IDL_EVENT_SELECTOR_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="true" centerVertical="true" height="0" horizontalFitPolicy="FIT_POLICY_PARENT" leftRelation="IDL_EVENT_SELECTOR_FORM" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="IDL_EVENT_SELECTOR_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="IDL_EVENT_SELECTOR_FORM" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_PARENT" width="0" x="0" y="0"/>
+ </ListView>
+</Scene>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<!DOCTYPE ScenePopup SYSTEM "UIForm.dtd">
+
+<ScenePopup Bversion="3.0.0.201212201745" Dversion="20120315">
+ <Popup id="IDL_GO_TO_DATE_POPUP">
+ <property color="" titleText=" " titleTextColor=""/>
+ <layout height="478" mode="Portrait" style="" type="LAYOUT_RELATIVE" width="648"/>
+ <layout height="478" mode="Landscape" style="" type="LAYOUT_RELATIVE" width="648"/>
+ </Popup>
+ <EditDate id="IDC_EDITDATE" parent="IDL_GO_TO_DATE_POPUP">
+ <property maxYearRange="9999" minYearRange="1" titleText=""/>
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="144" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="" marginLeft="" marginRight="" marginTop="40" mode="Portrait" rightRelation="" rightRelationType="" topRelation="IDL_GO_TO_DATE_POPUP" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="100" y="0"/>
+ <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="144" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="" marginLeft="" marginRight="" marginTop="40" mode="Landscape" rightRelation="" rightRelationType="" topRelation="IDL_GO_TO_DATE_POPUP" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="100" y="0"/>
+ </EditDate>
+ <Button id="IDC_BUTTON_DONE" parent="IDL_GO_TO_DATE_POPUP">
+ <property disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="::IDS_CLD_SK3_DONE" textSize="33" verticalAlign="ALIGN_MIDDLE"/>
+ <layout bottomRelation="IDL_GO_TO_DATE_POPUP" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="72" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="16" marginLeft="" marginRight="" marginTop="" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="278" x="0" y="310"/>
+ <layout bottomRelation="IDL_GO_TO_DATE_POPUP" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="72" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="16" marginLeft="" marginRight="" marginTop="" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="278" x="0" y="310"/>
+ </Button>
+ <Button id="IDC_BUTTON_CANCEL" parent="IDL_GO_TO_DATE_POPUP">
+ <property disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="::IDS_CLD_SK_CANCEL" textSize="33" verticalAlign="ALIGN_MIDDLE"/>
+ <layout bottomRelation="IDL_GO_TO_DATE_POPUP" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="72" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="16" marginLeft="" marginRight="" marginTop="" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="278" x="298" y="310"/>
+ <layout bottomRelation="IDL_GO_TO_DATE_POPUP" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="72" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="16" marginLeft="" marginRight="" marginTop="" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="278" x="298" y="310"/>
+ </Button>
+</ScenePopup>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<!DOCTYPE Scene SYSTEM "UIForm.dtd">
+<Scene Bversion="3.0.0.201211121459" Dversion="20120315">
+ <LogicalCoordinate>720</LogicalCoordinate>
+ <Form id="IDL_MAIN_FORM">
+ <property backgroundColor="#F8F6EF" backgroundColorOpacity="100" orientation="Portrait" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_CENTER" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>
+ <layout mode="Portrait" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ <layout mode="Landscape" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ </Form>
+ <Footer>
+ <property backgroundBitmapPath="" color="#F8F6EF" colorOpacity="100" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" footerStyle="FOOTER_STYLE_BUTTON_TEXT" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" showBackButton="true"/>
+ <itemSet>
+ <footerItem actionId="10011" disabledIconPath="" highlightedIconPath="" normalIconPath="" pressedIconPath="" selectedIconPath="" text="::IDS_CLD_SK3_CREATE"/>
+ <buttonItem actionId="10019" disabledBGBitmapPath="" disabledIconPath="" highlightedBGBitmapPath="" highlightedIconPath="P01_icon_more_press.png" normalBGBitmapPath="" normalIconPath="P01_icon_more.png" position="BUTTON_POSITION_LEFT" pressedBGBitmapPath="" pressedIconPath="P01_icon_more_press.png" style="BUTTON_ITEM_STYLE_ICON" text="" type="left"/>
+ </itemSet>
+ </Footer>
+ <Header>
+ <property backgroundBitmapPath="" color="#F8F6EF" colorOpacity="100" descriptionText="" descriptionTextColor="" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" headerStyle="HEADER_STYLE_TITLE" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" titleIconPath="" titleText="" titleTextColor=""/>
+ <itemSet>
+ <buttonItem actionId="10001" disabledBGBitmapPath="" disabledIconPath="P01_today.png" highlightedBGBitmapPath="" highlightedIconPath="P01_today_press.png" normalBGBitmapPath="" normalIconPath="P01_today.png" position="BUTTON_POSITION_LEFT" pressedBGBitmapPath="" pressedIconPath="P01_today_press.png" style="BUTTON_ITEM_STYLE_ICON" text="" type="left"/>
+ <buttonItem actionId="10002" disabledBGBitmapPath="" disabledIconPath="P01_change_view.png" highlightedBGBitmapPath="" highlightedIconPath="P01_change_view_press.png" normalBGBitmapPath="" normalIconPath="P01_change_view.png" position="BUTTON_POSITION_RIGHT" pressedBGBitmapPath="" pressedIconPath="P01_change_view_press.png" style="BUTTON_ITEM_STYLE_ICON" text="" type="right"/>
+ </itemSet>
+ </Header>
+</Scene>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<!DOCTYPE Scene SYSTEM "UIForm.dtd">
+<Scene Bversion="3.0.0.201301081740" Dversion="20120315">
+ <LogicalCoordinate>720</LogicalCoordinate>
+ <Form id="IDL_REMINDER_FORM">
+ <property backgroundColor="#F8F6EF" backgroundColorOpacity="100" orientation="Portrait" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_CENTER" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>
+ <layout mode="Portrait" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ <layout mode="Landscape" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ </Form>
+ <Footer>
+ <property backgroundBitmapPath="" color="#F8F6EF" colorOpacity="100" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" footerStyle="FOOTER_STYLE_BUTTON_TEXT" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" showBackButton="true"/>
+ <itemSet/>
+ </Footer>
+ <Header>
+ <property backgroundBitmapPath="" color="#F8F6EF" colorOpacity="100" descriptionText="" descriptionTextColor="" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" headerStyle="HEADER_STYLE_TITLE" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" titleIconPath="" titleText="::IDS_CLD_BODY_REMINDER" titleTextColor=""/>
+ <itemSet/>
+ </Header>
+ <GroupedTableView id="IDC_GROUPEDTABLEVIEW" parent="IDL_REMINDER_FORM">
+ <property backgroundColor="" backgroundColorOpacity="0" collapseByPinchEnabled="false" fastScrollIndex="" groupedLookEnabled="true" itemDivider="true" itemDividerColor="" scrollBarStyle="TABLE_VIEW_SCROLL_BAR_STYLE_FADE_OUT" scrollInputMode="SCROLL_INPUT_MODE_ALLOW_ANY_DIRECTION" useSearchIcon="false"/>
+ <layout bottomRelation="IDL_REMINDER_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="1022" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDL_REMINDER_FORM" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="IDL_REMINDER_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="IDL_REMINDER_FORM" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="0" y="0"/>
+ <layout bottomRelation="IDL_REMINDER_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="1022" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDL_REMINDER_FORM" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="IDL_REMINDER_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="IDL_REMINDER_FORM" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="0" y="0"/>
+ </GroupedTableView>
+</Scene>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<!DOCTYPE Scene SYSTEM "UIForm.dtd">
+<Scene Bversion="3.0.0.201301081740" Dversion="20120315">
+ <LogicalCoordinate>720</LogicalCoordinate>
+ <Form id="IDL_REPEAT_FORM">
+ <property backgroundColor="#F8F6EF" backgroundColorOpacity="100" orientation="Portrait" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_CENTER" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>
+ <layout mode="Portrait" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ <layout mode="Landscape" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ </Form>
+ <Footer>
+ <property backgroundBitmapPath="" color="#F8F6EF" colorOpacity="100" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" footerStyle="FOOTER_STYLE_BUTTON_TEXT" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" showBackButton="true"/>
+ <itemSet/>
+ </Footer>
+ <Header>
+ <property backgroundBitmapPath="" color="#F8F6EF" colorOpacity="100" descriptionText="" descriptionTextColor="" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" headerStyle="HEADER_STYLE_TITLE" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" titleIconPath="" titleText="::IDS_CLD_BODY_REPEAT" titleTextColor=""/>
+ <itemSet/>
+ </Header>
+ <GroupedTableView id="IDC_GROUPEDTABLEVIEW" parent="IDL_REPEAT_FORM">
+ <property backgroundColor="" backgroundColorOpacity="0" collapseByPinchEnabled="false" fastScrollIndex="" groupedLookEnabled="true" itemDivider="true" itemDividerColor="" scrollBarStyle="TABLE_VIEW_SCROLL_BAR_STYLE_FADE_OUT" scrollInputMode="SCROLL_INPUT_MODE_ALLOW_ANY_DIRECTION" useSearchIcon="false"/>
+ <layout bottomRelation="IDL_REPEAT_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="1022" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDL_REPEAT_FORM" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="IDL_REPEAT_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="IDL_REPEAT_FORM" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="0" y="0"/>
+ <layout bottomRelation="IDL_REPEAT_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="1022" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDL_REPEAT_FORM" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="IDL_REPEAT_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="IDL_REPEAT_FORM" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="0" y="0"/>
+ </GroupedTableView>
+</Scene>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<!DOCTYPE Scene SYSTEM "UIForm.dtd">
+<Scene Bversion="3.0.0.201301081740" Dversion="20120315">
+ <LogicalCoordinate>720</LogicalCoordinate>
+ <Form id="IDL_SETTING_FORM">
+ <property backgroundColor="#F8F6EF" backgroundColorOpacity="100" orientation="Portrait" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_CENTER" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>
+ <layout mode="Portrait" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ <layout mode="Landscape" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ </Form>
+ <Footer>
+ <property backgroundBitmapPath="" color="#F8F6EF" colorOpacity="100" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" footerStyle="FOOTER_STYLE_BUTTON_TEXT" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" showBackButton="true"/>
+ <itemSet/>
+ </Footer>
+ <Header>
+ <property backgroundBitmapPath="" color="#F8F6EF" colorOpacity="100" descriptionText="" descriptionTextColor="" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" headerStyle="HEADER_STYLE_TITLE" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" titleIconPath="" titleText="::IDS_CLD_BODY_CALENDAR" titleTextColor=""/>
+ <itemSet/>
+ </Header>
+ <GroupedTableView id="IDC_GROUPEDTABLEVIEW" parent="IDL_SETTING_FORM">
+ <property backgroundColor="" backgroundColorOpacity="0" collapseByPinchEnabled="false" fastScrollIndex="" groupedLookEnabled="true" itemDivider="true" itemDividerColor="" scrollBarStyle="TABLE_VIEW_SCROLL_BAR_STYLE_FADE_OUT" scrollInputMode="SCROLL_INPUT_MODE_ALLOW_ANY_DIRECTION" useSearchIcon="false"/>
+ <layout bottomRelation="IDL_SETTING_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="1022" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDL_SETTING_FORM" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="IDL_SETTING_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="IDL_SETTING_FORM" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="0" y="0"/>
+ <layout bottomRelation="IDL_SETTING_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="1022" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDL_SETTING_FORM" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="IDL_SETTING_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="IDL_SETTING_FORM" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="0" y="0"/>
+ </GroupedTableView>
+</Scene>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<!DOCTYPE ScenePopup SYSTEM "UIForm.dtd">
+<ScenePopup Bversion="3.0.0.201212201745" Dversion="20120315">
+ <Popup id="IDL_SHARE_POPUP">
+ <property color="" titleText="::IDS_COM_SK4_SHARE" titleTextColor=""/>
+ <layout height="629" mode="Portrait" style="" type="LAYOUT_RELATIVE" width="624"/>
+ <layout height="629" mode="Landscape" style="" type="LAYOUT_RELATIVE" width="624"/>
+ </Popup>
+ <Button id="IDC_BUTTON_CLOSE" parent="IDL_SHARE_POPUP">
+ <property disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="::IDS_COM_POP_CLOSE" textSize="33" verticalAlign="ALIGN_MIDDLE"/>
+ <layout bottomRelation="IDL_SHARE_POPUP" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="74" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="20" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="361" x="106" y="455"/>
+ <layout bottomRelation="IDL_SHARE_POPUP" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="74" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="20" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="361" x="106" y="455"/>
+ </Button>
+ <ListView id="IDC_LISTVIEW_SHARE" parent="IDL_SHARE_POPUP">
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" bitmapPathOfEmptyList="" colorOfEmptyListText="" fastScroll="false" itemDivider="true" itemDividerColor="" sweepEnabled="false" textOfEmptyList=""/>
+ <layout bottomRelation="IDC_BUTTON_CLOSE" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_TOP" centerHorizontal="false" centerVertical="false" height="515" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDL_SHARE_POPUP" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="20" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="IDL_SHARE_POPUP" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="IDL_SHARE_POPUP" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="552" x="0" y="0"/>
+ <layout bottomRelation="IDC_BUTTON_CLOSE" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_TOP" centerHorizontal="false" centerVertical="false" height="515" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDL_SHARE_POPUP" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="20" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="IDL_SHARE_POPUP" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="IDL_SHARE_POPUP" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="552" x="0" y="0"/>
+ </ListView>
+</ScenePopup>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<!DOCTYPE Scene SYSTEM "UIForm.dtd">
+<Scene Bversion="3.0.0.201301081740" Dversion="20120315">
+ <LogicalCoordinate>720</LogicalCoordinate>
+ <Form id="IDL_TASK_DETAILS_FORM">
+ <property backgroundColor="#F8F6EF" backgroundColorOpacity="100" orientation="Portrait" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_CENTER" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>
+ <layout mode="Portrait" style="FORM_STYLE_INDICATOR|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ <layout mode="Landscape" style="FORM_STYLE_INDICATOR|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ </Form>
+ <Footer>
+ <property backgroundBitmapPath="" color="#F8F6EF" colorOpacity="100" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" footerStyle="FOOTER_STYLE_BUTTON_TEXT" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" showBackButton="true"/>
+ <itemSet>
+ <footerItem actionId="80001" disabledIconPath="" highlightedIconPath="" normalIconPath="" pressedIconPath="" selectedIconPath="" text="::IDS_EMAIL_OPT_ADD_TO_CALENDAR"/>
+ </itemSet>
+ </Footer>
+ <SectionTableView id="IDC_SECTIONTABLEVIEW" parent="IDL_TASK_DETAILS_FORM">
+ <property backgroundColor="" backgroundColorOpacity="0" fastScrollIndex="" groupedLookEnabled="true" itemDivider="true" itemDividerColor="" scrollBarStyle="TABLE_VIEW_SCROLL_BAR_STYLE_FADE_OUT" scrollInputMode="SCROLL_INPUT_MODE_ALLOW_ANY_DIRECTION" sectionColor="" useSearchIcon="false"/>
+ <layout bottomRelation="IDL_TASK_DETAILS_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="1022" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDL_TASK_DETAILS_FORM" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="IDL_TASK_DETAILS_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="IDL_TASK_DETAILS_FORM" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="0" y="0"/>
+ <layout bottomRelation="IDL_TASK_DETAILS_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="1022" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDL_TASK_DETAILS_FORM" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="IDL_TASK_DETAILS_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="IDL_TASK_DETAILS_FORM" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="720" x="0" y="0"/>
+ </SectionTableView>
+</Scene>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<!DOCTYPE Scene SYSTEM "UIForm.dtd">
+
+<Scene Bversion="3.0.0.201301081740" Dversion="20120315">
+ <LogicalCoordinate>720</LogicalCoordinate>
+ <Form id="IDL_TASK_SELECTOR_FORM">
+ <property backgroundColor="#F8F6EF" backgroundColorOpacity="100" orientation="Portrait" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_CENTER" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>
+ <layout mode="Portrait" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ <layout mode="Landscape" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+ </Form>
+ <Footer>
+ <property backgroundBitmapPath="" color="#F8F6EF" colorOpacity="100" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" footerStyle="FOOTER_STYLE_BUTTON_TEXT" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" showBackButton="true"/>
+ <itemSet>
+ <footerItem actionId="80001" disabledIconPath="" highlightedIconPath="" normalIconPath="" pressedIconPath="" selectedIconPath="" text="::IDS_CLD_SK3_DONE"/>
+ </itemSet>
+ </Footer>
+ <Header>
+ <property backgroundBitmapPath="" color="#F8F6EF" colorOpacity="100" descriptionText="" descriptionTextColor="" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" headerStyle="HEADER_STYLE_TITLE" highlightedButtonColor="" highlightedButtonColorOpacity="100" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="100" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="100" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="100" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="100" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="100" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="100" selectedItemTextColor="" titleIconPath="" titleText="::IDS_COM_SK_SELECT" titleTextColor=""/>
+ <itemSet/>
+ </Header>
+ <ListView id="IDC_LISTVIEW" parent="IDL_TASK_SELECTOR_FORM">
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" bitmapPathOfEmptyList="00_Nocontents_text.png" colorOfEmptyListText="" fastScroll="false" itemDivider="true" itemDividerColor="" sweepEnabled="false" textOfEmptyList="::IDS_COM_BODY_NO_ITEMS"/>
+ <layout bottomRelation="IDL_TASK_SELECTOR_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="true" centerVertical="true" height="1009" horizontalFitPolicy="FIT_POLICY_PARENT" leftRelation="IDL_TASK_SELECTOR_FORM" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="IDL_TASK_SELECTOR_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="IDL_TASK_SELECTOR_FORM" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_PARENT" width="720" x="0" y="0"/>
+ <layout bottomRelation="IDL_TASK_SELECTOR_FORM" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="true" centerVertical="true" height="0" horizontalFitPolicy="FIT_POLICY_PARENT" leftRelation="IDL_TASK_SELECTOR_FORM" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="IDL_TASK_SELECTOR_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="IDL_TASK_SELECTOR_FORM" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_PARENT" width="0" x="0" y="0"/>
+ </ListView>
+</Scene>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<!DOCTYPE ScenePopup SYSTEM "UIForm.dtd">
+<ScenePopup Bversion="3.0.0.201212201745" Dversion="20120315">
+ <Popup id="IDL_THREE_BUTTON_POPUP">
+ <property color="" titleText="" titleTextColor=""/>
+ <layout height="460" mode="Portrait" style="" type="LAYOUT_RELATIVE" width="648"/>
+ <layout height="460" mode="Landscape" style="" type="LAYOUT_RELATIVE" width="648"/>
+ </Popup>
+ <Button id="IDC_BUTTON_ONLY_THIS_EVENT" parent="IDL_THREE_BUTTON_POPUP">
+ <property disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="::IDS_CLD_BODY_ONLY_THIS_EVENT" textSize="33" verticalAlign="ALIGN_MIDDLE"/>
+ <layout bottomRelation="IDC_BUTTON_ALL_EVENTS" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_TOP" centerHorizontal="true" centerVertical="false" height="74" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="16" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="394" x="91" y="186"/>
+ <layout bottomRelation="IDC_BUTTON_ALL_EVENTS" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_TOP" centerHorizontal="true" centerVertical="false" height="74" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="16" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="394" x="91" y="186"/>
+ </Button>
+ <Label id="IDC_LABEL" parent="IDL_THREE_BUTTON_POPUP">
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_CENTER" text="" textColor="" textSize="33" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_MIDDLE"/>
+ <layout bottomRelation="IDC_BUTTON_ONLY_THIS_EVENT" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_TOP" centerHorizontal="true" centerVertical="false" height="166" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDL_THREE_BUTTON_POPUP" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="20" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="IDL_THREE_BUTTON_POPUP" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="IDL_THREE_BUTTON_POPUP" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="576" x="0" y="0"/>
+ <layout bottomRelation="IDC_BUTTON_ONLY_THIS_EVENT" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_TOP" centerHorizontal="true" centerVertical="false" height="166" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDL_THREE_BUTTON_POPUP" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="20" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="IDL_THREE_BUTTON_POPUP" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="IDL_THREE_BUTTON_POPUP" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="576" x="0" y="0"/>
+ </Label>
+ <Button id="IDC_BUTTON_CANCEL" parent="IDL_THREE_BUTTON_POPUP">
+ <property disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="::IDS_CLD_SK_CANCEL" textSize="33" verticalAlign="ALIGN_MIDDLE"/>
+ <layout bottomRelation="IDL_THREE_BUTTON_POPUP" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="true" centerVertical="false" height="74" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="20" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="394" x="91" y="366"/>
+ <layout bottomRelation="IDL_THREE_BUTTON_POPUP" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="true" centerVertical="false" height="74" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="20" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="394" x="91" y="366"/>
+ </Button>
+ <Button id="IDC_BUTTON_ALL_EVENTS" parent="IDL_THREE_BUTTON_POPUP">
+ <property disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="::IDS_CLD_POP_ALL_REPETITIVE_EVENTS" textSize="33" verticalAlign="ALIGN_MIDDLE"/>
+ <layout bottomRelation="IDC_BUTTON_CANCEL" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_TOP" centerHorizontal="true" centerVertical="false" height="74" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="16" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="394" x="91" y="276"/>
+ <layout bottomRelation="IDC_BUTTON_CANCEL" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_TOP" centerHorizontal="true" centerVertical="false" height="74" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="16" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="394" x="91" y="276"/>
+ </Button>
+</ScenePopup>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<!DOCTYPE ScenePopup SYSTEM "UIForm.dtd">
+<ScenePopup Bversion="3.0.0.201212201745" Dversion="20120315">
+ <Popup id="IDL_TWO_BUTTON_POPUP">
+ <property color="" titleText="" titleTextColor=""/>
+ <layout height="270" mode="Portrait" style="" type="LAYOUT_RELATIVE" width="648"/>
+ <layout height="270" mode="Landscape" style="" type="LAYOUT_RELATIVE" width="648"/>
+ </Popup>
+ <Label id="IDC_LABEL" parent="IDL_TWO_BUTTON_POPUP">
+ <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_CENTER" text="::IDS_COM_POP_DELETE_Q" textColor="" textSize="33" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_MIDDLE"/>
+ <layout bottomRelation="IDL_TWO_BUTTON_POPUP" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="" centerVertical="false" height="135" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDL_TWO_BUTTON_POPUP" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="114" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="IDL_TWO_BUTTON_POPUP" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="IDL_TWO_BUTTON_POPUP" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="576" x="0" y="0"/>
+ <layout bottomRelation="IDL_TWO_BUTTON_POPUP" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="" centerVertical="false" height="135" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDL_TWO_BUTTON_POPUP" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="114" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="IDL_TWO_BUTTON_POPUP" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="IDL_TWO_BUTTON_POPUP" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="576" x="0" y="0"/>
+ </Label>
+ <Button id="IDC_BUTTON_DELETE" parent="IDL_TWO_BUTTON_POPUP">
+ <property disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="::IDS_CLD_SK3_DELETE" textSize="33" verticalAlign="ALIGN_MIDDLE"/>
+ <layout bottomRelation="IDL_TWO_BUTTON_POPUP" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="74" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDL_TWO_BUTTON_POPUP" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="20" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="278" x="0" y="178"/>
+ <layout bottomRelation="IDL_TWO_BUTTON_POPUP" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="74" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDL_TWO_BUTTON_POPUP" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="20" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="278" x="0" y="178"/>
+ </Button>
+ <Button id="IDC_BUTTON_CANCEL" parent="IDL_TWO_BUTTON_POPUP">
+ <property disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="::IDS_CLD_SK_CANCEL" textSize="33" verticalAlign="ALIGN_MIDDLE"/>
+ <layout bottomRelation="IDL_TWO_BUTTON_POPUP" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="74" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="20" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="IDL_TWO_BUTTON_POPUP" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="278" x="298" y="178"/>
+ <layout bottomRelation="IDL_TWO_BUTTON_POPUP" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="74" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="20" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="IDL_TWO_BUTTON_POPUP" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="278" x="298" y="178"/>
+ </Button>
+</ScenePopup>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Žiadny</text>
+ <text id="IDS_COM_SK4_SHARE">Zdieľať</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">Vybraté: %d</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Vybrať všetky</text>
+ <text id="IDS_COM_POP_CLOSE">Zavrieť</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Odstrániť?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Celý tento mesiac</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 deň predtým</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Nízka</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">každý týždeň</text>
+ <text id="IDS_COM_BODY_JANUARY">Január</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">pred</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Február</text>
+ <text id="IDS_COM_BODY_JULY">Júl</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Zobraziť číslo týždňa</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Žiadny názov</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Pridať konto</text>
+ <text id="IDS_CLD_SK3_CREATE">Vytv.</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Neplatný čas</text>
+ <text id="IDS_CLD_BODY_LIST">Zoznam</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Iba táto udalosť</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Hľadať</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Správa</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">August</text>
+ <text id="IDS_COM_BODY_MAY">Máj</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Všetky opakujúce sa udalosti</text>
+ <text id="IDS_COM_BODY_OCTOBER">Október</text>
+ <text id="IDS_COM_POP_TIMES_LC">krát</text>
+ <text id="IDS_CLD_SK_CANCEL">Zrušiť</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">Hotovo</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Dôležitosť</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">E-mail</text>
+ <text id="IDS_COM_BODY_HIGH">Vysoká</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 dni predtým</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Operácia zlyhala</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Neplatná perióda\nopakovania</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Upraviť udalosť</text>
+ <text id="IDS_CLD_BODY_START_TIME">Počiatočný čas</text>
+ <text id="IDS_CLD_BODY_REPEAT">Opakovať</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 minút predtým</text>
+ <text id="IDS_CLD_SK3_EDIT">Upraviť</text>
+ <text id="IDS_CLD_BODY_END_TIME">Konečný čas</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Uzamknúť časové pásmo</text>
+ <text id="IDS_CLD_BODY_OFF">Vyp.</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Vybrať</text>
+ <text id="IDS_CLD_OPT_DELETE">Odstrániť</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Termín</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Vymazať udalosť</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Uložiť do</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">týždne</text>
+ <text id="IDS_COM_BODY_NOVEMBER">November</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Nedeľa</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 týždeň predtým</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Vytvoriť udalosť</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Deň</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Import. udalosti/úlohy</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">Apríl</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Celý tento deň</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">Každé 2 týždne</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Celý kalendár</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 hodinu predtým</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Času a dátumy udalostí sa uzamknú na časové pásmo vybraté nižšie. Časy a dátumy sa nezmenia ani v prípade, ak prejdete do iného časového pásma</text>
+ <text id="IDS_CLD_BODY_YEAR">Rok</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Všetky udalosti pred dneškom</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Export. udalosti/úlohy</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">September</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Opakovať do</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Celý tento rok</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">Pred 15 minútami</text>
+ <text id="IDS_CLD_BODY_LOCATION">Miesto</text>
+ <text id="IDS_CLD_BODY_MONDAY">Pondelok</text>
+ <text id="IDS_CLD_BODY_ON_TIME">V čase</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">Každé 3 dni</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Každý rok</text>
+ <text id="IDS_COM_BODY_DECEMBER">December</text>
+ <text id="IDS_CLD_HEADER_DELETE">Odstrániť</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">Táto udalosť bude vymazaná</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Pridať do kalendára</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">Žiadne udalosti</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Kalendár</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Popis</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Celý deň</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Časové pásmo</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">Deň(dni)</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Vymaz.</text>
+ <text id="IDS_CLD_OPT_EDIT">Upraviť</text>
+ <text id="IDS_COM_POP_AM_M_ABB">dop.</text>
+ <text id="IDS_CLD_BODY_TITLE">Názov</text>
+ <text id="IDS_CLD_TAB4_MONTH">Mesiac</text>
+ <text id="IDS_CLD_SK3_DELETE">Odstrániť</text>
+ <text id="IDS_COM_POP_PM_M_ABB">odp.</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">Marec</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">Prvý deň týždňa</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">každý mesiac</text>
+ <text id="IDS_CLD_BODY_REMINDER">Pripomienka</text>
+ <text id="IDS_COM_BODY_JUNE">Jún</text>
+ <text id="IDS_CST_BODY_NOTICE">Poznámka</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Žiadne položky</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">každý deň</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Uloženie sa nepodarilo</text>
+ <text id="IDS_CLD_SK_SAVE">Uložiť</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Brez</text>
+ <text id="IDS_COM_SK4_SHARE">Souporaba</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d izbranih</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Izberi vse</text>
+ <text id="IDS_COM_POP_CLOSE">Zapri</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Izbrišem?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Vse ta mesec</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 dan prej</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Nizka</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">Vsak teden</text>
+ <text id="IDS_COM_BODY_JANUARY">Januar</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">pred</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Februar</text>
+ <text id="IDS_COM_BODY_JULY">Julij</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Pokaži številko tedna</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Ni naslova</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Dodaj račun</text>
+ <text id="IDS_CLD_SK3_CREATE">Ustvari</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Neveljaven čas</text>
+ <text id="IDS_CLD_BODY_LIST">Seznam</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Samo ta dogodek</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Iskanje</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Sporočilo</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">Avgust</text>
+ <text id="IDS_COM_BODY_MAY">Maj</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Vsi dogodki, ki se ponavljajo</text>
+ <text id="IDS_COM_BODY_OCTOBER">Oktober</text>
+ <text id="IDS_COM_POP_TIMES_LC">krat</text>
+ <text id="IDS_CLD_SK_CANCEL">Prekliči</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">Končano</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Pomembnost</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">E-pošta</text>
+ <text id="IDS_COM_BODY_HIGH">Visoka</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 dni prej</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Postopek ni uspel</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Neveljavno obdobje ponavljanja</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Uredi dogodek</text>
+ <text id="IDS_CLD_BODY_START_TIME">Začetni čas</text>
+ <text id="IDS_CLD_BODY_REPEAT">Ponovi</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 min prej</text>
+ <text id="IDS_CLD_SK3_EDIT">Uredi</text>
+ <text id="IDS_CLD_BODY_END_TIME">Končni čas</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Zakleni časovni pas</text>
+ <text id="IDS_CLD_BODY_OFF">Izključeno</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Izberi</text>
+ <text id="IDS_CLD_OPT_DELETE">Izbriši</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Rok</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Izbriši dogodek</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Shrani v</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">teden/-ni</text>
+ <text id="IDS_COM_BODY_NOVEMBER">November</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Nedelja</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 teden prej</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Ustvari dogodek</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Dan</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Uvoz dogodkov/opravil</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">April</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Vse ta dan</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">Vsaka 2 tedna</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Vsi koledarji</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 ura prej</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Zaklenite čas in datum dogodka na spodaj izbran časovni pas. Čas in datum se ne bosta spremenila, tudi če se premaknete v drug časovni pas</text>
+ <text id="IDS_CLD_BODY_YEAR">Leto</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Vsi dogodki pred današnjim dnem</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Izvoz dogodkov/opravil</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">September</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Ponavljaj do</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Celo leto</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 min prej</text>
+ <text id="IDS_CLD_BODY_LOCATION">Položaj</text>
+ <text id="IDS_CLD_BODY_MONDAY">Ponedeljek</text>
+ <text id="IDS_CLD_BODY_ON_TIME">Ob času</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">Vsake 3 dni</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Vsako leto</text>
+ <text id="IDS_COM_BODY_DECEMBER">December</text>
+ <text id="IDS_CLD_HEADER_DELETE">Izbriši</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">Ta dogodek bo izbrisan</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Dodaj v koledar</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">Ni dogodkov</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Koledar</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Opis</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Ves dan</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Časovni pas</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">dan/dni</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Izbris</text>
+ <text id="IDS_CLD_OPT_EDIT">Uredi</text>
+ <text id="IDS_COM_POP_AM_M_ABB">Dop.</text>
+ <text id="IDS_CLD_BODY_TITLE">Naslov</text>
+ <text id="IDS_CLD_TAB4_MONTH">Mesec</text>
+ <text id="IDS_CLD_SK3_DELETE">Izbriši</text>
+ <text id="IDS_COM_POP_PM_M_ABB">PM</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">Marec</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">Prvi dan v tednu</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">Vsak mesec</text>
+ <text id="IDS_CLD_BODY_REMINDER">Opomnik</text>
+ <text id="IDS_COM_BODY_JUNE">Junij</text>
+ <text id="IDS_CST_BODY_NOTICE">Obvestilo</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Ni predmetov</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">Vsak dan</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Shranjevanje ni uspelo</text>
+ <text id="IDS_CLD_SK_SAVE">Shrani</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Ninguno</text>
+ <text id="IDS_COM_SK4_SHARE">Compartir</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d seleccionado</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Seleccionar todo</text>
+ <text id="IDS_COM_POP_CLOSE">Cerrar</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">¿Eliminar?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Todo este mes</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 día antes</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Baja</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">Todas las semanas</text>
+ <text id="IDS_COM_BODY_JANUARY">Enero</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">antes</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Febrero</text>
+ <text id="IDS_COM_BODY_JULY">Julio</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Mostrar número de semana</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Sin título</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Añadir cuenta</text>
+ <text id="IDS_CLD_SK3_CREATE">Crear</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Hora no válida</text>
+ <text id="IDS_CLD_BODY_LIST">Lista</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Sólo este evento</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Buscar</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Mensajes</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">Agosto</text>
+ <text id="IDS_COM_BODY_MAY">Mayo</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Todos los eventos repetitivos</text>
+ <text id="IDS_COM_BODY_OCTOBER">Octubre</text>
+ <text id="IDS_COM_POP_TIMES_LC">veces</text>
+ <text id="IDS_CLD_SK_CANCEL">Cancelar</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">Final.</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Prioridad</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">Correo electrónico</text>
+ <text id="IDS_COM_BODY_HIGH">Alta</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 días antes</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Error de funcionamiento</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Periodo de repetición no válido</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Editar evento</text>
+ <text id="IDS_CLD_BODY_START_TIME">Hora de inicio</text>
+ <text id="IDS_CLD_BODY_REPEAT">Repetir</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 min antes</text>
+ <text id="IDS_CLD_SK3_EDIT">Editar</text>
+ <text id="IDS_CLD_BODY_END_TIME">Hora de finalización</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Bloquear zona horaria</text>
+ <text id="IDS_CLD_BODY_OFF">Desactivado</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Seleccionar</text>
+ <text id="IDS_CLD_OPT_DELETE">Eliminar</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Fecha de vencimiento</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Eliminar evento</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Guardar en</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">semana(s)</text>
+ <text id="IDS_COM_BODY_NOVEMBER">Noviembre</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Domingo</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 semana antes</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Crear evento</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Día</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Importar eventos/tareas</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">Abril</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Todo este día</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">Cada 2 semanas</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Todos los calendarios</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 hora antes</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Bloquee las fechas y las horas de los eventos en la zona horaria seleccionada a continuación. Las fechas y las horas no cambian incluso si se mueve a otra zona horaria</text>
+ <text id="IDS_CLD_BODY_YEAR">Año</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Todos los eventos anteriores a hoy</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Exportar eventos/tareas</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">Septiembre</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Repetir hasta</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Todo este año</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 min antes</text>
+ <text id="IDS_CLD_BODY_LOCATION">Ubicación</text>
+ <text id="IDS_CLD_BODY_MONDAY">Lunes</text>
+ <text id="IDS_CLD_BODY_ON_TIME">En hora</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">Cada 3 días</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Todos los años</text>
+ <text id="IDS_COM_BODY_DECEMBER">Diciembre</text>
+ <text id="IDS_CLD_HEADER_DELETE">Eliminar</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">Este evento se eliminará</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Añadir a calendario</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">No hay eventos</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Calendario</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Descripción</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Todo el día</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Zona horaria</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">día(s)</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Elim.</text>
+ <text id="IDS_CLD_OPT_EDIT">Editar</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_CLD_BODY_TITLE">Título</text>
+ <text id="IDS_CLD_TAB4_MONTH">Mes</text>
+ <text id="IDS_CLD_SK3_DELETE">Eliminar</text>
+ <text id="IDS_COM_POP_PM_M_ABB">PM</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">Marzo</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">Primer día de la semana</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">Todos los meses</text>
+ <text id="IDS_CLD_BODY_REMINDER">Recordatorio</text>
+ <text id="IDS_COM_BODY_JUNE">Junio</text>
+ <text id="IDS_CST_BODY_NOTICE">Aviso</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Ningún elemento</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">Todos los días</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Error al guardar</text>
+ <text id="IDS_CLD_SK_SAVE">Guardar</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Ninguno</text>
+ <text id="IDS_COM_SK4_SHARE">Compartir</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d seleccionado(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Seleccionar todo</text>
+ <text id="IDS_COM_POP_CLOSE">Cerrar</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">¿Eliminar?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Todo este mes</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 día antes</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Baja</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">Semanalmente</text>
+ <text id="IDS_COM_BODY_JANUARY">Enero</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">antes</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Febrero</text>
+ <text id="IDS_COM_BODY_JULY">Julio</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Mostrar número de semana</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Sin título</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Añadir cuenta</text>
+ <text id="IDS_CLD_SK3_CREATE">Crear</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Hora no válida</text>
+ <text id="IDS_CLD_BODY_LIST">Lista</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Sólo este evento</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Buscar</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Mensaje</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">Agosto</text>
+ <text id="IDS_COM_BODY_MAY">Mayo</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Todos los eventos repetitivos</text>
+ <text id="IDS_COM_BODY_OCTOBER">Octubre</text>
+ <text id="IDS_COM_POP_TIMES_LC">veces</text>
+ <text id="IDS_CLD_SK_CANCEL">Cancelar</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">Realizado</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Prioridad</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">Correo</text>
+ <text id="IDS_COM_BODY_HIGH">Alta</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 días antes</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Error de funcionamiento</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Periodo de repetición no válido</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Editar evento</text>
+ <text id="IDS_CLD_BODY_START_TIME">Hora inicial</text>
+ <text id="IDS_CLD_BODY_REPEAT">Repetir</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 min antes</text>
+ <text id="IDS_CLD_SK3_EDIT">Editar</text>
+ <text id="IDS_CLD_BODY_END_TIME">Hora final</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Bloquear zona horaria</text>
+ <text id="IDS_CLD_BODY_OFF">Desactivado</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Seleccionar</text>
+ <text id="IDS_CLD_OPT_DELETE">Eliminar</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Fecha final</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Eliminar evento</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Guardar en</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">semana(s)</text>
+ <text id="IDS_COM_BODY_NOVEMBER">Noviembre</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Domingo</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 semana antes</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Crear evento</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Día</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Importar eventos/tareas</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">Abril</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Todo este día</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">Cada dos semanas</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Todo el calendario</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 hora antes</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Bloquee las fechas y las horas de los eventos en la zona horaria seleccionada a continuación. Las fechas y las horas no cambian incluso si se mueve a otra zona horaria</text>
+ <text id="IDS_CLD_BODY_YEAR">Año</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Todos los eventos anteriores a hoy</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Exportar eventos/tareas</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">Septiembre</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Repetir hasta</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Todo este año</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 mins antes</text>
+ <text id="IDS_CLD_BODY_LOCATION">Ubicación</text>
+ <text id="IDS_CLD_BODY_MONDAY">Lunes</text>
+ <text id="IDS_CLD_BODY_ON_TIME">Hora</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">Cada tres días</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Anualmente</text>
+ <text id="IDS_COM_BODY_DECEMBER">Diciembre</text>
+ <text id="IDS_CLD_HEADER_DELETE">Eliminar</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">Este evento se eliminará</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Añadir a calendario</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">No hay eventos</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Calendario</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Descripción</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Todo el día</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Zona horaria</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">día(s)</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Eliminar</text>
+ <text id="IDS_CLD_OPT_EDIT">Editar</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_CLD_BODY_TITLE">Título</text>
+ <text id="IDS_CLD_TAB4_MONTH">Mes</text>
+ <text id="IDS_CLD_SK3_DELETE">Eliminar</text>
+ <text id="IDS_COM_POP_PM_M_ABB">PM</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Directo</text>
+ <text id="IDS_COM_BODY_MARCH">Marzo</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">Primer día de la semana</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">Mensualmente</text>
+ <text id="IDS_CLD_BODY_REMINDER">Recordatorio</text>
+ <text id="IDS_COM_BODY_JUNE">Junio</text>
+ <text id="IDS_CST_BODY_NOTICE">Aviso</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Ningún elemento</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">Diariamente</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Error al guardar</text>
+ <text id="IDS_CLD_SK_SAVE">Guardar</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Nema</text>
+ <text id="IDS_COM_SK4_SHARE">Podeli</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">Izabran je %d</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Izaberi sve</text>
+ <text id="IDS_COM_POP_CLOSE">Zatvori</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Obriši?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Sve ovog meseca</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 dan ranije</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Nizak</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">svake nedelje</text>
+ <text id="IDS_COM_BODY_JANUARY">Januar</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">pre</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Februar</text>
+ <text id="IDS_COM_BODY_JULY">Jul</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Prikaži broj nedelje</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Nema naslova</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Dodaj nalog</text>
+ <text id="IDS_CLD_SK3_CREATE">Kreiraj</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Neispravno vreme</text>
+ <text id="IDS_CLD_BODY_LIST">Lista</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Samo ovaj događaj</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Pretraga</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Poruka</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">Avgust</text>
+ <text id="IDS_COM_BODY_MAY">Maj</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Svi ponavljajući događaji</text>
+ <text id="IDS_COM_BODY_OCTOBER">Oktobar</text>
+ <text id="IDS_COM_POP_TIMES_LC">puta</text>
+ <text id="IDS_CLD_SK_CANCEL">Poništi</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">Gotovo</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Prioritet</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">E-pošta</text>
+ <text id="IDS_COM_BODY_HIGH">Visok</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 dana ranije</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Operacija neuspešna</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Neispravan period ponavljanja</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Izmeni događaj</text>
+ <text id="IDS_CLD_BODY_START_TIME">Vreme početka</text>
+ <text id="IDS_CLD_BODY_REPEAT">Ponovi</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 minuta pre</text>
+ <text id="IDS_CLD_SK3_EDIT">Izmeni</text>
+ <text id="IDS_CLD_BODY_END_TIME">Vreme završetka</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Fiksiraj vremensku zonu</text>
+ <text id="IDS_CLD_BODY_OFF">Isključeno</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Izaberi</text>
+ <text id="IDS_CLD_OPT_DELETE">Obriši</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Datum dospeća</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Obriši događaj</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Sačuvaj u</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">nedelja/e</text>
+ <text id="IDS_COM_BODY_NOVEMBER">Novembar</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Nedelja</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 nedelja ranije</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Kreiraj događaj</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Dan</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Uvezi događaje/zadatke</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">April</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Sve ovog dana</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">Na svake 2 nedelje</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Izaberi ceo kalendar</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 sat ranije</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Fiksiraj vremena događaja i datume prema doleizabranoj vremenskoj zoni. Vremena i datumi se neće promeniti čak ni pri prelasku u drugu vremensku zonu</text>
+ <text id="IDS_CLD_BODY_YEAR">Godina</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Sve događaje pre današnjeg dana</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Izvezi događaje/zadatke</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">Septembar</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Ponavljaj do</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Cele godine</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 minuta ranije</text>
+ <text id="IDS_CLD_BODY_LOCATION">Lokacija</text>
+ <text id="IDS_CLD_BODY_MONDAY">Ponedeljak</text>
+ <text id="IDS_CLD_BODY_ON_TIME">Na vreme</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">Svaka 3 dana</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Svake godine</text>
+ <text id="IDS_COM_BODY_DECEMBER">Decembar</text>
+ <text id="IDS_CLD_HEADER_DELETE">Obriši</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">Ovaj događaj će biti obrisan</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Dodaj u kalendar</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">Nema događaja</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Kalendar</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Opis</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Celodnevni</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Vremenska zona</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">dan(a)</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Obriši</text>
+ <text id="IDS_CLD_OPT_EDIT">Izmeni</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_CLD_BODY_TITLE">Naslov</text>
+ <text id="IDS_CLD_TAB4_MONTH">Mesec</text>
+ <text id="IDS_CLD_SK3_DELETE">Obriši</text>
+ <text id="IDS_COM_POP_PM_M_ABB">PM</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">Mart</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">Prvi dan u nedelji</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">svakog meseca</text>
+ <text id="IDS_CLD_BODY_REMINDER">Podsetnik</text>
+ <text id="IDS_COM_BODY_JUNE">Jun</text>
+ <text id="IDS_CST_BODY_NOTICE">Beleška</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Nema stavki</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">Svaki dan</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Memorisanje neuspešno</text>
+ <text id="IDS_CLD_SK_SAVE">Sačuvaj</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Ingen</text>
+ <text id="IDS_COM_SK4_SHARE">Dela</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d markerade</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Välj alla</text>
+ <text id="IDS_COM_POP_CLOSE">Stäng</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Radera?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Hela månaden</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 dag före</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Låg</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">Varje vecka</text>
+ <text id="IDS_COM_BODY_JANUARY">januari</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">före</text>
+ <text id="IDS_COM_BODY_FEBRUARY">februari</text>
+ <text id="IDS_COM_BODY_JULY">juli</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Visa veckonummer</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Ingen rubrik</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Lägg till konto</text>
+ <text id="IDS_CLD_SK3_CREATE">Skapa</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Ogiltig tid</text>
+ <text id="IDS_CLD_BODY_LIST">Lista</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Endast denna händelse</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Sök</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Meddelande</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">augusti</text>
+ <text id="IDS_COM_BODY_MAY">maj</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Alla upprepade händelser</text>
+ <text id="IDS_COM_BODY_OCTOBER">oktober</text>
+ <text id="IDS_COM_POP_TIMES_LC">gånger</text>
+ <text id="IDS_CLD_SK_CANCEL">Avbryt</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">Klar</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Prioritet</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">E-post</text>
+ <text id="IDS_COM_BODY_HIGH">Hög</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 dagar före</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Åtgärden misslyckades</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Ogiltig\nupprepningsperiod</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Redigera händelse</text>
+ <text id="IDS_CLD_BODY_START_TIME">Starttid</text>
+ <text id="IDS_CLD_BODY_REPEAT">Upprepa</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 min före</text>
+ <text id="IDS_CLD_SK3_EDIT">Redigera</text>
+ <text id="IDS_CLD_BODY_END_TIME">Sluttid</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Lås tidszon</text>
+ <text id="IDS_CLD_BODY_OFF">Av</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Välj</text>
+ <text id="IDS_CLD_OPT_DELETE">Radera</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Förfallodatum</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Radera händelse</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Spara i</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">vecka/veckor</text>
+ <text id="IDS_COM_BODY_NOVEMBER">november</text>
+ <text id="IDS_CLD_BODY_SUNDAY">söndag</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 v före</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Skapa händelse</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Dag</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Importera händ./uppg.</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">april</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Hela dagen</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">Varannan vecka</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Hela kalendern</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 tim före</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Lås händelsetider och datum till den valda tidszonen. Tider och datum ändras inte även om du byter tidszon</text>
+ <text id="IDS_CLD_BODY_YEAR">År</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Alla händelser före dagens datum</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Exportera händ./uppg.</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">september</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Upprepa fram till</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Hela året</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 minuter före</text>
+ <text id="IDS_CLD_BODY_LOCATION">Plats</text>
+ <text id="IDS_CLD_BODY_MONDAY">måndag</text>
+ <text id="IDS_CLD_BODY_ON_TIME">När mötet börjar</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">Var 3:e dag</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Varje år</text>
+ <text id="IDS_COM_BODY_DECEMBER">december</text>
+ <text id="IDS_CLD_HEADER_DELETE">Radera</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">Denna händelse kommer att raderas</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Lägg till i kalendern</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">Inga händelser</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Kalender</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Beskrivning</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Hela dagen</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Tidzon</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">dag(ar)</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Radera</text>
+ <text id="IDS_CLD_OPT_EDIT">Redigera</text>
+ <text id="IDS_COM_POP_AM_M_ABB">FM</text>
+ <text id="IDS_CLD_BODY_TITLE">Rubrik</text>
+ <text id="IDS_CLD_TAB4_MONTH">Månad</text>
+ <text id="IDS_CLD_SK3_DELETE">Radera</text>
+ <text id="IDS_COM_POP_PM_M_ABB">EM</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">mars</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">Första dagen i veckan</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">Varje månad</text>
+ <text id="IDS_CLD_BODY_REMINDER">Påminnelse</text>
+ <text id="IDS_COM_BODY_JUNE">juni</text>
+ <text id="IDS_CST_BODY_NOTICE">Nyheter</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Inga objekt</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">varje dag</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Det gick inte att spara</text>
+ <text id="IDS_CLD_SK_SAVE">Spara</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Hiçbiri</text>
+ <text id="IDS_COM_SK4_SHARE">Paylaş</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d seçildi</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Hepsini seç</text>
+ <text id="IDS_COM_POP_CLOSE">Kapat</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Sil?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Tüm bu ay</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 gün önce</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Düşük</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">Her hafta</text>
+ <text id="IDS_COM_BODY_JANUARY">Ocak</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">Önce</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Şubat</text>
+ <text id="IDS_COM_BODY_JULY">Temmuz</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Hafta numarasını göster</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Başlık yok</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Hesap ekle</text>
+ <text id="IDS_CLD_SK3_CREATE">Oluştur</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Geçersiz saat</text>
+ <text id="IDS_CLD_BODY_LIST">Listele</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Sadece bu olay</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Ara</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Mesaj</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">Ağustos</text>
+ <text id="IDS_COM_BODY_MAY">Mayıs</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Tüm tekrarlanan olaylar</text>
+ <text id="IDS_COM_BODY_OCTOBER">Ekim</text>
+ <text id="IDS_COM_POP_TIMES_LC">defa</text>
+ <text id="IDS_CLD_SK_CANCEL">İptal</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">Kaydet</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Öncelik</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">E-posta</text>
+ <text id="IDS_COM_BODY_HIGH">Yüksek</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 gün önce</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">İşlem başarısız</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Geçersiz tekrar\nsüresi</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Olayı düzenle</text>
+ <text id="IDS_CLD_BODY_START_TIME">Başlangıç saati</text>
+ <text id="IDS_CLD_BODY_REPEAT">Tekrar</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 dakika önce</text>
+ <text id="IDS_CLD_SK3_EDIT">Düzenle</text>
+ <text id="IDS_CLD_BODY_END_TIME">Bitiş saati</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Saat dilimini kilitle</text>
+ <text id="IDS_CLD_BODY_OFF">Kapalı</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Seç</text>
+ <text id="IDS_CLD_OPT_DELETE">Sil</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Bitiş tarihi</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Olayı sil</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Kayıt yeri</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">hafta</text>
+ <text id="IDS_COM_BODY_NOVEMBER">Kasım</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Pazar</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 hafta önce</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Etkinlik oluştur</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Gün</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Etknlklr/grvlr içe aktr</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">Nisan</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Bütün gün</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">Her 2 haftada bir</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Tüm takvimler</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 saat önce</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Etkinlik saati ve tarihini aşağıdaki seçili saat diliminize kilitleyin. Başka bir saat dilimine geçtiğinizde bile saatler ve tarihler değişmeyecektir</text>
+ <text id="IDS_CLD_BODY_YEAR">Yıl</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Bugünden önceki tüm olaylar</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Etkinlklr/grvlr dşr ver</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">Eylül</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Son tekrarlama</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Tüm yıl</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 dakika önce</text>
+ <text id="IDS_CLD_BODY_LOCATION">Konum</text>
+ <text id="IDS_CLD_BODY_MONDAY">Pazartesi</text>
+ <text id="IDS_CLD_BODY_ON_TIME">Zamanında</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">Her 3 günde bir</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Her yıl</text>
+ <text id="IDS_COM_BODY_DECEMBER">Aralık</text>
+ <text id="IDS_CLD_HEADER_DELETE">Sil</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">Bu olay silinecek</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Takvime Ekle</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">Olay yok</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Takvim</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Açıklama</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Gün boyu</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Saat dilimi</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">gün</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Sil</text>
+ <text id="IDS_CLD_OPT_EDIT">Düzenle</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_CLD_BODY_TITLE">Başlık</text>
+ <text id="IDS_CLD_TAB4_MONTH">Ay</text>
+ <text id="IDS_CLD_SK3_DELETE">Sil</text>
+ <text id="IDS_COM_POP_PM_M_ABB">PM</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">Mart</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">Haftanın ilk günü</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">Her ay</text>
+ <text id="IDS_CLD_BODY_REMINDER">Hatırlatıcı</text>
+ <text id="IDS_COM_BODY_JUNE">Haziran</text>
+ <text id="IDS_CST_BODY_NOTICE">Dikkat</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Öğe yok</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">her gün</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Kaydetme başarısız</text>
+ <text id="IDS_CLD_SK_SAVE">Kaydet</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Немає</text>
+ <text id="IDS_COM_SK4_SHARE">Надіслати</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">Вибрано %d</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Вибрати всі</text>
+ <text id="IDS_COM_POP_CLOSE">Закрити</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">Видалити?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Весь цей місяць</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">На 1 день раніше</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Низький</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">щотижня</text>
+ <text id="IDS_COM_BODY_JANUARY">Січня</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">до</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Лютого</text>
+ <text id="IDS_COM_BODY_JULY">Липня</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Відображати номер тижня</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Немає назви</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Дод. обл. запис</text>
+ <text id="IDS_CLD_SK3_CREATE">Створити</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Неправильний час</text>
+ <text id="IDS_CLD_BODY_LIST">Список</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Лише ця подія</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Пошук</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Повідомлення</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">Серпня</text>
+ <text id="IDS_COM_BODY_MAY">Трав.</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Усі повторювані події</text>
+ <text id="IDS_COM_BODY_OCTOBER">Жовтня</text>
+ <text id="IDS_COM_POP_TIMES_LC">раз</text>
+ <text id="IDS_CLD_SK_CANCEL">Скасувати</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">Готово</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Пріоритет</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">Email</text>
+ <text id="IDS_COM_BODY_HIGH">Високий</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">за 2 дні</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Збій операції</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Хибний період повторювання</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Редагування події</text>
+ <text id="IDS_CLD_BODY_START_TIME">Час початку</text>
+ <text id="IDS_CLD_BODY_REPEAT">Повторити</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">За 5 хв. до</text>
+ <text id="IDS_CLD_SK3_EDIT">Редагу-\nвати</text>
+ <text id="IDS_CLD_BODY_END_TIME">Час завершення</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Блокування часового поясу</text>
+ <text id="IDS_CLD_BODY_OFF">Вимкнено</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Вибрати</text>
+ <text id="IDS_CLD_OPT_DELETE">Видалити</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Дата виконання</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Видалити подію</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Зберегти в</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">тиждень(-ів)</text>
+ <text id="IDS_COM_BODY_NOVEMBER">Листопада</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Неділя</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">На 1 тиждень раніше</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Створити подію</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">День</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Імпорт. події/завдання</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">Квітня</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Весь цей день</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">Кожні 2 тижні</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Весь календар</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">На 1 годину раніше</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Блокування часу та дати подій відповідно до вибраного нижче часового поясу. Час і дату не буде змінено, навіть якщо переміститися до іншого часового поясу</text>
+ <text id="IDS_CLD_BODY_YEAR">Рік</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Усі події крім сьогоднішніх</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Експорт. події/завдання</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">Вересня</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Повторювати до</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Усі за цей рік</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">За 15 хв. до</text>
+ <text id="IDS_CLD_BODY_LOCATION">Розташування</text>
+ <text id="IDS_CLD_BODY_MONDAY">Понеділок</text>
+ <text id="IDS_CLD_BODY_ON_TIME">Вчасно</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">Кожні 3 дні</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Щороку</text>
+ <text id="IDS_COM_BODY_DECEMBER">Грудня</text>
+ <text id="IDS_CLD_HEADER_DELETE">Видалити</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">Цю подію буде видалено</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Додати в календар</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">Немає подій</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Календар</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Опис</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Увесь день</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Часовий пояс</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">день(дні)</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Видал.</text>
+ <text id="IDS_CLD_OPT_EDIT">Редагувати</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_CLD_BODY_TITLE">Назва</text>
+ <text id="IDS_CLD_TAB4_MONTH">Місяць</text>
+ <text id="IDS_CLD_SK3_DELETE">Видал.</text>
+ <text id="IDS_COM_POP_PM_M_ABB">PM</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">Березня</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">Перший день тижня</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">щомісяця</text>
+ <text id="IDS_CLD_BODY_REMINDER">Нагадування</text>
+ <text id="IDS_COM_BODY_JUNE">Червня</text>
+ <text id="IDS_CST_BODY_NOTICE">Сповіщення</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Немає об’єктів</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">Щодня</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Збій збереження</text>
+ <text id="IDS_CLD_SK_SAVE">Зберегти</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">Hech qaysi</text>
+ <text id="IDS_COM_SK4_SHARE">Ulashing</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d tanlangan</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">Barchasini tanlash</text>
+ <text id="IDS_COM_POP_CLOSE">Yopish</text>
+ <text id="IDS_COM_POP_DELETE_Q">O'chirilsinmi?</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">Shu oy bo‘yi</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 kun avval</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">Past</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">Har hafta</text>
+ <text id="IDS_COM_BODY_JANUARY">Yanvar</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">oldin</text>
+ <text id="IDS_COM_BODY_FEBRUARY">Fevral</text>
+ <text id="IDS_COM_BODY_JULY">Iyul</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">Hafta raqamini ko‘rsatish</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">Bluetooth</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">Sarlavha yo‘q</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">Hisob qaydnoma qo‘shish</text>
+ <text id="IDS_CLD_SK3_CREATE">Yaratish</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">Noto‘g‘ri vaqt</text>
+ <text id="IDS_CLD_BODY_LIST">Ro‘yxat</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">Faqat ushbu hodisa</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">Qidirish</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">Xabar</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">Avgust</text>
+ <text id="IDS_COM_BODY_MAY">May</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">Barcha takrorlanuvchi hodisalar</text>
+ <text id="IDS_COM_BODY_OCTOBER">Oktabr</text>
+ <text id="IDS_COM_POP_TIMES_LC">marta</text>
+ <text id="IDS_CLD_SK_CANCEL">Bekor q.</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_CLD_SK3_DONE">Bajarildi</text>
+ <text id="IDS_CLD_BODY_PRIORITY">Ustunlik</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">E-pochta</text>
+ <text id="IDS_COM_BODY_HIGH">Yuqori</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 kun avval</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">Operatsiya bajarilmadi</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">Noto‘g‘ri qaytarish davri</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">Hodisani tahrirlash</text>
+ <text id="IDS_CLD_BODY_START_TIME">Boshlash vaqti</text>
+ <text id="IDS_CLD_BODY_REPEAT">Takrorlash</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 daqiqa avval</text>
+ <text id="IDS_CLD_SK3_EDIT">Tahrirlash</text>
+ <text id="IDS_CLD_BODY_END_TIME">Tugatish vaqti</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">Vaqt mintaqasini mahkaml.</text>
+ <text id="IDS_CLD_BODY_OFF">O‘ch.</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">Tanlash</text>
+ <text id="IDS_CLD_OPT_DELETE">O'chirish</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">Yakuniy sana</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">Hodisani yo‘q qilish</text>
+ <text id="IDS_ST_BODY_SAVE_TO">Quyidagiga saqlash</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">hafta(lar)</text>
+ <text id="IDS_COM_BODY_NOVEMBER">Noyabr</text>
+ <text id="IDS_CLD_BODY_SUNDAY">Yakshanba</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 hafta avval</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">Hodisa yar-sh</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">Kun</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">Hodis/topshiriq importi</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">Aprel</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">Bugun kun bo‘yi</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">Har 2 haftada</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">Butun kalendar</text>
+ <text id="IDS_CLD_BODY_YEAR">Yil</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 soat avval</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">Hodisa vaqti va sanasini quyida tanlangan vaqt mintaqangizga mahkamlang. Vaqt va sana o‘zgarmaydi, hatto boshqa vaqt mintaqasiga o‘tsangiz ham</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">Bugundan avvalgi barcha hodisalar</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">Hodis/topshir. eksporti</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">Sentyabr</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">Quyidagigacha takrorlash</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">Butun yilni</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 daqiqa avval</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_BODY_LOCATION">Joylashuv</text>
+ <text id="IDS_CLD_BODY_MONDAY">Dushanba</text>
+ <text id="IDS_CLD_BODY_ON_TIME">Vaqtida</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">Har 3 kunda</text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">Har yil</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_COM_BODY_DECEMBER">Dekabr</text>
+ <text id="IDS_CLD_HEADER_DELETE">O'chirish</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">Ushbu hodisa o'chirildi</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">Kalendarga qo‘shish</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">Hodisalar yo‘q</text>
+ <text id="IDS_CLD_BODY_CALENDAR">Kalendar</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">Tavsif</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">Kun davomidagi</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">Vaqt mintaqasi</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">kun</text>
+ <text id="IDS_CLD_BUTTON_DELETE">Yo‘q/q</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_OPT_EDIT">Tahrirlash</text>
+ <text id="IDS_COM_POP_AM_M_ABB">AM</text>
+ <text id="IDS_CLD_BODY_TITLE">Sarlavha</text>
+ <text id="IDS_CLD_TAB4_MONTH">Month</text>
+ <text id="IDS_CLD_SK3_DELETE">O'chirish</text>
+ <text id="IDS_COM_POP_PM_M_ABB">PM</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">Mart</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">Haftaning birinchi kuni</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">Har oy</text>
+ <text id="IDS_CLD_BODY_REMINDER">Eslatma</text>
+ <text id="IDS_COM_BODY_JUNE">Iyun</text>
+ <text id="IDS_CST_BODY_NOTICE">Eslatma</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">Elementlar yo‘q</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">Every day</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">Saqlab bo‘lmadi</text>
+ <text id="IDS_CLD_SK_SAVE">Saqlash</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">无</text>
+ <text id="IDS_COM_SK4_SHARE">共享</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d已选择</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">全选</text>
+ <text id="IDS_COM_POP_CLOSE">关闭</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">删除?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">整月</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1天之前</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">低</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">每周</text>
+ <text id="IDS_COM_BODY_JANUARY">1 月</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">提前</text>
+ <text id="IDS_COM_BODY_FEBRUARY">2 月</text>
+ <text id="IDS_COM_BODY_JULY">7 月</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">显示周数</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">蓝牙</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">无标题</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">添加账户</text>
+ <text id="IDS_CLD_SK3_CREATE">新建</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">无效时间</text>
+ <text id="IDS_CLD_BODY_LIST">列表</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">仅此事件</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">搜索</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">信息</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">8 月</text>
+ <text id="IDS_COM_BODY_MAY">5月</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">全部重复性事件</text>
+ <text id="IDS_COM_BODY_OCTOBER">10 月</text>
+ <text id="IDS_COM_POP_TIMES_LC">次</text>
+ <text id="IDS_CLD_SK_CANCEL">取消</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">完成</text>
+ <text id="IDS_CLD_BODY_PRIORITY">优先级</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">电子邮件</text>
+ <text id="IDS_COM_BODY_HIGH">高</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2天之前</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">操作失败</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">重复周期无效</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">编辑事件</text>
+ <text id="IDS_CLD_BODY_START_TIME">开始时间</text>
+ <text id="IDS_CLD_BODY_REPEAT">重复</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">提前 5 分钟</text>
+ <text id="IDS_CLD_SK3_EDIT">编辑</text>
+ <text id="IDS_CLD_BODY_END_TIME">结束时间</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">锁定时区</text>
+ <text id="IDS_CLD_BODY_OFF">关</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">选择</text>
+ <text id="IDS_CLD_OPT_DELETE">删除</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">结束日期</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">删除事件</text>
+ <text id="IDS_ST_BODY_SAVE_TO">保存至</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">week(s)</text>
+ <text id="IDS_COM_BODY_NOVEMBER">11 月</text>
+ <text id="IDS_CLD_BODY_SUNDAY">星期日</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1周之前</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">新建事件</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">日</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">导入事件/任务</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">4 月</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">整天</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">每 2 周</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">全部日历</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1小时前</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">锁定事件时间和日期为您选定的时区。即使您移动到另一时区,时间和日期也不会更改</text>
+ <text id="IDS_CLD_BODY_YEAR">年</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">今天之前的全部事件</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">导出事件/任务</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">9月</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">重复直到</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">今年全部</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 分钟之前</text>
+ <text id="IDS_CLD_BODY_LOCATION">位置</text>
+ <text id="IDS_CLD_BODY_MONDAY">星期一</text>
+ <text id="IDS_CLD_BODY_ON_TIME">准时</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">每隔 3 天</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">每年</text>
+ <text id="IDS_COM_BODY_DECEMBER">12 月</text>
+ <text id="IDS_CLD_HEADER_DELETE">删除</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">此事件将被删除</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">添加至日历</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">没有事件</text>
+ <text id="IDS_CLD_BODY_CALENDAR">日历</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">说明</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">全天</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">时区</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">日</text>
+ <text id="IDS_CLD_BUTTON_DELETE">删除</text>
+ <text id="IDS_CLD_OPT_EDIT">编辑</text>
+ <text id="IDS_COM_POP_AM_M_ABB">上午</text>
+ <text id="IDS_CLD_BODY_TITLE">标题</text>
+ <text id="IDS_CLD_TAB4_MONTH">月</text>
+ <text id="IDS_CLD_SK3_DELETE">删除</text>
+ <text id="IDS_COM_POP_PM_M_ABB">下午</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi直连</text>
+ <text id="IDS_COM_BODY_MARCH">3 月</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">每周的第一天</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">每月</text>
+ <text id="IDS_CLD_BODY_REMINDER">提醒</text>
+ <text id="IDS_COM_BODY_JUNE">6 月</text>
+ <text id="IDS_CST_BODY_NOTICE">注意</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">无项目</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">每天</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">储存失败</text>
+ <text id="IDS_CLD_SK_SAVE">保存</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">無</text>
+ <text id="IDS_COM_SK4_SHARE">分享</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d已選擇</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">選擇全部</text>
+ <text id="IDS_COM_POP_CLOSE">關閉</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">刪除嗎?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">這個月全部</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 天前</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">低</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">每週</text>
+ <text id="IDS_COM_BODY_JANUARY">1 月</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">提前</text>
+ <text id="IDS_COM_BODY_FEBRUARY">2 月</text>
+ <text id="IDS_COM_BODY_JULY">7 月</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">顯示週數</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">藍牙</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">無標題</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">加入帳戶</text>
+ <text id="IDS_CLD_SK3_CREATE">建立</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">無效時間</text>
+ <text id="IDS_CLD_BODY_LIST">清單</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">只此事件</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">搜尋</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">訊息</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">8 月</text>
+ <text id="IDS_COM_BODY_MAY">5 月</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">所有重複事件</text>
+ <text id="IDS_COM_BODY_OCTOBER">10 月</text>
+ <text id="IDS_COM_POP_TIMES_LC">時間</text>
+ <text id="IDS_CLD_SK_CANCEL">取消</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">完成</text>
+ <text id="IDS_CLD_BODY_PRIORITY">優先次序</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">電子郵件</text>
+ <text id="IDS_COM_BODY_HIGH">高</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 天前</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">操作失敗</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">重複時間無效</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">編輯事件</text>
+ <text id="IDS_CLD_BODY_START_TIME">開始時間</text>
+ <text id="IDS_CLD_BODY_REPEAT">重複</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 分鐘前</text>
+ <text id="IDS_CLD_SK3_EDIT">編輯</text>
+ <text id="IDS_CLD_BODY_END_TIME">結束時間</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">鎖定時區</text>
+ <text id="IDS_CLD_BODY_OFF">關</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">選擇</text>
+ <text id="IDS_CLD_OPT_DELETE">刪除</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">到期日</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">刪除事件</text>
+ <text id="IDS_ST_BODY_SAVE_TO">儲存至</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">week(s)</text>
+ <text id="IDS_COM_BODY_NOVEMBER">11 月</text>
+ <text id="IDS_CLD_BODY_SUNDAY">星期日</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 週前</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">建立事件</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">日</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">匯入事件/工作</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">4 月</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">這一日全部</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">每 2 週</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">所有日曆</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 小時前</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">將事件時間和日期鎖定於下列已選擇的時區。即使移動到其他時區,時間和日期也不會改變</text>
+ <text id="IDS_CLD_BODY_YEAR">年</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">今天前的全部事件</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">匯出事件/工作</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">9 月</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">重複直至</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">今年所有</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 分鐘前</text>
+ <text id="IDS_CLD_BODY_LOCATION">位置</text>
+ <text id="IDS_CLD_BODY_MONDAY">星期一</text>
+ <text id="IDS_CLD_BODY_ON_TIME">準時</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">每 3 天</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">每年</text>
+ <text id="IDS_COM_BODY_DECEMBER">12 月</text>
+ <text id="IDS_CLD_HEADER_DELETE">刪除</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">此事件將被刪除</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">加到日曆</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">無事件</text>
+ <text id="IDS_CLD_BODY_CALENDAR">日曆</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">描述</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">整天</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">時區</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">日</text>
+ <text id="IDS_CLD_BUTTON_DELETE">刪除</text>
+ <text id="IDS_CLD_OPT_EDIT">編輯</text>
+ <text id="IDS_COM_POP_AM_M_ABB">上午</text>
+ <text id="IDS_CLD_BODY_TITLE">標題</text>
+ <text id="IDS_CLD_TAB4_MONTH">月</text>
+ <text id="IDS_CLD_SK3_DELETE">刪除</text>
+ <text id="IDS_COM_POP_PM_M_ABB">下午</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">3 月</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">星期的第一天</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">每月</text>
+ <text id="IDS_CLD_BODY_REMINDER">提醒</text>
+ <text id="IDS_COM_BODY_JUNE">6 月</text>
+ <text id="IDS_CST_BODY_NOTICE">通知</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">無項目</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">每日</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">儲存失敗</text>
+ <text id="IDS_CLD_SK_SAVE">儲存</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">无</text>
+ <text id="IDS_COM_SK4_SHARE">分享</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">已选择%d</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">全选</text>
+ <text id="IDS_COM_POP_CLOSE">关闭</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">删除?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">整月</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1天之前</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">低</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">每周</text>
+ <text id="IDS_COM_BODY_JANUARY">1月</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">提前</text>
+ <text id="IDS_COM_BODY_FEBRUARY">2月</text>
+ <text id="IDS_COM_BODY_JULY">7月</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">显示周数</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">蓝牙</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">无标题</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">添加帐户</text>
+ <text id="IDS_CLD_SK3_CREATE">创建</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">无效时间</text>
+ <text id="IDS_CLD_BODY_LIST">列表</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">仅此事件</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">搜索</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">讯息</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">8月</text>
+ <text id="IDS_COM_BODY_MAY">5月</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">全部重复性事件</text>
+ <text id="IDS_COM_BODY_OCTOBER">10月</text>
+ <text id="IDS_COM_POP_TIMES_LC">此项目</text>
+ <text id="IDS_CLD_SK_CANCEL">取消</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">完成</text>
+ <text id="IDS_CLD_BODY_PRIORITY">优先</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">电邮</text>
+ <text id="IDS_COM_BODY_HIGH">高</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2天之前</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">操作失败</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">重复周期无效</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">编辑事件</text>
+ <text id="IDS_CLD_BODY_START_TIME">开始时间</text>
+ <text id="IDS_CLD_BODY_REPEAT">重复</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">提前 5 分钟</text>
+ <text id="IDS_CLD_SK3_EDIT">编辑</text>
+ <text id="IDS_CLD_BODY_END_TIME">完结时间</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">锁定时区</text>
+ <text id="IDS_CLD_BODY_OFF">关</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">选择</text>
+ <text id="IDS_CLD_OPT_DELETE">删除</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">结束日期</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">删除事件</text>
+ <text id="IDS_ST_BODY_SAVE_TO">保存至</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">week(s)</text>
+ <text id="IDS_COM_BODY_NOVEMBER">11月</text>
+ <text id="IDS_CLD_BODY_SUNDAY">星期日</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1周之前</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">新建事件</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">日</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">导入事件/任务</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">4月</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">整天</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">每两周</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">全部日历</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1小时之前</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">锁定事件时间和日期为您选定的以下时区。即使您移动到另一时区,时间和日期也不会更改</text>
+ <text id="IDS_CLD_BODY_YEAR">年</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">今天之前的全部事件</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">导出事件/任务</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">9月</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">重复直到</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">今年全部</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 分钟之前</text>
+ <text id="IDS_CLD_BODY_LOCATION">地点</text>
+ <text id="IDS_CLD_BODY_MONDAY">星期一</text>
+ <text id="IDS_CLD_BODY_ON_TIME">准时</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">每隔 3 天</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">每年</text>
+ <text id="IDS_COM_BODY_DECEMBER">12月</text>
+ <text id="IDS_CLD_HEADER_DELETE">删除</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">此事件将被删除</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">添加至日历</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">没有事件</text>
+ <text id="IDS_CLD_BODY_CALENDAR">日历</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">描述</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">全天</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">时区</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">日</text>
+ <text id="IDS_CLD_BUTTON_DELETE">删除</text>
+ <text id="IDS_CLD_OPT_EDIT">编辑</text>
+ <text id="IDS_COM_POP_AM_M_ABB">上午</text>
+ <text id="IDS_CLD_BODY_TITLE">标题</text>
+ <text id="IDS_CLD_TAB4_MONTH">月</text>
+ <text id="IDS_CLD_SK3_DELETE">删除</text>
+ <text id="IDS_COM_POP_PM_M_ABB">下午</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">直接Wi-Fi</text>
+ <text id="IDS_COM_BODY_MARCH">3月</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">每周第一天</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">每月</text>
+ <text id="IDS_CLD_BODY_REMINDER">提醒</text>
+ <text id="IDS_COM_BODY_JUNE">6月</text>
+ <text id="IDS_CST_BODY_NOTICE">注意</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">无项目</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">每天</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">储存失败</text>
+ <text id="IDS_CLD_SK_SAVE">储存</text>
+</string_table>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201301291730" Dversion="20120315">
+ <text id="IDS_CLD_BODY_NONE">無</text>
+ <text id="IDS_COM_SK4_SHARE">分享</text>
+ <text id="IDS_COM_BODY_PD_SELECTED">%d已選擇</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_DAY">day(s)</text>
+ <text id="IDS_COM_BODY_SELECT_ALL">全選</text>
+ <text id="IDS_COM_POP_CLOSE">關閉</text>
+ <text id="IDS_REPEAT_EVERY_DAY">Every day</text>
+ <text id="IDS_COM_POP_DELETE_Q">要刪除嗎?</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_MONTH">這一整月</text>
+ <text id="IDS_CLD_BODY_1_DAY_BEFORE">1 天前</text>
+ <text id="IDS_EVENT_EDITOR_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_COM_BODY_LOW">低</text>
+ <text id="IDS_CLD_BODY_EVERY_WEEK">每週</text>
+ <text id="IDS_COM_BODY_JANUARY">1 月</text>
+ <text id="IDS_CLD_BODY_BEFORE_LC">之前</text>
+ <text id="IDS_COM_BODY_FEBRUARY">2 月</text>
+ <text id="IDS_COM_BODY_JULY">7 月</text>
+ <text id="IDS_CLD_BODY_SHOW_WEEK_NUMBER">顯示星期數目</text>
+ <text id="IDS_COM_BODY_BLUETOOTH">藍牙</text>
+ <text id="IDS_EVENT_EDITOR_FROM">From</text>
+ <text id="IDS_CLD_BODY_NO_TITLE">無標題</text>
+ <text id="IDS_COM_SK_ADD_ACCOUNT">新增帳號</text>
+ <text id="IDS_CLD_SK3_CREATE">建立</text>
+ <text id="IDS_CLD_POP_INVALID_TIME">時間無效</text>
+ <text id="IDS_CLD_BODY_LIST">清單</text>
+ <text id="IDS_CLD_BODY_ONLY_THIS_EVENT">僅此活動</text>
+ <text id="IDS_CLD_BUTTON_SEARCH">搜尋</text>
+ <text id="IDS_CLD_OPT_MESSAGE_SEND_VIA">訊息</text>
+ <text id="IDS_REPEAT_EVERY_MONTH">Every month</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR">hour(s)</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE">min(s)</text>
+ <text id="IDS_COM_BODY_AUGUST">8 月</text>
+ <text id="IDS_COM_BODY_MAY">5 月</text>
+ <text id="IDS_CLD_POP_ALL_REPETITIVE_EVENTS">所有重複事件</text>
+ <text id="IDS_COM_BODY_OCTOBER">10 月</text>
+ <text id="IDS_COM_POP_TIMES_LC">時間</text>
+ <text id="IDS_CLD_SK_CANCEL">取消</text>
+ <text id="IDS_POPUP_EDIT_EVENT_QUESTION">Edit event?</text>
+ <text id="IDS_REPEAT_EVERY_YEAR">Every year</text>
+ <text id="IDS_CLD_SK3_DONE">完成</text>
+ <text id="IDS_CLD_BODY_PRIORITY">優先順序</text>
+ <text id="IDS_CLD_OPT_SENDVIA_EMAIL">電子郵件</text>
+ <text id="IDS_COM_BODY_HIGH">高</text>
+ <text id="IDS_REMINDER_MONTH_BEFORE">%d month(s) before</text>
+ <text id="IDS_REMINDER_DAY_BEFORE">%d day(s) before</text>
+ <text id="IDS_CLD_BODY_2_DAYS_BEFORE">2 天前</text>
+ <text id="IDS_COM_BODY_OPERATION_FAILED">操作失敗</text>
+ <text id="IDS_CLD_BODY_REPEAT_WARNING">重複期間無效</text>
+ <text id="IDS_CLD_HEADER_EDIT_EVENT">編輯活動</text>
+ <text id="IDS_CLD_BODY_START_TIME">開始時間</text>
+ <text id="IDS_CLD_BODY_REPEAT">重覆</text>
+ <text id="IDS_REPEAT_EVERY_N_YEARS">Every %d years</text>
+ <text id="IDS_CLD_BODY_5_MIN_BEFORE">5 分鐘前</text>
+ <text id="IDS_CLD_SK3_EDIT">編輯</text>
+ <text id="IDS_CLD_BODY_END_TIME">結束時間</text>
+ <text id="IDS_CLD_MBODY_LOCK_TIME_ZONE">鎖定時區</text>
+ <text id="IDS_CLD_BODY_OFF">關閉</text>
+ <text id="IDS_MONTH_VIEW_LIST_TO"> - </text>
+ <text id="IDS_COM_SK_SELECT">選擇</text>
+ <text id="IDS_CLD_OPT_DELETE">刪除</text>
+ <text id="IDS_CLD_BODY_DUE_DATE">到期日</text>
+ <text id="IDS_CLD_OPT_DELETE_EVENT">刪除活動</text>
+ <text id="IDS_ST_BODY_SAVE_TO">儲存至</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS">week(s)</text>
+ <text id="IDS_COM_BODY_NOVEMBER">11 月</text>
+ <text id="IDS_CLD_BODY_SUNDAY">週日</text>
+ <text id="IDS_CLD_BODY_1_WEEK_BEFORE">1 週前</text>
+ <text id="IDS_DAY_VIEW_ALL_DAY_EVENT">All day event</text>
+ <text id="IDS_TASK_PRIORITY_MIDDLE">Middle</text>
+ <text id="IDS_CLD_HEADER_CREATE_EVENT">建立活動</text>
+ <text id="IDS_REMINDER_WEEK_BEFORE">%d week(s) before</text>
+ <text id="IDS_CLD_BODY_DAY">日</text>
+ <text id="IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB">匯入活動/工作</text>
+ <text id="IDS_COM_BODY_NFC">NFC</text>
+ <text id="IDS_COM_BODY_APRIL">4 月</text>
+ <text id="IDS_CLD_BODY_ALL_THIS_DAY">這一整天</text>
+ <text id="IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT">If you delete this repeated event,\nall related events will also be\ndeleted. Continue?</text>
+ <text id="IDS_CLD_BODY_EVERY_2_WEEKS">每 2 週</text>
+ <text id="IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK">week(s)</text>
+ <text id="IDS_CLD_BODY_ALL_CALENDAR">所有日曆</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_BEFORE">Tap to view events before</text>
+ <text id="IDS_CLD_BODY_1_HOUR_BEFORE">1 小時前</text>
+ <text id="IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG">鎖定活動時間和日期為您所選擇的時區。時間和日期將不會改變,即使你移動到另一個時區</text>
+ <text id="IDS_CLD_BODY_YEAR">年</text>
+ <text id="IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY">今天前的全部活動</text>
+ <text id="IDS_REMINDER_HOUR_BEFORE">%d hour(s) before</text>
+ <text id="IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB">匯出活動/工作</text>
+ <text id="IDS_COM_BODY_SEPTEMBER">9 月</text>
+ <text id="IDS_REPEAT_EVERY_WEEK">Every week</text>
+ <text id="IDS_REMINDER_MINUTE_BEFORE">%d min(s) before</text>
+ <text id="IDS_CLD_BODY_REPEAT_UNTIL">重複到</text>
+ <text id="IDS_CLD_MBODY_ALL_THIS_YEAR">今年所有</text>
+ <text id="IDS_LIST_VIEW_TAP_VIEW_AFTER">Tap to view events after</text>
+ <text id="IDS_REPEAT_EVERY_N_MONTHS">Every %d months</text>
+ <text id="IDS_CLD_OPT_15_MINS_BEFORE">15 分鐘前</text>
+ <text id="IDS_CLD_BODY_LOCATION">位置</text>
+ <text id="IDS_CLD_BODY_MONDAY">週一</text>
+ <text id="IDS_CLD_BODY_ON_TIME">準時</text>
+ <text id="IDS_CLD_BODY_EVERY_3_DAYS">每 3 週</text>
+ <text id="IDS_EVENT_EDITOR_TO">To</text>
+ <text id="IDS_EVENT_DETAILS_TO"> ~ </text>
+ <text id="IDS_CLD_BODY_EVERY_YEAR">每年</text>
+ <text id="IDS_COM_BODY_DECEMBER">12 月</text>
+ <text id="IDS_CLD_HEADER_DELETE">刪除</text>
+ <text id="IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED">將刪除此活動</text>
+ <text id="IDS_EMAIL_OPT_ADD_TO_CALENDAR">加到日曆</text>
+ <text id="IDS_REMINDER_YEAR_BEFORE">%d year(s) before</text>
+ <text id="IDS_CLD_BODY_NO_EVENTS">沒有活動</text>
+ <text id="IDS_CLD_BODY_CALENDAR">日曆</text>
+ <text id="IDS_CLD_BODY_CREATE_DESCRITION">說明</text>
+ <text id="IDS_CLD_BODY_ALL_DAY">整天</text>
+ <text id="IDS_REPEAT_EVERY_N_WEEKS">Every %d weeks</text>
+ <text id="IDS_CLD_BODY_TIME_ZONE">時區</text>
+ <text id="IDS_REPEAT_EVERY_N_DAYS">Every %d days</text>
+ <text id="IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS">天</text>
+ <text id="IDS_CLD_BUTTON_DELETE">刪除</text>
+ <text id="IDS_CLD_OPT_EDIT">編輯</text>
+ <text id="IDS_COM_POP_AM_M_ABB">上午</text>
+ <text id="IDS_CLD_BODY_TITLE">標題</text>
+ <text id="IDS_CLD_TAB4_MONTH">月</text>
+ <text id="IDS_CLD_SK3_DELETE">刪除</text>
+ <text id="IDS_COM_POP_PM_M_ABB">下午</text>
+ <text id="IDS_COM_OPT1_WI_FI_DIRECT">Wi-Fi Direct</text>
+ <text id="IDS_COM_BODY_MARCH">3 月</text>
+ <text id="IDS_CLD_BODY_FIRST_DAY_OF_WEEK">一週的第一天</text>
+ <text id="IDS_CLD_BODY_EVERY_MONTH">每月</text>
+ <text id="IDS_CLD_BODY_REMINDER">提醒</text>
+ <text id="IDS_COM_BODY_JUNE">6 月</text>
+ <text id="IDS_CST_BODY_NOTICE">通知</text>
+ <text id="IDS_COM_BODY_NO_ITEMS">無項目</text>
+ <text id="IDS_CLD_BODY_EVERY_DAY_ATNT">每天</text>
+ <text id="IDS_COM_POP_SAVING_FAILED">儲存失敗</text>
+ <text id="IDS_CLD_SK_SAVE">儲存</text>
+</string_table>
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClCalendarApp.cpp
+ * @brief This is the implementation file for the CalendarApp class.
+ */
+
+#include <new>
+#include <FIo.h>
+#include <FSocial.h>
+#include "ClCalendarApp.h"
+#include "ClMainFrame.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Io;
+using namespace Tizen::Social;
+using namespace Tizen::System;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+enum VcsType
+{
+ VCS_TYPE_NOT_VCS_FILE,
+ VCS_TYPE_VEVENT,
+ VCS_TYPE_VTODO
+};
+
+VcsType
+CheckVcsFileValidation(String& vcsFilePath)
+{
+ File file;
+ if (file.Construct(vcsFilePath, L"r") != E_SUCCESS)
+ {
+ AppLogDebug("[E_FILE_NOT_FOUND] Unable to get vcs file from path.");
+ return VCS_TYPE_NOT_VCS_FILE;
+ }
+
+ String buffer;
+ while (file.Read(buffer) == E_SUCCESS)
+ {
+ if (buffer.StartsWith(L"BEGIN:VEVENT", 0) == true)
+ {
+ return VCS_TYPE_VEVENT;
+ }
+ else if (buffer.StartsWith(L"BEGIN:VTODO", 0) == true)
+ {
+ return VCS_TYPE_VTODO;
+ }
+ }
+
+ return VCS_TYPE_NOT_VCS_FILE;
+}
+
+
+CalendarApp::CalendarApp(void)
+ : __type(OPERATION_TYPE_DEFAULT)
+ , __requestId(INVALID_REQUEST_ID)
+ , __initialScene(IDSCN_MONTH)
+ , __pArgs(null)
+{
+}
+
+CalendarApp::~CalendarApp(void)
+{
+ if (__pArgs != null)
+ {
+ __pArgs->RemoveAll(true);
+ delete __pArgs;
+ }
+}
+
+UiApp*
+CalendarApp::CreateInstance(void)
+{
+ // Create the instance through the constructor.
+ return new (std::nothrow) CalendarApp();
+}
+
+const String
+CalendarApp::GetExportVcsFilePath(void)
+{
+ DateTime currentTime;
+ SystemTime::GetCurrentTime(TIME_MODE_WALL, currentTime);
+
+ String path;
+ path.Format(30, VCS_EXPORT_PATH, currentTime.GetYear(), currentTime.GetMonth(), currentTime.GetDay(),
+ currentTime.GetHour(), currentTime.GetMinute(), currentTime.GetSecond());
+
+ if (File::IsFileExist(path) == true)
+ {
+ int count = 0;
+ String nextPath;
+ do
+ {
+ nextPath.Format(35, L"%ls-%3d", path.GetPointer(), ++count);
+ } while (File::IsFileExist(nextPath) == true);
+ path = nextPath;
+ }
+
+ return path;
+}
+
+const String*
+CalendarApp::GetArgument(const String& key) const
+{
+ if (__pArgs == null)
+ {
+ return null;
+ }
+ return static_cast<const String*>(__pArgs->GetValue(key));
+}
+
+const String&
+CalendarApp::GetInitialScene(void) const
+{
+ return __initialScene;
+}
+
+OperationType
+CalendarApp::GetOperationType(void) const
+{
+ return __type;
+}
+
+RequestId
+CalendarApp::GetRequestId(void) const
+{
+ return __requestId;
+}
+
+void
+CalendarApp::AddCalendarAppStatusChangedEventListener(ICalendarAppStatusChangedEventListener& listener)
+{
+ __listeners.Add(&listener);
+}
+
+void
+CalendarApp::RemoveCalendarAppStatusChangedEventListener(ICalendarAppStatusChangedEventListener& listener)
+{
+ __listeners.Remove(listener);
+}
+
+bool
+CalendarApp::OnAppInitializing(AppRegistry& appRegistry)
+{
+ // Set AppControl Provider
+ AppControlProviderManager::GetInstance()->SetAppControlProviderEventListener(this);
+
+ // Set SettingInfo event listener
+ SettingInfo::AddSettingEventListener(*this);
+
+ return true;
+}
+
+bool
+CalendarApp::OnAppInitialized(void)
+{
+ // Create a Frame
+ MainFrame* pMainFrame = new (std::nothrow) MainFrame();
+
+ result r = pMainFrame->Construct();
+ TryReturn(r == E_SUCCESS, false, "[%s] Unable to create MainFrame.", GetErrorMessage(r));
+
+ AddFrame(*pMainFrame);
+
+ return true;
+}
+
+bool
+CalendarApp::OnAppTerminating(AppRegistry& appRegistry, bool forcedTermination)
+{
+ return true;
+}
+
+void
+CalendarApp::OnForeground(void)
+{
+ IEnumerator* pEnum = __listeners.GetEnumeratorN();
+ while (pEnum->MoveNext() == E_SUCCESS)
+ {
+ static_cast<ICalendarAppStatusChangedEventListener*>(pEnum->GetCurrent())->OnForeground();
+ }
+ delete pEnum;
+
+ AppAssertf(GetAppFrame() != null && GetAppFrame()->GetFrame() != null, "[E_FAILURE] Unable to get frame.");
+ GetAppFrame()->GetFrame()->Invalidate(true);
+}
+
+void
+CalendarApp::OnBackground(void)
+{
+ IEnumerator* pEnum = __listeners.GetEnumeratorN();
+ while (pEnum->MoveNext() == E_SUCCESS)
+ {
+ static_cast<ICalendarAppStatusChangedEventListener*>(pEnum->GetCurrent())->OnBackground();
+ }
+ delete pEnum;
+}
+
+void
+CalendarApp::OnAppControlRequestReceived(RequestId reqId, const String& operationId, const String* pUriData,
+ const String* pMimeType, const IMap* pExtraData)
+{
+ if (pMimeType != null)
+ {
+ __mimeType = *pMimeType;
+ }
+ if (pUriData != null)
+ {
+ __uriScheme = *pUriData;
+ }
+ __requestId = reqId;
+
+ if (pExtraData != null)
+ {
+ HashMap* pArgs = new (std::nothrow) HashMap();
+ pArgs->Construct(pExtraData->GetCount());
+ IMapEnumerator* pEnum = pExtraData->GetMapEnumeratorN();
+ while (pEnum->MoveNext() == E_SUCCESS)
+ {
+ const String* pKey = dynamic_cast<const String*>(pEnum->GetKey());
+ const String* pValue = dynamic_cast<const String*>(pEnum->GetValue());
+ if (pKey != null && pValue != null)
+ {
+ pArgs->Add(new (std::nothrow) String(*pKey), new (std::nothrow) String (*pValue));
+ }
+ }
+ delete pEnum;
+ __pArgs = pArgs;
+ }
+
+ bool requestFailed = true;
+ if (operationId == ID_OPERATION_MAIN)
+ {
+ requestFailed = false;
+ }
+ else if (operationId == ID_OPERATION_PICK)
+ {
+ const String* pItemType = GetArgument(KEY_CALENDAR_ITEM_TYPE);
+ if (pItemType != null)
+ {
+ if (pItemType->Equals(VALUE_CALENDAR_EVENT_TYPE, false) == true)
+ {
+ __initialScene = IDSCN_EVENT_SELECTOR;
+ __type = OPERATION_TYPE_APPCONTROL;
+ requestFailed = false;
+ }
+ else if (pItemType->Equals(VALUE_CALENDAR_TODO_TYPE, false) == true)
+ {
+ __initialScene = IDSCN_TASK_SELECTOR;
+ __type = OPERATION_TYPE_APPCONTROL;
+ requestFailed = false;
+ }
+ }
+ }
+ else if (operationId == ID_OPERATION_VIEW)
+ {
+ const String* pViewType = GetArgument(KEY_CALENDAR_VIEW_TYPE);
+ if (pViewType != null)
+ {
+ if (pViewType->Equals(VALUE_CALENDAR_EVENT_TYPE, false) == true)
+ {
+ __initialScene = IDSCN_EVENT_DETAILS;
+ __type = OPERATION_TYPE_APPCONTROL;
+ requestFailed = false;
+ }
+ else if (pViewType->Equals(VALUE_CALENDAR_TODO_TYPE, false) == true)
+ {
+ __initialScene = IDSCN_TASK_DETAILS;
+ __type = OPERATION_TYPE_APPCONTROL;
+ requestFailed = false;
+ }
+ else if (pViewType->Equals(VALUE_CALENDAR_VCS_TYPE, false) == true)
+ {
+ String* pPath = const_cast<String*>(GetArgument(KEY_CALENDAR_PATH));
+ if (pPath != null)
+ {
+ VcsType vcsType = CheckVcsFileValidation(*pPath);
+ if (vcsType != VCS_TYPE_NOT_VCS_FILE)
+ {
+ __initialScene = (vcsType == VCS_TYPE_VEVENT) ? IDSCN_EVENT_DETAILS : IDSCN_TASK_DETAILS;
+ __type = OPERATION_TYPE_APPCONTROL;
+ requestFailed = false;
+ }
+ }
+ }
+ }
+ }
+ else if (operationId == ID_OPERATION_CONFIG)
+ {
+ __initialScene = IDSCN_SETTING;
+ __type = OPERATION_TYPE_APPCONTROL;
+ requestFailed = false;
+ }
+
+ if (requestFailed == true)
+ {
+ result r = AppControlProviderManager::GetInstance()->SendAppControlResult(__requestId, APP_CTRL_RESULT_FAILED, null);
+ AppLogDebugIf(r != E_SUCCESS, "[%s] Unable to return result.", GetErrorMessage(r));
+ Terminate();
+ }
+}
+
+void
+CalendarApp::OnSettingChanged(String& key)
+{
+ if (key.Equals(KEY_SYSTEM_LANGUAGE, false) == true
+ || key.Equals(KEY_SYSTEM_COUNTRY, false) == true
+ || key.Equals(KEY_SYSTEM_TIME_ZONE, false) == true)
+ {
+ if (__type == OPERATION_TYPE_APPCONTROL)
+ {
+ result r = AppControlProviderManager::GetInstance()->SendAppControlResult(__requestId, APP_CTRL_RESULT_TERMINATED, null);
+ AppLogDebugIf(r != E_SUCCESS, "[%s] Unable to return result.", GetErrorMessage(r));
+ }
+ Terminate();
+ }
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClCalendarEntry.cpp
+ * @brief This is the implementation file for the Calendar application entry.
+ */
+
+#include <new>
+#include "ClCalendarApp.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif // __cplusplus
+
+_EXPORT_ int OspMain(int argc, char *pArgv[]);
+#ifdef _PROFILE
+extern void start_profile (void);
+extern void end_profile (void);
+#else
+#define start_profile()
+#define end_profile()
+#endif
+
+
+/**
+ * The entry function of Tizen application called by the operating system.
+ */
+int
+OspMain(int argc, char *pArgv[])
+{
+ result r = E_SUCCESS;
+
+ AppLogDebug("Application started.");
+ ArrayList* pArgs = new (std::nothrow) ArrayList();
+ pArgs->Construct();
+ for (int i = 0; i < argc; i++)
+ {
+ pArgs->Add(new (std::nothrow) String(pArgv[i]));
+ }
+
+ start_profile();
+ r = Tizen::App::UiApp::Execute(CalendarApp::CreateInstance, pArgs);
+ if (IsFailed(r))
+ {
+ AppLogException("Application execution failed-[%s].", GetErrorMessage(r));
+ r &= 0x0000FFFF;
+ }
+ end_profile();
+
+ pArgs->RemoveAll(true);
+ delete pArgs;
+ AppLogDebug("Application finished.");
+
+ return static_cast<int>(r);
+}
+#ifdef __cplusplus
+}
+#endif // __cplusplus
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClCalendarListForm.cpp
+ * @brief This is the implementation file for the CalendarListForm class.
+ */
+
+#include <new>
+#include <FGraphics.h>
+#include "ClCalendarListForm.h"
+#include "ClResourceManager.h"
+#include "ClTypes.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+CalendarListForm::CalendarListForm(void)
+ : __pCalendars(null)
+{
+}
+
+CalendarListForm::~CalendarListForm(void)
+{
+}
+
+result
+CalendarListForm::Initialize(void)
+{
+ return Construct(L"IDL_CALENDAR_LIST_FORM");
+}
+
+result
+CalendarListForm::OnInitializing(void)
+{
+ SetFormBackEventListener(this);
+ Footer* pFooter = GetFooter();
+ pFooter->AddActionEventListener(*this);
+
+ return E_SUCCESS;
+}
+
+result
+CalendarListForm::OnTerminating(void)
+{
+ if (__pCalendars != null)
+ {
+ __pCalendars->RemoveAll(true);
+ delete __pCalendars;
+ }
+ return E_SUCCESS;
+}
+
+void
+CalendarListForm::OnActionPerformed(const Control& source, int actionId)
+{
+
+}
+
+void
+CalendarListForm::OnFormBackRequested(Form& source)
+{
+ SceneManager::GetInstance()->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT));
+}
+
+int
+CalendarListForm::GetItemCount(void)
+{
+ return 0;
+}
+
+ListItemBase*
+CalendarListForm::CreateItem(int index, int itemWidth)
+{
+ CustomItem* pItem = new (std::nothrow) CustomItem();
+ pItem->Construct(Dimension(116, itemWidth), LIST_ANNEX_STYLE_NORMAL);
+
+ return pItem;
+}
+
+bool
+CalendarListForm::DeleteItem(int index, ListItemBase* pItem, int itemWidth)
+{
+ delete pItem;
+ return true;
+}
+
+void
+CalendarListForm::OnListViewItemStateChanged(ListView& listView, int index, int elementId, ListItemStatus status)
+{
+
+}
+
+void
+CalendarListForm::OnListViewItemSwept(ListView& listView, int index, SweepDirection direction)
+{
+
+}
+
+void
+CalendarListForm::OnListViewContextItemStateChanged(ListView& listView, int index, int elementId, ListContextItemStatus status)
+{
+
+}
+
+void
+CalendarListForm::OnListViewItemLongPressed(ListView& listView, int index, int elementId, bool& invokeListViewItemCallback)
+{
+
+}
+
+void
+CalendarListForm::OnListViewItemReordered(ListView& listView, int indexFrom, int indexTo)
+{
+
+}
+
+void
+CalendarListForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs)
+{
+ if (pArgs != null)
+ {
+ pArgs->RemoveAll(true);
+ delete pArgs;
+ }
+}
+
+void
+CalendarListForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
+{
+
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClDayEventListForm.cpp
+ * @brief This is the implementation file for the DayEventListForm class.
+ */
+
+#include <new>
+#include "ClDayEventListForm.h"
+#include "ClEventItem.h"
+#include "ClResourceManager.h"
+#include "ClTypes.h"
+
+using namespace Tizen;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Graphics;
+using namespace Tizen::Social;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+enum ItemElementId
+{
+ ID_ITEM_ELEMENT_COLOR_BAR,
+ ID_ITEM_ELEMENT_SUBJECT,
+ ID_ITEM_ELEMENT_DURATION,
+ ID_ITEM_ELEMENT_LOCATION,
+ ID_ITEM_ELEMENT_REPEAT_ICON,
+ ID_ITEM_ELEMENT_ALARM_ICON
+};
+
+DayEventListForm::DayEventListForm(void)
+ : __pCalendarbook(null)
+ , __pDateFormatter(null)
+ , __pTimeFormatter(null)
+ , __pEvents(null)
+ , __pEventsListView(null)
+{
+
+}
+
+DayEventListForm::~DayEventListForm(void)
+{
+}
+
+result
+DayEventListForm::Initialize(void)
+{
+ return Construct(L"IDL_DAY_EVENT_LIST_FORM");
+}
+
+result
+DayEventListForm::OnInitializing(void)
+{
+ __pEventsListView = dynamic_cast<ListView*>(GetControl(L"IDC_LISTVIEW"));
+ TryReturn(__pEventsListView != null, E_FAILURE, "[E_FAILURE] Unable to get listview.");
+
+ __pCalendarbook = new (std::nothrow) Calendarbook();
+ __pCalendarbook->Construct();
+
+ __pEventsListView->SetItemProvider(*this);
+ __pEventsListView->AddListViewItemEventListener(*this);
+
+ __pDateFormatter = ResourceManager::CreateDateFormatterN(Locales::DATE_TIME_STYLE_FULL);
+ __pTimeFormatter = ResourceManager::CreateTimeFormatterN();
+
+ SetFormBackEventListener(this);
+
+ return E_SUCCESS;
+}
+
+result
+DayEventListForm::OnTerminating(void)
+{
+ delete __pCalendarbook;
+ delete __pDateFormatter;
+ delete __pTimeFormatter;
+
+ if (__pEvents != null)
+ {
+ __pEvents->RemoveAll(true);
+ delete __pEvents;
+ }
+ return E_SUCCESS;
+}
+
+void
+DayEventListForm::OnFormBackRequested(Form& source)
+{
+ SceneManager::GetInstance()->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT));
+}
+
+int
+DayEventListForm::GetItemCount(void)
+{
+ if (__pEvents == null)
+ {
+ return 0;
+ }
+ return __pEvents->GetCount();
+}
+
+ListItemBase*
+DayEventListForm::CreateItem(int index, int itemWidth)
+{
+ const CalEventInstance* pEvent = static_cast<CalEventInstance*>(__pEvents->GetAt(index));
+ if (pEvent == null)
+ {
+ return null;
+ }
+
+ EventItem* pItem = new (std::nothrow) EventItem();
+ pItem->Initialize(EVENT_ITEM_STYLE_NORMAL, itemWidth);
+ pItem->SetTitle(pEvent->GetSubject());
+ pItem->SetCalendarColor(GetCalendarColor(pEvent->GetCalendarId()));
+ pItem->SetLocation(pEvent->GetLocation());
+ if (pEvent->IsAllDayEvent() == true)
+ {
+ pItem->SetAllDayEvent();
+ }
+ else
+ {
+ DateTime startWallTime = ResourceManager::ConvertUtcTimeToWallTime(pEvent->GetStartTime());
+ DateTime endWallTime = ResourceManager::ConvertUtcTimeToWallTime(pEvent->GetEndTime());
+
+ pItem->SetDateRange(startWallTime, endWallTime, __startDate, __pTimeFormatter);
+ }
+ pItem->SetReminder(pEvent->HasReminder());
+ pItem->SetRepeat(pEvent->IsRecurring());
+// pItem->SetFacebookEvent(false);
+ pItem->UpdateElements();
+ return pItem;
+}
+
+bool
+DayEventListForm::DeleteItem(int index, ListItemBase* pItem, int itemWidth)
+{
+ delete pItem;
+ return true;
+}
+
+void
+DayEventListForm::OnListViewItemStateChanged(ListView& listView, int index, int elementId, ListItemStatus status)
+{
+ if (status == LIST_ITEM_STATUS_SELECTED)
+ {
+ result r = E_SUCCESS;
+ CalEventInstance* pEventInstance = static_cast<CalEventInstance*>(__pEvents->GetAt(index));
+ TryReturnVoid(pEventInstance != null, "[E_FAILURE] Unable to get event instance.");
+
+ LinkedList* pArgs = new (std::nothrow) LinkedList();
+ pArgs->Add(new (std::nothrow) CalEventInstance(*pEventInstance));
+ r = SceneManager::GetInstance()->GoForward(ForwardSceneTransition(L"IDSCN_EVENT_DETAILS",
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT),
+ pArgs);
+ if (r != E_SUCCESS)
+ {
+ AppLogDebug("[%s] Unable to change scene.", GetErrorMessage(r));
+ pArgs->RemoveAll(true);
+ delete pArgs;
+ }
+ }
+}
+
+void
+DayEventListForm::OnListViewItemSwept(ListView& listView, int index, SweepDirection direction)
+{
+
+}
+
+void
+DayEventListForm::OnListViewContextItemStateChanged(ListView& listView, int index, int elementId, ListContextItemStatus status)
+{
+
+}
+
+void
+DayEventListForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs)
+{
+ if (pArgs != null)
+ {
+ if (pArgs->GetCount() >= 2)
+ {
+ __startDate = *static_cast<DateTime*>(pArgs->GetAt(0));
+ __endDate = *static_cast<DateTime*>(pArgs->GetAt(1));
+ }
+ pArgs->RemoveAll(true);
+ delete pArgs;
+ }
+
+ if (__pEvents != null)
+ {
+ __pEvents->RemoveAll(true);
+ delete __pEvents;
+ }
+
+ String title;
+ __pDateFormatter->Format(__startDate, title);
+ GetHeader()->SetTitleText(title);
+
+ CalendarbookFilter filter(CB_FI_TYPE_NON_ALL_DAY_EVENT_INSTANCE);
+ filter.AppendDateTime(FI_CONJ_OP_NONE, EVENT_INST_FI_PR_END_TIME, FI_CMP_OP_GREATER_THAN, ResourceManager::ConvertWallTimeToUtcTime(__startDate));
+ filter.AppendDateTime(FI_CONJ_OP_AND, EVENT_INST_FI_PR_START_TIME, FI_CMP_OP_LESS_THAN, ResourceManager::ConvertWallTimeToUtcTime(__endDate));
+ __pEvents = __pCalendarbook->SearchN(filter, EVENT_INST_FI_PR_START_TIME, SORT_ORDER_ASCENDING);
+ __pEventsListView->UpdateList();
+}
+
+void
+DayEventListForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
+{
+}
+
+const Color
+DayEventListForm::GetCalendarColor(const RecordId& calendarId) const
+{
+ Calendar* pCalendar = __pCalendarbook->GetCalendarN(calendarId);
+ TryReturn(pCalendar != null, Color(), "[E_FAILURE] Unable to get calendar.");
+
+ byte r;
+ byte g;
+ byte b;
+ pCalendar->GetColor(r, g, b);
+ delete pCalendar;
+ return Color(r, g, b);
+}
+
+const String
+DayEventListForm::GetDateRangeText(const DateTime& start, const DateTime& end, bool isAllDayEvent) const
+{
+ String startText;
+ result r = __pTimeFormatter->Format(start, startText);
+ TryReturn(r == E_SUCCESS, L"", "[%s] Unable to get string of start time.", GetErrorMessage(r));
+
+ String endText;
+ r = __pTimeFormatter->Format(end, endText);
+ TryReturn(r == E_SUCCESS, L"", "[%s] Unable to get string of end time.", GetErrorMessage(r));
+
+ String range = ResourceManager::GetString(IDS_MONTH_VIEW_LIST_TO);
+ if (isAllDayEvent == true)
+ {
+ range = ResourceManager::GetString(IDS_CLD_BODY_ALL_DAY);
+ }
+ else if (start.GetYear() == end.GetYear() && start.GetMonth() == end.GetMonth() && start.GetDay() == end.GetDay())
+ {
+ range = startText + range + endText;
+ }
+ else
+ {
+ DateTime dayStart = __startDate;
+ dayStart.SetValue(dayStart.GetYear(), dayStart.GetMonth(), dayStart.GetDay());
+ DateTime dayEnd = dayStart;
+ dayEnd.AddDays(1);
+ dayEnd.AddSeconds(-1);
+ if (start < dayStart)
+ {
+ if (end > dayEnd)
+ {
+ range = ResourceManager::GetString(IDS_CLD_BODY_ALL_DAY);
+ }
+ else
+ {
+ range += endText;
+ }
+ }
+ else
+ {
+ range = startText + range;
+ }
+ }
+
+ return range;
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClDayPanel.cpp
+ * @brief This is the implementation file for the DayPanel class.
+ */
+
+#include <new>
+#include <FSocial.h>
+#include <FSystem.h>
+#include "ClDayPanel.h"
+#include "ClEventListPresentationModel.h"
+#include "ClGoToDatePopup.h"
+#include "ClMainForm.h"
+#include "ClPanningAnimationManager.h"
+#include "ClResourceManager.h"
+#include "ClTypes.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Graphics;
+using namespace Tizen::Social;
+using namespace Tizen::System;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Animations;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+static const int IDA_DAY_PANEL_ALL_DAY_EVENT_EXPAND = 11411;
+static const int IDA_DAY_PANEL_ALL_DAY_EVENT_COLLAPSE = 11412;
+static const int IDA_DAY_PANEL_EVENT = 11421;
+static const int IDA_DAY_PANEL_EVENT_MORE = 11422;
+
+static const int MIN_H_ALL_DAY_EVENT_LIST_PANEL = 80;
+static const int MAX_H_ALL_DAY_EVENT_LIST_PANEL = 400;
+static const unsigned int COLOR_ALL_DAY_EVENT_LIST_PANEL_BACKGROUND = Color32<230, 229, 222>::Value;
+static const int Y_ALL_DAY_EVENT_LIST = 80;
+static const unsigned int COLOR_ALL_DAY_EVENT_LIST_LINE = Color32<169, 169, 169>::Value;
+static const int H_ALL_DAY_EVENT_ITEM = 80;
+static const int X_ALL_DAY_EVENT = 22;
+static const int FONT_SIZE_ALL_DAY_EVENT = 34;
+static const unsigned int COLOR_ALL_DAY_EVENT = Color32<0, 0, 0>::Value;
+static const unsigned int COLOR_ALL_DAY_EVENT_FOCUS = Color32<249, 249, 249>::Value;
+static const int Y_EVENT_COLOR_BAR = 4;
+static const int W_EVENT_COLOR_BAR = 7;
+static const int H_EVENT_COLOR_BAR = 72;
+static const int W_ALL_DAY_EVENT_EXPAND_ICON_MARGIN = 16;
+static const int H_ALL_DAY_EVENT_EXPAND = 80;
+static const int FONT_SIZE_ALL_DAY_EVENT_EXPAND = 34;
+static const int H_EVENT_MIN = 48;
+static const int H_EVENT_LIST_ITEM = 80;
+static const int Y_EVENT_LIST_WITH_ALL_DAY_EVENTS = 80;
+static const int X_CURRENT_TIME_ARROW = 33;
+static const int H_CURRENT_TIME_LINE = 2;
+static const unsigned int COLOR_CURRENT_TIME_LINE = Color32<233, 83, 30>::Value;
+static const int W_TIME_LINE = 42;
+static const int H_TIME_LINE = 50;
+static const int X_TIME_LINE_AMPM = -19;
+static const int W_TIME_LINE_AMPM = 80;
+static const int H_TIME_LINE_AMPM = 20;
+static const int FONT_SIZE_TIME_LINE_AMPM = 20;
+static const unsigned int COLOR_TIME_LINE_AMPM = Color32<171, 171, 171>::Value;
+static const int X_TIME_LINE_NUMBER = -9;
+static const int W_TIME_LINE_NUMBER = 60;
+static const int H_TIME_LINE_NUMBER = 24;
+static const int FONT_SIZE_TIME_LINE_NUMBER = 24;
+static const unsigned int COLOR_TIME_LINE_NUMBER = Color32<171, 171, 171>::Value;
+static const unsigned int COLOR_EVENT_PANEL_BACKGROUND = Color32<0, 0, 0, 0>::Value;
+static const unsigned int COLOR_EVENT_PANEL_DIVIDER_LINE = Color32<173, 173, 173>::Value;
+static const int Y_EVENT_PANEL_DIVIDER_LINE_MIDDLE = 39;
+static const int H_EVENT_PANEL_DIVIDER_LINE_MIDDLE = 1;
+static const unsigned int COLOR_EVENT_PANEL_DIVIDER_LINE_MIDDLE = Color32<173, 173, 173, 77>::Value;
+static const int H_1_LINE_EVENT_TEXT = 80;
+static const int FONT_SIZE_EVENT = 24;
+static const unsigned int COLOR_EVENT = Color32<0, 0, 0>::Value;
+static const int H_EVENT_MORE_BUTTON_MIN = 80;
+static const unsigned int COLOR_EVENT_MORE_BACKGROUND = Color32<59, 151, 207>::Value;
+
+static const int MAX_COLUMN_COUNT = 8;
+static const int MINUTES_FOR_HOUR = 60;
+static const int TIME_LINE_COUNT = 24;
+static const int AMPM_TIME_COUNT = 12;
+
+class DayPanelTimeLineItemProvider
+ : public virtual IListViewItemProvider
+{
+public:
+ DayPanelTimeLineItemProvider(void);
+ virtual ~DayPanelTimeLineItemProvider(void);
+
+ virtual int GetItemCount(void);
+ virtual ListItemBase* CreateItem(int index, int itemWidth);
+ virtual bool DeleteItem(int index, ListItemBase* pItem, int itemWidth);
+};
+
+DayPanelTimeLineItemProvider::DayPanelTimeLineItemProvider(void)
+{
+}
+
+DayPanelTimeLineItemProvider::~DayPanelTimeLineItemProvider(void)
+{
+}
+
+int
+DayPanelTimeLineItemProvider::GetItemCount(void)
+{
+ return TIME_LINE_COUNT;
+}
+
+ListItemBase*
+DayPanelTimeLineItemProvider::CreateItem(int index, int itemWidth)
+{
+ CustomItem* pItem = new (std::nothrow) CustomItem();
+ pItem->Construct(Dimension(itemWidth, H_EVENT_LIST_ITEM), LIST_ANNEX_STYLE_NORMAL);
+
+ Bitmap* pBackgroundBitmap = ResourceManager::GetBitmapN(IDB_DAY_VIEW_TIME_LINE);
+ Bitmap* pPressedBackgroundBitmap = ResourceManager::GetBitmapN(IDB_DAY_VIEW_TIME_LINE_PRESS);
+ if (pBackgroundBitmap != null && pPressedBackgroundBitmap != null)
+ {
+ pItem->AddElement(Rectangle(0, 0, itemWidth, H_EVENT_LIST_ITEM), 0,
+ *pBackgroundBitmap, pPressedBackgroundBitmap, pPressedBackgroundBitmap);
+ }
+ delete pBackgroundBitmap;
+ delete pPressedBackgroundBitmap;
+
+ return pItem;
+}
+
+bool
+DayPanelTimeLineItemProvider::DeleteItem(int index, ListItemBase* pItem, int itemWidth)
+{
+ delete pItem;
+ return true;
+}
+
+class DayEventButton
+ : public Button
+ , public virtual IActionEventListener
+{
+public:
+ void Initialize(int x, int width, const CalEventInstance& event, const DateTime& date, const Color calendarColor);
+ void SetEventActionEventListener(IEventActionEventListener& listener);
+
+ DayEventButton(void);
+ virtual ~DayEventButton(void);
+
+ virtual result OnInitializing(void);
+ virtual result OnTerminating(void);
+
+ virtual void OnActionPerformed(const Control& source, int actionId);
+private:
+ const CalEventInstance* __pEvent;
+ IEventActionEventListener* __pEventActionEventListener;
+};
+
+DayEventButton::DayEventButton(void)
+ : __pEvent(null)
+ , __pEventActionEventListener(null)
+{
+}
+
+DayEventButton::~DayEventButton(void)
+{
+}
+
+void
+DayEventButton::Initialize(int x, int width, const CalEventInstance& event, const DateTime& date, const Color calendarColor)
+{
+ __pEvent = &event;
+
+ DateTime start = ResourceManager::ConvertUtcTimeToWallTime(__pEvent->GetStartTime());
+ DateTime end = ResourceManager::ConvertUtcTimeToWallTime(__pEvent->GetEndTime());
+
+ int startPosition = 0;
+ int endPosition = 0;
+ if (EventListPresentationModel::IsSameDay(start, date))
+ {
+ startPosition = start.GetHour() * H_EVENT_LIST_ITEM + start.GetMinute() * H_EVENT_LIST_ITEM / MINUTES_FOR_HOUR;
+ }
+ else
+ {
+ startPosition = 0;
+ }
+
+ if (EventListPresentationModel::IsSameDay(end, date))
+ {
+ endPosition = end.GetHour() * H_EVENT_LIST_ITEM + end.GetMinute() * H_EVENT_LIST_ITEM / MINUTES_FOR_HOUR;
+ }
+ else
+ {
+ endPosition = TIME_LINE_COUNT * H_EVENT_LIST_ITEM;
+ }
+
+ int height = endPosition - startPosition;
+ if (height < H_EVENT_MIN)
+ {
+ height = H_EVENT_MIN;
+ }
+ if (__pEvent->GetLocation().IsEmpty())
+ {
+ Construct(Rectangle(x, startPosition, width, height), __pEvent->GetSubject());
+ }
+ else
+ {
+ Construct(Rectangle(x, startPosition, width, height),
+ __pEvent->GetSubject() + ((endPosition - startPosition) >= H_1_LINE_EVENT_TEXT ? L"\n" : L", ") + __pEvent->GetLocation());
+ }
+
+ Color bgColor = calendarColor;
+ bgColor.SetAlpha(128);
+ SetColor(BUTTON_STATUS_NORMAL, bgColor);
+ SetColor(BUTTON_STATUS_PRESSED, calendarColor);
+ SetColor(BUTTON_STATUS_HIGHLIGHTED, calendarColor);
+
+ SetTextSize(FONT_SIZE_EVENT);
+ Color textColor(COLOR_EVENT);
+ textColor.SetAlpha(128);
+ SetTextColor(textColor);
+ SetPressedTextColor(textColor);
+ SetHighlightedTextColor(textColor);
+}
+
+void
+DayEventButton::SetEventActionEventListener(IEventActionEventListener& listener)
+{
+ __pEventActionEventListener = &listener;
+}
+
+result
+DayEventButton::OnInitializing(void)
+{
+ SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+ SetTextVerticalAlignment(ALIGNMENT_TOP);
+ SetActionId(IDA_DAY_PANEL_EVENT);
+ AddActionEventListener(*this);
+
+ return E_SUCCESS;
+}
+
+result
+DayEventButton::OnTerminating(void)
+{
+ return E_SUCCESS;
+}
+
+void
+DayEventButton::OnActionPerformed(const Control& source, int actionId)
+{
+ if (GetParent()->GetParent()->GetControlAnimator()->GetStatus() == ANIMATOR_STATUS_PLAYING)
+ {
+ // Do nothing
+ return;
+ }
+
+ if (actionId == IDA_DAY_PANEL_EVENT && __pEventActionEventListener != null)
+ {
+ __pEventActionEventListener->OnEventActionPerformed(*__pEvent, EVENT_ACTION_SELECTION);
+ }
+}
+
+class DayEventMoreButton
+ : public Button
+ , public virtual IActionEventListener
+{
+public:
+ void AddEvent(CalEventInstance& event);
+ void Initialize(int x, int width, const DateTime& date);
+
+ DayEventMoreButton(void);
+ virtual ~DayEventMoreButton(void);
+
+ virtual result OnInitializing(void);
+ virtual result OnTerminating(void);
+
+ virtual void OnActionPerformed(const Control& source, int actionId);
+private:
+ DateTime __date;
+ DateTime __startDate;
+ DateTime __endDate;
+ Bitmap* __pBitmapArrow;
+};
+
+DayEventMoreButton::DayEventMoreButton(void)
+ : __startDate(DateTime::GetMaxValue())
+ , __endDate(DateTime::GetMinValue())
+ , __pBitmapArrow(null)
+{
+}
+
+DayEventMoreButton::~DayEventMoreButton(void)
+{
+}
+
+void
+DayEventMoreButton::AddEvent(CalEventInstance& event)
+{
+ DateTime start = ResourceManager::ConvertUtcTimeToWallTime(event.GetStartTime());
+ DateTime end = ResourceManager::ConvertUtcTimeToWallTime(event.GetEndTime());
+ if (__startDate > start)
+ {
+ __startDate = start;
+ }
+ if (__endDate < end)
+ {
+ __endDate = end;
+ }
+
+ int startPosition = 0;
+ int endPosition = 0;
+ if (EventListPresentationModel::IsSameDay(__startDate, __date))
+ {
+ startPosition = start.GetHour() * H_EVENT_LIST_ITEM + start.GetMinute() * H_EVENT_LIST_ITEM / MINUTES_FOR_HOUR;
+ }
+ else
+ {
+ startPosition = 0;
+ }
+
+ if (EventListPresentationModel::IsSameDay(__endDate, __date))
+ {
+ endPosition = end.GetHour() * H_EVENT_LIST_ITEM + end.GetMinute() * H_EVENT_LIST_ITEM / MINUTES_FOR_HOUR;
+ }
+ else
+ {
+ endPosition = TIME_LINE_COUNT * H_EVENT_LIST_ITEM;
+ }
+
+ int height = endPosition - startPosition;
+ if (height < H_EVENT_MORE_BUTTON_MIN)
+ {
+ height = H_EVENT_MORE_BUTTON_MIN;
+ }
+ SetBounds(GetX(), startPosition, GetWidth(), height);
+
+ if (__pBitmapArrow != null)
+ {
+ Point arrowPosition((GetWidth() - __pBitmapArrow->GetWidth()) / 2, (GetHeight() - __pBitmapArrow->GetHeight()) / 2);
+ SetNormalBitmap(arrowPosition, *__pBitmapArrow);
+ SetPressedBitmap(arrowPosition, *__pBitmapArrow);
+ }
+}
+
+void
+DayEventMoreButton::Initialize(int x, int width, const DateTime& date)
+{
+ Construct(Rectangle(x, 0, width, H_EVENT_MORE_BUTTON_MIN), L"");
+ SetColor(BUTTON_STATUS_NORMAL, Color(COLOR_EVENT_MORE_BACKGROUND));
+ SetActionId(IDA_DAY_PANEL_EVENT_MORE);
+ AddActionEventListener(*this);
+
+ __date = date;
+}
+
+result
+DayEventMoreButton::OnInitializing(void)
+{
+ __pBitmapArrow = ResourceManager::GetBitmapN(IDB_DAY_EVENT_MORE_ARROW);
+ Point arrowPosition((GetWidth() - __pBitmapArrow->GetWidth()) / 2, (GetHeight() - __pBitmapArrow->GetHeight()) / 2);
+ SetNormalBitmap(arrowPosition, *__pBitmapArrow);
+ SetPressedBitmap(arrowPosition, *__pBitmapArrow);
+ return E_SUCCESS;
+}
+
+result
+DayEventMoreButton::OnTerminating(void)
+{
+ delete __pBitmapArrow;
+ return E_SUCCESS;
+}
+
+void
+DayEventMoreButton::OnActionPerformed(const Control& source, int actionId)
+{
+ if (GetParent()->GetParent()->GetControlAnimator()->GetStatus() == ANIMATOR_STATUS_PLAYING)
+ {
+ // Do nothing
+ return;
+ }
+
+ if (actionId == IDA_DAY_PANEL_EVENT_MORE)
+ {
+ // Go to DayEventListForm
+ LinkedList* pArgs = new (std::nothrow) LinkedList();
+ pArgs->Add(new (std::nothrow) DateTime(__startDate));
+ pArgs->Add(new (std::nothrow) DateTime(__endDate));
+ result r = SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_DAY_EVENT_LIST,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT), pArgs);
+ if (r != E_SUCCESS)
+ {
+ pArgs->RemoveAll(true);
+ delete pArgs;
+ }
+ }
+}
+
+class DayEventPanel
+ : public Panel
+ , public virtual IActionEventListener
+ , public virtual IListViewItemEventListener
+ , public virtual IListViewItemProvider
+{
+public:
+ const DateTime& GetDate(void) const;
+ int GetScrollPosition(void) const;
+ result Initialize(const Rectangle& bounds, const DateTime& date, const EventListPresentationModel& pm);
+ void SetDate(const DateTime& date);
+ void SetDateFocusEventListener(IDateFocusEventListener& listener);
+ void SetEventActionEventListener(IEventActionEventListener& listener);
+ void SetScrollPosition(int scrollPosition);
+ void UpdateEvent(void);
+
+ void SetPanningAnimationManager(PanningAnimationManager& manager);
+
+ DayEventPanel(void);
+ virtual ~DayEventPanel(void);
+
+ virtual void OnClearBackground(void);
+ virtual result OnInitializing(void);
+ virtual result OnTerminating(void);
+
+ virtual int GetItemCount(void);
+ virtual ListItemBase* CreateItem(int index, int itemWidth);
+ virtual bool DeleteItem(int index, ListItemBase* pItem, int itemWidth);
+
+ virtual void OnListViewItemStateChanged(ListView& listView, int index, int elementId, ListItemStatus status);
+ virtual void OnListViewItemSwept(ListView& listView, int index, SweepDirection direction);
+ virtual void OnListViewContextItemStateChanged(ListView& listView, int index, int elementId, ListContextItemStatus status);
+ virtual void OnListViewItemLongPressed(ListView& listView, int index, int elementId, bool& invokeListViewItemCallback);
+ virtual void OnListViewItemReordered(ListView& listView, int indexFrom, int indexTo);
+
+ virtual void OnActionPerformed(const Control& source, int actionId);
+
+private:
+ void ArrangeEvent(void);
+ result InitializeAllDayEventList(void);
+ result InitializeTimeLine(void);
+
+ result ExpandAllDayEventList(void);
+ result CollapseAllDayEventList(void);
+
+private:
+ DateTime __date;
+ const EventListPresentationModel* __pPm;
+ IDateFocusEventListener* __pDateFocusEventListener;
+ IEventActionEventListener* __pEventActionEventListener;
+ PanningAnimationManager* __pPanningAnimationManager;
+ Panel* __pPanelAllDayEvents;
+ ListView* __pListViewAllDayEvents;
+ Button* __pButtonAllDayEventsPanelExpander;
+ ScrollPanel* __pPanelDayEvents;
+ ListView* __pListViewTimeLine;
+ DayPanelTimeLineItemProvider __timeLineItemProvider;
+ Label* __pLabelCurrent;
+ LinkedList __eventButtons;
+ Label* __pLabelTime[TIME_LINE_COUNT];
+ Label* __pLabelAm;
+ Label* __pLabelPm;
+ bool __is24HourEnabled;
+};
+
+DayEventPanel::DayEventPanel(void)
+ : __pPm(null)
+ , __pDateFocusEventListener(null)
+ , __pEventActionEventListener(null)
+ , __pPanningAnimationManager(null)
+ , __pPanelAllDayEvents(null)
+ , __pListViewAllDayEvents(null)
+ , __pButtonAllDayEventsPanelExpander(null)
+ , __pPanelDayEvents(null)
+ , __pListViewTimeLine(null)
+ , __pLabelCurrent(null)
+ , __pLabelAm(null)
+ , __pLabelPm(null)
+ , __is24HourEnabled(false)
+{
+ memset((void *)__pLabelTime, 0, sizeof(Label*) * TIME_LINE_COUNT);
+}
+
+DayEventPanel::~DayEventPanel(void)
+{
+ if (__pPanningAnimationManager != null)
+ {
+ RemoveTouchEventListener(*__pPanningAnimationManager);
+ __pPanelAllDayEvents->RemoveTouchEventListener(*__pPanningAnimationManager);
+ __pListViewAllDayEvents->RemoveTouchEventListener(*__pPanningAnimationManager);
+ __pButtonAllDayEventsPanelExpander->RemoveTouchEventListener(*__pPanningAnimationManager);
+ __pPanelDayEvents->RemoveTouchEventListener(*__pPanningAnimationManager);
+ __pListViewTimeLine->RemoveTouchEventListener(*__pPanningAnimationManager);
+
+ RemoveGestureDetector(*__pPanningAnimationManager);
+ __pPanelAllDayEvents->RemoveGestureDetector(*__pPanningAnimationManager);
+ __pListViewAllDayEvents->RemoveGestureDetector(*__pPanningAnimationManager);
+ __pButtonAllDayEventsPanelExpander->RemoveGestureDetector(*__pPanningAnimationManager);
+ __pPanelDayEvents->RemoveGestureDetector(*__pPanningAnimationManager);
+ __pListViewTimeLine->RemoveGestureDetector(*__pPanningAnimationManager);
+
+ IEnumerator* pEnum = __eventButtons.GetEnumeratorN();
+ while (pEnum->MoveNext() == E_SUCCESS)
+ {
+ Control* pControl = static_cast<Control*>(pEnum->GetCurrent());
+ pControl->RemoveTouchEventListener(*__pPanningAnimationManager);
+ pControl->RemoveGestureDetector(*__pPanningAnimationManager);
+ }
+ delete pEnum;
+ }
+}
+
+const DateTime&
+DayEventPanel::GetDate(void) const
+{
+ return __date;
+}
+
+int
+DayEventPanel::GetScrollPosition(void) const
+{
+ return __pPanelDayEvents->GetScrollPosition();
+}
+
+result
+DayEventPanel::Initialize(const Rectangle& bounds, const DateTime& date, const EventListPresentationModel& pm)
+{
+ __date = date;
+ __pPm = ±
+
+ return Construct(bounds);
+}
+
+void
+DayEventPanel::SetDate(const DateTime& date)
+{
+ if (EventListPresentationModel::IsSameDay(date, __date) == false)
+ {
+ __date = date;
+ UpdateEvent();
+ }
+ else
+ {
+ __date = date;
+ }
+
+ int currentPosition = (__date.GetHour() * MINUTES_FOR_HOUR + __date.GetMinute()) * H_EVENT_LIST_ITEM / MINUTES_FOR_HOUR;
+ __pLabelCurrent->SetPosition(0, currentPosition - H_TIME_LINE / 2);
+ __pLabelCurrent->Invalidate(false);
+}
+
+void
+DayEventPanel::SetDateFocusEventListener(IDateFocusEventListener& listener)
+{
+ __pDateFocusEventListener = &listener;
+}
+
+void
+DayEventPanel::SetEventActionEventListener(IEventActionEventListener& listener)
+{
+ __pEventActionEventListener = &listener;
+}
+
+void
+DayEventPanel::SetScrollPosition(int scrollPosition)
+{
+ __pPanelDayEvents->SetScrollPosition(scrollPosition);
+}
+
+void
+DayEventPanel::UpdateEvent(void)
+{
+ ArrangeEvent();
+ if (GetItemCount() > 0)
+ {
+ __pPanelAllDayEvents->SetShowState(true);
+ if (__pButtonAllDayEventsPanelExpander->GetActionId() == IDA_DAY_PANEL_ALL_DAY_EVENT_COLLAPSE)
+ {
+ int height = GetItemCount() * H_ALL_DAY_EVENT_ITEM + H_ALL_DAY_EVENT_EXPAND;
+ __pPanelAllDayEvents->SetSize(GetWidth(), (height > MAX_H_ALL_DAY_EVENT_LIST_PANEL) ? MAX_H_ALL_DAY_EVENT_LIST_PANEL : height);
+ }
+ __pPanelAllDayEvents->Invalidate(true);
+ __pListViewAllDayEvents->UpdateList();
+ __pPanelDayEvents->SetBounds(0, Y_EVENT_LIST_WITH_ALL_DAY_EVENTS, GetWidth(), GetHeight() - Y_EVENT_LIST_WITH_ALL_DAY_EVENTS);
+ __pPanelDayEvents->Invalidate(true);
+ }
+ else
+ {
+ __pPanelAllDayEvents->SetShowState(false);
+ __pPanelDayEvents->SetBounds(0, 0, GetWidth(), GetHeight());
+ __pPanelDayEvents->Invalidate(true);
+ }
+}
+
+void
+DayEventPanel::SetPanningAnimationManager(PanningAnimationManager& manager)
+{
+ __pPanningAnimationManager = &manager;
+
+ AddTouchEventListener(manager);
+ __pPanelAllDayEvents->AddTouchEventListener(manager);
+ __pListViewAllDayEvents->AddTouchEventListener(manager);
+ __pButtonAllDayEventsPanelExpander->AddTouchEventListener(manager);
+ __pPanelDayEvents->AddTouchEventListener(manager);
+ __pListViewTimeLine->AddTouchEventListener(manager);
+
+ AddGestureDetector(manager);
+ __pPanelAllDayEvents->AddGestureDetector(manager);
+ __pListViewAllDayEvents->AddGestureDetector(manager);
+ __pButtonAllDayEventsPanelExpander->AddGestureDetector(manager);
+ __pPanelDayEvents->AddGestureDetector(manager);
+ __pListViewTimeLine->AddGestureDetector(manager);
+
+ IEnumerator* pEnum = __eventButtons.GetEnumeratorN();
+ while (pEnum->MoveNext() == E_SUCCESS)
+ {
+ Control* pControl = static_cast<Control*>(pEnum->GetCurrent());
+ pControl->AddTouchEventListener(manager);
+ pControl->AddGestureDetector(manager);
+ }
+ delete pEnum;
+}
+
+void
+DayEventPanel::OnClearBackground(void)
+{
+ bool is24HourNotationEnabled = false;
+ SettingInfo::GetValue(KEY_SYSTEM_24_HOUR_NOTATION_ENABLED, is24HourNotationEnabled);
+
+ if (is24HourNotationEnabled != __is24HourEnabled)
+ {
+ __is24HourEnabled = is24HourNotationEnabled;
+ for (int t = AMPM_TIME_COUNT + 1; t < TIME_LINE_COUNT; ++t)
+ {
+ String time;
+ time.Format(3, L"%02d", (__is24HourEnabled == true) ? t : (t - 1) % AMPM_TIME_COUNT + 1);
+ __pLabelTime[t]->SetText(time);
+ __pLabelTime[t]->Invalidate(false);
+ }
+ __pLabelAm->SetShowState(__is24HourEnabled == false);
+ __pLabelPm->SetShowState(__is24HourEnabled == false);
+ }
+}
+
+result
+DayEventPanel::OnInitializing(void)
+{
+ RelativeLayout layout;
+ layout.Construct();
+ __pPanelAllDayEvents = new (std::nothrow) Panel();
+ __pPanelAllDayEvents->Construct(layout, Rectangle(0, 0, GetWidth(), MIN_H_ALL_DAY_EVENT_LIST_PANEL));
+ __pPanelAllDayEvents->SetBackgroundColor(Color(COLOR_ALL_DAY_EVENT_LIST_PANEL_BACKGROUND));
+ AddControl(*__pPanelAllDayEvents);
+ SetControlAlwaysOnTop(*__pPanelAllDayEvents, true);
+
+ InitializeAllDayEventList();
+
+ __pPanelDayEvents = new (std::nothrow) ScrollPanel();
+ __pPanelDayEvents->Construct(Rectangle(0, 0, GetWidth(), GetHeight()));
+ AddControl(*__pPanelDayEvents);
+
+ InitializeTimeLine();
+
+ UpdateEvent();
+ return E_SUCCESS;
+}
+
+result
+DayEventPanel::OnTerminating(void)
+{
+ return E_SUCCESS;
+}
+
+int
+DayEventPanel::GetItemCount(void)
+{
+ return __pPm->GetAllDayEventCount(__date);
+}
+
+ListItemBase*
+DayEventPanel::CreateItem(int index, int itemWidth)
+{
+ const CalEventInstance* pEvent = __pPm->GetAllDayEvent(__date, index);
+ TryReturn(pEvent != null, null, "[E_FAILURE] Unable to get event.");
+
+ CustomItem* pItem = new (std::nothrow) CustomItem();
+ pItem->Construct(Dimension(itemWidth, H_ALL_DAY_EVENT_ITEM), LIST_ANNEX_STYLE_NORMAL);
+
+ Bitmap* pBitmap = new (std::nothrow) Bitmap();
+ pBitmap->Construct(Dimension(W_EVENT_COLOR_BAR, H_EVENT_COLOR_BAR), BITMAP_PIXEL_FORMAT_ARGB8888);
+
+ BufferInfo bufferinfo;
+ pBitmap->Lock(bufferinfo);
+
+ Canvas canvas;
+ canvas.Construct(bufferinfo);
+ canvas.SetBackgroundColor(__pPm->GetCalendarColor(pEvent->GetCalendarId()));
+ canvas.Clear();
+ pBitmap->Unlock();
+
+ pItem->AddElement(Rectangle(0, Y_EVENT_COLOR_BAR, W_EVENT_COLOR_BAR, H_EVENT_COLOR_BAR), 0, *pBitmap);
+ delete pBitmap;
+
+ pItem->AddElement(Rectangle(X_ALL_DAY_EVENT, 0, itemWidth - X_ALL_DAY_EVENT, H_ALL_DAY_EVENT_ITEM), 1, pEvent->GetSubject(),
+ FONT_SIZE_ALL_DAY_EVENT, Color(COLOR_ALL_DAY_EVENT), Color(COLOR_ALL_DAY_EVENT_FOCUS), Color(COLOR_ALL_DAY_EVENT_FOCUS));
+
+ return pItem;
+}
+
+bool
+DayEventPanel::DeleteItem(int index, ListItemBase* pItem, int itemWidth)
+{
+ delete pItem;
+ return true;
+}
+
+void
+DayEventPanel::OnListViewItemStateChanged(ListView& listView, int index, int elementId, ListItemStatus status)
+{
+ if (status == LIST_ITEM_STATUS_SELECTED)
+ {
+ if (&listView == __pListViewAllDayEvents)
+ {
+ if (__pEventActionEventListener != null)
+ {
+ __pEventActionEventListener->OnEventActionPerformed(*__pPm->GetAllDayEvent(__date, index), EVENT_ACTION_SELECTION);
+ }
+ }
+
+ if (&listView == __pListViewTimeLine)
+ {
+ if (__pDateFocusEventListener != null)
+ {
+ DateTime date;
+ date.SetValue(__date.GetYear(), __date.GetMonth(), __date.GetDay(), index);
+ __pDateFocusEventListener->OnDateFocused(date);
+ }
+ }
+ }
+}
+
+void
+DayEventPanel::OnListViewItemSwept(ListView& listView, int index, SweepDirection direction)
+{
+}
+
+void
+DayEventPanel::OnListViewContextItemStateChanged(ListView& listView, int index, int elementId, ListContextItemStatus status)
+{
+}
+
+void
+DayEventPanel::OnListViewItemLongPressed(ListView& listView, int index, int elementId, bool& invokeListViewItemCallback)
+{
+}
+
+void
+DayEventPanel::OnListViewItemReordered(ListView& listView, int indexFrom, int indexTo)
+{
+}
+
+void
+DayEventPanel::OnActionPerformed(const Control& source, int actionId)
+{
+ switch (actionId)
+ {
+ case IDA_DAY_PANEL_ALL_DAY_EVENT_EXPAND:
+ ExpandAllDayEventList();
+ return;
+ case IDA_DAY_PANEL_ALL_DAY_EVENT_COLLAPSE:
+ CollapseAllDayEventList();
+ return;
+ }
+
+ if (__pEventActionEventListener != null)
+ {
+ __pEventActionEventListener->OnEventActionPerformed(*__pPm->GetEvent(__date, actionId), EVENT_ACTION_SELECTION);
+ }
+}
+
+void
+DayEventPanel::ArrangeEvent(void)
+{
+ while (__eventButtons.GetCount() > 0)
+ {
+ if (__pPanningAnimationManager != null)
+ {
+ static_cast<Control*>(__eventButtons.GetAt(0))->RemoveTouchEventListener(*__pPanningAnimationManager);
+ static_cast<Control*>(__eventButtons.GetAt(0))->RemoveGestureDetector(*__pPanningAnimationManager);
+ }
+ __pPanelDayEvents->RemoveControl(*static_cast<Control*>(__eventButtons.GetAt(0)));
+ __eventButtons.RemoveAt(0);
+ }
+
+ int groupIndex = __pPm->GetGroupIndex(__date);
+ int count = __pPm->GetEventCount(groupIndex);
+ if (count <= 0)
+ {
+ return;
+ }
+
+ // Arrange columns
+ LinkedList eventColumns[MAX_COLUMN_COUNT + 1];
+ DateTime bottomTime[MAX_COLUMN_COUNT + 1];
+ int maxColumns = 0;
+ for (int i = 0; i < count; ++i)
+ {
+ const CalEventInstance* pEvent = __pPm->GetEvent(groupIndex, i);
+
+ DateTime startTime = ResourceManager::ConvertUtcTimeToWallTime(pEvent->GetStartTime());
+ DateTime endTime = ResourceManager::ConvertUtcTimeToWallTime(pEvent->GetEndTime());
+
+ int col = 0;
+ while (bottomTime[col] > startTime && col < MAX_COLUMN_COUNT)
+ {
+ ++col;
+ }
+ eventColumns[col].Add(*pEvent);
+
+ startTime.AddMinutes(30);
+ bottomTime[col] = (startTime > endTime) ? startTime : endTime;
+ if (maxColumns <= col)
+ {
+ maxColumns = col + 1;
+ }
+ }
+
+ IEnumerator** pEnum = new (std::nothrow) IEnumerator*[maxColumns];
+ for (int col = 0; col < maxColumns; ++col)
+ {
+ pEnum[col] = eventColumns[col].GetEnumeratorN();
+ }
+
+ // Create event buttons
+ int contentWidth = GetWidth() - W_TIME_LINE;
+ int maxEventColumns = (maxColumns > MAX_COLUMN_COUNT) ? MAX_COLUMN_COUNT : maxColumns;
+
+ DateTime startTime;
+ DateTime endTime;
+
+ for (int col = 0; col < maxEventColumns; ++col)
+ {
+ while (pEnum[col]->MoveNext() == E_SUCCESS)
+ {
+ CalEventInstance* pEvent = static_cast<CalEventInstance*>(pEnum[col]->GetCurrent());
+
+ startTime = ResourceManager::ConvertUtcTimeToWallTime(pEvent->GetStartTime());
+ endTime = ResourceManager::ConvertUtcTimeToWallTime(pEvent->GetEndTime());
+
+ int rightColumn = col + 1;
+ while (rightColumn < maxColumns)
+ {
+ bool compareNextColumn = true;
+ do
+ {
+ CalEventInstance* pRightEvent = static_cast<CalEventInstance*>(pEnum[rightColumn]->GetCurrent());
+ if (pRightEvent != null)
+ {
+ if (startTime >= ResourceManager::ConvertUtcTimeToWallTime(pRightEvent->GetEndTime()))
+ {
+ // do nothing
+ }
+ else if (endTime <= ResourceManager::ConvertUtcTimeToWallTime(pRightEvent->GetStartTime()))
+ {
+ break;
+ }
+ else
+ {
+ compareNextColumn = false;
+ break;
+ }
+ }
+ } while (pEnum[rightColumn]->MoveNext() == E_SUCCESS);
+
+ if (compareNextColumn == false)
+ {
+ break;
+ }
+ ++rightColumn;
+ }
+
+ DayEventButton* pButton = new (std::nothrow) DayEventButton();
+ pButton->Initialize(W_TIME_LINE + col * contentWidth / maxColumns, (rightColumn - col) * contentWidth / maxColumns,
+ *pEvent, __date, __pPm->GetCalendarColor(pEvent->GetCalendarId()));
+ __pPanelDayEvents->AddControl(*pButton);
+ __eventButtons.Add(pButton);
+ if (__pEventActionEventListener != null)
+ {
+ pButton->SetEventActionEventListener(*__pEventActionEventListener);
+ }
+ if (__pPanningAnimationManager != null)
+ {
+ pButton->AddTouchEventListener(*__pPanningAnimationManager);
+ pButton->AddGestureDetector(*__pPanningAnimationManager);
+ }
+ }
+
+ if (col + 1 < maxEventColumns)
+ {
+ pEnum[col + 1]->Reset();
+ }
+ for (int nextCol = col + 2; nextCol < maxEventColumns; ++nextCol)
+ {
+ pEnum[nextCol]->Reset();
+ pEnum[nextCol]->MoveNext();
+ }
+ }
+
+ // Create more button
+ if (maxColumns > MAX_COLUMN_COUNT)
+ {
+ DayEventMoreButton* pButton = new (std::nothrow) DayEventMoreButton();
+ pButton->Initialize(W_TIME_LINE + MAX_COLUMN_COUNT * contentWidth / maxColumns, contentWidth / maxColumns, __date);
+ pEnum[MAX_COLUMN_COUNT]->Reset();
+ while (pEnum[MAX_COLUMN_COUNT]->MoveNext() == E_SUCCESS)
+ {
+ pButton->AddEvent(*static_cast<CalEventInstance*>(pEnum[MAX_COLUMN_COUNT]->GetCurrent()));
+ }
+ __pPanelDayEvents->AddControl(*pButton);
+ __eventButtons.Add(pButton);
+ if (__pPanningAnimationManager != null)
+ {
+ pButton->AddTouchEventListener(*__pPanningAnimationManager);
+ pButton->AddGestureDetector(*__pPanningAnimationManager);
+ }
+ }
+
+ for (int col = 0; col < maxColumns; ++col)
+ {
+ delete pEnum[col];
+ eventColumns[col].RemoveAll(false);
+ }
+ delete [] pEnum;
+}
+
+result
+DayEventPanel::InitializeAllDayEventList(void)
+{
+ Button* pButton = new (std::nothrow) Button();
+ pButton->Construct(Rectangle(0, 0, __pPanelAllDayEvents->GetWidth(), H_ALL_DAY_EVENT_EXPAND),
+ ResourceManager::GetString(IDS_DAY_VIEW_ALL_DAY_EVENT));
+ pButton->SetActionId(IDA_DAY_PANEL_ALL_DAY_EVENT_EXPAND);
+ pButton->AddActionEventListener(*this);
+ pButton->SetNormalBackgroundBitmap(*ResourceManager::GetBlankBitmap());
+ pButton->SetPressedBackgroundBitmap(*ResourceManager::GetBlankBitmap());
+ pButton->SetHighlightedBackgroundBitmap(*ResourceManager::GetBlankBitmap());
+ pButton->SetTextSize(FONT_SIZE_ALL_DAY_EVENT_EXPAND);
+ pButton->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+ pButton->SetTextColor(Color(COLOR_ALL_DAY_EVENT));
+ pButton->SetPressedTextColor(Color(COLOR_ALL_DAY_EVENT));
+ pButton->SetHighlightedTextColor(Color(COLOR_ALL_DAY_EVENT));
+
+ Bitmap* pBitmap = ResourceManager::GetBitmapN(IDB_ALL_DAY_EVENT_LIST_EXPAND_CLOSED);
+ if (pBitmap != null)
+ {
+ Point position(pButton->GetWidth() - W_ALL_DAY_EVENT_EXPAND_ICON_MARGIN - pBitmap->GetWidth(),
+ (H_ALL_DAY_EVENT_EXPAND - pBitmap->GetHeight()) / 2);
+ pButton->SetNormalBitmap(position, *pBitmap);
+ delete pBitmap;
+ }
+ Bitmap* pPressBitmap = ResourceManager::GetBitmapN(IDB_ALL_DAY_EVENT_LIST_EXPAND_CLOSED_PRESS);
+ if (pPressBitmap != null)
+ {
+ Point position(pButton->GetWidth() - W_ALL_DAY_EVENT_EXPAND_ICON_MARGIN - pPressBitmap->GetWidth(),
+ (H_ALL_DAY_EVENT_EXPAND - pPressBitmap->GetHeight()) / 2);
+ pButton->SetPressedBitmap(position, *pPressBitmap);
+ delete pPressBitmap;
+ }
+ __pPanelAllDayEvents->AddControl(*pButton);
+ __pButtonAllDayEventsPanelExpander = pButton;
+
+ ListView* pListView = new (std::nothrow) ListView();
+ pListView->Construct(Rectangle(0, Y_ALL_DAY_EVENT_LIST, __pPanelAllDayEvents->GetWidth(), H_ALL_DAY_EVENT_ITEM), true, SCROLL_STYLE_FADE_OUT);
+ pListView->SetItemProvider(*this);
+ pListView->SetItemDividerColor(Color(COLOR_ALL_DAY_EVENT_LIST_LINE));
+ pListView->AddListViewItemEventListener(*this);
+ __pPanelAllDayEvents->AddControl(*pListView);
+ __pListViewAllDayEvents = pListView;
+
+ RelativeLayout* pLayout = dynamic_cast<RelativeLayout*>(__pPanelAllDayEvents->GetLayoutN());
+ if (pLayout != null)
+ {
+ pLayout->SetHorizontalFitPolicy(*__pButtonAllDayEventsPanelExpander, FIT_POLICY_PARENT);
+ pLayout->SetRelation(*__pButtonAllDayEventsPanelExpander, *__pPanelAllDayEvents, RECT_EDGE_RELATION_LEFT_TO_LEFT);
+ pLayout->SetRelation(*__pButtonAllDayEventsPanelExpander, *__pPanelAllDayEvents, RECT_EDGE_RELATION_RIGHT_TO_RIGHT);
+ pLayout->SetRelation(*__pButtonAllDayEventsPanelExpander, *__pPanelAllDayEvents, RECT_EDGE_RELATION_TOP_TO_TOP);
+ pLayout->SetHeight(*__pButtonAllDayEventsPanelExpander, H_ALL_DAY_EVENT_EXPAND);
+ pLayout->SetHorizontalFitPolicy(*__pListViewAllDayEvents, FIT_POLICY_PARENT);
+ pLayout->SetRelation(*__pListViewAllDayEvents, *__pPanelAllDayEvents, RECT_EDGE_RELATION_LEFT_TO_LEFT);
+ pLayout->SetRelation(*__pListViewAllDayEvents, *__pPanelAllDayEvents, RECT_EDGE_RELATION_RIGHT_TO_RIGHT);
+ pLayout->SetRelation(*__pListViewAllDayEvents, *__pPanelAllDayEvents, RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM);
+ pLayout->SetRelation(*__pListViewAllDayEvents, *__pButtonAllDayEventsPanelExpander, RECT_EDGE_RELATION_TOP_TO_BOTTOM);
+ }
+
+ return E_SUCCESS;
+}
+
+result
+DayEventPanel::InitializeTimeLine(void)
+{
+ SettingInfo::GetValue(KEY_SYSTEM_24_HOUR_NOTATION_ENABLED, __is24HourEnabled);
+ for (int t = 1; t < TIME_LINE_COUNT; ++t)
+ {
+ String time;
+ time.Format(3, L"%02d", (__is24HourEnabled == true) ? t : (t - 1) % AMPM_TIME_COUNT + 1);
+
+ __pLabelTime[t] = new (std::nothrow) Label();
+ __pLabelTime[t]->Construct(Rectangle(X_TIME_LINE_NUMBER, H_EVENT_LIST_ITEM * t - H_TIME_LINE_NUMBER / 2, W_TIME_LINE_NUMBER, H_TIME_LINE_NUMBER),
+ time);
+ __pLabelTime[t]->SetTextConfig(FONT_SIZE_TIME_LINE_NUMBER, LABEL_TEXT_STYLE_NORMAL);
+ __pLabelTime[t]->SetTextColor(Color(COLOR_TIME_LINE_NUMBER));
+ __pPanelDayEvents->AddControl(*__pLabelTime[t]);
+ }
+
+ __pLabelAm = new (std::nothrow) Label();
+ __pLabelAm->Construct(Rectangle(X_TIME_LINE_AMPM, 0, W_TIME_LINE_AMPM, H_TIME_LINE_AMPM), L"AM");
+ __pLabelAm->SetTextConfig(FONT_SIZE_TIME_LINE_AMPM, LABEL_TEXT_STYLE_NORMAL);
+ __pLabelAm->SetTextColor(Color(COLOR_TIME_LINE_AMPM));
+ __pPanelDayEvents->AddControl(*__pLabelAm);
+ __pLabelAm->SetShowState(__is24HourEnabled == false);
+
+ __pLabelPm = new (std::nothrow) Label();
+ __pLabelPm->Construct(Rectangle(X_TIME_LINE_AMPM, H_EVENT_LIST_ITEM * AMPM_TIME_COUNT + H_TIME_LINE_NUMBER / 2, W_TIME_LINE_AMPM, H_TIME_LINE_AMPM), L"PM");
+ __pLabelPm->SetTextConfig(FONT_SIZE_TIME_LINE_AMPM, LABEL_TEXT_STYLE_NORMAL);
+ __pLabelPm->SetTextColor(Color(COLOR_TIME_LINE_AMPM));
+ __pPanelDayEvents->AddControl(*__pLabelPm);
+ __pLabelPm->SetShowState(__is24HourEnabled == false);
+
+ // Draw current time
+ Dimension size = GetSize();
+ size.height = H_TIME_LINE;
+ Label* pLabelTimeLine = new (std::nothrow) Label();
+ int currentPosition = (__date.GetHour() * MINUTES_FOR_HOUR + __date.GetMinute()) * H_EVENT_LIST_ITEM / MINUTES_FOR_HOUR;
+ pLabelTimeLine->Construct(Rectangle(0, currentPosition - size.height / 2, size.width, size.height), L"");
+
+ Bitmap* pBitmap = new (std::nothrow) Bitmap();
+ pBitmap->Construct(size, BITMAP_PIXEL_FORMAT_ARGB8888);
+
+ BufferInfo bufferinfo;
+ pBitmap->Lock(bufferinfo);
+
+ Canvas canvas;
+ canvas.Construct(bufferinfo);
+ canvas.SetBackgroundColor(Color(COLOR_EVENT_PANEL_BACKGROUND));
+ canvas.Clear();
+ canvas.FillRectangle(Color(COLOR_CURRENT_TIME_LINE),
+ Rectangle(W_TIME_LINE, (size.height - H_CURRENT_TIME_LINE) / 2,
+ size.width - W_TIME_LINE, H_CURRENT_TIME_LINE));
+
+ Bitmap* pArrowBitmap = ResourceManager::GetBitmapN(IDB_DAY_CURRENT_TIME);
+ if (pArrowBitmap != null)
+ {
+ canvas.DrawBitmap(Rectangle(X_CURRENT_TIME_ARROW, (size.height - pArrowBitmap->GetHeight()) / 2,
+ pArrowBitmap->GetWidth(), pArrowBitmap->GetHeight()), *pArrowBitmap);
+ delete pArrowBitmap;
+ }
+ pBitmap->Unlock();
+ pLabelTimeLine->SetBackgroundBitmap(*pBitmap);
+ delete pBitmap;
+
+ __pPanelDayEvents->AddControl(*pLabelTimeLine);
+ __pLabelCurrent = pLabelTimeLine;
+ __pPanelDayEvents->SetControlAlwaysAtBottom(*__pLabelCurrent, true);
+ __pPanelDayEvents->SetScrollPosition(currentPosition - __pPanelDayEvents->GetHeight() / 2);
+
+ // Create time line
+ __pListViewTimeLine = new (std::nothrow) ListView();
+ __pListViewTimeLine->Construct(Rectangle(W_TIME_LINE, 0,
+ GetWidth() - W_TIME_LINE, H_EVENT_LIST_ITEM * TIME_LINE_COUNT),
+ false, SCROLL_STYLE_FADE_OUT);
+ __pListViewTimeLine->SetItemProvider(__timeLineItemProvider);
+ __pListViewTimeLine->AddListViewItemEventListener(*this);
+ __pPanelDayEvents->AddControl(*__pListViewTimeLine);
+
+ return E_SUCCESS;
+}
+
+result
+DayEventPanel::ExpandAllDayEventList(void)
+{
+ Bitmap* pBitmap = ResourceManager::GetBitmapN(IDB_ALL_DAY_EVENT_LIST_EXPAND_OPENED);
+ if (pBitmap != null)
+ {
+ Point position(__pButtonAllDayEventsPanelExpander->GetWidth() - W_ALL_DAY_EVENT_EXPAND_ICON_MARGIN - pBitmap->GetWidth(),
+ (H_ALL_DAY_EVENT_EXPAND - pBitmap->GetHeight()) / 2);
+ __pButtonAllDayEventsPanelExpander->SetNormalBitmap(position, *pBitmap);
+ delete pBitmap;
+ }
+ Bitmap* pPressBitmap = ResourceManager::GetBitmapN(IDB_ALL_DAY_EVENT_LIST_EXPAND_OPENED_PRESS);
+ if (pPressBitmap != null)
+ {
+ Point position(__pButtonAllDayEventsPanelExpander->GetWidth() - W_ALL_DAY_EVENT_EXPAND_ICON_MARGIN - pPressBitmap->GetWidth(),
+ (H_ALL_DAY_EVENT_EXPAND - pPressBitmap->GetHeight()) / 2);
+ __pButtonAllDayEventsPanelExpander->SetPressedBitmap(position, *pPressBitmap);
+ delete pPressBitmap;
+ }
+ __pButtonAllDayEventsPanelExpander->SetActionId(IDA_DAY_PANEL_ALL_DAY_EVENT_COLLAPSE);
+
+ int height = GetItemCount() * H_ALL_DAY_EVENT_ITEM + H_ALL_DAY_EVENT_EXPAND;
+ __pPanelAllDayEvents->SetSize(GetWidth(), (height > MAX_H_ALL_DAY_EVENT_LIST_PANEL) ? MAX_H_ALL_DAY_EVENT_LIST_PANEL : height);
+ __pPanelAllDayEvents->Invalidate(true);
+ return E_SUCCESS;
+}
+
+result
+DayEventPanel::CollapseAllDayEventList(void)
+{
+ Bitmap* pBitmap = ResourceManager::GetBitmapN(IDB_ALL_DAY_EVENT_LIST_EXPAND_CLOSED);
+ if (pBitmap != null)
+ {
+ Point position(__pButtonAllDayEventsPanelExpander->GetWidth() - W_ALL_DAY_EVENT_EXPAND_ICON_MARGIN - pBitmap->GetWidth(),
+ (H_ALL_DAY_EVENT_EXPAND - pBitmap->GetHeight()) / 2);
+ __pButtonAllDayEventsPanelExpander->SetNormalBitmap(position, *pBitmap);
+ delete pBitmap;
+ }
+ Bitmap* pPressBitmap = ResourceManager::GetBitmapN(IDB_ALL_DAY_EVENT_LIST_EXPAND_CLOSED_PRESS);
+ if (pPressBitmap != null)
+ {
+ Point position(__pButtonAllDayEventsPanelExpander->GetWidth() - W_ALL_DAY_EVENT_EXPAND_ICON_MARGIN - pPressBitmap->GetWidth(),
+ (H_ALL_DAY_EVENT_EXPAND - pPressBitmap->GetHeight()) / 2);
+ __pButtonAllDayEventsPanelExpander->SetPressedBitmap(position, *pPressBitmap);
+ delete pPressBitmap;
+ }
+ __pButtonAllDayEventsPanelExpander->SetActionId(IDA_DAY_PANEL_ALL_DAY_EVENT_EXPAND);
+ __pPanelAllDayEvents->SetSize(GetWidth(), MIN_H_ALL_DAY_EVENT_LIST_PANEL);
+ __pPanelAllDayEvents->Invalidate(true);
+ return E_SUCCESS;
+}
+
+
+DayPanel::DayPanel(void)
+ : __pPm(null)
+ , __pPanningAnimationManager(null)
+{
+ memset((void *)__pPanelDayEvent, 0, sizeof(Panel*) * VIEW_SCROLL_EFFECT_COUNT);
+}
+
+DayPanel::~DayPanel(void)
+{
+}
+
+result
+DayPanel::Initialize(void)
+{
+ static const int _MIN_SIZE = 1;
+ return Construct(Rectangle(0, 0, _MIN_SIZE, _MIN_SIZE));
+}
+
+result
+DayPanel::OnInitializing(void)
+{
+ __pPm = EventListPresentationModel::GetInstance();
+
+ Form* pForm = dynamic_cast<Form*>(GetParent());
+ AppAssertf(pForm != null, "[E_FAILURE] Unable to get Form.");
+
+ Rectangle bounds = pForm->GetClientAreaBounds();
+ bounds.x = 0;
+ bounds.y = 0;
+ SetBounds(bounds);
+
+ // Create panning animation manager
+ __pPanningAnimationManager = new (std::nothrow) PanningAnimationManager();
+ __pPanningAnimationManager->Initialize(*this);
+ __pPanningAnimationManager->SetControlAnimatorEventListener(*this);
+
+ DayEventPanel* pPanel = new (std::nothrow) DayEventPanel();
+ pPanel->Initialize(bounds, __pPm->GetCurrentDate(), *__pPm);
+ pPanel->SetEventActionEventListener(*this);
+ AddControl(*pPanel);
+ pPanel->SetDateFocusEventListener(*this);
+ pPanel->SetPanningAnimationManager(*__pPanningAnimationManager);
+ __pPanelDayEvent[VIEW_SCROLL_EFFECT_CURRENT] = pPanel;
+
+ return E_SUCCESS;
+}
+
+result
+DayPanel::OnTerminating(void)
+{
+ RemoveControl(*__pPanelDayEvent[VIEW_SCROLL_EFFECT_CURRENT]);
+ if (__pPanelDayEvent[VIEW_SCROLL_EFFECT_NEXT] != null)
+ {
+ RemoveControl(*__pPanelDayEvent[VIEW_SCROLL_EFFECT_NEXT]);
+ }
+ if (__pPanelDayEvent[VIEW_SCROLL_EFFECT_PREVIEW] != null)
+ {
+ RemoveControl(*__pPanelDayEvent[VIEW_SCROLL_EFFECT_PREVIEW]);
+ }
+ delete __pPanningAnimationManager;
+ return E_SUCCESS;
+}
+
+void
+DayPanel::OnUserEventReceivedN(RequestId requestId, IList* pArgs)
+{
+ switch (requestId)
+ {
+ case IDA_MAIN_FORM_HEADER_TODAY:
+ __pPm->SetTodayToCurrentDate();
+ break;
+ case IDA_MAIN_FORM_HEADER_GO_TO_DATE:
+ GoToDatePopup::RequestGoToDate(__pPm->GetCurrentDate(), this);
+ break;
+ case IDA_MAIN_FORM_FOOTER_CREATE:
+ {
+ LinkedList* pArgs = new (std::nothrow) LinkedList();
+ pArgs->Add(new (std::nothrow) DateTime(__pPm->GetCurrentDate()));
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_EVENT_EDITOR,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT), pArgs);
+ break;
+ }
+ case IDA_SUB_MENU_DELETE:
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_EVENT_DELETER,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT));
+ break;
+ case IDA_SUB_MENU_SEARCH:
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_EVENT_SEARCHER,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT));
+ break;
+ case IDA_SUB_MENU_CALENDARS:
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_CALENDAR_LIST,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT));
+ break;
+ case IDA_VIEW_MENU_YEAR:
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_YEAR,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT,
+ SCENE_HISTORY_OPTION_NO_HISTORY));
+ break;
+ case IDA_VIEW_MENU_MONTH:
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_MONTH,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT,
+ SCENE_HISTORY_OPTION_NO_HISTORY));
+ break;
+ case IDA_VIEW_MENU_LIST:
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_LIST,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT,
+ SCENE_HISTORY_OPTION_NO_HISTORY));
+ break;
+ case IDA_GO_TO_DATE_POPUP_DONE:
+ {
+ DateTime selectedDate = *static_cast<DateTime*>(pArgs->GetAt(0));
+ DateTime currentDate = __pPm->GetCurrentDate();
+ currentDate.SetValue(selectedDate.GetYear(), selectedDate.GetMonth(), selectedDate.GetDay(), currentDate.GetHour(), currentDate.GetMinute());
+ __pPm->SetCurrentDate(currentDate);
+ break;
+ }
+ }
+
+ if (pArgs != null)
+ {
+ pArgs->RemoveAll(true);
+ delete pArgs;
+ }
+}
+
+void
+DayPanel::OnControlAnimationStarted(ControlAnimator& source, Control& control)
+{
+ if (__pPanningAnimationManager->GetScrollDirection() == VIEW_SCROLL_EFFECT_PREVIEW)
+ {
+ DayEventPanel* pPanel = static_cast<DayEventPanel*>(__pPanelDayEvent[VIEW_SCROLL_EFFECT_NEXT]);
+ pPanel->SetPosition(-GetWidth(), pPanel->GetY());
+
+ DateTime date = __pPm->GetCurrentDate();
+ date.AddDays(-2);
+ pPanel->SetDate(date);
+ pPanel->RequestRedraw(false);
+ }
+ if (__pPanningAnimationManager->GetScrollDirection() == VIEW_SCROLL_EFFECT_NEXT)
+ {
+ DayEventPanel* pPanel = static_cast<DayEventPanel*>(__pPanelDayEvent[VIEW_SCROLL_EFFECT_PREVIEW]);
+ pPanel->SetPosition(GetWidth(), pPanel->GetY());
+
+ DateTime date = __pPm->GetCurrentDate();
+ date.AddDays(2);
+ pPanel->SetDate(date);
+ pPanel->RequestRedraw(false);
+ }
+
+ static_cast<DayEventPanel*>(__pPanelDayEvent[VIEW_SCROLL_EFFECT_PREVIEW])->SetScrollPosition(
+ static_cast<DayEventPanel*>(__pPanelDayEvent[VIEW_SCROLL_EFFECT_CURRENT])->GetScrollPosition());
+ static_cast<DayEventPanel*>(__pPanelDayEvent[VIEW_SCROLL_EFFECT_NEXT])->SetScrollPosition(
+ static_cast<DayEventPanel*>(__pPanelDayEvent[VIEW_SCROLL_EFFECT_CURRENT])->GetScrollPosition());
+}
+
+void
+DayPanel::OnControlAnimationFinished(ControlAnimator& source, Control& control)
+{
+ if (__pPanningAnimationManager->GetScrollDirection() == VIEW_SCROLL_EFFECT_PREVIEW)
+ {
+ Panel* pPanel = __pPanelDayEvent[VIEW_SCROLL_EFFECT_NEXT];
+ __pPanelDayEvent[VIEW_SCROLL_EFFECT_NEXT] = __pPanelDayEvent[VIEW_SCROLL_EFFECT_CURRENT];
+ __pPanelDayEvent[VIEW_SCROLL_EFFECT_CURRENT] = __pPanelDayEvent[VIEW_SCROLL_EFFECT_PREVIEW];
+ __pPanelDayEvent[VIEW_SCROLL_EFFECT_PREVIEW] = pPanel;
+
+ __pPm->AddCurrentDay(-1);
+ }
+ else if (__pPanningAnimationManager->GetScrollDirection() == VIEW_SCROLL_EFFECT_NEXT)
+ {
+ Panel* pPanel = __pPanelDayEvent[VIEW_SCROLL_EFFECT_PREVIEW];
+ __pPanelDayEvent[VIEW_SCROLL_EFFECT_PREVIEW] = __pPanelDayEvent[VIEW_SCROLL_EFFECT_CURRENT];
+ __pPanelDayEvent[VIEW_SCROLL_EFFECT_CURRENT] = __pPanelDayEvent[VIEW_SCROLL_EFFECT_NEXT];
+ __pPanelDayEvent[VIEW_SCROLL_EFFECT_NEXT] = pPanel;
+
+ __pPm->AddCurrentDay(1);
+ }
+}
+
+void
+DayPanel::OnControlAnimationStopped(ControlAnimator& source, Control& control)
+{
+}
+
+void
+DayPanel::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs)
+{
+ if (pArgs != null)
+ {
+ pArgs->RemoveAll(true);
+ delete pArgs;
+ }
+
+ __pPm->SetViewType(VIEW_TYPE_DAILY);
+ DayEventPanel* pCurrent = static_cast<DayEventPanel*>(__pPanelDayEvent[VIEW_SCROLL_EFFECT_CURRENT]);
+ if (EventListPresentationModel::IsSameDay(pCurrent->GetDate(), __pPm->GetCurrentDate()) == true)
+ {
+ pCurrent->UpdateEvent();
+ }
+
+ for (int i = VIEW_SCROLL_EFFECT_NEXT; i < VIEW_SCROLL_EFFECT_COUNT; ++i)
+ {
+ DayEventPanel* pPanel = new (std::nothrow) DayEventPanel();
+ DateTime date = __pPm->GetCurrentDate();
+ switch (i)
+ {
+ case VIEW_SCROLL_EFFECT_NEXT:
+ date.AddDays(1);
+ pPanel->Initialize(Rectangle(GetWidth(), 0, GetWidth(), GetHeight()), date, *__pPm);
+ break;
+ case VIEW_SCROLL_EFFECT_PREVIEW:
+ date.AddDays(-1);
+ pPanel->Initialize(Rectangle(-GetWidth(), 0, GetWidth(), GetHeight()), date, *__pPm);
+ break;
+ }
+ pPanel->SetEventActionEventListener(*this);
+ AddControl(*pPanel);
+ pPanel->SetDateFocusEventListener(*this);
+ pPanel->SetPanningAnimationManager(*__pPanningAnimationManager);
+ __pPanelDayEvent[i] = pPanel;
+ }
+
+ Update(true);
+
+ __pPm->AddCalendarEventChangedEventListener(*this);
+ __pPm->AddCurrentDateChangedEventListener(*this);
+}
+
+void
+DayPanel::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
+{
+ __pPm->RemoveCalendarEventChangedEventListener(*this);
+ __pPm->RemoveCurrentDateChangedEventListener(*this);
+
+ RemoveControl(*__pPanelDayEvent[VIEW_SCROLL_EFFECT_NEXT]);
+ __pPanelDayEvent[VIEW_SCROLL_EFFECT_NEXT] = null;
+ RemoveControl(*__pPanelDayEvent[VIEW_SCROLL_EFFECT_PREVIEW]);
+ __pPanelDayEvent[VIEW_SCROLL_EFFECT_PREVIEW] = null;
+}
+
+void
+DayPanel::OnCalendarEventChanged(void)
+{
+ static_cast<DayEventPanel*>(__pPanelDayEvent[VIEW_SCROLL_EFFECT_CURRENT])->UpdateEvent();
+ static_cast<DayEventPanel*>(__pPanelDayEvent[VIEW_SCROLL_EFFECT_NEXT])->UpdateEvent();
+ static_cast<DayEventPanel*>(__pPanelDayEvent[VIEW_SCROLL_EFFECT_PREVIEW])->UpdateEvent();
+}
+
+void
+DayPanel::OnCurrentDateChanged(const DateTime& currentDate, const DateTime& prevDate)
+{
+ DateTime currentCalendarDate = static_cast<DayEventPanel*>(__pPanelDayEvent[VIEW_SCROLL_EFFECT_CURRENT])->GetDate();
+ Update(!EventListPresentationModel::IsSameDay(currentDate, currentCalendarDate));
+}
+
+void
+DayPanel::OnDateFocused(const DateTime& focusedDate)
+{
+ LinkedList* pArgs = new (std::nothrow) LinkedList();
+ DateTime* pDateTime = new (std::nothrow) DateTime(focusedDate);
+ pDateTime->AddMinutes(-1);
+ pArgs->Add(pDateTime);
+ result r = SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_EVENT_EDITOR,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT), pArgs);
+ if (r != E_SUCCESS)
+ {
+ pArgs->RemoveAll(true);
+ delete pArgs;
+ }
+}
+
+void
+DayPanel::OnEventActionPerformed(const CalEventInstance& event, EventAction actionId)
+{
+ if (actionId == EVENT_ACTION_SELECTION)
+ {
+ LinkedList* pArgs = new (std::nothrow) LinkedList();
+ pArgs->Add(new (std::nothrow) CalEventInstance(event));
+ result r = SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_EVENT_DETAILS,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT), pArgs);
+ if (r != E_SUCCESS)
+ {
+ pArgs->RemoveAll(true);
+ delete pArgs;
+ }
+ }
+}
+
+Control*
+DayPanel::GetCurrentControl(void)
+{
+ return __pPanelDayEvent[VIEW_SCROLL_EFFECT_CURRENT];
+}
+
+Control*
+DayPanel::GetNextControl(void)
+{
+ return __pPanelDayEvent[VIEW_SCROLL_EFFECT_NEXT];
+}
+
+Control*
+DayPanel::GetPreviewControl(void)
+{
+ return __pPanelDayEvent[VIEW_SCROLL_EFFECT_PREVIEW];
+}
+
+void
+DayPanel::DrawCurrentDate(void)
+{
+ Form* pForm = dynamic_cast<Form*>(GetParent());
+ if (pForm != null)
+ {
+ Header* pHeader = pForm->GetHeader();
+ if (pHeader != null)
+ {
+ pHeader->SetTitleText(__pPm->GetDateString(__pPm->GetCurrentDate()));
+ pHeader->Invalidate(false);
+ }
+ }
+}
+
+void
+DayPanel::DrawEvents(void)
+{
+ DayEventPanel* pPanel = static_cast<DayEventPanel*>(__pPanelDayEvent[VIEW_SCROLL_EFFECT_CURRENT]);
+ DateTime date = pPanel->GetDate();
+ pPanel->SetDate(__pPm->GetCurrentDate());
+
+ DayEventPanel* pNextPanel = static_cast<DayEventPanel*>(__pPanelDayEvent[VIEW_SCROLL_EFFECT_NEXT]);
+ if (pNextPanel != null)
+ {
+ date = pNextPanel->GetDate();
+ DateTime nextDate = __pPm->GetCurrentDate();
+ nextDate.AddDays(1);
+ pNextPanel->SetDate(nextDate);
+ }
+
+ DayEventPanel* pPrevPanel = static_cast<DayEventPanel*>(__pPanelDayEvent[VIEW_SCROLL_EFFECT_PREVIEW]);
+ if (pPrevPanel != null)
+ {
+ date = pPrevPanel->GetDate();
+ DateTime prevDate = __pPm->GetCurrentDate();
+ prevDate.AddDays(-1);
+ pPrevPanel->SetDate(prevDate);
+ }
+}
+
+void
+DayPanel::Update(bool draw)
+{
+ DrawCurrentDate();
+ DrawEvents();
+
+ if (draw == true)
+ {
+ __pPanelDayEvent[VIEW_SCROLL_EFFECT_CURRENT]->Invalidate(true);
+ if (__pPanelDayEvent[VIEW_SCROLL_EFFECT_NEXT] != null)
+ {
+ __pPanelDayEvent[VIEW_SCROLL_EFFECT_NEXT]->RequestRedraw(false);
+ }
+ if (__pPanelDayEvent[VIEW_SCROLL_EFFECT_PREVIEW] != null)
+ {
+ __pPanelDayEvent[VIEW_SCROLL_EFFECT_PREVIEW]->RequestRedraw(false);
+ }
+ }
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClEventDeleterForm.cpp
+ * @brief This is the implementation file for the EventDeleterForm class.
+ */
+
+#include <new>
+#include <FApp.h>
+#include "ClEventDeleterForm.h"
+#include "ClMainFrame.h"
+#include "ClResourceManager.h"
+#include "ClEventListPresentationModel.h"
+#include "ClTypes.h"
+#include "ClEventItem.h"
+#include "ClTwoButtonPopup.h"
+
+using namespace Tizen;
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Graphics;
+using namespace Tizen::Social;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+using namespace Tizen::Locales;
+
+static const int IDA_EVENT_DELETER_FORM_FOOTER_DELETE = 80001;
+static const int IDA_SELECT_ALL_CHECKED = 10001;
+static const int IDA_SELECT_ALL_UNCHECKED = 10002;
+static const int IDA_BEFORE_TODAY_CHECKED = 11001;
+static const int IDA_BEFORE_TODAY_UNCHECKED = 11002;
+
+static const int ID_LIST_ITEM_BEFORE_AFTER = 100;
+
+static const int H_ITEM = 128;
+static const int H_GROUP_ITEM = 76;
+static const int LEFT_MARGIN = 16;
+static const int TOTAL_MARGIN = 32;
+static const int FONT_SIZE_EVENT_SUB_LIST = 32;
+static const int TOP_BOTTOM_GROUP_ITEM_COUNT = 2;
+static const int TOP_BOTTOM_ITEM_COUNT = 1;
+static const int H_GROUP_ITEM_MINIMUM = 0;
+static const int PREVIOUS_DATE = -1;
+static const int NEXT_DATE = 1;
+
+static const unsigned int COLOR_ITEM_BACKGROUND = Color32<248, 246, 239>::Value;
+static const unsigned int COLOR_GROUP_ITEM_BACKGROUND = Color32<209, 227, 238>::Value;
+static const unsigned int COLOR_GROUP_ITEM_TODAY_BACKGROUND = Color32<117, 171, 204>::Value;
+static const unsigned int COLOR_GROUP_ITEM_TEXT = Color32<0, 94, 160>::Value;
+static const unsigned int COLOR_TOP_BOTTOM_ITEM_TEXT = Color32<42, 137, 194>::Value;
+static const unsigned int COLOR_ITEM_TEXT_PRESSED = Color32<249, 249, 249>::Value;
+
+EventDeleterForm::EventDeleterForm(void)
+ : __pPm(null)
+ , __pList(null)
+ , __pGroupedListViewDeleteList(null)
+ , __pCalendarbook(null)
+ , __pDateFormatter(null)
+ , __pTimeFormatter(null)
+ , __pSelectAll(null)
+ , __pSelectBeforeToday(null)
+ , __pPanel(null)
+ , __pLabel(null)
+ , __topBottomItemEnabled(false)
+{
+}
+
+EventDeleterForm::~EventDeleterForm(void)
+{
+
+}
+
+result
+EventDeleterForm::Initialize(void)
+{
+ return Construct(L"IDL_EVENT_DELETER_FORM");
+}
+
+result
+EventDeleterForm::OnInitializing(void)
+{
+ SetFormBackEventListener(this);
+ Footer* pFooter = GetFooter();
+ pFooter->AddActionEventListener(*this);
+
+ __pPanel = dynamic_cast<Panel*>(GetControl(L"IDC_PANEL"));
+ AppAssertf(__pPanel != null, "[E_FAILURE] Unable to get Panel.");
+
+ __pSelectAll = dynamic_cast<CheckButton*>(GetControl(L"IDC_SELECTALL_CHECKBUTTON", true));
+ AppAssertf(__pSelectAll != null, "[E_FAILURE] Unable to get CheckButton.");
+ __pSelectAll->SetActionId(IDA_SELECT_ALL_CHECKED, IDA_SELECT_ALL_UNCHECKED);
+ __pSelectAll->SetEnabled(false);
+ __pSelectAll->AddActionEventListener(*this);
+
+ __pSelectBeforeToday = dynamic_cast<CheckButton*>(GetControl(L"IDC_BEFORETODAY_CHECKBUTTON", true));
+ AppAssertf(__pSelectBeforeToday != null, "[E_FAILURE] Unable to get CheckButton.");
+ __pSelectBeforeToday->SetActionId(IDA_BEFORE_TODAY_CHECKED, IDA_BEFORE_TODAY_UNCHECKED);
+ __pSelectBeforeToday->AddActionEventListener(*this);
+ __pSelectBeforeToday->SetEnabled(false);
+ __pSelectBeforeToday->SetShowState(false);
+ __pPanel->SetSize(Dimension(GetClientAreaBounds().width, H_ITEM));
+
+ __pGroupedListViewDeleteList = dynamic_cast<GroupedListView*>(GetControl(L"IDC_GROUPEDLISTVIEW"));
+ AppAssertf(__pGroupedListViewDeleteList != null, "[E_FAILURE] Unable to get GroupedListView.");
+ __pGroupedListViewDeleteList->SetItemProvider(*this);
+ __pGroupedListViewDeleteList->SetTextOfEmptyList(ResourceManager::GetString(IDS_CLD_BODY_NO_EVENTS));
+ __pGroupedListViewDeleteList->SetBitmapOfEmptyList(ResourceManager::GetBitmapN(IDB_LIST_VIEW_NO_CONTENTS_TEXT));
+ __pGroupedListViewDeleteList->AddGroupedListViewItemEventListener(*this);
+
+ __pLabel = dynamic_cast<Label*>(GetControl(L"IDC_LABEL"));
+ AppAssertf(__pLabel != null, "[E_FAILURE] Unable to get Label.");
+ UpdateSelectedLabel();
+
+ __pPm = EventListPresentationModel::GetInstance();
+
+ __pDateFormatter = ResourceManager::CreateDateFormatterN(DATE_TIME_STYLE_SHORT);
+
+ return E_SUCCESS;
+}
+
+result
+EventDeleterForm::OnTerminating(void)
+{
+ delete __pCalendarbook;
+ delete __pDateFormatter;
+ delete __pTimeFormatter;
+ __pPm->RemoveCalendarEventChangedEventListener(*this);
+
+ return E_SUCCESS;
+}
+
+void
+EventDeleterForm::OnUserEventReceivedN(RequestId requestId, IList* pArgs)
+{
+ switch (requestId)
+ {
+ case IDA_EVENT_POPUP_DELETE:
+ {
+ LinkedList deleteEvents;
+ for (int i = __pGroupedListViewDeleteList->GetGroupCount() - 1; i >= 0; i--)
+ {
+ for (int j = __pGroupedListViewDeleteList->GetItemCountAt(i) - 1; j >= 0 ; j--)
+ {
+ if (__pGroupedListViewDeleteList->IsItemChecked(i, j) == true)
+ {
+ int actualGroupIndex = i;
+ if (__topBottomItemEnabled == true)
+ {
+ actualGroupIndex -= TOP_BOTTOM_ITEM_COUNT;
+ }
+ deleteEvents.Add(*__pPm->GetEventWithWholeIndex(actualGroupIndex, j));
+ __pGroupedListViewDeleteList->SetItemChecked(i, j, false);
+ }
+ }
+ }
+ __pPm->RemoveEvents(deleteEvents, true);
+ deleteEvents.RemoveAll();
+ break;
+ }
+ default:
+ break;
+ }
+
+ if (pArgs != null)
+ {
+ pArgs->RemoveAll(true);
+ delete pArgs;
+ }
+}
+
+void
+EventDeleterForm::OnFormBackRequested(Form& source)
+{
+ SceneManager::GetInstance()->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT));
+}
+
+int
+EventDeleterForm::GetGroupCount(void)
+{
+ int groupCount = __pPm->GetWholeDayCount();
+
+ if (groupCount == 0 || (groupCount == 1 && __pPm->GetEventWithWholeIndex(0, 0) == null))
+ {
+ __pSelectAll->SetEnabled(false);
+ __pSelectBeforeToday->SetEnabled(false);
+ groupCount = 0;
+ }
+ else
+ {
+ __pSelectAll->SetEnabled(true);
+ __pSelectBeforeToday->SetEnabled(true);
+ }
+ __pSelectAll->Invalidate(false);
+ __pSelectBeforeToday->Invalidate(false);
+
+ if (groupCount != 0 && __topBottomItemEnabled == true)
+ {
+ groupCount += TOP_BOTTOM_GROUP_ITEM_COUNT;
+ }
+
+ return groupCount;
+}
+
+int
+EventDeleterForm::GetItemCount(int groupIndex)
+{
+ int itemCount = 0;
+ int actualGroupIndex = groupIndex;
+
+ if (__topBottomItemEnabled == true)
+ {
+ if (groupIndex == 0 || groupIndex == GetGroupCount() - 1)
+ {
+ return TOP_BOTTOM_ITEM_COUNT;
+ }
+ else
+ {
+ actualGroupIndex = groupIndex - (TOP_BOTTOM_GROUP_ITEM_COUNT / 2);
+ }
+ }
+
+ itemCount = __pPm->GetWholeEventCount(actualGroupIndex);
+
+ return itemCount;
+}
+
+GroupItem*
+EventDeleterForm::CreateGroupItem(int groupIndex, int itemWidth)
+{
+ GroupItem* pItem = new (std::nothrow) GroupItem();
+
+ DateTime date;
+
+ if (__topBottomItemEnabled == true && (groupIndex == 0 || groupIndex == GetGroupCount() - 1))
+ {
+ pItem->Construct(Dimension(itemWidth, H_GROUP_ITEM_MINIMUM));
+ return pItem;
+ }
+
+ String dateString;
+ int actualGroupIndex = groupIndex;
+ int itemCount = 0;
+
+ if (__topBottomItemEnabled == true)
+ {
+ actualGroupIndex -= 1;
+ }
+
+ date = __pPm->GetDateTimeFromGroupIndex(actualGroupIndex);
+ dateString = __pPm->GetDateString(date);
+ itemCount = __pPm->GetWholeEventCount(actualGroupIndex);
+
+ if (itemCount == 0)//This is Today Index.(event is empty)
+ {
+ pItem->Construct(Dimension(itemWidth, 0));
+ return pItem;
+ }
+ else
+ {
+ pItem->Construct(Dimension(itemWidth, H_GROUP_ITEM));
+ }
+
+ pItem->SetElement(dateString);
+
+ if (EventListPresentationModel::IsToday(date) == true)
+ {
+ pItem->SetBackgroundColor(Color(COLOR_GROUP_ITEM_TODAY_BACKGROUND));
+ }
+ else
+ {
+ pItem->SetBackgroundColor(Color(COLOR_GROUP_ITEM_BACKGROUND));
+ }
+ pItem->SetTextColor(Color(COLOR_GROUP_ITEM_TEXT));
+
+ return pItem;
+}
+
+ListItemBase*
+EventDeleterForm::CreateItem(int groupIndex, int itemIndex, int itemWidth)
+{
+ if (__topBottomItemEnabled == true)
+ {
+ if (groupIndex == 0 || groupIndex == GetGroupCount() - 1)
+ {
+ CustomItem* pItem = new (std::nothrow) CustomItem();
+
+ String string;
+ String dateString;
+ if (groupIndex == 0)
+ {
+ __pDateFormatter->Format(__pPm->GetViewMinRange(), dateString);
+ string = ResourceManager::GetString(IDS_LIST_VIEW_TAP_VIEW_BEFORE);
+ }
+ else
+ {
+ __pDateFormatter->Format(__pPm->GetViewMaxRange(), dateString);
+ string = ResourceManager::GetString(IDS_LIST_VIEW_TAP_VIEW_AFTER);
+ }
+ string.Append(L" ");
+ string.Append(dateString);
+
+ pItem->Construct(Dimension(itemWidth, H_ITEM), LIST_ANNEX_STYLE_NORMAL);
+ // TBD : Background color of item must be transparent.(will be in SDK 2.1)
+ pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL, Color(COLOR_ITEM_BACKGROUND));
+ pItem->AddElement(Rectangle(LEFT_MARGIN, 0, itemWidth - TOTAL_MARGIN, H_ITEM)
+ , ID_LIST_ITEM_BEFORE_AFTER, string, FONT_SIZE_EVENT_SUB_LIST
+ , Color(COLOR_TOP_BOTTOM_ITEM_TEXT), Color(COLOR_ITEM_TEXT_PRESSED), Color(COLOR_ITEM_TEXT_PRESSED));
+ return pItem;
+ }
+ else
+ {
+ groupIndex -= TOP_BOTTOM_ITEM_COUNT;
+ }
+ }
+
+ const CalEventInstance* pEvent = __pPm->GetEventWithWholeIndex(groupIndex, itemIndex);
+ TryReturn((pEvent != null), null, "[E_SYSTEM] Unable to get event instance.");
+
+ EventItem* pItem = new (std::nothrow) EventItem();
+ pItem->Initialize(EVENT_ITEM_STYLE_SELECTION, itemWidth);
+ pItem->SetTitle(pEvent->GetSubject());
+ pItem->SetCalendarColor(__pPm->GetCalendarColor(pEvent->GetCalendarId()));
+ if (pEvent->IsAllDayEvent() == true)
+ {
+ pItem->SetAllDayEvent();
+ }
+ else
+ {
+ DateTime startTime = ResourceManager::ConvertUtcTimeToWallTime(pEvent->GetStartTime());
+ DateTime endTime = ResourceManager::ConvertUtcTimeToWallTime(pEvent->GetEndTime());
+ pItem->SetDateRange(startTime, endTime, __pPm->GetDateTimeFromGroupIndex(groupIndex), __pPm->GetTimeFormatter());
+ }
+
+ pItem->SetReminder(pEvent->HasReminder());
+ pItem->SetRepeat(pEvent->IsRecurring());
+// pItem->SetFacebookEvent(false);
+ pItem->UpdateElements();
+
+ return pItem;
+}
+
+bool
+EventDeleterForm::DeleteGroupItem(int groupIndex, GroupItem* pItem, int itemWidth)
+{
+ delete pItem;
+ return true;
+}
+
+bool
+EventDeleterForm::DeleteItem(int groupIndex, int itemIndex, ListItemBase* pItem, int itemWidth)
+{
+ delete pItem;
+ return true;
+}
+
+void
+EventDeleterForm::OnGroupedListViewItemStateChanged(GroupedListView& listView, int groupIndex, int itemIndex,
+ int elementId, ListItemStatus status)
+{
+ if (__topBottomItemEnabled == true)
+ {
+ if (groupIndex == 0)
+ {
+ DateTime minRange = __pPm->GetViewMinRange();
+ minRange.AddMonths(PREVIOUS_DATE);
+
+ __pPm->SetViewRange(minRange, __pPm->GetViewMaxRange());
+ __pPm->SetViewType(VIEW_TYPE_LIST);
+
+ __pGroupedListViewDeleteList->UpdateList();
+
+ __pSelectAll->SetSelected(false);
+ __pSelectBeforeToday->SetSelected(false);
+ UpdateSelectedLabel();
+ return;
+ }
+ else if (groupIndex == __pGroupedListViewDeleteList->GetGroupCount() - 1)
+ {
+ DateTime maxRange = __pPm->GetViewMaxRange();
+ maxRange.AddMonths(NEXT_DATE);
+
+ __pPm->SetViewRange(__pPm->GetViewMinRange(), maxRange);
+ __pPm->SetViewType(VIEW_TYPE_LIST);
+
+ result r = __pGroupedListViewDeleteList->UpdateList();
+ if (r == E_SUCCESS)
+ {
+ if (__pGroupedListViewDeleteList->IsGroupExpanded(listView.GetGroupCount() - 1) == false)
+ {
+ __pGroupedListViewDeleteList->ExpandGroup(listView.GetGroupCount() - 1);
+ }
+ }
+
+ __pGroupedListViewDeleteList->ScrollToItem(listView.GetGroupCount() - 1, 0);
+ __pGroupedListViewDeleteList->Invalidate(false);
+
+ __pSelectAll->SetSelected(false);
+ __pSelectBeforeToday->SetSelected(false);
+ UpdateSelectedLabel();
+ return;
+ }
+ }
+
+ if (__pGroupedListViewDeleteList->IsItemChecked(groupIndex, itemIndex) == true)
+ {
+ bool checkedFlag = true;
+ for (int i = 0; i < __pGroupedListViewDeleteList->GetGroupCount(); i++)
+ {
+ if (__topBottomItemEnabled == true)
+ {
+ if (i == 0)
+ {
+ i++;
+ }
+ else if (i == __pGroupedListViewDeleteList->GetGroupCount() - 1)
+ {
+ break;
+ }
+ }
+ for (int j = 0; j < __pGroupedListViewDeleteList->GetItemCountAt(i); j++)
+ {
+ if (__pGroupedListViewDeleteList->IsItemChecked(i, j) == false)
+ {
+ checkedFlag = false;
+ break;
+ }
+ }
+ }
+
+ if (checkedFlag == true)
+ {
+ __pSelectAll->SetSelected(true);
+ Invalidate(true);
+ }
+ }
+ else if (__pGroupedListViewDeleteList->IsItemChecked(groupIndex, itemIndex) == false)
+ {
+ __pSelectAll->SetSelected(false);
+ if (__pPm->GetCurrentDate() > __pPm->GetDateTimeFromGroupIndex(groupIndex))
+ {
+ __pSelectBeforeToday->SetSelected(false);
+ }
+ Invalidate(true);
+ }
+ UpdateSelectedLabel();
+}
+
+void
+EventDeleterForm::OnGroupedListViewItemSwept(GroupedListView& listView, int groupIndex, int itemIndex,
+ SweepDirection direction)
+{
+}
+
+void
+EventDeleterForm::OnGroupedListViewContextItemStateChanged(GroupedListView& listView,
+ int groupIndex, int itemIndex,
+ int elementId, ListContextItemStatus status)
+{
+}
+
+void
+EventDeleterForm::OnGroupedListViewItemLongPressed(GroupedListView& listView, int groupIndex, int itemIndex,
+ int elementId, bool& invokeListViewItemCallback)
+{
+}
+
+void
+EventDeleterForm::OnGroupedListViewGroupItemSelected(GroupedListView& listView, int groupIndex)
+{
+ if (listView.IsGroupExpanded(groupIndex) == true)
+ {
+ listView.CollapseGroup(groupIndex);
+ }
+ else
+ {
+ listView.ExpandGroup(groupIndex);
+ }
+ listView.Invalidate(true);
+}
+
+void
+EventDeleterForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs)
+{
+ DateTime minRange = __pPm->GetCurrentDate();
+ minRange.SetValue(minRange.GetYear(), minRange.GetMonth(), minRange.GetDay());
+ DateTime maxRange;
+
+ if (previousSceneId == IDSCN_YEAR)
+ {
+ minRange.SetValue(minRange.GetYear(), 1, 1);
+ maxRange = minRange;
+ maxRange.AddYears(NEXT_DATE);
+ maxRange.AddSeconds(PREVIOUS_DATE);
+ __pSelectAll->SetText(ResourceManager::GetString(IDS_CLD_MBODY_ALL_THIS_YEAR));
+ }
+ else if (previousSceneId == IDSCN_MONTH)
+ {
+ minRange.SetValue(minRange.GetYear(), minRange.GetMonth(), 1);
+ maxRange = minRange;
+ maxRange.AddMonths(NEXT_DATE);
+ maxRange.AddSeconds(PREVIOUS_DATE);
+ __pSelectAll->SetText(ResourceManager::GetString(IDS_CLD_BODY_ALL_THIS_MONTH));
+ }
+ else if (previousSceneId == IDSCN_DAY)
+ {
+ maxRange = minRange;
+ maxRange.AddDays(NEXT_DATE);
+ maxRange.AddSeconds(PREVIOUS_DATE);
+ __pSelectAll->SetText(ResourceManager::GetString(IDS_CLD_BODY_ALL_THIS_DAY));
+ }
+ else if (previousSceneId == IDSCN_LIST)
+ {
+ minRange = __pPm->GetViewMinRange();
+ maxRange = __pPm->GetViewMaxRange();
+
+ __topBottomItemEnabled = true;
+
+ __pSelectBeforeToday->SetShowState(true);
+ __pPanel->SetSize(Dimension(GetClientAreaBounds().width, H_ITEM * 2));
+ }
+
+ __pPm->SetViewType(VIEW_TYPE_LIST);
+ __pPm->SetViewRange(minRange, maxRange);
+ __pPm->AddCalendarEventChangedEventListener(*this);
+
+ if (__pGroupedListViewDeleteList != null)
+ {
+ Rectangle rect = __pGroupedListViewDeleteList->GetBounds();
+ rect.y = __pPanel->GetBounds().y + __pPanel->GetBounds().height;
+ rect.height = GetClientAreaBounds().height - __pPanel->GetBounds().height - __pLabel->GetBounds().height;
+
+ __pGroupedListViewDeleteList->SetBounds(rect);
+ }
+
+ GetFooter()->SetItemEnabled(0, false);
+ Invalidate(true);
+}
+
+void
+EventDeleterForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
+{
+
+}
+
+void
+EventDeleterForm::OnActionPerformed(const Control& source, int actionId)
+{
+ int groupIndex = 0;
+ TwoButtonPopupStyle style = TWO_BUTTON_POPUP_STYLE_SINGLE_EVENT;
+
+ DateTime today = __pPm->GetToday();
+ today.SetValue(today.GetYear(), today.GetMonth(), today.GetDay(), 0, 0, 0);
+
+ switch (actionId)
+ {
+ case IDA_EVENT_DELETER_FORM_FOOTER_DELETE:
+ for (int i = 0; i < __pGroupedListViewDeleteList->GetGroupCount(); i++)
+ {
+ for (int j = 0; j < __pGroupedListViewDeleteList->GetItemCountAt(i); j++)
+ {
+ if (__pGroupedListViewDeleteList->IsItemChecked(i, j) == true)
+ {
+ int actualGroupIndex = i;
+ if (__topBottomItemEnabled == true)
+ {
+ actualGroupIndex -= TOP_BOTTOM_ITEM_COUNT;
+ }
+ if (__pPm->GetEventWithWholeIndex(actualGroupIndex, j)->IsRecurring() == true)
+ {
+ style = TWO_BUTTON_POPUP_STYLE_REPEATED_EVENT;
+ break;
+ }
+ }
+ }
+ }
+
+ TwoButtonPopup::RequestTwoButtonPopup(style, this);
+ break;
+ case IDA_SELECT_ALL_CHECKED:
+ for (int i = 0; i < __pGroupedListViewDeleteList->GetGroupCount(); i++)
+ {
+ for (int j = 0; j < __pGroupedListViewDeleteList->GetItemCountAt(i); j++)
+ {
+ if (__topBottomItemEnabled == true && (i == 0 || i == __pGroupedListViewDeleteList->GetGroupCount() - 1))
+ {
+ break;
+ }
+ __pGroupedListViewDeleteList->SetItemChecked(i, j, true);
+ }
+ }
+ UpdateSelectedLabel();
+ break;
+ case IDA_SELECT_ALL_UNCHECKED:
+ for (int i = 0; i < __pGroupedListViewDeleteList->GetGroupCount(); i++)
+ {
+ for (int j = 0; j < __pGroupedListViewDeleteList->GetItemCountAt(i); j++)
+ {
+ __pGroupedListViewDeleteList->SetItemChecked(i, j, false);
+ }
+ }
+ __pSelectBeforeToday->SetSelected(false);
+ UpdateSelectedLabel();
+ break;
+ case IDA_BEFORE_TODAY_CHECKED:
+ for (int i = 0; i < __pGroupedListViewDeleteList->GetGroupCount(); i++)
+ {
+ if (__topBottomItemEnabled == true && (i != 0 && i != __pGroupedListViewDeleteList->GetGroupCount() - 1))
+ {
+ groupIndex = i - 1;
+
+
+ if (__pPm->GetDateTimeFromGroupIndex(groupIndex) < today)
+ {
+ for (int j = 0; j < __pGroupedListViewDeleteList->GetItemCountAt(i); j++)
+ {
+ if (__pGroupedListViewDeleteList->IsItemChecked(i, j) == false)
+ {
+ __pGroupedListViewDeleteList->SetItemChecked(i, j, true);
+ }
+ }
+ }
+ }
+ }
+ UpdateSelectedLabel();
+ break;
+ case IDA_BEFORE_TODAY_UNCHECKED:
+ for (int i = 0; i < __pGroupedListViewDeleteList->GetGroupCount(); i++)
+ {
+ if (__topBottomItemEnabled == true && (i != 0 && i != __pGroupedListViewDeleteList->GetGroupCount() - 1))
+ {
+ groupIndex = i - 1;
+
+ if (__pPm->GetDateTimeFromGroupIndex(groupIndex) < today)
+ {
+ for (int j = 0; j < __pGroupedListViewDeleteList->GetItemCountAt(i); j++)
+ {
+ if (__pGroupedListViewDeleteList->IsItemChecked(i, j) == true)
+ {
+ __pGroupedListViewDeleteList->SetItemChecked(i, j, false);
+ }
+ }
+ }
+ }
+ }
+ __pSelectAll->SetSelected(false);
+ UpdateSelectedLabel();
+ break;
+ }
+}
+
+void
+EventDeleterForm::OnCalendarEventChanged(void)
+{
+ if (__pSelectAll->IsSelected() == true)
+ {
+ __pSelectAll->SetSelected(false);
+ }
+ if (__pSelectBeforeToday->IsSelected() == true)
+ {
+ __pSelectBeforeToday->SetSelected(false);
+ }
+
+ __pGroupedListViewDeleteList->UpdateList();
+
+ UpdateSelectedLabel();
+}
+
+result
+EventDeleterForm::UpdateSelectedLabel(void)
+{
+ int itemCount = 0;
+ int wholeEventCount = 0;
+ for (int i = 0; i < __pGroupedListViewDeleteList->GetGroupCount(); i++)
+ {
+ if (__pPm != null)
+ {
+ if (__topBottomItemEnabled == true)
+ {
+ if (i > 0 && i < __pGroupedListViewDeleteList->GetGroupCount() - 1)
+ {
+ wholeEventCount += __pPm->GetWholeEventCount(i - 1);
+ }
+ }
+ }
+ for (int j = 0; j < __pGroupedListViewDeleteList->GetItemCountAt(i); j++)
+ {
+ if (__pGroupedListViewDeleteList->IsItemChecked(i, j) == true)
+ {
+ itemCount++;
+ }
+ }
+ }
+
+ Footer* pFooter = GetFooter();
+ if (itemCount > 0)
+ {
+ pFooter->SetItemEnabled(0, true);
+ }
+ else
+ {
+ pFooter->SetItemEnabled(0, false);
+ }
+
+ if (itemCount != 0 && itemCount == wholeEventCount)
+ {
+ __pSelectAll->SetSelected(true);
+ __pSelectAll->Invalidate(false);
+ }
+
+ String labelString = ResourceManager::GetString(IDS_COM_BODY_PD_SELECTED);
+ labelString.Format(labelString.GetLength() + Integer::ToString(itemCount).GetLength(), labelString.GetPointer(), itemCount);
+ __pLabel->SetText(labelString);
+ Invalidate(true);
+ return E_SUCCESS;
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClEventDetailsForm.cpp
+ * @brief This is the implementation file for the EventDetailsForm class.
+ */
+
+#include <new>
+#include <string>
+#include <FSocial.h>
+#include "ClCalendarApp.h"
+#include "ClEventDetailsForm.h"
+#include "ClEventPresentationModel.h"
+#include "ClResourceManager.h"
+#include "ClSharePopup.h"
+#include "ClThreeButtonPopup.h"
+#include "ClTwoButtonPopup.h"
+#include "ClTypes.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Graphics;
+using namespace Tizen::Social;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+enum
+{
+ GROUP_MAIN_CONTENT = 0,
+ GROUP_INFORMATION_CONTENT,
+ GROUP_ADDITIONAL_CONTENT,
+ GROUP_SAVE_TO,
+ GROUP_COUNT,
+
+ MAIN_CONTENT_ITEM_INFORMATION = 0,
+ MAIN_CONTENT_ITEM_COUNT,
+
+ INFORMATION_CONTENT_ITEM_DESCRIPTION = 0,
+ INFORMATION_CONTENT_ITEM_LOCATION,
+ INFORMATION_CONTENT_ITEM_COUNT,
+
+ ADDITIONAL_CONTENT_ITEM_REMINDER = 0,
+ ADDITIONAL_CONTENT_ITEM_REPEAT,
+ ADDITIONAL_CONTENT_ITEM_COUNT,
+
+// SAVE_TO_ITEM_SAVE_TO = 0,
+// SAVE_TO_ITEM_COUNT
+};
+
+static const int IDA_EVENT_DETAILS_FORM_EDIT = 60001;
+static const int IDA_EVENT_DETAILS_FORM_DELETE = 60002;
+static const int IDA_EVENT_DETAILS_FORM_SHARE = 60003;
+static const int IDA_EVENT_DETAILS_FORM_ADD_TO_CALENDAR = 60004;
+static const int IDA_DETAIL_FORM_FOOTER_SUB_MENU = 60010;
+
+static const unsigned int COLOR_ITEM_BACKGROUND = Color32<232, 232, 232>::Value;
+static const int H_ITEM = 112;
+static const int H_MAIN_ITEM = 264;
+static const int Y_MAIN_ITEM_SUBJECT = 16;
+static const int H_MAIN_ITEM_SUBJECT = 120;
+static const int W_MAIN_ITEM_SUBJECT_MARGIN = 40;
+static const int H_MAIN_ITEM_SUBJECT_MARGIN = 32;
+static const int X_MAIN_ITEM_ALARM_ICON = 16;
+static const int Y_MAIN_ITEM_ALARM_ICON = 36;
+static const int W_MAIN_ITEM_ALARM_ICON = 64;
+static const int H_MAIN_ITEM_ALARM_ICON = 64;
+static const int X_MAIN_ITEM_ALARM = 96;
+static const int Y_MAIN_ITEM_ALARM01 = 16;
+static const int Y_MAIN_ITEM_ALARM02 = 58;
+static const int H_MAIN_ITEM_ALARM01 = 42;
+static const int H_MAIN_ITEM_ALARM02 = 60;
+static const int Y_REMINDER_ITEM_REMINDER = 32;
+static const int H_REMINDER_ITEM_REMINDER = 48;
+static const int Y_REMINDER_ITEM_MARGIN = 40;
+static const int Y_REMINDER_ITEM_REPEAT = 32;
+static const int H_REMINDER_ITEM_REPEAT = 48;
+static const int W_DESCRIPTION_ITEM_MARGIN = 16;
+static const int H_DESCRIPTION_ITEM_MARGIN = 22;
+//static const int H_SAVE_TO_ITEM = 112;
+//static const int Y_SAVE_TO_ITEM_SAVE_TO = 8;
+//static const int H_SAVE_TO_ITEM_SAVE_TO = 48;
+//static const int Y_SAVE_TO_ITEM_CALENDAR_NAME = 56;
+//static const int H_SAVE_TO_ITEM_CALENDAR_NAME = 48;
+static const int FONT_SIZE_DETAIL01 = 56;
+static const unsigned int COLOR_DETAIL01 = Color32<0, 0, 0>::Value;
+static const int FONT_SIZE_DETAIL02 = 32;
+static const unsigned int COLOR_DETAIL02 = Color32<128, 128, 128>::Value;
+static const int FONT_SIZE_DETAIL03 = 44;
+static const unsigned int COLOR_DETAIL03 = Color32<0, 0, 0>::Value;
+//static const int X_ITEM_SAVE_TO_ICON = 16;
+//static const int Y_ITEM_SAVE_TO_ICON = 66;
+//static const int W_ITEM_SAVE_TO_ICON = 32;
+//static const int H_ITEM_SAVE_TO_ICON = 32;
+//static const unsigned int COLOR_SAVE_TO_ICON = Color32<100, 100, 100>::Value;
+const int MAX_TITLE_TEXT = 20;
+static const int W_SUB_MENU_MARGIN = 64;
+static const int H_SUB_MENU_HALF_BUTTON = 36;
+static const int X_ITEM_ICON = 20;
+static const int Y_ITEM_ICON = 19;
+static const int W_ITEM_ICON = 74;
+static const int H_ITEM_ICON = 74;
+
+EventDetailsForm::EventDetailsForm(void)
+ : __pPm(null)
+ , __pTableView(null)
+ , __pContextMenuSub(null)
+ , __pSharePopup(null)
+{
+}
+
+EventDetailsForm::~EventDetailsForm(void)
+{
+}
+
+result
+EventDetailsForm::Initialize(void)
+{
+ return Construct(L"IDL_EVENT_DETAILS_FORM");
+}
+
+result
+EventDetailsForm::OnInitializing(void)
+{
+ __pPm = new (std::nothrow) EventPresentationModel();
+ __pPm->Construct();
+
+ SetFormBackEventListener(this);
+ Footer* pFooter = GetFooter();
+ pFooter->AddActionEventListener(*this);
+
+ __pTableView = dynamic_cast<SectionTableView*>(GetControl(L"IDC_SECTIONTABLEVIEW"));
+ TryReturn(__pTableView != null, E_FAILURE, "[E_FAILURE] Unable to get sectiontableview.");
+
+ __pTableView->SetItemProvider(this);
+ __pTableView->AddSectionTableViewItemEventListener(*this);
+ __pTableView->SetGroupedLookEnabled(true);
+
+ InitializeSubMenu();
+
+ __pSharePopup = new (std::nothrow) SharePopup();
+ __pSharePopup->Initialize();
+
+ return E_SUCCESS;
+}
+
+result
+EventDetailsForm::OnTerminating(void)
+{
+ delete __pPm;
+ delete __pSharePopup;
+ return E_SUCCESS;
+}
+
+void
+EventDetailsForm::OnUserEventReceivedN(RequestId requestId, IList* pArgs)
+{
+ switch (requestId)
+ {
+ case IDA_EVENT_POPUP_DELETE:
+ __pPm->RemoveEvent(true);
+ SceneManager::GetInstance()->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT));
+ break;
+ case IDA_EVENT_POPUP_ONLY_THIS_EVENT_DELETE:
+ __pPm->RemoveEvent(false);
+ SceneManager::GetInstance()->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT));
+ break;
+ case IDA_EVENT_POPUP_ALL_REPETITIVE_EVENT_DELETE:
+ __pPm->RemoveEvent(true);
+ SceneManager::GetInstance()->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT));
+ break;
+ case IDA_EVENT_POPUP_ONLY_THIS_EVENT_EDIT:
+ {
+ LinkedList* pList = new (std::nothrow) LinkedList();
+ pList->Add(new (std::nothrow) CalEventInstance(*__pPm->GetEventInstance()));
+ pList->Add(new (std::nothrow) Boolean(false));
+
+ result r = SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_EVENT_EDITOR,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT), pList);
+ if (r != E_SUCCESS)
+ {
+ pList->RemoveAll(true);
+ delete pList;
+ }
+ break;
+ }
+ case IDA_EVENT_POPUP_ALL_REPETITIVE_EVENT_EDIT:
+ {
+ LinkedList* pList = new (std::nothrow) LinkedList();
+ pList->Add(new (std::nothrow) CalEventInstance(*__pPm->GetEventInstance()));
+ pList->Add(new (std::nothrow) Boolean(true));
+
+ result r = SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_EVENT_EDITOR,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT), pList);
+ if (r != E_SUCCESS)
+ {
+ pList->RemoveAll(true);
+ delete pList;
+ }
+ break;
+ }
+ }
+
+ if (pArgs != null)
+ {
+ pArgs->RemoveAll(true);
+ delete pArgs;
+ }
+}
+
+void
+EventDetailsForm::OnFormBackRequested(Form& source)
+{
+ CalendarApp* pApp = static_cast<CalendarApp*>(UiApp::GetInstance());
+ if (pApp != null)
+ {
+ if (pApp->GetOperationType() == OPERATION_TYPE_APPCONTROL)
+ {
+// result r = SendAppControlResult(APP_CTRL_RESULT_SUCCEEDED);
+// AppLogDebugIf(r != E_SUCCESS, "[%s] Unable to return result.", GetErrorMessage(r));
+
+ pApp->Terminate();
+ return;
+ }
+ }
+
+ SceneManager::GetInstance()->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT));
+}
+
+int
+EventDetailsForm::GetSectionCount(void)
+{
+ return GROUP_COUNT;
+}
+
+int
+EventDetailsForm::GetItemCount(int sectionIndex)
+{
+ switch (sectionIndex)
+ {
+ case GROUP_MAIN_CONTENT:
+ return MAIN_CONTENT_ITEM_COUNT;
+ case GROUP_INFORMATION_CONTENT:
+ return INFORMATION_CONTENT_ITEM_COUNT;
+ case GROUP_ADDITIONAL_CONTENT:
+ return ADDITIONAL_CONTENT_ITEM_COUNT;
+// case GROUP_SAVE_TO:
+// return SAVE_TO_ITEM_COUNT;
+ }
+
+ return 0;
+}
+
+TableViewItem*
+EventDetailsForm::CreateItem(int sectionIndex, int itemIndex, int itemWidth)
+{
+ TableViewItem* pItem = null;
+ switch (sectionIndex)
+ {
+ case GROUP_MAIN_CONTENT:
+ if (itemIndex == MAIN_CONTENT_ITEM_INFORMATION)
+ {
+ pItem = CreateMainItemN(itemWidth, __pPm->GetSubject(), __pPm->GetStartTime(), __pPm->GetEndTime());
+ }
+ break;
+ case GROUP_INFORMATION_CONTENT:
+ switch (itemIndex)
+ {
+ case INFORMATION_CONTENT_ITEM_DESCRIPTION:
+ pItem = CreateDescriptionItemN(itemWidth, __pPm->GetDescription());
+ break;
+ case INFORMATION_CONTENT_ITEM_LOCATION:
+ pItem = CreateLocationItemN(itemWidth, __pPm->GetLocation());
+ break;
+ }
+ break;
+ case GROUP_ADDITIONAL_CONTENT:
+ if (itemIndex == 0)
+ {
+ pItem = CreateReminderItemN(itemWidth, __pPm->GetReminderString(itemIndex));
+ }
+ else
+ {
+ pItem = CreateRepeatItemN(itemWidth, __pPm->GetRecurrenceString());
+ }
+ break;
+// case GROUP_SAVE_TO:
+// if (itemIndex == SAVE_TO_ITEM_SAVE_TO)
+// {
+// const Bitmap* pIcon = __pPm->GetCalendarIconN();
+// pItem = CreateSaveToItemN(itemWidth, __pPm->GetCalendarName(), pIcon);
+// delete pIcon;
+// }
+// break;
+ }
+
+ return pItem;
+}
+
+bool
+EventDetailsForm::DeleteItem(int sectionIndex, int itemIndex, TableViewItem* pItem)
+{
+ delete pItem;
+ return true;
+}
+
+void
+EventDetailsForm::UpdateItem(int sectionIndex, int itemIndex, TableViewItem* pItem)
+{
+}
+
+String
+EventDetailsForm::GetSectionHeader(int sectionIndex)
+{
+ return L"";
+}
+
+bool
+EventDetailsForm::HasSectionHeader(int sectionIndex)
+{
+ if (sectionIndex == GROUP_INFORMATION_CONTENT)
+ {
+ if ((__pPm->GetLocation().IsEmpty() == true) && (__pPm->GetDescription().IsEmpty() == true))
+ {
+ return false;
+ }
+ }
+ return true;
+}
+
+String
+EventDetailsForm::GetSectionFooter(int sectionIndex)
+{
+ return L"";
+}
+
+bool
+EventDetailsForm::HasSectionFooter(int sectionIndex)
+{
+ return false;
+}
+
+int
+EventDetailsForm::GetDefaultItemHeight(void)
+{
+ return H_ITEM;
+}
+
+void
+EventDetailsForm::OnSectionTableViewItemStateChanged(SectionTableView& tableView, int sectionIndex, int itemIndex,
+ TableViewItem* pItem, TableViewItemStatus status)
+{
+}
+
+void
+EventDetailsForm::OnSectionTableViewContextItemActivationStateChanged(SectionTableView& tableView, int sectionIndex, int itemIndex,
+ TableViewContextItem* pContextItem, bool activated)
+{
+}
+
+void
+EventDetailsForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs)
+{
+ CalendarApp* pApp = static_cast<CalendarApp*>(UiApp::GetInstance());
+ if (pApp->GetOperationType() == OPERATION_TYPE_DEFAULT)
+ {
+ if (pArgs != null)
+ {
+ CalEventInstance* pEvent = dynamic_cast<CalEventInstance*>(pArgs->GetAt(0));
+ if (pEvent != null)
+ {
+ __pPm->SetAllEventEditing(true);
+ __pPm->SetEventInstance(*pEvent);
+ __pTableView->UpdateTableView();
+ }
+
+ pArgs->RemoveAll(true);
+ delete pArgs;
+ }
+
+ return;
+ }
+
+ if (pArgs != null)
+ {
+ pArgs->RemoveAll(true);
+ delete pArgs;
+ }
+
+ //AppControl
+ result r = E_SUCCESS;
+ const String* pParseId = null;
+ const String* pPath = null;
+ RecordId eventId = INVALID_RECORD_ID;
+ const String* pViewType = pApp->GetArgument(KEY_CALENDAR_VIEW_TYPE);
+ TryCatch(pViewType != null, , "[E_FAILURE] Unable to get viewtype.");
+
+ if (pViewType->Equals(VALUE_CALENDAR_VCS_TYPE, false) == true)
+ {
+ pPath = pApp->GetArgument(KEY_CALENDAR_PATH);
+ r = __pPm->SetVcsFile(*pPath);
+ TryCatch(r == E_SUCCESS, , "[E_FAILURE] Unable to parse events from vcs file.");
+
+ if (GetFooter() != null)
+ {
+ Footer* pFooter = GetFooter();
+ pFooter->RemoveAllItems();
+ pFooter->RemoveAllButtons();
+ pFooter->SetStyle(FOOTER_STYLE_BUTTON_TEXT);
+ pFooter->SetBackButtonEnabled(true);
+ pFooter->SetBackButton();
+
+ FooterItem item;
+ item.Construct(IDA_EVENT_DETAILS_FORM_ADD_TO_CALENDAR);
+ item.SetText(ResourceManager::GetString(IDS_EMAIL_OPT_ADD_TO_CALENDAR));
+ pFooter->AddItem(item);
+ }
+ return;
+ }
+ else if (pViewType->Equals(VALUE_CALENDAR_EVENT_TYPE, false) == true)
+ {
+ pParseId = pApp->GetArgument(KEY_CALENDAR_EVENT_ID);
+ TryCatch(pParseId != null, , "[E_FAILURE] Unable to get eventid.");
+
+ r = Integer::Parse(*pParseId, eventId);
+ TryCatch(r == E_SUCCESS, , "[%s] Unable to get eventid.", GetErrorMessage(r));
+
+ r = __pPm->SetEventId(eventId);
+ TryCatch(r == E_SUCCESS, , "[%s] Unable to get event.", GetErrorMessage(r));
+
+ if (GetFooter() != null)
+ {
+ GetFooter()->RemoveButtonAt(BUTTON_POSITION_LEFT);
+ GetFooter()->RemoveAllItems();
+ }
+ return;
+ }
+
+CATCH:
+ SendAppControlResult(APP_CTRL_RESULT_FAILED);
+ UiApp::GetInstance()->Terminate();
+}
+
+void
+EventDetailsForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
+{
+}
+
+void
+EventDetailsForm::OnActionPerformed(const Control& source, int actionId)
+{
+ result r = E_SUCCESS;
+ if (actionId == IDA_DETAIL_FORM_FOOTER_SUB_MENU)
+ {
+ __pContextMenuSub->SetShowState(true);
+ __pContextMenuSub->Show();
+ return;
+ }
+
+ switch (actionId)
+ {
+ case IDA_EVENT_DETAILS_FORM_EDIT:
+ {
+ if (__pPm->IsRecurring() == true)
+ {
+ ThreeButtonPopup::RequestThreeButtonPopup(THREE_BUTTON_POPUP_STYLE_EDIT, this);
+ }
+ else
+ {
+ LinkedList* pList = new (std::nothrow) LinkedList();
+ pList->Add(new (std::nothrow) CalEventInstance(*__pPm->GetEventInstance()));
+ pList->Add(new (std::nothrow) Boolean(true));
+
+ r = SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_EVENT_EDITOR,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT), pList);
+ if (r != E_SUCCESS)
+ {
+ pList->RemoveAll(true);
+ delete pList;
+ }
+ }
+ }
+ break;
+ case IDA_EVENT_DETAILS_FORM_DELETE:
+ {
+ if (__pPm->IsRecurring() == true)
+ {
+ ThreeButtonPopup::RequestThreeButtonPopup(THREE_BUTTON_POPUP_STYLE_DELETE, this);
+ }
+ else
+ {
+ TwoButtonPopup::RequestTwoButtonPopup(TWO_BUTTON_POPUP_STYLE_SINGLE_EVENT, this);
+ }
+ }
+ break;
+ case IDA_EVENT_DETAILS_FORM_SHARE:
+// SharePopup::RequestShare(__pPm->GetEventId());
+ __pSharePopup->RequestShare(__pPm->GetEventId());
+ break;
+ case IDA_EVENT_DETAILS_FORM_ADD_TO_CALENDAR:
+ r = __pPm->Update();
+ TryReturnVoid(r == E_SUCCESS, "[%s] Unable to add event.", GetErrorMessage(r));
+
+ if (GetFooter() != null)
+ {
+ GetFooter()->RemoveAllItems();
+ }
+ break;
+ default:
+ break;
+ }
+}
+
+TableViewItem*
+EventDetailsForm::CreateMainItemN(int itemWidth, const String& title, const DateTime& start, const DateTime& end)
+{
+ TableViewItem* pItem = new (std::nothrow) TableViewItem();
+ pItem->Construct(Dimension(itemWidth, H_MAIN_ITEM));
+ pItem->SetBackgroundColor(Color(COLOR_ITEM_BACKGROUND));
+ pItem->SetEnabled(false);
+
+ int y = Y_MAIN_ITEM_SUBJECT;
+ if (title.GetLength() > MAX_TITLE_TEXT)
+ {
+ EnrichedText titleText;
+ titleText.Construct(Dimension(itemWidth - W_MAIN_ITEM_SUBJECT_MARGIN, Integer::VALUE_MAX));
+ titleText.SetTextWrapStyle(TEXT_WRAP_WORD_WRAP);
+ titleText.SetTextAbbreviationEnabled(false);
+
+ TextElement* pElement = new (std::nothrow) TextElement();
+ pElement->Construct(title);
+ Font font;
+ font.Construct(FONT_STYLE_PLAIN, FONT_SIZE_DETAIL01);
+ pElement->SetFont(font);
+ titleText.Add(*pElement);
+ int actualHeight = titleText.GetTextExtent().height + H_MAIN_ITEM_SUBJECT_MARGIN;
+ titleText.RemoveAll(true);
+
+ Label* pLabelSubject = new (std::nothrow) Label();
+ pLabelSubject->Construct(Rectangle(0, 0, itemWidth, actualHeight), title);
+ pItem->AddControl(*pLabelSubject);
+ pLabelSubject->SetTextConfig(FONT_SIZE_DETAIL01, LABEL_TEXT_STYLE_NORMAL);
+ pLabelSubject->SetTextColor(Color(COLOR_DETAIL01));
+ pLabelSubject->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+ y = actualHeight;
+ }
+ else
+ {
+ Label* pLabelSubject = new (std::nothrow) Label();
+ pLabelSubject->Construct(Rectangle(0, y, itemWidth, H_MAIN_ITEM_SUBJECT), title);
+ pItem->AddControl(*pLabelSubject);
+ pLabelSubject->SetTextConfig(FONT_SIZE_DETAIL01, LABEL_TEXT_STYLE_NORMAL);
+ pLabelSubject->SetTextColor(Color(COLOR_DETAIL01));
+ pLabelSubject->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+ y += H_MAIN_ITEM_SUBJECT;
+ }
+
+ Bitmap* pIcon = ResourceManager::GetBitmapN(IDB_ICON_ALARM_64X64);
+ if (pIcon != null)
+ {
+ Label* pLabelIcon = new (std::nothrow) Label();
+ pLabelIcon->Construct(Rectangle(X_MAIN_ITEM_ALARM_ICON, y + Y_MAIN_ITEM_ALARM_ICON,
+ W_MAIN_ITEM_ALARM_ICON, H_MAIN_ITEM_ALARM_ICON), L"");
+ pItem->AddControl(*pLabelIcon);
+ pLabelIcon->SetBackgroundBitmap(*pIcon);
+ delete pIcon;
+ }
+
+ if (start.GetYear() == end.GetYear() && start.GetMonth() == end.GetMonth() && start.GetDay() == end.GetDay())
+ {
+ // for one day event
+ Label* pLabelAlarm01 = new (std::nothrow) Label();
+ pLabelAlarm01->Construct(Rectangle(X_MAIN_ITEM_ALARM, y + Y_MAIN_ITEM_ALARM01,
+ itemWidth - X_MAIN_ITEM_ALARM, H_MAIN_ITEM_ALARM01), __pPm->GetDateString(start));
+ pItem->AddControl(*pLabelAlarm01);
+ pLabelAlarm01->SetTextConfig(FONT_SIZE_DETAIL02, LABEL_TEXT_STYLE_NORMAL);
+ pLabelAlarm01->SetTextColor(Color(COLOR_DETAIL02));
+ pLabelAlarm01->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+
+ String range = __pPm->GetTimeString(start)
+ + ResourceManager::GetString(IDS_EVENT_DETAILS_TO) + __pPm->GetTimeString(end);
+ Label* pLabelAlarm02 = new (std::nothrow) Label();
+ pLabelAlarm02->Construct(Rectangle(X_MAIN_ITEM_ALARM, y + Y_MAIN_ITEM_ALARM02,
+ itemWidth - X_MAIN_ITEM_ALARM, H_MAIN_ITEM_ALARM02), range);
+ pItem->AddControl(*pLabelAlarm02);
+ pLabelAlarm02->SetTextConfig(FONT_SIZE_DETAIL03, LABEL_TEXT_STYLE_NORMAL);
+ pLabelAlarm02->SetTextColor(Color(COLOR_DETAIL03));
+ pLabelAlarm02->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+ }
+ else
+ {
+ Label* pLabelAlarm01 = new (std::nothrow) Label();
+ pLabelAlarm01->Construct(Rectangle(X_MAIN_ITEM_ALARM, y + Y_MAIN_ITEM_ALARM01,
+ itemWidth - X_MAIN_ITEM_ALARM, H_MAIN_ITEM_ALARM01), __pPm->GetDateTimeString(start));
+ pItem->AddControl(*pLabelAlarm01);
+ pLabelAlarm01->SetTextConfig(FONT_SIZE_DETAIL02, LABEL_TEXT_STYLE_NORMAL);
+ pLabelAlarm01->SetTextColor(Color(COLOR_DETAIL02));
+ pLabelAlarm01->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+
+ Label* pLabelAlarm02 = new (std::nothrow) Label();
+ pLabelAlarm02->Construct(Rectangle(X_MAIN_ITEM_ALARM, y + Y_MAIN_ITEM_ALARM02,
+ itemWidth - X_MAIN_ITEM_ALARM, H_MAIN_ITEM_ALARM02), __pPm->GetDateTimeString(end));
+ pItem->AddControl(*pLabelAlarm02);
+ pLabelAlarm02->SetTextConfig(FONT_SIZE_DETAIL02, LABEL_TEXT_STYLE_NORMAL);
+ pLabelAlarm02->SetTextColor(Color(COLOR_DETAIL02));
+ pLabelAlarm02->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+ }
+
+ y += Y_MAIN_ITEM_ALARM02 + H_MAIN_ITEM_ALARM02;
+ pItem->SetSize(itemWidth, y);
+
+ return pItem;
+}
+
+TableViewItem*
+EventDetailsForm::CreateDescriptionItemN(int itemWidth, const String& description)
+{
+ TableViewItem* pItem = new (std::nothrow) TableViewItem();
+ if (description.IsEmpty() != true)
+ {
+ EnrichedText text;
+ text.Construct(Dimension(itemWidth - W_DESCRIPTION_ITEM_MARGIN * 2, Integer::VALUE_MAX));
+ text.SetTextWrapStyle(TEXT_WRAP_WORD_WRAP);
+ text.SetTextAbbreviationEnabled(false);
+
+ TextElement* pElement = new (std::nothrow) TextElement();
+ pElement->Construct(description);
+ Font font;
+ font.Construct(FONT_STYLE_PLAIN, FONT_SIZE_DETAIL02);
+ pElement->SetFont(font);
+ text.Add(*pElement);
+
+ int actualHeight = text.GetTextExtent().height;
+ text.RemoveAll(true);
+
+ actualHeight += H_DESCRIPTION_ITEM_MARGIN * 2;
+ if (actualHeight < H_ITEM)
+ {
+ actualHeight = H_ITEM;
+ }
+
+ pItem->Construct(Dimension(itemWidth, actualHeight));
+ pItem->SetBackgroundColor(Color(COLOR_ITEM_BACKGROUND));
+ pItem->SetEnabled(false);
+
+ Label* pLabelIcon = new (std::nothrow) Label();
+ pLabelIcon->Construct(Rectangle(X_ITEM_ICON, Y_ITEM_ICON, W_ITEM_ICON, H_ITEM_ICON), L"");
+ Bitmap* pIcon = ResourceManager::GetBitmapN(IDB_LIST_ICON_DESCRIPTION);
+ if (pIcon != null)
+ {
+ pLabelIcon->SetBackgroundBitmap(*pIcon);
+ delete pIcon;
+ }
+ pItem->AddControl(*pLabelIcon);
+
+ Label* pLabelDescription = new (std::nothrow) Label();
+ pLabelDescription->Construct(Rectangle(X_ITEM_ICON + W_ITEM_ICON, 0, itemWidth - X_ITEM_ICON - W_ITEM_ICON, actualHeight), description);
+ pItem->AddControl(*pLabelDescription);
+ pLabelDescription->SetTextConfig(FONT_SIZE_DETAIL02, LABEL_TEXT_STYLE_NORMAL);
+ pLabelDescription->SetTextColor(Color(COLOR_DETAIL02));
+ pLabelDescription->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+ }
+ else
+ {
+ pItem->Construct(Dimension(itemWidth, 0));
+ }
+
+ return pItem;
+}
+
+TableViewItem*
+EventDetailsForm::CreateLocationItemN(int itemWidth, const String& location)
+{
+ TableViewItem* pItem = new (std::nothrow) TableViewItem();
+ if (location.IsEmpty() != true)
+ {
+ pItem->Construct(Dimension(itemWidth, H_ITEM));
+ pItem->SetBackgroundColor(Color(COLOR_ITEM_BACKGROUND));
+ pItem->SetEnabled(false);
+
+ Label* pLabelIcon = new (std::nothrow) Label();
+ pLabelIcon->Construct(Rectangle(X_ITEM_ICON, Y_ITEM_ICON, W_ITEM_ICON, H_ITEM_ICON), L"");
+ Bitmap* pIcon = ResourceManager::GetBitmapN(IDB_LIST_ICON_MAP);
+ if (pIcon != null)
+ {
+ pLabelIcon->SetBackgroundBitmap(*pIcon);
+ delete pIcon;
+ }
+ pItem->AddControl(*pLabelIcon);
+
+ Label* pLabelLocation = new (std::nothrow) Label();
+ pLabelLocation->Construct(Rectangle(X_ITEM_ICON + W_ITEM_ICON, 0, itemWidth - X_ITEM_ICON - W_ITEM_ICON, H_ITEM), location);
+ pLabelLocation->SetTextConfig(FONT_SIZE_DETAIL03, LABEL_TEXT_STYLE_NORMAL);
+ pLabelLocation->SetTextColor(Color(COLOR_DETAIL03));
+ pLabelLocation->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+ pItem->AddControl(*pLabelLocation);
+ }
+ else
+ {
+ pItem->Construct(Dimension(itemWidth, 0));
+ }
+ return pItem;
+}
+
+TableViewItem*
+EventDetailsForm::CreateReminderItemN(int itemWidth, const String& alarm)
+{
+ int countReminder = (__pPm->GetCountReminder() > 1) ? __pPm->GetCountReminder() : 1;
+ int height = (countReminder > 1) ? H_REMINDER_ITEM_REMINDER * countReminder + Y_REMINDER_ITEM_MARGIN : H_ITEM;
+
+ TableViewItem* pItem = new (std::nothrow) TableViewItem();
+ pItem->Construct(Dimension(itemWidth, height));
+ pItem->SetBackgroundColor(Color(COLOR_ITEM_BACKGROUND));
+ pItem->SetEnabled(false);
+
+ Label* pLabelReminder = new (std::nothrow) Label();
+ pLabelReminder->Construct(Rectangle(0, (height - H_REMINDER_ITEM_REMINDER) / 2, itemWidth, H_REMINDER_ITEM_REMINDER),
+ ResourceManager::GetString(IDS_CLD_BODY_REMINDER));
+ pItem->AddControl(*pLabelReminder);
+ pLabelReminder->SetTextConfig(FONT_SIZE_DETAIL03, LABEL_TEXT_STYLE_NORMAL);
+ pLabelReminder->SetTextColor(Color(COLOR_DETAIL03));
+ pLabelReminder->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+ pLabelReminder->SetTextVerticalAlignment(ALIGNMENT_MIDDLE);
+
+ int yPos = (height - (H_REMINDER_ITEM_REMINDER * countReminder)) / 2;
+ for (int i = 0; i < countReminder; i++)
+ {
+ Label* pLabelReminderContent = new (std::nothrow) Label();
+ pLabelReminderContent->Construct(Rectangle(0, yPos, itemWidth-16, H_REMINDER_ITEM_REMINDER), L"");
+ pLabelReminderContent->SetText(__pPm->GetReminderString(i));
+ pLabelReminderContent->SetTextConfig(FONT_SIZE_DETAIL02, LABEL_TEXT_STYLE_NORMAL);
+ pLabelReminderContent->SetTextColor(Color(COLOR_DETAIL02));
+ pLabelReminderContent->SetTextHorizontalAlignment(ALIGNMENT_RIGHT);
+ pLabelReminderContent->SetTextVerticalAlignment(ALIGNMENT_MIDDLE);
+ pItem->AddControl(*pLabelReminderContent);
+ yPos += H_REMINDER_ITEM_REMINDER;
+ }
+
+ return pItem;
+}
+
+TableViewItem*
+EventDetailsForm::CreateRepeatItemN(int itemWidth, const String& repeat)
+{
+ TableViewItem* pItem = new (std::nothrow) TableViewItem();
+ pItem->Construct(Dimension(itemWidth, H_ITEM));
+ pItem->SetBackgroundColor(Color(COLOR_ITEM_BACKGROUND));
+ pItem->SetEnabled(false);
+
+ Label* pLabelRepeat = new (std::nothrow) Label();
+ pLabelRepeat->Construct(Rectangle(0, Y_REMINDER_ITEM_REPEAT, itemWidth, H_REMINDER_ITEM_REPEAT),
+ ResourceManager::GetString(IDS_CLD_BODY_REPEAT));
+ pItem->AddControl(*pLabelRepeat);
+ pLabelRepeat->SetTextConfig(FONT_SIZE_DETAIL03, LABEL_TEXT_STYLE_NORMAL);
+ pLabelRepeat->SetTextColor(Color(COLOR_DETAIL03));
+ pLabelRepeat->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+ pLabelRepeat->SetTextVerticalAlignment(ALIGNMENT_MIDDLE);
+
+ Label* pLabelRepeatContent = new (std::nothrow) Label();
+ pLabelRepeatContent->Construct(Rectangle(0, Y_REMINDER_ITEM_REPEAT, itemWidth-16, H_REMINDER_ITEM_REPEAT), repeat);
+ pItem->AddControl(*pLabelRepeatContent);
+ pLabelRepeatContent->SetTextConfig(FONT_SIZE_DETAIL02, LABEL_TEXT_STYLE_NORMAL);
+ pLabelRepeatContent->SetTextColor(Color(COLOR_DETAIL02));
+ pLabelRepeatContent->SetTextHorizontalAlignment(ALIGNMENT_RIGHT);
+ pLabelRepeatContent->SetTextVerticalAlignment(ALIGNMENT_MIDDLE);
+ return pItem;
+}
+
+//TableViewItem*
+//EventDetailsForm::CreateSaveToItemN(int itemWidth, const String& calendarName, const Bitmap* pCalendarIcon)
+//{
+// TableViewItem* pItem = new (std::nothrow) TableViewItem();
+// pItem->Construct(Dimension(itemWidth, H_SAVE_TO_ITEM));
+// pItem->SetBackgroundColor(Color(COLOR_ITEM_BACKGROUND));
+// pItem->SetEnabled(false);
+//
+// Label* pLabelSaveTo = new (std::nothrow) Label();
+// pLabelSaveTo->Construct(Rectangle(0, Y_SAVE_TO_ITEM_SAVE_TO, itemWidth, H_SAVE_TO_ITEM_SAVE_TO),
+// ResourceManager::GetString(IDS_EVENT_DETAILS_SAVE_TO));
+// pItem->AddControl(*pLabelSaveTo);
+// pLabelSaveTo->SetTextConfig(FONT_SIZE_DETAIL02, LABEL_TEXT_STYLE_NORMAL);
+// pLabelSaveTo->SetTextColor(Color(COLOR_DETAIL02));
+// pLabelSaveTo->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+//
+// Label* pIconLabel = new (std::nothrow) Label();
+// pIconLabel->Construct(Rectangle(X_ITEM_SAVE_TO_ICON, Y_ITEM_SAVE_TO_ICON,
+// W_ITEM_SAVE_TO_ICON, H_ITEM_SAVE_TO_ICON), L"");
+// pItem->AddControl(*pIconLabel);
+// pIconLabel->SetBackgroundColor(Color(COLOR_SAVE_TO_ICON));
+// pIconLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+//
+// Label* pLabelCalendarName = new (std::nothrow) Label();
+// pLabelCalendarName->Construct(Rectangle(X_ITEM_SAVE_TO_ICON + W_ITEM_SAVE_TO_ICON, Y_SAVE_TO_ITEM_CALENDAR_NAME,
+// itemWidth - W_ITEM_SAVE_TO_ICON, H_SAVE_TO_ITEM_CALENDAR_NAME), calendarName);
+// pItem->AddControl(*pLabelCalendarName);
+// pLabelCalendarName->SetTextConfig(FONT_SIZE_DETAIL03, LABEL_TEXT_STYLE_NORMAL);
+// pLabelCalendarName->SetTextColor(Color(COLOR_DETAIL03));
+// pLabelCalendarName->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+//
+// return pItem;
+//}
+
+result
+EventDetailsForm::SendAppControlResult(AppCtrlResult appControlResult)
+{
+ CalendarApp* pApp = static_cast<CalendarApp*>(UiApp::GetInstance());
+ TryReturn(pApp != null, E_FAILURE, "[E_FAILURE] Unable to get app instance.");
+
+ result r = AppControlProviderManager::GetInstance()->SendAppControlResult(pApp->GetRequestId(), appControlResult, null);
+ AppLogDebugIf(r != E_SUCCESS, "[%s] Unable to return result.", GetErrorMessage(r));
+
+ return r;
+}
+
+void
+EventDetailsForm::InitializeSubMenu(void)
+{
+ __pContextMenuSub = new (std::nothrow) ContextMenu();
+ __pContextMenuSub->Construct(Point(0, 0), CONTEXT_MENU_STYLE_LIST);
+ __pContextMenuSub->AddActionEventListener(*this);
+
+ Rectangle bounds = GetFooter()->GetBounds();
+ __pContextMenuSub->SetAnchorPosition(Point(bounds.x + W_SUB_MENU_MARGIN, bounds.y + bounds.height / 2 - H_SUB_MENU_HALF_BUTTON));
+
+ __pContextMenuSub->AddItem(ResourceManager::GetString(IDS_CLD_SK3_DELETE), IDA_EVENT_DETAILS_FORM_DELETE);
+ __pContextMenuSub->AddItem(ResourceManager::GetString(IDS_COM_SK4_SHARE), IDA_EVENT_DETAILS_FORM_SHARE);
+ __pContextMenuSub->SetShowState(false);
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClEventEditorForm.cpp
+ * @brief This is the implementation file for the EventEditorForm class.
+ */
+
+#include <FApp.h>
+#include <FBase.h>
+#include <FSystem.h>
+#include "ClEventEditorForm.h"
+#include "ClEventPresentationModel.h"
+#include "ClResourceManager.h"
+#include "ClTypes.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Graphics;
+using namespace Tizen::Social;
+using namespace Tizen::System;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Animations;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+enum
+{
+ GROUP_TITLE_CONTENT = 0,
+ GROUP_DATE_SELECTOR,
+ GROUP_INFORMATION_CONTENT,
+ GROUP_ADDITIONAL_CONTENT,
+// GROUP_SAVE_TO,
+ GROUP_COUNT,
+
+ TITLE_CONTENT_ITEM_TITLE = 0,
+ TITLE_CONTENT_ITEM_COUNT,
+
+ FROM_DATE_SELECTOR_ITEM_START = 0,
+ TO_DATE_SELECTOR_ITEM_END,
+// DATE_SELECTOR_ITEM_TIME_ZONE = 0,
+ DATE_SELECTOR_ITEM_ALL_DAY_EVENT,
+ DATE_SELECTOR_ITEM_COUNT,
+
+ INFORMATION_CONTENT_ITEM_DESCRIPTION = 0,
+ INFORMATION_CONTENT_ITEM_LOCATION,
+ INFORMATION_CONTENT_ITEM_COUNT,
+
+ ADDITIONAL_CONTENT_ITEM_REMINDER = 0,
+ ADDITIONAL_CONTENT_ITEM_REMINDER2,
+ ADDITIONAL_CONTENT_ITEM_REMINDER3,
+ ADDITIONAL_CONTENT_ITEM_REMINDER4,
+ ADDITIONAL_CONTENT_ITEM_REMINDER5,
+ ADDITIONAL_CONTENT_ITEM_REPEAT,
+ ADDITIONAL_CONTENT_ITEM_COUNT,
+
+// SAVE_TO_ITEM_SAVE_TO = 0,
+// SAVE_TO_ITEM_COUNT
+};
+
+static const int IDA_EVENT_EDITOR_FORM_SAVE = 20001;
+static const int IDA_EVENT_EDITOR_FORM_CANCEL = 20002;
+static const int IDA_EVENT_EDITOR_FORM_ADD_REMINDER = 20100;
+static const int IDA_EVENT_EDITOR_FORM_REMOVE_REMINDER = 20101;
+static const int IDA_EVENT_EDITOR_FORM_REMOVE_REMINDER2 = 20102;
+static const int IDA_EVENT_EDITOR_FORM_REMOVE_REMINDER3 = 20103;
+static const int IDA_EVENT_EDITOR_FORM_REMOVE_REMINDER4 = 20104;
+static const int IDA_EVENT_EDITOR_FORM_REMOVE_REMINDER5 = 20105;
+
+static const int H_ITEM = 112;
+static const int H_ITEM_2LINE = 136;
+static const unsigned int COLOR_ITEM_BACKGROUND = Color32<232, 232, 232>::Value;
+static const unsigned int COLOR_BLANK_BACKGROUND = Color32<0, 0, 0, 0>::Value;
+static const int Y_ITEM_CONTENT01 = 22;
+static const int H_ITEM_CONTENT01 = 38;
+static const int Y_ITEM_CONTENT02 = 60;
+static const int H_ITEM_CONTENT02 = 54;
+static const int X_DATE_SELECTOR = 380;
+static const int Y_DATE_SELECTOR = 0;
+static const int X_ITEM_ICON = 20;
+static const int Y_ITEM_ICON = 19;
+static const int W_ITEM_ICON = 74;
+static const int H_ITEM_ICON = 74;
+static const int X_DESCRIPTION = 94;
+static const int Y_DESCRIPTION = 16;
+static const int H_DESCRIPTION = 80;
+static const int X_LOCATION = 94;
+static const int W_REMINDER_ADD_WIDTH = 100;
+static const int W_REMINDER_ADD_BUTTON = 74;
+static const int W_REMINDER_ADD_BUTTON_MARGIN = 94;
+static const int H_REMINDER_ADD_BUTTON = 74;
+static const int W_REMINDER_DELETE_BUTTON = 74;
+static const int W_REMINDER_DELETE_BUTTON_MARGIN = 184;
+static const int H_REMINDER_DELETE_BUTTON = 74;
+//static const int X_ITEM_SAVE_TO_ICON = 16;
+//static const int Y_ITEM_SAVE_TO_ICON = 68;
+//static const int W_ITEM_SAVE_TO_ICON = 32;
+//static const int H_ITEM_SAVE_TO_ICON = 32;
+//static const int FONT_SIZE_DETAIL01 = 56;
+//static const unsigned int COLOR_DETAIL01 = Color32<0, 0, 0>::Value;
+static const int FONT_SIZE_DETAIL02 = 32;
+static const unsigned int COLOR_DETAIL02 = Color32<128, 128, 128>::Value;
+static const int FONT_SIZE_DETAIL03 = 44;
+static const unsigned int COLOR_DETAIL03 = Color32<0, 0, 0>::Value;
+//static const unsigned int COLOR_DETAIL03_FOCUS = Color32<158, 187, 205>::Value;
+static const unsigned int COLOR_ADDITIONAL_CONTENT = Color32<59, 115, 182>::Value;
+
+static const int EXPANDABLE_EDIT_MAX_LINE = 10;
+static const int HALF_TIME_OF_DAY = 12;
+static const int HOUR_TO_HALF_MINUTE = 30;
+static const int HOUR_TO_MAX_MINUTE = 60;
+
+EventEditorForm::EventEditorForm(void)
+ : __pPm(null)
+ , __style(EDIT_EVENT_FORM_STYLE_CREATE)
+ , __pTableView(null)
+ , __pEditFieldTitle(null)
+ , __pEditFieldLocation(null)
+ , __pEditDateStartDate(null)
+ , __pEditTimeStartTime(null)
+ , __pEditDateEndDate(null)
+ , __pEditTimeEndTime(null)
+// , __pLabelTimeZone(null)
+ , __pLabelRepeat(null)
+ , __pTableViewItemNote(null)
+ , __pExpandableEditAreaNote(null)
+// , __pLabelSaveTo(null)
+ , __pButtonAddReminer(null)
+ , __pButtonDeleteReminder(null)
+{
+ memset(__pLabelReminder, 0, sizeof(Label*) * MAX_COUNT_OF_REMINDER);
+ memset(__pItemReminder, 0, sizeof(TableViewItem*) * MAX_COUNT_OF_REMINDER);
+}
+
+EventEditorForm::~EventEditorForm(void)
+{
+}
+
+result
+EventEditorForm::Initialize(void)
+{
+ return Construct(L"IDL_EVENT_EDITOR_FORM");
+}
+
+result
+EventEditorForm::OnInitializing(void)
+{
+ __pPm = new (std::nothrow) EventPresentationModel();
+ __pPm->Construct();
+
+ Footer* pFooter = GetFooter();
+ pFooter->AddActionEventListener(*this);
+
+ SetFormBackEventListener(this);
+
+ __pTableView = dynamic_cast<SectionTableView*>(GetControl(L"IDC_SECTIONTABLEVIEW"));
+ TryReturn(__pTableView != null, E_FAILURE, "[E_FAILURE] Unable to get sectiontableview.");
+ __pTableView->SetItemProvider(this);
+ __pTableView->AddSectionTableViewItemEventListener(*this);
+ __pTableView->SetGroupedLookEnabled(true);
+
+ return E_SUCCESS;
+}
+
+result
+EventEditorForm::OnTerminating(void)
+{
+ delete __pPm;
+ return E_SUCCESS;
+}
+
+void
+EventEditorForm::OnFormBackRequested(Form& source)
+{
+ SceneManager::GetInstance()->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT));
+}
+
+void
+EventEditorForm::OnExpandableEditAreaLineAdded(ExpandableEditArea& source, int newLineCount)
+{
+ __pTableView->RefreshItem(GROUP_INFORMATION_CONTENT, INFORMATION_CONTENT_ITEM_DESCRIPTION, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
+}
+
+void
+EventEditorForm::OnExpandableEditAreaLineRemoved(ExpandableEditArea& source, int newLineCount)
+{
+ __pTableView->RefreshItem(GROUP_INFORMATION_CONTENT, INFORMATION_CONTENT_ITEM_DESCRIPTION, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
+}
+
+int
+EventEditorForm::GetSectionCount(void)
+{
+ return GROUP_COUNT;
+}
+
+int
+EventEditorForm::GetItemCount(int sectionIndex)
+{
+ switch (sectionIndex)
+ {
+ case GROUP_TITLE_CONTENT:
+ return TITLE_CONTENT_ITEM_COUNT;
+ case GROUP_DATE_SELECTOR:
+ return DATE_SELECTOR_ITEM_COUNT;
+ case GROUP_INFORMATION_CONTENT:
+ return INFORMATION_CONTENT_ITEM_COUNT;
+ case GROUP_ADDITIONAL_CONTENT:
+ return ADDITIONAL_CONTENT_ITEM_COUNT;
+// case GROUP_SAVE_TO:
+// return SAVE_TO_ITEM_COUNT;
+ }
+
+ return 0;
+}
+
+TableViewItem*
+EventEditorForm::CreateItem(int sectionIndex, int itemIndex, int itemWidth)
+{
+ TableViewItem* pItem = null;
+ switch (sectionIndex)
+ {
+ case GROUP_TITLE_CONTENT:
+ switch (itemIndex)
+ {
+ case TITLE_CONTENT_ITEM_TITLE:
+ pItem = CreateTitleItemN(itemWidth, __pPm->GetSubject());
+ break;
+ }
+ break;
+ case GROUP_DATE_SELECTOR:
+ switch (itemIndex)
+ {
+ case FROM_DATE_SELECTOR_ITEM_START:
+ pItem = CreateStartTimeItemN(itemWidth, __pPm->GetStartTime(), __pPm->IsAllDayEvent());
+ break;
+ case TO_DATE_SELECTOR_ITEM_END:
+ pItem = CreateEndTimeItemN(itemWidth, __pPm->GetEndTime(), __pPm->IsAllDayEvent());
+ break;
+// case DATE_SELECTOR_ITEM_TIME_ZONE:
+// pItem = CreateTimeZoneTimeN(itemWidth, __pPm->GetTimezone());
+// break;
+ case DATE_SELECTOR_ITEM_ALL_DAY_EVENT:
+ pItem = CreateAllDayEventItemN(itemWidth);
+ break;
+ }
+ break;
+ case GROUP_INFORMATION_CONTENT:
+ switch (itemIndex)
+ {
+ case INFORMATION_CONTENT_ITEM_DESCRIPTION:
+ pItem = CreateDescriptionItemN(itemWidth, __pPm->GetDescription());
+ break;
+ case INFORMATION_CONTENT_ITEM_LOCATION:
+ pItem = CreateLocationItemN(itemWidth, __pPm->GetLocation());
+ break;
+ }
+ break;
+ case GROUP_ADDITIONAL_CONTENT:
+ switch (itemIndex)
+ {
+ case ADDITIONAL_CONTENT_ITEM_REMINDER:
+ pItem = CreateReminderItemN(itemWidth, H_ITEM_2LINE, __pPm->GetReminderString(itemIndex), itemIndex, true, true);
+ if (__pPm->GetCountReminder() <= 0)
+ {
+ __pButtonAddReminer->SetShowState(false);
+ __pButtonDeleteReminder->SetShowState(false);
+ }
+ else if (__pPm->GetCountReminder() >= 5)
+ {
+ __pButtonAddReminer->SetShowState(false);
+ }
+ break;
+ case ADDITIONAL_CONTENT_ITEM_REMINDER2:
+ // fall through
+ case ADDITIONAL_CONTENT_ITEM_REMINDER3:
+ // fall through
+ case ADDITIONAL_CONTENT_ITEM_REMINDER4:
+ // fall through
+ case ADDITIONAL_CONTENT_ITEM_REMINDER5:
+ if (itemIndex < __pPm->GetCountReminder())
+ {
+ pItem = CreateReminderItemN(itemWidth, H_ITEM_2LINE, __pPm->GetReminderString(itemIndex), itemIndex);
+ }
+ else
+ {
+ pItem = CreateReminderItemN(itemWidth, 0, __pPm->GetReminderString(itemIndex), itemIndex, false);
+ }
+ break;
+ case ADDITIONAL_CONTENT_ITEM_REPEAT:
+ pItem = CreateRepeatItemN(itemWidth, __pPm->GetRecurrenceString());
+ break;
+ }
+ break;
+// case GROUP_SAVE_TO:
+// if (itemIndex == SAVE_TO_ITEM_SAVE_TO)
+// {
+// const Bitmap* pIcon = __pPm->GetCalendarIconN();
+// pItem = CreateSaveToItemN(itemWidth, __pPm->GetCalendarName(), pIcon);
+// delete pIcon;
+// }
+// break;
+ }
+
+ return pItem;
+}
+
+bool
+EventEditorForm::DeleteItem(int sectionIndex, int itemIndex, TableViewItem* pItem)
+{
+ switch (sectionIndex)
+ {
+ case GROUP_TITLE_CONTENT:
+ switch (itemIndex)
+ {
+ case TITLE_CONTENT_ITEM_TITLE:
+ __pPm->SetSubject(__pEditFieldTitle->GetText());
+ __pEditFieldTitle = null;
+ break;
+ }
+ break;
+ case GROUP_DATE_SELECTOR:
+ switch (itemIndex)
+ {
+ case FROM_DATE_SELECTOR_ITEM_START:
+ if (__pPm->IsAllDayEvent() == true)
+ {
+ DateTime start;
+ start.SetValue(__pEditDateStartDate->GetYear(), __pEditDateStartDate->GetMonth(), __pEditDateStartDate->GetDay());
+ __pPm->SetStartTime(start);
+ }
+ else
+ {
+ DateTime start;
+ start.SetValue(__pEditDateStartDate->GetYear(), __pEditDateStartDate->GetMonth(), __pEditDateStartDate->GetDay(),
+ __pEditTimeStartTime->GetHour(), __pEditTimeStartTime->GetMinute());
+ __pPm->SetStartTime(start);
+ }
+ __pEditDateStartDate = null;
+ __pEditTimeStartTime = null;
+ break;
+ case TO_DATE_SELECTOR_ITEM_END:
+ if (__pPm->IsAllDayEvent() == true)
+ {
+ DateTime end;
+ end.SetValue(__pEditDateEndDate->GetYear(), __pEditDateEndDate->GetMonth(), __pEditDateEndDate->GetDay());
+ __pPm->SetEndTime(end);
+ }
+ else
+ {
+ DateTime end;
+ end.SetValue(__pEditDateEndDate->GetYear(), __pEditDateEndDate->GetMonth(), __pEditDateEndDate->GetDay(),
+ __pEditTimeEndTime->GetHour(), __pEditTimeEndTime->GetMinute());
+ __pPm->SetEndTime(end);
+ }
+ __pEditDateEndDate = null;
+ __pEditTimeEndTime = null;
+ break;
+// case DATE_SELECTOR_ITEM_TIME_ZONE:
+// __pLabelTimeZone = null;
+// break;
+ case DATE_SELECTOR_ITEM_ALL_DAY_EVENT:
+ __pPm->SetAllDayEvent(__pTableView->IsItemChecked(GROUP_DATE_SELECTOR, DATE_SELECTOR_ITEM_ALL_DAY_EVENT));
+ break;
+ }
+ break;
+ case GROUP_INFORMATION_CONTENT:
+ switch (itemIndex)
+ {
+ case INFORMATION_CONTENT_ITEM_LOCATION:
+ __pPm->SetLocation(__pEditFieldLocation->GetText());
+ __pEditFieldLocation = null;
+ break;
+ case INFORMATION_CONTENT_ITEM_DESCRIPTION:
+ __pPm->SetDescription(__pExpandableEditAreaNote->GetText());
+ __pExpandableEditAreaNote = null;
+ break;
+ }
+ break;
+ case GROUP_ADDITIONAL_CONTENT:
+ switch (itemIndex)
+ {
+ case ADDITIONAL_CONTENT_ITEM_REMINDER:
+ __pButtonAddReminer = null;
+ __pButtonDeleteReminder = null;
+ // fall through
+ case ADDITIONAL_CONTENT_ITEM_REMINDER2:
+ // fall through
+ case ADDITIONAL_CONTENT_ITEM_REMINDER3:
+ // fall through
+ case ADDITIONAL_CONTENT_ITEM_REMINDER4:
+ // fall through
+ case ADDITIONAL_CONTENT_ITEM_REMINDER5:
+ __pLabelReminder[itemIndex] = null;
+ __pItemReminder[itemIndex] = null;
+ break;
+ case ADDITIONAL_CONTENT_ITEM_REPEAT:
+ __pLabelRepeat = null;
+ break;
+ }
+ break;
+// case GROUP_SAVE_TO:
+// __pLabelSaveTo = null;
+// break;
+ default:
+ break;
+ }
+ delete pItem;
+ return true;
+}
+
+void
+EventEditorForm::UpdateItem(int sectionIndex, int itemIndex, TableViewItem* pItem)
+{
+ switch (sectionIndex)
+ {
+ case GROUP_DATE_SELECTOR:
+ if (itemIndex == FROM_DATE_SELECTOR_ITEM_START)
+ {
+ bool is24HourNotationEnabled = false;
+ SettingInfo::GetValue(KEY_SYSTEM_24_HOUR_NOTATION_ENABLED, is24HourNotationEnabled);
+ __pEditTimeStartTime->Set24HourNotationEnabled(is24HourNotationEnabled);
+ __pEditTimeStartTime->Invalidate(true);
+ }
+ else if (itemIndex == TO_DATE_SELECTOR_ITEM_END)
+ {
+ bool is24HourNotationEnabled = false;
+ SettingInfo::GetValue(KEY_SYSTEM_24_HOUR_NOTATION_ENABLED, is24HourNotationEnabled);
+ __pEditTimeEndTime->Set24HourNotationEnabled(is24HourNotationEnabled);
+ __pEditTimeEndTime->Invalidate(true);
+ }
+ break;
+ case GROUP_INFORMATION_CONTENT:
+ if (itemIndex == INFORMATION_CONTENT_ITEM_DESCRIPTION)
+ {
+ if (__pExpandableEditAreaNote->GetHeight() >= H_ITEM)
+ {
+ __pExpandableEditAreaNote->SetPosition(X_DESCRIPTION, 0);
+ pItem->SetSize(pItem->GetWidth(), __pExpandableEditAreaNote->GetHeight());
+ }
+ else
+ {
+ __pExpandableEditAreaNote->SetPosition(X_DESCRIPTION, (H_ITEM - __pExpandableEditAreaNote->GetHeight()) / 2);
+ pItem->SetSize(pItem->GetWidth(), H_ITEM);
+ }
+ pItem->Invalidate(true);
+ }
+ break;
+ case GROUP_ADDITIONAL_CONTENT:
+ switch (itemIndex)
+ {
+ case ADDITIONAL_CONTENT_ITEM_REMINDER:
+ __pLabelReminder[itemIndex]->SetText(__pPm->GetReminderString(itemIndex));
+ __pLabelReminder[itemIndex]->Invalidate(false);
+ if (__pPm->GetCountReminder() <= 0)
+ {
+ __pButtonAddReminer->SetShowState(false);
+ __pButtonDeleteReminder->SetShowState(false);
+ }
+ else if (__pPm->GetCountReminder() >= 5)
+ {
+ __pButtonAddReminer->SetShowState(false);
+ __pButtonDeleteReminder->SetShowState(true);
+ }
+ else
+ {
+ __pButtonAddReminer->SetShowState(true);
+ __pButtonDeleteReminder->SetShowState(true);
+ }
+ break;
+ case ADDITIONAL_CONTENT_ITEM_REMINDER2:
+ // fall through
+ case ADDITIONAL_CONTENT_ITEM_REMINDER3:
+ // fall through
+ case ADDITIONAL_CONTENT_ITEM_REMINDER4:
+ // fall through
+ case ADDITIONAL_CONTENT_ITEM_REMINDER5:
+ __pLabelReminder[itemIndex]->SetText(__pPm->GetReminderString(itemIndex));
+ __pLabelReminder[itemIndex]->Invalidate(false);
+ if (itemIndex < __pPm->GetCountReminder())
+ {
+ pItem->SetSize(pItem->GetWidth(), H_ITEM_2LINE);
+ pItem->SetShowState(true);
+ }
+ else
+ {
+ pItem->SetSize(pItem->GetWidth(), 0);
+ pItem->SetShowState(false);
+ }
+
+ // Reminder Max_Count is 5
+ if (__pPm->GetCountReminder() > 4)
+ {
+ __pButtonAddReminer->SetShowState(false);
+ }
+ else
+ {
+ __pButtonAddReminer->SetShowState(true);
+ }
+ break;
+ case ADDITIONAL_CONTENT_ITEM_REPEAT:
+ __pLabelRepeat->SetText(__pPm->GetRecurrenceString());
+ __pLabelRepeat->Invalidate(false);
+ break;
+ }
+ break;
+ }
+}
+
+String
+EventEditorForm::GetSectionHeader(int sectionIndex)
+{
+ return L"";
+}
+
+bool
+EventEditorForm::HasSectionHeader(int sectionIndex)
+{
+ return true;
+}
+
+String
+EventEditorForm::GetSectionFooter(int sectionIndex)
+{
+ return L"";
+}
+
+bool
+EventEditorForm::HasSectionFooter(int sectionIndex)
+{
+ return false;
+}
+
+int
+EventEditorForm::GetDefaultItemHeight(void)
+{
+ return 0;
+}
+
+void
+EventEditorForm::OnSectionTableViewItemStateChanged(SectionTableView& tableView, int sectionIndex, int itemIndex,
+ TableViewItem* pItem, TableViewItemStatus status)
+{
+ SetFocus();
+ LinkedList* pList = null;
+ switch (sectionIndex)
+ {
+ case GROUP_TITLE_CONTENT:
+ if (itemIndex == TITLE_CONTENT_ITEM_TITLE)
+ {
+ __pEditFieldTitle->SetFocus();
+ }
+ break;
+ case GROUP_DATE_SELECTOR:
+// if (itemIndex == DATE_SELECTOR_ITEM_TIME_ZONE)
+// {
+// // Call Settings application.
+// UpdatePm();
+// }
+ if (itemIndex == DATE_SELECTOR_ITEM_ALL_DAY_EVENT)
+ {
+ if (status == TABLE_VIEW_ITEM_STATUS_CHECKED)
+ {
+ __pPm->SetAllDayEvent(true);
+
+ if (__pEditTimeStartTime != null)
+ {
+ __pEditTimeStartTime->SetShowState(false);
+ }
+
+ if (__pEditTimeEndTime != null)
+ {
+ __pEditTimeEndTime->SetShowState(false);
+ }
+ }
+ else if (status == TABLE_VIEW_ITEM_STATUS_UNCHECKED)
+ {
+ __pPm->SetAllDayEvent(false);
+
+ if (__pEditTimeStartTime != null)
+ {
+ __pEditTimeStartTime->SetShowState(true);
+ }
+
+ if (__pEditTimeEndTime != null)
+ {
+ __pEditTimeEndTime->SetShowState(true);
+ }
+ }
+ }
+ break;
+ case GROUP_INFORMATION_CONTENT:
+ switch (itemIndex)
+ {
+ case INFORMATION_CONTENT_ITEM_DESCRIPTION:
+ __pExpandableEditAreaNote->SetFocus();
+ break;
+ case INFORMATION_CONTENT_ITEM_LOCATION:
+ __pEditFieldLocation->SetFocus();
+ break;
+ }
+ break;
+ case GROUP_ADDITIONAL_CONTENT:
+ // Call ReminderForm
+ switch (itemIndex)
+ {
+ case ADDITIONAL_CONTENT_ITEM_REMINDER:
+ // fall through
+ case ADDITIONAL_CONTENT_ITEM_REMINDER2:
+ // fall through
+ case ADDITIONAL_CONTENT_ITEM_REMINDER3:
+ // fall through
+ case ADDITIONAL_CONTENT_ITEM_REMINDER4:
+ // fall through
+ case ADDITIONAL_CONTENT_ITEM_REMINDER5:
+ if (__pPm->GetReminder(itemIndex) != null)
+ {
+ UpdatePm();
+ pList = new (std::nothrow) LinkedList();
+ pList->Add(new (std::nothrow) Reminder(*__pPm->GetReminder(itemIndex)));
+ pList->Add(new (std::nothrow) Integer(itemIndex));
+ }
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_REMINDER,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT), pList);
+ break;
+ }
+
+ if (itemIndex == ADDITIONAL_CONTENT_ITEM_REPEAT)
+ {
+ // Call RepeatForm
+ UpdatePm();
+ pList = new (std::nothrow) LinkedList();
+ pList->Add(new (std::nothrow) DateTime(__pPm->GetStartTime()));
+ if (__pPm->GetRecurrence() != null)
+ {
+ pList->Add(new (std::nothrow) Recurrence(*__pPm->GetRecurrence()));
+ }
+
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_REPEAT,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT), pList);
+ }
+ break;
+// case GROUP_SAVE_TO:
+// if (itemIndex == SAVE_TO_ITEM_SAVE_TO)
+// {
+// // Call SaveTo Popup.(Tizen 2.0 b1 RC1 APIs are not supported yet.)
+// UpdatePm();
+// }
+// break;
+ }
+}
+
+void
+EventEditorForm::OnSectionTableViewContextItemActivationStateChanged(SectionTableView& tableView, int sectionIndex, int itemIndex,
+ TableViewContextItem* pContextItem, bool activated)
+{
+}
+
+void
+EventEditorForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs)
+{
+ if (previousSceneId == IDSCN_REMINDER)
+ {
+ int index = 0;
+ if (pArgs != null)
+ {
+ Integer* pIndex = dynamic_cast<Integer*>(pArgs->GetAt(0));
+ if (pIndex != null)
+ {
+ index = pIndex->ToInt();
+ }
+ Reminder* pReminder = dynamic_cast<Reminder*>(pArgs->GetAt(1));
+ if (pReminder != null)
+ {
+ if (index < __pPm->GetCountReminder())
+ {
+ __pPm->SetReminderAt(*pReminder, index);
+ }
+ else
+ {
+ __pPm->AddReminder(*pReminder);
+ }
+ __pTableView->RefreshItem(GROUP_ADDITIONAL_CONTENT, index, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
+ }
+ else
+ {
+ __pPm->RemoveReminderAt(index);
+ __pTableView->UpdateTableView();
+ }
+ }
+ }
+ else if (previousSceneId == IDSCN_REPEAT)
+ {
+ Recurrence* pRecurrence = null;
+ if (pArgs != null)
+ {
+ pRecurrence = dynamic_cast<Recurrence*>(pArgs->GetAt(0));
+ }
+
+ result r = E_FAILURE;
+ if (pRecurrence == null)
+ {
+ r = __pPm->SetRecurrence(null);
+ }
+ else if (pRecurrence->GetCounts() > 0)
+ {
+ r = __pPm->SetRecurrence(pRecurrence);
+ }
+ else if (pRecurrence->GetUntil() != null)
+ {
+ DateTime untilDateChecker = __pPm->GetStartTime();
+ switch (pRecurrence->GetFrequency())
+ {
+ case FREQ_DAILY:
+ untilDateChecker.AddDays(pRecurrence->GetInterval());
+ break;
+ case FREQ_WEEKLY:
+ untilDateChecker.AddDays(7 * pRecurrence->GetInterval());
+ break;
+ case FREQ_MONTHLY:
+ untilDateChecker.AddMonths(pRecurrence->GetInterval());
+ break;
+ case FREQ_YEARLY:
+ untilDateChecker.AddYears(pRecurrence->GetInterval());
+ break;
+ }
+
+ if (*pRecurrence->GetUntil() >= untilDateChecker)
+ {
+ r = __pPm->SetRecurrence(pRecurrence);
+ }
+ }
+
+ if (r == E_SUCCESS)
+ {
+ __pTableView->RefreshItem(GROUP_ADDITIONAL_CONTENT, ADDITIONAL_CONTENT_ITEM_REPEAT, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
+ __pTableView->RefreshItem(GROUP_DATE_SELECTOR, FROM_DATE_SELECTOR_ITEM_START, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
+ __pTableView->RefreshItem(GROUP_DATE_SELECTOR, TO_DATE_SELECTOR_ITEM_END, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
+ }
+ else
+ {
+ MessageBox msgBox;
+ msgBox.Construct(L"", ResourceManager::GetString(IDS_CLD_BODY_REPEAT_WARNING), MSGBOX_STYLE_OK);
+ int modalResult;
+ msgBox.ShowAndWait(modalResult);
+ }
+ }
+ else
+ {
+ if (pArgs != null)
+ {
+ CalEventInstance* pEvent = dynamic_cast<CalEventInstance*>(pArgs->GetAt(0));
+ DateTime* pStartTime = null;
+
+ if (pEvent != null)
+ {
+ bool allEventEditing = true;
+ Boolean* pAllEventEditing = dynamic_cast<Boolean*>(pArgs->GetAt(1));
+ if (pAllEventEditing != null)
+ {
+ allEventEditing = pAllEventEditing->value;
+ }
+ __pPm->SetAllEventEditing(allEventEditing);
+
+ result r = E_SUCCESS;
+ if (allEventEditing == true)
+ {
+ r = __pPm->SetEventId(pEvent->GetOriginalEventId());
+ }
+ else
+ {
+ r = __pPm->SetEventInstance(*pEvent);
+ }
+ if (r != E_SUCCESS)
+ {
+ AppLog("[%s] Unable to get event.", GetErrorMessage(r));
+ SceneManager::GetInstance()->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_LEFT));
+ return;
+ }
+
+ SetStyle(EDIT_EVENT_FORM_STYLE_EDIT);
+ }
+
+ pStartTime = dynamic_cast<DateTime*>(pArgs->GetAt(0));
+ if (pStartTime != null)
+ {
+ DateTime end;
+ if (pStartTime->GetMinute() >= 0 && pStartTime->GetMinute() < HOUR_TO_HALF_MINUTE)
+ {
+ pStartTime->AddMinutes(HOUR_TO_HALF_MINUTE - pStartTime->GetMinute());
+ }
+ else if (pStartTime->GetMinute() >= HOUR_TO_HALF_MINUTE && pStartTime->GetMinute() < HOUR_TO_MAX_MINUTE)
+ {
+ pStartTime->AddMinutes(HOUR_TO_MAX_MINUTE - pStartTime->GetMinute());
+ }
+
+ end = *pStartTime;
+ end.AddHours(1);
+ __pPm->SetStartEndTime(*pStartTime, end);
+
+ SetStyle(EDIT_EVENT_FORM_STYLE_CREATE);
+ }
+ }
+ }
+
+ __pTableView->SetItemChecked(GROUP_DATE_SELECTOR, DATE_SELECTOR_ITEM_ALL_DAY_EVENT, __pPm->IsAllDayEvent());
+
+ if (pArgs != null)
+ {
+ pArgs->RemoveAll(true);
+ delete pArgs;
+ }
+}
+
+void
+EventEditorForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
+{
+}
+
+void
+EventEditorForm::OnActionPerformed(const Control& source, int actionId)
+{
+ Frame* pFrame = UiApp::GetInstance()->GetAppFrame()->GetFrame();
+ AppAssertf(pFrame != null, "[E_FAILURE] Unable to get frame.");
+ if (pFrame->GetFrameAnimator() != null && pFrame->GetFrameAnimator()->GetStatus() == ANIMATOR_STATUS_PLAYING)
+ {
+ // Ignore event, if animator's status is ANIMATOR_STATUS_PLAYING.
+ return;
+ }
+
+ switch (actionId)
+ {
+ case IDA_EVENT_EDITOR_FORM_SAVE:
+ UpdatePm();
+ if (__pPm->Update() == E_SUCCESS)
+ {
+ CalEventInstance* pEventInstance = __pPm->GetEventInstance();
+ if (pEventInstance != null)
+ {
+ LinkedList* pList = new (std::nothrow) LinkedList();
+ pList->Add(new (std::nothrow) CalEventInstance(*pEventInstance));
+ result r = SceneManager::GetInstance()->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT), pList);
+ if (r == E_SUCCESS)
+ {
+ __pPm->Commit();
+ }
+ else
+ {
+ __pPm->Rollback();
+ pList->RemoveAll(true);
+ delete pList;
+
+ MessageBox msgBox;
+ msgBox.Construct(L"", ResourceManager::GetString(IDS_COM_POP_SAVING_FAILED), MSGBOX_STYLE_OK);
+ int modalResult;
+ msgBox.ShowAndWait(modalResult);
+ }
+ }
+ else
+ {
+ if (SceneManager::GetInstance()->IsSceneAlive(IDSCN_EVENT_DETAILS) == true)
+ {
+ SceneId backSceneId = IDSCN_MONTH;
+ IListT<SceneId>* pHistory = SceneManager::GetInstance()->GetSceneHistoryN();
+ if (pHistory != null)
+ {
+ int index = 0;
+ if (pHistory->IndexOf(SceneId(IDSCN_EVENT_DETAILS), index) == E_SUCCESS)
+ {
+ pHistory->GetAt(index - 1, backSceneId);
+ }
+ }
+ pHistory->RemoveAll();
+ delete pHistory;
+
+ result r = SceneManager::GetInstance()->GoBackward(BackwardSceneTransition(backSceneId, SCENE_TRANSITION_ANIMATION_TYPE_RIGHT));
+ if (r == E_SUCCESS)
+ {
+ __pPm->Commit();
+ SceneManager::GetInstance()->DestroyScene(IDSCN_EVENT_DETAILS);
+ }
+ else
+ {
+ __pPm->Rollback();
+
+ MessageBox msgBox;
+ msgBox.Construct(L"", ResourceManager::GetString(IDS_COM_POP_SAVING_FAILED), MSGBOX_STYLE_OK);
+ int modalResult;
+ msgBox.ShowAndWait(modalResult);
+ }
+ }
+ else
+ {
+ result r = SceneManager::GetInstance()->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT));
+ if (r == E_SUCCESS)
+ {
+ __pPm->Commit();
+ }
+ else
+ {
+ __pPm->Rollback();
+
+ MessageBox msgBox;
+ msgBox.Construct(L"", ResourceManager::GetString(IDS_COM_POP_SAVING_FAILED), MSGBOX_STYLE_OK);
+ int modalResult;
+ msgBox.ShowAndWait(modalResult);
+ }
+ }
+ }
+ }
+ else
+ {
+ __pPm->Rollback();
+
+ MessageBox msgBox;
+ msgBox.Construct(L"", ResourceManager::GetString(IDS_COM_POP_SAVING_FAILED), MSGBOX_STYLE_OK);
+ int modalResult;
+ msgBox.ShowAndWait(modalResult);
+ }
+ break;
+ case IDA_EVENT_EDITOR_FORM_CANCEL:
+ SceneManager::GetInstance()->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT));
+ break;
+ case IDA_EVENT_EDITOR_FORM_ADD_REMINDER:
+ {
+ Reminder reminder;
+ __pPm->AddReminder(reminder);
+
+ __pTableView->RefreshItem(GROUP_ADDITIONAL_CONTENT, __pPm->GetCountReminder() - 1, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
+ break;
+ }
+ case IDA_EVENT_EDITOR_FORM_REMOVE_REMINDER:
+ // fall through
+ case IDA_EVENT_EDITOR_FORM_REMOVE_REMINDER2:
+ // fall through
+ case IDA_EVENT_EDITOR_FORM_REMOVE_REMINDER3:
+ // fall through
+ case IDA_EVENT_EDITOR_FORM_REMOVE_REMINDER4:
+ // fall through
+ case IDA_EVENT_EDITOR_FORM_REMOVE_REMINDER5:
+ {
+ int index = actionId - IDA_EVENT_EDITOR_FORM_REMOVE_REMINDER;
+ int count = __pPm->GetCountReminder();
+ __pPm->RemoveReminderAt(index);
+
+ while (index < count)
+ {
+ __pTableView->RefreshItem(GROUP_ADDITIONAL_CONTENT, index++, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
+ }
+ break;
+ }
+ }
+
+ SetFocus();
+}
+
+void
+EventEditorForm::OnDateChanged(const Control& source, int year, int month, int day)
+{
+ DateTime startTime = __pPm->GetStartTime();
+ DateTime endTime = __pPm->GetEndTime();
+ if (&source == __pEditDateStartDate)
+ {
+ startTime.SetValue(year, month, day, startTime.GetHour(), startTime.GetMinute());
+ endTime.AddSeconds(-endTime.GetSecond());
+ if (__pPm->IsAllDayEvent() == true)
+ {
+ if (startTime > endTime)
+ {
+ endTime = startTime;
+ }
+ }
+ else
+ {
+ if (startTime >= endTime)
+ {
+ endTime = startTime;
+ endTime.AddHours(1);
+ }
+ }
+ }
+ else if (&source == __pEditDateEndDate)
+ {
+ endTime.SetValue(year, month, day, endTime.GetHour(), endTime.GetMinute());
+ if (__pPm->IsAllDayEvent() == true)
+ {
+ if (startTime > endTime)
+ {
+ startTime = endTime;
+ }
+ }
+ else
+ {
+ if (startTime >= endTime)
+ {
+ startTime = endTime;
+ startTime.AddHours(-1);
+ }
+ }
+ }
+ __pPm->SetStartEndTime(startTime, endTime);
+
+ __pEditTimeStartTime->SetTime(__pPm->GetStartTime());
+ __pEditDateStartDate->SetDate(__pPm->GetStartTime());
+ __pEditTimeEndTime->SetTime(__pPm->GetEndTime());
+ __pEditDateEndDate->SetDate(__pPm->GetEndTime());
+ __pEditTimeStartTime->Invalidate(true);
+ __pEditDateStartDate->Invalidate(true);
+ __pEditTimeEndTime->Invalidate(true);
+ __pEditDateEndDate->Invalidate(true);
+}
+
+void
+EventEditorForm::OnDateChangeCanceled(const Control& source)
+{
+}
+
+void
+EventEditorForm::OnKeypadWillOpen(Control& source)
+{
+ ButtonItem saveItem;
+ saveItem.Construct(BUTTON_ITEM_STYLE_TEXT, IDA_EVENT_EDITOR_FORM_SAVE);
+ saveItem.SetText(ResourceManager::GetString(IDS_CLD_SK_SAVE));
+ GetHeader()->SetButton(BUTTON_POSITION_LEFT, saveItem);
+
+ ButtonItem cancelItem;
+ cancelItem.Construct(BUTTON_ITEM_STYLE_TEXT, IDA_EVENT_EDITOR_FORM_CANCEL);
+ cancelItem.SetText(ResourceManager::GetString(IDS_CLD_SK_CANCEL));
+ GetHeader()->SetButton(BUTTON_POSITION_RIGHT, cancelItem);
+
+ GetHeader()->AddActionEventListener(*this);
+ GetFooter()->SetShowState(false);
+ Invalidate(true);
+}
+
+void
+EventEditorForm::OnKeypadOpened(Control& source)
+{
+}
+
+void
+EventEditorForm::OnKeypadClosed(Control& source)
+{
+ GetHeader()->RemoveActionEventListener(*this);
+ GetHeader()->RemoveAllButtons();
+ GetFooter()->SetShowState(true);
+ Invalidate(true);
+}
+
+void
+EventEditorForm::OnKeypadActionPerformed(Control& source, KeypadAction keypadAction)
+{
+}
+
+void
+EventEditorForm::OnTimeChanged(const Control& source, int hour, int minute)
+{
+ DateTime startTime = __pPm->GetStartTime();
+ DateTime endTime = __pPm->GetEndTime();
+ if (&source == __pEditTimeStartTime)
+ {
+ startTime.SetValue(startTime.GetYear(), startTime.GetMonth(), startTime.GetDay(), hour, minute);
+ endTime.AddSeconds(-endTime.GetSecond());
+ if (startTime >= endTime)
+ {
+ endTime = startTime;
+ endTime.AddHours(1);
+ }
+ }
+ else if (&source == __pEditTimeEndTime)
+ {
+ endTime.SetValue(endTime.GetYear(), endTime.GetMonth(), endTime.GetDay(), hour, minute);
+ if (startTime >= endTime)
+ {
+ startTime = endTime;
+ startTime.AddHours(-1);
+ }
+ }
+ __pPm->SetStartEndTime(startTime, endTime);
+
+ __pEditTimeStartTime->SetTime(__pPm->GetStartTime());
+ __pEditDateStartDate->SetDate(__pPm->GetStartTime());
+ __pEditTimeEndTime->SetTime(__pPm->GetEndTime());
+ __pEditDateEndDate->SetDate(__pPm->GetEndTime());
+ __pEditTimeStartTime->Invalidate(true);
+ __pEditDateStartDate->Invalidate(true);
+ __pEditTimeEndTime->Invalidate(true);
+ __pEditDateEndDate->Invalidate(true);
+}
+
+void
+EventEditorForm::OnTimeChangeCanceled(const Control& source)
+{
+}
+
+TableViewItem*
+EventEditorForm::CreateTitleItemN(int itemWidth, const String& title)
+{
+ TableViewItem* pItem = new (std::nothrow) TableViewItem();
+
+ EditField* pTitle = null;
+ pItem->Construct(Dimension(itemWidth, H_ITEM));
+ pItem->SetBackgroundColor(Color(COLOR_ITEM_BACKGROUND), TABLE_VIEW_ITEM_DRAWING_STATUS_NORMAL);
+
+ pTitle = new (std::nothrow) EditField();
+ pTitle->Construct(Rectangle(0, 0, itemWidth, H_ITEM), EDIT_FIELD_STYLE_NORMAL, INPUT_STYLE_OVERLAY);
+
+ pItem->AddControl(*pTitle);
+ pItem->SetIndividualSelectionEnabled(pTitle, true);
+
+ pTitle->SetColor(EDIT_STATUS_NORMAL, Color(COLOR_BLANK_BACKGROUND));
+ pTitle->SetColor(EDIT_STATUS_PRESSED, Color(COLOR_BLANK_BACKGROUND));
+ pTitle->SetColor(EDIT_STATUS_HIGHLIGHTED, Color(COLOR_BLANK_BACKGROUND));
+ pTitle->SetText(title);
+ pTitle->SetGuideText(ResourceManager::GetString(IDS_CLD_BODY_TITLE));
+ pTitle->AddActionEventListener(*this);
+ pTitle->AddKeypadEventListener(*this);
+
+ __pEditFieldTitle = pTitle;
+
+ return pItem;
+}
+
+TableViewItem*
+EventEditorForm::CreateStartTimeItemN(int itemWidth, const DateTime& start, bool isAllDayEvent)
+{
+ TableViewItem* pItem = new (std::nothrow) TableViewItem();
+
+ EditDate* pStartDate = null;
+ EditTime* pStartTime = null;
+
+ pItem->Construct(Dimension(itemWidth, H_ITEM));
+ pItem->SetBackgroundColor(Color(COLOR_ITEM_BACKGROUND), TABLE_VIEW_ITEM_DRAWING_STATUS_NORMAL);
+ pItem->SetBackgroundColor(Color(COLOR_ITEM_BACKGROUND), TABLE_VIEW_ITEM_DRAWING_STATUS_PRESSED);
+ pItem->SetBackgroundColor(Color(COLOR_ITEM_BACKGROUND), TABLE_VIEW_ITEM_DRAWING_STATUS_HIGHLIGHTED);
+
+ pStartDate = new (std::nothrow) EditDate();
+ pStartDate->Construct(Point(0, Y_DATE_SELECTOR), ResourceManager::GetString(IDS_EVENT_EDITOR_FROM));
+
+ pItem->AddControl(*pStartDate);
+
+ pStartDate->SetDate(start);
+ pStartDate->AddDateChangeEventListener(*this);
+ pItem->SetIndividualSelectionEnabled(pStartDate, true);
+
+ __pEditDateStartDate = pStartDate;
+
+ pStartTime = new (std::nothrow) EditTime();
+ pStartTime->Construct(Point(X_DATE_SELECTOR, Y_DATE_SELECTOR), L" ");
+
+ pItem->AddControl(*pStartTime);
+
+ pStartTime->SetTime(start);
+ pStartTime->AddTimeChangeEventListener(*this);
+ pItem->SetIndividualSelectionEnabled(pStartTime, true);
+
+ bool is24HourNotationEnabled = false;
+ SettingInfo::GetValue(KEY_SYSTEM_24_HOUR_NOTATION_ENABLED, is24HourNotationEnabled);
+ pStartTime->Set24HourNotationEnabled(is24HourNotationEnabled);
+
+ __pEditTimeStartTime = pStartTime;
+
+ if (isAllDayEvent == true)
+ {
+ __pEditTimeStartTime->SetShowState(false);
+ }
+
+ return pItem;
+}
+
+TableViewItem*
+EventEditorForm::CreateEndTimeItemN(int itemWidth, const DateTime& end, bool isAllDayEvent)
+{
+ TableViewItem* pItem = new (std::nothrow) TableViewItem();
+
+ EditDate* pEndDate = null;
+ EditTime* pEndTime = null;
+
+ pItem->Construct(Dimension(itemWidth, H_ITEM));
+ pItem->SetBackgroundColor(Color(COLOR_ITEM_BACKGROUND), TABLE_VIEW_ITEM_DRAWING_STATUS_NORMAL);
+ pItem->SetBackgroundColor(Color(COLOR_ITEM_BACKGROUND), TABLE_VIEW_ITEM_DRAWING_STATUS_PRESSED);
+ pItem->SetBackgroundColor(Color(COLOR_ITEM_BACKGROUND), TABLE_VIEW_ITEM_DRAWING_STATUS_HIGHLIGHTED);
+
+ pEndDate = new (std::nothrow) EditDate();
+ pEndDate->Construct(Point(0, Y_DATE_SELECTOR), ResourceManager::GetString(IDS_EVENT_EDITOR_TO));
+
+ pItem->AddControl(*pEndDate);
+
+ pEndDate->SetDate(end);
+ pEndDate->AddDateChangeEventListener(*this);
+ pItem->SetIndividualSelectionEnabled(pEndDate, true);
+
+ __pEditDateEndDate = pEndDate;
+
+ pEndTime = new (std::nothrow) EditTime();
+ pEndTime->Construct(Point(X_DATE_SELECTOR, Y_DATE_SELECTOR), L" ");
+
+ pItem->AddControl(*pEndTime);
+
+ pEndTime->SetTime(end);
+ pEndTime->AddTimeChangeEventListener(*this);
+ pItem->SetIndividualSelectionEnabled(pEndTime, true);
+
+ bool is24HourNotationEnabled = false;
+ SettingInfo::GetValue(KEY_SYSTEM_24_HOUR_NOTATION_ENABLED, is24HourNotationEnabled);
+ pEndTime->Set24HourNotationEnabled(is24HourNotationEnabled);
+
+ __pEditTimeEndTime = pEndTime;
+
+ if (isAllDayEvent == true)
+ {
+ __pEditTimeEndTime->SetShowState(false);
+ }
+
+ return pItem;
+}
+
+//TableViewItem*
+//EventEditorForm::CreateTimeZoneTimeN(int itemWidth, const String& timeZone)
+//{
+// TableViewItem* pItem = new (std::nothrow) TableViewItem();
+//
+// Label* pLabel = null;
+// Label* pContentLabel = null;
+//
+// pItem->Construct(Dimension(itemWidth, H_ITEM_2LINE));
+// pItem->SetBackgroundColor(Color(COLOR_ITEM_BACKGROUND), TABLE_VIEW_ITEM_DRAWING_STATUS_NORMAL);
+//
+// pLabel = new (std::nothrow) Label();
+// pLabel->Construct(Rectangle(0, Y_ITEM_CONTENT01, itemWidth, H_ITEM_CONTENT01),
+// ResourceManager::GetString(IDS_EVENT_EDITOR_TIME_ZONE));
+//
+// pItem->AddControl(*pLabel);
+//
+// pLabel->SetTextColor(Color(COLOR_DETAIL02));
+// pLabel->SetTextConfig(FONT_SIZE_DETAIL02, LABEL_TEXT_STYLE_NORMAL);
+// pLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+//
+// pContentLabel = new (std::nothrow) Label();
+// pContentLabel->Construct(Rectangle(0, Y_ITEM_CONTENT02, itemWidth, H_ITEM_CONTENT02), timeZone);
+//
+// pItem->AddControl(*pContentLabel);
+//
+// pContentLabel->SetTextColor(Color(COLOR_ADDITIONAL_CONTENT));
+// pContentLabel->SetTextConfig(FONT_SIZE_DETAIL03, LABEL_TEXT_STYLE_NORMAL);
+// pContentLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+//
+// __pLabelTimeZone = pContentLabel;
+//
+// return pItem;
+//}
+
+TableViewItem*
+EventEditorForm::CreateAllDayEventItemN(int itemWidth)
+{
+ TableViewItem* pItem = new (std::nothrow) TableViewItem();
+
+ Label* pLabel = null;
+
+ pItem->Construct(Dimension(itemWidth, H_ITEM), TABLE_VIEW_ANNEX_STYLE_MARK);
+ pItem->SetBackgroundColor(Color(COLOR_ITEM_BACKGROUND), TABLE_VIEW_ITEM_DRAWING_STATUS_NORMAL);
+
+ pLabel = new (std::nothrow) Label();
+ pLabel->Construct(Rectangle(0, 0, itemWidth, H_ITEM), ResourceManager::GetString(IDS_EVENT_EDITOR_ALL_DAY_EVENT));
+ pLabel->SetTextColor(Color(COLOR_DETAIL03));
+ pLabel->SetTextConfig(FONT_SIZE_DETAIL03, LABEL_TEXT_STYLE_NORMAL);
+ pLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+
+ pItem->AddControl(*pLabel);
+
+ return pItem;
+}
+
+TableViewItem*
+EventEditorForm::CreateDescriptionItemN(int itemWidth, const String& description)
+{
+ TableViewItem* pItem = new (std::nothrow) TableViewItem();
+ pItem->Construct(Dimension(itemWidth, H_ITEM));
+ pItem->SetBackgroundColor(Color(COLOR_ITEM_BACKGROUND), TABLE_VIEW_ITEM_DRAWING_STATUS_NORMAL);
+
+ Label* pLabelIcon = new (std::nothrow) Label();
+ pLabelIcon->Construct(Rectangle(X_ITEM_ICON, Y_ITEM_ICON, W_ITEM_ICON, H_ITEM_ICON), L"");
+ Bitmap* pIcon = ResourceManager::GetBitmapN(IDB_LIST_ICON_DESCRIPTION);
+ if (pIcon != null)
+ {
+ pLabelIcon->SetBackgroundBitmap(*pIcon);
+ delete pIcon;
+ }
+ pItem->AddControl(*pLabelIcon);
+
+ __pExpandableEditAreaNote = new (std::nothrow) ExpandableEditArea();
+ __pExpandableEditAreaNote->Construct(Rectangle(X_DESCRIPTION, Y_DESCRIPTION, itemWidth - X_DESCRIPTION, H_DESCRIPTION),
+ EXPANDABLE_EDIT_AREA_STYLE_NORMAL, EXPANDABLE_EDIT_AREA_TITLE_STYLE_NONE, EXPANDABLE_EDIT_MAX_LINE);
+ __pExpandableEditAreaNote->SetBackgroundBitmap(EDIT_STATUS_NORMAL, *ResourceManager::GetBlankBitmap());
+ __pExpandableEditAreaNote->SetBackgroundBitmap(EDIT_STATUS_DISABLED, *ResourceManager::GetBlankBitmap());
+ __pExpandableEditAreaNote->SetBackgroundBitmap(EDIT_STATUS_HIGHLIGHTED, *ResourceManager::GetBlankBitmap());
+ __pExpandableEditAreaNote->SetBackgroundBitmap(EDIT_STATUS_PRESSED, *ResourceManager::GetBlankBitmap());
+ __pExpandableEditAreaNote->SetColor(EDIT_STATUS_NORMAL, Color(COLOR_BLANK_BACKGROUND));
+ __pExpandableEditAreaNote->SetColor(EDIT_STATUS_PRESSED, Color(COLOR_BLANK_BACKGROUND));
+ __pExpandableEditAreaNote->SetColor(EDIT_STATUS_HIGHLIGHTED, Color(COLOR_BLANK_BACKGROUND));
+ __pExpandableEditAreaNote->AddExpandableEditAreaEventListener(*this);
+ __pExpandableEditAreaNote->AddKeypadEventListener(*this);
+ __pExpandableEditAreaNote->SetText(description);
+ __pExpandableEditAreaNote->SetGuideText(ResourceManager::GetString(IDS_CLD_BODY_CREATE_DESCRIPTION));
+ pItem->AddControl(*__pExpandableEditAreaNote);
+ pItem->SetIndividualSelectionEnabled(__pExpandableEditAreaNote, true);
+
+ // Adjust text position
+ if (__pExpandableEditAreaNote->GetHeight() >= H_ITEM && __pExpandableEditAreaNote->GetY() != 0)
+ {
+ __pExpandableEditAreaNote->SetPosition(X_DESCRIPTION, 0);
+ }
+
+ return pItem;
+}
+
+TableViewItem*
+EventEditorForm::CreateLocationItemN(int itemWidth, const String& location)
+{
+ TableViewItem* pItem = new (std::nothrow) TableViewItem();
+ pItem->Construct(Dimension(itemWidth, H_ITEM));
+ pItem->SetBackgroundColor(Color(COLOR_ITEM_BACKGROUND), TABLE_VIEW_ITEM_DRAWING_STATUS_NORMAL);
+
+ Label* pLabelIcon = new (std::nothrow) Label();
+ pLabelIcon->Construct(Rectangle(X_ITEM_ICON, Y_ITEM_ICON, W_ITEM_ICON, H_ITEM_ICON), L"");
+ Bitmap* pIcon = ResourceManager::GetBitmapN(IDB_LIST_ICON_MAP);
+ if (pIcon != null)
+ {
+ pLabelIcon->SetBackgroundBitmap(*pIcon);
+ delete pIcon;
+ }
+ pItem->AddControl(*pLabelIcon);
+
+ EditField* pLocation = new (std::nothrow) EditField();
+ pLocation->Construct(Rectangle(X_LOCATION, 0, itemWidth - X_LOCATION, H_ITEM), EDIT_FIELD_STYLE_NORMAL, INPUT_STYLE_OVERLAY);
+
+ pItem->AddControl(*pLocation);
+ pItem->SetIndividualSelectionEnabled(pLocation, true);
+
+ pLocation->SetColor(EDIT_STATUS_NORMAL, Color(COLOR_BLANK_BACKGROUND));
+ pLocation->SetColor(EDIT_STATUS_PRESSED, Color(COLOR_BLANK_BACKGROUND));
+ pLocation->SetColor(EDIT_STATUS_HIGHLIGHTED, Color(COLOR_BLANK_BACKGROUND));
+ pLocation->SetText(location);
+ pLocation->SetGuideText(ResourceManager::GetString(IDS_CLD_BODY_LOCATION));
+ pLocation->AddActionEventListener(*this);
+ pLocation->AddKeypadEventListener(*this);
+
+ __pEditFieldLocation = pLocation;
+
+ return pItem;
+}
+
+TableViewItem*
+EventEditorForm::CreateReminderItemN(int itemWidth, int itemHeight, const String& reminder, int index, bool showItem, bool hasAddButton)
+{
+ TableViewItem* pItem = new (std::nothrow) TableViewItem();
+ pItem->Construct(Dimension(itemWidth, itemHeight));
+ pItem->SetBackgroundColor(Color(COLOR_ITEM_BACKGROUND), TABLE_VIEW_ITEM_DRAWING_STATUS_NORMAL);
+
+ Label* pLabel = new (std::nothrow) Label();
+ pLabel->Construct(Rectangle(0, Y_ITEM_CONTENT01, itemWidth - W_REMINDER_ADD_WIDTH, H_ITEM_CONTENT01),
+ ResourceManager::GetString(IDS_CLD_BODY_REMINDER));
+
+ pItem->AddControl(*pLabel);
+
+ pLabel->SetTextColor(Color(COLOR_DETAIL02));
+ pLabel->SetTextConfig(FONT_SIZE_DETAIL02, LABEL_TEXT_STYLE_NORMAL);
+ pLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+
+ Label* pContentLabel = new (std::nothrow) Label();
+ pContentLabel->Construct(Rectangle(0, Y_ITEM_CONTENT02, itemWidth - W_REMINDER_ADD_WIDTH, H_ITEM_CONTENT02), reminder);
+
+ pItem->AddControl(*pContentLabel);
+
+ pContentLabel->SetTextColor(Color(COLOR_ADDITIONAL_CONTENT));
+ pContentLabel->SetTextConfig(FONT_SIZE_DETAIL03, LABEL_TEXT_STYLE_NORMAL);
+ pContentLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+
+ // Add delete button
+ Button* pButtonDeleteReminder = new (std::nothrow) Button();
+ pButtonDeleteReminder->Construct(Rectangle(itemWidth - W_REMINDER_DELETE_BUTTON_MARGIN,
+ (H_ITEM_2LINE - H_REMINDER_DELETE_BUTTON) / 2, W_REMINDER_DELETE_BUTTON, H_REMINDER_DELETE_BUTTON), L"");
+
+ pItem->AddControl(*pButtonDeleteReminder);
+ pItem->SetIndividualSelectionEnabled(pButtonDeleteReminder, true);
+ pButtonDeleteReminder->SetActionId(IDA_EVENT_EDITOR_FORM_REMOVE_REMINDER + index);
+ pButtonDeleteReminder->AddActionEventListener(*this);
+ if (index == ADDITIONAL_CONTENT_ITEM_REMINDER)
+ {
+ __pButtonDeleteReminder = pButtonDeleteReminder;
+ }
+
+ Bitmap* pBitmapBgDelete = ResourceManager::GetBitmapN(IDB_CIRCLE_BUTTON_DELETE);
+ if (pBitmapBgDelete != null)
+ {
+ pButtonDeleteReminder->SetNormalBackgroundBitmap(*pBitmapBgDelete);
+ delete pBitmapBgDelete;
+ }
+ Bitmap* pBitmapBgDeletePressed = ResourceManager::GetBitmapN(IDB_CIRCLE_BUTTON_DELETE_PRESS);
+ if (pBitmapBgDeletePressed != null)
+ {
+ pButtonDeleteReminder->SetPressedBackgroundBitmap(*pBitmapBgDeletePressed);
+ pButtonDeleteReminder->SetHighlightedBackgroundBitmap(*pBitmapBgDeletePressed);
+ delete pBitmapBgDeletePressed;
+ }
+ Bitmap* pBitmapMinus = ResourceManager::GetBitmapN(IDB_BUTTON_MINUS);
+ if (pBitmapMinus != null)
+ {
+ pButtonDeleteReminder->SetNormalBitmap(Point(0, 0), *pBitmapMinus);
+ delete pBitmapMinus;
+ }
+ Bitmap* pBitmapMinusPressed = ResourceManager::GetBitmapN(IDB_BUTTON_MINUS_PRESS);
+ if (pBitmapMinusPressed != null)
+ {
+ pButtonDeleteReminder->SetPressedBitmap(Point(0, 0), *pBitmapMinusPressed);
+ delete pBitmapMinusPressed;
+ }
+
+ // Add add button
+ if (hasAddButton == true)
+ {
+ Button* pButtonAddReminder = new (std::nothrow) Button();
+ pButtonAddReminder->Construct(Rectangle(itemWidth - W_REMINDER_ADD_BUTTON_MARGIN,
+ (H_ITEM_2LINE - H_REMINDER_ADD_BUTTON) / 2, W_REMINDER_ADD_BUTTON, H_REMINDER_ADD_BUTTON), L"");
+
+ pItem->AddControl(*pButtonAddReminder);
+ pItem->SetIndividualSelectionEnabled(pButtonAddReminder, true);
+ pButtonAddReminder->SetActionId(IDA_EVENT_EDITOR_FORM_ADD_REMINDER);
+ pButtonAddReminder->AddActionEventListener(*this);
+ __pButtonAddReminer = pButtonAddReminder;
+
+ Bitmap* pBitmapBgButton = ResourceManager::GetBitmapN(IDB_CIRCLE_BUTTON);
+ if (pBitmapBgButton != null)
+ {
+ pButtonAddReminder->SetNormalBackgroundBitmap(*pBitmapBgButton);
+ delete pBitmapBgButton;
+ }
+ Bitmap* pBitmapBgButtonPressed = ResourceManager::GetBitmapN(IDB_CIRCLE_BUTTON_PRESS);
+ if (pBitmapBgButtonPressed != null)
+ {
+ pButtonAddReminder->SetPressedBackgroundBitmap(*pBitmapBgButtonPressed);
+ pButtonAddReminder->SetHighlightedBackgroundBitmap(*pBitmapBgButtonPressed);
+ delete pBitmapBgButtonPressed;
+ }
+ Bitmap* pBitmapPlus = ResourceManager::GetBitmapN(IDB_BUTTON_PLUS);
+ if (pBitmapPlus != null)
+ {
+ pButtonAddReminder->SetNormalBitmap(Point(0, 0), *pBitmapPlus);
+ delete pBitmapPlus;
+ }
+ Bitmap* pBitmapPlusPressed = ResourceManager::GetBitmapN(IDB_BUTTON_PLUS_PRESS);
+ if (pBitmapPlusPressed != null)
+ {
+ pButtonAddReminder->SetPressedBitmap(Point(0, 0), *pBitmapPlusPressed);
+ delete pBitmapPlusPressed;
+ }
+ }
+
+ pItem->SetShowState(showItem);
+ __pLabelReminder[index] = pContentLabel;
+ __pItemReminder[index] = pItem;
+
+ return pItem;
+}
+
+TableViewItem*
+EventEditorForm::CreateRepeatItemN(int itemWidth, const String& repeat)
+{
+ TableViewItem* pItem = new (std::nothrow) TableViewItem();
+
+ Label* pLabel = null;
+ Label* pContentLabel = null;
+
+ pItem->Construct(Dimension(itemWidth, H_ITEM_2LINE));
+ pItem->SetBackgroundColor(Color(COLOR_ITEM_BACKGROUND), TABLE_VIEW_ITEM_DRAWING_STATUS_NORMAL);
+
+ pLabel = new (std::nothrow) Label();
+ pLabel->Construct(Rectangle(0, Y_ITEM_CONTENT01, itemWidth, H_ITEM_CONTENT01),
+ ResourceManager::GetString(IDS_CLD_BODY_REPEAT));
+
+ pItem->AddControl(*pLabel);
+
+ pLabel->SetTextColor(Color(COLOR_DETAIL02));
+ pLabel->SetTextConfig(FONT_SIZE_DETAIL02, LABEL_TEXT_STYLE_NORMAL);
+ pLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+
+ pContentLabel = new (std::nothrow) Label();
+ pContentLabel->Construct(Rectangle(0, Y_ITEM_CONTENT02, itemWidth, H_ITEM_CONTENT02), repeat);
+
+ pItem->AddControl(*pContentLabel);
+
+ pContentLabel->SetTextColor(Color(COLOR_ADDITIONAL_CONTENT));
+ pContentLabel->SetTextConfig(FONT_SIZE_DETAIL03, LABEL_TEXT_STYLE_NORMAL);
+ pContentLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+
+ __pLabelRepeat = pContentLabel;
+
+ return pItem;
+}
+
+//TableViewItem*
+//EventEditorForm::CreateSaveToItemN(int itemWidth, const String& calendarName, const Bitmap* pCalendarIcon)
+//{
+// TableViewItem* pItem = new (std::nothrow) TableViewItem();
+//
+// Rectangle contentBounds(0, Y_ITEM_CONTENT02, itemWidth, H_ITEM_CONTENT02);
+// Label* pLabel = null;
+// Label* pIconLabel = null;
+// Label* pContentLabel = null;
+//
+// pItem->Construct(Dimension(itemWidth, H_ITEM_2LINE));
+// pItem->SetBackgroundColor(Color(COLOR_ITEM_BACKGROUND), TABLE_VIEW_ITEM_DRAWING_STATUS_NORMAL);
+//
+// pLabel = new (std::nothrow) Label();
+// pLabel->Construct(Rectangle(0, Y_ITEM_CONTENT01, itemWidth, H_ITEM_CONTENT01),
+// ResourceManager::GetString(IDS_EVENT_EDITOR_SAVE_TO));
+//
+// pItem->AddControl(*pLabel);
+//
+// pLabel->SetTextColor(Color(COLOR_DETAIL02));
+// pLabel->SetTextConfig(FONT_SIZE_DETAIL02, LABEL_TEXT_STYLE_NORMAL);
+// pLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+//
+// if (pCalendarIcon != null)
+// {
+// pIconLabel = new (std::nothrow) Label();
+// pIconLabel->Construct(Rectangle(0, Y_ITEM_CONTENT02, W_ITEM_SAVE_TO_ICON, H_ITEM_SAVE_TO_ICON), L"");
+//
+// pItem->AddControl(*pIconLabel);
+//
+// pIconLabel->SetBackgroundBitmap(*pCalendarIcon);
+// contentBounds.x += W_ITEM_SAVE_TO_ICON;
+// contentBounds.width -= W_ITEM_SAVE_TO_ICON;
+// }
+//
+// pIconLabel = new (std::nothrow) Label();
+// pIconLabel->Construct(Rectangle(X_ITEM_SAVE_TO_ICON, Y_ITEM_SAVE_TO_ICON, W_ITEM_SAVE_TO_ICON, H_ITEM_SAVE_TO_ICON), L"");
+// pItem->AddControl(*pIconLabel);
+// pIconLabel->SetBackgroundColor(COLOR_DETAIL04);
+// pIconLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+//
+// contentBounds.x += W_ITEM_SAVE_TO_ICON + X_ITEM_SAVE_TO_ICON;
+// contentBounds.width -= W_ITEM_SAVE_TO_ICON;
+//
+// pContentLabel = new (std::nothrow) Label();
+// pContentLabel->Construct(contentBounds, calendarName);
+//
+// pItem->AddControl(*pContentLabel);
+//
+// pContentLabel->SetTextColor(Color(COLOR_DETAIL03));
+// pContentLabel->SetTextConfig(FONT_SIZE_DETAIL03, LABEL_TEXT_STYLE_NORMAL);
+// pContentLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+//
+// __pLabelSaveTo = pContentLabel;
+//
+// return pItem;
+//}
+
+result
+EventEditorForm::SetStyle(EditEventFormStyle style)
+{
+ Header* pHeader = GetHeader();
+ if (style == EDIT_EVENT_FORM_STYLE_CREATE)
+ {
+ pHeader->SetTitleText(ResourceManager::GetString(IDS_CLD_HEADER_CREATE_EVENT));
+ }
+ else
+ {
+ pHeader->SetTitleText(ResourceManager::GetString(IDS_CLD_HEADER_EDIT_EVENT));
+ }
+ pHeader->Invalidate(false);
+
+ if (__pTableView != null)
+ {
+ __pTableView->UpdateTableView();
+ }
+
+ __style = style;
+
+ return E_SUCCESS;
+}
+
+//result
+//EventEditorForm::Update(void)
+//{
+// UpdatePm();
+//
+// if (__pPm->IsAllEventEditing() == false)
+// {
+// __pPm->RemoveEvent(false);
+// }
+//
+// __pPm->Update();
+//
+// return E_SUCCESS;
+//}
+
+result
+EventEditorForm::UpdatePm(void)
+{
+ if (__pEditFieldTitle != null)
+ {
+ __pPm->SetSubject(__pEditFieldTitle->GetText());
+ }
+
+ DateTime startTime = __pPm->GetStartTime();
+ DateTime endTime = __pPm->GetEndTime();
+ if (__pEditDateStartDate != null)
+ {
+ startTime.SetValue(__pEditDateStartDate->GetYear(), __pEditDateStartDate->GetMonth(), __pEditDateStartDate->GetDay(),
+ startTime.GetHour(), startTime.GetMinute());
+ }
+ if (__pEditTimeStartTime != null)
+ {
+ startTime.SetValue(startTime.GetYear(), startTime.GetMonth(), startTime.GetDay(),
+ __pEditTimeStartTime->GetHour(), __pEditTimeStartTime->GetMinute());
+ }
+ if (__pEditDateEndDate != null)
+ {
+ endTime.SetValue(__pEditDateEndDate->GetYear(), __pEditDateEndDate->GetMonth(), __pEditDateEndDate->GetDay(),
+ endTime.GetHour(), endTime.GetMinute());
+ }
+ if (__pEditTimeEndTime != null)
+ {
+ endTime.SetValue(endTime.GetYear(), endTime.GetMonth(), endTime.GetDay(),
+ __pEditTimeEndTime->GetHour(), __pEditTimeEndTime->GetMinute());
+ }
+ __pPm->SetStartEndTime(startTime, endTime);
+
+ if (__pExpandableEditAreaNote != null)
+ {
+ __pPm->SetDescription(__pExpandableEditAreaNote->GetText());
+ }
+
+ if (__pEditFieldLocation != null)
+ {
+ __pPm->SetLocation(__pEditFieldLocation->GetText());
+ }
+
+ return E_SUCCESS;
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClEventItem.cpp
+ * @brief This is the implementation file for the EventItem class.
+ */
+
+#include <new>
+#include "ClEventItem.h"
+#include "ClResourceManager.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Graphics;
+using namespace Tizen::Locales;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+
+enum EventItemElementId
+{
+ ID_EVENT_ITEM_ELEMENT_COLOR_BAR,
+ ID_EVENT_ITEM_ELEMENT_TITLE,
+ ID_EVENT_ITEM_ELEMENT_LOCATION,
+ ID_EVENT_ITEM_ELEMENT_DATE_RANGE,
+ ID_EVENT_ITEM_ELEMENT_REMINDER,
+ ID_EVENT_ITEM_ELEMENT_REPEAT,
+ ID_EVENT_ITEM_ELEMENT_FACEBOOK
+};
+
+static const int H_ITEM = 126;
+static const unsigned int COLOR_ITEM_BACKGROUND = Color32<248, 246, 239>::Value;
+static const int X_ITEM_MAIN_CONTENT = 26;
+static const int Y_ITEM_MAIN_CONTENT = 10;
+static const int H_ITEM_MAIN_CONTENT = 54;
+static const int FONT_SIZE_ITEM_MAIN_CONTENT = 44;
+static const unsigned int COLOR_ITEM_MAIN_CONTENT = Color32<0, 0, 0>::Value;
+static const unsigned int COLOR_ITEM_MAIN_CONTENT_FOCUS = Color32<255, 255, 255>::Value;
+static const unsigned int COLOR_ITEM_MAIN_CONTENT_SEARCH_FOCUS = Color32<42, 137, 194>::Value;
+static const int X_ITEM_SUB_CONTENT = 26;
+static const int Y_ITEM_SUB_CONTENT = 78;
+static const int W_ITEM_SUB_CONTENT_MARGIN = 26;
+static const int H_ITEM_SUB_CONTENT = 38;
+static const int FONT_SIZE_ITEM_SUB_CONTENT = 32;
+static const unsigned int COLOR_ITEM_SUB_CONTENT = Color32<128, 128, 128>::Value;
+static const unsigned int COLOR_ITEM_SUB_CONTENT_FOCUS = Color32<255, 255, 255>::Value;
+static const unsigned int COLOR_ITEM_SUB_CONTENT_SEARCH_FOCUS = Color32<42, 137, 194>::Value;
+static const int Y_EVENT_COLOR_BAR = 4;
+static const int W_EVENT_COLOR_BAR = 7;
+static const int H_EVENT_COLOR_BAR = 118;
+static const int W_ICON = 38;
+static const int H_ICON = 38;
+static const int W_RANGE_TO_LOCATION_MARGIN = 32;
+static const int LIST_ANNEX_MARGIN = 30;
+
+
+class TitleElement
+ : public virtual ICustomElement
+{
+public:
+ TitleElement(const String& title, const String& searchText);
+ virtual ~TitleElement(void);
+
+ virtual bool OnDraw(Canvas& canvas, const Rectangle& rect, ListItemDrawingStatus status);
+
+private:
+ const String& __title;
+ const String& __searchText;
+}; // TitleElement
+
+TitleElement::TitleElement(const String& title, const String& searchText)
+ : __title(title)
+ , __searchText(searchText)
+{
+}
+
+TitleElement::~TitleElement(void)
+{
+}
+
+bool
+TitleElement::OnDraw(Canvas& canvas, const Rectangle& rect, ListItemDrawingStatus status)
+{
+ EnrichedText text;
+ text.Construct(Dimension(rect.width, rect.height));
+ text.SetVerticalAlignment(TEXT_ALIGNMENT_MIDDLE);
+ text.SetHorizontalAlignment(TEXT_ALIGNMENT_LEFT);
+
+ String lowerTitle = __title;
+ lowerTitle.ToLower();
+ String lowerSearchText = __searchText;
+ lowerSearchText.ToLower();
+
+ Font font;
+ font.Construct(FONT_STYLE_PLAIN, FONT_SIZE_ITEM_MAIN_CONTENT);
+ if (status == LIST_ITEM_DRAWING_STATUS_PRESSED || status == LIST_ITEM_DRAWING_STATUS_HIGHLIGHTED)
+ {
+ TextElement* pTextElement = new (std::nothrow) TextElement();
+ pTextElement->Construct(__title);
+ pTextElement->SetFont(font);
+ pTextElement->SetTextColor(Color(COLOR_ITEM_MAIN_CONTENT_FOCUS));
+ text.Add(*pTextElement);
+ }
+ else if (__searchText.IsEmpty() == false && lowerTitle.Contains(lowerSearchText) == true)
+ {
+ int startIndex = 0;
+ lowerTitle.IndexOf(lowerSearchText, 0, startIndex);
+ String leftText;
+ __title.SubString(0, startIndex, leftText);
+ String searchText;
+ __title.SubString(startIndex, __searchText.GetLength(), searchText);
+ String rightText;
+ __title.SubString(startIndex + __searchText.GetLength(), rightText);
+
+ if (leftText.IsEmpty() == false)
+ {
+ TextElement* pTextElement = new (std::nothrow) TextElement();
+ pTextElement->Construct(leftText);
+ pTextElement->SetFont(font);
+ pTextElement->SetTextColor(Color(COLOR_ITEM_MAIN_CONTENT));
+ text.Add(*pTextElement);
+ }
+
+ if (searchText.IsEmpty() == false)
+ {
+ TextElement* pTextElement = new (std::nothrow) TextElement();
+ pTextElement->Construct(searchText);
+ pTextElement->SetFont(font);
+ pTextElement->SetTextColor(Color(COLOR_ITEM_MAIN_CONTENT_SEARCH_FOCUS));
+ text.Add(*pTextElement);
+ }
+
+ if (rightText.IsEmpty() == false)
+ {
+ TextElement* pTextElement = new (std::nothrow) TextElement();
+ pTextElement->Construct(rightText);
+ pTextElement->SetFont(font);
+ pTextElement->SetTextColor(Color(COLOR_ITEM_MAIN_CONTENT));
+ text.Add(*pTextElement);
+ }
+ }
+ else
+ {
+ TextElement* pTextElement = new (std::nothrow) TextElement();
+ pTextElement->Construct(__title);
+ pTextElement->SetFont(font);
+ pTextElement->SetTextColor(Color(COLOR_ITEM_MAIN_CONTENT));
+ text.Add(*pTextElement);
+ }
+
+ canvas.DrawText(Point(rect.x, rect.y), text);
+ text.RemoveAll(true);
+ return true;
+}
+
+class LocationElement
+ : public virtual ICustomElement
+{
+public:
+ LocationElement(const String& location, const String& searchText);
+ virtual ~LocationElement(void);
+
+ virtual bool OnDraw(Canvas& canvas, const Rectangle& rect, ListItemDrawingStatus status);
+
+private:
+ const String& __location;
+ const String& __searchText;
+}; // TitleElement
+
+LocationElement::LocationElement(const String& location, const String& searchText)
+ : __location(location)
+ , __searchText(searchText)
+{
+}
+
+LocationElement::~LocationElement(void)
+{
+}
+
+bool
+LocationElement::OnDraw(Canvas& canvas, const Rectangle& rect, ListItemDrawingStatus status)
+{
+ EnrichedText text;
+ text.Construct(Dimension(rect.width, rect.height));
+ text.SetVerticalAlignment(TEXT_ALIGNMENT_MIDDLE);
+ text.SetHorizontalAlignment(TEXT_ALIGNMENT_RIGHT);
+
+ String lowerLocation = __location;
+ lowerLocation.ToLower();
+ String lowerSearchText = __searchText;
+ lowerSearchText.ToLower();
+
+ Font font;
+ font.Construct(FONT_STYLE_PLAIN, FONT_SIZE_ITEM_SUB_CONTENT);
+ if (status == LIST_ITEM_DRAWING_STATUS_PRESSED || status == LIST_ITEM_DRAWING_STATUS_HIGHLIGHTED)
+ {
+ TextElement* pTextElement = new (std::nothrow) TextElement();
+ pTextElement->Construct(__location);
+ pTextElement->SetFont(font);
+ pTextElement->SetTextColor(Color(COLOR_ITEM_SUB_CONTENT_FOCUS));
+ text.Add(*pTextElement);
+ }
+ else if (__searchText.IsEmpty() == false && lowerLocation.Contains(lowerSearchText) == true)
+ {
+ int startIndex = 0;
+ lowerLocation.IndexOf(lowerSearchText, 0, startIndex);
+ String leftText;
+ __location.SubString(0, startIndex, leftText);
+ String searchText;
+ __location.SubString(startIndex, __searchText.GetLength(), searchText);
+ String rightText;
+ __location.SubString(startIndex + __searchText.GetLength(), rightText);
+
+ if (leftText.IsEmpty() == false)
+ {
+ TextElement* pTextElement = new (std::nothrow) TextElement();
+ pTextElement->Construct(leftText);
+ pTextElement->SetFont(font);
+ pTextElement->SetTextColor(Color(COLOR_ITEM_SUB_CONTENT));
+ text.Add(*pTextElement);
+ }
+
+ if (searchText.IsEmpty() == false)
+ {
+ TextElement* pTextElement = new (std::nothrow) TextElement();
+ pTextElement->Construct(searchText);
+ pTextElement->SetFont(font);
+ pTextElement->SetTextColor(Color(COLOR_ITEM_SUB_CONTENT_SEARCH_FOCUS));
+ text.Add(*pTextElement);
+ }
+
+ if (rightText.IsEmpty() == false)
+ {
+ TextElement* pTextElement = new (std::nothrow) TextElement();
+ pTextElement->Construct(rightText);
+ pTextElement->SetFont(font);
+ pTextElement->SetTextColor(Color(COLOR_ITEM_SUB_CONTENT));
+ text.Add(*pTextElement);
+ }
+ }
+ else
+ {
+ TextElement* pTextElement = new (std::nothrow) TextElement();
+ pTextElement->Construct(__location);
+ pTextElement->SetFont(font);
+ pTextElement->SetTextColor(Color(COLOR_ITEM_SUB_CONTENT));
+ text.Add(*pTextElement);
+ }
+
+ canvas.DrawText(Point(rect.x, rect.y), text);
+ text.RemoveAll(true);
+ return true;
+}
+
+
+EventItem::EventItem(void)
+ : __style(EVENT_ITEM_STYLE_NORMAL)
+ , __width(0)
+ , __pTitleElement(null)
+ , __pLocationElement(null)
+ , __hasReminder(false)
+ , __isRepeated(false)
+ , __isFacebook(false)
+{
+}
+
+EventItem::~EventItem(void)
+{
+ delete __pTitleElement;
+ delete __pLocationElement;
+}
+
+const Color
+EventItem::GetCalendarColor(void) const
+{
+ return __calendarColor;
+}
+
+const String&
+EventItem::GetDateRangeText(void) const
+{
+ return __range;
+}
+
+const String&
+EventItem::GetLocation(void) const
+{
+ return __location;
+}
+
+const String&
+EventItem::GetSearchText(void) const
+{
+ return __searchText;
+}
+
+const String&
+EventItem::GetTitle(void) const
+{
+ return __title;
+}
+
+bool
+EventItem::HasReminder(void) const
+{
+ return __hasReminder;
+}
+
+void
+EventItem::Initialize(EventItemStyle style, int width)
+{
+ if (style == EVENT_ITEM_STYLE_NORMAL)
+ {
+ Construct(Dimension(width, H_ITEM), LIST_ANNEX_STYLE_NORMAL);
+ __width = width;
+ }
+ else
+ {
+ Construct(Dimension(width, H_ITEM), LIST_ANNEX_STYLE_MARK);
+ __width = width - GetAnnexWidth(LIST_ANNEX_STYLE_MARK) - LIST_ANNEX_MARGIN;
+ }
+ // TBD : Background color of item must be transparent.(will be in SDK 2.1)
+ SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL, Color(COLOR_ITEM_BACKGROUND));
+ __style = style;
+}
+
+bool
+EventItem::IsRepeatedEvent(void) const
+{
+ return __isRepeated;
+}
+
+bool
+EventItem::IsFacebookEvent(void) const
+{
+ return __isFacebook;
+}
+
+void
+EventItem::SetAllDayEvent(void)
+{
+ SetDateRangeText(ResourceManager::GetString(IDS_CLD_BODY_ALL_DAY));
+}
+
+void
+EventItem::SetCalendarColor(const Color& calendarColor)
+{
+ __calendarColor = calendarColor;
+}
+
+void
+EventItem::SetDateRange(const DateTime& start, const DateTime& end, const DateTime& current, DateTimeFormatter* pTimeFormatter)
+{
+ bool deleteRequired = false;
+ if (pTimeFormatter == null)
+ {
+ pTimeFormatter = ResourceManager::CreateTimeFormatterN();
+ deleteRequired = true;
+ }
+ String range = ResourceManager::GetString(IDS_MONTH_VIEW_LIST_TO);
+
+ DateTime dayStart = current;
+ dayStart.SetValue(dayStart.GetYear(), dayStart.GetMonth(), dayStart.GetDay());
+ DateTime dayEnd = dayStart;
+ dayEnd.AddDays(1);
+
+ if (start < dayStart && end > dayEnd)
+ {
+ range = ResourceManager::GetString(IDS_CLD_BODY_ALL_DAY);
+ }
+ else
+ {
+ if (start >= dayStart)
+ {
+ String startString;
+ pTimeFormatter->Format(start, startString);
+ range.Insert(startString, 0);
+ }
+ if (end <= dayEnd)
+ {
+ String endString;
+ pTimeFormatter->Format(end, endString);
+ range.Append(endString);
+ }
+ }
+
+ if (deleteRequired == true)
+ {
+ delete pTimeFormatter;
+ }
+ SetDateRangeText(range);
+}
+
+void
+EventItem::SetDateRangeText(const String& range)
+{
+ __range = range;
+}
+
+void
+EventItem::SetFacebookEvent(bool isFacebookEvent)
+{
+ __isFacebook = isFacebookEvent;
+}
+
+void
+EventItem::SetLocation(const String& location)
+{
+ __location = location;
+}
+
+void
+EventItem::SetReminder(bool hasReminder)
+{
+ __hasReminder = hasReminder;
+}
+
+void
+EventItem::SetRepeat(bool isRepeated)
+{
+ __isRepeated = isRepeated;
+}
+
+void
+EventItem::SetSearchText(const String& searchText)
+{
+ __searchText = searchText;
+}
+
+void
+EventItem::SetTitle(const String& title)
+{
+ __title = title;
+}
+
+void
+EventItem::UpdateElements(void)
+{
+ RemoveAllElements();
+
+ Bitmap* pBitmap = new (std::nothrow) Bitmap();
+ pBitmap->Construct(Dimension(W_EVENT_COLOR_BAR, H_EVENT_COLOR_BAR), BITMAP_PIXEL_FORMAT_ARGB8888);
+
+ BufferInfo bufferinfo;
+ pBitmap->Lock(bufferinfo);
+
+ Canvas canvas;
+ canvas.Construct(bufferinfo);
+ canvas.SetBackgroundColor(__calendarColor);
+ canvas.Clear();
+ pBitmap->Unlock();
+
+ AddElement(Rectangle(0, Y_EVENT_COLOR_BAR, W_EVENT_COLOR_BAR, H_EVENT_COLOR_BAR), ID_EVENT_ITEM_ELEMENT_COLOR_BAR, *pBitmap);
+ delete pBitmap;
+
+ int titleWidth = __width - X_ITEM_MAIN_CONTENT;
+ if (__isFacebook == true)
+ {
+ Bitmap* pBitmap = ResourceManager::GetBitmapN(IDB_LIST_ICON_FACEBOOK);
+ if (pBitmap != null)
+ {
+ AddElement(Rectangle(titleWidth - W_ICON, Y_ITEM_MAIN_CONTENT + ((H_ITEM_MAIN_CONTENT - H_ICON) / 2), W_ICON, H_ICON),
+ ID_EVENT_ITEM_ELEMENT_FACEBOOK, *pBitmap);
+ titleWidth -= X_ITEM_MAIN_CONTENT + W_ICON;
+ delete pBitmap;
+ }
+ }
+
+ if (__hasReminder == true)
+ {
+ Bitmap* pBitmap = ResourceManager::GetBitmapN(IDB_LIST_ICON_REMINDER);
+ if (pBitmap != null)
+ {
+ AddElement(Rectangle(titleWidth - W_ICON, Y_ITEM_MAIN_CONTENT + ((H_ITEM_MAIN_CONTENT - H_ICON) / 2), W_ICON, H_ICON),
+ ID_EVENT_ITEM_ELEMENT_REMINDER, *pBitmap);
+ titleWidth -= X_ITEM_MAIN_CONTENT + W_ICON;
+ delete pBitmap;
+ }
+ }
+
+ if (__isRepeated == true)
+ {
+ Bitmap* pBitmap = ResourceManager::GetBitmapN(IDB_LIST_ICON_REPEAT);
+ if (pBitmap != null)
+ {
+ AddElement(Rectangle(titleWidth - W_ICON, Y_ITEM_MAIN_CONTENT + ((H_ITEM_MAIN_CONTENT - H_ICON) / 2), W_ICON, H_ICON),
+ ID_EVENT_ITEM_ELEMENT_REPEAT, *pBitmap);
+ titleWidth -= X_ITEM_MAIN_CONTENT + W_ICON;
+ delete pBitmap;
+ }
+ }
+
+ if (__title.IsEmpty() == false)
+ {
+ delete __pTitleElement;
+ __pTitleElement = new (std::nothrow) TitleElement(__title, __searchText);
+ AddElement(Rectangle(X_ITEM_MAIN_CONTENT, Y_ITEM_MAIN_CONTENT, titleWidth, H_ITEM_MAIN_CONTENT),
+ ID_EVENT_ITEM_ELEMENT_TITLE, *__pTitleElement);
+ }
+
+ if (__location.IsEmpty() == true)
+ {
+ if (__range.IsEmpty() == false)
+ {
+ int rangeWidth = __width - X_ITEM_SUB_CONTENT - W_ITEM_SUB_CONTENT_MARGIN;
+ AddElement(Rectangle(X_ITEM_SUB_CONTENT, Y_ITEM_SUB_CONTENT, rangeWidth, H_ITEM_SUB_CONTENT),
+ ID_EVENT_ITEM_ELEMENT_DATE_RANGE, __range, FONT_SIZE_ITEM_SUB_CONTENT,
+ Color(COLOR_ITEM_SUB_CONTENT), Color(COLOR_ITEM_SUB_CONTENT_FOCUS), Color(COLOR_ITEM_SUB_CONTENT_FOCUS));
+ }
+ return;
+ }
+
+ Font font;
+ font.Construct(FONT_STYLE_PLAIN, FONT_SIZE_ITEM_SUB_CONTENT);
+
+ Dimension extent;
+ int rangeWidth = 0;
+ if (__range.IsEmpty() == false)
+ {
+ Dimension extent;
+ Font font;
+ font.Construct(FONT_STYLE_PLAIN, FONT_SIZE_ITEM_SUB_CONTENT);
+ font.GetTextExtent(__range, __range.GetLength(), extent);
+ rangeWidth = extent.width;
+ int maxWidth = __width - X_ITEM_SUB_CONTENT - W_ITEM_SUB_CONTENT_MARGIN;
+ if (rangeWidth > maxWidth)
+ {
+ rangeWidth = maxWidth;
+ }
+
+ AddElement(Rectangle(X_ITEM_SUB_CONTENT, Y_ITEM_SUB_CONTENT, rangeWidth, H_ITEM_SUB_CONTENT),
+ ID_EVENT_ITEM_ELEMENT_DATE_RANGE, __range, FONT_SIZE_ITEM_SUB_CONTENT,
+ Color(COLOR_ITEM_SUB_CONTENT), Color(COLOR_ITEM_SUB_CONTENT_FOCUS), Color(COLOR_ITEM_SUB_CONTENT_FOCUS));
+ }
+
+ int locationWidth = __width - X_ITEM_SUB_CONTENT - W_ITEM_SUB_CONTENT_MARGIN - W_RANGE_TO_LOCATION_MARGIN - rangeWidth;
+ if (__location.IsEmpty() == false && locationWidth > 0)
+ {
+ delete __pLocationElement;
+ __pLocationElement = new (std::nothrow) LocationElement(__location, __searchText);
+ AddElement(Rectangle(__width - locationWidth - W_ITEM_SUB_CONTENT_MARGIN, Y_ITEM_SUB_CONTENT, locationWidth, H_ITEM_SUB_CONTENT),
+ ID_EVENT_ITEM_ELEMENT_LOCATION, *__pLocationElement);
+
+// Dimension extent;
+// Font font;
+// font.Construct(FONT_STYLE_PLAIN, FONT_SIZE_ITEM_SUB_CONTENT);
+// font.GetTextExtent(__location, __location.GetLength(), extent);
+// if (locationWidth > extent.width)
+// {
+// locationWidth = extent.width;
+// }
+//
+// AddElement(Rectangle(__width - locationWidth - W_ITEM_SUB_CONTENT_MARGIN, Y_ITEM_SUB_CONTENT, locationWidth, H_ITEM_SUB_CONTENT),
+// ID_EVENT_ITEM_ELEMENT_LOCATION, __location, FONT_SIZE_ITEM_SUB_CONTENT,
+// Color(COLOR_ITEM_SUB_CONTENT), Color(COLOR_ITEM_SUB_CONTENT_FOCUS), Color(COLOR_ITEM_SUB_CONTENT_FOCUS));
+// SetElementTextHorizontalAlignment(ID_EVENT_ITEM_ELEMENT_LOCATION, ALIGNMENT_RIGHT);
+ }
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClEventListPresentationModel.cpp
+ * @brief This is the implementation file for the EventListPresentationModel class.
+ */
+
+#include <cstdlib>
+#include <new>
+#include <FSystem.h>
+#include "ClCalendarApp.h"
+#include "ClEventListPresentationModel.h"
+#include "ClNodes.h"
+#include "ClResourceManager.h"
+
+#define GetMax(x,y) ((x > y) ? x : y)
+#define GetMin(x,y) ((x < y) ? x : y)
+
+using namespace Tizen;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Base::Runtime;
+using namespace Tizen::Graphics;
+using namespace Tizen::Social;
+using namespace Tizen::System;
+
+
+EventListPresentationModel* EventListPresentationModel::__pInstance = null;
+
+EventListPresentationModel::EventListPresentationModel(void)
+ : __pCalendar(null)
+ , __pCalendarbook(null)
+ , __pAllCalendars(null)
+ , __viewType(VIEW_TYPE_MONTHLY)
+ , __startNodeIndexOfView(0)
+ , __endNodeIndexOfView(-1)
+ , __pDateFormatter(null)
+ , __pMonthFormatter(null)
+ , __pYearFormatter(null)
+ , __pTimeFormatter(null)
+ , __isEmpty(false)
+ , __isPendingCalendarEventChangedEvent(false)
+{
+}
+
+EventListPresentationModel::~EventListPresentationModel(void)
+{
+ __timer.Cancel();
+
+ delete __pCalendarbook;
+
+ __calendars.RemoveAll(true);
+
+ if (__pAllCalendars != null)
+ {
+ __pAllCalendars->RemoveAll(true);
+ delete __pAllCalendars;
+ }
+
+ delete __pCalendar;
+
+ __indexedEvents.RemoveAll(true);
+
+ delete __pDateFormatter;
+ delete __pMonthFormatter;
+ delete __pYearFormatter;
+ delete __pTimeFormatter;
+
+ __dateChangedListeners.RemoveAll(false);
+ __eventChangedListeners.RemoveAll(false);
+}
+
+result
+EventListPresentationModel::AddCalendarEventChangedEventListener(ICalendarEventChangedEventListener& listener)
+{
+ return __eventChangedListeners.Add(&listener);
+}
+
+result
+EventListPresentationModel::RemoveCalendarEventChangedEventListener(ICalendarEventChangedEventListener& listener)
+{
+ return __eventChangedListeners.Remove(listener);
+}
+
+result
+EventListPresentationModel::AddCurrentDateChangedEventListener(ICurrentDateChangedEventListener& listener)
+{
+ return __dateChangedListeners.Add(&listener);
+}
+
+result
+EventListPresentationModel::RemoveCurrentDateChangedEventListener(ICurrentDateChangedEventListener& listener)
+{
+ return __dateChangedListeners.Remove(listener);
+}
+
+DateTime
+EventListPresentationModel::GetCurrentDate(void) const
+{
+ return __pCalendar->GetTime();
+}
+
+int
+EventListPresentationModel::GetCurrentYear(void) const
+{
+ return __pCalendar->GetTimeField(Locales::TIME_FIELD_YEAR);
+}
+
+int
+EventListPresentationModel::GetCurrentMonth(void) const
+{
+ return __pCalendar->GetTimeField(Locales::TIME_FIELD_MONTH);
+}
+
+int
+EventListPresentationModel::GetCurrentDay(void) const
+{
+ return __pCalendar->GetTimeField(Locales::TIME_FIELD_DAY_OF_MONTH);
+}
+
+int
+EventListPresentationModel::GetCurrentDayOfWeek(void) const
+{
+ return ConvertDayOfWeek(__pCalendar->GetTimeField(Locales::TIME_FIELD_DAY_OF_WEEK));
+}
+
+Locales::DateTimeFormatter*
+EventListPresentationModel::GetDateFormatter(void) const
+{
+ return __pDateFormatter;
+}
+
+int
+EventListPresentationModel::GetStartDayOfWeek(int year, int month) const
+{
+ static Locales::Calendar* pCalendar = null;
+ if (pCalendar == null)
+ {
+ pCalendar = Locales::Calendar::CreateInstanceN();
+ }
+ pCalendar->SetTime(year, month, 1);
+ return ConvertDayOfWeek(pCalendar->GetTimeField(Locales::TIME_FIELD_DAY_OF_WEEK));
+}
+
+Locales::DateTimeFormatter*
+EventListPresentationModel::GetTimeFormatter(void) const
+{
+ return __pTimeFormatter;
+}
+
+DateTime
+EventListPresentationModel::GetViewMinRange(void) const
+{
+ return __minRangeOfView;
+}
+
+DateTime
+EventListPresentationModel::GetViewMaxRange(void) const
+{
+ return __maxRangeOfView;
+}
+
+ViewType
+EventListPresentationModel::GetViewType(void) const
+{
+ return __viewType;
+}
+
+String
+EventListPresentationModel::GetDateString(const DateTime& date) const
+{
+ String str;
+ result r = __pDateFormatter->Format(date, str);
+ TryReturn(r == E_SUCCESS, L"", "[%s] Unable to get date string.", GetErrorMessage(r));
+ return str;
+}
+
+String
+EventListPresentationModel::GetMonthString(const DateTime& dateTime) const
+{
+ String str;
+ result r = __pMonthFormatter->Format(dateTime, str);
+ TryReturn(r == E_SUCCESS, L"", "[%s] Unable to get month string.", GetErrorMessage(r));
+ return str;
+}
+
+String
+EventListPresentationModel::GetYearString(const DateTime& dateTime) const
+{
+ String str;
+ result r = __pYearFormatter->Format(dateTime, str);
+ TryReturn(r == E_SUCCESS, L"", "[%s] Unable to get year string.", GetErrorMessage(r));
+ return str;
+}
+
+String
+EventListPresentationModel::GetTimeString(const DateTime& time) const
+{
+ String str;
+ result r = __pTimeFormatter->Format(time, str);
+ TryReturn(r == E_SUCCESS, L"", "[%s] Unable to get time string.", GetErrorMessage(r));
+ return str;
+}
+
+String
+EventListPresentationModel::GetTitleString(void) const
+{
+ if (__pAllCalendars == null)
+ {
+ return ResourceManager::GetString(IDS_CLD_BODY_ALL_CALENDAR);
+ }
+ else if (__calendars.GetCount() == __pAllCalendars->GetCount())
+ {
+ return ResourceManager::GetString(IDS_CLD_BODY_ALL_CALENDAR);
+ }
+// else if (__calendars.GetCount() > 1)
+// {
+// String title;
+// title.Append(__calendars.GetCount());
+// title.Append(ResourceManager::GetString(IDS_TITLE_N_CALENDARS));
+// return title;
+// }
+ else if (__calendars.GetCount() == 1)
+ {
+ IList* pCalendars = __calendars.GetValuesN();
+ String name = static_cast<Calendar*>(pCalendars->GetAt(0))->GetName();
+ pCalendars->RemoveAll(false);
+ delete pCalendars;
+ return name;
+ }
+
+ return ResourceManager::GetString(IDS_CLD_BODY_ALL_CALENDAR);
+}
+
+Color
+EventListPresentationModel::GetCalendarColor(const RecordId& calendarId) const
+{
+ const Calendar* pCalendar = static_cast<const Calendar*>(__calendars.GetValue(Integer(calendarId)));
+ if (pCalendar == null)
+ {
+ return Color();
+ }
+
+ byte r;
+ byte g;
+ byte b;
+ pCalendar->GetColor(r, g, b);
+ return Color(r, g, b);
+}
+
+int
+EventListPresentationModel::GetWholeDayCount(void) const
+{
+ if (__viewType == VIEW_TYPE_LIST)
+ {
+ if (__isEmpty == true)
+ {
+ return 0;
+ }
+
+ int count = __endNodeIndexOfView - __startNodeIndexOfView + 1;
+ return (count > 0) ? count : 0;
+ }
+
+ return __indexedEvents.GetCount();
+}
+
+int
+EventListPresentationModel::GetAllDayEventCount(const DateTime& date) const
+{
+ return GetAllDayEventCount(GetGroupIndex(date));
+}
+
+int
+EventListPresentationModel::GetAllDayEventCount(int groupIndex) const
+{
+ if (__viewType == VIEW_TYPE_LIST)
+ {
+ groupIndex += __startNodeIndexOfView;
+ }
+
+ if (groupIndex < 0)
+ {
+ return 0;
+ }
+
+ const EventListNode* pNode = static_cast<const EventListNode*>(__indexedEvents.GetAt(groupIndex));
+ TryReturn((pNode != null), 0, "[E_FAILURE] Unable to load node.");
+
+ return pNode->GetAllDayEventCount();
+}
+
+int
+EventListPresentationModel::GetAllOriginalEventCount(void) const
+{
+ CalendarbookFilter eventFilter(CB_FI_TYPE_EVENT);
+ return __pCalendarbook->GetMatchedItemCount(eventFilter);
+}
+
+int
+EventListPresentationModel::GetEventCount(const DateTime& date) const
+{
+ return GetEventCount(GetGroupIndex(date));
+}
+
+int
+EventListPresentationModel::GetEventCount(int groupIndex) const
+{
+ if (__viewType == VIEW_TYPE_LIST)
+ {
+ groupIndex += __startNodeIndexOfView;
+ }
+
+ if (groupIndex < 0)
+ {
+ return 0;
+ }
+
+ const EventListNode* pNode = static_cast<const EventListNode*>(__indexedEvents.GetAt(groupIndex));
+ TryReturn((pNode != null), 0, "[E_FAILURE] Unable to load node.");
+
+ return pNode->GetEventCount();
+}
+
+int
+EventListPresentationModel::GetWholeEventCount(const DateTime& date) const
+{
+ return GetWholeEventCount(GetGroupIndex(date));
+}
+
+int
+EventListPresentationModel::GetWholeEventCount(int groupIndex) const
+{
+ if (__viewType == VIEW_TYPE_LIST)
+ {
+ groupIndex += __startNodeIndexOfView;
+ }
+
+ if (groupIndex < 0)
+ {
+ return 0;
+ }
+
+ const EventListNode* pNode = static_cast<const EventListNode*>(__indexedEvents.GetAt(groupIndex));
+ TryReturn((pNode != null), 0, "[E_FAILURE] Unable to load node.");
+
+ return pNode->GetWholeEventCount();
+}
+
+DateTime
+EventListPresentationModel::GetDateTimeFromGroupIndex(int groupIndex) const
+{
+ if (__viewType == VIEW_TYPE_LIST)
+ {
+ if (__endNodeIndexOfView - __startNodeIndexOfView < 0)
+ {
+ return DateTime();
+ }
+
+ groupIndex += __startNodeIndexOfView;
+ }
+
+ const EventListNode* pNode = static_cast<const EventListNode*>(__indexedEvents.GetAt(groupIndex));
+ TryReturn((pNode != null), DateTime(), "[E_FAILURE] Unable to load node.");
+
+ return pNode->GetDate();
+}
+
+int
+EventListPresentationModel::GetGroupIndex(const DateTime& date) const
+{
+ if (date < __minRange || date > __maxRange)
+ {
+ return -1;
+ }
+
+ if (__viewType == VIEW_TYPE_LIST)
+ {
+ if (date < __minRangeOfView || date > __maxRangeOfView)
+ {
+ return -1;
+ }
+
+ int index = FindGroupIndex(date, __startNodeIndexOfView, __endNodeIndexOfView);
+ index -= __startNodeIndexOfView;
+ if (index < 0)
+ {
+ return -1;
+ }
+ return index;
+ }
+
+ return FindGroupIndex(date, 0, __indexedEvents.GetCount() - 1);
+}
+
+const CalEventInstance*
+EventListPresentationModel::GetAllDayEvent(const DateTime& date, int index) const
+{
+ return GetAllDayEvent(GetGroupIndex(date), index);
+}
+
+const CalEventInstance*
+EventListPresentationModel::GetAllDayEvent(int groupIndex, int index) const
+{
+ if (__viewType == VIEW_TYPE_LIST)
+ {
+ groupIndex += __startNodeIndexOfView;
+ }
+
+ if (groupIndex < 0)
+ {
+ return null;
+ }
+
+ const EventListNode* pNode = static_cast<const EventListNode*>(__indexedEvents.GetAt(groupIndex));
+ TryReturn((pNode != null), null, "[E_FAILURE] Unable to load node.");
+
+ return pNode->GetAllDayEvent(index);
+}
+
+const CalEventInstance*
+EventListPresentationModel::GetEvent(const DateTime& date, int index) const
+{
+ return GetEvent(GetGroupIndex(date), index);
+}
+
+const CalEventInstance*
+EventListPresentationModel::GetEvent(int groupIndex, int index) const
+{
+ if (__viewType == VIEW_TYPE_LIST)
+ {
+ groupIndex += __startNodeIndexOfView;
+ }
+
+ if (groupIndex < 0)
+ {
+ return null;
+ }
+
+ const EventListNode* pNode = static_cast<const EventListNode*>(__indexedEvents.GetAt(groupIndex));
+ TryReturn((pNode != null), null, "[E_FAILURE] Unable to load node.");
+
+ return pNode->GetEvent(index);
+}
+
+const CalEventInstance*
+EventListPresentationModel::GetEventWithWholeIndex(const DateTime& date, int index) const
+{
+ return GetEventWithWholeIndex(GetGroupIndex(date), index);
+}
+
+const CalEventInstance*
+EventListPresentationModel::GetEventWithWholeIndex(int groupIndex, int index) const
+{
+ if (__viewType == VIEW_TYPE_LIST)
+ {
+ groupIndex += __startNodeIndexOfView;
+ }
+
+ if (groupIndex < 0)
+ {
+ return null;
+ }
+
+ const EventListNode* pNode = static_cast<const EventListNode*>(__indexedEvents.GetAt(groupIndex));
+ TryReturn((pNode != null), null, "[E_FAILURE] Unable to load node.");
+
+ return pNode->GetEventWithWholeIndex(index);
+}
+
+void
+EventListPresentationModel::AddCurrentYear(int year)
+{
+ DateTime prev = GetCurrentDate();
+ __pCalendar->AddTimeField(Locales::TIME_FIELD_YEAR, year);
+ DateTime current = __pCalendar->GetTime();
+ if (prev != current)
+ {
+ if (IsSameDay(current, prev) == false)
+ {
+ AdjustEventsList();
+ }
+ FireCurrentDateChangedEvent(current, prev);
+ }
+}
+
+void
+EventListPresentationModel::AddCurrentMonth(int month)
+{
+ DateTime prev = GetCurrentDate();
+ __pCalendar->AddTimeField(Locales::TIME_FIELD_MONTH, month);
+ DateTime current = __pCalendar->GetTime();
+ if (prev != current)
+ {
+ if (IsSameDay(current, prev) == false)
+ {
+ AdjustEventsList();
+ }
+ FireCurrentDateChangedEvent(current, prev);
+ }
+}
+
+void
+EventListPresentationModel::AddCurrentDay(int day)
+{
+ DateTime prev = GetCurrentDate();
+ __pCalendar->AddTimeField(Locales::TIME_FIELD_DAY_OF_MONTH, day);
+ DateTime current = __pCalendar->GetTime();
+ if (prev != current)
+ {
+ if (IsSameDay(current, prev) == false)
+ {
+ AdjustEventsList();
+ }
+ FireCurrentDateChangedEvent(current, prev);
+ }
+}
+
+void
+EventListPresentationModel::SetCurrentDate(const DateTime& current)
+{
+ DateTime prev = GetCurrentDate();
+ __pCalendar->SetTime(current);
+ DateTime currentDate = __pCalendar->GetTime();
+ if (prev != currentDate)
+ {
+ if (IsSameDay(currentDate, prev) == false)
+ {
+ AdjustEventsList();
+ }
+ FireCurrentDateChangedEvent(currentDate, prev);
+ }
+}
+
+void
+EventListPresentationModel::SetTodayToCurrentDate(void)
+{
+ SetCurrentDate(GetToday());
+}
+
+void
+EventListPresentationModel::SetViewRange(const DateTime& minRange, const DateTime& maxRange)
+{
+ __minRangeOfView = minRange;
+ __maxRangeOfView = maxRange;
+
+ AdjustEventsList();
+}
+
+void
+EventListPresentationModel::SetViewType(ViewType type)
+{
+ __viewType = type;
+
+ AdjustEventsList();
+}
+
+result
+EventListPresentationModel::RemoveEvent(const CalEventInstance& event, bool deleteOriginal)
+{
+ if (deleteOriginal == true)
+ {
+ return __pCalendarbook->RemoveEvent(event.GetOriginalEventId());
+ }
+
+ return __pCalendarbook->RemoveEventInstance(event);
+}
+
+result
+EventListPresentationModel::RemoveEvents(const IList& events, bool deleteOriginal)
+{
+ result r = E_SUCCESS;
+ __isPendingCalendarEventChangedEvent = true;
+
+ IEnumerator* pEnum = events.GetEnumeratorN();
+ if (deleteOriginal == true)
+ {
+ RecordId* pEventIds = new (std::nothrow) RecordId[events.GetCount()];
+ int count = 0;
+ while (pEnum->MoveNext() == E_SUCCESS)
+ {
+ RecordId eventId = static_cast<CalEventInstance*>(pEnum->GetCurrent())->GetOriginalEventId();
+ bool isDeletedId = false;
+ for (int i = 0; i < count; ++i)
+ {
+ if (pEventIds[i] == eventId)
+ {
+ isDeletedId = true;
+ break;
+ }
+ }
+ if (isDeletedId == false)
+ {
+ if (__pCalendarbook->RemoveEvent(eventId) == E_SUCCESS)
+ {
+ pEventIds[count++] = eventId;
+ }
+ else
+ {
+ AppLogDebug("[%s] Unable to remove event instance.", GetErrorMessage(GetLastResult()));
+ r = E_FAILURE;
+ }
+ }
+ }
+ delete [] pEventIds;
+ }
+ else
+ {
+ while (pEnum->MoveNext() == E_SUCCESS)
+ {
+ CalEventInstance* pEvent = static_cast<CalEventInstance*>(pEnum->GetCurrent());
+ if (__pCalendarbook->RemoveEventInstance(*pEvent) != E_SUCCESS)
+ {
+ AppLogDebug("[%s] Unable to remove event instance.", GetErrorMessage(GetLastResult()));
+ r = E_FAILURE;
+ }
+ }
+ }
+ delete pEnum;
+
+ __isPendingCalendarEventChangedEvent = false;
+ return r;
+}
+
+int
+EventListPresentationModel::GetFirstDayOfWeek(void)
+{
+ String firstDayOfWeek;
+ SettingInfo::GetValue(KEY_SYSTEM_FIRST_DAY_OF_WEEK, firstDayOfWeek);
+ if (firstDayOfWeek == L"Monday")
+ {
+ return 1;
+ }
+ return 0;
+}
+
+EventListPresentationModel*
+EventListPresentationModel::GetInstance(void)
+{
+ if (__pInstance == null)
+ {
+ CreateInstance();
+ AppAssertf(__pInstance != null, "[E_FAILURE] Unable to initialize EventListPresentationModel.");
+ }
+ return __pInstance;
+}
+
+DateTime
+EventListPresentationModel::GetToday(void)
+{
+ DateTime today;
+ SystemTime::GetCurrentTime(TIME_MODE_WALL, today);
+ return today;
+}
+
+bool
+EventListPresentationModel::IsSameDay(const DateTime& day1, const DateTime& day2)
+{
+ return day1.GetYear() == day2.GetYear() && day1.GetMonth() == day2.GetMonth() && day1.GetDay() == day2.GetDay();
+}
+
+bool
+EventListPresentationModel::IsToday(const DateTime& date)
+{
+ DateTime today = GetToday();
+ return today.GetYear() == date.GetYear() && today.GetMonth() == date.GetMonth() && today.GetDay() == date.GetDay();
+}
+
+void
+EventListPresentationModel::OnTimerExpired(Timer& timer)
+{
+ DateTime today = GetToday();
+ DateTime current = GetCurrentDate();
+ current.SetValue(current.GetYear(), current.GetMonth(), current.GetDay(), today.GetHour(), today.GetMinute(), today.GetSecond());
+ SetCurrentDate(current);
+ __timer.Start((60 - current.GetSecond()) * 1000);
+}
+
+void
+EventListPresentationModel::OnCalendarEventsChanged(const IList& eventChangeInfoList)
+{
+ __isEmpty = GetAllOriginalEventCount() <= 0;
+ RemoveAllEvents();
+ AdjustEventsList();
+ FireCalendarEventChangedEvent();
+}
+
+void
+EventListPresentationModel::OnCalendarTodosChanged(const IList& todoChangeInfoList)
+{
+
+}
+
+void
+EventListPresentationModel::OnForeground(void)
+{
+ DateTime today = GetToday();
+ DateTime current = GetCurrentDate();
+ current.SetValue(current.GetYear(), current.GetMonth(), current.GetDay(), today.GetHour(), today.GetMinute(), today.GetSecond());
+ SetCurrentDate(current);
+ __timer.Start((60 - current.GetSecond()) * 1000);
+}
+
+void
+EventListPresentationModel::OnBackground(void)
+{
+ __timer.Cancel();
+}
+
+result
+EventListPresentationModel::AdjustEventsList(void)
+{
+ static const int _MAX_RANGE = 500;
+ static const int _ADJUST_OFFSET = 2;
+ result r = E_SUCCESS;
+ DateTime minRange;
+ DateTime maxRange;
+ switch (__viewType)
+ {
+ case VIEW_TYPE_NONE:
+ return E_SUCCESS;
+ case VIEW_TYPE_MONTHLY:
+ minRange = __pCalendar->GetTime();
+ minRange.SetValue(minRange.GetYear(), minRange.GetMonth(), 1);
+ minRange.AddMonths(-_ADJUST_OFFSET);
+ maxRange = minRange;
+ maxRange.AddMonths(_ADJUST_OFFSET + 1 + _ADJUST_OFFSET);
+ maxRange.AddSeconds(-1);
+ break;
+ case VIEW_TYPE_DAILY:
+ minRange = __pCalendar->GetTime();
+ minRange.SetValue(minRange.GetYear(), minRange.GetMonth(), minRange.GetDay());
+ minRange.AddDays(-_ADJUST_OFFSET);
+ maxRange = minRange;
+ maxRange.AddDays(_ADJUST_OFFSET + 1 + _ADJUST_OFFSET);
+ maxRange.AddSeconds(-1);
+ break;
+ case VIEW_TYPE_LIST:
+ // Check range of view.
+ if (__minRange > __maxRangeOfView)
+ {
+ DateTime diffCheck = __minRangeOfView;
+ diffCheck.AddDays(_MAX_RANGE);
+ if (diffCheck < __maxRange)
+ {
+ RemoveAllEvents();
+ }
+ }
+ else if (__maxRange < __minRangeOfView)
+ {
+ DateTime diffCheck = __minRange;
+ diffCheck.AddDays(_MAX_RANGE);
+ if (diffCheck < __maxRangeOfView)
+ {
+ RemoveAllEvents();
+ }
+ }
+
+ // Adjust range of view.
+ minRange = (__minRange < __minRangeOfView) ? __minRange : __minRangeOfView;
+ maxRange = (__maxRange > __maxRangeOfView) ? __maxRange : __maxRangeOfView;
+ if (minRange < __minRange || maxRange > __maxRange)
+ {
+ r = LoadEvents(minRange, maxRange);
+ }
+
+ IBidirectionalEnumerator* pEnum = __indexedEvents.GetBidirectionalEnumeratorN();
+ int i = 0;
+ if (__minRangeOfView > __minRange)
+ {
+ while (pEnum->MoveNext() == E_SUCCESS)
+ {
+ if (static_cast<EventListNode*>(pEnum->GetCurrent())->GetDate() >= __minRangeOfView)
+ {
+ break;
+ }
+ ++i;
+ }
+ }
+ __startNodeIndexOfView = i;
+ pEnum->ResetLast();
+ i = __indexedEvents.GetCount() - 1;
+ if (__maxRangeOfView < __maxRange)
+ {
+ while (pEnum->MovePrevious() == E_SUCCESS)
+ {
+ if (static_cast<EventListNode*>(pEnum->GetCurrent())->GetDate() < __maxRangeOfView)
+ {
+ break;
+ }
+ --i;
+ }
+ }
+ __endNodeIndexOfView = i;
+ delete pEnum;
+
+ return r;
+ }
+
+ if (minRange >= __minRange && maxRange <= __maxRange)
+ {
+ // Events are already loaded.
+ return E_SUCCESS;
+ }
+
+ if (minRange > __minRange)
+ {
+ minRange = __minRange;
+ }
+ if (maxRange < __maxRange)
+ {
+ maxRange = __maxRange;
+ }
+
+ DateTime diffCheck = minRange;
+ diffCheck.AddDays(_MAX_RANGE);
+ if (diffCheck < maxRange)
+ {
+ // Too many events are loaded. Unload unused events.
+ if ((__pCalendar->GetTime().GetTime() - minRange.GetTime()) > (maxRange.GetTime() - __pCalendar->GetTime().GetTime()))
+ {
+ // Adjust minimum range.
+ diffCheck = maxRange;
+ diffCheck.AddDays(-_MAX_RANGE);
+ while (minRange < diffCheck)
+ {
+ minRange.AddMonths(_ADJUST_OFFSET);
+ }
+ diffCheck = minRange;
+ diffCheck.AddSeconds(-1);
+ UnloadEvents(__minRange, diffCheck);
+ }
+ else
+ {
+ // Adjust maximum range.
+ while (maxRange > diffCheck)
+ {
+ maxRange.AddMonths(-_ADJUST_OFFSET);
+ }
+ diffCheck = maxRange;
+ diffCheck.AddSeconds(1);
+ UnloadEvents(diffCheck, __maxRange);
+ }
+ }
+
+ return LoadEvents(minRange, maxRange);
+}
+
+result
+EventListPresentationModel::Construct(void)
+{
+ __indexedEvents.Construct();
+
+ __pCalendar = Locales::Calendar::CreateInstanceN(Locales::CALENDAR_GREGORIAN);
+ DateTime current;
+ SystemTime::GetCurrentTime(TIME_MODE_WALL, current);
+ __pCalendar->SetTime(current);
+
+ __pCalendarbook = new (std::nothrow) Calendarbook();
+ __pCalendarbook->Construct(*this);
+
+ __isEmpty = GetAllOriginalEventCount() <= 0;
+
+ CalendarbookFilter calendarFilter(CB_FI_TYPE_CALENDAR);
+ calendarFilter.AppendInt(FI_CONJ_OP_NONE, CALENDAR_FI_PR_ITEM_TYPE, FI_CMP_OP_EQUAL, CALENDAR_ITEM_TYPE_EVENT_ONLY);
+ IList* pAllCalendars = __pCalendarbook->SearchN(calendarFilter);
+ __calendars.Construct(pAllCalendars->GetCount());
+ IEnumerator* pEnum = pAllCalendars->GetEnumeratorN();
+ while (pEnum->MoveNext() == E_SUCCESS)
+ {
+ Calendar* pCalendar = static_cast<Calendar*>(pEnum->GetCurrent());
+ __calendars.Add(new (std::nothrow) Integer(pCalendar->GetRecordId()), pCalendar);
+ }
+ delete pEnum;
+ pAllCalendars->RemoveAll(false);
+ delete pAllCalendars;
+
+ __minRange = __pCalendar->GetTime();
+ __minRange.SetValue(__minRange.GetYear(), __minRange.GetMonth(), __minRange.GetDay());
+ __maxRange = __minRange;
+ __maxRange.AddSeconds(-1);
+ __minRangeOfView = __minRange;
+ __maxRangeOfView = __maxRange;
+ SetViewType(VIEW_TYPE_MONTHLY);
+
+ __pDateFormatter = ResourceManager::CreateDateFormatterN(Locales::DATE_TIME_STYLE_FULL);
+
+ String pattern = __pDateFormatter->GetPattern();
+ int startIndex = -1;
+ int endIndex = -1;
+ pattern.IndexOf(L"E", 0, startIndex);
+ pattern.IndexOf(L" ", startIndex, endIndex);
+ if (endIndex > 0)
+ {
+ pattern.Remove(startIndex, endIndex - startIndex + 1);
+ }
+ else
+ {
+ pattern.Remove(startIndex, pattern.GetLength() - startIndex);
+ }
+ startIndex = -1;
+ endIndex = -1;
+ pattern.IndexOf(L"d", 0, startIndex);
+ pattern.IndexOf(L" ", startIndex, endIndex);
+ if (endIndex > 0)
+ {
+ pattern.Remove(startIndex, endIndex - startIndex + 1);
+ }
+ else
+ {
+ pattern.Remove(startIndex, pattern.GetLength() - startIndex);
+ }
+ __pMonthFormatter = ResourceManager::CreateDateFormatterN(Locales::DATE_TIME_STYLE_NONE);
+ __pMonthFormatter->ApplyPattern(pattern);
+
+ startIndex = -1;
+ endIndex = -1;
+ pattern.IndexOf(L"y", 0, startIndex);
+ pattern.IndexOf(L" ", startIndex, endIndex);
+ if (endIndex > 0)
+ {
+ pattern.Remove(endIndex, pattern.GetLength() - endIndex);
+ }
+ else
+ {
+ pattern.Remove(0, startIndex);
+ }
+ __pYearFormatter = ResourceManager::CreateDateFormatterN(Locales::DATE_TIME_STYLE_NONE);
+ __pYearFormatter->ApplyPattern(pattern);
+
+ __pTimeFormatter = ResourceManager::CreateTimeFormatterN();
+
+ __timer.Construct(*this);
+ __timer.Start((60 - current.GetSecond()) * 1000);
+
+ static_cast<CalendarApp*>(Tizen::App::UiApp::GetInstance())->AddCalendarAppStatusChangedEventListener(*this);
+
+ return E_SUCCESS;
+}
+
+int
+EventListPresentationModel::ConvertDayOfWeek(int dayOfWeek) const
+{
+ switch (dayOfWeek)
+ {
+ case Locales::SUNDAY:
+ return 0;
+ case Locales::MONDAY:
+ return 1;
+ case Locales::TUESDAY:
+ return 2;
+ case Locales::WEDNESDAY:
+ return 3;
+ case Locales::THURSDAY:
+ return 4;
+ case Locales::FRIDAY:
+ return 5;
+ case Locales::SATURDAY:
+ return 6;
+ default:
+ return -1;
+ }
+}
+
+int
+EventListPresentationModel::FindGroupIndex(const DateTime& date, int start, int end) const
+{
+ if (start < end)
+ {
+ int mid = (start + end) >> 1;
+ const EventListNode* pNode = static_cast<const EventListNode*>(__indexedEvents.GetAt(mid));
+ if (IsSameDay(date, pNode->GetDate()) == true)
+ {
+ return mid;
+ }
+
+ if (pNode->GetDate() > date)
+ {
+ return FindGroupIndex(date, start, mid - 1);
+ }
+ return FindGroupIndex(date, mid + 1, end);
+ }
+ else if (start == end)
+ {
+ const EventListNode* pNode = static_cast<const EventListNode*>(__indexedEvents.GetAt(start));
+ if (IsSameDay(date, pNode->GetDate()) == true)
+ {
+ return start;
+ }
+ return -1;
+ }
+
+ return -1;
+}
+
+void
+EventListPresentationModel::FireCalendarEventChangedEvent(void)
+{
+ if (__eventChangedListeners.GetCount() > 0 && __isPendingCalendarEventChangedEvent == false)
+ {
+ IEnumerator* pEnum = __eventChangedListeners.GetEnumeratorN();
+ while (pEnum->MoveNext() == E_SUCCESS)
+ {
+ static_cast<ICalendarEventChangedEventListener*>(pEnum->GetCurrent())->OnCalendarEventChanged();
+ }
+ delete pEnum;
+ }
+}
+
+void
+EventListPresentationModel::FireCurrentDateChangedEvent(const DateTime& current, const DateTime& preview)
+{
+ if (__dateChangedListeners.GetCount() > 0)
+ {
+
+ IEnumerator* pEnum = __dateChangedListeners.GetEnumeratorN();
+ while (pEnum->MoveNext() == E_SUCCESS)
+ {
+ static_cast<ICurrentDateChangedEventListener*>(pEnum->GetCurrent())->OnCurrentDateChanged(current, preview);
+ }
+ delete pEnum;
+ }
+}
+
+result
+EventListPresentationModel::LoadEvents(const DateTime& start, const DateTime& end)
+{
+ result r = E_SUCCESS;
+ if (start >= __minRange && end <= __maxRange)
+ {
+ return E_SUCCESS;
+ }
+ else if (start < __minRange && end > __maxRange)
+ {
+ DateTime pivot = __minRange;
+ pivot.AddSeconds(-1);
+ r = LoadEvents(start, pivot);
+ TryReturn(r == E_SUCCESS, r, "[%s] Unable to load events.", GetErrorMessage(r));
+
+ pivot = __maxRange;
+ pivot.AddSeconds(1);
+ r = LoadEvents(pivot, end);
+ TryReturn(r == E_SUCCESS, r, "[%s] Unable to load events.", GetErrorMessage(r));
+
+ return E_SUCCESS;
+ }
+
+ DateTime startDate;
+ DateTime endDate;
+ if (end > __maxRange)
+ {
+ startDate = __maxRange;
+ startDate.AddSeconds(1);
+ endDate.SetValue(end.GetYear(), end.GetMonth(), end.GetDay());
+ endDate.AddDays(1);
+ endDate.AddSeconds(-1);
+ }
+ else
+ {
+ startDate.SetValue(start.GetYear(), start.GetMonth(), start.GetDay());
+ endDate = __minRange;
+ endDate.AddSeconds(-1);
+ }
+
+ // Create EventNodes.
+ CalendarbookFilter allDayEventFilter(CB_FI_TYPE_ALL_DAY_EVENT_INSTANCE);
+ allDayEventFilter.AppendDateTime(FI_CONJ_OP_NONE, EVENT_INST_FI_PR_END_TIME, FI_CMP_OP_GREATER_THAN_OR_EQUAL, startDate);
+ allDayEventFilter.AppendDateTime(FI_CONJ_OP_AND, EVENT_INST_FI_PR_START_TIME, FI_CMP_OP_LESS_THAN_OR_EQUAL, endDate);
+ IList* pAllDayEvents = __pCalendarbook->SearchN(allDayEventFilter, EVENT_INST_FI_PR_START_TIME, SORT_ORDER_ASCENDING);
+ IEnumerator* pAllDayEventsEnum = pAllDayEvents->GetEnumeratorN();
+ LinkedList allDayEventNodes;
+ while (pAllDayEventsEnum->MoveNext() == E_SUCCESS)
+ {
+ allDayEventNodes.Add(new (std::nothrow) EventNode(*static_cast<CalEventInstance*>(pAllDayEventsEnum->GetCurrent())));
+ }
+ delete pAllDayEventsEnum;
+ pAllDayEvents->RemoveAll(false);
+ delete pAllDayEvents;
+
+ CalendarbookFilter nonAllDayEventFilter(CB_FI_TYPE_NON_ALL_DAY_EVENT_INSTANCE);
+ nonAllDayEventFilter.AppendDateTime(FI_CONJ_OP_NONE, EVENT_INST_FI_PR_END_TIME, FI_CMP_OP_GREATER_THAN, ResourceManager::ConvertWallTimeToUtcTime(startDate));
+ nonAllDayEventFilter.AppendDateTime(FI_CONJ_OP_AND, EVENT_INST_FI_PR_START_TIME, FI_CMP_OP_LESS_THAN_OR_EQUAL, ResourceManager::ConvertWallTimeToUtcTime(endDate));
+ IList* pEvents = __pCalendarbook->SearchN(nonAllDayEventFilter, EVENT_INST_FI_PR_START_TIME, SORT_ORDER_ASCENDING);
+ IEnumerator* pEventsEnum = pEvents->GetEnumeratorN();
+ LinkedList eventNodes;
+ while (pEventsEnum->MoveNext() == E_SUCCESS)
+ {
+ eventNodes.Add(new (std::nothrow) EventNode(*static_cast<CalEventInstance*>(pEventsEnum->GetCurrent())));
+ }
+ delete pEventsEnum;
+ pEvents->RemoveAll(false);
+ delete pEvents;
+
+ DateTime today = GetToday();
+ today.SetValue(today.GetYear(), today.GetMonth(), today.GetDay());
+
+ // Indexing
+ IEnumerator* pAllDayEventNodesEnum = allDayEventNodes.GetEnumeratorN();
+ IEnumerator* pEventNodesEnum = eventNodes.GetEnumeratorN();
+ LinkedList removeList;
+ LinkedList nodeList;
+ while (startDate < endDate)
+ {
+ if (allDayEventNodes.GetCount() == 0 && eventNodes.GetCount() == 0)
+ {
+ if (__isEmpty == false && startDate <= today && endDate >= today)
+ {
+ nodeList.Add(new (std::nothrow) EventListNode(today));
+ }
+ break;
+ }
+
+ // Find next valid date
+ DateTime allDayEventStartTime = DateTime::GetMaxValue();
+ DateTime eventStartTime = DateTime::GetMaxValue();
+ if (allDayEventNodes.GetCount() > 0)
+ {
+ allDayEventStartTime = static_cast<EventNode*>(allDayEventNodes.GetAt(0))->GetEvent()->GetStartTime();
+ }
+ if (eventNodes.GetCount() > 0)
+ {
+ DateTime startUtcTime = static_cast<EventNode*>(eventNodes.GetAt(0))->GetEvent()->GetStartTime();
+ eventStartTime = ResourceManager::ConvertUtcTimeToWallTime(startUtcTime);
+ }
+ if (startDate < today && endDate > today)
+ {
+ startDate = GetMax(GetMin(GetMin(allDayEventStartTime, eventStartTime), today), startDate);
+ }
+ else
+ {
+ startDate = GetMax(GetMin(allDayEventStartTime, eventStartTime), startDate);
+ }
+ startDate.SetValue(startDate.GetYear(), startDate.GetMonth(), startDate.GetDay());
+ if (startDate >= endDate)
+ {
+ break;
+ }
+
+ // Create node.
+ EventListNode* pNode = new (std::nothrow) EventListNode(startDate);
+ startDate.AddDays(1);
+
+ // Indexing All-day Event
+ while (pAllDayEventNodesEnum->MoveNext() == E_SUCCESS)
+ {
+ EventNode* pAllDayEventNode = static_cast<EventNode*>(pAllDayEventNodesEnum->GetCurrent());
+ CalEventInstance* pAllDayEvent = pAllDayEventNode->GetEvent();
+ if (pAllDayEvent->GetStartTime() >= startDate)
+ {
+ break;
+ }
+ else if (pAllDayEvent->GetEndTime() < startDate) // This expression differs from the Non-all-day event's.
+ {
+ pNode->Add(*pAllDayEventNode);
+ removeList.Add(pAllDayEventNode);
+ }
+ else
+ {
+ pAllDayEventNode->AddRef();
+ pNode->Add(*pAllDayEventNode);
+ }
+ }
+ if (removeList.GetCount() > 0)
+ {
+ do
+ {
+ EventNode* pAllDayEventNode = static_cast<EventNode*>(removeList.GetAt(0));
+ allDayEventNodes.Remove(*pAllDayEventNode);
+ removeList.RemoveAt(0);
+ } while (removeList.GetCount() > 0);
+ delete pAllDayEventNodesEnum;
+ pAllDayEventNodesEnum = allDayEventNodes.GetEnumeratorN();
+ }
+ else
+ {
+ pAllDayEventNodesEnum->Reset();
+ }
+
+ // Indexing Non All-day Event
+ while (pEventNodesEnum->MoveNext() == E_SUCCESS)
+ {
+ EventNode* pEventNode = static_cast<EventNode*>(pEventNodesEnum->GetCurrent());
+ CalEventInstance* pEvent = pEventNode->GetEvent();
+ if (ResourceManager::ConvertUtcTimeToWallTime(pEvent->GetStartTime()) >= startDate)
+ {
+ break;
+ }
+ else if (ResourceManager::ConvertUtcTimeToWallTime(pEvent->GetEndTime()) <= startDate) // This expression differs from the All-day event's.
+ {
+ pNode->Add(*pEventNode);
+ removeList.Add(pEventNode);
+ }
+ else
+ {
+ pEventNode->AddRef();
+ pNode->Add(*pEventNode);
+ }
+ }
+ if (removeList.GetCount() > 0)
+ {
+ do
+ {
+ EventNode* pEventNode = static_cast<EventNode*>(removeList.GetAt(0));
+ eventNodes.Remove(*pEventNode);
+ removeList.RemoveAt(0);
+ } while (removeList.GetCount() > 0);
+ delete pEventNodesEnum;
+ pEventNodesEnum = eventNodes.GetEnumeratorN();
+ }
+ else
+ {
+ pEventNodesEnum->Reset();
+ }
+
+ nodeList.Add(pNode);
+ }
+ delete pAllDayEventNodesEnum;
+ delete pEventNodesEnum;
+
+ // Remove useless instances
+ while (allDayEventNodes.GetCount() > 0)
+ {
+ static_cast<EventNode*>(allDayEventNodes.GetAt(0))->RemoveRef();
+ allDayEventNodes.RemoveAt(0);
+ }
+ while (eventNodes.GetCount() > 0)
+ {
+ static_cast<EventNode*>(eventNodes.GetAt(0))->RemoveRef();
+ eventNodes.RemoveAt(0);
+ }
+
+ if (end > __maxRange)
+ {
+ __indexedEvents.AddItems(nodeList);
+ __maxRange.SetValue(end.GetYear(), end.GetMonth(), end.GetDay());
+ __maxRange.AddDays(1);
+ __maxRange.AddSeconds(-1);
+ }
+ else
+ {
+ __indexedEvents.InsertItemsFrom(nodeList, 0);
+ __minRange.SetValue(start.GetYear(), start.GetMonth(), start.GetDay());
+ }
+ nodeList.RemoveAll(false);
+
+ return r;
+}
+
+void
+EventListPresentationModel::RemoveAllEvents(void)
+{
+ __indexedEvents.RemoveAll(true);
+ if (__viewType == VIEW_TYPE_LIST)
+ {
+ __minRange = __minRangeOfView;
+ __maxRange = __minRange;
+ __maxRange.AddSeconds(-1);
+ }
+ else
+ {
+ __minRange = __pCalendar->GetTime();
+ __minRange.SetValue(__minRange.GetYear(), __minRange.GetMonth(), __minRange.GetDay());
+ __maxRange = __minRange;
+ __maxRange.AddSeconds(-1);
+ }
+}
+
+void
+EventListPresentationModel::UnloadEvents(const DateTime& start, const DateTime& end)
+{
+ IBidirectionalEnumerator* pEnum = __indexedEvents.GetBidirectionalEnumeratorN();
+ EventListNode* pNode = null;
+ int count = 0;
+ if (start <= __minRange)
+ {
+ while (pEnum->MoveNext() == E_SUCCESS)
+ {
+ pNode = static_cast<EventListNode*>(pEnum->GetCurrent());
+ if (pNode->GetDate() > end)
+ {
+ delete pEnum;
+ __indexedEvents.RemoveItems(0, count, true);
+ __minRange = static_cast<EventListNode*>(__indexedEvents.GetAt(0))->GetDate();
+ return;
+ }
+ ++count;
+ }
+ }
+ else
+ {
+ pEnum->ResetLast();
+ while (pEnum->MovePrevious() == E_SUCCESS)
+ {
+ pNode = static_cast<EventListNode*>(pEnum->GetCurrent());
+ if (pNode->GetDate() < start)
+ {
+ delete pEnum;
+ __indexedEvents.RemoveItems(__indexedEvents.GetCount() - count, count, true);
+ __maxRange = static_cast<EventListNode*>(__indexedEvents.GetAt(__indexedEvents.GetCount() - 1))->GetDate();
+ __maxRange.AddDays(1);
+ __maxRange.AddSeconds(-1);
+ return;
+ }
+ ++count;
+ }
+ }
+ delete pEnum;
+ RemoveAllEvents();
+}
+
+void
+EventListPresentationModel::CreateInstance(void)
+{
+ EventListPresentationModel* pPm = new (std::nothrow) EventListPresentationModel();
+ result r = pPm->Construct();
+ TryCatch(r == E_SUCCESS, , "[%s] Unable to construct EventListPresentationModel.", GetErrorMessage(r));
+
+ __pInstance = pPm;
+ std::atexit(DestroyInstance);
+ return;
+
+CATCH:
+ delete pPm;
+}
+
+void
+EventListPresentationModel::DestroyInstance(void)
+{
+ delete __pInstance;
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClEventPresentationModel.cpp
+ * @brief This is the implementation file for the EventPresentationModel class.
+ */
+
+#include <new>
+#include <FSystem.h>
+#include "ClEventPresentationModel.h"
+#include "ClResourceManager.h"
+#include "ClTypes.h"
+
+using namespace Tizen;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Graphics;
+using namespace Tizen::Social;
+using namespace Tizen::System;
+
+static const int HOUR_TO_HALF_MINUTE = 30;
+static const int HOUR_TO_MAX_MINUTE = 60;
+
+EventPresentationModel::EventPresentationModel(void)
+ : __pCalendar(null)
+ , __pEvent(null)
+ , __pEventBackup(null)
+ , __pEventInstance(null)
+ , __pEventInstanceBackup(null)
+ , __pDateFormatter(null)
+ , __pDateTimeFormatter(null)
+ , __pTimeFormatter(null)
+ , __allEventEditing(true)
+{
+}
+
+EventPresentationModel::~EventPresentationModel(void)
+{
+ delete __pCalendar;
+ delete __pEvent;
+ delete __pEventBackup;
+ delete __pEventInstance;
+ delete __pEventInstanceBackup;
+ delete __pDateFormatter;
+ delete __pDateTimeFormatter;
+ delete __pTimeFormatter;
+}
+
+result
+EventPresentationModel::Construct(const RecordId eventId)
+{
+ SetEventId(eventId);
+
+ __pDateFormatter = ResourceManager::CreateDateFormatterN(Locales::DATE_TIME_STYLE_LONG);
+ __pDateTimeFormatter = ResourceManager::CreateDateTimeFormatterN(Locales::DATE_TIME_STYLE_LONG);
+ __pTimeFormatter = ResourceManager::CreateTimeFormatterN();
+
+ return E_SUCCESS;
+}
+
+Bitmap*
+EventPresentationModel::GetCalendarIconN(void) const
+{
+ if (__pCalendar == null)
+ {
+ return null;
+ }
+
+ // Get calendar icon(Tizen 2.0 b1 RC1 APIs are not supported yet.)
+ return null;
+}
+
+String
+EventPresentationModel::GetCalendarName(void) const
+{
+ if (__pCalendar == null)
+ {
+ return L"Default calendar";
+ }
+ return __pCalendar->GetName();
+}
+
+RecordId
+EventPresentationModel::GetEventId(void) const
+{
+ if (__pEventInstance != null)
+ {
+ return __pEventInstance->GetOriginalEventId();
+ }
+ return __pEvent->GetRecordId();
+}
+
+String
+EventPresentationModel::GetSubject(void) const
+{
+ return __pEvent->GetSubject();
+}
+
+String
+EventPresentationModel::GetLocation(void) const
+{
+ return __pEvent->GetLocation();
+}
+
+DateTime
+EventPresentationModel::GetStartTime(void) const
+{
+ if (__pEvent->IsAllDayEvent() == true)
+ {
+ return __pEvent->GetStartTime();
+ }
+
+ DateTime startWallTime = ResourceManager::ConvertUtcTimeToWallTime(__pEvent->GetStartTime());
+
+ return startWallTime;
+}
+
+DateTime
+EventPresentationModel::GetEndTime(void) const
+{
+ if (__pEvent->IsAllDayEvent() == true)
+ {
+ return __pEvent->GetEndTime();
+ }
+
+ DateTime endWallTime = ResourceManager::ConvertUtcTimeToWallTime(__pEvent->GetEndTime());
+
+ return endWallTime;
+}
+
+String
+EventPresentationModel::GetDateString(const DateTime& date) const
+{
+ String str;
+ __pDateFormatter->Format(date, str);
+ return str;
+}
+
+String
+EventPresentationModel::GetDateTimeString(const DateTime& date) const
+{
+ String str;
+ __pDateTimeFormatter->Format(date, str);
+ return str;
+}
+
+String
+EventPresentationModel::GetTimeString(const DateTime& date) const
+{
+ String str;
+ __pTimeFormatter->Format(date, str);
+ return str;
+}
+
+String
+EventPresentationModel::GetTimezone(void) const
+{
+ Locales::TimeZone timeZone = __pEvent->GetTimeZone();
+ int offset = timeZone.GetRawOffset();
+ String timeZoneString = timeZone.GetId();
+ const int _MINUTE_IN_HOUR_INT = 60;
+ const float _MINUTE_IN_HOUR_FLOAT = 60.0;
+ const int _FORMAT_INT_STRING = 10;
+ const int _FORMAT_FLOAT_STRING = 12;
+ if (offset % _MINUTE_IN_HOUR_INT == 0)
+ {
+ timeZoneString.Format(timeZoneString.GetLength() + _FORMAT_INT_STRING,
+ L"%ls, GMT %+d", timeZoneString.GetPointer(), offset / _MINUTE_IN_HOUR_INT);
+ }
+ else
+ {
+ timeZoneString.Format(timeZoneString.GetLength() + _FORMAT_FLOAT_STRING,
+ L"%ls, GMT %+0.1f", timeZoneString.GetPointer(), (float)offset / _MINUTE_IN_HOUR_FLOAT);
+ }
+
+ return timeZoneString;
+}
+
+const Reminder*
+EventPresentationModel::GetReminder(int index) const
+{
+ if (index >= __pEvent->GetAllReminders().GetCount() || index < 0)
+ {
+ return null;
+ }
+ return static_cast<const Reminder*>(__pEvent->GetAllReminders().GetAt(index));
+}
+
+String
+EventPresentationModel::GetReminderString(int index) const
+{
+ if (__pEvent->GetAllReminders().GetCount() <= index)
+ {
+ return ResourceManager::GetString(IDS_CLD_BODY_OFF);
+ }
+
+ const Reminder* pReminder = static_cast<const Reminder*>(__pEvent->GetAllReminders().GetAt(index));
+ if (pReminder->GetTimeOffset() == 0)
+ {
+ return ResourceManager::GetString(IDS_CLD_BODY_ON_TIME);
+ }
+
+ String format;
+ String result;
+ switch (pReminder->GetTimeUnit())
+ {
+ case REMINDER_TIME_UNIT_MINUTE:
+ format = ResourceManager::GetString(IDS_REMINDER_MINUTE_BEFORE);
+ result.Format(format.GetLength() + 2, format.GetPointer(), pReminder->GetTimeOffset());
+ break;
+ case REMINDER_TIME_UNIT_HOUR:
+ format = ResourceManager::GetString(IDS_REMINDER_HOUR_BEFORE);
+ result.Format(format.GetLength() + 2, format.GetPointer(), pReminder->GetTimeOffset());
+ break;
+ case REMINDER_TIME_UNIT_DAY:
+ {
+ DateTime startDate = (__pEvent->IsAllDayEvent() == true) ? __pEvent->GetStartTime()
+ : ResourceManager::ConvertUtcTimeToWallTime(__pEvent->GetStartTime());
+ DateTime reminderDate = startDate;
+ reminderDate.AddDays(-pReminder->GetTimeOffset());
+
+ int value = startDate.GetYear() - reminderDate.GetYear();
+ if (startDate.GetMonth() == reminderDate.GetMonth() && startDate.GetDay() == reminderDate.GetDay())
+ {
+ format = ResourceManager::GetString(IDS_REMINDER_YEAR_BEFORE);
+ result.Format(format.GetLength() + 2, format.GetPointer(), startDate.GetYear() - reminderDate.GetYear());
+ break;
+ }
+
+ value = value * 12 + startDate.GetMonth() - reminderDate.GetMonth();
+ if (startDate.GetDay() == reminderDate.GetDay())
+ {
+ format = ResourceManager::GetString(IDS_REMINDER_MONTH_BEFORE);
+ result.Format(format.GetLength() + 2, format.GetPointer(), value);
+ break;
+ }
+
+ format = ResourceManager::GetString(IDS_REMINDER_DAY_BEFORE);
+ result.Format(format.GetLength() + 2, format.GetPointer(), pReminder->GetTimeOffset());
+ break;
+ }
+ case REMINDER_TIME_UNIT_WEEK:
+ format = ResourceManager::GetString(IDS_REMINDER_WEEK_BEFORE);
+ result.Format(format.GetLength() + 2, format.GetPointer(), pReminder->GetTimeOffset());
+ break;
+ }
+
+ return result;
+}
+
+const Recurrence*
+EventPresentationModel::GetRecurrence(void) const
+{
+ return __pEvent->GetRecurrence();
+}
+
+String
+EventPresentationModel::GetRecurrenceString(void) const
+{
+ const Recurrence* pRecurrence = __pEvent->GetRecurrence();
+ if (pRecurrence == null)
+ {
+ return ResourceManager::GetString(IDS_CLD_BODY_OFF);
+ }
+
+ String result;
+ int interval = pRecurrence->GetInterval();
+ if (interval > 1)
+ {
+ String format;
+ switch (pRecurrence->GetFrequency())
+ {
+ case FREQ_DAILY:
+ format = ResourceManager::GetString(IDS_REPEAT_EVERY_N_DAYS);
+ break;
+ case FREQ_WEEKLY:
+ format = ResourceManager::GetString(IDS_REPEAT_EVERY_N_WEEKS);
+ break;
+ case FREQ_MONTHLY:
+ format = ResourceManager::GetString(IDS_REPEAT_EVERY_N_MONTHS);
+ break;
+ case FREQ_YEARLY:
+ format = ResourceManager::GetString(IDS_REPEAT_EVERY_N_YEARS);
+ break;
+ }
+ result.Format(format.GetLength() + 2, format.GetPointer(), interval);
+ }
+ else
+ {
+ switch (pRecurrence->GetFrequency())
+ {
+ case FREQ_DAILY:
+ result = ResourceManager::GetString(IDS_REPEAT_EVERY_DAY);
+ break;
+ case FREQ_WEEKLY:
+ result = ResourceManager::GetString(IDS_REPEAT_EVERY_WEEK);
+ break;
+ case FREQ_MONTHLY:
+ result = ResourceManager::GetString(IDS_REPEAT_EVERY_MONTH);
+ break;
+ case FREQ_YEARLY:
+ result = ResourceManager::GetString(IDS_REPEAT_EVERY_YEAR);
+ break;
+ }
+ }
+
+ const DateTime* pDateTime = pRecurrence->GetUntil();
+ if (pDateTime != null && *pDateTime < Calendarbook::GetMaxDateTime())
+ {
+ Locales::DateTimeFormatter* pDateFormatter = ResourceManager::CreateDateFormatterN(Locales::DATE_TIME_STYLE_DEFAULT);
+
+ String dateTime;
+ pDateFormatter->Format(*pDateTime, dateTime);
+
+ result.Append(L" (");
+ DateTime dayChecker = (__pEvent->IsAllDayEvent() == true) ? __pEvent->GetStartTime()
+ : ResourceManager::ConvertUtcTimeToWallTime(__pEvent->GetStartTime());
+ dayChecker.AddDays(1);
+ dayChecker.SetValue(dayChecker.GetYear(), dayChecker.GetMonth(), dayChecker.GetDay());
+ if (*pDateTime >= dayChecker)
+ {
+ result.Append(L"~");
+ }
+ result.Append(dateTime);
+ result.Append(L")");
+
+ delete pDateFormatter;
+ }
+
+ return result;
+}
+
+String
+EventPresentationModel::GetDescription(void) const
+{
+ return __pEvent->GetDescription();
+}
+
+CalEventInstance*
+EventPresentationModel::GetEventInstance(void)
+{
+ if (__pEventInstance == null)
+ {
+ Calendarbook calendarbook;
+ calendarbook.Construct();
+
+ if (__pEvent->IsAllDayEvent() == true)
+ {
+ // Search InstanceEvent in AllDayEvents
+ CalendarbookFilter filter(CB_FI_TYPE_ALL_DAY_EVENT_INSTANCE);
+ filter.AppendInt(FI_CONJ_OP_NONE, EVENT_INST_FI_PR_ORIGINAL_EVENT_ID, FI_CMP_OP_EQUAL, __pEvent->GetRecordId());
+ IList* pEvents = calendarbook.SearchN(filter, EVENT_INST_FI_PR_START_TIME, SORT_ORDER_ASCENDING, 0, 1);
+ if (pEvents != null && pEvents->GetCount() > 0)
+ {
+ __pEventInstance = static_cast<CalEventInstance*>(pEvents->GetAt(0));
+ pEvents->RemoveAt(0);
+ pEvents->RemoveAll(true);
+ }
+ delete pEvents;
+ }
+ else
+ {
+ // Search InstanceEvent in NonAllDayEvents
+ CalendarbookFilter filter(CB_FI_TYPE_NON_ALL_DAY_EVENT_INSTANCE);
+ filter.AppendInt(FI_CONJ_OP_NONE, EVENT_INST_FI_PR_ORIGINAL_EVENT_ID, FI_CMP_OP_EQUAL, __pEvent->GetRecordId());
+ IList* pEvents = calendarbook.SearchN(filter, EVENT_INST_FI_PR_START_TIME, SORT_ORDER_ASCENDING, 0, 1);
+ if (pEvents != null && pEvents->GetCount() > 0)
+ {
+ __pEventInstance = static_cast<CalEventInstance*>(pEvents->GetAt(0));
+ pEvents->RemoveAt(0);
+ pEvents->RemoveAll(true);
+ }
+ delete pEvents;
+ }
+ }
+
+ return __pEventInstance;
+}
+
+bool
+EventPresentationModel::IsEventInstance(void)
+{
+ return __pEventInstance != null;
+}
+
+bool
+EventPresentationModel::IsAllDayEvent(void) const
+{
+ return __pEvent->IsAllDayEvent();
+}
+
+bool
+EventPresentationModel::IsRecurring(void) const
+{
+ return __pEvent->IsRecurring();
+}
+
+bool
+EventPresentationModel::IsAllEventEditing(void) const
+{
+ return __allEventEditing;
+}
+
+result
+EventPresentationModel::RemoveEvent(void)
+{
+ Calendarbook calendarbook;
+ result r = calendarbook.Construct();
+ TryReturn(r == E_SUCCESS, r, "[%s] Unable to construct calendarbook.", GetErrorMessage(r));
+
+ r = calendarbook.RemoveEvent(*__pEvent);
+ TryReturn(r == E_SUCCESS, r, "[%s] Unable to remove event.", GetErrorMessage(r));
+
+ return E_SUCCESS;
+}
+
+result
+EventPresentationModel::RemoveEvent(bool deleteOriginal)
+{
+ Calendarbook calendarbook;
+ result r = calendarbook.Construct();
+ TryReturn(r == E_SUCCESS, r, "[%s] Unable to construct calendarbook.", GetErrorMessage(r));
+
+ if (deleteOriginal == true)
+ {
+ if (__pEvent != null && __pEvent->GetRecordId() != INVALID_RECORD_ID)
+ {
+ return calendarbook.RemoveEvent(*__pEvent);
+ }
+
+ TryReturn(__pEventInstance != null, E_FAILURE, "[E_FAILURE] Event is not added in calendarbook.");
+ return calendarbook.RemoveEvent(__pEventInstance->GetOriginalEventId());
+ }
+
+ r = calendarbook.RemoveEventInstance(*__pEventInstance);
+ if (r == E_SUCCESS)
+ {
+ delete __pEventInstance;
+ __pEventInstance = null;
+ }
+ return r;
+}
+
+result
+EventPresentationModel::SetCalendar(const RecordId calendarId)
+{
+ TryReturn(calendarId != INVALID_RECORD_ID, E_INVALID_ARG, "[E_INVALID_ARG] calendarId is INVALID_RECORD_ID.");
+
+ Calendarbook calendarbook;
+ calendarbook.Construct();
+
+ Calendar* pCalendar = calendarbook.GetCalendarN(calendarId);
+ TryReturn(pCalendar != null, E_FAILURE, "[E_FAILURE] Unable to get calendar(id=%u).", calendarId);
+
+ delete __pCalendar;
+ __pCalendar = pCalendar;
+
+ return E_SUCCESS;
+}
+
+result
+EventPresentationModel::SetEventId(const RecordId eventId)
+{
+ CalEvent* pEvent = null;
+ if (eventId == INVALID_RECORD_ID)
+ {
+ Locales::LocaleManager localeManager;
+ localeManager.Construct();
+
+ Locales::TimeZone timeZone = localeManager.GetSystemTimeZone();
+ DateTime startWallTime;
+ DateTime endWallTime;
+ DateTime startUtcTime;
+ DateTime endUtcTime;
+
+ pEvent = new (std::nothrow) CalEvent();
+
+ // Get default calendar(Tizen 2.0 b1 RC1 APIs are not supported yet.)
+
+ SystemTime::GetCurrentTime(TIME_MODE_WALL, startWallTime);
+
+ if (startWallTime.GetMinute() > 0 && startWallTime.GetMinute() < HOUR_TO_HALF_MINUTE)
+ {
+ startWallTime.AddMinutes(HOUR_TO_HALF_MINUTE - startWallTime.GetMinute());
+ }
+ else if (startWallTime.GetMinute() > HOUR_TO_HALF_MINUTE && startWallTime.GetMinute() < HOUR_TO_MAX_MINUTE)
+ {
+ startWallTime.AddMinutes(HOUR_TO_MAX_MINUTE - startWallTime.GetMinute());
+ }
+
+ endWallTime = startWallTime;
+ endWallTime.AddHours(1);
+
+ startUtcTime = ResourceManager::ConvertWallTimeToUtcTime(startWallTime);
+ endUtcTime = ResourceManager::ConvertWallTimeToUtcTime(endWallTime);
+
+ pEvent->SetStartAndEndTime(startUtcTime, endUtcTime);
+ pEvent->SetTimeZone(timeZone);
+
+ Reminder reminder;
+ reminder.SetTimeOffset(REMINDER_TIME_UNIT_MINUTE, 0);
+ pEvent->AddReminder(reminder);
+
+ delete __pEvent;
+ __pEvent = pEvent;
+
+ delete __pCalendar;
+ __pCalendar = null;
+ }
+ else
+ {
+ Calendarbook calendarbook;
+ calendarbook.Construct();
+ pEvent = calendarbook.GetEventN(eventId);
+ TryReturn(pEvent != null, E_FAILURE, "[E_FAILURE] Unable to get event.");
+
+ delete __pEvent;
+ __pEvent = pEvent;
+
+ delete __pCalendar;
+ __pCalendar = calendarbook.GetCalendarN(__pEvent->GetCalendarId());
+ }
+
+ return E_SUCCESS;
+}
+
+result
+EventPresentationModel::SetEventInstance(const CalEventInstance& event)
+{
+ // EventInstance get value
+ __pEventInstance = new (std::nothrow) CalEventInstance(event);
+
+ // EventInstance changed to CalEvent
+ CalEvent* pEvent = new (std::nothrow) CalEvent();
+ pEvent->SetSubject(event.GetSubject());
+ pEvent->SetLocation(event.GetLocation());
+
+ pEvent->SetStartAndEndTime(event.GetStartTime(), event.GetEndTime());
+ pEvent->SetAllDayEvent(event.IsAllDayEvent());
+ pEvent->SetDescription(event.GetDescription());
+
+ pEvent->SetBusyStatus(event.GetBusyStatus());
+ pEvent->SetStatus(event.GetStatus());
+ pEvent->SetPriority(event.GetPriority());
+ pEvent->SetSensitivity(event.GetSensitivity());
+
+ Calendarbook calendarbook;
+ calendarbook.Construct();
+
+ CalEvent* pOriginalEvent = null;
+ pOriginalEvent = calendarbook.GetEventN(event.GetOriginalEventId());
+ if (pOriginalEvent != null)
+ {
+ pEvent->SetUid(pOriginalEvent->GetUid());
+ pEvent->SetCategory(pOriginalEvent->GetCategory());
+ pEvent->SetTimeZone(pOriginalEvent->GetTimeZone());
+
+ const IList& reminders = pOriginalEvent->GetAllReminders();
+ for (int i = 0; i < reminders.GetCount(); ++i)
+ {
+ pEvent->AddReminder(*static_cast<const Reminder*>(reminders.GetAt(i)));
+ }
+ if (__allEventEditing == true)
+ {
+ pEvent->SetRecurrence(pOriginalEvent->GetRecurrence());
+ }
+
+ IList* pAttendees = pOriginalEvent->GetAllAttendeesN();
+ if (pAttendees != null)
+ {
+ IEnumerator* pEnum = pAttendees->GetEnumeratorN();
+ while (pEnum->MoveNext() == E_SUCCESS)
+ {
+ pEvent->AddAttendee(*static_cast<Attendee*>(pEnum->GetCurrent()));
+ }
+ delete pEnum;
+ pAttendees->RemoveAll(true);
+ delete pAttendees;
+ }
+
+ double latitude = 0;
+ double longitude = 0;
+ pOriginalEvent->GetCoordinates(latitude, longitude);
+ pEvent->SetCoordinates(latitude, longitude);
+
+ delete pOriginalEvent;
+ }
+
+ delete __pEvent;
+ __pEvent = pEvent;
+
+ delete __pCalendar;
+ __pCalendar = null;
+
+ return E_SUCCESS;
+}
+
+result
+EventPresentationModel::SetVcsFile(const String& vcsFilePath)
+{
+ IList* pEvents = Calendarbook::ParseEventsFromVcalendarN(vcsFilePath);
+ TryReturn(pEvents != null, E_FAILURE, "[E_FAILURE] Unable to parse events from vcs file.");
+ TryCatch(pEvents->GetCount() > 0, delete pEvents, "[E_FAILURE] Unable to parse events from vcs file.");
+
+ delete __pEvent;
+ __pEvent = static_cast<CalEvent*>(pEvents->GetAt(0));
+ pEvents->RemoveAt(0);
+ pEvents->RemoveAll(true);
+ delete pEvents;
+
+ delete __pCalendar;
+ __pCalendar = null;
+
+ delete __pEventInstance;
+ __pEventInstance = null;
+
+ __allEventEditing = true;
+ return E_SUCCESS;
+CATCH:
+ return E_FAILURE;
+}
+
+result
+EventPresentationModel::SetSubject(const String& title)
+{
+ return __pEvent->SetSubject(title);
+}
+
+result
+EventPresentationModel::SetLocation(const String& location)
+{
+ return __pEvent->SetLocation(location);
+}
+
+result
+EventPresentationModel::SetStartTime(const DateTime& startTime)
+{
+ if (__pEvent->IsAllDayEvent() == true)
+ {
+ return SetStartEndTime(startTime, __pEvent->GetEndTime());
+ }
+
+ DateTime endWallTime = ResourceManager::ConvertUtcTimeToWallTime(__pEvent->GetEndTime());
+
+ return SetStartEndTime(startTime, endWallTime);
+}
+
+result
+EventPresentationModel::SetEndTime(const DateTime& endTime)
+{
+ if (__pEvent->IsAllDayEvent() == true)
+ {
+ return SetStartEndTime(__pEvent->GetStartTime(), endTime);
+ }
+
+ DateTime startWallTime = ResourceManager::ConvertUtcTimeToWallTime(__pEvent->GetStartTime());
+
+ return SetStartEndTime(startWallTime, endTime);
+}
+
+result
+EventPresentationModel::SetStartEndTime(const DateTime& startTime, const DateTime& endTime)
+{
+ DateTime startUtcTime = (__pEvent->IsAllDayEvent() == true) ? startTime : ResourceManager::ConvertWallTimeToUtcTime(startTime);
+ DateTime endUtcTime = (__pEvent->IsAllDayEvent() == true) ? endTime : ResourceManager::ConvertWallTimeToUtcTime(endTime);
+
+ if (__pEvent->IsRecurring() == true)
+ {
+ Recurrence recurrence(*__pEvent->GetRecurrence());
+ __pEvent->SetRecurrence(null);
+ result r = __pEvent->SetStartAndEndTime(startUtcTime, endUtcTime);
+
+ switch (recurrence.GetFrequency())
+ {
+ case FREQ_WEEKLY:
+ {
+ Locales::Calendar* pCalendar = Locales::Calendar::CreateInstanceN(Locales::CALENDAR_GREGORIAN);
+ pCalendar->SetTime(startTime);
+ int dayOfWeekValue = pCalendar->GetTimeField(Locales::TIME_FIELD_DAY_OF_WEEK);
+ delete pCalendar;
+
+ CalDayOfWeek dayOfWeek;
+ switch (dayOfWeekValue)
+ {
+ case 1:
+ dayOfWeek = CAL_SUNDAY;
+ break;
+ case 2:
+ dayOfWeek = CAL_MONDAY;
+ break;
+ case 3:
+ dayOfWeek = CAL_TUESDAY;
+ break;
+ case 4:
+ dayOfWeek = CAL_WEDNESDAY;
+ break;
+ case 5:
+ dayOfWeek = CAL_THURSDAY;
+ break;
+ case 6:
+ dayOfWeek = CAL_FRIDAY;
+ break;
+ case 7:
+ dayOfWeek = CAL_SATURDAY;
+ break;
+ default:
+ dayOfWeek = CAL_SUNDAY;
+ break;
+ }
+ recurrence.SetDayOfWeek(dayOfWeek);
+ }
+ break;
+ case FREQ_MONTHLY:
+ recurrence.SetDayOfMonth(startTime.GetDay());
+ break;
+ case FREQ_YEARLY:
+ recurrence.SetDayOfMonth(startTime.GetDay());
+ recurrence.SetMonthOfYear(startTime.GetMonth());
+ break;
+ default:
+ break;
+ }
+
+ __pEvent->SetRecurrence(&recurrence);
+ return r;
+ }
+ return __pEvent->SetStartAndEndTime(startUtcTime, endUtcTime);
+}
+
+void
+EventPresentationModel::SetAllDayEvent(bool isAllDayEvent)
+{
+ __pEvent->SetAllDayEvent(isAllDayEvent);
+}
+
+result
+EventPresentationModel::SetTimezone(const String& timezoneId)
+{
+ result r = E_SUCCESS;
+ Locales::LocaleManager localemanager;
+ localemanager.Construct();
+
+ IList* pTimeZones = localemanager.GetAvailableTimeZonesN();
+ Locales::TimeZone* pTimeZone = null;
+ IEnumerator* pTimeZoneEnum = pTimeZones->GetEnumeratorN();
+ while (pTimeZoneEnum->MoveNext() == E_SUCCESS)
+ {
+ pTimeZone = static_cast<Locales::TimeZone*>(pTimeZoneEnum->GetCurrent());
+ if (pTimeZone != null)
+ {
+ if (timezoneId.Equals(pTimeZone->GetId()) == true)
+ {
+ r = __pEvent->SetTimeZone(*pTimeZone);
+ TryCatch(r == E_SUCCESS, , "[%s] Unable to set timezone.", GetErrorMessage(r));
+ }
+ }
+ }
+
+CATCH:
+ pTimeZones->RemoveAll(true);
+ delete pTimeZones;
+ delete pTimeZoneEnum;
+ return r;
+}
+
+result
+EventPresentationModel::SetRecurrence(Recurrence* pRecurrence)
+{
+ return __pEvent->SetRecurrence(pRecurrence);
+}
+
+result
+EventPresentationModel::SetDescription(const String& description)
+{
+ return __pEvent->SetDescription(description);
+}
+
+result
+EventPresentationModel::Update(void)
+{
+ __pEventBackup = new (std::nothrow) CalEvent(*__pEvent);
+ __pEventInstanceBackup = __pEventInstance;
+ __pEventInstance = null;
+
+ if (__pEvent->GetSubject().IsEmpty() == true)
+ {
+ __pEvent->SetSubject(ResourceManager::GetString(IDS_CLD_BODY_NO_TITLE));
+ }
+
+ // Check duplicated reminder
+ for (int i = 0; i < GetCountReminder() - 1; ++i)
+ {
+ const Reminder* pReminder = GetReminder(i);
+ for (int j = i + 1; j < GetCountReminder(); ++j)
+ {
+ const Reminder* pCompReminder = GetReminder(j);
+ if (pReminder->GetTimeOffset() == pCompReminder->GetTimeOffset()
+ && pReminder->GetTimeUnit() == pCompReminder->GetTimeUnit())
+ {
+ __pEvent->RemoveReminderAt(j--);
+ }
+ }
+ }
+
+ result r = E_SUCCESS;
+ Calendarbook calendarbook;
+ calendarbook.Construct();
+
+ if (__pEvent->GetRecordId() == INVALID_RECORD_ID)
+ {
+ if (__pCalendar != null)
+ {
+ r = calendarbook.AddEvent(*__pEvent, __pCalendar->GetRecordId());
+ }
+ else
+ {
+ r = calendarbook.AddEvent(*__pEvent);
+ }
+ }
+ else
+ {
+ if (__pCalendar != null && __pCalendar->GetRecordId() != __pEvent->GetCalendarId())
+ {
+ // TBD... (Account selection is not possible in Tizen 2.0 a3 RC1.)
+
+ // Temporary codes.
+ r = calendarbook.AddEvent(*__pEvent, __pCalendar->GetRecordId());
+ }
+ else
+ {
+ r = calendarbook.UpdateEvent(*__pEvent);
+ }
+ }
+
+ AppLogDebugIf(r != E_SUCCESS, "[%s] Unable to update event.", GetErrorMessage(r));
+ return r;
+}
+
+//result
+//EventPresentationModel::Update(RecordId calendarId)
+//{
+// if (__pEvent->GetSubject().IsEmpty() == true)
+// {
+// __pEvent->SetSubject(ResourceManager::GetString(IDS_TITLE_EMPTY_STRING));
+// }
+//
+// result r = E_SUCCESS;
+// Calendarbook calendarbook;
+// calendarbook.Construct();
+//
+// if (__pEvent->GetCalendarId() == calendarId)
+// {
+// r = calendarbook.UpdateEvent(*__pEvent);
+// }
+// else
+// {
+// // TBD... (Account selection is not possible in Tizen 2.0 a3 RC1.)
+//
+// //Temporary codes.
+// r = calendarbook.AddEvent(*__pEvent, calendarId);
+// if (r == E_SUCCESS && __pCalendar != null)
+// {
+// delete __pCalendar;
+// __pCalendar = calendarbook.GetCalendarN(calendarId);
+// }
+// }
+//
+// AppLogDebugIf(r != E_SUCCESS, "[%s] Unable to update event.", GetErrorMessage(r));
+// return r;
+//}
+
+void
+EventPresentationModel::Commit(void)
+{
+ if (__allEventEditing == false)
+ {
+ Calendarbook calendarbook;
+ calendarbook.Construct();
+ calendarbook.RemoveEventInstance(*__pEventInstanceBackup);
+ __allEventEditing = true;
+ }
+
+ delete __pEventBackup;
+ __pEventBackup = null;
+ delete __pEventInstanceBackup;
+ __pEventInstanceBackup = null;
+}
+
+void
+EventPresentationModel::Rollback(void)
+{
+ Calendarbook calendarbook;
+ calendarbook.Construct();
+
+ if (__allEventEditing == true)
+ {
+ if (__pEventBackup->GetRecordId() != INVALID_RECORD_ID)
+ {
+ calendarbook.UpdateEvent(*__pEventBackup);
+ }
+ else
+ {
+ calendarbook.RemoveEvent(*__pEvent);
+ }
+ }
+ else
+ {
+ calendarbook.RemoveEvent(*__pEvent);
+ }
+
+ delete __pEvent;
+ __pEvent = __pEventBackup;
+ __pEventBackup = null;
+ delete __pEventInstance;
+ __pEventInstance = __pEventInstanceBackup;
+ __pEventInstanceBackup = null;
+}
+
+result
+EventPresentationModel::SetCurrentDate(const DateTime& currentTime)
+{
+ DateTime startUtcTime = __pEvent->GetStartTime();
+ DateTime endUtcTime = __pEvent->GetEndTime();
+ DateTime currentUtcTime;
+
+ currentUtcTime = ResourceManager::ConvertWallTimeToUtcTime(currentTime);
+
+ startUtcTime.SetValue(currentUtcTime.GetYear(), currentUtcTime.GetMonth(), currentUtcTime.GetDay(),
+ startUtcTime.GetHour(), startUtcTime.GetMinute(), startUtcTime.GetSecond());
+ endUtcTime.SetValue(currentUtcTime.GetYear(), currentUtcTime.GetMonth(), currentUtcTime.GetDay(),
+ endUtcTime.GetHour(), endUtcTime.GetMinute(), endUtcTime.GetSecond());
+
+ return __pEvent->SetStartAndEndTime(startUtcTime, endUtcTime);
+}
+
+void
+EventPresentationModel::SetAllEventEditing(bool allEventEditing)
+{
+ __allEventEditing = allEventEditing;
+}
+
+int
+EventPresentationModel::GetCountReminder(void)
+{
+ return __pEvent->GetAllReminders().GetCount();
+}
+
+result
+EventPresentationModel::AddReminder(const Reminder& reminder)
+{
+ return __pEvent->AddReminder(reminder);
+}
+
+result
+EventPresentationModel::SetReminderAt(const Reminder& reminder, int index)
+{
+ TryReturn(index < __pEvent->GetAllReminders().GetCount() && index >= 0, E_INVALID_ARG,
+ "[E_INVALID_ARG] index is invalid.(index = %d, count = %d)", index, __pEvent->GetAllReminders().GetCount());
+
+ __pEvent->RemoveReminderAt(index);
+ __pEvent->AddReminder(reminder);
+
+ int count = __pEvent->GetAllReminders().GetCount();
+ for (int i = index + 1; i < count; ++i)
+ {
+ Reminder tmpReminder = *GetReminder(index);
+ __pEvent->RemoveReminderAt(index);
+ __pEvent->AddReminder(tmpReminder);
+ }
+
+ return E_SUCCESS;
+}
+
+result
+EventPresentationModel::RemoveReminderAt(int index)
+{
+ return __pEvent->RemoveReminderAt(index);
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClEventSearchPresentationModel.cpp
+ * @brief This is the implementation file for the EventSearchPresentationModel class.
+ */
+
+#include <new>
+#include <FSystem.h>
+#include "ClEventSearchPresentationModel.h"
+#include "ClNodes.h"
+#include "ClResourceManager.h"
+#include "ClTypes.h"
+
+using namespace Tizen;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Graphics;
+using namespace Tizen::Social;
+using namespace Tizen::System;
+
+
+EventSearchPresentationModel::EventSearchPresentationModel(void)
+ : __pCalendarbook(null)
+ , __pDateFormatter(null)
+ , __pTimeFormatter(null)
+{
+}
+
+EventSearchPresentationModel::~EventSearchPresentationModel(void)
+{
+ __calendars.RemoveAll(true);
+
+ RemoveAllEvents();
+
+ delete __pCalendarbook;
+ delete __pDateFormatter;
+ delete __pTimeFormatter;
+}
+
+result
+EventSearchPresentationModel::Construct(void)
+{
+ __pCalendarbook = new (std::nothrow) Calendarbook();
+ __pCalendarbook->Construct(*this);
+
+ __indexedEvents.Construct();
+
+ CalendarbookFilter calendarFilter(CB_FI_TYPE_CALENDAR);
+ calendarFilter.AppendInt(FI_CONJ_OP_NONE, CALENDAR_FI_PR_ITEM_TYPE, FI_CMP_OP_EQUAL, CALENDAR_ITEM_TYPE_EVENT_ONLY);
+ IList* pAllCalendars = __pCalendarbook->SearchN(calendarFilter);
+ __calendars.Construct(pAllCalendars->GetCount());
+ IEnumerator* pEnum = pAllCalendars->GetEnumeratorN();
+ while (pEnum->MoveNext() == E_SUCCESS)
+ {
+ Calendar* pCalendar = static_cast<Calendar*>(pEnum->GetCurrent());
+ __calendars.Add(new (std::nothrow) Integer(pCalendar->GetRecordId()), pCalendar);
+ }
+ delete pEnum;
+ pAllCalendars->RemoveAll(false);
+ delete pAllCalendars;
+
+ __pDateFormatter = ResourceManager::CreateDateFormatterN(Locales::DATE_TIME_STYLE_FULL);
+ __pTimeFormatter = ResourceManager::CreateTimeFormatterN();
+
+ return E_SUCCESS;
+}
+
+result
+EventSearchPresentationModel::AddCalendarEventChangedEventListener(ICalendarEventChangedEventListener& listener)
+{
+ return __eventChangedListeners.Add(&listener);
+}
+
+result
+EventSearchPresentationModel::RemoveCalendarEventChangedEventListener(ICalendarEventChangedEventListener& listener)
+{
+ return __eventChangedListeners.Remove(listener);
+}
+
+Locales::DateTimeFormatter*
+EventSearchPresentationModel::GetDateFormatter(void) const
+{
+ return __pDateFormatter;
+}
+
+Locales::DateTimeFormatter*
+EventSearchPresentationModel::GetTimeFormatter(void) const
+{
+ return __pTimeFormatter;
+}
+
+String
+EventSearchPresentationModel::GetDateString(const DateTime& date) const
+{
+ String str;
+ result r = __pDateFormatter->Format(date, str);
+ TryReturn(r == E_SUCCESS, L"", "[%s] Unable to get date string.", GetErrorMessage(r));
+ return str;
+}
+
+String
+EventSearchPresentationModel::GetTimeString(const DateTime& time) const
+{
+ String str;
+ result r = __pTimeFormatter->Format(time, str);
+ TryReturn(r == E_SUCCESS, L"", "[%s] Unable to get time string.", GetErrorMessage(r));
+ return str;
+}
+
+Color
+EventSearchPresentationModel::GetCalendarColor(const RecordId& calendarId) const
+{
+ const Calendar* pCalendar = static_cast<const Calendar*>(__calendars.GetValue(Integer(calendarId)));
+ if (pCalendar == null)
+ {
+ return Color();
+ }
+
+ byte r;
+ byte g;
+ byte b;
+ pCalendar->GetColor(r, g, b);
+ return Color(r, g, b);
+}
+
+int
+EventSearchPresentationModel::GetWholeDayCount(void) const
+{
+ return __indexedEvents.GetCount();
+}
+
+int
+EventSearchPresentationModel::GetAllDayEventCount(const DateTime& date) const
+{
+ return GetAllDayEventCount(GetGroupIndex(date));
+}
+
+int
+EventSearchPresentationModel::GetAllDayEventCount(int groupIndex) const
+{
+ if (groupIndex < 0)
+ {
+ return -1;
+ }
+
+ const EventListNode* pNode = static_cast<const EventListNode*>(__indexedEvents.GetAt(groupIndex));
+ TryReturn((pNode != null), -1, "[E_FAILURE] Unable to load node.");
+
+ return pNode->GetAllDayEventCount();
+}
+
+int
+EventSearchPresentationModel::GetEventCount(const DateTime& date) const
+{
+ return GetEventCount(GetGroupIndex(date));
+}
+
+int
+EventSearchPresentationModel::GetEventCount(int groupIndex) const
+{
+ if (groupIndex < 0)
+ {
+ return -1;
+ }
+
+ const EventListNode* pNode = static_cast<const EventListNode*>(__indexedEvents.GetAt(groupIndex));
+ TryReturn((pNode != null), -1, "[E_FAILURE] Unable to load node.");
+
+ return pNode->GetEventCount();
+}
+
+int
+EventSearchPresentationModel::GetWholeEventCount(const DateTime& date) const
+{
+ return GetWholeEventCount(GetGroupIndex(date));
+}
+
+int
+EventSearchPresentationModel::GetWholeEventCount(int groupIndex) const
+{
+ if (groupIndex < 0)
+ {
+ return -1;
+ }
+
+ const EventListNode* pNode = static_cast<const EventListNode*>(__indexedEvents.GetAt(groupIndex));
+ TryReturn((pNode != null), -1, "[E_FAILURE] Unable to load node.");
+
+ return pNode->GetWholeEventCount();
+}
+
+DateTime
+EventSearchPresentationModel::GetDateTimeFromGroupIndex(int groupIndex) const
+{
+ const EventListNode* pNode = static_cast<const EventListNode*>(__indexedEvents.GetAt(groupIndex));
+ TryReturn((pNode != null), DateTime(), "[E_FAILURE] Unable to load node.");
+
+ return pNode->GetDate();
+}
+
+int
+EventSearchPresentationModel::GetGroupIndex(const DateTime& date) const
+{
+ return FindGroupIndex(date, 0, __indexedEvents.GetCount() - 1);
+}
+
+const CalEventInstance*
+EventSearchPresentationModel::GetAllDayEvent(const DateTime& date, int index) const
+{
+ return GetAllDayEvent(GetGroupIndex(date), index);
+}
+
+const CalEventInstance*
+EventSearchPresentationModel::GetAllDayEvent(int groupIndex, int index) const
+{
+ if (groupIndex < 0)
+ {
+ return null;
+ }
+
+ const EventListNode* pNode = static_cast<const EventListNode*>(__indexedEvents.GetAt(groupIndex));
+ TryReturn((pNode != null), null, "[E_FAILURE] Unable to load node.");
+
+ return pNode->GetAllDayEvent(index);
+}
+
+const CalEventInstance*
+EventSearchPresentationModel::GetEvent(const DateTime& date, int index) const
+{
+ return GetEvent(GetGroupIndex(date), index);
+}
+
+const CalEventInstance*
+EventSearchPresentationModel::GetEvent(int groupIndex, int index) const
+{
+ if (groupIndex < 0)
+ {
+ return null;
+ }
+
+ const EventListNode* pNode = static_cast<const EventListNode*>(__indexedEvents.GetAt(groupIndex));
+ TryReturn((pNode != null), null, "[E_FAILURE] Unable to load node.");
+
+ return pNode->GetEvent(index);
+}
+
+const CalEventInstance*
+EventSearchPresentationModel::GetEventWithWholeIndex(const DateTime& date, int index) const
+{
+ return GetEventWithWholeIndex(GetGroupIndex(date), index);
+}
+
+const CalEventInstance*
+EventSearchPresentationModel::GetEventWithWholeIndex(int groupIndex, int index) const
+{
+ if (groupIndex < 0)
+ {
+ return null;
+ }
+
+ const EventListNode* pNode = static_cast<const EventListNode*>(__indexedEvents.GetAt(groupIndex));
+ TryReturn((pNode != null), null, "[E_FAILURE] Unable to load node.");
+
+ return pNode->GetEventWithWholeIndex(index);
+}
+
+String
+EventSearchPresentationModel::GetSearchText(void) const
+{
+ return __searchText;
+}
+
+result
+EventSearchPresentationModel::RemoveEvent(const CalEventInstance& event, bool deleteOriginal)
+{
+ if (deleteOriginal == true)
+ {
+ return __pCalendarbook->RemoveEvent(event.GetOriginalEventId());
+ }
+
+ return __pCalendarbook->RemoveEventInstance(event);
+}
+
+result
+EventSearchPresentationModel::SearchEvent(const String& text)
+{
+ RemoveAllEvents();
+ __searchText = text;
+ if (__searchText.IsEmpty() == true)
+ {
+ return E_SUCCESS;
+ }
+
+ // Search events and create nodes.
+ CalendarbookFilter eventsFilter(CB_FI_TYPE_EVENT);
+ eventsFilter.AppendString(FI_CONJ_OP_NONE, EVENT_FI_PR_SUBJECT, FI_STR_OP_CONTAIN, __searchText);
+// eventsFilter.AppendString(FI_CONJ_OP_OR, EVENT_FI_PR_DESCRIPTION, FI_STR_OP_CONTAIN, __searchText);
+ eventsFilter.AppendString(FI_CONJ_OP_OR, EVENT_FI_PR_LOCATION, FI_STR_OP_CONTAIN, __searchText);
+ IList* pEvents = __pCalendarbook->SearchN(eventsFilter);
+ LinkedList allDayEventNodes;
+ LinkedList eventNodes;
+ if (pEvents != null)
+ {
+ IEnumerator* pEnum = pEvents->GetEnumeratorN();
+ while (pEnum->MoveNext() == E_SUCCESS)
+ {
+ CalEvent* pEvent = static_cast<CalEvent*>(pEnum->GetCurrent());
+ LinkedList* pNodes = null;
+ CalEventInstance* pEventInstance = null;
+ if (pEvent->IsAllDayEvent() == true)
+ {
+ CalendarbookFilter allDayEventInstanceFilter(CB_FI_TYPE_ALL_DAY_EVENT_INSTANCE);
+ allDayEventInstanceFilter.AppendInt(FI_CONJ_OP_NONE, EVENT_INST_FI_PR_ORIGINAL_EVENT_ID, FI_CMP_OP_EQUAL, pEvent->GetRecordId());
+ IList* pEventInstances = __pCalendarbook->SearchN(allDayEventInstanceFilter, EVENT_INST_FI_PR_START_TIME, SORT_ORDER_ASCENDING, 0, 1);
+ if (pEventInstances != null)
+ {
+ pEventInstance = static_cast<CalEventInstance*>(pEventInstances->GetAt(0));
+ if (pEventInstance != null)
+ {
+ pEventInstances->RemoveAt(0, false);
+ pEventInstances->RemoveAll(true);
+ }
+ delete pEventInstances;
+ }
+ pNodes = &allDayEventNodes;
+ }
+ else
+ {
+ CalendarbookFilter eventInstanceFilter(CB_FI_TYPE_NON_ALL_DAY_EVENT_INSTANCE);
+ eventInstanceFilter.AppendInt(FI_CONJ_OP_NONE, EVENT_INST_FI_PR_ORIGINAL_EVENT_ID, FI_CMP_OP_EQUAL, pEvent->GetRecordId());
+ IList* pEventInstances = __pCalendarbook->SearchN(eventInstanceFilter, EVENT_INST_FI_PR_START_TIME, SORT_ORDER_ASCENDING, 0, 1);
+ if (pEventInstances != null)
+ {
+ pEventInstance = static_cast<CalEventInstance*>(pEventInstances->GetAt(0));
+ if (pEventInstance != null)
+ {
+ pEventInstances->RemoveAt(0, false);
+ pEventInstances->RemoveAll(true);
+ }
+ delete pEventInstances;
+ }
+ pNodes = &eventNodes;
+ }
+
+ if (pEventInstance != null)
+ {
+ int index = 0;
+ IEnumerator* pEnumNodes = pNodes->GetEnumeratorN();
+ while (pEnumNodes->MoveNext() == E_SUCCESS)
+ {
+ if (pEventInstance->GetStartTime() < static_cast<EventNode*>(pEnumNodes->GetCurrent())->GetEvent()->GetStartTime())
+ {
+ break;
+ }
+ ++index;
+ }
+ delete pEnumNodes;
+ pNodes->InsertAt(new (std::nothrow) EventNode(*pEventInstance), index);
+ }
+ }
+ delete pEnum;
+ pEvents->RemoveAll(true);
+ delete pEvents;
+ }
+
+ // Indexing
+ DateTime date = DateTime::GetMinValue();
+ IEnumerator* pAllDayEventNodesEnum = allDayEventNodes.GetEnumeratorN();
+ IEnumerator* pEventNodesEnum = eventNodes.GetEnumeratorN();
+ LinkedList removeList;
+ while (allDayEventNodes.GetCount() > 0 || eventNodes.GetCount() > 0)
+ {
+ if (allDayEventNodes.GetCount() > 0)
+ {
+ if (eventNodes.GetCount() > 0)
+ {
+ EventNode* pAllDayEventNode = static_cast<EventNode*>(allDayEventNodes.GetAt(0));
+ EventNode* pEventNode = static_cast<EventNode*>(eventNodes.GetAt(0));
+ DateTime eventStartTime = ResourceManager::ConvertUtcTimeToWallTime(pAllDayEventNode->GetEvent()->GetStartTime());
+ DateTime eventNodeStartTime = ResourceManager::ConvertUtcTimeToWallTime(pEventNode->GetEvent()->GetStartTime());
+ if (eventStartTime > eventNodeStartTime)
+ {
+ eventStartTime = eventNodeStartTime;
+ }
+ if (eventStartTime > date)
+ {
+ date.SetValue(eventStartTime.GetYear(), eventStartTime.GetMonth(), eventStartTime.GetDay());
+ }
+ }
+ else
+ {
+ EventNode* pAllDayEventNode = static_cast<EventNode*>(allDayEventNodes.GetAt(0));
+ DateTime eventStartTime = ResourceManager::ConvertUtcTimeToWallTime(pAllDayEventNode->GetEvent()->GetStartTime());
+ if (eventStartTime > date)
+ {
+ date = eventStartTime;
+ date.SetValue(date.GetYear(), date.GetMonth(), date.GetDay());
+ }
+ }
+ }
+ else
+ {
+ EventNode* pEventNode = static_cast<EventNode*>(eventNodes.GetAt(0));
+ DateTime eventStartTime = ResourceManager::ConvertUtcTimeToWallTime(pEventNode->GetEvent()->GetStartTime());
+ if (eventStartTime > date)
+ {
+ date = eventStartTime;
+ date.SetValue(date.GetYear(), date.GetMonth(), date.GetDay());
+ }
+ }
+
+ EventListNode* pNode = new (std::nothrow) EventListNode(date);
+ date.AddDays(1);
+
+ // Indexing All-day Event
+ while (pAllDayEventNodesEnum->MoveNext() == E_SUCCESS)
+ {
+ EventNode* pAllDayEventNode = static_cast<EventNode*>(pAllDayEventNodesEnum->GetCurrent());
+ CalEventInstance* pAllDayEvent = pAllDayEventNode->GetEvent();
+ if (ResourceManager::ConvertUtcTimeToWallTime(pAllDayEvent->GetStartTime()) >= date)
+ {
+ break;
+ }
+ else if (ResourceManager::ConvertUtcTimeToWallTime(pAllDayEvent->GetEndTime()) < date) // This expression differs from the Non-all-day event's.
+ {
+ pNode->Add(*pAllDayEventNode);
+ removeList.Add(pAllDayEventNode);
+ }
+ else
+ {
+ pAllDayEventNode->AddRef();
+ pNode->Add(*pAllDayEventNode);
+ }
+ }
+ if (removeList.GetCount() > 0)
+ {
+ do
+ {
+ EventNode* pAllDayEventNode = static_cast<EventNode*>(removeList.GetAt(0));
+ allDayEventNodes.Remove(*pAllDayEventNode);
+ removeList.RemoveAt(0);
+ } while (removeList.GetCount() > 0);
+ delete pAllDayEventNodesEnum;
+ pAllDayEventNodesEnum = allDayEventNodes.GetEnumeratorN();
+ }
+ else
+ {
+ pAllDayEventNodesEnum->Reset();
+ }
+
+ // Indexing Non All-day Event
+ while (pEventNodesEnum->MoveNext() == E_SUCCESS)
+ {
+ EventNode* pEventNode = static_cast<EventNode*>(pEventNodesEnum->GetCurrent());
+ CalEventInstance* pEvent = pEventNode->GetEvent();
+ if (ResourceManager::ConvertUtcTimeToWallTime(pEvent->GetStartTime()) >= date)
+ {
+ break;
+ }
+ else if (ResourceManager::ConvertUtcTimeToWallTime(pEvent->GetEndTime()) <= date) // This expression differs from the All-day event's.
+ {
+ pNode->Add(*pEventNode);
+ removeList.Add(pEventNode);
+ }
+ else
+ {
+ pEventNode->AddRef();
+ pNode->Add(*pEventNode);
+ }
+ }
+ if (removeList.GetCount() > 0)
+ {
+ do
+ {
+ EventNode* pEventNode = static_cast<EventNode*>(removeList.GetAt(0));
+ eventNodes.Remove(*pEventNode);
+ removeList.RemoveAt(0);
+ } while (removeList.GetCount() > 0);
+ delete pEventNodesEnum;
+ pEventNodesEnum = eventNodes.GetEnumeratorN();
+ }
+ else
+ {
+ pEventNodesEnum->Reset();
+ }
+
+ __indexedEvents.Add(pNode);
+ }
+ delete pAllDayEventNodesEnum;
+ delete pEventNodesEnum;
+
+ return E_SUCCESS;
+}
+
+void
+EventSearchPresentationModel::OnCalendarEventsChanged(const IList& eventChangeInfoList)
+{
+ if (__searchText.IsEmpty() == false)
+ {
+ SearchEvent(__searchText);
+ if (__eventChangedListeners.GetCount() > 0)
+ {
+ IEnumerator* pEnum = __eventChangedListeners.GetEnumeratorN();
+ while (pEnum->MoveNext() == E_SUCCESS)
+ {
+ static_cast<ICalendarEventChangedEventListener*>(pEnum->GetCurrent())->OnCalendarEventChanged();
+ }
+ delete pEnum;
+ }
+ }
+}
+
+void
+EventSearchPresentationModel::OnCalendarTodosChanged(const IList& todoChangeInfoList)
+{
+}
+
+bool
+EventSearchPresentationModel::IsSameDay(const DateTime& day1, const DateTime& day2)
+{
+ return day1.GetYear() == day2.GetYear() && day1.GetMonth() == day2.GetMonth() && day1.GetDay() == day2.GetDay();
+}
+
+bool
+EventSearchPresentationModel::IsToday(const DateTime& date)
+{
+ DateTime today;
+ SystemTime::GetCurrentTime(TIME_MODE_WALL, today);
+ return today.GetYear() == date.GetYear() && today.GetMonth() == date.GetMonth() && today.GetDay() == date.GetDay();
+}
+
+int
+EventSearchPresentationModel::FindGroupIndex(const DateTime& date, int start, int end) const
+{
+ if (start < end)
+ {
+ int mid = (start + end) >> 1;
+ const EventListNode* pNode = static_cast<const EventListNode*>(__indexedEvents.GetAt(mid));
+ if (IsSameDay(date, pNode->GetDate()) == true)
+ {
+ return mid;
+ }
+
+ if (pNode->GetDate() > date)
+ {
+ return FindGroupIndex(date, start, mid - 1);
+ }
+ return FindGroupIndex(date, mid + 1, end);
+ }
+ else if (start == end)
+ {
+ const EventListNode* pNode = static_cast<const EventListNode*>(__indexedEvents.GetAt(start));
+ if (IsSameDay(date, pNode->GetDate()) == true)
+ {
+ return start;
+ }
+ return -1;
+ }
+
+ return -1;
+}
+
+void
+EventSearchPresentationModel::RemoveAllEvents(void)
+{
+ __indexedEvents.RemoveAll(true);
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClEventSearcherForm.cpp
+ * @brief This is the implementation file for the EventSearcherForm class.
+ */
+
+#include <new>
+#include <FGraphics.h>
+#include <FSocial.h>
+#include <FUi.h>
+#include "ClEventItem.h"
+#include "ClEventSearcherForm.h"
+#include "ClEventSearchPresentationModel.h"
+#include "ClResourceManager.h"
+#include "ClSharePopup.h"
+#include "ClThreeButtonPopup.h"
+#include "ClTwoButtonPopup.h"
+#include "ClTypes.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Graphics;
+using namespace Tizen::Social;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+static const int IDA_EVENT_SEARCHER_CONTEXT_MENU_EDIT = 50101;
+static const int IDA_EVENT_SEARCHER_CONTEXT_MENU_SHARE = 50102;
+static const int IDA_EVENT_SEARCHER_CONTEXT_MENU_DELETE = 50103;
+
+static const int GROUP_ITEM_HEIGHT = 76;
+static const unsigned int COLOR_GROUP_ITEM_BACKGROUND = Color32<209, 227, 238>::Value;
+static const unsigned int COLOR_GROUP_ITEM_TODAY_BACKGROUND = Color32<117, 171, 204>::Value;
+static const unsigned int COLOR_GROUP_ITEM_TEXT = Color32<0, 94, 160>::Value;
+
+
+EventSearcherForm::EventSearcherForm(void)
+ : __pPm(null)
+ , __pSearchBarInput(null)
+ , __pGroupedListViewEvents(null)
+ , __pContextItem(null)
+ , __pSharePopup(null)
+{
+}
+
+EventSearcherForm::~EventSearcherForm(void)
+{
+}
+
+result
+EventSearcherForm::Initialize(void)
+{
+ return Construct(L"IDL_EVENT_SEARCHER_FORM");
+}
+
+result
+EventSearcherForm::OnInitializing(void)
+{
+ __pPm = new (std::nothrow) EventSearchPresentationModel();
+ __pPm->Construct();
+
+ __pSearchBarInput = dynamic_cast<SearchBar*>(GetControl(L"IDC_SEARCHBAR"));
+ TryReturn(__pSearchBarInput != null, E_FAILURE, "[E_FAILURE] Unable to get searchbar.");
+
+ __pGroupedListViewEvents = dynamic_cast<GroupedListView*>(GetControl(L"IDC_GROUPEDLISTVIEW"));
+ TryReturn(__pGroupedListViewEvents != null, E_FAILURE, "[E_FAILURE] Unable to get groupedlistview.");
+
+ __pSearchBarInput->AddKeypadEventListener(*this);
+ __pSearchBarInput->AddActionEventListener(*this);
+ __pSearchBarInput->SetMode(SEARCH_BAR_MODE_INPUT);
+ __pGroupedListViewEvents->SetItemProvider(*this);
+ __pGroupedListViewEvents->AddGroupedListViewItemEventListener(*this);
+
+ SetFormBackEventListener(this);
+
+ __pSharePopup = new (std::nothrow) SharePopup();
+ __pSharePopup->Initialize();
+
+ return E_SUCCESS;
+}
+
+result
+EventSearcherForm::OnTerminating(void)
+{
+ delete __pPm;
+ delete __pSharePopup;
+ return E_SUCCESS;
+}
+
+void
+EventSearcherForm::OnUserEventReceivedN(RequestId requestId, IList* pArgs)
+{
+ switch (requestId)
+ {
+ case IDA_EVENT_POPUP_DELETE:
+ __pPm->RemoveEvent(*static_cast<const CalEventInstance*>(pArgs->GetAt(0)), true);
+ break;
+ case IDA_EVENT_POPUP_ONLY_THIS_EVENT_DELETE:
+ __pPm->RemoveEvent(*static_cast<const CalEventInstance*>(pArgs->GetAt(0)), false);
+ break;
+ case IDA_EVENT_POPUP_ALL_REPETITIVE_EVENT_DELETE:
+ __pPm->RemoveEvent(*static_cast<const CalEventInstance*>(pArgs->GetAt(0)), true);
+ break;
+ case IDA_EVENT_POPUP_ONLY_THIS_EVENT_EDIT:
+ pArgs->Add(new (std::nothrow) Boolean(false));
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_EVENT_EDITOR,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT), pArgs);
+ pArgs = null;
+ break;
+ case IDA_EVENT_POPUP_ALL_REPETITIVE_EVENT_EDIT:
+ pArgs->Add(new (std::nothrow) Boolean(true));
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_EVENT_EDITOR,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT), pArgs);
+ pArgs = null;
+ break;
+ }
+
+ if (pArgs != null)
+ {
+ pArgs->RemoveAll(true);
+ delete pArgs;
+ }
+}
+
+void
+EventSearcherForm::OnActionPerformed(const Control& source, int actionId)
+{
+ if (actionId == __pSearchBarInput->GetButtonActionId())
+ {
+ __pSearchBarInput->SetMode(SEARCH_BAR_MODE_NORMAL);
+ __pSearchBarInput->Invalidate(false);
+ }
+}
+
+void
+EventSearcherForm::OnFormBackRequested(Form& source)
+{
+ SceneManager::GetInstance()->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT));
+}
+
+int
+EventSearcherForm::GetGroupCount(void)
+{
+ return __pPm->GetWholeDayCount();
+}
+
+int
+EventSearcherForm::GetItemCount(int groupIndex)
+{
+ return __pPm->GetWholeEventCount(groupIndex);
+}
+
+GroupItem*
+EventSearcherForm::CreateGroupItem(int groupIndex, int itemWidth)
+{
+ GroupItem* pItem = new (std::nothrow) GroupItem();
+ pItem->Construct(Dimension(itemWidth, GROUP_ITEM_HEIGHT));
+
+ DateTime date = __pPm->GetDateTimeFromGroupIndex(groupIndex);
+ pItem->SetElement(__pPm->GetDateString(date));
+
+ if (EventSearchPresentationModel::IsToday(date) == true)
+ {
+ pItem->SetBackgroundColor(Color(COLOR_GROUP_ITEM_TODAY_BACKGROUND));
+ }
+ else
+ {
+ pItem->SetBackgroundColor(Color(COLOR_GROUP_ITEM_BACKGROUND));
+ }
+
+ pItem->SetTextColor(Color(COLOR_GROUP_ITEM_TEXT));
+
+ return pItem;
+}
+
+bool
+EventSearcherForm::DeleteGroupItem(int groupIndex, GroupItem* pItem, int itemWidth)
+{
+ delete pItem;
+ return true;
+}
+
+ListItemBase*
+EventSearcherForm::CreateItem(int groupIndex, int itemIndex, int itemWidth)
+{
+ const CalEventInstance* pEvent = __pPm->GetEventWithWholeIndex(groupIndex, itemIndex);
+ if (pEvent == null)
+ {
+ return null;
+ }
+
+ DateTime startWallTime = ResourceManager::ConvertUtcTimeToWallTime(pEvent->GetStartTime());
+ DateTime endWallTime = ResourceManager::ConvertUtcTimeToWallTime(pEvent->GetEndTime());
+
+ EventItem* pItem = new (std::nothrow) EventItem();
+ pItem->Initialize(EVENT_ITEM_STYLE_NORMAL, itemWidth);
+ pItem->SetTitle(pEvent->GetSubject());
+ pItem->SetLocation(pEvent->GetLocation());
+ pItem->SetSearchText(__pPm->GetSearchText());
+ pItem->SetCalendarColor(__pPm->GetCalendarColor(pEvent->GetCalendarId()));
+ if (pEvent->IsAllDayEvent() == true)
+ {
+ pItem->SetAllDayEvent();
+ }
+ else
+ {
+ pItem->SetDateRange(startWallTime, endWallTime, __pPm->GetDateTimeFromGroupIndex(groupIndex), __pPm->GetTimeFormatter());
+ }
+
+ pItem->SetReminder(pEvent->HasReminder());
+ pItem->SetRepeat(pEvent->IsRecurring());
+// pItem->SetFacebookEvent(false);
+
+ if (__pContextItem == null)
+ {
+ ListContextItem* pContextItem = new (std::nothrow) ListContextItem();
+ pContextItem->Construct();
+ pContextItem->AddElement(IDA_EVENT_SEARCHER_CONTEXT_MENU_EDIT,
+ ResourceManager::GetString(IDS_CLD_SK3_EDIT), true);
+ pContextItem->AddElement(IDA_EVENT_SEARCHER_CONTEXT_MENU_SHARE,
+ ResourceManager::GetString(IDS_COM_SK4_SHARE), true);
+ pContextItem->AddElement(IDA_EVENT_SEARCHER_CONTEXT_MENU_DELETE,
+ ResourceManager::GetString(IDS_CLD_SK3_DELETE), true);
+
+ __pContextItem = pContextItem;
+ }
+ pItem->SetContextItem(__pContextItem);
+
+ pItem->UpdateElements();
+ return pItem;
+}
+
+bool
+EventSearcherForm::DeleteItem(int groupIndex, int itemIndex, ListItemBase* pItem, int itemWidth)
+{
+ delete pItem;
+ return true;
+}
+
+void
+EventSearcherForm::OnGroupedListViewItemStateChanged(GroupedListView& listView, int groupIndex, int itemIndex,
+ int elementId, ListItemStatus status)
+{
+ if (status == LIST_ITEM_STATUS_SELECTED)
+ {
+ LinkedList* pList = new (std::nothrow) LinkedList();
+ pList->Add(*new (std::nothrow) CalEventInstance(*__pPm->GetEventWithWholeIndex(groupIndex, itemIndex)));
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_EVENT_DETAILS,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT), pList);
+ }
+}
+
+void
+EventSearcherForm::OnGroupedListViewItemSwept(GroupedListView& listView, int groupIndex, int itemIndex, SweepDirection direction)
+{
+}
+
+void
+EventSearcherForm::OnGroupedListViewContextItemStateChanged(GroupedListView& listView, int groupIndex, int itemIndex,
+ int elementId, ListContextItemStatus status)
+{
+ const CalEventInstance* pEventInstance = __pPm->GetEventWithWholeIndex(groupIndex, itemIndex);
+ if (status == LIST_CONTEXT_ITEM_STATUS_SELECTED)
+ {
+ switch (elementId)
+ {
+ case IDA_EVENT_SEARCHER_CONTEXT_MENU_EDIT:
+ if (pEventInstance->IsRecurring() == true)
+ {
+ ThreeButtonPopup::RequestThreeButtonPopup(THREE_BUTTON_POPUP_STYLE_EDIT, this, pEventInstance);
+ }
+ else
+ {
+ LinkedList* pList = new (std::nothrow) LinkedList();
+ pList->Add(new (std::nothrow) CalEventInstance(*pEventInstance));
+ pList->Add(new (std::nothrow) Boolean(true));
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_EVENT_EDITOR,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT), pList);
+ }
+ break;
+ case IDA_EVENT_SEARCHER_CONTEXT_MENU_SHARE:
+// SharePopup::RequestShare(pEventInstance->GetOriginalEventId());
+ __pSharePopup->RequestShare(pEventInstance->GetOriginalEventId());
+ break;
+ case IDA_EVENT_SEARCHER_CONTEXT_MENU_DELETE:
+ if (pEventInstance->IsRecurring() == true)
+ {
+ ThreeButtonPopup::RequestThreeButtonPopup(THREE_BUTTON_POPUP_STYLE_DELETE, this, pEventInstance);
+ }
+ else
+ {
+ TwoButtonPopup::RequestTwoButtonPopup(TWO_BUTTON_POPUP_STYLE_SINGLE_EVENT, this, pEventInstance);
+ }
+ break;
+ }
+ }
+}
+
+void
+EventSearcherForm::OnGroupedListViewItemLongPressed(GroupedListView& listView, int groupIndex, int itemIndex,
+ int elementId, bool& invokeListViewItemCallback)
+{
+}
+
+void
+EventSearcherForm::OnGroupedListViewGroupItemSelected(GroupedListView& listView, int groupIndex)
+{
+ if (__pGroupedListViewEvents->IsGroupExpanded(groupIndex) == true)
+ {
+ __pGroupedListViewEvents->CollapseGroup(groupIndex);
+ }
+ else
+ {
+ __pGroupedListViewEvents->ExpandGroup(groupIndex);
+ }
+}
+
+void
+EventSearcherForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs)
+{
+ __pGroupedListViewEvents->UpdateList();
+ __pPm->AddCalendarEventChangedEventListener(*this);
+}
+
+void
+EventSearcherForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
+{
+ __pPm->RemoveCalendarEventChangedEventListener(*this);
+}
+
+void
+EventSearcherForm::OnKeypadWillOpen(Control& source)
+{
+ GetFooter()->SetShowState(false);
+}
+
+void
+EventSearcherForm::OnKeypadOpened(Control& source)
+{
+ Invalidate(true);
+}
+
+void
+EventSearcherForm::OnKeypadClosed(Control& source)
+{
+ GetFooter()->SetShowState(true);
+
+ if (__pSearchBarInput->GetMode() == SEARCH_BAR_MODE_INPUT)
+ {
+ __pPm->SearchEvent(__pSearchBarInput->GetText());
+ __pGroupedListViewEvents->UpdateList();
+ }
+ Invalidate(true);
+}
+
+void
+EventSearcherForm::OnKeypadActionPerformed(Control& source, KeypadAction keypadAction)
+{
+ if (keypadAction == KEYPAD_ACTION_SEARCH || keypadAction == KEYPAD_ACTION_ENTER)
+ {
+ SetFocus();
+
+ __pPm->SearchEvent(__pSearchBarInput->GetText());
+ __pGroupedListViewEvents->UpdateList();
+ String text = __pSearchBarInput->GetText();
+ __pSearchBarInput->SetMode(SEARCH_BAR_MODE_NORMAL);
+ __pSearchBarInput->SetText(text);
+ __pSearchBarInput->Invalidate(false);
+ }
+}
+
+void
+EventSearcherForm::OnCalendarEventChanged(void)
+{
+ __pGroupedListViewEvents->UpdateList();
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClEventSelectorForm.cpp
+ * @brief This is the implementation file for the EventSelectorForm class.
+ */
+
+#include <new>
+#include "ClCalendarApp.h"
+#include "ClEventItem.h"
+#include "ClEventSelectorForm.h"
+#include "ClMainFrame.h"
+#include "ClResourceManager.h"
+#include "ClTypes.h"
+
+using namespace Tizen;
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Graphics;
+using namespace Tizen::Social;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+const int IDA_EVENT_SELECTOR_FORM_FOOTER_DONE = 80001;
+
+EventSelectorForm::EventSelectorForm(void)
+ : __selectionType(EVENT_SELECTOR_FORM_SELECTION_TYPE_SINGLE)
+ , __pEvents(null)
+ , __pListViewContents(null)
+ , __pCalendarbook(null)
+ , __pTimeFormatter(null)
+{
+}
+
+EventSelectorForm::~EventSelectorForm(void)
+{
+}
+
+result
+EventSelectorForm::Initialize(void)
+{
+ return Construct(L"IDL_EVENT_SELECTOR_FORM");
+}
+
+result
+EventSelectorForm::OnInitializing(void)
+{
+ SetFormBackEventListener(this);
+ Footer* pFooter = GetFooter();
+ pFooter->AddActionEventListener(*this);
+
+ Calendarbook* pCalendarbook = new (std::nothrow) Calendarbook();
+ pCalendarbook->Construct();
+
+ CalendarbookFilter calendarFilter(CB_FI_TYPE_CALENDAR);
+ calendarFilter.AppendInt(FI_CONJ_OP_NONE, CALENDAR_FI_PR_ITEM_TYPE, FI_CMP_OP_EQUAL, CALENDAR_ITEM_TYPE_EVENT_ONLY);
+ IList* pAllCalendars = pCalendarbook->SearchN(calendarFilter);
+ __allCalendars.Construct(pAllCalendars->GetCount());
+ IEnumerator* pEnum = pAllCalendars->GetEnumeratorN();
+ while (pEnum->MoveNext() == E_SUCCESS)
+ {
+ Calendar* pCalendar = static_cast<Calendar*>(pEnum->GetCurrent());
+ __allCalendars.Add(new (std::nothrow) Integer(pCalendar->GetRecordId()), pCalendar);
+ }
+ delete pEnum;
+ pAllCalendars->RemoveAll(false);
+ delete pAllCalendars;
+
+ __pDateFormatter = ResourceManager::CreateDateFormatterN(Locales::DATE_TIME_STYLE_SHORT);
+ __pTimeFormatter = ResourceManager::CreateTimeFormatterN();
+
+ __pListViewContents = dynamic_cast<ListView*>(GetControl(L"IDC_LISTVIEW"));
+ TryCatch(__pListViewContents != null, , "[E_FAILURE] Unable to get listview.");
+
+ __pListViewContents->SetItemProvider(*this);
+ __pListViewContents->AddListViewItemEventListener(*this);
+ __pCalendarbook = pCalendarbook;
+
+ return E_SUCCESS;
+CATCH:
+ delete pCalendarbook;
+ return E_FAILURE;
+}
+
+result
+EventSelectorForm::OnTerminating(void)
+{
+ __allCalendars.RemoveAll(true);
+
+ if (__pEvents != null)
+ {
+ __pEvents->RemoveAll(true);
+ delete __pEvents;
+ }
+
+ delete __pCalendarbook;
+ delete __pDateFormatter;
+ delete __pTimeFormatter;
+ return E_SUCCESS;
+}
+
+void
+EventSelectorForm::OnFormBackRequested(Form& source)
+{
+ result r = SendAppControlResult(APP_CTRL_RESULT_CANCELED);
+ AppLogDebugIf(r != E_SUCCESS, "[%s] Unable to return result.", GetErrorMessage(r));
+
+ UiApp::GetInstance()->Terminate();
+}
+
+int
+EventSelectorForm::GetItemCount(void)
+{
+ if (__pEvents == null)
+ {
+ return 0;
+ }
+ return __pEvents->GetCount();
+}
+
+ListItemBase*
+EventSelectorForm::CreateItem(int index, int itemWidth)
+{
+ if (__pEvents == null)
+ {
+ return null;
+ }
+
+ CalEvent* pEvent = static_cast<CalEvent*>(__pEvents->GetAt(index));
+ EventItem* pItem = new (std::nothrow) EventItem();
+ pItem->Initialize((__selectionType == EVENT_SELECTOR_FORM_SELECTION_TYPE_SINGLE) ? EVENT_ITEM_STYLE_NORMAL : EVENT_ITEM_STYLE_SELECTION, itemWidth);
+ pItem->SetTitle(pEvent->GetSubject());
+ pItem->SetCalendarColor(GetCalendarColor(pEvent->GetCalendarId()));
+ pItem->SetLocation(pEvent->GetLocation());
+ DateTime startTime = ResourceManager::ConvertUtcTimeToWallTime(pEvent->GetStartTime());
+ DateTime endTime = ResourceManager::ConvertUtcTimeToWallTime(pEvent->GetEndTime());
+ pItem->SetDateRangeText(GetDateRangeText(startTime, endTime, pEvent->IsAllDayEvent()));
+ pItem->SetReminder(pEvent->GetAllReminders().GetCount() > 0);
+ pItem->SetRepeat(pEvent->IsRecurring());
+// pItem->SetFacebookEvent(false);
+ pItem->UpdateElements();
+
+ return pItem;
+}
+
+bool
+EventSelectorForm::DeleteItem(int index, ListItemBase* pItem, int itemWidth)
+{
+ delete pItem;
+ return true;
+}
+
+void
+EventSelectorForm::OnListViewItemStateChanged(ListView& listView, int index, int elementId, ListItemStatus status)
+{
+ if (status == LIST_ITEM_STATUS_SELECTED && __selectionType == EVENT_SELECTOR_FORM_SELECTION_TYPE_SINGLE)
+ {
+ result r = E_SUCCESS;
+ LinkedList* pArgs = new (std::nothrow) LinkedList();
+ pArgs->Add(__pEvents->GetAt(index));
+ r = SendAppControlResult(APP_CTRL_RESULT_SUCCEEDED, pArgs);
+ pArgs->RemoveAll(false);
+ delete pArgs;
+ TryCatch(r == E_SUCCESS, , "[%s] Unable to return result.", GetErrorMessage(r));
+
+ UiApp::GetInstance()->Terminate();
+ return;
+
+CATCH:
+ SendAppControlResult(APP_CTRL_RESULT_FAILED);
+ UiApp::GetInstance()->Terminate();
+ }
+}
+
+void
+EventSelectorForm::OnListViewItemSwept(ListView& listView, int index, SweepDirection direction)
+{
+
+}
+
+void
+EventSelectorForm::OnListViewContextItemStateChanged(ListView& listView, int index, int elementId, ListContextItemStatus status)
+{
+
+}
+
+void
+EventSelectorForm::OnListViewItemLongPressed(ListView& listView, int index, int elementId, bool& invokeListViewItemCallback)
+{
+
+}
+
+void
+EventSelectorForm::OnListViewItemReordered(ListView& listView, int indexFrom, int indexTo)
+{
+
+}
+
+void
+EventSelectorForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs)
+{
+ if (pArgs != null)
+ {
+ pArgs->RemoveAll(true);
+ delete pArgs;
+ }
+
+ const String* pSelectionMode = static_cast<CalendarApp*>(UiApp::GetInstance())->GetArgument(KEY_CALENDAR_SELECTION_MODE);
+ const String* pItemType = static_cast<CalendarApp*>(UiApp::GetInstance())->GetArgument(KEY_CALENDAR_ITEM_TYPE);
+ if (pSelectionMode != null && pItemType != null && pItemType->Equals(VALUE_CALENDAR_EVENT_TYPE, false) == true)
+ {
+ if (pSelectionMode->Equals(VALUE_CALENDAR_MULTIPLE_SELECTION_MODE, false) == true)
+ {
+ __selectionType = EVENT_SELECTOR_FORM_SELECTION_TYPE_MULTIPLE;
+
+ LoadAllEvents();
+ __pListViewContents->UpdateList();
+ return;
+ }
+ else if (pSelectionMode->Equals(VALUE_CALENDAR_SINGLE_SELECTION_MODE, false) == true)
+ {
+ __selectionType = EVENT_SELECTOR_FORM_SELECTION_TYPE_SINGLE;
+ GetFooter()->RemoveAllItems();
+
+ LoadAllEvents();
+ __pListViewContents->UpdateList();
+ return;
+ }
+ }
+
+ SendAppControlResult(APP_CTRL_RESULT_FAILED);
+ UiApp::GetInstance()->Terminate();
+}
+
+void
+EventSelectorForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
+{
+
+}
+
+void
+EventSelectorForm::OnActionPerformed(const Control& source, int actionId)
+{
+ switch (actionId)
+ {
+ case IDA_EVENT_SELECTOR_FORM_FOOTER_DONE:
+ result r = E_SUCCESS;
+ int index = 0;
+ LinkedList* pArgs = new (std::nothrow) LinkedList();
+ IEnumerator* pEnum = __pEvents->GetEnumeratorN();
+ while (pEnum->MoveNext() == E_SUCCESS)
+ {
+ if (__pListViewContents->IsItemChecked(index++) == true)
+ {
+ pArgs->Add(pEnum->GetCurrent());
+ }
+ }
+
+ r = SendAppControlResult(APP_CTRL_RESULT_SUCCEEDED, pArgs);
+ pArgs->RemoveAll(false);
+ delete pArgs;
+ TryCatch(r == E_SUCCESS, , "[%s] Unable to return result.", GetErrorMessage(r));
+
+ UiApp::GetInstance()->Terminate();
+ return;
+
+CATCH:
+ SendAppControlResult(APP_CTRL_RESULT_FAILED);
+ UiApp::GetInstance()->Terminate();
+ break;
+ }
+}
+
+Bitmap*
+EventSelectorForm::CreateColorBarBitmapN(const Dimension& size, const Color& color)
+{
+ Bitmap* pBitmap = new (std::nothrow) Bitmap();
+ pBitmap->Construct(size, BITMAP_PIXEL_FORMAT_ARGB8888);
+
+ BufferInfo bufferinfo;
+ pBitmap->Lock(bufferinfo);
+
+ Canvas canvas;
+ canvas.Construct(bufferinfo);
+ canvas.SetBackgroundColor(color);
+ canvas.Clear();
+
+ pBitmap->Unlock();
+
+ return pBitmap;
+}
+
+Color
+EventSelectorForm::GetCalendarColor(const RecordId& calendarId) const
+{
+ const Calendar* pCalendar = static_cast<const Calendar*>(__allCalendars.GetValue(Integer(calendarId)));
+ byte r;
+ byte g;
+ byte b;
+ pCalendar->GetColor(r, g, b);
+ return Color(r, g, b);
+}
+
+String
+EventSelectorForm::GetDateRangeText(const DateTime& start, const DateTime& end, bool isAllDayEvent) const
+{
+ if (start.GetYear() == end.GetYear() && start.GetMonth() == end.GetMonth() && start.GetDay() == end.GetDay())
+ {
+ String dateText;
+ __pDateFormatter->Format(start, dateText);
+ if (isAllDayEvent == true)
+ {
+ return dateText;
+ }
+
+ String startText;
+ String endText;
+ __pTimeFormatter->Format(start, startText);
+ __pTimeFormatter->Format(end, endText);
+ return dateText + L" " + startText + L" ~ " + endText;
+ }
+
+ String startDateText;
+ String endDateText;
+ __pDateFormatter->Format(start, startDateText);
+ __pDateFormatter->Format(end, endDateText);
+ if (isAllDayEvent == true)
+ {
+ return startDateText + L" ~ " + endDateText;
+ }
+
+ String startTimeText;
+ String endTimeText;
+ __pTimeFormatter->Format(start, startTimeText);
+ __pTimeFormatter->Format(end, endTimeText);
+ return startDateText + L" " + startTimeText + L" ~ " + endDateText + L" " + endTimeText;
+}
+
+result
+EventSelectorForm::LoadAllEvents(void)
+{
+ CalendarbookFilter eventFilter(CB_FI_TYPE_EVENT);
+ IList* pList = __pCalendarbook->SearchN(eventFilter);
+ TryReturn(pList != null, E_FAILURE, "[E_FAILURE] Unable to get events.");
+
+ if (__pEvents != null)
+ {
+ __pEvents->RemoveAll(true);
+ delete __pEvents;
+ }
+ __pEvents = pList;
+ return E_SUCCESS;
+}
+
+result
+EventSelectorForm::SendAppControlResult(AppCtrlResult appControlResult, const IList* pResultList)
+{
+ CalendarApp* pApp = static_cast<CalendarApp*>(UiApp::GetInstance());
+ TryReturn(pApp != null, E_FAILURE, "[E_FAILURE] Unable to get app instance.");
+
+ HashMap* pArgs = null;
+ if (pResultList != null && pResultList->GetCount() > 0)
+ {
+ pArgs = new (std::nothrow) HashMap();
+ pArgs->Construct(2);
+ pArgs->Add(new (std::nothrow) String(KEY_CALENDAR_ITEM_TYPE), new (std::nothrow) String(VALUE_CALENDAR_EVENT_TYPE));
+
+ String* pPath = new (std::nothrow) String(CalendarApp::GetExportVcsFilePath());
+ __pCalendarbook->ExportEventsToVcalendar(*pResultList, *pPath);
+ pArgs->Add(new (std::nothrow) String(KEY_CALENDAR_PATH), pPath);
+ }
+
+ result r = AppControlProviderManager::GetInstance()->SendAppControlResult(pApp->GetRequestId(), appControlResult, pArgs);
+ if (pArgs != null)
+ {
+ pArgs->RemoveAll(true);
+ delete pArgs;
+ }
+
+ AppLogDebugIf(r != E_SUCCESS, "[%s] Unable to return result.", GetErrorMessage(r));
+ return r;
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClFormFactory.h
+ * @brief This is the implementation file for the FormFactory class.
+ */
+
+#include <new>
+#include <FBase.h>
+#include "ClCalendarListForm.h"
+#include "ClDayEventListForm.h"
+#include "ClEventDetailsForm.h"
+#include "ClEventEditorForm.h"
+#include "ClEventSearcherForm.h"
+#include "ClEventSelectorForm.h"
+#include "ClEventDeleterForm.h"
+#include "ClFormFactory.h"
+#include "ClMainForm.h"
+#include "ClReminderForm.h"
+#include "ClRepeatForm.h"
+#include "ClSettingForm.h"
+#include "ClTaskDetailsForm.h"
+#include "ClTaskSelectorForm.h"
+#include "ClTypes.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+
+FormFactory::FormFactory(void)
+{
+
+}
+
+FormFactory::~FormFactory(void)
+{
+
+}
+
+Form*
+FormFactory::CreateFormN(const String& formId, const SceneId& sceneId)
+{
+ AppLogDebug("%ls", formId.GetPointer());
+ Form* pForm = null;
+ result r = E_SUCCESS;
+ if (formId == IDC_MAIN_FORM)
+ {
+ MainForm* pMainForm = new (std::nothrow) MainForm();
+ r = pMainForm->Initialize();
+ pForm = pMainForm;
+ }
+ else if (formId == IDC_EVENT_DETAILS_FORM)
+ {
+ EventDetailsForm* pEventDetailsForm = new (std::nothrow) EventDetailsForm();
+ r = pEventDetailsForm->Initialize();
+ SceneManager::GetInstance()->AddSceneEventListener(sceneId, *pEventDetailsForm);
+ pForm = pEventDetailsForm;
+ }
+ else if (formId == IDC_DAY_EVENT_LIST_FORM)
+ {
+ DayEventListForm* pDayEventListForm = new (std::nothrow) DayEventListForm();
+ r = pDayEventListForm->Initialize();
+ SceneManager::GetInstance()->AddSceneEventListener(sceneId, *pDayEventListForm);
+ pForm = pDayEventListForm;
+ }
+ else if (formId == IDC_EVENT_EDITOR_FORM)
+ {
+ EventEditorForm* pEditEventForm = new (std::nothrow) EventEditorForm();
+ r = pEditEventForm->Initialize();
+ SceneManager::GetInstance()->AddSceneEventListener(sceneId, *pEditEventForm);
+ pForm = pEditEventForm;
+ }
+ else if (formId == IDC_EVENT_SEARCHER_FORM)
+ {
+ EventSearcherForm* pEventSearcherForm = new (std::nothrow) EventSearcherForm();
+ r = pEventSearcherForm->Initialize();
+ SceneManager::GetInstance()->AddSceneEventListener(sceneId, *pEventSearcherForm);
+ pForm = pEventSearcherForm;
+ }
+ else if (formId == IDC_REMINDER_FORM)
+ {
+ ReminderForm* pReminderForm = new (std::nothrow) ReminderForm();
+ r = pReminderForm->Initialize();
+ SceneManager::GetInstance()->AddSceneEventListener(sceneId, *pReminderForm);
+ pForm = pReminderForm;
+ }
+ else if (formId == IDC_REPEAT_FORM)
+ {
+ RepeatForm* pRepeatForm = new (std::nothrow) RepeatForm();
+ r = pRepeatForm->Initialize();
+ SceneManager::GetInstance()->AddSceneEventListener(sceneId, *pRepeatForm);
+ pForm = pRepeatForm;
+ }
+ else if (formId == IDC_CALENDAR_LIST_FORM)
+ {
+ CalendarListForm* pCalendarListForm = new (std::nothrow) CalendarListForm();
+ r = pCalendarListForm->Initialize();
+ SceneManager::GetInstance()->AddSceneEventListener(sceneId, *pCalendarListForm);
+ pForm = pCalendarListForm;
+ }
+ else if (formId == IDC_EVENT_SELECTOR_FORM)
+ {
+ EventSelectorForm* pEventSelectorForm = new (std::nothrow) EventSelectorForm();
+ r = pEventSelectorForm->Initialize();
+ SceneManager::GetInstance()->AddSceneEventListener(sceneId, *pEventSelectorForm);
+ pForm = pEventSelectorForm;
+ }
+ else if (formId == IDC_TASK_SELECTOR_FORM)
+ {
+ TaskSelectorForm* pTaskSelectorForm = new (std::nothrow) TaskSelectorForm();
+ r = pTaskSelectorForm->Initailize();
+ SceneManager::GetInstance()->AddSceneEventListener(sceneId, *pTaskSelectorForm);
+ pForm = pTaskSelectorForm;
+ }
+ else if (formId == IDC_TASK_DETAILS_FORM)
+ {
+ TaskDetailsForm* pTaskDetailsForm = new (std::nothrow) TaskDetailsForm();
+ r = pTaskDetailsForm->Initialize();
+ SceneManager::GetInstance()->AddSceneEventListener(sceneId, *pTaskDetailsForm);
+ pForm = pTaskDetailsForm;
+ }
+ else if (formId == IDC_EVENT_DELETER_FORM)
+ {
+ EventDeleterForm* pEventDeleterForm = new (std::nothrow) EventDeleterForm();
+ r = pEventDeleterForm->Initialize();
+ SceneManager::GetInstance()->AddSceneEventListener(sceneId, *pEventDeleterForm);
+ pForm = pEventDeleterForm;
+ }
+ else if (formId == IDC_SETTING_FORM)
+ {
+ SettingForm* pSettingForm = new (std::nothrow) SettingForm();
+ r = pSettingForm->Initialize();
+ SceneManager::GetInstance()->AddSceneEventListener(sceneId, *pSettingForm);
+ pForm = pSettingForm;
+ }
+
+ TryCatch(r == E_SUCCESS, , "[%s] Unable to initialize %ls.", GetErrorMessage(r), formId.GetPointer());
+ return pForm;
+CATCH:
+ delete pForm;
+ return null;
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClGoToDatePopup.cpp
+ * @brief This is the implementation file for the GoToDatePopup class.
+ */
+
+#include <new>
+#include <FLocales.h>
+
+#include "ClGoToDatePopup.h"
+#include "ClResourceManager.h"
+#include "ClTypes.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Locales;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+
+static const int IDA_GO_TO_DATE_POPUP_CANCEL = 10902;
+
+GoToDatePopup::GoToDatePopup(void)
+ : __pEditDate(null)
+ , __pTarget(null)
+{
+}
+
+GoToDatePopup::~GoToDatePopup(void)
+{
+}
+
+result
+GoToDatePopup::OnInitializing(void)
+{
+ __pEditDate = dynamic_cast<EditDate*>(GetControl(L"IDC_EDITDATE"));
+ AppAssertf(__pEditDate != null, "[E_FAILURE] Unable to get button.");
+ __pEditDate->SetDate(__date);
+
+ DateTimeFormatter* pDateFormatter = ResourceManager::CreateDateFormatterN(DATE_TIME_STYLE_DEFAULT);
+ String title;
+ pDateFormatter->Format(__date, title);
+ delete pDateFormatter;
+ SetTitleText(title);
+
+ Button* pButtonDone = dynamic_cast<Button*>(GetControl(L"IDC_BUTTON_DONE"));
+ AppAssertf(pButtonDone != null, "[E_FAILURE] Unable to get button.");
+ pButtonDone->SetActionId(IDA_GO_TO_DATE_POPUP_DONE);
+ pButtonDone->AddActionEventListener(*this);
+
+ Button* pButtonCancel = dynamic_cast<Button*>(GetControl(L"IDC_BUTTON_CANCEL"));
+ AppAssertf(pButtonCancel != null, "[E_FAILURE] Unable to get button.");
+ pButtonCancel->SetActionId(IDA_GO_TO_DATE_POPUP_CANCEL);
+ pButtonCancel->AddActionEventListener(*this);
+
+ return E_SUCCESS;
+}
+
+result
+GoToDatePopup::OnTerminating(void)
+{
+ return E_SUCCESS;
+}
+
+void
+GoToDatePopup::OnActionPerformed(const Control& source, int actionId)
+{
+ switch (actionId)
+ {
+ case IDA_GO_TO_DATE_POPUP_DONE:
+ __date = __pEditDate->GetDate();
+ SetShowState(false);
+ if (__pTarget != null)
+ {
+ LinkedList* pArgs = new (std::nothrow) LinkedList();
+ pArgs->Add(new (std::nothrow) DateTime(__date));
+ __pTarget->SendUserEvent(IDA_GO_TO_DATE_POPUP_DONE, pArgs);
+ }
+ delete this;
+ break;
+ case IDA_GO_TO_DATE_POPUP_CANCEL:
+ SetShowState(false);
+ delete this;
+ break;
+ }
+}
+
+void
+GoToDatePopup::RequestGoToDate(const DateTime& initialDate, Control* pTarget)
+{
+ GoToDatePopup* pPopup = new (std::nothrow) GoToDatePopup();
+ pPopup->__date = initialDate;
+ pPopup->__pTarget = pTarget;
+ pPopup->Construct(L"IDL_GO_TO_DATE_POPUP");
+ pPopup->Show();
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClListPanel.cpp
+ * @brief This is the implementation file for the ListPanel class.
+ */
+
+#include <new>
+#include <FApp.h>
+#include <FSocial.h>
+#include "ClEventListPresentationModel.h"
+#include "ClMainForm.h"
+#include "ClResourceManager.h"
+#include "ClListPanel.h"
+#include "ClSharePopup.h"
+#include "ClTypes.h"
+#include "ClEventItem.h"
+#include "ClTwoButtonPopup.h"
+#include "ClThreeButtonPopup.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Graphics;
+using namespace Tizen::Social;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+using namespace Tizen::Locales;
+
+static const int IDA_LIST_PANEL_CONTEXT_MENU_EDIT = 11511;
+static const int IDA_LIST_PANEL_CONTEXT_MENU_SHARE = 11512;
+static const int IDA_LIST_PANEL_CONTEXT_MENU_DELETE = 11513;
+
+static const int ID_LIST_ITEM_BEFORE_AFTER = 100;
+
+static const int ITEM_HEIGHT = 128;
+static const int GROUP_ITEM_HEIGHT = 76;
+static const int LEFT_MARGIN = 16;
+static const int TOTAL_MARGIN = 32;
+static const int EVENT_SUB_LIST_TEXT_SIZE = 32;
+static const int TOP_BOTTOM_GROUP_ITEM_COUNT = 2;
+static const int TOP_BOTTOM_ITEM_COUNT = 1;
+static const int GROUP_ITEM_MINIMUM_HEIGHT = 0;
+static const int PREVIOUS_DATE = -1;
+static const int NEXT_DATE = 1;
+
+static const unsigned int COLOR_ITEM_BACKGROUND = Color32<248, 246, 239>::Value;
+static const unsigned int COLOR_GROUP_ITEM_BACKGROUND = Color32<209, 227, 238>::Value;
+static const unsigned int COLOR_GROUP_ITEM_TODAY_BACKGROUND = Color32<117, 171, 204>::Value;
+static const unsigned int COLOR_GROUP_ITEM_TEXT = Color32<0, 94, 160>::Value;
+static const unsigned int COLOR_TOP_BOTTOM_ITEM_TEXT = Color32<42, 137, 194>::Value;
+static const unsigned int COLOR_ITEM_TEXT_PRESSED = Color32<249, 249, 249>::Value;
+
+ListPanel::ListPanel(void)
+ : __pPm(null)
+ , __pGroupedListViewEventsList(null)
+ , __pContextItem(null)
+ , __pDateFormatter(null)
+ , __pSharePopup(null)
+{
+}
+
+ListPanel::~ListPanel(void)
+{
+
+}
+
+result
+ListPanel::Initialize(void)
+{
+ static const int _MIN_SIZE = 1;
+ return Construct(Rectangle(0, 0, _MIN_SIZE, _MIN_SIZE));
+}
+
+result
+ListPanel::OnInitializing(void)
+{
+ __pPm = EventListPresentationModel::GetInstance();
+
+ Form* pForm = dynamic_cast<Form*>(GetParent());
+ AppAssertf(pForm != null, "[E_FAILURE] Unable to get Form.");
+
+ Rectangle clientAreaBounds = pForm->GetClientAreaBounds();
+ clientAreaBounds.x = 0;
+ clientAreaBounds.y = 0;
+ SetBounds(clientAreaBounds);
+
+ Rectangle bounds = GetBounds();
+ __pGroupedListViewEventsList = new (std::nothrow) GroupedListView();
+ __pGroupedListViewEventsList->Construct(Rectangle(0, 0, bounds.width, bounds.height),
+ GROUPED_LIST_VIEW_STYLE_INDEXED, true, SCROLL_STYLE_FADE_OUT);
+ __pGroupedListViewEventsList->SetItemProvider(*this);
+
+ AddControl(*__pGroupedListViewEventsList);
+
+ __pGroupedListViewEventsList->SetTextOfEmptyList(ResourceManager::GetString(IDS_CLD_BODY_NO_EVENTS));
+ __pGroupedListViewEventsList->SetBitmapOfEmptyList(ResourceManager::GetBitmapN(IDB_LIST_VIEW_NO_CONTENTS_TEXT));
+ __pGroupedListViewEventsList->AddGroupedListViewItemEventListener(*this);
+
+ __pDateFormatter = ResourceManager::CreateDateFormatterN(DATE_TIME_STYLE_SHORT);
+
+ __pSharePopup = new (std::nothrow) SharePopup();
+ __pSharePopup->Initialize();
+
+ return E_SUCCESS;
+}
+
+result
+ListPanel::OnTerminating(void)
+{
+ delete __pContextItem;
+ delete __pDateFormatter;
+ delete __pSharePopup;
+
+ return E_SUCCESS;
+}
+
+void
+ListPanel::OnUserEventReceivedN(RequestId requestId, IList* pArgs)
+{
+ DateTime minRange;
+ DateTime maxRange;
+
+ switch (requestId)
+ {
+ case IDA_MAIN_FORM_HEADER_TODAY:
+ __pPm->SetTodayToCurrentDate();
+
+ minRange = __pPm->GetCurrentDate();
+ minRange.SetValue(minRange.GetYear(), minRange.GetMonth(), minRange.GetDay());
+
+ maxRange = minRange;
+ maxRange.AddMonths(NEXT_DATE);
+ maxRange.AddSeconds(PREVIOUS_DATE);
+
+ __pPm->SetViewType(VIEW_TYPE_LIST);
+ __pPm->SetViewRange(minRange, maxRange);
+
+ Update();
+ break;
+ case IDA_MAIN_FORM_FOOTER_CREATE:
+ {
+ LinkedList* pArgs = new (std::nothrow) LinkedList();
+ pArgs->Add(new (std::nothrow) DateTime(__pPm->GetCurrentDate()));
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_EVENT_EDITOR,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT), pArgs);
+ break;
+ }
+ break;
+ case IDA_SUB_MENU_DELETE:
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_EVENT_DELETER,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT));
+ break;
+ case IDA_SUB_MENU_SEARCH:
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_EVENT_SEARCHER,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT));
+ break;
+ case IDA_SUB_MENU_CALENDARS:
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_CALENDAR_LIST,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT));
+ break;
+ case IDA_VIEW_MENU_YEAR:
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_YEAR,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT,
+ SCENE_HISTORY_OPTION_NO_HISTORY));
+ break;
+ case IDA_VIEW_MENU_MONTH:
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_MONTH,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT,
+ SCENE_HISTORY_OPTION_NO_HISTORY));
+ break;
+ case IDA_VIEW_MENU_DAY:
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_DAY,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT,
+ SCENE_HISTORY_OPTION_NO_HISTORY));
+ break;
+ case IDA_EVENT_POPUP_DELETE:
+ __pPm->RemoveEvent(*static_cast<const CalEventInstance*>(pArgs->GetAt(0)), true);
+ break;
+ case IDA_EVENT_POPUP_ONLY_THIS_EVENT_DELETE:
+ __pPm->RemoveEvent(*static_cast<const CalEventInstance*>(pArgs->GetAt(0)), false);
+ break;
+ case IDA_EVENT_POPUP_ALL_REPETITIVE_EVENT_DELETE:
+ __pPm->RemoveEvent(*static_cast<const CalEventInstance*>(pArgs->GetAt(0)), true);
+ break;
+ case IDA_EVENT_POPUP_ONLY_THIS_EVENT_EDIT:
+ pArgs->Add(new (std::nothrow) Boolean(false));
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_EVENT_EDITOR,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT), pArgs);
+ pArgs = null;
+ break;
+ case IDA_EVENT_POPUP_ALL_REPETITIVE_EVENT_EDIT:
+ pArgs->Add(new (std::nothrow) Boolean(true));
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_EVENT_EDITOR,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT), pArgs);
+ pArgs = null;
+ break;
+ }
+
+ if (pArgs != null)
+ {
+ pArgs->RemoveAll(true);
+ delete pArgs;
+ }
+}
+
+int
+ListPanel::GetGroupCount(void)
+{
+ int groupCount = __pPm->GetWholeDayCount();
+ if (groupCount == 0 && __pPm->GetAllOriginalEventCount() == 0)
+ {
+ return 0;
+ }
+ return groupCount + TOP_BOTTOM_GROUP_ITEM_COUNT;
+}
+
+int
+ListPanel::GetItemCount(int groupIndex)
+{
+ if (groupIndex == 0 || groupIndex == GetGroupCount() - 1)
+ {
+ return TOP_BOTTOM_ITEM_COUNT;
+ }
+ else
+ {
+ return __pPm->GetWholeEventCount(groupIndex - TOP_BOTTOM_ITEM_COUNT);
+ }
+}
+
+GroupItem*
+ListPanel::CreateGroupItem(int groupIndex, int itemWidth)
+{
+ GroupItem* pItem = new (std::nothrow) GroupItem();
+
+ DateTime date;
+
+ if (groupIndex == 0 || groupIndex == GetGroupCount() - 1)
+ {
+ pItem->Construct(Dimension(itemWidth, GROUP_ITEM_MINIMUM_HEIGHT));
+ return pItem;
+ }
+
+ pItem->Construct(Dimension(itemWidth, GROUP_ITEM_HEIGHT));
+
+ date = __pPm->GetDateTimeFromGroupIndex(groupIndex - TOP_BOTTOM_ITEM_COUNT);
+ pItem->SetElement(__pPm->GetDateString(date));
+
+ if (EventListPresentationModel::IsToday(date) == true)
+ {
+ pItem->SetBackgroundColor(Color(COLOR_GROUP_ITEM_TODAY_BACKGROUND));
+ }
+ else
+ {
+ pItem->SetBackgroundColor(Color(COLOR_GROUP_ITEM_BACKGROUND));
+ }
+
+ pItem->SetTextColor(Color(COLOR_GROUP_ITEM_TEXT));
+
+ return pItem;
+}
+
+bool
+ListPanel::DeleteGroupItem(int groupIndex, GroupItem* pItem, int itemWidth)
+{
+ delete pItem;
+ return true;
+}
+
+ListItemBase*
+ListPanel::CreateItem(int groupIndex, int itemIndex, int itemWidth)
+{
+ if (groupIndex == 0 || groupIndex == GetGroupCount() - 1)
+ {
+ CustomItem* pItem = new (std::nothrow) CustomItem();
+
+ String string;
+ String dateString;
+ if (groupIndex == 0)
+ {
+ __pDateFormatter->Format(__pPm->GetViewMinRange(), dateString);
+ string = ResourceManager::GetString(IDS_LIST_VIEW_TAP_VIEW_BEFORE);
+ }
+ else
+ {
+ __pDateFormatter->Format(__pPm->GetViewMaxRange(), dateString);
+ string = ResourceManager::GetString(IDS_LIST_VIEW_TAP_VIEW_AFTER);
+ }
+ string.Append(L" ");
+ string.Append(dateString);
+
+ pItem->Construct(Dimension(itemWidth, ITEM_HEIGHT), LIST_ANNEX_STYLE_NORMAL);
+ // TBD : Background color of item must be transparent.(will be in SDK 2.1)
+ pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL, Color(COLOR_ITEM_BACKGROUND));
+ pItem->AddElement(Rectangle(LEFT_MARGIN, 0, itemWidth - TOTAL_MARGIN, ITEM_HEIGHT)
+ , ID_LIST_ITEM_BEFORE_AFTER, string, EVENT_SUB_LIST_TEXT_SIZE
+ , Color(COLOR_TOP_BOTTOM_ITEM_TEXT), Color(COLOR_ITEM_TEXT_PRESSED), Color(COLOR_ITEM_TEXT_PRESSED));
+ return pItem;
+ }
+
+ const CalEventInstance* pEvent = __pPm->GetEventWithWholeIndex(groupIndex - TOP_BOTTOM_ITEM_COUNT, itemIndex);
+ if (pEvent == null)
+ {
+ return null;
+ }
+
+ EventItem* pItem = new (std::nothrow) EventItem();
+ pItem->Initialize(EVENT_ITEM_STYLE_NORMAL, itemWidth);
+ pItem->SetTitle(pEvent->GetSubject());
+ pItem->SetCalendarColor(__pPm->GetCalendarColor(pEvent->GetCalendarId()));
+ if (pEvent->IsAllDayEvent() == true)
+ {
+ pItem->SetAllDayEvent();
+ }
+ else
+ {
+ DateTime startTime = ResourceManager::ConvertUtcTimeToWallTime(pEvent->GetStartTime());
+ DateTime endTime = ResourceManager::ConvertUtcTimeToWallTime(pEvent->GetEndTime());
+ pItem->SetDateRange(startTime, endTime, __pPm->GetDateTimeFromGroupIndex(groupIndex - TOP_BOTTOM_ITEM_COUNT), __pPm->GetTimeFormatter());
+ }
+
+ pItem->SetReminder(pEvent->HasReminder());
+ pItem->SetRepeat(pEvent->IsRecurring());
+// pItem->SetFacebookEvent(false);
+
+ if (__pContextItem == null)
+ {
+ ListContextItem* pContextItem = new (std::nothrow) ListContextItem();
+ pContextItem->Construct();
+ pContextItem->AddElement(IDA_LIST_PANEL_CONTEXT_MENU_EDIT,
+ ResourceManager::GetString(IDS_CLD_SK3_EDIT), true);
+ pContextItem->AddElement(IDA_LIST_PANEL_CONTEXT_MENU_SHARE,
+ ResourceManager::GetString(IDS_COM_SK4_SHARE), true);
+ pContextItem->AddElement(IDA_LIST_PANEL_CONTEXT_MENU_DELETE,
+ ResourceManager::GetString(IDS_CLD_SK3_DELETE), true);
+
+ __pContextItem = pContextItem;
+ }
+ pItem->SetContextItem(__pContextItem);
+
+ pItem->UpdateElements();
+ return pItem;
+}
+
+bool
+ListPanel::DeleteItem(int groupIndex, int itemIndex, ListItemBase* pItem, int itemWidth)
+{
+ delete pItem;
+ return true;
+}
+
+void
+ListPanel::OnGroupedListViewItemStateChanged(GroupedListView& listView,
+ int groupIndex, int itemIndex, int elementId, ListItemStatus status)
+{
+ int lastGroupIndex = listView.GetGroupCount() - 1;
+
+ if (groupIndex == 0)
+ {
+ DateTime minRange = __pPm->GetViewMinRange();
+ minRange.AddMonths(PREVIOUS_DATE);
+ __pPm->SetViewType(VIEW_TYPE_LIST);
+ __pPm->SetViewRange(minRange, __pPm->GetViewMaxRange());
+
+ Update();
+ return;
+ }
+ else if (groupIndex == lastGroupIndex)
+ {
+ DateTime maxRange = __pPm->GetViewMaxRange();
+ maxRange.AddMonths(NEXT_DATE);
+ __pPm->SetViewType(VIEW_TYPE_LIST);
+ __pPm->SetViewRange(__pPm->GetViewMinRange(), maxRange);
+
+ Update();
+
+ listView.ScrollToItem(listView.GetGroupCount() - 1, 0);
+ listView.Invalidate(false);
+ return;
+ }
+
+ if (status == LIST_ITEM_STATUS_SELECTED)
+ {
+ LinkedList* pList = new (std::nothrow) LinkedList;
+ CalEventInstance* pEventInstance = new (std::nothrow) CalEventInstance(*__pPm->GetEventWithWholeIndex(groupIndex - (TOP_BOTTOM_GROUP_ITEM_COUNT / 2), itemIndex));
+ pList->Add(pEventInstance);
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_EVENT_DETAILS,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT), pList);
+ }
+}
+
+void
+ListPanel::OnGroupedListViewItemSwept(GroupedListView& listView, int groupIndex, int itemIndex, SweepDirection direction)
+{
+
+}
+
+void
+ListPanel::OnGroupedListViewContextItemStateChanged(GroupedListView& listView,
+ int groupIndex, int itemIndex, int elementId, ListContextItemStatus status)
+{
+ if (status == LIST_CONTEXT_ITEM_STATUS_SELECTED)
+ {
+ int actualGroupIndex = groupIndex - (TOP_BOTTOM_GROUP_ITEM_COUNT / 2);
+ const CalEventInstance* pEventInstance = __pPm->GetEventWithWholeIndex(actualGroupIndex, itemIndex);
+ switch (elementId)
+ {
+ case IDA_LIST_PANEL_CONTEXT_MENU_EDIT:
+ if (pEventInstance->IsRecurring() == true)
+ {
+ ThreeButtonPopup::RequestThreeButtonPopup(THREE_BUTTON_POPUP_STYLE_EDIT, this, pEventInstance);
+ }
+ else
+ {
+ LinkedList* pList = new (std::nothrow) LinkedList();
+ CalEventInstance* pEventInstance = new (std::nothrow) CalEventInstance(*__pPm->GetEventWithWholeIndex(groupIndex - (TOP_BOTTOM_GROUP_ITEM_COUNT / 2), itemIndex));
+ pList->Add(pEventInstance);
+ pList->Add(new (std::nothrow) Boolean(true));
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_EVENT_EDITOR,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT), pList);
+ }
+ break;
+ case IDA_LIST_PANEL_CONTEXT_MENU_SHARE:
+// SharePopup::RequestShare(__pPm->GetEventWithWholeIndex(groupIndex - (TOP_BOTTOM_GROUP_ITEM_COUNT / 2), itemIndex)->GetOriginalEventId());
+ __pSharePopup->RequestShare(__pPm->GetEventWithWholeIndex(groupIndex - (TOP_BOTTOM_GROUP_ITEM_COUNT / 2), itemIndex)->GetOriginalEventId());
+ break;
+ case IDA_LIST_PANEL_CONTEXT_MENU_DELETE:
+ if (__pPm->GetEventWithWholeIndex(actualGroupIndex, itemIndex)->IsRecurring() == true)
+ {
+ ThreeButtonPopup::RequestThreeButtonPopup(THREE_BUTTON_POPUP_STYLE_DELETE, this, pEventInstance);
+ }
+ else
+ {
+ TwoButtonPopup::RequestTwoButtonPopup(TWO_BUTTON_POPUP_STYLE_SINGLE_EVENT, this, pEventInstance);
+ }
+ break;
+ }
+ }
+}
+
+void
+ListPanel::OnGroupedListViewItemLongPressed(GroupedListView& listView,
+ int groupIndex, int itemIndex, int elementId, bool& invokeListViewItemCallback)
+{
+
+}
+
+void
+ListPanel::OnGroupedListViewGroupItemSelected(GroupedListView& listView, int groupIndex)
+{
+ if (listView.IsGroupExpanded(groupIndex) == true)
+ {
+ listView.CollapseGroup(groupIndex);
+ }
+ else
+ {
+ listView.ExpandGroup(groupIndex);
+ }
+}
+
+void
+ListPanel::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs)
+{
+ if (pArgs != null)
+ {
+ pArgs->RemoveAll(true);
+ delete pArgs;
+ }
+
+ if (__pPm->GetViewType() != VIEW_TYPE_LIST)
+ {
+ DateTime minRange = __pPm->GetCurrentDate();
+ minRange.SetValue(minRange.GetYear(), minRange.GetMonth(), minRange.GetDay());
+ DateTime maxRange = minRange;
+ maxRange.AddMonths(NEXT_DATE);
+ maxRange.AddSeconds(PREVIOUS_DATE);
+
+ __pPm->SetViewType(VIEW_TYPE_LIST);
+ __pPm->SetViewRange(minRange, maxRange);
+ }
+ __pPm->AddCalendarEventChangedEventListener(*this);
+ __pPm->AddCurrentDateChangedEventListener(*this);
+
+ Form* pForm = dynamic_cast<Form*>(GetParent());
+ if (pForm != null)
+ {
+ Header* pHeader = pForm->GetHeader();
+ if (pHeader != null)
+ {
+ pHeader->SetTitleText(__pPm->GetTitleString());
+ }
+ }
+
+ Update();
+}
+
+void
+ListPanel::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
+{
+ __pPm->RemoveCalendarEventChangedEventListener(*this);
+ __pPm->RemoveCurrentDateChangedEventListener(*this);
+}
+
+void
+ListPanel::OnActionPerformed(const Control& source, int actionId)
+{
+}
+
+void
+ListPanel::OnCalendarEventChanged(void)
+{
+ if (__pPm->GetViewType() != VIEW_TYPE_LIST)
+ {
+ DateTime minRange = __pPm->GetCurrentDate();
+ minRange.SetValue(minRange.GetYear(), minRange.GetMonth(), minRange.GetDay());
+ DateTime maxRange = minRange;
+
+ maxRange.AddMonths(NEXT_DATE);
+ maxRange.AddSeconds(PREVIOUS_DATE);
+ __pPm->SetViewType(VIEW_TYPE_LIST);
+ __pPm->SetViewRange(minRange, maxRange);
+ }
+
+ Update();
+}
+
+void
+ListPanel::OnCurrentDateChanged(const DateTime& currentDate, const DateTime& prevDate)
+{
+ if (EventListPresentationModel::IsSameDay(currentDate, prevDate) == false)
+ {
+ Update();
+ }
+}
+
+result
+ListPanel::Update(void)
+{
+ result r = __pGroupedListViewEventsList->UpdateList();
+ if (r == E_SUCCESS)
+ {
+ if (__pGroupedListViewEventsList->IsGroupExpanded(GetGroupCount() - 1) == false)
+ {
+ __pGroupedListViewEventsList->ExpandGroup(GetGroupCount() - 1);
+ }
+ }
+
+ return r;
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClMainForm.cpp
+ * @brief This is the implementation file for the MainForm class.
+ */
+
+#include <new>
+#include <FApp.h>
+#include <FBase.h>
+#include <FGraphics.h>
+#include "ClMainForm.h"
+#include "ClResourceManager.h"
+#include "ClTypes.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+static const int W_MENU_MARGIN = 64;
+static const int H_HALF_BUTTON = 36;
+static const int W_HEADER_TITLE_RIGHT_MARGIN = 198;
+
+MainForm::MainForm(void)
+ : __pContextMenuView(null)
+ , __pContextMenuSub(null)
+ , __isTitlePressed(false)
+{
+}
+
+MainForm::~MainForm(void)
+{
+}
+
+result
+MainForm::Initialize(void)
+{
+ return Construct(L"IDL_MAIN_FORM");
+}
+
+result
+MainForm::OnInitializing(void)
+{
+ SetFormBackEventListener(this);
+
+ GetHeader()->AddTouchEventListener(*this);
+ GetHeader()->AddActionEventListener(*this);
+ GetFooter()->AddActionEventListener(*this);
+
+ InitializeViewMenu();
+ InitializeSubMenu();
+
+ return E_SUCCESS;
+}
+
+result
+MainForm::OnTerminating(void)
+{
+ delete __pContextMenuView;
+ delete __pContextMenuSub;
+ return E_SUCCESS;
+}
+
+void
+MainForm::OnFormBackRequested(Form& source)
+{
+ UiApp::GetInstance()->Terminate();
+}
+
+void
+MainForm::OnActionPerformed(const Control& source, int actionId)
+{
+ if (actionId == IDA_MAIN_FORM_HEADER_VIEW_MENU)
+ {
+ __pContextMenuView->SetShowState(true);
+ __pContextMenuView->Show();
+ return;
+ }
+ else if (actionId == IDA_MAIN_FORM_FOOTER_SUB_MENU)
+ {
+ __pContextMenuSub->SetShowState(true);
+ __pContextMenuSub->Show();
+ return;
+ }
+
+ Panel* pPanel = SceneManager::GetInstance()->GetCurrentScene()->GetPanel();
+ if (pPanel != null)
+ {
+ pPanel->SendUserEvent(actionId, null);
+ }
+}
+
+void
+MainForm::OnTouchPressed(const Control& source, const Point& currentPosition, const TouchEventInfo & touchInfo)
+{
+ Header* pHeader = GetHeader();
+ Rectangle titleBounds(0, 0, pHeader->GetWidth() - W_HEADER_TITLE_RIGHT_MARGIN, pHeader->GetHeight());
+ if (pHeader == &source && titleBounds.Contains(currentPosition) == true)
+ {
+ __isTitlePressed = true;
+ }
+}
+
+void
+MainForm::OnTouchReleased(const Control& source, const Point& currentPosition, const TouchEventInfo& touchInfo)
+{
+ if (__isTitlePressed == true)
+ {
+ Header* pHeader = GetHeader();
+ Rectangle titleBounds(0, 0, pHeader->GetWidth() - W_HEADER_TITLE_RIGHT_MARGIN, pHeader->GetHeight());
+ if (pHeader == &source && titleBounds.Contains(currentPosition) == true)
+ {
+ Panel* pPanel = SceneManager::GetInstance()->GetCurrentScene()->GetPanel();
+ if (pPanel != null)
+ {
+ pPanel->SendUserEvent(IDA_MAIN_FORM_HEADER_GO_TO_DATE, null);
+ }
+ }
+ __isTitlePressed = false;
+ }
+}
+
+void
+MainForm::OnTouchMoved(const Control& source, const Point& currentPosition, const TouchEventInfo& touchInfo)
+{
+}
+
+void
+MainForm::OnTouchFocusIn(const Control& source, const Point& currentPosition, const TouchEventInfo& touchInfo)
+{
+}
+
+void
+MainForm::OnTouchFocusOut(const Control& source, const Point& currentPosition, const TouchEventInfo& touchInfo)
+{
+}
+
+void
+MainForm::OnTouchCanceled(const Control& source, const Point& currentPosition, const TouchEventInfo& touchInfo)
+{
+ __isTitlePressed = false;
+}
+
+void
+MainForm::InitializeViewMenu(void)
+{
+ __pContextMenuView = new (std::nothrow) ContextMenu();
+ __pContextMenuView->Construct(Point(0, 0), CONTEXT_MENU_STYLE_LIST);
+ __pContextMenuView->AddActionEventListener(*this);
+
+ Rectangle bounds = GetHeader()->GetBounds();
+ __pContextMenuView->SetAnchorPosition(Point(bounds.x + bounds.width - W_MENU_MARGIN, bounds.y + bounds.height / 2 + H_HALF_BUTTON));
+
+ __pContextMenuView->AddItem(ResourceManager::GetString(IDS_CLD_BODY_YEAR), IDA_VIEW_MENU_YEAR);
+ __pContextMenuView->AddItem(ResourceManager::GetString(IDS_CLD_TAB4_MONTH), IDA_VIEW_MENU_MONTH);
+ __pContextMenuView->AddItem(ResourceManager::GetString(IDS_CLD_BODY_DAY), IDA_VIEW_MENU_DAY);
+ __pContextMenuView->AddItem(ResourceManager::GetString(IDS_CLD_BODY_LIST), IDA_VIEW_MENU_LIST);
+ __pContextMenuView->SetShowState(false);
+}
+
+void
+MainForm::InitializeSubMenu(void)
+{
+ __pContextMenuSub = new (std::nothrow) ContextMenu();
+ __pContextMenuSub->Construct(Point(0, 0), CONTEXT_MENU_STYLE_LIST);
+ __pContextMenuSub->AddActionEventListener(*this);
+
+ Rectangle bounds = GetFooter()->GetBounds();
+ __pContextMenuSub->SetAnchorPosition(Point(bounds.x + W_MENU_MARGIN, bounds.y + bounds.height / 2 - H_HALF_BUTTON));
+
+ __pContextMenuSub->AddItem(ResourceManager::GetString(IDS_CLD_SK3_DELETE), IDA_SUB_MENU_DELETE);
+ __pContextMenuSub->AddItem(ResourceManager::GetString(IDS_CLD_BUTTON_SEARCH), IDA_SUB_MENU_SEARCH);
+// __pContextMenuSub->AddItem(ResourceManager::GetString(IDS_SUB_MENU_CALENDARS), IDA_SUB_MENU_CALENDARS);
+ __pContextMenuSub->SetShowState(false);
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClMainFrame.cpp
+ * @brief This is the implementation file for the MainFrame class.
+ */
+
+#include <new>
+#include <FApp.h>
+#include "ClCalendarApp.h"
+#include "ClMainFrame.h"
+#include "ClSceneRegister.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Scenes;
+
+
+MainFrame::MainFrame(void)
+{
+}
+
+MainFrame::~MainFrame(void)
+{
+}
+
+result
+MainFrame::OnInitializing(void)
+{
+ result r = SceneRegister::RegisterAllScene();
+ TryReturn(r == E_SUCCESS, r, "[%s] Unable to register scenes.");
+
+ CalendarApp* pApp = static_cast<CalendarApp*>(UiApp::GetInstance());
+ AppAssertf(pApp != null, "[E_FAILURE] Unable to get calendarapp.");
+
+// IList* pArgs = (pApp->GetArguments() != null) ? pApp->GetArguments()->GetItemsN(0, pApp->GetArguments()->GetCount()) : null;
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(pApp->GetInitialScene()), null);
+
+ return E_SUCCESS;
+}
+
+result
+MainFrame::OnTerminating(void)
+{
+ return E_SUCCESS;
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClMonthPanel.cpp
+ * @brief This is the implementation file for the MonthPanel class.
+ */
+
+#include <new>
+#include <FBase.h>
+#include <FSocial.h>
+#include "ClEventListPresentationModel.h"
+#include "ClEventItem.h"
+#include "ClGoToDatePopup.h"
+#include "ClMainForm.h"
+#include "ClMonthPanel.h"
+#include "ClPanningAnimationManager.h"
+#include "ClResourceManager.h"
+#include "ClSharePopup.h"
+#include "ClThreeButtonPopup.h"
+#include "ClTwoButtonPopup.h"
+#include "ClTypes.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Graphics;
+using namespace Tizen::Social;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Animations;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+enum ItemElementId
+{
+ ID_ITEM_ELEMENT_COLOR_BAR,
+ ID_ITEM_ELEMENT_SUBJECT,
+ ID_ITEM_ELEMENT_DURATION,
+ ID_ITEM_ELEMENT_LOCATION,
+ ID_ITEM_ELEMENT_REPEAT_ICON,
+ ID_ITEM_ELEMENT_ALARM_ICON
+};
+
+static const int IDA_MONTH_PANEL_CONTEXT_MENU_EDIT = 11311;
+static const int IDA_MONTH_PANEL_CONTEXT_MENU_SHARE = 11312;
+static const int IDA_MONTH_PANEL_CONTEXT_MENU_DELETE = 11313;
+
+static const int Y_GRID_LINE = 46;
+static const int W_GRID_LINE = 1;
+static const int H_GRID_LINE = 1;
+static const unsigned int COLOR_GRID_LINE = Color32<171, 171, 171>::Value;
+static const int W_WEEK = 102;
+static const int H_WEEK = 46;
+static const int FONT_SIZE_WEEK = 24;
+static const unsigned int COLOR_WEEK = Color32<45, 45, 45>::Value;
+static const unsigned int COLOR_WEEK_SUN = Color32<186, 53, 53>::Value;
+static const int Y_DAY = 47;
+static const int W_DAY = 102;
+static const int H_DAY = 109;
+static const int X_DAY_BITMAP = 1;
+static const int Y_DAY_BITMAP = 6;
+static const int FONT_SIZE_DAY = 52;
+static const unsigned int COLOR_DAY = Color32<45, 45, 45>::Value;
+static const unsigned int COLOR_DAY_DIM = Color32<219, 219, 219>::Value;
+static const unsigned int COLOR_DAY_SUN = Color32<186, 53, 53>::Value;
+static const unsigned int COLOR_DAY_SUN_DIM = Color32<186, 53, 53, 102>::Value;
+static const unsigned int COLOR_DAY_FOCUS = Color32<255, 255, 255>::Value;
+static const unsigned int COLOR_EVENT_LIST_BACKGROUND = Color32<248, 246, 239>::Value;
+static const unsigned int COLOR_EVENT_LIST_DIVIDER = Color32<169, 169, 169>::Value;
+
+static const int WEEKDAY_COUNT = 7;
+
+class DayButton
+ : public Button
+ , public virtual IActionEventListener
+{
+public:
+ const DateTime& GetDate(void) const;
+ void Initialize(const EventListPresentationModel& pm, Bitmap* pBitmapEvent, Bitmap* pBitmapDayFocus, Bitmap* pBitmapToday, Bitmap* pBitmapTodayFocus);
+ void SetDate(const DateTime& date);
+ void SetDateFocusEventListener(IDateFocusEventListener& listener);
+ void SetDayFocus(bool focus);
+ void UpdateEvent(void);
+
+ DayButton(void);
+ virtual ~DayButton(void);
+
+ virtual result OnInitializing(void);
+ virtual result OnTerminating(void);
+
+ virtual void OnActionPerformed(const Control& source, int actionId);
+
+private:
+ const EventListPresentationModel* __pPm;
+ DateTime __date;
+ IDateFocusEventListener* __pDateFocusEventListener;
+ Bitmap* __pBitmapEvent;
+ Bitmap* __pBitmapDayFocus;
+ Bitmap* __pBitmapToday;
+ Bitmap* __pBitmapTodayFocus;
+ bool __isFocused;
+};
+
+DayButton::DayButton(void)
+ : __pPm(null)
+ , __pDateFocusEventListener(null)
+ , __pBitmapEvent(null)
+ , __pBitmapDayFocus(null)
+ , __pBitmapToday(null)
+ , __pBitmapTodayFocus(null)
+ , __isFocused(false)
+{
+}
+
+DayButton::~DayButton(void)
+{
+}
+
+const DateTime&
+DayButton::GetDate(void) const
+{
+ return __date;
+}
+
+void
+DayButton::Initialize(const EventListPresentationModel& pm, Bitmap* pBitmapEvent, Bitmap* pBitmapDayFocus, Bitmap* pBitmapToday, Bitmap* pBitmapTodayFocus)
+{
+ Construct(Rectangle(0, 0, W_DAY, H_DAY), L"");
+ __pPm = ±
+ __pBitmapEvent = pBitmapEvent;
+ __pBitmapDayFocus = pBitmapDayFocus;
+ __pBitmapToday = pBitmapToday;
+ __pBitmapTodayFocus = pBitmapTodayFocus;
+}
+
+void
+DayButton::SetDate(const DateTime& date)
+{
+ __date = date;
+ if (EventListPresentationModel::IsToday(__date) == true)
+ {
+ Point position(X_DAY_BITMAP, Y_DAY_BITMAP);
+ SetNormalBitmap(position, (__isFocused == true) ? *__pBitmapTodayFocus : *__pBitmapToday);
+ SetPressedBitmap(position, *__pBitmapTodayFocus);
+ SetDisabledBitmap(position, *__pBitmapToday);
+ }
+ else
+ {
+ Point position(X_DAY_BITMAP, Y_DAY_BITMAP);
+ if (__isFocused == true)
+ {
+ SetNormalBitmap(position, *__pBitmapDayFocus);
+ }
+ else if (__pPm->GetWholeEventCount(__date) > 0)
+ {
+ SetNormalBitmap(position, *__pBitmapEvent);
+ SetDisabledBitmap(position, *__pBitmapEvent);
+ }
+ else
+ {
+ SetNormalBitmap(position, *ResourceManager::GetBlankBitmap());
+ SetDisabledBitmap(position, *ResourceManager::GetBlankBitmap());
+ }
+
+ SetPressedBitmap(position, *__pBitmapDayFocus);
+ }
+
+ SetText(Integer::ToString(__date.GetDay()));
+ int dayOfWeek = (__pPm->GetStartDayOfWeek(__date.GetYear(), __date.GetMonth()) + __date.GetDay() - 1) % WEEKDAY_COUNT;
+ if (dayOfWeek == 0)
+ {
+ SetTextColor(Color((__isFocused == true) ? COLOR_DAY_FOCUS : COLOR_DAY_SUN));
+ SetDisabledTextColor(Color(COLOR_DAY_SUN_DIM));
+ }
+ else
+ {
+ SetTextColor(Color((__isFocused == true) ? COLOR_DAY_FOCUS : COLOR_DAY));
+ SetDisabledTextColor(Color(COLOR_DAY_DIM));
+ }
+}
+
+void
+DayButton::SetDateFocusEventListener(IDateFocusEventListener& listener)
+{
+ __pDateFocusEventListener = &listener;
+}
+
+void
+DayButton::SetDayFocus(bool focus)
+{
+ if (__isFocused != focus)
+ {
+ __isFocused = focus;
+ if (EventListPresentationModel::IsToday(__date) == true)
+ {
+ SetNormalBitmap(Point(X_DAY_BITMAP, Y_DAY_BITMAP), (__isFocused == true) ? *__pBitmapTodayFocus : *__pBitmapToday);
+ }
+ else
+ {
+ SetNormalBitmap(Point(X_DAY_BITMAP, Y_DAY_BITMAP),
+ (__isFocused == true) ? *__pBitmapDayFocus
+ : (__pPm->GetWholeEventCount(__date) > 0) ? *__pBitmapEvent : *ResourceManager::GetBlankBitmap());
+ }
+ }
+
+ int dayOfWeek = (__pPm->GetStartDayOfWeek(__date.GetYear(), __date.GetMonth()) + __date.GetDay() - 1) % WEEKDAY_COUNT;
+ if (dayOfWeek == 0)
+ {
+ SetTextColor(Color((__isFocused == true) ? COLOR_DAY_FOCUS : COLOR_DAY_SUN));
+ }
+ else
+ {
+ SetTextColor(Color((__isFocused == true) ? COLOR_DAY_FOCUS : COLOR_DAY));
+ }
+}
+
+void
+DayButton::UpdateEvent(void)
+{
+ if (EventListPresentationModel::IsToday(__date) == false && __isFocused == false)
+ {
+ Point position(X_DAY_BITMAP, Y_DAY_BITMAP);
+ if (__pPm->GetWholeEventCount(__date) > 0)
+ {
+ SetNormalBitmap(position, *__pBitmapEvent);
+ SetDisabledBitmap(position, *__pBitmapEvent);
+ }
+ else
+ {
+ SetNormalBitmap(position, *ResourceManager::GetBlankBitmap());
+ SetDisabledBitmap(position, *ResourceManager::GetBlankBitmap());
+ }
+ Invalidate(false);
+ }
+}
+
+result
+DayButton::OnInitializing(void)
+{
+ SetNormalBackgroundBitmap(*ResourceManager::GetBlankBitmap());
+ SetPressedBackgroundBitmap(*ResourceManager::GetBlankBitmap());
+ SetHighlightedBackgroundBitmap(*ResourceManager::GetBlankBitmap());
+ SetTextSize(FONT_SIZE_DAY);
+ SetTextColor(Color(COLOR_DAY));
+ SetPressedTextColor(Color(COLOR_DAY_FOCUS));
+ SetHighlightedTextColor(Color(COLOR_DAY_FOCUS));
+ SetDisabledTextColor(Color(COLOR_DAY_DIM));
+
+ AddActionEventListener(*this);
+ return E_SUCCESS;
+}
+
+result
+DayButton::OnTerminating(void)
+{
+ return E_SUCCESS;
+}
+
+void
+DayButton::OnActionPerformed(const Control& source, int actionId)
+{
+ SetDayFocus(true);
+ Invalidate(false);
+ if (__pDateFocusEventListener != null)
+ {
+ __pDateFocusEventListener->OnDateFocused(__date);
+ }
+}
+
+class MonthCalendarPanel
+ : public Panel
+ , public virtual IDateFocusEventListener
+{
+public:
+ const DateTime& GetDate(void) const;
+ result Initialize(const Rectangle& bounds, const DateTime& date, const EventListPresentationModel& pm);
+ void SetDate(const DateTime& date);
+ void SetDateFocusEventListener(IDateFocusEventListener& listener);
+ void SetFocusEnabled(bool enable = true);
+ void UpdateEvent(void);
+
+ void SetPanningAnimationManager(PanningAnimationManager& manager);
+
+ MonthCalendarPanel(void);
+ virtual ~MonthCalendarPanel(void);
+
+ virtual void OnClearBackground(void);
+ virtual result OnInitializing(void);
+ virtual result OnTerminating(void);
+
+ virtual void OnDateFocused(const DateTime& focusedDate);
+
+private:
+ static const int MONTH_CALENDAR_ROW_COUNT = 6;
+ static const int MONTH_CALENDAR_WEEKDAY_COUNT = 7;
+
+ DateTime __date;
+ const EventListPresentationModel* __pPm;
+ IDateFocusEventListener* __pDateFocusEventListener;
+ PanningAnimationManager* __pPanningAnimationManager;
+ int __firstDayOfWeek;
+ int __startDayColumn;
+ Label* __pLabelWeekText[MONTH_CALENDAR_WEEKDAY_COUNT];
+ DayButton* __pDayCalendars[MONTH_CALENDAR_ROW_COUNT][MONTH_CALENDAR_WEEKDAY_COUNT];
+ Bitmap* __pBitmapEvent;
+ Bitmap* __pBitmapDayFocus;
+ Bitmap* __pBitmapToday;
+ Bitmap* __pBitmapTodayFocus;
+ bool __focusEnabled;
+};
+
+MonthCalendarPanel::MonthCalendarPanel(void)
+ : __pPm(null)
+ , __pDateFocusEventListener(null)
+ , __pPanningAnimationManager(null)
+ , __firstDayOfWeek(-1)
+ , __startDayColumn(-1)
+ , __focusEnabled(false)
+{
+ memset((void *)__pLabelWeekText, 0, sizeof(Label*) * MONTH_CALENDAR_WEEKDAY_COUNT);
+ memset((void *)__pDayCalendars, 0, sizeof(DayButton*) * MONTH_CALENDAR_ROW_COUNT * MONTH_CALENDAR_WEEKDAY_COUNT);
+}
+
+MonthCalendarPanel::~MonthCalendarPanel(void)
+{
+ if (__pPanningAnimationManager != null)
+ {
+ RemoveTouchEventListener(*__pPanningAnimationManager);
+ RemoveGestureDetector(*__pPanningAnimationManager);
+ for (int row = 0; row < MONTH_CALENDAR_ROW_COUNT; ++row)
+ {
+ for (int col = 0; col < MONTH_CALENDAR_WEEKDAY_COUNT; ++col)
+ {
+ __pDayCalendars[row][col]->RemoveTouchEventListener(*__pPanningAnimationManager);
+ __pDayCalendars[row][col]->RemoveGestureDetector(*__pPanningAnimationManager);
+ }
+ }
+ }
+}
+
+const DateTime&
+MonthCalendarPanel::GetDate(void) const
+{
+ return __date;
+}
+
+result
+MonthCalendarPanel::Initialize(const Rectangle& bounds, const DateTime& date, const EventListPresentationModel& pm)
+{
+ __date = date;
+ __pPm = ±
+ __startDayColumn = __pPm->GetStartDayOfWeek(__date.GetYear(), __date.GetMonth()) - EventListPresentationModel::GetFirstDayOfWeek();
+ if (__startDayColumn < 0)
+ {
+ __startDayColumn += MONTH_CALENDAR_WEEKDAY_COUNT;
+ }
+
+ int maxDay;
+ DateTime::GetDaysInMonth(__date.GetYear(), __date.GetMonth(), maxDay);
+ int height = H_WEEK + H_GRID_LINE + ((maxDay + __startDayColumn - 1) / MONTH_CALENDAR_WEEKDAY_COUNT + 1) * (H_DAY + H_GRID_LINE);
+ return Construct(Rectangle(bounds.x, bounds.y, bounds.width, height));
+}
+
+void
+MonthCalendarPanel::SetDate(const DateTime& date)
+{
+ if (EventListPresentationModel::IsSameDay(__date, date) == false)
+ {
+ if (date.GetYear() != __date.GetYear() || date.GetMonth() != __date.GetMonth())
+ {
+ __startDayColumn = __pPm->GetStartDayOfWeek(date.GetYear(), date.GetMonth()) - __firstDayOfWeek;
+ if (__startDayColumn < 0)
+ {
+ __startDayColumn += MONTH_CALENDAR_WEEKDAY_COUNT;
+ }
+
+ int maxDay;
+ DateTime::GetDaysInMonth(date.GetYear(), date.GetMonth(), maxDay);
+ int maxRow = (maxDay + __startDayColumn - 1) / MONTH_CALENDAR_WEEKDAY_COUNT + 1;
+ int height = __pDayCalendars[maxRow - 1][0]->GetY() + H_DAY + H_GRID_LINE;
+ if (GetHeight() != height)
+ {
+ SetSize(GetWidth(), height);
+ }
+ }
+ else if (__focusEnabled == true)
+ {
+ int prevIndex = __date.GetDay() + __startDayColumn - 1;
+ int prevRow = prevIndex / MONTH_CALENDAR_WEEKDAY_COUNT;
+ int prevCol = prevIndex % MONTH_CALENDAR_WEEKDAY_COUNT;
+ __pDayCalendars[prevRow][prevCol]->SetDayFocus(false);
+ __pDayCalendars[prevRow][prevCol]->Invalidate(false);
+
+ int nextIndex = date.GetDay() + __startDayColumn - 1;
+ int nextRow = nextIndex / MONTH_CALENDAR_WEEKDAY_COUNT;
+ int nextCol = nextIndex % MONTH_CALENDAR_WEEKDAY_COUNT;
+ __pDayCalendars[nextRow][nextCol]->SetDayFocus(true);
+ __pDayCalendars[nextRow][nextCol]->Invalidate(false);
+ }
+ }
+ __date = date;
+}
+
+void
+MonthCalendarPanel::SetDateFocusEventListener(IDateFocusEventListener& listener)
+{
+ __pDateFocusEventListener = &listener;
+}
+
+void
+MonthCalendarPanel::SetFocusEnabled(bool enable)
+{
+ if (__focusEnabled != enable)
+ {
+ __focusEnabled = enable;
+
+ int index = __date.GetDay() + __startDayColumn - 1;
+ int row = index / MONTH_CALENDAR_WEEKDAY_COUNT;
+ int col = index % MONTH_CALENDAR_WEEKDAY_COUNT;
+ __pDayCalendars[row][col]->SetDayFocus(__focusEnabled);
+ __pDayCalendars[row][col]->Invalidate(false);
+ }
+}
+
+void
+MonthCalendarPanel::UpdateEvent(void)
+{
+ int maxDay;
+ DateTime::GetDaysInMonth(__date.GetYear(), __date.GetMonth(), maxDay);
+ int maxRow = (maxDay + __startDayColumn - 1) / MONTH_CALENDAR_WEEKDAY_COUNT + 1;
+ for (int row = 0; row < maxRow; ++row)
+ {
+ for (int col = 0; col < MONTH_CALENDAR_WEEKDAY_COUNT; ++col)
+ {
+ __pDayCalendars[row][col]->UpdateEvent();
+ }
+ }
+}
+
+void
+MonthCalendarPanel::SetPanningAnimationManager(PanningAnimationManager& manager)
+{
+ __pPanningAnimationManager = &manager;
+ AddTouchEventListener(manager);
+ AddGestureDetector(manager);
+ for (int row = 0; row < MONTH_CALENDAR_ROW_COUNT; ++row)
+ {
+ for (int col = 0; col < MONTH_CALENDAR_WEEKDAY_COUNT; ++col)
+ {
+ __pDayCalendars[row][col]->AddTouchEventListener(manager);
+ __pDayCalendars[row][col]->AddGestureDetector(manager);
+ }
+ }
+}
+
+void
+MonthCalendarPanel::OnClearBackground(void)
+{
+ int firstDayOfWeek = EventListPresentationModel::GetFirstDayOfWeek();
+ if (firstDayOfWeek != __firstDayOfWeek)
+ {
+ for (int col = 0; col < MONTH_CALENDAR_WEEKDAY_COUNT; ++col)
+ {
+ int dayOfWeek = (col + firstDayOfWeek) % MONTH_CALENDAR_WEEKDAY_COUNT;
+ __pLabelWeekText[col]->SetText(ResourceManager::GetWeekShortString(dayOfWeek));
+ __pLabelWeekText[col]->SetTextColor(Color((dayOfWeek == 0) ? COLOR_WEEK_SUN : COLOR_WEEK));
+ __pLabelWeekText[col]->Invalidate(false);
+ }
+ __startDayColumn = __pPm->GetStartDayOfWeek(__date.GetYear(), __date.GetMonth()) - firstDayOfWeek;
+ if (__startDayColumn < 0)
+ {
+ __startDayColumn += MONTH_CALENDAR_WEEKDAY_COUNT;
+ }
+ __firstDayOfWeek = firstDayOfWeek;
+ }
+
+ DateTime date = __pDayCalendars[0][__startDayColumn]->GetDate();
+ if (date.GetYear() != __date.GetYear() || date.GetMonth() != __date.GetMonth() || date.GetDay() != 1)
+ {
+ int maxDay;
+ DateTime::GetDaysInMonth(__date.GetYear(), __date.GetMonth(), maxDay);
+ int maxRow = (maxDay + __startDayColumn - 1) / MONTH_CALENDAR_WEEKDAY_COUNT + 1;
+ int height = __pDayCalendars[maxRow - 1][0]->GetY() + H_DAY + H_GRID_LINE;
+ if (GetHeight() != height)
+ {
+ SetSize(GetWidth(), height);
+ Invalidate(false);
+ }
+
+ date = __date;
+ date.AddDays(1 - __startDayColumn - date.GetDay());
+ for (int row = 0; row < maxRow; ++row)
+ {
+ for (int col = 0; col < MONTH_CALENDAR_WEEKDAY_COUNT; ++col)
+ {
+ __pDayCalendars[row][col]->SetDate(date);
+ __pDayCalendars[row][col]->SetDayFocus(__focusEnabled == true && EventListPresentationModel::IsSameDay(date, __date) == true);
+ __pDayCalendars[row][col]->SetEnabled(date.GetMonth() == __date.GetMonth());
+ __pDayCalendars[row][col]->SetShowState(true);
+ __pDayCalendars[row][col]->Invalidate(false);
+ date.AddDays(1);
+ }
+ }
+ }
+}
+
+result
+MonthCalendarPanel::OnInitializing(void)
+{
+ // Create background label
+ Label* pLabel = new (std::nothrow) Label();
+ pLabel->Construct(Rectangle(0, Y_GRID_LINE, GetWidth(), H_GRID_LINE), L"");
+ pLabel->SetBackgroundColor(Color(COLOR_GRID_LINE));
+ AddControl(*pLabel);
+ for (int week = 0; week < MONTH_CALENDAR_WEEKDAY_COUNT; ++week)
+ {
+ pLabel = new (std::nothrow) Label();
+ pLabel->Construct(Rectangle((W_DAY + W_GRID_LINE) * week, 0, W_WEEK, H_WEEK), L"");
+ pLabel->SetTextConfig(FONT_SIZE_WEEK, LABEL_TEXT_STYLE_NORMAL);
+ AddControl(*pLabel);
+ __pLabelWeekText[week] = pLabel;
+ }
+
+ // Load day bitmaps
+ __pBitmapEvent = ResourceManager::GetBitmapN(IDB_MONTH_VIEW_DAY_EVENT);
+ __pBitmapDayFocus = ResourceManager::GetBitmapN(IDB_MONTH_VIEW_DAY_FOCUS);
+ __pBitmapToday = ResourceManager::GetBitmapN(IDB_MONTH_VIEW_TODAY);
+ __pBitmapTodayFocus = ResourceManager::GetBitmapN(IDB_MONTH_VIEW_TODAY_FOCUS);
+
+ // Create day button
+ for (int row = 0; row < MONTH_CALENDAR_ROW_COUNT; ++row)
+ {
+ for (int col = 0; col < MONTH_CALENDAR_WEEKDAY_COUNT; ++col)
+ {
+ DayButton* pButtonDay = new (std::nothrow) DayButton();
+ pButtonDay->Initialize(*__pPm, __pBitmapEvent, __pBitmapDayFocus, __pBitmapToday, __pBitmapTodayFocus);
+ pButtonDay->SetPosition(col * (W_DAY + W_GRID_LINE), Y_DAY + row * (H_DAY + H_GRID_LINE));
+ pButtonDay->SetDateFocusEventListener(*this);
+ AddControl(*pButtonDay);
+ __pDayCalendars[row][col] = pButtonDay;
+ }
+ }
+
+ return E_SUCCESS;
+}
+
+result
+MonthCalendarPanel::OnTerminating(void)
+{
+ delete __pBitmapEvent;
+ delete __pBitmapDayFocus;
+ delete __pBitmapToday;
+ delete __pBitmapTodayFocus;
+ return E_SUCCESS;
+}
+
+void
+MonthCalendarPanel::OnDateFocused(const DateTime& focusedDate)
+{
+ if (EventListPresentationModel::IsSameDay(__date, focusedDate) == false)
+ {
+ if (__focusEnabled == true)
+ {
+ int index = __date.GetDay() + __startDayColumn - 1;
+ int row = index / MONTH_CALENDAR_WEEKDAY_COUNT;
+ int col = index % MONTH_CALENDAR_WEEKDAY_COUNT;
+ __pDayCalendars[row][col]->SetDayFocus(false);
+ __pDayCalendars[row][col]->Invalidate(false);
+
+ __date = focusedDate;
+ if (__pDateFocusEventListener != null)
+ {
+ __pDateFocusEventListener->OnDateFocused(focusedDate);
+ }
+ }
+ }
+}
+
+MonthPanel::MonthPanel(void)
+ : __pPm(null)
+ , __selectedIndex(0)
+ , __pListViewEvent(null)
+ , __pContextItem(null)
+ , __pPanningAnimationManager(null)
+ , __pSharePopup(null)
+{
+ memset((void *)__pPanelMonthCalendar, 0, sizeof(Panel*) * VIEW_SCROLL_EFFECT_COUNT);
+}
+
+MonthPanel::~MonthPanel(void)
+{
+}
+
+result
+MonthPanel::Initialize(void)
+{
+ static const int _MIN_SIZE = 1;
+ return Construct(Rectangle(0, 0, _MIN_SIZE, _MIN_SIZE));
+}
+
+result
+MonthPanel::OnInitializing(void)
+{
+ __pPm = EventListPresentationModel::GetInstance();
+
+ Form* pForm = dynamic_cast<Form*>(GetParent());
+ AppAssertf(pForm != null, "[E_FAILURE] Unable to get Form.");
+
+ Rectangle bounds = pForm->GetClientAreaBounds();
+ bounds.x = 0;
+ bounds.y = 0;
+ SetBounds(bounds);
+
+ // Create panning animation manager
+ __pPanningAnimationManager = new (std::nothrow) PanningAnimationManager();
+ __pPanningAnimationManager->Initialize(*this);
+ __pPanningAnimationManager->SetControlAnimatorEventListener(*this);
+
+ MonthCalendarPanel* pPanel = new (std::nothrow) MonthCalendarPanel();
+ pPanel->Initialize(bounds, __pPm->GetCurrentDate(), *__pPm);
+ AddControl(*pPanel);
+ pPanel->SetDateFocusEventListener(*this);
+ pPanel->SetPanningAnimationManager(*__pPanningAnimationManager);
+ pPanel->SetFocusEnabled(true);
+ __pPanelMonthCalendar[VIEW_SCROLL_EFFECT_CURRENT] = pPanel;
+
+ __pContextItem = new (std::nothrow) ListContextItem();
+ __pContextItem->Construct();
+ __pContextItem->AddElement(IDA_MONTH_PANEL_CONTEXT_MENU_EDIT,
+ ResourceManager::GetString(IDS_CLD_SK3_EDIT), true);
+ __pContextItem->AddElement(IDA_MONTH_PANEL_CONTEXT_MENU_SHARE,
+ ResourceManager::GetString(IDS_COM_SK4_SHARE), true);
+ __pContextItem->AddElement(IDA_MONTH_PANEL_CONTEXT_MENU_DELETE,
+ ResourceManager::GetString(IDS_CLD_SK3_DELETE), true);
+
+ bounds.y = __pPanelMonthCalendar[VIEW_SCROLL_EFFECT_CURRENT]->GetHeight();
+ bounds.height -= bounds.y;
+ __pListViewEvent = new (std::nothrow) ListView();
+ __pListViewEvent->Construct(bounds, true, SCROLL_STYLE_FADE_OUT);
+ __pListViewEvent->SetBackgroundColor(Color(COLOR_EVENT_LIST_BACKGROUND));
+ __pListViewEvent->SetItemDividerColor(Color(COLOR_EVENT_LIST_DIVIDER));
+ __pListViewEvent->SetTextOfEmptyList(ResourceManager::GetString(IDS_CLD_BODY_NO_EVENTS));
+ __pListViewEvent->SetItemProvider(*this);
+ __pListViewEvent->AddListViewItemEventListener(*this);
+ AddControl(*__pListViewEvent);
+ SetControlAlwaysOnTop(*__pListViewEvent, true);
+
+ __pSharePopup = new (std::nothrow) SharePopup();
+ __pSharePopup->Initialize();
+
+ return E_SUCCESS;
+}
+
+result
+MonthPanel::OnTerminating(void)
+{
+ RemoveControl(*__pPanelMonthCalendar[VIEW_SCROLL_EFFECT_CURRENT]);
+ if (__pPanelMonthCalendar[VIEW_SCROLL_EFFECT_NEXT] != null)
+ {
+ RemoveControl(*__pPanelMonthCalendar[VIEW_SCROLL_EFFECT_NEXT]);
+ }
+ if (__pPanelMonthCalendar[VIEW_SCROLL_EFFECT_PREVIEW] != null)
+ {
+ RemoveControl(*__pPanelMonthCalendar[VIEW_SCROLL_EFFECT_PREVIEW]);
+ }
+ delete __pPanningAnimationManager;
+ delete __pContextItem;
+ delete __pSharePopup;
+ return E_SUCCESS;
+}
+
+void
+MonthPanel::OnUserEventReceivedN(RequestId requestId, IList* pArgs)
+{
+ switch (requestId)
+ {
+ case IDA_MAIN_FORM_HEADER_TODAY:
+ __pPm->SetTodayToCurrentDate();
+ break;
+ case IDA_MAIN_FORM_HEADER_GO_TO_DATE:
+ GoToDatePopup::RequestGoToDate(__pPm->GetCurrentDate(), this);
+ break;
+ case IDA_MAIN_FORM_FOOTER_CREATE:
+ {
+ LinkedList* pArgs = new (std::nothrow) LinkedList();
+ pArgs->Add(new (std::nothrow) DateTime(__pPm->GetCurrentDate()));
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_EVENT_EDITOR,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT), pArgs);
+ break;
+ }
+ case IDA_SUB_MENU_DELETE:
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_EVENT_DELETER,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT));
+ break;
+ case IDA_SUB_MENU_SEARCH:
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_EVENT_SEARCHER,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT));
+ break;
+ case IDA_SUB_MENU_CALENDARS:
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_CALENDAR_LIST,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT));
+ break;
+ case IDA_VIEW_MENU_YEAR:
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_YEAR,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT,
+ SCENE_HISTORY_OPTION_NO_HISTORY));
+ break;
+ case IDA_VIEW_MENU_DAY:
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_DAY,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT,
+ SCENE_HISTORY_OPTION_NO_HISTORY));
+ break;
+ case IDA_VIEW_MENU_LIST:
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_LIST,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT,
+ SCENE_HISTORY_OPTION_NO_HISTORY));
+ break;
+ case IDA_GO_TO_DATE_POPUP_DONE:
+ {
+ DateTime selectedDate = *static_cast<DateTime*>(pArgs->GetAt(0));
+ DateTime currentDate = __pPm->GetCurrentDate();
+ currentDate.SetValue(selectedDate.GetYear(), selectedDate.GetMonth(), selectedDate.GetDay(), currentDate.GetHour(), currentDate.GetMinute());
+ __pPm->SetCurrentDate(currentDate);
+ break;
+ }
+ case IDA_EVENT_POPUP_DELETE:
+ __pPm->RemoveEvent(*static_cast<CalEventInstance*>(pArgs->GetAt(0)), true);
+ break;
+ case IDA_EVENT_POPUP_ONLY_THIS_EVENT_DELETE:
+ __pPm->RemoveEvent(*static_cast<CalEventInstance*>(pArgs->GetAt(0)), false);
+ break;
+ case IDA_EVENT_POPUP_ALL_REPETITIVE_EVENT_DELETE:
+ __pPm->RemoveEvent(*static_cast<CalEventInstance*>(pArgs->GetAt(0)), true);
+ break;
+ case IDA_EVENT_POPUP_ONLY_THIS_EVENT_EDIT:
+ {
+ pArgs->Add(new (std::nothrow) Boolean(false));
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_EVENT_EDITOR,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT), pArgs);
+ pArgs = null;
+ break;
+ }
+ case IDA_EVENT_POPUP_ALL_REPETITIVE_EVENT_EDIT:
+ {
+ pArgs->Add(new (std::nothrow) Boolean(true));
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_EVENT_EDITOR,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT), pArgs);
+ pArgs = null;
+ break;
+ }
+ }
+
+ if (pArgs != null)
+ {
+ pArgs->RemoveAll(true);
+ delete pArgs;
+ }
+}
+
+void
+MonthPanel::OnControlAnimationStarted(ControlAnimator& source, Control& control)
+{
+ if (__pPanningAnimationManager->GetScrollDirection() == VIEW_SCROLL_EFFECT_PREVIEW)
+ {
+ MonthCalendarPanel* pPanel = static_cast<MonthCalendarPanel*>(__pPanelMonthCalendar[VIEW_SCROLL_EFFECT_NEXT]);
+ pPanel->SetPosition(-GetWidth(), pPanel->GetY());
+
+ DateTime date = __pPm->GetCurrentDate();
+ date.AddMonths(-2);
+ pPanel->SetDate(date);
+ pPanel->RequestRedraw(false);
+ }
+ else if (__pPanningAnimationManager->GetScrollDirection() == VIEW_SCROLL_EFFECT_NEXT)
+ {
+ MonthCalendarPanel* pPanel = static_cast<MonthCalendarPanel*>(__pPanelMonthCalendar[VIEW_SCROLL_EFFECT_PREVIEW]);
+ pPanel->SetPosition(GetWidth(), pPanel->GetY());
+
+ DateTime date = __pPm->GetCurrentDate();
+ date.AddMonths(2);
+ pPanel->SetDate(date);
+ pPanel->RequestRedraw(false);
+ }
+}
+
+void
+MonthPanel::OnControlAnimationFinished(ControlAnimator& source, Control& control)
+{
+ if (__pPanningAnimationManager->GetScrollDirection() == VIEW_SCROLL_EFFECT_PREVIEW)
+ {
+ Panel* pPanel = __pPanelMonthCalendar[VIEW_SCROLL_EFFECT_NEXT];
+ __pPanelMonthCalendar[VIEW_SCROLL_EFFECT_NEXT] = __pPanelMonthCalendar[VIEW_SCROLL_EFFECT_CURRENT];
+ __pPanelMonthCalendar[VIEW_SCROLL_EFFECT_CURRENT] = __pPanelMonthCalendar[VIEW_SCROLL_EFFECT_PREVIEW];
+ __pPanelMonthCalendar[VIEW_SCROLL_EFFECT_PREVIEW] = pPanel;
+
+ static_cast<MonthCalendarPanel*>(__pPanelMonthCalendar[VIEW_SCROLL_EFFECT_NEXT])->SetFocusEnabled(false);
+ static_cast<MonthCalendarPanel*>(__pPanelMonthCalendar[VIEW_SCROLL_EFFECT_CURRENT])->SetFocusEnabled(true);
+
+ __pPm->AddCurrentMonth(-1);
+ __pListViewEvent->UpdateList();
+ }
+ else if (__pPanningAnimationManager->GetScrollDirection() == VIEW_SCROLL_EFFECT_NEXT)
+ {
+ Panel* pPanel = __pPanelMonthCalendar[VIEW_SCROLL_EFFECT_PREVIEW];
+ __pPanelMonthCalendar[VIEW_SCROLL_EFFECT_PREVIEW] = __pPanelMonthCalendar[VIEW_SCROLL_EFFECT_CURRENT];
+ __pPanelMonthCalendar[VIEW_SCROLL_EFFECT_CURRENT] = __pPanelMonthCalendar[VIEW_SCROLL_EFFECT_NEXT];
+ __pPanelMonthCalendar[VIEW_SCROLL_EFFECT_NEXT] = pPanel;
+
+ static_cast<MonthCalendarPanel*>(__pPanelMonthCalendar[VIEW_SCROLL_EFFECT_PREVIEW])->SetFocusEnabled(false);
+ static_cast<MonthCalendarPanel*>(__pPanelMonthCalendar[VIEW_SCROLL_EFFECT_CURRENT])->SetFocusEnabled(true);
+
+ __pPm->AddCurrentMonth(1);
+ __pListViewEvent->UpdateList();
+ }
+}
+
+void
+MonthPanel::OnControlAnimationStopped(ControlAnimator& source, Control& control)
+{
+}
+
+void
+MonthPanel::OnListViewItemStateChanged(ListView& listView, int index, int elementId, ListItemStatus status)
+{
+ if (status == LIST_ITEM_STATUS_SELECTED)
+ {
+ LinkedList* pArgs = new (std::nothrow) LinkedList();
+ pArgs->Add(new (std::nothrow) CalEventInstance(*__pPm->GetEventWithWholeIndex(__pPm->GetCurrentDate(), index)));
+ result r = SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_EVENT_DETAILS,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT), pArgs);
+ if (r != E_SUCCESS)
+ {
+ pArgs->RemoveAll(true);
+ delete pArgs;
+ }
+ }
+}
+
+void
+MonthPanel::OnListViewItemSwept(ListView& listView, int index, SweepDirection direction)
+{
+
+}
+
+void
+MonthPanel::OnListViewContextItemStateChanged(ListView& listView, int index, int elementId, ListContextItemStatus status)
+{
+ if (status == LIST_CONTEXT_ITEM_STATUS_SELECTED)
+ {
+ const CalEventInstance* pEvent = __pPm->GetEventWithWholeIndex(__pPm->GetCurrentDate(), index);
+ switch (elementId)
+ {
+ case IDA_MONTH_PANEL_CONTEXT_MENU_EDIT:
+ if (pEvent->IsRecurring() == true)
+ {
+ ThreeButtonPopup::RequestThreeButtonPopup(THREE_BUTTON_POPUP_STYLE_EDIT, this, pEvent);
+ }
+ else
+ {
+ LinkedList* pArgs = new (std::nothrow) LinkedList();
+ pArgs->Add(new (std::nothrow) CalEventInstance(*pEvent));
+ pArgs->Add(new (std::nothrow) Boolean(true));
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_EVENT_EDITOR,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT), pArgs);
+ }
+ break;
+ case IDA_MONTH_PANEL_CONTEXT_MENU_SHARE:
+// SharePopup::RequestShare(pEvent->GetOriginalEventId());
+ __pSharePopup->RequestShare(pEvent->GetOriginalEventId());
+ break;
+ case IDA_MONTH_PANEL_CONTEXT_MENU_DELETE:
+ if (pEvent->IsRecurring() == true)
+ {
+ ThreeButtonPopup::RequestThreeButtonPopup(THREE_BUTTON_POPUP_STYLE_DELETE, this, pEvent);
+ }
+ else
+ {
+ TwoButtonPopup::RequestTwoButtonPopup(TWO_BUTTON_POPUP_STYLE_SINGLE_EVENT, this, pEvent);
+ }
+ break;
+ }
+ }
+}
+
+void
+MonthPanel::OnListViewItemLongPressed(ListView& listView, int index, int elementId, bool& invokeListViewItemCallback)
+{
+
+}
+
+void
+MonthPanel::OnListViewItemReordered(ListView& listView, int indexFrom, int indexTo)
+{
+
+}
+
+int
+MonthPanel::GetItemCount(void)
+{
+ return __pPm->GetWholeEventCount(__pPm->GetCurrentDate());
+}
+
+ListItemBase*
+MonthPanel::CreateItem(int index, int itemWidth)
+{
+ const CalEventInstance* pEvent = __pPm->GetEventWithWholeIndex(__pPm->GetCurrentDate(), index);
+ if (pEvent == null)
+ {
+ return null;
+ }
+
+ EventItem* pItem = new (std::nothrow) EventItem();
+ pItem->Initialize(EVENT_ITEM_STYLE_NORMAL, itemWidth);
+ pItem->SetTitle(pEvent->GetSubject());
+ pItem->SetCalendarColor(__pPm->GetCalendarColor(pEvent->GetCalendarId()));
+ pItem->SetLocation(pEvent->GetLocation());
+ if (pEvent->IsAllDayEvent() == true)
+ {
+ pItem->SetAllDayEvent();
+ }
+ else
+ {
+ DateTime startTime = ResourceManager::ConvertUtcTimeToWallTime(pEvent->GetStartTime());
+ DateTime endTime = ResourceManager::ConvertUtcTimeToWallTime(pEvent->GetEndTime());
+ pItem->SetDateRange(startTime, endTime, __pPm->GetCurrentDate(), __pPm->GetTimeFormatter());
+ }
+ pItem->SetReminder(pEvent->HasReminder());
+ pItem->SetRepeat(pEvent->IsRecurring());
+// pItem->SetFacebookEvent(false);
+ pItem->UpdateElements();
+
+ pItem->SetContextItem(__pContextItem);
+ return pItem;
+}
+
+bool
+MonthPanel::DeleteItem(int index, ListItemBase* pItem, int itemWidth)
+{
+ delete pItem;
+ return true;
+}
+
+void
+MonthPanel::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs)
+{
+ if (pArgs != null)
+ {
+ pArgs->RemoveAll(true);
+ delete pArgs;
+ }
+
+ __pPm->SetViewType(VIEW_TYPE_MONTHLY);
+ MonthCalendarPanel* pCurrent = static_cast<MonthCalendarPanel*>(__pPanelMonthCalendar[VIEW_SCROLL_EFFECT_CURRENT]);
+ if (pCurrent->GetDate().GetYear() == __pPm->GetCurrentYear() && pCurrent->GetDate().GetMonth() == __pPm->GetCurrentMonth())
+ {
+ pCurrent->UpdateEvent();
+ __pListViewEvent->UpdateList();
+ }
+
+ for (int i = VIEW_SCROLL_EFFECT_NEXT; i < VIEW_SCROLL_EFFECT_COUNT; ++i)
+ {
+ MonthCalendarPanel* pPanel = new (std::nothrow) MonthCalendarPanel();
+ DateTime date = __pPm->GetCurrentDate();
+ switch (i)
+ {
+ case VIEW_SCROLL_EFFECT_NEXT:
+ date.AddMonths(1);
+ pPanel->Initialize(Rectangle(GetWidth(), 0, GetWidth(), GetHeight()), date, *__pPm);
+ break;
+ case VIEW_SCROLL_EFFECT_PREVIEW:
+ date.AddMonths(-1);
+ pPanel->Initialize(Rectangle(-GetWidth(), 0, GetWidth(), GetHeight()), date, *__pPm);
+ break;
+ }
+ AddControl(*pPanel);
+ pPanel->SetDateFocusEventListener(*this);
+ pPanel->SetPanningAnimationManager(*__pPanningAnimationManager);
+ __pPanelMonthCalendar[i] = pPanel;
+ }
+
+ Update(true);
+
+ __pPm->AddCalendarEventChangedEventListener(*this);
+ __pPm->AddCurrentDateChangedEventListener(*this);
+}
+
+void
+MonthPanel::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
+{
+ __pPm->RemoveCalendarEventChangedEventListener(*this);
+ __pPm->RemoveCurrentDateChangedEventListener(*this);
+
+ RemoveControl(*__pPanelMonthCalendar[VIEW_SCROLL_EFFECT_NEXT]);
+ __pPanelMonthCalendar[VIEW_SCROLL_EFFECT_NEXT] = null;
+ RemoveControl(*__pPanelMonthCalendar[VIEW_SCROLL_EFFECT_PREVIEW]);
+ __pPanelMonthCalendar[VIEW_SCROLL_EFFECT_PREVIEW] = null;
+}
+
+void
+MonthPanel::OnCalendarEventChanged(void)
+{
+ static_cast<MonthCalendarPanel*>(__pPanelMonthCalendar[VIEW_SCROLL_EFFECT_CURRENT])->UpdateEvent();
+ static_cast<MonthCalendarPanel*>(__pPanelMonthCalendar[VIEW_SCROLL_EFFECT_NEXT])->UpdateEvent();
+ static_cast<MonthCalendarPanel*>(__pPanelMonthCalendar[VIEW_SCROLL_EFFECT_PREVIEW])->UpdateEvent();
+ __pListViewEvent->UpdateList();
+}
+
+void
+MonthPanel::OnCurrentDateChanged(const DateTime& currentDate, const DateTime& prevDate)
+{
+ DateTime currentCalendarDate = static_cast<MonthCalendarPanel*>(__pPanelMonthCalendar[VIEW_SCROLL_EFFECT_CURRENT])->GetDate();
+ Update(currentDate.GetYear() != currentCalendarDate.GetYear() || currentDate.GetMonth() != currentCalendarDate.GetMonth());
+}
+
+void
+MonthPanel::OnDateFocused(const DateTime& focusedDate)
+{
+ __pPm->SetCurrentDate(focusedDate);
+ __pListViewEvent->UpdateList();
+}
+
+Control*
+MonthPanel::GetCurrentControl(void)
+{
+ return __pPanelMonthCalendar[VIEW_SCROLL_EFFECT_CURRENT];
+}
+
+Control*
+MonthPanel::GetNextControl(void)
+{
+ return __pPanelMonthCalendar[VIEW_SCROLL_EFFECT_NEXT];
+}
+
+Control*
+MonthPanel::GetPreviewControl(void)
+{
+ return __pPanelMonthCalendar[VIEW_SCROLL_EFFECT_PREVIEW];
+}
+
+void
+MonthPanel::DrawCalendar(void)
+{
+ DateTime current = static_cast<MonthCalendarPanel*>(__pPanelMonthCalendar[VIEW_SCROLL_EFFECT_CURRENT])->GetDate();
+ static_cast<MonthCalendarPanel*>(__pPanelMonthCalendar[VIEW_SCROLL_EFFECT_CURRENT])->SetDate(__pPm->GetCurrentDate());
+
+ int height = GetHeight() - __pPanelMonthCalendar[VIEW_SCROLL_EFFECT_CURRENT]->GetHeight();
+ if (__pListViewEvent->GetHeight() != height)
+ {
+ __pListViewEvent->SetBounds(0, GetHeight() - height, GetWidth(), height);
+ }
+ if (EventListPresentationModel::IsSameDay(current, __pPm->GetCurrentDate()) == false)
+ {
+ __pListViewEvent->UpdateList();
+ }
+
+ MonthCalendarPanel* pNextPanel = static_cast<MonthCalendarPanel*>(__pPanelMonthCalendar[VIEW_SCROLL_EFFECT_NEXT]);
+ if (pNextPanel != null)
+ {
+ DateTime nextDate = __pPm->GetCurrentDate();
+ nextDate.AddMonths(1);
+ pNextPanel->SetDate(nextDate);
+ }
+
+ MonthCalendarPanel* pPrevPanel = static_cast<MonthCalendarPanel*>(__pPanelMonthCalendar[VIEW_SCROLL_EFFECT_PREVIEW]);
+ if (pPrevPanel != null)
+ {
+ DateTime prevDate = __pPm->GetCurrentDate();
+ prevDate.AddMonths(-1);
+ pPrevPanel->SetDate(prevDate);
+ }
+}
+
+void
+MonthPanel::DrawCurrentDate(void)
+{
+ Form* pForm = dynamic_cast<Form*>(GetParent());
+ if (pForm != null)
+ {
+ Header* pHeader = pForm->GetHeader();
+ if (pHeader != null)
+ {
+ pHeader->SetTitleText(__pPm->GetMonthString(__pPm->GetCurrentDate()));
+ pHeader->Invalidate(false);
+ }
+ }
+}
+
+void
+MonthPanel::Update(bool draw)
+{
+ DrawCurrentDate();
+ DrawCalendar();
+
+ if (draw == true)
+ {
+ __pPanelMonthCalendar[VIEW_SCROLL_EFFECT_CURRENT]->Invalidate(true);
+ if (__pPanelMonthCalendar[VIEW_SCROLL_EFFECT_NEXT] != null)
+ {
+ __pPanelMonthCalendar[VIEW_SCROLL_EFFECT_NEXT]->RequestRedraw(false);
+ }
+ if (__pPanelMonthCalendar[VIEW_SCROLL_EFFECT_PREVIEW] != null)
+ {
+ __pPanelMonthCalendar[VIEW_SCROLL_EFFECT_PREVIEW]->RequestRedraw(false);
+ }
+ }
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClNodes.cpp
+ * @brief This is the implementation file for the EventNode class and EventListNode class.
+ */
+
+#include <new>
+#include "ClNodes.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Social;
+
+
+EventNode::EventNode(CalEventInstance& event)
+ : __pEvent(&event)
+ , __refCount(1)
+{
+}
+
+EventNode::~EventNode(void)
+{
+ delete __pEvent;
+}
+
+void
+EventNode::AddRef(void)
+{
+ ++__refCount;
+}
+
+void
+EventNode::RemoveRef(void)
+{
+ --__refCount;
+ if (__refCount <= 0)
+ {
+ delete this;
+ }
+}
+
+CalEventInstance*
+EventNode::GetEvent(void)
+{
+ return __pEvent;
+}
+
+
+EventListNode::EventListNode(const DateTime& date)
+ : __date(date)
+ , __pAllDayEvents(null)
+ , __pEvents(null)
+{
+}
+
+EventListNode::~EventListNode(void)
+{
+ if (__pAllDayEvents != null)
+ {
+ int count = __pAllDayEvents->GetCount();
+ for (int i = 0; i < count; ++i)
+ {
+ static_cast<EventNode*>(__pAllDayEvents->GetAt(i))->RemoveRef();
+ }
+ __pAllDayEvents->RemoveAll(false);
+ delete __pAllDayEvents;
+ }
+ if (__pEvents != null)
+ {
+ int count = __pEvents->GetCount();
+ for (int i = 0; i < count; ++i)
+ {
+ static_cast<EventNode*>(__pEvents->GetAt(i))->RemoveRef();
+ }
+ __pEvents->RemoveAll(false);
+ delete __pEvents;
+ }
+}
+
+void
+EventListNode::Add(EventNode& eventNode)
+{
+ if (eventNode.GetEvent()->IsAllDayEvent() == true)
+ {
+ if (__pAllDayEvents == null)
+ {
+ __pAllDayEvents = new (std::nothrow) ArrayList();
+ __pAllDayEvents->Construct();
+ }
+ __pAllDayEvents->Add(eventNode);
+ }
+ else
+ {
+ if (__pEvents == null)
+ {
+ __pEvents = new (std::nothrow) ArrayList();
+ __pEvents->Construct();
+ }
+ __pEvents->Add(eventNode);
+ }
+}
+
+const DateTime&
+EventListNode::GetDate(void) const
+{
+ return __date;
+}
+
+int
+EventListNode::GetAllDayEventCount(void) const
+{
+ if (__pAllDayEvents == null)
+ {
+ return 0;
+ }
+ return __pAllDayEvents->GetCount();
+}
+
+int
+EventListNode::GetEventCount(void) const
+{
+ if (__pEvents == null)
+ {
+ return 0;
+ }
+ return __pEvents->GetCount();
+}
+
+int
+EventListNode::GetWholeEventCount(void) const
+{
+ return GetAllDayEventCount() + GetEventCount();
+}
+
+CalEventInstance*
+EventListNode::GetAllDayEvent(int index) const
+{
+ if (__pAllDayEvents == null)
+ {
+ return null;
+ }
+ return static_cast<EventNode*>(__pAllDayEvents->GetAt(index))->GetEvent();
+}
+
+CalEventInstance*
+EventListNode::GetEvent(int index) const
+{
+ if (__pEvents == null)
+ {
+ return null;
+ }
+ return static_cast<EventNode*>(__pEvents->GetAt(index))->GetEvent();
+}
+
+CalEventInstance*
+EventListNode::GetEventWithWholeIndex(int index) const
+{
+ if (index < 0)
+ {
+ return null;
+ }
+
+ int allDayEventCount = GetAllDayEventCount();
+ if (index < allDayEventCount)
+ {
+ return static_cast<EventNode*>(__pAllDayEvents->GetAt(index))->GetEvent();
+ }
+
+ index -= allDayEventCount;
+ if (index < GetEventCount())
+ {
+ return static_cast<EventNode*>(__pEvents->GetAt(index))->GetEvent();
+ }
+
+ return null;
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClPanelFactory.h
+ * @brief This is the implementation file for the PanelFactory class.
+ */
+
+#include <new>
+#include <FBase.h>
+#include "ClDayPanel.h"
+#include "ClListPanel.h"
+#include "ClMonthPanel.h"
+#include "ClPanelFactory.h"
+#include "ClTypes.h"
+#include "ClYearPanel.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+
+PanelFactory::PanelFactory(void)
+{
+
+}
+
+PanelFactory::~PanelFactory(void)
+{
+
+}
+
+Panel*
+PanelFactory::CreatePanelN(const String& panelId, const SceneId& sceneId)
+{
+ AppLogDebug("%ls", panelId.GetPointer());
+ Panel* pPanel = null;
+ result r = E_SUCCESS;
+ if (panelId == IDC_YEAR_PANEL)
+ {
+ YearPanel* pYearPanel = new (std::nothrow) YearPanel();
+ r = pYearPanel->Initialize();
+ SceneManager::GetInstance()->AddSceneEventListener(sceneId, *pYearPanel);
+ pPanel = pYearPanel;
+ }
+ else if (panelId == IDC_MONTH_PANEL)
+ {
+ MonthPanel* pMonthPanel = new (std::nothrow) MonthPanel();
+ r = pMonthPanel->Initialize();
+ SceneManager::GetInstance()->AddSceneEventListener(sceneId, *pMonthPanel);
+ pPanel = pMonthPanel;
+ }
+ else if (panelId == IDC_DAY_PANEL)
+ {
+ DayPanel* pDayPanel = new (std::nothrow) DayPanel();
+ r = pDayPanel->Initialize();
+ SceneManager::GetInstance()->AddSceneEventListener(sceneId, *pDayPanel);
+ pPanel = pDayPanel;
+ }
+ else if (panelId == IDC_LIST_PANEL)
+ {
+ ListPanel* pListPanel = new (std::nothrow) ListPanel();
+ r = pListPanel->Initialize();
+ SceneManager::GetInstance()->AddSceneEventListener(sceneId, *pListPanel);
+ pPanel = pListPanel;
+ }
+
+ TryCatch(r == E_SUCCESS, , "[%s] Unable to initialize %ls.", GetErrorMessage(r), panelId.GetPointer());
+ return pPanel;
+CATCH:
+ delete pPanel;
+ return null;
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClPanningAnimationManager.cpp
+ * @brief This is the implementation file for the PanningAnimationManager class.
+ */
+
+#include <FBase.h>
+#include "ClPanningAnimationManager.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Animations;
+using namespace Tizen::Ui::Controls;
+
+static const int EFFECT_DURATION = 300;
+static const int GESTURE_THRESHOLD = 72;
+
+PanningAnimationManager::PanningAnimationManager(void)
+ : __pProvider(null)
+ , __pControlAnimatorEventListener(null)
+ , __pCurrent(null)
+ , __pNext(null)
+ , __pPreview(null)
+ , __effectDirection(VIEW_SCROLL_EFFECT_CURRENT)
+ , __isTouchPanningTriggered(false)
+ , __isPanningEffectRunning(false)
+{
+}
+
+PanningAnimationManager::~PanningAnimationManager(void)
+{
+ RemovePanningGestureEventListener(*this);
+}
+
+ViewScrollEffect
+PanningAnimationManager::GetScrollDirection(void) const
+{
+ return __effectDirection;
+}
+
+void
+PanningAnimationManager::Initialize(IPanningAnimationControlProvider& provider)
+{
+ Construct();
+ AddPanningGestureEventListener(*this);
+ SetDelayTouchEventEnabled(true);
+
+ __pProvider = &provider;
+}
+
+result
+PanningAnimationManager::RunPanningAnimation(ViewScrollEffect scrollDirection)
+{
+ result r = E_SUCCESS;
+ __pCurrent = __pProvider->GetCurrentControl();
+ switch (scrollDirection)
+ {
+ case VIEW_SCROLL_EFFECT_CURRENT:
+ r = RunPanningAnimation(0);
+ break;
+ case VIEW_SCROLL_EFFECT_NEXT:
+ r = RunPanningAnimation(-__pCurrent->GetWidth());
+ break;
+ case VIEW_SCROLL_EFFECT_PREVIEW:
+ r = RunPanningAnimation(__pCurrent->GetWidth());
+ break;
+ default:
+ r = E_INVALID_ARG;
+ break;
+ }
+
+ if (r == E_SUCCESS)
+ {
+ __effectDirection = scrollDirection;
+ }
+ return r;
+}
+
+void
+PanningAnimationManager::SetControlAnimatorEventListener(IControlAnimatorEventListener& listener)
+{
+ __pControlAnimatorEventListener = &listener;
+}
+
+void
+PanningAnimationManager::OnTouchMoved(Control& source, const TouchEventInfo& touchInfo)
+{
+ // Todo : Remove ITouchEventListener and validate below code.(In SDK 2.0.0 RC2, touchInfo has wrong value.)
+// if (__isTouchPanningTriggered == true)
+// {
+// if (__isPanningEffectRunning == true)
+// {
+// int dX = touchInfo.GetCurrentPosition().x - touchInfo.GetStartPosition().x;
+// RunPanningAnimation(dX, true);
+// }
+// else
+// {
+// int dX = touchInfo.GetCurrentPosition().x - touchInfo.GetStartPosition().x;
+// int absdX = (dX >= 0) ? dX : -dX;
+// int dY = touchInfo.GetCurrentPosition().y - touchInfo.GetStartPosition().y;
+// {
+// dY = -dY;
+// }
+//
+// if (absdX > dY * 2 && absdX > GESTURE_THRESHOLD)
+// {
+// __isPanningEffectRunning = true;
+// RunPanningAnimation(dX, true);
+// }
+// }
+// }
+}
+
+void
+PanningAnimationManager::OnControlAnimationStarted(ControlAnimator& source, Control& control)
+{
+ if (__pControlAnimatorEventListener != null)
+ {
+ __pControlAnimatorEventListener->OnControlAnimationStarted(source, control);
+ }
+}
+
+void
+PanningAnimationManager::OnControlAnimationFinished(ControlAnimator& source, Control& control)
+{
+ __isPanningEffectRunning = false;
+
+ __pCurrent->GetControlAnimator()->RemoveControlAnimatorEventListener(*this);
+ if (__pControlAnimatorEventListener != null)
+ {
+ __pControlAnimatorEventListener->OnControlAnimationFinished(source, control);
+ }
+
+ if (__isTouchPanningTriggered == false)
+ {
+ __pCurrent = null;
+ __pPreview = null;
+ __pNext = null;
+ }
+}
+
+void
+PanningAnimationManager::OnControlAnimationStopped(ControlAnimator& source, Control& control)
+{
+ __pCurrent->GetControlAnimator()->RemoveControlAnimatorEventListener(*this);
+ if (__pControlAnimatorEventListener != null)
+ {
+ __pControlAnimatorEventListener->OnControlAnimationStopped(source, control);
+ }
+}
+
+void
+PanningAnimationManager::OnTouchPressed(const Control& source, const Point& currentPosition, const TouchEventInfo & touchInfo)
+{
+}
+
+void
+PanningAnimationManager::OnTouchReleased(const Control& source, const Point& currentPosition, const TouchEventInfo& touchInfo)
+{
+}
+
+void
+PanningAnimationManager::OnTouchMoved(const Control& source, const Point& currentPosition, const TouchEventInfo& touchInfo)
+{
+ if (__isTouchPanningTriggered == true)
+ {
+ if (__isPanningEffectRunning == true)
+ {
+ int dX = currentPosition.x - touchInfo.GetStartPosition().x;
+ RunPanningAnimation(dX, true);
+ }
+ else
+ {
+ int dX = currentPosition.x - touchInfo.GetStartPosition().x;
+ int absdX = (dX >= 0) ? dX : -dX;
+ int dY = currentPosition.y - touchInfo.GetStartPosition().y;
+ {
+ dY = -dY;
+ }
+
+ if (absdX > dY * 2 && absdX > GESTURE_THRESHOLD)
+ {
+ __isPanningEffectRunning = true;
+ RunPanningAnimation(dX, true);
+ }
+ }
+ }
+}
+
+void
+PanningAnimationManager::OnTouchFocusIn(const Control& source, const Point& currentPosition, const TouchEventInfo& touchInfo)
+{
+}
+
+void
+PanningAnimationManager::OnTouchFocusOut(const Control& source, const Point& currentPosition, const TouchEventInfo& touchInfo)
+{
+}
+
+void
+PanningAnimationManager::OnPanningGestureStarted(TouchPanningGestureDetector& gestureDetector)
+{
+ if (__isPanningEffectRunning == false)
+ {
+ __isTouchPanningTriggered = true;
+ __pCurrent = __pProvider->GetCurrentControl();
+ __effectDirection = VIEW_SCROLL_EFFECT_CURRENT;
+ }
+}
+
+void
+PanningAnimationManager::OnPanningGestureChanged(TouchPanningGestureDetector& gestureDetector)
+{
+}
+
+void
+PanningAnimationManager::OnPanningGestureFinished(TouchPanningGestureDetector& gestureDetector)
+{
+ __isTouchPanningTriggered = false;
+ if (__isPanningEffectRunning == true)
+ {
+ if (__pCurrent->GetX() > (__pCurrent->GetWidth() / 2))
+ {
+ // Go preview
+ __effectDirection = VIEW_SCROLL_EFFECT_PREVIEW;
+ RunPanningAnimation(__pCurrent->GetWidth(), true);
+ }
+ else if (__pCurrent->GetX() < -(__pCurrent->GetWidth() / 2))
+ {
+ // Go next
+ __effectDirection = VIEW_SCROLL_EFFECT_NEXT;
+ RunPanningAnimation(-__pCurrent->GetWidth(), true);
+ }
+ else
+ {
+ // Go current
+ __effectDirection = VIEW_SCROLL_EFFECT_CURRENT;
+ RunPanningAnimation(0, true);
+ }
+ }
+}
+
+void
+PanningAnimationManager::OnPanningGestureCanceled(TouchPanningGestureDetector& gestureDetector)
+{
+ OnPanningGestureFinished(gestureDetector);
+}
+
+result
+PanningAnimationManager::RunPanningAnimation(int endPosition, bool runForce)
+{
+ Point startPos = __pCurrent->GetPosition();
+ Point endPos(endPosition, startPos.y);
+
+ if (startPos.x > 0 || endPos.x > 0)
+ {
+ __pPreview = __pProvider->GetPreviewControl();
+ ControlAnimator* pPreviewAnimator = __pPreview->GetControlAnimator();
+ if (runForce == true)
+ {
+ pPreviewAnimator->StopAllAnimations();
+ }
+ PointAnimation previewPointAnimation(Point(startPos.x - __pPreview->GetWidth(), startPos.y),
+ Point(endPos.x - __pPreview->GetWidth(), endPos.y),
+ EFFECT_DURATION, ANIMATION_INTERPOLATOR_EASE_IN_OUT);
+ pPreviewAnimator->StartUserAnimation(ANIMATION_TARGET_POSITION, previewPointAnimation);
+ }
+
+ if (startPos.x < 0 || endPos.x < 0)
+ {
+ __pNext = __pProvider->GetNextControl();
+ ControlAnimator* pNextAnimator = __pNext->GetControlAnimator();
+ if (runForce == true)
+ {
+ pNextAnimator->StopAllAnimations();
+ }
+ PointAnimation nextPointAnimation(Point(startPos.x + __pCurrent->GetWidth(), startPos.y),
+ Point(endPos.x + __pCurrent->GetWidth(), endPos.y),
+ EFFECT_DURATION, ANIMATION_INTERPOLATOR_EASE_IN_OUT);
+ pNextAnimator->StartUserAnimation(ANIMATION_TARGET_POSITION, nextPointAnimation);
+ }
+
+ ControlAnimator* pCurrentAnimator = __pCurrent->GetControlAnimator();
+ if (runForce == true)
+ {
+ pCurrentAnimator->StopAllAnimations();
+ }
+ pCurrentAnimator->AddControlAnimatorEventListener(*this);
+
+ PointAnimation currentPointAnimation(startPos, endPos, EFFECT_DURATION, ANIMATION_INTERPOLATOR_EASE_IN_OUT);
+ return pCurrentAnimator->StartUserAnimation(ANIMATION_TARGET_POSITION, currentPointAnimation);
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClReminderForm.cpp
+ * @brief This is the implementation file for the ReminderForm class.
+ */
+
+#include <new>
+#include <FBase.h>
+#include <FGraphics.h>
+#include "ClReminderForm.h"
+#include "ClResourceManager.h"
+#include "ClTypes.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Graphics;
+using namespace Tizen::Social;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+static const int IDA_REMINDER_FORM_BACK = 29101;
+static const int IDA_REMINDER_FORM_TIME_UNIT = 29801;
+
+static const int H_GROUP_REMINDER_ITEM = 16;
+static const int H_REMINDER_ITEM = 112;
+static const int FONT_SIZE_REMINDER_TYPE_CUSTOM = 42;
+static const int X_REMINDER_TYPE_CUSTOM = 16;
+static const int Y_REMINDER_TYPE_CUSTOM_EDIT_FILED = 19;
+static const int W_REMINDER_TYPE_CUSTOM_EDIT_FILED = 90;
+static const int H_REMINDER_TYPE_CUSTOM_EDIT_FILED = 74;
+static const int Y_REMINDER_TYPE_BUTTON_TIME_UNIT = 19;
+static const int W_REMINDER_TYPE_BUTTON_TIME_UNIT = 130;
+static const int H_REMINDER_TYPE_BUTTON_TIME_UNIT = 74;
+static const unsigned int COLOR_ITEM_TEXT = Color32<0, 0, 0>::Value;
+static const int X_TIME_UNIT_SELECTOR = 400;
+static const int Y_TIME_UNIT_SELECTOR = 1050;
+
+ReminderForm::ReminderForm(void)
+ : __pReminder(null)
+ , __pEditFieldReminderTime(null)
+ , __pButtonReminderTimeUnit(null)
+ , __pLabelBefore(null)
+ , __pTableView(null)
+ , __pContextMenuTimeUnitSelector(null)
+ , __reminderType(REMINDER_TYPE_OFF)
+ , __reminderTimeUnit(REMINDER_TIME_UNIT_MINUTE)
+ , __reminderTimeUnitText(ResourceManager::GetString(IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE))
+ , __customReminderTimeOffset(0)
+ , __index(0)
+{
+}
+
+ReminderForm::~ReminderForm(void)
+{
+}
+
+result
+ReminderForm::Initialize(void)
+{
+ return Construct(L"IDL_REMINDER_FORM");
+}
+
+result
+ReminderForm::OnInitializing(void)
+{
+ __pReminder = new (std::nothrow) Reminder();
+
+ SetFormBackEventListener(this);
+
+ __pTableView = dynamic_cast<GroupedTableView*>(GetControl(L"IDC_GROUPEDTABLEVIEW"));
+ TryReturn(__pTableView != null, E_FAILURE, "[E_FAILURE] Unable to get groupedtableview.");
+ __pTableView->SetItemProvider(this);
+ __pTableView->AddGroupedTableViewItemEventListener(*this);
+
+ ContextMenu* pTimeUnitSelector = new (std::nothrow) ContextMenu();
+ pTimeUnitSelector->Construct(Point(X_TIME_UNIT_SELECTOR, Y_TIME_UNIT_SELECTOR), CONTEXT_MENU_STYLE_LIST);
+ pTimeUnitSelector->AddItem(ResourceManager::GetString(IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE), REMINDER_TIME_UNIT_MINUTE);
+ pTimeUnitSelector->AddItem(ResourceManager::GetString(IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR), REMINDER_TIME_UNIT_HOUR);
+ pTimeUnitSelector->AddItem(ResourceManager::GetString(IDS_REMINDER_CUSTOM_TIME_UNIT_DAY), REMINDER_TIME_UNIT_DAY);
+ pTimeUnitSelector->AddItem(ResourceManager::GetString(IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK), REMINDER_TIME_UNIT_WEEK);
+ pTimeUnitSelector->AddActionEventListener(*this);
+ __pContextMenuTimeUnitSelector = pTimeUnitSelector;
+
+ return E_SUCCESS;
+}
+
+result
+ReminderForm::OnTerminating(void)
+{
+ delete __pReminder;
+ delete __pContextMenuTimeUnitSelector;
+ return E_SUCCESS;
+}
+
+void
+ReminderForm::OnFormBackRequested(Form& source)
+{
+ if (__reminderType == REMINDER_TYPE_OFF)
+ {
+ LinkedList* pList = new (std::nothrow) LinkedList();
+ pList->Add(new (std::nothrow) Integer(__index));
+ SceneManager::GetInstance()->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT), pList);
+ }
+
+ if(__pReminder != null)
+ {
+ if (__reminderType == REMINDER_TYPE_CUSTOM)
+ {
+ int timeOffset = 0;
+ if (__pEditFieldReminderTime->GetText().IsEmpty() == false)
+ {
+ Integer::Parse(__pEditFieldReminderTime->GetText(), timeOffset);
+ }
+
+ __pReminder->SetTimeOffset(__reminderTimeUnit, timeOffset);
+ }
+ }
+
+ LinkedList* pList = new (std::nothrow) LinkedList();
+ pList->Add(new (std::nothrow) Integer(__index));
+ pList->Add(__pReminder);
+ __pReminder = null;
+ SceneManager::GetInstance()->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT), pList);
+}
+
+int
+ReminderForm::GetGroupCount(void)
+{
+ return 1;
+}
+
+int
+ReminderForm::GetItemCount(int groupIndex)
+{
+ return REMINDER_TYPE_MAX;
+}
+
+TableViewGroupItem*
+ReminderForm::CreateGroupItem(int groupIndex, int itemWidth)
+{
+ TableViewGroupItem* pItem = new (std::nothrow) TableViewGroupItem();
+
+ pItem->Construct(Dimension(itemWidth, H_GROUP_REMINDER_ITEM));
+
+ return pItem;
+}
+
+bool
+ReminderForm::DeleteGroupItem(int groupIndex, TableViewGroupItem* pItem)
+{
+ delete pItem;
+ return true;
+}
+
+void
+ReminderForm::UpdateGroupItem(int groupIndex, TableViewGroupItem* pItem)
+{
+}
+
+TableViewItem*
+ReminderForm::CreateItem(int groupIndex, int itemIndex, int itemWidth)
+{
+ TableViewItem* pItem = new (std::nothrow) TableViewItem();
+
+ Label* pText = null;
+ pItem->Construct(Dimension(itemWidth, H_REMINDER_ITEM), TABLE_VIEW_ANNEX_STYLE_RADIO);
+
+ pText = new (std::nothrow) Label();
+ switch (itemIndex)
+ {
+ case REMINDER_TYPE_OFF:
+ pText->Construct(Rectangle(0, 0, itemWidth, H_REMINDER_ITEM), ResourceManager::GetString(IDS_CLD_BODY_OFF));
+ break;
+ case REMINDER_TYPE_ON_TIME:
+ pText->Construct(Rectangle(0, 0, itemWidth, H_REMINDER_ITEM), ResourceManager::GetString(IDS_CLD_BODY_ON_TIME));
+ break;
+ case REMINDER_TYPE_5_MINS_BEFORE:
+ pText->Construct(Rectangle(0, 0, itemWidth, H_REMINDER_ITEM), ResourceManager::GetString(IDS_CLD_BODY_5_MIN_BEFORE));
+ break;
+ case REMINDER_TYPE_15_MINS_BEFORE:
+ pText->Construct(Rectangle(0, 0, itemWidth, H_REMINDER_ITEM), ResourceManager::GetString(IDS_CLD_OPT_15_MINS_BEFORE));
+ break;
+ case REMINDER_TYPE_1_HOUR_BEFORE:
+ pText->Construct(Rectangle(0, 0, itemWidth, H_REMINDER_ITEM), ResourceManager::GetString(IDS_CLD_BODY_1_HOUR_BEFORE));
+ break;
+ case REMINDER_TYPE_1_DAY_BEFORE:
+ pText->Construct(Rectangle(0, 0, itemWidth, H_REMINDER_ITEM), ResourceManager::GetString(IDS_CLD_BODY_1_DAY_BEFORE));
+ break;
+ case REMINDER_TYPE_2_DAYS_BEFORE:
+ pText->Construct(Rectangle(0, 0, itemWidth, H_REMINDER_ITEM), ResourceManager::GetString(IDS_CLD_BODY_2_DAYS_BEFORE));
+ break;
+ case REMINDER_TYPE_1_WEEK_BEFORE:
+ pText->Construct(Rectangle(0, 0, itemWidth, H_REMINDER_ITEM), ResourceManager::GetString(IDS_CLD_BODY_1_WEEK_BEFORE));
+ break;
+ case REMINDER_TYPE_CUSTOM:
+ {
+ int x = 0;
+
+ __pEditFieldReminderTime = new (std::nothrow) EditField();
+ __pEditFieldReminderTime->Construct(Rectangle(x, Y_REMINDER_TYPE_CUSTOM_EDIT_FILED, W_REMINDER_TYPE_CUSTOM_EDIT_FILED,
+ H_REMINDER_TYPE_CUSTOM_EDIT_FILED), EDIT_FIELD_STYLE_NUMBER, INPUT_STYLE_OVERLAY, false, 2);
+ __pEditFieldReminderTime->SetGuideText(L"00");
+ __pEditFieldReminderTime->AddKeypadEventListener(*this);
+ if (__customReminderTimeOffset > 0)
+ {
+ __pEditFieldReminderTime->SetText(Integer::ToString(__customReminderTimeOffset));
+ }
+ __pEditFieldReminderTime->SetEnabled(__reminderType == REMINDER_TYPE_CUSTOM);
+ pItem->AddControl(*__pEditFieldReminderTime);
+ pItem->SetIndividualSelectionEnabled(__pEditFieldReminderTime, __reminderType == REMINDER_TYPE_CUSTOM);
+
+ x += __pEditFieldReminderTime->GetWidth() + X_REMINDER_TYPE_CUSTOM;
+
+ __pButtonReminderTimeUnit = new (std::nothrow) Button();
+ __pButtonReminderTimeUnit->Construct(Rectangle(x, Y_REMINDER_TYPE_BUTTON_TIME_UNIT, W_REMINDER_TYPE_BUTTON_TIME_UNIT,
+ H_REMINDER_TYPE_BUTTON_TIME_UNIT));
+ __pButtonReminderTimeUnit->SetActionId(IDA_REMINDER_FORM_TIME_UNIT);
+
+ Dimension textExtent;
+ Font font;
+ font.Construct(FONT_STYLE_PLAIN, __pButtonReminderTimeUnit->GetTextSize());
+ font.GetTextExtent(__reminderTimeUnitText, __reminderTimeUnitText.GetLength(), textExtent);
+
+ int width = textExtent.width + X_REMINDER_TYPE_CUSTOM + X_REMINDER_TYPE_CUSTOM;
+ if (width < W_REMINDER_TYPE_BUTTON_TIME_UNIT)
+ {
+ width = W_REMINDER_TYPE_BUTTON_TIME_UNIT;
+ }
+ __pButtonReminderTimeUnit->SetSize(width, H_REMINDER_TYPE_BUTTON_TIME_UNIT);
+
+ __pButtonReminderTimeUnit->SetText(__reminderTimeUnitText);
+ __pButtonReminderTimeUnit->SetEnabled(__reminderType == REMINDER_TYPE_CUSTOM);
+ __pButtonReminderTimeUnit->AddActionEventListener(*this);
+ pItem->AddControl(*__pButtonReminderTimeUnit);
+ pItem->SetIndividualSelectionEnabled(__pButtonReminderTimeUnit, __reminderType == REMINDER_TYPE_CUSTOM);
+
+ x += __pButtonReminderTimeUnit->GetWidth();
+ pText->Construct(Rectangle(x, 0, itemWidth - x, H_REMINDER_ITEM), ResourceManager::GetString(IDS_CLD_BODY_BEFORE_LC));
+ __pLabelBefore = pText;
+ break;
+ }
+ default:
+ TryCatch(false, delete pText, "[E_INVALID_ARG] Invalid itemindex(%d).", itemIndex);
+ break;
+ }
+
+ pText->SetTextConfig(FONT_SIZE_REMINDER_TYPE_CUSTOM, LABEL_TEXT_STYLE_NORMAL);
+ pText->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+ pText->SetTextColor(COLOR_ITEM_TEXT);
+ pItem->AddControl(*pText);
+
+ return pItem;
+CATCH:
+ delete pItem;
+ return null;
+}
+
+bool
+ReminderForm::DeleteItem(int groupIndex, int itemIndex, TableViewItem* pItem)
+{
+ if (itemIndex == REMINDER_TYPE_CUSTOM)
+ {
+ Integer::Parse(__pEditFieldReminderTime->GetText(), __customReminderTimeOffset);
+ __pEditFieldReminderTime = null;
+ __pButtonReminderTimeUnit = null;
+ __pLabelBefore = null;
+ }
+ delete pItem;
+
+ return true;
+}
+
+void
+ReminderForm::UpdateItem(int groupIndex, int itemIndex, TableViewItem* pItem)
+{
+ if (itemIndex == REMINDER_TYPE_CUSTOM)
+ {
+ __pEditFieldReminderTime->SetEnabled(__reminderType == REMINDER_TYPE_CUSTOM);
+ __pEditFieldReminderTime->Invalidate(false);
+ __pButtonReminderTimeUnit->SetText(__reminderTimeUnitText);
+ __pButtonReminderTimeUnit->SetEnabled(__reminderType == REMINDER_TYPE_CUSTOM);
+
+ Dimension textExtent;
+ Font font;
+ font.Construct(FONT_STYLE_PLAIN, __pButtonReminderTimeUnit->GetTextSize());
+ font.GetTextExtent(__reminderTimeUnitText, __reminderTimeUnitText.GetLength(), textExtent);
+
+ int width = textExtent.width + X_REMINDER_TYPE_CUSTOM + X_REMINDER_TYPE_CUSTOM;
+ if (width < W_REMINDER_TYPE_BUTTON_TIME_UNIT)
+ {
+ width = W_REMINDER_TYPE_BUTTON_TIME_UNIT;
+ }
+ __pButtonReminderTimeUnit->SetSize(width, H_REMINDER_TYPE_BUTTON_TIME_UNIT);
+ __pButtonReminderTimeUnit->Invalidate(false);
+ __pLabelBefore->SetPosition(__pButtonReminderTimeUnit->GetX() + __pButtonReminderTimeUnit->GetWidth(), __pLabelBefore->GetY());
+ __pLabelBefore->Invalidate(false);
+
+ pItem->SetIndividualSelectionEnabled(__pEditFieldReminderTime, __reminderType == REMINDER_TYPE_CUSTOM);
+ pItem->SetIndividualSelectionEnabled(__pButtonReminderTimeUnit, __reminderType == REMINDER_TYPE_CUSTOM);
+ }
+}
+
+int
+ReminderForm::GetDefaultGroupItemHeight(void)
+{
+ return H_GROUP_REMINDER_ITEM;
+}
+
+int
+ReminderForm::GetDefaultItemHeight(void)
+{
+ return H_REMINDER_ITEM;
+}
+
+void
+ReminderForm::OnGroupedTableViewGroupItemStateChanged(GroupedTableView& tableView, int groupIndex, TableViewGroupItem* pItem, TableViewItemStatus status)
+{
+}
+
+void
+ReminderForm::OnGroupedTableViewItemStateChanged(GroupedTableView& tableView, int groupIndex, int itemIndex, TableViewItem* pItem, TableViewItemStatus status)
+{
+ if (itemIndex != REMINDER_TYPE_CUSTOM)
+ {
+ // Close keypad.
+ pItem->SetFocus();
+ }
+
+ if (status == TABLE_VIEW_ITEM_STATUS_CHECKED)
+ {
+ tableView.SetItemChecked(groupIndex, (int)__reminderType, false);
+ if (__reminderType == REMINDER_TYPE_CUSTOM)
+ {
+ __reminderType = (ReminderType)itemIndex;
+ tableView.RefreshItem(groupIndex, REMINDER_TYPE_CUSTOM, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
+ }
+ else
+ {
+ __reminderType = (ReminderType)itemIndex;
+ }
+
+ switch (__reminderType)
+ {
+ case REMINDER_TYPE_OFF:
+ __pReminder->SetTimeOffset(REMINDER_TIME_UNIT_MINUTE, 0);
+ break;
+ case REMINDER_TYPE_ON_TIME:
+ __pReminder->SetTimeOffset(REMINDER_TIME_UNIT_MINUTE, 0);
+ break;
+ case REMINDER_TYPE_5_MINS_BEFORE:
+ __pReminder->SetTimeOffset(REMINDER_TIME_UNIT_MINUTE, 5);
+ break;
+ case REMINDER_TYPE_15_MINS_BEFORE:
+ __pReminder->SetTimeOffset(REMINDER_TIME_UNIT_MINUTE, 15);
+ break;
+ case REMINDER_TYPE_1_HOUR_BEFORE:
+ __pReminder->SetTimeOffset(REMINDER_TIME_UNIT_HOUR, 1);
+ break;
+ case REMINDER_TYPE_1_DAY_BEFORE:
+ __pReminder->SetTimeOffset(REMINDER_TIME_UNIT_DAY, 1);
+ break;
+ case REMINDER_TYPE_2_DAYS_BEFORE:
+ __pReminder->SetTimeOffset(REMINDER_TIME_UNIT_DAY, 2);
+ break;
+ case REMINDER_TYPE_1_WEEK_BEFORE:
+ __pReminder->SetTimeOffset(REMINDER_TIME_UNIT_WEEK, 1);
+ break;
+ case REMINDER_TYPE_CUSTOM:
+ tableView.RefreshItem(groupIndex, REMINDER_TYPE_CUSTOM, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
+ __pEditFieldReminderTime->SetFocus();
+ break;
+ default:
+ AppLogDebug("[E_FAILURE] Invalid itemindex(%d).", itemIndex);
+ break;
+ }
+ tableView.Invalidate(true);
+ }
+ else if (status == TABLE_VIEW_ITEM_STATUS_UNCHECKED)
+ {
+ tableView.SetItemChecked(groupIndex, itemIndex, true);
+ tableView.Invalidate(true);
+ }
+}
+
+void
+ReminderForm::OnGroupedTableViewContextItemActivationStateChanged(GroupedTableView& tableView, int groupIndex, int itemIndex, TableViewContextItem* pContextItem, bool activated)
+{
+}
+
+void
+ReminderForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs)
+{
+ Reminder* pReminder = null;
+ Integer* pIndex = null;
+ TryCatch(pArgs != null, , "Unable to get arguments.");
+
+ pIndex = dynamic_cast<Integer*>(pArgs->GetAt(1));
+ if (pIndex != null)
+ {
+ __index = pIndex->ToInt();
+ }
+
+ pReminder = dynamic_cast<Reminder*>(pArgs->GetAt(0));
+ if (pReminder != null)
+ {
+ if (pArgs->RemoveAt(0) == E_SUCCESS)
+ {
+ __pReminder = pReminder;
+ }
+ else
+ {
+ *__pReminder = *pReminder;
+ }
+
+ int itemIndex = (int)__reminderType;
+ __reminderType = REMINDER_TYPE_CUSTOM;
+
+ if (__pReminder->GetTimeOffset() == 0)
+ {
+ __reminderType = REMINDER_TYPE_ON_TIME;
+ }
+
+ switch (__pReminder->GetTimeUnit())
+ {
+ case REMINDER_TIME_UNIT_MINUTE:
+ switch (__pReminder->GetTimeOffset())
+ {
+ case 5:
+ __reminderType = REMINDER_TYPE_5_MINS_BEFORE;
+ break;
+ case 15:
+ __reminderType = REMINDER_TYPE_15_MINS_BEFORE;
+ break;
+ }
+ break;
+ case REMINDER_TIME_UNIT_HOUR:
+ if (__pReminder->GetTimeOffset() == 1)
+ {
+ __reminderType = REMINDER_TYPE_1_HOUR_BEFORE;
+ }
+ break;
+ case REMINDER_TIME_UNIT_DAY:
+ switch (__pReminder->GetTimeOffset())
+ {
+ case 1:
+ __reminderType = REMINDER_TYPE_1_DAY_BEFORE;
+ break;
+ case 2:
+ __reminderType = REMINDER_TYPE_2_DAYS_BEFORE;
+ break;
+ }
+ break;
+ case REMINDER_TIME_UNIT_WEEK:
+ if (__pReminder->GetTimeOffset() == 1)
+ {
+ __reminderType = REMINDER_TYPE_1_WEEK_BEFORE;
+ }
+ break;
+ }
+
+ if (__reminderType == REMINDER_TYPE_CUSTOM)
+ {
+ __reminderTimeUnit = __pReminder->GetTimeUnit();
+ __customReminderTimeOffset = __pReminder->GetTimeOffset();
+ switch (__reminderTimeUnit)
+ {
+ case REMINDER_TIME_UNIT_MINUTE:
+ __reminderTimeUnitText = ResourceManager::GetString(IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE);
+ break;
+ case REMINDER_TIME_UNIT_HOUR:
+ __reminderTimeUnitText = ResourceManager::GetString(IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR);
+ break;
+ case REMINDER_TIME_UNIT_DAY:
+ __reminderTimeUnitText = ResourceManager::GetString(IDS_REMINDER_CUSTOM_TIME_UNIT_DAY);
+ break;
+ case REMINDER_TIME_UNIT_WEEK:
+ __reminderTimeUnitText = ResourceManager::GetString(IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK);
+ break;
+ }
+ }
+
+ __pTableView->SetItemChecked(0, itemIndex, false);
+ }
+
+ pArgs->RemoveAll(true);
+ delete pArgs;
+
+CATCH:
+ __pTableView->UpdateTableView();
+ __pTableView->SetItemChecked(0, __reminderType, true);
+ __pTableView->Invalidate(true);
+}
+
+void
+ReminderForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
+{
+}
+
+void
+ReminderForm::OnActionPerformed(const Control& source, int actionId)
+{
+ switch (actionId)
+ {
+ case IDA_REMINDER_FORM_TIME_UNIT:
+ __pEditFieldReminderTime->HideKeypad();
+ __pContextMenuTimeUnitSelector->SetAnchorPosition(Point(X_TIME_UNIT_SELECTOR, Y_TIME_UNIT_SELECTOR));
+ __pContextMenuTimeUnitSelector->SetShowState(true);
+ __pContextMenuTimeUnitSelector->Show();
+ break;
+
+ case REMINDER_TIME_UNIT_MINUTE:
+ __reminderTimeUnit = REMINDER_TIME_UNIT_MINUTE;
+ __reminderTimeUnitText = ResourceManager::GetString(IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE);
+ __pTableView->RefreshItem(0, REMINDER_TYPE_CUSTOM, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
+ break;
+
+ case REMINDER_TIME_UNIT_HOUR:
+ __reminderTimeUnit = REMINDER_TIME_UNIT_HOUR;
+ __reminderTimeUnitText = ResourceManager::GetString(IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR);
+ __pTableView->RefreshItem(0, REMINDER_TYPE_CUSTOM, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
+ break;
+
+ case REMINDER_TIME_UNIT_DAY:
+ __reminderTimeUnit = REMINDER_TIME_UNIT_DAY;
+ __reminderTimeUnitText = ResourceManager::GetString(IDS_REMINDER_CUSTOM_TIME_UNIT_DAY);
+ __pTableView->RefreshItem(0, REMINDER_TYPE_CUSTOM, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
+ break;
+
+ case REMINDER_TIME_UNIT_WEEK:
+ __reminderTimeUnit = REMINDER_TIME_UNIT_WEEK;
+ __reminderTimeUnitText = ResourceManager::GetString(IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK);
+ __pTableView->RefreshItem(0, REMINDER_TYPE_CUSTOM, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
+ break;
+ case IDA_REMINDER_FORM_BACK:
+ {
+ if (__reminderType == REMINDER_TYPE_OFF)
+ {
+ LinkedList* pList = new (std::nothrow) LinkedList();
+ pList->Add(new (std::nothrow) Integer(__index));
+ SceneManager::GetInstance()->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT), pList);
+ }
+
+ if(__pReminder != null)
+ {
+ if (__reminderType == REMINDER_TYPE_CUSTOM)
+ {
+ int timeOffset = 0;
+ if (__pEditFieldReminderTime->GetText().IsEmpty() == false)
+ {
+ Integer::Parse(__pEditFieldReminderTime->GetText(), timeOffset);
+ }
+
+ __pReminder->SetTimeOffset(__reminderTimeUnit, timeOffset);
+ }
+ }
+
+ LinkedList* pList = new (std::nothrow) LinkedList();
+ pList->Add(new (std::nothrow) Integer(__index));
+ pList->Add(__pReminder);
+ __pReminder = null;
+ SceneManager::GetInstance()->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT), pList);
+ break;
+ }
+ }
+}
+
+void
+ReminderForm::OnKeypadWillOpen(Tizen::Ui::Control& source)
+{
+ ButtonItem backItem;
+ backItem.Construct(BUTTON_ITEM_STYLE_ICON, IDA_REMINDER_FORM_BACK);
+ backItem.SetBackgroundBitmap(BUTTON_ITEM_STATUS_NORMAL, ResourceManager::GetBitmapN(IDB_FORM_BACK));
+ backItem.SetBackgroundBitmap(BUTTON_ITEM_STATUS_PRESSED, ResourceManager::GetBitmapN(IDB_FORM_BACK_PRESS));
+ GetHeader()->SetButton(BUTTON_POSITION_RIGHT, backItem);
+
+ GetHeader()->AddActionEventListener(*this);
+ GetFooter()->SetShowState(false);
+ Invalidate(true);
+}
+
+void
+ReminderForm::OnKeypadOpened(Tizen::Ui::Control& source)
+{
+
+}
+
+void
+ReminderForm::OnKeypadClosed(Tizen::Ui::Control& source)
+{
+ GetHeader()->RemoveActionEventListener(*this);
+ GetHeader()->RemoveAllButtons();
+ GetFooter()->SetShowState(true);
+ Invalidate(true);
+}
+
+void
+ReminderForm::OnKeypadActionPerformed(Tizen::Ui::Control& source, Tizen::Ui::KeypadAction keypadAction)
+{
+
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClRepeatForm.cpp
+ * @brief This is the implementation file for the RepeatForm class.
+ */
+
+#include <new>
+#include <FGraphics.h>
+#include <FLocales.h>
+#include <FSystem.h>
+#include "ClRepeatForm.h"
+#include "ClResourceManager.h"
+#include "ClTypes.h"
+
+using namespace Tizen;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Graphics;
+using namespace Tizen::Social;
+using namespace Tizen::System;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+enum
+{
+ GROUP_REPEAT_TYPE = 0,
+ GROUP_REPEAT_UNTIL_TYPE,
+ GROUP_REPEAT_COUNT,
+ GROUP_REPEAT_OFF_COUNT = GROUP_REPEAT_UNTIL_TYPE
+};
+static const int H_GROUP_REPEAT_ITEM = 76;
+static const int H_REPEAT_ITEM = 112;
+static const unsigned int COLOR_ITEM_BACKGROUND = Color32<0, 0, 0, 0>::Value;
+static const int FONT_SIZE_REPEAT_UNTIL_TYPE = 44;
+static const int X_REPEAT_UNTIL = 148;
+static const int Y_REPEAT_UNTIL_TYPE_EDIT_FIELD = 16;
+static const int W_REPEAT_UNTIL_TYPE_EDIT_FIELD = 132;
+static const int H_REPEAT_UNTIL_TYPE_EDIT_FIELD = 80;
+static const int X_REPEAT_UNTIL_TYPE_EDIT_DATE = 90;
+static const int Y_REPEAT_UNTIL_TYPE_EDIT_DATE = 0;
+static const unsigned int COLOR_TEXT_REPEAT = Color32<0, 0, 0>::Value;
+static const int IDA_REMINDER_FORM_BACK = 29101;
+
+RepeatForm::RepeatForm(void)
+ : __pRepeat(null)
+ , __pTableView(null)
+ , __pEditFieldRepeatCount(null)
+ , __pEditDateUntilDate(null)
+ , __repeatCount(10)
+ , __repeatType(REPEAT_TYPE_OFF)
+ , __repeatUntilType(REPEAT_UNTIL_TYPE_NONE)
+ , __isRepeatUntilDefault(true)
+{
+}
+
+RepeatForm::~RepeatForm(void)
+{
+}
+
+result
+RepeatForm::Initialize(void)
+{
+ return Construct(L"IDL_REPEAT_FORM");
+}
+
+result
+RepeatForm::OnInitializing(void)
+{
+ __pRepeat = new (std::nothrow) Recurrence();
+
+ SetFormBackEventListener(this);
+
+ __pTableView = dynamic_cast<GroupedTableView*>(GetControl(L"IDC_GROUPEDTABLEVIEW"));
+ TryReturn(__pTableView != null, E_FAILURE, "[E_FAILURE] Unable to get groupedtableview.");
+ __pTableView->SetItemProvider(this);
+ __pTableView->AddGroupedTableViewItemEventListener(*this);
+
+ return E_SUCCESS;
+}
+
+result
+RepeatForm::OnTerminating(void)
+{
+ delete __pRepeat;
+ return E_SUCCESS;
+}
+
+void
+RepeatForm::OnDateChanged(const Control& source, int year, int month, int day)
+{
+ __isRepeatUntilDefault = false;
+}
+
+void
+RepeatForm::OnDateChangeCanceled(const Control& source)
+{
+}
+
+void
+RepeatForm::OnFormBackRequested(Form& source)
+{
+ if (__repeatType == REPEAT_TYPE_OFF)
+ {
+ SceneManager::GetInstance()->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT));
+ return;
+ }
+
+ switch (__pRepeat->GetFrequency())
+ {
+ case FREQ_WEEKLY:
+ {
+ Locales::Calendar* pCalendar = Locales::Calendar::CreateInstanceN(Locales::CALENDAR_GREGORIAN);
+ pCalendar->SetTime(__startDate);
+ int dayOfWeekValue = pCalendar->GetTimeField(Locales::TIME_FIELD_DAY_OF_WEEK);
+ delete pCalendar;
+
+ CalDayOfWeek dayOfWeek;
+ switch (dayOfWeekValue)
+ {
+ case 1:
+ dayOfWeek = CAL_SUNDAY;
+ break;
+ case 2:
+ dayOfWeek = CAL_MONDAY;
+ break;
+ case 3:
+ dayOfWeek = CAL_TUESDAY;
+ break;
+ case 4:
+ dayOfWeek = CAL_WEDNESDAY;
+ break;
+ case 5:
+ dayOfWeek = CAL_THURSDAY;
+ break;
+ case 6:
+ dayOfWeek = CAL_FRIDAY;
+ break;
+ case 7:
+ dayOfWeek = CAL_SATURDAY;
+ break;
+ default:
+ dayOfWeek = CAL_SUNDAY;
+ break;
+ }
+ __pRepeat->SetDayOfWeek(dayOfWeek);
+ }
+ break;
+ case FREQ_MONTHLY:
+ __pRepeat->SetDayOfMonth(__startDate.GetDay());
+ break;
+ case FREQ_YEARLY:
+ __pRepeat->SetDayOfMonth(__startDate.GetDay());
+ __pRepeat->SetMonthOfYear(__startDate.GetMonth());
+ break;
+ default:
+ break;
+ }
+
+ if (__repeatUntilType == REPEAT_UNTIL_TYPE_UNTIL_DATE)
+ {
+ DateTime dateTime;
+ dateTime.SetValue(__pEditDateUntilDate->GetYear(), __pEditDateUntilDate->GetMonth()
+ , __pEditDateUntilDate->GetDay(), 23, 59, 59);
+ __pRepeat->SetUntil(&dateTime);
+ }
+ else if (__repeatUntilType == REPEAT_UNTIL_TYPE_COUNT)
+ {
+ int count;
+ Integer::Parse(__pEditFieldRepeatCount->GetText(), count);
+ __pRepeat->SetCounts((count > 1) ? count : 1);
+ }
+ else
+ {
+ // Todo: Recurrence::SetUntil()'s behavior is not matched with its doxygen.
+ // In API description, SetUntil() is available to set DateTime::GetMaxValue(), but it returns E_INVALID_ARG.
+ // However, according to E_INVALID_ARG description, if date > GetMaxDateTime() then API returns E_INVALID_ARG.
+ // If above contradiction is resolved in the future SDK, below code will be modified, depending on the policy of the SDK.
+ DateTime maxDate = Calendarbook::GetMaxDateTime();
+ __pRepeat->SetUntil(&maxDate);
+ }
+
+ LinkedList* pList = new (std::nothrow) LinkedList();
+ pList->Add(__pRepeat);
+ __pRepeat = null;
+ SceneManager::GetInstance()->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT), pList);
+}
+
+int
+RepeatForm::GetGroupCount(void)
+{
+ if (__repeatType == REPEAT_TYPE_OFF)
+ {
+ return GROUP_REPEAT_OFF_COUNT;
+ }
+ return GROUP_REPEAT_COUNT;
+}
+
+int
+RepeatForm::GetItemCount(int groupIndex)
+{
+ switch (groupIndex)
+ {
+ case GROUP_REPEAT_TYPE:
+ return REPEAT_TYPE_MAX;
+ case GROUP_REPEAT_UNTIL_TYPE:
+ return REPEAT_UNTIL_TYPE_MAX;
+ }
+ return 0;
+}
+
+TableViewGroupItem*
+RepeatForm::CreateGroupItem(int groupIndex, int itemWidth)
+{
+ TableViewGroupItem* pItem = new (std::nothrow) TableViewGroupItem();
+
+ pItem->Construct(Dimension(itemWidth, H_GROUP_REPEAT_ITEM));
+ pItem->SetEnabled(false);
+
+ switch (groupIndex)
+ {
+ case GROUP_REPEAT_TYPE:
+ {
+ Label* pRepeat = new (std::nothrow) Label();
+
+ pRepeat->Construct(Rectangle(0, 0, itemWidth, H_GROUP_REPEAT_ITEM), ResourceManager::GetString(IDS_CLD_BODY_REPEAT));
+ pItem->AddControl(*pRepeat);
+
+ pRepeat->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+
+ break;
+ }
+ case GROUP_REPEAT_UNTIL_TYPE:
+ {
+ Label* pRepeatUntil = new (std::nothrow) Label();
+
+ pRepeatUntil->Construct(Rectangle(0, 0, itemWidth, H_GROUP_REPEAT_ITEM), ResourceManager::GetString(IDS_CLD_BODY_REPEAT_UNTIL));
+ pItem->AddControl(*pRepeatUntil);
+
+ pRepeatUntil->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+
+ if (__repeatType == REPEAT_TYPE_OFF)
+ {
+ pItem->SetSize(itemWidth, 0);
+ }
+
+ break;
+ }
+ }
+
+ return pItem;
+}
+
+bool
+RepeatForm::DeleteGroupItem(int groupIndex, TableViewGroupItem* pItem)
+{
+ delete pItem;
+ return true;
+}
+
+TableViewItem*
+RepeatForm::CreateItem(int groupIndex, int itemIndex, int itemWidth)
+{
+ TableViewItem* pItem = new (std::nothrow) TableViewItem();
+ pItem->Construct(Dimension(itemWidth, H_REPEAT_ITEM), TABLE_VIEW_ANNEX_STYLE_RADIO);
+ if (groupIndex == GROUP_REPEAT_UNTIL_TYPE && itemIndex == REPEAT_UNTIL_TYPE_UNTIL_DATE)
+ {
+ __pEditDateUntilDate = new (std::nothrow) EditDate();
+ __pEditDateUntilDate->Construct(Point(X_REPEAT_UNTIL_TYPE_EDIT_DATE, Y_REPEAT_UNTIL_TYPE_EDIT_DATE));
+ pItem->AddControl(*__pEditDateUntilDate);
+ __pEditDateUntilDate->SetDate(__untilDate);
+ __pEditDateUntilDate->SetEnabled(__repeatUntilType == REPEAT_UNTIL_TYPE_UNTIL_DATE);
+ __pEditDateUntilDate->AddDateChangeEventListener(*this);
+ pItem->SetIndividualSelectionEnabled(__pEditDateUntilDate, __repeatUntilType == REPEAT_UNTIL_TYPE_UNTIL_DATE);
+
+ if (__repeatType == REPEAT_TYPE_OFF)
+ {
+ pItem->SetSize(itemWidth, 0);
+ }
+ return pItem;
+ }
+
+ Label* pContent = new (std::nothrow) Label();
+ Rectangle itemBounds(0, 0, itemWidth - pItem->GetAnnexWidth(TABLE_VIEW_ANNEX_STYLE_RADIO), H_REPEAT_ITEM);
+ switch (groupIndex)
+ {
+ case GROUP_REPEAT_TYPE:
+ switch (itemIndex)
+ {
+ case REPEAT_TYPE_OFF:
+ pContent->Construct(itemBounds, ResourceManager::GetString(IDS_CLD_BODY_OFF));
+ break;
+ case REPEAT_TYPE_EVERY_DAY:
+ pContent->Construct(itemBounds, ResourceManager::GetString(IDS_CLD_BODY_EVERY_DAY_ATNT));
+ break;
+ case REPEAT_TYPE_EVERY_3DAYS:
+ pContent->Construct(itemBounds, ResourceManager::GetString(IDS_CLD_BODY_EVERY_3_DAYS));
+ break;
+ case REPEAT_TYPE_EVERY_WEEK:
+ pContent->Construct(itemBounds, ResourceManager::GetString(IDS_CLD_BODY_EVERY_WEEK));
+ break;
+ case REPEAT_TYPE_EVERY_2WEEKS:
+ pContent->Construct(itemBounds, ResourceManager::GetString(IDS_CLD_BODY_EVERY_2_WEEKS));
+ break;
+ case REPEAT_TYPE_EVERY_MONTH:
+ pContent->Construct(itemBounds, ResourceManager::GetString(IDS_CLD_BODY_EVERY_MONTH));
+ break;
+ case REPEAT_TYPE_EVERY_YEAR:
+ pContent->Construct(itemBounds, ResourceManager::GetString(IDS_CLD_BODY_EVERY_YEAR));
+ break;
+ }
+ break;
+ case GROUP_REPEAT_UNTIL_TYPE:
+ switch (itemIndex)
+ {
+ case REPEAT_UNTIL_TYPE_NONE:
+ pContent->Construct(itemBounds, ResourceManager::GetString(IDS_CLD_BODY_NONE));
+ break;
+ case REPEAT_UNTIL_TYPE_COUNT:
+ __pEditFieldRepeatCount = new (std::nothrow) EditField();
+
+ __pEditFieldRepeatCount->Construct(Rectangle(itemBounds.x, Y_REPEAT_UNTIL_TYPE_EDIT_FIELD, W_REPEAT_UNTIL_TYPE_EDIT_FIELD, H_REPEAT_UNTIL_TYPE_EDIT_FIELD),
+ EDIT_FIELD_STYLE_NUMBER, INPUT_STYLE_OVERLAY, false, 2);
+ __pEditFieldRepeatCount->AddKeypadEventListener(*this);
+ pItem->AddControl(*__pEditFieldRepeatCount);
+
+ __pEditFieldRepeatCount->SetText(Integer::ToString(__repeatCount));
+ __pEditFieldRepeatCount->SetTextAlignment(ALIGNMENT_CENTER);
+ __pEditFieldRepeatCount->SetEnabled(__repeatUntilType == REPEAT_UNTIL_TYPE_COUNT);
+ pItem->SetIndividualSelectionEnabled(__pEditFieldRepeatCount, __repeatUntilType == REPEAT_UNTIL_TYPE_COUNT);
+
+ itemBounds.x += X_REPEAT_UNTIL;
+ itemBounds.width -= X_REPEAT_UNTIL;
+ pContent->Construct(itemBounds, ResourceManager::GetString(IDS_COM_POP_TIMES_LC));
+ break;
+ }
+ if (__repeatType == REPEAT_TYPE_OFF)
+ {
+ pItem->SetSize(itemWidth, 0);
+ }
+ break;
+ }
+
+ pContent->SetTextConfig(FONT_SIZE_REPEAT_UNTIL_TYPE, LABEL_TEXT_STYLE_NORMAL);
+ pContent->SetTextColor(Color(COLOR_TEXT_REPEAT));
+ pContent->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+ pItem->AddControl(*pContent);
+
+ return pItem;
+}
+
+bool
+RepeatForm::DeleteItem(int groupIndex, int itemIndex, TableViewItem* pItem)
+{
+ if (groupIndex == GROUP_REPEAT_UNTIL_TYPE)
+ {
+ switch (itemIndex)
+ {
+ case REPEAT_UNTIL_TYPE_COUNT:
+ Integer::Parse(__pEditFieldRepeatCount->GetText(), __repeatCount);
+ __pEditFieldRepeatCount = null;
+ break;
+ case REPEAT_UNTIL_TYPE_UNTIL_DATE:
+ __untilDate = __pEditDateUntilDate->GetDate();
+ __pEditDateUntilDate = null;
+ break;
+ }
+ }
+ delete pItem;
+ return true;
+}
+
+void
+RepeatForm::UpdateGroupItem(int groupIndex, TableViewGroupItem* pItem)
+{
+}
+
+void
+RepeatForm::UpdateItem(int groupIndex, int itemIndex, TableViewItem* pItem)
+{
+ if (groupIndex == GROUP_REPEAT_UNTIL_TYPE)
+ {
+ switch (itemIndex)
+ {
+ case REPEAT_UNTIL_TYPE_COUNT:
+ __pEditFieldRepeatCount->SetEnabled(__repeatUntilType == REPEAT_UNTIL_TYPE_COUNT);
+ pItem->SetIndividualSelectionEnabled(__pEditFieldRepeatCount, __repeatUntilType == REPEAT_UNTIL_TYPE_COUNT);
+ break;
+ case REPEAT_UNTIL_TYPE_UNTIL_DATE:
+ __pEditDateUntilDate->SetEnabled(__repeatUntilType == REPEAT_UNTIL_TYPE_UNTIL_DATE);
+ pItem->SetIndividualSelectionEnabled(__pEditDateUntilDate, __repeatUntilType == REPEAT_UNTIL_TYPE_UNTIL_DATE);
+ break;
+ }
+ pItem->Invalidate(true);
+ }
+}
+
+int
+RepeatForm::GetDefaultGroupItemHeight(void)
+{
+ return H_GROUP_REPEAT_ITEM;
+}
+
+int
+RepeatForm::GetDefaultItemHeight(void)
+{
+ return H_REPEAT_ITEM;
+}
+
+void
+RepeatForm::OnGroupedTableViewGroupItemStateChanged(GroupedTableView& tableView, int groupIndex, TableViewGroupItem* pItem, TableViewItemStatus status)
+{
+}
+
+void
+RepeatForm::OnGroupedTableViewItemStateChanged(GroupedTableView& tableView, int groupIndex, int itemIndex, TableViewItem* pItem, TableViewItemStatus status)
+{
+ if (__pEditFieldRepeatCount != null)
+ {
+ if (groupIndex != GROUP_REPEAT_UNTIL_TYPE || itemIndex != REPEAT_UNTIL_TYPE_COUNT)
+ {
+ // Close keypad.
+ pItem->SetFocus();
+ }
+ }
+
+ if (status == TABLE_VIEW_ITEM_STATUS_CHECKED)
+ {
+ switch (groupIndex)
+ {
+ case GROUP_REPEAT_TYPE:
+ tableView.SetItemChecked(groupIndex, (int)__repeatType, false);
+ if (__repeatType == REPEAT_TYPE_OFF && __repeatType != itemIndex)
+ {
+ __repeatType = (RepeatType)itemIndex;
+ tableView.UpdateTableView();
+ tableView.SetItemChecked(GROUP_REPEAT_UNTIL_TYPE, (int)__repeatUntilType, true);
+ }
+ else
+ {
+ __repeatType = (RepeatType)itemIndex;
+ }
+
+ switch (__repeatType)
+ {
+ case REPEAT_TYPE_OFF:
+ __repeatType = REPEAT_TYPE_OFF;
+ tableView.SetItemChecked(GROUP_REPEAT_UNTIL_TYPE, (int)__repeatUntilType, false);
+ __repeatUntilType = REPEAT_UNTIL_TYPE_NONE;
+ __pRepeat->SetUntil(null);
+ __pRepeat->SetCounts(1);
+ tableView.UpdateTableView();
+ tableView.SetItemChecked(GROUP_REPEAT_UNTIL_TYPE, REPEAT_UNTIL_TYPE_NONE, true);
+ break;
+ case REPEAT_TYPE_EVERY_DAY:
+ __pRepeat->SetFrequency(FREQ_DAILY);
+ if (__isRepeatUntilDefault == true)
+ {
+ __untilDate = __startDate;
+ __untilDate.AddDays(7);
+ __pEditDateUntilDate->SetDate(__untilDate);
+ __pEditDateUntilDate->Invalidate(false);
+ }
+ break;
+ case REPEAT_TYPE_EVERY_3DAYS:
+ __pRepeat->SetFrequency(FREQ_DAILY);
+ __pRepeat->SetInterval(3);
+ if (__isRepeatUntilDefault == true)
+ {
+ __untilDate = __startDate;
+ __untilDate.AddDays(21);
+ __pEditDateUntilDate->SetDate(__untilDate);
+ __pEditDateUntilDate->Invalidate(false);
+ }
+ break;
+ case REPEAT_TYPE_EVERY_WEEK:
+ __pRepeat->SetFrequency(FREQ_WEEKLY);
+ if (__isRepeatUntilDefault == true)
+ {
+ __untilDate = __startDate;
+ __untilDate.AddMonths(1);
+ __pEditDateUntilDate->SetDate(__untilDate);
+ __pEditDateUntilDate->Invalidate(false);
+ }
+ break;
+ case REPEAT_TYPE_EVERY_2WEEKS:
+ __pRepeat->SetFrequency(FREQ_WEEKLY);
+ __pRepeat->SetInterval(2);
+ if (__isRepeatUntilDefault == true)
+ {
+ __untilDate = __startDate;
+ __untilDate.AddMonths(2);
+ __pEditDateUntilDate->SetDate(__untilDate);
+ __pEditDateUntilDate->Invalidate(false);
+ }
+ break;
+ case REPEAT_TYPE_EVERY_MONTH:
+ __pRepeat->SetFrequency(FREQ_MONTHLY);
+ if (__isRepeatUntilDefault == true)
+ {
+ __untilDate = __startDate;
+ __untilDate.AddYears(1);
+ __pEditDateUntilDate->SetDate(__untilDate);
+ __pEditDateUntilDate->Invalidate(false);
+ }
+ break;
+ case REPEAT_TYPE_EVERY_YEAR:
+ __pRepeat->SetFrequency(FREQ_YEARLY);
+ if (__isRepeatUntilDefault == true)
+ {
+ __untilDate = __startDate;
+ __untilDate.AddYears(5);
+ __pEditDateUntilDate->SetDate(__untilDate);
+ __pEditDateUntilDate->Invalidate(false);
+ }
+ break;
+ default:
+ break;
+ }
+ break;
+ case GROUP_REPEAT_UNTIL_TYPE:
+ if (__repeatType != REPEAT_TYPE_OFF)
+ {
+ tableView.SetItemChecked(groupIndex, (int)__repeatUntilType, false);
+ __repeatUntilType = (RepeatUntilType)itemIndex;
+ tableView.RefreshItem(GROUP_REPEAT_UNTIL_TYPE, REPEAT_UNTIL_TYPE_COUNT, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
+ tableView.RefreshItem(GROUP_REPEAT_UNTIL_TYPE, REPEAT_UNTIL_TYPE_UNTIL_DATE, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
+ }
+ else
+ {
+ tableView.SetItemChecked(groupIndex, itemIndex, __repeatUntilType == itemIndex);
+ }
+ break;
+ }
+
+ tableView.Invalidate(true);
+ }
+ else if (status == TABLE_VIEW_ITEM_STATUS_UNCHECKED)
+ {
+ tableView.SetItemChecked(groupIndex, itemIndex, true);
+ tableView.Invalidate(true);
+ }
+}
+
+void
+RepeatForm::OnGroupedTableViewContextItemActivationStateChanged(GroupedTableView& tableView, int groupIndex, int itemIndex, TableViewContextItem* pContextItem, bool activated)
+{
+}
+
+void
+RepeatForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs)
+{
+ SystemTime::GetCurrentTime(TIME_MODE_WALL, __startDate);
+ __untilDate = __startDate;
+ __isRepeatUntilDefault = true;
+
+ DateTime* pDateTime = null;
+ Recurrence* pRecurrence = null;
+ TryCatch(pArgs != null, , "Unable to get arguments.");
+
+ pDateTime = dynamic_cast<DateTime*>(pArgs->GetAt(0));
+ if (pDateTime != null)
+ {
+ __startDate = *pDateTime;
+ __untilDate = __startDate;
+ }
+
+ pRecurrence = dynamic_cast<Recurrence*>(pArgs->GetAt(1));
+ if (pRecurrence != null)
+ {
+ if (pArgs->RemoveAt(1) == E_SUCCESS)
+ {
+ delete __pRepeat;
+ __pRepeat = pRecurrence;
+ }
+ else
+ {
+ *__pRepeat = *pRecurrence;
+ }
+
+ int prevRepeatIndex = (int)__repeatType;
+ int prevRepeatUntilIndex = (int)__repeatUntilType;
+ __repeatType = REPEAT_TYPE_OFF;
+
+ switch (__pRepeat->GetFrequency())
+ {
+ case FREQ_DAILY:
+ if (__pRepeat->GetInterval() == 3)
+ {
+ __repeatType = REPEAT_TYPE_EVERY_3DAYS;
+ }
+ else
+ {
+ __repeatType = REPEAT_TYPE_EVERY_DAY;
+ }
+ break;
+ case FREQ_WEEKLY:
+ if (__pRepeat->GetInterval() == 2)
+ {
+ __repeatType = REPEAT_TYPE_EVERY_2WEEKS;
+ }
+ else
+ {
+ __repeatType = REPEAT_TYPE_EVERY_WEEK;
+ }
+ break;
+ case FREQ_MONTHLY:
+ __repeatType = REPEAT_TYPE_EVERY_MONTH;
+ break;
+ case FREQ_YEARLY:
+ __repeatType = REPEAT_TYPE_EVERY_YEAR;
+ break;
+ }
+ if (__pRepeat->GetCounts() > 0)
+ {
+ __repeatCount = __pRepeat->GetCounts();
+ __repeatUntilType = REPEAT_UNTIL_TYPE_COUNT;
+ }
+ else if (*__pRepeat->GetUntil() < Calendarbook::GetMaxDateTime())
+ {
+ __untilDate = *__pRepeat->GetUntil();
+ __repeatUntilType = REPEAT_UNTIL_TYPE_UNTIL_DATE;
+ __isRepeatUntilDefault = false;
+ }
+ else
+ {
+ __repeatUntilType = REPEAT_UNTIL_TYPE_NONE;
+ }
+
+ if (prevRepeatIndex != __repeatType)
+ {
+ __pTableView->SetItemChecked(GROUP_REPEAT_TYPE, prevRepeatIndex, false);
+ }
+ if (prevRepeatUntilIndex != __repeatUntilType)
+ {
+ __pTableView->SetItemChecked(GROUP_REPEAT_UNTIL_TYPE, prevRepeatUntilIndex, false);
+ }
+ }
+ else
+ {
+ if (__pRepeat == null)
+ {
+ __pRepeat = new (std::nothrow) Recurrence();
+
+ if (__repeatType != REPEAT_TYPE_OFF)
+ {
+ __pTableView->SetItemChecked(GROUP_REPEAT_TYPE, (int)__repeatType, false);
+ __repeatType = REPEAT_TYPE_OFF;
+ }
+ if (__repeatUntilType != REPEAT_UNTIL_TYPE_NONE)
+ {
+ __pTableView->SetItemChecked(GROUP_REPEAT_UNTIL_TYPE, (int)__repeatUntilType, false);
+ __repeatUntilType = REPEAT_UNTIL_TYPE_NONE;
+ }
+ }
+ }
+
+ pArgs->RemoveAll(true);
+ delete pArgs;
+
+CATCH:
+ __pTableView->UpdateTableView();
+ __pTableView->SetItemChecked(GROUP_REPEAT_TYPE, (int)__repeatType, true);
+ if (__repeatType != REPEAT_TYPE_OFF)
+ {
+ __pTableView->SetItemChecked(GROUP_REPEAT_UNTIL_TYPE, (int)__repeatUntilType, true);
+ }
+ __pTableView->Invalidate(true);
+}
+
+void
+RepeatForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
+{
+}
+
+void
+RepeatForm::OnActionPerformed(const Tizen::Ui::Control& source, int actionId)
+{
+ switch(actionId)
+ {
+ case IDA_REMINDER_FORM_BACK:
+ {
+ if (__repeatType == REPEAT_TYPE_OFF)
+ {
+ SceneManager::GetInstance()->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT));
+ return;
+ }
+
+ switch (__pRepeat->GetFrequency())
+ {
+ case FREQ_WEEKLY:
+ {
+ Locales::Calendar* pCalendar = Locales::Calendar::CreateInstanceN(Locales::CALENDAR_GREGORIAN);
+ pCalendar->SetTime(__startDate);
+ int dayOfWeekValue = pCalendar->GetTimeField(Locales::TIME_FIELD_DAY_OF_WEEK);
+ delete pCalendar;
+
+ CalDayOfWeek dayOfWeek;
+ switch (dayOfWeekValue)
+ {
+ case 1:
+ dayOfWeek = CAL_SUNDAY;
+ break;
+ case 2:
+ dayOfWeek = CAL_MONDAY;
+ break;
+ case 3:
+ dayOfWeek = CAL_TUESDAY;
+ break;
+ case 4:
+ dayOfWeek = CAL_WEDNESDAY;
+ break;
+ case 5:
+ dayOfWeek = CAL_THURSDAY;
+ break;
+ case 6:
+ dayOfWeek = CAL_FRIDAY;
+ break;
+ case 7:
+ dayOfWeek = CAL_SATURDAY;
+ break;
+ default:
+ dayOfWeek = CAL_SUNDAY;
+ break;
+ }
+ __pRepeat->SetDayOfWeek(dayOfWeek);
+ }
+ break;
+ case FREQ_MONTHLY:
+ __pRepeat->SetDayOfMonth(__startDate.GetDay());
+ break;
+ case FREQ_YEARLY:
+ __pRepeat->SetDayOfMonth(__startDate.GetDay());
+ __pRepeat->SetMonthOfYear(__startDate.GetMonth());
+ break;
+ default:
+ break;
+ }
+
+ if (__repeatUntilType == REPEAT_UNTIL_TYPE_UNTIL_DATE)
+ {
+ DateTime dateTime;
+ dateTime.SetValue(__pEditDateUntilDate->GetYear(), __pEditDateUntilDate->GetMonth()
+ , __pEditDateUntilDate->GetDay(), 23, 59, 59);
+ __pRepeat->SetUntil(&dateTime);
+ }
+ else if (__repeatUntilType == REPEAT_UNTIL_TYPE_COUNT)
+ {
+ int count;
+ Integer::Parse(__pEditFieldRepeatCount->GetText(), count);
+ __pRepeat->SetCounts((count > 1) ? count : 1);
+ }
+ else
+ {
+ // Todo: Recurrence::SetUntil()'s behavior is not matched with its doxygen.
+ // In API description, SetUntil() is available to set DateTime::GetMaxValue(), but it returns E_INVALID_ARG.
+ // However, according to E_INVALID_ARG description, if date > GetMaxDateTime() then API returns E_INVALID_ARG.
+ // If above contradiction is resolved in the future SDK, below code will be modified, depending on the policy of the SDK.
+ DateTime maxDate = Calendarbook::GetMaxDateTime();
+ __pRepeat->SetUntil(&maxDate);
+ }
+
+ LinkedList* pList = new (std::nothrow) LinkedList();
+ pList->Add(__pRepeat);
+ __pRepeat = null;
+ SceneManager::GetInstance()->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT), pList);
+
+ break;
+ }
+ }
+
+}
+
+void
+RepeatForm::OnKeypadWillOpen(Tizen::Ui::Control& source)
+{
+ ButtonItem backItem;
+ backItem.Construct(BUTTON_ITEM_STYLE_ICON, IDA_REMINDER_FORM_BACK);
+ backItem.SetBackgroundBitmap(BUTTON_ITEM_STATUS_NORMAL, ResourceManager::GetBitmapN(IDB_FORM_BACK));
+ backItem.SetBackgroundBitmap(BUTTON_ITEM_STATUS_PRESSED, ResourceManager::GetBitmapN(IDB_FORM_BACK_PRESS));
+ GetHeader()->SetButton(BUTTON_POSITION_RIGHT, backItem);
+
+ GetHeader()->AddActionEventListener(*this);
+ GetFooter()->SetShowState(false);
+ Invalidate(true);
+}
+
+void
+RepeatForm::OnKeypadOpened(Tizen::Ui::Control& source)
+{
+
+}
+
+void
+RepeatForm::OnKeypadClosed(Tizen::Ui::Control& source)
+{
+ GetHeader()->RemoveActionEventListener(*this);
+ GetHeader()->RemoveAllButtons();
+ GetFooter()->SetShowState(true);
+ Invalidate(true);
+}
+
+void
+RepeatForm::OnKeypadActionPerformed(Tizen::Ui::Control& source, Tizen::Ui::KeypadAction keypadAction)
+{
+
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClResourceManager.cpp
+ * @brief This is the implementation file for the ResourceManager class.
+ */
+
+#include <cstdlib>
+#include <new>
+#include <FSystem.h>
+#include "ClResourceManager.h"
+#include "ClTypes.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Graphics;
+using namespace Tizen::Locales;
+using namespace Tizen::System;
+
+static const int BASE_DAY = 7;
+
+
+ResourceManager* ResourceManager::__pInstance = null;
+
+ResourceManager::ResourceManager(void)
+ : __pAppResource(null)
+ , __pBlankBitmap(null)
+ , __pMonthFormatter(null)
+ , __pWeekFormatter(null)
+{
+}
+
+ResourceManager::~ResourceManager(void)
+{
+ delete __pBlankBitmap;
+ delete __pMonthFormatter;
+ delete __pWeekFormatter;
+}
+
+DateTimeFormatter*
+ResourceManager::CreateDateFormatterN(DateTimeStyle dateStyle)
+{
+ DateTimeFormatter* pDateFormatter = DateTimeFormatter::CreateDateFormatterN(dateStyle);
+ String pattern = pDateFormatter->GetPattern();
+ switch (dateStyle)
+ {
+ case DATE_TIME_STYLE_FULL:
+ // fall through
+ case DATE_TIME_STYLE_LONG:
+ // fall through
+ case DATE_TIME_STYLE_MEDIUM:
+ if (pattern.Contains(L"EEEE") == true)
+ {
+ pattern.Replace(L"EEEE", L"EEE");
+ }
+ pDateFormatter->ApplyPattern(pattern);
+ break;
+ case DATE_TIME_STYLE_SHORT:
+ if (pattern.Contains(L"YYYY") == false && pattern.Contains(L"yyyy") == false)
+ {
+ if (pattern.Contains(L"YY") == true)
+ {
+ pattern.Replace(L"YY", L"YYYY");
+ }
+ else if (pattern.Contains(L"yy") == true)
+ {
+ pattern.Replace(L"yy", L"yyyy");
+ }
+ }
+ pDateFormatter->ApplyPattern(pattern);
+ break;
+ default:
+ // Do nothing
+ break;
+ }
+ return pDateFormatter;
+}
+
+DateTimeFormatter*
+ResourceManager::CreateDateTimeFormatterN(DateTimeStyle dateStyle)
+{
+ DateTimeFormatter* pDateTimeFormatter = CreateDateFormatterN(dateStyle);
+ String pattern = pDateTimeFormatter->GetPattern();
+
+ String timePattern;
+ SettingInfo::GetValue(KEY_SYSTEM_TIME_FORMAT, timePattern);
+ if (timePattern.Contains(L":ss") == true)
+ {
+ timePattern.Replace(L":ss", L"");
+ }
+ else if (timePattern.Contains(L":SS") == true)
+ {
+ timePattern.Replace(L":SS", L"");
+ }
+ else if (timePattern.Contains(L".ss") == true)
+ {
+ timePattern.Replace(L".ss", L"");
+ }
+ else if (timePattern.Contains(L".SS") == true)
+ {
+ timePattern.Replace(L".SS", L"");
+ }
+ else if (timePattern.Contains(L"-ss") == true)
+ {
+ timePattern.Replace(L"-ss", L"");
+ }
+ else if (timePattern.Contains(L"-SS") == true)
+ {
+ timePattern.Replace(L"-SS", L"");
+ }
+ pattern.Append(L" ");
+ pattern.Append(timePattern);
+ pDateTimeFormatter->ApplyPattern(pattern);
+ return pDateTimeFormatter;
+}
+
+DateTimeFormatter*
+ResourceManager::CreateTimeFormatterN(void)
+{
+ DateTimeFormatter* pTimeFormatter = DateTimeFormatter::CreateTimeFormatterN(DATE_TIME_STYLE_NONE);
+ String pattern;
+ SettingInfo::GetValue(KEY_SYSTEM_TIME_FORMAT, pattern);
+ if (pattern.Contains(L":ss") == true)
+ {
+ pattern.Replace(L":ss", L"");
+ }
+ else if (pattern.Contains(L":SS") == true)
+ {
+ pattern.Replace(L":SS", L"");
+ }
+ else if (pattern.Contains(L".ss") == true)
+ {
+ pattern.Replace(L".ss", L"");
+ }
+ else if (pattern.Contains(L".SS") == true)
+ {
+ pattern.Replace(L".SS", L"");
+ }
+ else if (pattern.Contains(L"-ss") == true)
+ {
+ pattern.Replace(L"-ss", L"");
+ }
+ else if (pattern.Contains(L"-SS") == true)
+ {
+ pattern.Replace(L"-SS", L"");
+ }
+ pTimeFormatter->ApplyPattern(pattern);
+ return pTimeFormatter;
+}
+
+Bitmap*
+ResourceManager::GetBitmapN(const String& bitmapPath)
+{
+ TryReturn(GetInstance() != null, null, "[E_FAILURE] Unable to get resource instance.");
+
+ return GetInstance()->__pAppResource->GetBitmapN(bitmapPath);
+}
+
+Bitmap*
+ResourceManager::GetBlankBitmap(void)
+{
+ TryReturn(GetInstance() != null, null, "[E_FAILURE] Unable to get resource instance.");
+
+ if (GetInstance()->__pBlankBitmap == null)
+ {
+ GetInstance()->__pBlankBitmap = GetBitmapN(IDB_BLANK);
+ }
+ return GetInstance()->__pBlankBitmap;
+}
+
+String
+ResourceManager::GetString(const String& stringId)
+{
+ TryReturn(GetInstance() != null, String(), "[E_FAILURE] Unable to get resource instance.");
+
+ String str;
+ GetInstance()->__pAppResource->GetString(stringId, str);
+ return str;
+}
+
+String
+ResourceManager::GetMonthString(int month)
+{
+ TryReturn(GetInstance() != null, String(), "[E_FAILURE] Unable to get resource instance.");
+
+ DateTime date;
+ date.SetValue(1900, month, 1);
+ String str;
+ GetInstance()->__pMonthFormatter->Format(date, str);
+ return str;
+}
+
+String
+ResourceManager::GetWeekString(int week)
+{
+ TryReturn(GetInstance() != null, String(), "[E_FAILURE] Unable to get resource instance.");
+
+ DateTime date;
+ date.SetValue(1900, 1, week + BASE_DAY);
+ String str;
+ GetInstance()->__pWeekFormatter->Format(date, str);
+ return str;
+}
+
+String
+ResourceManager::GetWeekShortString(int week)
+{
+ TryReturn(GetInstance() != null, String(), "[E_FAILURE] Unable to get resource instance.");
+
+ DateTime date;
+ date.SetValue(1900, 1, week + BASE_DAY);
+ String str;
+ GetInstance()->__pWeekShortFormatter->Format(date, str);
+ str.ToUpper();
+ return str;
+}
+
+DateTime
+ResourceManager::ConvertUtcTimeToWallTime(const DateTime& utcTime)
+{
+ TryReturn(GetInstance() != null, DateTime(), "[E_FAILURE] Unable to get resource instance.");
+
+ return GetInstance()->__timeZone.UtcTimeToWallTime(utcTime);
+}
+
+DateTime
+ResourceManager::ConvertWallTimeToUtcTime(const DateTime& wallTime)
+{
+ TryReturn(GetInstance() != null, DateTime(), "[E_FAILURE] Unable to get resource instance.");
+
+ return GetInstance()->__timeZone.WallTimeToUtcTime(wallTime);
+}
+
+result
+ResourceManager::Construct(void)
+{
+ __pAppResource = UiApp::GetInstance()->GetAppResource();
+ TryReturn(__pAppResource != null, E_FAILURE, "[E_FAILURE] Unable to get app resource.");
+
+ __pMonthFormatter = DateTimeFormatter::CreateDateFormatterN(DATE_TIME_STYLE_NONE);
+ __pMonthFormatter->ApplyPattern(L"MMMM");
+ __pWeekFormatter = DateTimeFormatter::CreateDateFormatterN(DATE_TIME_STYLE_NONE);
+ __pWeekFormatter->ApplyPattern(L"EEEE");
+ __pWeekShortFormatter = DateTimeFormatter::CreateDateFormatterN(DATE_TIME_STYLE_NONE);
+ __pWeekShortFormatter->ApplyPattern(L"EEE");
+
+ Tizen::Locales::LocaleManager localeManager;
+ localeManager.Construct();
+ __timeZone = localeManager.GetSystemTimeZone();
+
+ return E_SUCCESS;
+}
+
+ResourceManager*
+ResourceManager::GetInstance(void)
+{
+ if (__pInstance == null)
+ {
+ CreateInstance();
+ AppAssertf(__pInstance != null, "[E_FAILURE] Unable to initialize ResourceManager.");
+ }
+
+ return __pInstance;
+}
+
+void
+ResourceManager::CreateInstance(void)
+{
+ ResourceManager* pManager = new (std::nothrow) ResourceManager();
+ result r = pManager->Construct();
+ TryCatch(r == E_SUCCESS, , "[%s] Unable to construct ResourceManager.", GetErrorMessage(r));
+
+ __pInstance = pManager;
+ std::atexit(DestroyInstance);
+ return;
+
+CATCH:
+ delete pManager;
+}
+
+void
+ResourceManager::DestroyInstance(void)
+{
+ delete __pInstance;
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClSceneRegister.cpp
+ * @brief This is the implementation file for the SceneRegister class.
+ */
+
+#include <cstdlib>
+#include <new>
+#include <FBase.h>
+#include "ClFormFactory.h"
+#include "ClPanelFactory.h"
+#include "ClSceneRegister.h"
+#include "ClTypes.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Scenes;
+
+
+SceneRegister* SceneRegister::__pInstance = null;
+
+SceneRegister::SceneRegister(void)
+ : __pFormFactory(null)
+ , __pPanelFactory(null)
+{
+}
+
+SceneRegister::~SceneRegister(void)
+{
+ delete __pFormFactory;
+ delete __pPanelFactory;
+}
+
+void
+SceneRegister::Construct(void)
+{
+ __pFormFactory = new (std::nothrow) FormFactory();
+ __pPanelFactory = new (std::nothrow) PanelFactory();
+}
+
+result
+SceneRegister::RegisterAllScene(void)
+{
+ SceneManager* pManager = SceneManager::GetInstance();
+ AppAssertf(pManager != null, "[E_FAILURE] Unable to get SceneManager.");
+
+ result r = E_SUCCESS;
+ r = pManager->RegisterFormFactory(*GetInstance()->__pFormFactory);
+ TryReturn(r == E_SUCCESS, r, "[%s] Unable to register form factory.", GetErrorMessage(r));
+ r = pManager->RegisterPanelFactory(*GetInstance()->__pPanelFactory);
+ TryReturn(r == E_SUCCESS, r, "[%s] Unable to register panel factory.", GetErrorMessage(r));
+
+ r |= pManager->RegisterScene(IDSCN_YEAR, IDC_MAIN_FORM, IDC_YEAR_PANEL);
+ r |= pManager->RegisterScene(IDSCN_MONTH, IDC_MAIN_FORM, IDC_MONTH_PANEL);
+ r |= pManager->RegisterScene(IDSCN_DAY, IDC_MAIN_FORM, IDC_DAY_PANEL);
+ r |= pManager->RegisterScene(IDSCN_LIST, IDC_MAIN_FORM, IDC_LIST_PANEL);
+ r |= pManager->RegisterScene(IDSCN_CALENDAR_SETTINGS, IDC_CALENDAR_SETTINGS_FORM, L"");
+ r |= pManager->RegisterScene(IDSCN_EVENT_DETAILS, IDC_EVENT_DETAILS_FORM, L"");
+ r |= pManager->RegisterScene(IDSCN_DAY_EVENT_LIST, IDC_DAY_EVENT_LIST_FORM, L"");
+ r |= pManager->RegisterScene(IDSCN_EVENT_DELETER, IDC_EVENT_DELETER_FORM, L"");
+ r |= pManager->RegisterScene(IDSCN_EVENT_EDITOR, IDC_EVENT_EDITOR_FORM, L"");
+ r |= pManager->RegisterScene(IDSCN_EVENT_SEARCHER, IDC_EVENT_SEARCHER_FORM, L"");
+ r |= pManager->RegisterScene(IDSCN_REMINDER, IDC_REMINDER_FORM, L"");
+ r |= pManager->RegisterScene(IDSCN_REPEAT, IDC_REPEAT_FORM, L"");
+ r |= pManager->RegisterScene(IDSCN_CALENDAR_LIST, IDC_CALENDAR_LIST_FORM, L"");
+ r |= pManager->RegisterScene(IDSCN_EVENT_SELECTOR, IDC_EVENT_SELECTOR_FORM, L"");
+ r |= pManager->RegisterScene(IDSCN_TASK_SELECTOR, IDC_TASK_SELECTOR_FORM, L"");
+ r |= pManager->RegisterScene(IDSCN_TASK_DETAILS, IDC_TASK_DETAILS_FORM, L"");
+ r |= pManager->RegisterScene(IDSCN_SETTING, IDC_SETTING_FORM, L"");
+ TryReturn(r == E_SUCCESS, E_FAILURE, "[E_FAILURE] Unable to register scene.");
+
+ return E_SUCCESS;
+}
+
+void
+SceneRegister::CreateInstance(void)
+{
+ __pInstance = new (std::nothrow) SceneRegister();
+ __pInstance->Construct();
+ std::atexit(DestroyInstance);
+}
+
+void
+SceneRegister::DestroyInstance(void)
+{
+ delete __pInstance;
+}
+
+SceneRegister*
+SceneRegister::GetInstance(void)
+{
+ if (__pInstance == null)
+ {
+ CreateInstance();
+ AppAssertf(__pInstance != null, "[E_FAILURE] Unable to initialize SceneRegister.");
+ }
+ return __pInstance;
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClSettingForm.cpp
+ * @brief This is the implementation file for the SettingForm class.
+ */
+
+#include <new>
+#include <FApp.h>
+#include <FGraphics.h>
+#include <FSystem.h>
+#include "ClResourceManager.h"
+#include "ClSettingForm.h"
+#include "ClTypes.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Graphics;
+using namespace Tizen::System;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+enum
+{
+ GROUP_ITEM_INDEX = -1,
+// GROUP_LOCK_TIME_ZONE = 0,
+// GROUP_LOCK_TIME_ZONE_SELECTION,
+// GROUP_LOCK_TIME_ZONE_DESCRIPTION,
+ GROUP_FIRST_DAY_OF_WEEK,
+ GROUP_FIRST_DAY_OF_WEEK_SELECTION,
+// GROUP_IMPORT_EXPORT,
+ GROUP_COUNT,
+
+// LOCK_TIME_ZONE_ITEM_ONOFF = 0,
+// LOCK_TIME_ZONE_ITEM_COUNT,
+//
+// LOCK_TIME_ZONE_SELECTION_ITEM_SELECTION = 0,
+// LOCK_ITEM_ZONE_SELECTION_ITEM_COUNT,
+
+ FIRST_DAY_OF_WEEK_ITEM_EXPANDER = 0,
+ FIRST_DAY_OF_WEEK_ITEM_COUNT,
+
+ FIRST_DAY_OF_WEEK_SELECTION_ITEM_SUNDAY = 0,
+ FIRST_DAY_OF_WEEK_SELECTION_ITEM_MONDAY,
+ FIRST_DAY_OF_WEEK_SELECTION_ITEM_COUNT,
+
+// IMPORT_EXPORT_ITEM_IMPORT = 0,
+// IMPORT_EXPORT_ITEM_EXPORT,
+// IMPORT_EXPORT_ITEM_COUNT
+};
+
+static const int H_GROUP = 16;
+static const int H_ITEM = 128;
+static const unsigned int COLOR_ITEM_BACKGROUND = Color32<248, 246, 239>::Value;
+static const int W_LOCK_TIME_ZONE_DESCRIPTION_MARGIN = 32;
+static const int H_LOCK_TIME_ZONE_DESCRIPTION_MARGIN = 32;
+static const int FONT_SIZE_MAIN_CONTENT = 42;
+static const int FONT_SIZE_SUB_CONTENT = 28;
+
+SettingForm::SettingForm(void)
+ : __pGroupedTableView(null)
+ , __pLabelLockTimeZone(null)
+ , __pLabelFirstDayOfWeek(null)
+ , __descriptionItemHeight(-1)
+ , __isLockTimeZoneSet(false)
+ , __isFirstDayOfWeekSelectionItemExpanded(false)
+ , __isFirstDayOfWeekSunday(false)
+{
+}
+
+SettingForm::~SettingForm(void)
+{
+}
+
+result
+SettingForm::Initialize(void)
+{
+ return Construct(L"IDL_SETTING_FORM");
+}
+
+result
+SettingForm::OnInitializing(void)
+{
+ this->SetFormBackEventListener(this);
+
+ __pGroupedTableView = dynamic_cast<GroupedTableView*>(GetControl(L"IDC_GROUPEDTABLEVIEW"));
+ TryReturn(__pGroupedTableView != null, E_FAILURE, "[E_FAILURE] Unable to get groupedtableview.");
+ __pGroupedTableView->SetItemProvider(this);
+ __pGroupedTableView->SetGroupedLookEnabled(true);
+ __pGroupedTableView->AddGroupedTableViewItemEventListener(*this);
+
+ return E_SUCCESS;
+}
+
+result
+SettingForm::OnTerminating(void)
+{
+ return E_SUCCESS;
+}
+
+void
+SettingForm::OnFormBackRequested(Form& source)
+{
+ UiApp::GetInstance()->Terminate();
+}
+
+int
+SettingForm::GetGroupCount(void)
+{
+ return GROUP_COUNT;
+}
+
+int
+SettingForm::GetItemCount(int groupIndex)
+{
+ switch (groupIndex)
+ {
+// case GROUP_LOCK_TIME_ZONE:
+// return LOCK_TIME_ZONE_ITEM_COUNT;
+// case GROUP_LOCK_TIME_ZONE_SELECTION:
+// return LOCK_ITEM_ZONE_SELECTION_ITEM_COUNT;
+// case GROUP_LOCK_TIME_ZONE_DESCRIPTION:
+// return 0;
+ case GROUP_FIRST_DAY_OF_WEEK:
+ return FIRST_DAY_OF_WEEK_ITEM_COUNT;
+ case GROUP_FIRST_DAY_OF_WEEK_SELECTION:
+ return FIRST_DAY_OF_WEEK_SELECTION_ITEM_COUNT;
+// case GROUP_IMPORT_EXPORT:
+// return IMPORT_EXPORT_ITEM_COUNT;
+ }
+ return 0;
+}
+
+TableViewGroupItem*
+SettingForm::CreateGroupItem(int groupIndex, int itemWidth)
+{
+ TableViewGroupItem* pItem = null;
+ switch (groupIndex)
+ {
+// case GROUP_LOCK_TIME_ZONE:
+// pItem = CreateEmptyGroupItemN(itemWidth);
+// break;
+// case GROUP_LOCK_TIME_ZONE_SELECTION:
+// pItem = new (std::nothrow) TableViewGroupItem();
+// pItem->Construct(Dimension(itemWidth, 1));
+// pItem->SetShowState(false);
+// break;
+// case GROUP_LOCK_TIME_ZONE_DESCRIPTION:
+// pItem = CreateLockTimeZoneDescriptionItemN(itemWidth);
+// break;
+ case GROUP_FIRST_DAY_OF_WEEK:
+ pItem = CreateEmptyGroupItemN(itemWidth);
+ break;
+ case GROUP_FIRST_DAY_OF_WEEK_SELECTION:
+ pItem = new (std::nothrow) TableViewGroupItem();
+ pItem->Construct(Dimension(itemWidth, 1));
+ pItem->SetShowState(false);
+ pItem->SetEnabled(false);
+ break;
+// case GROUP_IMPORT_EXPORT:
+// pItem = CreateEmptyGroupItemN(itemWidth);
+// break;
+ }
+ return pItem;
+}
+
+bool
+SettingForm::DeleteGroupItem(int groupIndex, TableViewGroupItem* pItem)
+{
+ delete pItem;
+ return true;
+}
+
+void
+SettingForm::UpdateGroupItem(int groupIndex, TableViewGroupItem* pItem)
+{
+// if (groupIndex == GROUP_LOCK_TIME_ZONE_DESCRIPTION)
+// {
+// if (__isLockTimeZoneSet == true)
+// {
+// pItem->SetSize(pItem->GetWidth(), H_GROUP);
+// }
+// else
+// {
+// pItem->SetSize(pItem->GetWidth(), __descriptionItemHeight);
+// }
+// }
+}
+
+TableViewItem*
+SettingForm::CreateItem(int groupIndex, int itemIndex, int itemWidth)
+{
+ TableViewItem* pItem = null;
+ switch (groupIndex)
+ {
+// case GROUP_LOCK_TIME_ZONE:
+// switch (itemIndex)
+// {
+// case LOCK_TIME_ZONE_ITEM_ONOFF:
+// pItem = CreateLockTimeZoneOnOffItemN(itemWidth, __isLockTimeZoneSet);
+// break;
+// }
+// break;
+// case GROUP_LOCK_TIME_ZONE_SELECTION:
+// switch (itemIndex)
+// {
+// case LOCK_TIME_ZONE_SELECTION_ITEM_SELECTION:
+// pItem = CreateLockTimeZoneSelectionItemN(itemWidth);
+// break;
+// }
+// break;
+// case GROUP_LOCK_TIME_ZONE_DESCRIPTION:
+// break;
+ case GROUP_FIRST_DAY_OF_WEEK:
+ switch (itemIndex)
+ {
+ case FIRST_DAY_OF_WEEK_ITEM_EXPANDER:
+ pItem = CreateFirstDayOfWeekExpanderItemN(itemWidth, __isFirstDayOfWeekSunday);
+ break;
+ }
+ break;
+ case GROUP_FIRST_DAY_OF_WEEK_SELECTION:
+ switch (itemIndex)
+ {
+ case FIRST_DAY_OF_WEEK_SELECTION_ITEM_SUNDAY:
+ pItem = CreateFirstDayOfWeekSundayItemN(itemWidth, __isFirstDayOfWeekSunday);
+ break;
+ case FIRST_DAY_OF_WEEK_SELECTION_ITEM_MONDAY:
+ pItem = CreateFirstDayOfWeekMondayItemN(itemWidth, !__isFirstDayOfWeekSunday);
+ break;
+ }
+ break;
+// case GROUP_IMPORT_EXPORT:
+// switch (itemIndex)
+// {
+// case IMPORT_EXPORT_ITEM_IMPORT:
+// pItem = CreateImportItemN(itemWidth);
+// break;
+// case IMPORT_EXPORT_ITEM_EXPORT:
+// pItem = CreateExportItemN(itemWidth);
+// break;
+// }
+// break;
+ }
+
+ // TBD : Background color of item must be transparent.(will be in SDK 2.1)
+ if (pItem != null)
+ {
+ pItem->SetBackgroundColor(Color(COLOR_ITEM_BACKGROUND));
+ }
+ return pItem;
+}
+
+bool
+SettingForm::DeleteItem(int groupIndex, int itemIndex, TableViewItem* pItem)
+{
+ switch (groupIndex)
+ {
+// case GROUP_LOCK_TIME_ZONE_SELECTION:
+// switch (itemIndex)
+// {
+// case LOCK_TIME_ZONE_SELECTION_ITEM_SELECTION:
+// __pLabelLockTimeZone = null;
+// break;
+// }
+// break;
+ case GROUP_FIRST_DAY_OF_WEEK:
+ switch (itemIndex)
+ {
+ case FIRST_DAY_OF_WEEK_ITEM_EXPANDER:
+ __pLabelFirstDayOfWeek = null;
+ break;
+ }
+ break;
+ }
+ delete pItem;
+ return true;
+}
+
+void
+SettingForm::UpdateItem(int groupIndex, int itemIndex, TableViewItem* pItem)
+{
+ switch (groupIndex)
+ {
+// case GROUP_LOCK_TIME_ZONE_SELECTION:
+// switch (itemIndex)
+// {
+// case LOCK_TIME_ZONE_SELECTION_ITEM_SELECTION:
+// __pLabelLockTimeZone->SetText(L"Paris, GMT +13");
+// break;
+// }
+// break;
+ case GROUP_FIRST_DAY_OF_WEEK:
+ switch (itemIndex)
+ {
+ case FIRST_DAY_OF_WEEK_ITEM_EXPANDER:
+ __pLabelFirstDayOfWeek->SetText((__isFirstDayOfWeekSunday == true) ? ResourceManager::GetWeekString(0) : ResourceManager::GetWeekString(1));
+ __pLabelFirstDayOfWeek->Invalidate(false);
+ break;
+ }
+ break;
+ }
+}
+
+int
+SettingForm::GetDefaultGroupItemHeight(void)
+{
+ return H_GROUP;
+}
+
+int
+SettingForm::GetDefaultItemHeight(void)
+{
+ return H_ITEM;
+}
+
+void
+SettingForm::OnGroupedTableViewGroupItemStateChanged(GroupedTableView& tableView, int groupIndex, TableViewGroupItem* pItem, TableViewItemStatus status)
+{
+
+}
+
+void
+SettingForm::OnGroupedTableViewItemStateChanged(GroupedTableView& tableView, int groupIndex, int itemIndex, TableViewItem* pItem, TableViewItemStatus status)
+{
+ switch (status)
+ {
+ case TABLE_VIEW_ITEM_STATUS_SELECTED:
+ switch (groupIndex)
+ {
+// case GROUP_LOCK_TIME_ZONE:
+// if (__isLockTimeZoneSet == true)
+// {
+// __isLockTimeZoneSet = false;
+// __pGroupedTableView->CollapseGroup(GROUP_LOCK_TIME_ZONE_SELECTION);
+// }
+// else
+// {
+// __isLockTimeZoneSet = true;
+// __pGroupedTableView->ExpandGroup(GROUP_LOCK_TIME_ZONE_SELECTION);
+// }
+// __pGroupedTableView->RefreshItem(GROUP_LOCK_TIME_ZONE_DESCRIPTION, GROUP_ITEM_INDEX, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
+// break;
+// case GROUP_LOCK_TIME_ZONE_SELECTION:
+//
+// break;
+ case GROUP_FIRST_DAY_OF_WEEK:
+ if (__isFirstDayOfWeekSelectionItemExpanded == true)
+ {
+ __pGroupedTableView->CollapseGroup(GROUP_FIRST_DAY_OF_WEEK_SELECTION);
+ __isFirstDayOfWeekSelectionItemExpanded = false;
+ }
+ else
+ {
+ __pGroupedTableView->ExpandGroup(GROUP_FIRST_DAY_OF_WEEK_SELECTION);
+ __isFirstDayOfWeekSelectionItemExpanded = true;
+ }
+ break;
+ }
+ break;
+ case TABLE_VIEW_ITEM_STATUS_CHECKED:
+ switch (groupIndex)
+ {
+ case GROUP_FIRST_DAY_OF_WEEK_SELECTION:
+ switch (itemIndex)
+ {
+ case FIRST_DAY_OF_WEEK_SELECTION_ITEM_SUNDAY:
+ SettingInfo::SetValue(KEY_SYSTEM_FIRST_DAY_OF_WEEK, String(L"Sunday"));
+ __isFirstDayOfWeekSunday = true;
+ __pGroupedTableView->RefreshItem(GROUP_FIRST_DAY_OF_WEEK, FIRST_DAY_OF_WEEK_ITEM_EXPANDER, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
+ __pGroupedTableView->SetItemChecked(groupIndex, FIRST_DAY_OF_WEEK_SELECTION_ITEM_MONDAY, false);
+ __isFirstDayOfWeekSelectionItemExpanded = false;
+ __pGroupedTableView->Invalidate(true);
+ __pGroupedTableView->CollapseGroup(GROUP_FIRST_DAY_OF_WEEK_SELECTION);
+ break;
+ case FIRST_DAY_OF_WEEK_SELECTION_ITEM_MONDAY:
+ SettingInfo::SetValue(KEY_SYSTEM_FIRST_DAY_OF_WEEK, String(L"Monday"));
+ __isFirstDayOfWeekSunday = false;
+ __pGroupedTableView->RefreshItem(GROUP_FIRST_DAY_OF_WEEK, FIRST_DAY_OF_WEEK_ITEM_EXPANDER, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
+ __pGroupedTableView->SetItemChecked(groupIndex, FIRST_DAY_OF_WEEK_SELECTION_ITEM_SUNDAY, false);
+ __isFirstDayOfWeekSelectionItemExpanded = false;
+ __pGroupedTableView->Invalidate(true);
+ __pGroupedTableView->CollapseGroup(GROUP_FIRST_DAY_OF_WEEK_SELECTION);
+ break;
+ }
+ break;
+ }
+ break;
+ case TABLE_VIEW_ITEM_STATUS_UNCHECKED:
+ switch (groupIndex)
+ {
+ case GROUP_FIRST_DAY_OF_WEEK_SELECTION:
+ __pGroupedTableView->SetItemChecked(groupIndex, itemIndex, true);
+ __pGroupedTableView->Invalidate(true);
+ __pGroupedTableView->CollapseGroup(GROUP_FIRST_DAY_OF_WEEK_SELECTION);
+ break;
+ }
+ break;
+ default:
+ break;
+ }
+}
+
+void
+SettingForm::OnGroupedTableViewContextItemActivationStateChanged(GroupedTableView& tableView, int groupIndex, int itemIndex, TableViewContextItem* pContextItem, bool activated)
+{
+
+}
+
+void
+SettingForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs)
+{
+ String firstDayOfWeek;
+ SettingInfo::GetValue(KEY_SYSTEM_FIRST_DAY_OF_WEEK, firstDayOfWeek);
+ __isFirstDayOfWeekSunday = firstDayOfWeek != L"Monday";
+
+ // Load current setting
+ __pGroupedTableView->UpdateTableView();
+
+ // Check
+ if (__isFirstDayOfWeekSunday == true)
+ {
+ __pGroupedTableView->SetItemChecked(GROUP_FIRST_DAY_OF_WEEK_SELECTION, FIRST_DAY_OF_WEEK_SELECTION_ITEM_SUNDAY, true);
+ __pGroupedTableView->SetItemChecked(GROUP_FIRST_DAY_OF_WEEK_SELECTION, FIRST_DAY_OF_WEEK_SELECTION_ITEM_MONDAY, false);
+ }
+ else
+ {
+ __pGroupedTableView->SetItemChecked(GROUP_FIRST_DAY_OF_WEEK_SELECTION, FIRST_DAY_OF_WEEK_SELECTION_ITEM_SUNDAY, false);
+ __pGroupedTableView->SetItemChecked(GROUP_FIRST_DAY_OF_WEEK_SELECTION, FIRST_DAY_OF_WEEK_SELECTION_ITEM_MONDAY, true);
+ }
+
+// if (__isLockTimeZoneSet == true)
+// {
+// __pGroupedTableView->RefreshItem(GROUP_LOCK_TIME_ZONE_DESCRIPTION, GROUP_ITEM_INDEX, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
+// __pGroupedTableView->ExpandGroup(GROUP_LOCK_TIME_ZONE_SELECTION);
+// }
+// else
+// {
+// __pGroupedTableView->RefreshItem(GROUP_LOCK_TIME_ZONE_DESCRIPTION, GROUP_ITEM_INDEX, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
+// __pGroupedTableView->CollapseGroup(GROUP_LOCK_TIME_ZONE_SELECTION);
+// }
+ if (__isFirstDayOfWeekSelectionItemExpanded == true)
+ {
+ __pGroupedTableView->ExpandGroup(GROUP_FIRST_DAY_OF_WEEK_SELECTION);
+ }
+ else
+ {
+ __pGroupedTableView->CollapseGroup(GROUP_FIRST_DAY_OF_WEEK_SELECTION);
+ }
+}
+
+void
+SettingForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
+{
+
+}
+
+TableViewGroupItem*
+SettingForm::CreateEmptyGroupItemN(int itemWidth)
+{
+ TableViewGroupItem* pItem = new (std::nothrow) TableViewGroupItem();
+ pItem->Construct(Dimension(itemWidth, H_GROUP));
+ return pItem;
+}
+
+TableViewItem*
+SettingForm::CreateLockTimeZoneOnOffItemN(int itemWidth, bool isOn)
+{
+ TableViewItem* pItem = new (std::nothrow) TableViewItem();
+ pItem->Construct(Dimension(itemWidth, H_ITEM), TABLE_VIEW_ANNEX_STYLE_ONOFF_SLIDING);
+
+ Label* pLabel = new (std::nothrow) Label();
+ pLabel->Construct(Rectangle(0, 0, itemWidth, H_ITEM), ResourceManager::GetString(IDS_CLD_MBODY_LOCK_TIME_ZONE));
+ pLabel->SetTextConfig(FONT_SIZE_MAIN_CONTENT, LABEL_TEXT_STYLE_NORMAL);
+ pLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+ pItem->AddControl(*pLabel);
+
+ return pItem;
+}
+
+TableViewItem*
+SettingForm::CreateLockTimeZoneSelectionItemN(int itemWidth)
+{
+ TableViewItem* pItem = new (std::nothrow) TableViewItem();
+ pItem->Construct(Dimension(itemWidth, H_ITEM), TABLE_VIEW_ANNEX_STYLE_NORMAL);
+
+ Label* pLabel = new (std::nothrow) Label();
+ pLabel->Construct(Rectangle(0, 10, itemWidth, 38), ResourceManager::GetString(IDS_CLD_BODY_TIME_ZONE));
+ pLabel->SetTextConfig(FONT_SIZE_SUB_CONTENT, LABEL_TEXT_STYLE_NORMAL);
+ pLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+ pItem->AddControl(*pLabel);
+
+ Label* pTimeZoneLabel = new (std::nothrow) Label();
+ pTimeZoneLabel->Construct(Rectangle(0, 48, itemWidth, 70), L"Paris, GMT +13");
+ pTimeZoneLabel->SetTextConfig(FONT_SIZE_MAIN_CONTENT, LABEL_TEXT_STYLE_NORMAL);
+ pTimeZoneLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+ pItem->AddControl(*pTimeZoneLabel);
+ __pLabelLockTimeZone = pTimeZoneLabel;
+
+ return pItem;
+}
+
+TableViewGroupItem*
+SettingForm::CreateLockTimeZoneDescriptionItemN(int itemWidth)
+{
+ String str = ResourceManager::GetString(IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG);
+ if (__descriptionItemHeight < 0)
+ {
+ EnrichedText text;
+ text.Construct(Dimension(itemWidth - W_LOCK_TIME_ZONE_DESCRIPTION_MARGIN, Integer::VALUE_MAX));
+
+ TextElement* pTextElement = new (std::nothrow) TextElement();
+ pTextElement->Construct(str);
+
+ Font font;
+ font.Construct(FONT_STYLE_PLAIN, FONT_SIZE_SUB_CONTENT);
+ pTextElement->SetFont(font);
+
+ text.Add(*pTextElement);
+
+ __descriptionItemHeight = text.GetTextExtent().height + H_LOCK_TIME_ZONE_DESCRIPTION_MARGIN;
+ text.RemoveAll(true);
+ }
+
+ TableViewGroupItem* pItem = new (std::nothrow) TableViewGroupItem();
+ pItem->Construct(Dimension(itemWidth, __descriptionItemHeight));
+
+ Label* pLabel = new (std::nothrow) Label();
+ pLabel->Construct(Rectangle(0, 0, itemWidth, __descriptionItemHeight), str);
+ pLabel->SetTextConfig(FONT_SIZE_SUB_CONTENT, LABEL_TEXT_STYLE_NORMAL);
+ pLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+ pItem->AddControl(*pLabel);
+
+ return pItem;
+}
+
+TableViewItem*
+SettingForm::CreateFirstDayOfWeekExpanderItemN(int itemWidth, bool isSundayFirst)
+{
+ TableViewItem* pItem = new (std::nothrow) TableViewItem();
+ pItem->Construct(Dimension(itemWidth, H_ITEM), TABLE_VIEW_ANNEX_STYLE_NORMAL);
+
+ Label* pLabel = new (std::nothrow) Label();
+ pLabel->Construct(Rectangle(0, 10, itemWidth, 38), L"First day of week");
+ pLabel->SetTextConfig(FONT_SIZE_SUB_CONTENT, LABEL_TEXT_STYLE_NORMAL);
+ pLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+ pItem->AddControl(*pLabel);
+
+ Label* pFirstDayOfWeekLabel = new (std::nothrow) Label();
+ pFirstDayOfWeekLabel->Construct(Rectangle(0, 48, itemWidth, 70),
+ (isSundayFirst == true) ? ResourceManager::GetWeekString(0) : ResourceManager::GetWeekString(1));
+ pFirstDayOfWeekLabel->SetTextConfig(FONT_SIZE_MAIN_CONTENT, LABEL_TEXT_STYLE_NORMAL);
+ pFirstDayOfWeekLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+ pItem->AddControl(*pFirstDayOfWeekLabel);
+ __pLabelFirstDayOfWeek = pFirstDayOfWeekLabel;
+
+ return pItem;
+}
+
+TableViewItem*
+SettingForm::CreateFirstDayOfWeekSundayItemN(int itemWidth, bool isSelected)
+{
+ TableViewItem* pItem = new (std::nothrow) TableViewItem();
+ pItem->Construct(Dimension(itemWidth, H_ITEM), TABLE_VIEW_ANNEX_STYLE_RADIO);
+
+ Label* pLabel = new (std::nothrow) Label();
+ pLabel->Construct(Rectangle(0, 0, itemWidth - pItem->GetAnnexWidth(TABLE_VIEW_ANNEX_STYLE_RADIO), H_ITEM), ResourceManager::GetWeekString(0));
+ pLabel->SetTextConfig(FONT_SIZE_MAIN_CONTENT, LABEL_TEXT_STYLE_NORMAL);
+ pLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+ pItem->AddControl(*pLabel);
+
+ return pItem;
+}
+
+TableViewItem*
+SettingForm::CreateFirstDayOfWeekMondayItemN(int itemWidth, bool isSelected)
+{
+ TableViewItem* pItem = new (std::nothrow) TableViewItem();
+ pItem->Construct(Dimension(itemWidth, H_ITEM), TABLE_VIEW_ANNEX_STYLE_RADIO);
+
+ Label* pLabel = new (std::nothrow) Label();
+ pLabel->Construct(Rectangle(0, 0, itemWidth - pItem->GetAnnexWidth(TABLE_VIEW_ANNEX_STYLE_RADIO), H_ITEM), ResourceManager::GetWeekString(1));
+ pLabel->SetTextConfig(FONT_SIZE_MAIN_CONTENT, LABEL_TEXT_STYLE_NORMAL);
+ pLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+ pItem->AddControl(*pLabel);
+
+ return pItem;
+}
+
+TableViewItem*
+SettingForm::CreateImportItemN(int itemWidth)
+{
+ TableViewItem* pItem = new (std::nothrow) TableViewItem();
+ pItem->Construct(Dimension(itemWidth, H_ITEM), TABLE_VIEW_ANNEX_STYLE_NORMAL);
+
+ Label* pLabel = new (std::nothrow) Label();
+ pLabel->Construct(Rectangle(0, 0, itemWidth, H_ITEM), ResourceManager::GetString(IDS_CLD_BODY_IMPORT_EVENTS_EVENTS_TASKS_ABB));
+ pLabel->SetTextConfig(FONT_SIZE_MAIN_CONTENT, LABEL_TEXT_STYLE_NORMAL);
+ pLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+ pItem->AddControl(*pLabel);
+
+ return pItem;
+}
+
+TableViewItem*
+SettingForm::CreateExportItemN(int itemWidth)
+{
+ TableViewItem* pItem = new (std::nothrow) TableViewItem();
+ pItem->Construct(Dimension(itemWidth, H_ITEM), TABLE_VIEW_ANNEX_STYLE_NORMAL);
+
+ Label* pLabel = new (std::nothrow) Label();
+ pLabel->Construct(Rectangle(0, 0, itemWidth, H_ITEM), ResourceManager::GetString(IDS_CLD_BODY_EXPORT_EVENTS_EVENTS_TASKS_ABB));
+ pLabel->SetTextConfig(FONT_SIZE_MAIN_CONTENT, LABEL_TEXT_STYLE_NORMAL);
+ pLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+ pItem->AddControl(*pLabel);
+
+ return pItem;
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClSharePopup.cpp
+ * @brief This is the implementation file for the SharePopup class.
+ */
+
+#include <new>
+#include <FApp.h>
+#include <FBase.h>
+#include <FGraphics.h>
+#include <FIo.h>
+#include "ClCalendarApp.h"
+#include "ClSharePopup.h"
+#include "ClResourceManager.h"
+#include "ClTypes.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Graphics;
+using namespace Tizen::Io;
+using namespace Tizen::Social;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+
+enum{
+ SHARE_EMAIL = 0,
+// SHARE_MESSAGE,
+// SHARE_BLUETOOTH,
+// SHARE_NFC,
+// SHARE_WI_FI,
+ SHARE_COUNT
+};
+
+static const int IDA_SHARE_POPUP_CLOSE = 63010;
+static const int ITEM_HEIGHT = 110;
+
+SharePopup::SharePopup(void)
+ : __pListView(null)
+ , __eventId(INVALID_RECORD_ID)
+{
+}
+
+SharePopup::~SharePopup(void)
+{
+}
+
+result
+SharePopup::Initialize(void)
+{
+ return Construct(L"IDL_SHARE_POPUP");
+}
+
+result
+SharePopup::RequestShare(RecordId eventId)
+{
+ __eventId = eventId;
+ SetShowState(true);
+ return Show();
+}
+
+result
+SharePopup::OnInitializing(void)
+{
+ __pListView = dynamic_cast<ListView*>(GetControl(L"IDC_LISTVIEW_SHARE"));
+ AppAssertf(__pListView != null, "[E_FAILURE] Unable to get listview.");
+ __pListView->SetItemProvider(*this);
+ __pListView->AddListViewItemEventListener(*this);
+ // TBD : Below code will be deleted.(Tizen SDK 2.0 has a defect on first drawing.)
+ __pListView->UpdateList();
+
+ Button* pButtonCancel = dynamic_cast<Button*>(GetControl(L"IDC_BUTTON_CLOSE"));
+ AppAssertf(pButtonCancel != null, "[E_FAILURE] Unable to get button.");
+ pButtonCancel->SetActionId(IDA_SHARE_POPUP_CLOSE);
+ pButtonCancel->AddActionEventListener(*this);
+
+ return E_SUCCESS;
+}
+
+result
+SharePopup::OnTerminating(void)
+{
+ return E_SUCCESS;
+}
+
+int
+SharePopup::GetItemCount(void)
+{
+ return SHARE_COUNT;
+}
+
+ListItemBase*
+SharePopup::CreateItem(int index, int itemWidth)
+{
+ SimpleItem* pItem = new (std::nothrow) SimpleItem();
+ pItem->Construct(Dimension(itemWidth, ITEM_HEIGHT), LIST_ANNEX_STYLE_NORMAL);
+
+ switch (index)
+ {
+ case SHARE_EMAIL:
+ pItem->SetElement(ResourceManager::GetString(IDS_CLD_OPT_SENDVIA_EMAIL));
+ break;
+// case SHARE_MESSAGE:
+// pItem->SetElement(ResourceManager::GetString(IDS_POPUP_SHARE_MESSAGE));
+// break;
+// case SHARE_BLUETOOTH:
+// pItem->SetElement(ResourceManager::GetString(IDS_POPUP_SHARE_BLUETOOTH));
+// break;
+// case SHARE_NFC:
+// pItem->SetElement(ResourceManager::GetString(IDS_POPUP_SHARE_NFC));
+// break;
+// case SHARE_WI_FI:
+// pItem->SetElement(ResourceManager::GetString(IDS_POPUP_SHARE_WI_FI));
+// break;
+ }
+
+ return pItem;
+}
+
+bool
+SharePopup::DeleteItem(int index, ListItemBase* pItem, int itemWidth)
+{
+ return true;
+}
+
+void
+SharePopup::OnListViewItemStateChanged(ListView& listView, int index, int elementId, ListItemStatus status)
+{
+ if (status == LIST_ITEM_STATUS_SELECTED)
+ {
+ String* pPath = new (std::nothrow) String(CalendarApp::GetExportVcsFilePath());
+ Calendarbook calendarbook;
+ calendarbook.Construct();
+ LinkedList events;
+ events.Add(calendarbook.GetEventN(__eventId));
+ calendarbook.ExportEventsToVcalendar(events, *pPath);
+ events.RemoveAll(true);
+
+ HashMap* pArgs = new (std::nothrow) HashMap();
+ pArgs->Construct();
+
+ AppId appId;
+ String operationId;
+ switch (index)
+ {
+ case SHARE_EMAIL:
+ appId = L"tizen.email";
+ operationId = L"http://tizen.org/appcontrol/operation/compose";
+ pArgs->Add(new (std::nothrow) String(L"attachments"), pPath);
+ break;
+// case SHARE_MESSAGE:
+// appId = L"tizen.message";
+// operationId = L"http://tizen.org/appcontrol/operation/compose";
+// pArgs->Add(new (std::nothrow) String(L"type"), new (std::nothrow) String(L"MMS"));
+// pArgs->Add(new (std::nothrow) String(L"attachVcalendar"), pPath);
+// break;
+// case SHARE_BLUETOOTH:
+// appId = L"tizen.bluetooth";
+// operationId = L"http://tizen.org/appcontrol/operation/compose";
+// break;
+// case SHARE_NFC:
+// appId = L"tizen.nfc";
+// operationId = L"http://tizen.org/appcontrol/operation/compose";
+// break;
+// case SHARE_WI_FI:
+// appId = L"tizen.wifi";
+// operationId = L"http://tizen.org/appcontrol/operation/compose";
+// break;
+ default:
+ File::Remove(*pPath);
+ pArgs->RemoveAll(true);
+ delete pArgs;
+ delete pPath;
+ return;
+ }
+
+ AppControl* pAc = AppManager::FindAppControlN(appId, operationId);
+ if (pAc != null)
+ {
+ pAc->Start(null, null, pArgs, null);
+ delete pAc;
+ }
+ pArgs->RemoveAll(true);
+ delete pArgs;
+
+ SetShowState(false);
+// delete this;
+ }
+}
+
+void
+SharePopup::OnListViewItemSwept(ListView& listView, int index, SweepDirection direction)
+{
+}
+
+void
+SharePopup::OnListViewContextItemStateChanged(ListView& listView, int index, int elementId, ListContextItemStatus status)
+{
+}
+
+void
+SharePopup::OnListViewItemLongPressed(ListView& listView, int index, int elementId, bool& invokeListViewItemCallback)
+{
+}
+
+void
+SharePopup::OnListViewItemReordered(ListView& listView, int indexFrom, int indexTo)
+{
+}
+
+void
+SharePopup::OnActionPerformed(const Control& source, int actionId)
+{
+ if (actionId == IDA_SHARE_POPUP_CLOSE)
+ {
+ SetShowState(false);
+// delete this;
+ }
+}
+
+//void
+//SharePopup::RequestShare(RecordId eventId)
+//{
+// SharePopup* pPopup = new (std::nothrow) SharePopup();
+// pPopup->__eventId = eventId;
+// pPopup->Construct(L"IDL_SHARE_POPUP");
+// pPopup->Show();
+//}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClTaskDetailsForm.cpp
+ * @brief This is the implementation file for the TaskDetailsForm class.
+ */
+
+#include <new>
+#include <FGraphics.h>
+#include <FLocales.h>
+#include "ClCalendarApp.h"
+#include "ClResourceManager.h"
+#include "ClTaskDetailsForm.h"
+#include "ClTypes.h"
+
+using namespace Tizen;
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Graphics;
+using namespace Tizen::Social;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+enum
+{
+ GROUP_MAIN_CONTENT = 0,
+ GROUP_INFORMATION_CONTENT,
+ GROUP_ADDITIONAL_CONTENT,
+ GROUP_SAVE_TO,
+ GROUP_COUNT,
+
+ MAIN_CONTENT_ITEM_INFORMATION = 0,
+ MAIN_CONTENT_ITEM_COUNT,
+
+ INFORMATION_CONTENT_ITEM_DESCRIPTION = 0,
+ INFORMATION_CONTENT_ITEM_LOCATION,
+ INFORMATION_CONTENT_ITEM_COUNT,
+
+ ADDITIONAL_CONTENT_ITEM_COUNT = 2,
+
+// SAVE_TO_ITEM_SAVE_TO = 0,
+// SAVE_TO_ITEM_COUNT
+};
+
+static const int IDA_TASK_DETAILS_FORM_ADD_TO_CALENDAR = 80001;
+
+static const unsigned int COLOR_ITEM_BACKGROUND = Color32<232, 232, 232>::Value;
+static const int H_ITEM = 112;
+static const int H_MAIN_ITEM = 264;
+static const int Y_MAIN_ITEM_SUBJECT = 16;
+static const int H_MAIN_ITEM_SUBJECT = 120;
+static const int W_MAIN_ITEM_SUBJECT_MARGIN = 40;
+static const int H_MAIN_ITEM_SUBJECT_MARGIN = 32;
+static const int X_MAIN_ITEM_ALARM_ICON = 16;
+static const int Y_MAIN_ITEM_ALARM_ICON = 36;
+static const int W_MAIN_ITEM_ALARM_ICON = 64;
+static const int H_MAIN_ITEM_ALARM_ICON = 64;
+static const int X_MAIN_ITEM_ALARM = 96;
+static const int Y_MAIN_ITEM_ALARM01 = 16;
+static const int Y_MAIN_ITEM_ALARM02 = 58;
+static const int H_MAIN_ITEM_ALARM01 = 42;
+static const int H_MAIN_ITEM_ALARM02 = 60;
+static const int W_COMPLETED_ICON_MARGIN = 36;
+static const int H_ADDTIONAL_ITEM = 112;
+static const int Y_REMINDER_ITEM_REMINDER = 32;
+static const int H_REMINDER_ITEM_REMINDER = 48;
+static const int Y_REMINDER_ITEM_REPEAT = 32;
+static const int H_REMINDER_ITEM_REPEAT = 48;
+static const int W_DESCRIPTION_ITEM_MARGIN = 16;
+static const int H_DESCRIPTION_ITEM_MARGIN = 38;
+//static const int H_SAVE_TO_ITEM = 112;
+//static const int Y_SAVE_TO_ITEM_SAVE_TO = 8;
+//static const int H_SAVE_TO_ITEM_SAVE_TO = 48;
+//static const int Y_SAVE_TO_ITEM_CALENDAR_NAME = 56;
+//static const int H_SAVE_TO_ITEM_CALENDAR_NAME = 48;
+static const int FONT_SIZE_DETAIL01 = 56;
+static const unsigned int COLOR_DETAIL01 = Color32<0, 0, 0>::Value;
+static const int FONT_SIZE_DETAIL02 = 32;
+static const unsigned int COLOR_DETAIL02 = Color32<128, 128, 128>::Value;
+static const int FONT_SIZE_DETAIL03 = 44;
+static const unsigned int COLOR_DETAIL03 = Color32<0, 0, 0>::Value;
+//static const int X_ITEM_SAVE_TO_ICON = 16;
+//static const int Y_ITEM_SAVE_TO_ICON = 66;
+//static const int W_ITEM_SAVE_TO_ICON = 32;
+//static const int H_ITEM_SAVE_TO_ICON = 32;
+//static const unsigned int COLOR_SAVE_TO_ICON = Color32<100, 100, 100>::Value;
+static const int MAX_TITLE_TEXT = 20;
+static const int X_ITEM_ICON = 20;
+static const int Y_ITEM_ICON = 19;
+static const int W_ITEM_ICON = 74;
+static const int H_ITEM_ICON = 74;
+
+TaskDetailsForm::TaskDetailsForm(void)
+ : __pTask(null)
+ , __pTableView(null)
+{
+}
+
+TaskDetailsForm::~TaskDetailsForm(void)
+{
+}
+
+result
+TaskDetailsForm::Initialize(void)
+{
+ return Construct(L"IDL_TASK_DETAILS_FORM");
+}
+
+result
+TaskDetailsForm::OnInitializing(void)
+{
+ SetFormBackEventListener(this);
+ Footer* pFooter = GetFooter();
+ pFooter->AddActionEventListener(*this);
+
+ __pTableView = dynamic_cast<SectionTableView*>(GetControl(L"IDC_SECTIONTABLEVIEW"));
+ TryReturn(__pTableView != null, E_FAILURE, "[E_FAILURE] Unable to get sectiontableview.");
+
+ __pTableView->SetItemProvider(this);
+ __pTableView->AddSectionTableViewItemEventListener(*this);
+ __pTableView->SetGroupedLookEnabled(true);
+
+ return E_SUCCESS;
+}
+
+result
+TaskDetailsForm::OnTerminating(void)
+{
+ delete __pTask;
+ return E_SUCCESS;
+}
+
+void
+TaskDetailsForm::OnFormBackRequested(Form& source)
+{
+// result r = SendAppControlResult(APP_CTRL_RESULT_SUCCEEDED);
+// AppLogDebugIf(r != E_SUCCESS, "[%s] Unable to return result.", GetErrorMessage(r));
+
+ UiApp::GetInstance()->Terminate();
+}
+
+int
+TaskDetailsForm::GetSectionCount(void)
+{
+ return GROUP_COUNT;
+}
+
+int
+TaskDetailsForm::GetItemCount(int sectionIndex)
+{
+ if (__pTask == null)
+ {
+ return 0;
+ }
+
+ switch (sectionIndex)
+ {
+ case GROUP_MAIN_CONTENT:
+ return MAIN_CONTENT_ITEM_COUNT;
+ case GROUP_INFORMATION_CONTENT:
+ return INFORMATION_CONTENT_ITEM_COUNT;
+ case GROUP_ADDITIONAL_CONTENT:
+ if (__pTask->GetAllReminders().GetCount() <= 0)
+ {
+ return ADDITIONAL_CONTENT_ITEM_COUNT;
+ }
+ return __pTask->GetAllReminders().GetCount() + 1;
+// case GROUP_SAVE_TO:
+// return SAVE_TO_ITEM_COUNT;
+ }
+
+ return 0;
+}
+
+TableViewItem*
+TaskDetailsForm::CreateItem(int sectionIndex, int itemIndex, int itemWidth)
+{
+ TableViewItem* pItem = null;
+ switch (sectionIndex)
+ {
+ case GROUP_MAIN_CONTENT:
+ if (itemIndex == MAIN_CONTENT_ITEM_INFORMATION)
+ {
+ pItem = CreateMainItemN(itemWidth, __pTask->GetSubject(), ResourceManager::ConvertUtcTimeToWallTime(__pTask->GetDueDate()),
+ __pTask->GetStatus() == TODO_STATUS_COMPLETED);
+ }
+ break;
+ case GROUP_INFORMATION_CONTENT:
+ switch (itemIndex)
+ {
+ case INFORMATION_CONTENT_ITEM_DESCRIPTION:
+ pItem = CreateDescriptionItemN(itemWidth, __pTask->GetDescription());
+ break;
+ case INFORMATION_CONTENT_ITEM_LOCATION:
+ pItem = CreateLocationItemN(itemWidth, __pTask->GetLocation());
+ break;
+ }
+ break;
+ case GROUP_ADDITIONAL_CONTENT:
+ {
+ const IList& reminders = __pTask->GetAllReminders();
+ if (reminders.GetCount() <= 0 && itemIndex == 0)
+ {
+ pItem = CreateReminderItemN(itemWidth, GetReminderString());
+ }
+ else if (itemIndex < reminders.GetCount())
+ {
+ pItem = CreateReminderItemN(itemWidth, GetReminderString(static_cast<const Reminder*>(reminders.GetAt(itemIndex))));
+ }
+ else
+ {
+ switch (__pTask->GetPriority())
+ {
+ case TODO_PRIORITY_LOW:
+ pItem = CreatePriorityItemN(itemWidth, ResourceManager::GetString(IDS_COM_BODY_LOW));
+ break;
+// case TODO_PRIORITY_NORMAL:
+// pItem = CreatePriorityItemN(itemWidth, ResourceManager::GetString(IDS_TASK_PRIORITY_MIDDLE));
+// break;
+ case TODO_PRIORITY_HIGH:
+ pItem = CreatePriorityItemN(itemWidth, ResourceManager::GetString(IDS_COM_BODY_HIGH));
+ break;
+ default:
+ pItem = CreatePriorityItemN(itemWidth, ResourceManager::GetString(IDS_TASK_PRIORITY_MIDDLE));
+ break;
+ }
+ }
+ break;
+ }
+// case GROUP_SAVE_TO:
+// if (itemIndex == SAVE_TO_ITEM_SAVE_TO)
+// {
+// const Bitmap* pIcon = __pPm->GetCalendarIconN();
+// pItem = CreateSaveToItemN(itemWidth, __pPm->GetCalendarName(), pIcon);
+// delete pIcon;
+// }
+// break;
+ }
+
+ return pItem;
+}
+
+bool
+TaskDetailsForm::DeleteItem(int sectionIndex, int itemIndex, TableViewItem* pItem)
+{
+ delete pItem;
+ return true;
+}
+
+void
+TaskDetailsForm::UpdateItem(int sectionIndex, int itemIndex, TableViewItem* pItem)
+{
+}
+
+String
+TaskDetailsForm::GetSectionHeader(int sectionIndex)
+{
+ return L"";
+}
+
+bool
+TaskDetailsForm::HasSectionHeader(int sectionIndex)
+{
+ if (sectionIndex == GROUP_INFORMATION_CONTENT)
+ {
+ if ((__pTask->GetLocation().IsEmpty() == true) && (__pTask->GetDescription().IsEmpty() == true))
+ {
+ return false;
+ }
+ }
+ return true;
+}
+
+String
+TaskDetailsForm::GetSectionFooter(int sectionIndex)
+{
+ return L"";
+}
+
+bool
+TaskDetailsForm::HasSectionFooter(int sectionIndex)
+{
+ return false;
+}
+
+int
+TaskDetailsForm::GetDefaultItemHeight(void)
+{
+ return H_ITEM;
+}
+
+void
+TaskDetailsForm::OnSectionTableViewItemStateChanged(SectionTableView& tableView, int sectionIndex, int itemIndex,
+ TableViewItem* pItem, TableViewItemStatus status)
+{
+}
+
+void
+TaskDetailsForm::OnSectionTableViewContextItemActivationStateChanged(SectionTableView& tableView, int sectionIndex, int itemIndex,
+ TableViewContextItem* pContextItem, bool activated)
+{
+}
+
+void
+TaskDetailsForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs)
+{
+ if (pArgs != null)
+ {
+ pArgs->RemoveAll(true);
+ delete pArgs;
+ }
+
+ result r = E_SUCCESS;
+ IList* pTodos = null;
+ const String* pParseId = null;
+ const String* pPath = null;
+ RecordId todoId = INVALID_RECORD_ID;
+ const String* pViewType = static_cast<CalendarApp*>(UiApp::GetInstance())->GetArgument(KEY_CALENDAR_VIEW_TYPE);
+ TryCatch(pViewType != null, , "[E_FAILURE] Unable to get viewtype.");
+
+ if (pViewType->Equals(VALUE_CALENDAR_VCS_TYPE, false) == true)
+ {
+ pPath = static_cast<CalendarApp*>(UiApp::GetInstance())->GetArgument(KEY_CALENDAR_PATH);
+ TryCatch(pPath != null, , "[E_FAILURE] Unable to get vcs file path.");
+ pTodos = Calendarbook::ParseTodosFromVcalendarN(*pPath);
+ TryCatch(pTodos != null, , "[E_FAILURE] Unable to parse todos from vcs file.");
+ TryCatch(pTodos->GetCount() > 0, delete pTodos, "[E_FAILURE] Unable to parse todos from vcs file.");
+
+ __pTask = static_cast<CalTodo*>(pTodos->GetAt(0));
+ pTodos->RemoveAt(0);
+ pTodos->RemoveAll(true);
+ delete pTodos;
+ return;
+ }
+ else if (pViewType->Equals(VALUE_CALENDAR_TODO_TYPE, false) == true)
+ {
+ pParseId = static_cast<CalendarApp*>(UiApp::GetInstance())->GetArgument(KEY_CALENDAR_TODO_ID);
+ TryCatch(pParseId != null, , "[E_FAILURE] Unable to get eventid.");
+
+ r = Integer::Parse(*pParseId, todoId);
+ TryCatch(r == E_SUCCESS, , "[%s] Unable to get eventid.", GetErrorMessage(r));
+
+ Calendarbook calendarbook;
+ calendarbook.Construct();
+ __pTask = calendarbook.GetTodoN(todoId);
+ TryCatch(__pTask != null, , "[E_FAILURE] Unable to get todo.");
+
+ GetFooter()->RemoveAllItems();
+ return;
+ }
+
+CATCH:
+ SendAppControlResult(APP_CTRL_RESULT_FAILED);
+ UiApp::GetInstance()->Terminate();
+}
+
+void
+TaskDetailsForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
+{
+
+}
+
+void
+TaskDetailsForm::OnActionPerformed(const Control& source, int actionId)
+{
+ switch (actionId)
+ {
+ case IDA_TASK_DETAILS_FORM_ADD_TO_CALENDAR:
+ if (__pTask->GetSubject().IsEmpty() == true)
+ {
+ __pTask->SetSubject(ResourceManager::GetString(IDS_CLD_BODY_NO_TITLE));
+ }
+ Calendarbook calendarbook;
+ calendarbook.Construct();
+ calendarbook.AddTodo(*__pTask);
+
+ if (GetFooter() != null)
+ {
+ GetFooter()->RemoveAllItems();
+ }
+ break;
+ }
+}
+
+TableViewItem*
+TaskDetailsForm::CreateMainItemN(int itemWidth, const String& title, const DateTime& dueDate, bool isCompleted)
+{
+ TableViewItem* pItem = new (std::nothrow) TableViewItem();
+ pItem->Construct(Dimension(itemWidth, H_MAIN_ITEM));
+ pItem->SetBackgroundColor(Color(COLOR_ITEM_BACKGROUND));
+ pItem->SetEnabled(false);
+
+ int y = Y_MAIN_ITEM_SUBJECT;
+ if (title.GetLength() > MAX_TITLE_TEXT)
+ {
+ EnrichedText titleText;
+ titleText.Construct(Dimension(itemWidth - W_MAIN_ITEM_SUBJECT_MARGIN, Integer::VALUE_MAX));
+ titleText.SetTextWrapStyle(TEXT_WRAP_WORD_WRAP);
+ titleText.SetTextAbbreviationEnabled(true);
+
+ TextElement* pElement = new (std::nothrow) TextElement();
+ pElement->Construct(title);
+ Font font;
+ font.Construct(FONT_STYLE_PLAIN, FONT_SIZE_DETAIL01);
+ pElement->SetFont(font);
+ titleText.Add(*pElement);
+ int actualHeight = titleText.GetTextExtent().height + H_MAIN_ITEM_SUBJECT_MARGIN;
+ titleText.RemoveAll(true);
+
+ Label* pLabelSubject = new (std::nothrow) Label();
+ pLabelSubject->Construct(Rectangle(0, 0, itemWidth, actualHeight), title);
+ pItem->AddControl(*pLabelSubject);
+ pLabelSubject->SetTextConfig(FONT_SIZE_DETAIL01, LABEL_TEXT_STYLE_NORMAL);
+ pLabelSubject->SetTextColor(Color(COLOR_DETAIL01));
+ pLabelSubject->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+ y = actualHeight;
+ }
+ else
+ {
+ Label* pLabelSubject = new (std::nothrow) Label();
+ pLabelSubject->Construct(Rectangle(0, y, itemWidth, H_MAIN_ITEM_SUBJECT), title);
+ pItem->AddControl(*pLabelSubject);
+ pLabelSubject->SetTextConfig(FONT_SIZE_DETAIL01, LABEL_TEXT_STYLE_NORMAL);
+ pLabelSubject->SetTextColor(Color(COLOR_DETAIL01));
+ pLabelSubject->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+ y += H_MAIN_ITEM_SUBJECT;
+ }
+
+ Bitmap* pIcon = ResourceManager::GetBitmapN(IDB_ICON_ALARM_64X64);
+ if (pIcon != null)
+ {
+ Label* pLabelIcon = new (std::nothrow) Label();
+ pLabelIcon->Construct(Rectangle(X_MAIN_ITEM_ALARM_ICON, y + Y_MAIN_ITEM_ALARM_ICON,
+ W_MAIN_ITEM_ALARM_ICON, H_MAIN_ITEM_ALARM_ICON), L"");
+ pItem->AddControl(*pLabelIcon);
+ pLabelIcon->SetBackgroundBitmap(*pIcon);
+ delete pIcon;
+ }
+
+ String dateString;
+ Locales::DateTimeFormatter* pDateFormatter = ResourceManager::CreateDateFormatterN(Locales::DATE_TIME_STYLE_LONG);
+ pDateFormatter->Format(dueDate, dateString);
+ delete pDateFormatter;
+
+ Label* pLabelAlarm01 = new (std::nothrow) Label();
+ pLabelAlarm01->Construct(Rectangle(X_MAIN_ITEM_ALARM, y + Y_MAIN_ITEM_ALARM01,
+ itemWidth - X_MAIN_ITEM_ALARM, H_MAIN_ITEM_ALARM01), dateString);
+ pItem->AddControl(*pLabelAlarm01);
+ pLabelAlarm01->SetTextConfig(FONT_SIZE_DETAIL02, LABEL_TEXT_STYLE_NORMAL);
+ pLabelAlarm01->SetTextColor(Color(COLOR_DETAIL02));
+ pLabelAlarm01->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+
+ String timeString;
+ Locales::DateTimeFormatter* pTimeFormatter = ResourceManager::CreateTimeFormatterN();
+ pTimeFormatter->Format(dueDate, timeString);
+ delete pTimeFormatter;
+
+ Label* pLabelAlarm02 = new (std::nothrow) Label();
+ pLabelAlarm02->Construct(Rectangle(X_MAIN_ITEM_ALARM, y + Y_MAIN_ITEM_ALARM02,
+ itemWidth - X_MAIN_ITEM_ALARM, H_MAIN_ITEM_ALARM02), timeString);
+ pItem->AddControl(*pLabelAlarm02);
+ pLabelAlarm02->SetTextConfig(FONT_SIZE_DETAIL03, LABEL_TEXT_STYLE_NORMAL);
+ pLabelAlarm02->SetTextColor(Color(COLOR_DETAIL03));
+ pLabelAlarm02->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+
+ if (isCompleted == true)
+ {
+ Bitmap* pBitmap = ResourceManager::GetBitmapN(IDB_TASK_EVENT_COMPLETION_PRESS);
+ if (pBitmap != null)
+ {
+ Label* pCompletedIcon = new (std::nothrow) Label();
+ pCompletedIcon->Construct(Rectangle(itemWidth - W_COMPLETED_ICON_MARGIN - pBitmap->GetWidth(),
+ y + Y_MAIN_ITEM_ALARM02 + (H_MAIN_ITEM_ALARM02 - pBitmap->GetHeight()) / 2,
+ pBitmap->GetWidth(), pBitmap->GetHeight()), L"");
+ pCompletedIcon->SetBackgroundBitmap(*pBitmap);
+ pItem->AddControl(*pCompletedIcon);
+ delete pBitmap;
+ }
+ }
+
+ y += Y_MAIN_ITEM_ALARM02 + H_MAIN_ITEM_ALARM02;
+ pItem->SetSize(itemWidth, y);
+
+ return pItem;
+}
+
+TableViewItem*
+TaskDetailsForm::CreateDescriptionItemN(int itemWidth, const String& description)
+{
+ TableViewItem* pItem = new (std::nothrow) TableViewItem();
+ if (description.IsEmpty() == false)
+ {
+ EnrichedText text;
+ text.Construct(Dimension(itemWidth - W_DESCRIPTION_ITEM_MARGIN * 2, Integer::VALUE_MAX));
+ text.SetTextWrapStyle(TEXT_WRAP_WORD_WRAP);
+ text.SetTextAbbreviationEnabled(true);
+
+ TextElement* pElement = new (std::nothrow) TextElement();
+ pElement->Construct(description);
+ Font font;
+ font.Construct(FONT_STYLE_PLAIN, FONT_SIZE_DETAIL02);
+ pElement->SetFont(font);
+ text.Add(*pElement);
+
+ int actualHeight = text.GetTextExtent().height;
+ text.RemoveAll(true);
+
+ actualHeight += H_DESCRIPTION_ITEM_MARGIN * 2;
+ if (actualHeight < H_ITEM)
+ {
+ actualHeight = H_ITEM;
+ }
+
+ pItem->Construct(Dimension(itemWidth, actualHeight));
+ pItem->SetBackgroundColor(Color(COLOR_ITEM_BACKGROUND));
+ pItem->SetEnabled(false);
+
+ Label* pLabelIcon = new (std::nothrow) Label();
+ pLabelIcon->Construct(Rectangle(X_ITEM_ICON, Y_ITEM_ICON, W_ITEM_ICON, H_ITEM_ICON), L"");
+ Bitmap* pIcon = ResourceManager::GetBitmapN(IDB_LIST_ICON_DESCRIPTION);
+ if (pIcon != null)
+ {
+ pLabelIcon->SetBackgroundBitmap(*pIcon);
+ delete pIcon;
+ }
+ pItem->AddControl(*pLabelIcon);
+
+ Label* pLabelDescription = new (std::nothrow) Label();
+ pLabelDescription->Construct(Rectangle(X_ITEM_ICON + W_ITEM_ICON, 0, itemWidth - X_ITEM_ICON - W_ITEM_ICON, actualHeight), description);
+ pItem->AddControl(*pLabelDescription);
+ pLabelDescription->SetTextConfig(FONT_SIZE_DETAIL02, LABEL_TEXT_STYLE_NORMAL);
+ pLabelDescription->SetTextColor(Color(COLOR_DETAIL02));
+ pLabelDescription->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+ }
+ else
+ {
+ pItem->Construct(Dimension(itemWidth, 0));
+ }
+
+ return pItem;
+}
+
+TableViewItem*
+TaskDetailsForm::CreateLocationItemN(int itemWidth, const String& location)
+{
+ TableViewItem* pItem = new (std::nothrow) TableViewItem();
+ if (location.IsEmpty() == false)
+ {
+ pItem->Construct(Dimension(itemWidth, H_ITEM));
+ pItem->SetBackgroundColor(Color(COLOR_ITEM_BACKGROUND));
+ pItem->SetEnabled(false);
+
+ Label* pLabelIcon = new (std::nothrow) Label();
+ pLabelIcon->Construct(Rectangle(X_ITEM_ICON, Y_ITEM_ICON, W_ITEM_ICON, H_ITEM_ICON), L"");
+ Bitmap* pIcon = ResourceManager::GetBitmapN(IDB_LIST_ICON_MAP);
+ if (pIcon != null)
+ {
+ pLabelIcon->SetBackgroundBitmap(*pIcon);
+ delete pIcon;
+ }
+ pItem->AddControl(*pLabelIcon);
+
+ Label* pLabelLocation = new (std::nothrow) Label();
+ pLabelLocation->Construct(Rectangle(X_ITEM_ICON + W_ITEM_ICON, 0, itemWidth - X_ITEM_ICON - W_ITEM_ICON, H_ITEM), location);
+ pLabelLocation->SetTextConfig(FONT_SIZE_DETAIL03, LABEL_TEXT_STYLE_NORMAL);
+ pLabelLocation->SetTextColor(Color(COLOR_DETAIL03));
+ pLabelLocation->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+ pItem->AddControl(*pLabelLocation);
+ }
+ else
+ {
+ pItem->Construct(Dimension(itemWidth, 0));
+ }
+
+ return pItem;
+}
+
+TableViewItem*
+TaskDetailsForm::CreateReminderItemN(int itemWidth, const String& reminder)
+{
+ TableViewItem* pItem = new (std::nothrow) TableViewItem();
+ pItem->Construct(Dimension(itemWidth, H_ADDTIONAL_ITEM));
+ pItem->SetBackgroundColor(Color(COLOR_ITEM_BACKGROUND));
+ pItem->SetEnabled(false);
+
+ Label* pLabelReminder = new (std::nothrow) Label();
+ pLabelReminder->Construct(Rectangle(0, Y_REMINDER_ITEM_REMINDER, itemWidth, H_REMINDER_ITEM_REMINDER),
+ ResourceManager::GetString(IDS_CLD_BODY_REMINDER));
+ pItem->AddControl(*pLabelReminder);
+ pLabelReminder->SetTextConfig(FONT_SIZE_DETAIL03, LABEL_TEXT_STYLE_NORMAL);
+ pLabelReminder->SetTextColor(Color(COLOR_DETAIL03));
+ pLabelReminder->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+ pLabelReminder->SetTextVerticalAlignment(ALIGNMENT_MIDDLE);
+
+ Label* pLabelReminderContent = new (std::nothrow) Label();
+ pLabelReminderContent->Construct(Rectangle(0, Y_REMINDER_ITEM_REMINDER, itemWidth-16, H_REMINDER_ITEM_REMINDER), reminder);
+ pItem->AddControl(*pLabelReminderContent);
+ pLabelReminderContent->SetTextConfig(FONT_SIZE_DETAIL02, LABEL_TEXT_STYLE_NORMAL);
+ pLabelReminderContent->SetTextColor(Color(COLOR_DETAIL02));
+ pLabelReminderContent->SetTextHorizontalAlignment(ALIGNMENT_RIGHT);
+ pLabelReminderContent->SetTextVerticalAlignment(ALIGNMENT_MIDDLE);
+
+ return pItem;
+}
+
+TableViewItem*
+TaskDetailsForm::CreatePriorityItemN(int itemWidth, const String& priority)
+{
+ TableViewItem* pItem = new (std::nothrow) TableViewItem();
+ pItem->Construct(Dimension(itemWidth, H_ADDTIONAL_ITEM));
+ pItem->SetBackgroundColor(Color(COLOR_ITEM_BACKGROUND));
+ pItem->SetEnabled(false);
+
+ Label* pLabelPriority = new (std::nothrow) Label();
+ pLabelPriority->Construct(Rectangle(0, Y_REMINDER_ITEM_REPEAT, itemWidth, H_REMINDER_ITEM_REPEAT),
+ ResourceManager::GetString(IDS_CLD_BODY_PRIORITY));
+ pItem->AddControl(*pLabelPriority);
+ pLabelPriority->SetTextConfig(FONT_SIZE_DETAIL03, LABEL_TEXT_STYLE_NORMAL);
+ pLabelPriority->SetTextColor(Color(COLOR_DETAIL03));
+ pLabelPriority->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+ pLabelPriority->SetTextVerticalAlignment(ALIGNMENT_MIDDLE);
+
+ Label* pLabelPriorityContent = new (std::nothrow) Label();
+ pLabelPriorityContent->Construct(Rectangle(0, Y_REMINDER_ITEM_REPEAT, itemWidth-16, H_REMINDER_ITEM_REPEAT), priority);
+ pItem->AddControl(*pLabelPriorityContent);
+ pLabelPriorityContent->SetTextConfig(FONT_SIZE_DETAIL02, LABEL_TEXT_STYLE_NORMAL);
+ pLabelPriorityContent->SetTextColor(Color(COLOR_DETAIL02));
+ pLabelPriorityContent->SetTextHorizontalAlignment(ALIGNMENT_RIGHT);
+ pLabelPriorityContent->SetTextVerticalAlignment(ALIGNMENT_MIDDLE);
+
+ return pItem;
+}
+
+String
+TaskDetailsForm::GetReminderString(const Reminder* pReminder) const
+{
+ if (pReminder == null)
+ {
+ return ResourceManager::GetString(IDS_CLD_BODY_OFF);
+ }
+ else if (pReminder->GetTimeOffset() == 0)
+ {
+ return ResourceManager::GetString(IDS_CLD_BODY_ON_TIME);
+ }
+
+ String format;
+ String result;
+ switch (pReminder->GetTimeUnit())
+ {
+ case REMINDER_TIME_UNIT_MINUTE:
+ format = ResourceManager::GetString(IDS_REMINDER_MINUTE_BEFORE);
+ result.Format(format.GetLength() + 2, format.GetPointer(), pReminder->GetTimeOffset());
+ break;
+ case REMINDER_TIME_UNIT_HOUR:
+ format = ResourceManager::GetString(IDS_REMINDER_HOUR_BEFORE);
+ result.Format(format.GetLength() + 2, format.GetPointer(), pReminder->GetTimeOffset());
+ break;
+ case REMINDER_TIME_UNIT_DAY:
+ {
+ DateTime dueDate = __pTask->GetDueDate();
+ DateTime reminderDate = dueDate;
+ reminderDate.AddDays(-pReminder->GetTimeOffset());
+
+ int value = dueDate.GetYear() - reminderDate.GetYear();
+ if (dueDate.GetMonth() == reminderDate.GetMonth() && dueDate.GetDay() == reminderDate.GetDay())
+ {
+ format = ResourceManager::GetString(IDS_REMINDER_YEAR_BEFORE);
+ result.Format(format.GetLength() + 2, format.GetPointer(), dueDate.GetYear() - reminderDate.GetYear());
+ break;
+ }
+
+ value = value * 12 + dueDate.GetMonth() - reminderDate.GetMonth();
+ if (dueDate.GetDay() == reminderDate.GetDay())
+ {
+ format = ResourceManager::GetString(IDS_REMINDER_MONTH_BEFORE);
+ result.Format(format.GetLength() + 2, format.GetPointer(), value);
+ break;
+ }
+
+ format = ResourceManager::GetString(IDS_REMINDER_DAY_BEFORE);
+ result.Format(format.GetLength() + 2, format.GetPointer(), pReminder->GetTimeOffset());
+ break;
+ }
+ case REMINDER_TIME_UNIT_WEEK:
+ format = ResourceManager::GetString(IDS_REMINDER_WEEK_BEFORE);
+ result.Format(format.GetLength() + 2, format.GetPointer(), pReminder->GetTimeOffset());
+ break;
+ }
+
+ return result;
+}
+
+result
+TaskDetailsForm::SendAppControlResult(AppCtrlResult appControlResult)
+{
+ CalendarApp* pApp = static_cast<CalendarApp*>(UiApp::GetInstance());
+ TryReturn(pApp != null, E_FAILURE, "[E_FAILURE] Unable to get app instance.");
+
+ result r = AppControlProviderManager::GetInstance()->SendAppControlResult(pApp->GetRequestId(), appControlResult, null);
+ AppLogDebugIf(r != E_SUCCESS, "[%s] Unable to return result.", GetErrorMessage(r));
+
+ return r;
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClTaskItem.cpp
+ * @brief This is the implementation file for the TaskItem class.
+ */
+
+#include "ClTaskItem.h"
+#include "ClResourceManager.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Graphics;
+using namespace Tizen::Locales;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+
+enum TaskItemElementId
+{
+ ID_TASK_ITEM_ELEMENT_COLOR_BAR,
+ ID_TASK_ITEM_ELEMENT_TITLE,
+ ID_TASK_ITEM_ELEMENT_LOCATION,
+ ID_TASK_ITEM_ELEMENT_DUE_DATE,
+ ID_TASK_ITEM_ELEMENT_PRIORITY,
+ ID_TASK_ITEM_ELEMENT_REMINDER,
+ ID_TASK_ITEM_ELEMENT_FACEBOOK
+};
+
+static const int H_ITEM = 126;
+static const unsigned int COLOR_ITEM_BACKGROUND = Color32<248, 246, 239>::Value;
+static const int X_ITEM_MAIN_CONTENT = 26;
+static const int Y_ITEM_MAIN_CONTENT = 10;
+static const int H_ITEM_MAIN_CONTENT = 54;
+static const int FONT_SIZE_ITEM_MAIN_CONTENT = 44;
+static const unsigned int COLOR_ITEM_MAIN_CONTENT = Color32<0, 0, 0>::Value;
+static const unsigned int COLOR_ITEM_MAIN_CONTENT_FOCUS = Color32<255, 255, 255>::Value;
+static const int X_ITEM_SUB_CONTENT = 26;
+static const int Y_ITEM_SUB_CONTENT = 78;
+static const int W_ITEM_SUB_CONTENT_MARGIN = 26;
+static const int H_ITEM_SUB_CONTENT = 38;
+static const int FONT_SIZE_ITEM_SUB_CONTENT = 32;
+static const unsigned int COLOR_ITEM_SUB_CONTENT = Color32<128, 128, 128>::Value;
+static const unsigned int COLOR_ITEM_SUB_CONTENT_FOCUS = Color32<255, 255, 255>::Value;
+static const int Y_EVENT_COLOR_BAR = 4;
+static const int W_EVENT_COLOR_BAR = 7;
+static const int H_EVENT_COLOR_BAR = 118;
+static const int W_ICON = 38;
+static const int H_ICON = 38;
+static const int W_RANGE_TO_LOCATION_MARGIN = 32;
+static const int LIST_ANNEX_MARGIN = 30;
+static const byte COLOR_COMPLETE_TASK_ALPHA = 0x4D;
+
+
+TaskItem::TaskItem(void)
+ : __style()
+ , __width(-1)
+ , __priority(TASK_PRIORITY_LOW)
+ , __hasReminder(false)
+ , __isCanceled(false)
+ , __isCompleted(false)
+ , __isFacebook(false)
+{
+}
+
+TaskItem::~TaskItem(void)
+{
+}
+
+const Color
+TaskItem::GetCalendarColor(void) const
+{
+ return __calendarColor;
+}
+
+const String&
+TaskItem::GetDueDateText(void) const
+{
+ return __dueDate;
+}
+
+const String&
+TaskItem::GetLocation(void) const
+{
+ return __location;
+}
+
+TaskPriority
+TaskItem::GetPriority(void) const
+{
+ return __priority;
+}
+
+const String&
+TaskItem::GetTitle(void) const
+{
+ return __title;
+}
+
+bool
+TaskItem::HasReminder(void) const
+{
+ return __hasReminder;
+}
+
+void
+TaskItem::Initialize(TaskItemStyle style, int width)
+{
+ if (style == TASK_ITEM_STYLE_NORMAL)
+ {
+ Construct(Dimension(width, H_ITEM), LIST_ANNEX_STYLE_NORMAL);
+ __width = width;
+ }
+ else
+ {
+ Construct(Dimension(width, H_ITEM), LIST_ANNEX_STYLE_MARK);
+ __width = width - GetAnnexWidth(LIST_ANNEX_STYLE_MARK) - LIST_ANNEX_MARGIN;
+ }
+ // TBD : Background color of item must be transparent.(will be in SDK 2.1)
+ SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL, Color(COLOR_ITEM_BACKGROUND));
+ __style = style;
+}
+
+bool
+TaskItem::IsCanceledTask(void) const
+{
+ return __isCanceled;
+}
+
+bool
+TaskItem::IsCompletedTask(void) const
+{
+ return __isCompleted;
+}
+
+bool
+TaskItem::IsFacebookTask(void) const
+{
+ return __isFacebook;
+}
+
+void
+TaskItem::SetCalendarColor(const Color& calendarColor)
+{
+ __calendarColor = calendarColor;
+}
+
+void
+TaskItem::SetCanceled(bool isCanceled)
+{
+ __isCanceled = isCanceled;
+}
+
+void
+TaskItem::SetCompleted(bool isCompleted)
+{
+ __isCompleted = isCompleted;
+}
+
+void
+TaskItem::SetDueDate(const DateTime& dueDate, DateTimeFormatter* pTimeFormatter)
+{
+ bool deleteRequired = false;
+ if (pTimeFormatter == null)
+ {
+ pTimeFormatter = ResourceManager::CreateDateTimeFormatterN(DATE_TIME_STYLE_SHORT);
+ deleteRequired = true;
+ }
+
+ String dueDateText;
+ pTimeFormatter->Format(dueDate, dueDateText);
+ if (deleteRequired == true)
+ {
+ delete pTimeFormatter;
+ }
+ SetDueDateText(dueDateText);
+}
+
+void
+TaskItem::SetDueDateText(const String& range)
+{
+ __dueDate = range;
+}
+
+void
+TaskItem::SetFacebookEvent(bool isFacebookEvent)
+{
+ __isFacebook = isFacebookEvent;
+}
+
+void
+TaskItem::SetLocation(const String& location)
+{
+ __location = location;
+}
+
+void
+TaskItem::SetPriority(TaskPriority priority)
+{
+ __priority = priority;
+}
+
+void
+TaskItem::SetReminder(bool hasReminder)
+{
+ __hasReminder = hasReminder;
+}
+
+void
+TaskItem::SetTitle(const String& title)
+{
+ __title = title;
+}
+
+void
+TaskItem::UpdateElements(void)
+{
+ RemoveAllElements();
+
+ Bitmap* pBitmap = new (std::nothrow) Bitmap();
+ pBitmap->Construct(Dimension(W_EVENT_COLOR_BAR, H_EVENT_COLOR_BAR), BITMAP_PIXEL_FORMAT_ARGB8888);
+
+ BufferInfo bufferinfo;
+ pBitmap->Lock(bufferinfo);
+
+ Canvas canvas;
+ canvas.Construct(bufferinfo);
+ canvas.SetBackgroundColor(__calendarColor);
+ canvas.Clear();
+ pBitmap->Unlock();
+
+ AddElement(Rectangle(0, Y_EVENT_COLOR_BAR, W_EVENT_COLOR_BAR, H_EVENT_COLOR_BAR), ID_TASK_ITEM_ELEMENT_COLOR_BAR, *pBitmap);
+ delete pBitmap;
+
+ int titleWidth = __width - X_ITEM_MAIN_CONTENT;
+ if (__isFacebook == true)
+ {
+ Bitmap* pBitmap = ResourceManager::GetBitmapN(IDB_LIST_ICON_FACEBOOK);
+ if (pBitmap != null)
+ {
+ AddElement(Rectangle(titleWidth - W_ICON, Y_ITEM_MAIN_CONTENT + ((H_ITEM_MAIN_CONTENT - H_ICON) / 2), W_ICON, H_ICON),
+ ID_TASK_ITEM_ELEMENT_FACEBOOK, *pBitmap);
+ titleWidth -= X_ITEM_MAIN_CONTENT + W_ICON;
+ delete pBitmap;
+ }
+ }
+
+ if (__hasReminder == true)
+ {
+ Bitmap* pBitmap = ResourceManager::GetBitmapN(IDB_LIST_ICON_REMINDER);
+ if (pBitmap != null)
+ {
+ AddElement(Rectangle(titleWidth - W_ICON, Y_ITEM_MAIN_CONTENT + ((H_ITEM_MAIN_CONTENT - H_ICON) / 2), W_ICON, H_ICON),
+ ID_TASK_ITEM_ELEMENT_REMINDER, *pBitmap);
+ titleWidth -= X_ITEM_MAIN_CONTENT + W_ICON;
+ delete pBitmap;
+ }
+ }
+
+ pBitmap = null;
+ switch (__priority)
+ {
+ case TASK_PRIORITY_LOW:
+ pBitmap = ResourceManager::GetBitmapN(IDB_LIST_ICON_PRIORITY_LOW);
+ break;
+ default:
+ pBitmap = ResourceManager::GetBitmapN(IDB_LIST_ICON_PRIORITY);
+ break;
+ }
+ if (pBitmap != null)
+ {
+ AddElement(Rectangle(titleWidth - W_ICON, Y_ITEM_MAIN_CONTENT + ((H_ITEM_MAIN_CONTENT - H_ICON) / 2), W_ICON, H_ICON),
+ ID_TASK_ITEM_ELEMENT_PRIORITY, *pBitmap);
+ titleWidth -= X_ITEM_MAIN_CONTENT + W_ICON;
+ delete pBitmap;
+ }
+
+ Color colorMain(COLOR_ITEM_MAIN_CONTENT);
+ Color colorMainFocus(COLOR_ITEM_MAIN_CONTENT_FOCUS);
+ if (__isCompleted == true)
+ {
+ colorMain.SetAlpha(COLOR_COMPLETE_TASK_ALPHA);
+ colorMainFocus.SetAlpha(COLOR_COMPLETE_TASK_ALPHA);
+ }
+ if (__title.IsEmpty() == false)
+ {
+ AddElement(Rectangle(X_ITEM_MAIN_CONTENT, Y_ITEM_MAIN_CONTENT, titleWidth, H_ITEM_MAIN_CONTENT),
+ ID_TASK_ITEM_ELEMENT_TITLE, __title, FONT_SIZE_ITEM_MAIN_CONTENT,
+ colorMain, colorMainFocus, colorMainFocus);
+ }
+
+ Color colorSub(COLOR_ITEM_SUB_CONTENT);
+ Color colorSubFocus(COLOR_ITEM_SUB_CONTENT_FOCUS);
+ if (__isCompleted == true)
+ {
+ colorSub.SetAlpha(COLOR_COMPLETE_TASK_ALPHA);
+ colorSubFocus.SetAlpha(COLOR_COMPLETE_TASK_ALPHA);
+ }
+
+ int dueDateWidth = 0;
+ if (__dueDate.IsEmpty() == false)
+ {
+ Dimension extent;
+ Font font;
+ font.Construct(FONT_STYLE_PLAIN, FONT_SIZE_ITEM_SUB_CONTENT);
+ font.GetTextExtent(__dueDate, __dueDate.GetLength(), extent);
+ dueDateWidth = extent.width;
+
+ AddElement(Rectangle(X_ITEM_SUB_CONTENT, Y_ITEM_SUB_CONTENT, dueDateWidth, H_ITEM_SUB_CONTENT),
+ ID_TASK_ITEM_ELEMENT_DUE_DATE, __dueDate, FONT_SIZE_ITEM_SUB_CONTENT,
+ colorSub, colorSubFocus, colorSubFocus);
+ }
+
+ int locationWidth = __width - X_ITEM_SUB_CONTENT - W_ITEM_SUB_CONTENT_MARGIN - W_RANGE_TO_LOCATION_MARGIN - dueDateWidth;
+ if (__location.IsEmpty() == false)
+ {
+ Dimension extent;
+ Font font;
+ font.Construct(FONT_STYLE_PLAIN, FONT_SIZE_ITEM_SUB_CONTENT);
+ font.GetTextExtent(__location, __location.GetLength(), extent);
+ if (locationWidth > extent.width)
+ {
+ locationWidth = extent.width;
+ }
+
+ AddElement(Rectangle(__width - locationWidth - W_ITEM_SUB_CONTENT_MARGIN, Y_ITEM_SUB_CONTENT, locationWidth, H_ITEM_SUB_CONTENT),
+ ID_TASK_ITEM_ELEMENT_LOCATION, __location, FONT_SIZE_ITEM_SUB_CONTENT,
+ colorSub, colorSubFocus, colorSubFocus);
+ SetElementTextHorizontalAlignment(ID_TASK_ITEM_ELEMENT_LOCATION, ALIGNMENT_RIGHT);
+ }
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClTaskSelectorForm.cpp
+ * @brief This is the implementation file for the TaskSelectorForm class.
+ */
+
+#include <new>
+#include <FApp.h>
+#include <FGraphics.h>
+#include "ClCalendarApp.h"
+#include "ClResourceManager.h"
+#include "ClTaskItem.h"
+#include "ClTaskSelectorForm.h"
+#include "ClTypes.h"
+
+using namespace Tizen;
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Graphics;
+using namespace Tizen::Social;
+using namespace Tizen::System;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+enum ItemElementId
+{
+ ID_ITEM_ELEMENT_COLOR_BAR,
+ ID_ITEM_ELEMENT_SUBJECT,
+ ID_ITEM_ELEMENT_DUE_DATE,
+ ID_ITEM_ELEMENT_LOCATION
+};
+
+const int IDA_TASK_SELECTOR_FORM_FOOTER_DONE = 80001;
+
+TaskSelectorForm::TaskSelectorForm(void)
+ : __selectionType(TASK_SELECTOR_FORM_SELECTION_TYPE_MULTIPLE)
+ , __pTasks(null)
+ , __pListViewContents(null)
+ , __pCalendarbook(null)
+ , __pDateTimeFormatter(null)
+{
+}
+
+TaskSelectorForm::~TaskSelectorForm(void)
+{
+}
+
+result
+TaskSelectorForm::Initailize(void)
+{
+ return Construct(L"IDL_TASK_SELECTOR_FORM");
+}
+
+result
+TaskSelectorForm::OnInitializing(void)
+{
+ SetFormBackEventListener(this);
+ Footer* pFooter = GetFooter();
+ pFooter->AddActionEventListener(*this);
+
+ __pListViewContents = dynamic_cast<ListView*>(GetControl(L"IDC_LISTVIEW"));
+ TryReturn(__pListViewContents != null, E_FAILURE, "[E_FAILURE] Unable to get listview.");
+
+ __pListViewContents->SetItemProvider(*this);
+ __pListViewContents->AddListViewItemEventListener(*this);
+
+ __pCalendarbook = new (std::nothrow) Calendarbook();
+ __pCalendarbook->Construct();
+
+ CalendarbookFilter calendarFilter(CB_FI_TYPE_CALENDAR);
+ calendarFilter.AppendInt(FI_CONJ_OP_NONE, CALENDAR_FI_PR_ITEM_TYPE, FI_CMP_OP_EQUAL, CALENDAR_ITEM_TYPE_TODO_ONLY);
+ IList* pAllCalendars = __pCalendarbook->SearchN(calendarFilter);
+ __allCalendars.Construct(pAllCalendars->GetCount());
+ IEnumerator* pEnum = pAllCalendars->GetEnumeratorN();
+ while (pEnum->MoveNext() == E_SUCCESS)
+ {
+ Calendar* pCalendar = static_cast<Calendar*>(pEnum->GetCurrent());
+ __allCalendars.Add(new (std::nothrow) Integer(pCalendar->GetRecordId()), pCalendar);
+ }
+ delete pEnum;
+ pAllCalendars->RemoveAll(false);
+ delete pAllCalendars;
+
+ __pDateTimeFormatter = ResourceManager::CreateDateTimeFormatterN(Locales::DATE_TIME_STYLE_SHORT);
+ TryReturn(__pDateTimeFormatter != null, E_FAILURE, "[E_FAILURE] Unable to create time formatter.");
+
+ return E_SUCCESS;
+}
+
+result
+TaskSelectorForm::OnTerminating(void)
+{
+ __allCalendars.RemoveAll(true);
+
+ if (__pTasks != null)
+ {
+ __pTasks->RemoveAll(true);
+ delete __pTasks;
+ }
+
+ delete __pCalendarbook;
+ delete __pDateTimeFormatter;
+ return E_SUCCESS;
+}
+
+void
+TaskSelectorForm::OnFormBackRequested(Form& source)
+{
+ result r = SendAppControlResult(APP_CTRL_RESULT_CANCELED);
+ AppLogDebugIf(r != E_SUCCESS, "[%s] Unable to return result.", GetErrorMessage(r));
+
+ UiApp::GetInstance()->Terminate();
+}
+
+int
+TaskSelectorForm::GetItemCount(void)
+{
+ if (__pTasks == null)
+ {
+ return 0;
+ }
+
+ return __pTasks->GetCount();
+}
+
+ListItemBase*
+TaskSelectorForm::CreateItem(int index, int itemWidth)
+{
+ if (__pTasks == null)
+ {
+ return null;
+ }
+
+ CalTodo* pTodo = static_cast<CalTodo*>(__pTasks->GetAt(index));
+ TryReturn(pTodo != null, null, "[E_FAILURE] Unable to get task.");
+
+ TaskItem* pItem = new (std::nothrow) TaskItem();
+ pItem->Initialize((__selectionType == TASK_SELECTOR_FORM_SELECTION_TYPE_SINGLE) ? TASK_ITEM_STYLE_NORMAL : TASK_ITEM_STYLE_SELECTION, itemWidth);
+ pItem->SetTitle(pTodo->GetSubject());
+ pItem->SetCalendarColor(GetCalendarColor(pTodo->GetCalendarId()));
+ pItem->SetLocation(pTodo->GetLocation());
+ pItem->SetDueDate(ResourceManager::ConvertUtcTimeToWallTime(pTodo->GetDueDate()), __pDateTimeFormatter);
+ pItem->SetReminder(pTodo->GetAllReminders().GetCount() > 0);
+// pItem->SetFacebookEvent(false);
+
+ switch (pTodo->GetPriority())
+ {
+ case TODO_PRIORITY_LOW:
+ pItem->SetPriority(TASK_PRIORITY_LOW);
+ break;
+ case TODO_PRIORITY_NORMAL:
+ pItem->SetPriority(TASK_PRIORITY_NORMAL);
+ break;
+ case TODO_PRIORITY_HIGH:
+ pItem->SetPriority(TASK_PRIORITY_HIGH);
+ break;
+ }
+
+ switch (pTodo->GetStatus())
+ {
+ case TODO_STATUS_COMPLETED:
+ pItem->SetCompleted(true);
+ break;
+ case TODO_STATUS_CANCELLED:
+ pItem->SetCanceled(true);
+ break;
+ default:
+ break;
+ }
+
+ pItem->UpdateElements();
+ return pItem;
+}
+
+bool
+TaskSelectorForm::DeleteItem(int index, ListItemBase* pItem, int itemWidth)
+{
+ delete pItem;
+ return true;
+}
+
+void
+TaskSelectorForm::OnListViewItemStateChanged(ListView& listView, int index, int elementId, ListItemStatus status)
+{
+ if (status == LIST_ITEM_STATUS_SELECTED && __selectionType == TASK_SELECTOR_FORM_SELECTION_TYPE_SINGLE)
+ {
+ result r = E_SUCCESS;
+ LinkedList* pArgs = new (std::nothrow) LinkedList();
+ pArgs->Add(__pTasks->GetAt(index));
+ r = SendAppControlResult(APP_CTRL_RESULT_SUCCEEDED, pArgs);
+ pArgs->RemoveAll(false);
+ delete pArgs;
+ TryCatch(r == E_SUCCESS, , "[%s] Unable to return result.", GetErrorMessage(r));
+
+ UiApp::GetInstance()->Terminate();
+ return;
+
+CATCH:
+ SendAppControlResult(APP_CTRL_RESULT_FAILED);
+ UiApp::GetInstance()->Terminate();
+ }
+}
+
+void
+TaskSelectorForm::OnListViewItemSwept(ListView& listView, int index, SweepDirection direction)
+{
+
+}
+
+void
+TaskSelectorForm::OnListViewContextItemStateChanged(ListView& listView, int index, int elementId, ListContextItemStatus status)
+{
+
+}
+
+void
+TaskSelectorForm::OnListViewItemLongPressed(ListView& listView, int index, int elementId, bool& invokeListViewItemCallback)
+{
+
+}
+
+void
+TaskSelectorForm::OnListViewItemReordered(ListView& listView, int indexFrom, int indexTo)
+{
+
+}
+
+void
+TaskSelectorForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs)
+{
+ if (pArgs != null)
+ {
+ pArgs->RemoveAll(true);
+ delete pArgs;
+ }
+
+ const String* pSelectionMode = static_cast<CalendarApp*>(UiApp::GetInstance())->GetArgument(KEY_CALENDAR_SELECTION_MODE);
+ const String* pItemType = static_cast<CalendarApp*>(UiApp::GetInstance())->GetArgument(KEY_CALENDAR_ITEM_TYPE);
+ if (pSelectionMode != null && pItemType != null && pItemType->Equals(VALUE_CALENDAR_TODO_TYPE, false) == true)
+ {
+ if (pSelectionMode->Equals(VALUE_CALENDAR_MULTIPLE_SELECTION_MODE, false) == true)
+ {
+ __selectionType = TASK_SELECTOR_FORM_SELECTION_TYPE_MULTIPLE;
+
+ LoadAllTodos();
+ if (__pListViewContents != null)
+ {
+ __pListViewContents->UpdateList();
+ }
+ return;
+ }
+ else if (pSelectionMode->Equals(VALUE_CALENDAR_SINGLE_SELECTION_MODE, false) == true)
+ {
+ __selectionType = TASK_SELECTOR_FORM_SELECTION_TYPE_SINGLE;
+ GetFooter()->RemoveAllItems();
+
+ LoadAllTodos();
+ if (__pListViewContents != null)
+ {
+ __pListViewContents->UpdateList();
+ }
+ return;
+ }
+ }
+
+ SendAppControlResult(APP_CTRL_RESULT_FAILED);
+ UiApp::GetInstance()->Terminate();
+}
+
+void
+TaskSelectorForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
+{
+
+}
+
+void
+TaskSelectorForm::OnActionPerformed(const Control& source, int actionId)
+{
+ switch (actionId)
+ {
+ case IDA_TASK_SELECTOR_FORM_FOOTER_DONE:
+ result r = E_SUCCESS;
+ int index = 0;
+ LinkedList* pArgs = new (std::nothrow) LinkedList();
+ IEnumerator* pEnum = __pTasks->GetEnumeratorN();
+ while (pEnum->MoveNext() == E_SUCCESS)
+ {
+ if (__pListViewContents->IsItemChecked(index++) == true)
+ {
+ pArgs->Add(pEnum->GetCurrent());
+ }
+ }
+
+ r = SendAppControlResult(APP_CTRL_RESULT_SUCCEEDED, pArgs);
+ pArgs->RemoveAll(false);
+ delete pArgs;
+ TryCatch(r == E_SUCCESS, , "[%s] Unable to return result.", GetErrorMessage(r));
+
+ UiApp::GetInstance()->Terminate();
+ return;
+
+CATCH:
+ SendAppControlResult(APP_CTRL_RESULT_FAILED);
+ UiApp::GetInstance()->Terminate();
+ break;
+ }
+}
+
+Bitmap*
+TaskSelectorForm::CreateColorBarBitmapN(const Dimension& size, const Color& color)
+{
+ Bitmap* pBitmap = new (std::nothrow) Bitmap();
+ pBitmap->Construct(size, BITMAP_PIXEL_FORMAT_ARGB8888);
+
+ BufferInfo bufferinfo;
+ pBitmap->Lock(bufferinfo);
+
+ Canvas canvas;
+ canvas.Construct(bufferinfo);
+ canvas.SetBackgroundColor(color);
+ canvas.Clear();
+
+ pBitmap->Unlock();
+
+ return pBitmap;
+}
+
+Color
+TaskSelectorForm::GetCalendarColor(const RecordId& calendarId) const
+{
+ const Calendar* pCalendar = static_cast<const Calendar*>(__allCalendars.GetValue(Integer(calendarId)));
+ byte r;
+ byte g;
+ byte b;
+ pCalendar->GetColor(r, g, b);
+ return Color(r, g, b);
+}
+
+result
+TaskSelectorForm::LoadAllTodos(void)
+{
+ CalendarbookFilter todoFilter(CB_FI_TYPE_TODO);
+ IList* pList = __pCalendarbook->SearchN(todoFilter, TODO_FI_PR_START_DATE, SORT_ORDER_ASCENDING);
+ TryReturn(pList != null, E_FAILURE, "[E_FAILURE] Unable to get todos.");
+
+ if (__pTasks != null)
+ {
+ __pTasks->RemoveAll(true);
+ delete __pTasks;
+ }
+ __pTasks = pList;
+ return E_SUCCESS;
+}
+
+result
+TaskSelectorForm::SendAppControlResult(AppCtrlResult appControlResult, const IList* pResultList)
+{
+ CalendarApp* pApp = static_cast<CalendarApp*>(UiApp::GetInstance());
+ TryReturn(pApp != null, E_FAILURE, "[E_FAILURE] Unable to get app instance.");
+
+ HashMap* pArgs = null;
+ if (pResultList != null && pResultList->GetCount() > 0)
+ {
+ pArgs = new (std::nothrow) HashMap();
+ pArgs->Construct(2);
+ pArgs->Add(new (std::nothrow) String(KEY_CALENDAR_ITEM_TYPE), new (std::nothrow) String(VALUE_CALENDAR_TODO_TYPE));
+
+ String* pPath = new (std::nothrow) String(CalendarApp::GetExportVcsFilePath());
+ __pCalendarbook->ExportTodosToVcalendar(*pResultList, *pPath);
+ pArgs->Add(new (std::nothrow) String(KEY_CALENDAR_PATH), pPath);
+ }
+
+ result r = AppControlProviderManager::GetInstance()->SendAppControlResult(pApp->GetRequestId(), appControlResult, pArgs);
+ if (pArgs != null)
+ {
+ pArgs->RemoveAll(true);
+ delete pArgs;
+ }
+ AppLogDebugIf(r != E_SUCCESS, "[%s] Unable to return result.", GetErrorMessage(r));
+ return r;
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClThreeButtonPopup.cpp
+ * @brief This is the implementation file for the ThreeButtonPopup class.
+ */
+
+#include <new>
+#include <FBase.h>
+
+#include "ClThreeButtonPopup.h"
+#include "ClResourceManager.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Social;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+
+static const int IDA_EVENT_POPUP_CANCEL = 11905;
+
+ThreeButtonPopup::ThreeButtonPopup(ThreeButtonPopupStyle style)
+ : __style(style)
+ , __pTarget(null)
+ , __pEvent(null)
+{
+}
+
+ThreeButtonPopup::~ThreeButtonPopup(void)
+{
+}
+
+result
+ThreeButtonPopup::OnInitializing(void)
+{
+ Label* pTitle = dynamic_cast<Label*>(GetControl(L"IDC_LABEL"));
+ AppAssertf(pTitle != null, "[E_FAILURE] Unable to get label.");
+
+ Button* pButtonOnlyThis = dynamic_cast<Button*>(GetControl(L"IDC_BUTTON_ONLY_THIS_EVENT"));
+ AppAssertf(pButtonOnlyThis != null, "[E_FAILURE] Unable to get button.");
+ pButtonOnlyThis->AddActionEventListener(*this);
+
+ Button* pButtonAllEvents = dynamic_cast<Button*>(GetControl(L"IDC_BUTTON_ALL_EVENTS"));
+ AppAssertf(pButtonAllEvents != null, "[E_FAILURE] Unable to get button.");
+ pButtonAllEvents->AddActionEventListener(*this);
+
+ Button* pButtonCancel = dynamic_cast<Button*>(GetControl(L"IDC_BUTTON_CANCEL"));
+ AppAssertf(pButtonCancel != null, "[E_FAILURE] Unable to get button.");
+ pButtonCancel->SetActionId(IDA_EVENT_POPUP_CANCEL);
+ pButtonCancel->AddActionEventListener(*this);
+
+ if (__style == THREE_BUTTON_POPUP_STYLE_EDIT)
+ {
+ pTitle->SetText(ResourceManager::GetString(IDS_POPUP_EDIT_EVENT_QUESTION));
+ pButtonOnlyThis->SetActionId(IDA_EVENT_POPUP_ONLY_THIS_EVENT_EDIT);
+ pButtonAllEvents->SetActionId(IDA_EVENT_POPUP_ALL_REPETITIVE_EVENT_EDIT);
+ }
+ else if (__style == THREE_BUTTON_POPUP_STYLE_DELETE)
+ {
+ pTitle->SetText(ResourceManager::GetString(IDS_COM_POP_DELETE_Q));
+ pButtonOnlyThis->SetActionId(IDA_EVENT_POPUP_ONLY_THIS_EVENT_DELETE);
+ pButtonAllEvents->SetActionId(IDA_EVENT_POPUP_ALL_REPETITIVE_EVENT_DELETE);
+ }
+
+ return E_SUCCESS;
+}
+
+result
+ThreeButtonPopup::OnTerminating(void)
+{
+ return E_SUCCESS;
+}
+
+void
+ThreeButtonPopup::OnActionPerformed(const Control& source, int actionId)
+{
+ SetShowState(false);
+
+ if (actionId != IDA_EVENT_POPUP_CANCEL && __pTarget != null)
+ {
+ LinkedList* pArgs = null;
+ if (__pEvent != null)
+ {
+ pArgs = new (std::nothrow) LinkedList();
+ pArgs->Add(new (std::nothrow) CalEventInstance(*__pEvent));
+ }
+ __pTarget->SendUserEvent(actionId, pArgs);
+ }
+
+ delete this;
+}
+
+void
+ThreeButtonPopup::RequestThreeButtonPopup(ThreeButtonPopupStyle style, Control* pTarget, const CalEventInstance* pEvent)
+{
+ ThreeButtonPopup* pPopup = new (std::nothrow) ThreeButtonPopup(style);
+ pPopup->__pTarget = pTarget;
+ pPopup->__pEvent = pEvent;
+ pPopup->Construct(L"IDL_THREE_BUTTON_POPUP");
+ pPopup->Show();
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClTwoButtonPopup.cpp
+ * @brief This is the implementation file for the TwoButtonPopup class.
+ */
+
+#include <new>
+#include <FBase.h>
+
+#include "ClTwoButtonPopup.h"
+#include "ClResourceManager.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Social;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+
+static const int IDA_EVENT_POPUP_CANCEL = 10902;
+
+TwoButtonPopup::TwoButtonPopup(TwoButtonPopupStyle style)
+ : __style(style)
+ , __pTarget(null)
+ , __pEvent(null)
+{
+}
+
+TwoButtonPopup::~TwoButtonPopup(void)
+{
+}
+
+result
+TwoButtonPopup::OnInitializing(void)
+{
+ Label* pTitle = dynamic_cast<Label*>(GetControl(L"IDC_LABEL"));
+ AppAssertf(pTitle != null, "[E_FAILURE] Unable to get label.");
+ if (__style == TWO_BUTTON_POPUP_STYLE_REPEATED_EVENT)
+ {
+ pTitle->SetText(ResourceManager::GetString(IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT));
+ }
+ else
+ {
+ pTitle->SetText(ResourceManager::GetString(IDS_COM_POP_DELETE_Q));
+ }
+
+ Button* pButtonDone = dynamic_cast<Button*>(GetControl(L"IDC_BUTTON_DELETE"));
+ AppAssertf(pButtonDone != null, "[E_FAILURE] Unable to get button.");
+ pButtonDone->SetActionId(IDA_EVENT_POPUP_DELETE);
+ pButtonDone->AddActionEventListener(*this);
+
+ Button* pButtonCancel = dynamic_cast<Button*>(GetControl(L"IDC_BUTTON_CANCEL"));
+ AppAssertf(pButtonCancel != null, "[E_FAILURE] Unable to get button.");
+ pButtonCancel->SetActionId(IDA_EVENT_POPUP_CANCEL);
+ pButtonCancel->AddActionEventListener(*this);
+
+ return E_SUCCESS;
+}
+
+result
+TwoButtonPopup::OnTerminating(void)
+{
+ return E_SUCCESS;
+}
+
+void
+TwoButtonPopup::OnActionPerformed(const Control& source, int actionId)
+{
+ SetShowState(false);
+
+ if (actionId != IDA_EVENT_POPUP_CANCEL && __pTarget != null)
+ {
+ LinkedList* pArgs = null;
+ if (__pEvent != null)
+ {
+ pArgs = new (std::nothrow) LinkedList();
+ pArgs->Add(new (std::nothrow) CalEventInstance(*__pEvent));
+ }
+ __pTarget->SendUserEvent(actionId, pArgs);
+ }
+
+ delete this;
+}
+
+void
+TwoButtonPopup::RequestTwoButtonPopup(TwoButtonPopupStyle style, Control* pTarget, const CalEventInstance* pEvent)
+{
+ TwoButtonPopup* pPopup = new (std::nothrow) TwoButtonPopup(style);
+ pPopup->__pTarget = pTarget;
+ pPopup->__pEvent = pEvent;
+ pPopup->Construct(L"IDL_TWO_BUTTON_POPUP");
+ pPopup->Show();
+}
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClTypes.cpp
+ * @brief This is the implementation file for the Calendar application types.
+ */
+
+#include "ClTypes.h"
+
+//SceneId IDSCN_
+const wchar_t* IDSCN_YEAR = L"IDSCN_YEAR";
+const wchar_t* IDSCN_MONTH = L"IDSCN_MONTH";
+const wchar_t* IDSCN_DAY = L"IDSCN_DAY";
+const wchar_t* IDSCN_LIST = L"IDSCN_LIST";
+const wchar_t* IDSCN_CALENDAR_SETTINGS = L"IDSCN_CALENDAR_SETTINGS";
+const wchar_t* IDSCN_DAY_EVENT_LIST = L"IDSCN_DAY_EVENT_LIST";
+const wchar_t* IDSCN_EVENT_DETAILS = L"IDSCN_EVENT_DETAILS";
+const wchar_t* IDSCN_EVENT_DELETER = L"IDSCN_EVENT_DELETER";
+const wchar_t* IDSCN_EVENT_EDITOR = L"IDSCN_EVENT_EDITOR";
+const wchar_t* IDSCN_EVENT_SEARCHER = L"IDSCN_EVENT_SEARCHER";
+const wchar_t* IDSCN_EVENT_SELECTOR = L"IDSCN_EVENT_SELECTOR";
+const wchar_t* IDSCN_REMINDER = L"IDSCN_REMINDER";
+const wchar_t* IDSCN_REPEAT = L"IDSCN_REPEAT";
+const wchar_t* IDSCN_CALENDAR_LIST = L"IDSCN_CALENDAR_LIST";
+const wchar_t* IDSCN_TASK_SELECTOR = L"IDSCN_TASK_SELECTOR";
+const wchar_t* IDSCN_TASK_DETAILS = L"IDSCN_TASK_DETAILS";
+const wchar_t* IDSCN_SETTING = L"IDSCN_SETTING";
+
+//FormId IDC_FORM
+const wchar_t* IDC_MAIN_FORM = L"IDC_MAIN_FORM";
+const wchar_t* IDC_CALENDAR_SETTINGS_FORM = L"IDC_CALENDAR_SETTINGS_FORM";
+const wchar_t* IDC_CALENDAR_LIST_FORM = L"IDC_CALENDAR_LIST_FORM";
+const wchar_t* IDC_DAY_EVENT_LIST_FORM = L"IDC_DAY_EVENT_LIST_FORM";
+const wchar_t* IDC_EVENT_DETAILS_FORM = L"IDC_EVENT_DETAILS_FORM";
+const wchar_t* IDC_EVENT_DELETER_FORM = L"IDC_EVENT_DELETER_FORM";
+const wchar_t* IDC_EVENT_SELECTOR_FORM = L"IDC_EVENT_SELECTOR_FORM";
+const wchar_t* IDC_EVENT_EDITOR_FORM = L"IDC_EVENT_EDITOR_FORM";
+const wchar_t* IDC_EVENT_SEARCHER_FORM = L"IDC_EVENT_SEARCHER_FORM";
+const wchar_t* IDC_REMINDER_FORM = L"IDC_REMINDER_FORM";
+const wchar_t* IDC_REPEAT_FORM = L"IDC_REPEAT_FORM";
+const wchar_t* IDC_TASK_SELECTOR_FORM = L"IDC_TASK_SELECTOR_FORM";
+const wchar_t* IDC_TASK_DETAILS_FORM = L"IDC_TASK_DETAILS_FORM";
+const wchar_t* IDC_SETTING_FORM = L"IDC_SETTING_FORM";
+
+//PanelId IDC_PANEL
+const wchar_t* IDC_YEAR_PANEL = L"IDC_YEAR_PANEL";
+const wchar_t* IDC_MONTH_PANEL = L"IDC_MONTH_PANEL";
+const wchar_t* IDC_DAY_PANEL = L"IDC_DAY_PANEL";
+const wchar_t* IDC_LIST_PANEL = L"IDC_LIST_PANEL";
+
+//StringID IDS
+const wchar_t* IDS_CLD_BODY_YEAR = L"IDS_CLD_BODY_YEAR";
+const wchar_t* IDS_CLD_TAB4_MONTH = L"IDS_CLD_TAB4_MONTH";
+const wchar_t* IDS_CLD_BODY_DAY = L"IDS_CLD_BODY_DAY";
+const wchar_t* IDS_CLD_BODY_LIST = L"IDS_CLD_BODY_LIST";
+const wchar_t* IDS_CLD_SK3_DELETE = L"IDS_CLD_SK3_DELETE";
+const wchar_t* IDS_CLD_BUTTON_SEARCH = L"IDS_CLD_BUTTON_SEARCH";
+const wchar_t* IDS_COM_SK4_SHARE = L"IDS_COM_SK4_SHARE";
+const wchar_t* IDS_CLD_BODY_CALENDAR = L"IDS_CLD_BODY_CALENDAR";
+const wchar_t* IDS_CLD_HEADER_CREATE_EVENT = L"IDS_CLD_HEADER_CREATE_EVENT";
+const wchar_t* IDS_CLD_HEADER_EDIT_EVENT = L"IDS_CLD_HEADER_EDIT_EVENT";
+const wchar_t* IDS_CLD_BODY_ALL_CALENDAR = L"IDS_CLD_BODY_ALL_CALENDAR";
+const wchar_t* IDS_CLD_BODY_NO_TITLE = L"IDS_CLD_BODY_NO_TITLE";
+const wchar_t* IDS_CLD_BODY_ALL_DAY = L"IDS_CLD_BODY_ALL_DAY";
+const wchar_t* IDS_CLD_BODY_NO_EVENTS = L"IDS_CLD_BODY_NO_EVENTS";
+const wchar_t* IDS_CLD_SK3_EDIT = L"IDS_CLD_SK3_EDIT";
+const wchar_t* IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY = L"IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY";
+const wchar_t* IDS_CLD_MBODY_ALL_THIS_YEAR = L"IDS_CLD_MBODY_ALL_THIS_YEAR";
+const wchar_t* IDS_CLD_BODY_ALL_THIS_MONTH = L"IDS_CLD_BODY_ALL_THIS_MONTH";
+const wchar_t* IDS_CLD_BODY_ALL_THIS_DAY = L"IDS_CLD_BODY_ALL_THIS_DAY";
+const wchar_t* IDS_CLD_BODY_REMINDER = L"IDS_CLD_BODY_REMINDER";
+const wchar_t* IDS_CLD_BODY_REPEAT = L"IDS_CLD_BODY_REPEAT";
+const wchar_t* IDS_ST_BODY_SAVE_TO = L"IDS_ST_BODY_SAVE_TO";
+const wchar_t* IDS_CLD_BODY_TITLE = L"IDS_CLD_BODY_TITLE";
+const wchar_t* IDS_CLD_BODY_LOCATION = L"IDS_CLD_BODY_LOCATION";
+const wchar_t* IDS_CLD_BODY_TIME_ZONE = L"IDS_CLD_BODY_TIME_ZONE";
+const wchar_t* IDS_CLD_BODY_CREATE_DESCRIPTION = L"IDS_CLD_BODY_CREATE_DESCRITION";
+const wchar_t* IDS_CLD_BODY_OFF = L"IDS_CLD_BODY_OFF";
+const wchar_t* IDS_CLD_BODY_ON_TIME = L"IDS_CLD_BODY_ON_TIME";
+const wchar_t* IDS_CLD_BODY_5_MIN_BEFORE = L"IDS_CLD_BODY_5_MIN_BEFORE";
+const wchar_t* IDS_CLD_OPT_15_MINS_BEFORE = L"IDS_CLD_OPT_15_MINS_BEFORE";
+const wchar_t* IDS_CLD_BODY_1_HOUR_BEFORE = L"IDS_CLD_BODY_1_HOUR_BEFORE";
+const wchar_t* IDS_CLD_BODY_1_DAY_BEFORE = L"IDS_CLD_BODY_1_DAY_BEFORE";
+const wchar_t* IDS_CLD_BODY_2_DAYS_BEFORE = L"IDS_CLD_BODY_2_DAYS_BEFORE";
+const wchar_t* IDS_CLD_BODY_1_WEEK_BEFORE = L"IDS_CLD_BODY_1_WEEK_BEFORE";
+const wchar_t* IDS_CLD_BODY_BEFORE_LC = L"IDS_CLD_BODY_BEFORE_LC";
+const wchar_t* IDS_CLD_BODY_EVERY_DAY_ATNT = L"IDS_CLD_BODY_EVERY_DAY_ATNT";
+const wchar_t* IDS_CLD_BODY_EVERY_3_DAYS = L"IDS_CLD_BODY_EVERY_3_DAYS";
+const wchar_t* IDS_CLD_BODY_EVERY_WEEK = L"IDS_CLD_BODY_EVERY_WEEK";
+const wchar_t* IDS_CLD_BODY_EVERY_2_WEEKS = L"IDS_CLD_BODY_EVERY_2_WEEKS";
+const wchar_t* IDS_CLD_BODY_EVERY_MONTH = L"IDS_CLD_BODY_EVERY_MONTH";
+const wchar_t* IDS_CLD_BODY_EVERY_YEAR = L"IDS_CLD_BODY_EVERY_YEAR";
+const wchar_t* IDS_CLD_BODY_REPEAT_UNTIL = L"IDS_CLD_BODY_REPEAT_UNTIL";
+const wchar_t* IDS_CLD_BODY_NONE = L"IDS_CLD_BODY_NONE";
+const wchar_t* IDS_COM_POP_TIMES_LC = L"IDS_COM_POP_TIMES_LC";
+const wchar_t* IDS_CLD_BODY_REPEAT_WARNING = L"IDS_CLD_BODY_REPEAT_WARNING";
+const wchar_t* IDS_COM_BODY_SELECT_ALL = L"IDS_COM_BODY_SELECT_ALL";
+const wchar_t* IDS_CLD_SK_SAVE = L"IDS_CLD_SK_SAVE";
+const wchar_t* IDS_CLD_SK_CANCEL = L"IDS_CLD_SK_CANCEL";
+const wchar_t* IDS_EMAIL_OPT_ADD_TO_CALENDAR = L"IDS_EMAIL_OPT_ADD_TO_CALENDAR";
+const wchar_t* IDS_CLD_BODY_DUE_DATE = L"IDS_CLD_BODY_DUE_DATE";
+const wchar_t* IDS_CLD_BODY_PRIORITY = L"IDS_CLD_BODY_PRIORITY";
+const wchar_t* IDS_COM_BODY_LOW = L"IDS_COM_BODY_LOW";
+const wchar_t* IDS_COM_BODY_HIGH = L"IDS_COM_BODY_HIGH";
+const wchar_t* IDS_COM_BODY_PD_SELECTED = L"IDS_COM_BODY_PD_SELECTED";
+const wchar_t* IDS_CLD_POP_ALL_REPETITIVE_EVENTS = L"IDS_CLD_POP_ALL_REPETITIVE_EVENTS";
+const wchar_t* IDS_COM_POP_DELETE_Q = L"IDS_COM_POP_DELETE_Q";
+const wchar_t* IDS_CLD_BODY_ONLY_THIS_EVENT = L"IDS_CLD_BODY_ONLY_THIS_EVENT";
+const wchar_t* IDS_CLD_OPT_SENDVIA_EMAIL = L"IDS_CLD_OPT_SENDVIA_EMAIL";
+const wchar_t* IDS_CLD_OPT_MESSAGE_SEND_VIA = L"IDS_CLD_OPT_MESSAGE_SEND_VIA";
+const wchar_t* IDS_COM_BODY_BLUETOOTH = L"IDS_COM_BODY_BLUETOOTH";
+const wchar_t* IDS_COM_BODY_NFC = L"IDS_COM_BODY_NFC";
+const wchar_t* IDS_COM_OPT1_WI_FI_DIRECT = L"IDS_COM_OPT1_WI_FI_DIRECT";
+const wchar_t* IDS_COM_POP_AM_M_ABB = L"IDS_COM_POP_AM_M_ABB";
+const wchar_t* IDS_COM_POP_PM_M_ABB = L"IDS_COM_POP_PM_M_ABB";
+const wchar_t* IDS_CLD_MBODY_LOCK_TIME_ZONE = L"IDS_CLD_MBODY_LOCK_TIME_ZONE";
+const wchar_t* IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG = L"IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG";
+const wchar_t* IDS_CLD_BODY_IMPORT_EVENTS_EVENTS_TASKS_ABB = L"IDS_CLD_BODY_IMPORT_EVENTS_EVENTS_TASKS_ABB";
+const wchar_t* IDS_CLD_BODY_EXPORT_EVENTS_EVENTS_TASKS_ABB = L"IDS_CLD_BODY_EXPORT_EVENTS_EVENTS_TASKS_ABB";
+const wchar_t* IDS_COM_POP_SAVING_FAILED = L"IDS_COM_POP_SAVING_FAILED";
+
+const wchar_t* IDS_MONTH_VIEW_LIST_TO = L"IDS_MONTH_VIEW_LIST_TO";
+const wchar_t* IDS_EVENT_DETAILS_TO = L"IDS_EVENT_DETAILS_TO";
+
+const wchar_t* IDS_DAY_VIEW_ALL_DAY_EVENT = L"IDS_DAY_VIEW_ALL_DAY_EVENT";
+const wchar_t* IDS_LIST_VIEW_TAP_VIEW_BEFORE = L"IDS_LIST_VIEW_TAP_VIEW_BEFORE";
+const wchar_t* IDS_LIST_VIEW_TAP_VIEW_AFTER = L"IDS_LIST_VIEW_TAP_VIEW_AFTER";
+const wchar_t* IDS_EVENT_EDITOR_FROM = L"IDS_EVENT_EDITOR_FROM";
+const wchar_t* IDS_EVENT_EDITOR_TO = L"IDS_EVENT_EDITOR_TO";
+const wchar_t* IDS_EVENT_EDITOR_ALL_DAY_EVENT = L"IDS_EVENT_EDITOR_ALL_DAY_EVENT";
+const wchar_t* IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE = L"IDS_REMINDER_CUSTOM_TIME_UNIT_MINUTE";
+const wchar_t* IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR = L"IDS_REMINDER_CUSTOM_TIME_UNIT_HOUR";
+const wchar_t* IDS_REMINDER_CUSTOM_TIME_UNIT_DAY = L"IDS_REMINDER_CUSTOM_TIME_UNIT_DAY";
+const wchar_t* IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK = L"IDS_REMINDER_CUSTOM_TIME_UNIT_WEEK";
+const wchar_t* IDS_REMINDER_YEAR_BEFORE = L"IDS_REMINDER_YEAR_BEFORE";
+const wchar_t* IDS_REMINDER_MONTH_BEFORE = L"IDS_REMINDER_MONTH_BEFORE";
+const wchar_t* IDS_REMINDER_WEEK_BEFORE = L"IDS_REMINDER_WEEK_BEFORE";
+const wchar_t* IDS_REMINDER_DAY_BEFORE = L"IDS_REMINDER_DAY_BEFORE";
+const wchar_t* IDS_REMINDER_HOUR_BEFORE = L"IDS_REMINDER_HOUR_BEFORE";
+const wchar_t* IDS_REMINDER_MINUTE_BEFORE = L"IDS_REMINDER_MINUTE_BEFORE";
+const wchar_t* IDS_REPEAT_EVERY_DAY = L"IDS_REPEAT_EVERY_DAY";
+const wchar_t* IDS_REPEAT_EVERY_WEEK = L"IDS_REPEAT_EVERY_WEEK";
+const wchar_t* IDS_REPEAT_EVERY_MONTH = L"IDS_REPEAT_EVERY_MONTH";
+const wchar_t* IDS_REPEAT_EVERY_YEAR = L"IDS_REPEAT_EVERY_YEAR";
+const wchar_t* IDS_REPEAT_EVERY_N_DAYS = L"IDS_REPEAT_EVERY_N_DAYS";
+const wchar_t* IDS_REPEAT_EVERY_N_WEEKS = L"IDS_REPEAT_EVERY_N_WEEKS";
+const wchar_t* IDS_REPEAT_EVERY_N_MONTHS = L"IDS_REPEAT_EVERY_N_MONTHS";
+const wchar_t* IDS_REPEAT_EVERY_N_YEARS = L"IDS_REPEAT_EVERY_N_YEARS";
+const wchar_t* IDS_TASK_PRIORITY_MIDDLE = L"IDS_TASK_PRIORITY_MIDDLE";
+const wchar_t* IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT = L"IDS_POPUP_DELETE_MULTIPLE_REPEATED_EVENT";
+const wchar_t* IDS_POPUP_EDIT_EVENT_QUESTION = L"IDS_POPUP_EDIT_EVENT_QUESTION";
+
+//bitmap ID
+const wchar_t* IDB_ALL_DAY_EVENT_LIST_EXPAND_CLOSED = L"P01_all_day_event_list_expand_closed.png";
+const wchar_t* IDB_ALL_DAY_EVENT_LIST_EXPAND_CLOSED_PRESS = L"P01_all_day_event_list_expand_closed_press.png";
+const wchar_t* IDB_ALL_DAY_EVENT_LIST_EXPAND_OPENED = L"P01_all_day_event_list_expand_opened.png";
+const wchar_t* IDB_ALL_DAY_EVENT_LIST_EXPAND_OPENED_PRESS = L"P01_all_day_event_list_expand_opened_press.png";
+const wchar_t* IDB_DAY_CURRENT_TIME = L"P01_day_current_time.png";
+const wchar_t* IDB_DAY_EVENT_MORE = L"P01_day_event_bg_more.png";
+const wchar_t* IDB_DAY_EVENT_MORE_ARROW = L"P01_day_event_bg_more_arrow.png";
+const wchar_t* IDB_DAY_VIEW_TIME_LINE = L"P01_day_view_time_line.png";
+const wchar_t* IDB_DAY_VIEW_TIME_LINE_PRESS = L"P01_day_view_time_line_press.png";
+
+const wchar_t* IDB_LIST_ICON_ALARM = L"P01_list_icon_alarm.png";
+const wchar_t* IDB_LIST_ICON_DESCRIPTION = L"P01_list_icon_description.png";
+const wchar_t* IDB_LIST_ICON_FACEBOOK = L"P01_list_icon_facebook.png";
+const wchar_t* IDB_LIST_ICON_MAP = L"P01_list_icon_map.png";
+const wchar_t* IDB_LIST_ICON_PRIORITY = L"P01_list_icon_priority.png";
+const wchar_t* IDB_LIST_ICON_PRIORITY_LOW = L"P01_list_icon_priority_low.png";
+const wchar_t* IDB_LIST_ICON_REMINDER = L"P01_list_icon_reminder.png";
+const wchar_t* IDB_LIST_ICON_REPEAT = L"P01_list_icon_repeat.png";
+
+const wchar_t* IDB_TASK_EVENT_COMPLETION_PRESS = L"P01_Task_event_completion_press.png";
+
+const wchar_t* IDB_ICON_ALARM_64X64 = L"P01_icon_alarm_64x64.png";
+const wchar_t* IDB_MONTH_VIEW_DAY_EVENT = L"P01_month view_day_event.png";
+const wchar_t* IDB_MONTH_VIEW_DAY_FOCUS = L"P01_month view_day_focus.png";
+const wchar_t* IDB_MONTH_VIEW_TODAY = L"P01_month view_Today.png";
+const wchar_t* IDB_MONTH_VIEW_TODAY_FOCUS = L"P01_month view_Today_focus.png";
+
+const wchar_t* IDB_YEAR_DAY_FOCUS = L"P01_year_day_focus.png";
+const wchar_t* IDB_YEAR_MONTH_FOCUS = L"P01_year_month_focus.png";
+
+//const wchar_t* IDB_BUTTON_DELETE = L"00_button_delete.png";
+//const wchar_t* IDB_BUTTON_DELETE_PRESS = L"00_button_delete_press.png";
+const wchar_t* IDB_BUTTON_MINUS = L"00_button_expand_minus_web.png";
+const wchar_t* IDB_BUTTON_MINUS_PRESS = L"00_button_expand_minus_press_web.png";
+const wchar_t* IDB_BUTTON_PLUS = L"00_button_plus_web.png";
+const wchar_t* IDB_BUTTON_PLUS_PRESS = L"00_button_plus_press_web.png";
+const wchar_t* IDB_CIRCLE_BUTTON = L"00_circle_button.png";
+const wchar_t* IDB_CIRCLE_BUTTON_PRESS = L"00_circle_button_press.png";
+const wchar_t* IDB_CIRCLE_BUTTON_DELETE = L"00_circle_button_delete.png";
+const wchar_t* IDB_CIRCLE_BUTTON_DELETE_PRESS = L"00_circle_button_delete_press.png";
+
+const wchar_t* IDB_BLANK = L"P01_blank.png";
+const wchar_t* IDB_LIST_VIEW_NO_CONTENTS_TEXT = L"00_Nocontents_text.png";
+
+const wchar_t* IDB_FORM_BACK = L"00_icon_Back_02.png";
+const wchar_t* IDB_FORM_BACK_PRESS = L"00_icon_Back_02_press.png";
+
+//etc
+const wchar_t* ID_OPERATION_CONFIG = L"http://tizen.org/appcontrol/operation/configure";
+const wchar_t* ID_OPERATION_MAIN = L"http://tizen.org/appcontrol/operation/main";
+const wchar_t* ID_OPERATION_PICK = L"http://tizen.org/appcontrol/operation/pick";
+const wchar_t* ID_OPERATION_VIEW = L"http://tizen.org/appcontrol/operation/view";
+
+const wchar_t* KEY_CALENDAR_EVENT_ID = L"eventId";
+const wchar_t* KEY_CALENDAR_TODO_ID = L"todoId";
+const wchar_t* KEY_CALENDAR_ITEM_TYPE = L"itemType";
+const wchar_t* KEY_CALENDAR_VIEW_TYPE = L"viewType";
+const wchar_t* KEY_CALENDAR_SELECTION_MODE = L"selectionMode";
+const wchar_t* KEY_CALENDAR_PATH = L"path";
+const wchar_t* KEY_NOTIFICATION_MANAGER_APP_MESSAGE = L"http://tizen.org/appcontrol/data/notification";
+const wchar_t* KEY_SYSTEM_24_HOUR_NOTATION_ENABLED = L"http://tizen.org/setting/locale.time.format.24hour";
+const wchar_t* KEY_SYSTEM_COUNTRY = L"http://tizen.org/setting/locale.country";
+const wchar_t* KEY_SYSTEM_FIRST_DAY_OF_WEEK = L"http://tizen.org/setting/locale.week.format.firstday";
+const wchar_t* KEY_SYSTEM_LANGUAGE = L"http://tizen.org/setting/locale.language";
+const wchar_t* KEY_SYSTEM_TIME_FORMAT = L"http://tizen.org/setting/locale.time.format";
+const wchar_t* KEY_SYSTEM_TIME_ZONE = L"http://tizen.org/setting/locale.time_zone";
+
+const wchar_t* VALUE_CALENDAR_EVENT_TYPE = L"event";
+const wchar_t* VALUE_CALENDAR_TODO_TYPE = L"todo";
+const wchar_t* VALUE_CALENDAR_VCS_TYPE = L"vcs";
+const wchar_t* VALUE_CALENDAR_SINGLE_SELECTION_MODE = L"single";
+const wchar_t* VALUE_CALENDAR_MULTIPLE_SELECTION_MODE = L"multiple";
+
+const wchar_t* VCS_EXPORT_PATH = L"/tmp/Cl%d%02d%02d%02d%02d%02d.vcs";
--- /dev/null
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.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://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file ClYearPanel.cpp
+ * @brief This is the implementation file for the YearPanel class.
+ */
+
+#include <new>
+#include <FLocales.h>
+#include "ClEventListPresentationModel.h"
+#include "ClGoToDatePopup.h"
+#include "ClMainForm.h"
+#include "ClPanningAnimationManager.h"
+#include "ClResourceManager.h"
+#include "ClTypes.h"
+#include "ClYearPanel.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Base::Runtime;
+using namespace Tizen::Graphics;
+using namespace Tizen::Locales;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Animations;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+static const unsigned int COLOR_BLANK_BACKGROUND = Color32<0, 0, 0, 0>::Value;
+static const int COUNT_CALENDAR_COL = 3;
+static const int W_CALENDAR_MARGIN = 15;
+static const int H_CALENDAR = 892;
+static const unsigned int COLOR_CALENDAR_BACKGROUND = Color32<248, 246, 239>::Value;
+static const int W_MONTH_CALENDAR = 230;
+static const int H_MONTH_CALENDAR = 223;
+static const int X_MONTH_TITLE = 11;
+static const int Y_MONTH_TITLE = 4;
+static const int W_MONTH_TITLE = 208;
+static const int H_MONTH_TITLE = 28;
+static const int FONT_SIZE_MONTH_TITLE = 22;
+static const unsigned int COLOR_MONTH_TITLE = Color32<94, 93, 93>::Value;
+static const int X_MONTH_TITLE_DIVIDER = 11;
+static const int Y_MONTH_TITLE_DIVIDER = 32;
+static const int W_MONTH_TITLE_DIVIDER = 208;
+static const int H_MONTH_TITLE_DIVIDER = 1;
+static const unsigned int COLOR_MONTH_TITLE_DIVIDER = Color32<0, 0, 0>::Value;
+static const int X_WEEK = 11;
+static const int Y_WEEK = 33;
+static const int W_WEEK = 28;
+static const int W_WEEK_MARGIN = 2;
+static const int H_WEEK = 20;
+static const int FONT_SIZE_WEEK = 12;
+static const unsigned int COLOR_WEEK = Color32<90, 90, 90>::Value;
+static const unsigned int COLOR_WEEK_SUN = Color32<90, 90, 90>::Value;
+static const int X_DAY = 11;
+static const int Y_DAY = 57;
+static const int W_DAY = 28;
+static const int W_DAY_MARGIN = 2;
+static const int H_DAY = 26;
+static const int FONT_SIZE_DAY = 18;
+static const unsigned int COLOR_DAY = Color32<0, 0, 0>::Value;
+static const unsigned int COLOR_DAY_SUN = Color32<156, 11, 11>::Value;
+static const unsigned int COLOR_DAY_FOCUS = Color32<189, 215, 231>::Value;
+
+static const int COUNT_OF_MONTH = 12;
+static const int COUNT_OF_WEEK = 7;
+
+class CalendarPanel
+ : public Panel
+ , public virtual IActionEventListener
+{
+public:
+ const DateTime& GetDate(void) const;
+ result Initialize(const Rectangle& bounds, const DateTime& date,
+ Bitmap** pWeekText, Bitmap** pWeekdayText, Bitmap** pHolidayText, Bitmap* pFocus);
+ void SetDate(const DateTime& date);
+ void SetDateFocusEventListener(IDateFocusEventListener& listener);
+ void SetFocusEnabled(bool enable = true);
+
+ void SetPanningAnimationManager(PanningAnimationManager& manager);
+
+ CalendarPanel(void);
+ virtual ~CalendarPanel(void);
+
+ virtual void OnClearBackground(void);
+ virtual result OnInitializing(void);
+ virtual result OnTerminating(void);
+
+ virtual void OnActionPerformed(const Control& source, int actionId);
+
+private:
+ DateTime __date;
+ IDateFocusEventListener* __pDateFocusEventListener;
+ PanningAnimationManager* __pPanningAnimationManager;
+ Button* __pMonthCalendars[COUNT_OF_MONTH];
+ Bitmap** __pBitmapWeekText;
+ Bitmap** __pBitmapWeekdayText;
+ Bitmap** __pBitmapHolidayText;
+ Bitmap* __pBitmapFocus;
+ bool __focusEnabled;
+};
+
+CalendarPanel::CalendarPanel(void)
+ : __pDateFocusEventListener(null)
+ , __pPanningAnimationManager(null)
+ , __pBitmapWeekText(null)
+ , __pBitmapWeekdayText(null)
+ , __pBitmapHolidayText(null)
+ , __pBitmapFocus(null)
+ , __focusEnabled(false)
+{
+}
+
+CalendarPanel::~CalendarPanel(void)
+{
+ if (__pPanningAnimationManager != null)
+ {
+ RemoveTouchEventListener(*__pPanningAnimationManager);
+ RemoveGestureDetector(*__pPanningAnimationManager);
+ for (int month = 0; month < COUNT_OF_MONTH; ++month)
+ {
+ __pMonthCalendars[month]->RemoveTouchEventListener(*__pPanningAnimationManager);
+ __pMonthCalendars[month]->RemoveGestureDetector(*__pPanningAnimationManager);
+ }
+ }
+}
+
+const DateTime&
+CalendarPanel::GetDate(void) const
+{
+ return __date;
+}
+
+result
+CalendarPanel::Initialize(const Rectangle& bounds, const DateTime& date,
+ Bitmap** pWeekText, Bitmap** pWeekdayText, Bitmap** pHolidayText, Bitmap* pFocus)
+{
+ __date = date;
+ __pBitmapWeekText = pWeekText;
+ __pBitmapWeekdayText = pWeekdayText;
+ __pBitmapHolidayText = pHolidayText;
+ __pBitmapFocus = pFocus;
+
+ return Construct(bounds);
+}
+
+void
+CalendarPanel::SetDate(const DateTime& date)
+{
+ if (__focusEnabled == true && (date.GetYear() != __date.GetYear() || date.GetMonth() != __date.GetMonth()))
+ {
+ __pMonthCalendars[__date.GetMonth() - 1]->SetNormalBackgroundBitmap(*ResourceManager::GetBlankBitmap());
+ __pMonthCalendars[__date.GetMonth() - 1]->Invalidate(false);
+ __pMonthCalendars[date.GetMonth() - 1]->SetNormalBackgroundBitmap(*__pBitmapFocus);
+ __pMonthCalendars[date.GetMonth() - 1]->Invalidate(false);
+ }
+ __date = date;
+}
+
+void
+CalendarPanel::SetDateFocusEventListener(IDateFocusEventListener& listener)
+{
+ __pDateFocusEventListener = &listener;
+}
+
+void
+CalendarPanel::SetFocusEnabled(bool enable)
+{
+ if (__focusEnabled != enable)
+ {
+ __focusEnabled = enable;
+ if (__focusEnabled == true)
+ {
+ __pMonthCalendars[__date.GetMonth() - 1]->SetNormalBackgroundBitmap(*__pBitmapFocus);
+ }
+ else
+ {
+ __pMonthCalendars[__date.GetMonth() - 1]->SetNormalBackgroundBitmap(*ResourceManager::GetBlankBitmap());
+ }
+ __pMonthCalendars[__date.GetMonth() - 1]->Invalidate(false);
+ }
+}
+
+void
+CalendarPanel::SetPanningAnimationManager(PanningAnimationManager& manager)
+{
+ __pPanningAnimationManager = &manager;
+ AddTouchEventListener(manager);
+ AddGestureDetector(manager);
+ for (int month = 0; month < COUNT_OF_MONTH; ++month)
+ {
+ __pMonthCalendars[month]->AddTouchEventListener(manager);
+ __pMonthCalendars[month]->AddGestureDetector(manager);
+ }
+}
+
+void
+CalendarPanel::OnClearBackground(void)
+{
+ Canvas* pCanvas = GetCanvasN();
+
+ pCanvas->SetBackgroundColor(Color(COLOR_CALENDAR_BACKGROUND));
+ pCanvas->Clear();
+
+ int firstDayOfWeek = EventListPresentationModel::GetFirstDayOfWeek();
+ DateTime today = EventListPresentationModel::GetToday();
+ int hMargin = (GetHeight() - H_CALENDAR) >> 1;
+ for (int month = 1; month <= COUNT_OF_MONTH; ++month)
+ {
+ DateTime pointer;
+ pointer.SetValue(__date.GetYear(), month, 1);
+ Rectangle monthCalendarBounds(W_CALENDAR_MARGIN + (month - 1) % COUNT_CALENDAR_COL * W_MONTH_CALENDAR,
+ hMargin + (month - 1) / COUNT_CALENDAR_COL * H_MONTH_CALENDAR,
+ W_MONTH_CALENDAR, H_MONTH_CALENDAR);
+
+ // Draw month title
+ EnrichedText* pTextMonthTitle = new (std::nothrow) EnrichedText();
+ pTextMonthTitle->Construct(Dimension(W_MONTH_TITLE, H_MONTH_TITLE));
+ pTextMonthTitle->SetHorizontalAlignment(TEXT_ALIGNMENT_CENTER);
+ pTextMonthTitle->SetVerticalAlignment(TEXT_ALIGNMENT_MIDDLE);
+
+ TextElement* pTextElement = new (std::nothrow) TextElement();
+ pTextElement->Construct(ResourceManager::GetMonthString(month));
+
+ Font font;
+ font.Construct(FONT_STYLE_PLAIN, FONT_SIZE_MONTH_TITLE);
+ pTextElement->SetFont(font);
+ pTextElement->SetTextColor(Color(COLOR_MONTH_TITLE));
+
+ pTextMonthTitle->Add(*pTextElement);
+ pCanvas->DrawText(Point(monthCalendarBounds.x + X_MONTH_TITLE, monthCalendarBounds.y + Y_MONTH_TITLE), *pTextMonthTitle);
+
+ pTextMonthTitle->RemoveAll(true);
+ delete pTextMonthTitle;
+
+ // Draw week
+ for (int week = 0; week < COUNT_OF_WEEK; ++week)
+ {
+ Bitmap* pBitmap = __pBitmapWeekText[(week + firstDayOfWeek) % COUNT_OF_WEEK];
+ if (pBitmap != null)
+ {
+ pCanvas->DrawBitmap(Rectangle(monthCalendarBounds.x + X_WEEK + (W_WEEK + W_WEEK_MARGIN) * week,
+ monthCalendarBounds.y + Y_WEEK, W_WEEK, H_WEEK),
+ *pBitmap);
+ }
+ }
+
+ // Draw lines
+ pCanvas->FillRectangle(Color(COLOR_MONTH_TITLE_DIVIDER),
+ Rectangle(monthCalendarBounds.x + X_MONTH_TITLE_DIVIDER,
+ monthCalendarBounds.y + Y_MONTH_TITLE_DIVIDER, W_MONTH_TITLE_DIVIDER, H_MONTH_TITLE_DIVIDER));
+
+ // Draw days
+ int row = 0;
+ Calendar* pCalendar = Calendar::CreateInstanceN();
+ pCalendar->SetTime(__date.GetYear(), month, 1);
+ int col = pCalendar->GetTimeField(TIME_FIELD_DAY_OF_WEEK) - 1 - firstDayOfWeek;
+ delete pCalendar;
+ if (col < 0)
+ {
+ col += COUNT_OF_WEEK;
+ }
+ while (pointer.GetMonth() == month)
+ {
+ while (col < COUNT_OF_WEEK && pointer.GetMonth() == month)
+ {
+ Rectangle drawRect(monthCalendarBounds.x + X_DAY + (W_DAY + W_DAY_MARGIN) * col,
+ monthCalendarBounds.y + Y_DAY + H_DAY * row, W_DAY, H_DAY);
+ Bitmap* pTextDay = null;
+ switch ((col + firstDayOfWeek) % COUNT_OF_WEEK)
+ {
+ case 0: // Sunday
+ pTextDay = __pBitmapHolidayText[pointer.GetDay() - 1];
+ break;
+ case 6: // Saturday
+ pTextDay = __pBitmapWeekdayText[pointer.GetDay() - 1];
+ break;
+ default: // Weekdays
+ pTextDay = __pBitmapWeekdayText[pointer.GetDay() - 1];
+ break;
+ }
+
+ if (EventListPresentationModel::IsSameDay(today, pointer) == true)
+ {
+ Bitmap* pBitmapFocus = ResourceManager::GetBitmapN(IDB_YEAR_DAY_FOCUS);
+ pCanvas->DrawBitmap(drawRect, *pBitmapFocus);
+ delete pBitmapFocus;
+ }
+ if (pTextDay != null)
+ {
+ pCanvas->DrawBitmap(drawRect, *pTextDay);
+ }
+
+ ++col;
+ pointer.AddDays(1);
+ }
+ col = 0;
+ ++row;
+ }
+ }
+ delete pCanvas;
+}
+
+result
+CalendarPanel::OnInitializing(void)
+{
+ int hMargin = (GetHeight() - H_CALENDAR) >> 1;
+ for (int month = 0; month < COUNT_OF_MONTH; ++month)
+ {
+ __pMonthCalendars[month] = new (std::nothrow) Button();
+ __pMonthCalendars[month]->Construct(Rectangle(W_CALENDAR_MARGIN + month % COUNT_CALENDAR_COL * W_MONTH_CALENDAR,
+ hMargin + month / COUNT_CALENDAR_COL * H_MONTH_CALENDAR,
+ W_MONTH_CALENDAR, H_MONTH_CALENDAR), L"");
+
+ __pMonthCalendars[month]->SetNormalBackgroundBitmap(*ResourceManager::GetBlankBitmap());
+ __pMonthCalendars[month]->SetPressedBackgroundBitmap(*__pBitmapFocus);
+ __pMonthCalendars[month]->SetHighlightedBackgroundBitmap(*__pBitmapFocus);
+ __pMonthCalendars[month]->SetActionId(month + 1);
+ __pMonthCalendars[month]->AddActionEventListener(*this);
+ AddControl(*__pMonthCalendars[month]);
+ }
+ return E_SUCCESS;
+}
+
+result
+CalendarPanel::OnTerminating(void)
+{
+ return E_SUCCESS;
+}
+
+void
+CalendarPanel::OnActionPerformed(const Control& source, int actionId)
+{
+ DateTime date = __date;
+ date.AddMonths(actionId - date.GetMonth());
+ SetDate(date);
+ if (__pDateFocusEventListener != null)
+ {
+ __pDateFocusEventListener->OnDateFocused(date);
+ }
+}
+
+YearPanel::YearPanel(void)
+ : __pPm(null)
+ , __pPanningAnimationManager(null)
+ , __pBitmapFocus(null)
+{
+ memset((void *)__pPanelYearCalendar, 0, sizeof(Panel*) * VIEW_SCROLL_EFFECT_COUNT);
+ memset((void *)__pBitmapWeekText, 0, sizeof(Bitmap*) * YEAR_PANEL_COUNT_OF_WEEK);
+ memset((void *)__pBitmapWeekdayText, 0, sizeof(Bitmap*) * YEAR_PANEL_COUNT_OF_DAY);
+ memset((void *)__pBitmapHolidayText, 0, sizeof(Bitmap*) * YEAR_PANEL_COUNT_OF_DAY);
+}
+
+YearPanel::~YearPanel(void)
+{
+}
+
+result
+YearPanel::Initialize(void)
+{
+ static const int _MIN_SIZE = 1;
+ return Construct(Rectangle(0, 0, _MIN_SIZE, _MIN_SIZE));
+}
+
+result
+YearPanel::OnInitializing(void)
+{
+ __pPm = EventListPresentationModel::GetInstance();
+
+ result r = CreateBitmapElements();
+ TryReturn(r == E_SUCCESS, r, "[%s] Unable to create bitmap resources.", GetErrorMessage(r));
+
+ Form* pForm = dynamic_cast<Form*>(GetParent());
+ AppAssertf(pForm != null, "[E_FAILURE] Unable to get Form.");
+
+ Rectangle bounds = pForm->GetClientAreaBounds();
+ bounds.x = 0;
+ bounds.y = 0;
+ SetBounds(bounds);
+
+ // Create panning animation manager
+ __pPanningAnimationManager = new (std::nothrow) PanningAnimationManager();
+ __pPanningAnimationManager->Initialize(*this);
+ __pPanningAnimationManager->SetControlAnimatorEventListener(*this);
+
+ // Create month calendars.
+ CalendarPanel* pCalendarPanel = new (std::nothrow) CalendarPanel();
+ pCalendarPanel->Initialize(bounds, __pPm->GetCurrentDate(), __pBitmapWeekText, __pBitmapWeekdayText, __pBitmapHolidayText, __pBitmapFocus);
+ AddControl(*pCalendarPanel);
+ pCalendarPanel->SetDateFocusEventListener(*this);
+ pCalendarPanel->SetPanningAnimationManager(*__pPanningAnimationManager);
+ pCalendarPanel->SetFocusEnabled(true);
+ __pPanelYearCalendar[VIEW_SCROLL_EFFECT_CURRENT] = pCalendarPanel;
+
+ return E_SUCCESS;
+}
+
+result
+YearPanel::OnTerminating(void)
+{
+ RemoveControl(*__pPanelYearCalendar[VIEW_SCROLL_EFFECT_CURRENT]);
+ if (__pPanelYearCalendar[VIEW_SCROLL_EFFECT_NEXT] != null)
+ {
+ RemoveControl(*__pPanelYearCalendar[VIEW_SCROLL_EFFECT_NEXT]);
+ }
+ if (__pPanelYearCalendar[VIEW_SCROLL_EFFECT_PREVIEW] != null)
+ {
+ RemoveControl(*__pPanelYearCalendar[VIEW_SCROLL_EFFECT_PREVIEW]);
+ }
+ delete __pPanningAnimationManager;
+
+ for (int i = 0; i < YEAR_PANEL_COUNT_OF_WEEK; ++i)
+ {
+ delete __pBitmapWeekText[i];
+ }
+ for (int i = 0; i < YEAR_PANEL_COUNT_OF_DAY; ++i)
+ {
+ delete __pBitmapWeekdayText[i];
+ delete __pBitmapHolidayText[i];
+ }
+ delete __pBitmapFocus;
+
+ return E_SUCCESS;
+}
+
+void
+YearPanel::OnUserEventReceivedN(RequestId requestId, IList* pArgs)
+{
+ switch (requestId)
+ {
+ case IDA_MAIN_FORM_HEADER_TODAY:
+ __pPm->SetTodayToCurrentDate();
+ break;
+ case IDA_MAIN_FORM_HEADER_GO_TO_DATE:
+ GoToDatePopup::RequestGoToDate(__pPm->GetCurrentDate(), this);
+ break;
+ case IDA_MAIN_FORM_FOOTER_CREATE:
+ {
+ LinkedList* pArgs = new (std::nothrow) LinkedList();
+ pArgs->Add(new (std::nothrow) DateTime(__pPm->GetCurrentDate()));
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_EVENT_EDITOR,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT), pArgs);
+ break;
+ }
+ case IDA_SUB_MENU_DELETE:
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_EVENT_DELETER,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT));
+ break;
+ case IDA_SUB_MENU_SEARCH:
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_EVENT_SEARCHER,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT));
+ break;
+ case IDA_SUB_MENU_CALENDARS:
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_CALENDAR_LIST,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT));
+ break;
+ case IDA_VIEW_MENU_MONTH:
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_MONTH,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT,
+ SCENE_HISTORY_OPTION_NO_HISTORY));
+ break;
+ case IDA_VIEW_MENU_DAY:
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_DAY,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT,
+ SCENE_HISTORY_OPTION_NO_HISTORY));
+ break;
+ case IDA_VIEW_MENU_LIST:
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_LIST,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT,
+ SCENE_HISTORY_OPTION_NO_HISTORY));
+ break;
+ case IDA_GO_TO_DATE_POPUP_DONE:
+ {
+ DateTime selectedDate = *static_cast<DateTime*>(pArgs->GetAt(0));
+ DateTime currentDate = __pPm->GetCurrentDate();
+ currentDate.SetValue(selectedDate.GetYear(), selectedDate.GetMonth(), selectedDate.GetDay(), currentDate.GetHour(), currentDate.GetMinute());
+ __pPm->SetCurrentDate(currentDate);
+ break;
+ }
+ }
+
+ if (pArgs != null)
+ {
+ pArgs->RemoveAll(true);
+ delete pArgs;
+ }
+}
+
+void
+YearPanel::OnControlAnimationStarted(ControlAnimator& source, Control& control)
+{
+ if (__pPanningAnimationManager->GetScrollDirection() == VIEW_SCROLL_EFFECT_PREVIEW)
+ {
+ CalendarPanel* pPanel = static_cast<CalendarPanel*>(__pPanelYearCalendar[VIEW_SCROLL_EFFECT_NEXT]);
+ pPanel->SetPosition(-GetWidth(), pPanel->GetY());
+
+ DateTime date = __pPm->GetCurrentDate();
+ date.AddYears(-2);
+ pPanel->SetDate(date);
+ pPanel->RequestRedraw(false);
+ }
+ else if (__pPanningAnimationManager->GetScrollDirection() == VIEW_SCROLL_EFFECT_NEXT)
+ {
+ CalendarPanel* pPanel = static_cast<CalendarPanel*>(__pPanelYearCalendar[VIEW_SCROLL_EFFECT_PREVIEW]);
+ pPanel->SetPosition(GetWidth(), pPanel->GetY());
+
+ DateTime date = __pPm->GetCurrentDate();
+ date.AddYears(2);
+ pPanel->SetDate(date);
+ pPanel->RequestRedraw(false);
+ }
+}
+
+void
+YearPanel::OnControlAnimationFinished(ControlAnimator& source, Control& control)
+{
+ if (__pPanningAnimationManager->GetScrollDirection() == VIEW_SCROLL_EFFECT_PREVIEW)
+ {
+ Panel* pPanel = __pPanelYearCalendar[VIEW_SCROLL_EFFECT_NEXT];
+ __pPanelYearCalendar[VIEW_SCROLL_EFFECT_NEXT] = __pPanelYearCalendar[VIEW_SCROLL_EFFECT_CURRENT];
+ __pPanelYearCalendar[VIEW_SCROLL_EFFECT_CURRENT] = __pPanelYearCalendar[VIEW_SCROLL_EFFECT_PREVIEW];
+ __pPanelYearCalendar[VIEW_SCROLL_EFFECT_PREVIEW] = pPanel;
+
+ static_cast<CalendarPanel*>(__pPanelYearCalendar[VIEW_SCROLL_EFFECT_NEXT])->SetFocusEnabled(false);
+ static_cast<CalendarPanel*>(__pPanelYearCalendar[VIEW_SCROLL_EFFECT_CURRENT])->SetFocusEnabled(true);
+
+ __pPm->AddCurrentYear(-1);
+ }
+ else if (__pPanningAnimationManager->GetScrollDirection() == VIEW_SCROLL_EFFECT_NEXT)
+ {
+ Panel* pPanel = __pPanelYearCalendar[VIEW_SCROLL_EFFECT_PREVIEW];
+ __pPanelYearCalendar[VIEW_SCROLL_EFFECT_PREVIEW] = __pPanelYearCalendar[VIEW_SCROLL_EFFECT_CURRENT];
+ __pPanelYearCalendar[VIEW_SCROLL_EFFECT_CURRENT] = __pPanelYearCalendar[VIEW_SCROLL_EFFECT_NEXT];
+ __pPanelYearCalendar[VIEW_SCROLL_EFFECT_NEXT] = pPanel;
+
+ static_cast<CalendarPanel*>(__pPanelYearCalendar[VIEW_SCROLL_EFFECT_PREVIEW])->SetFocusEnabled(false);
+ static_cast<CalendarPanel*>(__pPanelYearCalendar[VIEW_SCROLL_EFFECT_CURRENT])->SetFocusEnabled(true);
+
+ __pPm->AddCurrentYear(1);
+ }
+}
+
+void
+YearPanel::OnControlAnimationStopped(ControlAnimator& source, Control& control)
+{
+}
+
+void
+YearPanel::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs)
+{
+ if (pArgs != null)
+ {
+ pArgs->RemoveAll(true);
+ delete pArgs;
+ }
+
+ __pPm->SetViewType(VIEW_TYPE_NONE);
+
+ // Create month calendars.
+ for (int i = VIEW_SCROLL_EFFECT_NEXT; i < VIEW_SCROLL_EFFECT_COUNT; ++i)
+ {
+ CalendarPanel* pCalendarPanel = new (std::nothrow) CalendarPanel();
+ DateTime date = __pPm->GetCurrentDate();
+ switch (i)
+ {
+ case VIEW_SCROLL_EFFECT_NEXT:
+ date.AddYears(1);
+ pCalendarPanel->Initialize(Rectangle(GetWidth(), 0, GetWidth(), GetHeight()), date,
+ __pBitmapWeekText, __pBitmapWeekdayText, __pBitmapHolidayText, __pBitmapFocus);
+ break;
+ case VIEW_SCROLL_EFFECT_PREVIEW:
+ date.AddYears(-1);
+ pCalendarPanel->Initialize(Rectangle(-GetWidth(), 0, GetWidth(), GetHeight()), date,
+ __pBitmapWeekText, __pBitmapWeekdayText, __pBitmapHolidayText, __pBitmapFocus);
+ break;
+ }
+ AddControl(*pCalendarPanel);
+ pCalendarPanel->SetDateFocusEventListener(*this);
+ pCalendarPanel->SetPanningAnimationManager(*__pPanningAnimationManager);
+ __pPanelYearCalendar[i] = pCalendarPanel;
+ }
+
+ Update(true);
+
+ __pPm->AddCurrentDateChangedEventListener(*this);
+}
+
+void
+YearPanel::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
+{
+ __pPm->RemoveCurrentDateChangedEventListener(*this);
+
+ RemoveControl(*__pPanelYearCalendar[VIEW_SCROLL_EFFECT_NEXT]);
+ __pPanelYearCalendar[VIEW_SCROLL_EFFECT_NEXT] = null;
+ RemoveControl(*__pPanelYearCalendar[VIEW_SCROLL_EFFECT_PREVIEW]);
+ __pPanelYearCalendar[VIEW_SCROLL_EFFECT_PREVIEW] = null;
+}
+
+void
+YearPanel::OnCurrentDateChanged(const DateTime& currentDate, const DateTime& prevDate)
+{
+ DateTime currentCalendarDate = static_cast<CalendarPanel*>(__pPanelYearCalendar[VIEW_SCROLL_EFFECT_CURRENT])->GetDate();
+ Update(currentDate.GetYear() != currentCalendarDate.GetYear());
+}
+
+void
+YearPanel::OnDateFocused(const DateTime& focusedDate)
+{
+ __pPm->SetCurrentDate(focusedDate);
+
+ SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_MONTH,
+ SCENE_TRANSITION_ANIMATION_TYPE_LEFT,
+ SCENE_HISTORY_OPTION_NO_HISTORY));
+}
+
+Control*
+YearPanel::GetCurrentControl(void)
+{
+ return __pPanelYearCalendar[VIEW_SCROLL_EFFECT_CURRENT];
+}
+
+Control*
+YearPanel::GetNextControl(void)
+{
+ return __pPanelYearCalendar[VIEW_SCROLL_EFFECT_NEXT];
+}
+
+Control*
+YearPanel::GetPreviewControl(void)
+{
+ return __pPanelYearCalendar[VIEW_SCROLL_EFFECT_PREVIEW];
+}
+
+result
+YearPanel::CreateBitmapElements(void)
+{
+ const Dimension weekTextSize(W_WEEK, H_WEEK);
+ const Dimension dayTextSize(W_DAY, H_DAY);
+
+ // Create text of week
+ for (int week = 0; week < YearPanel::YEAR_PANEL_COUNT_OF_WEEK; ++week)
+ {
+ Bitmap* pBitmapWeek = new (std::nothrow) Bitmap();
+ pBitmapWeek->Construct(weekTextSize, BITMAP_PIXEL_FORMAT_ARGB8888);
+
+ EnrichedText* pTextWeek = new (std::nothrow) EnrichedText();
+ pTextWeek->Construct(weekTextSize);
+ pTextWeek->SetHorizontalAlignment(TEXT_ALIGNMENT_CENTER);
+ pTextWeek->SetVerticalAlignment(TEXT_ALIGNMENT_MIDDLE);
+
+ TextElement* pTextElement = new (std::nothrow) TextElement();
+ pTextElement->Construct(ResourceManager::GetWeekShortString(week)[0]);
+
+ Font font;
+ font.Construct(FONT_STYLE_PLAIN, FONT_SIZE_WEEK);
+ pTextElement->SetFont(font);
+ pTextElement->SetTextColor(Color((week == 0) ? COLOR_WEEK_SUN : COLOR_WEEK));
+
+ pTextWeek->Add(*pTextElement);
+
+ BufferInfo bufferinfo;
+ pBitmapWeek->Lock(bufferinfo);
+
+ Canvas canvas;
+ canvas.Construct(bufferinfo);
+ canvas.SetBackgroundColor(Color(COLOR_BLANK_BACKGROUND));
+ canvas.Clear();
+ canvas.DrawText(Point(0, 0), *pTextWeek);
+
+ pBitmapWeek->Unlock();
+ pTextWeek->RemoveAll(true);
+ delete pTextWeek;
+ delete __pBitmapWeekText[week];
+ __pBitmapWeekText[week] = pBitmapWeek;
+ }
+
+ // Create text of weekdays
+ for (int day = 0; day < YearPanel::YEAR_PANEL_COUNT_OF_DAY; ++day)
+ {
+ Bitmap* pBitmapDay = new (std::nothrow) Bitmap();
+ pBitmapDay->Construct(dayTextSize, BITMAP_PIXEL_FORMAT_ARGB8888);
+
+ EnrichedText* pTextDay = new (std::nothrow) EnrichedText();
+ pTextDay->Construct(dayTextSize);
+ pTextDay->SetHorizontalAlignment(TEXT_ALIGNMENT_CENTER);
+ pTextDay->SetVerticalAlignment(TEXT_ALIGNMENT_MIDDLE);
+
+ TextElement* pTextElement = new (std::nothrow) TextElement();
+ pTextElement->Construct(Integer::ToString(day + 1));
+
+ Font font;
+ font.Construct(FONT_STYLE_PLAIN, FONT_SIZE_DAY);
+ pTextElement->SetFont(font);
+ pTextElement->SetTextColor(Color(COLOR_DAY));
+
+ pTextDay->Add(*pTextElement);
+
+ BufferInfo bufferinfo;
+ pBitmapDay->Lock(bufferinfo);
+
+ Canvas canvas;
+ canvas.Construct(bufferinfo);
+ canvas.SetBackgroundColor(Color(COLOR_BLANK_BACKGROUND));
+ canvas.Clear();
+ canvas.DrawText(Point(0, 0), *pTextDay);
+
+ pBitmapDay->Unlock();
+ pTextDay->RemoveAll(true);
+ delete pTextDay;
+ delete __pBitmapWeekdayText[day];
+ __pBitmapWeekdayText[day] = pBitmapDay;
+ }
+
+ // Create text of holidays
+ for (int day = 0; day < YearPanel::YEAR_PANEL_COUNT_OF_DAY; ++day)
+ {
+ Bitmap* pBitmapDay = new (std::nothrow) Bitmap();
+ pBitmapDay->Construct(dayTextSize, BITMAP_PIXEL_FORMAT_ARGB8888);
+
+ EnrichedText* pTextDay = new (std::nothrow) EnrichedText();
+ pTextDay->Construct(dayTextSize);
+ pTextDay->SetHorizontalAlignment(TEXT_ALIGNMENT_CENTER);
+ pTextDay->SetVerticalAlignment(TEXT_ALIGNMENT_MIDDLE);
+
+ TextElement* pTextElement = new (std::nothrow) TextElement();
+ pTextElement->Construct(Integer::ToString(day + 1));
+
+ Font font;
+ font.Construct(FONT_STYLE_PLAIN, FONT_SIZE_DAY);
+ pTextElement->SetFont(font);
+ pTextElement->SetTextColor(Color(COLOR_DAY_SUN));
+
+ pTextDay->Add(*pTextElement);
+
+ BufferInfo bufferinfo;
+ pBitmapDay->Lock(bufferinfo);
+
+ Canvas canvas;
+ canvas.Construct(bufferinfo);
+ canvas.SetBackgroundColor(Color(COLOR_BLANK_BACKGROUND));
+ canvas.Clear();
+ canvas.DrawText(Point(0, 0), *pTextDay);
+
+ pBitmapDay->Unlock();
+ pTextDay->RemoveAll(true);
+ delete pTextDay;
+ delete __pBitmapHolidayText[day];
+ __pBitmapHolidayText[day] = pBitmapDay;
+ }
+
+ __pBitmapFocus = ResourceManager::GetBitmapN(IDB_YEAR_MONTH_FOCUS);
+
+ return E_SUCCESS;
+}
+
+void
+YearPanel::DrawCurrentDate(void)
+{
+ Form* pForm = dynamic_cast<Form*>(GetParent());
+ if (pForm != null)
+ {
+ Header* pHeader = pForm->GetHeader();
+ if (pHeader != null)
+ {
+ pHeader->SetTitleText(__pPm->GetYearString(__pPm->GetCurrentDate()));
+ pHeader->Invalidate(false);
+ }
+ }
+}
+
+result
+YearPanel::Update(bool draw)
+{
+ DrawCurrentDate();
+
+ DateTime date = __pPm->GetCurrentDate();
+ CalendarPanel* pCurrent = static_cast<CalendarPanel*>(__pPanelYearCalendar[VIEW_SCROLL_EFFECT_CURRENT]);
+ pCurrent->SetFocusEnabled(true);
+ pCurrent->SetDate(date);
+
+ CalendarPanel* pNext = static_cast<CalendarPanel*>(__pPanelYearCalendar[VIEW_SCROLL_EFFECT_NEXT]);
+ if (pNext != null)
+ {
+ date.AddYears(1);
+ pNext->SetFocusEnabled(false);
+ pNext->SetDate(date);
+ }
+
+ CalendarPanel* pPreview = static_cast<CalendarPanel*>(__pPanelYearCalendar[VIEW_SCROLL_EFFECT_PREVIEW]);
+ if (pPreview != null)
+ {
+ date = __pPm->GetCurrentDate();
+ date.AddYears(-1);
+ pPreview->SetFocusEnabled(false);
+ pPreview->SetDate(date);
+ }
+
+ if (draw == true)
+ {
+ __pPanelYearCalendar[VIEW_SCROLL_EFFECT_CURRENT]->Invalidate(true);
+ if (__pPanelYearCalendar[VIEW_SCROLL_EFFECT_NEXT] != null)
+ {
+ __pPanelYearCalendar[VIEW_SCROLL_EFFECT_NEXT]->RequestRedraw(false);
+ }
+ if (__pPanelYearCalendar[VIEW_SCROLL_EFFECT_PREVIEW] != null)
+ {
+ __pPanelYearCalendar[VIEW_SCROLL_EFFECT_PREVIEW]->RequestRedraw(false);
+ }
+ }
+ return E_SUCCESS;
+}