sync with tizen 2.0
authorJinkun Jang <jinkun.jang@samsung.com>
Sat, 16 Mar 2013 11:45:04 +0000 (20:45 +0900)
committerJinkun Jang <jinkun.jang@samsung.com>
Sat, 16 Mar 2013 11:45:04 +0000 (20:45 +0900)
203 files changed:
.cproject [new file with mode: 0644]
.project [new file with mode: 0644]
CMakeLists.txt [new file with mode: 0644]
LICENSE.Flora [new file with mode: 0644]
NOTICE [new file with mode: 0755]
inc/ClCalendarApp.h [new file with mode: 0644]
inc/ClCalendarListForm.h [new file with mode: 0644]
inc/ClDayEventListForm.h [new file with mode: 0644]
inc/ClDayPanel.h [new file with mode: 0644]
inc/ClEventDeleterForm.h [new file with mode: 0755]
inc/ClEventDetailsForm.h [new file with mode: 0644]
inc/ClEventEditorForm.h [new file with mode: 0644]
inc/ClEventItem.h [new file with mode: 0644]
inc/ClEventListPresentationModel.h [new file with mode: 0644]
inc/ClEventPresentationModel.h [new file with mode: 0644]
inc/ClEventSearchPresentationModel.h [new file with mode: 0644]
inc/ClEventSearcherForm.h [new file with mode: 0644]
inc/ClEventSelectorForm.h [new file with mode: 0644]
inc/ClFormFactory.h [new file with mode: 0644]
inc/ClGoToDatePopup.h [new file with mode: 0644]
inc/ClICalendarAppStatusChangedEventListener.h [new file with mode: 0644]
inc/ClICalendarEventChangedEventListener.h [new file with mode: 0644]
inc/ClICurrentDateChangedEventListener.h [new file with mode: 0644]
inc/ClIDateFocusEventListener.h [new file with mode: 0644]
inc/ClIEventActionEventListener.h [new file with mode: 0644]
inc/ClIPanningAnimationControlProvider.h [new file with mode: 0644]
inc/ClListPanel.h [new file with mode: 0644]
inc/ClMainForm.h [new file with mode: 0644]
inc/ClMainFrame.h [new file with mode: 0644]
inc/ClMonthPanel.h [new file with mode: 0644]
inc/ClNodes.h [new file with mode: 0644]
inc/ClPanelFactory.h [new file with mode: 0644]
inc/ClPanningAnimationManager.h [new file with mode: 0644]
inc/ClReminderForm.h [new file with mode: 0644]
inc/ClRepeatForm.h [new file with mode: 0644]
inc/ClResourceManager.h [new file with mode: 0644]
inc/ClSceneRegister.h [new file with mode: 0644]
inc/ClSettingForm.h [new file with mode: 0644]
inc/ClSharePopup.h [new file with mode: 0644]
inc/ClTaskDetailsForm.h [new file with mode: 0644]
inc/ClTaskItem.h [new file with mode: 0644]
inc/ClTaskSelectorForm.h [new file with mode: 0644]
inc/ClThreeButtonPopup.h [new file with mode: 0644]
inc/ClTwoButtonPopup.h [new file with mode: 0644]
inc/ClTypes.h [new file with mode: 0644]
inc/ClYearPanel.h [new file with mode: 0644]
manifest.xml [new file with mode: 0644]
packaging/apps.Calendar.spec [new file with mode: 0755]
res/ara-AE.xml [new file with mode: 0644]
res/aze-AZ.xml [new file with mode: 0644]
res/bul-BG.xml [new file with mode: 0644]
res/cat-ES.xml [new file with mode: 0644]
res/ces-CZ.xml [new file with mode: 0644]
res/dan-DK.xml [new file with mode: 0644]
res/deu-DE.xml [new file with mode: 0644]
res/ell-GR.xml [new file with mode: 0644]
res/eng-GB.xml [new file with mode: 0644]
res/eng-PH.xml [new file with mode: 0644]
res/eng-US.xml [new file with mode: 0644]
res/est-EE.xml [new file with mode: 0644]
res/eus-ES.xml [new file with mode: 0644]
res/fin-FI.xml [new file with mode: 0644]
res/fra-CA.xml [new file with mode: 0644]
res/fra-FR.xml [new file with mode: 0644]
res/gle-IE.xml [new file with mode: 0644]
res/glg-ES.xml [new file with mode: 0644]
res/hin-IN.xml [new file with mode: 0644]
res/hrv-HR.xml [new file with mode: 0644]
res/hun-HU.xml [new file with mode: 0644]
res/hye-AM.xml [new file with mode: 0644]
res/isl-IS.xml [new file with mode: 0644]
res/ita-IT.xml [new file with mode: 0644]
res/jpn-JP.xml [new file with mode: 0644]
res/kat-GE.xml [new file with mode: 0644]
res/kaz-KZ.xml [new file with mode: 0644]
res/kor-KR.xml [new file with mode: 0644]
res/lav-LV.xml [new file with mode: 0644]
res/lit-LT.xml [new file with mode: 0644]
res/mkd-MK.xml [new file with mode: 0644]
res/nld-NL.xml [new file with mode: 0644]
res/nob-NO.xml [new file with mode: 0644]
res/pol-PL.xml [new file with mode: 0644]
res/por-BR.xml [new file with mode: 0644]
res/por-PT.xml [new file with mode: 0644]
res/ron-RO.xml [new file with mode: 0644]
res/rus-RU.xml [new file with mode: 0644]
res/screen-density-xhigh/00_Nocontents_text.png [new file with mode: 0644]
res/screen-density-xhigh/00_button_delete.png [new file with mode: 0644]
res/screen-density-xhigh/00_button_delete_press.png [new file with mode: 0644]
res/screen-density-xhigh/00_button_expand_minus_press_web.png [new file with mode: 0644]
res/screen-density-xhigh/00_button_expand_minus_web.png [new file with mode: 0644]
res/screen-density-xhigh/00_button_plus_press_web.png [new file with mode: 0644]
res/screen-density-xhigh/00_button_plus_web.png [new file with mode: 0644]
res/screen-density-xhigh/00_circle_button.png [new file with mode: 0644]
res/screen-density-xhigh/00_circle_button_delete.png [new file with mode: 0644]
res/screen-density-xhigh/00_circle_button_delete_press.png [new file with mode: 0644]
res/screen-density-xhigh/00_circle_button_press.png [new file with mode: 0644]
res/screen-density-xhigh/00_icon_Back_02.png [new file with mode: 0755]
res/screen-density-xhigh/00_icon_Back_02_press.png [new file with mode: 0755]
res/screen-density-xhigh/P01_Task_event_completion.png [new file with mode: 0644]
res/screen-density-xhigh/P01_Task_event_completion_press.png [new file with mode: 0644]
res/screen-density-xhigh/P01_all_day_event_list_expand_closed.png [new file with mode: 0644]
res/screen-density-xhigh/P01_all_day_event_list_expand_closed_press.png [new file with mode: 0644]
res/screen-density-xhigh/P01_all_day_event_list_expand_opened.png [new file with mode: 0644]
res/screen-density-xhigh/P01_all_day_event_list_expand_opened_press.png [new file with mode: 0644]
res/screen-density-xhigh/P01_blank.png [new file with mode: 0644]
res/screen-density-xhigh/P01_change_view.png [new file with mode: 0644]
res/screen-density-xhigh/P01_change_view_press.png [new file with mode: 0644]
res/screen-density-xhigh/P01_day_current_time.png [new file with mode: 0644]
res/screen-density-xhigh/P01_day_event_bg_more.png [new file with mode: 0644]
res/screen-density-xhigh/P01_day_event_bg_more_arrow.png [new file with mode: 0644]
res/screen-density-xhigh/P01_day_view_time_line.png [new file with mode: 0644]
res/screen-density-xhigh/P01_day_view_time_line_press.png [new file with mode: 0644]
res/screen-density-xhigh/P01_event detail.png [new file with mode: 0644]
res/screen-density-xhigh/P01_event_list_icon_facebook_24x24.png [new file with mode: 0644]
res/screen-density-xhigh/P01_icon_alarm_64x64.png [new file with mode: 0644]
res/screen-density-xhigh/P01_icon_more.png [new file with mode: 0644]
res/screen-density-xhigh/P01_icon_more_press.png [new file with mode: 0644]
res/screen-density-xhigh/P01_list_icon_alarm.png [new file with mode: 0644]
res/screen-density-xhigh/P01_list_icon_description.png [new file with mode: 0644]
res/screen-density-xhigh/P01_list_icon_facebook.png [new file with mode: 0644]
res/screen-density-xhigh/P01_list_icon_map.png [new file with mode: 0644]
res/screen-density-xhigh/P01_list_icon_priority.png [new file with mode: 0644]
res/screen-density-xhigh/P01_list_icon_priority_low.png [new file with mode: 0644]
res/screen-density-xhigh/P01_list_icon_reminder.png [new file with mode: 0644]
res/screen-density-xhigh/P01_list_icon_repeat.png [new file with mode: 0644]
res/screen-density-xhigh/P01_month view_Today.png [new file with mode: 0644]
res/screen-density-xhigh/P01_month view_Today_focus.png [new file with mode: 0644]
res/screen-density-xhigh/P01_month view_day_event.png [new file with mode: 0644]
res/screen-density-xhigh/P01_month view_day_focus.png [new file with mode: 0644]
res/screen-density-xhigh/P01_today.png [new file with mode: 0644]
res/screen-density-xhigh/P01_today_press.png [new file with mode: 0644]
res/screen-density-xhigh/P01_year_day_focus.png [new file with mode: 0644]
res/screen-density-xhigh/P01_year_month_focus.png [new file with mode: 0644]
res/screen-size-normal/IDL_CALENDAR_LIST_FORM.xml [new file with mode: 0644]
res/screen-size-normal/IDL_DAY_EVENT_LIST_FORM.xml [new file with mode: 0644]
res/screen-size-normal/IDL_EVENT_DELETER_FORM.xml [new file with mode: 0644]
res/screen-size-normal/IDL_EVENT_DETAILS_FORM.xml [new file with mode: 0644]
res/screen-size-normal/IDL_EVENT_EDITOR_FORM.xml [new file with mode: 0644]
res/screen-size-normal/IDL_EVENT_SEARCHER_FORM.xml [new file with mode: 0644]
res/screen-size-normal/IDL_EVENT_SELECTOR_FORM.xml [new file with mode: 0644]
res/screen-size-normal/IDL_GO_TO_DATE_POPUP.xml [new file with mode: 0644]
res/screen-size-normal/IDL_MAIN_FORM.xml [new file with mode: 0644]
res/screen-size-normal/IDL_REMINDER_FORM.xml [new file with mode: 0644]
res/screen-size-normal/IDL_REPEAT_FORM.xml [new file with mode: 0644]
res/screen-size-normal/IDL_SETTING_FORM.xml [new file with mode: 0644]
res/screen-size-normal/IDL_SHARE_POPUP.xml [new file with mode: 0644]
res/screen-size-normal/IDL_TASK_DETAILS_FORM.xml [new file with mode: 0644]
res/screen-size-normal/IDL_TASK_SELECTOR_FORM.xml [new file with mode: 0644]
res/screen-size-normal/IDL_THREE_BUTTON_POPUP.xml [new file with mode: 0755]
res/screen-size-normal/IDL_TWO_BUTTON_POPUP.xml [new file with mode: 0644]
res/slk-SK.xml [new file with mode: 0644]
res/slv-SI.xml [new file with mode: 0644]
res/spa-ES.xml [new file with mode: 0644]
res/spa-MX.xml [new file with mode: 0644]
res/srp-RS.xml [new file with mode: 0644]
res/swe-SE.xml [new file with mode: 0644]
res/tur-TR.xml [new file with mode: 0644]
res/ukr-UA.xml [new file with mode: 0644]
res/uzb-UZ.xml [new file with mode: 0644]
res/zho-CN.xml [new file with mode: 0644]
res/zho-HK.xml [new file with mode: 0644]
res/zho-SG.xml [new file with mode: 0644]
res/zho-TW.xml [new file with mode: 0644]
shared/data/nofile.dummy [new file with mode: 0644]
shared/res/screen-density-xhigh/mainmenu.png [new file with mode: 0644]
shared/trusted/nofile.dummy [new file with mode: 0644]
src/ClCalendarApp.cpp [new file with mode: 0644]
src/ClCalendarEntry.cpp [new file with mode: 0644]
src/ClCalendarListForm.cpp [new file with mode: 0644]
src/ClDayEventListForm.cpp [new file with mode: 0644]
src/ClDayPanel.cpp [new file with mode: 0644]
src/ClEventDeleterForm.cpp [new file with mode: 0755]
src/ClEventDetailsForm.cpp [new file with mode: 0644]
src/ClEventEditorForm.cpp [new file with mode: 0644]
src/ClEventItem.cpp [new file with mode: 0644]
src/ClEventListPresentationModel.cpp [new file with mode: 0644]
src/ClEventPresentationModel.cpp [new file with mode: 0644]
src/ClEventSearchPresentationModel.cpp [new file with mode: 0644]
src/ClEventSearcherForm.cpp [new file with mode: 0644]
src/ClEventSelectorForm.cpp [new file with mode: 0644]
src/ClFormFactory.cpp [new file with mode: 0644]
src/ClGoToDatePopup.cpp [new file with mode: 0644]
src/ClListPanel.cpp [new file with mode: 0644]
src/ClMainForm.cpp [new file with mode: 0644]
src/ClMainFrame.cpp [new file with mode: 0644]
src/ClMonthPanel.cpp [new file with mode: 0644]
src/ClNodes.cpp [new file with mode: 0644]
src/ClPanelFactory.cpp [new file with mode: 0644]
src/ClPanningAnimationManager.cpp [new file with mode: 0644]
src/ClReminderForm.cpp [new file with mode: 0644]
src/ClRepeatForm.cpp [new file with mode: 0644]
src/ClResourceManager.cpp [new file with mode: 0644]
src/ClSceneRegister.cpp [new file with mode: 0644]
src/ClSettingForm.cpp [new file with mode: 0644]
src/ClSharePopup.cpp [new file with mode: 0644]
src/ClTaskDetailsForm.cpp [new file with mode: 0644]
src/ClTaskItem.cpp [new file with mode: 0644]
src/ClTaskSelectorForm.cpp [new file with mode: 0644]
src/ClThreeButtonPopup.cpp [new file with mode: 0755]
src/ClTwoButtonPopup.cpp [new file with mode: 0644]
src/ClTypes.cpp [new file with mode: 0644]
src/ClYearPanel.cpp [new file with mode: 0644]

diff --git a/.cproject b/.cproject
new file mode 100644 (file)
index 0000000..c636432
--- /dev/null
+++ b/.cproject
@@ -0,0 +1,719 @@
+<?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="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                               </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="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;/home/sungwan/tizen-sdk/library&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/osp&quot;"/>
+                                                               </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=&quot;${SBI_SYSROOT}&quot;"/>
+                                                               </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="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                               </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="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;/home/sungwan/tizen-sdk/library&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/osp&quot;"/>
+                                                               </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=&quot;${SBI_SYSROOT}&quot;"/>
+                                                               </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="&quot;${workspace_loc:/${ProjName}/lib}&quot;"/>
+                                                               </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=&quot;${SBI_SYSROOT}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-L&quot;${SBI_SYSROOT}/usr/lib&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-L&quot;${SBI_SYSROOT}/usr/lib/osp&quot;"/>
+                                                                       <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="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                               </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="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;/home/sungwan/tizen-sdk/library&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/osp&quot;"/>
+                                                               </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=&quot;${SBI_SYSROOT}&quot;"/>
+                                                               </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="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                               </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="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;/home/sungwan/tizen-sdk/library&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/osp&quot;"/>
+                                                               </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=&quot;${SBI_SYSROOT}&quot;"/>
+                                                               </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="&quot;${workspace_loc:/${ProjName}/lib}&quot;"/>
+                                                               </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=&quot;${SBI_SYSROOT}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-L&quot;${SBI_SYSROOT}/usr/lib&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-L&quot;${SBI_SYSROOT}/usr/lib/osp&quot;"/>
+                                                                       <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="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                               </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="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;/home/sungwan/tizen-sdk/library&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/osp&quot;"/>
+                                                               </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=&quot;${SBI_SYSROOT}&quot;"/>
+                                                               </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="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                               </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="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;/home/sungwan/tizen-sdk/library&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/osp&quot;"/>
+                                                               </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=&quot;${SBI_SYSROOT}&quot;"/>
+                                                               </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="&quot;${workspace_loc:/${ProjName}/lib}&quot;"/>
+                                                               </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=&quot;${SBI_SYSROOT}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-L&quot;${SBI_SYSROOT}/usr/lib&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-L&quot;${SBI_SYSROOT}/usr/lib/osp&quot;"/>
+                                                                       <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="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="${SDK_INSTALL_PATH}/library"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SDK_INSTALL_PATH}/library&quot;"/>
+                                                               </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="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;/home/sungwan/tizen-sdk/library&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/osp&quot;"/>
+                                                               </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=&quot;${SBI_SYSROOT}&quot;"/>
+                                                               </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="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="${SDK_INSTALL_PATH}/library"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SDK_INSTALL_PATH}/library&quot;"/>
+                                                               </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="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;/home/sungwan/tizen-sdk/library&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/osp&quot;"/>
+                                                               </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=&quot;${SBI_SYSROOT}&quot;"/>
+                                                               </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="&quot;${workspace_loc:/${ProjName}/lib}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="${SDK_INSTALL_PATH}/library/da/x86"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SDK_INSTALL_PATH}/library/da/x86&quot;"/>
+                                                               </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=&quot;${SBI_SYSROOT}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-L&quot;${SBI_SYSROOT}/usr/lib&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-L&quot;${SBI_SYSROOT}/usr/lib/osp&quot;"/>
+                                                                       <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="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="${SDK_INSTALL_PATH}/library"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SDK_INSTALL_PATH}/library&quot;"/>
+                                                               </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="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;/home/sungwan/tizen-sdk/library&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/osp&quot;"/>
+                                                               </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=&quot;${SBI_SYSROOT}&quot;"/>
+                                                               </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="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="${SDK_INSTALL_PATH}/library"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SDK_INSTALL_PATH}/library&quot;"/>
+                                                               </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="&quot;${SBI_SYSROOT}/usr/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/libxml2&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;/home/sungwan/tizen-sdk/library&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SBI_SYSROOT}/usr/include/osp&quot;"/>
+                                                               </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=&quot;${SBI_SYSROOT}&quot;"/>
+                                                               </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="&quot;${workspace_loc:/${ProjName}/lib}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="${SDK_INSTALL_PATH}/library/da/arm"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SDK_INSTALL_PATH}/library/da/arm&quot;"/>
+                                                               </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=&quot;${SBI_SYSROOT}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-L&quot;${SBI_SYSROOT}/usr/lib&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="-L&quot;${SBI_SYSROOT}/usr/lib/osp&quot;"/>
+                                                                       <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>
diff --git a/.project b/.project
new file mode 100644 (file)
index 0000000..a919d38
--- /dev/null
+++ b/.project
@@ -0,0 +1,89 @@
+<?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>
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644 (file)
index 0000000..7676cb8
--- /dev/null
@@ -0,0 +1,30 @@
+# 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})
diff --git a/LICENSE.Flora b/LICENSE.Flora
new file mode 100644 (file)
index 0000000..9c95663
--- /dev/null
@@ -0,0 +1,206 @@
+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.
+
diff --git a/NOTICE b/NOTICE
new file mode 100755 (executable)
index 0000000..9ec42be
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1,3 @@
+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
diff --git a/inc/ClCalendarApp.h b/inc/ClCalendarApp.h
new file mode 100644 (file)
index 0000000..29dcbea
--- /dev/null
@@ -0,0 +1,75 @@
+//
+// 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_
diff --git a/inc/ClCalendarListForm.h b/inc/ClCalendarListForm.h
new file mode 100644 (file)
index 0000000..67f90c0
--- /dev/null
@@ -0,0 +1,72 @@
+//
+// 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_
diff --git a/inc/ClDayEventListForm.h b/inc/ClDayEventListForm.h
new file mode 100644 (file)
index 0000000..ed9f2a6
--- /dev/null
@@ -0,0 +1,79 @@
+//
+// 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_
diff --git a/inc/ClDayPanel.h b/inc/ClDayPanel.h
new file mode 100644 (file)
index 0000000..65a2b55
--- /dev/null
@@ -0,0 +1,91 @@
+//
+// 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_
diff --git a/inc/ClEventDeleterForm.h b/inc/ClEventDeleterForm.h
new file mode 100755 (executable)
index 0000000..2dcb971
--- /dev/null
@@ -0,0 +1,99 @@
+//
+// 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_
diff --git a/inc/ClEventDetailsForm.h b/inc/ClEventDetailsForm.h
new file mode 100644 (file)
index 0000000..7e22d52
--- /dev/null
@@ -0,0 +1,101 @@
+//
+// 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_
diff --git a/inc/ClEventEditorForm.h b/inc/ClEventEditorForm.h
new file mode 100644 (file)
index 0000000..a787da5
--- /dev/null
@@ -0,0 +1,144 @@
+//
+// 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_
diff --git a/inc/ClEventItem.h b/inc/ClEventItem.h
new file mode 100644 (file)
index 0000000..41d4f2a
--- /dev/null
@@ -0,0 +1,75 @@
+//
+// 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_
diff --git a/inc/ClEventListPresentationModel.h b/inc/ClEventListPresentationModel.h
new file mode 100644 (file)
index 0000000..bbf4fb3
--- /dev/null
@@ -0,0 +1,150 @@
+//
+// 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_
diff --git a/inc/ClEventPresentationModel.h b/inc/ClEventPresentationModel.h
new file mode 100644 (file)
index 0000000..9d95283
--- /dev/null
@@ -0,0 +1,100 @@
+//
+// 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_
diff --git a/inc/ClEventSearchPresentationModel.h b/inc/ClEventSearchPresentationModel.h
new file mode 100644 (file)
index 0000000..0e4b79c
--- /dev/null
@@ -0,0 +1,90 @@
+//
+// 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_
diff --git a/inc/ClEventSearcherForm.h b/inc/ClEventSearcherForm.h
new file mode 100644 (file)
index 0000000..34d7201
--- /dev/null
@@ -0,0 +1,94 @@
+//
+// 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_
diff --git a/inc/ClEventSelectorForm.h b/inc/ClEventSelectorForm.h
new file mode 100644 (file)
index 0000000..90677c5
--- /dev/null
@@ -0,0 +1,95 @@
+//
+// 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_
diff --git a/inc/ClFormFactory.h b/inc/ClFormFactory.h
new file mode 100644 (file)
index 0000000..11bb96d
--- /dev/null
@@ -0,0 +1,37 @@
+//
+// 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_
diff --git a/inc/ClGoToDatePopup.h b/inc/ClGoToDatePopup.h
new file mode 100644 (file)
index 0000000..9cdb1c3
--- /dev/null
@@ -0,0 +1,50 @@
+//
+// 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_
diff --git a/inc/ClICalendarAppStatusChangedEventListener.h b/inc/ClICalendarAppStatusChangedEventListener.h
new file mode 100644 (file)
index 0000000..9ce51c0
--- /dev/null
@@ -0,0 +1,37 @@
+//
+// 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_
diff --git a/inc/ClICalendarEventChangedEventListener.h b/inc/ClICalendarEventChangedEventListener.h
new file mode 100644 (file)
index 0000000..2a9f882
--- /dev/null
@@ -0,0 +1,36 @@
+//
+// 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_
diff --git a/inc/ClICurrentDateChangedEventListener.h b/inc/ClICurrentDateChangedEventListener.h
new file mode 100644 (file)
index 0000000..7f55a12
--- /dev/null
@@ -0,0 +1,36 @@
+//
+// 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_
diff --git a/inc/ClIDateFocusEventListener.h b/inc/ClIDateFocusEventListener.h
new file mode 100644 (file)
index 0000000..f51858a
--- /dev/null
@@ -0,0 +1,35 @@
+//
+// 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_
diff --git a/inc/ClIEventActionEventListener.h b/inc/ClIEventActionEventListener.h
new file mode 100644 (file)
index 0000000..c485ed3
--- /dev/null
@@ -0,0 +1,36 @@
+//
+// 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_
diff --git a/inc/ClIPanningAnimationControlProvider.h b/inc/ClIPanningAnimationControlProvider.h
new file mode 100644 (file)
index 0000000..efa21a7
--- /dev/null
@@ -0,0 +1,37 @@
+//
+// 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_
diff --git a/inc/ClListPanel.h b/inc/ClListPanel.h
new file mode 100644 (file)
index 0000000..4a55a61
--- /dev/null
@@ -0,0 +1,95 @@
+//
+// 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_
diff --git a/inc/ClMainForm.h b/inc/ClMainForm.h
new file mode 100644 (file)
index 0000000..a16de87
--- /dev/null
@@ -0,0 +1,63 @@
+//
+// 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_
diff --git a/inc/ClMainFrame.h b/inc/ClMainFrame.h
new file mode 100644 (file)
index 0000000..4e7eb22
--- /dev/null
@@ -0,0 +1,39 @@
+//
+// 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_
diff --git a/inc/ClMonthPanel.h b/inc/ClMonthPanel.h
new file mode 100644 (file)
index 0000000..2afe598
--- /dev/null
@@ -0,0 +1,103 @@
+//
+// 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_
diff --git a/inc/ClNodes.h b/inc/ClNodes.h
new file mode 100644 (file)
index 0000000..e7471f5
--- /dev/null
@@ -0,0 +1,71 @@
+//
+// 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_
diff --git a/inc/ClPanelFactory.h b/inc/ClPanelFactory.h
new file mode 100644 (file)
index 0000000..3497424
--- /dev/null
@@ -0,0 +1,37 @@
+//
+// 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_
diff --git a/inc/ClPanningAnimationManager.h b/inc/ClPanningAnimationManager.h
new file mode 100644 (file)
index 0000000..1ad743e
--- /dev/null
@@ -0,0 +1,77 @@
+//
+// 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_
diff --git a/inc/ClReminderForm.h b/inc/ClReminderForm.h
new file mode 100644 (file)
index 0000000..24a8fe2
--- /dev/null
@@ -0,0 +1,106 @@
+//
+// 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_
diff --git a/inc/ClRepeatForm.h b/inc/ClRepeatForm.h
new file mode 100644 (file)
index 0000000..33689e4
--- /dev/null
@@ -0,0 +1,116 @@
+//
+// 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_
diff --git a/inc/ClResourceManager.h b/inc/ClResourceManager.h
new file mode 100644 (file)
index 0000000..19945bd
--- /dev/null
@@ -0,0 +1,66 @@
+//
+// 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_
diff --git a/inc/ClSceneRegister.h b/inc/ClSceneRegister.h
new file mode 100644 (file)
index 0000000..b671fbb
--- /dev/null
@@ -0,0 +1,52 @@
+//
+// 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_
diff --git a/inc/ClSettingForm.h b/inc/ClSettingForm.h
new file mode 100644 (file)
index 0000000..8f0660c
--- /dev/null
@@ -0,0 +1,86 @@
+//
+// 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_
diff --git a/inc/ClSharePopup.h b/inc/ClSharePopup.h
new file mode 100644 (file)
index 0000000..9d1260a
--- /dev/null
@@ -0,0 +1,61 @@
+//
+// 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_
diff --git a/inc/ClTaskDetailsForm.h b/inc/ClTaskDetailsForm.h
new file mode 100644 (file)
index 0000000..ae966c8
--- /dev/null
@@ -0,0 +1,91 @@
+//
+// 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_
diff --git a/inc/ClTaskItem.h b/inc/ClTaskItem.h
new file mode 100644 (file)
index 0000000..316f2d8
--- /dev/null
@@ -0,0 +1,74 @@
+//
+// 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_
diff --git a/inc/ClTaskSelectorForm.h b/inc/ClTaskSelectorForm.h
new file mode 100644 (file)
index 0000000..f953772
--- /dev/null
@@ -0,0 +1,91 @@
+//
+// 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_
diff --git a/inc/ClThreeButtonPopup.h b/inc/ClThreeButtonPopup.h
new file mode 100644 (file)
index 0000000..e9f4a2a
--- /dev/null
@@ -0,0 +1,51 @@
+//
+// 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_
diff --git a/inc/ClTwoButtonPopup.h b/inc/ClTwoButtonPopup.h
new file mode 100644 (file)
index 0000000..a572bbc
--- /dev/null
@@ -0,0 +1,51 @@
+//
+// 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_
diff --git a/inc/ClTypes.h b/inc/ClTypes.h
new file mode 100644 (file)
index 0000000..6784d65
--- /dev/null
@@ -0,0 +1,340 @@
+//
+// 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_
diff --git a/inc/ClYearPanel.h b/inc/ClYearPanel.h
new file mode 100644 (file)
index 0000000..218f415
--- /dev/null
@@ -0,0 +1,89 @@
+//
+// 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_
diff --git a/manifest.xml b/manifest.xml
new file mode 100644 (file)
index 0000000..7d7347a
--- /dev/null
@@ -0,0 +1,142 @@
+<?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>
diff --git a/packaging/apps.Calendar.spec b/packaging/apps.Calendar.spec
new file mode 100755 (executable)
index 0000000..44599a8
--- /dev/null
@@ -0,0 +1,49 @@
+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/*
diff --git a/res/ara-AE.xml b/res/ara-AE.xml
new file mode 100644 (file)
index 0000000..f497aec
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/aze-AZ.xml b/res/aze-AZ.xml
new file mode 100644 (file)
index 0000000..ca0ee59
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/bul-BG.xml b/res/bul-BG.xml
new file mode 100644 (file)
index 0000000..cb13a0d
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/cat-ES.xml b/res/cat-ES.xml
new file mode 100644 (file)
index 0000000..c8315b3
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/ces-CZ.xml b/res/ces-CZ.xml
new file mode 100644 (file)
index 0000000..f96c13b
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/dan-DK.xml b/res/dan-DK.xml
new file mode 100644 (file)
index 0000000..30787a0
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/deu-DE.xml b/res/deu-DE.xml
new file mode 100644 (file)
index 0000000..278058a
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/ell-GR.xml b/res/ell-GR.xml
new file mode 100644 (file)
index 0000000..9a7d2ec
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/eng-GB.xml b/res/eng-GB.xml
new file mode 100644 (file)
index 0000000..682188e
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/eng-PH.xml b/res/eng-PH.xml
new file mode 100644 (file)
index 0000000..dbc366b
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/eng-US.xml b/res/eng-US.xml
new file mode 100644 (file)
index 0000000..5887616
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/est-EE.xml b/res/est-EE.xml
new file mode 100644 (file)
index 0000000..1f637cd
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/eus-ES.xml b/res/eus-ES.xml
new file mode 100644 (file)
index 0000000..9631d2e
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/fin-FI.xml b/res/fin-FI.xml
new file mode 100644 (file)
index 0000000..131fb81
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/fra-CA.xml b/res/fra-CA.xml
new file mode 100644 (file)
index 0000000..2e818f6
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/fra-FR.xml b/res/fra-FR.xml
new file mode 100644 (file)
index 0000000..94d16e4
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/gle-IE.xml b/res/gle-IE.xml
new file mode 100644 (file)
index 0000000..68a1ccd
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/glg-ES.xml b/res/glg-ES.xml
new file mode 100644 (file)
index 0000000..f72c23b
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/hin-IN.xml b/res/hin-IN.xml
new file mode 100644 (file)
index 0000000..0146830
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/hrv-HR.xml b/res/hrv-HR.xml
new file mode 100644 (file)
index 0000000..0ca63eb
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/hun-HU.xml b/res/hun-HU.xml
new file mode 100644 (file)
index 0000000..93385ac
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/hye-AM.xml b/res/hye-AM.xml
new file mode 100644 (file)
index 0000000..a795ea7
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/isl-IS.xml b/res/isl-IS.xml
new file mode 100644 (file)
index 0000000..71e901e
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/ita-IT.xml b/res/ita-IT.xml
new file mode 100644 (file)
index 0000000..1414892
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/jpn-JP.xml b/res/jpn-JP.xml
new file mode 100644 (file)
index 0000000..c23a32e
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/kat-GE.xml b/res/kat-GE.xml
new file mode 100644 (file)
index 0000000..870a046
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/kaz-KZ.xml b/res/kaz-KZ.xml
new file mode 100644 (file)
index 0000000..52dbf4b
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/kor-KR.xml b/res/kor-KR.xml
new file mode 100644 (file)
index 0000000..b58ca60
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/lav-LV.xml b/res/lav-LV.xml
new file mode 100644 (file)
index 0000000..227cd88
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/lit-LT.xml b/res/lit-LT.xml
new file mode 100644 (file)
index 0000000..f21a740
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/mkd-MK.xml b/res/mkd-MK.xml
new file mode 100644 (file)
index 0000000..4873176
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/nld-NL.xml b/res/nld-NL.xml
new file mode 100644 (file)
index 0000000..4316f38
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/nob-NO.xml b/res/nob-NO.xml
new file mode 100644 (file)
index 0000000..38bbbf3
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/pol-PL.xml b/res/pol-PL.xml
new file mode 100644 (file)
index 0000000..41568d7
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/por-BR.xml b/res/por-BR.xml
new file mode 100644 (file)
index 0000000..18be32c
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/por-PT.xml b/res/por-PT.xml
new file mode 100644 (file)
index 0000000..5bf1070
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/ron-RO.xml b/res/ron-RO.xml
new file mode 100644 (file)
index 0000000..9023868
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/rus-RU.xml b/res/rus-RU.xml
new file mode 100644 (file)
index 0000000..dea12a7
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/screen-density-xhigh/00_Nocontents_text.png b/res/screen-density-xhigh/00_Nocontents_text.png
new file mode 100644 (file)
index 0000000..6e5344c
Binary files /dev/null and b/res/screen-density-xhigh/00_Nocontents_text.png differ
diff --git a/res/screen-density-xhigh/00_button_delete.png b/res/screen-density-xhigh/00_button_delete.png
new file mode 100644 (file)
index 0000000..2431fa8
Binary files /dev/null and b/res/screen-density-xhigh/00_button_delete.png differ
diff --git a/res/screen-density-xhigh/00_button_delete_press.png b/res/screen-density-xhigh/00_button_delete_press.png
new file mode 100644 (file)
index 0000000..1046336
Binary files /dev/null and b/res/screen-density-xhigh/00_button_delete_press.png differ
diff --git a/res/screen-density-xhigh/00_button_expand_minus_press_web.png b/res/screen-density-xhigh/00_button_expand_minus_press_web.png
new file mode 100644 (file)
index 0000000..ca672a9
Binary files /dev/null and b/res/screen-density-xhigh/00_button_expand_minus_press_web.png differ
diff --git a/res/screen-density-xhigh/00_button_expand_minus_web.png b/res/screen-density-xhigh/00_button_expand_minus_web.png
new file mode 100644 (file)
index 0000000..ca672a9
Binary files /dev/null and b/res/screen-density-xhigh/00_button_expand_minus_web.png differ
diff --git a/res/screen-density-xhigh/00_button_plus_press_web.png b/res/screen-density-xhigh/00_button_plus_press_web.png
new file mode 100644 (file)
index 0000000..f64fd17
Binary files /dev/null and b/res/screen-density-xhigh/00_button_plus_press_web.png differ
diff --git a/res/screen-density-xhigh/00_button_plus_web.png b/res/screen-density-xhigh/00_button_plus_web.png
new file mode 100644 (file)
index 0000000..28d4462
Binary files /dev/null and b/res/screen-density-xhigh/00_button_plus_web.png differ
diff --git a/res/screen-density-xhigh/00_circle_button.png b/res/screen-density-xhigh/00_circle_button.png
new file mode 100644 (file)
index 0000000..38283e2
Binary files /dev/null and b/res/screen-density-xhigh/00_circle_button.png differ
diff --git a/res/screen-density-xhigh/00_circle_button_delete.png b/res/screen-density-xhigh/00_circle_button_delete.png
new file mode 100644 (file)
index 0000000..dd2fe07
Binary files /dev/null and b/res/screen-density-xhigh/00_circle_button_delete.png differ
diff --git a/res/screen-density-xhigh/00_circle_button_delete_press.png b/res/screen-density-xhigh/00_circle_button_delete_press.png
new file mode 100644 (file)
index 0000000..e2b27e2
Binary files /dev/null and b/res/screen-density-xhigh/00_circle_button_delete_press.png differ
diff --git a/res/screen-density-xhigh/00_circle_button_press.png b/res/screen-density-xhigh/00_circle_button_press.png
new file mode 100644 (file)
index 0000000..41de1ed
Binary files /dev/null and b/res/screen-density-xhigh/00_circle_button_press.png differ
diff --git a/res/screen-density-xhigh/00_icon_Back_02.png b/res/screen-density-xhigh/00_icon_Back_02.png
new file mode 100755 (executable)
index 0000000..64d0f9a
Binary files /dev/null and b/res/screen-density-xhigh/00_icon_Back_02.png differ
diff --git a/res/screen-density-xhigh/00_icon_Back_02_press.png b/res/screen-density-xhigh/00_icon_Back_02_press.png
new file mode 100755 (executable)
index 0000000..df58dd8
Binary files /dev/null and b/res/screen-density-xhigh/00_icon_Back_02_press.png differ
diff --git a/res/screen-density-xhigh/P01_Task_event_completion.png b/res/screen-density-xhigh/P01_Task_event_completion.png
new file mode 100644 (file)
index 0000000..ab376b9
Binary files /dev/null and b/res/screen-density-xhigh/P01_Task_event_completion.png differ
diff --git a/res/screen-density-xhigh/P01_Task_event_completion_press.png b/res/screen-density-xhigh/P01_Task_event_completion_press.png
new file mode 100644 (file)
index 0000000..901d8cb
Binary files /dev/null and b/res/screen-density-xhigh/P01_Task_event_completion_press.png differ
diff --git a/res/screen-density-xhigh/P01_all_day_event_list_expand_closed.png b/res/screen-density-xhigh/P01_all_day_event_list_expand_closed.png
new file mode 100644 (file)
index 0000000..aa00456
Binary files /dev/null and b/res/screen-density-xhigh/P01_all_day_event_list_expand_closed.png differ
diff --git a/res/screen-density-xhigh/P01_all_day_event_list_expand_closed_press.png b/res/screen-density-xhigh/P01_all_day_event_list_expand_closed_press.png
new file mode 100644 (file)
index 0000000..d5a0854
Binary files /dev/null and b/res/screen-density-xhigh/P01_all_day_event_list_expand_closed_press.png differ
diff --git a/res/screen-density-xhigh/P01_all_day_event_list_expand_opened.png b/res/screen-density-xhigh/P01_all_day_event_list_expand_opened.png
new file mode 100644 (file)
index 0000000..ac3efb6
Binary files /dev/null and b/res/screen-density-xhigh/P01_all_day_event_list_expand_opened.png differ
diff --git a/res/screen-density-xhigh/P01_all_day_event_list_expand_opened_press.png b/res/screen-density-xhigh/P01_all_day_event_list_expand_opened_press.png
new file mode 100644 (file)
index 0000000..bb9de71
Binary files /dev/null and b/res/screen-density-xhigh/P01_all_day_event_list_expand_opened_press.png differ
diff --git a/res/screen-density-xhigh/P01_blank.png b/res/screen-density-xhigh/P01_blank.png
new file mode 100644 (file)
index 0000000..25271c7
Binary files /dev/null and b/res/screen-density-xhigh/P01_blank.png differ
diff --git a/res/screen-density-xhigh/P01_change_view.png b/res/screen-density-xhigh/P01_change_view.png
new file mode 100644 (file)
index 0000000..c157afd
Binary files /dev/null and b/res/screen-density-xhigh/P01_change_view.png differ
diff --git a/res/screen-density-xhigh/P01_change_view_press.png b/res/screen-density-xhigh/P01_change_view_press.png
new file mode 100644 (file)
index 0000000..dba8186
Binary files /dev/null and b/res/screen-density-xhigh/P01_change_view_press.png differ
diff --git a/res/screen-density-xhigh/P01_day_current_time.png b/res/screen-density-xhigh/P01_day_current_time.png
new file mode 100644 (file)
index 0000000..858583e
Binary files /dev/null and b/res/screen-density-xhigh/P01_day_current_time.png differ
diff --git a/res/screen-density-xhigh/P01_day_event_bg_more.png b/res/screen-density-xhigh/P01_day_event_bg_more.png
new file mode 100644 (file)
index 0000000..6e02262
Binary files /dev/null and b/res/screen-density-xhigh/P01_day_event_bg_more.png differ
diff --git a/res/screen-density-xhigh/P01_day_event_bg_more_arrow.png b/res/screen-density-xhigh/P01_day_event_bg_more_arrow.png
new file mode 100644 (file)
index 0000000..3401111
Binary files /dev/null and b/res/screen-density-xhigh/P01_day_event_bg_more_arrow.png differ
diff --git a/res/screen-density-xhigh/P01_day_view_time_line.png b/res/screen-density-xhigh/P01_day_view_time_line.png
new file mode 100644 (file)
index 0000000..355e44b
Binary files /dev/null and b/res/screen-density-xhigh/P01_day_view_time_line.png differ
diff --git a/res/screen-density-xhigh/P01_day_view_time_line_press.png b/res/screen-density-xhigh/P01_day_view_time_line_press.png
new file mode 100644 (file)
index 0000000..59a3ef8
Binary files /dev/null and b/res/screen-density-xhigh/P01_day_view_time_line_press.png differ
diff --git a/res/screen-density-xhigh/P01_event detail.png b/res/screen-density-xhigh/P01_event detail.png
new file mode 100644 (file)
index 0000000..67e4341
Binary files /dev/null and b/res/screen-density-xhigh/P01_event detail.png differ
diff --git a/res/screen-density-xhigh/P01_event_list_icon_facebook_24x24.png b/res/screen-density-xhigh/P01_event_list_icon_facebook_24x24.png
new file mode 100644 (file)
index 0000000..a2c6532
Binary files /dev/null and b/res/screen-density-xhigh/P01_event_list_icon_facebook_24x24.png differ
diff --git a/res/screen-density-xhigh/P01_icon_alarm_64x64.png b/res/screen-density-xhigh/P01_icon_alarm_64x64.png
new file mode 100644 (file)
index 0000000..2a10b65
Binary files /dev/null and b/res/screen-density-xhigh/P01_icon_alarm_64x64.png differ
diff --git a/res/screen-density-xhigh/P01_icon_more.png b/res/screen-density-xhigh/P01_icon_more.png
new file mode 100644 (file)
index 0000000..cda9b31
Binary files /dev/null and b/res/screen-density-xhigh/P01_icon_more.png differ
diff --git a/res/screen-density-xhigh/P01_icon_more_press.png b/res/screen-density-xhigh/P01_icon_more_press.png
new file mode 100644 (file)
index 0000000..028073f
Binary files /dev/null and b/res/screen-density-xhigh/P01_icon_more_press.png differ
diff --git a/res/screen-density-xhigh/P01_list_icon_alarm.png b/res/screen-density-xhigh/P01_list_icon_alarm.png
new file mode 100644 (file)
index 0000000..cc102dd
Binary files /dev/null and b/res/screen-density-xhigh/P01_list_icon_alarm.png differ
diff --git a/res/screen-density-xhigh/P01_list_icon_description.png b/res/screen-density-xhigh/P01_list_icon_description.png
new file mode 100644 (file)
index 0000000..845373e
Binary files /dev/null and b/res/screen-density-xhigh/P01_list_icon_description.png differ
diff --git a/res/screen-density-xhigh/P01_list_icon_facebook.png b/res/screen-density-xhigh/P01_list_icon_facebook.png
new file mode 100644 (file)
index 0000000..e10f8d7
Binary files /dev/null and b/res/screen-density-xhigh/P01_list_icon_facebook.png differ
diff --git a/res/screen-density-xhigh/P01_list_icon_map.png b/res/screen-density-xhigh/P01_list_icon_map.png
new file mode 100644 (file)
index 0000000..3e6b898
Binary files /dev/null and b/res/screen-density-xhigh/P01_list_icon_map.png differ
diff --git a/res/screen-density-xhigh/P01_list_icon_priority.png b/res/screen-density-xhigh/P01_list_icon_priority.png
new file mode 100644 (file)
index 0000000..60dcbe7
Binary files /dev/null and b/res/screen-density-xhigh/P01_list_icon_priority.png differ
diff --git a/res/screen-density-xhigh/P01_list_icon_priority_low.png b/res/screen-density-xhigh/P01_list_icon_priority_low.png
new file mode 100644 (file)
index 0000000..5cd921e
Binary files /dev/null and b/res/screen-density-xhigh/P01_list_icon_priority_low.png differ
diff --git a/res/screen-density-xhigh/P01_list_icon_reminder.png b/res/screen-density-xhigh/P01_list_icon_reminder.png
new file mode 100644 (file)
index 0000000..89b0ae6
Binary files /dev/null and b/res/screen-density-xhigh/P01_list_icon_reminder.png differ
diff --git a/res/screen-density-xhigh/P01_list_icon_repeat.png b/res/screen-density-xhigh/P01_list_icon_repeat.png
new file mode 100644 (file)
index 0000000..d67e5aa
Binary files /dev/null and b/res/screen-density-xhigh/P01_list_icon_repeat.png differ
diff --git a/res/screen-density-xhigh/P01_month view_Today.png b/res/screen-density-xhigh/P01_month view_Today.png
new file mode 100644 (file)
index 0000000..3805478
Binary files /dev/null and b/res/screen-density-xhigh/P01_month view_Today.png differ
diff --git a/res/screen-density-xhigh/P01_month view_Today_focus.png b/res/screen-density-xhigh/P01_month view_Today_focus.png
new file mode 100644 (file)
index 0000000..6035762
Binary files /dev/null and b/res/screen-density-xhigh/P01_month view_Today_focus.png differ
diff --git a/res/screen-density-xhigh/P01_month view_day_event.png b/res/screen-density-xhigh/P01_month view_day_event.png
new file mode 100644 (file)
index 0000000..c80f6ec
Binary files /dev/null and b/res/screen-density-xhigh/P01_month view_day_event.png differ
diff --git a/res/screen-density-xhigh/P01_month view_day_focus.png b/res/screen-density-xhigh/P01_month view_day_focus.png
new file mode 100644 (file)
index 0000000..73f401e
Binary files /dev/null and b/res/screen-density-xhigh/P01_month view_day_focus.png differ
diff --git a/res/screen-density-xhigh/P01_today.png b/res/screen-density-xhigh/P01_today.png
new file mode 100644 (file)
index 0000000..58cd4ec
Binary files /dev/null and b/res/screen-density-xhigh/P01_today.png differ
diff --git a/res/screen-density-xhigh/P01_today_press.png b/res/screen-density-xhigh/P01_today_press.png
new file mode 100644 (file)
index 0000000..2002052
Binary files /dev/null and b/res/screen-density-xhigh/P01_today_press.png differ
diff --git a/res/screen-density-xhigh/P01_year_day_focus.png b/res/screen-density-xhigh/P01_year_day_focus.png
new file mode 100644 (file)
index 0000000..d3bb0a8
Binary files /dev/null and b/res/screen-density-xhigh/P01_year_day_focus.png differ
diff --git a/res/screen-density-xhigh/P01_year_month_focus.png b/res/screen-density-xhigh/P01_year_month_focus.png
new file mode 100644 (file)
index 0000000..040b8c6
Binary files /dev/null and b/res/screen-density-xhigh/P01_year_month_focus.png differ
diff --git a/res/screen-size-normal/IDL_CALENDAR_LIST_FORM.xml b/res/screen-size-normal/IDL_CALENDAR_LIST_FORM.xml
new file mode 100644 (file)
index 0000000..4ddb580
--- /dev/null
@@ -0,0 +1,29 @@
+<?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>
diff --git a/res/screen-size-normal/IDL_DAY_EVENT_LIST_FORM.xml b/res/screen-size-normal/IDL_DAY_EVENT_LIST_FORM.xml
new file mode 100644 (file)
index 0000000..4f166b1
--- /dev/null
@@ -0,0 +1,26 @@
+<?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>
diff --git a/res/screen-size-normal/IDL_EVENT_DELETER_FORM.xml b/res/screen-size-normal/IDL_EVENT_DELETER_FORM.xml
new file mode 100644 (file)
index 0000000..91a5bf1
--- /dev/null
@@ -0,0 +1,48 @@
+<?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>
diff --git a/res/screen-size-normal/IDL_EVENT_DETAILS_FORM.xml b/res/screen-size-normal/IDL_EVENT_DETAILS_FORM.xml
new file mode 100644 (file)
index 0000000..151eb0c
--- /dev/null
@@ -0,0 +1,25 @@
+<?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>
diff --git a/res/screen-size-normal/IDL_EVENT_EDITOR_FORM.xml b/res/screen-size-normal/IDL_EVENT_EDITOR_FORM.xml
new file mode 100644 (file)
index 0000000..69a1492
--- /dev/null
@@ -0,0 +1,28 @@
+<?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>
diff --git a/res/screen-size-normal/IDL_EVENT_SEARCHER_FORM.xml b/res/screen-size-normal/IDL_EVENT_SEARCHER_FORM.xml
new file mode 100644 (file)
index 0000000..992b25d
--- /dev/null
@@ -0,0 +1,31 @@
+<?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>
diff --git a/res/screen-size-normal/IDL_EVENT_SELECTOR_FORM.xml b/res/screen-size-normal/IDL_EVENT_SELECTOR_FORM.xml
new file mode 100644 (file)
index 0000000..19cc4d8
--- /dev/null
@@ -0,0 +1,29 @@
+<?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>
diff --git a/res/screen-size-normal/IDL_GO_TO_DATE_POPUP.xml b/res/screen-size-normal/IDL_GO_TO_DATE_POPUP.xml
new file mode 100644 (file)
index 0000000..b98fc6b
--- /dev/null
@@ -0,0 +1,28 @@
+<?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>
diff --git a/res/screen-size-normal/IDL_MAIN_FORM.xml b/res/screen-size-normal/IDL_MAIN_FORM.xml
new file mode 100644 (file)
index 0000000..846b286
--- /dev/null
@@ -0,0 +1,27 @@
+<?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>
diff --git a/res/screen-size-normal/IDL_REMINDER_FORM.xml b/res/screen-size-normal/IDL_REMINDER_FORM.xml
new file mode 100644 (file)
index 0000000..6de8635
--- /dev/null
@@ -0,0 +1,26 @@
+<?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>
diff --git a/res/screen-size-normal/IDL_REPEAT_FORM.xml b/res/screen-size-normal/IDL_REPEAT_FORM.xml
new file mode 100644 (file)
index 0000000..797d584
--- /dev/null
@@ -0,0 +1,26 @@
+<?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>
diff --git a/res/screen-size-normal/IDL_SETTING_FORM.xml b/res/screen-size-normal/IDL_SETTING_FORM.xml
new file mode 100644 (file)
index 0000000..e426fd3
--- /dev/null
@@ -0,0 +1,26 @@
+<?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>
diff --git a/res/screen-size-normal/IDL_SHARE_POPUP.xml b/res/screen-size-normal/IDL_SHARE_POPUP.xml
new file mode 100644 (file)
index 0000000..b86df3f
--- /dev/null
@@ -0,0 +1,22 @@
+<?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>
diff --git a/res/screen-size-normal/IDL_TASK_DETAILS_FORM.xml b/res/screen-size-normal/IDL_TASK_DETAILS_FORM.xml
new file mode 100644 (file)
index 0000000..7518c11
--- /dev/null
@@ -0,0 +1,24 @@
+<?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>
diff --git a/res/screen-size-normal/IDL_TASK_SELECTOR_FORM.xml b/res/screen-size-normal/IDL_TASK_SELECTOR_FORM.xml
new file mode 100644 (file)
index 0000000..66c8c93
--- /dev/null
@@ -0,0 +1,29 @@
+<?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>
diff --git a/res/screen-size-normal/IDL_THREE_BUTTON_POPUP.xml b/res/screen-size-normal/IDL_THREE_BUTTON_POPUP.xml
new file mode 100755 (executable)
index 0000000..b4aff5d
--- /dev/null
@@ -0,0 +1,32 @@
+<?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>
diff --git a/res/screen-size-normal/IDL_TWO_BUTTON_POPUP.xml b/res/screen-size-normal/IDL_TWO_BUTTON_POPUP.xml
new file mode 100644 (file)
index 0000000..5658423
--- /dev/null
@@ -0,0 +1,27 @@
+<?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>
diff --git a/res/slk-SK.xml b/res/slk-SK.xml
new file mode 100644 (file)
index 0000000..6f63066
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/slv-SI.xml b/res/slv-SI.xml
new file mode 100644 (file)
index 0000000..71ce449
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/spa-ES.xml b/res/spa-ES.xml
new file mode 100644 (file)
index 0000000..60e3bbe
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/spa-MX.xml b/res/spa-MX.xml
new file mode 100644 (file)
index 0000000..92ec577
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/srp-RS.xml b/res/srp-RS.xml
new file mode 100644 (file)
index 0000000..0d36b9e
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/swe-SE.xml b/res/swe-SE.xml
new file mode 100644 (file)
index 0000000..4e50b33
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/tur-TR.xml b/res/tur-TR.xml
new file mode 100644 (file)
index 0000000..1029a8a
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/ukr-UA.xml b/res/ukr-UA.xml
new file mode 100644 (file)
index 0000000..172cc77
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/uzb-UZ.xml b/res/uzb-UZ.xml
new file mode 100644 (file)
index 0000000..8d0f068
--- /dev/null
@@ -0,0 +1,138 @@
+<?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>
diff --git a/res/zho-CN.xml b/res/zho-CN.xml
new file mode 100644 (file)
index 0000000..d8ceb9a
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/zho-HK.xml b/res/zho-HK.xml
new file mode 100644 (file)
index 0000000..42345cf
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/zho-SG.xml b/res/zho-SG.xml
new file mode 100644 (file)
index 0000000..bb0ddd8
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/res/zho-TW.xml b/res/zho-TW.xml
new file mode 100644 (file)
index 0000000..e3c970f
--- /dev/null
@@ -0,0 +1,139 @@
+<?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>
diff --git a/shared/data/nofile.dummy b/shared/data/nofile.dummy
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/shared/res/screen-density-xhigh/mainmenu.png b/shared/res/screen-density-xhigh/mainmenu.png
new file mode 100644 (file)
index 0000000..53fe65b
Binary files /dev/null and b/shared/res/screen-density-xhigh/mainmenu.png differ
diff --git a/shared/trusted/nofile.dummy b/shared/trusted/nofile.dummy
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/src/ClCalendarApp.cpp b/src/ClCalendarApp.cpp
new file mode 100644 (file)
index 0000000..0cd322e
--- /dev/null
@@ -0,0 +1,335 @@
+//
+// 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();
+       }
+}
diff --git a/src/ClCalendarEntry.cpp b/src/ClCalendarEntry.cpp
new file mode 100644 (file)
index 0000000..bffb419
--- /dev/null
@@ -0,0 +1,76 @@
+//
+// 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
diff --git a/src/ClCalendarListForm.cpp b/src/ClCalendarListForm.cpp
new file mode 100644 (file)
index 0000000..687f0b5
--- /dev/null
@@ -0,0 +1,149 @@
+//
+// 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)
+{
+
+}
diff --git a/src/ClDayEventListForm.cpp b/src/ClDayEventListForm.cpp
new file mode 100644 (file)
index 0000000..db0fa1b
--- /dev/null
@@ -0,0 +1,287 @@
+//
+// 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;
+}
diff --git a/src/ClDayPanel.cpp b/src/ClDayPanel.cpp
new file mode 100644 (file)
index 0000000..fe4ca96
--- /dev/null
@@ -0,0 +1,1505 @@
+//
+// 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 = &pm;
+
+       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);
+               }
+       }
+}
diff --git a/src/ClEventDeleterForm.cpp b/src/ClEventDeleterForm.cpp
new file mode 100755 (executable)
index 0000000..c05c750
--- /dev/null
@@ -0,0 +1,731 @@
+//
+// 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;
+}
diff --git a/src/ClEventDetailsForm.cpp b/src/ClEventDetailsForm.cpp
new file mode 100644 (file)
index 0000000..3c7e8b6
--- /dev/null
@@ -0,0 +1,843 @@
+//
+// 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);
+}
diff --git a/src/ClEventEditorForm.cpp b/src/ClEventEditorForm.cpp
new file mode 100644 (file)
index 0000000..fe652ab
--- /dev/null
@@ -0,0 +1,1654 @@
+//
+// 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;
+}
diff --git a/src/ClEventItem.cpp b/src/ClEventItem.cpp
new file mode 100644 (file)
index 0000000..4da0ac0
--- /dev/null
@@ -0,0 +1,570 @@
+//
+// 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);
+       }
+}
diff --git a/src/ClEventListPresentationModel.cpp b/src/ClEventListPresentationModel.cpp
new file mode 100644 (file)
index 0000000..c345979
--- /dev/null
@@ -0,0 +1,1344 @@
+//
+// 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;
+}
diff --git a/src/ClEventPresentationModel.cpp b/src/ClEventPresentationModel.cpp
new file mode 100644 (file)
index 0000000..985e96b
--- /dev/null
@@ -0,0 +1,992 @@
+//
+// 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);
+}
diff --git a/src/ClEventSearchPresentationModel.cpp b/src/ClEventSearchPresentationModel.cpp
new file mode 100644 (file)
index 0000000..eb8864e
--- /dev/null
@@ -0,0 +1,582 @@
+//
+// 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);
+}
diff --git a/src/ClEventSearcherForm.cpp b/src/ClEventSearcherForm.cpp
new file mode 100644 (file)
index 0000000..3eed2ac
--- /dev/null
@@ -0,0 +1,392 @@
+//
+// 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();
+}
diff --git a/src/ClEventSelectorForm.cpp b/src/ClEventSelectorForm.cpp
new file mode 100644 (file)
index 0000000..995441a
--- /dev/null
@@ -0,0 +1,398 @@
+//
+// 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;
+}
diff --git a/src/ClFormFactory.cpp b/src/ClFormFactory.cpp
new file mode 100644 (file)
index 0000000..62d6b58
--- /dev/null
@@ -0,0 +1,158 @@
+//
+// 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;
+}
diff --git a/src/ClGoToDatePopup.cpp b/src/ClGoToDatePopup.cpp
new file mode 100644 (file)
index 0000000..a5e7014
--- /dev/null
@@ -0,0 +1,110 @@
+//
+// 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();
+}
diff --git a/src/ClListPanel.cpp b/src/ClListPanel.cpp
new file mode 100644 (file)
index 0000000..dcda89b
--- /dev/null
@@ -0,0 +1,564 @@
+//
+// 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;
+}
diff --git a/src/ClMainForm.cpp b/src/ClMainForm.cpp
new file mode 100644 (file)
index 0000000..1c7bda3
--- /dev/null
@@ -0,0 +1,193 @@
+//
+// 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);
+}
diff --git a/src/ClMainFrame.cpp b/src/ClMainFrame.cpp
new file mode 100644 (file)
index 0000000..64126df
--- /dev/null
@@ -0,0 +1,62 @@
+//
+// 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;
+}
diff --git a/src/ClMonthPanel.cpp b/src/ClMonthPanel.cpp
new file mode 100644 (file)
index 0000000..876e73a
--- /dev/null
@@ -0,0 +1,1117 @@
+//
+// 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 = &pm;
+       __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 = &pm;
+       __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);
+               }
+       }
+}
diff --git a/src/ClNodes.cpp b/src/ClNodes.cpp
new file mode 100644 (file)
index 0000000..4fae7db
--- /dev/null
@@ -0,0 +1,191 @@
+//
+// 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;
+}
diff --git a/src/ClPanelFactory.cpp b/src/ClPanelFactory.cpp
new file mode 100644 (file)
index 0000000..b7f1434
--- /dev/null
@@ -0,0 +1,87 @@
+//
+// 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;
+}
diff --git a/src/ClPanningAnimationManager.cpp b/src/ClPanningAnimationManager.cpp
new file mode 100644 (file)
index 0000000..c660ca1
--- /dev/null
@@ -0,0 +1,309 @@
+//
+// 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);
+}
diff --git a/src/ClReminderForm.cpp b/src/ClReminderForm.cpp
new file mode 100644 (file)
index 0000000..de64d2b
--- /dev/null
@@ -0,0 +1,616 @@
+//
+// 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)
+{
+
+}
diff --git a/src/ClRepeatForm.cpp b/src/ClRepeatForm.cpp
new file mode 100644 (file)
index 0000000..4aaab65
--- /dev/null
@@ -0,0 +1,822 @@
+//
+// 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)
+{
+
+}
diff --git a/src/ClResourceManager.cpp b/src/ClResourceManager.cpp
new file mode 100644 (file)
index 0000000..601168d
--- /dev/null
@@ -0,0 +1,299 @@
+//
+// 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;
+}
diff --git a/src/ClSceneRegister.cpp b/src/ClSceneRegister.cpp
new file mode 100644 (file)
index 0000000..6e91396
--- /dev/null
@@ -0,0 +1,113 @@
+//
+// 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;
+}
diff --git a/src/ClSettingForm.cpp b/src/ClSettingForm.cpp
new file mode 100644 (file)
index 0000000..1740e10
--- /dev/null
@@ -0,0 +1,634 @@
+//
+// 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;
+}
diff --git a/src/ClSharePopup.cpp b/src/ClSharePopup.cpp
new file mode 100644 (file)
index 0000000..947455a
--- /dev/null
@@ -0,0 +1,243 @@
+//
+// 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();
+//}
diff --git a/src/ClTaskDetailsForm.cpp b/src/ClTaskDetailsForm.cpp
new file mode 100644 (file)
index 0000000..7407394
--- /dev/null
@@ -0,0 +1,719 @@
+//
+// 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;
+}
diff --git a/src/ClTaskItem.cpp b/src/ClTaskItem.cpp
new file mode 100644 (file)
index 0000000..606a6e1
--- /dev/null
@@ -0,0 +1,343 @@
+//
+// 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);
+       }
+}
diff --git a/src/ClTaskSelectorForm.cpp b/src/ClTaskSelectorForm.cpp
new file mode 100644 (file)
index 0000000..71d1f5e
--- /dev/null
@@ -0,0 +1,398 @@
+//
+// 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;
+}
diff --git a/src/ClThreeButtonPopup.cpp b/src/ClThreeButtonPopup.cpp
new file mode 100755 (executable)
index 0000000..bd38c42
--- /dev/null
@@ -0,0 +1,115 @@
+//
+// 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();
+}
diff --git a/src/ClTwoButtonPopup.cpp b/src/ClTwoButtonPopup.cpp
new file mode 100644 (file)
index 0000000..68b87f3
--- /dev/null
@@ -0,0 +1,107 @@
+//
+// 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();
+}
diff --git a/src/ClTypes.cpp b/src/ClTypes.cpp
new file mode 100644 (file)
index 0000000..ddaddfc
--- /dev/null
@@ -0,0 +1,241 @@
+//
+// 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";
diff --git a/src/ClYearPanel.cpp b/src/ClYearPanel.cpp
new file mode 100644 (file)
index 0000000..648bcc1
--- /dev/null
@@ -0,0 +1,824 @@
+//
+// 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;
+}