Initialize Tizen 2.3 tizen_2.3 2.3a_release submit/tizen_2.3/20140531.054010
authorSehong Na <sehong.na@samsung.com>
Sat, 31 May 2014 03:29:06 +0000 (12:29 +0900)
committerSehong Na <sehong.na@samsung.com>
Sat, 31 May 2014 03:29:06 +0000 (12:29 +0900)
239 files changed:
.cproject [new file with mode: 0644]
.project [new file with mode: 0644]
CMakeLists.txt [new file with mode: 0755]
LICENSE.Flora [new file with mode: 0644]
NOTICE [new file with mode: 0644]
inc/GlAlbumEventListener.h [new file with mode: 0644]
inc/GlAlbumInfo.h [new file with mode: 0644]
inc/GlAlbumListEditorForm.h [new file with mode: 0644]
inc/GlAlbumListForm.h [new file with mode: 0644]
inc/GlAlbumListPresentationModel.h [new file with mode: 0644]
inc/GlAlbumNameEditorForm.h [new file with mode: 0644]
inc/GlAlbumRenameEventListener.h [new file with mode: 0644]
inc/GlAllListEditorPanel.h [new file with mode: 0644]
inc/GlAllListPanel.h [new file with mode: 0644]
inc/GlAllListSelectionPanel.h [new file with mode: 0644]
inc/GlBaseForm.h [new file with mode: 0644]
inc/GlCommonUtil.h [new file with mode: 0644]
inc/GlContentUpdateEventListener.h [new file with mode: 0644]
inc/GlDropDownCustomItem.h [new file with mode: 0644]
inc/GlFileListEditorForm.h [new file with mode: 0644]
inc/GlFileListForm.h [new file with mode: 0644]
inc/GlFileListPresentationModel.h [new file with mode: 0644]
inc/GlFileMoveTimer.h [new file with mode: 0644]
inc/GlFileOpInvalidateListener.h [new file with mode: 0644]
inc/GlFileUpdateTimer.h [new file with mode: 0644]
inc/GlFormContentUpdateEventListener.h [new file with mode: 0644]
inc/GlFormFactory.h [new file with mode: 0644]
inc/GlGalleryApp.h [new file with mode: 0644]
inc/GlIContentFileUpdateManager.h [new file with mode: 0644]
inc/GlImageCropForm.h [new file with mode: 0644]
inc/GlImageListEditorPanel.h [new file with mode: 0644]
inc/GlImageListPanel.h [new file with mode: 0644]
inc/GlMainFrame.h [new file with mode: 0644]
inc/GlPanelFactory.h [new file with mode: 0644]
inc/GlProgressAnimation.h [new file with mode: 0644]
inc/GlProgressBar.h [new file with mode: 0644]
inc/GlRadioCustomItem.h [new file with mode: 0644]
inc/GlResourceManager.h [new file with mode: 0644]
inc/GlSettingMainForm.h [new file with mode: 0644]
inc/GlSettingPresentationModel.h [new file with mode: 0644]
inc/GlSettingToggleCustomItem.h [new file with mode: 0644]
inc/GlSlideSettingListener.h [new file with mode: 0644]
inc/GlSlideShowPopUp.h [new file with mode: 0644]
inc/GlThumbnailEvent.h [new file with mode: 0644]
inc/GlThumbnailEventArg.h [new file with mode: 0644]
inc/GlThumbnailEventListener.h [new file with mode: 0644]
inc/GlThumbnailInfo.h [new file with mode: 0644]
inc/GlThumbnailJob.h [new file with mode: 0644]
inc/GlThumbnailProvider.h [new file with mode: 0644]
inc/GlTimerBase.h [new file with mode: 0644]
inc/GlTimerScanDirListener.h [new file with mode: 0644]
inc/GlTypes.h [new file with mode: 0644]
inc/GlVideoListEditorPanel.h [new file with mode: 0644]
inc/GlVideoListPanel.h [new file with mode: 0644]
manifest.xml [new file with mode: 0644]
packaging/apps.Gallery.spec [new file with mode: 0644]
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/fas-AF.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_button_radio.png [new file with mode: 0644]
res/screen-density-xhigh/00_button_radio_selected.png [new file with mode: 0644]
res/screen-density-xhigh/00_circle_button_Expand_closed.png [new file with mode: 0644]
res/screen-density-xhigh/00_circle_button_Expand_open.png [new file with mode: 0644]
res/screen-density-xhigh/00_icon_more_dim.png [new file with mode: 0644]
res/screen-density-xhigh/00_icon_more_press.png [new file with mode: 0644]
res/screen-density-xhigh/00_icon_select_all_press_web.png [new file with mode: 0644]
res/screen-density-xhigh/00_icon_select_all_web.png [new file with mode: 0644]
res/screen-density-xhigh/00_list_expand_closed.png [new file with mode: 0644]
res/screen-density-xhigh/00_list_expand_closed_press.png [new file with mode: 0644]
res/screen-density-xhigh/00_list_expand_opened.png [new file with mode: 0644]
res/screen-density-xhigh/00_list_expand_opened_press.png [new file with mode: 0644]
res/screen-density-xhigh/00_list_process_01.png [new file with mode: 0644]
res/screen-density-xhigh/00_list_process_02.png [new file with mode: 0644]
res/screen-density-xhigh/00_list_process_03.png [new file with mode: 0644]
res/screen-density-xhigh/00_list_process_04.png [new file with mode: 0644]
res/screen-density-xhigh/00_list_process_05.png [new file with mode: 0644]
res/screen-density-xhigh/00_list_process_06.png [new file with mode: 0644]
res/screen-density-xhigh/00_list_process_07.png [new file with mode: 0644]
res/screen-density-xhigh/00_list_process_08.png [new file with mode: 0644]
res/screen-density-xhigh/00_list_process_09.png [new file with mode: 0644]
res/screen-density-xhigh/00_list_process_10.png [new file with mode: 0644]
res/screen-density-xhigh/00_list_process_11.png [new file with mode: 0644]
res/screen-density-xhigh/00_list_process_12.png [new file with mode: 0644]
res/screen-density-xhigh/00_list_process_13.png [new file with mode: 0644]
res/screen-density-xhigh/00_list_process_14.png [new file with mode: 0644]
res/screen-density-xhigh/00_list_process_15.png [new file with mode: 0644]
res/screen-density-xhigh/00_list_process_16.png [new file with mode: 0644]
res/screen-density-xhigh/00_list_process_17.png [new file with mode: 0644]
res/screen-density-xhigh/00_list_process_18.png [new file with mode: 0644]
res/screen-density-xhigh/00_list_process_19.png [new file with mode: 0644]
res/screen-density-xhigh/00_list_process_20.png [new file with mode: 0644]
res/screen-density-xhigh/00_list_process_21.png [new file with mode: 0644]
res/screen-density-xhigh/00_list_process_22.png [new file with mode: 0644]
res/screen-density-xhigh/00_list_process_23.png [new file with mode: 0644]
res/screen-density-xhigh/00_list_process_24.png [new file with mode: 0644]
res/screen-density-xhigh/00_list_process_25.png [new file with mode: 0644]
res/screen-density-xhigh/00_list_process_26.png [new file with mode: 0644]
res/screen-density-xhigh/00_list_process_27.png [new file with mode: 0644]
res/screen-density-xhigh/00_list_process_28.png [new file with mode: 0644]
res/screen-density-xhigh/00_list_process_29.png [new file with mode: 0644]
res/screen-density-xhigh/00_list_process_30.png [new file with mode: 0644]
res/screen-density-xhigh/T01-1_crop_rectangle.png [new file with mode: 0644]
res/screen-density-xhigh/T01_1_face_tag_icon_email.png [new file with mode: 0644]
res/screen-density-xhigh/T01_1_face_tag_icon_message.png [new file with mode: 0644]
res/screen-density-xhigh/T01_Nocontents_broken.png [new file with mode: 0644]
res/screen-density-xhigh/T01_Nocontents_picture.png [new file with mode: 0644]
res/screen-density-xhigh/T01_album_edit_rename.png [new file with mode: 0644]
res/screen-density-xhigh/T01_album_edit_rename_bg.png [new file with mode: 0644]
res/screen-density-xhigh/T01_album_icon_camera.png [new file with mode: 0644]
res/screen-density-xhigh/T01_album_icon_download.png [new file with mode: 0644]
res/screen-density-xhigh/T01_album_icon_folder.png [new file with mode: 0644]
res/screen-density-xhigh/T01_btn_play.png [new file with mode: 0644]
res/screen-density-xhigh/T01_button_circle_bg_normal.png [new file with mode: 0644]
res/screen-density-xhigh/T01_button_circle_bg_normal_press.png [new file with mode: 0644]
res/screen-density-xhigh/T01_button_rename.png [new file with mode: 0644]
res/screen-density-xhigh/T01_button_reveal.png [new file with mode: 0644]
res/screen-density-xhigh/T01_controlbar_icon_addtag.png [new file with mode: 0644]
res/screen-density-xhigh/T01_controlbar_icon_camera.png [new file with mode: 0644]
res/screen-density-xhigh/T01_controlbar_icon_delete.png [new file with mode: 0644]
res/screen-density-xhigh/T01_controlbar_icon_done.png [new file with mode: 0644]
res/screen-density-xhigh/T01_controlbar_icon_download.png [new file with mode: 0644]
res/screen-density-xhigh/T01_controlbar_icon_edit.png [new file with mode: 0644]
res/screen-density-xhigh/T01_controlbar_icon_more.png [new file with mode: 0644]
res/screen-density-xhigh/T01_controlbar_icon_move.png [new file with mode: 0644]
res/screen-density-xhigh/T01_controlbar_icon_save.png [new file with mode: 0644]
res/screen-density-xhigh/T01_controlbar_icon_share02.png [new file with mode: 0644]
res/screen-density-xhigh/T01_controlbar_icon_slideshow.png [new file with mode: 0644]
res/screen-density-xhigh/T01_grid_select_check.png [new file with mode: 0644]
res/screen-density-xhigh/T01_icon_thumbnail_bookmark.png [new file with mode: 0644]
res/screen-density-xhigh/T01_icon_thumbnail_favorite.png [new file with mode: 0644]
res/screen-density-xhigh/T01_main_folder_bg.png [new file with mode: 0644]
res/screen-density-xhigh/T01_places_thumbnail_bg.png [new file with mode: 0644]
res/screen-density-xhigh/T01_toolbar_icon_delete_dim_web.png [new file with mode: 0644]
res/screen-density-xhigh/T01_toolbar_icon_share_dim_web.png [new file with mode: 0644]
res/screen-size-normal/IDL_DEL_PROGRESSING_POPUP.xml [new file with mode: 0644]
res/screen-size-normal/IDL_FORM_ALBUM_LIST.xml [new file with mode: 0644]
res/screen-size-normal/IDL_FORM_ALBUM_LIST_EDITOR.xml [new file with mode: 0644]
res/screen-size-normal/IDL_FORM_ALBUM_NAME_EDITOR.xml [new file with mode: 0644]
res/screen-size-normal/IDL_FORM_FILE_LIST.xml [new file with mode: 0644]
res/screen-size-normal/IDL_FORM_FILE_LIST_EDITOR.xml [new file with mode: 0644]
res/screen-size-normal/IDL_FORM_IMAGE_CROP.xml [new file with mode: 0644]
res/screen-size-normal/IDL_FORM_SETTING_MAIN.xml [new file with mode: 0644]
res/screen-size-normal/IDL_SLIDESHOW_SETTING_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/tha-TH.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/urd-IN.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/GalleryDefaultSettings.ini [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/GlAlbumInfo.cpp [new file with mode: 0644]
src/GlAlbumListEditorForm.cpp [new file with mode: 0644]
src/GlAlbumListForm.cpp [new file with mode: 0644]
src/GlAlbumListPresentationModel.cpp [new file with mode: 0644]
src/GlAlbumNameEditorForm.cpp [new file with mode: 0644]
src/GlAllListEditorPanel.cpp [new file with mode: 0644]
src/GlAllListPanel.cpp [new file with mode: 0644]
src/GlAllListSelectionPanel.cpp [new file with mode: 0644]
src/GlBaseForm.cpp [new file with mode: 0644]
src/GlCommonUtil.cpp [new file with mode: 0644]
src/GlContentUpdateEventListener.cpp [new file with mode: 0644]
src/GlDropDownCustomItem.cpp [new file with mode: 0644]
src/GlFileListEditorForm.cpp [new file with mode: 0644]
src/GlFileListForm.cpp [new file with mode: 0644]
src/GlFileListPresentationModel.cpp [new file with mode: 0644]
src/GlFileMoveTimer.cpp [new file with mode: 0644]
src/GlFileUpdateTimer.cpp [new file with mode: 0644]
src/GlFormFactory.cpp [new file with mode: 0644]
src/GlGalleryApp.cpp [new file with mode: 0644]
src/GlGalleryEntry.cpp [new file with mode: 0644]
src/GlImageCropForm.cpp [new file with mode: 0644]
src/GlImageListEditorPanel.cpp [new file with mode: 0644]
src/GlImageListPanel.cpp [new file with mode: 0644]
src/GlMainFrame.cpp [new file with mode: 0644]
src/GlPanelFactory.cpp [new file with mode: 0644]
src/GlProgressAnimation.cpp [new file with mode: 0644]
src/GlProgressBar.cpp [new file with mode: 0644]
src/GlRadioCustomItem.cpp [new file with mode: 0644]
src/GlResourceManager.cpp [new file with mode: 0644]
src/GlSettingMainForm.cpp [new file with mode: 0644]
src/GlSettingPresentationModel.cpp [new file with mode: 0644]
src/GlSettingToggleCustomItem.cpp [new file with mode: 0644]
src/GlSlideShowPopUp.cpp [new file with mode: 0644]
src/GlThumbnailEvent.cpp [new file with mode: 0644]
src/GlThumbnailEventArg.cpp [new file with mode: 0644]
src/GlThumbnailInfo.cpp [new file with mode: 0755]
src/GlThumbnailJob.cpp [new file with mode: 0644]
src/GlThumbnailProvider.cpp [new file with mode: 0644]
src/GlTimerBase.cpp [new file with mode: 0644]
src/GlTypes.cpp [new file with mode: 0644]
src/GlVideoListEditorPanel.cpp [new file with mode: 0644]
src/GlVideoListPanel.cpp [new file with mode: 0644]

diff --git a/.cproject b/.cproject
new file mode 100644 (file)
index 0000000..a9a0efd
--- /dev/null
+++ b/.cproject
@@ -0,0 +1,673 @@
+<?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.648452013">
+                       <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecpp.config.sbi.gcc45.app.debug.emulator.648452013" 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="Gallery" 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.emulator.648452013" name="Debug-Tizen-Emulator" parent="org.tizen.nativecpp.config.sbi.gcc45.app.debug.emulator">
+                                       <folderInfo id="org.tizen.nativecpp.config.sbi.gcc45.app.debug.emulator.648452013." name="/" resourcePath="">
+                                               <toolChain id="org.tizen.nativecpp.toolchain.sbi.gcc45.app.debug.emulator.776689888" 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.1155527474" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+                                                       <builder buildPath="${workspace_loc:/Gallery/Debug-Tizen-Emulator}" id="org.tizen.nativecpp.target.sbi.gnu.builder.1396583573" 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.1865402784" name="Archiver" superClass="org.tizen.nativecpp.tool.sbi.gnu.archiver"/>
+                                                       <tool command="i386-linux-gnueabi-g++.exe" id="org.tizen.nativecpp.tool.sbi.gnu.cpp.compiler.362827773" name="C++ Compiler" superClass="org.tizen.nativecpp.tool.sbi.gnu.cpp.compiler">
+                                                               <option id="gnu.cpp.compiler.option.optimization.level.263156029" 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.1276131392" 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.1391502603" 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.670837388" 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.1824418574" 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;C:\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.1865810971" 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.555373684" superClass="sbi.gnu.cpp.compiler.option.frameworks.cpp" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="osp"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.compiler.option.preprocessor.def.1126898722" superClass="gnu.cpp.compiler.option.preprocessor.def" valueType="definedSymbols">
+                                                                       <listOptionValue builtIn="false" value="_DEBUG"/>
+                                                               </option>
+                                                               <inputType id="sbi.gnu.cpp.compiler.tizen.inputType.1789771064" superClass="sbi.gnu.cpp.compiler.tizen.inputType"/>
+                                                       </tool>
+                                                       <tool command="i386-linux-gnueabi-gcc.exe" id="org.tizen.nativecpp.tool.sbi.gnu.c.compiler.46501285" 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.1333914268" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" valueType="enumerated"/>
+                                                               <option id="gnu.c.compiler.option.debugging.level.52600013" 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.1243417132" 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.683008709" 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.1419646524" 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.1708673031" 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;C:\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.265166881" 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.591948814" superClass="gnu.c.compiler.option.preprocessor.def.symbols" valueType="definedSymbols">
+                                                                       <listOptionValue builtIn="false" value="_DEBUG"/>
+                                                               </option>
+                                                               <inputType id="sbi.gnu.c.compiler.tizen.inputType.1337884702" superClass="sbi.gnu.c.compiler.tizen.inputType"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.1010872838" name="C Linker" superClass="org.tizen.nativeide.tool.sbi.gnu.c.linker.base"/>
+                                                       <tool command="i386-linux-gnueabi-g++.exe" id="org.tizen.nativecpp.tool.sbi.gnu.cpp.linker.1308967595" name="C++ Linker" superClass="org.tizen.nativecpp.tool.sbi.gnu.cpp.linker">
+                                                               <option id="gnu.cpp.link.option.paths.397815603" 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.1139689213" 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="-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="-lxml2"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.430134972" 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.exe" id="org.tizen.nativeapp.tool.sbi.gnu.assembler.base.660961956" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+                                                               <inputType id="cdt.managedbuild.tool.gnu.assembler.input.666549859" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativecpp.tool.sbi.po.compiler.751958325" name="PO Resource Compiler" superClass="org.tizen.nativecpp.tool.sbi.po.compiler"/>
+                                                       <tool id="org.tizen.nativecpp.tool.sbi.edc.compiler.1784175039" 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.1075373877">
+                       <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecpp.config.sbi.gcc45.app.debug.device.1075373877" 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.1075373877" 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.1075373877." name="/" resourcePath="">
+                                               <toolChain id="org.tizen.nativecpp.toolchain.sbi.gcc45.app.debug.device.727365644" 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.867402765" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+                                                       <builder buildPath="${workspace_loc:/Gallery/Debug-Tizen-Device}" id="org.tizen.nativecpp.target.sbi.gnu.builder.1364113344" 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.437785089" name="Archiver" superClass="org.tizen.nativecpp.tool.sbi.gnu.archiver"/>
+                                                       <tool command="arm-linux-gnueabi-g++.exe" id="org.tizen.nativecpp.tool.sbi.gnu.cpp.compiler.825214463" name="C++ Compiler" superClass="org.tizen.nativecpp.tool.sbi.gnu.cpp.compiler">
+                                                               <option id="gnu.cpp.compiler.option.optimization.level.513169402" 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.98200745" 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.1366545876" 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.1428987418" 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.1558307258" 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;C:\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.1745190475" 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.302184917" superClass="sbi.gnu.cpp.compiler.option.frameworks.cpp" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="osp"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.compiler.option.preprocessor.def.2074995145" superClass="gnu.cpp.compiler.option.preprocessor.def" valueType="definedSymbols">
+                                                                       <listOptionValue builtIn="false" value="_DEBUG"/>
+                                                               </option>
+                                                               <inputType id="sbi.gnu.cpp.compiler.tizen.inputType.973695341" superClass="sbi.gnu.cpp.compiler.tizen.inputType"/>
+                                                       </tool>
+                                                       <tool command="arm-linux-gnueabi-gcc.exe" id="org.tizen.nativecpp.tool.sbi.gnu.c.compiler.1885920022" 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.1422936518" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" valueType="enumerated"/>
+                                                               <option id="gnu.c.compiler.option.debugging.level.2081946078" 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.1152328519" 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.778925081" 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.2079990400" 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.548109008" 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;C:\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.1817155315" 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.1262769732" superClass="gnu.c.compiler.option.preprocessor.def.symbols" valueType="definedSymbols">
+                                                                       <listOptionValue builtIn="false" value="_DEBUG"/>
+                                                               </option>
+                                                               <inputType id="sbi.gnu.c.compiler.tizen.inputType.1428723759" superClass="sbi.gnu.c.compiler.tizen.inputType"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.849904819" name="C Linker" superClass="org.tizen.nativeide.tool.sbi.gnu.c.linker.base"/>
+                                                       <tool command="arm-linux-gnueabi-g++.exe" id="org.tizen.nativecpp.tool.sbi.gnu.cpp.linker.982299104" name="C++ Linker" superClass="org.tizen.nativecpp.tool.sbi.gnu.cpp.linker">
+                                                               <option id="gnu.cpp.link.option.paths.69505426" 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.1581316714" 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="-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="-lxml2"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.520453296" 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.exe" id="org.tizen.nativeapp.tool.sbi.gnu.assembler.base.779340997" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+                                                               <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1478564084" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativecpp.tool.sbi.po.compiler.1624526445" name="PO Resource Compiler" superClass="org.tizen.nativecpp.tool.sbi.po.compiler"/>
+                                                       <tool id="org.tizen.nativecpp.tool.sbi.edc.compiler.1819067853" 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.release.443790766">
+                       <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecpp.config.sbi.gcc45.app.release.443790766" 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.443790766" name="Release" parent="org.tizen.nativecpp.config.sbi.gcc45.app.release">
+                                       <folderInfo id="org.tizen.nativecpp.config.sbi.gcc45.app.release.443790766." name="/" resourcePath="">
+                                               <toolChain id="org.tizen.nativecpp.toolchain.sbi.gcc45.app.release.1374265676" 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.151170278" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+                                                       <builder buildPath="${workspace_loc:/Gallery/Release}" id="org.tizen.nativecpp.target.sbi.gnu.builder.239344637" 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.1853837001" name="Archiver" superClass="org.tizen.nativecpp.tool.sbi.gnu.archiver"/>
+                                                       <tool command="arm-linux-gnueabi-g++.exe" id="org.tizen.nativecpp.tool.sbi.gnu.cpp.compiler.1131125392" name="C++ Compiler" superClass="org.tizen.nativecpp.tool.sbi.gnu.cpp.compiler">
+                                                               <option id="gnu.cpp.compiler.option.optimization.level.280441701" 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.741639072" 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.2095956757" 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.1362510377" 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.1621367502" 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;C:\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.46062389" 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.2054825243" superClass="sbi.gnu.cpp.compiler.option.frameworks.cpp" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="osp"/>
+                                                               </option>
+                                                               <inputType id="sbi.gnu.cpp.compiler.tizen.inputType.580645561" superClass="sbi.gnu.cpp.compiler.tizen.inputType"/>
+                                                       </tool>
+                                                       <tool command="arm-linux-gnueabi-gcc.exe" id="org.tizen.nativecpp.tool.sbi.gnu.c.compiler.1265871311" 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.1050853388" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" valueType="enumerated"/>
+                                                               <option id="gnu.c.compiler.option.debugging.level.1758996871" 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.1381221616" 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.728718470" 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.478840116" 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.1882215970" 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;C:\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.1205348297" 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.1344754076" superClass="sbi.gnu.c.compiler.tizen.inputType"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.1856574309" name="C Linker" superClass="org.tizen.nativeide.tool.sbi.gnu.c.linker.base"/>
+                                                       <tool command="arm-linux-gnueabi-g++.exe" id="org.tizen.nativecpp.tool.sbi.gnu.cpp.linker.1362795198" name="C++ Linker" superClass="org.tizen.nativecpp.tool.sbi.gnu.cpp.linker">
+                                                               <option id="gnu.cpp.link.option.paths.590580363" 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.1199711770" 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="-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="-lxml2"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1871622040" 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.exe" id="org.tizen.nativeapp.tool.sbi.gnu.assembler.base.1047487597" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+                                                               <inputType id="cdt.managedbuild.tool.gnu.assembler.input.869022027" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativecpp.tool.sbi.po.compiler.1083106266" name="PO Resource Compiler" superClass="org.tizen.nativecpp.tool.sbi.po.compiler"/>
+                                                       <tool id="org.tizen.nativecpp.tool.sbi.edc.compiler.1017515528" 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.emulator.da.1538406997">
+                       <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecpp.config.sbi.gcc45.app.debug.emulator.da.1538406997" 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.1538406997" 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.1538406997." name="/" resourcePath="">
+                                               <toolChain id="org.tizen.nativecpp.toolchain.sbi.gcc45.app.debug.emulator.da.883236935" 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.128622971" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+                                                       <builder buildPath="${workspace_loc:/Gallery/DA-Tizen-Emulator}" id="org.tizen.nativecpp.target.sbi.gnu.builder.1702906133" 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.1273599655" name="Archiver" superClass="org.tizen.nativecpp.tool.sbi.gnu.archiver"/>
+                                                       <tool command="i386-linux-gnueabi-g++.exe" id="org.tizen.nativecpp.tool.sbi.gnu.cpp.compiler.da.1120190387" name="C++ Compiler" superClass="org.tizen.nativecpp.tool.sbi.gnu.cpp.compiler.da">
+                                                               <option id="sbi.gnu.cpp.compiler.option.612037464" 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.1317595142" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SDK_INSTALL_PATH}/library&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks_inc.cpp.660321093" 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;C:\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.2063995872" 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.1171269753" superClass="sbi.gnu.cpp.compiler.option.frameworks.cpp" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="osp"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.compiler.option.preprocessor.def.660383360" superClass="gnu.cpp.compiler.option.preprocessor.def" valueType="definedSymbols">
+                                                                       <listOptionValue builtIn="false" value="_USE_DA_"/>
+                                                               </option>
+                                                               <inputType id="sbi.gnu.cpp.compiler.tizen.inputType.2026685720" superClass="sbi.gnu.cpp.compiler.tizen.inputType"/>
+                                                       </tool>
+                                                       <tool command="i386-linux-gnueabi-gcc.exe" id="org.tizen.nativecpp.tool.sbi.gnu.c.compiler.1957184909" name="C Compiler" superClass="org.tizen.nativecpp.tool.sbi.gnu.c.compiler">
+                                                               <option id="sbi.gnu.c.compiler.option.147980922" 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.685974248" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SDK_INSTALL_PATH}/library&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks.cpp.498558225" 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.1063387526" 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;C:\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.1235680821" 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.2703448" 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.142180764" superClass="sbi.gnu.c.compiler.tizen.inputType"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.816934004" name="C Linker" superClass="org.tizen.nativeide.tool.sbi.gnu.c.linker.base"/>
+                                                       <tool command="i386-linux-gnueabi-g++.exe" id="org.tizen.nativecpp.tool.sbi.gnu.cpp.linker.da.1693523997" name="C++ Linker" superClass="org.tizen.nativecpp.tool.sbi.gnu.cpp.linker.da">
+                                                               <option id="gnu.cpp.link.option.paths.1969025289" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lib}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SDK_INSTALL_PATH}/library/da/x86&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.linker.option.frameworks_lflags.cpp.1186656982" 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="-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="-lxml2"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.link.option.libs.1018055183" superClass="gnu.cpp.link.option.libs" valueType="libs">
+                                                                       <listOptionValue builtIn="false" value="daprobe"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.222333177" 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.exe" id="org.tizen.nativeapp.tool.sbi.gnu.assembler.base.1394778402" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+                                                               <inputType id="cdt.managedbuild.tool.gnu.assembler.input.192581995" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativecpp.tool.sbi.po.compiler.1721112598" name="PO Resource Compiler" superClass="org.tizen.nativecpp.tool.sbi.po.compiler"/>
+                                                       <tool id="org.tizen.nativecpp.tool.sbi.edc.compiler.1033251360" 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.171024521">
+                       <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="org.tizen.nativecpp.config.sbi.gcc45.app.debug.device.da.171024521" 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.171024521" 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.171024521." name="/" resourcePath="">
+                                               <toolChain id="org.tizen.nativecpp.toolchain.sbi.gcc45.app.debug.device.da.1769310888" 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.230946295" osList="linux,win32" superClass="org.tizen.nativeide.target.sbi.gnu.platform.base"/>
+                                                       <builder buildPath="${workspace_loc:/Gallery/DA-Tizen-Device}" id="org.tizen.nativecpp.target.sbi.gnu.builder.1832484851" 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.707995102" name="Archiver" superClass="org.tizen.nativecpp.tool.sbi.gnu.archiver"/>
+                                                       <tool command="arm-linux-gnueabi-g++.exe" id="org.tizen.nativecpp.tool.sbi.gnu.cpp.compiler.da.1354420544" name="C++ Compiler" superClass="org.tizen.nativecpp.tool.sbi.gnu.cpp.compiler.da">
+                                                               <option id="sbi.gnu.cpp.compiler.option.62081977" 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.393093851" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SDK_INSTALL_PATH}/library&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.compiler.option.frameworks_inc.cpp.383308350" 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;C:\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.213275858" 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.1471922507" superClass="sbi.gnu.cpp.compiler.option.frameworks.cpp" valueType="userObjs">
+                                                                       <listOptionValue builtIn="false" value="osp"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.compiler.option.preprocessor.def.1690488996" superClass="gnu.cpp.compiler.option.preprocessor.def" valueType="definedSymbols">
+                                                                       <listOptionValue builtIn="false" value="_USE_DA_"/>
+                                                               </option>
+                                                               <inputType id="sbi.gnu.cpp.compiler.tizen.inputType.234656402" superClass="sbi.gnu.cpp.compiler.tizen.inputType"/>
+                                                       </tool>
+                                                       <tool command="arm-linux-gnueabi-gcc.exe" id="org.tizen.nativecpp.tool.sbi.gnu.c.compiler.501537343" name="C Compiler" superClass="org.tizen.nativecpp.tool.sbi.gnu.c.compiler">
+                                                               <option id="sbi.gnu.c.compiler.option.72030310" 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.1256685430" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/inc}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SDK_INSTALL_PATH}/library&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.c.compiler.option.frameworks.cpp.366854910" 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.1812242127" 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;C:\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.1900596511" 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.970038669" 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.1569343073" superClass="sbi.gnu.c.compiler.tizen.inputType"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativeide.tool.sbi.gnu.c.linker.base.1466482893" name="C Linker" superClass="org.tizen.nativeide.tool.sbi.gnu.c.linker.base"/>
+                                                       <tool command="arm-linux-gnueabi-g++.exe" id="org.tizen.nativecpp.tool.sbi.gnu.cpp.linker.da.581549328" name="C++ Linker" superClass="org.tizen.nativecpp.tool.sbi.gnu.cpp.linker.da">
+                                                               <option id="gnu.cpp.link.option.paths.1019226805" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lib}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${SDK_INSTALL_PATH}/library/da/arm&quot;"/>
+                                                               </option>
+                                                               <option id="sbi.gnu.cpp.linker.option.frameworks_lflags.cpp.1554966759" 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="-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="-lxml2"/>
+                                                               </option>
+                                                               <option id="gnu.cpp.link.option.libs.1217332614" superClass="gnu.cpp.link.option.libs" valueType="libs">
+                                                                       <listOptionValue builtIn="false" value="daprobe"/>
+                                                               </option>
+                                                               <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1428347100" 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.exe" id="org.tizen.nativeapp.tool.sbi.gnu.assembler.base.1268486895" name="Assembler" superClass="org.tizen.nativeapp.tool.sbi.gnu.assembler.base">
+                                                               <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1717347617" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+                                                       </tool>
+                                                       <tool id="org.tizen.nativecpp.tool.sbi.po.compiler.1857494238" name="PO Resource Compiler" superClass="org.tizen.nativecpp.tool.sbi.po.compiler"/>
+                                                       <tool id="org.tizen.nativecpp.tool.sbi.edc.compiler.1086838634" 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>
+       </storageModule>
+       <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+               <project id="Gallery.org.tizen.nativecpp.target.sbi.gcc45.app.1017686573" name="Tizen Application" projectType="org.tizen.nativecpp.target.sbi.gcc45.app"/>
+       </storageModule>
+       <storageModule moduleId="scannerConfiguration">
+               <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+               <scannerConfigBuildInfo instanceId="org.tizen.nativecpp.config.sbi.gcc45.app.debug.emulator.648452013">
+                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.tizen.nativecommon.TizenGCCManagedMakePerProjectProfileCPP"/>
+               </scannerConfigBuildInfo>
+               <scannerConfigBuildInfo instanceId="org.tizen.nativecpp.config.sbi.gcc45.app.debug.device.da.171024521">
+                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.tizen.nativecommon.TizenGCCManagedMakePerProjectProfileCPP"/>
+               </scannerConfigBuildInfo>
+               <scannerConfigBuildInfo instanceId="org.tizen.nativecpp.config.sbi.gcc45.app.release.443790766">
+                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.tizen.nativecommon.TizenGCCManagedMakePerProjectProfileCPP"/>
+               </scannerConfigBuildInfo>
+               <scannerConfigBuildInfo instanceId="org.tizen.nativecpp.config.sbi.gcc45.app.debug.device.1075373877">
+                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.tizen.nativecommon.TizenGCCManagedMakePerProjectProfileCPP"/>
+               </scannerConfigBuildInfo>
+               <scannerConfigBuildInfo instanceId="org.tizen.nativecpp.config.sbi.gcc45.app.debug.emulator.da.1538406997">
+                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.tizen.nativecommon.TizenGCCManagedMakePerProjectProfileCPP"/>
+               </scannerConfigBuildInfo>
+       </storageModule>
+       <storageModule moduleId="com.samsung.tizen.nativeapp.projectInfo" version="1.0.0"/>
+       <storageModule moduleId="refreshScope"/>
+</cproject>
diff --git a/.project b/.project
new file mode 100644 (file)
index 0000000..708a503
--- /dev/null
+++ b/.project
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+       <name>Gallery</name>
+       <comment></comment>
+       <projects>
+       </projects>
+       <buildSpec>
+               <buildCommand>
+                       <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+                       <triggers>clean,full,incremental,</triggers>
+                       <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></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:/Gallery/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>false</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 100755 (executable)
index 0000000..49be476
--- /dev/null
@@ -0,0 +1,32 @@
+# Target name and PKGID
+## TODO : set application name and ID
+SET(this_target Gallery)
+SET(PKGID ijudt7w61q)
+
+# 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
+## TODO : add more link libraries and options
+TARGET_LINK_LIBRARIES(${this_target} -L/usr/lib/osp osp-appfw osp-uifw osp-media osp-image osp-content pthread)
+TARGET_LINK_LIBRARIES(${this_target} -Xlinker --allow-shlib-undefined -pthread -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..571fe79
--- /dev/null
@@ -0,0 +1,206 @@
+Flora License
+
+Version 1.1, April, 2013
+
+http://floralicense.org/license/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+"License" shall mean the terms and conditions for use, reproduction,
+and distribution as defined by Sections 1 through 9 of this document.
+
+"Licensor" shall mean the copyright owner or entity authorized by
+the copyright owner that is granting the License.
+
+"Legal Entity" shall mean the union of the acting entity and
+all other entities that control, are controlled by, or are
+under common control with that entity. For the purposes of
+this definition, "control" means (i) the power, direct or indirect,
+to cause the direction or management of such entity,
+whether by contract or otherwise, or (ii) ownership of fifty percent (50%)
+or more of the outstanding shares, or (iii) beneficial ownership of
+such entity.
+
+"You" (or "Your") shall mean an individual or Legal Entity
+exercising permissions granted by this License.
+
+"Source" form shall mean the preferred form for making modifications,
+including but not limited to software source code, documentation source,
+and configuration files.
+
+"Object" form shall mean any form resulting from mechanical
+transformation or translation of a Source form, including but
+not limited to compiled object code, generated documentation,
+and conversions to other media types.
+
+"Work" shall mean the work of authorship, whether in Source or Object form,
+made available under the License, as indicated by a copyright notice
+that is included in or attached to the work (an example is provided
+in the Appendix below).
+
+"Derivative Works" shall mean any work, whether in Source or Object form,
+that is based on (or derived from) the Work and for which the editorial
+revisions, annotations, elaborations, or other modifications represent,
+as a whole, an original work of authorship. For the purposes of this License,
+Derivative Works shall not include works that remain separable from,
+or merely link (or bind by name) to the interfaces of, the Work and
+Derivative Works thereof.
+
+"Contribution" shall mean any work of authorship, including the original
+version of the Work and any modifications or additions to that Work or
+Derivative Works thereof, that is intentionally submitted to Licensor
+for inclusion in the Work by the copyright owner or by an individual or
+Legal Entity authorized to submit on behalf of the copyright owner.
+For the purposes of this definition, "submitted" means any form of
+electronic, verbal, or written communication sent to the Licensor or
+its representatives, including but not limited to communication on
+electronic mailing lists, source code control systems, and issue
+tracking systems that are managed by, or on behalf of, the Licensor
+for the purpose of discussing and improving the Work, but excluding
+communication that is conspicuously marked or otherwise designated
+in writing by the copyright owner as "Not a Contribution."
+
+"Contributor" shall mean Licensor and any individual or Legal Entity
+on behalf of whom a Contribution has been received by Licensor and
+subsequently incorporated within the Work.
+
+"Tizen Certified Platform" shall mean a software platform that complies
+with the standards set forth in the Tizen Compliance Specification
+and passes the Tizen Compliance Tests as defined from time to time
+by the Tizen Technical Steering Group and certified by the Tizen
+Association or its designated agent.
+
+2. Grant of Copyright License.  Subject to the terms and conditions of
+this License, each Contributor hereby grants to You a perpetual,
+worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+copyright license to reproduce, prepare Derivative Works of,
+publicly display, publicly perform, sublicense, and distribute the
+Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License.  Subject to the terms and conditions of
+this License, each Contributor hereby grants to You a perpetual,
+worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+(except as stated in this section) patent license to make, have made,
+use, offer to sell, sell, import, and otherwise transfer the Work
+solely as incorporated into a Tizen Certified Platform, where such
+license applies only to those patent claims licensable by such
+Contributor that are necessarily infringed by their Contribution(s)
+alone or by combination of their Contribution(s) with the Work solely
+as incorporated into a Tizen Certified Platform to which such
+Contribution(s) was submitted. If You institute patent litigation
+against any entity (including a cross-claim or counterclaim
+in a lawsuit) alleging that the Work or a Contribution incorporated
+within the Work constitutes direct or contributory patent infringement,
+then any patent licenses granted to You under this License for that
+Work shall terminate as of the date such litigation is filed.
+
+4. Redistribution.  You may reproduce and distribute copies of the
+Work or Derivative Works thereof pursuant to the copyright license
+above, in any medium, with or without modifications, and in Source or
+Object form, provided that You meet the following conditions:
+
+  1. You must give any other recipients of the Work or Derivative Works
+     a copy of this License; and
+  2. You must cause any modified files to carry prominent notices stating
+     that You changed the files; and
+  3. You must retain, in the Source form of any Derivative Works that
+     You distribute, all copyright, patent, trademark, and attribution
+     notices from the Source form of the Work, excluding those notices
+     that do not pertain to any part of the Derivative Works; and
+  4. If the Work includes a "NOTICE" text file as part of its distribution,
+     then any Derivative Works that You distribute must include a readable
+     copy of the attribution notices contained within such NOTICE file,
+     excluding those notices that do not pertain to any part of
+     the Derivative Works, in at least one of the following places:
+     within a NOTICE text file distributed as part of the Derivative Works;
+     within the Source form or documentation, if provided along with the
+     Derivative Works; or, within a display generated by the Derivative Works,
+     if and wherever such third-party notices normally appear.
+     The contents of the NOTICE file are for informational purposes only
+     and do not modify the License. You may add Your own attribution notices 
+     within Derivative Works that You distribute, alongside or as an addendum 
+     to the NOTICE text from the Work, provided that such additional attribution 
+     notices cannot be construed as modifying the License. You may add Your own
+     copyright statement to Your modifications and may provide additional or
+     different license terms and conditions for use, reproduction, or
+     distribution of Your modifications, or for any such Derivative Works
+     as a whole, provided Your use, reproduction, and distribution of
+     the Work otherwise complies with the conditions stated in this License
+     and your own copyright statement or terms and conditions do not conflict
+     the conditions stated in the License including section 3.
+
+5. Submission of Contributions. Unless You explicitly state otherwise,
+any Contribution intentionally submitted for inclusion in the Work
+by You to the Licensor shall be under the terms and conditions of
+this License, without any additional terms or conditions.
+Notwithstanding the above, nothing herein shall supersede or modify
+the terms of any separate license agreement you may have executed
+with Licensor regarding such Contributions.
+
+6. Trademarks.  This License does not grant permission to use the trade
+names, trademarks, service marks, or product names of the Licensor,
+except as required for reasonable and customary use in describing the
+origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or
+agreed to in writing, Licensor provides the Work (and each
+Contributor provides its Contributions) on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+implied, including, without limitation, any warranties or conditions
+of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+PARTICULAR PURPOSE. You are solely responsible for determining the
+appropriateness of using or redistributing the Work and assume any
+risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory,
+whether in tort (including negligence), contract, or otherwise,
+unless required by applicable law (such as deliberate and grossly
+negligent acts) or agreed to in writing, shall any Contributor be
+liable to You for damages, including any direct, indirect, special,
+incidental, or consequential damages of any character arising as a
+result of this License or out of the use or inability to use the
+Work (including but not limited to damages for loss of goodwill,
+work stoppage, computer failure or malfunction, or any and all
+other commercial damages or losses), even if such Contributor
+has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing
+the Work or Derivative Works thereof, You may choose to offer,
+and charge a fee for, acceptance of support, warranty, indemnity,
+or other liability obligations and/or rights consistent with this
+License. However, in accepting such obligations, You may act only
+on Your own behalf and on Your sole responsibility, not on behalf
+of any other Contributor, and only if You agree to indemnify,
+defend, and hold each Contributor harmless for any liability
+incurred by, or claims asserted against, such Contributor by reason
+of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Flora License to your work
+
+To apply the Flora License to your work, attach the following
+boilerplate notice, with the fields enclosed by brackets "[]"
+replaced with your own identifying information. (Don't include
+the brackets!) The text should be enclosed in the appropriate
+comment syntax for the file format. We also recommend that a
+file or class name and description of purpose be included on the
+same "printed page" as the copyright notice for easier
+identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Flora License, Version 1.1 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://floralicense.org/license/
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
diff --git a/NOTICE b/NOTICE
new file mode 100644 (file)
index 0000000..1ac0202
--- /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.1.
+Please, see the LICENSE.Flora file for Flora License, Version 1.1 terms and conditions.
\ No newline at end of file
diff --git a/inc/GlAlbumEventListener.h b/inc/GlAlbumEventListener.h
new file mode 100644 (file)
index 0000000..9840955
--- /dev/null
@@ -0,0 +1,36 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlAlbumEventListener.h
+ * @brief              This is the header file for AlbumEventListener class.
+ */
+
+#ifndef _GL_ALBUM_EVENT_LISTENER_H_
+#define _GL_ALBUM_EVENT_LISTENER_H_
+
+#include <FContent.h>
+
+class IAlbumEventListener
+       : public Tizen::Base::Object
+{
+public:
+       virtual ~IAlbumEventListener(void) {};
+       virtual void OnFileInfoChanged(const Tizen::Content::ContentType contentType) = 0;
+       virtual void OnThumbnailDecoded(const int index) = 0;
+};
+
+#endif /* _GL_ALBUM_EVENT_LISTENER_H_ */
diff --git a/inc/GlAlbumInfo.h b/inc/GlAlbumInfo.h
new file mode 100644 (file)
index 0000000..07e76d9
--- /dev/null
@@ -0,0 +1,71 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlAlbumInfo.h
+ * @brief              This is the header file for AlbumInfo class.
+ */
+
+#ifndef _GL_ALBUM_INFO_H_
+#define _GL_ALBUM_INFO_H_
+
+#include <FContent.h>
+#include "GlTypes.h"
+
+class AlbumInfo
+       : public Tizen::Base::Object
+{
+public:
+       AlbumInfo(void);
+       virtual ~AlbumInfo(void);
+
+       result Construct(void);
+       result Construct(const Tizen::Base::String& albumName, Tizen::Content::ContentType contentType,
+                                       const Tizen::Base::Collection::IList& directoryList,
+                                       const Tizen::Base::Collection::IList& contentIdList);
+       result Construct(const AlbumInfo& albumInfo);
+
+       Tizen::Base::String GetAlbumName(void) const;
+       void SetAlbumName(const Tizen::Base::String& albumName);
+       Tizen::Base::String GetDirectory(int index) const;
+       Tizen::Base::Collection::IList* GetDirectoryListN(void) const;
+       void ClearDirectoryList(void);
+       void AppendDirectory(const Tizen::Base::String& directoryPath);
+       void AppendDirectoryList(const Tizen::Base::Collection::ICollection& directoryList);
+       int GetDirectoryCount(void) const;
+
+       void ClearAll(void);
+       AlbumInfoType GetAlbumInfoType(void) const;
+
+       Tizen::Graphics::Bitmap* GetFolderThumnailBitmap(void) const;
+       void SetFolderThumnailBitmap(Tizen::Graphics::Bitmap* folderThumnailBitmap);
+
+       void ClearContentIdList(void);
+       Tizen::Base::Collection::IList* GetContentIdListN(void) const;
+       Tizen::Content::ContentId GetContentId(int index) const;
+       void AppendContentId(const Tizen::Content::ContentId& contentId);
+       void AppendContentIdList(const Tizen::Base::Collection::ICollection& contentIdList);
+       int GetContentIdCount(void) const;
+       result RemoveContentIdAt(const int index);
+
+private:
+       Tizen::Base::String __albumName;
+       Tizen::Base::Collection::IList* __pDirectoryFullPathList;
+       Tizen::Base::Collection::IList* __pContentIdList;
+       Tizen::Graphics::Bitmap* __pFolderThumnailBitmap;
+};
+
+#endif /* _GL_ALBUM_INFO_H_ */
diff --git a/inc/GlAlbumListEditorForm.h b/inc/GlAlbumListEditorForm.h
new file mode 100644 (file)
index 0000000..9ecc126
--- /dev/null
@@ -0,0 +1,122 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlAlbumListEditorForm.h
+ * @brief              This is the header file for AlbumListEditorForm class.
+ */
+
+#ifndef _GL_ALBUM_LIST_EDITOR_FORM_H_
+#define _GL_ALBUM_LIST_EDITOR_FORM_H_
+
+#include <FUi.h>
+#include "GlAlbumEventListener.h"
+#include "GlFileUpdateTimer.h"
+#include "GlFormContentUpdateEventListener.h"
+
+class AlbumListPresentationModel;
+
+class AlbumListEditorForm
+       : public Tizen::Ui::Controls::Form
+       , public Tizen::Ui::IActionEventListener
+       , public Tizen::Ui::IOrientationEventListener
+       , public Tizen::Ui::IPropagatedKeyEventListener
+       , public Tizen::Ui::Controls::IFormBackEventListener
+       , public Tizen::Ui::Controls::IFormMenuEventListener
+       , public Tizen::Ui::Controls::IIconListViewItemEventListener
+       , public Tizen::Ui::Controls::IIconListViewItemProvider
+       , public Tizen::Ui::Scenes::ISceneEventListener
+       , public IAlbumEventListener
+       , public IFileOpInvalidateListener
+       , public IFormContentUpdateEventListener
+{
+public:
+       AlbumListEditorForm(void);
+       virtual ~AlbumListEditorForm(void);
+
+       result Initialize(void);
+
+       virtual result OnInitializing(void);
+       virtual result OnTerminating(void);
+
+       virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+
+       virtual void OnOrientationChanged(const Tizen::Ui::Control &source, Tizen::Ui::OrientationStatus orientationStatus);
+
+       virtual bool OnKeyPressed(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo){return false;}
+       virtual bool OnKeyReleased(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo);
+       virtual bool OnPreviewKeyPressed(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo){return false;}
+       virtual bool OnPreviewKeyReleased(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo){return false;}
+
+       virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source);
+
+       virtual void OnIconListViewItemStateChanged(Tizen::Ui::Controls::IconListView &view, int index,
+                       Tizen::Ui::Controls::IconListViewItemStatus status);
+       virtual void OnIconListViewOverlayBitmapSelected(Tizen::Ui::Controls::IconListView &iconListView, int index,
+                       int overlayBitmapId);
+
+       virtual int GetItemCount(void);
+       virtual Tizen::Ui::Controls::IconListViewItem* CreateItem(int index);
+       virtual bool DeleteItem(int index, Tizen::Ui::Controls::IconListViewItem* pItem);
+
+       virtual void OnFormMenuRequested (Tizen::Ui::Controls::Form &source);
+
+       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 OnFileInfoChanged(const Tizen::Content::ContentType contentType);
+       virtual void OnThumbnailDecoded(const int index);
+
+       virtual void OnFileOpInvalidate(enum FileActionMode actionId);
+       virtual void OnFileOpComplete(enum FileActionMode actionId, enum FileActionCompleteRes);
+       virtual void OnScanDirStart();
+       virtual void OnScanDirComplete();
+
+       virtual void ShowAnimation(void);
+       virtual void StopAnimation(void);
+       virtual void OnContentUpdated(void);
+
+private:
+       result InitializeControl(void);
+       result InitializePopup(void);
+       void CreateIconListView(void);
+       void SetAllCheckState(const bool state);
+
+       void OnRequestMessage(void);
+       void OnRequestEmail(void);
+
+       result DeleteFolder(void);
+       int GetCheckedFolderCount(void) const;
+       Tizen::Base::Collection::IList* GetItemCheckedIndexListN(void) const;
+       result Update(void);
+       void SetFooterButtonsState(const bool enableState);
+       void SetButtonState(void);
+
+private:
+       int __checkedCount;
+       Tizen::Ui::Controls::Label* __pSelectCountLabel;
+       Tizen::Ui::Controls::IconListView* __pEditorFolderIconList;
+       Tizen::Ui::Controls::ContextMenu* __pShareContextMenu;
+       Tizen::Ui::Controls::Popup* __pDeletePopup;
+       FileUpdateTimer* __pFileUpdateTimer;
+       AlbumListPresentationModel* __pPresentationModel;
+       bool __isScanProgress;
+};
+
+#endif /* _GL_ALBUM_LIST_EDITOR_FORM_H_ */
diff --git a/inc/GlAlbumListForm.h b/inc/GlAlbumListForm.h
new file mode 100644 (file)
index 0000000..b900b2d
--- /dev/null
@@ -0,0 +1,96 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlAlbumListForm.h
+ * @brief              This is the header file for AlbumListForm class.
+ */
+
+#ifndef _GL_ALBUM_LIST_FORM_H_
+#define _GL_ALBUM_LIST_FORM_H_
+
+#include <FApp.h>
+#include <FUi.h>
+#include "GlAlbumEventListener.h"
+#include "GlFormContentUpdateEventListener.h"
+
+class AlbumListPresentationModel;
+
+class AlbumListForm
+       : public IAlbumEventListener
+       , public IFormContentUpdateEventListener
+       , public Tizen::App::IAppControlResponseListener
+       , public Tizen::Ui::IActionEventListener
+       , public Tizen::Ui::IOrientationEventListener
+       , public Tizen::Ui::Controls::Form
+       , public Tizen::Ui::Controls::IFormBackEventListener
+       , public Tizen::Ui::Controls::IFormMenuEventListener
+       , public Tizen::Ui::Controls::IIconListViewItemEventListener
+       , public Tizen::Ui::Controls::IIconListViewItemProvider
+       , public Tizen::Ui::Scenes::ISceneEventListener
+{
+public:
+       AlbumListForm(void);
+       virtual ~AlbumListForm(void);
+
+       result Initialize(void);
+
+       virtual result OnInitializing(void);
+       virtual result OnTerminating(void);
+       virtual void OnContentUpdated(void);
+
+       virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+
+       virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source);
+
+       virtual void OnIconListViewItemStateChanged (Tizen::Ui::Controls::IconListView &view,
+                       int index, Tizen::Ui::Controls::IconListViewItemStatus status);
+
+       virtual int GetItemCount(void);
+       virtual Tizen::Ui::Controls::IconListViewItem* CreateItem(int index);
+       virtual bool DeleteItem(int index, Tizen::Ui::Controls::IconListViewItem* pItem);
+
+       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 OnFormMenuRequested (Tizen::Ui::Controls::Form &source);
+
+        virtual void OnOrientationChanged(const Tizen::Ui::Control &source, Tizen::Ui::OrientationStatus orientationStatus);
+
+       virtual void OnFileInfoChanged(const Tizen::Content::ContentType contentType);
+       virtual void OnThumbnailDecoded(const int index);
+
+       virtual void OnAppControlCompleteResponseReceived(const Tizen::App::AppId& appId,
+                               const Tizen::Base::String& operationId, Tizen::App::AppCtrlResult appControlResult,
+                               const Tizen::Base::Collection::IMap* pExtraData);
+       virtual void ShowAnimation(void){}
+       virtual void StopAnimation(void){}
+private:
+       result InitializeHeader(void);
+       result InitializeFooter(void);
+       void CreateIconListView(void);
+       result Update(void);
+
+private:
+       int __itemCount;
+       Tizen::Ui::Controls::IconListView* __pAlbumViewIconList;
+       Tizen::Ui::Controls::OptionMenu* __pOptionMenu;
+       AlbumListPresentationModel* __pPresentationModel;
+};
+
+#endif /* _GL_ALBUM_LIST_FORM_H_ */
diff --git a/inc/GlAlbumListPresentationModel.h b/inc/GlAlbumListPresentationModel.h
new file mode 100644 (file)
index 0000000..65c7765
--- /dev/null
@@ -0,0 +1,132 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlAlbumListPresentationModel.h
+ * @brief              This is the header file for AlbumListPresentationModel class.
+ */
+
+#ifndef _GL_ALBUM_LIST_PRESENTATION_MODEL_H_
+#define _GL_ALBUM_LIST_PRESENTATION_MODEL_H_
+
+#include <FApp.h>
+#include <FSystem.h>
+#include "GlAlbumEventListener.h"
+#include "GlFormContentUpdateEventListener.h"
+#include "GlIContentFileUpdateManager.h"
+#include "GlResourceManager.h"
+#include "GlThumbnailEventListener.h"
+#include "GlThumbnailProvider.h"
+#include "GlTypes.h"
+
+class AlbumInfo;
+class IAlbumRenameEventListener;
+class ITimerScanDirListener;
+
+class AlbumListPresentationModel
+       : public IContentFileUpdateManager
+       , public IThumbnailEventListener
+       , public Tizen::Base::Object
+       , public Tizen::System::IDeviceEventListener
+{
+public:
+       static AlbumListPresentationModel* GetInstance(void);
+
+       result AddPresentationModelListener(IAlbumEventListener* listener);
+       result RemovePresentationModelListener(IAlbumEventListener& listner);
+
+       static void AddContentEventListener(const IFormContentUpdateEventListener* listener);
+       static void RemoveContentEventListener(const IFormContentUpdateEventListener& listener);
+
+       virtual result RotateImage(const Tizen::Content::ContentId&, RotateMode rotateMode);
+       virtual void RequestThumbnail(int index){};
+       virtual void RequestThumbnail(const Tizen::Content::ContentId& contentId){};
+       void RequestThumbnail(const int folderIndex, const int pathIndex);
+       void ClearThumbnailRequests(const bool appTerminating = false);
+       result StartAppControl(const Tizen::Base::String& providerId, const Tizen::Base::String& operationId,
+                       const Tizen::Base::String* pUriData, const Tizen::Base::String* pMimeType,
+                       const Tizen::Base::Collection::HashMap* pDataList, Tizen::App::IAppControlResponseListener* pListener);
+
+       void InitializeAlbumInfoList(const Tizen::Content::ContentType& contentType);
+       void CallAlbumChangedEvent(void);
+       int GetFolderCount(void) const;
+
+       Tizen::Graphics::Bitmap* CreateMergeBitmapN(const int index);
+       Tizen::Base::Collection::IList* GetAlbumInfoList(void) const;
+
+       AppControlMode GetAppControlMode(void) const;
+       AppControlMediaType GetAppControlMediaType(void) const;
+       AppControlSelectionMode GetAppControlSelectionMode(void) const;
+
+       result RenameAlbum(const Tizen::Base::String&, const Tizen::Base::String&, IAlbumRenameEventListener*);
+
+       virtual Tizen::Base::Collection::IList* GetContentIdListAtIndexN(const Tizen::Base::Collection::IList& indexList) const;
+       virtual result DeleteContentFile(const Tizen::Base::String& filePath);
+
+       virtual void OnThumbnailReceivedN(Tizen::Base::Runtime::IEventArg& eventArg);
+
+       bool OnContentScanCompleted(const Tizen::Base::String &scanPath);\r
+
+       void OnContentCreated(void);
+       void OnContentUpdated(void);
+       void OnContentDeleted(void);
+
+       virtual void OnDeviceStateChanged(Tizen::System::DeviceType deviceType, const Tizen::Base::String& state);
+       void SetUpdateProgressStatus(const bool status);
+       void AddTimerScanListener(ITimerScanDirListener* pListener, int scanCount);
+       void RemoveTimerScanListener(void);
+
+       void ShowAnimation(void);
+       void StopAnimation(void);
+private:
+       AlbumListPresentationModel(void);
+       virtual ~AlbumListPresentationModel(void);
+       AlbumListPresentationModel(const AlbumListPresentationModel&);
+       const AlbumListPresentationModel& operator =(const AlbumListPresentationModel&);
+
+       result Construct(void);
+       static void CreateInstance(void);
+       static void DestroyInstance(void);
+
+       void DrawPartialImage(Tizen::Graphics::Canvas& canvas, AlbumInfo* pAlbumInfo,
+                       const Tizen::Graphics::Rectangle& rectNew);
+       void DrawFontImage(Tizen::Graphics::Canvas& canvas, AlbumInfo* pAlbumInfo, int index);
+
+       Tizen::Base::String GetDirectoryName(Tizen::Base::String& directoryPath) const;
+       Tizen::Base::Collection::IList* GetContentIdListInDirectoryN(const Tizen::Base::String& directoryPath,
+                       Tizen::Content::ContentType contentType) const;
+       Tizen::Base::String GetDirectoryNameFromFullPath(const Tizen::Base::String& fullPath) const;
+
+private:
+       static AlbumListPresentationModel* __pPresentationModelInstance;
+       static ThumbnailProvider* __pThumbnailProvider;
+       static ThumbnailEvent* __pThumbnailEvent;
+       static Tizen::Base::Collection::ArrayList* __pContentEventListener;
+       static Tizen::Base::Collection::ArrayList* __pPresentationModelListener;
+       static Tizen::Base::Collection::IList* __pAlbumInfoList;
+       Tizen::Graphics::Bitmap* __pFolderBackgroundBitmap;
+       IAlbumRenameEventListener* __pAlbumListener;
+       RequestId __reqId;
+       AppControlMode __appControlMode;
+       AppControlMediaType __appControlMediaType;
+       AppControlSelectionMode __appControlSelectionMode;
+       bool __updateProgressStatus;
+       Tizen::Base::String __renameNewPath;\r
+       ITimerScanDirListener* __pTimerScanListener;
+       int __scanCount;
+};
+
+#endif /* _GL_ALBUM_LIST_PRESENTATION_MODEL_H_ */
diff --git a/inc/GlAlbumNameEditorForm.h b/inc/GlAlbumNameEditorForm.h
new file mode 100644 (file)
index 0000000..e82dbfb
--- /dev/null
@@ -0,0 +1,116 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlAlbumNameEditorForm.h
+ * @brief              This is the header file for AlbumNameEditorForm class.
+ */
+
+#ifndef _GL_ALBUM_NAME_EDITOR_FORM_H_
+#define _GL_ALBUM_NAME_EDITOR_FORM_H_
+
+#include <FSystem.h>
+#include "GlAlbumRenameEventListener.h"
+#include "GlBaseForm.h"
+#include "GlFileOpInvalidateListener.h"
+#include "GlTypes.h"
+
+class AlbumListPresentationModel;
+class FileListPresentationModel;
+class FileMoveTimer;
+class ProgressAnimation;
+
+class AlbumNameEditorForm
+       : public BaseForm
+       , public IAlbumRenameEventListener
+       , public IFormContentUpdateEventListener
+       , public IFileOpInvalidateListener
+       , public Tizen::Ui::IActionEventListener
+       , public Tizen::Ui::IKeypadEventListener
+       , public Tizen::Ui::IOrientationEventListener
+       , public Tizen::System::IDeviceEventListener
+       , public Tizen::Ui::ITextEventListener
+       , public Tizen::Ui::Controls::IFormBackEventListener
+       , public Tizen::Ui::Scenes::ISceneEventListener
+{
+public:
+       AlbumNameEditorForm(void);
+       virtual ~AlbumNameEditorForm(void);
+
+       result Initialize(void);
+
+       virtual result OnInitializing(void);
+       virtual result OnTerminating(void);
+
+       virtual void OnContentUpdated(void);
+
+       virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+       virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source);
+
+       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 OnOrientationChanged(const Tizen::Ui::Control &source, Tizen::Ui::OrientationStatus orientationStatus);
+
+       virtual void OnTextValueChanged(const Tizen::Ui::Control& source);
+       virtual void OnTextValueChangeCanceled(const Tizen::Ui::Control& source);
+
+       //IKeypadEventListener
+       virtual void OnKeypadActionPerformed(Tizen::Ui::Control& source, Tizen::Ui::KeypadAction keypadAction){};
+       virtual void OnKeypadClosed(Tizen::Ui::Control& source);
+       virtual void OnKeypadOpened(Tizen::Ui::Control& source);
+       virtual void OnKeypadWillOpen(Tizen::Ui::Control& source){};
+
+       virtual void OnFileOpInvalidate(enum FileActionMode actionId);
+       virtual void OnFileOpComplete(enum FileActionMode actionId, enum FileActionCompleteRes);
+       virtual void OnScanDirStart(){}
+       virtual void OnScanDirComplete(){}
+
+       virtual void OnDeviceStateChanged(Tizen::System::DeviceType deviceType, const Tizen::Base::String& state);
+       virtual void OnAlbumRenameComplete(void);
+       virtual void CreateMessage(Tizen::Base::String& str);
+       virtual void ShowAnimation(void);
+       virtual void StopAnimation(void);
+private:
+       void OnCreateAlbum(void);
+       void OnRenameAlbum(Tizen::Base::String& name);
+
+private:
+       Tizen::Ui::Controls::EditField* __pNameEditField;
+       Tizen::Base::String __nameEditFieldText;
+       Tizen::Base::String __nameEditFieldPreText;
+       Tizen::Base::String __nameEditFieldTempText;
+       Tizen::Base::String __originalText;
+       int __folderIndex;
+       int __modalMsgBoxResult;
+       int __textLength;
+       bool __mountState;
+       bool __isCreateAlbum;
+       bool __isKeyPadOpen;
+       AlbumNameEditorMode __albumNameEditorMode;
+       Tizen::Ui::Scenes::SceneId __callerSceneId;
+       Tizen::Ui::Scenes::SceneId __previousSceneId;
+       Tizen::Ui::Controls::MessageBox* __pMessageBox;
+       Tizen::Base::Collection::IList* __pMoveIndexList;
+       FileActionMode __fileActionMode;
+       FileMoveTimer* __pFileMove;     
+       AlbumListPresentationModel* __pPresentationModel;
+       FileListPresentationModel* __pFilePresentationModel;
+};
+
+#endif /* _GL_ALBUM_NAME_EDITOR_FORM_H_ */
diff --git a/inc/GlAlbumRenameEventListener.h b/inc/GlAlbumRenameEventListener.h
new file mode 100644 (file)
index 0000000..2f916d0
--- /dev/null
@@ -0,0 +1,32 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlAlbumRenameEventListener.h
+ * @brief              This is the header file for GlAlbumRenameEventListener class.
+ */
+
+#ifndef _GL_ALBUM_RENAME_LISTENER_H_
+#define _GL_ALBUM_RENAME_LISTENER_H_
+
+class IAlbumRenameEventListener
+{
+public:
+       virtual ~IAlbumRenameEventListener(void) {}
+       virtual void OnAlbumRenameComplete(void) = 0;
+};
+
+#endif /* _GL_ALBUM_RENAME_LISTENER_H_ */
diff --git a/inc/GlAllListEditorPanel.h b/inc/GlAllListEditorPanel.h
new file mode 100644 (file)
index 0000000..873356f
--- /dev/null
@@ -0,0 +1,100 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlAllListEditorPanel.h
+ * @brief              This is the header file for AllListEditorPanel class.
+ */
+
+#ifndef _GL_ALL_LIST_EDITOR_PANEL_H_
+#define _GL_ALL_LIST_EDITOR_PANEL_H_
+
+#include "GlAlbumEventListener.h"
+#include "GlFormContentUpdateEventListener.h"
+#include "GlFileListEditorForm.h"
+#include "GlFileOpInvalidateListener.h"
+#include "GlThumbnailEventListener.h"
+
+class FileListPresentationModel;
+class FileUpdateTimer;
+
+class AllListEditorPanel
+       : public IAlbumEventListener
+       , public IFileOpInvalidateListener
+       , public Tizen::Ui::IActionEventListener
+       , public Tizen::Ui::Controls::Panel
+       , public Tizen::Ui::Controls::IIconListViewItemEventListener
+       , public Tizen::Ui::Controls::IIconListViewItemProvider
+       , public Tizen::Ui::Scenes::ISceneEventListener
+{
+public:
+       AllListEditorPanel(void);
+       virtual ~AllListEditorPanel(void);
+
+       result Initialize(void);
+
+       virtual result OnInitializing(void);
+       virtual result OnTerminating(void);
+
+       int GetItemCheckedCount(void) const;
+       Tizen::Base::Collection::IList* GetItemCheckedIndexListN(void) const;
+       void OnSelectAllPressed(void);
+
+       virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+
+       virtual void OnIconListViewItemStateChanged (Tizen::Ui::Controls::IconListView &view,
+                       int index, Tizen::Ui::Controls::IconListViewItemStatus status);
+
+       virtual int GetItemCount(void);
+       virtual Tizen::Ui::Controls::IconListViewItem* CreateItem(int index);
+       virtual bool DeleteItem(int index, Tizen::Ui::Controls::IconListViewItem* pItem);
+
+       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 OnFileInfoChanged(const Tizen::Content::ContentType contentType);
+       virtual void OnThumbnailDecoded(const int index);
+
+       virtual result OnRequestDelete(void);
+       virtual result OnRequestMessage(void);
+       virtual result OnRequestEmail(void);
+       virtual result OnRequestSlideShow(void);
+       result OnRequestRotate(RotateMode rotateMode);
+       void CancelUpdateProgress(void);
+
+       virtual void OnFileOpInvalidate(enum FileActionMode actionId);
+       virtual void OnFileOpComplete(enum FileActionMode actionId, enum FileActionCompleteRes);
+       virtual void OnScanDirStart();
+       virtual void OnScanDirComplete();
+
+       void ChangeOrientation(void);
+private:
+       void ResetSelection(void);
+       void SetButtonState(void);
+
+private:
+       int __itemCount;
+       Tizen::Ui::Controls::IconListView* __pContentIconListView;
+       Tizen::Ui::Controls::Label* __pLabelSelectCnt;
+       Tizen::Ui::Controls::Button* __pButtonSelectRegion;
+       FileUpdateTimer* __pFileUpdateTimer;
+       FileListEditorForm* __pFileListEditorForm;
+       FileListPresentationModel* __pPresentationModel;
+};
+
+#endif /* _GL_ALL_LIST_EDITOR_PANEL_H_ */
diff --git a/inc/GlAllListPanel.h b/inc/GlAllListPanel.h
new file mode 100644 (file)
index 0000000..b4e0df7
--- /dev/null
@@ -0,0 +1,71 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlAllListPanel.h
+ * @brief              This is the header file for AllListPanel class.
+ */
+
+#ifndef _GL_ALL_LIST_PANEL_H_
+#define _GL_ALL_LIST_PANEL_H_
+
+#include <FUi.h>
+#include "GlAlbumEventListener.h"
+#include "GlFormContentUpdateEventListener.h"
+#include "GlThumbnailEventListener.h"
+
+class FileListPresentationModel;
+
+class AllListPanel
+       : public IAlbumEventListener
+       , public Tizen::Ui::Controls::Panel
+       , public Tizen::Ui::Controls::IIconListViewItemEventListener
+       , public Tizen::Ui::Controls::IIconListViewItemProvider
+       , public Tizen::Ui::Scenes::ISceneEventListener
+{
+public:
+       AllListPanel(void);
+       virtual ~AllListPanel(void);
+       result Initialize(void);
+
+       virtual result OnInitializing(void);
+       virtual result OnTerminating(void);
+
+       virtual void OnIconListViewItemStateChanged (Tizen::Ui::Controls::IconListView &view,
+                       int index, Tizen::Ui::Controls::IconListViewItemStatus status);
+
+       virtual int GetItemCount(void);
+       virtual Tizen::Ui::Controls::IconListViewItem* CreateItem(int index);
+       virtual bool DeleteItem(int index, Tizen::Ui::Controls::IconListViewItem* pItem);
+
+       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 OnFileInfoChanged(const Tizen::Content::ContentType contentType);
+       virtual void OnThumbnailDecoded(const int index);
+
+       void ChangeOrientation(void);
+       void Refresh(void);
+
+private:
+       int __itemCount;
+       Tizen::Ui::Controls::IconListView* __pContentIconListView;\
+       FileListPresentationModel* __pPresentationModel;
+};
+
+#endif /* _GL_ALL_LIST_PANEL_H_ */
diff --git a/inc/GlAllListSelectionPanel.h b/inc/GlAllListSelectionPanel.h
new file mode 100644 (file)
index 0000000..4329924
--- /dev/null
@@ -0,0 +1,101 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlAllListSelectionPanel.h
+ * @brief              This is the header file for AllListSelectionPanel class.
+ */
+
+#ifndef _GL_ALL_LIST_SELECTION_PANEL_H_
+#define _GL_ALL_LIST_SELECTION_PANEL_H_
+
+#include <FUi.h>
+#include "GlAlbumEventListener.h"
+#include "GlFormContentUpdateEventListener.h"
+#include "GlThumbnailEventListener.h"
+#include "GlFileOpInvalidateListener.h"
+
+class FileListPresentationModel;
+class FileUpdateTimer;
+class CommonUtil;
+class FileListEditorForm;
+
+class AllListSelectionPanel
+       : public IAlbumEventListener
+       , public IFileOpInvalidateListener
+       , public Tizen::Ui::Controls::Panel
+       , public Tizen::Ui::Controls::IIconListViewItemEventListener
+       , public Tizen::Ui::Controls::IIconListViewItemProvider
+       , public Tizen::Ui::Scenes::ISceneEventListener
+{
+public:
+       AllListSelectionPanel(void);
+       virtual ~AllListSelectionPanel(void);
+
+       result Initialize(void);
+
+       int GetItemCheckedCount(void) const;
+       Tizen::Base::Collection::IList* GetItemCheckedIndexListN(void) const;
+       void OnSelectAllPressed(void);
+
+       result OnRequestDelete(void);
+       result OnRequestMessage(void);
+       result OnRequestEmail(void);
+       result OnRequestMoveTo(Tizen::Base::String& destDirectory);
+       result OnRequestSlideShow(void);
+       result OnRotateRequested(RotateMode rotateMode);
+       void CancelUpdateProgress(void);
+
+       virtual result OnInitializing(void);
+       virtual result OnTerminating(void);
+
+       virtual void OnIconListViewItemStateChanged (Tizen::Ui::Controls::IconListView &view,
+                       int index, Tizen::Ui::Controls::IconListViewItemStatus status);
+
+       virtual int GetItemCount(void);
+       virtual Tizen::Ui::Controls::IconListViewItem* CreateItem(int index);
+       virtual bool DeleteItem(int index, Tizen::Ui::Controls::IconListViewItem* pItem);
+
+       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 OnFileInfoChanged(const Tizen::Content::ContentType contentType);
+       virtual void OnThumbnailDecoded(const int index);
+
+       virtual void OnFileOpInvalidate(enum FileActionMode);
+       virtual void OnFileOpComplete(enum FileActionMode, enum FileActionCompleteRes);
+       virtual void OnScanDirStart();
+       virtual void OnScanDirComplete();
+       void ChangeOrientation(void);
+
+private:
+       int GetRealindexFromVirtualIndex(const int virtualIndex) const;
+       int GetVirtualIndexFromRealIndex(const int realIndex) const;
+       void ResetSelection(void);
+       void SetButtonState(void);
+
+private:
+       int __itemCount;
+       Tizen::Ui::Controls::IconListView* __pContentIconListView;
+       Tizen::Base::Collection::IList* __pSeletedIndexList;
+       FileListEditorForm* __pFileListEditorForm;
+       FileUpdateTimer* __pFileUpdateTimer;
+       FileListPresentationModel* __pPresentationModel;
+};
+
+#endif /* _GL_ALL_LIST_SELECTION_PANEL_H_ */
diff --git a/inc/GlBaseForm.h b/inc/GlBaseForm.h
new file mode 100644 (file)
index 0000000..52f4dde
--- /dev/null
@@ -0,0 +1,43 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlBaseForm.h
+ * @brief              This is the header file for BaseForm class.
+ */
+
+#ifndef _GL_BASE_FORM_H_
+#define _GL_BASE_FORM_H_
+
+#include <FUi.h>
+
+class FileListPresentationModel;
+
+class BaseForm
+       : public Tizen::Ui::Controls::Form
+{
+public:
+       virtual ~BaseForm(void){};
+
+protected:
+       Tizen::Base::Collection::IList* GetMoveFileIndexList(Tizen::Base::String&, Tizen::Base::Collection::IList*,
+                       FileListPresentationModel*,bool isCopyOp = false);
+
+protected:
+       bool _overlayMsg;
+};
+
+#endif /* _GL_BASE_FORM_H_ */
diff --git a/inc/GlCommonUtil.h b/inc/GlCommonUtil.h
new file mode 100644 (file)
index 0000000..ec3f072
--- /dev/null
@@ -0,0 +1,36 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlCommonUtil.h
+ * @brief              This is the header file for CommonUtil class.
+ */
+
+#ifndef _GL_COMMON_UTIL_H_
+#define _GL_COMMON_UTIL_H_
+
+using namespace Tizen::Base::Runtime;
+
+class IActionEventListener;
+
+class CommonUtil
+{
+public:
+       static Tizen::Graphics::Bitmap* GetEmptyThumbnailN(void);
+       static Tizen::Base::String DurationToTimeString(const long duration);
+};
+
+#endif /* _GL_COMMON_UTIL_H_ */
diff --git a/inc/GlContentUpdateEventListener.h b/inc/GlContentUpdateEventListener.h
new file mode 100644 (file)
index 0000000..4056f44
--- /dev/null
@@ -0,0 +1,60 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlContentUpdateEventListener.h
+ * @brief              This is the header file for FileListPresentationModel class.
+ */
+
+#ifndef _GL_CONTENT_UPDATE_EVENT_LISTENER_H_
+#define _GL_CONTENT_UPDATE_EVENT_LISTENER_H_
+
+#include <FContent.h>
+
+class ContentUpdateEventListener
+       : public Tizen::Base::Object
+       , public Tizen::Content::IContentUpdateEventListener
+{
+public:
+       static ContentUpdateEventListener* GetInstance(void);
+       void AddContentListener(void);
+       void RemoveContentListener(void);
+       bool GetChangeNotificationStatus();
+       void SetTimerActive(void);
+       void ReSetTimerActive(void);
+       void ResumeOperation();
+       Tizen::Base::String GetDirecotyNameFromFullPath(const Tizen::Base::String& fullPath) const;
+private:
+       ContentUpdateEventListener(void);
+       virtual ~ContentUpdateEventListener(void);
+
+       result Construct(void);
+       static void CreateInstance(void);
+       static void DestroyInstance(void);
+
+       virtual void OnContentFileCreated(Tizen::Content::ContentId contentId, Tizen::Content::ContentType contentType, result r);
+       virtual void OnContentFileUpdated(Tizen::Content::ContentId contentId, Tizen::Content::ContentType contentType, result r);
+       virtual void OnContentFileDeleted(Tizen::Content::ContentId contentId, Tizen::Content::ContentType contentType, result r);
+       virtual void OnContentDirectoryScanCompleted(const Tizen::Base::String& directoryPath, result r);
+
+private:
+       static ContentUpdateEventListener* __pContentUpdateEventListener;
+       Tizen::Content::ContentManager* __pContentManager;
+       bool __isTimerActive;
+       bool __changeNotificationReceived;
+};
+
+#endif /* _GL_CONTENT_UPDATE_EVENT_LISTENER_H_ */
diff --git a/inc/GlDropDownCustomItem.h b/inc/GlDropDownCustomItem.h
new file mode 100644 (file)
index 0000000..24ba37f
--- /dev/null
@@ -0,0 +1,65 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ *@file:    DropDownCustomItem
+ *@brief:      This class defines common behaviour of Drop down custom Item.
+ *
+ */
+
+#ifndef _GL_DROPDOWN_CUSTOM_ITEM_H_
+#define _GL_DROPDOWN_CUSTOM_ITEM_H_
+
+#include <FUi.h>
+
+enum DropDownItemState
+{
+       DROP_DOWN_ITEM_STATE_OPENED = 0,
+       DROP_DOWN_ITEM_STATE_CLOSED
+};
+
+class DropDownCustomItem
+       : public Tizen::Ui::Controls::CustomItem
+{
+public:
+       DropDownCustomItem(void);
+       virtual ~DropDownCustomItem(void);
+
+       result Construct(int width, int height);
+
+       DropDownItemState GetCurState(void) const;
+       Tizen::Base::String GetMainText(void) const;
+       Tizen::Base::String GetSubText(void) const;
+       result Make(int fontsize, int itemHeight);
+       void SetCurState(const DropDownItemState);
+       void SetMainText(const Tizen::Base::String& text);
+       void SetSubText(const Tizen::Base::String& text);
+
+ protected:
+       static const int IDA_FORMAT_BITMAP;
+       static const int IDA_FORMAT_MAIN_STRING;
+       static const int IDA_FORMAT_SUB_STRING;
+       static const int IDA_FORMAT_DROPPER;
+
+ private:
+       DropDownItemState __currentState;
+       int __height;
+       int __width;
+       Tizen::Base::String __mainText;
+       Tizen::Base::String __subText;
+ };
+
+#endif /* _GL_DROPDOWN_CUSTOM_ITEM_H_ */
diff --git a/inc/GlFileListEditorForm.h b/inc/GlFileListEditorForm.h
new file mode 100644 (file)
index 0000000..b25d965
--- /dev/null
@@ -0,0 +1,110 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlFileListEditorForm.h
+ * @brief              This is the header file for FileListEditorForm class.
+ */
+
+#ifndef _GL_FILE_LIST_EDITOR_FORM_H_
+#define _GL_FILE_LIST_EDITOR_FORM_H_
+
+#include <FUi.h>
+#include "GlBaseForm.h"
+#include "GlFileMoveTimer.h"
+#include "GlSlideSettingListener.h"
+
+class FileListPresentationModel;
+class FileMoveTimer;
+class ISlideSettingListener;
+class SlideShowPopUp;
+
+class FileListEditorForm
+       : public BaseForm
+       , public IFileOpInvalidateListener
+       , public IFormContentUpdateEventListener
+       , public Tizen::Ui::Controls::IFormMenuEventListener
+       , public ISlideSettingListener
+       , public Tizen::Ui::IActionEventListener
+       , public Tizen::Ui::IPropagatedKeyEventListener
+       , public Tizen::Ui::Controls::IFormBackEventListener
+       , public Tizen::Ui::IOrientationEventListener
+  , public Tizen::Ui::Scenes::ISceneEventListener
+{
+public:
+       FileListEditorForm(void);
+       virtual ~FileListEditorForm(void);
+       result Initialize(void);
+
+       virtual result OnInitializing(void);
+       virtual result OnTerminating(void);
+       virtual void OnContentUpdated(void);
+
+       virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+
+       void OnFormBackRequested(Tizen::Ui::Controls::Form& source);
+
+       void SetTitleText(const Tizen::Base::String& titleText);
+       void SetProgressState(const bool progressState);
+       void RefreshFolderList(void);
+       void SetFooterButtonsState(const bool enableState);
+       result MoveToAlbum(const Tizen::Base::String& destDirectory);
+
+       bool GetOverlayStatus(void) const;
+
+       virtual void OnFileOpInvalidate(enum FileActionMode actionId);
+       virtual void OnFileOpComplete(enum FileActionMode actionId, enum FileActionCompleteRes);
+       virtual void OnScanDirStart();
+       virtual void OnScanDirComplete();
+
+       virtual void OnSlideSettingPopUpItemSelected(int index);
+
+       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 OnFormMenuRequested (Tizen::Ui::Controls::Form &source);
+
+       virtual void ShowAnimation(void);
+       virtual void OnOrientationChanged(const Tizen::Ui::Control &source, Tizen::Ui::OrientationStatus orientationStatus);
+       virtual void StopAnimation(void);
+       virtual bool OnKeyPressed(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo){ return false; }
+       virtual bool OnKeyReleased(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo);
+       virtual bool OnPreviewKeyPressed(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo){ return false; }
+       virtual bool OnPreviewKeyReleased(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo){ return false; }
+
+private:
+       result InitializeFooter(void);
+       Tizen::Base::String GetDirecotyNameFromFullPath(const Tizen::Base::String& fullPath) const;
+       result SetUpPopup(void);
+       void SelectAllPressed(void);
+
+private:
+       Tizen::Ui::Controls::ContextMenu* __pShareContextMenu;
+       Tizen::Ui::Controls::OptionMenu* __pOptionMenu;
+       Tizen::Ui::Controls::Popup* __pDeletePopup;
+       Tizen::Graphics::Point __morePosition;
+       Tizen::Base::Collection::IList* __pContentDirectoryList;
+       Tizen::Base::Collection::IList* __pContentDirectoryNameList;
+       SlideShowPopUp* __pPopUp;
+       FileMoveTimer* __pFileMove;
+       bool __isCopyOperation;
+       FileListPresentationModel* __pPresentationModel;
+       bool __isScanProgress;
+};
+
+#endif /* _GL_FILE_LIST_EDITOR_FORM_H_ */
diff --git a/inc/GlFileListForm.h b/inc/GlFileListForm.h
new file mode 100644 (file)
index 0000000..01d2022
--- /dev/null
@@ -0,0 +1,82 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlFileListForm.h
+ * @brief              This is the header file for FileListForm class.
+ */
+
+#ifndef _GL_FILE_LIST_FORM_H_
+#define _GL_FILE_LIST_FORM_H_
+
+#include <FApp.h>
+#include <FUi.h>
+#include "GlFormContentUpdateEventListener.h"
+#include "GlSlideSettingListener.h"
+
+class FileListPresentationModel;
+class ISlideSettingListener;
+class SlideShowPopUp;
+
+class FileListForm
+       : public IFormContentUpdateEventListener
+       , public ISlideSettingListener
+       , public Tizen::App::IAppControlResponseListener
+       , public Tizen::Ui::IActionEventListener
+       , public Tizen::Ui::Controls::Form
+       , public Tizen::Ui::Controls::IFormBackEventListener
+       , public Tizen::Ui::Controls::IFormMenuEventListener
+       , public Tizen::Ui::IOrientationEventListener
+{
+public:
+       FileListForm(void);
+       virtual ~FileListForm(void);
+       result Initialize(void);
+
+       virtual result OnInitializing(void);
+       virtual result OnTerminating(void);
+       virtual void OnContentUpdated(void);
+
+       virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+
+       virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source);
+       virtual void OnOrientationChanged(const Tizen::Ui::Control &source, Tizen::Ui::OrientationStatus orientationStatus);
+
+       void SetTitleText(const Tizen::Base::String& titleText);
+
+       virtual void OnAppControlCompleteResponseReceived(const Tizen::App::AppId& appId,
+                               const Tizen::Base::String& operationId, Tizen::App::AppCtrlResult appControlResult,
+                               const Tizen::Base::Collection::IMap* pExtraData);
+
+       virtual void OnSlideSettingPopUpItemSelected(int index);
+
+       virtual void OnFormMenuRequested (Tizen::Ui::Controls::Form &source);
+
+       void SetMenuState(bool state);
+       virtual void ShowAnimation(void){}
+       virtual void StopAnimation(void){}
+
+private:
+       result InitializeFooter(void);
+
+private:
+       bool __menuState;
+       Tizen::Ui::Controls::OptionMenu* __pOptionMenu;
+       SlideShowPopUp* __pPopUp;
+       FileListPresentationModel* __pPresentationModel;
+};
+
+#endif /* _GL_FILE_LIST_FORM_H_ */
diff --git a/inc/GlFileListPresentationModel.h b/inc/GlFileListPresentationModel.h
new file mode 100644 (file)
index 0000000..a16bf46
--- /dev/null
@@ -0,0 +1,164 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlFileListPresentationModel.h
+ * @brief              This is the header file for FileListPresentationModel class.
+ */
+
+#ifndef _GL_FILE_LIST_PRESENTATION_MODEL_H_
+#define _GL_FILE_LIST_PRESENTATION_MODEL_H_
+
+#include <FApp.h>
+#include <FSystem.h>
+
+#include "GlAlbumEventListener.h"
+#include "GlFormContentUpdateEventListener.h"
+#include "GlCommonUtil.h"
+#include "GlIContentFileUpdateManager.h"
+#include "GlResourceManager.h"
+#include "GlThumbnailEventListener.h"
+#include "GlTypes.h"
+
+class ThumbnailEvent;
+class ThumbnailInfo;
+class ThumbnailProvider;
+
+class FileListPresentationModel
+       : public IContentFileUpdateManager
+       , public IThumbnailEventListener
+       , public Tizen::Base::Object
+       , public Tizen::System::IDeviceEventListener
+{
+public:
+       static FileListPresentationModel* GetInstance(void);
+
+public:
+       result GetThumbnailInSyncCacheN(const int index, Tizen::Base::String*& pName,
+                       Tizen::Graphics::Bitmap*& pThumbnail);
+       result GetThumbnailVideoInSyncCacheN(const int index, Tizen::Base::String*& pName,
+                       Tizen::Graphics::Bitmap*& pThumbnail, Tizen::Base::String*& pDuration) const;
+       virtual void RequestThumbnail(const int index);
+       virtual void RequestThumbnail(const Tizen::Content::ContentId& contentId);
+       void ClearThumbnailRequests(const bool appTerminating = false);
+
+       static void AddPresentationModelListener(const IAlbumEventListener* listener);
+       static void RemovePresentationModelListener(const IAlbumEventListener& listener);
+
+       virtual void OnDeviceStateChanged(Tizen::System::DeviceType deviceType, const Tizen::Base::String& state);
+
+       static void AddContentEventListener(const IFormContentUpdateEventListener* listener);
+       static void RemoveContentEventListener(const IFormContentUpdateEventListener* listener);
+
+       result DeleteContentFileList(const Tizen::Base::Collection::IList& contentIndexList);
+       Tizen::Base::Collection::IList* GetCollisionIndexListN(const Tizen::Base::Collection::IList& contentIndexList,
+                       const Tizen::Base::String& destDirectory);
+       result MoveToContentFileList(const Tizen::Base::Collection::IList& contentIndexList,
+                       const Tizen::Base::String& destDirectory);
+       result StartAppControl(const Tizen::Base::String& providerId, const Tizen::Base::String&  operationId,
+                       const Tizen::Base::String* pUriData, const Tizen::Base::String* pMimeType,
+                       const Tizen::Base::Collection::HashMap* pDataList, Tizen::App::IAppControlResponseListener* pListener);
+       result SetCurrentAlbumInfo(const Tizen::Base::String& albumName,
+                       const Tizen::Base::Collection::IList& directoryList);
+       result RefreshCurrentAlbumContentInfoList(const Tizen::Content::ContentType contentType);
+       Tizen::Base::String GetCurrentAlbumName(void) const;
+       void SetCurrentAlbumName(const Tizen::Base::String& albumName);
+       Tizen::Content::ContentType GetCurrentAlbumContentType(void) const;
+       void SetCurrentAlbumContentType(const Tizen::Content::ContentType contentType);
+       Tizen::Base::Collection::IList* GetAlbumDirectoryListN(void) const;
+       Tizen::Base::Collection::IList* GetAlbumContentInfoList(void) const;
+       Tizen::Content::ContentInfo* GetContentInfo(const int index) const;
+       int GetCurrentAlbumContentInfoCount(void) const;
+       Tizen::Content::ContentId GetContentInfoIndex(const int index) const;
+       Tizen::Base::String GetContentFilePath(const int index) const;
+       Tizen::Base::String ConvertToAlbumName(const Tizen::Base::String& targetPath) const;
+
+       virtual Tizen::Base::Collection::IList* GetContentIdListAtIndexN(const Tizen::Base::Collection::IList& indexList) const;
+
+       AppControlMode GetAppControlMode(void) const;
+       AppControlMediaType GetAppControlMediaType(void) const;
+       AppControlSelectionMode GetAppControlSelectionMode(void) const;
+       void SetUpdateProgressStatus(const bool status);
+
+       void OnContentCreated(void);
+       void OnContentUpdated(void);
+       void OnContentDeleted(void);
+       void OnContentUpdated(const Tizen::Content::ContentId& contentId);
+
+       virtual result RotateImage(const Tizen::Content::ContentId& contentId, RotateMode rotateMode);
+
+       void ClearImageCache(void);
+       void ShowAnimation(void);
+       void StopAnimation(void);
+       void ClearProviderId(void);
+       void AddDirectoryIfNew(const Tizen::Base::String& fullPath);
+private:
+       FileListPresentationModel(void);
+       virtual ~FileListPresentationModel(void);
+       FileListPresentationModel(FileListPresentationModel& value);
+       FileListPresentationModel& operator=(FileListPresentationModel&);
+
+       result Construct(void);
+       static void CreateInstance(void);
+       static void DestroyInstance(void);
+
+       result RefreshContentInfoList(const Tizen::Content::ContentType contentType);
+       Tizen::Base::String GetFileNameFromFullPath(const Tizen::Base::String& fullPath, const bool withExt) const;
+       Tizen::Base::String GetDirecotyNameFromFullPath(const Tizen::Base::String& fullPath) const;
+       bool IsContainContentInDirectory(const Tizen::Base::String& directoryPath,
+                       Tizen::Content::ContentType contentType) const;
+       ThumbnailInfo* GetThumbnailInfoFromInternalBufferN(const Tizen::Content::ContentId& contentId) const;
+       Tizen::Graphics::Bitmap* CoverVideoOverlayedImageOnThumbnailN(Tizen::Graphics::Bitmap& thumbnail,
+                       const ThumbnailInfo& thumbmailInfo);
+       result DeleteContentFile(const Tizen::Base::String& filePath);
+       result MoveToContentFile(const Tizen::Base::String& filePath,
+                       const Tizen::Base::String& destDirectory, const bool isCopyOperation);
+       Tizen::Graphics::Bitmap* GetShadedBackgroundBitmapN(Tizen::Graphics::Bitmap& bgBitmap,
+                       const Tizen::Graphics::Bitmap& orgBitmap, const Tizen::Graphics::Rectangle& orgBitmapPosition) const;
+       Tizen::Base::Collection::IList* GetContentInfoListInDirectoryListN(
+                       const Tizen::Base::Collection::IList& contentDirectoryList,
+                       Tizen::Content::ContentType contentType) const;
+
+       virtual void OnThumbnailReceivedN(Tizen::Base::Runtime::IEventArg& eventArg);
+
+       void OnTimerExpired(Timer& timer);
+
+private:
+       static FileListPresentationModel* __pPresentationModelInstance;
+       static ThumbnailProvider* __pThumbnailProvider;
+       static ThumbnailEvent* __pThumbnailEvent;
+       Tizen::Content::ContentManager* __pContentManager;
+       static Tizen::Base::Collection::ArrayList* __pPresentationModelListener;
+       static Tizen::Base::Collection::ArrayList* __pContentEventListener;
+       static Tizen::Base::Collection::ArrayList* __pIconListViewCache;
+       static Tizen::Base::Collection::IList* __pDirectoryList;
+       static Tizen::Base::Collection::IList* __pContentInfoList;
+
+       Tizen::Base::String __albumName;
+       Tizen::Base::String __providerId;
+       Tizen::Content::ContentType __albumContentType;
+       AppControlMode __appControlMode;
+       AppControlMediaType __appControlMediaType;
+       AppControlSelectionMode __appControlSelectionMode;
+
+       Tizen::Base::Collection::IList * __pContentIdList;
+       bool __updateProgressStatus;
+
+       friend class FileMoveTimer;
+       friend class FileUpdateTimer;
+};
+
+#endif /* _GL_FILE_LIST_PRESENTATION_MODEL_H_ */
diff --git a/inc/GlFileMoveTimer.h b/inc/GlFileMoveTimer.h
new file mode 100644 (file)
index 0000000..7420769
--- /dev/null
@@ -0,0 +1,59 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               FileMoveTimer.h
+ * @brief              This is the header file for FileMoveTimer class.
+ */
+
+#ifndef _GL_FILE_MOVE_TIMER_H_
+#define _GL_FILE_MOVE_TIMER_H_
+
+#include <FContent.h>
+#include "GlTimerBase.h"
+
+class FileListPresentationModel;
+
+class FileMoveTimer
+       : public GlTimerBase
+{
+public :
+       FileMoveTimer(Tizen::Base::String&, Tizen::Base::Collection::IList*, FileListPresentationModel*,
+                       IFileOpInvalidateListener*, bool isCopyOperation = false);
+       virtual ~FileMoveTimer(void);
+
+       void SetCopy(void);
+       void ClearCopy(void);
+
+private:
+       virtual Tizen::Base::Collection::IList* TimerStart(void);
+       virtual result TimerExpired(const Tizen::Base::Object* contentId);
+       virtual void TimerCancel(int, enum FileActionCancelRes res);
+       virtual void TimerComplete(int, enum FileActionCompleteRes res);
+       result ScanDirectories(void);
+       virtual int GetDirScanCount();
+       void OnDeviceStateChanged(Tizen::System::DeviceType deviceType, const Tizen::Base::String& state);
+
+private :
+       Tizen::Base::Collection::IList* __pMoveIndexList;
+       Tizen::Base::String __moveToDir;
+       bool __isCopyOperation;
+       FileListPresentationModel* __pPresentationModel;
+       Tizen::Base::Collection::HashMap __scanDirMap;
+       Tizen::Content::ContentManager* __pContentManager;
+};
+
+#endif //_GL_FILE_MOVE_TIMER_H_
diff --git a/inc/GlFileOpInvalidateListener.h b/inc/GlFileOpInvalidateListener.h
new file mode 100644 (file)
index 0000000..01e0398
--- /dev/null
@@ -0,0 +1,37 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlFileOpInvalidateListener.h
+ * @brief              This is the header file for FileOpInvalidateListener class.
+ */
+
+#ifndef _GL_FILE_OP_INVALIDATE_LISTENER_H_
+#define _GL_FILE_OP_INVALIDATE_LISTENER_H_
+
+#include "GlTypes.h"
+
+class IFileOpInvalidateListener
+{
+public:
+       virtual ~IFileOpInvalidateListener(void){}
+       virtual void OnFileOpInvalidate(enum FileActionMode) = 0;
+       virtual void OnFileOpComplete(enum FileActionMode, enum FileActionCompleteRes) = 0;
+       virtual void OnScanDirStart() = 0;
+       virtual void OnScanDirComplete() = 0;
+};
+
+#endif /* _GL_FILE_OP_INVALIDATE_LISTENER_H_ */
diff --git a/inc/GlFileUpdateTimer.h b/inc/GlFileUpdateTimer.h
new file mode 100644 (file)
index 0000000..11912f6
--- /dev/null
@@ -0,0 +1,54 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlFileUpdateTimer.h
+ * @brief              This is the header file for FileUpdateTimer class.
+ */
+#ifndef _GL_FILE_UPDATE_TIMER_H_
+#define _GL_FILE_UPDATE_TIMER_H_
+
+#include <FContent.h>
+#include "GlTimerBase.h"
+
+class FileListPresentationModel;
+class IContentFileUpdateManager;
+
+class FileUpdateTimer
+       : public GlTimerBase
+{
+public:
+       FileUpdateTimer(Tizen::Base::Collection::IList*, IContentFileUpdateManager*, IFileOpInvalidateListener*, FileActionMode, RotateMode rotateMode = ROTATE_MODE_RIGHT);
+       virtual ~FileUpdateTimer(void);
+
+private:
+       virtual Tizen::Base::Collection::IList * TimerStart(void);
+       virtual result TimerExpired(const Tizen::Base::Object* contentId);
+       virtual result ScanDirectories(void);
+       virtual int GetDirScanCount();
+       void OnDeviceStateChanged(Tizen::System::DeviceType deviceType, const Tizen::Base::String& state);
+       virtual void TimerCancel(int, enum FileActionCancelRes res);
+       virtual void TimerComplete(int, enum FileActionCompleteRes res);
+
+private :
+       Tizen::Base::Collection::IList* __pUpdateIndexList;
+       IContentFileUpdateManager* __pFileUpdateManager;
+       RotateMode __rotateMode;
+       Tizen::Base::Collection::HashMap __scanDirMap;
+       Tizen::Content::ContentManager* __pContentManager;
+};
+
+#endif // _GL_FILE_UPDATE_TIMER_H_
diff --git a/inc/GlFormContentUpdateEventListener.h b/inc/GlFormContentUpdateEventListener.h
new file mode 100644 (file)
index 0000000..6b4c443
--- /dev/null
@@ -0,0 +1,40 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlFormContentUpdateEventListener.h
+ * @brief              This is the header file for ContentEventListener class.
+ */
+
+#ifndef _GL_CONTENT_EVENT_LISTENER_H_
+#define _GL_CONTENT_EVENT_LISTENER_H_
+
+class ProgressAnimation;
+
+class IFormContentUpdateEventListener
+       : public Tizen::Base::Runtime::IEventListener
+       , public Tizen::Base::Object
+{
+public:
+       virtual ~IFormContentUpdateEventListener(void){};
+       virtual void OnContentUpdated() = 0;
+       virtual void ShowAnimation(void) = 0;
+       virtual void StopAnimation(void) = 0;
+protected:
+       ProgressAnimation* _pProgressAnim;
+};
+
+#endif /* _GL_CONTENT_EVENT_LISTENER_H_ */
diff --git a/inc/GlFormFactory.h b/inc/GlFormFactory.h
new file mode 100644 (file)
index 0000000..a072a00
--- /dev/null
@@ -0,0 +1,36 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlFormFactory.h
+ * @brief              This is the header file for FormFactory class.
+ */
+
+#ifndef _GL_FORM_FACTORY_H_
+#define _GL_FORM_FACTORY_H_
+
+class FormFactory
+       : public 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);
+};
+
+#endif /* _GL_FORM_FACTORY_H_ */
diff --git a/inc/GlGalleryApp.h b/inc/GlGalleryApp.h
new file mode 100644 (file)
index 0000000..3ded69e
--- /dev/null
@@ -0,0 +1,76 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlGalleryApp.h
+ * @brief              This is the header file for GalleryApp class.
+ */
+
+#ifndef _GL_GALLERY_APP_H_
+#define _GL_GALLERY_APP_H_
+
+#include <FApp.h>
+#include <FSystem.h>
+#include "GlTypes.h"
+
+class AlbumListPresentationModel;
+class FileListPresentationModel;
+
+class GalleryApp
+       : public Tizen::App::UiApp
+       , public Tizen::App::IAppControlProviderEventListener
+       , public Tizen::System::ISettingEventListener
+{
+public:
+       static Tizen::App::UiApp* CreateInstance(void);
+
+public:
+       GalleryApp(void);
+       virtual ~GalleryApp(void);
+
+       Tizen::Base::String GetAppControlOperationId(void) const;
+       Tizen::Base::String GetUriData(void) const;
+       Tizen::Base::String GetMimeType(void) const;
+       const Tizen::Base::Collection::IMap* GetAppControlArguments(void) const;
+       void SendAppControlResult(const Tizen::App::AppCtrlResult appControlResult,
+                       const Tizen::Base::Collection::IMap* pExtraData);
+
+       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 OnAppControlRequestReceived(RequestId reqId, const Tizen::Base::String& operationId,
+                       const Tizen::Base::String* pUriScheme, const Tizen::Base::String* pDataType,
+                       const Tizen::Base::Collection::IMap* pArgs);
+
+       virtual void OnSettingChanged(Tizen::Base::String& key);
+
+       void SetFrameEnabled(const bool enabled);
+       void SetFrameActivated(bool frameActivated);
+       bool GetFrameActivated(void) const;
+
+private:
+       RequestId __requestId;
+       Tizen::Base::String __operationId;
+       Tizen::Base::String __uriData;
+       Tizen::Base::String __mimeType;
+       const Tizen::Base::Collection::HashMap* __pArguments;
+       Tizen::App::AppCtrlResult __appControlResult;
+       bool __frameActivated;
+};
+
+#endif /* _GL_GALLERY_APP_H_ */
diff --git a/inc/GlIContentFileUpdateManager.h b/inc/GlIContentFileUpdateManager.h
new file mode 100644 (file)
index 0000000..be831da
--- /dev/null
@@ -0,0 +1,40 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlIContentFileUpdateManager.h
+ * @brief              This is the header file for IContentFileDeleteManager class.
+ */
+
+#ifndef _GL_ICONTENT_FILE_UPDATE_MANAGER_H_
+#define _GL_ICONTENT_FILE_UPDATE_MANAGER_H_
+
+#include "GlTypes.h"
+
+class IContentFileUpdateManager
+{
+public:
+       IContentFileUpdateManager(){}
+       virtual ~IContentFileUpdateManager(){}
+
+       virtual Tizen::Base::Collection::IList* GetContentIdListAtIndexN(const Tizen::Base::Collection::IList& indexList) const = 0;
+       virtual result DeleteContentFile(const Tizen::Base::String& filePath) = 0;
+       virtual result RotateImage(const Tizen::Content::ContentId& contentId, RotateMode rotateMode) = 0;
+       virtual void RequestThumbnail(const int index) = 0;
+       virtual void RequestThumbnail(const Tizen::Content::ContentId& contentId) = 0;
+};
+
+#endif /* _GL_ICONTENT_FILE_UPDATE_MANAGER_H_ */
diff --git a/inc/GlImageCropForm.h b/inc/GlImageCropForm.h
new file mode 100644 (file)
index 0000000..ef1fef5
--- /dev/null
@@ -0,0 +1,106 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlImageCropForm.h
+ * @brief              This is the implementation file for Image Crop.
+ */
+
+#ifndef _GL_IMAGE_CROP_H_
+#define _GL_IMAGE_CROP_H_
+
+#include <FMedia.h>
+#include <FUi.h>
+
+#include "GlFileListPresentationModel.h"
+
+enum TouchLocation
+{
+       INSIDE_CROPBOX = 0,
+       OUTSIDE_CROPBOX,
+       INSIDE_TOP_RECTANGLE,
+       INSIDE_BOTTOM_RECTANGLE,
+       INSIDE_LEFT_RECTANGLE,
+       INSIDE_RIGHT_RECTANGLE,
+       INSIDE_TOP_LEFT_RECTANGLE,
+       INSIDE_TOP_RIGHT_RECTANGLE,
+       INSIDE_BOTTOM_LEFT_RECTANGLE,
+       INSIDE_BOTTOM_RIGHT_RECTANGLE,
+};
+
+class ImageCropForm
+       : public IFormContentUpdateEventListener
+       , public Tizen::Ui::Controls::Form
+       , public Tizen::Ui::Controls::IFormBackEventListener
+       , public Tizen::Ui::IActionEventListener
+       , public Tizen::Ui::IOrientationEventListener
+       , public Tizen::Ui::ITouchEventListener
+       , public Tizen::Ui::Scenes::ISceneEventListener
+{
+public:
+       ImageCropForm(void);
+       ~ImageCropForm(void);
+
+       bool Initialize(void);
+       void CheckCurrentPosition(const Tizen::Graphics::Point currentPosition);
+       void SetValue(void);
+       Tizen::Base::String GetFileName(const Tizen::Base::String& filePath, bool isCheckExe = false) const;
+
+       virtual result OnInitializing(void);
+       virtual result OnDraw(void);
+
+       virtual void OnContentUpdated(void);
+       virtual void ShowAnimation(void){};
+       virtual void StopAnimation(void){};
+
+       virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source);
+
+       virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+
+       virtual void OnOrientationChanged(const Tizen::Ui::Control &source, Tizen::Ui::OrientationStatus orientationStatus);
+
+       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 OnTouchMoved(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo);
+       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 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::String __sourceFilePath;
+       Tizen::Base::String __cropMode;
+       Tizen::Graphics::Canvas* __pCanvas;
+       Tizen::Graphics::Bitmap* __pCurrentBitmap;
+       Tizen::Graphics::Bitmap* __pRectangleBitmap;
+       Tizen::Graphics::Point __touchStart;
+       Tizen::Graphics::Rectangle __cropBox;
+       Tizen::Graphics::Rectangle __imageBox;
+       Tizen::Media::ImageBuffer* __imageBuffer;
+       Tizen::Media::ImageFormat __imageFormat;
+       TouchLocation __pointLocation;
+       bool __isOrientationChanged;
+       int __imageHeight;
+       int __imageWidth;
+       int __statusValue;
+       int __formHeight;
+       int __formWidth;
+       int __skipMoveEvent;
+       FileListPresentationModel* __pPresentationModel;
+};
+
+#endif /* _GL_IMAGE_CROP_H_ */
diff --git a/inc/GlImageListEditorPanel.h b/inc/GlImageListEditorPanel.h
new file mode 100644 (file)
index 0000000..5c113f8
--- /dev/null
@@ -0,0 +1,88 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlImageListEditorPanel.h
+ * @brief              This is the header file for ImageListEditorPanel class.
+ */
+
+#ifndef _GL_IMAGE_LIST_EDITOR_PANEL_H_
+#define _GL_IMAGE_LIST_EDITOR_PANEL_H_
+
+#include "GlAlbumEventListener.h"
+#include "GlThumbnailEventListener.h"
+#include "GlFileOpInvalidateListener.h"
+#include "GlFileListEditorForm.h"
+
+class FileListPresentationModel;
+class FileUpdateTimer;
+
+class ImageListEditorPanel
+       : public Tizen::Ui::Controls::Panel
+       , public Tizen::Ui::Controls::IIconListViewItemEventListener
+       , public Tizen::Ui::Controls::IIconListViewItemProvider
+       , public Tizen::Ui::Scenes::ISceneEventListener
+       , public IAlbumEventListener
+       , public IFileOpInvalidateListener
+{
+public:
+       ImageListEditorPanel(void);
+       virtual ~ImageListEditorPanel(void);
+
+       result Initialize(void);
+
+       void OnSelectAllPressed(void);
+       void OnRequestAppExitWithMultipleSelectionAppControlResult(void);
+       int GetItemCheckedCount(void) const;
+
+       virtual result OnInitializing(void);
+       virtual result OnTerminating(void);
+       void SetButtonState(void);
+
+       virtual void OnIconListViewItemStateChanged (Tizen::Ui::Controls::IconListView &view, int index,
+                       Tizen::Ui::Controls::IconListViewItemStatus status);
+
+       virtual int GetItemCount(void);
+       virtual Tizen::Ui::Controls::IconListViewItem* CreateItem(int index);
+       virtual bool DeleteItem(int index, Tizen::Ui::Controls::IconListViewItem* pItem);
+
+       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 OnFileInfoChanged(const Tizen::Content::ContentType contentType);
+       virtual void OnThumbnailDecoded(const int index);
+
+       virtual void OnFileOpInvalidate(enum FileActionMode actionId);
+       virtual void OnFileOpComplete(enum FileActionMode actionId, enum FileActionCompleteRes);
+       virtual void OnScanDirStart(){}
+       virtual void OnScanDirComplete(){}
+       void ChangeOrientation(void);
+
+private:
+       Tizen::Base::Collection::IList* GetItemCheckedIndexListN(void) const;
+
+private:
+       int __itemCount;
+       Tizen::Ui::Controls::IconListView* __pContentIconListView;
+       Tizen::Ui::Controls::CheckButton* __pCheckButton;
+       Tizen::Ui::Controls::Label* __pLabelSelectCnt;
+       FileListPresentationModel* __pPresentationModel;
+       FileListEditorForm* __pFileListEditorForm;
+};
+
+#endif /* _GL_IMAGE_LIST_EDITOR_PANEL_H_ */
diff --git a/inc/GlImageListPanel.h b/inc/GlImageListPanel.h
new file mode 100644 (file)
index 0000000..ad51432
--- /dev/null
@@ -0,0 +1,67 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlImageListPanel.h
+ * @brief              This is the header file for ImageListPanel class.
+ */
+
+#ifndef _GL_IMAGE_LIST_PANEL_H_
+#define _GL_IMAGE_LIST_PANEL_H_
+
+#include "GlAlbumEventListener.h"
+#include "GlThumbnailEventListener.h"
+
+class FileListPresentationModel;
+
+class ImageListPanel
+       : public Tizen::Ui::Controls::Panel
+       , public Tizen::Ui::Controls::IIconListViewItemEventListener
+       , public Tizen::Ui::Controls::IIconListViewItemProvider
+       , public Tizen::Ui::Scenes::ISceneEventListener
+       , public IAlbumEventListener
+{
+public:
+       ImageListPanel(void);
+       virtual ~ImageListPanel(void);
+
+       result Initialize(void);
+
+       virtual result OnInitializing(void);
+       virtual result OnTerminating(void);
+
+       virtual void OnIconListViewItemStateChanged (Tizen::Ui::Controls::IconListView &view, int index,
+                       Tizen::Ui::Controls::IconListViewItemStatus status);
+
+       virtual int GetItemCount(void);
+       virtual Tizen::Ui::Controls::IconListViewItem* CreateItem(int index);
+       virtual bool DeleteItem(int index, Tizen::Ui::Controls::IconListViewItem* pItem);
+
+       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 OnFileInfoChanged(const Tizen::Content::ContentType contentType);
+       virtual void OnThumbnailDecoded(const int index);
+
+private:
+       int __itemCount;
+       Tizen::Ui::Controls::IconListView* __pContentIconListView;
+       FileListPresentationModel* __pPresentationModel;
+};
+
+#endif /* _GL_IMAGE_LIST_PANEL_H_ */
diff --git a/inc/GlMainFrame.h b/inc/GlMainFrame.h
new file mode 100644 (file)
index 0000000..f18ca45
--- /dev/null
@@ -0,0 +1,41 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlMainFrame.h
+ * @brief              This is the header file for MainFrame class.
+ */
+
+#ifndef _GL_MAIN_FRAME_H_
+#define _GL_MAIN_FRAME_H_
+
+class MainFrame
+       : public Tizen::Ui::Controls::Frame
+       , public Tizen::Ui::Controls::IFrameEventListener
+{
+public:
+       MainFrame(void);
+       virtual ~MainFrame(void);
+
+       virtual result OnInitializing(void);
+       virtual result OnTerminating(void);
+
+       virtual void OnFrameActivated(const Tizen::Ui::Controls::Frame& source);
+       virtual void OnFrameDeactivated(const Tizen::Ui::Controls::Frame& source){}
+       virtual void OnFrameTerminating(const Tizen::Ui::Controls::Frame& source){}
+};
+
+#endif /* _GL_MAIN_FRAME_H_ */
diff --git a/inc/GlPanelFactory.h b/inc/GlPanelFactory.h
new file mode 100644 (file)
index 0000000..394b981
--- /dev/null
@@ -0,0 +1,38 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlPanelFactory.h
+ * @brief              This is the header file for PanelFactory class.
+ */
+
+#ifndef _GL_PANEL_FACTORY_H_
+#define _GL_PANEL_FACTORY_H_
+
+#include <FUi.h>
+
+class PanelFactory
+       : public 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);
+};
+
+#endif /* _GL_PANEL_FACTORY_H_ */
diff --git a/inc/GlProgressAnimation.h b/inc/GlProgressAnimation.h
new file mode 100644 (file)
index 0000000..1a09226
--- /dev/null
@@ -0,0 +1,48 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlProgressAnimation.h
+ * @brief              This is the header file for GlProgressAnimation class.
+ */
+
+#ifndef _GL_PROGRESS_ANIMATION_H_
+#define _GL_PROGRESS_ANIMATION_H_
+
+#include <FUi.h>
+
+class ProgressAnimation
+       : public Tizen::Ui::Controls::Panel
+{
+public:
+       ProgressAnimation(void);
+       virtual ~ProgressAnimation(void);
+
+       result Construct(Tizen::Graphics::Rectangle rect);
+
+       void AnimationStart(void);
+       void AnimationStop(void);
+       void ChangeOrientation(Tizen::Graphics::Rectangle rect);
+
+private:
+       static const int DURATION = 500;
+       static const int PROGRESS_COUNT = 30;
+
+       Tizen::Ui::Controls::Animation* __pAnimation;
+       Tizen::Base::Collection::ArrayList* __pAnimationFrameList;
+};
+
+#endif /* _GL_PROGRESS_ANIMATION_H_ */
diff --git a/inc/GlProgressBar.h b/inc/GlProgressBar.h
new file mode 100644 (file)
index 0000000..bfd714f
--- /dev/null
@@ -0,0 +1,53 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlProgressBar.h
+ * @brief              This is the header file for GlProgressBar class.
+ */
+
+#ifndef _GL_PROGRESS_BAR_H_
+#define _GL_PROGRESS_BAR_H_
+
+#include "GlTypes.h"
+
+class GlProgressBar
+{
+public:
+       GlProgressBar(Tizen::Ui::IActionEventListener* listener,Tizen::Ui::IPropagatedKeyEventListener* __pPropagatedListener);
+       virtual ~GlProgressBar(void);
+
+       void HideFileProgressingPopup(void);
+       void ShowFileProgressingPopup(const int val, enum FileActionMode action);
+       void IncProgress(const int count);
+
+private:
+       result CreateFileProgressingPopup(void);
+
+private:
+       int __totalVal;
+       int __curVal;
+       Tizen::Ui::Controls::Popup* __pFileProgressingPopup;
+       Tizen::Ui::Controls::Progress* __pFileProgressingProgress;
+       Tizen::Ui::Controls::Label* __pFileProgressingHeaderLabel;
+       Tizen::Ui::Controls::Label* __pFileProgressingLabel;
+       Tizen::Ui::Controls::Label* __pFileCounterLabel;
+       Tizen::Ui::Controls::Button* __pFileProgressingCancelButton;
+       Tizen::Ui::IActionEventListener* __pActionListener;
+       Tizen::Ui::IPropagatedKeyEventListener* __pPropagatedListener;
+};
+
+#endif /* _GL_PROGRESS_BAR_H_ */
diff --git a/inc/GlRadioCustomItem.h b/inc/GlRadioCustomItem.h
new file mode 100644 (file)
index 0000000..7dabb8e
--- /dev/null
@@ -0,0 +1,52 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ *@file         IntRadioCustomItem.h
+ *@brief        The RadioCustomItem defines radio custom item.
+ *
+ */
+
+#ifndef _GL_RADIO_CUSTOM_ITEM_H_
+#define _GL_RADIO_CUSTOM_ITEM_H_
+
+#include "GlTypes.h"
+
+class RadioCustomItem
+       : public Tizen::Ui::Controls::CustomItem
+{
+public:
+       RadioCustomItem(void);
+       virtual ~RadioCustomItem(void);
+
+       result Construct(int width, int height);
+       Tizen::Base::String GetText(void) const;
+       result Make(int fontSize);
+       void SetText(const Tizen::Base::String& text);
+
+
+protected:
+       static const int IDA_FORMAT_STRING;
+       static const int IDA_FORMAT_RADIO_BUTTON;
+
+private:
+       bool __isSelected;
+       int __width;
+       int __height;
+       Tizen::Base::String __text;
+};
+
+#endif /* _GL_RADIO_CUSTOM_ITEM_H_ */
diff --git a/inc/GlResourceManager.h b/inc/GlResourceManager.h
new file mode 100644 (file)
index 0000000..44cf2cc
--- /dev/null
@@ -0,0 +1,38 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlResourceManager.h
+ * @brief              This is the header file for ResourceManager class.
+ */
+
+#ifndef _GL_RESOURCE_MANAGER_H_
+#define _GL_RESOURCE_MANAGER_H_
+
+#include <FGraphics.h>
+
+class ResourceManager
+{
+public:
+       static Tizen::Graphics::Bitmap* GetBitmapN(const Tizen::Base::String& id);
+       static Tizen::Base::String GetString(const Tizen::Base::String& id);
+
+private:
+       ResourceManager(void);
+       virtual ~ResourceManager(void);
+};
+
+#endif /* _GL_RESOURCE_MANAGER_H_ */
diff --git a/inc/GlSettingMainForm.h b/inc/GlSettingMainForm.h
new file mode 100644 (file)
index 0000000..a8a0373
--- /dev/null
@@ -0,0 +1,128 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlSettingMainForm.h
+ * @brief              This is the header file for SettingMainForm class.
+ */
+
+#ifndef _GL_SETTING_MAIN_FORM_H_
+#define _GL_SETTING_MAIN_FORM_H_
+
+#include "GlFormContentUpdateEventListener.h"
+
+enum SettingListItemType
+{
+       ITEM_TYPE_NORMAL = 0,
+       ITEM_TYPE_TOGGLE,
+       ITEM_TYPE_DROPDOWN,
+       ITEM_TYPE_RADIO,
+};
+
+enum
+{
+       SETTING_INVALID = -1,
+       SETTING_SLIDESHOW_INTERVAL_TITLE = 0,
+       SETTING_INTERVAL_2,
+       SETTING_INTERVAL_3,
+       SETTING_INTERVAL_5,
+       SETTING_INTERVAL_10,
+       SETTING_INTERVAL_20,
+       SETTING_REPEAT,
+       SETTING_SHUFFLE,
+       SETTING_TRANSITION_EFFECT_TITLE,
+       SETTING_TRANSITION_PAGE,
+       SETTING_TRANSITION_DISSOLVE,
+       SETTING_TRANSITION_ZOOM,
+       SETTING_MAX
+};
+
+class SettingPresentationModel;
+
+class SettingMainForm
+       : public IFormContentUpdateEventListener
+       , public Tizen::Ui::Controls::Form
+       , public Tizen::Ui::IActionEventListener
+       , public Tizen::Ui::Controls::IGroupedListViewItemEventListener
+       , public Tizen::Ui::Controls::IGroupedListViewItemProvider
+       , public Tizen::Ui::Controls::IFormBackEventListener
+       , public Tizen::Ui::Scenes::ISceneEventListener
+       , public Tizen::System::ISettingEventListener
+
+{
+public:
+       SettingMainForm(void);
+       virtual ~SettingMainForm(void);
+       result Initialize(void);
+
+       virtual result OnInitializing(void);
+       virtual result OnTerminating(void);
+       virtual void OnContentUpdated(void);
+
+       virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+
+       void OnGroupedListViewContextItemStateChanged(Tizen::Ui::Controls::GroupedListView& listView,
+                       int groupIndex, int itemIndex, int elementId, Tizen::Ui::Controls::ListContextItemStatus status){};
+       void OnGroupedListViewItemStateChanged(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex,
+                       int itemIndex, int elementId, Tizen::Ui::Controls::ListItemStatus status);
+       void OnGroupedListViewItemSwept(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex,
+                       int itemIndex, Tizen::Ui::Controls::SweepDirection direction){};
+
+       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 OnFormBackRequested(Tizen::Ui::Controls::Form& source);
+
+       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 OnSettingChanged(Tizen::Base::String& key);
+       virtual void ShowAnimation(void){}
+       virtual void StopAnimation(void){}
+       class SettingItemInfo
+       {
+       public:
+               SettingItemInfo(void);
+               virtual ~SettingItemInfo(void){};
+
+       public:
+               int childCount;
+               bool isOpen;
+               bool isSelected;
+               SettingListItemType itemType;
+               Tizen::Base::String titleText;
+               Tizen::Base::String subText;
+       };
+
+       int* pGroupItemCount;
+       SettingItemInfo settingInfo[SETTING_MAX];
+
+private:
+       void InitializeSettingValues(void);
+
+private:
+       Tizen::Ui::Controls::GroupedListView* __pList;
+       SettingPresentationModel* __pPresentationModel;
+       bool __contentUpdated;
+};
+
+#endif /* _GL_SETTING_MAIN_FORM_H_ */
diff --git a/inc/GlSettingPresentationModel.h b/inc/GlSettingPresentationModel.h
new file mode 100644 (file)
index 0000000..96d1947
--- /dev/null
@@ -0,0 +1,62 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlSettingPresentationModel.h
+ * @brief              This is the header file for SettingPresentationModel class.
+ */
+
+#ifndef _GL_SETTING_PRESENTATION_MODEL_H_
+#define _GL_SETTING_PRESENTATION_MODEL_H_
+
+#include <FApp.h>
+#include <FIo.h>
+
+class SettingPresentationModel
+       : public Tizen::Base::Object
+{
+public:
+       static SettingPresentationModel* GetInstance(void);
+
+public:
+       result GetValue(const Tizen::Base::String& strSectionName, const Tizen::Base::String& entryName,
+                       int& value) const;
+       result GetValue(const Tizen::Base::String& strSectionName, const Tizen::Base::String& entryName,
+                       Tizen::Base::String& value) const;
+       result SetValue(const Tizen::Base::String& strSectionName, const Tizen::Base::String& entryName, int value);
+       result SetValue(const Tizen::Base::String& strSectionName, const Tizen::Base::String& entryName,
+                       const Tizen::Base::String& value);
+
+       result CreateDefaultRegistry(void);
+
+       void DeleteRegistry(void);
+private:
+       SettingPresentationModel(void);
+       virtual ~SettingPresentationModel(void);
+       SettingPresentationModel(SettingPresentationModel& value);
+       SettingPresentationModel& operator=(SettingPresentationModel&);
+
+       result Construct(void);
+       static void CreateInstance(void);
+       static void DestroyInstance(void);
+
+
+private:
+       Tizen::Io::Registry* __pDefaultGalleryRegistry;
+       static SettingPresentationModel* __pPresentationModelInstance;
+};
+
+#endif /* _GL_SETTING_PRESENTATION_MODEL_H_ */
diff --git a/inc/GlSettingToggleCustomItem.h b/inc/GlSettingToggleCustomItem.h
new file mode 100644 (file)
index 0000000..39df99b
--- /dev/null
@@ -0,0 +1,96 @@
+//
+
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file         GlSettingToggleCustomItem.h
+ * @brief        The SettingToggleCustomItem used to toggle the item.
+ */
+
+#ifndef _INT_SETTING_TOGGLE_CUSTOM_ITEM_H_
+#define _INT_SETTING_TOGGLE_CUSTOM_ITEM_H_
+
+#include "GlTypes.h"
+
+class SettingToggleCustomItem
+       : public Tizen::Ui::Controls::CustomItem
+{
+
+public:
+       /**
+        * @brief The Default constructor
+        */
+       SettingToggleCustomItem(void);
+
+       /**
+        * @brief The Default destructor
+        */
+       virtual ~SettingToggleCustomItem(void);
+
+       /**
+        * @brief Initializes this instance of %DropDownCustomItem.
+        *
+        * @return              An error code
+        * @param[in]   void                            An instance of the Rectangle class @n
+        *                                                                      This instance represents the x and y coordinates of the top-left corner of the created window along with
+        *                                                                      the width and height of the window.
+        * @exception   E_SUCCESS                       The method is successful.
+        * @exception   E_INVALID_STATE         This instance has already been constructed.
+        * @exception   E_INVALID_ARG       A specified input parameter is invalid.
+        * @exception   E_OUT_OF_MEMORY     The memory is insufficient.
+        * @exception   E_SYSTEM                        A system error has occurred.
+        *
+        */
+       result Construct(int width, int height);
+
+       //getter and setter methods for text
+
+       /**
+        * @brief The method used to get the text of CustomItem
+        *
+        * @return              A String
+        */
+       Tizen::Base::String GetText(void) const;
+
+       /**
+        * @brief Add all the required elements and create the Custom Item.
+        *
+        * @return              An error code
+        * @param[in]   void                            An instance of the Rectangle class @n
+        *                                                                      This instance represents the x and y coordinates of the top-left corner of the created window along with
+        *                                                                      the width and height of the window.
+        * @exception   E_SUCCESS                       The method is successful.
+        * @exception   E_INVALID_STATE         This instance has already been constructed.
+        * @exception   E_INVALID_ARG       A specified input parameter is invalid.
+        * @exception   E_OUT_OF_MEMORY     The memory is insufficient.
+        * @exception   E_SYSTEM                        A system error has occurred.
+        *
+        */
+       result Make(int fontSize);
+
+       /**
+        * @brief The method used to set the text of CustomItem
+        */
+
+       void SetText(const Tizen::Base::String& text);
+
+private:
+       int __width;                ///Width of the SettingToggleCustomItem Instance
+       int __height;               ///Height of the SettingToggleCustomItem Instance
+       Tizen::Base::String __text;   ///The Text for the Toggle Button
+};
+
+#endif /* _INT_SETTING_TOGGLE_CUSTOM_ITEM_H_ */
diff --git a/inc/GlSlideSettingListener.h b/inc/GlSlideSettingListener.h
new file mode 100644 (file)
index 0000000..ad35c63
--- /dev/null
@@ -0,0 +1,34 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlISlideSettingListener.h
+ * @brief              This is the header file for ISlideSettingListener class.
+ */
+
+#ifndef _GL_SLIDE_SETTING_LISTENER_H_
+#define _GL_SLIDE_SETTING_LISTENER_H_
+
+class ISlideSettingListener
+{
+public:
+       ISlideSettingListener(void){};
+       virtual ~ISlideSettingListener(void) {};
+
+       virtual void OnSlideSettingPopUpItemSelected(int index) = 0;
+};
+
+#endif /* _GL_SLIDE_SETTING_LISTENER_H_ */
diff --git a/inc/GlSlideShowPopUp.h b/inc/GlSlideShowPopUp.h
new file mode 100644 (file)
index 0000000..af9adee
--- /dev/null
@@ -0,0 +1,74 @@
+//
+// Tizen Native SDK
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+
+/**
+ * @file    GlSlideShowPopUp.h
+ * @brief      This header file contains the declarations of the SlideShowPopUp
+ *
+ */
+
+#ifndef _GL_SLIDE_SHOW_POPUP_H_
+#define _GL_SLIDE_SHOW_POPUP_H_
+
+#include <FUi.h>
+
+class ISlideSettingListener;
+
+class SlideShowPopUp
+       : public Tizen::Ui::Controls::IListViewItemEventListener
+       , public Tizen::Ui::Controls::IListViewItemProvider
+       , public Tizen::Ui::Controls::Popup
+       , public Tizen::Ui::IActionEventListener
+       , public Tizen::Ui::IPropagatedKeyEventListener
+{
+public:
+       SlideShowPopUp(void);
+       virtual ~SlideShowPopUp(void);
+
+       bool Initialize(void);
+       virtual result OnTerminating(void);
+
+public:
+       void SetEventListner(ISlideSettingListener* listner);
+
+       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 OnListViewContextItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index,
+                       int elementId, Tizen::Ui::Controls::ListContextItemStatus state){};
+       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 OnListViewItemLongPressed(Tizen::Ui::Controls::ListView& listView, int index, int elementId,
+                       bool& invokeListViewItemCallback){};
+
+       virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+
+       virtual bool OnKeyPressed(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo){return false;};
+       virtual bool OnKeyReleased(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo);
+       virtual bool OnPreviewKeyPressed(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo){return false;};
+       virtual bool OnPreviewKeyReleased(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo){return false;};
+
+private:
+       Tizen::Ui::Controls::ListView* __pList;
+       ISlideSettingListener* __pListener;
+};
+
+#endif /* _GL_SLIDE_SHOW_POPUP_H_ */
diff --git a/inc/GlThumbnailEvent.h b/inc/GlThumbnailEvent.h
new file mode 100644 (file)
index 0000000..bb94ce8
--- /dev/null
@@ -0,0 +1,40 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlThumbnailEvent.h
+ * @brief              This is the header file for ThumbnailEvent class.
+ */
+
+#ifndef _GL_THUMBNAIL_EVENT_H_
+#define _GL_THUMBNAIL_EVENT_H_
+
+#include <FBase.h>
+
+class IThumbnailEventListener;
+
+class ThumbnailEvent
+       : public Tizen::Base::Runtime::Event
+{
+public:
+        virtual ~ThumbnailEvent(void);
+
+protected:
+       virtual void FireImpl(Tizen::Base::Runtime::IEventListener& listener,
+                       const Tizen::Base::Runtime::IEventArg& eventArg);
+};
+
+#endif /* _GL_THUMBNAIL_EVENT_H_ */
diff --git a/inc/GlThumbnailEventArg.h b/inc/GlThumbnailEventArg.h
new file mode 100644 (file)
index 0000000..5a7e6f5
--- /dev/null
@@ -0,0 +1,39 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlThumbnailEventArg.h
+ * @brief              This is the header file for ThumbnailEventArg class.
+ */
+
+#ifndef _GL_THUMBNAIL_EVENT_ARG_H_
+#define _GL_THUMBNAIL_EVENT_ARG_H_
+
+class ThumbnailInfo;
+
+class ThumbnailEventArg
+       : public Tizen::Base::Runtime::IEventArg
+{
+public:
+       ThumbnailEventArg(ThumbnailInfo* pThumbnailInfo);
+       virtual ~ThumbnailEventArg(void);
+       virtual ThumbnailInfo* GetThumbnailInfoN(void);
+
+protected:
+       ThumbnailInfo* _pThumbnailInfo;
+};
+
+#endif /* _GL_THUMBNAIL_EVENT_ARG_H_ */
diff --git a/inc/GlThumbnailEventListener.h b/inc/GlThumbnailEventListener.h
new file mode 100644 (file)
index 0000000..f50af95
--- /dev/null
@@ -0,0 +1,33 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlThumbnailEventListener.h
+ * @brief              This is the header file for ThumbnailEventListener class.
+ */
+
+#ifndef _GL_THUMBNAIL_EVENT_LISTENER_H_
+#define _GL_THUMBNAIL_EVENT_LISTENER_H_
+
+class IThumbnailEventListener
+       : public Tizen::Base::Runtime::IEventListener
+{
+public:
+       virtual ~IThumbnailEventListener(void) {};
+       virtual void OnThumbnailReceivedN(Tizen::Base::Runtime::IEventArg& eventArg) = 0;
+};
+
+#endif /* _GL_THUMBNAIL_EVENT_LISTENER_H_ */
diff --git a/inc/GlThumbnailInfo.h b/inc/GlThumbnailInfo.h
new file mode 100644 (file)
index 0000000..19e2b4b
--- /dev/null
@@ -0,0 +1,59 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlThumbnailInfo.h
+ * @brief              This is the header file for ThumbnailInfo class.
+ */
+
+#ifndef _GL_THUMBNAIL_INFO_H_
+#define _GL_THUMBNAIL_INFO_H_
+
+#include <FContent.h>
+
+class ThumbnailInfo
+       : public Tizen::Base::Object
+{
+public:
+       ThumbnailInfo(void);
+       virtual ~ThumbnailInfo(void);
+
+       void Construct(const Tizen::Content::ContentId& contentId,
+                       const Tizen::Base::String& filePath, const Tizen::Graphics::Bitmap& bitmap,
+                       const Tizen::Content::ContentType contentType, const long duration = 0);
+
+       Tizen::Content::ContentId GetContentId(void) const;
+       Tizen::Base::String GetFilePath(void) const;
+       void SetFilePath(const Tizen::Base::String& filePath);
+       Tizen::Graphics::Bitmap* GetBitmapN(void) const;
+       void SetBitmap(const Tizen::Graphics::Bitmap& bitmap);
+       Tizen::Content::ContentType GetContentType(void) const;
+       void SetContentType(const Tizen::Content::ContentType contentType);
+       long GetDuration(void) const;
+       void SetDuration(const long duration);
+
+private:
+       Tizen::Graphics::Bitmap* CloneBitmapN(const Tizen::Graphics::Bitmap& bitmap) const;
+
+private :
+       Tizen::Content::ContentId __contentId;
+       Tizen::Base::String __filePath;
+       Tizen::Graphics::Bitmap* __pBitmap;
+       Tizen::Content::ContentType __contentType;
+       long __duration;
+};
+
+#endif /* _GL_THUMBNAIL_INFO_H_ */
diff --git a/inc/GlThumbnailJob.h b/inc/GlThumbnailJob.h
new file mode 100644 (file)
index 0000000..6d12bc8
--- /dev/null
@@ -0,0 +1,51 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlThumbnailJob.h
+ * @brief              This is the header file for ThumbnailJob class.
+ */
+
+#ifndef _GL_THUMBNAIL_JOB_H_
+#define _GL_THUMBNAIL_JOB_H_
+
+class ThumbnailEvent;
+
+class ThumbnailJob
+       : public Tizen::Base::Object
+{
+public:
+       ThumbnailJob(void);
+       virtual ~ThumbnailJob(void);
+
+       void Construct(const Tizen::Content::ContentId& contentId, const unsigned long requestId,
+                       const ThumbnailEvent* pRequestEvent);
+
+       Tizen::Content::ContentId GetContentId(void) const;
+       unsigned long GetRequestId(void) const;
+       const ThumbnailEvent* GetEvent(void) const;
+
+private:
+       ThumbnailJob(const ThumbnailJob&);
+       ThumbnailJob& operator=(const ThumbnailJob&);
+
+private:
+       Tizen::Content::ContentId __contentId;
+       unsigned long __requestId;
+       const ThumbnailEvent* __pRequestEvent;
+};
+
+#endif /* _GL_THUMBNAIL_JOB_H_ */
diff --git a/inc/GlThumbnailProvider.h b/inc/GlThumbnailProvider.h
new file mode 100644 (file)
index 0000000..216169b
--- /dev/null
@@ -0,0 +1,69 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlThumbnailProvider.h
+ * @brief              This is the header file for ThumbnailProvider class.
+ */
+
+#ifndef _GL_THUMBNAIL_PROVIDER_H_
+#define _GL_THUMBNAIL_PROVIDER_H_
+
+#include "GlThumbnailInfo.h"
+
+class ThumbnailEvent;
+
+class ThumbnailProvider
+       : public Tizen::Base::Runtime::EventDrivenThread
+{
+public:
+       static ThumbnailProvider* GetInstance(void);
+
+public:
+       static void Release(void);
+
+       void RequestThumbnail(const Tizen::Content::ContentId& contentId, const ThumbnailEvent* event);
+       void ClearThumbnailRequests(const bool appTerminating = false);
+
+       virtual void OnUserEventReceivedN(RequestId requestId, Tizen::Base::Collection::IList * pArgs);
+       virtual bool OnStart(void);
+       virtual void OnStop(void);
+
+private:
+       ThumbnailProvider(void);
+       virtual ~ThumbnailProvider(void);
+       ThumbnailProvider(ThumbnailProvider& value);
+       ThumbnailProvider& operator = (ThumbnailProvider&);
+
+       result Construct(void);
+       static void CreateInstance(void);
+       static void DestroyInstance(void);
+
+       ThumbnailInfo* GetThumbnailInfoN(const Tizen::Content::ContentId& contentId) const;
+       Tizen::Graphics::Bitmap* GetThumbnailByDecodeN(const Tizen::Base::String& filePath, const Tizen::Content::ContentType contentType) const;
+       Tizen::Base::String GetFileNameFromFullPath(const Tizen::Base::String& fullPath, bool withExt) const;
+
+private:
+       static ThumbnailProvider* __pThumbnailProviderInstance;
+       static Tizen::Base::Collection::ArrayList* __pThumbnailEventListener;
+
+       Tizen::Base::Runtime::Mutex* __pMutexCmd;
+       Tizen::Base::Collection::ArrayList* __pCmdQueue;
+       unsigned long __requestId;
+       bool __isAppTerminating;
+};
+
+#endif /* _GL_THUMBNAIL_PROVIDER_H_ */
diff --git a/inc/GlTimerBase.h b/inc/GlTimerBase.h
new file mode 100644 (file)
index 0000000..ff31bf0
--- /dev/null
@@ -0,0 +1,97 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlTimerBase.h
+ * @brief              This is the header file for GlTimerBase class.
+ */
+
+#ifndef _GL_TIMER_BASE_H_
+#define _GL_TIMER_BASE_H_
+
+#include <FUi.h>
+#include <FSystem.h>
+#include "GlFileOpInvalidateListener.h"
+#include "GlTimerScanDirListener.h"
+#include "GlTypes.h"
+
+class GlProgressBar;
+
+class GlTimerBase
+       : public Tizen::Ui::IActionEventListener
+       , public Tizen::Base::Runtime::ITimerEventListener
+       , public ITimerScanDirListener
+       , public Tizen::Ui::IPropagatedKeyEventListener
+       , public Tizen::System::IDeviceEventListener
+{
+public:
+
+       GlTimerBase(IFileOpInvalidateListener*, enum FileActionMode actionId);
+       virtual ~GlTimerBase(void);
+
+       bool StartTimer(void);
+       void CancelTimer(void);
+       void SetActionMode(const enum FileActionMode actionId);
+
+       virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+
+       virtual void OnTimerExpired(Tizen::Base::Runtime::Timer& timer);
+       virtual void OnTimerScanDirComplete();
+
+       void Cancel(void);
+       bool IsStarted(void);
+
+
+       virtual bool OnKeyPressed(Tizen::Ui::Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo){ return false; };
+       virtual bool OnKeyReleased(Tizen::Ui::Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo);
+       virtual bool OnPreviewKeyPressed(Tizen::Ui::Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo){ return false;};
+       virtual bool OnPreviewKeyReleased(Tizen::Ui::Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo){ return false;};
+
+
+protected:
+       virtual Tizen::Base::Collection::IList* TimerStart(void) = 0;
+       virtual result TimerExpired(const Tizen::Base::Object*) = 0;
+       virtual void TimerCancel(int, enum FileActionCancelRes res) = 0;
+       virtual void TimerComplete(int, enum FileActionCompleteRes res) = 0;
+       virtual result ScanDirectories(void) = 0;
+       virtual int GetDirScanCount() = 0;
+       int GetMovedCount() const;
+       virtual void OnDeviceStateChanged(Tizen::System::DeviceType deviceType, const Tizen::Base::String& state) = 0;
+
+private:
+       void OnOpComplete(enum FileActionCompleteRes);
+       void OnOpCancelled(enum FileActionCancelRes res);
+
+protected:
+       enum FileActionMode _actionId;
+
+private:
+       Tizen::Base::Runtime::Timer __moveTimer;
+       Tizen::Base::Collection::IList * __pContentIdList;
+       int __moveToCount;
+       GlProgressBar* __pMoveProBar;
+       IFileOpInvalidateListener* __pInvalidate;
+       bool __isStarted;
+       enum TimerCompleteOptions
+       {
+               CANCEL_SYS,
+               CANCEL_BY_USER,
+               TIMER_COMPLETE
+       };
+       enum TimerCompleteOptions  __timerRes;
+ };
+
+#endif //_GL_TIMER_BASE_H_
diff --git a/inc/GlTimerScanDirListener.h b/inc/GlTimerScanDirListener.h
new file mode 100644 (file)
index 0000000..dea8b6d
--- /dev/null
@@ -0,0 +1,31 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlTimerScanDirListener.h
+ * @brief              This is the header file for GlTimerScanDirListener class.
+ */
+#ifndef        _GL_TIMER_SCANDIR_LISTENER_H_
+#define _GL_TIMER_SCANDIR_LISTENER_H_
+
+class ITimerScanDirListener
+{
+public:
+       virtual ~ITimerScanDirListener(void) {}
+       virtual void OnTimerScanDirComplete() = 0;
+};
+
+#endif //_GL_TIMER_SCANDIR_LISTENER_H_
diff --git a/inc/GlTypes.h b/inc/GlTypes.h
new file mode 100644 (file)
index 0000000..8a52c55
--- /dev/null
@@ -0,0 +1,360 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlTypes.h
+ * @brief              This is the header file for Types definition.
+ */
+
+#ifndef _GL_TYPES_H_
+#define _GL_TYPES_H_
+
+#include <FGraphics.h>
+
+enum ACTION_ID_
+{
+       IDA_BUTTON_CHECKED = 101,
+       IDA_BUTTON_CREATE_NAME_CANCEL = 102,
+       IDA_BUTTON_CREATE_NAME_SAVE = 103,
+       IDA_BUTTON_MOVE_TO_SELECTION = 104,
+       IDA_BUTTON_UNCHECKED = 105,
+       IDA_BUTTON_SAVE = 106,
+       IDA_ALBUM_LIST_SELECT_ALL = 201,
+       IDA_FILE_LIST_SELECT_ALL = 202,
+       IDA_CONTEXT_MENU_MESSAGE = 301,
+       IDA_CONTEXT_MENU_EMAIL = 302,
+       IDA_CONTEXT_MENU_MORE_ADD_TAG = 303,
+       IDA_CONTEXT_MENU_MORE_EDIT = 304,
+       IDA_CONTEXT_MENU_MORE_MOVE = 305,
+       IDA_CONTEXT_MENU_MORE_SLIDE_SHOW = 306,
+       IDA_CONTEXT_MENU_SHARE_MESSAGE = 307,
+       IDA_CONTEXT_MENU_SHARE_EMAIL = 308,
+       IDA_CONTEXT_MENU_MORE_COPY = 309,
+       IDA_CONTEXT_MENU_ROTATE_LEFT = 310,
+       IDA_CONTEXT_MENU_ROTATE_RIGHT = 311,
+       IDA_CONTEXTMENU_EDITOR_MOVE_ALBUM_ARRAY_START = 401,
+       IDA_CONTEXTMENU_EDITOR_MOVE_CREATE_ALBUM = 600,
+       IDA_CONTEXTMENU_SELECTION_MOVE_ALBUM_ARRAY_START = 601,
+       IDA_CONTEXTMENU_SELECTION_MOVE_CREATE_ALBUM = 800,
+       IDA_DELETE_POPUP_CANCEL = 801,
+       IDA_DELETE_POPUP_DEL = 802,
+       IDA_EDITE_FOLDER = 901,
+       IDA_FOOTER_CAMERA = 902,
+       IDA_FOOTER_CANCEL = 903,
+       IDA_FOOTER_CONFIRM = 904,
+       IDA_FOOTER_DELETE = 905,
+       IDA_FOOTER_EDIT = 906,
+       IDA_FOOTER_MORE = 907,
+       IDA_FOOTER_SHARE = 908,
+       IDA_FOOTER_SLIDESHOW = 909,
+       IDA_FORMAT_DURATION = 1001,
+       IDA_FORMAT_THUMBNAIL = 1002,
+       IDA_FORMAT_TITLE = 1003,
+       IDA_SELECTALL_CHECKED = 1101,
+       IDA_SELECTALL_UNCHECKED = 1102,
+       IDA_PROGRESSBAR_CANCEL = 1201
+};
+
+enum AppControlMode
+{
+       APPCONTROL_MODE_MAIN,
+       APPCONTROL_MODE_PICK,
+       APPCONTROL_MODE_SETTING,
+       APPCONTROL_MODE_UNKNOWN
+};
+
+enum AppControlParamType
+{
+       APPCONTROL_PARAM_TYPE_MEDIA_TYPE,
+       APPCONTROL_PARAM_TYPE_SELECTION_MODE,
+       APPCONTROL_PARAM_TYPE_UNKNOWN
+};
+
+enum AppControlMediaType
+{
+       APPCONTROL_MEDIA_TYPE_IMAGE,
+       APPCONTROL_MEDIA_TYPE_VIDEO,
+       APPCONTROL_MEDIA_TYPE_UNKNOWN
+};
+
+enum AppControlSelectionMode
+{
+       APPCONTROL_SELECTION_MODE_SINGLE,
+       APPCONTROL_SELECTION_MODE_MULTIPLE,
+       APPCONTROL_SELECTION_MODE_UNKNOWN
+};
+
+enum AlbumInfoType
+{
+       ALBUM_INFO_TYPE_BASE,
+       ALBUM_INFO_TYPE_FOLDER,
+       ALBUM_INFO_TYPE_FILE
+};
+
+enum AlbumNameEditorMode
+{
+       ALBUM_NAME_EDITOR_MODE_RENAME,
+       ALBUM_NAME_EDITOR_MODE_CREATE,
+       ALBUM_NAME_EDITOR_MODE_NONE
+};
+
+enum FileActionMode
+{
+       FILE_ACTION_DELETE,
+       FILE_ACTION_MOVE,
+       FILE_ACTION_COPY,
+       FILE_ACTION_RENAME,
+       FILE_ACTION_ROTATE
+};
+
+enum FileActionCancelRes
+{
+       CANCEL_USER,
+       CANCEL_SYS_ERROR
+};
+
+enum FileActionCompleteRes
+{
+       COMPLETE_SUCCESS,
+       COMPLETE_SYS_PARTIAL,
+       COMPLETE_SYS_FAILURE
+};
+
+enum AlbumAction
+{
+       ALBUM_CREATE,
+       ALBUM_RENAME
+};
+
+enum RotateMode
+{
+       ROTATE_MODE_RIGHT = 0,
+       ROTATE_MODE_LEFT
+};
+
+extern const wchar_t* IDL_FORM_ALBUM_LIST;
+extern const wchar_t* IDL_FORM_ALBUM_LIST_EDITOR;
+extern const wchar_t* IDL_FORM_FILE_LIST;
+extern const wchar_t* IDL_FORM_SETTING_MAIN;
+extern const wchar_t* IDL_FORM_SETTING_INTERVAL;
+extern const wchar_t* IDL_FORM_SETTING_TRANSITION;
+extern const wchar_t* IDL_FORM_IMAGE_CROP;
+
+extern const wchar_t* IDC_LABEL_ALBUM_LIST_EDITOR_SELECTED;
+
+extern const wchar_t* IDC_FORM_ALBUM_LIST;
+extern const wchar_t* IDC_FORM_ALBUM_LIST_EDITOR;
+extern const wchar_t* IDC_FORM_ALBUM_NAME_EDITOR;
+extern const wchar_t* IDC_FORM_FILE_LIST;
+extern const wchar_t* IDC_FORM_FILE_LIST_EDITOR;
+extern const wchar_t* IDC_FORM_SETTING_MAIN;
+extern const wchar_t* IDC_FORM_SETTING_INTERVAL;
+extern const wchar_t* IDC_FORM_SETTING_TRANSITION;
+extern const wchar_t* IDC_FORM_IMAGE_CROP;
+
+extern const wchar_t* IDC_PANEL_BLANK;
+extern const wchar_t* IDC_PANEL_ALL_LIST;
+extern const wchar_t* IDC_PANEL_IMAGE_LIST;
+extern const wchar_t* IDC_PANEL_VIDEO_LIST;
+extern const wchar_t* IDC_PANEL_ALL_LIST_EDITOR;
+extern const wchar_t* IDC_PANEL_IMAGE_LIST_EDITOR;
+extern const wchar_t* IDC_PANEL_VIDEO_LIST_EDITOR;
+extern const wchar_t* IDC_PANEL_ALL_LIST_SELECTION;
+
+extern const wchar_t* IDSCN_ALBUM_LIST;
+extern const wchar_t* IDSCN_ALBUM_LIST_EDITOR;
+extern const wchar_t* IDSCN_ALBUM_NAME_EDITOR;
+extern const wchar_t* IDSCN_ALL_LIST;
+extern const wchar_t* IDSCN_IMAGE_LIST;
+extern const wchar_t* IDSCN_VIDEO_LIST;
+extern const wchar_t* IDSCN_ALL_LIST_EDITOR;
+extern const wchar_t* IDSCN_IMAGE_LIST_EDITOR;
+extern const wchar_t* IDSCN_VIDEO_LIST_EDITOR;
+extern const wchar_t* IDSCN_ALL_LIST_SELECTION;
+extern const wchar_t* IDSCN_SETTING_MAIN;
+extern const wchar_t* IDSCN_SETTING_INTERVAL;
+extern const wchar_t* IDSCN_SETTING_TRANSITION;
+extern const wchar_t* IDSCN_IMAGE_CROP;
+
+extern const wchar_t* APPCONTROL_PROVIDER_ID_CAMERA;
+extern const wchar_t* APPCONTROL_PROVIDER_ID_MESSAGE;
+extern const wchar_t* APPCONTROL_PROVIDER_ID_EMAIL;
+extern const wchar_t* APPCONTROL_PROVIDER_ID_IMAGE;
+
+extern const wchar_t* APPCONTROL_OPERATION_ID_PICK;
+extern const wchar_t* APPCONTROL_OPERATION_ID_VIEW;
+extern const wchar_t* APPCONTROL_OPERATION_ID_CAPTURE;
+extern const wchar_t* APPCONTROL_OPERATION_ID_CREATE_CONTENT;
+extern const wchar_t* APPCONTROL_OPERATION_ID_COMPOSE;
+extern const wchar_t* APPCONTROL_OPERATION_ID_CONFIGURE;
+extern const wchar_t* APPCONTROL_OPERATION_ID_MAIN;
+
+extern const wchar_t* APPCONTROL_KEY_TYPE;
+extern const wchar_t* APPCONTROL_KEY_PATH;
+extern const wchar_t* APPCONTROL_KEY_INDEX;
+extern const wchar_t* APPCONTROL_KEY_SELECTION_MODE;
+extern const wchar_t* APPCONTROL_KEY_DATA_SELECTED;
+extern const wchar_t* APPCONTROL_KEY_MESSAGE_TYPE;
+extern const wchar_t* APPCONTROL_KEY_CAMERA_ALLOW_SWITCH;
+extern const wchar_t* APPCONTROL_KEY_IMAGEVIEWER_MODE;
+
+extern const wchar_t* APPCONTROL_URI_MMS_TO;
+extern const wchar_t* APPCONTROL_URI_MAIL_TO;
+
+extern const wchar_t* APPCONTROL_MIME_IMAGE_JPG;
+extern const wchar_t* APPCONTROL_MIME_IMAGE_ALL;
+
+extern const wchar_t* APPCONTROL_DATA_IMAGE;
+extern const wchar_t* APPCONTROL_DATA_VIDEO;
+extern const wchar_t* APPCONTROL_DATA_SINGLE;
+extern const wchar_t* APPCONTROL_DATA_MULTIPLE;
+extern const wchar_t* APPCONTROL_DATA_SLIDE_SHOW;
+extern const wchar_t* APPCONTROL_DATA_SELECTION_MODE;
+extern const wchar_t* APPCONTROL_DATA_TRUE;
+extern const wchar_t* APPCONTROL_DATA_MMS;
+extern const wchar_t* APPCONTROL_DATA_CROP_TYPE_AUTO;
+extern const wchar_t* APPCONTROL_DATA_CROP_TYPE_FIT_TO_SCREEN;
+
+extern const wchar_t* APPCONTROL_RESULT_KEY_LEGACY_RESULT;
+
+extern const wchar_t* SETTING_KEY_LANGUAGE;
+extern const wchar_t* SETTING_KEY_FONT_SIZE;
+
+extern const Tizen::Graphics::Dimension DIMENSION_DEFAULT_THUMBNAIL;
+extern const int FOLDER_BITMAP_MAX;
+
+extern const wchar_t* EMPTY_SPACE;
+extern const wchar_t* SINGLE_SPACE;
+
+extern const wchar_t* DIRECTORY_SEPARATOR;
+extern const wchar_t* FILE_EXT_SEPARATOR;
+extern const wchar_t* MULTI_ITEM_SEPARATOR;
+
+extern const wchar_t* CONTENT_EXT_PNG;
+extern const wchar_t* CONTENT_EXT_BMP;
+extern const wchar_t* CONTENT_EXT_JPG;
+extern const wchar_t* CONTENT_EXT_GIF;
+extern const wchar_t* CONTENT_EXT_TIF;
+extern const wchar_t* CONTENT_EXT_MP4;
+extern const wchar_t* CONTENT_EXT_3GP;
+extern const wchar_t* CONTENT_EXT_AVI;
+extern const wchar_t* CONTENT_EXT_RM;
+extern const wchar_t* CONTENT_EXT_WMV;
+extern const wchar_t* CONTENT_EXT_ASF;
+
+extern const wchar_t* SECTION_NAME_GALLERY;
+extern const wchar_t* SECTION_NAME_IMAGE_VIEWER;
+extern const wchar_t* SECTION_NAME_VIDEO_PLAYER;
+extern const wchar_t* ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_INTERVAL;
+extern const wchar_t* ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_TRANSITION_EFFECT;
+extern const wchar_t* ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_MUSIC;
+extern const wchar_t* ENTRY_NAME_IMAGE_VIEWER_REPEAT_VALUE;
+extern const wchar_t* ENTRY_NAME_IMAGE_VIEWER_SHUFFLE_VALUE;
+
+extern const wchar_t* ALL_ALBUMS_REAL_NAME;
+
+extern const wchar_t* FONT_SIZE_SETTING_INFO_KEY;
+
+extern const wchar_t* IDB_BUTTON_CIRCLE_BACKGROUND;
+extern const wchar_t* IDB_BUTTON_RENAME;
+extern const wchar_t* IDB_CONTROLBAR_CAMERA;
+extern const wchar_t* IDB_CONTROLBAR_DELETE;
+extern const wchar_t* IDB_CONTROLBAR_DELETE_DIM;
+extern const wchar_t* IDB_CONTROLBAR_MORE;
+extern const wchar_t* IDB_CONTROLBAR_MORE_DISABLED;
+extern const wchar_t* IDB_CONTROLBAR_MORE_PRESSED;
+extern const wchar_t* IDB_CONTROLBAR_SHARE;
+extern const wchar_t* IDB_CONTROLBAR_SHARE_DIM;
+extern const wchar_t* IDB_LISTVIEW_EMPTY;
+extern const wchar_t* IDB_MAIN_FOLDER_BACKGROUND;
+extern const wchar_t* IDB_VIDEOTHUMBNAIL_BG;
+extern const wchar_t* IDB_VIDEOTHUMBNAIL_BOOKMARK;
+extern const wchar_t* IDB_VIDEOTHUMBNAIL_FAVORITE;
+extern const wchar_t* IDB_VIDEOTHUMBNAIL_PLAY;
+extern const wchar_t* IDB_BUTTON_MOVE_SELECTION;
+extern const wchar_t* IDB_NO_CONTENTS_BROKEN;
+extern const wchar_t* IDB_LIST_EXPAND_CLOSED;
+extern const wchar_t* IDB_LIST_EXPAND_CLOSED_PRESS;
+extern const wchar_t* IDB_LIST_EXPAND_OPENED;
+extern const wchar_t* IDB_LIST_EXPAND_OPENED_PRESS;
+extern const wchar_t* IDB_ICON_SELECT_ALL;
+extern const wchar_t* IDB_ICON_SELECT_ALL_PRESS;
+
+extern const wchar_t* DEVICE_STORAGE_CARD_MOUNTED;
+extern const wchar_t* DEVICE_STORAGE_CARD_UNMOUNTED;
+extern const wchar_t* IDB_ALBUM_EDIT_RENAME_BG;
+extern const wchar_t* IDB_ALBUM_EDIT_RENAME;
+extern const wchar_t* IDB_ALBUM_ICON_FOLDER;
+extern const wchar_t* IDB_ALBUM_ICON_DOWNLOAD;
+extern const wchar_t* IDB_ALBUM_ICON_CAMERA;
+
+extern const wchar_t* IDB_ALBUM_RENAME_PROGRESS1;
+extern const wchar_t* IDB_ALBUM_RENAME_PROGRESS2;
+extern const wchar_t* IDB_ALBUM_RENAME_PROGRESS3;
+extern const wchar_t* IDB_ALBUM_RENAME_PROGRESS4;
+extern const wchar_t* IDB_ALBUM_RENAME_PROGRESS5;
+extern const wchar_t* IDB_ALBUM_RENAME_PROGRESS6;
+extern const wchar_t* IDB_ALBUM_RENAME_PROGRESS7;
+extern const wchar_t* IDB_ALBUM_RENAME_PROGRESS8;
+extern const wchar_t* IDB_ALBUM_RENAME_PROGRESS9;
+extern const wchar_t* IDB_ALBUM_RENAME_PROGRESS10;
+
+extern const wchar_t* IDB_ALBUM_RENAME_PROGRESS11;
+extern const wchar_t* IDB_ALBUM_RENAME_PROGRESS12;
+extern const wchar_t* IDB_ALBUM_RENAME_PROGRESS13;
+extern const wchar_t* IDB_ALBUM_RENAME_PROGRESS14;
+extern const wchar_t* IDB_ALBUM_RENAME_PROGRESS15;
+extern const wchar_t* IDB_ALBUM_RENAME_PROGRESS16;
+extern const wchar_t* IDB_ALBUM_RENAME_PROGRESS17;
+extern const wchar_t* IDB_ALBUM_RENAME_PROGRESS18;
+extern const wchar_t* IDB_ALBUM_RENAME_PROGRESS19;
+extern const wchar_t* IDB_ALBUM_RENAME_PROGRESS20;
+
+extern const wchar_t* IDB_ALBUM_RENAME_PROGRESS21;
+extern const wchar_t* IDB_ALBUM_RENAME_PROGRESS22;
+extern const wchar_t* IDB_ALBUM_RENAME_PROGRESS23;
+extern const wchar_t* IDB_ALBUM_RENAME_PROGRESS24;
+extern const wchar_t* IDB_ALBUM_RENAME_PROGRESS25;
+extern const wchar_t* IDB_ALBUM_RENAME_PROGRESS26;
+extern const wchar_t* IDB_ALBUM_RENAME_PROGRESS27;
+extern const wchar_t* IDB_ALBUM_RENAME_PROGRESS28;
+extern const wchar_t* IDB_ALBUM_RENAME_PROGRESS29;
+extern const wchar_t* IDB_ALBUM_RENAME_PROGRESS30;
+
+extern const wchar_t* IDB_IMAGE_CONTEXT_EMAIL_ICON;
+extern const wchar_t* IDB_IMAGE_CONTEXT_MESSAGE_ICON;
+
+extern const wchar_t* IDB_IMAGE_CROP_RECTANGLE;
+
+static const unsigned int CUSTOM_COLOR_GREY = Tizen::Graphics::Color32<124,124,124>::Value;
+static const unsigned int CUSTOM_COLOR_TRANSPARENT = Tizen::Graphics::Color32<0,0,0>::Value;
+static const unsigned int CUSTOM_BACKGROUND_COLOR_LISTVIEW = Tizen::Graphics::Color32<236,240,242>::Value;
+static const unsigned int CUSTOM_BACKGROUND_COLOR_LISTVIEW_PRESSED_HIGHLIGHTED = Tizen::Graphics::Color32<42, 137, 194>::Value;
+static const unsigned int CUSTOM_COLOR_LISTVIEW_TEXT = Tizen::Graphics::Color32<249,249,249>::Value;
+static const unsigned int CUSTOM_COLOR_BROWN = Tizen::Graphics::Color32<32, 32, 32>::Value;
+static const unsigned int CUSTOM_COLOR_INFO_LABEL = Tizen::Graphics::Color32<68, 68, 68>::Value;
+static const unsigned int CUSTOM_BACKGROUND_COLOR_PREVIEW_PANEL = Tizen::Graphics::Color32<81,81,81>::Value;
+static const unsigned int CUSTOM_BACKGROUND_COLOR_PREVIEW_PANEL_INACTIVE = Tizen::Graphics::Color32<0,0,0,20>::Value;
+static const unsigned int CUSTOM_COLOR_PREVIEW_PANEL_PRESSED_RECTANGLE = Tizen::Graphics::Color32<7,180,211>::Value;
+static const unsigned int CUSTOM_COLOR_LISTVIEW_TEXT2 = Tizen::Graphics::Color32<70,70,70>::Value;
+static const unsigned int CUSTOM_COLOR_SETTINGS_TEXT = Tizen::Graphics::Color32<128, 128, 128>::Value;
+static const unsigned int CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND = Tizen::Graphics::Color32<248, 246, 239>::Value;
+static const unsigned int CUSTOM_COLOR_SETTINGS_LISTITEM_RADIO_BACKGROUND = Tizen::Graphics::Color32<220, 218, 211>::Value;
+static const unsigned int CUSTOM_COLOR_SETTINGS_GROUPTITLE = Tizen::Graphics::Color32<59, 115, 182>::Value;
+static const int ALBUM_FIRST_ELEMENT = 0;
+static const int ALBUM_SECOND_ELEMENT = 1;
+
+#endif /* _GL_TYPES_H_ */
diff --git a/inc/GlVideoListEditorPanel.h b/inc/GlVideoListEditorPanel.h
new file mode 100644 (file)
index 0000000..c527637
--- /dev/null
@@ -0,0 +1,93 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlVideoListEditorPanel.h
+ * @brief              This is the header file for VideoListEditorPanel class.
+ */
+
+#ifndef _GL_VIDEO_LIST_EDITOR_PANEL_H_
+#define _GL_VIDEO_LIST_EDITOR_PANEL_H_
+
+#include <FUi.h>
+#include "GlAlbumEventListener.h"
+#include "GlFileOpInvalidateListener.h"
+
+class FileListEditorForm;
+class FileUpdateTimer;
+
+class VideoListEditorPanel
+       : public IAlbumEventListener
+       , public IFileOpInvalidateListener
+       , public Tizen::Ui::Controls::Panel
+       , public Tizen::Ui::Controls::IListViewItemEventListener
+       , public Tizen::Ui::Controls::IListViewItemProvider
+       , public Tizen::Ui::Scenes::ISceneEventListener
+{
+public:
+       VideoListEditorPanel(void);
+       virtual ~VideoListEditorPanel(void);
+
+       result Initialize(void);
+
+       void OnSelectAllPressed(void);
+       void OnRequestAppExitWithMultipleSelectionAppControlResult(void);
+       int GetItemCheckedCount(void) const;
+       void SetButtonState(void);
+
+       virtual result OnInitializing(void);
+       virtual result OnTerminating(void);
+
+       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 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 OnFileInfoChanged(const Tizen::Content::ContentType contentType);
+       virtual void OnThumbnailDecoded(const int index);
+
+       virtual void OnFileOpInvalidate(enum FileActionMode actionId);
+       virtual void OnFileOpComplete(enum FileActionMode actionId, enum FileActionCompleteRes){};
+       virtual void OnScanDirStart(){}
+       virtual void OnScanDirComplete(){}
+
+       void ChangeOrientation(void);
+
+private:
+       Tizen::Base::Collection::IList* GetItemCheckedIndexListN(void) const;
+
+private:
+       Tizen::Ui::Controls::ListView* __pContentIconListView;
+       Tizen::Ui::Controls::CheckButton* __pCheckButton;
+       Tizen::Ui::Controls::Label* __pLabelSelectCnt;
+       int __itemCount;
+       FileListPresentationModel* __pPresentationModel;
+       FileUpdateTimer* __pFileDelete;
+       FileListEditorForm* __pFileListEditorForm;
+};
+
+#endif /* _GL_VIDEO_LIST_EDITOR_PANEL_H_ */
diff --git a/inc/GlVideoListPanel.h b/inc/GlVideoListPanel.h
new file mode 100644 (file)
index 0000000..9bd0712
--- /dev/null
@@ -0,0 +1,69 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlVideoListPanel.h
+ * @brief              This is the header file for VideoListPanel class.
+ */
+
+#ifndef _GL_VIDEO_LIST_PANEL_H_
+#define _GL_VIDEO_LIST_PANEL_H_
+
+#include "GlAlbumEventListener.h"
+
+class FileListPresentationModel;
+
+class VideoListPanel
+       : public IAlbumEventListener
+       , public Tizen::Ui::Controls::IListViewItemEventListener
+       , public Tizen::Ui::Controls::IListViewItemProvider
+       , public Tizen::Ui::Controls::Panel
+       , public Tizen::Ui::Scenes::ISceneEventListener
+{
+public:
+       VideoListPanel(void);
+       virtual ~VideoListPanel(void);
+       result Initialize(void);
+
+       virtual result OnInitializing(void);
+       virtual result OnTerminating(void);
+
+       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 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 OnFileInfoChanged(const Tizen::Content::ContentType contentType);
+       virtual void OnThumbnailDecoded(const int index);
+
+private:
+       int __itemCount;
+       Tizen::Ui::Controls::ListView* __pContentListView;
+       FileListPresentationModel* __pPresentationModel;
+};
+
+#endif /* _GL_VIDEO_LIST_PANEL_H_ */
diff --git a/manifest.xml b/manifest.xml
new file mode 100644 (file)
index 0000000..c20678f
--- /dev/null
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<Manifest xmlns="http://schemas.tizen.org/2012/12/manifest">
+    <Id>ijudt7w61q</Id>
+    <Version>1.0.0</Version>
+    <Type>C++App</Type>
+    <Requirements>
+        <Feature Name="http://tizen.org/feature/platform.core.cpu.arch.armv7">true</Feature>
+        <Feature Name="http://tizen.org/feature/platform.core.fpu.arch.vfpv3">true</Feature>
+    </Requirements>
+    <Apps>
+        <ApiVersion>2.2</ApiVersion>
+        <Privileges>
+            <Privilege>http://tizen.org/privilege/content.read</Privilege>
+            <Privilege>http://tizen.org/privilege/application.launch</Privilege>
+            <Privilege>http://tizen.org/privilege/content.write</Privilege>
+        </Privileges>
+        <UiApp Main="True" MenuIconVisible="True" Name="Gallery" SubMode="True">
+            <UiScalability BaseScreenSize="Normal" CoordinateSystem="Logical" LogicalCoordinate="720"/>
+            <UiTheme SystemTheme="White"/>
+            <DisplayNames>
+                <DisplayName Locale="ara-AE">استوديو</DisplayName>
+                <DisplayName Locale="aze-AZ">Qalereya</DisplayName>
+                <DisplayName Locale="bul-BG">Галерия</DisplayName>
+                <DisplayName Locale="cat-ES">Galeria</DisplayName>
+                <DisplayName Locale="ces-CZ">Galerie</DisplayName>
+                <DisplayName Locale="dan-DK">Galleri</DisplayName>
+                <DisplayName Locale="deu-DE">Galerie</DisplayName>
+                <DisplayName Locale="ell-GR">Συλλογή</DisplayName>
+                <DisplayName Locale="eng-GB">Gallery</DisplayName>
+                <DisplayName Locale="eng-PH">Gallery</DisplayName>
+                <DisplayName Locale="eng-US">Gallery</DisplayName>
+                <DisplayName Locale="est-EE">Galerii</DisplayName>
+                <DisplayName Locale="eus-ES">Galeria</DisplayName>
+                <DisplayName Locale="fas-AF">گالری</DisplayName>
+                <DisplayName Locale="fin-FI">Galleria</DisplayName>
+                <DisplayName Locale="fra-CA">Galerie</DisplayName>
+                <DisplayName Locale="fra-FR">Galerie</DisplayName>
+                <DisplayName Locale="gle-IE">Gailearaí</DisplayName>
+                <DisplayName Locale="glg-ES">Galería</DisplayName>
+                <DisplayName Locale="hin-IN">गैलरी</DisplayName>
+                <DisplayName Locale="hrv-HR">Album</DisplayName>
+                <DisplayName Locale="hun-HU">Galéria</DisplayName>
+                <DisplayName Locale="hye-AM">Պատկերասրահ</DisplayName>
+                <DisplayName Locale="isl-IS">Gallerí</DisplayName>
+                <DisplayName Locale="ita-IT">Galleria</DisplayName>
+                <DisplayName Locale="jpn-JP">ギャラリー</DisplayName>
+                <DisplayName Locale="kat-GE">გალერეა</DisplayName>
+                <DisplayName Locale="kaz-KZ">Галерея</DisplayName>
+                <DisplayName Locale="kor-KR">갤러리</DisplayName>
+                <DisplayName Locale="lav-LV">Galerija</DisplayName>
+                <DisplayName Locale="lit-LT">Galerija</DisplayName>
+                <DisplayName Locale="mkd-MK">Галерија</DisplayName>
+                <DisplayName Locale="nld-NL">Galerij</DisplayName>
+                <DisplayName Locale="nob-NO">Galleri</DisplayName>
+                <DisplayName Locale="pol-PL">Galeria</DisplayName>
+                <DisplayName Locale="por-BR">Galeria</DisplayName>
+                <DisplayName Locale="por-PT">Galeria</DisplayName>
+                <DisplayName Locale="ron-RO">Galerie</DisplayName>
+                <DisplayName Locale="rus-RU">Галерея</DisplayName>
+                <DisplayName Locale="slk-SK">Galéria</DisplayName>
+                <DisplayName Locale="slv-SI">Galerija</DisplayName>
+                <DisplayName Locale="spa-ES">Galería</DisplayName>
+                <DisplayName Locale="spa-MX">Galería</DisplayName>
+                <DisplayName Locale="srp-RS">Galerija</DisplayName>
+                <DisplayName Locale="swe-SE">Galleri</DisplayName>
+                <DisplayName Locale="tha-TH">แกลเลอรี่</DisplayName>
+                <DisplayName Locale="tur-TR">Galeri</DisplayName>
+                <DisplayName Locale="ukr-UA">Галерея</DisplayName>
+                <DisplayName Locale="urd-IN">گیلری</DisplayName>
+                <DisplayName Locale="uzb-UZ">Galereya</DisplayName>
+                <DisplayName Locale="zho-CN">图库</DisplayName>
+                <DisplayName Locale="zho-HK">媒體瀏覽器</DisplayName>
+                <DisplayName Locale="zho-SG">画廊</DisplayName>
+                <DisplayName Locale="zho-TW">媒體瀏覽器</DisplayName>
+            </DisplayNames>
+            <Icons>
+                <Icon Section="MainMenu" Type="Xhigh">mainmenu.png</Icon>
+            </Icons>
+            <AppControls>
+                <AppControl>
+                    <MimeType>image/*</MimeType>
+                    <MimeType>video/*</MimeType>
+                    <Operation>http://tizen.org/appcontrol/operation/pick</Operation>
+                </AppControl>
+                <AppControl>
+                    <Operation>http://tizen.org/appcontrol/operation/Configure</Operation>
+                </AppControl>
+            </AppControls>
+            <LaunchConditions/>
+        </UiApp>
+    </Apps>
+</Manifest>
diff --git a/packaging/apps.Gallery.spec b/packaging/apps.Gallery.spec
new file mode 100644 (file)
index 0000000..828934d
--- /dev/null
@@ -0,0 +1,79 @@
+Name:       apps.Gallery
+Summary:    Gallery application
+Version:    1.0.1
+Release:    1
+Group:      TO_BE/FILLED_IN
+License:    Flora-1.1
+Source0:    %{name}-%{version}.tar.gz
+BuildRequires:  cmake
+BuildRequires:  pkgconfig(osp-appfw)
+BuildRequires:  pkgconfig(osp-content)
+BuildRequires:  pkgconfig(osp-image)
+BuildRequires:  pkgconfig(osp-image-core)
+BuildRequires:  pkgconfig(osp-locations)
+BuildRequires:  pkgconfig(osp-media)
+BuildRequires:  pkgconfig(osp-net)
+BuildRequires:  pkgconfig(osp-uifw)
+BuildRequires:  osp-appfw-internal-devel
+BuildRequires:  osp-image-internal-devel
+BuildRequires:  osp-media-internal-devel
+BuildRequires:  osp-net-internal-devel
+BuildRequires:  osp-uifw-internal-devel
+BuildRequires:  hash-signer
+
+Requires: osp-installer
+
+%description
+Verification application: Gallery
+
+%prep
+%setup -q
+
+%build
+MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
+%ifarch %{ix86}
+%if 0%{?simulator}
+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_X86_ " cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DFULLVER=%{version} -DMAJORVER=${MAJORVER}
+%endif
+%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}
+mkdir -p %{buildroot}/usr/share/license
+cp LICENSE.Flora %{buildroot}/usr/share/license/%{name}
+%make_install
+###### for package signing step ######
+PKG_ID=ijudt7w61q
+%define tizen_sign 1
+%define tizen_sign_base /usr/apps/${PKG_ID}
+%define tizen_sign_level platform
+%define tizen_author_sign 1
+%define tizen_dist_sign 1
+
+
+%post
+/sbin/ldconfig
+PKG_ID=ijudt7w61q
+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/Gallery
+
+%postun
+/sbin/ldconfig
+PKG_ID=ijudt7w61q
+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/*
+/usr/share/license/%{name}
+
+
diff --git a/res/ara-AE.xml b/res/ara-AE.xml
new file mode 100644 (file)
index 0000000..abe581e
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">تم الوصول إلى أقصى عدد من الحروف</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">عرض الصور</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">تم تجاوز الحد الأقصى لعدد الملفات</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">إعدادات عرض الشرائح</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">اختيار الكل</text>
+    <text id="IDS_COM_POP_DELETE_Q">مسح؟</text>
+    <text id="IDS_COM_BODY_EDIT">تعديل</text>
+    <text id="IDS_COM_BODY_MESSAGE">رسالة</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">ملفات محملة</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">اسم الألبوم مستخدم بالفعل</text>
+    <text id="IDS_COM_OPT_SAVE">حفظ</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 ثانية</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">التفعيل</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">تدوير لليسار</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">ثانيتان</text>
+    <text id="IDS_COM_BODY_MESSAGES">الرسائل</text>
+    <text id="IDS_COM_SK_DONE">تمت</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">غير قادر على تغيير الاسم. جاري استخدام الملف</text>
+    <text id="IDS_COM_BODY_EMAIL">بريد إلكتروني</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">أحرف غير صالحة</text>
+    <text id="IDS_COM_POP_MOVED">تم النقل</text>
+    <text id="IDS_COM_POP_CANCEL">إلغاء</text>
+    <text id="IDS_COM_BODY_SELECTED">محدد</text>
+    <text id="IDS_COM_BODY_DELETE">مسح</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">الترجمات المصاحبة</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">إلغاء</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">تم بلوغ أقصى عدد من الأحرف (%d)</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">تم بلوغ أقصى عدد من الأحرف (%d)</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">عرض شرائح</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">شرائح</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">بدء عرض الشرائح</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s موجود بالفعل</text>
+    <text id="IDS_COM_BODY_LOADING">جاري التحميل ...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">الألبومات</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">يتعذر إعادة التسمية. اسم الألبوم مستخدم بالفعل</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">فشلت العملية</text>
+    <text id="IDS_COM_POP_SAVING_ING">جاري الحفظ...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">تأثير الانتقال</text>
+    <text id="IDS_COM_BODY_MUSIC">الموسيقى</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">تم تحديد %d عناصر</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">إنشاء مجلد؟</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">فشل المسح</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">تم تحديد عنصر واحد</text>
+    <text id="IDS_COM_BODY_VIDEO">فيديو</text>
+    <text id="IDS_IV_OPT_ZOOM">زوم</text>
+    <text id="IDS_COM_BODY_COPY">نسخ</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">قوس قزح</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">فاصل عرض الشرائح</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">مشغل فيديو</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">عرض الشرائح</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">ثوان</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">تدوير لليسار</text>
+    <text id="IDS_EBOOK_BODY_PAGE">الصفحة</text>
+    <text id="IDS_COM_POP_COPYING_ING">جاري النسخ...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 ثوان</text>
+    <text id="IDS_COM_POP_PROCESSING">جاري المعالجة...</text>
+    <text id="IDS_COM_BODY_GALLERY">استوديو</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">لا يوجد اسم</text>
+    <text id="IDS_COM_BODY_IMAGES">الصور</text>
+    <text id="IDS_MEDIABR_BODY_FADE">التلاشي التدريجي</text>
+    <text id="IDS_COM_HEADER_EDIT">تعديل</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 ثوان</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">لم يتم اختيار عناصر</text>
+    <text id="IDS_COM_POP_DELETED">تم المسح</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">حذف؟</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">موجود بالفعل. هل تريد الاستبدال؟</text>
+    <text id="IDS_COM_POP_DELETING">جاري المسح...</text>
+    <text id="IDS_COM_POP_DONE">تمت</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 ثوان</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">ملفات الكاميرا</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">تدوير لليمين</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">تكرار</text>
+    <text id="IDS_COM_POP_SAVED">تم الحفظ</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">إذابة</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">الخلط</text>
+    <text id="IDS_COM_POP_MOVING">جاري النقل...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">فشل النقل</text>
+    <text id="IDS_COM_BODY_VIDEOS">الفيديو</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">نوع ملفات غير مدعم</text>
+    <text id="IDS_COM_BODY_RENAME">تغيير الاسم</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">تمت</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">تحديد الكل</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">كافة الألبومات</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">تغييرالاسم</text>
+    <text id="IDS_COM_BODY_MOVE">نقل</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">لا يمكن المسح</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">تدوير لليمين</text>
+    <text id="IDS_IV_BODY_INTERVAL">الفترة</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">موجود مسبقا</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">إنشاء ألبوم</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">لا توجد عناصر</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">إخفاء</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">فشل الحفظ</text>
+</string_table>
diff --git a/res/aze-AZ.xml b/res/aze-AZ.xml
new file mode 100644 (file)
index 0000000..01c2157
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Simvol sayı maksimuma çatıb</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Slayd göstərmə</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Faylların sayı maksimumu keçib</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Slaydşou parametrləri</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Hamısını seç</text>
+    <text id="IDS_COM_POP_DELETE_Q">Silinsin?</text>
+    <text id="IDS_COM_BODY_EDIT">Redaktə et</text>
+    <text id="IDS_COM_BODY_MESSAGE">Mesaj</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Yükləmələr</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Albom adı artıq ist.edilir</text>
+    <text id="IDS_COM_OPT_SAVE">Yaddaşa yaz</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 saniyə</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Aktivləşdirmə</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Sola döndər</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 saniyə</text>
+    <text id="IDS_COM_BODY_MESSAGES">Mesajlar</text>
+    <text id="IDS_COM_SK_DONE">Bitdi</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Yenidən adlandırmaq mümkün deyildir</text>
+    <text id="IDS_COM_BODY_EMAIL">Elektron poçtlar</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Simvollar səhvdir</text>
+    <text id="IDS_COM_POP_MOVED">Göndərildi</text>
+    <text id="IDS_COM_POP_CANCEL">Ləğv et</text>
+    <text id="IDS_COM_BODY_SELECTED">Seçilmişi</text>
+    <text id="IDS_COM_BODY_DELETE">Sil</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Yarımbaşlıqlar</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Ləğv et</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Simvolların sayı maksimuma (%d) çatıb</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Simvolların sayı maksimuma (%d) çatıb</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Slyd nmyşi</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Slayd</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Slayd nümayişini dayandır</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s hazırda mövcuddur</text>
+    <text id="IDS_COM_BODY_LOADING">Yüklənir...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albomlar</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Yenidən adlandırmaq mümkün deyil. Albom adı artıq istifadə edilir</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Əməliyyat alınmadı</text>
+    <text id="IDS_COM_POP_SAVING_ING">Yaddaşa yazılma</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Keçid effekti</text>
+    <text id="IDS_COM_BODY_MUSIC">Musiqi</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d element seçildi</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Qovluq yaradılsın?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Silmək mümkün olmadı</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1 element seçildi</text>
+    <text id="IDS_COM_BODY_VIDEO">Video</text>
+    <text id="IDS_IV_OPT_ZOOM">Yaxınlaşdırma/uzaqlaşdırma</text>
+    <text id="IDS_COM_BODY_COPY">Köçür</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Diafraqma</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Slaydşou intervalı</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Video pleyer</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Slaydşou</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">Saniyələr</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Sola döndər</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Səhifə</text>
+    <text id="IDS_COM_POP_COPYING_ING">Köçürülmə...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 saniyə</text>
+    <text id="IDS_COM_POP_PROCESSING">Emal edilir...</text>
+    <text id="IDS_COM_BODY_GALLERY">Qalereya</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Ad yoxdur</text>
+    <text id="IDS_COM_BODY_IMAGES">Təsvirlər</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Tutqunlaşdır</text>
+    <text id="IDS_COM_HEADER_EDIT">Redaktə et</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 saniyə</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Heç bir element seçilməyib</text>
+    <text id="IDS_COM_POP_DELETED">Silindi</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Silinsin?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Artıq mövcuddur. Üzərindən yazılsın?</text>
+    <text id="IDS_COM_POP_DELETING">Silinmə</text>
+    <text id="IDS_COM_POP_DONE">Yerinə yetirildi</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 saniyə</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Kamera çarxı</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Sağa döndər</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Təkrar et</text>
+    <text id="IDS_COM_POP_SAVED">Yaddaşa yazıldı</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Seç</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Təsadüfi sıralama</text>
+    <text id="IDS_COM_POP_MOVING">Göndərilmə...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Keçmə alınmadı</text>
+    <text id="IDS_COM_BODY_VIDEOS">Video</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Dəstəklənməyən fayl növü</text>
+    <text id="IDS_COM_BODY_RENAME">Adını dəyişdir</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Tamamlandı</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Hamsnı seç</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Bütün albomlar</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Adı dəyişdir</text>
+    <text id="IDS_COM_BODY_MOVE">Göndər</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Silmək mümkün deyil</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Sağa döndər</text>
+    <text id="IDS_IV_BODY_INTERVAL">İnterval</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Artıq var</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Albom yaradın</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Elementlər yoxdur</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Sayrışmaq</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Yaddaşa yazmaq mümkün olmadı</text>
+</string_table>
diff --git a/res/bul-BG.xml b/res/bul-BG.xml
new file mode 100644 (file)
index 0000000..9c39051
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Достигнат максимален брой знаци</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Слайдшоу</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Надхвърлен е максималният брой файлове</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Настройки на слайдшоу</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Избери всички</text>
+    <text id="IDS_COM_POP_DELETE_Q">Изтриване?</text>
+    <text id="IDS_COM_BODY_EDIT">Редактиране</text>
+    <text id="IDS_COM_BODY_MESSAGE">Съобщение</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Изтеглени файлове</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Име на албума вече се изп.</text>
+    <text id="IDS_COM_OPT_SAVE">Запис</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 секунди</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Активиране</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Завъртане наляво</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 секунди</text>
+    <text id="IDS_COM_BODY_MESSAGES">Съобщения</text>
+    <text id="IDS_COM_SK_DONE">Готово</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Не може да се преименува</text>
+    <text id="IDS_COM_BODY_EMAIL">Email</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Невалидни знаци</text>
+    <text id="IDS_COM_POP_MOVED">Преместено</text>
+    <text id="IDS_COM_POP_CANCEL">Отказ</text>
+    <text id="IDS_COM_BODY_SELECTED">Избрани</text>
+    <text id="IDS_COM_BODY_DELETE">Изтриване</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Субтитри</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Отказ</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Достигнат е максималният брой знаци (%d)</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Достигнат е максималният брой знаци (%d)</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Слайдшоу</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Слайд</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Започване на слайдшоу</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s вече съществува</text>
+    <text id="IDS_COM_BODY_LOADING">Зареждане</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Албуми</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Не може да се преименува. Името на албума вече се използва</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Операцията е неуспешна</text>
+    <text id="IDS_COM_POP_SAVING_ING">Запазване</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Ефект на преход</text>
+    <text id="IDS_COM_BODY_MUSIC">Музика</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">Избрани са %d елемента</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Създаване на папка?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Неуспешно изтриване</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">Избран е 1 елемент</text>
+    <text id="IDS_COM_BODY_VIDEO">Видеоклип</text>
+    <text id="IDS_IV_OPT_ZOOM">Зум</text>
+    <text id="IDS_COM_BODY_COPY">Копиране</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Ирис</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Интервал на слайдшоуто</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Видео плейър</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Слайдшоу</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">секунди</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Завъртане наляво</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Страница</text>
+    <text id="IDS_COM_POP_COPYING_ING">Копиране...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 секунди</text>
+    <text id="IDS_COM_POP_PROCESSING">Обработване...</text>
+    <text id="IDS_COM_BODY_GALLERY">Галерия</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Без име</text>
+    <text id="IDS_COM_BODY_IMAGES">Изображения</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Избледняване</text>
+    <text id="IDS_COM_HEADER_EDIT">Редактиране</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 секунди</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Няма избрани елементи</text>
+    <text id="IDS_COM_POP_DELETED">Изтрито</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Премахване?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Вече съществува. Презапис?</text>
+    <text id="IDS_COM_POP_DELETING">Изтриване...</text>
+    <text id="IDS_COM_POP_DONE">Готово</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 секунди</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Материал камера</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Завъртане надясно</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Повтаряне</text>
+    <text id="IDS_COM_POP_SAVED">Записан</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Размиване</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Разбъркано</text>
+    <text id="IDS_COM_POP_MOVING">Преместване</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Неуспешно преместване</text>
+    <text id="IDS_COM_BODY_VIDEOS">Видеоклипове</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Неподдържан вид файл</text>
+    <text id="IDS_COM_BODY_RENAME">Преименуване</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Завършено</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Изб.всички</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Всички албуми</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Промяна на име</text>
+    <text id="IDS_COM_BODY_MOVE">Премести</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Невъзможно изтриване</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Завъртане надясно</text>
+    <text id="IDS_IV_BODY_INTERVAL">Интервал</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Вече съществува</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Създаване на албум</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Няма елементи</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Щори</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Запазване неуспешно</text>
+</string_table>
diff --git a/res/cat-ES.xml b/res/cat-ES.xml
new file mode 100644 (file)
index 0000000..0b69fd1
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">S'ha assolit el nombre màxim de caràcters</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Presentació de diapositives</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">S'ha excedit el nombre màxim de fitxers</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Ajustaments de la presentació de diapositives</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Seleccioni-ho tot</text>
+    <text id="IDS_COM_POP_DELETE_Q">Esborrar?</text>
+    <text id="IDS_COM_BODY_EDIT">Editar</text>
+    <text id="IDS_COM_BODY_MESSAGE">Missatge</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Descàrregues</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Nom d'àlbum ja en ús</text>
+    <text id="IDS_COM_OPT_SAVE">Desar</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 segons</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Activació</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Girar cap a l'esquerra</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 segons</text>
+    <text id="IDS_COM_BODY_MESSAGES">Missatges</text>
+    <text id="IDS_COM_SK_DONE">Finalit.</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">No es pot canviar nom</text>
+    <text id="IDS_COM_BODY_EMAIL">Correu electrònic</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Caràcters no vàlids</text>
+    <text id="IDS_COM_POP_MOVED">Mogut</text>
+    <text id="IDS_COM_POP_CANCEL">Cancel·lar</text>
+    <text id="IDS_COM_BODY_SELECTED">Seleccionat</text>
+    <text id="IDS_COM_BODY_DELETE">Esborrar</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Subtítols</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Cancel·lar</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">S'ha assolit el nombre màxim de caràcters (%d)</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">S'ha assolit el nombre màxim de caràcters (%d)</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Diaposit</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Diapositiva</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Iniciar presentació de diapositives</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s ja existeix</text>
+    <text id="IDS_COM_BODY_LOADING">Carregant...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Àlbums</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">No es pot canviar el nom. El nom d'àlbum ja està en ús</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Operació fallida</text>
+    <text id="IDS_COM_POP_SAVING_ING">Desant...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Efecte de transició</text>
+    <text id="IDS_COM_BODY_MUSIC">Música</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d elements seleccionats</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Crear carpeta?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Error en esborrar</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1 element seleccionat</text>
+    <text id="IDS_COM_BODY_VIDEO">Vídeo</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoom</text>
+    <text id="IDS_COM_BODY_COPY">Copiar</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Interval de la presentació de diapositives</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Reproductor de vídeo</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Presentació de diapositives</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">segons</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Girar cap a l'esquerra</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Pàgina</text>
+    <text id="IDS_COM_POP_COPYING_ING">Copiant...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 segons</text>
+    <text id="IDS_COM_POP_PROCESSING">Processant...</text>
+    <text id="IDS_COM_BODY_GALLERY">Galeria</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Sense nom</text>
+    <text id="IDS_COM_BODY_IMAGES">Imatges</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Perdre intensitat</text>
+    <text id="IDS_COM_HEADER_EDIT">Editar</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 segons</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">No s'ha seleccionat cap element</text>
+    <text id="IDS_COM_POP_DELETED">Esborrat</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Eliminar?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Ja existeix. Sobreescriure?</text>
+    <text id="IDS_COM_POP_DELETING">Esborrant...</text>
+    <text id="IDS_COM_POP_DONE">Finalitzat</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 segons</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Rodet càmera</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Girar cap a la dreta</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Repetir</text>
+    <text id="IDS_COM_POP_SAVED">Desat</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Dissoldre</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Ordre aleatori</text>
+    <text id="IDS_COM_POP_MOVING">Movent...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Error en moure</text>
+    <text id="IDS_COM_BODY_VIDEOS">Vídeos</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Tipus de fitxer no admès</text>
+    <text id="IDS_COM_BODY_RENAME">Canviar nom</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Completat</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Selec tot</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Tots els àlbums</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Canviar nom</text>
+    <text id="IDS_COM_BODY_MOVE">Moure</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">No es pot esborrar</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Girar cap a la dreta</text>
+    <text id="IDS_IV_BODY_INTERVAL">Interval</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Ja existeix</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Crear àlbum</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">No hi ha elements</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Persiana</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Error en desar</text>
+</string_table>
diff --git a/res/ces-CZ.xml b/res/ces-CZ.xml
new file mode 100644 (file)
index 0000000..41cbff4
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Bylo dosaženo maximálního počtu znaků</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Prezentace</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Byl překročen maximální počet souborů</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Nastavení prezentace</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Vybrat vše</text>
+    <text id="IDS_COM_POP_DELETE_Q">Odstranit?</text>
+    <text id="IDS_COM_BODY_EDIT">Upravit</text>
+    <text id="IDS_COM_BODY_MESSAGE">Zpráva</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Stažené položky</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Název alba je již použit</text>
+    <text id="IDS_COM_OPT_SAVE">Uložit</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 sekund</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Aktivace</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Otočit doleva</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 sekund</text>
+    <text id="IDS_COM_BODY_MESSAGES">Zprávy</text>
+    <text id="IDS_COM_SK_DONE">Hotovo</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Nelze přejmenovat</text>
+    <text id="IDS_COM_BODY_EMAIL">E-mail</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Neplatné znaky</text>
+    <text id="IDS_COM_POP_MOVED">Přesunuto</text>
+    <text id="IDS_COM_POP_CANCEL">Zrušit</text>
+    <text id="IDS_COM_BODY_SELECTED">Vybráno</text>
+    <text id="IDS_COM_BODY_DELETE">Odstranit</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Titulky</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Zrušit</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Bylo dosaženo maximálního počtu znaků (%d)</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Bylo dosaženo maximálního počtu znaků (%d)</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Prezent.</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Sklouznutí</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Spustit prezentaci</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s již existuje</text>
+    <text id="IDS_COM_BODY_LOADING">Nahrávám...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Alba</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Nelze přejmenovat. Název alba je již použit</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Otevření se nezdařilo</text>
+    <text id="IDS_COM_POP_SAVING_ING">Ukládání...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Přechodový efekt</text>
+    <text id="IDS_COM_BODY_MUSIC">Hudba</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">Vybrané položky: %d</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Chcete vytvořit složku?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Odstranění se nezdařilo</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">Byla vybrána 1 položka</text>
+    <text id="IDS_COM_BODY_VIDEO">Video</text>
+    <text id="IDS_IV_OPT_ZOOM">Přiblížení</text>
+    <text id="IDS_COM_BODY_COPY">Kopírovat</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Duha</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Interval prezentace</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Videopřeh.</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Prezentace</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">sekundy</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Otočit doleva</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Stránka</text>
+    <text id="IDS_COM_POP_COPYING_ING">Kopírování...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 sekund</text>
+    <text id="IDS_COM_POP_PROCESSING">Probíhá zpracování...</text>
+    <text id="IDS_COM_BODY_GALLERY">Galerie</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Žádný název</text>
+    <text id="IDS_COM_BODY_IMAGES">Obrázky</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Zvolna mizet</text>
+    <text id="IDS_COM_HEADER_EDIT">Upravit</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 sekund</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Nejsou vybrány žádné položky</text>
+    <text id="IDS_COM_POP_DELETED">Odstraněno</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Odstranit?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Již existuje. Přepsat?</text>
+    <text id="IDS_COM_POP_DELETING">Odstraňování...</text>
+    <text id="IDS_COM_POP_DONE">Hotovo</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 sekundy</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Soubory z fot.</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Otočit doprava</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Opakovat</text>
+    <text id="IDS_COM_POP_SAVED">Uloženo</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Rozplynout</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Náhodně</text>
+    <text id="IDS_COM_POP_MOVING">Probíhá přesouvání</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Přesunutí se nezdařilo</text>
+    <text id="IDS_COM_BODY_VIDEOS">Videa</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Nepodporovaný typ souboru</text>
+    <text id="IDS_COM_BODY_RENAME">Přejmenovat</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Dokončeno</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Vybrat vše</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Všechna alba</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Změnit název</text>
+    <text id="IDS_COM_BODY_MOVE">Přesunout</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Nelze odstranit</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Otočit doprava</text>
+    <text id="IDS_IV_BODY_INTERVAL">Interval</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Již existuje</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Vytvořit album</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Žádné položky</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Roleta</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Uložení se nezdařilo</text>
+</string_table>
diff --git a/res/dan-DK.xml b/res/dan-DK.xml
new file mode 100644 (file)
index 0000000..d87193a
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Det maksimale antal tegn er nået</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Diasshow</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Det maksimale antal filer er overskredet</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Indstillinger for diasshow</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Vælg alle</text>
+    <text id="IDS_COM_POP_DELETE_Q">Slet?</text>
+    <text id="IDS_COM_BODY_EDIT">Redigér</text>
+    <text id="IDS_COM_BODY_MESSAGE">Meddelelse</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Downloads</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Albumnavn allerede i brug</text>
+    <text id="IDS_COM_OPT_SAVE">Gem</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 sekunder</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Aktivering</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Rotér mod uret</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 sekunder</text>
+    <text id="IDS_COM_BODY_MESSAGES">Meddelelser</text>
+    <text id="IDS_COM_SK_DONE">Udført</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Kunne ikke omdøbe</text>
+    <text id="IDS_COM_BODY_EMAIL">E-mail</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Ugyldige tegn</text>
+    <text id="IDS_COM_POP_MOVED">Flyttet</text>
+    <text id="IDS_COM_POP_CANCEL">Annullér</text>
+    <text id="IDS_COM_BODY_SELECTED">Valgte</text>
+    <text id="IDS_COM_BODY_DELETE">Slet</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Undertekster</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Annullér</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Det maksimale antal tegn (%d) er nået</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Det maksimale antal tegn (%d) er nået</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Diasshow</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Dias</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Start diasshow</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s eksisterer allerede</text>
+    <text id="IDS_COM_BODY_LOADING">Indlæser data ...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albums</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Kan ikke omdøbe. Albumnavn allerede i brug</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Handlingen mislykkedes</text>
+    <text id="IDS_COM_POP_SAVING_ING">Gemmer ...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Overgangseffekt</text>
+    <text id="IDS_COM_BODY_MUSIC">Musik</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d elementer valgt</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Opret mappe?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Sletning mislykkedes</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1 element valgt</text>
+    <text id="IDS_COM_BODY_VIDEO">Videoklip</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoom</text>
+    <text id="IDS_COM_BODY_COPY">Kopiér</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Interval for diasshow</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Videoafspiller</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Diasshow</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">sekunder</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Rotér mod uret</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Side</text>
+    <text id="IDS_COM_POP_COPYING_ING">Kopierer ...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 sekunder</text>
+    <text id="IDS_COM_POP_PROCESSING">Behandler ...</text>
+    <text id="IDS_COM_BODY_GALLERY">Galleri</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Intet navn</text>
+    <text id="IDS_COM_BODY_IMAGES">Billeder</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Tone ud</text>
+    <text id="IDS_COM_HEADER_EDIT">Redigér</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 sekunder</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Ingen valgte elementer</text>
+    <text id="IDS_COM_POP_DELETED">Slettet</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Fjern?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Findes allerede. Vil du overskrive?</text>
+    <text id="IDS_COM_POP_DELETING">Sletter ...</text>
+    <text id="IDS_COM_POP_DONE">Udført</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 sekunder</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Kamerarolle</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Rotér med uret</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Gentag</text>
+    <text id="IDS_COM_POP_SAVED">Gemt</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Opløs</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Bland</text>
+    <text id="IDS_COM_POP_MOVING">Flytter ...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Flytning mislykkedes</text>
+    <text id="IDS_COM_BODY_VIDEOS">Videoklip</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Filtypen understøttes ikke</text>
+    <text id="IDS_COM_BODY_RENAME">Omdøb</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Udført</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Vælg alle</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Alle album</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Skift navn</text>
+    <text id="IDS_COM_BODY_MOVE">Flyt</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Kunne ikke slette</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Rotér med uret</text>
+    <text id="IDS_IV_BODY_INTERVAL">Interval</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Findes allerede</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Opret album</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Ingen elementer</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Afblænd</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Kunne ikke gemme</text>
+</string_table>
diff --git a/res/deu-DE.xml b/res/deu-DE.xml
new file mode 100644 (file)
index 0000000..0538122
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Maximal zulässige Zeichenanzahl erreicht.</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Diashow</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Maximale Anzahl an Dateien überschritten.</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Diashoweinstellungen</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Alle auswählen</text>
+    <text id="IDS_COM_POP_DELETE_Q">Löschen?</text>
+    <text id="IDS_COM_BODY_EDIT">Bearbeiten</text>
+    <text id="IDS_COM_BODY_MESSAGE">Nachricht</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Downloads</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Albumn. wird bereits verw.</text>
+    <text id="IDS_COM_OPT_SAVE">Speichern</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 Sekunden</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Aktivierung</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Nach links drehen</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 Sekunden</text>
+    <text id="IDS_COM_BODY_MESSAGES">Nachrichten</text>
+    <text id="IDS_COM_SK_DONE">OK</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Umbenennen nicht möglich</text>
+    <text id="IDS_COM_BODY_EMAIL">E-Mail</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Ungültige Zeichen</text>
+    <text id="IDS_COM_POP_MOVED">Verschoben</text>
+    <text id="IDS_COM_POP_CANCEL">Abbrechen</text>
+    <text id="IDS_COM_BODY_SELECTED">Ausgewählt</text>
+    <text id="IDS_COM_BODY_DELETE">Löschen</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Untertitel</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Abbrechen</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Maximale Anzahl an Zeichen (%d) erreicht.</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Maximale Anzahl an Zeichen (%d) erreicht.</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Diashow</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Gleiten</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Diashow starten</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s ist bereits vorhanden</text>
+    <text id="IDS_COM_BODY_LOADING">Lädt...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Alben</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Umbenennen nicht möglich. Albumname wird bereits verwendet</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Vorgang fehlgeschlagen</text>
+    <text id="IDS_COM_POP_SAVING_ING">Speichern...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Übergangseffekt</text>
+    <text id="IDS_COM_BODY_MUSIC">Musik</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d Elemente ausgewählt</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Ordner erstellen?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Löschen fehlgeschlagen</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1 Element ausgewählt</text>
+    <text id="IDS_COM_BODY_VIDEO">Video</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoom</text>
+    <text id="IDS_COM_BODY_COPY">Kopieren</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Diashowintervall</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Video-Player</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Diashow</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">Sekunden</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Nach links drehen</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Seite</text>
+    <text id="IDS_COM_POP_COPYING_ING">Wird kopiert...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 Sekunden</text>
+    <text id="IDS_COM_POP_PROCESSING">Verarbeitung läuft ...</text>
+    <text id="IDS_COM_BODY_GALLERY">Galerie</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Kein Name</text>
+    <text id="IDS_COM_BODY_IMAGES">Eigene Bilder</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Ausblenden</text>
+    <text id="IDS_COM_HEADER_EDIT">Bearbeiten</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 Sekunden</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Keine Elemente ausgewählt</text>
+    <text id="IDS_COM_POP_DELETED">Gelöscht</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Entfernen?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Bereits vorhanden. Überschreiben?</text>
+    <text id="IDS_COM_POP_DELETING">Löschen...</text>
+    <text id="IDS_COM_POP_DONE">OK</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 Sekunden</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Filmrolle</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Nach rechts drehen</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Wiederholen</text>
+    <text id="IDS_COM_POP_SAVED">Gespeichert</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Auflösen</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Zufallswiedergabe</text>
+    <text id="IDS_COM_POP_MOVING">Verschiebevorgang aktiv...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Verschieben fehlgeschlagen</text>
+    <text id="IDS_COM_BODY_VIDEOS">Videos</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Dateityp nicht unterstützt</text>
+    <text id="IDS_COM_BODY_RENAME">Umbenennen</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Abgeschlossen</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Alle ausw.</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Alle Alben</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Name ändern</text>
+    <text id="IDS_COM_BODY_MOVE">Verschieben</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Kann nicht gelöscht werden</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Nach rechts drehen</text>
+    <text id="IDS_IV_BODY_INTERVAL">Intervall</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Bereits vorhanden</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Album erstellen</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Keine Elemente</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Blenden</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Speichern fehlgeschlagen</text>
+</string_table>
diff --git a/res/ell-GR.xml b/res/ell-GR.xml
new file mode 100644 (file)
index 0000000..b687012
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Ο μέγιστος αριθμός χαρακτήρων συμπληρώθηκε</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Παρουσίαση</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Έγινε υπέρβαση του μέγιστου αριθμού αρχείων</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Ρυθμίσεις παρουσίασης</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Επιλογή όλων</text>
+    <text id="IDS_COM_POP_DELETE_Q">Διαγραφή;</text>
+    <text id="IDS_COM_BODY_EDIT">Επεξεργασία</text>
+    <text id="IDS_COM_BODY_MESSAGE">Μήνυμα</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Λήψεις</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Το όνομα άλμπουμ χρησ. ήδη</text>
+    <text id="IDS_COM_OPT_SAVE">Αποθήκευση</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 δευτερόλεπτα</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Ενεργοποίηση</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Περιστροφή προς τα αριστερά</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 δευτερόλεπτα</text>
+    <text id="IDS_COM_BODY_MESSAGES">Μηνύματα</text>
+    <text id="IDS_COM_SK_DONE">Ok</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Δεν είναι δυνατή η μετονομασία</text>
+    <text id="IDS_COM_BODY_EMAIL">Email</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Μη έγκυροι χαρακτήρες</text>
+    <text id="IDS_COM_POP_MOVED">Μετακινήθηκε</text>
+    <text id="IDS_COM_POP_CANCEL">Ακύρωση</text>
+    <text id="IDS_COM_BODY_SELECTED">Επιλεγμένο</text>
+    <text id="IDS_COM_BODY_DELETE">Διαγραφή</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Υπότιτλοι</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Ακύρωση</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Συμπληρώθηκε ο μέγιστος αριθμός χαρακτήρων (%d)</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Συμπληρώθηκε ο μέγιστος αριθμός χαρακτήρων (%d)</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Παρ/σίαση</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Διαφάνεια</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Έναρξη παρουσίασης</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">Το αρχείο %s υπάρχει ήδη</text>
+    <text id="IDS_COM_BODY_LOADING">Φόρτωση...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Άλμπουμ</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Δεν είναι δυνατή η μετονομασία. To όνομα άλμπουμ χρησιμοποιείται ήδη</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Λειτουργία απέτυχε</text>
+    <text id="IDS_COM_POP_SAVING_ING">Aποθήκευση...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Εφέ μετάβασης</text>
+    <text id="IDS_COM_BODY_MUSIC">Μουσική</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">Επιλέχθηκαν %d στοιχεία</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Δημιουργία φακέλου;</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Αποτυχία διαγραφής</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">Επιλέχθηκε 1 στοιχείο</text>
+    <text id="IDS_COM_BODY_VIDEO">Προσθήκη βίντεο</text>
+    <text id="IDS_IV_OPT_ZOOM">Ζουμ</text>
+    <text id="IDS_COM_BODY_COPY">Αντιγραφή</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Ίριδα</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Διάστημα παρουσίασης</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Αναπαραγωγή Βίντεο</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Παρουσίαση</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">δευτ.</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Περιστροφή προς τα αριστερά</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Σελίδα</text>
+    <text id="IDS_COM_POP_COPYING_ING">Αντιγραφή...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 δευτερόλεπτα</text>
+    <text id="IDS_COM_POP_PROCESSING">Επεξεργασία...</text>
+    <text id="IDS_COM_BODY_GALLERY">Συλλογή</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Κανένα όνομα</text>
+    <text id="IDS_COM_BODY_IMAGES">Εικόνες</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Σταδιακή εμφάνιση</text>
+    <text id="IDS_COM_HEADER_EDIT">Επεξεργασία</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 δευτερόλεπτα</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Κανένα επιλεγμένο στοιχείο</text>
+    <text id="IDS_COM_POP_DELETED">Διαγράφηκε</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Αφαίρεση;</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Υπάρχει ήδη. Αντικατάσταση;</text>
+    <text id="IDS_COM_POP_DELETING">Διαγραφή...</text>
+    <text id="IDS_COM_POP_DONE">Τέλος</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 δευτερόλεπτα</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Λήψεις με κάμερα</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Περιστροφή προς τα δεξιά</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Επανάληψη</text>
+    <text id="IDS_COM_POP_SAVED">Αποθηκεύτηκε</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Αποσύνθεση</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Τυχαία σειρά</text>
+    <text id="IDS_COM_POP_MOVING">Μετακίνηση...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Αποτυχία μετακίνησης</text>
+    <text id="IDS_COM_BODY_VIDEOS">Βίντεο</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Μη υποστηρ. τύπος αρχείου</text>
+    <text id="IDS_COM_BODY_RENAME">Μετονομασία</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Ολοκληρώθηκε</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Επιλ. όλων</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Όλα τα άλμπουμ</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Αλλαγή ονόματος</text>
+    <text id="IDS_COM_BODY_MOVE">Μετακίνηση</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Δεν είναι δυνατή η διαγραφή</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Περιστροφή προς τα δεξιά</text>
+    <text id="IDS_IV_BODY_INTERVAL">Διάστημα</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Υπάρχει ήδη</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Δημιουργία άλμπουμ</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Κανένα στοιχείο</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Ρολό</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Αποτυχία αποθήκευσης</text>
+</string_table>
diff --git a/res/eng-GB.xml b/res/eng-GB.xml
new file mode 100644 (file)
index 0000000..c7a7e23
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Maximum number of characters reached</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Slide show</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Maximum number of files exceeded</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Slideshow settings</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Select all</text>
+    <text id="IDS_COM_POP_DELETE_Q">Delete?</text>
+    <text id="IDS_COM_BODY_EDIT">Edit</text>
+    <text id="IDS_COM_BODY_MESSAGE">Message</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Downloads</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Album name already in use</text>
+    <text id="IDS_COM_OPT_SAVE">Save</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 seconds</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Activation</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Rotate left</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 seconds</text>
+    <text id="IDS_COM_BODY_MESSAGES">Messages</text>
+    <text id="IDS_COM_SK_DONE">Done</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Unable to rename</text>
+    <text id="IDS_COM_BODY_EMAIL">Email</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Invalid characters</text>
+    <text id="IDS_COM_POP_MOVED">Moved</text>
+    <text id="IDS_COM_POP_CANCEL">Cancel</text>
+    <text id="IDS_COM_BODY_SELECTED">Selected</text>
+    <text id="IDS_COM_BODY_DELETE">Delete</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Subtitles</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Cancel</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Maximum number of characters (%d) reached</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Maximum number of characters (%d) reached</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Slide show</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Slide</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Start slideshow</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s already exists</text>
+    <text id="IDS_COM_BODY_LOADING">Loading...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albums</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Unable to rename. Album name already in use.</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Operation failed</text>
+    <text id="IDS_COM_POP_SAVING_ING">Saving...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Transition effect</text>
+    <text id="IDS_COM_BODY_MUSIC">Music</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d items selected</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Create folder?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Delete failed</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1 item selected</text>
+    <text id="IDS_COM_BODY_VIDEO">Video</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoom</text>
+    <text id="IDS_COM_BODY_COPY">Copy</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Slideshow interval</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Video Player</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Slideshow</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">seconds</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Rotate left</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Page</text>
+    <text id="IDS_COM_POP_COPYING_ING">Copying...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 seconds</text>
+    <text id="IDS_COM_POP_PROCESSING">Processing...</text>
+    <text id="IDS_COM_BODY_GALLERY">Gallery</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">No name</text>
+    <text id="IDS_COM_BODY_IMAGES">Images</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Fade</text>
+    <text id="IDS_COM_HEADER_EDIT">Edit</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 seconds</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">No item selected</text>
+    <text id="IDS_COM_POP_DELETED">Deleted</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Remove?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Already exists. Overwrite?</text>
+    <text id="IDS_COM_POP_DELETING">Deleting...</text>
+    <text id="IDS_COM_POP_DONE">Done</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 seconds</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Camera roll</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Rotate right</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Repeat</text>
+    <text id="IDS_COM_POP_SAVED">Saved</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Dissolve</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Shuffle</text>
+    <text id="IDS_COM_POP_MOVING">Moving...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Moving failed</text>
+    <text id="IDS_COM_BODY_VIDEOS">Videos</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Unsupported file type</text>
+    <text id="IDS_COM_BODY_RENAME">Rename</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Completed</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Select all</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">All albums</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Change name</text>
+    <text id="IDS_COM_BODY_MOVE">Move</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Unable to delete</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Rotate right</text>
+    <text id="IDS_IV_BODY_INTERVAL">Interval</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Already exists</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Create album</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">No items</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Blind</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Saving failed</text>
+</string_table>
diff --git a/res/eng-PH.xml b/res/eng-PH.xml
new file mode 100644 (file)
index 0000000..b2231b1
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Maximum number of characters reached</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Slide show</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Maximum number of files exceeded</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Slideshow settings</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Select all</text>
+    <text id="IDS_COM_POP_DELETE_Q">Delete?</text>
+    <text id="IDS_COM_BODY_EDIT">Edit</text>
+    <text id="IDS_COM_BODY_MESSAGE">Message</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Downloads</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Album name already in use</text>
+    <text id="IDS_COM_OPT_SAVE">Save</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 seconds</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Activation</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Rotate left</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 seconds</text>
+    <text id="IDS_COM_BODY_MESSAGES">Messages</text>
+    <text id="IDS_COM_SK_DONE">Done</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Unable to rename</text>
+    <text id="IDS_COM_BODY_EMAIL">Email</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Invalid characters</text>
+    <text id="IDS_COM_POP_MOVED">Moved</text>
+    <text id="IDS_COM_POP_CANCEL">Cancel</text>
+    <text id="IDS_COM_BODY_SELECTED">Selected</text>
+    <text id="IDS_COM_BODY_DELETE">Delete</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Subtitles</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Cancel</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Maximum number of characters (%d) reached</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Maximum number of characters (%d) reached</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Slide show</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Slide</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Start slideshow</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s already exists</text>
+    <text id="IDS_COM_BODY_LOADING">Loading...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albums</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Unable to rename. Album name already in use</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Operation failed</text>
+    <text id="IDS_COM_POP_SAVING_ING">Saving...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Transition effect</text>
+    <text id="IDS_COM_BODY_MUSIC">Music</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d items selected</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Create folder?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Delete failed</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1 item selected</text>
+    <text id="IDS_COM_BODY_VIDEO">Video</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoom</text>
+    <text id="IDS_COM_BODY_COPY">Copy</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Slideshow interval</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Video Player</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Slideshow</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">seconds</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Rotate left</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Page</text>
+    <text id="IDS_COM_POP_COPYING_ING">Copying...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 seconds</text>
+    <text id="IDS_COM_POP_PROCESSING">Processing...</text>
+    <text id="IDS_COM_BODY_GALLERY">Gallery</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">No name</text>
+    <text id="IDS_COM_BODY_IMAGES">Images</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Fade</text>
+    <text id="IDS_COM_HEADER_EDIT">Edit</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 seconds</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">No items selected</text>
+    <text id="IDS_COM_POP_DELETED">Deleted</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Remove?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Already exists. Overwrite?</text>
+    <text id="IDS_COM_POP_DELETING">Deleting...</text>
+    <text id="IDS_COM_POP_DONE">Done</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 seconds</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Camera roll</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Rotate right</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Repeat</text>
+    <text id="IDS_COM_POP_SAVED">Saved</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Dissolve</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Shuffle</text>
+    <text id="IDS_COM_POP_MOVING">Moving...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Moving failed</text>
+    <text id="IDS_COM_BODY_VIDEOS">Videos</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Unsupported file type</text>
+    <text id="IDS_COM_BODY_RENAME">Rename</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Completed</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Select all</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">All albums</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Change name</text>
+    <text id="IDS_COM_BODY_MOVE">Move</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Unable to delete</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Rotate right</text>
+    <text id="IDS_IV_BODY_INTERVAL">Interval</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Already exists</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Create album</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">No items</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Blind</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Saving failed</text>
+</string_table>
diff --git a/res/eng-US.xml b/res/eng-US.xml
new file mode 100644 (file)
index 0000000..f146f3f
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Maximum number of characters reached</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Slideshow</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Maximum number of files exceeded</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Slideshow settings</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Select all</text>
+    <text id="IDS_COM_POP_DELETE_Q">Delete?</text>
+    <text id="IDS_COM_BODY_EDIT">Edit</text>
+    <text id="IDS_COM_BODY_MESSAGE">Message</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Downloads</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Album name already in use</text>
+    <text id="IDS_COM_OPT_SAVE">Save</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 seconds</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Activation</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Rotate left</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 seconds</text>
+    <text id="IDS_COM_BODY_MESSAGES">Messages</text>
+    <text id="IDS_COM_SK_DONE">Done</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Unable to rename</text>
+    <text id="IDS_COM_BODY_EMAIL">Email</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Invalid characters</text>
+    <text id="IDS_COM_POP_MOVED">Moved</text>
+    <text id="IDS_COM_POP_CANCEL">Cancel</text>
+    <text id="IDS_COM_BODY_SELECTED">Selected</text>
+    <text id="IDS_COM_BODY_DELETE">Delete</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Subtitles</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Cancel</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Maximum number of characters (%d) reached</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Maximum number of characters (%d) reached</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Slide show</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Slide</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Start slideshow</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s already exists</text>
+    <text id="IDS_COM_BODY_LOADING">Loading...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albums</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Unable to rename. Album name already in use.</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Operation failed</text>
+    <text id="IDS_COM_POP_SAVING_ING">Saving...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Transition effect</text>
+    <text id="IDS_COM_BODY_MUSIC">Music</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d items selected</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Create folder?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Delete failed</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1 item selected</text>
+    <text id="IDS_COM_BODY_VIDEO">Video</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoom</text>
+    <text id="IDS_COM_BODY_COPY">Copy</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Slideshow interval</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Video Player</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Slideshow</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">Seconds</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Rotate left</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Page</text>
+    <text id="IDS_COM_POP_COPYING_ING">Copying...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 seconds</text>
+    <text id="IDS_COM_POP_PROCESSING">Processing...</text>
+    <text id="IDS_COM_BODY_GALLERY">Gallery</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">No name</text>
+    <text id="IDS_COM_BODY_IMAGES">Images</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Fade</text>
+    <text id="IDS_COM_HEADER_EDIT">Edit</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 seconds</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">No items selected</text>
+    <text id="IDS_COM_POP_DELETED">Deleted</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Remove?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Already exists. Overwrite?</text>
+    <text id="IDS_COM_POP_DELETING">Deleting...</text>
+    <text id="IDS_COM_POP_DONE">Done</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 seconds</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Camera roll</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Rotate right</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Repeat</text>
+    <text id="IDS_COM_POP_SAVED">Saved</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Dissolve</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Shuffle</text>
+    <text id="IDS_COM_POP_MOVING">Moving...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Moving failed</text>
+    <text id="IDS_COM_BODY_VIDEOS">Videos</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Unsupported file type</text>
+    <text id="IDS_COM_BODY_RENAME">Rename</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Completed</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Select all</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">All albums</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Change name</text>
+    <text id="IDS_COM_BODY_MOVE">Move</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Unable to delete</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Rotate right</text>
+    <text id="IDS_IV_BODY_INTERVAL">Interval</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Already exists</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Create album</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">No items</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Blind</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Saving failed</text>
+</string_table>
diff --git a/res/est-EE.xml b/res/est-EE.xml
new file mode 100644 (file)
index 0000000..198d820
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Lubatud arv märke on täis</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Slaidiseanss</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Failide maksimaalne arv on ületatud</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Slaidiseansi seaded</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Vali kõik</text>
+    <text id="IDS_COM_POP_DELETE_Q">Kustutada?</text>
+    <text id="IDS_COM_BODY_EDIT">Muuda</text>
+    <text id="IDS_COM_BODY_MESSAGE">Sõnum</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Allalaet. failid</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Albumi nimi juba kasutusel</text>
+    <text id="IDS_COM_OPT_SAVE">Salvesta</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 sekundit</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Aktiveerimine</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Pööra vasakule</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 sekundit</text>
+    <text id="IDS_COM_BODY_MESSAGES">Sõnumid</text>
+    <text id="IDS_COM_SK_DONE">Valmis</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Ei saa ümber nimetada</text>
+    <text id="IDS_COM_BODY_EMAIL">E-post</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Lubamatud tähemärgid</text>
+    <text id="IDS_COM_POP_MOVED">Teisaldatud</text>
+    <text id="IDS_COM_POP_CANCEL">Tühista</text>
+    <text id="IDS_COM_BODY_SELECTED">Valitud</text>
+    <text id="IDS_COM_BODY_DELETE">Kustuta</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Subtiitrid</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Tühista</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Maksimaalne tähemärkide arv (%d) on saavutatud</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Maksimaalne tähemärkide arv (%d) on saavutatud</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Slaidis.</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Slaid</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Käivita slaidiseanss</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s on juba olemas</text>
+    <text id="IDS_COM_BODY_LOADING">Laadimine...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albumid</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Ei saa ümber nimetada. Albumi nimi on juba kasutusel</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Toiming nurjus</text>
+    <text id="IDS_COM_POP_SAVING_ING">Salvestamine...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Ülemineku efekt</text>
+    <text id="IDS_COM_BODY_MUSIC">Muusika</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d üksust on valitud</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Kas luua kaust?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">BT-peakomplekt sees</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1 üksus on valitud</text>
+    <text id="IDS_COM_BODY_VIDEO">Video</text>
+    <text id="IDS_IV_OPT_ZOOM">Suumi</text>
+    <text id="IDS_COM_BODY_COPY">Kopeeri</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iiris</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Slaidiseansi intervall</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Videomängija</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Slaidiseanss</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">sekundit</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Pööra vasakule</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Lehekülg</text>
+    <text id="IDS_COM_POP_COPYING_ING">Kopeerimine...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 sekundit</text>
+    <text id="IDS_COM_POP_PROCESSING">Töötlemine...</text>
+    <text id="IDS_COM_BODY_GALLERY">Galerii</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Nimi puudub</text>
+    <text id="IDS_COM_BODY_IMAGES">Pildid</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Hajumine</text>
+    <text id="IDS_COM_HEADER_EDIT">Muuda</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 sekundit</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Ühtegi üksust ei ole valitud</text>
+    <text id="IDS_COM_POP_DELETED">Kustutatud</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Eemaldada?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">On juba olemas. Kas kirjutada üle?</text>
+    <text id="IDS_COM_POP_DELETING">Kustutamine...</text>
+    <text id="IDS_COM_POP_DONE">Valmis</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 sekundit</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Kaamera rullik</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Pööra paremale</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Korda</text>
+    <text id="IDS_COM_POP_SAVED">Salvestatud</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Lahuta</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Juhuesitus</text>
+    <text id="IDS_COM_POP_MOVING">Teisaldamine...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Teisaldamine nurjus</text>
+    <text id="IDS_COM_BODY_VIDEOS">Videod</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Mittetoetatud failitüüp</text>
+    <text id="IDS_COM_BODY_RENAME">Nimeta ümber</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Lõpule viidud</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Vali kõik</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Kõik albumid</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Muuda nime</text>
+    <text id="IDS_COM_BODY_MOVE">Teisalda</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Ei saa kustutada</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Pööra paremale</text>
+    <text id="IDS_IV_BODY_INTERVAL">Intervall</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Juba olemas</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Loo album</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Üksusi ei ole</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Vari</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Salvestamine nurjus</text>
+</string_table>
diff --git a/res/eus-ES.xml b/res/eus-ES.xml
new file mode 100644 (file)
index 0000000..450a54d
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Gehienezko karaktere kopurura heldu zara</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Diapositiba aurkezpena</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Gehienezko fitxategi kopurua gainditu duzu</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Erakusketaren ezarpenak</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Denak aukeratu</text>
+    <text id="IDS_COM_POP_DELETE_Q">Ezabatu?</text>
+    <text id="IDS_COM_BODY_EDIT">Editatu</text>
+    <text id="IDS_COM_BODY_MESSAGE">Mezua</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Deskargak</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Izen hori erabilia dago</text>
+    <text id="IDS_COM_OPT_SAVE">Gorde</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 segundo</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Aktibazioa</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Ezkerrera biratu</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 segundo</text>
+    <text id="IDS_COM_BODY_MESSAGES">Mezuak</text>
+    <text id="IDS_COM_SK_DONE">Amaituta</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Ezin da berrizendatu</text>
+    <text id="IDS_COM_BODY_EMAIL">Posta elektroniko mezuak</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Karaktere baliogabeak</text>
+    <text id="IDS_COM_POP_MOVED">Mugitua</text>
+    <text id="IDS_COM_POP_CANCEL">Ezeztatu</text>
+    <text id="IDS_COM_BODY_SELECTED">Aukeratutakoa(k)</text>
+    <text id="IDS_COM_BODY_DELETE">Ezabatu</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Azpitituluak</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Ezeztatu</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Gehienezko karaktere kopurura (%d) iritsi zara</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Gehienezko karaktere kopurura (%d) iritsi zara</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Erakusketa</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Diapositiba</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Hasi diaporama</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s dagoeneko bada</text>
+    <text id="IDS_COM_BODY_LOADING">Kargatzen...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albumak</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Ezin zaio izen berria jarri. Izen hori erabilia dago</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Eragiketak huts egin du</text>
+    <text id="IDS_COM_POP_SAVING_ING">Gordetzen</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Trantsizio efektua</text>
+    <text id="IDS_COM_BODY_MUSIC">Musika</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d elementu hautatu dira</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Karpeta sortu?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Akatsa ezabatzerakoan</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">Elementu 1 hautatu da</text>
+    <text id="IDS_COM_BODY_VIDEO">Bideoa</text>
+    <text id="IDS_IV_OPT_ZOOM">Zooma</text>
+    <text id="IDS_COM_BODY_COPY">Kopiatu</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Irisa</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Aurkzpen tartea</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Bideo Jogailua</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Aurkezpena</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">segundoak</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Ezkerrera biratu</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Orria</text>
+    <text id="IDS_COM_POP_COPYING_ING">Kopiatzen...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 segundo</text>
+    <text id="IDS_COM_POP_PROCESSING">Prozesatzen...</text>
+    <text id="IDS_COM_BODY_GALLERY">Galeria</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Izenik gabe</text>
+    <text id="IDS_COM_BODY_IMAGES">Irudiak</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Koloregabetu</text>
+    <text id="IDS_COM_HEADER_EDIT">Editatu</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 segundo</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Ez da elementurik aukeratu</text>
+    <text id="IDS_COM_POP_DELETED">Ezabatua</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Kendu?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Dagoeneko bada. Berridatzi?</text>
+    <text id="IDS_COM_POP_DELETING">Ezabatzen...</text>
+    <text id="IDS_COM_POP_DONE">Amaituta</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 segundo</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Kamera erroilua</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Eskuinera biratu</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Errepikatu</text>
+    <text id="IDS_COM_POP_SAVED">Gordeta</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Disolbatu</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Ausazko ordena</text>
+    <text id="IDS_COM_POP_MOVING">Mugitzen...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Errorea mugitzerakoan</text>
+    <text id="IDS_COM_BODY_VIDEOS">Bideoak</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Fitx. mota ez da onartzen</text>
+    <text id="IDS_COM_BODY_RENAME">Berrizendatu</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Osatua</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Haut. den.</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Album guztiak</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Izena aldatu</text>
+    <text id="IDS_COM_BODY_MOVE">Mugitu</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Ezin da ezabatu</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Eskuinera biratu</text>
+    <text id="IDS_IV_BODY_INTERVAL">Tartea</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Dagoeneko badago</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Albuma sortu</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Elementurik ez</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Itsua</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Errorea gordetzerakoan</text>
+</string_table>
diff --git a/res/fas-AF.xml b/res/fas-AF.xml
new file mode 100644 (file)
index 0000000..3eca367
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">تعداد کاراکترها به حداکثر رسیده</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">اسلايد شو</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">به حداکثر تعداد مجاز فایل رسیده اید</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">تنظیمات نمایش اسلاید</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">انتخاب همه</text>
+    <text id="IDS_COM_POP_DELETE_Q">حذف شود؟</text>
+    <text id="IDS_COM_BODY_EDIT">تصحيح</text>
+    <text id="IDS_COM_BODY_MESSAGE">پيام</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">دانلودها</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">نام آلبوم از قبل موجود است</text>
+    <text id="IDS_COM_OPT_SAVE">ثبت</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20ثانیه</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">فعال سازی</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">چرخش به چپ</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2ثانیه</text>
+    <text id="IDS_COM_BODY_MESSAGES">پيام ها</text>
+    <text id="IDS_COM_SK_DONE">انجام</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">تغییر نام ممکن نیست.\nفایل در حال استفاده است</text>
+    <text id="IDS_COM_BODY_EMAIL">ایمیل</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">نویسه ها نامعتبر است</text>
+    <text id="IDS_COM_POP_MOVED">منتقل شد</text>
+    <text id="IDS_COM_POP_CANCEL">لغو</text>
+    <text id="IDS_COM_BODY_SELECTED">منتخب</text>
+    <text id="IDS_COM_BODY_DELETE">حذف</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">زیرنویس ها</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">لغو</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">به حداکثر تعداد کاراکتر های (%d) رسیده اید</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">به حداکثر تعداد کاراکتر های (%d) رسیده اید</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">اسلاید شو</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">کشویی</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">شروع نمایش اسلاید</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s از قبل وجود دارد</text>
+    <text id="IDS_COM_BODY_LOADING">در حال دانلود...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">آلبوم ها</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">تغییر نام امکانپذیر نیست. نام آلبوم از قبل موجود است</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">عملکرد انجام نشد</text>
+    <text id="IDS_COM_POP_SAVING_ING">درحال ثبت…</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">جلوه تغییر وضعیت</text>
+    <text id="IDS_COM_BODY_MUSIC">موزیک</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d مورد انتخاب شد</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">ايجاد پوشه؟</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">عدم موفقیت در حذف</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1 مورد انتخاب شد</text>
+    <text id="IDS_COM_BODY_VIDEO">فيلم</text>
+    <text id="IDS_IV_OPT_ZOOM">زوم</text>
+    <text id="IDS_COM_BODY_COPY">کپی</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">فاصله زمانی نمایش اسلاید</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">پخش کننده فیلم</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">نمایش اسلاید</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">ثانيه</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">چرخش به چپ</text>
+    <text id="IDS_EBOOK_BODY_PAGE">صفحه</text>
+    <text id="IDS_COM_POP_COPYING_ING">در حال کپی...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10ثانیه</text>
+    <text id="IDS_COM_POP_PROCESSING">در حال انجام...</text>
+    <text id="IDS_COM_BODY_GALLERY">گالری</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">بدون نام</text>
+    <text id="IDS_COM_BODY_IMAGES">تصاوير</text>
+    <text id="IDS_MEDIABR_BODY_FADE">ناپدید شدن تدریجی</text>
+    <text id="IDS_COM_HEADER_EDIT">تصحيح</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 ثانيه</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">موردی برای انتخاب وجود ندارد</text>
+    <text id="IDS_COM_POP_DELETED">حذف شد</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">حذف؟</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">از قبل وجود دارد. رونویسی شود؟</text>
+    <text id="IDS_COM_POP_DELETING">در حال حذف...</text>
+    <text id="IDS_COM_POP_DONE">انجام</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3ثانیه</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">فهرست دوربین</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">چرخش به راست</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">تکرار</text>
+    <text id="IDS_COM_POP_SAVED">ثبت شد</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">مخلوط شدن تصاویر</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">انتخاب دستگاه</text>
+    <text id="IDS_COM_POP_MOVING">در حال انتقال</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">عدم موفقیت در انتقال</text>
+    <text id="IDS_COM_BODY_VIDEOS">فیلمها</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">نوع فایل پشتیبانی نشده</text>
+    <text id="IDS_COM_BODY_RENAME">تعويض نام</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">انجام شد</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">انتخاب همه</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">همه آلبوم ها</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">تعويض نام</text>
+    <text id="IDS_COM_BODY_MOVE">انتقال</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">غير قابل حذف</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">چرخش به راست</text>
+    <text id="IDS_IV_BODY_INTERVAL">مدت زمان</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">موجود است</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">ایجاد آلبوم</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">موردی نیست</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">چراغ چشمک زن</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">عدم موفقیت در ذخیره سازی</text>
+</string_table>
diff --git a/res/fin-FI.xml b/res/fin-FI.xml
new file mode 100644 (file)
index 0000000..2bcf2b3
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Merkkien enimmäismäärä saavutettu</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Diaesitys</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Tiedostojen enimmäismäärä on ylitetty</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Kuvaesityksen asetukset</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Valitse kaikki</text>
+    <text id="IDS_COM_POP_DELETE_Q">Poistetaanko?</text>
+    <text id="IDS_COM_BODY_EDIT">Muokkaa</text>
+    <text id="IDS_COM_BODY_MESSAGE">Viesti</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Lataukset</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Albumin nimi jo käytössä</text>
+    <text id="IDS_COM_OPT_SAVE">Tallenna</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 sekuntia</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Aktivointi</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Kierrä vastapäivään</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 sekuntia</text>
+    <text id="IDS_COM_BODY_MESSAGES">Viestit</text>
+    <text id="IDS_COM_SK_DONE">Valmis</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Ei voi nimetä uudelleen</text>
+    <text id="IDS_COM_BODY_EMAIL">Sähköposti</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Virheellisiä merkkejä</text>
+    <text id="IDS_COM_POP_MOVED">Siirretty</text>
+    <text id="IDS_COM_POP_CANCEL">Peruuta</text>
+    <text id="IDS_COM_BODY_SELECTED">Valittu</text>
+    <text id="IDS_COM_BODY_DELETE">Poista</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Tekstitys</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Peruuta</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Merkkien enimmäismäärä (%d) on saavutettu</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Merkkien enimmäismäärä (%d) on saavutettu</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Diaesitys</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Dia</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Käynnistä kuvaesitys</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s on jo olemassa</text>
+    <text id="IDS_COM_BODY_LOADING">Ladataan...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albumit</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Ei voi nimetä uudelleen. Albumin nimi on jo käytössä</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Toiminto epäonnistui</text>
+    <text id="IDS_COM_POP_SAVING_ING">Tallennetaan...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Siirtymätehoste</text>
+    <text id="IDS_COM_BODY_MUSIC">Musiikki</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d kohdetta valittu</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Luodaanko kansio?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Poisto epäonnistui</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1 kohde valittu</text>
+    <text id="IDS_COM_BODY_VIDEO">Video</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoomaus</text>
+    <text id="IDS_COM_BODY_COPY">Kopioi</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Kuvaesityksen aikaväli</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Videosoitin</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Kuvaesitys</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">sekuntia</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Kierrä vastapäivään</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Sivu</text>
+    <text id="IDS_COM_POP_COPYING_ING">Kopioidaan...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 sekuntia</text>
+    <text id="IDS_COM_POP_PROCESSING">Käsitellään...</text>
+    <text id="IDS_COM_BODY_GALLERY">Galleria</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Ei nimeä</text>
+    <text id="IDS_COM_BODY_IMAGES">Kuvat</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Häivytä</text>
+    <text id="IDS_COM_HEADER_EDIT">Muokkaa</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 sekuntia</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Ei valittuja kohteita</text>
+    <text id="IDS_COM_POP_DELETED">Poistettu</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Poistetaanko?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">On jo olemassa. Päivitetäänkö?</text>
+    <text id="IDS_COM_POP_DELETING">Poistetaan...</text>
+    <text id="IDS_COM_POP_DONE">Valmis</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 sekuntia</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Kamerarulla</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Kierrä myötäpäivään</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Toista</text>
+    <text id="IDS_COM_POP_SAVED">Tallennettu</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Ristikuva</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Sekoitus</text>
+    <text id="IDS_COM_POP_MOVING">Siirretään...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Siirto epäonnistui</text>
+    <text id="IDS_COM_BODY_VIDEOS">Videot</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Tiedostotyyppiä ei tueta</text>
+    <text id="IDS_COM_BODY_RENAME">Nimeä uudelleen</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Valmis</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">V. kaikki</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Kaikki albumit</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Vaihda nimi</text>
+    <text id="IDS_COM_BODY_MOVE">Siirrä</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Ei voi poistaa</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Kierrä myötäpäivään</text>
+    <text id="IDS_IV_BODY_INTERVAL">Väli</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">On jo olemassa</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Luo albumi</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Ei kohteita</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Kaihdin</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Tallentaminen epäonnistui</text>
+</string_table>
diff --git a/res/fra-CA.xml b/res/fra-CA.xml
new file mode 100644 (file)
index 0000000..2a94a11
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Nb. max. de caractères atteint</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Diaporama</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Nombre maximum de fichiers dépassé</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Paramètres du diaporama</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Sélectionner tout</text>
+    <text id="IDS_COM_POP_DELETE_Q">Supprimer ?</text>
+    <text id="IDS_COM_BODY_EDIT">Modifier</text>
+    <text id="IDS_COM_BODY_MESSAGE">Message</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Télécharg.</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Nom d'album déjà utilisé</text>
+    <text id="IDS_COM_OPT_SAVE">Enreg.</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 secondes</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Activation</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Pivoter vers la gauche</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 secondes</text>
+    <text id="IDS_COM_BODY_MESSAGES">Messages</text>
+    <text id="IDS_COM_SK_DONE">OK</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Impossible de renommer l'élément</text>
+    <text id="IDS_COM_BODY_EMAIL">Courriel</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Caractères non valides</text>
+    <text id="IDS_COM_POP_MOVED">Déplacé</text>
+    <text id="IDS_COM_POP_CANCEL">Annuler</text>
+    <text id="IDS_COM_BODY_SELECTED">Sélectionné</text>
+    <text id="IDS_COM_BODY_DELETE">Supprimer</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Sous-titres</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Annuler</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Nombre maximum de caractères (%d) atteint</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Nombre maximum de caractères (%d) atteint</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Diaporama</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Diapo</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Lancer le diaporama</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s existe déjà</text>
+    <text id="IDS_COM_BODY_LOADING">Chargement...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albums</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Impossible de renommer l'élément. Nom d'album déjà utilisé</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Échec de l'opération</text>
+    <text id="IDS_COM_POP_SAVING_ING">Enregistrement ...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Effet de transition</text>
+    <text id="IDS_COM_BODY_MUSIC">Musique</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d éléments sélectionnés</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Créer un dossier ?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Échec de suppression</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1 élément sélectionné</text>
+    <text id="IDS_COM_BODY_VIDEO">Vidéo</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoom</text>
+    <text id="IDS_COM_BODY_COPY">Copier</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Intervalle du diaporama</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Lecteur vidéo</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Diaporama</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">secondes</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Pivoter vers la gauche</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Page</text>
+    <text id="IDS_COM_POP_COPYING_ING">Copie ...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 secondes</text>
+    <text id="IDS_COM_POP_PROCESSING">Traitement…</text>
+    <text id="IDS_COM_BODY_GALLERY">Galerie</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Aucun nom</text>
+    <text id="IDS_COM_BODY_IMAGES">Images</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Fondu</text>
+    <text id="IDS_COM_HEADER_EDIT">Modifier</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 secondes</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Aucun élément sélectionné</text>
+    <text id="IDS_COM_POP_DELETED">Supprimé</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Retirer?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Existe déjà. L'écraser?</text>
+    <text id="IDS_COM_POP_DELETING">Suppression ...</text>
+    <text id="IDS_COM_POP_DONE">OK</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 secondes</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Pellicule</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Pivoter vers la droite</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Répéter</text>
+    <text id="IDS_COM_POP_SAVED">Enregistré</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Fondu enchainé</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Mode aléatoire</text>
+    <text id="IDS_COM_POP_MOVING">Déplacement...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Échec du déplacement</text>
+    <text id="IDS_COM_BODY_VIDEOS">Vidéos</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Type fichier non supporté</text>
+    <text id="IDS_COM_BODY_RENAME">Renommer</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">OK</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Sélectionner tout</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Tous les albums</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Modifier le nom</text>
+    <text id="IDS_COM_BODY_MOVE">Déplacer</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Suppression impossible</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Pivoter vers la droite</text>
+    <text id="IDS_IV_BODY_INTERVAL">Intervalle</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Existe déjà</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Créer un album</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Aucun élément</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Stores vénitiens</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Échec de l'enregistrement</text>
+</string_table>
diff --git a/res/fra-FR.xml b/res/fra-FR.xml
new file mode 100644 (file)
index 0000000..e89084e
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Nb. max. de caractères atteint</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Diaporama</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Nombre maximum de fichiers dépassé</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Paramètres du diaporama</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Sélect. tout</text>
+    <text id="IDS_COM_POP_DELETE_Q">Supprimer ?</text>
+    <text id="IDS_COM_BODY_EDIT">Modifier</text>
+    <text id="IDS_COM_BODY_MESSAGE">Message</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Téléchargements</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Nom d'album déjà utilisé</text>
+    <text id="IDS_COM_OPT_SAVE">Enregistrer</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 secondes</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Activation</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Rotation à gauche</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 secondes</text>
+    <text id="IDS_COM_BODY_MESSAGES">Messages</text>
+    <text id="IDS_COM_SK_DONE">Effectué</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Impossible de renommer l'élément</text>
+    <text id="IDS_COM_BODY_EMAIL">Email</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Caractères non valides</text>
+    <text id="IDS_COM_POP_MOVED">Déplacé</text>
+    <text id="IDS_COM_POP_CANCEL">Annuler</text>
+    <text id="IDS_COM_BODY_SELECTED">Sélectionné</text>
+    <text id="IDS_COM_BODY_DELETE">Supprimer</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Sous-titres</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Annuler</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Le nombre maximum de caractères (%d) est atteint</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Le nombre maximum de caractères (%d) est atteint</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Diaporama</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Défilement</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Lancer le diaporama</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s existe déjà</text>
+    <text id="IDS_COM_BODY_LOADING">Chargement en cours.</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albums</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Impossible de renommer l'élément. Nom d'album déjà utilisé</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Échec de l'opération</text>
+    <text id="IDS_COM_POP_SAVING_ING">Enregistrement...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Effet de transition</text>
+    <text id="IDS_COM_BODY_MUSIC">Musique</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d éléments sélectionnés</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Créer un dossier ?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Échec de suppression</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1 élément sélectionné</text>
+    <text id="IDS_COM_BODY_VIDEO">Vidéo</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoom</text>
+    <text id="IDS_COM_BODY_COPY">Copier</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Intervalle du diaporama</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Lecteur vidéo</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Diaporama</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">secondes</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Rotation à gauche</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Page</text>
+    <text id="IDS_COM_POP_COPYING_ING">Copie...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 secondes</text>
+    <text id="IDS_COM_POP_PROCESSING">En cours...</text>
+    <text id="IDS_COM_BODY_GALLERY">Galerie</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Aucun nom</text>
+    <text id="IDS_COM_BODY_IMAGES">Images</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Fondu</text>
+    <text id="IDS_COM_HEADER_EDIT">Modifier</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 secondes</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Aucun élément sélectionné</text>
+    <text id="IDS_COM_POP_DELETED">Supprimé</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Supprimer ?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Existe déjà. L' écraser ?</text>
+    <text id="IDS_COM_POP_DELETING">Suppression...</text>
+    <text id="IDS_COM_POP_DONE">Effectué</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 secondes</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Pellicule</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Rotation à droite</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Répéter</text>
+    <text id="IDS_COM_POP_SAVED">Enregistré</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Fondu enchaîné</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Mode aléatoire</text>
+    <text id="IDS_COM_POP_MOVING">Déplacement...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Échec du déplacement</text>
+    <text id="IDS_COM_BODY_VIDEOS">Vidéos</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Type fichier non supporté</text>
+    <text id="IDS_COM_BODY_RENAME">Renommer</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">OK</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Sélect. tt</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Tous les albums</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Modifier le nom</text>
+    <text id="IDS_COM_BODY_MOVE">Déplacer</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Suppression impossible</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Rotation à droite</text>
+    <text id="IDS_IV_BODY_INTERVAL">Intervalle</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Existe déjà</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Créer un album</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Aucun élément</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Stores vénitiens</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Échec de l'enregistrement</text>
+</string_table>
diff --git a/res/gle-IE.xml b/res/gle-IE.xml
new file mode 100644 (file)
index 0000000..20bcd97
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Uaslíon na gcarachtar bainte amach</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Taispeántas sleamhnán</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Uaslíon na gcomhad sáraithe</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Socruithe taispeántais sleamhnán</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Roghnaigh gach</text>
+    <text id="IDS_COM_POP_DELETE_Q">Scrios?</text>
+    <text id="IDS_COM_BODY_EDIT">Cuir in eagar</text>
+    <text id="IDS_COM_BODY_MESSAGE">Teachtaireacht</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Ioslódálacha</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Ainm albaim in úsáid cheana</text>
+    <text id="IDS_COM_OPT_SAVE">Sábháil</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 soicind</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Gníomhachtú</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Rothlaigh ar chlé</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 shoicind</text>
+    <text id="IDS_COM_BODY_MESSAGES">Teachtaireachtaí</text>
+    <text id="IDS_COM_SK_DONE">Déanta</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Ní féidir athainmniú</text>
+    <text id="IDS_COM_BODY_EMAIL">R-phost</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Carachtair neamhbhailí</text>
+    <text id="IDS_COM_POP_MOVED">Bogtha</text>
+    <text id="IDS_COM_POP_CANCEL">Cuir ar ceal</text>
+    <text id="IDS_COM_BODY_SELECTED">Roghnaithe</text>
+    <text id="IDS_COM_BODY_DELETE">Scrios</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Fotheidil</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Cuir ar ceal</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Uaslíon na gcarachtar (%d) bainte amach</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Uaslíon na gcarachtar (%d) bainte amach</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Sleamhnán</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Sleamhnán</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Tosaigh ar thaispeántas sleamhnán</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">Tá %s ann cheana</text>
+    <text id="IDS_COM_BODY_LOADING">Ag lódáil...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albaim</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Ní féidir athainmniú. Ainm an albaim in úsáid cheana</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Theip ar oibríocht</text>
+    <text id="IDS_COM_POP_SAVING_ING">Ag sábháil...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Maisíocht trasdula</text>
+    <text id="IDS_COM_BODY_MUSIC">Ceol</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d mír roghnaithe</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Déan fillteán?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Theip ar scriosadh</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1 mhír roghnaithe</text>
+    <text id="IDS_COM_BODY_VIDEO">Físeán</text>
+    <text id="IDS_IV_OPT_ZOOM">Zúmáil</text>
+    <text id="IDS_COM_BODY_COPY">Cóipeáil</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Feileastram</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Eatramh taispeántais sleamhnán</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Seinnteoir Físeán</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Taispeántas sleamhnán</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">soicindí</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Rothlaigh ar chlé</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Leathanach</text>
+    <text id="IDS_COM_POP_COPYING_ING">Ag cóipeáil...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 soicind</text>
+    <text id="IDS_COM_POP_PROCESSING">Ag próiseáil...</text>
+    <text id="IDS_COM_BODY_GALLERY">Gailearaí</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Níl ainm ann</text>
+    <text id="IDS_COM_BODY_IMAGES">Íomhánna</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Céimnigh</text>
+    <text id="IDS_COM_HEADER_EDIT">Cuir in eagar</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 shoicind</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Níor roghnaíodh míreanna</text>
+    <text id="IDS_COM_POP_DELETED">Scriosta</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Bain?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Ann cheana. Forscríobh?</text>
+    <text id="IDS_COM_POP_DELETING">Ag scriosadh...</text>
+    <text id="IDS_COM_POP_DONE">Déanta</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 shoicind</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Rolla ceamara</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Rothlaigh ar dheis</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Déan arís</text>
+    <text id="IDS_COM_POP_SAVED">Sábháilte</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Leáigh</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Suaitheadh</text>
+    <text id="IDS_COM_POP_MOVING">Ag bogadh...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Theip ar bhogadh</text>
+    <text id="IDS_COM_BODY_VIDEOS">Físeáin</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Cineál comhaid gan tacú</text>
+    <text id="IDS_COM_BODY_RENAME">Athainmnigh</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Curtha i gcrích</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Rogh. gach</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Gach albam</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Athraigh ainm</text>
+    <text id="IDS_COM_BODY_MOVE">Bog</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Ní féidir scriosadh</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Rothlaigh ar dheis</text>
+    <text id="IDS_IV_BODY_INTERVAL">Eatramh</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Ann cheana</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Déan albam</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Níl míreanna ann</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Dallóg</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Theip ar shábháil</text>
+</string_table>
diff --git a/res/glg-ES.xml b/res/glg-ES.xml
new file mode 100644 (file)
index 0000000..f3e4e7f
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Número máximo de caracteres alcanzado</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Presentación de diapositivas</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Superouse o número máximo de arquivos</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Axustes de presentación</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Seleccionar todo</text>
+    <text id="IDS_COM_POP_DELETE_Q">Eliminar?</text>
+    <text id="IDS_COM_BODY_EDIT">Editar</text>
+    <text id="IDS_COM_BODY_MESSAGE">Mensaxe</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Descargas</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Nome de álbum xa en uso</text>
+    <text id="IDS_COM_OPT_SAVE">Gardar</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 segundos</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Activación</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Xirar á esquerda</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 segundos</text>
+    <text id="IDS_COM_BODY_MESSAGES">Mensaxes</text>
+    <text id="IDS_COM_SK_DONE">Finalizado</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Non se pode cambiar o nome</text>
+    <text id="IDS_COM_BODY_EMAIL">Correo electrónico</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Caracteres non válidos</text>
+    <text id="IDS_COM_POP_MOVED">Movido</text>
+    <text id="IDS_COM_POP_CANCEL">Cancelar</text>
+    <text id="IDS_COM_BODY_SELECTED">Seleccionado</text>
+    <text id="IDS_COM_BODY_DELETE">Eliminar</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Subtítulos</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Cancelar</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Alcanzouse o número máximo de carácteres (%d)</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Alcanzouse o número máximo de carácteres (%d)</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Diapos</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Diapositiva</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Iniciar presentación de diapositivas</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s xa existe</text>
+    <text id="IDS_COM_BODY_LOADING">Cargando...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Álbums</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Non se pode cambiar o nome. Nome de álbum xa en uso</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Fallo na operación</text>
+    <text id="IDS_COM_POP_SAVING_ING">Gardando...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Efecto de transición</text>
+    <text id="IDS_COM_BODY_MUSIC">Música</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d elementos seleccionados</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Crear carpeta?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Erro ao eliminar</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1 elemento seleccionado</text>
+    <text id="IDS_COM_BODY_VIDEO">Vídeo</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoom</text>
+    <text id="IDS_COM_BODY_COPY">Copiar</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Intervalo de presentación</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Reprodutor de Vídeo</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Presentación</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">segundos</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Xirar á esquerda</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Páxina</text>
+    <text id="IDS_COM_POP_COPYING_ING">Copiando...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 segundos</text>
+    <text id="IDS_COM_POP_PROCESSING">Procesando...</text>
+    <text id="IDS_COM_BODY_GALLERY">Galería</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Sen nome</text>
+    <text id="IDS_COM_BODY_IMAGES">Imaxes</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Atenuar</text>
+    <text id="IDS_COM_HEADER_EDIT">Editar</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 segundos</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Non hai elementos seleccionados</text>
+    <text id="IDS_COM_POP_DELETED">Eliminado</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Eliminar?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Xa existe. Sobrescribir?</text>
+    <text id="IDS_COM_POP_DELETING">Eliminando...</text>
+    <text id="IDS_COM_POP_DONE">Finalizado</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 segundos</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Rolo de cámara</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Xirar á dereita</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Repetir</text>
+    <text id="IDS_COM_POP_SAVED">Gardado</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Fundir</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Orde aleatoria</text>
+    <text id="IDS_COM_POP_MOVING">Movendo...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Erro ao mover</text>
+    <text id="IDS_COM_BODY_VIDEOS">Vídeos</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Tipo de arq. non admitido</text>
+    <text id="IDS_COM_BODY_RENAME">C. nome</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Completada</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Selec todo</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Todos os álbums</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Cambiar nome</text>
+    <text id="IDS_COM_BODY_MOVE">Mover</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Non se pode eliminar</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Xirar á dereita</text>
+    <text id="IDS_IV_BODY_INTERVAL">Intervalo</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Xa existe</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Crear álbum</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Sen elementos</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Persiana</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Erro ao gardar</text>
+</string_table>
diff --git a/res/hin-IN.xml b/res/hin-IN.xml
new file mode 100644 (file)
index 0000000..cb453cf
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">वर्णो की संख्‍या अधिकतम पहुँची</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">स्लाइड शो</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">फ़ाइल की संख्‍या अधिकतम तक पहुँची</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">स्लाइड शो सेटिंग्स</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">सभी चुनें</text>
+    <text id="IDS_COM_POP_DELETE_Q">हटाएँ?</text>
+    <text id="IDS_COM_BODY_EDIT">संपादित करें</text>
+    <text id="IDS_COM_BODY_MESSAGE">सन्देश</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">डाउनलोड</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">अल्बम नाम पहले से उपयोग में</text>
+    <text id="IDS_COM_OPT_SAVE">सुरक्षित</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 सेकंड</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">सक्रियण</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">बाएँ घुमाएँ</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 सेकंड</text>
+    <text id="IDS_COM_BODY_MESSAGES">सन्देश</text>
+    <text id="IDS_COM_SK_DONE">हुआ</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">नाम बदलने में अक्षम</text>
+    <text id="IDS_COM_BODY_EMAIL">ईमेल</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">अमान्य वर्ण</text>
+    <text id="IDS_COM_POP_MOVED">ले जाया गया</text>
+    <text id="IDS_COM_POP_CANCEL">रद्द करें</text>
+    <text id="IDS_COM_BODY_SELECTED">चुना गया</text>
+    <text id="IDS_COM_BODY_DELETE">हटाएँ</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">उपशीर्षक</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">रद्द करें</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">वर्णों की अधिकतम संख्या (%d) तक पहुँच गया</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">वर्णों की अधिकतम संख्या (%d) तक पहुँच गया</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">स्लाइड शो</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">स्लाइड</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">स्लाइडशो प्रारंभ करें</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s पहले से मौजूद है</text>
+    <text id="IDS_COM_BODY_LOADING">लोड हो रहा है...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">एल्बम्स</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">पुनर्नामित करने में अक्षम. अल्बम नाम पहले से उपयोग में</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">कार्रवाई विफल</text>
+    <text id="IDS_COM_POP_SAVING_ING">सुरक्षित हो रहा है...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">परिवर्तन प्रभाव</text>
+    <text id="IDS_COM_BODY_MUSIC">संगीत</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d मदें चयनित</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">फोल्डर बनाएं?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">हटाना विफल</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1 मद चयनित</text>
+    <text id="IDS_COM_BODY_VIDEO">विडियो</text>
+    <text id="IDS_IV_OPT_ZOOM">ज़ूम</text>
+    <text id="IDS_COM_BODY_COPY">कॉपी करें</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">आइरिस</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">स्लाइड शो अंतराल</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">वीडियो प्‍लेयर</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">स्लाइड शो</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">सेकेंड</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">बाएँ घुमाएँ</text>
+    <text id="IDS_EBOOK_BODY_PAGE">पेज</text>
+    <text id="IDS_COM_POP_COPYING_ING">कॉपी कर रहा है…</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 सेकंड</text>
+    <text id="IDS_COM_POP_PROCESSING">प्रोसेस हो रहा है…</text>
+    <text id="IDS_COM_BODY_GALLERY">गैलरी</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">नाम नहीं</text>
+    <text id="IDS_COM_BODY_IMAGES">छवियाँ</text>
+    <text id="IDS_MEDIABR_BODY_FADE">फीका</text>
+    <text id="IDS_COM_HEADER_EDIT">संपादित करें</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 सेकंड</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">कोई मद चयनित नहीं</text>
+    <text id="IDS_COM_POP_DELETED">हटाया गया</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">हटाएँ?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">पहले से मौजूद है। ओवरराइट करें?</text>
+    <text id="IDS_COM_POP_DELETING">हटाया जा रहा है…</text>
+    <text id="IDS_COM_POP_DONE">हुआ</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 सेकंड</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">कैमरा रोल</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">दाएँ घुमाएँ</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">दोहराव</text>
+    <text id="IDS_COM_POP_SAVED">सुरक्षित किया</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">विलय</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">शफ़ल</text>
+    <text id="IDS_COM_POP_MOVING">ले जा रहा है…</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">ले जाना विफल हुआ</text>
+    <text id="IDS_COM_BODY_VIDEOS">विडियो</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">असमर्थित फ़ाइल प्रकार</text>
+    <text id="IDS_COM_BODY_RENAME">पुन: नाम दें</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">पूर्ण</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">सभी चुनें</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">सभी एलबम्‍स</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">नाम बदलें</text>
+    <text id="IDS_COM_BODY_MOVE">ले जाएँ</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">हटाने में अक्षम</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">दाएँ घुमाएँ</text>
+    <text id="IDS_IV_BODY_INTERVAL">अन्तराल</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">पहले से ही मौजूद</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">अल्बम बनाएँ</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">कोई मदें नहीं</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">ब्लाइंड</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">सुरक्षित करना विफल</text>
+</string_table>
diff --git a/res/hrv-HR.xml b/res/hrv-HR.xml
new file mode 100644 (file)
index 0000000..94a1d59
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Maks. broj znakova</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Prezentacija</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Maks. broj datoteka</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Postavke prezentacije</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Odaberi sve</text>
+    <text id="IDS_COM_POP_DELETE_Q">Obrisati?</text>
+    <text id="IDS_COM_BODY_EDIT">Uredi</text>
+    <text id="IDS_COM_BODY_MESSAGE">Poruka</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Skidanja</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Već postoji naziv albuma</text>
+    <text id="IDS_COM_OPT_SAVE">Spremi</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 sek</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Uključivanje</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Rotiraj ulijevo</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 sek</text>
+    <text id="IDS_COM_BODY_MESSAGES">Poruke</text>
+    <text id="IDS_COM_SK_DONE">OK</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Nemoguće preimenovati</text>
+    <text id="IDS_COM_BODY_EMAIL">Email</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Neispravni znakovi</text>
+    <text id="IDS_COM_POP_MOVED">Premješteno</text>
+    <text id="IDS_COM_POP_CANCEL">Prekid</text>
+    <text id="IDS_COM_BODY_SELECTED">Odabrano</text>
+    <text id="IDS_COM_BODY_DELETE">Obriši</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Titlovi</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Prekid</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Maksimalan broj znakova (%d)</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Maksimalan broj znakova (%d)</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Prezentacija</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Listanje</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Pokreni prezentaciju</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s već postoji</text>
+    <text id="IDS_COM_BODY_LOADING">Učitavanje...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albumi</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Nemoguće preimenovati. Već postoji naziv albuma</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Neuspješno</text>
+    <text id="IDS_COM_POP_SAVING_ING">Spremanje...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Efekt prijelaza</text>
+    <text id="IDS_COM_BODY_MUSIC">Glazba</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d odabranih stavki</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Nova mapa?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Brisanje neuspješno</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1 stavka odabrana</text>
+    <text id="IDS_COM_BODY_VIDEO">Video</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoom</text>
+    <text id="IDS_COM_BODY_COPY">Kopiraj</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Interval prezentacije</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Video Player</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Prezentacija</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">sekundi</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Rotiraj ulijevo</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Stranica</text>
+    <text id="IDS_COM_POP_COPYING_ING">Kopiranje...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 sek</text>
+    <text id="IDS_COM_POP_PROCESSING">Procesiranje...</text>
+    <text id="IDS_COM_BODY_GALLERY">Album</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Nema imena</text>
+    <text id="IDS_COM_BODY_IMAGES">Slike</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Zatamni</text>
+    <text id="IDS_COM_HEADER_EDIT">Uredi</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 sek</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Ništa odabrano</text>
+    <text id="IDS_COM_POP_DELETED">Obrisano</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Ukloniti?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Već postoji. Piši preko?</text>
+    <text id="IDS_COM_POP_DELETING">Brisanje...</text>
+    <text id="IDS_COM_POP_DONE">OK</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 sek</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Snimke kamere</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Rotiraj udesno</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Ponavljanje</text>
+    <text id="IDS_COM_POP_SAVED">Spremljeno</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Razrijedi</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Nasumično</text>
+    <text id="IDS_COM_POP_MOVING">Premještanje...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Premještanje neuspješno</text>
+    <text id="IDS_COM_BODY_VIDEOS">Video</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Nepodržana vrsta datoteka</text>
+    <text id="IDS_COM_BODY_RENAME">Preimenuj</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Obavljeno</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Označi sve</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Svi albumi</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Promijenite ime</text>
+    <text id="IDS_COM_BODY_MOVE">Premjesti</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Brisanje nemoguće</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Rotiraj udesno</text>
+    <text id="IDS_IV_BODY_INTERVAL">Interval</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Već postoji</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Novi album</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Nema stavki</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Roleta</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Spremanje neuspješno</text>
+</string_table>
diff --git a/res/hun-HU.xml b/res/hun-HU.xml
new file mode 100644 (file)
index 0000000..02e98c5
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Nincs hely több karakternek</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Diavetítés</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Elérte a fájlok maximális számát</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Diabemutató beállításai</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Összes kijelölése</text>
+    <text id="IDS_COM_POP_DELETE_Q">Törli?</text>
+    <text id="IDS_COM_BODY_EDIT">Szerkeszt</text>
+    <text id="IDS_COM_BODY_MESSAGE">Üzenet</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Letöltések</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Ilyen albumnév már van</text>
+    <text id="IDS_COM_OPT_SAVE">Ment</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 másodperc</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Aktivál</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Forgatás balra</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 másodperc</text>
+    <text id="IDS_COM_BODY_MESSAGES">Üzenetek</text>
+    <text id="IDS_COM_SK_DONE">Kész</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Nem lehet átnevezni</text>
+    <text id="IDS_COM_BODY_EMAIL">E-mail</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Érvénytelen karakterek</text>
+    <text id="IDS_COM_POP_MOVED">Áthelyezve</text>
+    <text id="IDS_COM_POP_CANCEL">Mégse</text>
+    <text id="IDS_COM_BODY_SELECTED">Kiválasztott</text>
+    <text id="IDS_COM_BODY_DELETE">Töröl</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Feliratok</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Mégse</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Elérte a karakterek maximális számát (%d)</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Elérte a karakterek maximális számát (%d)</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Diavet.</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Dia</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Diabemutató indítása</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">Már van %s nevű fájl</text>
+    <text id="IDS_COM_BODY_LOADING">Betöltés...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albumok</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Nem lehet átnevezni. Ilyen albumnév már van</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Sikertelen művelet</text>
+    <text id="IDS_COM_POP_SAVING_ING">Mentés...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Áttűnés</text>
+    <text id="IDS_COM_BODY_MUSIC">Zenék</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d tétel kijelölve</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Mappát hoz létre?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Törlés sikertelen</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1 tétel kijelölve</text>
+    <text id="IDS_COM_BODY_VIDEO">Videó</text>
+    <text id="IDS_IV_OPT_ZOOM">Nagyítás</text>
+    <text id="IDS_COM_BODY_COPY">Másol</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Írisz</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Diabemutató intervalluma</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Videolejátszó</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Diabemutató</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">másodperc</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Forgatás balra</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Oldal</text>
+    <text id="IDS_COM_POP_COPYING_ING">Másolás...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 másodperc</text>
+    <text id="IDS_COM_POP_PROCESSING">Feldolgozás folyamatban</text>
+    <text id="IDS_COM_BODY_GALLERY">Galéria</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Nincs név</text>
+    <text id="IDS_COM_BODY_IMAGES">Képek</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Áttűnés</text>
+    <text id="IDS_COM_HEADER_EDIT">Szerkeszt</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 másodperc</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Nincs kiválasztott tétel</text>
+    <text id="IDS_COM_POP_DELETED">Törölve</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Törli?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Már létezik. Felülírja?</text>
+    <text id="IDS_COM_POP_DELETING">Törlés...</text>
+    <text id="IDS_COM_POP_DONE">Kész</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 másodperc</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Filmszalag</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Forgatás jobbra</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Ismétlés</text>
+    <text id="IDS_COM_POP_SAVED">Mentve</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Áttűnés</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Véletlen sorrend</text>
+    <text id="IDS_COM_POP_MOVING">Áthelyezés...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Az áthelyezés sikertelen</text>
+    <text id="IDS_COM_BODY_VIDEOS">Videók</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Nem támogatott fájltípus</text>
+    <text id="IDS_COM_BODY_RENAME">Átnevez</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Kész</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Mind kijel.</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Összes album</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Név módosítása</text>
+    <text id="IDS_COM_BODY_MOVE">Áthelyez</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Nem törölhető</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Forgatás jobbra</text>
+    <text id="IDS_IV_BODY_INTERVAL">Intervallum</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Már létezik</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Album létrehozása</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Nincs tétel</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Rács</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">A mentés nem sikerült</text>
+</string_table>
diff --git a/res/hye-AM.xml b/res/hye-AM.xml
new file mode 100644 (file)
index 0000000..f68f465
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Հասել եք նիշերի առավելագույն քանակին</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Սլայդ շոու</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Ֆայլերի առավելագույն քանակը գերազանցվել է</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Սահկահանդեսի ընտրանքները</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Ընտրել բոլորը</text>
+    <text id="IDS_COM_POP_DELETE_Q">Ջնջե՞լ</text>
+    <text id="IDS_COM_BODY_EDIT">Խմբագրել</text>
+    <text id="IDS_COM_BODY_MESSAGE">Հաղորդագրություն</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Բեռնումներ</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Ալբմի անունն արդեն գրծվմ է</text>
+    <text id="IDS_COM_OPT_SAVE">Պահպանել</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 վայրկյան</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Ակտիվացում</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Պտտել ձախ</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 վայրկյան</text>
+    <text id="IDS_COM_BODY_MESSAGES">Հղրդգրթ</text>
+    <text id="IDS_COM_SK_DONE">Պատրաստ</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Հնարավոր չէ վերանվանել</text>
+    <text id="IDS_COM_BODY_EMAIL">Էլ.փոստ</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Անվավեր նիշեր</text>
+    <text id="IDS_COM_POP_MOVED">Տեղափոխված է</text>
+    <text id="IDS_COM_POP_CANCEL">Չեղարկել</text>
+    <text id="IDS_COM_BODY_SELECTED">Ընտրված</text>
+    <text id="IDS_COM_BODY_DELETE">Ջնջել</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Ենթավերնագրեր</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Չեղարկել</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Հասել է նիշերի առավելագույն քանակին (%d)</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Հասել է նիշերի առավելագույն քանակին (%d)</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Սլյդ շոու</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Սլայդ</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Սկսել սլայդերի ցուցադրում</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s-ն արդեն գոյություն ունի</text>
+    <text id="IDS_COM_BODY_LOADING">Բեռնում է...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Ալբոմներ</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Անհնար է վերանվանել: Ալբոմի անունն արդեն գործածվում է</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Գործողությունը ձախողվեց</text>
+    <text id="IDS_COM_POP_SAVING_ING">Պահպանում է...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Փոխանցման էֆեկտ</text>
+    <text id="IDS_COM_BODY_MUSIC">Երաժշտությն</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d տարր է ընտրվել</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Ստեղծե՞լ թղթապանակ</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Ջնջումը ձախողվեց</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1 տարր է ընտրվել</text>
+    <text id="IDS_COM_BODY_VIDEO">Վիդեո</text>
+    <text id="IDS_IV_OPT_ZOOM">Մասշտաբ</text>
+    <text id="IDS_COM_BODY_COPY">Պատճենել</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Ծիածան</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Սահկահանդեսի միջակայքը</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Տեսանվագարկիչ</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Սահկահանդես</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">վայրկյաններ</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Պտտել ձախ</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Էջ</text>
+    <text id="IDS_COM_POP_COPYING_ING">Պատճենում է...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 վայրկյան</text>
+    <text id="IDS_COM_POP_PROCESSING">Ընթացքում է</text>
+    <text id="IDS_COM_BODY_GALLERY">Պատկերասրահ</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Անուն չկա</text>
+    <text id="IDS_COM_BODY_IMAGES">Պատկերներ</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Անհետացող</text>
+    <text id="IDS_COM_HEADER_EDIT">Խմբագրել</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 վայրկյան</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Որևէ տարր ընտրված չէ</text>
+    <text id="IDS_COM_POP_DELETED">Ջնջված է</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Հեռացնե՞լ</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Արդեն գոյություն ունի: Վերագրանցե՞լ</text>
+    <text id="IDS_COM_POP_DELETING">Ջնջվում է...</text>
+    <text id="IDS_COM_POP_DONE">Կատարված է</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3  վայրկյան</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Խցիկի հոլովակ</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Պտտել աջ</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Կրկնել</text>
+    <text id="IDS_COM_POP_SAVED">Պահպանվեց</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Լուծել</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Պատահական</text>
+    <text id="IDS_COM_POP_MOVING">Տեղափոխում...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Տեղափոխումը ձախողվեց</text>
+    <text id="IDS_COM_BODY_VIDEOS">Տեսահոլովակներ</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Ֆայլի չապահովված տիպ</text>
+    <text id="IDS_COM_BODY_RENAME">Վերանվանել</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Ավարտված է</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Ընտրել բլր</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Բոլոր ալբոմները</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Փոխել անունը</text>
+    <text id="IDS_COM_BODY_MOVE">Տեղափոխել</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Անհար է ջնջել</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Պտտել աջ</text>
+    <text id="IDS_IV_BODY_INTERVAL">Դադար</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Արդեն գոյություն ունի</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Ստեղծել ալբոմ</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Տարրեր չկան</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Գալարավարագույր</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Պահպանումը ձախողվեց</text>
+</string_table>
diff --git a/res/isl-IS.xml b/res/isl-IS.xml
new file mode 100644 (file)
index 0000000..32f9bc7
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Hámarksfjölda stafa hefur verið náð</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Glærusýning</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Komið er fram yfir hámarksfjölda skráa</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Stillingar skyggnusýningar</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Velja allt</text>
+    <text id="IDS_COM_POP_DELETE_Q">Á að eyða?</text>
+    <text id="IDS_COM_BODY_EDIT">Breyta</text>
+    <text id="IDS_COM_BODY_MESSAGE">Skilaboð</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Niðurhal</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Heitið er þegar í notkun</text>
+    <text id="IDS_COM_OPT_SAVE">Vista</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 sekúndur</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Virkjun</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Snúið til vinstri</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 sekúndur</text>
+    <text id="IDS_COM_BODY_MESSAGES">Skilaboð</text>
+    <text id="IDS_COM_SK_DONE">Lokið</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Mistókst að breyta heiti</text>
+    <text id="IDS_COM_BODY_EMAIL">Tölvupóstur</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Ógildir stafir</text>
+    <text id="IDS_COM_POP_MOVED">Flutt</text>
+    <text id="IDS_COM_POP_CANCEL">Hætta við</text>
+    <text id="IDS_COM_BODY_SELECTED">Valið</text>
+    <text id="IDS_COM_BODY_DELETE">Eyða</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Texti</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Hætta við</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Hámarkfjölda stafa (%d) hefur verið náð</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Hámarkfjölda stafa (%d) hefur verið náð</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Skyggnur</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Glæra</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Hefja skyggnusýningu</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s er til fyrir</text>
+    <text id="IDS_COM_BODY_LOADING">Hleð...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Möppur</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Mistókst að endurnefna. Heitið er þegar í notkun</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Aðgerð mistókst</text>
+    <text id="IDS_COM_POP_SAVING_ING">Vista...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Skipting</text>
+    <text id="IDS_COM_BODY_MUSIC">Tónlist</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d atriði valin</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Á að búa til möppu?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Ekki tókst að eyða</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1 atriði valið</text>
+    <text id="IDS_COM_BODY_VIDEO">Myndskeið</text>
+    <text id="IDS_IV_OPT_ZOOM">Aðdráttur</text>
+    <text id="IDS_COM_BODY_COPY">Afrita</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Augasteinn</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Tími milli mynda</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Myndspilari</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Skyggnusýning</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">sekúndur</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Snúið til vinstri</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Síða</text>
+    <text id="IDS_COM_POP_COPYING_ING">Afritun stendur yfir...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 sekúndur</text>
+    <text id="IDS_COM_POP_PROCESSING">Vinnsla í gangi...</text>
+    <text id="IDS_COM_BODY_GALLERY">Gallerí</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Ekkert heiti</text>
+    <text id="IDS_COM_BODY_IMAGES">Myndir</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Lækka</text>
+    <text id="IDS_COM_HEADER_EDIT">Breyta</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 sekúndur</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Það eru engir hlutir valdir</text>
+    <text id="IDS_COM_POP_DELETED">Eytt</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Á að fjarlægja?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Er þegar til. Viltu skrifa yfir?</text>
+    <text id="IDS_COM_POP_DELETING">Verið er að eyða...</text>
+    <text id="IDS_COM_POP_DONE">Lokið</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 sekúndur</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Myndarúlla</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Snúið til hægri</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Endurtaka</text>
+    <text id="IDS_COM_POP_SAVED">Vistað</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Leysa upp</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Stokka</text>
+    <text id="IDS_COM_POP_MOVING">Verið er að flytja...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Ekki tókst að flytja</text>
+    <text id="IDS_COM_BODY_VIDEOS">Myndskeið</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Óstudd skráargerð</text>
+    <text id="IDS_COM_BODY_RENAME">Endurnefna</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Lokið</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Velja allt</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Allar plötur</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Breyta heiti</text>
+    <text id="IDS_COM_BODY_MOVE">Færa</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Það er ekki hægt að eyða</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Snúið til hægri</text>
+    <text id="IDS_IV_BODY_INTERVAL">Bil</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Er þegar til</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Búa til albúm</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Engin atriði</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Rimlagardína</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Mistókst að vista</text>
+</string_table>
diff --git a/res/ita-IT.xml b/res/ita-IT.xml
new file mode 100644 (file)
index 0000000..0454e0b
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Raggiunto numero massimo di caratteri</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Presentazione</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Superato numero massimo di file</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Impostazioni presentazione</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Seleziona tutto</text>
+    <text id="IDS_COM_POP_DELETE_Q">Eliminare?</text>
+    <text id="IDS_COM_BODY_EDIT">Modifica</text>
+    <text id="IDS_COM_BODY_MESSAGE">Messaggio</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Download</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Nome album già in uso</text>
+    <text id="IDS_COM_OPT_SAVE">Salva</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 secondi</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Attivazione</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Ruota a sinistra</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 secondi</text>
+    <text id="IDS_COM_BODY_MESSAGES">Messaggi</text>
+    <text id="IDS_COM_SK_DONE">Fatto</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Impossibile rinominare</text>
+    <text id="IDS_COM_BODY_EMAIL">E-mail</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Caratteri non validi</text>
+    <text id="IDS_COM_POP_MOVED">Spostato</text>
+    <text id="IDS_COM_POP_CANCEL">Annulla</text>
+    <text id="IDS_COM_BODY_SELECTED">Selezionato</text>
+    <text id="IDS_COM_BODY_DELETE">Elimina</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Sottotitoli</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Annulla</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Raggiunto numero massimo di caratteri (%d)</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Raggiunto numero massimo di caratteri (%d)</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Present.</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Scorrimento</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Avvia presentazione</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s esiste già</text>
+    <text id="IDS_COM_BODY_LOADING">Caricamento...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Album</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Impossibile rinominare. Nome album già in uso</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Operazione non eseguita</text>
+    <text id="IDS_COM_POP_SAVING_ING">Salvataggio...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Effetto di transizione</text>
+    <text id="IDS_COM_BODY_MUSIC">Musica</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d elementi selezionati</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Creare cartella?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Eliminazione non riuscita</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1 elemento selezionato</text>
+    <text id="IDS_COM_BODY_VIDEO">Video</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoom</text>
+    <text id="IDS_COM_BODY_COPY">Copia</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iride</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Intervallo presentazione</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Lettore video</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Presentazione</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">secondi</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Ruota a sinistra</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Pagina</text>
+    <text id="IDS_COM_POP_COPYING_ING">Copia...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 secondi</text>
+    <text id="IDS_COM_POP_PROCESSING">Elaborazione...</text>
+    <text id="IDS_COM_BODY_GALLERY">Galleria</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Nessun nome</text>
+    <text id="IDS_COM_BODY_IMAGES">Immagini</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Sfumatura</text>
+    <text id="IDS_COM_HEADER_EDIT">Modifica</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 secondi</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Nessun elemento selezionato</text>
+    <text id="IDS_COM_POP_DELETED">Eliminato/i</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Rimuovere?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Già esistente. Sovrascrivere?</text>
+    <text id="IDS_COM_POP_DELETING">Eliminazione...</text>
+    <text id="IDS_COM_POP_DONE">Fatto</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 secondi</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Foto personali</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Ruota a destra</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Ripeti</text>
+    <text id="IDS_COM_POP_SAVED">Salvato</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Dissolvenza</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Riproduzione casuale</text>
+    <text id="IDS_COM_POP_MOVING">Spostamento...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Spostamento non riuscito</text>
+    <text id="IDS_COM_BODY_VIDEOS">Video</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Tipo di file non support.</text>
+    <text id="IDS_COM_BODY_RENAME">Rinomina</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Fatto</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Sel. tutto</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Tutti gli album</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Cambia nome</text>
+    <text id="IDS_COM_BODY_MOVE">Sposta</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Impossibile eliminare</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Ruota a destra</text>
+    <text id="IDS_IV_BODY_INTERVAL">Intervallo</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Già esiste</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Crea album</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Nessun elemento</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Veneziana</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Errore durante il salvataggio</text>
+</string_table>
diff --git a/res/jpn-JP.xml b/res/jpn-JP.xml
new file mode 100644 (file)
index 0000000..0a46aad
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">最大文字数に達しました。</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">スライドショー</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">ファイルの最大件数を超えています。</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">スライドショーの設定</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">全て選択</text>
+    <text id="IDS_COM_POP_DELETE_Q">削除しますか?</text>
+    <text id="IDS_COM_BODY_EDIT">編集</text>
+    <text id="IDS_COM_BODY_MESSAGE">メッセージ</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">ダウンロード</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">アルバム名は既に使用しています。</text>
+    <text id="IDS_COM_OPT_SAVE">保存</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20秒</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">アクティベーション</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">左に回転</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2秒</text>
+    <text id="IDS_COM_BODY_MESSAGES">メッセージ</text>
+    <text id="IDS_COM_SK_DONE">完了</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">名前を変更できません。</text>
+    <text id="IDS_COM_BODY_EMAIL">Eメール</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">無効な文字です。</text>
+    <text id="IDS_COM_POP_MOVED">移動しました。</text>
+    <text id="IDS_COM_POP_CANCEL">キャンセル</text>
+    <text id="IDS_COM_BODY_SELECTED">選択済み</text>
+    <text id="IDS_COM_BODY_DELETE">削除</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">字幕</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">キャンセル</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">最大文字数(%d)に達しました。</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">最大文字数(%d)に達しました。</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">スライドショー</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">スライド</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">スライドショーを開始</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%sは既に存在します。</text>
+    <text id="IDS_COM_BODY_LOADING">読み込み中...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">アルバム</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">名前​を​変更​できません。​アルバム名​は​既に​使用​されて​います</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">操作に失敗しました。</text>
+    <text id="IDS_COM_POP_SAVING_ING">保存中...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">通過効果</text>
+    <text id="IDS_COM_BODY_MUSIC">音楽</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d件選択</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">フォルダを作成しますか?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">削除できませんでした。</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1件選択</text>
+    <text id="IDS_COM_BODY_VIDEO">動画</text>
+    <text id="IDS_IV_OPT_ZOOM">ズーム</text>
+    <text id="IDS_COM_BODY_COPY">コピー</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">アイリス</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">スライドショーの間隔</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">動画</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">スライドショー</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">秒</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">左に回転</text>
+    <text id="IDS_EBOOK_BODY_PAGE">ページ</text>
+    <text id="IDS_COM_POP_COPYING_ING">コピー中...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10秒</text>
+    <text id="IDS_COM_POP_PROCESSING">処理中...</text>
+    <text id="IDS_COM_BODY_GALLERY">ギャラリー</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">名前なし</text>
+    <text id="IDS_COM_BODY_IMAGES">画像</text>
+    <text id="IDS_MEDIABR_BODY_FADE">フェード</text>
+    <text id="IDS_COM_HEADER_EDIT">編集</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5秒</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">アイテムを選択していません。</text>
+    <text id="IDS_COM_POP_DELETED">削除しました。</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">削除しますか?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">同名ファイルがあります。上書きしますか?</text>
+    <text id="IDS_COM_POP_DELETING">削除中...</text>
+    <text id="IDS_COM_POP_DONE">完了</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3秒</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">カメラロール</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">右に回転</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">繰り返し</text>
+    <text id="IDS_COM_POP_SAVED">保存しました。</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">ディゾルブ</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">シャッフル</text>
+    <text id="IDS_COM_POP_MOVING">移動中...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">移動に失敗しました。</text>
+    <text id="IDS_COM_BODY_VIDEOS">動画</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">未対応のファイルです</text>
+    <text id="IDS_COM_BODY_RENAME">名前を変更</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">完了しました。</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">全て選択</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">全アルバム</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">名前を変更</text>
+    <text id="IDS_COM_BODY_MOVE">移動</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">削除できません。</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">右に回転</text>
+    <text id="IDS_IV_BODY_INTERVAL">間隔</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">既に登録されています。</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">アルバム​作成</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">アイテムがありません。</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">ブラインド</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">保存に失敗しました。</text>
+</string_table>
diff --git a/res/kat-GE.xml b/res/kat-GE.xml
new file mode 100644 (file)
index 0000000..d715dee
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">მიღწეულია სიმბოლოების მაქსიმალური რაოდენობა</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">სლაიდშოუ</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">გადაჭარბებულია ფაილების მაქსიმალური რაოდენობა</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">სლაიდ–შოუს პარამეტრები</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">ყველას არჩევა</text>
+    <text id="IDS_COM_POP_DELETE_Q">წაიშალოს?</text>
+    <text id="IDS_COM_BODY_EDIT">შეცვლა</text>
+    <text id="IDS_COM_BODY_MESSAGE">შეტყობინება</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">გადმოწერილები</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">ალბომის სახელი უკვე არის</text>
+    <text id="IDS_COM_OPT_SAVE">შენახვა</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 წამი</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">გააქტიურება</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">მარცხნივ მოტრიალება</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 წამი</text>
+    <text id="IDS_COM_BODY_MESSAGES">შეტყობინებები</text>
+    <text id="IDS_COM_SK_DONE">შესრულდა</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">სახელს ვერ შეცვლით</text>
+    <text id="IDS_COM_BODY_EMAIL">ელ-ფოსტა</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">სიმბოლოები არასწორია</text>
+    <text id="IDS_COM_POP_MOVED">გადატანილია</text>
+    <text id="IDS_COM_POP_CANCEL">გაუქმება</text>
+    <text id="IDS_COM_BODY_SELECTED">შერჩეული</text>
+    <text id="IDS_COM_BODY_DELETE">წაშლა</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">სუბტიტრები</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">გაუქმება</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">მიღწეულია სიმბოლოების მაქსიმალური რაოდენობა (%d)</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">მიღწეულია სიმბოლოების მაქსიმალური რაოდენობა (%d)</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">სლაიდ–შოუ</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">სლაიდი</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">სლაიდშოუს დაწყება</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s უკვე არსებობს</text>
+    <text id="IDS_COM_BODY_LOADING">იტვირთება...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">ალბომები</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">სახელს ვერ შეცვლით. ალბომის სახელი უკვე გამოყენებულია</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">ოპერაცია ვერ შესრულდა</text>
+    <text id="IDS_COM_POP_SAVING_ING">ინახება...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">გადასვლის ეფექტი</text>
+    <text id="IDS_COM_BODY_MUSIC">მუსიკა</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">არჩეულია %d ელემენტი</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">შექმნით საქაღალდეს?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">წაშლა არ მოხერხდა</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">არჩეულია 1 ელემენტი</text>
+    <text id="IDS_COM_BODY_VIDEO">ვიდეო</text>
+    <text id="IDS_IV_OPT_ZOOM">მასშტაბი</text>
+    <text id="IDS_COM_BODY_COPY">ასლი</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">ირისი</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">სლაიდ–შოუს ინტერვალი</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">ვიდეო პლეერი</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">სლაიდ–შოუ</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">წამი</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">მარცხნივ მოტრიალება</text>
+    <text id="IDS_EBOOK_BODY_PAGE">გვერდი</text>
+    <text id="IDS_COM_POP_COPYING_ING">კოპირდება...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 წამი</text>
+    <text id="IDS_COM_POP_PROCESSING">მუშავდება...</text>
+    <text id="IDS_COM_BODY_GALLERY">გალერეა</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">უსახელო</text>
+    <text id="IDS_COM_BODY_IMAGES">გამოსახულებები</text>
+    <text id="IDS_MEDIABR_BODY_FADE">ნელ-ნელა ჩაქრობა</text>
+    <text id="IDS_COM_HEADER_EDIT">შეცვლა</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 წამი</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">ელემენტი არ არის შერჩეული</text>
+    <text id="IDS_COM_POP_DELETED">წაშლილია</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">წაიშალოს?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">უკვე არსებობს. გადავაწერო?</text>
+    <text id="IDS_COM_POP_DELETING">წაშლა...</text>
+    <text id="IDS_COM_POP_DONE">შესრულებულია</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 წამი</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">ვიდეოფრაგმენტი</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">მარჯვნივ მოტრიალება</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">გამეორება</text>
+    <text id="IDS_COM_POP_SAVED">შენახულია</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">თანდათან გაქრობა</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">გადანაცვლება</text>
+    <text id="IDS_COM_POP_MOVING">გადატანა...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">გადატანა ვერ შესრულდა</text>
+    <text id="IDS_COM_BODY_VIDEOS">ვიდეოები</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">ფაილის ტიპი გაუთვალისწინ.</text>
+    <text id="IDS_COM_BODY_RENAME">ხელახლა დასათაურება</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">დასრულდა</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">ყველა</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">ყველა ალბომი</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">სახელის შეცვლა</text>
+    <text id="IDS_COM_BODY_MOVE">გადატანა</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">წაშლა შეუძლებელია</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">მარჯვნივ მოტრიალება</text>
+    <text id="IDS_IV_BODY_INTERVAL">ინტერვალი</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">უკვე არის</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">ალბომის შექმნა</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">ელემენტები არ არის</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">დაბინდვა</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">ვერ შეინახა</text>
+</string_table>
diff --git a/res/kaz-KZ.xml b/res/kaz-KZ.xml
new file mode 100644 (file)
index 0000000..cb945a7
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Таңбалардың ен көп саны артты</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Слайд-шоу</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Ең көп файлдар санынан асып кетті</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Слайдшоу параметрлері</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Бәрін бөлектеу</text>
+    <text id="IDS_COM_POP_DELETE_Q">Өшіресіз бе?</text>
+    <text id="IDS_COM_BODY_EDIT">Өзгерту</text>
+    <text id="IDS_COM_BODY_MESSAGE">Хабарлама</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Жазылған</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Альбом атауы пайдаланылуда</text>
+    <text id="IDS_COM_OPT_SAVE">Сақтау</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 секунд</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Активтеу</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Солға бұру</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 секунд</text>
+    <text id="IDS_COM_BODY_MESSAGES">Хабарламалар</text>
+    <text id="IDS_COM_SK_DONE">Дайын</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Атын өзгерту мүмкін емес</text>
+    <text id="IDS_COM_BODY_EMAIL">Эл. пошта</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Қате әріптер</text>
+    <text id="IDS_COM_POP_MOVED">Орналастырылды</text>
+    <text id="IDS_COM_POP_CANCEL">Тоқтату</text>
+    <text id="IDS_COM_BODY_SELECTED">Таңдалды</text>
+    <text id="IDS_COM_BODY_DELETE">Жою</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Субтитрлер</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Тоқтату</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Ең көп таңбалар санына (%d) жетті</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Ең көп таңбалар санына (%d) жетті</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Слайдшоу</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Слайд</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Слайдшоуды бастау</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s бар</text>
+    <text id="IDS_COM_BODY_LOADING">Жазылуда...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Альбомдар</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Атауын өзгерту мүмкін емес. Альбомның атауы пайдаланылуда</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Әрекет сәтсіз аяқталды</text>
+    <text id="IDS_COM_POP_SAVING_ING">Сақталуда...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Өтпелі әсер</text>
+    <text id="IDS_COM_BODY_MUSIC">Музыка</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d элемент таңдалды</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Қалта құрасыз ба?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Жою үстінде үзіліп кетті</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1 элемент таңдалды</text>
+    <text id="IDS_COM_BODY_VIDEO">Бейне</text>
+    <text id="IDS_IV_OPT_ZOOM">Ауқымы</text>
+    <text id="IDS_COM_BODY_COPY">Көшіру</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Жыланқияқ</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Слайдшоу аралығы</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Бейне ойнатқыш</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Слайдшоу</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">секунд</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Солға бұру</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Бет</text>
+    <text id="IDS_COM_POP_COPYING_ING">Көшірілуде...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 секунд</text>
+    <text id="IDS_COM_POP_PROCESSING">Өңделуде...</text>
+    <text id="IDS_COM_BODY_GALLERY">Галерея</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Ондай есім жоқ</text>
+    <text id="IDS_COM_BODY_IMAGES">Суреттер</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Тегіс пайда болу</text>
+    <text id="IDS_COM_HEADER_EDIT">Өзгерту</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 секунд</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Мазмұны таңдалған жоқ</text>
+    <text id="IDS_COM_POP_DELETED">Жойылды</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Жоясыз ба?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Бар. Қайта жазу керек пе?</text>
+    <text id="IDS_COM_POP_DELETING">Жойылуда...</text>
+    <text id="IDS_COM_POP_DONE">Аяқталды</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 секунд</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Камера білігі</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Оңға бұру</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Қайталау</text>
+    <text id="IDS_COM_POP_SAVED">Сақталған</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Жоқ болу</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Кездейсоқ тәртіп</text>
+    <text id="IDS_COM_POP_MOVING">Орналастырылды</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Орналастырылмады</text>
+    <text id="IDS_COM_BODY_VIDEOS">Бейнежазбалар</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Қолданылмайтын файл түрі</text>
+    <text id="IDS_COM_BODY_RENAME">Атын өзгерту</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Аяқталды</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Барл. таң.</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Барлық альбомдар</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Атын өзгерту</text>
+    <text id="IDS_COM_BODY_MOVE">Орналастыру</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Жою мүмкін емес</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Оңға бұру</text>
+    <text id="IDS_IV_BODY_INTERVAL">Аралық</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Қолданыста бар</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Альбом жасау</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Баптар жоқ</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Көрінбейді</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Сақтау сәтсіз</text>
+</string_table>
diff --git a/res/kor-KR.xml b/res/kor-KR.xml
new file mode 100644 (file)
index 0000000..e17ff69
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">입력 가능한 최대 글자수를 초과하였습니다</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">슬라이드쇼</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">최대 파일 수를 초과하였습니다</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">슬라이드쇼 설정</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">모두 선택</text>
+    <text id="IDS_COM_POP_DELETE_Q">삭제할까요?</text>
+    <text id="IDS_COM_BODY_EDIT">편집</text>
+    <text id="IDS_COM_BODY_MESSAGE">메시지</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">다운로드 관리</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">사용 중인 이름입니다</text>
+    <text id="IDS_COM_OPT_SAVE">저장</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20초</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">실행</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">왼쪽으로 회전</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2초</text>
+    <text id="IDS_COM_BODY_MESSAGES">메시지</text>
+    <text id="IDS_COM_SK_DONE">완료</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">이름을 변경할 수 없습니다</text>
+    <text id="IDS_COM_BODY_EMAIL">이메일</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">글자가 바르지 않습니다</text>
+    <text id="IDS_COM_POP_MOVED">이동되었습니다</text>
+    <text id="IDS_COM_POP_CANCEL">취소</text>
+    <text id="IDS_COM_BODY_SELECTED">단일 선택</text>
+    <text id="IDS_COM_BODY_DELETE">삭제</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">자막</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">취소</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">최대 글자 수(%d개)를 초과하였습니다</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">최대 글자 수(%d개)를 초과하였습니다</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">슬라이드쇼</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">슬라이드</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">슬라이드쇼 시작</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s이(가) 저장되어 있습니다</text>
+    <text id="IDS_COM_BODY_LOADING">로딩 중...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">앨범</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">사용 중인 앨범 이름이므로 변경할 수 없습니다</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">작업을 수행하지 못하였습니다</text>
+    <text id="IDS_COM_POP_SAVING_ING">저장 중...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">전환 효과</text>
+    <text id="IDS_COM_BODY_MUSIC">음악</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d개의 항목이 선택되었습니다</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">폴더를 추가할까요?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">삭제하지 못하였습니다</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1개의 항목이 선택되었습니다</text>
+    <text id="IDS_COM_BODY_VIDEO">동영상</text>
+    <text id="IDS_IV_OPT_ZOOM">확대/축소</text>
+    <text id="IDS_COM_BODY_COPY">복사</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">아이리스</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">슬라이드쇼 전환 간격</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">비디오 플레이어</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">슬라이드쇼</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">초</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">왼쪽으로 회전</text>
+    <text id="IDS_EBOOK_BODY_PAGE">페이지</text>
+    <text id="IDS_COM_POP_COPYING_ING">복사 중...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10초</text>
+    <text id="IDS_COM_POP_PROCESSING">처리 중...</text>
+    <text id="IDS_COM_BODY_GALLERY">갤러리</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">이름이 없습니다</text>
+    <text id="IDS_COM_BODY_IMAGES">이미지</text>
+    <text id="IDS_MEDIABR_BODY_FADE">페이드</text>
+    <text id="IDS_COM_HEADER_EDIT">편집</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5초</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">선택된 항목이 없습니다</text>
+    <text id="IDS_COM_POP_DELETED">삭제되었습니다</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">제거할까요?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">사용 중인 이름입니다. 덮어쓸까요?</text>
+    <text id="IDS_COM_POP_DELETING">삭제 중...</text>
+    <text id="IDS_COM_POP_DONE">완료</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3초</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">카메라 앨범</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">오른쪽으로 회전</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">반복</text>
+    <text id="IDS_COM_POP_SAVED">저장되었습니다</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">디졸브</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">셔플</text>
+    <text id="IDS_COM_POP_MOVING">이동 중...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">이동하지 못하였습니다</text>
+    <text id="IDS_COM_BODY_VIDEOS">동영상</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">지원되지 않는 파일 형식입니다</text>
+    <text id="IDS_COM_BODY_RENAME">이름 변경</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">완료되었습니다</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">모두 선택</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">모든 앨범</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">이름 변경</text>
+    <text id="IDS_COM_BODY_MOVE">이동</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">삭제할 수 없습니다</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">오른쪽으로 회전</text>
+    <text id="IDS_IV_BODY_INTERVAL">간격</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">이미 저장되어 있습니다</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">앨범 추가</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">항목이 없습니다</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">블라인드</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">저장하지 못하였습니다</text>
+</string_table>
diff --git a/res/lav-LV.xml b/res/lav-LV.xml
new file mode 100644 (file)
index 0000000..75f04fa
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Sasniegts maksimālais rakstzīmju skaits</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Slaidrāde</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Pārsniegts maksimālais failu skaits</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Slaidrādes iestatījumi</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Izv. visu</text>
+    <text id="IDS_COM_POP_DELETE_Q">Vai dzēst?</text>
+    <text id="IDS_COM_BODY_EDIT">Rediģēt</text>
+    <text id="IDS_COM_BODY_MESSAGE">Ziņa</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Lejupielādes</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Alb.nosauk. jau tiek liet.</text>
+    <text id="IDS_COM_OPT_SAVE">Saglabāt</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 sekundes</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Aktivizēšana</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Pagriezt pa kreisi</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 sekundes</text>
+    <text id="IDS_COM_BODY_MESSAGES">Ziņas</text>
+    <text id="IDS_COM_SK_DONE">Gatavs</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Nevar pārdēvēt</text>
+    <text id="IDS_COM_BODY_EMAIL">E-pasts</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Nederīgas rakstzīmes</text>
+    <text id="IDS_COM_POP_MOVED">Pārvietots</text>
+    <text id="IDS_COM_POP_CANCEL">Atcelt</text>
+    <text id="IDS_COM_BODY_SELECTED">Izvēlēts</text>
+    <text id="IDS_COM_BODY_DELETE">Dzēst</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Subtitri</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Atcelt</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Sasniegts maksimālais rakstzīmju skaits (%d)</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Sasniegts maksimālais rakstzīmju skaits (%d)</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Slaidrāde</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Slaids</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Sākt slaidrādi</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s jau pastāv</text>
+    <text id="IDS_COM_BODY_LOADING">Ielādē...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albumi</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Nevar pārdēvēt. Albuma nosaukums jau tiek lietots</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Darbība neizdevās</text>
+    <text id="IDS_COM_POP_SAVING_ING">Saglabā...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Pārejas efekts</text>
+    <text id="IDS_COM_BODY_MUSIC">Mūzika</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">Ir izvēlēti %d objekti</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Vai izveidot mapi?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Neizdevās izdzēst</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">Ir izvēlēts 1 objekts</text>
+    <text id="IDS_COM_BODY_VIDEO">Video</text>
+    <text id="IDS_IV_OPT_ZOOM">Tālummaiņa</text>
+    <text id="IDS_COM_BODY_COPY">Kopēt</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Varavīksne</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Slaidrādes intervāls</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Video atskaņotājs</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Slaidrāde</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">sekundes</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Pagriezt pa kreisi</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Lapa</text>
+    <text id="IDS_COM_POP_COPYING_ING">Kopē...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 sekundes</text>
+    <text id="IDS_COM_POP_PROCESSING">Notiek apstrāde...</text>
+    <text id="IDS_COM_BODY_GALLERY">Galerija</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Nav vārda</text>
+    <text id="IDS_COM_BODY_IMAGES">Attēli</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Izgaist</text>
+    <text id="IDS_COM_HEADER_EDIT">Rediģēt</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 sekundes</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Nav izvēlētu objektu</text>
+    <text id="IDS_COM_POP_DELETED">Izdzēsts</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Vai noņemt?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Jau pastāv. Vai pārrakstīt?</text>
+    <text id="IDS_COM_POP_DELETING">Dzēš...</text>
+    <text id="IDS_COM_POP_DONE">Gatavs</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 sekundes</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Kam.fotoatt.rul.</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Pagriezt pa labi</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Atkārtot</text>
+    <text id="IDS_COM_POP_SAVED">Saglabāts</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Izšķīdināt</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Jaukt</text>
+    <text id="IDS_COM_POP_MOVING">Pārvieto...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Pārvietošana neizdevās</text>
+    <text id="IDS_COM_BODY_VIDEOS">Video</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Neatbalstīts faila tips</text>
+    <text id="IDS_COM_BODY_RENAME">Pārdēvēt</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Pabeigts</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Izv. visu</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Visi albumi</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Mainīt vārdu</text>
+    <text id="IDS_COM_BODY_MOVE">Pārvietot</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Nevar izdzēst</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Pagriezt pa labi</text>
+    <text id="IDS_IV_BODY_INTERVAL">Intervāls</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Jau pastāv</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Izveidot albumu</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Nav vienumu</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Aizēnošana</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Saglabāšana neizdevās</text>
+</string_table>
diff --git a/res/lit-LT.xml b/res/lit-LT.xml
new file mode 100644 (file)
index 0000000..fd405be
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Pasiektas didžiausias simbolių skaičius</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Skaidrių demonstravimas</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Viršytas didžiausias leistinas failų skaičius</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Skaidrių rodymo nustatymai</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Pasirinkti viską</text>
+    <text id="IDS_COM_POP_DELETE_Q">Ar trinti?</text>
+    <text id="IDS_COM_BODY_EDIT">Redaguoti</text>
+    <text id="IDS_COM_BODY_MESSAGE">Žinutė</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Atsisiųsti elem.</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Albumo pavadinimas jau yra</text>
+    <text id="IDS_COM_OPT_SAVE">Išsaugoti</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 sekundžių</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Aktyvinimas</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Sukti į kairę</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 sekundės</text>
+    <text id="IDS_COM_BODY_MESSAGES">Žinutės</text>
+    <text id="IDS_COM_SK_DONE">Atlikta</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Neįmanoma pervardinti</text>
+    <text id="IDS_COM_BODY_EMAIL">El. paštas</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Neteisingi simboliai</text>
+    <text id="IDS_COM_POP_MOVED">Perkelta</text>
+    <text id="IDS_COM_POP_CANCEL">Atšaukti</text>
+    <text id="IDS_COM_BODY_SELECTED">Pasirinkta</text>
+    <text id="IDS_COM_BODY_DELETE">Trinti</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Subtitrai</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Atšaukti</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Pasiektas didžiausias simbolių skaičius (%d)</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Pasiektas didžiausias simbolių skaičius (%d)</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Skaid.rod.</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Skaidrė</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Pradėti skaidrių rodymą</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s jau yra</text>
+    <text id="IDS_COM_BODY_LOADING">Įkeliama...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albumai</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Neįmanoma pakeisti pavadinimo. Toks albumo pavadinimas jau yra</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Veiksmas nepavyko</text>
+    <text id="IDS_COM_POP_SAVING_ING">Įrašoma...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Perėjimo efektas</text>
+    <text id="IDS_COM_BODY_MUSIC">Muzika</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">Pasirinkta elementų: %d</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Ar kurti aplanką?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Ištrinti nepavyko</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">Pasirinktas 1 elementas</text>
+    <text id="IDS_COM_BODY_VIDEO">Vaizdo įrašas</text>
+    <text id="IDS_IV_OPT_ZOOM">Mastelio keitimas</text>
+    <text id="IDS_COM_BODY_COPY">Kopijuoti</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Rainelė</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Skaidrių rodymo intervalas</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Vaizdo įrašų leistuvas</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Skaidrių rodymas</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">sekundės</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Sukti į kairę</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Puslapis</text>
+    <text id="IDS_COM_POP_COPYING_ING">Kopijuojama...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 sekundžių</text>
+    <text id="IDS_COM_POP_PROCESSING">Apdorojama...</text>
+    <text id="IDS_COM_BODY_GALLERY">Galerija</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Nėra vardo</text>
+    <text id="IDS_COM_BODY_IMAGES">Vaizdai</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Išblukimas</text>
+    <text id="IDS_COM_HEADER_EDIT">Redaguoti</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 sekundės</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Niekas nepasirinkta</text>
+    <text id="IDS_COM_POP_DELETED">Ištrinta</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Ar šalinti?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Jau yra. Perrašyti?</text>
+    <text id="IDS_COM_POP_DELETING">Trinama...</text>
+    <text id="IDS_COM_POP_DONE">Atlikta</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 sekundės</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Nuotr. rodymas</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Sukti į dešinę</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Kartoti</text>
+    <text id="IDS_COM_POP_SAVED">Išsaugota</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Panaikinti</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Maišyti</text>
+    <text id="IDS_COM_POP_MOVING">Perkeliama...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Perkelti nepavyko</text>
+    <text id="IDS_COM_BODY_VIDEOS">Vaizdo įrašai</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Nepalaikomas failo tipas</text>
+    <text id="IDS_COM_BODY_RENAME">Pervardyti</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Atlikta</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Rin. Viską</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Visi albumai</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Keisti vardą</text>
+    <text id="IDS_COM_BODY_MOVE">Perkelti</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Ištrinti nepavyko</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Sukti į dešinę</text>
+    <text id="IDS_IV_BODY_INTERVAL">Intervalas</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Jau yra</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Sukurti albumą</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Elementų nėra</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Žaliuzės</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Išsaugoti nepavyko</text>
+</string_table>
diff --git a/res/mkd-MK.xml b/res/mkd-MK.xml
new file mode 100644 (file)
index 0000000..99abc99
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Достигнат е максималниот број знаци</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Слајдови</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Максималниот број фајлови е надминат</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Опции за слајдовите</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Избери ги сите</text>
+    <text id="IDS_COM_POP_DELETE_Q">Да се избрише?</text>
+    <text id="IDS_COM_BODY_EDIT">Измени</text>
+    <text id="IDS_COM_BODY_MESSAGE">Порака</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Преземено</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Името на албумот постои</text>
+    <text id="IDS_COM_OPT_SAVE">Сочувај</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 секунди</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Активирање</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Ротирај лево</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 секунди</text>
+    <text id="IDS_COM_BODY_MESSAGES">Пораки</text>
+    <text id="IDS_COM_SK_DONE">Готово</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Не може да се преименува</text>
+    <text id="IDS_COM_BODY_EMAIL">Е-пошта</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Погрешни знаци</text>
+    <text id="IDS_COM_POP_MOVED">Преместено</text>
+    <text id="IDS_COM_POP_CANCEL">Откажи</text>
+    <text id="IDS_COM_BODY_SELECTED">Избраните</text>
+    <text id="IDS_COM_BODY_DELETE">Избриши</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Титли</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Откажи</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Достигнат е максималниот број знаци (%d)</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Достигнат е максималниот број знаци (%d)</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Слајдови</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Слајд</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Почни слајдови</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s веќе постои</text>
+    <text id="IDS_COM_BODY_LOADING">Активирање...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Албуми</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Не може да се преименува. Името на албумот постои</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Неуспешна операција</text>
+    <text id="IDS_COM_POP_SAVING_ING">Се снима...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Премин</text>
+    <text id="IDS_COM_BODY_MUSIC">Музика</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">Избрани се %d записи</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Направи нова папка?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Неуспешно бришење</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">Избран е 1 запис</text>
+    <text id="IDS_COM_BODY_VIDEO">Видео-запис</text>
+    <text id="IDS_IV_OPT_ZOOM">Зголемено</text>
+    <text id="IDS_COM_BODY_COPY">Копирај</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Зеница</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Период на слајдовите</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Видео-плеер</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Слајдови</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">секунди</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Ротирај лево</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Страна</text>
+    <text id="IDS_COM_POP_COPYING_ING">Се копира...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 секунди</text>
+    <text id="IDS_COM_POP_PROCESSING">Обработување...</text>
+    <text id="IDS_COM_BODY_GALLERY">Галерија</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Нема име</text>
+    <text id="IDS_COM_BODY_IMAGES">Слики</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Затемнување</text>
+    <text id="IDS_COM_HEADER_EDIT">Измени</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 секунди</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Не се избрани содржини</text>
+    <text id="IDS_COM_POP_DELETED">Избришано</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Отстрани?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Веќе постои. Пресними?</text>
+    <text id="IDS_COM_POP_DELETING">Се брише...</text>
+    <text id="IDS_COM_POP_DONE">Извршено</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 секунди</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Ролна на камера</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Ротирај десно</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Повторување</text>
+    <text id="IDS_COM_POP_SAVED">Меморирано</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Растворање</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Произволно</text>
+    <text id="IDS_COM_POP_MOVING">Се преместува...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Неуспешно преместување</text>
+    <text id="IDS_COM_BODY_VIDEOS">Видео-записи</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Неподдржан вид фајл</text>
+    <text id="IDS_COM_BODY_RENAME">Преименувај</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Завршено</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Изб. сите</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Сите албуми</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Смени име</text>
+    <text id="IDS_COM_BODY_MOVE">Премести</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Не може да се избрише</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Ротирај десно</text>
+    <text id="IDS_IV_BODY_INTERVAL">Интервал</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Веќе постои</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Нов албум</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Нема записи</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Ролетна</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Неуспешно снимање</text>
+</string_table>
diff --git a/res/nld-NL.xml b/res/nld-NL.xml
new file mode 100644 (file)
index 0000000..c8b65d3
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Maximumaantal tekens bereikt</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Diapresentatie</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Maximumaantal bestanden overschreden</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Instellingen diashow</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Alles selecteren</text>
+    <text id="IDS_COM_POP_DELETE_Q">Verwijderen?</text>
+    <text id="IDS_COM_BODY_EDIT">Bewerken</text>
+    <text id="IDS_COM_BODY_MESSAGE">Bericht</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Downloads</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Albumnaam al in gebruik</text>
+    <text id="IDS_COM_OPT_SAVE">Opslaan</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 seconden</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Inschakelen</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Linksom draaien</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 seconden</text>
+    <text id="IDS_COM_BODY_MESSAGES">Berichten</text>
+    <text id="IDS_COM_SK_DONE">Gereed</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Kan de naam niet wijzigen</text>
+    <text id="IDS_COM_BODY_EMAIL">E-mail</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Ongeldige tekens</text>
+    <text id="IDS_COM_POP_MOVED">Verplaatst</text>
+    <text id="IDS_COM_POP_CANCEL">Annuleren</text>
+    <text id="IDS_COM_BODY_SELECTED">Geselecteerd</text>
+    <text id="IDS_COM_BODY_DELETE">Wissen</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Ondertitels</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Annuleren</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Maximumaantal tekens (%d) bereikt</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Maximumaantal tekens (%d) bereikt</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Diashow</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Pictogram</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Diashow starten</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s bestaat al</text>
+    <text id="IDS_COM_BODY_LOADING">Laden...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albums</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Kan de naam niet wijzigen. Albumnaam al in gebruik</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Bewerking is mislukt</text>
+    <text id="IDS_COM_POP_SAVING_ING">Opslaan...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Overgangseffect</text>
+    <text id="IDS_COM_BODY_MUSIC">Muziek</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d items geselecteerd</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Map maken?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Verwijderen mislukt</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1 item geselecteerd</text>
+    <text id="IDS_COM_BODY_VIDEO">Video</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoomen</text>
+    <text id="IDS_COM_BODY_COPY">Kopiëren</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Interval diashow</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Videospeler</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Diashow</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">seconden</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Linksom draaien</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Pagina</text>
+    <text id="IDS_COM_POP_COPYING_ING">Kopiëren...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 seconden</text>
+    <text id="IDS_COM_POP_PROCESSING">Verwerken...</text>
+    <text id="IDS_COM_BODY_GALLERY">Galerij</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Geen naam</text>
+    <text id="IDS_COM_BODY_IMAGES">Afbeeldingen</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Uitvloeien</text>
+    <text id="IDS_COM_HEADER_EDIT">Bewerken</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 seconden</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Geen items geselecteerd</text>
+    <text id="IDS_COM_POP_DELETED">Verwijderd</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Verwijderen?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Bestaat al. Overschrijven?</text>
+    <text id="IDS_COM_POP_DELETING">Verwijderen...</text>
+    <text id="IDS_COM_POP_DONE">Gereed</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 seconden</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Camerarol</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Rechtsom draaien</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Herhalen</text>
+    <text id="IDS_COM_POP_SAVED">Opgeslagen</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Oplossen</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Willekeurig</text>
+    <text id="IDS_COM_POP_MOVING">Verplaatsen...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Verplaatsen is mislukt</text>
+    <text id="IDS_COM_BODY_VIDEOS">Video's</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Niet-onderst. bestandtype</text>
+    <text id="IDS_COM_BODY_RENAME">Naam wijzigen</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Voltooid</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Alles sel.</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Alle albums</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Naam wijzigen</text>
+    <text id="IDS_COM_BODY_MOVE">Verplaatsen</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Kan niet verwijderen</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Rechtsom draaien</text>
+    <text id="IDS_IV_BODY_INTERVAL">Interval</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Bestaat al</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Album maken</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Geen items</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Jaloezie</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Opslaan mislukt</text>
+</string_table>
diff --git a/res/nob-NO.xml b/res/nob-NO.xml
new file mode 100644 (file)
index 0000000..3bb6b9c
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Nådd maksimalt antall tegn</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Bildefremvisning</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Maks. antall filer overskredet</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Bildefremvisninginnstillinger</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Merk alt</text>
+    <text id="IDS_COM_POP_DELETE_Q">Slette?</text>
+    <text id="IDS_COM_BODY_EDIT">Rediger</text>
+    <text id="IDS_COM_BODY_MESSAGE">Melding</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Nedlastinger</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Albumnavn allerede i bruk</text>
+    <text id="IDS_COM_OPT_SAVE">Lagre</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 sekunder</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Aktivering</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Roter mot klokken</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 sekunder</text>
+    <text id="IDS_COM_BODY_MESSAGES">Meldinger</text>
+    <text id="IDS_COM_SK_DONE">Utført</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Kan ikke gi nytt navn</text>
+    <text id="IDS_COM_BODY_EMAIL">E-post</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Ugyldige tegn</text>
+    <text id="IDS_COM_POP_MOVED">Flyttet</text>
+    <text id="IDS_COM_POP_CANCEL">Avbryt</text>
+    <text id="IDS_COM_BODY_SELECTED">Valgt</text>
+    <text id="IDS_COM_BODY_DELETE">Slett</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Undertekster</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Avbryt</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Maksimalt antall tegn (%d) er nådd</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Maksimalt antall tegn (%d) er nådd</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Bildevisn</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Lysbilde</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Start bildefremvisning</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s finnes allerede</text>
+    <text id="IDS_COM_BODY_LOADING">Åpner...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Album</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Kan ikke gi nytt navn. Albumnavnet er allerede i bruk</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Operasjonen mislyktes</text>
+    <text id="IDS_COM_POP_SAVING_ING">Lagrer...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Overgangseffekt</text>
+    <text id="IDS_COM_BODY_MUSIC">Musikk</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d elementer valgt</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Opprette mappe?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Kunne ikke slette</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1 element valgt</text>
+    <text id="IDS_COM_BODY_VIDEO">Videoklipp</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoom</text>
+    <text id="IDS_COM_BODY_COPY">Kopier</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Bildefremvisningsintervall</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Videospiller</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Bildefremvisning</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">sekunder</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Roter mot klokken</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Side</text>
+    <text id="IDS_COM_POP_COPYING_ING">Kopierer...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 sekunder</text>
+    <text id="IDS_COM_POP_PROCESSING">Behandler...</text>
+    <text id="IDS_COM_BODY_GALLERY">Galleri</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Ingen navn</text>
+    <text id="IDS_COM_BODY_IMAGES">Bilder</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Fade</text>
+    <text id="IDS_COM_HEADER_EDIT">Rediger</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 sekunder</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Det er ikke valgt noen elementer</text>
+    <text id="IDS_COM_POP_DELETED">Slettet</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Fjerne?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Finnes allerede. Vil du overskrive?</text>
+    <text id="IDS_COM_POP_DELETING">Sletter...</text>
+    <text id="IDS_COM_POP_DONE">Utført</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 sekunder</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Kamerabilder</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Roter med klokken</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Gjenta</text>
+    <text id="IDS_COM_POP_SAVED">Lagret</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Oppløs</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Tilfeldig avspilling</text>
+    <text id="IDS_COM_POP_MOVING">Flytter...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Flyttingen mislyktes</text>
+    <text id="IDS_COM_BODY_VIDEOS">Videoklipp</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Filtypen støttes ikke</text>
+    <text id="IDS_COM_BODY_RENAME">Endre navn</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Fullført</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Velg alle</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Alle album</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Endre navn</text>
+    <text id="IDS_COM_BODY_MOVE">Flytt</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Kan ikke slette</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Roter med klokken</text>
+    <text id="IDS_IV_BODY_INTERVAL">Intervall</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Finnes allerede</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Lag album</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Ingen elementer</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Persienne</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Kunne ikke lagre</text>
+</string_table>
diff --git a/res/pol-PL.xml b/res/pol-PL.xml
new file mode 100644 (file)
index 0000000..c848cca
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Osiągnięto maksymalną liczbę znaków</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Pokaz slajdów</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Przekroczono maksymalną liczbę plików</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Ustawienia pokazu slajdów</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Zaznacz wszystko</text>
+    <text id="IDS_COM_POP_DELETE_Q">Usunąć?</text>
+    <text id="IDS_COM_BODY_EDIT">Edytuj</text>
+    <text id="IDS_COM_BODY_MESSAGE">Wiadomość</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Pobrane</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Nazwa albumu już w użyciu</text>
+    <text id="IDS_COM_OPT_SAVE">Zapisz</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 sek.</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Aktywacja</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Obróć w lewo</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 sek.</text>
+    <text id="IDS_COM_BODY_MESSAGES">Wiadomości</text>
+    <text id="IDS_COM_SK_DONE">Gotowe</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Nie można zmienić nazwy</text>
+    <text id="IDS_COM_BODY_EMAIL">E-mail</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Nieprawidłowe znaki</text>
+    <text id="IDS_COM_POP_MOVED">Przeniesiono</text>
+    <text id="IDS_COM_POP_CANCEL">Anuluj</text>
+    <text id="IDS_COM_BODY_SELECTED">Wybrany</text>
+    <text id="IDS_COM_BODY_DELETE">Usuń</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Napisy</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Anuluj</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Osiągnięto maksymalną liczbę znaków (%d)</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Osiągnięto maksymalną liczbę znaków (%d)</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Pok. slajd</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Slajd</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Rozpocznij pokaz slajdów</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s już istnieje</text>
+    <text id="IDS_COM_BODY_LOADING">Ładuję...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albumy</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Nie można zmienić nazwy. Nazwa albumu już w użyciu</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Operacja nie powiodła się</text>
+    <text id="IDS_COM_POP_SAVING_ING">Zapisywanie...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Efekt przejścia menu</text>
+    <text id="IDS_COM_BODY_MUSIC">Muzyka</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">Wybrane elementy: %d</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Utworzyć katalog ?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Błąd usuwania</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">Wybrane elementy: 1</text>
+    <text id="IDS_COM_BODY_VIDEO">Film</text>
+    <text id="IDS_IV_OPT_ZOOM">Powiększenie</text>
+    <text id="IDS_COM_BODY_COPY">Kopiuj</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Koło</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Czas wyświetlania slajdów</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Odtwarzacz wideo</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Pokaz slajdów</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">s</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Obróć w lewo</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Strony</text>
+    <text id="IDS_COM_POP_COPYING_ING">Kopiowanie...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 sek.</text>
+    <text id="IDS_COM_POP_PROCESSING">Przetwarzanie...</text>
+    <text id="IDS_COM_BODY_GALLERY">Galeria</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Bez nazwy</text>
+    <text id="IDS_COM_BODY_IMAGES">Obrazy</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Zanikanie</text>
+    <text id="IDS_COM_HEADER_EDIT">Edytuj</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 sek.</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Nie wybrano elementów</text>
+    <text id="IDS_COM_POP_DELETED">Usunięto</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Usunąć?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Już istnieje. Zamienić?</text>
+    <text id="IDS_COM_POP_DELETING">Usuwanie...</text>
+    <text id="IDS_COM_POP_DONE">Gotowe</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 sek.</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Rolka aparatu</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Obróć w prawo</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Powtórz</text>
+    <text id="IDS_COM_POP_SAVED">Zapisano</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Przenikanie</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Kolejność losowa</text>
+    <text id="IDS_COM_POP_MOVING">Przenoszenie...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Błąd przenoszenia</text>
+    <text id="IDS_COM_BODY_VIDEOS">Filmy</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Nieobsługiwany typ pliku</text>
+    <text id="IDS_COM_BODY_RENAME">Zmień nazwę</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Zakończono</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Zazn. wsz.</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Wszystkie albumy</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Zmień nazwę</text>
+    <text id="IDS_COM_BODY_MOVE">Przenieś</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Nie można usunąć</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Obróć w prawo</text>
+    <text id="IDS_IV_BODY_INTERVAL">Okres</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Już istnieje</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Utwórz album</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Brak elementów</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Zasłona</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Błąd zapisywania</text>
+</string_table>
diff --git a/res/por-BR.xml b/res/por-BR.xml
new file mode 100644 (file)
index 0000000..5c8140f
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Número máximo de caracteres atingido</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Exibição de slides</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Número máximo de arquivos excedido</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Configurações da apresentação de slides</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Selecionar tudo</text>
+    <text id="IDS_COM_POP_DELETE_Q">Apagar?</text>
+    <text id="IDS_COM_BODY_EDIT">Editar</text>
+    <text id="IDS_COM_BODY_MESSAGE">Mensagem</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Downloads</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Nome de álbum existente</text>
+    <text id="IDS_COM_OPT_SAVE">Salvar</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 segundos</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Ativação</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Girar para a esquerda</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 segundos</text>
+    <text id="IDS_COM_BODY_MESSAGES">Mensagens</text>
+    <text id="IDS_COM_SK_DONE">Concluído</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Impossível renomear</text>
+    <text id="IDS_COM_BODY_EMAIL">E-mail</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Caracteres inválidos</text>
+    <text id="IDS_COM_POP_MOVED">Movido</text>
+    <text id="IDS_COM_POP_CANCEL">Cancelar</text>
+    <text id="IDS_COM_BODY_SELECTED">Selecionado</text>
+    <text id="IDS_COM_BODY_DELETE">Apagar</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Legendas</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Cancelar</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Número máximo de caracteres (%d) atingido</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Número máximo de caracteres (%d) atingido</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Ver slides</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Transição</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Iniciar apresentação de slides</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s já existente</text>
+    <text id="IDS_COM_BODY_LOADING">Carregando...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Álbuns</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Impossível renomear. Nome de álbum já utilizado</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Operação falhou</text>
+    <text id="IDS_COM_POP_SAVING_ING">Salvando...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Efeito de transição</text>
+    <text id="IDS_COM_BODY_MUSIC">Músicas</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d itens selecionados</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">criar pasta?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Erro ao apagar</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1 item selecionado</text>
+    <text id="IDS_COM_BODY_VIDEO">Vídeo</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoom</text>
+    <text id="IDS_COM_BODY_COPY">Copiar</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Intervalo da apresentação de slides</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Video Player</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Apresentação de slides</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">segundos</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Girar para a esquerda</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Página</text>
+    <text id="IDS_COM_POP_COPYING_ING">Copiando...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 segundos</text>
+    <text id="IDS_COM_POP_PROCESSING">Processando…</text>
+    <text id="IDS_COM_BODY_GALLERY">Galeria</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Sem nome</text>
+    <text id="IDS_COM_BODY_IMAGES">Imagens</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Desbotar</text>
+    <text id="IDS_COM_HEADER_EDIT">Editar</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 segundos</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Sem itens selecionados</text>
+    <text id="IDS_COM_POP_DELETED">Apagado</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Remover?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Já existe. Substituir?</text>
+    <text id="IDS_COM_POP_DELETING">Apagando…</text>
+    <text id="IDS_COM_POP_DONE">Concluído</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 segundos</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Giro da câmera</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Girar para a direita</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Repetir</text>
+    <text id="IDS_COM_POP_SAVED">Salvo</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Dissolver</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Modo aleatório</text>
+    <text id="IDS_COM_POP_MOVING">Movendo…</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Erro ao mover</text>
+    <text id="IDS_COM_BODY_VIDEOS">Vídeos</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Tipo de arq. não suportado</text>
+    <text id="IDS_COM_BODY_RENAME">Renomear</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Concluído</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Sel. Tudo</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Todos os álbuns</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Alterar nome</text>
+    <text id="IDS_COM_BODY_MOVE">Mover</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Impossível apagar</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Girar para a direita</text>
+    <text id="IDS_IV_BODY_INTERVAL">Intervalo</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Já existe</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Criar álbum</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Sem itens</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Persiana</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Erro ao salvar</text>
+</string_table>
diff --git a/res/por-PT.xml b/res/por-PT.xml
new file mode 100644 (file)
index 0000000..fa9f2fd
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Número máximo de caracteres atingido.</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Apresentação de slides</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Número máximo de ficheiros excedido</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Definições da apresentação de slides</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Seleccionar tudo</text>
+    <text id="IDS_COM_POP_DELETE_Q">Eliminar?</text>
+    <text id="IDS_COM_BODY_EDIT">Editar</text>
+    <text id="IDS_COM_BODY_MESSAGE">Mensagem</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Transferências</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Nome de álbum já utilizado</text>
+    <text id="IDS_COM_OPT_SAVE">Guardar</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 segundos</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Activação</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Rodar para a esquerda</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 segundos</text>
+    <text id="IDS_COM_BODY_MESSAGES">Mensagem</text>
+    <text id="IDS_COM_SK_DONE">Concluído</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Impossível mudar nome</text>
+    <text id="IDS_COM_BODY_EMAIL">E-mail</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Caracteres inválidos</text>
+    <text id="IDS_COM_POP_MOVED">Movido</text>
+    <text id="IDS_COM_POP_CANCEL">Cancelar</text>
+    <text id="IDS_COM_BODY_SELECTED">Seleccionado</text>
+    <text id="IDS_COM_BODY_DELETE">Eliminar</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Legendas</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Cancelar</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Número máximo de caracteres (%d) atingido</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Número máximo de caracteres (%d) atingido</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Diaporama</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Slide</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Iniciar apresentação de slides</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s já existente</text>
+    <text id="IDS_COM_BODY_LOADING">A carregar...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Álbuns</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Impossível mudar o nome. Nome de álbum já utilizado</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Operação falhou</text>
+    <text id="IDS_COM_POP_SAVING_ING">A guardar...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Efeito de transição</text>
+    <text id="IDS_COM_BODY_MUSIC">Música</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d itens seleccionados</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Criar pasta?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Falha ao apagar</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1 item seleccionado</text>
+    <text id="IDS_COM_BODY_VIDEO">Vídeo</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoom</text>
+    <text id="IDS_COM_BODY_COPY">Copiar</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Íris</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Duração da apresentação</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Leitor de Vídeo</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Apresentação de slides</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">segundos</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Rodar para a esquerda</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Página</text>
+    <text id="IDS_COM_POP_COPYING_ING">A copiar...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 segundos</text>
+    <text id="IDS_COM_POP_PROCESSING">A processar...</text>
+    <text id="IDS_COM_BODY_GALLERY">Galeria</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Sem nome</text>
+    <text id="IDS_COM_BODY_IMAGES">Imagens</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Saída gradual</text>
+    <text id="IDS_COM_HEADER_EDIT">Editar</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 segundos</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Sem itens seleccionados</text>
+    <text id="IDS_COM_POP_DELETED">Eliminado</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Remover?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Já existe. Substituir?</text>
+    <text id="IDS_COM_POP_DELETING">A eliminar...</text>
+    <text id="IDS_COM_POP_DONE">Concluído</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 segundos</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Rolo da câmara</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Rodar para a direita</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Repetir</text>
+    <text id="IDS_COM_POP_SAVED">Guardado</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Dissolver</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Aleatório</text>
+    <text id="IDS_COM_POP_MOVING">A mover...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Falha ao mover</text>
+    <text id="IDS_COM_BODY_VIDEOS">Vídeos</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Tipo fich. não suportado</text>
+    <text id="IDS_COM_BODY_RENAME">Mudar nome</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Concluída</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Selec. tudo</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Todos os álbuns</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Alterar nome</text>
+    <text id="IDS_COM_BODY_MOVE">Mover</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Impossível apagar.</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Rodar para a direita</text>
+    <text id="IDS_IV_BODY_INTERVAL">Intervalo</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Já existe</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Criar álbum</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Sem itens</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Persiana</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Falha ao gravar</text>
+</string_table>
diff --git a/res/ron-RO.xml b/res/ron-RO.xml
new file mode 100644 (file)
index 0000000..d70d126
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Adăugare la marcaje</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Expuneri diapozitive</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Numărul maxim de fişiere a fost depăşit</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Setări expunere diapozitive</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Selectare toate</text>
+    <text id="IDS_COM_POP_DELETE_Q">Ştergeţi?</text>
+    <text id="IDS_COM_BODY_EDIT">Editare</text>
+    <text id="IDS_COM_BODY_MESSAGE">Mesaj</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Descărcări</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Numele este deja în uz</text>
+    <text id="IDS_COM_OPT_SAVE">Salvare</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 secunde</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Activare</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Rotire stânga</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 secunde</text>
+    <text id="IDS_COM_BODY_MESSAGES">Mesaje</text>
+    <text id="IDS_COM_SK_DONE">Gata</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Imposibil de redenumit</text>
+    <text id="IDS_COM_BODY_EMAIL">Email</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Caractere nevalide</text>
+    <text id="IDS_COM_POP_MOVED">Mutat</text>
+    <text id="IDS_COM_POP_CANCEL">Anulare</text>
+    <text id="IDS_COM_BODY_SELECTED">Selectat</text>
+    <text id="IDS_COM_BODY_DELETE">Ştergere</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Subtitrare</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Anulare</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Numărul maxim de caractere (%d) a fost atins</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Numărul maxim de caractere (%d) a fost atins</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Ex. diap.</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Diapozitiv</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Începere expunere de diapozitive</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s există deja</text>
+    <text id="IDS_COM_BODY_LOADING">Încărcare...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albume</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Imposibil de redenumit. Numele albumului este deja în uz</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Operaţie nereuşită</text>
+    <text id="IDS_COM_POP_SAVING_ING">Se salvează...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Efect de tranziţie</text>
+    <text id="IDS_COM_BODY_MUSIC">Muzică</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d elemente selectate</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Creaţi folder?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Ştergerea nu a reuşit</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1 element selectat</text>
+    <text id="IDS_COM_BODY_VIDEO">Videoclip</text>
+    <text id="IDS_IV_OPT_ZOOM">Panoramare</text>
+    <text id="IDS_COM_BODY_COPY">Copiere</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Curcubeu</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Interval expunere diapozitive</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Player video</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Expunere diapozitive</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">secunde</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Rotire stânga</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Pagină</text>
+    <text id="IDS_COM_POP_COPYING_ING">Copiere...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 secunde</text>
+    <text id="IDS_COM_POP_PROCESSING">Se procesează...</text>
+    <text id="IDS_COM_BODY_GALLERY">Galerie</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Nici un nume</text>
+    <text id="IDS_COM_BODY_IMAGES">Imagini</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Estompare</text>
+    <text id="IDS_COM_HEADER_EDIT">Editare</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 secunde</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Niciun element selectat</text>
+    <text id="IDS_COM_POP_DELETED">Şters</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Eliminare?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Există deja. Suprascrieţi?</text>
+    <text id="IDS_COM_POP_DELETING">Se şterge...</text>
+    <text id="IDS_COM_POP_DONE">Efectuat</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 secunde</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Capturi cameră</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Rotire dreapta</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Repetare</text>
+    <text id="IDS_COM_POP_SAVED">Salvat</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Dizolvare</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Amestecare</text>
+    <text id="IDS_COM_POP_MOVING">Mutare</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Mutarea nu a reuşit</text>
+    <text id="IDS_COM_BODY_VIDEOS">Videoclipuri</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Tip de fişier neacceptat</text>
+    <text id="IDS_COM_BODY_RENAME">Redenumire</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Finalizat</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Sel. int.</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Toate albumele</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Schimbare nume</text>
+    <text id="IDS_COM_BODY_MOVE">Mutare</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Imposibil de şters</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Rotire dreapta</text>
+    <text id="IDS_IV_BODY_INTERVAL">Interval</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Există deja</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Creare album</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Niciun element</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Jaluzele</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Salvare nereuşită</text>
+</string_table>
diff --git a/res/rus-RU.xml b/res/rus-RU.xml
new file mode 100644 (file)
index 0000000..812d3bd
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Достигнуто максимальное число символов</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Слайд-шоу</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Превышено максимальное число файлов</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Параметры</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Выбрать все</text>
+    <text id="IDS_COM_POP_DELETE_Q">Удалить?</text>
+    <text id="IDS_COM_BODY_EDIT">Изменить</text>
+    <text id="IDS_COM_BODY_MESSAGE">Сообщение</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Загрузки</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Имя альбома используется</text>
+    <text id="IDS_COM_OPT_SAVE">Соxранить</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 секунд</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Активация</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Повернуть влево</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 секунды</text>
+    <text id="IDS_COM_BODY_MESSAGES">Сообщения</text>
+    <text id="IDS_COM_SK_DONE">Готово</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Невозможно переименовать</text>
+    <text id="IDS_COM_BODY_EMAIL">E-mail</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Недопустимые символы</text>
+    <text id="IDS_COM_POP_MOVED">Перемещено</text>
+    <text id="IDS_COM_POP_CANCEL">Отмена</text>
+    <text id="IDS_COM_BODY_SELECTED">Выбрано</text>
+    <text id="IDS_COM_BODY_DELETE">Удалить</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Субтитры</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Отмена</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Достигнуто максимальное число символов (%d)</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Достигнуто максимальное число символов (%d)</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Слайд-шоу</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Слайд-шоу</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Запустить</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s уже существует</text>
+    <text id="IDS_COM_BODY_LOADING">Загрузка...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Альбомы</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Невозможно переименовать. Имя альбома уже используется</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Сбой операции</text>
+    <text id="IDS_COM_POP_SAVING_ING">Сохранение...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Эффект перехода</text>
+    <text id="IDS_COM_BODY_MUSIC">Музыка</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">Выбрано элементов: %d</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Создать папку?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Сбой удаления</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">Выбран 1 элемент</text>
+    <text id="IDS_COM_BODY_VIDEO">Видео</text>
+    <text id="IDS_IV_OPT_ZOOM">Масштаб</text>
+    <text id="IDS_COM_BODY_COPY">Копировать</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Радуга</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Интервал для слайд-шоу</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Видео\nплеер</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Слайд-шоу</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">сек.</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Повернуть влево</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Страница</text>
+    <text id="IDS_COM_POP_COPYING_ING">Копирование...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 секунд</text>
+    <text id="IDS_COM_POP_PROCESSING">Обработка...</text>
+    <text id="IDS_COM_BODY_GALLERY">Галерея</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Нет имени</text>
+    <text id="IDS_COM_BODY_IMAGES">Картинки</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Растворение</text>
+    <text id="IDS_COM_HEADER_EDIT">Изменить</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 секунд</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Элементы не выбраны</text>
+    <text id="IDS_COM_POP_DELETED">Удалено</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Удалить?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Уже существует. Перезаписать?</text>
+    <text id="IDS_COM_POP_DELETING">Удаление...</text>
+    <text id="IDS_COM_POP_DONE">Готово</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 секунды</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Каталог фото</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Повернуть вправо</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Повторить</text>
+    <text id="IDS_COM_POP_SAVED">Соxранено</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Растворение</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Случайный порядок</text>
+    <text id="IDS_COM_POP_MOVING">Перемещение...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Сбой перемещения</text>
+    <text id="IDS_COM_BODY_VIDEOS">Видео</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Неподдерживаемый тип файла</text>
+    <text id="IDS_COM_BODY_RENAME">Переименовать</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Завершено</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Выбр. все</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Все альбомы</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Изменить имя</text>
+    <text id="IDS_COM_BODY_MOVE">Переместить</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Невозможно удалить</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Повернуть вправо</text>
+    <text id="IDS_IV_BODY_INTERVAL">Интервал</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Уже существует</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Создать альбом</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Нет элементов</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Жалюзи</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Сбой сохранения</text>
+</string_table>
diff --git a/res/screen-density-xhigh/00_button_radio.png b/res/screen-density-xhigh/00_button_radio.png
new file mode 100644 (file)
index 0000000..83a1a54
Binary files /dev/null and b/res/screen-density-xhigh/00_button_radio.png differ
diff --git a/res/screen-density-xhigh/00_button_radio_selected.png b/res/screen-density-xhigh/00_button_radio_selected.png
new file mode 100644 (file)
index 0000000..aa2a5c1
Binary files /dev/null and b/res/screen-density-xhigh/00_button_radio_selected.png differ
diff --git a/res/screen-density-xhigh/00_circle_button_Expand_closed.png b/res/screen-density-xhigh/00_circle_button_Expand_closed.png
new file mode 100644 (file)
index 0000000..83e6762
Binary files /dev/null and b/res/screen-density-xhigh/00_circle_button_Expand_closed.png differ
diff --git a/res/screen-density-xhigh/00_circle_button_Expand_open.png b/res/screen-density-xhigh/00_circle_button_Expand_open.png
new file mode 100644 (file)
index 0000000..85e99f9
Binary files /dev/null and b/res/screen-density-xhigh/00_circle_button_Expand_open.png differ
diff --git a/res/screen-density-xhigh/00_icon_more_dim.png b/res/screen-density-xhigh/00_icon_more_dim.png
new file mode 100644 (file)
index 0000000..cd80dce
Binary files /dev/null and b/res/screen-density-xhigh/00_icon_more_dim.png differ
diff --git a/res/screen-density-xhigh/00_icon_more_press.png b/res/screen-density-xhigh/00_icon_more_press.png
new file mode 100644 (file)
index 0000000..2e0c742
Binary files /dev/null and b/res/screen-density-xhigh/00_icon_more_press.png differ
diff --git a/res/screen-density-xhigh/00_icon_select_all_press_web.png b/res/screen-density-xhigh/00_icon_select_all_press_web.png
new file mode 100644 (file)
index 0000000..57e1eed
Binary files /dev/null and b/res/screen-density-xhigh/00_icon_select_all_press_web.png differ
diff --git a/res/screen-density-xhigh/00_icon_select_all_web.png b/res/screen-density-xhigh/00_icon_select_all_web.png
new file mode 100644 (file)
index 0000000..56e3fbb
Binary files /dev/null and b/res/screen-density-xhigh/00_icon_select_all_web.png differ
diff --git a/res/screen-density-xhigh/00_list_expand_closed.png b/res/screen-density-xhigh/00_list_expand_closed.png
new file mode 100644 (file)
index 0000000..a3f639e
Binary files /dev/null and b/res/screen-density-xhigh/00_list_expand_closed.png differ
diff --git a/res/screen-density-xhigh/00_list_expand_closed_press.png b/res/screen-density-xhigh/00_list_expand_closed_press.png
new file mode 100644 (file)
index 0000000..b421ad1
Binary files /dev/null and b/res/screen-density-xhigh/00_list_expand_closed_press.png differ
diff --git a/res/screen-density-xhigh/00_list_expand_opened.png b/res/screen-density-xhigh/00_list_expand_opened.png
new file mode 100644 (file)
index 0000000..377dbc9
Binary files /dev/null and b/res/screen-density-xhigh/00_list_expand_opened.png differ
diff --git a/res/screen-density-xhigh/00_list_expand_opened_press.png b/res/screen-density-xhigh/00_list_expand_opened_press.png
new file mode 100644 (file)
index 0000000..1b49c94
Binary files /dev/null and b/res/screen-density-xhigh/00_list_expand_opened_press.png differ
diff --git a/res/screen-density-xhigh/00_list_process_01.png b/res/screen-density-xhigh/00_list_process_01.png
new file mode 100644 (file)
index 0000000..cb74cb2
Binary files /dev/null and b/res/screen-density-xhigh/00_list_process_01.png differ
diff --git a/res/screen-density-xhigh/00_list_process_02.png b/res/screen-density-xhigh/00_list_process_02.png
new file mode 100644 (file)
index 0000000..bc43e8b
Binary files /dev/null and b/res/screen-density-xhigh/00_list_process_02.png differ
diff --git a/res/screen-density-xhigh/00_list_process_03.png b/res/screen-density-xhigh/00_list_process_03.png
new file mode 100644 (file)
index 0000000..280f431
Binary files /dev/null and b/res/screen-density-xhigh/00_list_process_03.png differ
diff --git a/res/screen-density-xhigh/00_list_process_04.png b/res/screen-density-xhigh/00_list_process_04.png
new file mode 100644 (file)
index 0000000..bf6f99d
Binary files /dev/null and b/res/screen-density-xhigh/00_list_process_04.png differ
diff --git a/res/screen-density-xhigh/00_list_process_05.png b/res/screen-density-xhigh/00_list_process_05.png
new file mode 100644 (file)
index 0000000..a1f3fc5
Binary files /dev/null and b/res/screen-density-xhigh/00_list_process_05.png differ
diff --git a/res/screen-density-xhigh/00_list_process_06.png b/res/screen-density-xhigh/00_list_process_06.png
new file mode 100644 (file)
index 0000000..3202a29
Binary files /dev/null and b/res/screen-density-xhigh/00_list_process_06.png differ
diff --git a/res/screen-density-xhigh/00_list_process_07.png b/res/screen-density-xhigh/00_list_process_07.png
new file mode 100644 (file)
index 0000000..8a29aea
Binary files /dev/null and b/res/screen-density-xhigh/00_list_process_07.png differ
diff --git a/res/screen-density-xhigh/00_list_process_08.png b/res/screen-density-xhigh/00_list_process_08.png
new file mode 100644 (file)
index 0000000..532cd07
Binary files /dev/null and b/res/screen-density-xhigh/00_list_process_08.png differ
diff --git a/res/screen-density-xhigh/00_list_process_09.png b/res/screen-density-xhigh/00_list_process_09.png
new file mode 100644 (file)
index 0000000..8c508a0
Binary files /dev/null and b/res/screen-density-xhigh/00_list_process_09.png differ
diff --git a/res/screen-density-xhigh/00_list_process_10.png b/res/screen-density-xhigh/00_list_process_10.png
new file mode 100644 (file)
index 0000000..679bcb8
Binary files /dev/null and b/res/screen-density-xhigh/00_list_process_10.png differ
diff --git a/res/screen-density-xhigh/00_list_process_11.png b/res/screen-density-xhigh/00_list_process_11.png
new file mode 100644 (file)
index 0000000..910f2b0
Binary files /dev/null and b/res/screen-density-xhigh/00_list_process_11.png differ
diff --git a/res/screen-density-xhigh/00_list_process_12.png b/res/screen-density-xhigh/00_list_process_12.png
new file mode 100644 (file)
index 0000000..35fb68f
Binary files /dev/null and b/res/screen-density-xhigh/00_list_process_12.png differ
diff --git a/res/screen-density-xhigh/00_list_process_13.png b/res/screen-density-xhigh/00_list_process_13.png
new file mode 100644 (file)
index 0000000..adcf94f
Binary files /dev/null and b/res/screen-density-xhigh/00_list_process_13.png differ
diff --git a/res/screen-density-xhigh/00_list_process_14.png b/res/screen-density-xhigh/00_list_process_14.png
new file mode 100644 (file)
index 0000000..283858b
Binary files /dev/null and b/res/screen-density-xhigh/00_list_process_14.png differ
diff --git a/res/screen-density-xhigh/00_list_process_15.png b/res/screen-density-xhigh/00_list_process_15.png
new file mode 100644 (file)
index 0000000..3167602
Binary files /dev/null and b/res/screen-density-xhigh/00_list_process_15.png differ
diff --git a/res/screen-density-xhigh/00_list_process_16.png b/res/screen-density-xhigh/00_list_process_16.png
new file mode 100644 (file)
index 0000000..26e691c
Binary files /dev/null and b/res/screen-density-xhigh/00_list_process_16.png differ
diff --git a/res/screen-density-xhigh/00_list_process_17.png b/res/screen-density-xhigh/00_list_process_17.png
new file mode 100644 (file)
index 0000000..1a059dd
Binary files /dev/null and b/res/screen-density-xhigh/00_list_process_17.png differ
diff --git a/res/screen-density-xhigh/00_list_process_18.png b/res/screen-density-xhigh/00_list_process_18.png
new file mode 100644 (file)
index 0000000..6c7f410
Binary files /dev/null and b/res/screen-density-xhigh/00_list_process_18.png differ
diff --git a/res/screen-density-xhigh/00_list_process_19.png b/res/screen-density-xhigh/00_list_process_19.png
new file mode 100644 (file)
index 0000000..3a33a95
Binary files /dev/null and b/res/screen-density-xhigh/00_list_process_19.png differ
diff --git a/res/screen-density-xhigh/00_list_process_20.png b/res/screen-density-xhigh/00_list_process_20.png
new file mode 100644 (file)
index 0000000..6076f52
Binary files /dev/null and b/res/screen-density-xhigh/00_list_process_20.png differ
diff --git a/res/screen-density-xhigh/00_list_process_21.png b/res/screen-density-xhigh/00_list_process_21.png
new file mode 100644 (file)
index 0000000..b09d472
Binary files /dev/null and b/res/screen-density-xhigh/00_list_process_21.png differ
diff --git a/res/screen-density-xhigh/00_list_process_22.png b/res/screen-density-xhigh/00_list_process_22.png
new file mode 100644 (file)
index 0000000..cffed12
Binary files /dev/null and b/res/screen-density-xhigh/00_list_process_22.png differ
diff --git a/res/screen-density-xhigh/00_list_process_23.png b/res/screen-density-xhigh/00_list_process_23.png
new file mode 100644 (file)
index 0000000..987562c
Binary files /dev/null and b/res/screen-density-xhigh/00_list_process_23.png differ
diff --git a/res/screen-density-xhigh/00_list_process_24.png b/res/screen-density-xhigh/00_list_process_24.png
new file mode 100644 (file)
index 0000000..a73d472
Binary files /dev/null and b/res/screen-density-xhigh/00_list_process_24.png differ
diff --git a/res/screen-density-xhigh/00_list_process_25.png b/res/screen-density-xhigh/00_list_process_25.png
new file mode 100644 (file)
index 0000000..02cfd95
Binary files /dev/null and b/res/screen-density-xhigh/00_list_process_25.png differ
diff --git a/res/screen-density-xhigh/00_list_process_26.png b/res/screen-density-xhigh/00_list_process_26.png
new file mode 100644 (file)
index 0000000..e5b6871
Binary files /dev/null and b/res/screen-density-xhigh/00_list_process_26.png differ
diff --git a/res/screen-density-xhigh/00_list_process_27.png b/res/screen-density-xhigh/00_list_process_27.png
new file mode 100644 (file)
index 0000000..7caf896
Binary files /dev/null and b/res/screen-density-xhigh/00_list_process_27.png differ
diff --git a/res/screen-density-xhigh/00_list_process_28.png b/res/screen-density-xhigh/00_list_process_28.png
new file mode 100644 (file)
index 0000000..6d30d39
Binary files /dev/null and b/res/screen-density-xhigh/00_list_process_28.png differ
diff --git a/res/screen-density-xhigh/00_list_process_29.png b/res/screen-density-xhigh/00_list_process_29.png
new file mode 100644 (file)
index 0000000..8d90522
Binary files /dev/null and b/res/screen-density-xhigh/00_list_process_29.png differ
diff --git a/res/screen-density-xhigh/00_list_process_30.png b/res/screen-density-xhigh/00_list_process_30.png
new file mode 100644 (file)
index 0000000..e6e392f
Binary files /dev/null and b/res/screen-density-xhigh/00_list_process_30.png differ
diff --git a/res/screen-density-xhigh/T01-1_crop_rectangle.png b/res/screen-density-xhigh/T01-1_crop_rectangle.png
new file mode 100644 (file)
index 0000000..6e89c37
Binary files /dev/null and b/res/screen-density-xhigh/T01-1_crop_rectangle.png differ
diff --git a/res/screen-density-xhigh/T01_1_face_tag_icon_email.png b/res/screen-density-xhigh/T01_1_face_tag_icon_email.png
new file mode 100644 (file)
index 0000000..fe2d41f
Binary files /dev/null and b/res/screen-density-xhigh/T01_1_face_tag_icon_email.png differ
diff --git a/res/screen-density-xhigh/T01_1_face_tag_icon_message.png b/res/screen-density-xhigh/T01_1_face_tag_icon_message.png
new file mode 100644 (file)
index 0000000..44e0058
Binary files /dev/null and b/res/screen-density-xhigh/T01_1_face_tag_icon_message.png differ
diff --git a/res/screen-density-xhigh/T01_Nocontents_broken.png b/res/screen-density-xhigh/T01_Nocontents_broken.png
new file mode 100644 (file)
index 0000000..c200d0c
Binary files /dev/null and b/res/screen-density-xhigh/T01_Nocontents_broken.png differ
diff --git a/res/screen-density-xhigh/T01_Nocontents_picture.png b/res/screen-density-xhigh/T01_Nocontents_picture.png
new file mode 100644 (file)
index 0000000..0f98480
Binary files /dev/null and b/res/screen-density-xhigh/T01_Nocontents_picture.png differ
diff --git a/res/screen-density-xhigh/T01_album_edit_rename.png b/res/screen-density-xhigh/T01_album_edit_rename.png
new file mode 100644 (file)
index 0000000..4a2a2ae
Binary files /dev/null and b/res/screen-density-xhigh/T01_album_edit_rename.png differ
diff --git a/res/screen-density-xhigh/T01_album_edit_rename_bg.png b/res/screen-density-xhigh/T01_album_edit_rename_bg.png
new file mode 100644 (file)
index 0000000..01a75d8
Binary files /dev/null and b/res/screen-density-xhigh/T01_album_edit_rename_bg.png differ
diff --git a/res/screen-density-xhigh/T01_album_icon_camera.png b/res/screen-density-xhigh/T01_album_icon_camera.png
new file mode 100644 (file)
index 0000000..f3d63dd
Binary files /dev/null and b/res/screen-density-xhigh/T01_album_icon_camera.png differ
diff --git a/res/screen-density-xhigh/T01_album_icon_download.png b/res/screen-density-xhigh/T01_album_icon_download.png
new file mode 100644 (file)
index 0000000..e424ba8
Binary files /dev/null and b/res/screen-density-xhigh/T01_album_icon_download.png differ
diff --git a/res/screen-density-xhigh/T01_album_icon_folder.png b/res/screen-density-xhigh/T01_album_icon_folder.png
new file mode 100644 (file)
index 0000000..1ef79e8
Binary files /dev/null and b/res/screen-density-xhigh/T01_album_icon_folder.png differ
diff --git a/res/screen-density-xhigh/T01_btn_play.png b/res/screen-density-xhigh/T01_btn_play.png
new file mode 100644 (file)
index 0000000..b25d19c
Binary files /dev/null and b/res/screen-density-xhigh/T01_btn_play.png differ
diff --git a/res/screen-density-xhigh/T01_button_circle_bg_normal.png b/res/screen-density-xhigh/T01_button_circle_bg_normal.png
new file mode 100644 (file)
index 0000000..981d624
Binary files /dev/null and b/res/screen-density-xhigh/T01_button_circle_bg_normal.png differ
diff --git a/res/screen-density-xhigh/T01_button_circle_bg_normal_press.png b/res/screen-density-xhigh/T01_button_circle_bg_normal_press.png
new file mode 100644 (file)
index 0000000..bc5f8b2
Binary files /dev/null and b/res/screen-density-xhigh/T01_button_circle_bg_normal_press.png differ
diff --git a/res/screen-density-xhigh/T01_button_rename.png b/res/screen-density-xhigh/T01_button_rename.png
new file mode 100644 (file)
index 0000000..39c5de5
Binary files /dev/null and b/res/screen-density-xhigh/T01_button_rename.png differ
diff --git a/res/screen-density-xhigh/T01_button_reveal.png b/res/screen-density-xhigh/T01_button_reveal.png
new file mode 100644 (file)
index 0000000..973b0ea
Binary files /dev/null and b/res/screen-density-xhigh/T01_button_reveal.png differ
diff --git a/res/screen-density-xhigh/T01_controlbar_icon_addtag.png b/res/screen-density-xhigh/T01_controlbar_icon_addtag.png
new file mode 100644 (file)
index 0000000..a554ce3
Binary files /dev/null and b/res/screen-density-xhigh/T01_controlbar_icon_addtag.png differ
diff --git a/res/screen-density-xhigh/T01_controlbar_icon_camera.png b/res/screen-density-xhigh/T01_controlbar_icon_camera.png
new file mode 100644 (file)
index 0000000..e243ff2
Binary files /dev/null and b/res/screen-density-xhigh/T01_controlbar_icon_camera.png differ
diff --git a/res/screen-density-xhigh/T01_controlbar_icon_delete.png b/res/screen-density-xhigh/T01_controlbar_icon_delete.png
new file mode 100644 (file)
index 0000000..2980bdc
Binary files /dev/null and b/res/screen-density-xhigh/T01_controlbar_icon_delete.png differ
diff --git a/res/screen-density-xhigh/T01_controlbar_icon_done.png b/res/screen-density-xhigh/T01_controlbar_icon_done.png
new file mode 100644 (file)
index 0000000..46304a4
Binary files /dev/null and b/res/screen-density-xhigh/T01_controlbar_icon_done.png differ
diff --git a/res/screen-density-xhigh/T01_controlbar_icon_download.png b/res/screen-density-xhigh/T01_controlbar_icon_download.png
new file mode 100644 (file)
index 0000000..0df0c27
Binary files /dev/null and b/res/screen-density-xhigh/T01_controlbar_icon_download.png differ
diff --git a/res/screen-density-xhigh/T01_controlbar_icon_edit.png b/res/screen-density-xhigh/T01_controlbar_icon_edit.png
new file mode 100644 (file)
index 0000000..ed90f86
Binary files /dev/null and b/res/screen-density-xhigh/T01_controlbar_icon_edit.png differ
diff --git a/res/screen-density-xhigh/T01_controlbar_icon_more.png b/res/screen-density-xhigh/T01_controlbar_icon_more.png
new file mode 100644 (file)
index 0000000..cda9b31
Binary files /dev/null and b/res/screen-density-xhigh/T01_controlbar_icon_more.png differ
diff --git a/res/screen-density-xhigh/T01_controlbar_icon_move.png b/res/screen-density-xhigh/T01_controlbar_icon_move.png
new file mode 100644 (file)
index 0000000..99e3cd7
Binary files /dev/null and b/res/screen-density-xhigh/T01_controlbar_icon_move.png differ
diff --git a/res/screen-density-xhigh/T01_controlbar_icon_save.png b/res/screen-density-xhigh/T01_controlbar_icon_save.png
new file mode 100644 (file)
index 0000000..39baa6a
Binary files /dev/null and b/res/screen-density-xhigh/T01_controlbar_icon_save.png differ
diff --git a/res/screen-density-xhigh/T01_controlbar_icon_share02.png b/res/screen-density-xhigh/T01_controlbar_icon_share02.png
new file mode 100644 (file)
index 0000000..f58e87e
Binary files /dev/null and b/res/screen-density-xhigh/T01_controlbar_icon_share02.png differ
diff --git a/res/screen-density-xhigh/T01_controlbar_icon_slideshow.png b/res/screen-density-xhigh/T01_controlbar_icon_slideshow.png
new file mode 100644 (file)
index 0000000..79c2ebd
Binary files /dev/null and b/res/screen-density-xhigh/T01_controlbar_icon_slideshow.png differ
diff --git a/res/screen-density-xhigh/T01_grid_select_check.png b/res/screen-density-xhigh/T01_grid_select_check.png
new file mode 100644 (file)
index 0000000..f131f47
Binary files /dev/null and b/res/screen-density-xhigh/T01_grid_select_check.png differ
diff --git a/res/screen-density-xhigh/T01_icon_thumbnail_bookmark.png b/res/screen-density-xhigh/T01_icon_thumbnail_bookmark.png
new file mode 100644 (file)
index 0000000..bdb690a
Binary files /dev/null and b/res/screen-density-xhigh/T01_icon_thumbnail_bookmark.png differ
diff --git a/res/screen-density-xhigh/T01_icon_thumbnail_favorite.png b/res/screen-density-xhigh/T01_icon_thumbnail_favorite.png
new file mode 100644 (file)
index 0000000..aa9c8ef
Binary files /dev/null and b/res/screen-density-xhigh/T01_icon_thumbnail_favorite.png differ
diff --git a/res/screen-density-xhigh/T01_main_folder_bg.png b/res/screen-density-xhigh/T01_main_folder_bg.png
new file mode 100644 (file)
index 0000000..16d1d59
Binary files /dev/null and b/res/screen-density-xhigh/T01_main_folder_bg.png differ
diff --git a/res/screen-density-xhigh/T01_places_thumbnail_bg.png b/res/screen-density-xhigh/T01_places_thumbnail_bg.png
new file mode 100644 (file)
index 0000000..5b0fb27
Binary files /dev/null and b/res/screen-density-xhigh/T01_places_thumbnail_bg.png differ
diff --git a/res/screen-density-xhigh/T01_toolbar_icon_delete_dim_web.png b/res/screen-density-xhigh/T01_toolbar_icon_delete_dim_web.png
new file mode 100644 (file)
index 0000000..08e773b
Binary files /dev/null and b/res/screen-density-xhigh/T01_toolbar_icon_delete_dim_web.png differ
diff --git a/res/screen-density-xhigh/T01_toolbar_icon_share_dim_web.png b/res/screen-density-xhigh/T01_toolbar_icon_share_dim_web.png
new file mode 100644 (file)
index 0000000..47ee62e
Binary files /dev/null and b/res/screen-density-xhigh/T01_toolbar_icon_share_dim_web.png differ
diff --git a/res/screen-size-normal/IDL_DEL_PROGRESSING_POPUP.xml b/res/screen-size-normal/IDL_DEL_PROGRESSING_POPUP.xml
new file mode 100644 (file)
index 0000000..3c470a0
--- /dev/null
@@ -0,0 +1,42 @@
+<?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="2.0.0.201306151404" Dversion="20120315">
+    <Popup id="IDL_DEL_PROGRESSING_POPUP">
+        <property accessibilityHint="" color="" titleText="" titleTextColor=""/>
+        <layout height="264.0" mode="Portrait" style="" type="NONE" width="692.0"/>
+        <layout height="281.0" mode="Landscape" style="" type="NONE" width="620.0"/>
+    </Popup>
+    <Label id="IDC_LABEL_POPUP_CENTER_BACKGROUND" parent="IDL_DEL_PROGRESSING_POPUP">
+        <property accessibilityHint="" backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_LEFT" leftMargin="16" text="" textColor="" textSize="33.0" textStyle="LABEL_TEXT_STYLE_NORMAL" topMargin="0" verticalAlign="ALIGN_TOP"/>
+        <layout height="128.0" mode="Portrait" width="632.0" x="10.0" y="10.0"/>
+        <layout height="172.0" mode="Landscape" width="596.0" x="0.0" y="0.0"/>
+    </Label>
+    <Label id="IDC_LABEL_POPUP_BOTTOM_BACKGROUND" parent="IDL_DEL_PROGRESSING_POPUP">
+        <property accessibilityHint="" backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_LEFT" leftMargin="16" text="" textColor="" textSize="33.0" textStyle="LABEL_TEXT_STYLE_NORMAL" topMargin="0" verticalAlign="ALIGN_TOP"/>
+        <layout height="96.0" mode="Portrait" width="612.0" x="20.0" y="151.0"/>
+        <layout height="96.0" mode="Landscape" width="596.0" x="5.0" y="187.0"/>
+    </Label>
+    <Label id="IDC_ANIMATION_HEADER" parent="IDL_DEL_PROGRESSING_POPUP">
+        <property accessibilityHint="" backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_LEFT" leftMargin="16" text="" textColor="#7F7F7F" textSize="40.0" textStyle="LABEL_TEXT_STYLE_BOLD" topMargin="0" verticalAlign="ALIGN_TOP"/>
+        <layout height="46.0" mode="Portrait" width="596.0" x="28.0" y="25.0"/>
+        <layout height="47.0" mode="Landscape" width="564.0" x="16.0" y="27.0"/>
+    </Label>
+    <Progress id="IDC_PROGRESS_BAR" parent="IDL_DEL_PROGRESSING_POPUP">
+        <property accessibilityHint="" backgroundColor="" barBackgroundColor="" barColor="" leftText="" max="100" min="0" rightText="" showValueState="true" value="50"/>
+        <layout height="50.0" mode="Portrait" style="PROGRESS_STYLE_NONE" width="564.0" x="44.0" y="75.0"/>
+        <layout height="39.0" mode="Landscape" style="PROGRESS_STYLE_NONE" width="548.0" x="32.0" y="84.0"/>
+    </Progress>
+    <Button id="IDC_CANCEL_BUTTON" parent="IDL_DEL_PROGRESSING_POPUP">
+        <property DisabledBitmapX="0.0" DisabledBitmapY="0.0" NormalBitmapX="0.0" NormalBitmapY="0.0" PressedBitmapX="0.0" PressedBitmapY="0.0" accessibilityHint="" disableTextColor="" disabledBGBitmapPath="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedBitmapPath="" highlightedBitmapX="0.0" highlightedBitmapY="0.0" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="::IDS_COM_POP_CANCEL" textSize="33.0" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="72.0" mode="Portrait" width="400.0" x="128.0" y="162.0"/>
+        <layout height="72.0" mode="Landscape" width="400.0" x="98.0" y="197.0"/>
+    </Button>
+    <Label id="IDC_COUNTER_LABEL" parent="IDL_DEL_PROGRESSING_POPUP">
+        <property accessibilityHint="" backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_LEFT" leftMargin="16" text="Label1" textColor="" textSize="33.0" textStyle="LABEL_TEXT_STYLE_BOLD" topMargin="0" verticalAlign="ALIGN_TOP"/>
+        <layout height="38.0" mode="Portrait" width="197.0" x="461.0" y="113.0"/>
+        <layout height="45.0" mode="Landscape" width="233.0" x="380.0" y="124.0"/>
+    </Label>
+</ScenePopup>
diff --git a/res/screen-size-normal/IDL_FORM_ALBUM_LIST.xml b/res/screen-size-normal/IDL_FORM_ALBUM_LIST.xml
new file mode 100644 (file)
index 0000000..9c1b3fb
--- /dev/null
@@ -0,0 +1,21 @@
+<?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="2.0.0.201306281023" Dversion="20120315">
+    <LogicalCoordinate>720</LogicalCoordinate>
+    <Form id="IDL_FORM_ALBUM_LIST">
+        <property backgroundColor="" backgroundColorOpacity="100" notificationTrayOpenEnabled="false" orientation="Automatic" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_CENTER" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>
+        <layout mode="Portrait" style="FORM_STYLE_HEADER|FORM_STYLE_FOOTER|FORM_STYLE_PORTRAIT_INDICATOR_AUTO_HIDE|FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE" type="LAYOUT_RELATIVE"/>
+        <layout mode="Landscape" style="FORM_STYLE_HEADER|FORM_STYLE_FOOTER|FORM_STYLE_PORTRAIT_INDICATOR_AUTO_HIDE|FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE" type="LAYOUT_RELATIVE"/>
+    </Form>
+    <Footer>
+        <property backgroundBitmapPath="" color="" colorOpacity="0" disabledButtonColor="" disabledButtonColorOpacity="0" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="0" disabledItemTextColor="" footerStyle="FOOTER_STYLE_BUTTON_ICON" highlightedButtonColor="" highlightedButtonColorOpacity="0" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="0" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="0" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="0" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="0" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="0" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="0" selectedItemTextColor="" showBackButton="false" showMenuButton="false"/>
+        <itemSet/>
+    </Footer>
+    <Header>
+        <property accessibilityHint="" backgroundBitmapPath="" color="" colorOpacity="0" descriptionText="" descriptionTextColor="" disabledButtonColor="" disabledButtonColorOpacity="0" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="0" disabledItemTextColor="" headerStyle="HEADER_STYLE_TITLE" highlightedButtonColor="" highlightedButtonColorOpacity="0" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="0" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="0" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="0" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="0" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="0" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="0" selectedItemTextColor="" showBackButton="false" titleIconPath="" titleText="" titleTextColor=""/>
+        <itemSet/>
+    </Header>
+</Scene>
diff --git a/res/screen-size-normal/IDL_FORM_ALBUM_LIST_EDITOR.xml b/res/screen-size-normal/IDL_FORM_ALBUM_LIST_EDITOR.xml
new file mode 100644 (file)
index 0000000..24abc78
--- /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="2.0.0.201306281023" Dversion="20120315">
+    <LogicalCoordinate>720</LogicalCoordinate>
+    <Form id="IDL_FORM_ALBUM_LIST_EDITOR">
+        <property backgroundColor="" backgroundColorOpacity="100" notificationTrayOpenEnabled="false" orientation="Automatic" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_CENTER" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>
+        <layout mode="Portrait" style="FORM_STYLE_HEADER|FORM_STYLE_FOOTER|FORM_STYLE_PORTRAIT_INDICATOR_AUTO_HIDE|FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE" type="LAYOUT_RELATIVE"/>
+        <layout mode="Landscape" style="FORM_STYLE_HEADER|FORM_STYLE_FOOTER|FORM_STYLE_PORTRAIT_INDICATOR_AUTO_HIDE|FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE" type="LAYOUT_RELATIVE"/>
+    </Form>
+    <Footer>
+        <property backgroundBitmapPath="" color="" colorOpacity="100" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" footerStyle="FOOTER_STYLE_BUTTON_ICON" 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="false" showMenuButton="false"/>
+        <itemSet>
+            <footerItem accessibilityHint="" actionId="908" disabledIconPath="T01_toolbar_icon_share_dim_web.png" highlightedIconPath="" normalIconPath="T01_controlbar_icon_share02.png" pressedIconPath="" selectedIconPath="" text=""/>
+            <footerItem accessibilityHint="" actionId="905" disabledIconPath="T01_toolbar_icon_delete_dim_web.png" highlightedIconPath="" normalIconPath="T01_controlbar_icon_delete.png" pressedIconPath="" selectedIconPath="" text=""/>
+        </itemSet>
+    </Footer>
+    <Header>
+        <property accessibilityHint="" backgroundBitmapPath="" color="" 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="" showBackButton="false" titleIconPath="" titleText="::IDS_COM_HEADER_EDIT" titleTextColor=""/>
+        <itemSet>
+            <buttonItem accessibilityHint="" actionId="201" disabledBGBitmapPath="" disabledIconPath="" highlightedBGBitmapPath="" highlightedIconPath="" normalBGBitmapPath="" normalIconPath="00_icon_select_all_web.png" position="BUTTON_POSITION_RIGHT" pressedBGBitmapPath="" pressedIconPath="00_icon_select_all_press_web.png" style="BUTTON_ITEM_STYLE_ICON" text="" type="right"/>
+        </itemSet>
+    </Header>
+    <Label id="IDC_LABEL_ALBUM_LIST_EDITOR_SELECTED" parent="IDL_FORM_ALBUM_LIST_EDITOR">
+        <property accessibilityHint="" backgroundBitmapPath="" backgroundColor="#444444" backgroundColorOpacity="100" horizontalAlign="ALIGN_LEFT" leftMargin="16" text="::IDS_ST_POP_NO_ITEMS_SELECTED" textColor="#FFFFFF" textSize="33.0" textStyle="LABEL_TEXT_STYLE_BOLD" topMargin="0" verticalAlign="ALIGN_MIDDLE"/>
+        <layout bottomRelation="IDL_FORM_ALBUM_LIST_EDITOR" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="48.0" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDL_FORM_ALBUM_LIST_EDITOR" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0.0" marginLeft="0.0" marginRight="0.0" marginTop="0.0" mode="Portrait" rightRelation="IDL_FORM_ALBUM_LIST_EDITOR" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="720.0" x="0.0" y="1038.0"/>
+        <layout bottomRelation="IDL_FORM_ALBUM_LIST_EDITOR" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="44.0" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDL_FORM_ALBUM_LIST_EDITOR" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0.0" marginLeft="0.0" marginRight="0.0" marginTop="0.0" mode="Landscape" rightRelation="IDL_FORM_ALBUM_LIST_EDITOR" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="1280.0" x="0.0" y="500.0"/>
+    </Label>
+</Scene>
diff --git a/res/screen-size-normal/IDL_FORM_ALBUM_NAME_EDITOR.xml b/res/screen-size-normal/IDL_FORM_ALBUM_NAME_EDITOR.xml
new file mode 100644 (file)
index 0000000..011d6b6
--- /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="2.0.0.201307091413" Dversion="20120315">
+    <LogicalCoordinate>720</LogicalCoordinate>
+    <Form id="IDL_FORM_ALBUM_NAME_EDITOR">
+        <property backgroundColor="" backgroundColorOpacity="100" notificationTrayOpenEnabled="false" orientation="Automatic" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_CENTER" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>
+        <layout mode="Portrait" style="FORM_STYLE_HEADER|FORM_STYLE_FOOTER|FORM_STYLE_PORTRAIT_INDICATOR_AUTO_HIDE|FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE" type="LAYOUT_RELATIVE"/>
+        <layout mode="Landscape" style="FORM_STYLE_HEADER|FORM_STYLE_FOOTER|FORM_STYLE_PORTRAIT_INDICATOR_AUTO_HIDE|FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE" type="LAYOUT_RELATIVE"/>
+    </Form>
+    <Footer>
+        <property backgroundBitmapPath="" color="" 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="false" showMenuButton="false"/>
+        <itemSet/>
+    </Footer>
+    <Header>
+        <property accessibilityHint="" backgroundBitmapPath="" color="" 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="" showBackButton="false" titleIconPath="" titleText="::IDS_COM_BODY_RENAME" titleTextColor=""/>
+        <itemSet/>
+    </Header>
+    <EditField id="IDC_EDITFIELD_NAME" parent="IDL_FORM_ALBUM_NAME_EDITOR">
+        <property accessibilityHint="" disabledBGBitmapPath="" disabledColor="" disabledColorOpacity="100" disabledTextColor="" ellipsisPosition="ELLIPSIS_POSITION_END" enableClear="true" groupStyle="GROUP_STYLE_NONE" guideText="" guideTextColor="" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalMargin="16.0" inputStyle="INPUT_STYLE_OVERLAY" keypadAction="KEYPAD_ACTION_ENTER" keypadEnabled="true" limitLength="255" linkTextColor="" lowerCaseMode="false" normalBGBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedColor="" pressedColorOpacity="100" text="" textHorizontalAlignment="ALIGNMENT_LEFT" textSize="45.0" titleStyle="EDIT_FIELD_TITLE_STYLE_NONE" titleText="" titleTextColor="" verticalMargin="12.0" viewMode="false"/>
+        <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="100.0" horizontalFitPolicy="FIT_POLICY_PARENT" leftRelation="None" leftRelationType="" marginBottom="0.0" marginLeft="0.0" marginRight="0.0" marginTop="0.0" mode="Portrait" rightRelation="None" rightRelationType="" style="EDIT_FIELD_STYLE_NORMAL" topRelation="" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="720.0" x="0" y="0.0"/>
+        <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="120.0" horizontalFitPolicy="FIT_POLICY_PARENT" leftRelation="" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0.0" marginLeft="0.0" marginRight="0.0" marginTop="0.0" mode="Landscape" rightRelation="" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" style="EDIT_FIELD_STYLE_NORMAL" topRelation="" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_FIXED" width="1280.0" x="0" y="21.0"/>
+    </EditField>
+</Scene>
diff --git a/res/screen-size-normal/IDL_FORM_FILE_LIST.xml b/res/screen-size-normal/IDL_FORM_FILE_LIST.xml
new file mode 100644 (file)
index 0000000..a785490
--- /dev/null
@@ -0,0 +1,21 @@
+<?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="2.0.0.201306281023" Dversion="20120315">
+    <LogicalCoordinate>720</LogicalCoordinate>
+    <Form id="IDL_FORM_FILE_LIST">
+        <property backgroundColor="" backgroundColorOpacity="100" notificationTrayOpenEnabled="false" 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_HEADER|FORM_STYLE_FOOTER|FORM_STYLE_PORTRAIT_INDICATOR_AUTO_HIDE|FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE" type="NONE"/>
+        <layout mode="Landscape" style="FORM_STYLE_HEADER|FORM_STYLE_FOOTER|FORM_STYLE_PORTRAIT_INDICATOR_AUTO_HIDE|FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE" type="NONE"/>
+    </Form>
+    <Footer>
+        <property backgroundBitmapPath="" color="" colorOpacity="100" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" footerStyle="FOOTER_STYLE_BUTTON_ICON" 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="false" showMenuButton="false"/>
+        <itemSet/>
+    </Footer>
+    <Header>
+        <property accessibilityHint="" backgroundBitmapPath="" color="" 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="" showBackButton="false" titleIconPath="" titleText="File View" titleTextColor=""/>
+        <itemSet/>
+    </Header>
+</Scene>
diff --git a/res/screen-size-normal/IDL_FORM_FILE_LIST_EDITOR.xml b/res/screen-size-normal/IDL_FORM_FILE_LIST_EDITOR.xml
new file mode 100644 (file)
index 0000000..ee99223
--- /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="2.0.0.201306281023" Dversion="20120315">
+    <LogicalCoordinate>720</LogicalCoordinate>
+    <Form id="IDL_FORM_FILE_LIST_EDITOR">
+        <property backgroundColor="" backgroundColorOpacity="100" notificationTrayOpenEnabled="false" orientation="Automatic" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_CENTER" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>
+        <layout mode="Portrait" style="FORM_STYLE_HEADER|FORM_STYLE_FOOTER|FORM_STYLE_PORTRAIT_INDICATOR_AUTO_HIDE|FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE" type="NONE"/>
+        <layout mode="Landscape" style="FORM_STYLE_HEADER|FORM_STYLE_FOOTER|FORM_STYLE_PORTRAIT_INDICATOR_AUTO_HIDE|FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE" type="NONE"/>
+    </Form>
+    <Footer>
+        <property backgroundBitmapPath="" color="" colorOpacity="100" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" footerStyle="FOOTER_STYLE_BUTTON_ICON" 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="false" showMenuButton="false"/>
+        <itemSet>
+            <footerItem accessibilityHint="" actionId="908" disabledIconPath="T01_toolbar_icon_share_dim_web.png" highlightedIconPath="" normalIconPath="T01_controlbar_icon_share02.png" pressedIconPath="" selectedIconPath="" text=""/>
+            <footerItem accessibilityHint="" actionId="905" disabledIconPath="T01_toolbar_icon_delete_dim_web.png" highlightedIconPath="" normalIconPath="T01_controlbar_icon_delete.png" pressedIconPath="" selectedIconPath="" text=""/>
+        </itemSet>
+    </Footer>
+    <Header>
+        <property accessibilityHint="" backgroundBitmapPath="" color="" 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="" showBackButton="false" titleIconPath="" titleText="::IDS_COM_BODY_GALLERY" titleTextColor=""/>
+        <itemSet>
+            <buttonItem accessibilityHint="" actionId="201" disabledBGBitmapPath="" disabledIconPath="" highlightedBGBitmapPath="" highlightedIconPath="" normalBGBitmapPath="" normalIconPath="00_icon_select_all_web.png" position="BUTTON_POSITION_RIGHT" pressedBGBitmapPath="" pressedIconPath="00_icon_select_all_press_web.png" style="BUTTON_ITEM_STYLE_ICON" text="" type="right"/>
+        </itemSet>
+    </Header>
+</Scene>
diff --git a/res/screen-size-normal/IDL_FORM_IMAGE_CROP.xml b/res/screen-size-normal/IDL_FORM_IMAGE_CROP.xml
new file mode 100644 (file)
index 0000000..ff005c6
--- /dev/null
@@ -0,0 +1,18 @@
+<?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="2.0.0.201306151404" Dversion="20120315">
+    <LogicalCoordinate>720</LogicalCoordinate>
+    <Form id="IDL_FORM_IMAGE_CROP">
+        <property backgroundColor="" backgroundColorOpacity="100" notificationTrayOpenEnabled="false" orientation="Automatic" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_CENTER" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>
+        <layout mode="Portrait" style="FORM_STYLE_FOOTER|FORM_STYLE_PORTRAIT_INDICATOR_AUTO_HIDE|FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE" type="LAYOUT_RELATIVE"/>
+        <layout mode="Landscape" style="FORM_STYLE_FOOTER|FORM_STYLE_PORTRAIT_INDICATOR_AUTO_HIDE|FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE" type="LAYOUT_RELATIVE"/>
+    </Form>
+    <Footer>
+        <property backgroundBitmapPath="" color="" colorOpacity="100" disabledButtonColor="" disabledButtonColorOpacity="100" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="100" disabledItemTextColor="" footerStyle="FOOTER_STYLE_TAB" 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="false" showMenuButton="false"/>
+        <itemSet/>
+    </Footer>
+</Scene>
diff --git a/res/screen-size-normal/IDL_FORM_SETTING_MAIN.xml b/res/screen-size-normal/IDL_FORM_SETTING_MAIN.xml
new file mode 100644 (file)
index 0000000..502cb54
--- /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 Scene SYSTEM "UIForm.dtd">
+<Scene Bversion="2.0.0.201306281023" Dversion="20120315">
+    <LogicalCoordinate>720</LogicalCoordinate>
+    <Form id="IDL_FORM_SETTING_MAIN">
+        <property backgroundColor="" backgroundColorOpacity="100" notificationTrayOpenEnabled="false" orientation="Automatic" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_CENTER" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>
+        <layout mode="Portrait" style="FORM_STYLE_HEADER|FORM_STYLE_PORTRAIT_INDICATOR_AUTO_HIDE|FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE" type="LAYOUT_RELATIVE"/>
+        <layout mode="Landscape" style="FORM_STYLE_HEADER|FORM_STYLE_PORTRAIT_INDICATOR_AUTO_HIDE|FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE" type="LAYOUT_RELATIVE"/>
+    </Form>
+    <Header>
+        <property accessibilityHint="" backgroundBitmapPath="" color="" 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="" showBackButton="false" titleIconPath="" titleText="" titleTextColor=""/>
+        <itemSet/>
+    </Header>
+    <GroupedListView id="IDC_SETTING_LIST" parent="IDL_FORM_SETTING_MAIN">
+        <property backgroundBitmapPath="" backgroundColor="#F9F9F9" backgroundColorOpacity="100" bitmapPathOfEmptyList="" colorOfEmptyListText="" itemDivider="true" itemDividerColor="#8E9AA3" listScrollStyle="SCROLL_STYLE_FADE_OUT" scrollInputMode="SCROLL_INPUT_MODE_ALLOW_ANY_DIRECTION" sectionColor="" sweepEnabled="false" textOfEmptyList=""/>
+        <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="1184.0" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDL_FORM_SETTING_MAIN" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0.0" marginLeft="0.0" marginRight="0.0" marginTop="0.0" mode="Portrait" rightRelation="IDL_FORM_SETTING_MAIN" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" style="CUSTOM_LIST_STYLE_NORMAL" topRelation="" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_PARENT" width="720.0" x="0.0" y="0"/>
+        <layout bottomRelation="IDL_FORM_SETTING_MAIN" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="629.0" horizontalFitPolicy="FIT_POLICY_PARENT" leftRelation="IDL_FORM_SETTING_MAIN" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0.0" marginLeft="0.0" marginRight="0.0" marginTop="0.0" mode="Landscape" rightRelation="IDL_FORM_SETTING_MAIN" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" style="CUSTOM_LIST_STYLE_NORMAL" topRelation="IDL_FORM_SETTING_MAIN" topRelationType="RECT_EDGE_RELATION_TOP_TO_TOP" verticalFitPolicy="FIT_POLICY_PARENT" width="1280.0" x="0" y="0"/>
+    </GroupedListView>
+</Scene>
diff --git a/res/screen-size-normal/IDL_SLIDESHOW_SETTING_POPUP.xml b/res/screen-size-normal/IDL_SLIDESHOW_SETTING_POPUP.xml
new file mode 100644 (file)
index 0000000..b70e9b0
--- /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="2.0.0.201306151404" Dversion="20120315">
+    <Popup id="IDL_SLIDESHOW_SETTING_POPUP">
+        <property accessibilityHint="" color="#FFFFFF" titleText="::IDS_MEDIABR_OPT_SLIDESHOW" titleTextColor=""/>
+        <layout height="440.0" mode="Portrait" style="" type="LAYOUT_RELATIVE" width="620.0"/>
+        <layout height="410.0" mode="Landscape" style="" type="LAYOUT_RELATIVE" width="600.0"/>
+    </Popup>
+    <ListView id="IDC_POPUP_LIST" parent="IDL_SLIDESHOW_SETTING_POPUP">
+        <property backgroundBitmapPath="" backgroundColor="#FFFFFF" backgroundColorOpacity="0" bitmapPathOfEmptyList="" colorOfEmptyListText="" itemDivider="true" itemDividerColor="" listScrollStyle="SCROLL_STYLE_FADE_OUT" scrollInputMode="SCROLL_INPUT_MODE_ALLOW_ANY_DIRECTION" sweepEnabled="false" textOfEmptyList=""/>
+        <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="226.0" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDL_SLIDESHOW_SETTING_POPUP" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0.0" marginLeft="3.5" marginRight="3.5" marginTop="0.0" mode="Portrait" rightRelation="IDL_SLIDESHOW_SETTING_POPUP" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="613.0" x="3.5" y="3.0"/>
+        <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="224.0" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDL_SLIDESHOW_SETTING_POPUP" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0.0" marginLeft="3.5" marginRight="3.5" marginTop="0.0" mode="Landscape" rightRelation="IDL_SLIDESHOW_SETTING_POPUP" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="593.0" x="3.5" y="2.0"/>
+    </ListView>
+    <Button id="IDC_BUTTON" parent="IDL_SLIDESHOW_SETTING_POPUP">
+        <property DisabledBitmapX="0.0" DisabledBitmapY="0.0" NormalBitmapX="0.0" NormalBitmapY="0.0" PressedBitmapX="0.0" PressedBitmapY="0.0" accessibilityHint="" disableTextColor="" disabledBGBitmapPath="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedBitmapPath="" highlightedBitmapX="0.0" highlightedBitmapY="0.0" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="::IDS_COM_POP_CANCEL" textSize="33.0" verticalAlign="ALIGN_MIDDLE"/>
+        <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="72.0" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0.0" marginLeft="0.0" marginRight="0.0" marginTop="0.0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="432.0" x="92.0" y="263.0"/>
+        <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="67.0" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0.0" marginLeft="0.0" marginRight="0.0" marginTop="0.0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="381.0" x="102.0" y="238.0"/>
+    </Button>
+</ScenePopup>
diff --git a/res/slk-SK.xml b/res/slk-SK.xml
new file mode 100644 (file)
index 0000000..3dd8fad
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Bol dosiahnutý maximálny počet znakov</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Prezentácia</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Prekročil sa maximálny počet súborov</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Nastavenia prezentácie</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Vybrať všetky</text>
+    <text id="IDS_COM_POP_DELETE_Q">Odstrániť?</text>
+    <text id="IDS_COM_BODY_EDIT">Upraviť</text>
+    <text id="IDS_COM_BODY_MESSAGE">Správa</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Stiahnuté položky</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Názov albumu sa už používa</text>
+    <text id="IDS_COM_OPT_SAVE">Uložiť</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 sekúnd</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Aktivácia</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Otočiť doľava</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 sekundy</text>
+    <text id="IDS_COM_BODY_MESSAGES">Správy</text>
+    <text id="IDS_COM_SK_DONE">Hotovo</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Nedá sa premenovať</text>
+    <text id="IDS_COM_BODY_EMAIL">E-mail</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Neplatné znaky</text>
+    <text id="IDS_COM_POP_MOVED">Presunuté</text>
+    <text id="IDS_COM_POP_CANCEL">Zrušiť</text>
+    <text id="IDS_COM_BODY_SELECTED">Vybrané</text>
+    <text id="IDS_COM_BODY_DELETE">Odstrániť</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Titulky</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Zrušiť</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Dosiahol sa maximálny počet znakov (%d)</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Dosiahol sa maximálny počet znakov (%d)</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Prezent.</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Vysunutie</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Spustiť prezentáciu</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s už existuje</text>
+    <text id="IDS_COM_BODY_LOADING">Načítava sa...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albumy</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Nedá sa premenovať. Názov albumu sa už používa</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Operácia zlyhala</text>
+    <text id="IDS_COM_POP_SAVING_ING">Ukladanie...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Efekt prechodu</text>
+    <text id="IDS_COM_BODY_MUSIC">Hudba</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">Vybraté položky: %d</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Vytvoriť priečinok?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Vymazanie sa nepodarilo</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1 vybratá položka</text>
+    <text id="IDS_COM_BODY_VIDEO">Video</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoom</text>
+    <text id="IDS_COM_BODY_COPY">Kopírovať</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Clona</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Interval prezentácie</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Prehrávač videí</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Prezentácia</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">sekundy</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Otočiť doľava</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Stránka</text>
+    <text id="IDS_COM_POP_COPYING_ING">Kopírovanie...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 sekúnd</text>
+    <text id="IDS_COM_POP_PROCESSING">Prebieha spracovanie...</text>
+    <text id="IDS_COM_BODY_GALLERY">Galéria</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Žiadny názov</text>
+    <text id="IDS_COM_BODY_IMAGES">Obrázky</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Stmievanie</text>
+    <text id="IDS_COM_HEADER_EDIT">Upraviť</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 sekúnd</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Nie sú vybraté žiadne položky</text>
+    <text id="IDS_COM_POP_DELETED">Odstránené</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Odstrániť?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Už existuje. Prepísať?</text>
+    <text id="IDS_COM_POP_DELETING">Odstraňovanie...</text>
+    <text id="IDS_COM_POP_DONE">Hotovo</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 sekundy</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Kat. fotoaparátu</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Otočiť doprava</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Opakovať</text>
+    <text id="IDS_COM_POP_SAVED">Uložené</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Prelínanie</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Náhodné poradie</text>
+    <text id="IDS_COM_POP_MOVING">Presúvanie...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Presunutie sa nepodarilo</text>
+    <text id="IDS_COM_BODY_VIDEOS">Videá</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Nepodporovaný typ súboru</text>
+    <text id="IDS_COM_BODY_RENAME">Premenovať</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Dokončené</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Vybrať vš.</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Všetky albumy</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Zmeniť názov</text>
+    <text id="IDS_COM_BODY_MOVE">Presunúť</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Nedá sa odstrániť</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Otočiť doprava</text>
+    <text id="IDS_IV_BODY_INTERVAL">Interval</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Už existuje</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Vytvoriť album</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Žiadne položky</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Roleta</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Uloženie sa nepodarilo</text>
+</string_table>
diff --git a/res/slv-SI.xml b/res/slv-SI.xml
new file mode 100644 (file)
index 0000000..629b2dd
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Doseženo je največje dovoljeno število znakov</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Diaprojekcija</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Največje dovoljeno število datotek je preseženo</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Nastavitve diaprojekcije</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Izberi vse</text>
+    <text id="IDS_COM_POP_DELETE_Q">Izbrišem?</text>
+    <text id="IDS_COM_BODY_EDIT">Uredi</text>
+    <text id="IDS_COM_BODY_MESSAGE">Sporočilo</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Prenosi</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Ime albuma se že uporablja</text>
+    <text id="IDS_COM_OPT_SAVE">Shrani</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 sekund</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Vklop</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Zavrti v levo</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 sekundi</text>
+    <text id="IDS_COM_BODY_MESSAGES">Sporočila</text>
+    <text id="IDS_COM_SK_DONE">Končano</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Ni mogoče preimenovati</text>
+    <text id="IDS_COM_BODY_EMAIL">E-pošta</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Neveljavni znaki</text>
+    <text id="IDS_COM_POP_MOVED">Premaknjeno</text>
+    <text id="IDS_COM_POP_CANCEL">Prekliči</text>
+    <text id="IDS_COM_BODY_SELECTED">Izbrano</text>
+    <text id="IDS_COM_BODY_DELETE">Izbriši</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Podnapisi</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Prekliči</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Doseženo je največje število znakov (%d)</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Doseženo je največje število znakov (%d)</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Diaproj.</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Prehod</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Začni diaprojekcijo</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s že obstaja</text>
+    <text id="IDS_COM_BODY_LOADING">Nalaganje...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albumi</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Ni mogoče preimenovati. Ime albuma se že uporablja</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Postopek ni uspel</text>
+    <text id="IDS_COM_POP_SAVING_ING">Shranjujem</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Učinek prehoda</text>
+    <text id="IDS_COM_BODY_MUSIC">Glasba</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d predmetov izbranih</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Ustvarim mapo?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Brisanje ni uspelo</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1 predmet je izbran</text>
+    <text id="IDS_COM_BODY_VIDEO">Video</text>
+    <text id="IDS_IV_OPT_ZOOM">Povečava</text>
+    <text id="IDS_COM_BODY_COPY">Kopiraj</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Mavrica</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Interval diaprojekcije</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Video predvajalnik</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Diaprojekcija</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">sekund</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Zavrti v levo</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Stran</text>
+    <text id="IDS_COM_POP_COPYING_ING">Kopiram ...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 sekund</text>
+    <text id="IDS_COM_POP_PROCESSING">Obdelujem...</text>
+    <text id="IDS_COM_BODY_GALLERY">Galerija</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Brez imena</text>
+    <text id="IDS_COM_BODY_IMAGES">Slike</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Zatemnitev</text>
+    <text id="IDS_COM_HEADER_EDIT">Uredi</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 sekund</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Ni izbranih predmetov</text>
+    <text id="IDS_COM_POP_DELETED">Izbrisano</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Odstranim?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Že obstaja. Prepišem?</text>
+    <text id="IDS_COM_POP_DELETING">Brišem</text>
+    <text id="IDS_COM_POP_DONE">Končano</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 sekunde</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Mapa s slikami</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Zavrti v desno</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Ponovi</text>
+    <text id="IDS_COM_POP_SAVED">Shranjeno</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Raztopi</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Naključno</text>
+    <text id="IDS_COM_POP_MOVING">Premikam</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Premikanje ni uspelo</text>
+    <text id="IDS_COM_BODY_VIDEOS">Videoposnetki</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Nepodprta vrsta datoteke</text>
+    <text id="IDS_COM_BODY_RENAME">Preimenuj</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Končano</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Izberi vse</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Vsi albumi</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Spremeni ime</text>
+    <text id="IDS_COM_BODY_MOVE">Premakni</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Brisanje ni mogoče</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Zavrti v desno</text>
+    <text id="IDS_IV_BODY_INTERVAL">Interval</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Že obstaja</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Ustvari album</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Ni predmetov</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Zastor</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Shranjevanje ni uspelo</text>
+</string_table>
diff --git a/res/spa-ES.xml b/res/spa-ES.xml
new file mode 100644 (file)
index 0000000..650c027
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Alcanzado el número máximo de caracteres</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Presentación de diapositivas</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Alcanzado el número máximo de archivos</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Configuración de presentación de diapositivas</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Seleccionar todo</text>
+    <text id="IDS_COM_POP_DELETE_Q">¿Eliminar?</text>
+    <text id="IDS_COM_BODY_EDIT">Editar</text>
+    <text id="IDS_COM_BODY_MESSAGE">Mensajes</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Descargas</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Nombre de álbum ya en uso</text>
+    <text id="IDS_COM_OPT_SAVE">Guardar</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 segundos</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Activación</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Girar a la izquierda</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 segundos</text>
+    <text id="IDS_COM_BODY_MESSAGES">Mensajes</text>
+    <text id="IDS_COM_SK_DONE">Hecho</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Imposible cambiar el nombre</text>
+    <text id="IDS_COM_BODY_EMAIL">Correo electrónico</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Caracteres no válidos</text>
+    <text id="IDS_COM_POP_MOVED">Movido</text>
+    <text id="IDS_COM_POP_CANCEL">Cancelar</text>
+    <text id="IDS_COM_BODY_SELECTED">Seleccionado</text>
+    <text id="IDS_COM_BODY_DELETE">Eliminar</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Subtítulos</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Cancelar</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Número máximo de caracteres (%d) alcanzado</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Número máximo de caracteres (%d) alcanzado</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Pres diap</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Diapositiva</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Iniciar presentación de diapositivas</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s ya existe</text>
+    <text id="IDS_COM_BODY_LOADING">Cargando...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Álbumes</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">No se puede cambiar el nombre. Nombre de álbum ya en uso</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Error de funcionamiento</text>
+    <text id="IDS_COM_POP_SAVING_ING">Guardando...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Efecto de transición</text>
+    <text id="IDS_COM_BODY_MUSIC">Música</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d elementos seleccionados</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">¿Crear carpeta?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Error al borrar</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1 elemento seleccionado</text>
+    <text id="IDS_COM_BODY_VIDEO">Vídeo</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoom</text>
+    <text id="IDS_COM_BODY_COPY">Copiar</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Intervalo de presentación de diapositivas</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Reproductor de vídeo</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Presentación de diapositivas</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">segundos</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Girar a la izquierda</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Página</text>
+    <text id="IDS_COM_POP_COPYING_ING">Copiando...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 segundos</text>
+    <text id="IDS_COM_POP_PROCESSING">Procesando...</text>
+    <text id="IDS_COM_BODY_GALLERY">Galería</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Sin nombre</text>
+    <text id="IDS_COM_BODY_IMAGES">Imágenes</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Desaparición</text>
+    <text id="IDS_COM_HEADER_EDIT">Editar</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 segundos</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Ningún elemento seleccionado</text>
+    <text id="IDS_COM_POP_DELETED">Eliminado</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">¿Eliminar?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Ya existe. ¿Desea reemplazarlo?</text>
+    <text id="IDS_COM_POP_DELETING">Eliminando...</text>
+    <text id="IDS_COM_POP_DONE">Eliminar</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 segundos</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Carrete</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Girar a la derecha</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Repetir</text>
+    <text id="IDS_COM_POP_SAVED">Guardado</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Fundir</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Reproducción aleatoria</text>
+    <text id="IDS_COM_POP_MOVING">Moviendo...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Error al mover</text>
+    <text id="IDS_COM_BODY_VIDEOS">Vídeos</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Tipo de archiv no admitido</text>
+    <text id="IDS_COM_BODY_RENAME">Renombrar</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Finalizado</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Seleccionar todo</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Todos los álbumes</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Cambiar nombre</text>
+    <text id="IDS_COM_BODY_MOVE">Mover</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">No se puede eliminar</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Girar a la derecha</text>
+    <text id="IDS_IV_BODY_INTERVAL">Intervalo</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Ya existe</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Crear álbum</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Ningún elemento</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Efecto persiana</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Error al guardar</text>
+</string_table>
diff --git a/res/spa-MX.xml b/res/spa-MX.xml
new file mode 100644 (file)
index 0000000..95c416c
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Se ha alcanzado el número máximo de caracteres</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Presentación de diapositivas </text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Se ha excedido el número máximo de archivos</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Configuración de presentación de diapositivas</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Todo</text>
+    <text id="IDS_COM_POP_DELETE_Q">¿Eliminar?</text>
+    <text id="IDS_COM_BODY_EDIT">Editar</text>
+    <text id="IDS_COM_BODY_MESSAGE">Mensaje</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Descargas</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Nombre de álbum ya existe</text>
+    <text id="IDS_COM_OPT_SAVE">Guardar</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 segundos</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Activación</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Girar a la izquierda</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 segundos</text>
+    <text id="IDS_COM_BODY_MESSAGES">Mensajes</text>
+    <text id="IDS_COM_SK_DONE">Realizado</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">No se puede renombrar</text>
+    <text id="IDS_COM_BODY_EMAIL">Correo</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Caracteres no válidos</text>
+    <text id="IDS_COM_POP_MOVED">Movido</text>
+    <text id="IDS_COM_POP_CANCEL">Cancelar</text>
+    <text id="IDS_COM_BODY_SELECTED">Seleccionado</text>
+    <text id="IDS_COM_BODY_DELETE">Eliminar</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Subtítulos</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Cancelar</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Número máximo de caracteres (%d) alcanzado</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Número máximo de caracteres (%d) alcanzado</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Pres diap</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Deslizar</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Iniciar presentación de diapositivas</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s ya existe</text>
+    <text id="IDS_COM_BODY_LOADING">Cargando...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Álbumes</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">No se puede renombrar. Nombre de álbum ya existe</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Error de funcionamiento</text>
+    <text id="IDS_COM_POP_SAVING_ING">Guardando...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Efecto de transición</text>
+    <text id="IDS_COM_BODY_MUSIC">Música</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d elementos seleccionados</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">crear carpeta?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Error al eliminar</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1 elemento seleccionado</text>
+    <text id="IDS_COM_BODY_VIDEO">Video</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoom</text>
+    <text id="IDS_COM_BODY_COPY">Copiar</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Intervalo de presentación de diapositivas</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Reproductor de Video</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Presentación de diapositivas</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">segundos</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Girar a la izquierda</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Página</text>
+    <text id="IDS_COM_POP_COPYING_ING">Copiando...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 segundos</text>
+    <text id="IDS_COM_POP_PROCESSING">Procesando...</text>
+    <text id="IDS_COM_BODY_GALLERY">Galería</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Sin nombre</text>
+    <text id="IDS_COM_BODY_IMAGES">Imágenes</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Aparecer</text>
+    <text id="IDS_COM_HEADER_EDIT">Editar</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 segundos</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">No se ha seleccionado nada</text>
+    <text id="IDS_COM_POP_DELETED">Eliminado</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">¿Eliminar?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Ya existe. ¿Desea sustituirlo?</text>
+    <text id="IDS_COM_POP_DELETING">Eliminando...</text>
+    <text id="IDS_COM_POP_DONE">Realizado</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 segundos</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Carrete</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Girar a la derecha</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Repetir</text>
+    <text id="IDS_COM_POP_SAVED">Guardado</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Fundir</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Aleatorio</text>
+    <text id="IDS_COM_POP_MOVING">Moviendo…</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Error al mover</text>
+    <text id="IDS_COM_BODY_VIDEOS">Videos</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Tipo de arch. no admitido</text>
+    <text id="IDS_COM_BODY_RENAME">Renombrar</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Completo</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Todo</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Todos los álbumes</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Renombrar</text>
+    <text id="IDS_COM_BODY_MOVE">Mover</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">No puede eliminar</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Girar a la derecha</text>
+    <text id="IDS_IV_BODY_INTERVAL">Intervalo</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Ya existe</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Crear álbum</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Ningún elemento</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Persiana</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Error al guardar</text>
+</string_table>
diff --git a/res/srp-RS.xml b/res/srp-RS.xml
new file mode 100644 (file)
index 0000000..02c2fd1
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Dostignut maksimalan broj karaktera</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Slajd-šou</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Dostignut je maksimalan broj fajlova</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Podešavanja za slajd-šou</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Izaberi sve</text>
+    <text id="IDS_COM_POP_DELETE_Q">Obriši?</text>
+    <text id="IDS_COM_BODY_EDIT">Izmeni</text>
+    <text id="IDS_COM_BODY_MESSAGE">Poruka</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Preuzimanja</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Naziv albuma već u upotr.</text>
+    <text id="IDS_COM_OPT_SAVE">Sačuvaj</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 sekundi</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Aktivacija</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Rotiraj ulevo</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 sekunde</text>
+    <text id="IDS_COM_BODY_MESSAGES">Poruke</text>
+    <text id="IDS_COM_SK_DONE">Gotovo</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Nemoguće preimenovati</text>
+    <text id="IDS_COM_BODY_EMAIL">E-pošta</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Neispravni karakteri</text>
+    <text id="IDS_COM_POP_MOVED">Premešteno</text>
+    <text id="IDS_COM_POP_CANCEL">Poništi</text>
+    <text id="IDS_COM_BODY_SELECTED">Označeno</text>
+    <text id="IDS_COM_BODY_DELETE">Obriši</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Titlovi</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Poništi</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Dostignut maksimalan broj karaktera (%d)</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Dostignut maksimalan broj karaktera (%d)</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Slajd-šou</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Slajd</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Pokreni slajd-šou</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s već postoji</text>
+    <text id="IDS_COM_BODY_LOADING">Učitavanje...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albumi</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Nemoguće preimenovati. Naziv albuma već u upotrebi</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Operacija neuspešna</text>
+    <text id="IDS_COM_POP_SAVING_ING">Memorisanje...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Efekat prelaza</text>
+    <text id="IDS_COM_BODY_MUSIC">Muzika</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d stavke/i označene/o</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Kreiraj folder?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Brisanje neuspešno</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1 stavka izabrana</text>
+    <text id="IDS_COM_BODY_VIDEO">Video zapis</text>
+    <text id="IDS_IV_OPT_ZOOM">Zumiranje</text>
+    <text id="IDS_COM_BODY_COPY">Kopiraj</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Interval za slajd-šou</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Video plejer</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Slajd-šou</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">sekunde</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Rotiraj ulevo</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Strana</text>
+    <text id="IDS_COM_POP_COPYING_ING">Kopiranje...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 sekundi</text>
+    <text id="IDS_COM_POP_PROCESSING">Obrada...</text>
+    <text id="IDS_COM_BODY_GALLERY">Galerija</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Nema imena</text>
+    <text id="IDS_COM_BODY_IMAGES">Slike</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Izbledi</text>
+    <text id="IDS_COM_HEADER_EDIT">Izmeni</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 sekundi</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Nema izabranih stavki</text>
+    <text id="IDS_COM_POP_DELETED">Obrisano</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Ukloni?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Već postoji. Prebriši?</text>
+    <text id="IDS_COM_POP_DELETING">Brisanje...</text>
+    <text id="IDS_COM_POP_DONE">Gotovo</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 sekunde</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Traka kamere</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Rotiraj udesno</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Ponovi</text>
+    <text id="IDS_COM_POP_SAVED">Sačuvano</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Rastvori</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Nasumično</text>
+    <text id="IDS_COM_POP_MOVING">Premeštanje</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Premeštanje neuspešno</text>
+    <text id="IDS_COM_BODY_VIDEOS">Video zapisi</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Nepodržani tip fajla</text>
+    <text id="IDS_COM_BODY_RENAME">Preimenuj</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Završeno</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Izab. sve</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Svi albumi</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Promeni ime</text>
+    <text id="IDS_COM_BODY_MOVE">Premesti</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Nemoguće obrisati</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Rotiraj udesno</text>
+    <text id="IDS_IV_BODY_INTERVAL">Interval</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Već postoji</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Kreiraj album</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Nema stavki</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Roletna</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Memorisanje neuspešno</text>
+</string_table>
diff --git a/res/swe-SE.xml b/res/swe-SE.xml
new file mode 100644 (file)
index 0000000..951e9bf
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Maximalt antal tecken har använts</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Bildspel</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Högstsa antal filer har överskridits</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Bildspelsinställningar</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Välj alla</text>
+    <text id="IDS_COM_POP_DELETE_Q">Radera?</text>
+    <text id="IDS_COM_BODY_EDIT">Redigera</text>
+    <text id="IDS_COM_BODY_MESSAGE">Meddelande</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Nedladdningar</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Albumnamnet används redan</text>
+    <text id="IDS_COM_OPT_SAVE">Spara</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 sekunder</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Aktivera</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Rotera moturs</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 sekunder</text>
+    <text id="IDS_COM_BODY_MESSAGES">Meddelanden</text>
+    <text id="IDS_COM_SK_DONE">Klar</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Kan inte byta namn</text>
+    <text id="IDS_COM_BODY_EMAIL">E-post</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Ogiltiga tecken</text>
+    <text id="IDS_COM_POP_MOVED">Flyttad</text>
+    <text id="IDS_COM_POP_CANCEL">Avbryt</text>
+    <text id="IDS_COM_BODY_SELECTED">Markerade</text>
+    <text id="IDS_COM_BODY_DELETE">Radera</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Textning</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Avbryt</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Högsta antal tecken (%d) har uppnåtts</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Högsta antal tecken (%d) har uppnåtts</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Bildspel</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Bild</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Starta bildspel</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s finns redan</text>
+    <text id="IDS_COM_BODY_LOADING">Laddar...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Album</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Kan inte byta namn. Albumnamnet används redan</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Åtgärden misslyckades</text>
+    <text id="IDS_COM_POP_SAVING_ING">Sparar...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Övergångseffekt</text>
+    <text id="IDS_COM_BODY_MUSIC">Musik</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d objekt valda</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Skapa mapp?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Radering misslyckades</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1 valt objekt</text>
+    <text id="IDS_COM_BODY_VIDEO">Videoklipp</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoom</text>
+    <text id="IDS_COM_BODY_COPY">Kopiera</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Bildspelsintervall</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Videospelare</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Bildspel</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">sekunder</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Rotera moturs</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Sida</text>
+    <text id="IDS_COM_POP_COPYING_ING">Kopierar...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 sekunder</text>
+    <text id="IDS_COM_POP_PROCESSING">Bearbetar...</text>
+    <text id="IDS_COM_BODY_GALLERY">Galleri</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Inget namn</text>
+    <text id="IDS_COM_BODY_IMAGES">Bilder</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Tona</text>
+    <text id="IDS_COM_HEADER_EDIT">Redigera</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 sekunder</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Inga objekt valda</text>
+    <text id="IDS_COM_POP_DELETED">Raderad</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Ta bort?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Används redan.\nSkriv över?</text>
+    <text id="IDS_COM_POP_DELETING">Raderar...</text>
+    <text id="IDS_COM_POP_DONE">Klar</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 sekunder</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Kamerarulle</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Rotera medurs</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Upprepa</text>
+    <text id="IDS_COM_POP_SAVED">Sparad</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Lös upp</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Blanda</text>
+    <text id="IDS_COM_POP_MOVING">Flyttar...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Det gick inte att flytta</text>
+    <text id="IDS_COM_BODY_VIDEOS">Videoklipp</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Filtypen stöds ej</text>
+    <text id="IDS_COM_BODY_RENAME">Byt namn</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Slutförd</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Välj allt</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Alla album</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Byt namn</text>
+    <text id="IDS_COM_BODY_MOVE">Flytta</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Kan inte radera</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Rotera medurs</text>
+    <text id="IDS_IV_BODY_INTERVAL">Intervall</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Finns redan</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Skapa album</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Inga objekt</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Fördragning</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Det gick inte att spara</text>
+</string_table>
diff --git a/res/tha-TH.xml b/res/tha-TH.xml
new file mode 100644 (file)
index 0000000..d1abb35
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">จำนวนตัวอักษรเกินขอบเขต</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">เลื่อนชม</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">เกิน​จำนวน​ไฟล์​สูง​สุด​แล้ว</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">การ​กำหนด​การ​แสดง​สไลด์</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">เลือก​ทั้ง​หมด</text>
+    <text id="IDS_COM_POP_DELETE_Q">ลบ?</text>
+    <text id="IDS_COM_BODY_EDIT">แก้ไข</text>
+    <text id="IDS_COM_BODY_MESSAGE">ข้อ​ความ</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">ดาวน์​โหลด</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">ชื่อ​อัลบั้ม​ใช้​อยู่​แล้ว</text>
+    <text id="IDS_COM_OPT_SAVE">บันทึก</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 ​วินาที</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">ใช้​งาน</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">หมุน​ซ้าย</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 ​วินาที</text>
+    <text id="IDS_COM_BODY_MESSAGES">ข้อความ</text>
+    <text id="IDS_COM_SK_DONE">เรียบร้อย</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">เปลี่ยน​ชื่อ​ไม่​ได้</text>
+    <text id="IDS_COM_BODY_EMAIL">อีเมล์</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">อักขระ​ไม่​ถูก​ต้อง</text>
+    <text id="IDS_COM_POP_MOVED">ย้าย​เรียบ​ร้อย</text>
+    <text id="IDS_COM_POP_CANCEL">ยก​เลิก</text>
+    <text id="IDS_COM_BODY_SELECTED">เลือก</text>
+    <text id="IDS_COM_BODY_DELETE">ลบ</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">คำ​บรรยาย</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">ยก​เลิก</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">ถึง​จำนวน​ตัว​อักษร​สูง​สุด (%d)</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">ถึง​จำนวน​ตัว​อักษร​สูง​สุด (%d)</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">สไลด์​โชว์</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">สไลด์</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">เริ่ม​การ​แสดง​สไลด์</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s มีอยู่แล้ว</text>
+    <text id="IDS_COM_BODY_LOADING">โหลด...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">อัลบั้ม</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">ไม่​สามารถ​เปลี่ยน​ชื่อ ชื่อ​อัลบั้ม​ใช้​อยู่​แล้ว</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">การ​ทำ​งาน​ล้ม​เหลว</text>
+    <text id="IDS_COM_POP_SAVING_ING">บันทึก...  </text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">เอ​ฟเฟ็กต์​การ​เปลี่ยน</text>
+    <text id="IDS_COM_BODY_MUSIC">เพลง</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">เลือก %d ​รายการแล้ว</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">สร้าง​แฟ้มใหม่?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">ลบ​ผิด​พลาด</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">เลือก 1 ​รายการ</text>
+    <text id="IDS_COM_BODY_VIDEO">วี​ดี​โอ</text>
+    <text id="IDS_IV_OPT_ZOOM">ซูม</text>
+    <text id="IDS_COM_BODY_COPY">คัด​ลอก</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">ไอ​ริ​ส</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">ช่วง​เวลา​การ​แสดง​แบบ​สไลด์</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">เครื่อง​เล่น​วีดีโอ</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">สไลด์โชว์</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">วินาที</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">หมุน​ซ้าย</text>
+    <text id="IDS_EBOOK_BODY_PAGE">หน้า</text>
+    <text id="IDS_COM_POP_COPYING_ING">กำลัง​คัด​ลอก...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 วินาที</text>
+    <text id="IDS_COM_POP_PROCESSING">ดำเนิน​การ...</text>
+    <text id="IDS_COM_BODY_GALLERY">แกลเลอรี่</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">ไม่​มี​ชื่อ</text>
+    <text id="IDS_COM_BODY_IMAGES">รูป​ภาพ</text>
+    <text id="IDS_MEDIABR_BODY_FADE">จางหายไป</text>
+    <text id="IDS_COM_HEADER_EDIT">แก้ไข</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5  ​วินาที</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">ไม่​มี​รายการ​ที่​เลือก</text>
+    <text id="IDS_COM_POP_DELETED">ลบ​แล้ว</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">ลบ?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">มี​อยู่​แล้ว เขียน​ทับ?</text>
+    <text id="IDS_COM_POP_DELETING">ลบ...</text>
+    <text id="IDS_COM_POP_DONE">เรียบร้อย</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 วินาที</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">การ​หมุน​กล้อง</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">หมุน​ขวา</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">ซ้ำ</text>
+    <text id="IDS_COM_POP_SAVED">บันทึก\nเรียบร้อย</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">ละลาย</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">สับ​เพลง</text>
+    <text id="IDS_COM_POP_MOVING">กำลัง​ย้าย...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">การ​ย้าย\n​ผิด​พลาด</text>
+    <text id="IDS_COM_BODY_VIDEOS">วี​ดี​โอ</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">ไม่​รอง​รับ​\nชนิด​ไฟล์</text>
+    <text id="IDS_COM_BODY_RENAME">เปลี่ยน​ชื่อ</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">เรียบ​ร้อย</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">เลือก​หมด</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">อัลบั้ม​ทั้ง​หมด</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">เปลี่ยน​ชื่อ</text>
+    <text id="IDS_COM_BODY_MOVE">ย้าย</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">ลบ​ไม่​ได้</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">หมุน​ขวา</text>
+    <text id="IDS_IV_BODY_INTERVAL">ช่วง​เวลา</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">มี​อยู่​แล้ว</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">สร้าง​อัลบั้ม​ใหม่</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">ไม่มีรายการ</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">บัง</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">การ​บันทึก​ผิด​พลาด</text>
+</string_table>
diff --git a/res/tur-TR.xml b/res/tur-TR.xml
new file mode 100644 (file)
index 0000000..0c7cd7b
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Maksimum karakter sayısına ulaşıldı</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Slayt gösterisi</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Maksimum dosya sayısı aşıldı</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Slayt gösterisi ayarları</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Hepsini seç</text>
+    <text id="IDS_COM_POP_DELETE_Q">Sil?</text>
+    <text id="IDS_COM_BODY_EDIT">Düzenle</text>
+    <text id="IDS_COM_BODY_MESSAGE">Mesaj</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">İndirilenler</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Albüm adı zaten kullanılıyor</text>
+    <text id="IDS_COM_OPT_SAVE">Kaydet</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 saniye</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Etkinleştirme</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Saat yönünün tersine döndür</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 saniye</text>
+    <text id="IDS_COM_BODY_MESSAGES">Mesajlar</text>
+    <text id="IDS_COM_SK_DONE">Kaydet</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Yeniden adlandırılamıyor. Dosya kullanımda.</text>
+    <text id="IDS_COM_BODY_EMAIL">E-posta</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Geçersiz karakter</text>
+    <text id="IDS_COM_POP_MOVED">Taşındı</text>
+    <text id="IDS_COM_POP_CANCEL">İptal</text>
+    <text id="IDS_COM_BODY_SELECTED">Seçili</text>
+    <text id="IDS_COM_BODY_DELETE">Sil</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Altyazılar</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">İptal</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Maksimum karakter sayısına (%d) ulaşıldı</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Maksimum karakter sayısına (%d) ulaşıldı</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Slayt şov</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Slayt</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Slayt gösterisini başlat</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s zaten var</text>
+    <text id="IDS_COM_BODY_LOADING">Yükleniyor...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albümler</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Yeniden adlandırılamıyor. Albüm adı zaten kullanılıyor</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">İşlem başarısız</text>
+    <text id="IDS_COM_POP_SAVING_ING">Kaydediliyor…</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Geçiş efekti</text>
+    <text id="IDS_COM_BODY_MUSIC">Müzik</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d öğe seçildi</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Klasör oluşturulsun mu?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Silinemedi</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1 öğe seçildi</text>
+    <text id="IDS_COM_BODY_VIDEO">Video</text>
+    <text id="IDS_IV_OPT_ZOOM">Yakınlaştır</text>
+    <text id="IDS_COM_BODY_COPY">Kopyala</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">İris</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Slayt gösterisi aralığı</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Video Oynatıcı</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Slayt gösterisi</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">saniye</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Saat yönünün tersine döndür</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Sayfa</text>
+    <text id="IDS_COM_POP_COPYING_ING">Kopyalanıyor...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 saniye</text>
+    <text id="IDS_COM_POP_PROCESSING">Uygulanıyor...</text>
+    <text id="IDS_COM_BODY_GALLERY">Galeri</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">İsim yok</text>
+    <text id="IDS_COM_BODY_IMAGES">Resimler</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Soldur</text>
+    <text id="IDS_COM_HEADER_EDIT">Düzenle</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 saniye</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Seçili öğe yok</text>
+    <text id="IDS_COM_POP_DELETED">Silindi</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Kaldır?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Zaten var. Üzerine yazılsın mı?</text>
+    <text id="IDS_COM_POP_DELETING">Siliniyor...</text>
+    <text id="IDS_COM_POP_DONE">Tamamlandı</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 saniye</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Kamera klasörü</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Saat yönünde döndür</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Tekrarla</text>
+    <text id="IDS_COM_POP_SAVED">Kaydedildi</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Çöz</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Karışık</text>
+    <text id="IDS_COM_POP_MOVING">Taşıyor...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Taşıma başarısız</text>
+    <text id="IDS_COM_BODY_VIDEOS">Videolar</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Desteklenmeyen dosya türü</text>
+    <text id="IDS_COM_BODY_RENAME">Yeniden adlandır</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Tamamlandı</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Tümünü seç</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Tüm albümler</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">İsim değiştir</text>
+    <text id="IDS_COM_BODY_MOVE">Taşı</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Silinemiyor</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Saat yönünde döndür</text>
+    <text id="IDS_IV_BODY_INTERVAL">Aralık</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Zaten var</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Albüm oluştur</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Öğe yok</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Kör</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Kaydetme başarısız</text>
+</string_table>
diff --git a/res/ukr-UA.xml b/res/ukr-UA.xml
new file mode 100644 (file)
index 0000000..f950606
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Досягнуто максимальної кількості символів</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Слайд-шоу</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Перевищено максимальну кількість файлів</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Установки слайд-шоу</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Вибрати всі</text>
+    <text id="IDS_COM_POP_DELETE_Q">Видалити?</text>
+    <text id="IDS_COM_BODY_EDIT">Редагувати</text>
+    <text id="IDS_COM_BODY_MESSAGE">Повідомлення</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Завантаження</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Ім’я альбому вже викор.</text>
+    <text id="IDS_COM_OPT_SAVE">Зберегти</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 секунд</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Активація</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Обернути ліворуч</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 секунди</text>
+    <text id="IDS_COM_BODY_MESSAGES">Повідомлення</text>
+    <text id="IDS_COM_SK_DONE">Готово</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Неможливо перейменувати</text>
+    <text id="IDS_COM_BODY_EMAIL">Email</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Хибні символи</text>
+    <text id="IDS_COM_POP_MOVED">Переміщено</text>
+    <text id="IDS_COM_POP_CANCEL">Скасувати</text>
+    <text id="IDS_COM_BODY_SELECTED">Вибране</text>
+    <text id="IDS_COM_BODY_DELETE">Видалити</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Субтитри</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Скасувати</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Досягнуто максимальної кількості символів: %d</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Досягнуто максимальної кількості символів: %d</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Слайд-шоу</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Слайд</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Розпочати слайд-шоу</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s вже існує</text>
+    <text id="IDS_COM_BODY_LOADING">Завантаження...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Альбоми</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Неможливо перейменувати. Ім’я альбому вже використовується</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Збій операції</text>
+    <text id="IDS_COM_POP_SAVING_ING">Збереження...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Ефект переходу</text>
+    <text id="IDS_COM_BODY_MUSIC">Музика</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">Вибрано %d об’єктів</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Створити папку?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Збій видалення</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">Вибрано 1 об’єкт</text>
+    <text id="IDS_COM_BODY_VIDEO">Відео</text>
+    <text id="IDS_IV_OPT_ZOOM">Масштаб</text>
+    <text id="IDS_COM_BODY_COPY">Копіювати</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Ірісова діафрагма</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Інтервал слайд-шоу</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Відеоплеєр</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Слайд-шоу</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">секунди</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Обернути ліворуч</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Сторінка</text>
+    <text id="IDS_COM_POP_COPYING_ING">Копіювання...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 секунд</text>
+    <text id="IDS_COM_POP_PROCESSING">Обробка...</text>
+    <text id="IDS_COM_BODY_GALLERY">Галерея</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Немає імені</text>
+    <text id="IDS_COM_BODY_IMAGES">Зображення</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Загасання</text>
+    <text id="IDS_COM_HEADER_EDIT">Редагувати</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 секунд</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Об’єкти не вибрані</text>
+    <text id="IDS_COM_POP_DELETED">Видалено</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Видалити?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Вже існує. Переписати?</text>
+    <text id="IDS_COM_POP_DELETING">Видалення...</text>
+    <text id="IDS_COM_POP_DONE">Готово</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 секунди</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Плівка камери</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">Обернути праворуч</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Повторення</text>
+    <text id="IDS_COM_POP_SAVED">Збережено</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Розчинення</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Випадковий порядок</text>
+    <text id="IDS_COM_POP_MOVING">Переміщення...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Збій переміщення</text>
+    <text id="IDS_COM_BODY_VIDEOS">Відео</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Непідтримуваний тип файла</text>
+    <text id="IDS_COM_BODY_RENAME">Перейменувати</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Завершено</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Вибр. всі</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Усі альбоми</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Змінити ім'я</text>
+    <text id="IDS_COM_BODY_MOVE">Перемістити</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Неможливо видалити</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">Обернути праворуч</text>
+    <text id="IDS_IV_BODY_INTERVAL">Інтервал</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Вже існує</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Створити альбом</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Немає об’єктів</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Жалюзі</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Збій збереження</text>
+</string_table>
diff --git a/res/urd-IN.xml b/res/urd-IN.xml
new file mode 100644 (file)
index 0000000..e648629
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">کریکٹر کی حد ہو گئی</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">سلائیڈ شو</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">فائلوں کی زیادہ سے زیادہ تعداد تجاوز کرگئی</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">سلائڈ شو سیٹنگیں</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">تمام منتخب کریں</text>
+    <text id="IDS_COM_POP_DELETE_Q">مٹانا؟</text>
+    <text id="IDS_COM_BODY_EDIT">تبدیلی</text>
+    <text id="IDS_COM_BODY_MESSAGE">پیغام</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">ڈاؤن لوڈز</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">البم نام پہلے استعمال میں</text>
+    <text id="IDS_COM_OPT_SAVE">محفوظ</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 سیکنڈز</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">ایکٹیویشن</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">بائيں گھمائيں</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 سیکینڈ</text>
+    <text id="IDS_COM_BODY_MESSAGES">پیغامات</text>
+    <text id="IDS_COM_SK_DONE">ٹھیک ہے</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">نیا نام دینے سے قاصر</text>
+    <text id="IDS_COM_BODY_EMAIL">ای میل</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">ناجائز حروف</text>
+    <text id="IDS_COM_POP_MOVED">منتقل ہوا</text>
+    <text id="IDS_COM_POP_CANCEL">منسوخ</text>
+    <text id="IDS_COM_BODY_SELECTED">انتخاب ہوگیا</text>
+    <text id="IDS_COM_BODY_DELETE">مٹانا</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">ذیلی عنوانات</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">منسوخ</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">حروف کی انتہائی تعداد (%d) آن پہنچی</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">حروف کی انتہائی تعداد (%d) آن پہنچی</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">سلائڈ شو</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">سلائیڈ</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">سلائڈ شو شروع کریں</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s پہلے سے موجود ہے</text>
+    <text id="IDS_COM_BODY_LOADING">لوڈنگ...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">البمز</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">نیا نام دینے سے قاصر۔ البم نام پہلے سے استعمال میں ہے</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">عملیہ ناکام ہوگیا</text>
+    <text id="IDS_COM_POP_SAVING_ING">محفوظ۔۔۔</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">تبدیل کا اثر</text>
+    <text id="IDS_COM_BODY_MUSIC">میوزک</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d اشیا منتخب ہوگئیں</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">فولڈر تخلیق کریں؟</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">مٹانا فیل</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1 شے منتخب ہوگئی</text>
+    <text id="IDS_COM_BODY_VIDEO">ویڈیو</text>
+    <text id="IDS_IV_OPT_ZOOM">زوم</text>
+    <text id="IDS_COM_BODY_COPY">کاپی</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">وقفہ سلائڈ شو</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">ویڈیو پلیئر</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">سلائڈ شو</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">سیکنڈز</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">بائيں گھمائيں</text>
+    <text id="IDS_EBOOK_BODY_PAGE">صفحہ</text>
+    <text id="IDS_COM_POP_COPYING_ING">کاپی ہورہی ہے...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 سیکنڈز</text>
+    <text id="IDS_COM_POP_PROCESSING">پروسیسنگ</text>
+    <text id="IDS_COM_BODY_GALLERY">گیلری</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">نام نہیں</text>
+    <text id="IDS_COM_BODY_IMAGES">تصویر</text>
+    <text id="IDS_MEDIABR_BODY_FADE">فیڈ</text>
+    <text id="IDS_COM_HEADER_EDIT">تبدیلی</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 سیکنڈز</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">کوئی آئٹم پشند نہیں کیا</text>
+    <text id="IDS_COM_POP_DELETED">مٹ گیا</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">مٹائیں؟</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">پہلے سے موجود ہے۔ اس کے اوپر لکھیں؟</text>
+    <text id="IDS_COM_POP_DELETING">مٹ رہا ہے...</text>
+    <text id="IDS_COM_POP_DONE">ٹھیک ہے</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 سیکینڈ</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">کیمرا رول کریں</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">دائيں طرف گھمائيں</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">دھرائیں</text>
+    <text id="IDS_COM_POP_SAVED">محفوظ ہوا</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">گھل جانا</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">شفل</text>
+    <text id="IDS_COM_POP_MOVING">بھیج رہا ہے...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">ہلانے فیل</text>
+    <text id="IDS_COM_BODY_VIDEOS">ویڈیوز</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">غیر تائید کردہ فائل قسم</text>
+    <text id="IDS_COM_BODY_RENAME">نام بدلیں</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">مکمل</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">سب منتخب</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">تمام البمز</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">نام میں تبدیلی</text>
+    <text id="IDS_COM_BODY_MOVE">منتقل</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">مٹا نہیں سکا</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">دائيں طرف گھمائيں</text>
+    <text id="IDS_IV_BODY_INTERVAL">وقفہ</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">پہلے سے موجود</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">البم تخلیق کریں</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">ائیٹمز نہیں ہے</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">چلمن</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">مہفوظ کرنا فیل</text>
+</string_table>
diff --git a/res/uzb-UZ.xml b/res/uzb-UZ.xml
new file mode 100644 (file)
index 0000000..690a353
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Belgilar soni ruxsat etilgan maksimal miqdorga yetdi</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Slayd-shou</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">Fayllar soni maksimal miqdordan oshib ketdi</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">Slayd-shou parametrlari</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Barchasini tanlash</text>
+    <text id="IDS_COM_POP_DELETE_Q">O'chirilsinmi?</text>
+    <text id="IDS_COM_BODY_EDIT">Tahrirlash</text>
+    <text id="IDS_COM_BODY_MESSAGE">Xabar</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Yuklanishlar</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Albom nomi ishlatilmoqda</text>
+    <text id="IDS_COM_OPT_SAVE">Saqlash</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 soniya</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Faollashtirish</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">Chapga aylantir.</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 soniya</text>
+    <text id="IDS_COM_BODY_MESSAGES">Xabarlar</text>
+    <text id="IDS_COM_SK_DONE">Bajarildi</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Nomini o‘zgartirib bo‘lmaydi</text>
+    <text id="IDS_COM_BODY_EMAIL">E-pochta</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">Mumkin bo‘lmagan belgilar</text>
+    <text id="IDS_COM_POP_MOVED">Ko‘chirilgan</text>
+    <text id="IDS_COM_POP_CANCEL">Bekor qilish</text>
+    <text id="IDS_COM_BODY_SELECTED">Tanlangan</text>
+    <text id="IDS_COM_BODY_DELETE">O'chirish</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Tagsarlavhalar</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Bekor qilish</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Belgilar soni ruxsat etilgan maksimal miqdorga (%d) yetdi</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Belgilar soni ruxsat etilgan maksimal miqdorga (%d) yetdi</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Slayd-shou</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Slayd</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">Slayd-shouni boshlash</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s avvaldan mavjud</text>
+    <text id="IDS_COM_BODY_LOADING">Yuklanmoqda...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albom</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Nomni o‘zgartirib bo‘lmaydi. Albom nomi avvaldan ishlatilmoqda</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Operatsiya bajarilmadi</text>
+    <text id="IDS_COM_POP_SAVING_ING">Saqlanmoqda...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Almashuvchi effekt</text>
+    <text id="IDS_COM_BODY_MUSIC">Musiqa</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">%d element tanlangan</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Jild yaratilsinmi?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Yo‘q qilish bajarilmadi</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">1 element tanlangan</text>
+    <text id="IDS_COM_BODY_VIDEO">Video</text>
+    <text id="IDS_IV_OPT_ZOOM">Masshtabni o‘zgartirish</text>
+    <text id="IDS_COM_BODY_COPY">Nusxa olish</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Gulsapsar</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Slayd-shou intervali</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Video pleyer</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">Slayd-shou</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">soniya</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">Chapga aylantir.</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Sahifa</text>
+    <text id="IDS_COM_POP_COPYING_ING">Nusxa ko‘chirilmoqda...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 soniya</text>
+    <text id="IDS_COM_POP_PROCESSING">Bajarilmoqda...</text>
+    <text id="IDS_COM_BODY_GALLERY">Galereya</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Nom yo‘q</text>
+    <text id="IDS_COM_BODY_IMAGES">Tasvirlar</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Xiralashish</text>
+    <text id="IDS_COM_HEADER_EDIT">Tahrirlash</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 soniya</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">Element tanlanmagan</text>
+    <text id="IDS_COM_POP_DELETED">O'chirildi</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Olib tashlansinmi?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Avvaldan mavjud. Ustidan yozilsinmi?</text>
+    <text id="IDS_COM_POP_DELETING">O'chirilmoqda…</text>
+    <text id="IDS_COM_POP_DONE">Bajarildi</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 soniya</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Kamera roli</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">O‘ngga aylantir.</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Takrorlash</text>
+    <text id="IDS_COM_POP_SAVED">Saqlandi</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Erish</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Tasodifiy</text>
+    <text id="IDS_COM_POP_MOVING">Ko‘chirilmoqda...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Ko‘chirib bo‘lmadi</text>
+    <text id="IDS_COM_BODY_VIDEOS">Videolar</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">Quvvat-maydigan fayl turi</text>
+    <text id="IDS_COM_BODY_RENAME">Nom o‘zgartirish</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Yakunlandi</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Bar. tanla</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Barcha albomlar</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Nomni o‘zgartirish</text>
+    <text id="IDS_COM_BODY_MOVE">Ko‘chirish</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Yo‘q qilib bo‘lmaydi</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">O‘ngga aylantir.</text>
+    <text id="IDS_IV_BODY_INTERVAL">Interval</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Avvaldan mavjud</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Albom yaratish</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Elementlar yo‘q</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Jalyuzi</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">Saqlab bo‘lmadi</text>
+</string_table>
diff --git a/res/zho-CN.xml b/res/zho-CN.xml
new file mode 100644 (file)
index 0000000..d579042
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">已达到最大字符限制</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">幻灯片</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">已超过最大文件数</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">幻灯片播放设定</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">全选</text>
+    <text id="IDS_COM_POP_DELETE_Q">删除?</text>
+    <text id="IDS_COM_BODY_EDIT">编辑</text>
+    <text id="IDS_COM_BODY_MESSAGE">信息</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">下载列表</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">相册名已使用</text>
+    <text id="IDS_COM_OPT_SAVE">存储</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 秒</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">激活</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">向左旋转</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 秒</text>
+    <text id="IDS_COM_BODY_MESSAGES">信息</text>
+    <text id="IDS_COM_SK_DONE">完成</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">无法重命名</text>
+    <text id="IDS_COM_BODY_EMAIL">电子邮件</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">字符无效</text>
+    <text id="IDS_COM_POP_MOVED">已移动</text>
+    <text id="IDS_COM_POP_CANCEL">取消</text>
+    <text id="IDS_COM_BODY_SELECTED">已选择</text>
+    <text id="IDS_COM_BODY_DELETE">删除</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">字幕</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">取消</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">已达到最大字符数(%d)</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">已达到最大字符数(%d)</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">幻灯片</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">幻灯片</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">开始播放幻灯片</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s 已存在</text>
+    <text id="IDS_COM_BODY_LOADING">载入中…</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">相册</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">无法重命名。相册名已使用</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">操作失败</text>
+    <text id="IDS_COM_POP_SAVING_ING">正在保存...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">转换效果</text>
+    <text id="IDS_COM_BODY_MUSIC">音乐</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">已选择%d个项目</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">创建文件夹吗?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">删除失败</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">已选择1个项目</text>
+    <text id="IDS_COM_BODY_VIDEO">录像</text>
+    <text id="IDS_IV_OPT_ZOOM">缩放</text>
+    <text id="IDS_COM_BODY_COPY">复制</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">彩色效果</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">幻灯片播放间隔</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">视频播放器</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">幻灯片</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">秒</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">向左旋转</text>
+    <text id="IDS_EBOOK_BODY_PAGE">页面</text>
+    <text id="IDS_COM_POP_COPYING_ING">正在复制...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 秒</text>
+    <text id="IDS_COM_POP_PROCESSING">处理中...</text>
+    <text id="IDS_COM_BODY_GALLERY">图库</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">无名称</text>
+    <text id="IDS_COM_BODY_IMAGES">图片</text>
+    <text id="IDS_MEDIABR_BODY_FADE">淡出</text>
+    <text id="IDS_COM_HEADER_EDIT">编辑</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 秒</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">未选择项目</text>
+    <text id="IDS_COM_POP_DELETED">已删除</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">移除?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">已存在。覆盖?</text>
+    <text id="IDS_COM_POP_DELETING">删除中..</text>
+    <text id="IDS_COM_POP_DONE">完成</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 秒</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">滚动照相机</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">向右旋转</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">重复</text>
+    <text id="IDS_COM_POP_SAVED">已保存</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">溶解</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">随机播放</text>
+    <text id="IDS_COM_POP_MOVING">移动中...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">移动失败</text>
+    <text id="IDS_COM_BODY_VIDEOS">视频</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">不支持的文件类型</text>
+    <text id="IDS_COM_BODY_RENAME">重命名</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">已完成</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">选择全部</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">所有相册</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">更改名称</text>
+    <text id="IDS_COM_BODY_MOVE">移动</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">无法删除</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">向右旋转</text>
+    <text id="IDS_IV_BODY_INTERVAL">间隔</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">已经存在</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">新建相册</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">无项目</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">百叶窗</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">储存失败</text>
+</string_table>
diff --git a/res/zho-HK.xml b/res/zho-HK.xml
new file mode 100644 (file)
index 0000000..c98e831
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">字元數目已達上限</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">投影片播放</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">已超過檔案數量上限</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">投影片設定</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">選擇全部</text>
+    <text id="IDS_COM_POP_DELETE_Q">刪除嗎?</text>
+    <text id="IDS_COM_BODY_EDIT">編輯</text>
+    <text id="IDS_COM_BODY_MESSAGE">訊息</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">下載項目</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">相簿名稱已使用</text>
+    <text id="IDS_COM_OPT_SAVE">儲存</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 秒</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">啟動</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">左轉</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 秒</text>
+    <text id="IDS_COM_BODY_MESSAGES">訊息</text>
+    <text id="IDS_COM_SK_DONE">完成</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">無法重新命名</text>
+    <text id="IDS_COM_BODY_EMAIL">電子郵件</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">字元無效</text>
+    <text id="IDS_COM_POP_MOVED">已移動</text>
+    <text id="IDS_COM_POP_CANCEL">取消</text>
+    <text id="IDS_COM_BODY_SELECTED">已選擇</text>
+    <text id="IDS_COM_BODY_DELETE">刪除</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">字幕</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">取消</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">已達字元數目上限 (%d)</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">已達字元數目上限 (%d)</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">投影片放映</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">滑動</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">開始播放投影片</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s 已存在</text>
+    <text id="IDS_COM_BODY_LOADING">正在載入...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">相薄</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">無法重新命名。相簿名稱已使用</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">操作失敗</text>
+    <text id="IDS_COM_POP_SAVING_ING">正在儲存...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">過場效果</text>
+    <text id="IDS_COM_BODY_MUSIC">音樂</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">已選擇 %d 個項目</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">要建立資料夾嗎?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">刪除失敗</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">已選擇 1 個項目</text>
+    <text id="IDS_COM_BODY_VIDEO">影片</text>
+    <text id="IDS_IV_OPT_ZOOM">縮放</text>
+    <text id="IDS_COM_BODY_COPY">複製</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">光圈</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">投影片間隔</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">影片播放器</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">投影片</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">秒</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">左轉</text>
+    <text id="IDS_EBOOK_BODY_PAGE">頁面</text>
+    <text id="IDS_COM_POP_COPYING_ING">正在複製...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 秒</text>
+    <text id="IDS_COM_POP_PROCESSING">正在處理...</text>
+    <text id="IDS_COM_BODY_GALLERY">媒體瀏覽器</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">無名稱</text>
+    <text id="IDS_COM_BODY_IMAGES">圖像</text>
+    <text id="IDS_MEDIABR_BODY_FADE">褪色</text>
+    <text id="IDS_COM_HEADER_EDIT">編輯</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 秒</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">未選擇項目</text>
+    <text id="IDS_COM_POP_DELETED">已刪除</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">要移除嗎?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">已存在。要覆蓋嗎?</text>
+    <text id="IDS_COM_POP_DELETING">正在刪除...</text>
+    <text id="IDS_COM_POP_DONE">完成</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 秒</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">相簿</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">右轉</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">重複</text>
+    <text id="IDS_COM_POP_SAVED">已儲存</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">融化</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">隨機播放</text>
+    <text id="IDS_COM_POP_MOVING">正在移動...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">移動失敗</text>
+    <text id="IDS_COM_BODY_VIDEOS">影片</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">不支援的檔案類型</text>
+    <text id="IDS_COM_BODY_RENAME">重新命名</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">已完成</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">選擇全部</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">全部專輯</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">更改名稱</text>
+    <text id="IDS_COM_BODY_MOVE">移動</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">無法刪除</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">右轉</text>
+    <text id="IDS_IV_BODY_INTERVAL">間隔</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">已存在</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">建立相簿</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">無項目</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">百葉窗</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">儲存失敗</text>
+</string_table>
diff --git a/res/zho-SG.xml b/res/zho-SG.xml
new file mode 100644 (file)
index 0000000..9e4ffef
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">已达最大字符数量</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">幻灯片播放</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">已超过最大文件数</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">幻灯片播放设定</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">全选</text>
+    <text id="IDS_COM_POP_DELETE_Q">删除?</text>
+    <text id="IDS_COM_BODY_EDIT">编辑</text>
+    <text id="IDS_COM_BODY_MESSAGE">讯息</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">下载</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">相册名已使用</text>
+    <text id="IDS_COM_OPT_SAVE">储存</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20秒</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">启动</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">向左旋转</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2秒</text>
+    <text id="IDS_COM_BODY_MESSAGES">讯息</text>
+    <text id="IDS_COM_SK_DONE">已完成</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">无法重命名</text>
+    <text id="IDS_COM_BODY_EMAIL">电邮</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">字符无效</text>
+    <text id="IDS_COM_POP_MOVED">已移动</text>
+    <text id="IDS_COM_POP_CANCEL">取消</text>
+    <text id="IDS_COM_BODY_SELECTED">已选定</text>
+    <text id="IDS_COM_BODY_DELETE">删除</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">说明字幕</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">取消</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">已达到最大字符数(%d)</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">已达到最大字符数(%d)</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">幻灯片</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">滑动</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">开始播放幻灯片</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s 已存在</text>
+    <text id="IDS_COM_BODY_LOADING">裝载中…</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">相册</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">无法重命名。相册名已使用</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">操作失败</text>
+    <text id="IDS_COM_POP_SAVING_ING">储存中…</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">转换效果</text>
+    <text id="IDS_COM_BODY_MUSIC">音乐</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">已选择%d个项目</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">创建文件夹吗?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">删除失败</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">已选择1个项目</text>
+    <text id="IDS_COM_BODY_VIDEO">录像</text>
+    <text id="IDS_IV_OPT_ZOOM">变焦</text>
+    <text id="IDS_COM_BODY_COPY">复制</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris 效果</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">幻灯片播放间隔</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">视频播放器</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">幻灯片</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">秒</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">向左旋转</text>
+    <text id="IDS_EBOOK_BODY_PAGE">页面</text>
+    <text id="IDS_COM_POP_COPYING_ING">复制中…</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 秒</text>
+    <text id="IDS_COM_POP_PROCESSING">处理中…</text>
+    <text id="IDS_COM_BODY_GALLERY">画廊</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">无名称</text>
+    <text id="IDS_COM_BODY_IMAGES">图像</text>
+    <text id="IDS_MEDIABR_BODY_FADE">淡出</text>
+    <text id="IDS_COM_HEADER_EDIT">编辑</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5秒</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">未选择项目</text>
+    <text id="IDS_COM_POP_DELETED">已删除</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">移除?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">已存在。覆盖?</text>
+    <text id="IDS_COM_POP_DELETING">删除中…</text>
+    <text id="IDS_COM_POP_DONE">已完成</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3秒</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">滚动照相机</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">向右旋转</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">重复</text>
+    <text id="IDS_COM_POP_SAVED">已储存</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">溶化</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">随机播放</text>
+    <text id="IDS_COM_POP_MOVING">移动中…</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">移动失败</text>
+    <text id="IDS_COM_BODY_VIDEOS">录像</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">不支持的文件类型</text>
+    <text id="IDS_COM_BODY_RENAME">重命名</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">已完成</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">选择全部</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">所有相册</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">更改名称</text>
+    <text id="IDS_COM_BODY_MOVE">移动</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">无法删除</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">向右旋转</text>
+    <text id="IDS_IV_BODY_INTERVAL">间隔</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">已经存在</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">新建相册</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">无项目</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">百叶窗</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">储存失败</text>
+</string_table>
diff --git a/res/zho-TW.xml b/res/zho-TW.xml
new file mode 100644 (file)
index 0000000..5f8c14b
--- /dev/null
@@ -0,0 +1,99 @@
+<?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="2.0.0.201305021903" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">已達字元數上限</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">投影片放映</text>
+    <text id="IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED">已超過檔案數量上限</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS">投影片設定</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">全選</text>
+    <text id="IDS_COM_POP_DELETE_Q">要刪除嗎?</text>
+    <text id="IDS_COM_BODY_EDIT">編輯</text>
+    <text id="IDS_COM_BODY_MESSAGE">訊息</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">下載</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">相簿名稱已被使用</text>
+    <text id="IDS_COM_OPT_SAVE">儲存</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 秒</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">啟動</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_LEFT">向左旋轉</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 秒</text>
+    <text id="IDS_COM_BODY_MESSAGES">訊息</text>
+    <text id="IDS_COM_SK_DONE">完成</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">無法重新命名</text>
+    <text id="IDS_COM_BODY_EMAIL">電子郵件</text>
+    <text id="IDS_COM_POP_INVALID_CHARACTERS">字元無效</text>
+    <text id="IDS_COM_POP_MOVED">已移動</text>
+    <text id="IDS_COM_POP_CANCEL">取消</text>
+    <text id="IDS_COM_BODY_SELECTED">已選擇</text>
+    <text id="IDS_COM_BODY_DELETE">刪除</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">字幕</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">取消</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">達到%d個最大字元</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">達到%d個最大字元</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">投影片放映</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">投影片</text>
+    <text id="IDS_MEDIABR_OPT_START_SLIDESHOW">開始播放投影片</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s 已存在</text>
+    <text id="IDS_COM_BODY_LOADING">正在載入...</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">相簿</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">無法重新命名。相簿名稱已被使用</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">操作失敗</text>
+    <text id="IDS_COM_POP_SAVING_ING">正在儲存...</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">轉換效果</text>
+    <text id="IDS_COM_BODY_MUSIC">音樂</text>
+    <text id="IDS_VR_POP_PD_ITEMS_SELECTED">已選擇 %d 項目</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">要建立資料夾嗎?</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">刪除失敗</text>
+    <text id="IDS_VR_POP_1_ITEM_SELECTED">已選擇 1 項目</text>
+    <text id="IDS_COM_BODY_VIDEO">影片</text>
+    <text id="IDS_IV_OPT_ZOOM">縮放</text>
+    <text id="IDS_COM_BODY_COPY">複製</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">光圈</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">投影片放映間隔</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">影片播放器</text>
+    <text id="IDS_MEDIABR_OPT_SLIDESHOW">投影片</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">秒</text>
+    <text id="IDS_IV_OPT_ROTATE_LEFT">向左旋轉</text>
+    <text id="IDS_EBOOK_BODY_PAGE">頁面</text>
+    <text id="IDS_COM_POP_COPYING_ING">正在複製...</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 秒</text>
+    <text id="IDS_COM_POP_PROCESSING">正在處理...</text>
+    <text id="IDS_COM_BODY_GALLERY">媒體瀏覽器</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">無姓名</text>
+    <text id="IDS_COM_BODY_IMAGES">圖像</text>
+    <text id="IDS_MEDIABR_BODY_FADE">淡化</text>
+    <text id="IDS_COM_HEADER_EDIT">編輯</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 秒</text>
+    <text id="IDS_ST_POP_NO_ITEMS_SELECTED">無已選項目</text>
+    <text id="IDS_COM_POP_DELETED">已刪除</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">要移除嗎?</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">已存在。要覆寫嗎?</text>
+    <text id="IDS_COM_POP_DELETING">正在刪除...</text>
+    <text id="IDS_COM_POP_DONE">完成</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 秒</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">相簿</text>
+    <text id="IDS_IV_OPT_ROTATE_RIGHT">向右旋轉</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">重複</text>
+    <text id="IDS_COM_POP_SAVED">已儲存</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">分解</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">隨機播放</text>
+    <text id="IDS_COM_POP_MOVING">正在移動...</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">移動失敗</text>
+    <text id="IDS_COM_BODY_VIDEOS">影片</text>
+    <text id="IDS_MEDIABR_BODY_UNSUPPORTED_FILE_TYPE_ABB">不支援的檔案類型</text>
+    <text id="IDS_COM_BODY_RENAME">重新命名</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">已完成</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">選擇所有</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">所有相簿</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">變更名稱</text>
+    <text id="IDS_COM_BODY_MOVE">移動</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">無法刪除</text>
+    <text id="IDS_MEDIABR_OPT_ROTATE_RIGHT">向右旋轉</text>
+    <text id="IDS_IV_BODY_INTERVAL">間隔</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">已存在</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">建立專輯</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">無項目</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">百頁窗</text>
+    <text id="IDS_COM_POP_SAVING_FAILED">儲存失敗</text>
+</string_table>
diff --git a/shared/data/GalleryDefaultSettings.ini b/shared/data/GalleryDefaultSettings.ini
new file mode 100644 (file)
index 0000000..6a88ee0
--- /dev/null
@@ -0,0 +1,5 @@
+#IMAGE_VIEWER_SETTING
+SLIDESHOW_INTERVAL_VALUE=3
+TRANSITION_EFFECT_VALUE=0
+REPEAT_VALUE=0
+SHUFFLE_VALUE=0
\ No newline at end of file
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..34aacd0
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/GlAlbumInfo.cpp b/src/GlAlbumInfo.cpp
new file mode 100644 (file)
index 0000000..5225570
--- /dev/null
@@ -0,0 +1,388 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlAlbumInfo.cpp
+ * @brief              This is the implementation file for AlbumInfo class.
+ */
+
+#include "GlAlbumInfo.h"
+#include "GlTypes.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Content;
+using namespace Tizen::Graphics;
+
+AlbumInfo::AlbumInfo(void)
+       : __pDirectoryFullPathList(null)
+       , __pContentIdList(null)
+       , __pFolderThumnailBitmap(null)
+{
+}
+
+AlbumInfo::~AlbumInfo(void)
+{
+       if (__pDirectoryFullPathList != null)
+       {
+               delete __pDirectoryFullPathList;
+       }
+
+       if (__pContentIdList != null)
+       {
+               delete __pContentIdList;
+       }
+
+       if (__pFolderThumnailBitmap != null)
+       {
+               delete __pFolderThumnailBitmap;
+       }
+}
+
+String
+AlbumInfo::GetAlbumName(void) const
+{
+       String returnValue;
+       if ((__albumName != null) && (__albumName.GetLength() > 0))
+       {
+               returnValue = __albumName;
+       }
+
+       return returnValue;
+}
+
+void
+AlbumInfo::SetAlbumName(const String& albumName)
+{
+       if (&albumName == null)
+       {
+               __albumName = EMPTY_SPACE;
+       }
+       else
+       {
+               __albumName = String(albumName);
+       }
+}
+
+String
+AlbumInfo::GetDirectory(int index) const
+{
+       String fullDirPath = *(static_cast<String*>(__pDirectoryFullPathList->GetAt(index)));
+       return fullDirPath;
+}
+
+IList*
+AlbumInfo::GetDirectoryListN(void) const
+{
+       if (__pDirectoryFullPathList == null)
+       {
+               return null;
+       }
+
+       IList* pDirectoryFullPathList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+
+       IEnumerator* pEnum = __pDirectoryFullPathList->GetEnumeratorN();
+       String* pItem = null;
+       while (pEnum->MoveNext() == E_SUCCESS)
+       {
+               pItem = new (std::nothrow) String((static_cast<String*>(pEnum->GetCurrent()))->GetPointer());
+               pDirectoryFullPathList->Add(pItem);
+       }
+       delete pEnum;
+
+       return pDirectoryFullPathList;
+}
+
+void
+AlbumInfo::ClearDirectoryList(void)
+{
+       if (__pDirectoryFullPathList != null)
+       {
+               delete __pDirectoryFullPathList;
+       }
+
+       __pDirectoryFullPathList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+}
+
+void
+AlbumInfo::AppendDirectory(const String& directoryPath)
+{
+       if (&directoryPath == null || directoryPath == EMPTY_SPACE)
+       {
+               return;
+       }
+
+       if (__pDirectoryFullPathList == null)
+       {
+               __pDirectoryFullPathList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+       }
+
+       __pDirectoryFullPathList->Add(new (std::nothrow) String(directoryPath));
+}
+
+void
+AlbumInfo::AppendDirectoryList(const ICollection& directoryList)
+{
+       if (&directoryList == null || directoryList.GetCount() == 0)
+       {
+               return;
+       }
+       if (__pDirectoryFullPathList == null)
+       {
+               __pDirectoryFullPathList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+       }
+       IEnumerator* pEnum = directoryList.GetEnumeratorN();
+       String* pItem = null;
+
+       while (pEnum->MoveNext() == E_SUCCESS)
+       {
+               pItem = new (std::nothrow) String((static_cast<String*>(pEnum->GetCurrent()))->GetPointer());
+               __pDirectoryFullPathList->Add(pItem);
+       }
+       delete pEnum;
+}
+
+int
+AlbumInfo::GetDirectoryCount(void) const
+{
+       if (__pDirectoryFullPathList == null)
+       {
+               return 0;
+       }
+       else
+       {
+               return __pDirectoryFullPathList->GetCount();
+       }
+}
+
+IList*
+AlbumInfo::GetContentIdListN(void) const
+{
+       if (__pContentIdList == null)
+       {
+               return null;
+       }
+
+       IList* pContentIdList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+
+       IEnumerator* pEnum = __pContentIdList->GetEnumeratorN();
+       ContentId* pItem;
+       while (pEnum->MoveNext() == E_SUCCESS)
+       {
+               pItem = new (std::nothrow) ContentId(*static_cast<ContentId*>(pEnum->GetCurrent()));
+               pContentIdList->Add(pItem);
+       }
+       delete pEnum;
+
+       return pContentIdList;
+}
+
+ContentId
+AlbumInfo::GetContentId(int index) const
+{
+       ContentId contentId = *(static_cast<ContentId*>(__pContentIdList->GetAt(index)));
+       return contentId;
+}
+
+result
+AlbumInfo::Construct(void)
+{
+       __albumName = EMPTY_SPACE;
+       __pDirectoryFullPathList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+       __pContentIdList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+       result r = E_SUCCESS;
+       if (GetLastResult() != E_SUCCESS || __pDirectoryFullPathList == null || __pContentIdList == null)
+       {
+               delete __pDirectoryFullPathList;
+               __pDirectoryFullPathList = null;
+               delete __pContentIdList;
+               __pContentIdList = null;
+               r = E_FAILURE;
+       }
+
+       return r;
+}
+
+result
+AlbumInfo::Construct(const String& albumName, ContentType contentType, const IList& directoryList,
+               const IList& contentIdList)
+{
+       if (&albumName == null)
+       {
+               __albumName = EMPTY_SPACE;
+       }
+       else
+       {
+               __albumName = albumName;
+       }
+
+       if (&directoryList == null)
+       {
+               ClearDirectoryList();
+       }
+       else
+       {
+               ClearDirectoryList();
+               AppendDirectoryList(directoryList);
+       }
+
+       if (&contentIdList == null)
+       {
+               ClearContentIdList();
+       }
+       else
+       {
+               AppendContentIdList(contentIdList);
+       }
+
+       return E_SUCCESS;
+}
+
+result
+AlbumInfo::Construct(const AlbumInfo& albumInfo)
+{
+       if (&albumInfo == null)
+       {
+               __albumName = EMPTY_SPACE;
+               ClearDirectoryList();
+               ClearContentIdList();
+               return E_SUCCESS;
+       }
+       __albumName = albumInfo.GetAlbumName();
+
+       ClearDirectoryList();
+       IList* pDirList = albumInfo.GetDirectoryListN();
+       AppendDirectoryList(*pDirList);
+       delete pDirList;
+
+       ClearContentIdList();
+       IList* pContentIdList = albumInfo.GetContentIdListN();
+       AppendContentIdList(*pContentIdList);
+       delete pContentIdList;
+
+       return E_SUCCESS;
+}
+
+void
+AlbumInfo::ClearContentIdList(void)
+{
+       if (__pContentIdList != null)
+       {
+               delete __pContentIdList;
+       }
+
+       __pContentIdList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+}
+
+void
+AlbumInfo::AppendContentId(const ContentId& contentId)
+{
+       if (&contentId == null)
+       {
+               return;
+       }
+
+       if (__pContentIdList == null)
+       {
+               __pContentIdList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+       }
+       ContentId* pItem = new (std::nothrow) ContentId(contentId);
+       __pContentIdList->Add(pItem);
+}
+
+void
+AlbumInfo::AppendContentIdList(const ICollection& contentIdList)
+{
+       if (&contentIdList == null || contentIdList.GetCount() == 0)
+       {
+               return;
+       }
+
+       if (__pContentIdList == null)
+       {
+               __pContentIdList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+       }
+
+       IEnumerator* pEnum = contentIdList.GetEnumeratorN();
+       ContentId* pItem = null;
+
+       while (pEnum->MoveNext() == E_SUCCESS)
+       {
+               pItem = new (std::nothrow) ContentId(*(static_cast<ContentId*>(pEnum->GetCurrent())));
+               __pContentIdList->Add(pItem);
+       }
+       delete pEnum;
+}
+
+void
+AlbumInfo::ClearAll(void)
+{
+       if (__pDirectoryFullPathList != null)
+       {
+               delete __pDirectoryFullPathList;
+               __pDirectoryFullPathList = null;
+       }
+
+       if (__pContentIdList != null)
+       {
+               delete __pContentIdList;
+               __pContentIdList = null;
+       }
+}
+
+int
+AlbumInfo::GetContentIdCount(void) const
+{
+       if (__pContentIdList == null)
+       {
+               return 0;
+       }
+       else
+       {
+               return __pContentIdList->GetCount();
+       }
+}
+
+result
+AlbumInfo::RemoveContentIdAt(const int index)
+{
+       result r = E_SUCCESS;
+
+       if (__pContentIdList != null)
+       {
+               r = __pContentIdList->RemoveAt(index, true);
+       }
+
+       return r;
+}
+
+void
+AlbumInfo::SetFolderThumnailBitmap(Bitmap* pFolderThumnailBitmap)
+{
+       __pFolderThumnailBitmap = pFolderThumnailBitmap;
+}
+
+Bitmap*
+AlbumInfo::GetFolderThumnailBitmap(void) const
+{
+       return __pFolderThumnailBitmap;
+}
+
+AlbumInfoType
+AlbumInfo::GetAlbumInfoType(void) const
+{
+       return ALBUM_INFO_TYPE_FOLDER;
+}
diff --git a/src/GlAlbumListEditorForm.cpp b/src/GlAlbumListEditorForm.cpp
new file mode 100644 (file)
index 0000000..5b90aac
--- /dev/null
@@ -0,0 +1,1143 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlAlbumListEditorForm.cpp
+ * @brief              This is the implementation file for AlbumListEditorForm class.
+ */
+
+#include "GlAlbumInfo.h"
+#include "GlAlbumListEditorForm.h"
+#include "GlAlbumListPresentationModel.h"
+#include "GlProgressAnimation.h"
+#include "GlResourceManager.h"
+#include "GlTypes.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Content;
+using namespace Tizen::Graphics;
+using namespace Tizen::Io;
+using namespace Tizen::Media;
+using namespace Tizen::System;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+static const unsigned int COLOR_DELETE_BUTTON_NORMAL = Color32<208, 82, 82>::Value;
+static const unsigned int COLOR_DELETE_BUTTON_PRESSED = Color32<194, 71, 71>::Value;
+static const unsigned int COLOR_DELETE_BUTTON_TEXT = Color32<248, 246, 239>::Value;
+static const String RESERVED_CAMERA_PATH = Environment::GetMediaPath() + L"Camera" + DIRECTORY_SEPARATOR;
+static const String RESERVED_CAMERA_PATH_EXT = Environment::GetExternalStoragePath() + L"Camera" + DIRECTORY_SEPARATOR;
+static const String RESERVED_MEDIA_PATH = Environment::GetMediaPath();
+static const String RESERVED_EXTERNAL_MEDIA_PATH = Environment::GetExternalStoragePath();
+
+static const int GAP_W_POPUP_ITEM = 10;
+static const int W_DELETE_POPUP = 688;
+static const int H_DELETE_POPUP = 230;
+static const int H_DELETE_LABEL = 80;
+static const int Y_DELETE_BUTTON = 132;
+static const int H_DELETE_BUTTON = 74;
+static const int W_DELETE_BUTTON = 318;
+static const int Y_DELETE_LABEL = 32;
+
+static const int FORMAT_BUFFER_SIZE = 256;
+
+static const Color COLOR_FOLDER_BITMAP_DIM(Color::GetColor(COLOR_ID_BLACK));
+static const int ALPHA_FOLDER_BITMAP_DIM = 70;
+
+static const int IDA_ALBUM_EDIT = 503;
+
+AlbumListEditorForm::AlbumListEditorForm(void)
+       : __checkedCount(0)
+       , __pSelectCountLabel(null)
+       , __pEditorFolderIconList(null)
+       , __pShareContextMenu(null)
+       , __pDeletePopup(null)
+       , __pFileUpdateTimer(null)
+       , __pPresentationModel(null)
+       , __isScanProgress(false)
+{
+       AppLogDebug("ENTER");
+       _pProgressAnim = null;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+AlbumListEditorForm::~AlbumListEditorForm(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+result
+AlbumListEditorForm::Initialize(void)
+{
+       AppLogDebug("ENTER");
+       result r = Form::Construct(IDL_FORM_ALBUM_LIST_EDITOR);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+result
+AlbumListEditorForm::OnInitializing(void)
+{
+       AppLogDebug("ENTER");
+       result r = E_SUCCESS;
+
+       SetOrientation(ORIENTATION_AUTOMATIC);
+       AddOrientationEventListener(*this);
+
+       __pPresentationModel = AlbumListPresentationModel::GetInstance();
+       __pPresentationModel->ClearThumbnailRequests();
+       r = __pPresentationModel->AddPresentationModelListener(this);
+
+       SetFormBackEventListener(this);
+       GetHeader()->AddActionEventListener(*this);
+       GetFooter()->AddActionEventListener(*this);
+
+       r = InitializeControl();
+       if (r != E_SUCCESS)
+       {
+               AppLogDebug("[%s] Unable to set InitializeControl.", GetErrorMessage(r));
+       }
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+result
+AlbumListEditorForm::OnTerminating(void)
+{
+       AppLogDebug("ENTER");
+       result r = E_SUCCESS;
+       r = __pPresentationModel->RemovePresentationModelListener(*this);
+       __pPresentationModel->RemoveContentEventListener(*this);
+
+       if (__pDeletePopup != null)
+       {
+               delete __pDeletePopup;
+               __pDeletePopup = null;
+       }
+       if (__pFileUpdateTimer != null)
+       {
+               delete __pFileUpdateTimer;
+               __pFileUpdateTimer = null;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+void
+AlbumListEditorForm::ShowAnimation(void)
+{
+       Rectangle clientRect= GetClientAreaBounds();
+       Rectangle rect(0, 0, clientRect.width, clientRect.height);
+       _pProgressAnim = new (std::nothrow) ProgressAnimation;
+       _pProgressAnim->Construct(rect);
+       AddControl(_pProgressAnim);
+       SetControlAlwaysOnTop(*_pProgressAnim,true);
+       _pProgressAnim->SetShowState(true);
+       GetFooter()->SetEnabled(false);
+       _pProgressAnim->AnimationStart();
+       _pProgressAnim->Draw();
+}
+void
+AlbumListEditorForm::StopAnimation(void)
+{
+       if (_pProgressAnim)
+       {
+               _pProgressAnim->AnimationStop();
+               _pProgressAnim->SetShowState(false);
+               RemoveControl(_pProgressAnim);
+               GetFooter()->SetEnabled(true);
+               _pProgressAnim = null;
+       }
+}
+
+void
+AlbumListEditorForm::OnContentUpdated(void)
+{
+       AppLogDebug("ENTER");
+       int maxCount = __pPresentationModel->GetFolderCount();
+       if (__pDeletePopup != null)
+       {
+               if (__pDeletePopup->IsVisible() == true)
+               {
+                       __pDeletePopup->Destroy();
+                       __pDeletePopup = null;
+                       InitializePopup();
+               }
+       }
+
+       for (int i = 0; i < maxCount; ++i)
+       {
+               __pEditorFolderIconList->SetItemChecked(i, false);
+       }
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALBUM_LIST));
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+result
+AlbumListEditorForm::InitializeControl(void)
+{
+       AppLogDebug("ENTER");
+       result r = E_SUCCESS;
+       String tempString;
+
+       __pSelectCountLabel = static_cast<Label*>(GetControl(L"IDC_LABEL_ALBUM_LIST_EDITOR_SELECTED"));
+               AppAssert(__pSelectCountLabel);
+
+       CreateIconListView();
+       __checkedCount = GetCheckedFolderCount();
+
+
+       r = InitializePopup();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+result
+AlbumListEditorForm::InitializePopup(void)
+{
+       AppLogDebug("ENTER");
+       if (__pDeletePopup == null)
+       {
+               __pDeletePopup = new (std::nothrow) Popup();
+               __pDeletePopup->Construct(false, Dimension(W_DELETE_POPUP, H_DELETE_POPUP));
+               __pDeletePopup->SetPropagatedKeyEventListener(this);
+
+               Rectangle popupClientBounds = __pDeletePopup->GetClientAreaBounds();
+
+               Label* pLabel = new (std::nothrow) Label();
+               pLabel->Construct(Rectangle(0, Y_DELETE_LABEL, popupClientBounds.width, H_DELETE_LABEL),
+                               ResourceManager::GetString(L"IDS_COM_POP_DELETE_Q"));
+               pLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+               pLabel->SetTextConfig(34,LABEL_TEXT_STYLE_BOLD);
+
+               Button* pDeleteButton = new (std::nothrow) Button();
+               pDeleteButton->Construct(Rectangle(popupClientBounds.width / 2 + GAP_W_POPUP_ITEM, Y_DELETE_BUTTON,     W_DELETE_BUTTON, H_DELETE_BUTTON),
+                               ResourceManager::GetString(L"IDS_COM_BODY_DELETE"));
+               pDeleteButton->SetColor(BUTTON_STATUS_NORMAL, COLOR_DELETE_BUTTON_NORMAL);
+               pDeleteButton->SetColor(BUTTON_STATUS_PRESSED, COLOR_DELETE_BUTTON_PRESSED);
+               pDeleteButton->SetTextColor(COLOR_DELETE_BUTTON_TEXT);
+               pDeleteButton->SetActionId(IDA_DELETE_POPUP_DEL);
+               pDeleteButton->AddActionEventListener(*this);
+
+               Button* pCancelButton = new (std::nothrow) Button();
+               pCancelButton->Construct(Rectangle(16, Y_DELETE_BUTTON, W_DELETE_BUTTON, H_DELETE_BUTTON),
+                               ResourceManager::GetString(L"IDS_COM_POP_CANCEL"));
+               pCancelButton->SetActionId(IDA_DELETE_POPUP_CANCEL);
+               pCancelButton->AddActionEventListener(*this);
+
+               __pDeletePopup->AddControl(pLabel);
+               __pDeletePopup->AddControl(pDeleteButton);
+               __pDeletePopup->AddControl(pCancelButton);
+       }
+       else
+       {
+               __pDeletePopup->SetShowState(true);
+               __pDeletePopup->Show();
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+void
+AlbumListEditorForm::CreateIconListView(void)
+{
+       AppLogDebug("ENTER");
+
+
+       __pEditorFolderIconList = new IconListView();
+       __pEditorFolderIconList->Construct(Rectangle(0, 0, GetClientAreaBounds().width, GetClientAreaBounds().height - __pSelectCountLabel->GetHeight()),
+                   Dimension(348, 348), ICON_LIST_VIEW_STYLE_MARK, ICON_LIST_VIEW_SCROLL_DIRECTION_VERTICAL);
+       __pEditorFolderIconList->SetCheckBoxPosition(ICON_LIST_VIEW_CHECK_BOX_POSITION_TOP_LEFT);
+       __pEditorFolderIconList->SetTouchAnimationEnabled(false);
+       __pEditorFolderIconList->SetItemProvider(*this);
+       __pEditorFolderIconList->SetItemBorderStyle(ICON_LIST_VIEW_ITEM_BORDER_STYLE_NONE);
+       __pEditorFolderIconList->AddIconListViewItemEventListener(*this);
+
+       Bitmap* pBitmap = ResourceManager::GetBitmapN(IDB_LISTVIEW_EMPTY);
+
+       if (pBitmap != null)
+       {
+               __pEditorFolderIconList->SetBitmapOfEmptyList(pBitmap);
+               delete pBitmap;
+       }
+
+       __pEditorFolderIconList->SetTextOfEmptyList(ResourceManager::GetString(L"IDS_COM_BODY_NO_ITEMS"));
+
+       AddControl(__pEditorFolderIconList);
+
+       __pEditorFolderIconList->SetShowState(true);
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+int
+AlbumListEditorForm::GetItemCount(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return __pPresentationModel->GetFolderCount();
+}
+
+IconListViewItem*
+AlbumListEditorForm::CreateItem(int index)
+{
+       AppLogDebug("ENTER : index(%d)", index);
+       Bitmap* pBitmap = null;
+       Canvas* pEditAlbumCanvas = null;
+       Bitmap* pEditAlbumBitmap = null;
+       Bitmap* pBitmapRenameBg = null;
+       Bitmap* pBitmapRename = null;
+       String albumName;
+       int canvasWidth = 75;
+       int canvasHeight = 75;
+
+       IconListViewItem* pIconListviewItem = new (std::nothrow) IconListViewItem();
+
+       IList* pAlbumInfoList = __pPresentationModel->GetAlbumInfoList();
+       AlbumInfo* pAlbumInfo = static_cast<AlbumInfo*>(pAlbumInfoList->GetAt(index));
+
+       Bitmap* pAlbumBitmap = pAlbumInfo->GetFolderThumnailBitmap();
+       if (pAlbumBitmap == null)
+       {
+               __pPresentationModel->RequestThumbnail(index, 0);
+       }
+
+       pBitmap = __pPresentationModel->CreateMergeBitmapN(index);
+
+       if (__pEditorFolderIconList->IsItemChecked(index) == true)
+       {
+               if (pBitmap != null)
+               {
+                       BufferInfo bufferInfo;
+                       pBitmap->Lock(bufferInfo, INFINITE);
+                       pBitmap->Unlock();
+                       Color dimColor(COLOR_FOLDER_BITMAP_DIM);
+                       dimColor.SetAlpha(ALPHA_FOLDER_BITMAP_DIM);
+                       Canvas canvas;
+                       canvas.Construct(bufferInfo);
+                       canvas.FillRectangle(dimColor, canvas.GetBounds());
+                       Bitmap* pSelectedBitmap = new (std::nothrow) Bitmap();
+                       pSelectedBitmap->Construct(canvas, canvas.GetBounds());
+                       pIconListviewItem->Construct(*pBitmap, null, pSelectedBitmap);
+                       delete pSelectedBitmap;
+               }
+       }
+       else
+       {
+               pIconListviewItem->Construct(*pBitmap);
+       }
+
+       if (pBitmap != null)
+       {
+               delete pBitmap;
+       }
+
+       pBitmapRenameBg = ResourceManager::GetBitmapN(IDB_ALBUM_EDIT_RENAME_BG);
+       pBitmapRename = ResourceManager::GetBitmapN(IDB_ALBUM_EDIT_RENAME);
+
+       if (pBitmapRenameBg != null && pBitmapRename != null)
+       {
+
+               pEditAlbumCanvas = new (std::nothrow) Canvas();
+               pEditAlbumCanvas->Construct(Rectangle(0, 0, canvasWidth, canvasHeight));
+               pEditAlbumCanvas->DrawBitmap(Point(0, 6), *pBitmapRenameBg);
+               pEditAlbumCanvas->DrawBitmap(Point(0, 6), *pBitmapRename);
+
+
+               pEditAlbumBitmap = new (std::nothrow) Bitmap();
+
+               if (pEditAlbumBitmap != NULL)
+               {
+                       pEditAlbumBitmap->Construct(*pEditAlbumCanvas, Rectangle(0, 0, canvasWidth, canvasHeight));
+
+               }
+               delete pEditAlbumCanvas;
+
+               albumName = pAlbumInfo->GetAlbumName();
+
+               if (albumName == ALL_ALBUMS_REAL_NAME)
+               {
+                       albumName = ResourceManager::GetString(L"IDS_MEDIABR_BODY_ALL_ALBUMS");
+               }
+
+               String reservedCameraName = ResourceManager::GetString(L"IDS_MEDIABR_BODY_CAMERA_ROLL_ABB");
+               String albumPath = pAlbumInfo->GetDirectory(0);
+               albumPath.Append(DIRECTORY_SEPARATOR);
+
+               if (index == 0 || (reservedCameraName.Equals(albumName, true) &&
+                       (RESERVED_CAMERA_PATH.Equals(albumPath, true) || RESERVED_CAMERA_PATH_EXT.Equals(albumPath, true)))
+                       || RESERVED_MEDIA_PATH.Equals(albumPath, true) || RESERVED_EXTERNAL_MEDIA_PATH.Equals(albumPath, true))
+               {
+                       // rename disabled
+               }
+               else
+               {
+                       pIconListviewItem->SetOverlayBitmap(IDA_ALBUM_EDIT, pEditAlbumBitmap, ALIGNMENT_RIGHT, ALIGNMENT_TOP);
+               }
+
+               if (pEditAlbumBitmap != null)
+               {
+                       delete pEditAlbumBitmap;
+               }
+       }
+
+       if (pBitmapRenameBg)
+       {
+               delete pBitmapRenameBg;
+       }
+       if (pBitmapRename)
+       {
+               delete pBitmapRename;
+       }
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pIconListviewItem;
+}
+
+void
+AlbumListEditorForm::OnIconListViewItemStateChanged(IconListView& view, int index, IconListViewItemStatus status)
+{
+       AppLogDebug("ENTER");
+
+       if (status == ICON_LIST_VIEW_ITEM_CHECKED || status == ICON_LIST_VIEW_ITEM_UNCHECKED)
+       {
+               if (status == ICON_LIST_VIEW_ITEM_CHECKED)
+               {
+                       ++__checkedCount;
+               }
+               else if (status == ICON_LIST_VIEW_ITEM_UNCHECKED)
+               {
+                       --__checkedCount;
+               }
+
+               String tempString;
+               if (__checkedCount == 0)
+               {
+                       tempString = ResourceManager::GetString(L"IDS_ST_POP_NO_ITEMS_SELECTED");
+               }
+               else if (__checkedCount == 1)
+               {
+                       tempString = ResourceManager::GetString(L"IDS_VR_POP_1_ITEM_SELECTED");
+               }
+               else
+               {
+                       tempString.Format(FORMAT_BUFFER_SIZE, ResourceManager::GetString(L"IDS_VR_POP_PD_ITEMS_SELECTED").GetPointer(), __checkedCount);
+               }
+
+               __pSelectCountLabel->SetText(tempString);
+               __pSelectCountLabel->RequestRedraw();
+               __pEditorFolderIconList->RefreshList(index, LIST_REFRESH_TYPE_ITEM_MODIFY);
+       }
+
+       SetButtonState();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumListEditorForm::OnIconListViewOverlayBitmapSelected (IconListView &iconListView, int index,
+               int overlayBitmapId)
+{
+       AppLogDebug("ENTER");
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+
+       ArrayList* pSelectedIndex = new (std::nothrow) ArrayList(SingleObjectDeleter);
+       pSelectedIndex->Construct();
+       //Adding the Action Type
+       pSelectedIndex->Add(new (std::nothrow) Integer(ALBUM_RENAME));
+       pSelectedIndex->Add(new (std::nothrow) Integer(FILE_ACTION_MOVE));
+       pSelectedIndex->Add(new (std::nothrow) Integer(index));
+
+       if (__pEditorFolderIconList->IsItemChecked(index) == false)
+       {
+               __pEditorFolderIconList->SetItemChecked(index,true);
+       }
+       else
+       {
+               __pEditorFolderIconList->SetItemChecked(index,false);
+       }
+       pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALBUM_NAME_EDITOR), pSelectedIndex);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+bool
+AlbumListEditorForm::DeleteItem(int index, IconListViewItem* pItem)
+{
+       AppLogDebug("ENTER");
+       delete pItem;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return true;
+}
+
+result
+AlbumListEditorForm::DeleteFolder(void)
+{
+
+       AppLogDebug("ENTER");
+       IList* pIndexList = GetItemCheckedIndexListN();
+       if (pIndexList->GetCount() <= 0)
+       {
+               delete pIndexList;
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+               return E_FAILURE;
+       }
+
+       if (__pFileUpdateTimer != null)
+       {
+               delete __pFileUpdateTimer;
+       }
+       __pFileUpdateTimer = new (std::nothrow) FileUpdateTimer(pIndexList, __pPresentationModel, this, FILE_ACTION_DELETE);
+       result r = __pFileUpdateTimer->StartTimer();
+
+       if (IsFailed(r))
+       {
+               delete __pFileUpdateTimer;
+               __pFileUpdateTimer = null;
+               return E_FAILURE;
+       }
+       else
+       {
+               __pPresentationModel->SetUpdateProgressStatus(true);
+       }
+       return E_SUCCESS;
+}
+
+IList*
+AlbumListEditorForm::GetItemCheckedIndexListN(void) const
+{
+       AppLogDebug("ENTER");
+       IList* pList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+       Integer* pIndex = null;
+
+       if (__pEditorFolderIconList!=null)
+       {
+               int loopCount = __pPresentationModel->GetFolderCount();
+               for (int i = 0; i < loopCount; ++i)
+               {
+                       if (__pEditorFolderIconList->IsItemChecked(i) == true)
+                       {
+                               pIndex = new (std::nothrow) Integer(i);
+                               pList->Add(pIndex);
+                               AppLogDebug("checked index(%d)", i);
+                       }
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pList;
+}
+
+void
+AlbumListEditorForm::SetAllCheckState(const bool state)
+{
+       AppLogDebug("ENTER");
+
+       int maxCount = __pPresentationModel->GetFolderCount();
+       String tempString;
+
+       if (state == true)
+       {
+               if (maxCount == 1)
+               {
+                       tempString = ResourceManager::GetString(L"IDS_VR_POP_1_ITEM_SELECTED;");
+               }
+               else
+               {
+                       tempString.Format(FORMAT_BUFFER_SIZE,
+                                       ResourceManager::GetString(L"IDS_VR_POP_PD_ITEMS_SELECTED").GetPointer(), maxCount);
+               }
+       }
+       else
+       {
+               tempString = ResourceManager::GetString(L"IDS_ST_POP_NO_ITEMS_SELECTED");
+       }
+
+       for (int i = 0; i < maxCount; ++i)
+       {
+               __pEditorFolderIconList->SetItemChecked(i, state);
+               __pEditorFolderIconList->RefreshList(i, LIST_REFRESH_TYPE_ITEM_MODIFY);
+       }
+
+       __pEditorFolderIconList->Draw();
+       __pSelectCountLabel->SetText(tempString);
+       __pSelectCountLabel->RequestRedraw();
+       __checkedCount = GetCheckedFolderCount();
+
+       SetButtonState();
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+int
+AlbumListEditorForm::GetCheckedFolderCount(void) const
+{
+       AppLogDebug("ENTER");
+       int maxCount = __pPresentationModel->GetFolderCount();
+       int count = 0;
+
+       for (int i = 0; i < maxCount; ++i)
+       {
+               if (__pEditorFolderIconList->IsItemChecked (i))
+               {
+                       ++count;
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return count;
+}
+
+void
+AlbumListEditorForm::OnActionPerformed(const Control& source, int actionId)
+{
+       AppLogDebug("ENTER");
+       switch (actionId)
+       {
+       case IDA_ALBUM_LIST_SELECT_ALL:
+       {
+               if (__pPresentationModel->GetFolderCount() == GetCheckedFolderCount())
+               {
+                       SetAllCheckState(false);
+               }
+               else
+               {
+                       SetAllCheckState(true);
+               }
+       }
+       break;
+
+       case IDA_FOOTER_DELETE:
+       {
+               __pDeletePopup->SetShowState(true);
+               __pDeletePopup->Show();
+       }
+       break;
+
+       case IDA_FOOTER_SHARE:
+       {
+
+               if (__pShareContextMenu != NULL)
+               {
+                       delete __pShareContextMenu;
+                       __pShareContextMenu = null;
+               }
+
+
+               Bitmap* pBitmapEmailContextItem = null;
+               Bitmap* pBitmapMessageContextItem = null;
+               pBitmapEmailContextItem = ResourceManager::GetBitmapN(IDB_IMAGE_CONTEXT_EMAIL_ICON);
+               pBitmapMessageContextItem = ResourceManager::GetBitmapN(IDB_IMAGE_CONTEXT_MESSAGE_ICON);
+
+               __pShareContextMenu = new (std::nothrow) ContextMenu();
+               __pShareContextMenu->Construct(Point(GetClientAreaBounds().width/3 + 15, GetClientAreaBounds().height + __pSelectCountLabel->GetHeight() + 5),
+                               CONTEXT_MENU_STYLE_LIST, CONTEXT_MENU_ANCHOR_DIRECTION_UPWARD);
+
+               if ( pBitmapMessageContextItem != null)
+               {
+                __pShareContextMenu->AddItem(ResourceManager::GetString(L"IDS_COM_BODY_MESSAGE"),
+                               IDA_CONTEXT_MENU_MESSAGE , *pBitmapMessageContextItem, null, null);
+
+                        delete pBitmapMessageContextItem;
+               }
+
+               if ( pBitmapEmailContextItem != null)
+               {
+                       __pShareContextMenu->AddItem(ResourceManager::GetString(L"IDS_COM_BODY_EMAIL"), IDA_CONTEXT_MENU_EMAIL,
+                                       *pBitmapEmailContextItem, null, null);
+
+                        delete pBitmapEmailContextItem;
+               }
+
+               __pShareContextMenu->SetFocusable(true);
+               __pShareContextMenu->AddActionEventListener(*this);
+               __pShareContextMenu->SetShowState(true);
+               __pShareContextMenu->Show();
+       }
+       break;
+
+       case IDA_CONTEXT_MENU_MESSAGE:
+       {
+               OnRequestMessage();
+       }
+       break;
+
+       case IDA_CONTEXT_MENU_EMAIL:
+       {
+               OnRequestEmail();
+       }
+       break;
+
+       case IDA_DELETE_POPUP_DEL:
+       {
+               __pDeletePopup->SetShowState(false);
+               __pDeletePopup->Show();
+               DeleteFolder();
+       }
+       break;
+
+       case IDA_DELETE_POPUP_CANCEL:
+       {
+               __pDeletePopup->SetShowState(false);
+               __pDeletePopup->Show();
+       }
+       break;
+
+       default:
+               break;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumListEditorForm::OnFormMenuRequested (Tizen::Ui::Controls::Form &source)
+{
+       if(__isScanProgress)
+       {
+               return;
+       }
+}
+
+void
+AlbumListEditorForm::OnFormBackRequested(Form& source)
+{
+       AppLogDebug("ENTER");
+       if(__isScanProgress)
+       {
+               return;
+       }
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALBUM_LIST));
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumListEditorForm::OnSceneActivatedN(const SceneId& previousSceneId,
+               const SceneId& currentSceneId, IList* pArgs)
+{
+       AppLogDebug("ENTER OnSceneActivatedN");
+       String tempString;
+
+
+       int count = __pPresentationModel->GetFolderCount();
+
+       __pPresentationModel->AddContentEventListener(this);
+
+       __checkedCount = GetCheckedFolderCount();
+
+       if (previousSceneId == IDSCN_ALBUM_NAME_EDITOR)
+       {
+
+               if (__checkedCount ==  0)
+               {
+                       tempString = ResourceManager::GetString(L"IDS_ST_POP_NO_ITEMS_SELECTED");
+               }
+               else
+               {
+                       tempString.Format(FORMAT_BUFFER_SIZE,
+                                       ResourceManager::GetString(L"IDS_VR_POP_PD_ITEMS_SELECTED").GetPointer(), __checkedCount);
+               }
+       }
+       else
+       {
+               __pPresentationModel->InitializeAlbumInfoList(CONTENT_TYPE_ALL);
+
+               for (int index = 0; index < count; ++index)
+               {
+                       __pEditorFolderIconList->SetItemChecked(index,false);
+               }
+
+               __pEditorFolderIconList->UpdateList();
+               __checkedCount = 0;
+
+               tempString = ResourceManager::GetString(L"IDS_ST_POP_NO_ITEMS_SELECTED");
+       }
+
+       __pSelectCountLabel->SetText(tempString);
+       __pSelectCountLabel->Invalidate(true);
+
+       SetButtonState();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumListEditorForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
+{
+       AppLogDebug("ENTER");
+       __pPresentationModel->RemoveContentEventListener(*this);
+
+       if (nextSceneId != IDSCN_ALBUM_NAME_EDITOR)
+       {
+               int loopCount = __pPresentationModel->GetFolderCount();
+
+               for (int count = 0; count < loopCount; ++count)
+               {
+                       __pEditorFolderIconList->SetItemChecked(count,false);
+               }
+               __pEditorFolderIconList->UpdateList();
+       }
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumListEditorForm::OnFileInfoChanged(const ContentType contentType)
+{
+       AppLogDebug("ENTER");
+       Update();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumListEditorForm::OnThumbnailDecoded(const int index)
+{
+       AppLogDebug("ENTER : index(%d)", index);
+       __pEditorFolderIconList->RefreshList(index, LIST_REFRESH_TYPE_ITEM_MODIFY);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumListEditorForm::OnFileOpInvalidate(enum FileActionMode actionId)
+{
+       Invalidate(true);
+}
+
+void
+AlbumListEditorForm::OnScanDirStart()
+{
+       AppLogDebug("SANTHOSH ENTER");
+       GetHeader()->SetButtonEnabled(BUTTON_POSITION_RIGHT, false);
+       Invalidate(true);
+       __isScanProgress = true;
+       AppLogDebug("SANTHOSH EXIT");
+}
+void
+AlbumListEditorForm::OnScanDirComplete()
+{
+       AppLogDebug("SANTHOSH ENTER");
+       GetHeader()->SetButtonEnabled(BUTTON_POSITION_RIGHT, true);
+       Invalidate(true);
+       __isScanProgress = false;
+       AppLogDebug("SANTHOSH EXIT");
+}
+
+void
+AlbumListEditorForm::OnFileOpComplete(enum FileActionMode actionId, enum FileActionCompleteRes res)
+{
+       AppLogDebug("ENTER");
+       __pPresentationModel->SetUpdateProgressStatus(false);
+       SetAllCheckState(false);
+       __pPresentationModel->InitializeAlbumInfoList(CONTENT_TYPE_ALL);
+       __pEditorFolderIconList->UpdateList();
+
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       AppAssert(pSceneManager);
+       pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALBUM_LIST));
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+bool
+AlbumListEditorForm::OnKeyReleased(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo)
+{
+       AppLogDebug("ENTER");
+
+       if (keyEventInfo.GetKeyCode() == KEY_BACK || keyEventInfo.GetKeyCode() == KEY_ESC)
+       {
+               __pDeletePopup->SetShowState(false);
+               __pDeletePopup->Show();
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+       return false;
+}
+
+result
+AlbumListEditorForm::Update(void)
+{
+       AppLogDebug("ENTER");
+       result r = __pEditorFolderIconList->UpdateList();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+void
+AlbumListEditorForm::OnRequestMessage(void)
+{
+       AppLogDebug("ENTER");
+
+       int checkCount = GetCheckedFolderCount();
+
+       if (checkCount <= 0)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return;
+       }
+
+       IList* pAlbumInfoList = __pPresentationModel->GetAlbumInfoList();
+
+       int maxCount = __pPresentationModel->GetFolderCount();
+       ContentManager contentManager;
+       result r = contentManager.Construct();
+       if (r == E_SUCCESS)
+       {
+               if (maxCount <= 0)
+               {
+                       AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
+                       return;
+               }
+
+               ArrayList* pArrayList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+               pArrayList->Construct();
+               for (int i = 0; i < maxCount; ++i)
+               {
+                       if (__pEditorFolderIconList->IsItemChecked (i))
+                       {
+                               AlbumInfo* pAlbumInfo = static_cast<AlbumInfo*>(pAlbumInfoList->GetAt(i));
+                               IList* pContentIdList = pAlbumInfo->GetContentIdListN();
+                               int loopCount = pContentIdList->GetCount();
+                               for (int k = 0; k < loopCount; ++k)
+                               {
+                                       ContentId* pContentId = static_cast<ContentId*>(pContentIdList->GetAt(k));
+                                       ContentInfo* pContentInfo = contentManager.GetContentInfoN(*pContentId);
+
+                                       if (pContentInfo == null)
+                                       {
+                                               break;
+                                       }
+
+                                       pArrayList->Add(new (std::nothrow) String(pContentInfo->GetContentPath()));
+                               }
+
+                               if (i == 0)
+                               {
+                                       break;
+                               }
+                       }
+               }
+
+               HashMap* pDataList = new (std::nothrow) HashMap(SingleObjectDeleter);
+               pDataList->Construct();
+               pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_MESSAGE_TYPE), new (std::nothrow) String(APPCONTROL_DATA_MMS));
+               pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_PATH), (Object*)pArrayList);
+
+               r = __pPresentationModel->StartAppControl(APPCONTROL_PROVIDER_ID_MESSAGE, APPCONTROL_OPERATION_ID_COMPOSE,
+                               null, null, pDataList, null);
+
+               if (r == E_MAX_EXCEEDED)
+               {
+                       MessageBox messageBox;
+                       messageBox.Construct(L"", ResourceManager::GetString(L"IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED"),
+                                       MSGBOX_STYLE_NONE, 3000);
+                       int modalResult;
+                       messageBox.ShowAndWait(modalResult);
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumListEditorForm::OnRequestEmail(void)
+{
+       AppLogDebug("ENTER");
+
+       int checkCount = GetCheckedFolderCount();
+
+       if (checkCount <= 0)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return;
+       }
+
+       IList* pAlbumInfoList = __pPresentationModel->GetAlbumInfoList();
+
+       int maxCount = __pPresentationModel->GetFolderCount();
+       ContentManager contentManager;
+       result r = contentManager.Construct();
+       if (r == E_SUCCESS)
+       {
+               if (maxCount <= 0)
+               {
+                       AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
+                       return;
+               }
+
+               ArrayList* pArrayList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+               pArrayList->Construct();
+               for (int i = 0; i < maxCount; ++i)
+               {
+                       if (__pEditorFolderIconList->IsItemChecked(i))
+                       {
+                               AlbumInfo* pAlbumInfo = static_cast<AlbumInfo*>(pAlbumInfoList->GetAt(i));
+                               IList* pContentIdList = pAlbumInfo->GetContentIdListN();
+                               int loopCount = pContentIdList->GetCount();
+                               for (int k = 0; k < loopCount; ++k)
+                               {
+                                       ContentId* pContentId = static_cast<ContentId*>(pContentIdList->GetAt(k));
+                                       ContentInfo* pContentInfo = contentManager.GetContentInfoN(*pContentId);
+
+                                       if (pContentInfo == null)
+                                       {
+                                               break;
+                                       }
+
+                                       pArrayList->Add(new (std::nothrow) String(pContentInfo->GetContentPath()));
+                               }
+
+                               if (i == 0)
+                               {
+                                       break;
+                               }
+                       }
+               }
+
+               HashMap* pDataList = new (std::nothrow) HashMap(SingleObjectDeleter);
+               pDataList->Construct();
+               pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_PATH), (Object*)pArrayList);
+
+               r = __pPresentationModel->StartAppControl(APPCONTROL_PROVIDER_ID_EMAIL, APPCONTROL_OPERATION_ID_COMPOSE,
+                               new (std::nothrow) String(APPCONTROL_URI_MAIL_TO), null, pDataList, null);
+
+               if (r == E_MAX_EXCEEDED)
+               {
+                       MessageBox messageBox;
+                       messageBox.Construct(L"", ResourceManager::GetString(L"IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED"),
+                                       MSGBOX_STYLE_NONE, 3000);
+                       int modalResult;
+                       messageBox.ShowAndWait(modalResult);
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumListEditorForm::SetFooterButtonsState(const bool enableState)
+{
+       AppLogDebug("ENTER");
+       Footer* pFooter = GetFooter();
+       AppAssert(pFooter);
+
+       if (enableState == true)
+       {
+               pFooter->SetItemEnabled(0, true);
+               pFooter->SetItemEnabled(1, true);
+       }
+       else
+       {
+               pFooter->SetItemEnabled(0, false);
+               pFooter->SetItemEnabled(1, false);
+       }
+
+       pFooter->RequestRedraw(true);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumListEditorForm::SetButtonState(void)
+{
+       AppLogDebug("ENTER");
+       if (GetCheckedFolderCount() > 0)
+       {
+               AppLogDebug("BUTTONSTATE : Request Enable");
+               SetFooterButtonsState(true);
+       }
+       else
+       {
+               AppLogDebug("BUTTONSTATE : Request disable");
+               SetFooterButtonsState(false);
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+
+void
+AlbumListEditorForm::OnOrientationChanged(const Tizen::Ui::Control &source, Tizen::Ui::OrientationStatus orientationStatus)
+{
+
+       IList* pIndexList = GetItemCheckedIndexListN();
+
+       if (__pEditorFolderIconList != null)
+       {
+               RemoveControl(__pEditorFolderIconList);
+       }
+
+       __pEditorFolderIconList = new IconListView();
+
+       if (orientationStatus == ORIENTATION_STATUS_PORTRAIT)
+       {
+               __pEditorFolderIconList->Construct(Rectangle(0, 0, GetClientAreaBounds().width, GetClientAreaBounds().height- __pSelectCountLabel->GetHeight()),
+                   Dimension(348, 348), ICON_LIST_VIEW_STYLE_MARK, ICON_LIST_VIEW_SCROLL_DIRECTION_VERTICAL);
+       }
+       else if (orientationStatus == ORIENTATION_STATUS_LANDSCAPE || orientationStatus == ORIENTATION_STATUS_LANDSCAPE_REVERSE)
+       {
+               int horizontalSpacing = 8;
+               int verticalSpacing = 60;
+        int height = 424;
+        int width = 410;
+
+        __pEditorFolderIconList->Construct(Rectangle(0, 0, GetClientAreaBounds().width, GetClientAreaBounds().height - __pSelectCountLabel->GetHeight()),
+                                   Dimension(width, height), ICON_LIST_VIEW_STYLE_MARK, ICON_LIST_VIEW_SCROLL_DIRECTION_VERTICAL);
+
+        __pEditorFolderIconList->SetItemSpacing(horizontalSpacing, verticalSpacing);
+        __pEditorFolderIconList->SetMargin(MARGIN_TYPE_TOP,40);
+       }
+
+       Bitmap* pBitmap = ResourceManager::GetBitmapN(IDB_LISTVIEW_EMPTY);
+
+       if (pBitmap != null)
+       {
+               __pEditorFolderIconList->SetBitmapOfEmptyList(pBitmap);
+               delete pBitmap;
+       }
+
+       __pEditorFolderIconList->SetCheckBoxPosition(ICON_LIST_VIEW_CHECK_BOX_POSITION_TOP_LEFT);
+       __pEditorFolderIconList->SetTextOfEmptyList(ResourceManager::GetString(L"IDS_COM_BODY_NO_ITEMS"));
+       __pEditorFolderIconList->SetTouchAnimationEnabled(false);
+       __pEditorFolderIconList->SetItemProvider(*this);
+       __pEditorFolderIconList->SetItemBorderStyle(ICON_LIST_VIEW_ITEM_BORDER_STYLE_NONE);
+       __pEditorFolderIconList->AddIconListViewItemEventListener(*this);
+
+       AddControl(__pEditorFolderIconList);
+
+       int loopCount = pIndexList->GetCount();
+       int index = -1;
+       for (int count = 0; count < loopCount; ++count)
+       {
+               Integer* pRealIndex = static_cast<Integer*>(pIndexList->GetAt(count));
+                index = pRealIndex->ToInt();
+               __pEditorFolderIconList->SetItemChecked(index, true);
+               __pEditorFolderIconList->RefreshList(index, LIST_REFRESH_TYPE_ITEM_MODIFY);
+       }
+
+       if (_pProgressAnim != null)
+       {
+               _pProgressAnim->ChangeOrientation(Form::GetBounds());
+               _pProgressAnim->Invalidate(true);
+       }
+}
diff --git a/src/GlAlbumListForm.cpp b/src/GlAlbumListForm.cpp
new file mode 100644 (file)
index 0000000..6c1a022
--- /dev/null
@@ -0,0 +1,568 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlAlbumListForm.cpp
+ * @brief              This is the implementation file for AlbumListForm class.
+ */
+
+#include "GlAlbumInfo.h"
+#include "GlAlbumListForm.h"
+#include "GlAlbumListPresentationModel.h"
+#include "GlGalleryApp.h"
+#include "GlResourceManager.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Base::Runtime;
+using namespace Tizen::Content;
+using namespace Tizen::Graphics;
+using namespace Tizen::Io;
+using namespace Tizen::Media;
+using namespace Tizen::System;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+static const int W_FOLDER_SIZE = 348;
+static const int H_FOLDER_SIZE = 348;
+
+AlbumListForm::AlbumListForm(void)
+       : __itemCount(0)
+       , __pAlbumViewIconList(null)
+       , __pOptionMenu(null)
+       , __pPresentationModel(null)
+
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+AlbumListForm::~AlbumListForm(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+result
+AlbumListForm::Initialize(void)
+{
+       AppLogDebug("ENTER");
+       result r = Form::Construct(IDL_FORM_ALBUM_LIST);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+result
+AlbumListForm::OnInitializing(void)
+{
+       AppLogDebug("ENTER");
+       result r = E_SUCCESS;
+
+       SetOrientation(ORIENTATION_AUTOMATIC);
+       AddOrientationEventListener(*this);
+
+       __pPresentationModel = AlbumListPresentationModel::GetInstance();
+       __pPresentationModel->ClearThumbnailRequests();
+       __pPresentationModel->AddPresentationModelListener(this);
+
+       if (__pPresentationModel->GetAppControlMode() == APPCONTROL_MODE_PICK)
+       {
+               if (__pPresentationModel->GetAppControlMediaType() == APPCONTROL_MEDIA_TYPE_IMAGE)
+               {
+                       __pPresentationModel->InitializeAlbumInfoList(CONTENT_TYPE_IMAGE);
+               }
+               else if (__pPresentationModel->GetAppControlMediaType() == APPCONTROL_MEDIA_TYPE_VIDEO)
+               {
+                       __pPresentationModel->InitializeAlbumInfoList(CONTENT_TYPE_VIDEO);
+               }
+               else
+               {
+                       __pPresentationModel->InitializeAlbumInfoList(CONTENT_TYPE_VIDEO);
+               }
+       }
+       else
+       {
+               __pPresentationModel->InitializeAlbumInfoList(CONTENT_TYPE_ALL);
+       }
+
+       AppLogDebug("ENTER __pPresentationModel(%x)", __pPresentationModel);
+
+       r = InitializeHeader();
+       if (r != E_SUCCESS)
+       {
+               AppLogDebug("[%s] Unable to set header.", GetErrorMessage(r));
+       }
+
+       r = InitializeFooter();
+       if (r != E_SUCCESS)
+       {
+               AppLogDebug("[%s] Unable to set footer.", GetErrorMessage(r));
+       }
+
+       __itemCount = __pPresentationModel->GetFolderCount();
+       CreateIconListView();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+result
+AlbumListForm::InitializeHeader(void)
+{
+       AppLogDebug("ENTER");
+       Header* pHeader = GetHeader();
+       if (pHeader == null)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+               return E_SYSTEM;
+       }
+
+       result r = pHeader->SetStyle(HEADER_STYLE_TITLE);
+       if (r != E_SUCCESS)
+       {
+               AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
+               return r;
+       }
+
+       pHeader->SetTitleText(ResourceManager::GetString(L"IDS_COM_BODY_GALLERY"));
+       pHeader->AddActionEventListener(*this);
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+       return E_SUCCESS;
+}
+
+result
+AlbumListForm::InitializeFooter(void)
+{
+       AppLogDebug("ENTER");
+       Footer* pFooter = GetFooter();
+       if (pFooter == null)
+       {
+               AppLogDebug("EXIT 1");
+               return E_SYSTEM;
+       }
+
+       if (__pPresentationModel->GetAppControlMode() == APPCONTROL_MODE_PICK)
+       {
+               SetFormBackEventListener(this);
+               pFooter->SetShowState(false);
+       }
+       else
+       {
+               pFooter->SetShowState(true);
+               pFooter->SetStyle(FOOTER_STYLE_BUTTON_ICON);
+               pFooter->RemoveAllItems();
+
+               FooterItem itemCamera;
+               itemCamera.Construct(IDA_FOOTER_CAMERA);
+               itemCamera.SetText(ResourceManager::GetString(L"EMPTY_SPACE"));
+               Bitmap* pBitmap1 = ResourceManager::GetBitmapN(IDB_CONTROLBAR_CAMERA);
+               if (pBitmap1 != null)
+               {
+                       itemCamera.SetIcon(FOOTER_ITEM_STATUS_NORMAL, pBitmap1);
+               }
+               pFooter->AddItem(itemCamera);
+               delete pBitmap1;
+
+               __pOptionMenu = new (std::nothrow) OptionMenu();
+               __pOptionMenu->Construct();
+               __pOptionMenu->AddItem(ResourceManager::GetString(L"IDS_COM_HEADER_EDIT"),IDA_FOOTER_EDIT);
+               __pOptionMenu->AddItem(ResourceManager::GetString(L"IDS_COM_HEADER_EDIT"), IDA_FOOTER_EDIT);
+               __pOptionMenu->SetShowState(false);
+               __pOptionMenu->AddActionEventListener(*this);
+               SetFormMenuEventListener(this);
+               SetFormBackEventListener(this);
+       }
+
+       pFooter->AddActionEventListener(*this);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+void
+AlbumListForm::CreateIconListView(void)
+{
+       AppLogDebug("ENTER");
+       Dimension itemSize(W_FOLDER_SIZE, H_FOLDER_SIZE);
+
+       __pAlbumViewIconList = new IconListView();
+       __pAlbumViewIconList->Construct(Rectangle(0, 0, GetClientAreaBounds().width, GetClientAreaBounds().height),
+                   Dimension(W_FOLDER_SIZE, H_FOLDER_SIZE), ICON_LIST_VIEW_STYLE_NORMAL, ICON_LIST_VIEW_SCROLL_DIRECTION_VERTICAL);
+       __pAlbumViewIconList->SetItemProvider(*this);
+       __pAlbumViewIconList->SetItemBorderStyle(ICON_LIST_VIEW_ITEM_BORDER_STYLE_NONE);
+       __pAlbumViewIconList->AddIconListViewItemEventListener(*this);
+
+
+
+       Bitmap* pBitmap = ResourceManager::GetBitmapN(IDB_LISTVIEW_EMPTY);
+
+       if (pBitmap != null)
+       {
+               __pAlbumViewIconList->SetBitmapOfEmptyList(pBitmap);
+               delete pBitmap;
+       }
+       __pAlbumViewIconList->SetTextOfEmptyList(ResourceManager::GetString(L"IDS_COM_BODY_NO_ITEMS"));
+
+       AddControl(__pAlbumViewIconList);
+
+       __pAlbumViewIconList->SetShowState(true);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+int
+AlbumListForm::GetItemCount(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return  __itemCount;
+}
+
+IconListViewItem*
+AlbumListForm::CreateItem(int index)
+{
+       AppLogDebug("ENTER : index(%d)", index);
+
+       Bitmap* pBitmap = null;
+       IList* pAlbumInfoList = __pPresentationModel->GetAlbumInfoList();
+       if (pAlbumInfoList != null)
+       {
+               AlbumInfo* pAlbumInfo = static_cast<AlbumInfo*>(pAlbumInfoList->GetAt(index));
+               if (pAlbumInfo != null)
+               {
+                       Bitmap* pAlbumBitmap = pAlbumInfo->GetFolderThumnailBitmap();
+
+                       if (pAlbumBitmap == null)
+                       {
+                               __pPresentationModel->RequestThumbnail(index, 0);
+                       }
+
+                       pBitmap = __pPresentationModel->CreateMergeBitmapN(index);
+
+                       if (pBitmap != null)
+                       {
+                               IconListViewItem* pIconListview = new (std::nothrow) IconListViewItem();
+                               pIconListview->Construct(*pBitmap);
+                               delete pBitmap;
+                               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+                               return pIconListview;
+                       }
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return null;
+}
+
+void
+AlbumListForm::OnIconListViewItemStateChanged(IconListView& view, int index, IconListViewItemStatus status)
+{
+       AppLogDebug("ENTER");
+       if (status == ICON_LIST_VIEW_ITEM_SELECTED)
+       {
+               SceneManager* pSceneManager = SceneManager::GetInstance();
+
+               IList* pAlbumInfoList = __pPresentationModel->GetAlbumInfoList();
+               AlbumInfo* pAlbumInfo = static_cast<AlbumInfo*>(pAlbumInfoList->GetAt(index));
+               AlbumInfo* pSendAlbumInfo = new (std::nothrow) AlbumInfo();
+               pSendAlbumInfo->Construct(*pAlbumInfo);
+
+               ArrayList* pArrayList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+               pArrayList->Construct();
+               pArrayList->Add(pSendAlbumInfo);
+
+               if (__pPresentationModel->GetAppControlMode() == APPCONTROL_MODE_PICK)
+               {
+                       if (__pPresentationModel->GetAppControlMediaType() == APPCONTROL_MEDIA_TYPE_IMAGE)
+                       {
+                               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_IMAGE_LIST_EDITOR), pArrayList);
+                       }
+                       else if (__pPresentationModel->GetAppControlMediaType() == APPCONTROL_MEDIA_TYPE_VIDEO)
+                       {
+                               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_VIDEO_LIST_EDITOR), pArrayList);
+                       }
+                       else
+                       {
+                               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_IMAGE_LIST_EDITOR), pArrayList);
+                       }
+               }
+               else
+               {
+                       pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALL_LIST), pArrayList);
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+bool
+AlbumListForm::DeleteItem(int index, IconListViewItem* pItem)
+{
+       AppLogDebug("ENTER");
+       delete pItem;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return true;
+}
+
+result
+AlbumListForm::OnTerminating(void)
+{
+       AppLogDebug("ENTER");
+       __pPresentationModel->RemovePresentationModelListener(*this);
+       __pPresentationModel->RemoveContentEventListener(*this);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+void
+AlbumListForm::OnActionPerformed(const Control& source, int actionId)
+{
+       AppLogDebug("ENTER");
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+
+       switch (actionId)
+       {
+       case IDA_FOOTER_CAMERA:
+       {
+               const String mimeType = APPCONTROL_MIME_IMAGE_JPG;
+               HashMap* pDataList = new (std::nothrow) HashMap(SingleObjectDeleter);
+               pDataList->Construct();
+               pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_CAMERA_ALLOW_SWITCH),
+                               new (std::nothrow) String(APPCONTROL_DATA_TRUE));
+               __pPresentationModel->StartAppControl(APPCONTROL_PROVIDER_ID_CAMERA,
+                               APPCONTROL_OPERATION_ID_CREATE_CONTENT, null, &mimeType, pDataList, this);
+
+       }
+       break;
+
+       case IDA_FOOTER_EDIT:
+       {
+               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALBUM_LIST_EDITOR));
+       }
+       break;
+
+       default:
+               break;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumListForm::OnFormBackRequested(Form& source)
+{
+       AppLogDebug("ENTER");
+       if (__pPresentationModel->GetAppControlMode() == APPCONTROL_MODE_PICK)
+       {
+               GalleryApp* pApp = dynamic_cast<GalleryApp*>(UiApp::GetInstance());
+               if (pApp != null && pApp->GetFrameActivated() == true)
+               {
+                       pApp->SendAppControlResult(APP_CTRL_RESULT_CANCELED, null);
+                       pApp->Terminate();
+               }
+       }
+       else
+       {
+               AppLogDebug("APP_CONTROL_MODE_MAIN");
+               UiApp* pApp = UiApp::GetInstance();
+               pApp->Terminate();
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumListForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs)
+{
+       AppLogDebug("ENTER");
+       __pPresentationModel->AddContentEventListener(this);
+
+       if (__pPresentationModel->GetAppControlMode() == APPCONTROL_MODE_PICK)
+       {
+               if (__pPresentationModel->GetAppControlMediaType() == APPCONTROL_MEDIA_TYPE_IMAGE)
+               {
+                       __pPresentationModel->ClearThumbnailRequests(false);
+                       __pPresentationModel->InitializeAlbumInfoList(CONTENT_TYPE_IMAGE);
+               }
+               else if (__pPresentationModel->GetAppControlMediaType() == APPCONTROL_MEDIA_TYPE_VIDEO)
+               {
+                       __pPresentationModel->InitializeAlbumInfoList(CONTENT_TYPE_VIDEO);
+               }
+               else
+               {
+                       __pPresentationModel->InitializeAlbumInfoList(CONTENT_TYPE_VIDEO);
+               }
+       }
+       else
+       {
+               __pPresentationModel->InitializeAlbumInfoList(CONTENT_TYPE_ALL);
+       }
+       __itemCount = __pPresentationModel->GetFolderCount();
+
+       if (__pAlbumViewIconList != null)
+       {
+               __pAlbumViewIconList->UpdateList();
+       }
+
+       Invalidate(true);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumListForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
+{
+       AppLogDebug("ENTER");
+       __pPresentationModel->RemoveContentEventListener(*this);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumListForm::OnContentUpdated(void)
+{
+       AppLogDebug("ENTER");
+
+       if (__pOptionMenu != null && __pOptionMenu ->GetShowState() == true)
+       {
+               __pOptionMenu->SetShowState(false);
+               __pOptionMenu->Show();
+       }
+
+       if (__pPresentationModel->GetAppControlMode() == APPCONTROL_MODE_PICK)
+       {
+               if (__pPresentationModel->GetAppControlMediaType() == APPCONTROL_MEDIA_TYPE_IMAGE)
+               {
+                       __pPresentationModel->InitializeAlbumInfoList(CONTENT_TYPE_IMAGE);
+               }
+               else if (__pPresentationModel->GetAppControlMediaType() == APPCONTROL_MEDIA_TYPE_VIDEO)
+               {
+                       __pPresentationModel->InitializeAlbumInfoList(CONTENT_TYPE_VIDEO);
+               }
+               else
+               {
+                       __pPresentationModel->InitializeAlbumInfoList(CONTENT_TYPE_VIDEO);
+               }
+       }
+       else
+       {
+               __pPresentationModel->InitializeAlbumInfoList(CONTENT_TYPE_ALL);
+       }
+
+       __itemCount = __pPresentationModel->GetFolderCount();
+       __pAlbumViewIconList->UpdateList();
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumListForm::OnFileInfoChanged(const ContentType contentType)
+{
+       AppLogDebug("ENTER");
+       Update();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumListForm::OnThumbnailDecoded(const int index)
+{
+       AppLogDebug("ENTER : index(%d)", index);
+       __pAlbumViewIconList->RefreshList(index, LIST_REFRESH_TYPE_ITEM_MODIFY);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumListForm::OnAppControlCompleteResponseReceived(const AppId& appId, const Tizen::Base::String& operationId,
+                       AppCtrlResult appControlResult, const Tizen::Base::Collection::IMap* pExtraData)
+{
+       AppLogDebug("OnAppControlCompleteResponseReceived : %d", appControlResult);
+
+       GalleryApp* pGalleryApp = static_cast<GalleryApp*>(GalleryApp::GetInstance());
+       TryReturnVoid(pGalleryApp != null, "pGalleryApp is null");
+       pGalleryApp->SetFrameEnabled(true);
+}
+
+result
+AlbumListForm::Update(void)
+{
+       AppLogDebug("ENTER");
+       result r = __pAlbumViewIconList->UpdateList();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+void
+AlbumListForm::OnFormMenuRequested (Tizen::Ui::Controls::Form &source)
+{
+
+       if (__pOptionMenu == null || GetItemCount() == 0)
+       {
+               return;
+       }
+
+       __pOptionMenu->SetShowState(true);
+       __pOptionMenu->Show();
+}
+
+void
+AlbumListForm::OnOrientationChanged(const Tizen::Ui::Control &source, Tizen::Ui::OrientationStatus orientationStatus)
+{
+       if (__pAlbumViewIconList != null)
+       {
+               RemoveControl(__pAlbumViewIconList);
+       }
+
+       __pAlbumViewIconList = new IconListView();
+
+       if (orientationStatus == ORIENTATION_STATUS_PORTRAIT)
+       {
+       __pAlbumViewIconList->Construct(Rectangle(0, 0, GetClientAreaBounds().width, GetClientAreaBounds().height),
+                   Dimension(W_FOLDER_SIZE, H_FOLDER_SIZE), ICON_LIST_VIEW_STYLE_NORMAL, ICON_LIST_VIEW_SCROLL_DIRECTION_VERTICAL);
+       }
+       else if (orientationStatus == ORIENTATION_STATUS_LANDSCAPE || orientationStatus == ORIENTATION_STATUS_LANDSCAPE_REVERSE)
+       {
+               int horizontalSpacing = 8;
+               int verticalSpacing = 60;
+        int height = 424;
+        int width = 410;
+
+               __pAlbumViewIconList->Construct(Rectangle(0, 0, GetClientAreaBounds().width, GetClientAreaBounds().height),
+                                   Dimension(width, height), ICON_LIST_VIEW_STYLE_NORMAL, ICON_LIST_VIEW_SCROLL_DIRECTION_VERTICAL);
+
+               __pAlbumViewIconList->SetItemSpacing(horizontalSpacing, verticalSpacing);
+               __pAlbumViewIconList->SetMargin(MARGIN_TYPE_TOP,60);
+       }
+
+       Bitmap* pBitmap = ResourceManager::GetBitmapN(IDB_LISTVIEW_EMPTY);
+
+       if (pBitmap != null)
+       {
+               __pAlbumViewIconList->SetBitmapOfEmptyList(pBitmap);
+               delete pBitmap;
+       }
+
+       __pAlbumViewIconList->SetTextOfEmptyList(ResourceManager::GetString(L"IDS_COM_BODY_NO_ITEMS"));
+
+       __pAlbumViewIconList->SetItemProvider(*this);
+       __pAlbumViewIconList->SetItemBorderStyle(ICON_LIST_VIEW_ITEM_BORDER_STYLE_NONE);
+       __pAlbumViewIconList->AddIconListViewItemEventListener(*this);
+
+       AddControl(__pAlbumViewIconList);
+
+}
diff --git a/src/GlAlbumListPresentationModel.cpp b/src/GlAlbumListPresentationModel.cpp
new file mode 100644 (file)
index 0000000..477d0a3
--- /dev/null
@@ -0,0 +1,1251 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlAlbumListPresentationModel.cpp
+ * @brief              This is the implementation file for AlbumListPresentationModel class.
+ */
+
+#include <cstdlib>
+#include <FMedia.h>
+#include <FSystem.h>
+
+#include "GlAlbumInfo.h"
+#include "GlAlbumListPresentationModel.h"
+#include "GlAlbumRenameEventListener.h"
+#include "GlContentUpdateEventListener.h"
+#include "GlFileListPresentationModel.h"
+#include "GlGalleryApp.h"
+#include "GlThumbnailEvent.h"
+#include "GlThumbnailEventArg.h"
+#include "GlThumbnailProvider.h"
+#include "GlTimerScanDirListener.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Base::Runtime;
+using namespace Tizen::Base::Utility;
+using namespace Tizen::Content;
+using namespace Tizen::Graphics;
+using namespace Tizen::Io;
+using namespace Tizen::Media;
+using namespace Tizen::System;
+using namespace Tizen::Ui::Controls;
+
+static const int ICON_CAP = 3;
+static const int FOLDER_CAP = 8;
+static const int ICON_SIZE = 107;
+static const int FOLDER_SIZE_WIDTH = 348;
+static const int FOLDER_SIZE_HEIGHT = 348;
+
+static const int CANVAS_HEIGHT = 71;
+static const int CANVAS_WIDTH = 326;
+
+static const int FONT_SIZE_FOLDER_NAME = 32;
+static const int FONT_SIZE_FOLDER_DATE = 25;
+static const int FONT_SIZE_FOLDER_COUNT = 45;
+static const int FONT_SIZE_FOLDER_COUNT_SMALL = 35;
+
+static const int CANVAS_IMAGE_FOLDER_HEIGHT = 48;
+static const int CANVAS_IMAGE_FOLDER_WIDTH = 48;
+static const int IMAGE_COUNT_WIDTH = 100;
+static const int IMAGE_COUNT_HEIGHT = 60;
+static const int CANVAS_MARGIN_LEFT = 10;
+static const int GAP = 10;
+static const int HEIGHT_OFFSET = 5;
+static const int Y_POS_CANVAS = 260;
+static const int FOLDER_NAME_WIDTH = 165;
+static const int FOLDER_NAME_HEIGHT = 38;
+
+
+static const int ALPHA_BG = 110;
+
+static const Color COLOR_CANVAS_BG (Color::GetColor(COLOR_ID_BLACK));
+
+static const String RESERVED_MEDIA_PATH = Environment::GetMediaPath();
+static const String RESERVED_CAMERA_PATH = Environment::GetMediaPath() + L"Camera";
+static const String RESERVED_CAMERA_PATH_EXT = Environment::GetExternalStoragePath() + L"Camera";
+static const String RESERVED_DOWNLOAD_PATH = Environment::GetMediaPath() + L"Downloads";
+static const String DATE_TIME = L"DateTime";
+
+static const int FORMAT_BUFFER_SIZE = 256;
+
+static const int DOUBLE_NUMBER = 2;
+static const int TRIPLE_NUMBER = 3;
+
+AlbumListPresentationModel* AlbumListPresentationModel::__pPresentationModelInstance = null;
+ArrayList* AlbumListPresentationModel::__pPresentationModelListener = null;
+ArrayList* AlbumListPresentationModel::__pContentEventListener = null;
+ThumbnailProvider* AlbumListPresentationModel::__pThumbnailProvider = null;
+ThumbnailEvent* AlbumListPresentationModel::__pThumbnailEvent = null;
+IList* AlbumListPresentationModel::__pAlbumInfoList = null;
+
+AlbumListPresentationModel::AlbumListPresentationModel(void)
+       : __pFolderBackgroundBitmap(null)
+       , __pAlbumListener(null)
+       , __appControlMode(APPCONTROL_MODE_MAIN)
+       , __appControlMediaType(APPCONTROL_MEDIA_TYPE_IMAGE)
+       , __appControlSelectionMode(APPCONTROL_SELECTION_MODE_SINGLE)
+       , __updateProgressStatus(false)
+       , __pTimerScanListener(null)
+       , __scanCount(0)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+AlbumListPresentationModel::~AlbumListPresentationModel(void)
+{
+       AppLogDebug("ENTER");
+       DeviceManager::RemoveDeviceEventListener(DEVICE_TYPE_STORAGE_CARD, *this);
+       delete __pFolderBackgroundBitmap;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+AlbumListPresentationModel*
+AlbumListPresentationModel::GetInstance(void)
+{
+       AppLogDebug("ENTER");
+       if (__pPresentationModelInstance == null)
+       {
+               CreateInstance();
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return __pPresentationModelInstance;
+}
+
+result
+AlbumListPresentationModel::Construct(void)
+{
+       AppLogDebug("ENTER");
+       __pPresentationModelListener = new (std::nothrow) ArrayList();
+       __pPresentationModelListener->Construct();
+
+       ContentUpdateEventListener::GetInstance();
+       __pContentEventListener = new (std::nothrow) ArrayList();
+       __pContentEventListener->Construct();
+
+       IThumbnailEventListener* pThumbnailEventListener = static_cast<IThumbnailEventListener*>(this);
+       __pThumbnailEvent = new (std::nothrow) ThumbnailEvent();
+       __pThumbnailEvent->AddListener(*pThumbnailEventListener, true);
+
+       DeviceManager::AddDeviceEventListener(DEVICE_TYPE_STORAGE_CARD, *this);
+
+       __pThumbnailProvider = ThumbnailProvider::GetInstance();
+       AppLogDebug("ENTER1");
+       GalleryApp* pApp = static_cast<GalleryApp*>(GalleryApp::GetInstance());
+       const IMap* pArguments = pApp->GetAppControlArguments();
+       String operationId = pApp->GetAppControlOperationId();
+
+       if (operationId.CompareTo(APPCONTROL_OPERATION_ID_MAIN) == 0)
+       {
+               __appControlMode = APPCONTROL_MODE_MAIN;
+       }
+       else if (operationId.CompareTo(APPCONTROL_OPERATION_ID_PICK) == 0)
+       {
+               __appControlMode = APPCONTROL_MODE_PICK;
+
+               String mimeType = pApp->GetMimeType();
+               if (mimeType.IsEmpty() != true)
+               {
+                       if (mimeType.StartsWith(APPCONTROL_DATA_VIDEO, 0) == true)
+                       {
+                               __appControlMediaType = APPCONTROL_MEDIA_TYPE_VIDEO;
+                       }
+               }
+               if (pArguments != null)
+               {
+                       const String* selectionMode =
+                                       static_cast<const String*>(pArguments->GetValue(String(APPCONTROL_KEY_SELECTION_MODE)));
+                       if (selectionMode != null && selectionMode->CompareTo(APPCONTROL_DATA_MULTIPLE) == 0)
+                       {
+                               __appControlSelectionMode = APPCONTROL_SELECTION_MODE_MULTIPLE;
+                       }
+               }
+       }
+       else if (operationId.CompareTo(APPCONTROL_OPERATION_ID_CONFIGURE) == 0)
+       {
+               __appControlMode = APPCONTROL_MODE_SETTING;
+       }
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+void
+AlbumListPresentationModel::CreateInstance(void)
+{
+       AppLogDebug("ENTER");
+       __pPresentationModelInstance = new (std::nothrow) AlbumListPresentationModel;
+       result r = __pPresentationModelInstance->Construct();
+
+       if (IsFailed(r) == true)
+       {
+               delete __pPresentationModelInstance;
+               __pPresentationModelInstance = null;
+               AppLogDebug("EXIT false");
+               return;
+       }
+       std::atexit(DestroyInstance);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumListPresentationModel::DestroyInstance(void)
+{
+       AppLogDebug("ENTER");
+
+       delete __pThumbnailEvent;
+       __pThumbnailEvent = null;
+
+       if (__pAlbumInfoList != null)
+       {
+               delete __pAlbumInfoList;
+               __pAlbumInfoList = null;
+       }
+
+       if (__pPresentationModelListener != null)
+       {
+               delete __pPresentationModelListener;
+               __pPresentationModelListener = null;
+       }
+
+       if (__pContentEventListener != null)
+       {
+               delete __pContentEventListener;
+               __pContentEventListener = null;
+       }
+
+       delete __pPresentationModelInstance;
+       __pPresentationModelInstance = null;
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+result
+AlbumListPresentationModel::AddPresentationModelListener(IAlbumEventListener* listener)
+{
+       AppLogDebug("ENTER");
+       result r = __pPresentationModelListener->Add(listener);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+result
+AlbumListPresentationModel::RemovePresentationModelListener(IAlbumEventListener& listner)
+{
+       AppLogDebug("ENTER");
+       result r = __pPresentationModelListener->Remove(listner);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+void
+AlbumListPresentationModel::AddContentEventListener(const IFormContentUpdateEventListener* listener)
+{
+       AppLogDebug("ENTER");
+       if (__pContentEventListener != null)
+       {
+               __pContentEventListener->RemoveAll();
+               __pContentEventListener->Add((Object*)listener);
+               AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+       }
+}
+
+void
+AlbumListPresentationModel::RemoveContentEventListener(const IFormContentUpdateEventListener& listener)
+{
+       AppLogDebug("ENTER");
+       __pContentEventListener->Remove(listener);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumListPresentationModel::CallAlbumChangedEvent(void)
+{
+       AppLogDebug("ENTER");
+       if (__pPresentationModelListener->GetCount() > 0)
+       {
+               IEnumerator* pEnum = __pPresentationModelListener->GetEnumeratorN();
+
+               while (pEnum->MoveNext() == E_SUCCESS)
+               {
+                       IAlbumEventListener* pListener = null;
+                       pListener = static_cast<IAlbumEventListener*>(pEnum->GetCurrent());
+                       pListener->OnFileInfoChanged(CONTENT_TYPE_ALL);
+               }
+
+               delete pEnum;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+result
+AlbumListPresentationModel::RenameAlbum(const String& orgPath, const String& newPath,
+               IAlbumRenameEventListener* pAlbumListener)
+{
+       AppLogDebug("ENTER");
+       result r = Directory::Rename(orgPath, newPath);
+       if (IsFailed(r))
+       {
+               AppLogDebug("Album Rename failed(%s)", GetErrorMessage(r));
+       }
+       else
+       {
+               __pAlbumListener = pAlbumListener;
+               __renameNewPath = newPath;\r
+               r = ContentManager::ScanDirectory(newPath, true, NULL, __reqId);\r
+               AppLogDebug("Content scan failed (%s)", GetErrorMessage(r));
+               r = ContentManager::ScanDirectory(orgPath, true, NULL, __reqId);\r
+               AppLogDebug("Content scan failed (%s)", GetErrorMessage(r));
+       }
+       AppLogDebug("EXIT");
+       return r;
+}
+
+void
+AlbumListPresentationModel::ShowAnimation(void)
+{
+       IFormContentUpdateEventListener* pInterface = null;
+       IEnumerator* pEventEnum = __pContentEventListener->GetEnumeratorN();
+       while (pEventEnum->MoveNext() == E_SUCCESS)
+       {
+               pInterface = static_cast<IFormContentUpdateEventListener*>(pEventEnum->GetCurrent());
+               pInterface->ShowAnimation();
+       }
+       delete pEventEnum;
+}
+
+void
+AlbumListPresentationModel::StopAnimation(void)
+{
+       IFormContentUpdateEventListener* pInterface = null;
+       IEnumerator* pEventEnum = __pContentEventListener->GetEnumeratorN();
+       while (pEventEnum->MoveNext() == E_SUCCESS)
+       {
+               pInterface = static_cast<IFormContentUpdateEventListener*>(pEventEnum->GetCurrent());
+               pInterface->StopAnimation();
+       }
+       delete pEventEnum;
+}
+
+void
+AlbumListPresentationModel::AddTimerScanListener(ITimerScanDirListener* pListener, int scanCount)
+{
+       __pTimerScanListener = pListener;
+       __scanCount = scanCount;
+}
+
+void
+AlbumListPresentationModel::RemoveTimerScanListener(void)
+{
+       __pTimerScanListener = null;
+       __scanCount = 0;
+}
+
+bool
+AlbumListPresentationModel::OnContentScanCompleted (const Tizen::Base::String &scanPath)\r
+{
+       AppLogDebug("ENTER");\r
+       if (__pTimerScanListener)
+       {
+               __scanCount--;
+               if ( __scanCount == 0 )
+               {
+                       __pTimerScanListener->OnTimerScanDirComplete();
+               }
+               return false;
+       }
+       if (__pAlbumListener && ( scanPath == __renameNewPath))\r
+       {
+               InitializeAlbumInfoList(CONTENT_TYPE_ALL);
+               __pAlbumListener->OnAlbumRenameComplete();
+               __renameNewPath = L"";
+               AppLogDebug("EXIT");
+               return true;
+       }
+       AppLogDebug("EXIT");
+       return false;
+}
+
+void
+AlbumListPresentationModel::DrawPartialImage(Canvas& canvas, AlbumInfo* pAlbumInfo, const Rectangle& rectNew)
+{
+       AppLogDebug("ENTER");
+       if (&canvas == null || __pFolderBackgroundBitmap == null || pAlbumInfo == null)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+               return;
+       }
+
+       canvas.DrawBitmap(rectNew, *__pFolderBackgroundBitmap);
+
+       Bitmap* pBitmap = pAlbumInfo->GetFolderThumnailBitmap();
+
+       if (pBitmap != null)
+       {
+               Rectangle rectFirst(ICON_CAP+FOLDER_CAP, ICON_CAP,
+                               ICON_CAP * DOUBLE_NUMBER + ICON_SIZE * TRIPLE_NUMBER,
+                               ICON_CAP * DOUBLE_NUMBER + ICON_SIZE * TRIPLE_NUMBER);
+               canvas.DrawBitmap(rectFirst, *pBitmap);
+       }
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumListPresentationModel::DrawFontImage(Canvas& canvas, AlbumInfo* pAlbumInfo, int index)
+{
+       AppLogDebug("ENTER");
+
+       if (&canvas == null)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return;
+       }
+
+       Point pointText;
+       String strCnt;
+       Bitmap* pBitmap = null;
+       Font ftFolderName, ftDate, ftCnt,ftCntSmall;
+       EnrichedText enText;
+       EnrichedText enTextCount;
+       TextElement textElement;
+       TextElement textElementCount;
+
+       int allContentCount = pAlbumInfo->GetContentIdCount();
+       strCnt.Format(FORMAT_BUFFER_SIZE, L"%d", allContentCount);
+
+       String strFolderName = pAlbumInfo->GetAlbumName();
+
+       if (strFolderName == ALL_ALBUMS_REAL_NAME)
+       {
+               strFolderName = ResourceManager::GetString(L"IDS_MEDIABR_BODY_ALL_ALBUMS");
+       }
+
+       String strDirectory = pAlbumInfo->GetDirectory(0);
+       AppLog("The directory path is  %ls" , strDirectory.GetPointer());
+
+       Rectangle rectCanvas(ICON_CAP + FOLDER_CAP, Y_POS_CANVAS, CANVAS_WIDTH, CANVAS_HEIGHT);
+       Color bgColor(COLOR_CANVAS_BG);
+       bgColor.SetAlpha(ALPHA_BG);
+       canvas.FillRectangle(bgColor, rectCanvas);
+
+
+       if (strDirectory == RESERVED_DOWNLOAD_PATH)
+       {
+               pBitmap = ResourceManager::GetBitmapN(IDB_ALBUM_ICON_DOWNLOAD);
+       }
+       else if (strDirectory == RESERVED_CAMERA_PATH ||  strDirectory == RESERVED_CAMERA_PATH_EXT)
+       {
+               pBitmap = ResourceManager::GetBitmapN(IDB_ALBUM_ICON_CAMERA);
+       }
+       else
+       {
+               pBitmap = ResourceManager::GetBitmapN(IDB_ALBUM_ICON_FOLDER);
+       }
+
+       if (pBitmap != null)
+       {
+               canvas.DrawBitmap(Rectangle(ICON_CAP + FOLDER_CAP, rectCanvas.y + HEIGHT_OFFSET, CANVAS_IMAGE_FOLDER_WIDTH,
+                                       CANVAS_IMAGE_FOLDER_HEIGHT), *pBitmap);
+               delete pBitmap;
+       }
+
+       ftFolderName.Construct(FONT_STYLE_PLAIN, FONT_SIZE_FOLDER_NAME);
+       ftDate.Construct(FONT_STYLE_PLAIN, FONT_SIZE_FOLDER_DATE);
+       ftCnt.Construct(FONT_STYLE_PLAIN, FONT_SIZE_FOLDER_COUNT);
+       ftCntSmall.Construct(FONT_STYLE_PLAIN, FONT_SIZE_FOLDER_COUNT_SMALL);
+
+       enText.Construct(Dimension(FOLDER_NAME_WIDTH, FOLDER_NAME_HEIGHT));
+       enText.SetHorizontalAlignment(TEXT_ALIGNMENT_LEFT);
+
+       textElement.Construct(strFolderName);
+       textElement.SetFont(ftFolderName);
+       textElement.SetTextColor(Color::GetColor(COLOR_ID_WHITE));
+       enText.SetTextAbbreviationEnabled(true);
+       enText.Add(textElement);
+
+       enTextCount.Construct(Dimension(IMAGE_COUNT_WIDTH, IMAGE_COUNT_HEIGHT));
+       enTextCount.SetHorizontalAlignment(TEXT_ALIGNMENT_RIGHT);
+
+       textElementCount.Construct(strCnt);
+
+       if (strCnt.GetLength() > 3)
+       {
+               textElementCount.SetFont(ftCntSmall);
+       }
+       else
+       {
+               textElementCount.SetFont(ftCnt);
+       }
+       textElementCount.SetTextColor(Color::GetColor(COLOR_ID_WHITE));
+       enTextCount.SetTextAbbreviationEnabled(true);
+       enTextCount.Add(textElementCount);
+
+       pointText = Point(CANVAS_MARGIN_LEFT + CANVAS_IMAGE_FOLDER_WIDTH + GAP + FOLDER_NAME_WIDTH,
+                       rectCanvas.y + HEIGHT_OFFSET);
+       canvas.SetFont(ftCnt);
+       canvas.SetForegroundColor(Color::GetColor(COLOR_ID_WHITE));
+       canvas.DrawText(pointText, enTextCount);
+
+       pointText = Point(CANVAS_MARGIN_LEFT + CANVAS_IMAGE_FOLDER_WIDTH + GAP,
+                       rectCanvas.y + GAP + HEIGHT_OFFSET);
+       canvas.SetForegroundColor(Color::GetColor(COLOR_ID_WHITE));
+       canvas.DrawText(pointText, enText);
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+Bitmap*
+AlbumListPresentationModel::CreateMergeBitmapN(const int index)
+{
+       AppLogDebug("ENTER index(%d)", index);
+
+       if (__pAlbumInfoList == null)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return null;
+       }
+
+       AlbumInfo* pAlbumInfo = static_cast<AlbumInfo*>(__pAlbumInfoList->GetAt(index));
+
+       Bitmap* pBitmapNew = new (std::nothrow) Bitmap();
+       BufferInfo bufferinfo;
+       Canvas canvas;
+       Rectangle rectNew(0, 0, FOLDER_SIZE_WIDTH, FOLDER_SIZE_HEIGHT);
+       Dimension size(FOLDER_SIZE_WIDTH, FOLDER_SIZE_HEIGHT);
+
+       result r = pBitmapNew->Construct(size, BITMAP_PIXEL_FORMAT_ARGB8888);
+       if (r != E_SUCCESS)
+       {
+               delete pBitmapNew;
+               AppLogDebug("EXIT 3(%s)", GetErrorMessage(GetLastResult()));
+
+               return null;
+       }
+
+       pBitmapNew->Lock(bufferinfo);
+       r = canvas.Construct(bufferinfo);
+       if (r != E_SUCCESS)
+       {
+               delete pBitmapNew;
+               AppLogDebug("EXIT 4(%s)", GetErrorMessage(GetLastResult()));
+
+               return null;
+       }
+
+       DrawPartialImage(canvas, pAlbumInfo, rectNew);
+       DrawFontImage(canvas, pAlbumInfo, index);
+
+       pBitmapNew->Unlock();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pBitmapNew;
+}
+
+result
+AlbumListPresentationModel::StartAppControl(const String& providerId, const String& operationId,
+               const String* pUriData, const String* pMimeType, const HashMap* pDataList,
+               IAppControlResponseListener* pListener)
+{
+       AppLogDebug("ENTER");
+       FileListPresentationModel::GetInstance()->ClearProviderId();
+       AppControl* pAc = AppManager::FindAppControlN(providerId, operationId);
+       if (pAc == null)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return E_FAILURE;
+       }
+       result r = pAc->Start(pUriData, pMimeType, pDataList, pListener);
+
+       if (r == E_SUCCESS)
+       {
+               GalleryApp* pGalleryApp = static_cast<GalleryApp*>(GalleryApp::GetInstance());
+               pGalleryApp->SetFrameEnabled(false);
+       }
+
+       delete pAc;
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+String
+AlbumListPresentationModel::GetDirectoryName(String& directoryPath) const
+{
+       AppLogDebug("ENTER");
+       String directoryName;
+       int lastIndex = -1;
+
+       directoryPath.LastIndexOf(DIRECTORY_SEPARATOR, directoryPath.GetLength() - 1, lastIndex);
+       directoryPath.SubString(lastIndex + 1, directoryName);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return directoryName;
+}
+
+int
+AlbumListPresentationModel::GetFolderCount(void) const
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return __pAlbumInfoList->GetCount();
+}
+
+void
+AlbumListPresentationModel::InitializeAlbumInfoList(const ContentType& contentType)
+{
+       AppLogDebug("ENTER");
+
+       if (__pFolderBackgroundBitmap == null)
+       {
+               __pFolderBackgroundBitmap = ResourceManager::GetBitmapN(IDB_MAIN_FOLDER_BACKGROUND);
+       }
+
+       if (__pAlbumInfoList != null)
+       {
+               delete __pAlbumInfoList;
+       }
+       __pAlbumInfoList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+
+       ContentDirectory directory;
+
+       if (contentType == CONTENT_TYPE_ALL)
+       {
+               IListT<ContentType>* pListT = new (std::nothrow) ArrayListT<ContentType>();
+               TryReturnVoid(pListT != null, "Unable to Create ArrayListT");
+               pListT->Add(CONTENT_TYPE_IMAGE);
+               pListT->Add(CONTENT_TYPE_VIDEO);
+
+               result r = directory.Construct(*pListT);
+               delete pListT;
+
+               if (r != E_SUCCESS)
+               {
+                       delete __pAlbumInfoList;
+                       __pAlbumInfoList = null;
+                       AppLogDebug("EXIT 1(%s)", GetErrorMessage(r));
+                       return;
+               }
+       }
+       else
+       {
+               result r = directory.Construct(contentType);
+               if (r != E_SUCCESS)
+               {
+                       delete __pAlbumInfoList;
+                       __pAlbumInfoList = null;
+                       AppLogDebug("EXIT 2(%s)", GetErrorMessage(r));
+                       return;
+               }
+       }
+
+       IList* pContentDirectoryPathList = directory.GetContentDirectoryPathListN(SORT_ORDER_ASCENDING);
+       String* pDirPath = null;
+       AlbumInfo* pAlbumInfo = null;
+
+       AlbumInfo* pAllAlbumInfo = new (std::nothrow) AlbumInfo();
+       AlbumInfo* pCameraAlbumInfo = new (std::nothrow) AlbumInfo();
+       AlbumInfo* pDownloadAlbumInfo = new (std::nothrow) AlbumInfo();
+       AlbumInfo* pNoNameAlbumInfo = new (std::nothrow) AlbumInfo();
+
+       result r = pAllAlbumInfo->Construct();
+       TryCatch(IsFailed(r) == E_SUCCESS,,"new pNoNameAlbumInfo is %s",GetErrorMessage(r));
+       pAllAlbumInfo->SetAlbumName(ALL_ALBUMS_REAL_NAME);
+
+       r = pCameraAlbumInfo->Construct();
+       TryCatch(IsFailed(r) == E_SUCCESS,,"new pNoNameAlbumInfo is %s",GetErrorMessage(r));
+       pCameraAlbumInfo->SetAlbumName(ResourceManager::GetString(L"IDS_MEDIABR_BODY_CAMERA_ROLL_ABB"));
+
+       r = pDownloadAlbumInfo->Construct();
+       TryCatch(IsFailed(r) == E_SUCCESS,,"new pNoNameAlbumInfo is %s",GetErrorMessage(r));
+       pDownloadAlbumInfo->SetAlbumName(ResourceManager::GetString(L"IDS_COM_BODY_DOWNLOADS"));
+
+       r = pNoNameAlbumInfo->Construct();
+       TryCatch(IsFailed(r) == E_SUCCESS,,"new pNoNameAlbumInfo is %s",GetErrorMessage(r));
+       pNoNameAlbumInfo->SetAlbumName(ResourceManager::GetString(L"IDS_MEDIABR_POP_NO_NAME"));
+
+       if ((pContentDirectoryPathList != null) && (pContentDirectoryPathList->GetCount() > 0))
+       {
+               IEnumerator* pEnum = pContentDirectoryPathList->GetEnumeratorN();
+               while (pEnum->MoveNext() == E_SUCCESS)
+               {
+                       pDirPath = static_cast<String*>(pEnum->GetCurrent());
+                       String mediaPath = RESERVED_MEDIA_PATH;
+                       int length = mediaPath.GetLength();
+                       mediaPath.Remove(length-1,1);
+
+                       if (pDirPath == null)
+                       {
+                               continue;
+                       }
+                       if ((*pDirPath == RESERVED_CAMERA_PATH) ||(*pDirPath == RESERVED_CAMERA_PATH_EXT))
+                       {
+                               IList* pContentIdList = GetContentIdListInDirectoryN(*pDirPath, contentType);
+
+                               if (pContentIdList != null)
+                               {
+                                       pCameraAlbumInfo->AppendDirectory(*pDirPath);
+                                       pCameraAlbumInfo->AppendContentIdList(*pContentIdList);
+
+                                       pAllAlbumInfo->AppendDirectory(*pDirPath);
+                                       pAllAlbumInfo->AppendContentIdList(*pContentIdList);
+                                       delete pContentIdList;
+                               }
+                       }
+                       else if (*pDirPath == RESERVED_DOWNLOAD_PATH)
+                       {
+                               IList* pContentIdList = GetContentIdListInDirectoryN(*pDirPath, contentType);
+
+                               if (pContentIdList != null)
+                               {
+                                       pDownloadAlbumInfo->AppendDirectory(*pDirPath);
+                                       pDownloadAlbumInfo->AppendContentIdList(*pContentIdList);
+
+                                       pAllAlbumInfo->AppendDirectory(*pDirPath);
+                                       pAllAlbumInfo->AppendContentIdList(*pContentIdList);
+
+                                       pContentIdList->RemoveAll(true);
+                                       delete pContentIdList;
+                               }
+                       }
+                       else if (*pDirPath == mediaPath)
+                       {
+                               IList* pContentIdList = GetContentIdListInDirectoryN(*pDirPath, contentType);
+
+                               if (pContentIdList != null)
+                               {
+                                       pNoNameAlbumInfo->AppendDirectory(*pDirPath);
+                                       pNoNameAlbumInfo->AppendContentIdList(*pContentIdList);
+
+                                       pAllAlbumInfo->AppendDirectory(*pDirPath);
+                                       pAllAlbumInfo->AppendContentIdList(*pContentIdList);
+
+                                       pContentIdList->RemoveAll(true);
+                                       delete pContentIdList;
+                               }
+                       }
+                       else
+                       {
+                               IList* pContentIdList = GetContentIdListInDirectoryN(*pDirPath, contentType);
+
+                               if (pContentIdList != null)
+                               {
+                                       if (pContentIdList->GetCount() > 0)
+                                       {
+                                               pAlbumInfo = new (std::nothrow) AlbumInfo();
+                                               IList* pSubDirList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+
+                                               pSubDirList->Add(new (std::nothrow) String(*pDirPath));
+
+                                               pAlbumInfo->Construct(GetDirectoryNameFromFullPath(*pDirPath), contentType, *pSubDirList,
+                                                               *pContentIdList);
+
+                                               pAllAlbumInfo->AppendDirectory(*pDirPath);
+                                               pAllAlbumInfo->AppendContentIdList(*pContentIdList);
+
+                                               pSubDirList->RemoveAll(true);
+                                               delete pSubDirList;
+                                       }
+
+                                       if (pContentIdList != NULL)
+                                       {
+                                               pContentIdList->RemoveAll(true);
+                                               delete pContentIdList;
+                                       }
+                               }
+                               if (pAlbumInfo != null && pAlbumInfo->GetContentIdCount() > 0)
+                               {
+                                       __pAlbumInfoList->Add(pAlbumInfo);
+                                       AppLog("Adding album");
+                               }
+                               else
+                               {
+                                       delete pAlbumInfo;
+                               }
+                               pAlbumInfo = null;
+                       }
+               }
+
+               int insertIndex = 0;
+               if (pAllAlbumInfo->GetContentIdCount() > 0)
+               {
+                       __pAlbumInfoList->InsertAt((Object&)*pAllAlbumInfo, insertIndex++);
+               }
+               else
+               {
+                       delete pAllAlbumInfo;
+               }
+
+               if (pCameraAlbumInfo->GetContentIdCount() > 0)
+               {
+                       __pAlbumInfoList->InsertAt((Object&)*pCameraAlbumInfo, insertIndex++);
+               }
+               else
+               {
+                       delete pCameraAlbumInfo;
+               }
+
+               if (pDownloadAlbumInfo->GetContentIdCount() > 0)
+               {
+                       __pAlbumInfoList->InsertAt((Object&)*pDownloadAlbumInfo, insertIndex++);
+               }
+               else
+               {
+                       delete pDownloadAlbumInfo;
+               }
+
+               if (pNoNameAlbumInfo->GetContentIdCount() > 0)
+               {
+                       __pAlbumInfoList->InsertAt((Object&)*pNoNameAlbumInfo, insertIndex++);
+               }
+               else
+               {
+                       delete pNoNameAlbumInfo;
+               }
+
+               delete pEnum;
+       }
+       else
+       {
+               delete pAllAlbumInfo;
+               delete pCameraAlbumInfo;
+               delete pDownloadAlbumInfo;
+               delete pNoNameAlbumInfo;
+       }
+
+       if (pContentDirectoryPathList != null)
+       {
+               pContentDirectoryPathList->RemoveAll(true);
+               delete pContentDirectoryPathList;
+       }
+       ClearThumbnailRequests(false);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+       return;
+
+CATCH:
+if (pContentDirectoryPathList != null)
+{
+       pContentDirectoryPathList->RemoveAll(true);
+       delete pContentDirectoryPathList;
+}
+       delete pAllAlbumInfo;
+       delete pCameraAlbumInfo;
+       delete pDownloadAlbumInfo;
+       delete pNoNameAlbumInfo;
+}
+
+String
+AlbumListPresentationModel::GetDirectoryNameFromFullPath(const String& fullPath)const
+{
+       AppLogDebug("ENTER");
+       if (fullPath == null)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return null;
+       }
+       String delim(DIRECTORY_SEPARATOR);
+       StringTokenizer st(fullPath,delim);
+       String token;
+       while (st.HasMoreTokens())
+       {
+               st.GetNextToken(token);
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return token;
+}
+
+IList*
+AlbumListPresentationModel::GetContentIdListInDirectoryN(const String& directoryPath, ContentType contentType)const
+{
+       AppLogDebug("ENTER");
+
+       if (&directoryPath == null)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+               return null;
+       }
+
+       ContentDirectory directory;
+       const String contentDirectoryPath = directoryPath;
+       if (contentType == CONTENT_TYPE_ALL)
+       {
+               IListT<ContentType>* pListT = new (std::nothrow) ArrayListT<ContentType>();
+               pListT->Add(CONTENT_TYPE_IMAGE);
+               pListT->Add(CONTENT_TYPE_VIDEO);
+               result r = directory.Construct(*pListT);
+               delete pListT;
+               if (r != E_SUCCESS)
+               {
+                       AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
+                       return null;
+               }
+       }
+       else
+       {
+               result r = directory.Construct(contentType);
+               if (r != E_SUCCESS)
+               {
+                       AppLogDebug("EXIT 3(%s)", GetErrorMessage(GetLastResult()));
+                       return null;
+               }
+       }
+
+       int pageNo = 1;
+       int countPerPage = directory.GetContentDirectoryItemCount(contentDirectoryPath);
+
+       IList* pContentInfoList = directory.GetContentDirectoryItemListN(contentDirectoryPath, pageNo, countPerPage,
+                       DATE_TIME, SORT_ORDER_DESCENDING);
+
+       IList* pContentIdList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+
+       if ((pContentInfoList != null) && (pContentInfoList->GetCount() > 0))
+       {
+               IEnumerator* pEnum = pContentInfoList->GetEnumeratorN();
+               ContentId* pItem;
+               while (pEnum->MoveNext() == E_SUCCESS)
+               {
+                       ContentInfo* pContentInfo = static_cast<ContentInfo*>(pEnum->GetCurrent());
+                       pItem = new (std::nothrow) ContentId(pContentInfo->GetContentId());
+                       pContentIdList->Add(pItem);
+               }
+               delete pEnum;
+       }
+
+       if (pContentInfoList != NULL)
+       {
+               pContentInfoList->RemoveAll(true);
+               delete pContentInfoList;
+       }
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pContentIdList;
+}
+
+result
+AlbumListPresentationModel::DeleteContentFile(const String& filePath)
+{
+       AppLogDebug("ENTER");
+       result r = E_SUCCESS;
+       r = File::Remove(filePath);
+       AppLogDebug("Exit");
+       return r;
+}
+
+AppControlMode
+AlbumListPresentationModel::GetAppControlMode(void) const
+{
+       AppLogDebug("Enter");
+       AppLogDebug("Exit");
+       return __appControlMode;
+}
+
+AppControlMediaType
+AlbumListPresentationModel::GetAppControlMediaType(void) const
+{
+       AppLogDebug("Enter");
+       AppLogDebug("Exit");
+       return __appControlMediaType;
+}
+
+AppControlSelectionMode
+AlbumListPresentationModel::GetAppControlSelectionMode(void) const
+{
+       AppLogDebug("Enter");
+       AppLogDebug("Exit");
+       return __appControlSelectionMode;
+}
+
+IList*
+AlbumListPresentationModel::GetAlbumInfoList(void) const
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return __pAlbumInfoList;
+}
+
+IList* AlbumListPresentationModel::GetContentIdListAtIndexN(const IList& indexList) const
+{
+       AppLogDebug("ENTER");
+       ContentDirectory directory;
+       IList* pContentIdList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+
+       IListT<ContentType>* pListT = new (std::nothrow) ArrayListT<ContentType>();
+       TryReturn(pListT != null,null, "Unable to Create ArrayListT");
+       pListT->Add(CONTENT_TYPE_IMAGE);
+       pListT->Add(CONTENT_TYPE_VIDEO);
+
+       result r = directory.Construct(*pListT);
+       delete pListT;
+
+       if (r != E_SUCCESS)
+       {
+               AppLogDebug("EXIT 3(%s)", GetErrorMessage(GetLastResult()));
+               delete pContentIdList;
+               return null;
+       }
+
+       if (static_cast<const Integer*>(indexList.GetAt(0))->ToInt() == 0) //if all-album is selected, get all files for delete
+       {
+               IList* pContentDirectoryPathList = directory.GetContentDirectoryPathListN(SORT_ORDER_ASCENDING);
+               String* pDirPath = null;
+               if ((pContentDirectoryPathList != null) && (pContentDirectoryPathList->GetCount() > 0))
+               {
+                       int loopCount = pContentDirectoryPathList->GetCount();
+                       for (int i = 0; i < loopCount; ++i)
+                       {
+                               pDirPath = static_cast<String*>(pContentDirectoryPathList->GetAt(i));
+                               pContentIdList->AddItems(*(GetContentIdListInDirectoryN(*pDirPath, CONTENT_TYPE_ALL)));
+                       }
+               }
+       }
+       else
+       {
+               if(__pAlbumInfoList != null)
+               {
+                       int loopCount = indexList.GetCount();
+                       AlbumInfo* pInfo = null;
+                       for (int i = 0; i < loopCount; ++i)
+                       {
+                               int index  = static_cast<const Integer*>(indexList.GetAt(i))->ToInt();
+                               pInfo = static_cast<AlbumInfo*>(__pAlbumInfoList->GetAt(index));
+
+                               if(pInfo != null)
+                               {
+                                       IList* pList = pInfo->GetContentIdListN();
+                                       if(pList != null)
+                                       {
+                                               pContentIdList->AddItems(*pList);
+                                       }
+                               }
+                       }
+               }
+       }
+       return pContentIdList;
+}
+
+void
+AlbumListPresentationModel::OnThumbnailReceivedN(IEventArg& eventArg)
+{
+       AppLogDebug("ENTER");
+       if (&eventArg != null)
+       {
+               ThumbnailEventArg* pThumbnailEventArg = static_cast<ThumbnailEventArg*>(&eventArg);
+               if (pThumbnailEventArg == null)
+               {
+                       AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+                       return;
+               }               
+               ThumbnailInfo* pThumbnailInfo = pThumbnailEventArg->GetThumbnailInfoN();
+               if (pThumbnailInfo == null)
+               {
+                       AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
+
+                       return;
+               }
+
+               ContentId contentId = pThumbnailInfo->GetContentId();
+               ArrayList* pUpdateFolderIndex = new (std::nothrow) ArrayList(SingleObjectDeleter);
+
+               if (__pAlbumInfoList != null)
+               {
+                       int outterLoopCount = __pAlbumInfoList->GetCount();
+                       for (int x = 0; x < outterLoopCount; ++x)
+                       {
+                               AlbumInfo* pAlbumInfo = static_cast<AlbumInfo*>(__pAlbumInfoList->GetAt(x));
+                               int innerLoopCount = pAlbumInfo->GetContentIdCount();
+                               for (int i = 0; i < innerLoopCount; ++i)
+                               {
+                                       if (i >= FOLDER_BITMAP_MAX)
+                                       {
+                                               break;
+                                       }
+
+                                       if (contentId == pAlbumInfo->GetContentId(i))
+                                       {
+                                               if (pAlbumInfo->GetFolderThumnailBitmap() == null)
+                                               {
+                                                       pAlbumInfo->SetFolderThumnailBitmap(pThumbnailInfo->GetBitmapN());
+                                                       pUpdateFolderIndex->Add(new (std::nothrow) Integer(x));
+                                               }
+                                       }
+                               }
+                       }
+               }
+
+               delete pThumbnailInfo;
+
+               if (__pPresentationModelListener->GetCount() > 0)
+               {
+                       IEnumerator* pEnum = __pPresentationModelListener->GetEnumeratorN();
+                       while (pEnum->MoveNext() == E_SUCCESS)
+                       {
+                               IAlbumEventListener* pListener = null;
+                               pListener = static_cast<IAlbumEventListener*>(pEnum->GetCurrent());
+
+                               int loopCount = pUpdateFolderIndex->GetCount();
+                               for (int k = 0; k < loopCount; ++k)
+                               {
+                                       Integer *pIndex = (Integer*)pUpdateFolderIndex->GetAt(k);
+                                       int folderIndex = pIndex->ToInt();
+                                       pListener->OnThumbnailDecoded(folderIndex);
+                               }
+                       }
+                       delete pEnum;
+               }
+
+               delete pUpdateFolderIndex;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumListPresentationModel::OnContentCreated(void)
+{
+       AppLogDebug("ENTER");
+       if (__updateProgressStatus == true)
+       {
+               AppLogDebug("EXIT update in application");
+               return;
+       }
+       IFormContentUpdateEventListener* pInterface = null;
+       IEnumerator* pEventEnum = __pContentEventListener->GetEnumeratorN();
+       while (pEventEnum->MoveNext() == E_SUCCESS)
+       {
+               pInterface = static_cast<IFormContentUpdateEventListener*>(pEventEnum->GetCurrent());
+               if (pInterface != null)
+               {
+                       pInterface->OnContentUpdated();
+               }
+       }
+       delete pEventEnum;
+       AppLogDebug("EXIT");
+}
+
+void
+AlbumListPresentationModel::OnContentUpdated(void)
+{
+       AppLogDebug("ENTER");
+       if (__updateProgressStatus == true)
+       {
+               AppLogDebug("EXIT update in application");
+               return;
+       }
+       IFormContentUpdateEventListener* pInterface = null;
+       IEnumerator* pEventEnum = __pContentEventListener->GetEnumeratorN();
+       while (pEventEnum->MoveNext() == E_SUCCESS)
+       {
+               pInterface = static_cast<IFormContentUpdateEventListener*>(pEventEnum->GetCurrent());
+               pInterface->OnContentUpdated();
+       }
+       delete pEventEnum;
+       AppLogDebug("EXIT");
+}
+
+void
+AlbumListPresentationModel::OnContentDeleted(void)
+{
+       AppLogDebug("ENTER");
+       if (__updateProgressStatus == true)
+       {
+               AppLogDebug("EXIT update in application");
+               return;
+       }
+       IFormContentUpdateEventListener* pInterface = null;
+       IEnumerator* pEventEnum = __pContentEventListener->GetEnumeratorN();
+       while (pEventEnum->MoveNext() == E_SUCCESS)
+       {
+               pInterface = static_cast<IFormContentUpdateEventListener*>(pEventEnum->GetCurrent());
+               pInterface->OnContentUpdated();
+       }
+       delete pEventEnum;
+       AppLogDebug("EXIT");
+}
+
+void
+AlbumListPresentationModel::OnDeviceStateChanged(DeviceType deviceType, const Tizen::Base::String& state)
+{
+       AppLogDebug("ENTER");
+       if (deviceType == DEVICE_TYPE_STORAGE_CARD && state == DEVICE_STORAGE_CARD_UNMOUNTED)
+       {
+               IFormContentUpdateEventListener* pInterface = null;
+               IEnumerator* pEventEnum = __pContentEventListener->GetEnumeratorN();
+               while (pEventEnum->MoveNext() == E_SUCCESS)
+               {
+                       pInterface = static_cast<IFormContentUpdateEventListener*>(pEventEnum->GetCurrent());
+                       pInterface->OnContentUpdated();
+               }
+               delete pEventEnum;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumListPresentationModel::SetUpdateProgressStatus(const bool status)
+{
+       AppLogDebug("ENTER status = %d",status);
+       __updateProgressStatus = status;
+       AppLogDebug("EXIT");
+}
+
+result
+AlbumListPresentationModel::RotateImage(const ContentId&, RotateMode rotateMode)
+{
+       return E_SUCCESS;
+}
+
+void
+AlbumListPresentationModel::RequestThumbnail(const int folderIndex, const int pathIndex)
+{
+       AppLogDebug("ENTER : folderIndex(%d), pathIndex(%d)", folderIndex, pathIndex);
+
+       ContentId contentId;
+       if (__pAlbumInfoList != null)
+       {
+               AlbumInfo* pAlbumInfo = static_cast<AlbumInfo*>(__pAlbumInfoList->GetAt(folderIndex));
+               contentId = pAlbumInfo->GetContentId(pathIndex);
+       }
+
+       __pThumbnailProvider->RequestThumbnail(contentId, __pThumbnailEvent);
+       AppLogDebug("EXIT");
+}
+
+void
+AlbumListPresentationModel::ClearThumbnailRequests(const bool appTerminating)
+{
+       AppLogDebug("ENTER");
+       if (__pThumbnailProvider != null)
+       {
+               __pThumbnailProvider->ClearThumbnailRequests(appTerminating);
+       }
+       AppLogDebug("EXIT");
+}
diff --git a/src/GlAlbumNameEditorForm.cpp b/src/GlAlbumNameEditorForm.cpp
new file mode 100644 (file)
index 0000000..f706bbc
--- /dev/null
@@ -0,0 +1,801 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlAlbumNameEditorForm.cpp
+ * @brief              This is the implementation file for AlbumNameEditorForm class.
+ */
+
+#include <FMedia.h>
+#include <FText.h>
+
+#include "GlAlbumInfo.h"
+#include "GlAlbumListPresentationModel.h"
+#include "GlAlbumNameEditorForm.h"
+#include "GlFileListPresentationModel.h"
+#include "GlFileMoveTimer.h"
+#include "GlProgressAnimation.h"
+#include "GlResourceManager.h"
+#include "GlTypes.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Base::Runtime;
+using namespace Tizen::Base::Utility;
+using namespace Tizen::Content;
+using namespace Tizen::Graphics;
+using namespace Tizen::Io;
+using namespace Tizen::Media;
+using namespace Tizen::System;
+using namespace Tizen::Text;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+static const unsigned int COLOR_NAME_EDIT_FIELD = Color32<255, 255, 255>::Value;
+
+AlbumNameEditorForm::AlbumNameEditorForm(void)
+       : __pNameEditField(null)
+       , __folderIndex(0)
+       , __modalMsgBoxResult(0)
+       , __textLength(0)
+       , __mountState(false)
+    , __isCreateAlbum(false)
+    , __isKeyPadOpen(false)
+       , __albumNameEditorMode(ALBUM_NAME_EDITOR_MODE_RENAME)
+       , __pMessageBox(null)
+       , __pMoveIndexList(null)
+       , __fileActionMode(FILE_ACTION_MOVE)
+       , __pFileMove(null)
+       , __pPresentationModel(null)
+       , __pFilePresentationModel(null)
+{
+       AppLogDebug("ENTER");
+       _overlayMsg = false;
+       _pProgressAnim = null;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+AlbumNameEditorForm::~AlbumNameEditorForm(void)
+{
+       AppLogDebug("ENTER");
+       delete __pFileMove;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+result
+AlbumNameEditorForm::Initialize(void)
+{
+       AppLogDebug("ENTER");
+       result r = Construct(L"IDL_FORM_ALBUM_NAME_EDITOR");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+result
+AlbumNameEditorForm::OnInitializing(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+       __pFilePresentationModel = FileListPresentationModel::GetInstance();
+
+       SetOrientation(ORIENTATION_AUTOMATIC);
+               AddOrientationEventListener(*this);
+
+       Header* pHeader = GetHeader();
+
+       pHeader->SetStyle(HEADER_STYLE_TITLE);
+
+       FooterItem itemSave;
+       itemSave.Construct(IDA_BUTTON_CREATE_NAME_SAVE);
+       itemSave.SetText(ResourceManager::GetString(L"IDS_COM_OPT_SAVE"));
+
+       GetFooter()->AddItem(itemSave);
+       GetFooter()->AddActionEventListener(*this);
+       GetFooter()->Invalidate(true);
+
+       SetFormBackEventListener(this);
+       SetActionBarsVisible(FORM_ACTION_BAR_FOOTER, true);
+
+       __pNameEditField = static_cast<EditField*>(GetControl(L"IDC_EDITFIELD_NAME"));
+       __pNameEditField->AddTextEventListener(*this);
+       __pNameEditField->SetColor(EDIT_STATUS_NORMAL, COLOR_NAME_EDIT_FIELD);
+       __pNameEditField->SetOverlayKeypadCommandButtonVisible(false);
+       __pNameEditField->AddKeypadEventListener(*this);
+       __pNameEditField->AddActionEventListener(*this);
+
+       return E_SUCCESS;
+}
+
+void
+AlbumNameEditorForm::OnTextValueChanged(const Control& source)
+{
+       String currentInput;
+       String currentText;
+       String specialCharacters(L"/");
+       String byteCountForInput;
+       int byteCount = 0;
+       int inputLength = 0;
+       int tempLength = 255;
+       int textToCheck = 0;
+       MessageBox messageBox;
+       Utf8Encoding utf8;
+
+       FooterItemStatus currentStatus = FOOTER_ITEM_STATUS_NORMAL;
+
+       result r = E_SUCCESS;
+
+       if (__pNameEditField != null)
+       {
+               byteCountForInput = __pNameEditField->GetText();
+               r = utf8.GetByteCount(byteCountForInput, byteCount);
+               AppLogDebug("result is %s",GetErrorMessage(r));
+               AppLogDebug("Byte count is %d",byteCount);
+       }
+
+       if (__pNameEditField != null)
+       {
+               currentText = __pNameEditField->GetText();
+               textToCheck = currentText.GetLength() - __textLength;
+               if (currentText.IsEmpty())
+               {
+                       if (GetFooter() != null)
+                       {
+                               GetFooter()->SetItemEnabled(0, false);
+                               GetFooter()->Invalidate(true);
+                       }
+               }
+               else
+               {
+                       if (GetFooter() != null)
+                       {
+                               GetFooter()->GetItemStatus(0, currentStatus);
+
+                               if (currentStatus == FOOTER_ITEM_STATUS_DISABLED)
+                               {
+                                       GetFooter()->SetItemEnabled(0,true);
+                                       GetFooter()->Invalidate(true);
+                               }
+                       }
+               }
+
+               if (currentText.StartsWith(".", 0))
+               {
+                       String invalidCharacterString;
+                       String validString;
+                       String msg = ResourceManager::GetString(L"IDS_COM_POP_INVALID_CHARACTERS");
+                       CreateMessage(msg);
+                       validString = __pNameEditField->GetText();
+
+                       if (validString.GetLength() > 1)
+                       {
+                               validString.Remove(0,1);
+                               __pNameEditField->SetText(validString);
+                       }
+                       else
+                       {
+                               __pNameEditField->SetText("");
+
+                               if (GetFooter() != null)
+                               {
+                                       GetFooter()->SetItemEnabled(0, false);
+                                       GetFooter()->Invalidate(true);
+                               }
+                       }
+                       __pNameEditField->ShowKeypad();
+               }
+
+               currentInput = __pNameEditField->GetText();
+
+               if (currentInput.Contains(specialCharacters[0]))
+               {
+                       String msg = ResourceManager::GetString(L"IDS_COM_POP_INVALID_CHARACTERS");
+                       CreateMessage(msg);
+                       currentInput.Replace("/", "");
+                       __pNameEditField->SetText(currentInput);
+
+                       if (currentInput == L"")
+                       {
+                               if (GetFooter() != null)
+                               {
+                                       GetFooter()->SetItemEnabled(0, false);
+                                       GetFooter()->Invalidate(true);
+                               }
+                       }
+               }
+
+               byteCountForInput = __pNameEditField->GetText();
+               r = utf8.GetByteCount(byteCountForInput, inputLength);
+
+               if ( inputLength  == tempLength )
+               {
+                       String msg = ResourceManager::GetString(L"IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED");
+                       CreateMessage(msg);
+                       __pNameEditField->ShowKeypad();
+                       return;
+               }
+               else if (inputLength  > tempLength)
+               {
+                       String maxCharacterString;
+                       String currentInputCharacter;
+                       int checkByteCount = 0;
+                       int lengthOfFinalString = 0;
+                       int currentCharacter = 0;
+
+                       String msg = ResourceManager::GetString(L"IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED");
+                       CreateMessage(msg);
+                       currentText = __pNameEditField->GetText();
+
+                       for (currentCharacter=0; checkByteCount < tempLength; ++currentCharacter)
+                       {
+                               currentInputCharacter.Clear();
+                               currentInputCharacter = currentText[currentCharacter];
+                               r = utf8.GetByteCount(currentInputCharacter, byteCount);
+                               if (r != E_SUCCESS)
+                               {
+                                       break;
+                               }
+                               AppLogDebug("result of byte count is %s",GetErrorMessage(r));
+                               checkByteCount = checkByteCount + byteCount;
+
+                               if (checkByteCount < tempLength)
+                               {
+                                       ++lengthOfFinalString;
+                               }
+                       }
+
+                       r = __pNameEditField->GetText().SubString(0, lengthOfFinalString, currentInput);
+                       AppLogDebug("current input is %S", currentInput.GetPointer());
+                       r = __pNameEditField->SetText(currentInput);
+                       __pNameEditField->ShowKeypad();
+                       return;
+               }
+
+               r = utf8.GetByteCount(__pNameEditField->GetText(), byteCount);
+               __textLength = byteCount;
+       }
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumNameEditorForm::OnTextValueChangeCanceled(const Control& source)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+result
+AlbumNameEditorForm::OnTerminating(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+void AlbumNameEditorForm::OnFileOpInvalidate(enum FileActionMode actionId)
+{
+       Invalidate(true);
+}
+
+void AlbumNameEditorForm::OnFileOpComplete(enum FileActionMode actionId, enum FileActionCompleteRes res)
+{
+       _overlayMsg = false;
+       if (res != COMPLETE_SUCCESS)
+       {
+               __pNameEditField->SetText(__nameEditFieldPreText);
+               __pNameEditField->HideKeypad();
+               __pNameEditField->Draw();
+               SceneManager* pSceneManager = SceneManager::GetInstance();
+               pSceneManager->GoBackward(BackwardSceneTransition(__callerSceneId));
+       }
+}
+
+void
+AlbumNameEditorForm::OnRenameAlbum(String& strOri)
+{
+       AppLogDebug("Rename Album");
+       String path;
+       int index = 0;
+       strOri.Reverse();
+       strOri.IndexOf(DIRECTORY_SEPARATOR, 0, index);
+       strOri.Reverse();
+       strOri.SubString(0, (strOri.GetLength() - index), path);
+       path.Append(__nameEditFieldText);
+
+       //Rename
+       result r = __pPresentationModel->RenameAlbum(strOri, path, this);
+
+       if (IsFailed(r))
+       {
+               AppLogDebug("Unable to rename Album %s", GetErrorMessage(r));
+               if (__pMessageBox == null)
+               {
+                       __pMessageBox = new (std::nothrow) MessageBox();
+                       if (r == E_FILE_ALREADY_EXIST)
+                       {
+                               __pMessageBox->Construct(L"", ResourceManager::GetString(L"IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB"),
+                                                         MSGBOX_STYLE_NONE, 3000);
+
+                       }
+                       else
+                       {
+                               __pMessageBox->Construct(L"", ResourceManager::GetString(L"IDS_MEDIABR_POP_UNABLE_TO_RENAME"),
+                                                         MSGBOX_STYLE_NONE, 3000);
+                       }
+                       int modalResult = 0;
+                       _overlayMsg = true;
+                       __pMessageBox->ShowAndWait(modalResult);
+                       _overlayMsg = false;
+                       delete __pMessageBox;
+                       __pMessageBox = null;
+                       __pNameEditField->SetEnabled(true);
+                       __pNameEditField->ShowKeypad();
+               }
+       }
+       else
+       {
+               //Add a popup here
+               Rectangle clientRect = Form::GetBounds();
+               Rectangle rect(0, 0, clientRect.width, clientRect.height);
+               _pProgressAnim = new (std::nothrow) ProgressAnimation;
+               _pProgressAnim->Construct(rect);
+               AddControl(_pProgressAnim);
+               _pProgressAnim->SetShowState(true);
+               GetFooter()->SetEnabled(false);
+               _pProgressAnim->AnimationStart();
+               _pProgressAnim->Draw();
+               _overlayMsg = true;
+       }
+}
+
+void
+AlbumNameEditorForm::ShowAnimation()
+{
+       Rectangle clientRect= GetClientAreaBounds();
+       Rectangle rect(0, 0, clientRect.width, clientRect.height);
+       _pProgressAnim = new (std::nothrow) ProgressAnimation;
+       _pProgressAnim->Construct(rect);
+       AddControl(_pProgressAnim);
+       _pProgressAnim->SetShowState(true);
+       GetFooter()->SetEnabled(false);
+       _pProgressAnim->AnimationStart();
+       _pProgressAnim->Draw();
+       _overlayMsg = true;
+}
+
+void
+AlbumNameEditorForm::StopAnimation(void)
+{
+       if (_pProgressAnim)
+       {
+               _pProgressAnim->AnimationStop();
+               _pProgressAnim->SetShowState(false);
+               RemoveControl(_pProgressAnim);
+               GetFooter()->SetEnabled(true);
+               _pProgressAnim = null;
+               _overlayMsg = false;
+       }
+}
+
+void
+AlbumNameEditorForm::OnCreateAlbum(void)
+{
+       String path;
+       path.Append(Tizen::System::Environment::GetMediaPath());
+       path.Append(__nameEditFieldText);
+
+       if (__previousSceneId != IDSCN_ALL_LIST_EDITOR && __previousSceneId != IDSCN_ALL_LIST_SELECTION)
+       {
+               Directory::Create(path, true);
+       }
+
+       __nameEditFieldPreText = __nameEditFieldText;
+
+       if (path.IsEmpty())
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+               delete __pMoveIndexList;
+               __pMoveIndexList = null;
+               return;
+       }
+
+       if (__pMoveIndexList == null || __pMoveIndexList->GetCount() <= 0)
+       {
+               AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
+               delete __pMoveIndexList;
+               __pMoveIndexList = null;
+               return;
+       }
+
+       delete __pFileMove;
+       __pFileMove = new (std::nothrow) FileMoveTimer(path, __pMoveIndexList, __pFilePresentationModel, this);
+       if (__fileActionMode == FILE_ACTION_COPY)
+       {
+               AppLogDebug("Rash: Setting to Copy in AlbumNameEditor");
+               __pFileMove->SetCopy();
+       }
+       else
+       {
+               __pFileMove->ClearCopy();
+       }
+       result r = __pFileMove->StartTimer();
+
+       if (IsFailed(r))
+       {
+               delete __pFileMove;
+               __pFileMove = null;
+               __pNameEditField->SetText(__nameEditFieldPreText);
+               __pNameEditField->HideKeypad();
+               __pNameEditField->Draw();
+
+               String msg = ResourceManager::GetString(L"IDS_COM_BODY_OPERATION_FAILED");
+               CreateMessage(msg);
+               AppLogDebug("MoveToContentFileList content failed (%s)", GetErrorMessage(r));
+               SceneManager* pSceneManager = SceneManager::GetInstance();
+               pSceneManager->GoBackward(BackwardSceneTransition(__callerSceneId));
+       }
+       else
+       {
+               AppLogDebug("MoveToContentFileList content in progress");
+               _overlayMsg = true;
+               __fileActionMode = FILE_ACTION_MOVE;
+       }
+}
+
+void
+AlbumNameEditorForm::OnAlbumRenameComplete(void)
+{
+       //Hide popup here..
+       _pProgressAnim->AnimationStop();
+       _pProgressAnim->SetShowState(false);
+       RemoveControl(_pProgressAnim);
+       _overlayMsg = false;
+       GetFooter()->SetEnabled(true);
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       pSceneManager->GoBackward((BackwardSceneTransition(IDSCN_ALBUM_LIST)));
+}
+
+void
+AlbumNameEditorForm::OnActionPerformed(const Control& source, int actionId)
+{
+       AppLogDebug("ENTER");
+       String path;
+       __nameEditFieldText = __pNameEditField->GetText();
+
+       if (__albumNameEditorMode == ALBUM_NAME_EDITOR_MODE_RENAME)
+       {
+               IList* pAlbumInfoList = __pPresentationModel->GetAlbumInfoList();
+               AlbumInfo* pAlbumInfo = static_cast<AlbumInfo*>(pAlbumInfoList->GetAt(__folderIndex));
+               path = pAlbumInfo->GetDirectory(0);
+       }
+
+       switch (actionId)
+       {
+       case IDA_BUTTON_CREATE_NAME_SAVE:
+       {
+               __pNameEditField->SetEnabled(false);
+               __isCreateAlbum = false;
+               GetFooter()->SetItemEnabled(0, false);
+
+               if (__albumNameEditorMode == ALBUM_NAME_EDITOR_MODE_CREATE)
+               {
+                       if (__isKeyPadOpen == true )
+                       {
+                       __pNameEditField->HideKeypad();
+                       __isCreateAlbum = true;
+                       }
+                       else
+                       {
+                               OnCreateAlbum();
+                       }
+
+               }
+               else if (__albumNameEditorMode == ALBUM_NAME_EDITOR_MODE_RENAME)
+               {
+                       String albumName = __pNameEditField->GetText();
+                       if (__originalText.Equals(albumName, true))
+                       {
+                               SceneManager* pSceneManager = SceneManager::GetInstance();
+                               pSceneManager->GoBackward(BackwardSceneTransition());
+                       }
+                       else
+                       {
+                               OnRenameAlbum(path);
+                       }
+               }
+               break;
+       }
+
+       default:
+               break;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumNameEditorForm::OnFormBackRequested(Form& source)
+{
+       AppLogDebug("ENTER");
+       if (_pProgressAnim != null)
+       {
+               if (_pProgressAnim->GetShowState())
+               {
+                       return;
+               }
+       }
+
+       if (__albumNameEditorMode == ALBUM_NAME_EDITOR_MODE_CREATE)
+       {
+               SceneManager* pSceneManager = SceneManager::GetInstance();
+               pSceneManager->GoForward(ForwardSceneTransition(__callerSceneId));
+       }
+       else
+       {
+               SceneManager* pSceneManager = SceneManager::GetInstance();
+               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALBUM_LIST_EDITOR));
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumNameEditorForm::OnSceneActivatedN(const SceneId& previousSceneId,
+               const SceneId& currentSceneId, IList* pArgs)
+{
+       AppLogDebug("ENTER");
+       __pPresentationModel = AlbumListPresentationModel::GetInstance();
+       __previousSceneId = previousSceneId;
+
+       DeviceManager::AddDeviceEventListener(DEVICE_TYPE_STORAGE_CARD, *this);
+       __pPresentationModel->AddContentEventListener(this);
+
+       if (pArgs != null)
+       {
+               Integer* pAlbumTypePtr = static_cast<Integer*>(pArgs->GetAt(ALBUM_FIRST_ELEMENT));
+               if (pAlbumTypePtr->ToInt() == ALBUM_CREATE)
+               {
+                       AppLogDebug("ALBUM_NAME_EDITOR_MODE_CREATE");
+                       __albumNameEditorMode = ALBUM_NAME_EDITOR_MODE_CREATE;
+               }
+               else if (pAlbumTypePtr->ToInt() == ALBUM_RENAME)
+               {
+                       AppLogDebug("ALBUM_NAME_EDITOR_MODE_RENAME");
+                       __albumNameEditorMode = ALBUM_NAME_EDITOR_MODE_RENAME;
+               }
+               pArgs->RemoveAt(ALBUM_FIRST_ELEMENT, true);
+       }
+
+       if (pArgs != null)
+       {
+               Integer* operationTypePtr = static_cast<Integer*>(pArgs->GetAt(ALBUM_FIRST_ELEMENT));
+               if (operationTypePtr->ToInt() == FILE_ACTION_MOVE)
+               {
+                       AppLogDebug("Rash: FILE_MOVE_ACTION");
+                       __fileActionMode = FILE_ACTION_MOVE;
+               }
+               else if (operationTypePtr->ToInt() == FILE_ACTION_COPY)
+               {
+                       AppLogDebug("Rash: FILE_COPY_ACTION");
+                       __fileActionMode = FILE_ACTION_COPY;
+               }
+               pArgs->RemoveAt(ALBUM_FIRST_ELEMENT, true);
+       }
+
+       if (previousSceneId == IDSCN_ALBUM_LIST_EDITOR)
+       {
+               if (pArgs != null)
+               {
+                       IEnumerator* pEnum = pArgs->GetEnumeratorN();
+                       if (pEnum->MoveNext() == E_SUCCESS)
+                       {
+                               Integer *index = static_cast<Integer*>(pEnum->GetCurrent());
+                               if (index != null)
+                               {
+                                       __folderIndex = index->ToInt();
+                               }
+                       }
+                       delete pEnum;
+                       delete pArgs;
+                       pArgs = NULL;
+               }
+       }
+
+       if (previousSceneId == IDSCN_ALL_LIST_EDITOR
+                       || previousSceneId == IDSCN_IMAGE_LIST_EDITOR
+                       || previousSceneId == IDSCN_VIDEO_LIST_EDITOR
+                       || previousSceneId == IDSCN_ALL_LIST_SELECTION)
+       {
+               if (previousSceneId == IDSCN_ALL_LIST_EDITOR)
+               {
+                       AppLogDebug("[MOVE] previousSceneId = IDSCN_ALL_LIST_EDITOR");
+               }
+               else if (previousSceneId == IDSCN_ALL_LIST_SELECTION)
+               {
+                       AppLogDebug("[MOVE] previousSceneId = IDSCN_ALL_LIST_SELECTION");
+               }
+
+               __callerSceneId = previousSceneId;
+       }
+       else
+       {
+               __callerSceneId = EMPTY_SPACE;
+       }
+
+       if (__albumNameEditorMode == ALBUM_NAME_EDITOR_MODE_CREATE)
+       {
+               __nameEditFieldText = EMPTY_SPACE;
+               __nameEditFieldPreText = EMPTY_SPACE;
+               __pNameEditField->SetText(__nameEditFieldText);
+               __nameEditFieldTempText = __nameEditFieldText;
+               __pNameEditField->ShowKeypad();
+               __pNameEditField->SetFocus();
+
+               GetHeader()->SetTitleText(ResourceManager::GetString(L"IDS_MEDIABR_OPT_CREATE_ALBUM"));
+               GetFooter()->SetItemEnabled(0, false);
+               GetFooter()->Invalidate(true);
+       }
+       else
+       {
+               int byteCount = 0;
+               Utf8Encoding utf8;
+               IList* pAlbumInfoList = __pPresentationModel->GetAlbumInfoList();
+               AlbumInfo* pAlbumInfo = static_cast<AlbumInfo*>(pAlbumInfoList->GetAt(__folderIndex));
+
+               String strName = pAlbumInfo->GetAlbumName();
+               __nameEditFieldText = strName;
+               __nameEditFieldPreText = strName;
+               __pNameEditField->SetText(__nameEditFieldText);
+               __nameEditFieldTempText = __nameEditFieldText;
+               GetHeader()->SetTitleText(ResourceManager::GetString(L"IDS_COM_BODY_RENAME"));
+               __pNameEditField->SetOverlayKeypadCommandButtonVisible(false);
+               __pNameEditField->ShowKeypad();
+               __pNameEditField->SetFocus();
+               __originalText = __pNameEditField->GetText();
+               utf8.GetByteCount(__nameEditFieldText, byteCount);
+               __textLength = byteCount;
+               GetFooter()->SetItemEnabled(0, true);
+               GetFooter()->Invalidate(true);
+       }
+
+       if (pArgs != NULL)
+       {
+               __pMoveIndexList = pArgs;
+       }
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumNameEditorForm::OnSceneDeactivated(const SceneId& currentSceneId,
+               const SceneId& nextSceneId)
+{
+       AppLogDebug("ENTER");
+
+       if(__pNameEditField->IsEnabled() == false)
+       {
+               __pNameEditField->SetEnabled(true);
+       }
+
+       __isKeyPadOpen = false;
+
+       __pPresentationModel->RemoveContentEventListener(*this);
+       DeviceManager::RemoveDeviceEventListener(DEVICE_TYPE_STORAGE_CARD, *this);
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumNameEditorForm::OnContentUpdated(void)
+{
+       AppLogDebug("ENTER");
+
+       if (__mountState == false)
+       {
+               if (__pFileMove && __pFileMove->IsStarted())
+                       {
+                               __pFileMove->Cancel();
+                               delete __pFileMove;
+                               __pFileMove = null;
+                       }
+
+               SceneManager* pSceneManager = SceneManager::GetInstance();
+               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALBUM_LIST));
+               AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+       }
+       else
+       {
+               __mountState = false;
+       }
+}
+
+void
+AlbumNameEditorForm::OnDeviceStateChanged(DeviceType deviceType, const Tizen::Base::String& state)
+{
+       AppLogDebug("ENTER");
+
+       if (deviceType == DEVICE_TYPE_STORAGE_CARD && state == DEVICE_STORAGE_CARD_UNMOUNTED)
+       {
+               if (__pFileMove && __pFileMove->IsStarted())
+               {
+                       __pFileMove->Cancel();
+                       delete __pFileMove;
+                       __pFileMove = null;
+               }
+               __mountState = false;
+               SceneManager* pSceneManager = SceneManager::GetInstance();
+               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALBUM_LIST));
+               AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+       }
+       else
+       {
+               __mountState = true;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumNameEditorForm::CreateMessage(String& str)
+{
+       if (__pMessageBox == null)
+       {
+               __pMessageBox = new(std::nothrow) MessageBox;
+
+               if (__pMessageBox != null)
+               {
+                       __pMessageBox->Construct(L"", str, MSGBOX_STYLE_OK, 3000);
+                       __pMessageBox->ShowAndWait(__modalMsgBoxResult);
+
+                       delete __pMessageBox;
+                       __pMessageBox = null;
+                       __modalMsgBoxResult = 0;
+               }
+       }
+}
+
+void
+AlbumNameEditorForm::OnOrientationChanged(const Tizen::Ui::Control &source, Tizen::Ui::OrientationStatus orientationStatus)
+{
+       if (_pProgressAnim != null)
+       {
+               _pProgressAnim->ChangeOrientation(Form::GetBounds());
+               _pProgressAnim->Invalidate(true);
+       }
+}
+
+void
+AlbumNameEditorForm::OnKeypadClosed(Tizen::Ui::Control& source)
+{
+       AppLogDebug("ENTER");
+
+       if ( __isCreateAlbum == true)
+       {
+               OnCreateAlbum();
+       __isCreateAlbum = false;
+       }
+       __isKeyPadOpen = false;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumNameEditorForm::OnKeypadOpened(Tizen::Ui::Control& source)
+{
+       AppLogDebug("ENTER");
+       __isKeyPadOpen = true;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
diff --git a/src/GlAllListEditorPanel.cpp b/src/GlAllListEditorPanel.cpp
new file mode 100644 (file)
index 0000000..d019e21
--- /dev/null
@@ -0,0 +1,951 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlAllListEditorPanel.cpp
+ * @brief              This is the implementation file for AllListEditorPanel class.
+ */
+
+#include <FContent.h>
+#include "GlAllListEditorPanel.h"
+#include "GlCommonUtil.h"
+#include "GlFileUpdateTimer.h"
+#include "GlFileListEditorForm.h"
+#include "GlFileListPresentationModel.h"
+#include "GlResourceManager.h"
+#include "GlTypes.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Base::Utility;
+using namespace Tizen::Content;
+using namespace Tizen::Graphics;
+using namespace Tizen::Media;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+static const float H_COUNT_LABEL = 48.0f;
+static const float H_COUNT_LABEL_BUTTON = 42.0f;
+static const float W_COUNT_LABEL_BUTTON = 42.0f;
+static const int COUNT_LABEL_FONT_SIZE = 33;
+static const int H_CONTENT_MARGIN = 9;
+static const int W_CONTENT_MARGIN = 6;
+static const int W_CONTENT_SPACE = 6;
+static const int H_CONTENT_SPACE = 6;
+static const int LENGTH_COUNT_LABEL = 256;
+static const unsigned int COLOR_COUNT_LABEL = Color32<68, 68, 68>::Value;
+static const unsigned int COLOR_SELECT_COUNT_FONT = Color32<255, 255, 255>::Value;
+static const unsigned int COLOR_COUNT_LABEL_BUTTON = Color32<120, 120, 120>::Value;
+static const Color COLOR_THUMBNAIL_DIM (Color::GetColor(COLOR_ID_BLACK));
+static const int ALPHA_THUMBNAIL_DIM = 70;
+
+static const Rectangle RECT_INITIAL (0, 0, 10, 10);
+
+AllListEditorPanel::AllListEditorPanel(void)
+       : __itemCount(0)
+       , __pContentIconListView(null)
+       , __pLabelSelectCnt(null)
+       , __pButtonSelectRegion(null)
+       , __pFileUpdateTimer(null)
+       , __pFileListEditorForm(null)
+       , __pPresentationModel(null)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+AllListEditorPanel::~AllListEditorPanel(void)
+{
+       AppLogDebug("ENTER");
+       delete __pFileUpdateTimer;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+result
+AllListEditorPanel::Initialize(void)
+{
+       AppLogDebug("ENTER");
+       result r = Construct(RECT_INITIAL);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+result
+AllListEditorPanel::OnInitializing(void)
+{
+       AppLogDebug("ENTER");
+       const Form* pForm = dynamic_cast<Form*>(GetParent());
+       TryReturn(pForm != null, E_FAILURE, "[%s] fail to get the form.", GetErrorMessage(GetLastResult()));
+
+       __pPresentationModel = FileListPresentationModel::GetInstance();
+       __pPresentationModel->ClearThumbnailRequests();
+       __pPresentationModel->AddPresentationModelListener(this);
+
+       FloatRectangle clientAreaBounds = pForm->GetClientAreaBoundsF();
+       SetBounds(0.0f, 0.0f, clientAreaBounds.width, clientAreaBounds.height);
+
+
+       __pContentIconListView = new (std::nothrow) IconListView();
+       __pContentIconListView->Construct(Rectangle(0, 0, clientAreaBounds.width, clientAreaBounds.height - H_COUNT_LABEL),
+                       DIMENSION_DEFAULT_THUMBNAIL, ICON_LIST_VIEW_STYLE_MARK, ICON_LIST_VIEW_SCROLL_DIRECTION_VERTICAL);
+       Bitmap* pBitmapEmpty = ResourceManager::GetBitmapN(IDB_LISTVIEW_EMPTY);
+       if (pBitmapEmpty != null)
+       {
+               __pContentIconListView->SetBitmapOfEmptyList(pBitmapEmpty);
+               delete pBitmapEmpty;
+       }
+       __pContentIconListView->SetTextOfEmptyList(ResourceManager::GetString(L"IDS_COM_BODY_NO_ITEMS"));
+       __pContentIconListView->SetMargin(MARGIN_TYPE_LEFT, W_CONTENT_MARGIN);
+       __pContentIconListView->SetMargin(MARGIN_TYPE_RIGHT, W_CONTENT_MARGIN);
+       __pContentIconListView->SetMargin(MARGIN_TYPE_TOP, H_CONTENT_MARGIN);
+       __pContentIconListView->SetItemSpacing(W_CONTENT_SPACE, H_CONTENT_SPACE);
+       __pContentIconListView->SetItemBorderStyle(ICON_LIST_VIEW_ITEM_BORDER_STYLE_NONE);
+       __pContentIconListView->SetItemProvider(*this);
+       __pContentIconListView->SetCheckBoxPosition(ICON_LIST_VIEW_CHECK_BOX_POSITION_TOP_LEFT);
+       __pContentIconListView->AddIconListViewItemEventListener(*this);
+       __pContentIconListView->SetTouchAnimationEnabled(false);
+       AddControl(__pContentIconListView);
+       __pContentIconListView->SetShowState(true);
+
+       __pLabelSelectCnt = new (std::nothrow) Label();
+       String strTmp;
+       strTmp = ResourceManager::GetString(L"IDS_ST_POP_NO_ITEMS_SELECTED").GetPointer();
+       __pLabelSelectCnt->Construct(
+                       FloatRectangle(0, clientAreaBounds.height - H_COUNT_LABEL, clientAreaBounds.width, H_COUNT_LABEL), strTmp);
+       __pLabelSelectCnt->SetTextVerticalAlignment(ALIGNMENT_MIDDLE);
+       __pLabelSelectCnt->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+       __pLabelSelectCnt->SetBackgroundColor(COLOR_COUNT_LABEL);
+       __pLabelSelectCnt->SetTextColor(Color(COLOR_SELECT_COUNT_FONT));
+       __pLabelSelectCnt->SetTextConfig(COUNT_LABEL_FONT_SIZE, LABEL_TEXT_STYLE_BOLD);
+       AddControl(__pLabelSelectCnt);
+       __pLabelSelectCnt->Invalidate(true);
+
+       __pButtonSelectRegion = new (std::nothrow) Button();
+       __pButtonSelectRegion->Construct(FloatRectangle(clientAreaBounds.width - W_COUNT_LABEL_BUTTON - 10,
+                       clientAreaBounds.height - H_COUNT_LABEL_BUTTON - 4, W_COUNT_LABEL_BUTTON, H_COUNT_LABEL_BUTTON),
+                       EMPTY_SPACE);
+       __pButtonSelectRegion->SetActionId(IDA_BUTTON_MOVE_TO_SELECTION);
+       __pButtonSelectRegion->SetColor(BUTTON_STATUS_NORMAL, COLOR_COUNT_LABEL_BUTTON);
+       Bitmap* pSelectionBitmap = ResourceManager::GetBitmapN(IDB_BUTTON_MOVE_SELECTION);
+       if (pSelectionBitmap != null)
+       {
+               Rectangle buttonRegionRect = __pButtonSelectRegion->GetBounds();
+               pSelectionBitmap->Scale(Dimension(buttonRegionRect.width, buttonRegionRect.height));
+               __pButtonSelectRegion->SetNormalBitmap(Point(buttonRegionRect.width, buttonRegionRect.height),
+                               *pSelectionBitmap);
+       }
+       AddControl(__pButtonSelectRegion);
+
+       if (pSelectionBitmap != null)
+       {
+               delete pSelectionBitmap;
+       }
+       __pButtonSelectRegion->AddActionEventListener(*this);
+
+       __itemCount = 0;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+result
+AllListEditorPanel::OnTerminating(void)
+{
+       AppLogDebug("ENTER");
+       __pPresentationModel->RemovePresentationModelListener(*this);
+       __pPresentationModel->RemoveContentEventListener(__pFileListEditorForm);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+void
+AllListEditorPanel::OnActionPerformed(const Control& source, int actionId)
+{
+       AppLogDebug("ENTER");
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       TryReturnVoid(pSceneManager != null, "[%s] fail to get SceneManager.", GetErrorMessage(GetLastResult()));
+
+       switch (actionId)
+       {
+       case IDA_BUTTON_CHECKED:
+       {
+               int loopCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+               for (int i=0; i < loopCount; ++i)
+               {
+                       if (__pContentIconListView->IsItemChecked(i) == false)
+                       {
+                               __pContentIconListView->SetItemChecked(i, true);
+                               __pContentIconListView->RefreshList(i, LIST_REFRESH_TYPE_ITEM_MODIFY);
+                       }
+               }
+               int checkedCount = GetItemCheckedCount();
+               String strTmp;
+
+               if (checkedCount == 0)
+               {
+                       strTmp = ResourceManager::GetString(L"IDS_ST_POP_NO_ITEMS_SELECTED");
+               }
+               else if (checkedCount == 1)
+               {
+                       strTmp = ResourceManager::GetString(L"IDS_VR_POP_1_ITEM_SELECTED");
+               }
+               else
+               {
+                       strTmp.Format(LENGTH_COUNT_LABEL,
+                                       ResourceManager::GetString(L"IDS_VR_POP_PD_ITEMS_SELECTED").GetPointer(), checkedCount);
+               }
+
+               __pLabelSelectCnt->SetText(strTmp);
+               __pLabelSelectCnt->RequestRedraw(true);
+               SetButtonState();
+       }
+       break;
+
+       case IDA_BUTTON_UNCHECKED:
+       {
+               int loopCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+               for (int i = 0; i < loopCount; ++i)
+               {
+                       if (__pContentIconListView->IsItemChecked(i) == true)
+                       {
+                               __pContentIconListView->SetItemChecked(i,false);
+                       }
+               }
+               int checkedCount = GetItemCheckedCount();
+               String strTmp;
+
+               if (checkedCount == 0)
+               {
+                       strTmp = ResourceManager::GetString(L"IDS_ST_POP_NO_ITEMS_SELECTED");
+               }
+               else if (checkedCount == 1)
+               {
+                       strTmp = ResourceManager::GetString(L"IDS_VR_POP_1_ITEM_SELECTED");
+               }
+               else
+               {
+                       strTmp.Format(LENGTH_COUNT_LABEL,
+                                       ResourceManager::GetString(L"IDS_VR_POP_PD_ITEMS_SELECTED").GetPointer(), checkedCount);
+               }
+
+               __pLabelSelectCnt->SetText(strTmp);
+               __pLabelSelectCnt->RequestRedraw(true);
+               __pContentIconListView->UpdateList();
+               SetButtonState();
+       }
+       break;
+
+       case IDA_BUTTON_MOVE_TO_SELECTION:
+       {
+               if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_EDITOR)
+               {
+                       IList* pList = GetItemCheckedIndexListN();
+                       if (pList == null)
+                       {
+                               pList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+                       }
+                       pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALL_LIST_SELECTION), pList);
+               }
+               else
+               {
+                       pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALL_LIST_SELECTION));
+               }
+       }
+       break;
+
+       default:
+               break;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+int
+AllListEditorPanel::GetItemCount(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return __itemCount;
+}
+
+IconListViewItem*
+AllListEditorPanel::CreateItem(int index)
+{
+       AppLogDebug("ENTER : index(%d)", index);
+       IconListViewItem* pIconListviewItem;
+       Bitmap* pBitmap = null;
+       String* pItemText = null;
+       result r = __pPresentationModel->GetThumbnailInSyncCacheN(index, pItemText, pBitmap);
+       if (pBitmap == null || r == E_FAILURE)
+       {
+               __pPresentationModel->RequestThumbnail(index);
+               pBitmap = CommonUtil::GetEmptyThumbnailN();
+       }
+
+       if (pItemText == null)
+       {
+               pItemText = new (std::nothrow) String(ResourceManager::GetString(L"EMPTY_SPACE"));
+       }
+       else if ((*pItemText) != ResourceManager::GetString(L"EMPTY_SPACE"))
+       {
+               delete pItemText;
+               pItemText = new (std::nothrow) String(ResourceManager::GetString(L"EMPTY_SPACE"));
+       }
+
+       if (__pContentIconListView->IsItemChecked(index) == true)
+       {
+               if (pBitmap != null)
+               {
+                       BufferInfo bufferInfo;
+                       pBitmap->Lock(bufferInfo, INFINITE);
+                       pBitmap->Unlock();
+                       Color dimColor(COLOR_THUMBNAIL_DIM);
+                       dimColor.SetAlpha(ALPHA_THUMBNAIL_DIM);
+
+                       Canvas canvas;
+                       canvas.Construct(bufferInfo);
+                       canvas.FillRectangle(dimColor, canvas.GetBounds());
+
+                       Bitmap* pSelectedBitmap = new (std::nothrow) Bitmap();
+                       pSelectedBitmap->Construct(canvas, canvas.GetBounds());
+                       pIconListviewItem = new (std::nothrow) IconListViewItem();
+                       pIconListviewItem->Construct(*pBitmap, pItemText, pSelectedBitmap);
+                       delete pSelectedBitmap;
+               }
+               else
+               {
+                       AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+                       delete pItemText;
+                       return null;
+               }
+       }
+       else
+       {
+               pIconListviewItem = new (std::nothrow) IconListViewItem();
+               pIconListviewItem->Construct(*pBitmap, pItemText);
+       }
+
+       if (pBitmap != null)
+       {
+               delete pBitmap;
+       }
+       if (pItemText != null)
+       {
+               delete pItemText;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pIconListviewItem;
+}
+
+bool
+AllListEditorPanel::DeleteItem(int index, IconListViewItem* pItem)
+{
+       AppLogDebug("ENTER");
+       delete pItem;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return true;
+}
+
+void
+AllListEditorPanel::OnIconListViewItemStateChanged(IconListView& view, int index, IconListViewItemStatus status)
+{
+       AppLogDebug("ENTER");
+       if (status == ICON_LIST_VIEW_ITEM_CHECKED || status == ICON_LIST_VIEW_ITEM_UNCHECKED)
+       {
+               int checkedCount = GetItemCheckedCount();
+               String strTmp;
+
+               if (checkedCount == 0)
+               {
+                       strTmp = ResourceManager::GetString(L"IDS_ST_POP_NO_ITEMS_SELECTED");
+               }
+               else if (checkedCount == 1)
+               {
+                       strTmp = ResourceManager::GetString(L"IDS_VR_POP_1_ITEM_SELECTED");
+               }
+               else
+               {
+                       strTmp.Format(LENGTH_COUNT_LABEL,
+                                       ResourceManager::GetString(L"IDS_VR_POP_PD_ITEMS_SELECTED").GetPointer(), checkedCount);
+               }
+
+               __pLabelSelectCnt->SetText(strTmp);
+               __pLabelSelectCnt->RequestRedraw(true);
+               __pContentIconListView->RefreshList(index, LIST_REFRESH_TYPE_ITEM_MODIFY);
+       }
+       SetButtonState();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AllListEditorPanel::OnFileInfoChanged(const ContentType contentType)
+{
+       AppLogDebug("ENTER");
+       if (contentType == CONTENT_TYPE_ALL
+               || contentType == CONTENT_TYPE_IMAGE
+               || contentType == CONTENT_TYPE_VIDEO)
+       {
+               __pPresentationModel->RefreshCurrentAlbumContentInfoList(CONTENT_TYPE_ALL);
+               __itemCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+               __pContentIconListView->UpdateList();
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AllListEditorPanel::OnThumbnailDecoded(const int index)
+{
+       AppLogDebug("ENTER : index(%d)", index);
+       if (index >= 0)
+       {
+               __pContentIconListView->RefreshList(index, LIST_REFRESH_TYPE_ITEM_MODIFY);
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AllListEditorPanel::OnSceneActivatedN(const SceneId& previousSceneId,
+                                                               const SceneId& currentSceneId, IList* pArgs)
+{
+       AppLogDebug("ENTER");
+
+       ChangeOrientation();
+
+       __pPresentationModel = FileListPresentationModel::GetInstance();
+
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       TryReturnVoid(pSceneManager != null, "[%s] fail to get SceneManager.", GetErrorMessage(GetLastResult()));
+       __pFileListEditorForm = dynamic_cast<FileListEditorForm*>(pSceneManager->GetCurrentScene()->GetForm());
+       TryReturnVoid(__pFileListEditorForm != null, "[%s] fail to get SceneManager.", GetErrorMessage(GetLastResult()));
+       __pPresentationModel->AddContentEventListener(__pFileListEditorForm);
+
+       if (previousSceneId == IDSCN_ALL_LIST_SELECTION)
+       {
+               if (pArgs != null)
+               {
+                       if (__pContentIconListView != null)
+                       {
+                               int loopCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+                               for (int i = 0; i < loopCount; ++i)
+                               {
+                                       __pContentIconListView->SetItemChecked(i, false);
+                               }
+                               __pContentIconListView->UpdateList();
+                       }
+
+                       if (pArgs->GetCount() > 0) //SomeItems are Still Selected.
+                       {
+                               IList* pSeletedIndexList = pArgs;
+                               int loopCount = pSeletedIndexList->GetCount();
+                               if (__pContentIconListView != null)
+                               {
+                                       for (int i = 0; i < loopCount; ++i)
+                                       {
+                                               int index = static_cast<Integer*>(pSeletedIndexList->GetAt(i))->ToInt();
+                                               __pContentIconListView->SetItemChecked(index, true);
+                                       }
+                                       __pContentIconListView->UpdateList();
+                               }
+                       }
+               }
+
+               int checkedCount = GetItemCheckedCount();
+               String strTmp;
+
+               if (checkedCount == 0)
+               {
+                       strTmp = ResourceManager::GetString(L"IDS_ST_POP_NO_ITEMS_SELECTED");
+               }
+               else if (checkedCount == 1)
+               {
+                       strTmp = ResourceManager::GetString(L"IDS_VR_POP_1_ITEM_SELECTED");
+               }
+               else
+               {
+                       strTmp.Format(LENGTH_COUNT_LABEL,
+                                       ResourceManager::GetString(L"IDS_VR_POP_PD_ITEMS_SELECTED").GetPointer(), checkedCount);
+               }
+
+               __pLabelSelectCnt->SetText(strTmp);
+               __pLabelSelectCnt->RequestRedraw(true);
+       }
+       else if (previousSceneId == IDSCN_ALL_LIST)
+       {
+               ResetSelection();
+       }
+
+       SetButtonState();
+
+       __pFileListEditorForm->SetTitleText(ResourceManager::GetString(L"IDS_COM_BODY_EDIT"));
+       
+       if (pArgs != null && pArgs->GetCount() > 0 && previousSceneId != IDSCN_ALL_LIST_SELECTION)
+       {
+               String* pDirectory = static_cast<String*>(pArgs->GetAt(0));
+               if (pDirectory != null && pDirectory->GetLength() > 0)
+               {
+                       __pFileListEditorForm->MoveToAlbum(*pDirectory);
+               }
+       }
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AllListEditorPanel::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
+{
+       AppLogDebug("ENTER");
+       __pPresentationModel->RemoveContentEventListener(__pFileListEditorForm);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+int
+AllListEditorPanel::GetItemCheckedCount(void) const
+{
+       AppLogDebug("ENTER");
+       int count = 0;
+       if (__pContentIconListView != null)
+       {
+               int loopCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+               for (int i = 0; i < loopCount; ++i)
+               {
+                       if (__pContentIconListView->IsItemChecked(i))
+                       {
+                               ++count;
+                       }
+                       else
+                       {
+                               AppLog("Index i = %d is Not Checked", i);
+                       }
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return count;
+}
+
+IList*
+AllListEditorPanel::GetItemCheckedIndexListN(void) const
+{
+       AppLogDebug("ENTER");
+       IList* pList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+       Integer* pIndex = null;
+
+       if (__pContentIconListView!=null)
+       {
+               int loopCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+               for (int i = 0; i < loopCount; ++i)
+               {
+                       if (__pContentIconListView->IsItemChecked(i) == true)
+                       {
+                               pIndex = new (std::nothrow) Integer(i);
+                               pList->Add(pIndex);
+                               AppLogDebug("checked index(%d)", i);
+                       }
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pList;
+}
+
+result
+AllListEditorPanel::OnRequestDelete(void)
+{
+       AppLogDebug("ENTER");
+       IList* pIndexList = GetItemCheckedIndexListN();
+       if (pIndexList->GetCount() <= 0)
+       {
+               delete pIndexList;
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return E_FAILURE;
+       }
+
+       delete __pFileUpdateTimer;
+       __pFileUpdateTimer = new (std::nothrow) FileUpdateTimer(pIndexList, __pPresentationModel, this, FILE_ACTION_DELETE);
+       result r = __pFileUpdateTimer->StartTimer();
+
+       if (IsFailed(r))
+       {
+               delete __pFileUpdateTimer;
+               __pFileUpdateTimer = null;
+               return E_FAILURE;
+       }
+       else
+       {
+               __pPresentationModel->SetUpdateProgressStatus(true);
+       }
+       return E_SUCCESS;
+}
+
+void AllListEditorPanel::OnFileOpInvalidate(enum FileActionMode actionId)
+{
+       __pFileListEditorForm->Invalidate(true);
+}
+
+void AllListEditorPanel::OnFileOpComplete(enum FileActionMode actionId, enum FileActionCompleteRes res)
+{
+       __pPresentationModel->SetUpdateProgressStatus(false);
+
+       __pLabelSelectCnt->SetText(ResourceManager::GetString(L"IDS_ST_POP_NO_ITEMS_SELECTED"));
+       __pLabelSelectCnt->RequestRedraw(true);
+
+       __pPresentationModel->RefreshCurrentAlbumContentInfoList(CONTENT_TYPE_ALL);
+       __itemCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+       __pContentIconListView->UpdateList();
+
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       if (GetItemCount() > 0)
+       {
+               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALL_LIST,SCENE_TRANSITION_ANIMATION_TYPE_NONE,
+                                                                  SCENE_HISTORY_OPTION_ADD_HISTORY, SCENE_DESTROY_OPTION_DESTROY));
+       }
+       else
+       {
+               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALBUM_LIST,SCENE_TRANSITION_ANIMATION_TYPE_NONE,
+                                                                  SCENE_HISTORY_OPTION_ADD_HISTORY, SCENE_DESTROY_OPTION_DESTROY));
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AllListEditorPanel::ChangeOrientation(void)
+{
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       const Form* pForm = dynamic_cast<Form*>(pSceneManager->GetCurrentScene()->GetForm());
+       TryReturn(pForm != null,, "[%s] fail to get the form.", GetErrorMessage(GetLastResult()));
+
+       FloatRectangle clientAreaBounds = pForm->GetClientAreaBoundsF();
+       SetBounds(0.0f, 0.0f, clientAreaBounds.width, clientAreaBounds.height);
+       __pContentIconListView->SetBounds(0.0f, 0.0f, clientAreaBounds.width, clientAreaBounds.height - H_COUNT_LABEL);
+       __pLabelSelectCnt->SetBounds(0.0f, clientAreaBounds.height - H_COUNT_LABEL, clientAreaBounds.width, H_COUNT_LABEL);
+       __pButtonSelectRegion->SetBounds(clientAreaBounds.width - W_COUNT_LABEL_BUTTON - 10.0f,
+                       clientAreaBounds.height - H_COUNT_LABEL_BUTTON - 4.0f, W_COUNT_LABEL_BUTTON, H_COUNT_LABEL_BUTTON);
+}
+
+result
+AllListEditorPanel::OnRequestMessage(void)
+{
+       AppLogDebug("ENTER");
+       result r = E_SUCCESS;
+       IList* pIndexList = GetItemCheckedIndexListN();
+       if (pIndexList == null || pIndexList->GetCount() <= 0)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return E_FAILURE;
+       }
+
+       Integer* pIndex = null;
+       int checkedIndex;
+       ArrayList* pArrayList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+       pArrayList->Construct();
+       int loopCount = pIndexList->GetCount();
+
+       for (int i = 0; i < loopCount; ++i)
+       {
+               pIndex = static_cast<Integer*>(pIndexList->GetAt(i));
+               if (pIndex != null)
+               {
+                       checkedIndex = pIndex->ToInt();
+                       pArrayList->Add(new (std::nothrow) String(__pPresentationModel->GetContentFilePath(checkedIndex)));
+               }
+       }
+
+       HashMap* pDataList = new (std::nothrow) HashMap(SingleObjectDeleter);
+       pDataList->Construct();
+       pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_MESSAGE_TYPE), new (std::nothrow) String(APPCONTROL_DATA_MMS));
+       pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_PATH), (Object*)pArrayList);
+
+       r = __pPresentationModel->StartAppControl(APPCONTROL_PROVIDER_ID_MESSAGE, APPCONTROL_OPERATION_ID_COMPOSE, null,
+                       null, pDataList, null);
+
+       if (r == E_MAX_EXCEEDED)
+       {
+               MessageBox messageBox;
+               messageBox.Construct(L"", ResourceManager::GetString(L"IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED"),
+                               MSGBOX_STYLE_NONE, 3000);
+               int modalResult;
+               messageBox.ShowAndWait(modalResult);
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+result
+AllListEditorPanel::OnRequestEmail(void)
+{
+       AppLogDebug("ENTER");
+       result r = E_SUCCESS;
+
+       IList* pIndexList = GetItemCheckedIndexListN();
+       if (pIndexList == null || pIndexList->GetCount() <= 0)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return E_FAILURE;
+       }
+
+       Integer* pIndex = null;
+       int checkedIndex;
+       ArrayList* pArrayList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+       pArrayList->Construct();
+       int loopCount = pIndexList->GetCount();
+
+       for (int i = 0; i < loopCount; ++i)
+       {
+               pIndex = static_cast<Integer*>(pIndexList->GetAt(i));
+               if (pIndex != null)
+               {
+                       checkedIndex = pIndex->ToInt();
+                       pArrayList->Add(new (std::nothrow) String(__pPresentationModel->GetContentFilePath(checkedIndex)));
+               }
+       }
+
+       const String uriData = APPCONTROL_URI_MAIL_TO;
+       HashMap* pDataList = new (std::nothrow) HashMap(SingleObjectDeleter);
+       pDataList->Construct();
+       pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_PATH), (Object*)pArrayList);
+
+       r = __pPresentationModel->StartAppControl(APPCONTROL_PROVIDER_ID_EMAIL, APPCONTROL_OPERATION_ID_COMPOSE,
+                       &uriData, null, pDataList, null);
+
+       if (r == E_MAX_EXCEEDED)
+       {
+               MessageBox messageBox;
+               messageBox.Construct(L"", ResourceManager::GetString(L"IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED"),
+                               MSGBOX_STYLE_NONE, 3000);
+               int modalResult;
+               messageBox.ShowAndWait(modalResult);
+       }
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+result
+AllListEditorPanel::OnRequestSlideShow(void)
+{
+       AppLogDebug("ENTER");
+       result r = E_SUCCESS;
+       IList* pIndexList = GetItemCheckedIndexListN();
+       if (pIndexList == null)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+               return E_FAILURE;
+       }
+
+       Integer* pRealIndex = null;
+       int realIndex = -1;
+       ArrayList* pArrayList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+       pArrayList->Construct();
+       int loopCount = pIndexList->GetCount();
+
+       for (int i = 0; i < loopCount; ++i)
+       {
+               pRealIndex = static_cast<Integer*>(pIndexList->GetAt(i));
+               if (pRealIndex != null)
+               {
+                       realIndex = pRealIndex->ToInt();
+                       pArrayList->Add(new (std::nothrow) String(__pPresentationModel->GetContentFilePath(realIndex)));
+               }
+       }
+
+       HashMap* pDataList = new (std::nothrow) HashMap(SingleObjectDeleter);
+       pDataList->Construct();
+       pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_TYPE), new (std::nothrow) String(APPCONTROL_DATA_SLIDE_SHOW));
+       pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_PATH), (Object*)pArrayList);
+       const String mimeType = APPCONTROL_MIME_IMAGE_ALL;
+
+       r = __pPresentationModel->StartAppControl(APPCONTROL_PROVIDER_ID_IMAGE, APPCONTROL_OPERATION_ID_VIEW, null,
+                       &mimeType, pDataList, null);
+
+       if (r == E_MAX_EXCEEDED)
+       {
+               MessageBox messageBox;
+               messageBox.Construct(L"", ResourceManager::GetString(L"IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED"),
+                               MSGBOX_STYLE_NONE, 3000);
+               int modalResult;
+               messageBox.ShowAndWait(modalResult);
+       }
+
+       delete pIndexList;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+void
+AllListEditorPanel::ResetSelection(void)
+{
+       AppLogDebug("ENTER");
+       __pPresentationModel->RefreshCurrentAlbumContentInfoList(CONTENT_TYPE_ALL);
+       __itemCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+       __pContentIconListView->UpdateList();
+
+       for (int index = 0; index < __itemCount; ++index)
+       {
+               __pContentIconListView->SetItemChecked(index, false);
+               __pContentIconListView->RefreshList(index,LIST_REFRESH_TYPE_ITEM_MODIFY);
+       }
+
+       String strTmp;
+       strTmp = ResourceManager::GetString(L"IDS_ST_POP_NO_ITEMS_SELECTED");
+
+       __pLabelSelectCnt->SetText(strTmp);
+       __pLabelSelectCnt->RequestRedraw(true);
+       SetButtonState();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AllListEditorPanel::SetButtonState(void)
+{
+       AppLogDebug("ENTER");
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       TryReturnVoid(pSceneManager != null, "[%s] fail to get SceneManager.", GetErrorMessage(GetLastResult()));
+
+       if (GetItemCheckedCount() > 0)
+       {
+               AppLogDebug("BUTTONSTATE : Request Enable");
+               __pFileListEditorForm->SetFooterButtonsState(true);
+               __pButtonSelectRegion->SetShowState(true);
+       }
+       else
+       {
+               AppLogDebug("BUTTONSTATE : Request disable");
+               __pFileListEditorForm->SetFooterButtonsState(false);
+               __pButtonSelectRegion->SetShowState(false);
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AllListEditorPanel::OnSelectAllPressed(void)
+{
+       bool needToSelectAll = true;
+       int checkedCount = GetItemCheckedCount();
+       int totalFileCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+       if (checkedCount == totalFileCount)
+       {
+               needToSelectAll = false;
+       }
+
+       if (needToSelectAll == true)
+       {
+               for (int i = 0; i < totalFileCount; ++i)
+               {
+                       if (__pContentIconListView->IsItemChecked(i) == false)
+                       {
+                               __pContentIconListView->SetItemChecked(i,true);
+                               __pContentIconListView->RefreshList(i, LIST_REFRESH_TYPE_ITEM_MODIFY);
+                       }
+               }
+       }
+       else
+       {
+               for (int i = 0; i < totalFileCount; ++i)
+               {
+                       if (__pContentIconListView->IsItemChecked(i) == true)
+                       {
+                               __pContentIconListView->SetItemChecked(i, false);
+                               __pContentIconListView->RefreshList(i, LIST_REFRESH_TYPE_ITEM_MODIFY);
+                       }
+               }
+       }
+
+       String tempString;
+       if (needToSelectAll == true)
+       {
+               tempString.Format(LENGTH_COUNT_LABEL,
+                                               ResourceManager::GetString(L"IDS_VR_POP_PD_ITEMS_SELECTED").GetPointer(), totalFileCount);
+       }
+       else
+       {
+               tempString = ResourceManager::GetString(L"IDS_ST_POP_NO_ITEMS_SELECTED");
+       }
+
+       __pLabelSelectCnt->SetText(tempString);
+       __pLabelSelectCnt->RequestRedraw(true);
+       SetButtonState();
+}
+
+result
+AllListEditorPanel::OnRequestRotate(RotateMode rotateMode)
+{
+       AppLogDebug("ENTER");
+       IList* pIndexList = GetItemCheckedIndexListN();
+       if (pIndexList == null)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+               return E_FAILURE;
+       }
+       else if (pIndexList->GetCount() <= 0)
+       {
+               delete pIndexList;
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return E_FAILURE;
+       }
+
+       delete __pFileUpdateTimer;
+       __pFileUpdateTimer = new (std::nothrow) FileUpdateTimer(pIndexList, __pPresentationModel, this, FILE_ACTION_ROTATE, rotateMode);
+       result r = __pFileUpdateTimer->StartTimer();
+
+       if (IsFailed(r))
+       {
+               delete __pFileUpdateTimer;
+               __pFileUpdateTimer = null;
+               return E_FAILURE;
+       }
+       else
+       {
+               __pPresentationModel->SetUpdateProgressStatus(true);
+       }
+       return E_SUCCESS;
+}
+
+void AllListEditorPanel::CancelUpdateProgress(void)
+{
+       if (__pFileUpdateTimer!= null && __pFileUpdateTimer->IsStarted())
+       {
+               __pFileUpdateTimer->Cancel();
+               delete __pFileUpdateTimer;
+               __pFileUpdateTimer = null;
+       }
+}
+
+void
+AllListEditorPanel::OnScanDirStart()
+{
+       AppLogDebug("ENTER");
+       __pFileListEditorForm->SetProgressState(true);
+       AppLogDebug("EXIT");
+}
+void
+AllListEditorPanel::OnScanDirComplete()
+{
+       AppLogDebug("ENTER");
+       __pFileListEditorForm->SetProgressState(false);
+       AppLogDebug("EXIT");
+}
diff --git a/src/GlAllListPanel.cpp b/src/GlAllListPanel.cpp
new file mode 100644 (file)
index 0000000..21a7cdb
--- /dev/null
@@ -0,0 +1,415 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlAllListPanel.cpp
+ * @brief              This is the implementation file for AllListPanel class.
+ */
+
+#include "GlAlbumInfo.h"
+#include "GlAllListPanel.h"
+#include "GlCommonUtil.h"
+#include "GlFileListForm.h"
+#include "GlFileListPresentationModel.h"
+#include "GlTypes.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Content;
+using namespace Tizen::Graphics;
+using namespace Tizen::Media;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+static const Rectangle RECT_INITIAL (0, 0, 10, 10);
+static const int W_CLIENT = 720;
+static const int H_CONTENT_MARGIN = 9;
+static const int W_CONTENT_MARGIN = 6;
+static const int W_CONTENT_SPACE = 6;
+static const int H_CONTENT_SPACE = 6;
+
+AllListPanel::AllListPanel(void)
+       : __itemCount(0)
+       , __pContentIconListView(null)
+       , __pPresentationModel(null)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+AllListPanel::~AllListPanel(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AllListPanel::Refresh(void)
+{
+       AppLogDebug("ENTER");
+       if (__pPresentationModel->GetAppControlMode() == APPCONTROL_MODE_PICK)
+       {
+               if (__pPresentationModel->GetAppControlMediaType() == APPCONTROL_MEDIA_TYPE_IMAGE)
+               {
+                       __pPresentationModel->RefreshCurrentAlbumContentInfoList(CONTENT_TYPE_IMAGE);
+               }
+               else if (__pPresentationModel->GetAppControlMediaType() == APPCONTROL_MEDIA_TYPE_VIDEO)
+               {
+                       __pPresentationModel->RefreshCurrentAlbumContentInfoList(CONTENT_TYPE_VIDEO);
+               }
+               else
+               {
+                       __pPresentationModel->RefreshCurrentAlbumContentInfoList(CONTENT_TYPE_VIDEO);
+               }
+       }
+       else
+       {
+               __pPresentationModel->RefreshCurrentAlbumContentInfoList(CONTENT_TYPE_ALL);
+       }
+
+       __itemCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+       if (__itemCount == 0)
+       {
+               SceneManager* pSceneManager = SceneManager::GetInstance();
+               TryReturnVoid(pSceneManager != null, "[%s] fail to get SceneManager", GetErrorMessage(GetLastResult()));
+
+               pSceneManager->GoBackward(BackwardSceneTransition(IDSCN_ALBUM_LIST,SCENE_TRANSITION_ANIMATION_TYPE_NONE,SCENE_DESTROY_OPTION_KEEP));
+       }
+       else
+       {
+               SceneManager* pSceneManager = SceneManager::GetInstance();
+               TryReturnVoid(pSceneManager != null, "[%s] fail to get SceneManager", GetErrorMessage(GetLastResult()));
+
+               FileListForm* pFileListForm = dynamic_cast<FileListForm*>(pSceneManager->GetCurrentScene()->GetForm());
+               if (pFileListForm != null)
+               {
+                       pFileListForm->SetMenuState(true);
+               }
+       }
+
+       __pContentIconListView->UpdateList();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+result
+AllListPanel::Initialize(void)
+{
+       AppLogDebug("ENTER");
+       result r = Construct(RECT_INITIAL);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+result
+AllListPanel::OnInitializing(void)
+{
+       AppLogDebug("ENTER");
+       const Form* pForm = dynamic_cast<Form*>(GetParent());
+       AppAssert(pForm);
+
+       __pPresentationModel = FileListPresentationModel::GetInstance();
+       __pPresentationModel->ClearThumbnailRequests();
+       __pPresentationModel->AddPresentationModelListener(this);
+
+       Rectangle clientAreaBounds = pForm->GetClientAreaBounds();
+       clientAreaBounds.x = clientAreaBounds.y = 0;
+       SetBounds(clientAreaBounds);
+
+       __pContentIconListView = new (std::nothrow) IconListView();
+       __pContentIconListView->Construct(Rectangle(0, 0, W_CLIENT, clientAreaBounds.height),
+                       DIMENSION_DEFAULT_THUMBNAIL, ICON_LIST_VIEW_STYLE_NORMAL, ICON_LIST_VIEW_SCROLL_DIRECTION_VERTICAL);
+       Bitmap* pBitmapEmpty = ResourceManager::GetBitmapN(IDB_LISTVIEW_EMPTY);
+       if (pBitmapEmpty != null)
+       {
+               __pContentIconListView->SetBitmapOfEmptyList(pBitmapEmpty);
+               delete pBitmapEmpty;
+       }
+       __pContentIconListView->SetTextOfEmptyList(ResourceManager::GetString(L"IDS_COM_BODY_NO_ITEMS"));
+       __pContentIconListView->SetMargin(MARGIN_TYPE_LEFT, W_CONTENT_MARGIN);
+       __pContentIconListView->SetMargin(MARGIN_TYPE_RIGHT, W_CONTENT_MARGIN);
+       __pContentIconListView->SetMargin(MARGIN_TYPE_TOP, H_CONTENT_MARGIN);
+       __pContentIconListView->SetItemSpacing(W_CONTENT_SPACE, H_CONTENT_SPACE);
+       __pContentIconListView->SetItemBorderStyle(ICON_LIST_VIEW_ITEM_BORDER_STYLE_NONE);
+       __pContentIconListView->SetItemProvider(*this);
+       __pContentIconListView->SetCheckBoxPosition(ICON_LIST_VIEW_CHECK_BOX_POSITION_TOP_RIGHT);
+       __pContentIconListView->AddIconListViewItemEventListener(*this);
+       __pContentIconListView->SetTouchAnimationEnabled(false);
+       result r = AddControl(__pContentIconListView);
+       __pContentIconListView->SetShowState(true);
+
+       __itemCount = 0;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+result
+AllListPanel::OnTerminating(void)
+{
+       AppLogDebug("ENTER");
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       AppAssert(pSceneManager);
+       if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST)
+       {
+               FileListForm* pFileListForm = dynamic_cast<FileListForm*>(pSceneManager->GetCurrentScene()->GetForm());
+               __pPresentationModel->RemoveContentEventListener(pFileListForm);
+       }
+       __pPresentationModel->RemovePresentationModelListener(*this);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+int
+AllListPanel::GetItemCount(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return __itemCount;
+}
+
+IconListViewItem*
+AllListPanel::CreateItem(int index)
+{
+       AppLogDebug("ENTER : index(%d)", index);
+       Bitmap* pBitmap=null;
+       String* pItemText=null;
+       result r = __pPresentationModel->GetThumbnailInSyncCacheN(index, pItemText, pBitmap);
+       if (r != E_SUCCESS)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+               return null;
+       }
+
+       IconListViewItem* pIconListviewItem = new (std::nothrow) IconListViewItem();
+
+       if (pBitmap == null)
+       {
+               __pPresentationModel->RequestThumbnail(index);
+               pBitmap = CommonUtil::GetEmptyThumbnailN();
+       }
+
+       if (pItemText == null)
+       {
+               pItemText = new (std::nothrow) String(ResourceManager::GetString(L"EMPTY_SPACE"));
+       }
+       else if ((*pItemText) != ResourceManager::GetString(L"EMPTY_SPACE"))
+       {
+               delete pItemText;
+               pItemText = new (std::nothrow) String(ResourceManager::GetString(L"EMPTY_SPACE"));
+       }
+
+       if (pItemText != null)
+       {
+               pIconListviewItem->Construct(*pBitmap, pItemText);
+       }
+
+       if (pBitmap != null)
+       {
+               delete pBitmap;
+       }
+       if (pItemText != null)
+       {
+               delete pItemText;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pIconListviewItem;
+}
+
+bool
+AllListPanel::DeleteItem(int index, IconListViewItem* pItem)
+{
+       AppLogDebug("ENTER : index(%d)", index);
+       delete pItem;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return true;
+}
+
+void
+AllListPanel::OnIconListViewItemStateChanged(IconListView& view, int index, IconListViewItemStatus status)
+{
+       AppLogDebug("ENTER");
+       result r = E_SUCCESS;
+       if (status == ICON_LIST_VIEW_ITEM_SELECTED)
+       {
+               if (__pPresentationModel->GetCurrentAlbumContentInfoCount() <= 0)
+               {
+                       AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+                       return;
+               }
+
+               ArrayList* pArrayList = new (std::nothrow) ArrayList();
+               pArrayList->Construct();
+               int loopCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+
+               for (int i = 0; i < loopCount; ++i)
+               {
+                       pArrayList->Add(new (std::nothrow) String(__pPresentationModel->GetContentFilePath(i)));
+               }
+
+               String listIndex;
+               listIndex.Format(10, L"%d", index);
+               const String mimeType = APPCONTROL_MIME_IMAGE_ALL;
+
+               HashMap* pDataList = new (std::nothrow) HashMap(SingleObjectDeleter);
+               pDataList->Construct();
+               pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_TYPE), new (std::nothrow) String(APPCONTROL_DATA_IMAGE));
+               pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_PATH), pArrayList);
+               pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_INDEX), new (std::nothrow) String(listIndex));
+
+               r = __pPresentationModel->StartAppControl(APPCONTROL_PROVIDER_ID_IMAGE, APPCONTROL_OPERATION_ID_VIEW, null,
+                               &mimeType, pDataList, null);
+
+               if (r == E_MAX_EXCEEDED)
+               {
+                       MessageBox messageBox;
+                       messageBox.Construct(L"", ResourceManager::GetString(L"IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED"),
+                                       MSGBOX_STYLE_NONE, 3000);
+                       int modalResult;
+                       messageBox.ShowAndWait(modalResult);
+               }
+
+               String* pTemp = null;
+               loopCount = pArrayList->GetCount();
+               for (int i = 0; i < loopCount; ++i)
+               {
+                       pTemp = static_cast<String*>(pArrayList->GetAt(i));
+                       AppLog("print temp(%ls)", pTemp->GetPointer());
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AllListPanel::OnFileInfoChanged(const ContentType contentType)
+{
+       AppLogDebug("ENTER");
+       if (contentType == CONTENT_TYPE_ALL || contentType == CONTENT_TYPE_IMAGE
+               || contentType == CONTENT_TYPE_VIDEO)
+       {
+               __itemCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+               __pContentIconListView->UpdateList();
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AllListPanel::OnThumbnailDecoded(const int index)
+{
+       AppLogDebug("ENTER : index(%d)", index);
+       if (index >= 0)
+       {
+               __pContentIconListView->RefreshList(index, LIST_REFRESH_TYPE_ITEM_MODIFY);
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AllListPanel::ChangeOrientation(void)
+{
+       AppLogDebug("ENTER");
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       const Form* pForm = dynamic_cast<Form*>(pSceneManager->GetCurrentScene()->GetForm());
+       TryReturn(pForm != null,, "[%s] fail to get the form.", GetErrorMessage(GetLastResult()));
+
+       Rectangle clientAreaBounds = pForm->GetClientAreaBounds();
+       SetBounds(0, 0, clientAreaBounds.width, clientAreaBounds.height);
+       __pContentIconListView->SetBounds(0, 0, clientAreaBounds.width, clientAreaBounds.height);
+}
+
+void
+AllListPanel::OnSceneActivatedN(const SceneId& previousSceneId,
+                                                               const SceneId& currentSceneId, IList* pArgs)
+{
+       AppLogDebug("ENTER");
+       ChangeOrientation();
+
+       __pPresentationModel = FileListPresentationModel::GetInstance();
+
+       if (currentSceneId == IDSCN_ALL_LIST)
+       {
+               if (previousSceneId == IDSCN_ALBUM_LIST && pArgs != null)
+               {
+                       AlbumInfo* pAlbumInfo = static_cast<AlbumInfo*>(pArgs->GetAt(0));
+                       if (pAlbumInfo == null)
+                       {
+                               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+                               return;
+                       }
+                       IList* pDirectoryList = pAlbumInfo->GetDirectoryListN();
+                       __pPresentationModel->SetCurrentAlbumInfo(pAlbumInfo->GetAlbumName(), *pDirectoryList);
+                       if (pDirectoryList != null)
+                       {
+                               delete pDirectoryList;
+                       }
+
+                       delete pArgs;
+
+                       __itemCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+                       __pContentIconListView->UpdateList();
+               }
+               else
+               {
+                       __pPresentationModel->RefreshCurrentAlbumContentInfoList(CONTENT_TYPE_ALL);
+                       __itemCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+                       __pContentIconListView->UpdateList();
+               }
+       }
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       AppAssert(pSceneManager);
+       if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST)
+       {
+               FileListForm* pFileListForm = dynamic_cast<FileListForm*>(pSceneManager->GetCurrentScene()->GetForm());
+               if (pFileListForm != null)
+               {
+                       pFileListForm->SetTitleText(__pPresentationModel->GetCurrentAlbumName());
+
+                       if (__itemCount == 0)
+                       {
+                               pFileListForm->SetMenuState(false);
+                       }
+                       else
+                       {
+                               pFileListForm->SetMenuState(true);
+                       }
+
+               }
+               __pPresentationModel->AddContentEventListener(pFileListForm);
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AllListPanel::OnSceneDeactivated(const SceneId& currentSceneId,
+                                                               const SceneId& nextSceneId)
+{
+       AppLogDebug("ENTER");
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       AppAssert(pSceneManager);
+       if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST)
+       {
+               FileListForm* pFileListForm = dynamic_cast<FileListForm*>(pSceneManager->GetCurrentScene()->GetForm());
+               __pPresentationModel->RemoveContentEventListener(pFileListForm);
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
diff --git a/src/GlAllListSelectionPanel.cpp b/src/GlAllListSelectionPanel.cpp
new file mode 100644 (file)
index 0000000..51c2f45
--- /dev/null
@@ -0,0 +1,808 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlAllListSelectionPanel.cpp
+ * @brief              This is the implementation file for AllListSelectionPanel class.
+ */
+
+#include "GlAllListSelectionPanel.h"
+#include "GlCommonUtil.h"
+#include "GlFileListEditorForm.h"
+#include "GlFileListPresentationModel.h"
+#include "GlResourceManager.h"
+#include "GlTypes.h"
+#include "GlFileUpdateTimer.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Base::Utility;
+using namespace Tizen::Content;
+using namespace Tizen::Graphics;
+using namespace Tizen::Media;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+static const int LENGTH_COUNT_LABEL = 256;
+static const int H_CONTENT_MARGIN = 9;
+static const int W_CONTENT_MARGIN = 6;
+static const int W_CONTENT_SPACE = 6;
+static const int H_CONTENT_SPACE = 6;
+static const Color COLOR_THUMBNAIL_DIM (Color::GetColor(COLOR_ID_BLACK));
+static const int ALPHA_THUMBNAIL_DIM = 70;
+
+static const Rectangle RECT_INITIAL (0, 0, 10, 10);
+
+AllListSelectionPanel::AllListSelectionPanel(void)
+       : __itemCount(0)
+       , __pContentIconListView(null)
+       , __pSeletedIndexList(null)
+       , __pFileListEditorForm(null)
+       , __pFileUpdateTimer(null)
+       , __pPresentationModel(null)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+AllListSelectionPanel::~AllListSelectionPanel(void)
+{
+       AppLogDebug("ENTER");
+       delete __pFileUpdateTimer;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+result
+AllListSelectionPanel::Initialize(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return Construct(RECT_INITIAL); // Should be set proper area at OnInitializing()
+}
+
+result
+AllListSelectionPanel::OnInitializing(void)
+{
+       AppLogDebug("ENTER");
+       const Form* pForm = dynamic_cast<Form*>(GetParent());
+       TryReturn(pForm != null, E_FAILURE, "[%s] fail to get the form.", GetErrorMessage(GetLastResult()));
+
+       __pPresentationModel = FileListPresentationModel::GetInstance();
+       __pPresentationModel->ClearThumbnailRequests();
+       __pPresentationModel->AddPresentationModelListener(this);
+
+       Rectangle clientAreaBounds = pForm->GetClientAreaBounds();
+       clientAreaBounds.x = clientAreaBounds.y = 0;
+       result r = SetBounds(clientAreaBounds);
+
+       __pContentIconListView = new (std::nothrow) IconListView();
+       __pContentIconListView->Construct(Rectangle(0, 0, clientAreaBounds.width, clientAreaBounds.height),
+                       DIMENSION_DEFAULT_THUMBNAIL, ICON_LIST_VIEW_STYLE_MARK, ICON_LIST_VIEW_SCROLL_DIRECTION_VERTICAL);
+       Bitmap* pBitmapEmpty = ResourceManager::GetBitmapN(IDB_LISTVIEW_EMPTY);
+       if (pBitmapEmpty != null)
+       {
+               __pContentIconListView->SetBitmapOfEmptyList(pBitmapEmpty);
+               delete pBitmapEmpty;
+       }
+       __pContentIconListView->SetTextOfEmptyList(ResourceManager::GetString(L"IDS_COM_BODY_NO_ITEMS"));
+       __pContentIconListView->SetMargin(MARGIN_TYPE_LEFT, W_CONTENT_MARGIN);
+       __pContentIconListView->SetMargin(MARGIN_TYPE_RIGHT, W_CONTENT_MARGIN);
+       __pContentIconListView->SetMargin(MARGIN_TYPE_TOP, H_CONTENT_MARGIN);
+       __pContentIconListView->SetItemSpacing(W_CONTENT_SPACE, H_CONTENT_SPACE);
+       __pContentIconListView->SetItemBorderStyle(ICON_LIST_VIEW_ITEM_BORDER_STYLE_NONE);
+       __pContentIconListView->SetItemProvider(*this);
+       __pContentIconListView->SetCheckBoxPosition(ICON_LIST_VIEW_CHECK_BOX_POSITION_TOP_LEFT);
+       __pContentIconListView->AddIconListViewItemEventListener(*this);
+       __pContentIconListView->SetTouchAnimationEnabled(false);
+       AddControl(__pContentIconListView);
+       __pContentIconListView->SetShowState(true);
+
+       __itemCount = 0;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+result
+AllListSelectionPanel::OnTerminating(void)
+{
+       AppLogDebug("ENTER");
+       result r = E_SUCCESS;
+       __pPresentationModel->RemovePresentationModelListener(*this);
+       if (__pSeletedIndexList != null)
+       {
+               delete __pSeletedIndexList;
+               __pSeletedIndexList = null;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+int
+AllListSelectionPanel::GetItemCount(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return __itemCount;
+}
+
+IconListViewItem*
+AllListSelectionPanel::CreateItem(int index)
+{
+       AppLogDebug("ENTER : index(%d)", index);
+       IconListViewItem* pIconListviewItem;
+       Bitmap* pBitmap = null;
+       String* pItemText = null;
+
+       int realIndex = GetRealindexFromVirtualIndex(index);
+       result r = __pPresentationModel->GetThumbnailInSyncCacheN(realIndex, pItemText, pBitmap);
+       if (pBitmap == null || r == E_FAILURE)
+       {
+               __pPresentationModel->RequestThumbnail(realIndex);
+               pBitmap = CommonUtil::GetEmptyThumbnailN();
+       }
+
+       if (pItemText == null)
+       {
+               pItemText = new (std::nothrow) String(ResourceManager::GetString(L"EMPTY_SPACE"));
+       }
+       else if ((*pItemText) != ResourceManager::GetString(L"EMPTY_SPACE"))
+       {
+               delete pItemText;
+               pItemText = new (std::nothrow) String(ResourceManager::GetString(L"EMPTY_SPACE"));
+       }
+
+       if (__pContentIconListView->IsItemChecked(index) == true)
+       {
+               if (pBitmap != null)
+               {
+                       BufferInfo bufferInfo;
+                       pBitmap->Lock(bufferInfo, INFINITE);
+                       pBitmap->Unlock();
+
+                       Color dimColor(COLOR_THUMBNAIL_DIM);
+                       dimColor.SetAlpha(ALPHA_THUMBNAIL_DIM);
+
+                       Canvas canvas;
+                       canvas.Construct(bufferInfo);
+                       canvas.FillRectangle(dimColor, canvas.GetBounds());
+
+                       Bitmap* pSelectedBitmap = new (std::nothrow) Bitmap();
+                       pSelectedBitmap->Construct(canvas, canvas.GetBounds());
+                       pIconListviewItem = new (std::nothrow) IconListViewItem();
+                       pIconListviewItem->Construct(*pBitmap, pItemText, pSelectedBitmap);
+                       delete pSelectedBitmap;
+               }
+               else
+               {
+                       AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+                       delete pItemText;
+                       return null;
+               }
+
+       }
+       else
+       {
+               pIconListviewItem = new (std::nothrow) IconListViewItem();
+               pIconListviewItem->Construct(*pBitmap, pItemText);
+       }
+
+       if (pBitmap != null)
+       {
+               delete pBitmap;
+       }
+       if (pItemText != null)
+       {
+               delete pItemText;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pIconListviewItem;
+}
+
+bool
+AllListSelectionPanel::DeleteItem(int index, IconListViewItem* pItem)
+{
+       AppLogDebug("ENTER");
+       delete pItem;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return true;
+}
+
+void
+AllListSelectionPanel::OnIconListViewItemStateChanged(IconListView& view, int index, IconListViewItemStatus status)
+{
+       AppLogDebug("ENTER");
+       if (status == ICON_LIST_VIEW_ITEM_CHECKED || status == ICON_LIST_VIEW_ITEM_UNCHECKED)
+       {
+               SceneManager* pSceneManager = SceneManager::GetInstance();
+               TryReturnVoid(pSceneManager != null, "[%s] fail to get SceneManager.", GetErrorMessage(GetLastResult()));
+
+               String strTmp;
+               strTmp.Format(LENGTH_COUNT_LABEL, L"%ls (%d)",
+                               ResourceManager::GetString(L"IDS_COM_BODY_SELECTED").GetPointer(), GetItemCheckedCount());
+               __pFileListEditorForm->SetTitleText(strTmp);
+               __pContentIconListView->RefreshList(index, LIST_REFRESH_TYPE_ITEM_MODIFY);
+       }
+
+       SetButtonState();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AllListSelectionPanel::OnFileInfoChanged(const ContentType contentType)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AllListSelectionPanel::OnThumbnailDecoded(const int index)
+{
+       AppLogDebug("ENTER : index(%d)", index);
+       if (index >= 0)
+       {
+               int virtualIndex = -1;
+               int loopCount = __pSeletedIndexList->GetCount();
+               for (int i = 0; i < loopCount; ++i)
+               {
+                       virtualIndex = GetVirtualIndexFromRealIndex(index);
+                       if (virtualIndex >= 0)
+                       {
+                               __pContentIconListView->RefreshList(virtualIndex, LIST_REFRESH_TYPE_ITEM_MODIFY);
+                               break;
+                       }
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AllListSelectionPanel::OnSceneActivatedN(const SceneId& previousSceneId,
+               const SceneId& currentSceneId, IList* pArgs)
+{
+       AppLogDebug("ENTER");
+
+       ChangeOrientation();
+
+       __pPresentationModel = FileListPresentationModel::GetInstance();
+
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       TryReturnVoid(pSceneManager != null, "[%s] fail to get SceneManager.", GetErrorMessage(GetLastResult()));
+
+       __pFileListEditorForm = dynamic_cast<FileListEditorForm*>(pSceneManager->GetCurrentScene()->GetForm());
+       TryReturnVoid(__pFileListEditorForm != null, "[%s] fail to get FileListEditorForm.", GetErrorMessage(GetLastResult()));
+       __pPresentationModel->AddContentEventListener(__pFileListEditorForm);
+
+       if (previousSceneId == IDSCN_ALL_LIST_EDITOR)
+       {
+               if (pArgs != null)
+               {
+                       __pSeletedIndexList = pArgs;
+               }
+               ResetSelection();
+               int loopCount = __pSeletedIndexList->GetCount();
+               for (int i = 0; i < loopCount; ++i)
+               {
+                       __pContentIconListView->SetItemChecked(i, true);
+                       __pContentIconListView->RequestRedraw(true);
+               }
+       }
+       SetButtonState();
+
+       if (pArgs != null && pArgs->GetCount() > 0)
+       {
+               String* pDirectory = static_cast<String*>(pArgs->GetAt(0));
+               if (pDirectory != null && pDirectory->GetLength() > 0)
+               {
+                       __pFileListEditorForm->MoveToAlbum(*pDirectory);
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AllListSelectionPanel::OnSceneDeactivated(const SceneId& currentSceneId,
+               const SceneId& nextSceneId)
+{
+       AppLogDebug("ENTER");
+       __pPresentationModel->RemoveContentEventListener(__pFileListEditorForm);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+int
+AllListSelectionPanel::GetItemCheckedCount(void) const
+{
+       AppLogDebug("ENTER");
+       int count = 0;
+       if (__pContentIconListView != null && __pSeletedIndexList != null)
+       {
+               int loopCount = __pSeletedIndexList->GetCount();
+               for (int i = 0; i < loopCount; ++i)
+               {
+                       if (__pContentIconListView->IsItemChecked(i))
+                       {
+                               ++count;
+                       }
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return count;
+}
+
+IList*
+AllListSelectionPanel::GetItemCheckedIndexListN(void) const
+{
+       AppLogDebug("ENTER");
+       IList* pList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+       Integer* pIndex = null;
+
+       if (__pContentIconListView!=null)
+       {
+               int realIndex = -1;
+               int loopCount = __pSeletedIndexList->GetCount();
+               for (int i = 0; i < loopCount; ++i)
+               {
+                       if (__pContentIconListView->IsItemChecked(i))
+                       {
+                               realIndex = GetRealindexFromVirtualIndex(i);
+                               pIndex = new (std::nothrow) Integer(realIndex);
+                               pList->Add(pIndex);
+                       }
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pList;
+}
+
+int
+AllListSelectionPanel::GetRealindexFromVirtualIndex(const int virtualIndex) const
+{
+       if (__pSeletedIndexList == null || __pSeletedIndexList->GetCount() == 0)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return -1;
+       }
+
+       Integer* pRealIndex = static_cast<Integer*>(__pSeletedIndexList->GetAt(virtualIndex));
+       int realIndex = -1;
+       if (pRealIndex != null)
+       {
+               realIndex = pRealIndex->ToInt();
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return realIndex;
+}
+
+int
+AllListSelectionPanel::GetVirtualIndexFromRealIndex(const int realIndex) const
+{
+       int returnValue = -1;
+       int loopCount = __pSeletedIndexList->GetCount();
+       for (int i = 0; i < loopCount; ++i)
+       {
+               Integer* pRealIndex = static_cast<Integer*>(__pSeletedIndexList->GetAt(i));
+               int index = -1;
+               if (pRealIndex != null)
+               {
+                       index = pRealIndex->ToInt();
+               }
+
+               if (index == realIndex)
+               {
+                       returnValue = i;
+                       break;
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return returnValue;
+}
+
+result
+AllListSelectionPanel::OnRequestDelete(void)
+{
+       AppLogDebug("ENTER");
+       IList* pIndexList = GetItemCheckedIndexListN();
+       if (pIndexList->GetCount() <= 0)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return E_FAILURE;
+       }
+
+       delete __pFileUpdateTimer;
+       __pFileUpdateTimer = new (std::nothrow) FileUpdateTimer(pIndexList, __pPresentationModel, this, FILE_ACTION_DELETE);
+       result r = __pFileUpdateTimer->StartTimer();
+
+       if (IsFailed(r))
+       {
+               delete __pFileUpdateTimer;
+               __pFileUpdateTimer = null;
+               return E_FAILURE;
+       }
+       else
+       {
+               __pPresentationModel->SetUpdateProgressStatus(true);
+       }
+
+       return E_SUCCESS;
+}
+
+void AllListSelectionPanel::OnFileOpInvalidate(enum FileActionMode actionId)
+{
+       __pFileListEditorForm->Invalidate(true);
+}
+
+void AllListSelectionPanel::OnFileOpComplete(enum FileActionMode actionId, enum FileActionCompleteRes res)
+{
+       __pPresentationModel->SetUpdateProgressStatus(false);
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       TryReturnVoid(pSceneManager != null, "[%s] fail to get SceneManager.",
+                       GetErrorMessage(GetLastResult()));
+
+       String strTmp;
+       String selectString = ResourceManager::GetString(L"IDS_COM_BODY_SELECTED");
+       strTmp.Format(LENGTH_COUNT_LABEL, L"%ls (%d)", selectString.GetPointer(), 0);
+       __pFileListEditorForm->SetTitleText(strTmp);
+
+       __pPresentationModel->RefreshCurrentAlbumContentInfoList(CONTENT_TYPE_ALL);
+       __itemCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+       __pContentIconListView->UpdateList();
+
+       if (GetItemCount() > 0)
+       {
+               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALL_LIST, SCENE_TRANSITION_ANIMATION_TYPE_NONE,
+                               SCENE_HISTORY_OPTION_NO_HISTORY, SCENE_DESTROY_OPTION_DESTROY));
+       }
+       else
+       {
+               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALBUM_LIST));
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AllListSelectionPanel::ChangeOrientation()
+{
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       const Form* pForm = dynamic_cast<Form*>(pSceneManager->GetCurrentScene()->GetForm());
+       TryReturn(pForm != null,, "[%s] fail to get the form.", GetErrorMessage(GetLastResult()));
+
+       Rectangle clientAreaBounds = pForm->GetClientAreaBounds();
+       SetBounds(0, 0, clientAreaBounds.width, clientAreaBounds.height);
+       __pContentIconListView->SetBounds(0, 0, clientAreaBounds.width, clientAreaBounds.height);
+}
+
+result
+AllListSelectionPanel::OnRequestMessage(void)
+{
+       AppLogDebug("ENTER");
+       result r = E_SUCCESS;
+       IList* pIndexList = GetItemCheckedIndexListN();
+       if (pIndexList == null || pIndexList->GetCount() <= 0)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return E_FAILURE;
+       }
+
+       Integer* pIndex = null;
+       int checkedIndex;
+       ArrayList* pArrayList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+       pArrayList->Construct();
+       int loopCount = pIndexList->GetCount();
+
+       for (int i = 0; i < loopCount; ++i)
+       {
+               pIndex = static_cast<Integer*>(pIndexList->GetAt(i));
+               if (pIndex != null)
+               {
+                       checkedIndex = pIndex->ToInt();
+                       pArrayList->Add(new (std::nothrow) String(__pPresentationModel->GetContentFilePath(checkedIndex)));
+               }
+       }
+
+       HashMap* pDataList = new (std::nothrow) HashMap(SingleObjectDeleter);
+       pDataList->Construct();
+       pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_MESSAGE_TYPE), new (std::nothrow) String(APPCONTROL_DATA_MMS));
+       pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_PATH), (Object*)pArrayList);
+
+       r = __pPresentationModel->StartAppControl(APPCONTROL_PROVIDER_ID_MESSAGE, APPCONTROL_OPERATION_ID_COMPOSE, null,
+                       null, pDataList, null);
+       if (r == E_MAX_EXCEEDED)
+       {
+               MessageBox messageBox;
+               messageBox.Construct(L"", ResourceManager::GetString(L"IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED"),
+                               MSGBOX_STYLE_NONE, 3000);
+               int modalResult;
+               messageBox.ShowAndWait(modalResult);
+       }
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+result
+AllListSelectionPanel::OnRequestEmail(void)
+{
+       AppLogDebug("ENTER");
+       result r = E_SUCCESS;
+
+       IList* pIndexList = GetItemCheckedIndexListN();
+       if (pIndexList == null || pIndexList->GetCount() <= 0)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return E_FAILURE;
+       }
+
+       Integer* pIndex = null;
+       int checkedIndex;
+       ArrayList* pArrayList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+       pArrayList->Construct();
+       int loopCount = pIndexList->GetCount();
+
+       for (int i = 0; i < loopCount; ++i)
+       {
+               pIndex = static_cast<Integer*>(pIndexList->GetAt(i));
+               if (pIndex != null)
+               {
+                       checkedIndex = pIndex->ToInt();
+                       pArrayList->Add(new (std::nothrow) String(__pPresentationModel->GetContentFilePath(checkedIndex)));
+               }
+       }
+
+       const String uriData = APPCONTROL_URI_MAIL_TO;
+       HashMap* pDataList = new (std::nothrow) HashMap(SingleObjectDeleter);
+       pDataList->Construct();
+       pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_PATH), (Object*)pArrayList);
+
+       r = __pPresentationModel->StartAppControl(APPCONTROL_PROVIDER_ID_EMAIL, APPCONTROL_OPERATION_ID_COMPOSE,
+                       &uriData, null, pDataList, null);
+
+       if (r == E_MAX_EXCEEDED)
+       {
+               MessageBox messageBox;
+               messageBox.Construct(L"", ResourceManager::GetString(L"IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED"),
+                               MSGBOX_STYLE_NONE, 3000);
+               int modalResult;
+               messageBox.ShowAndWait(modalResult);
+       }
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+result
+AllListSelectionPanel::OnRequestSlideShow(void)
+{
+       AppLogDebug("ENTER");
+       result r = E_SUCCESS;
+       IList* pIndexList = GetItemCheckedIndexListN();
+       if (pIndexList == null)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+               return E_FAILURE;
+       }
+
+       Integer* pRealIndex = null;
+       int realIndex = -1;
+       ArrayList* pArrayList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+       pArrayList->Construct();
+       int loopCount = pIndexList->GetCount();
+
+       for (int i = 0; i < loopCount; ++i)
+       {
+               pRealIndex = static_cast<Integer*>(pIndexList->GetAt(i));
+               if (pRealIndex != null)
+               {
+                       realIndex = pRealIndex->ToInt();
+                       pArrayList->Add(new (std::nothrow) String(__pPresentationModel->GetContentFilePath(realIndex)));
+               }
+       }
+
+       HashMap* pDataList = new (std::nothrow) HashMap(SingleObjectDeleter);
+       pDataList->Construct();
+       pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_TYPE), new (std::nothrow) String(APPCONTROL_DATA_SLIDE_SHOW));
+       pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_PATH), (Object*)pArrayList);
+       const String mimeType = APPCONTROL_MIME_IMAGE_ALL;
+
+       r = __pPresentationModel->StartAppControl(APPCONTROL_PROVIDER_ID_IMAGE, APPCONTROL_OPERATION_ID_VIEW, null,
+                       &mimeType, pDataList, null);
+
+       if (r == E_MAX_EXCEEDED)
+       {
+               MessageBox messageBox;
+               messageBox.Construct(L"", ResourceManager::GetString(L"IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED"),
+                               MSGBOX_STYLE_NONE, 3000);
+               int modalResult;
+               messageBox.ShowAndWait(modalResult);
+       }
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+void
+AllListSelectionPanel::ResetSelection(void)
+{
+       AppLogDebug("ENTER");
+       __pPresentationModel->RefreshCurrentAlbumContentInfoList(CONTENT_TYPE_ALL);
+       if (__pSeletedIndexList == null)
+       {
+               __itemCount = 0;
+       }
+       else
+       {
+               __itemCount = __pSeletedIndexList->GetCount();
+       }
+
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       TryReturnVoid(pSceneManager != null, "[%s] fail to get SceneManager.", GetErrorMessage(GetLastResult()));
+
+       String strTmp;
+       String bodyText = ResourceManager::GetString(L"IDS_COM_BODY_SELECTED");
+       strTmp.Format(LENGTH_COUNT_LABEL, L"%ls (%d)", bodyText.GetPointer(), __itemCount);
+       __pFileListEditorForm->SetTitleText(strTmp);
+
+       SetButtonState();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AllListSelectionPanel::SetButtonState(void)
+{
+       AppLogDebug("ENTER");
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       TryReturnVoid(pSceneManager != null, "[%s] fail to get SceneManager.", GetErrorMessage(GetLastResult()));
+
+       if (GetItemCheckedCount() > 0)
+       {
+               AppLogDebug("BUTTONSTATE : Request Enable");
+               __pFileListEditorForm->SetFooterButtonsState(true);
+       }
+       else
+       {
+               AppLogDebug("BUTTONSTATE : Request disable");
+               __pFileListEditorForm->SetFooterButtonsState(false);
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AllListSelectionPanel::OnSelectAllPressed(void)
+{
+       bool needToSelectAll = true;
+       int checkedCount = GetItemCheckedCount();
+       if (checkedCount == __itemCount)
+       {
+               needToSelectAll = false;
+       }
+
+       if (needToSelectAll == true)
+       {
+               for (int i = 0; i < __itemCount; ++i)
+               {
+                       if (__pContentIconListView->IsItemChecked(i) == false)
+                       {
+                               __pContentIconListView->SetItemChecked(i, true);
+                               __pContentIconListView->RefreshList(i, LIST_REFRESH_TYPE_ITEM_MODIFY);
+                       }
+               }
+       }
+       else
+       {
+               for (int i = 0; i < __itemCount; ++i)
+               {
+                       if (__pContentIconListView->IsItemChecked(i) == true)
+                       {
+                               __pContentIconListView->SetItemChecked(i, false);
+                               __pContentIconListView->RefreshList(i, LIST_REFRESH_TYPE_ITEM_MODIFY);
+                       }
+               }
+       }
+
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       TryReturnVoid(pSceneManager != null, "[%s] fail to get SceneManager.", GetErrorMessage(GetLastResult()));
+
+       String tempString;
+       if (needToSelectAll == true)
+       {
+               tempString.Format(LENGTH_COUNT_LABEL, L"%ls (%d)",
+                               ResourceManager::GetString(L"IDS_COM_BODY_SELECTED").GetPointer(), __itemCount);
+       }
+       else
+       {
+               tempString.Format(LENGTH_COUNT_LABEL, L"%ls (%d)",
+                               ResourceManager::GetString(L"IDS_COM_BODY_SELECTED").GetPointer(), 0);
+       }
+       __pFileListEditorForm->SetTitleText(tempString);
+
+       SetButtonState();
+}
+
+result
+AllListSelectionPanel::OnRotateRequested(RotateMode rotateMode)
+{
+       AppLogDebug("ENTER");
+       IList* pIndexList = GetItemCheckedIndexListN();
+       if (pIndexList == null)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+               return E_FAILURE;
+       }
+       else if (pIndexList->GetCount() <= 0)
+       {
+               delete pIndexList;
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return E_FAILURE;
+       }
+
+       delete __pFileUpdateTimer;
+       __pFileUpdateTimer = new (std::nothrow) FileUpdateTimer(pIndexList, __pPresentationModel, this, FILE_ACTION_ROTATE, rotateMode);
+       result r = __pFileUpdateTimer->StartTimer();
+
+       if (IsFailed(r))
+       {
+               delete __pFileUpdateTimer;
+               __pFileUpdateTimer = null;
+               return E_FAILURE;
+       }
+       else
+       {
+               __pPresentationModel->SetUpdateProgressStatus(true);
+       }
+       return E_SUCCESS;
+}
+
+void AllListSelectionPanel::CancelUpdateProgress(void)
+{
+       if (__pFileUpdateTimer!= null && __pFileUpdateTimer->IsStarted())
+       {
+               __pFileUpdateTimer->Cancel();
+               delete __pFileUpdateTimer;
+               __pFileUpdateTimer = null;
+       }
+}
+
+void
+AllListSelectionPanel::OnScanDirStart()
+{
+       AppLogDebug("ENTER");
+       __pFileListEditorForm->SetProgressState(true);
+       AppLogDebug("EXIT");
+}
+void
+AllListSelectionPanel::OnScanDirComplete()
+{
+       AppLogDebug("ENTER");
+       __pFileListEditorForm->SetProgressState(false);
+       AppLogDebug("EXIT");
+}
diff --git a/src/GlBaseForm.cpp b/src/GlBaseForm.cpp
new file mode 100644 (file)
index 0000000..cfe5ba4
--- /dev/null
@@ -0,0 +1,115 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlBaseForm.cpp
+ * @brief              This is the implementation file for GlBaseForm class.
+ */
+
+#include "GlFileListPresentationModel.h"
+#include "GlBaseForm.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Base::Utility;
+
+IList*
+BaseForm::GetMoveFileIndexList(String& moveDir, IList* pMoveIndexList, FileListPresentationModel* pPresentationModel, bool isCopyOp)
+{
+       if (&moveDir == null || moveDir.IsEmpty())
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+               return null;
+       }
+
+       if (pMoveIndexList == null || pMoveIndexList->GetCount() <= 0)
+       {
+               AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
+               return null;
+       }
+
+       IList* pCollisionList = pPresentationModel->GetCollisionIndexListN(*pMoveIndexList, moveDir);
+
+       if (pCollisionList != null)
+       {
+               int loopCount = pCollisionList->GetCount();
+               int collisionCount = 0;
+               for (int i = 0; i < loopCount; ++i)
+               {
+                       String* pCollisionString = const_cast<String*>(static_cast<const String*>(pCollisionList->GetAt(i)));
+                       String tmpString;
+
+                       if (pCollisionString != null)
+                       {
+                               tmpString = (*pCollisionString);
+                       }
+
+                       String delim(MULTI_ITEM_SEPARATOR);
+                       StringTokenizer st(tmpString, delim);
+                       String token;
+
+                       int collisionIndex;
+                       String fileName;
+
+                       if (st.HasMoreTokens() == true)
+                       {
+                               st.GetNextToken(token);
+                               Integer::Parse(token, collisionIndex);
+
+                               if (st.HasMoreTokens() == true)
+                               {
+                                       st.GetNextToken(fileName);
+                               }
+
+                               int innerLoopCount = pMoveIndexList->GetCount();
+                               for (int j = 0; j < innerLoopCount; ++j)
+                               {
+                                       if (collisionIndex == (const_cast<Integer*>(static_cast<const Integer*>
+                                       (pMoveIndexList->GetAt(j))))->ToInt())
+                                       {
+                                               pMoveIndexList->RemoveAt(j, true);
+                                               --j;
+                                               --innerLoopCount;
+                                               ++collisionCount;
+                                       }
+                               }
+                       }
+               }
+
+               pCollisionList->RemoveAll(true);
+               delete pCollisionList;
+
+               if (collisionCount > 0)
+               {
+                       MessageBox messageBox;
+
+                       if ( isCopyOp)
+                       {
+                               messageBox.Construct(L"", L"Unable to copy some files. Same files exists",
+                                                               MSGBOX_STYLE_NONE, 3000);
+                       }
+                       else
+                       {
+                       messageBox.Construct(L"", L"Unable to move some files. Same files exists",
+                                       MSGBOX_STYLE_NONE, 3000);
+                       }
+                       int modalResult;
+                       messageBox.ShowAndWait(modalResult);
+               }
+       }
+       return pMoveIndexList;
+}
diff --git a/src/GlCommonUtil.cpp b/src/GlCommonUtil.cpp
new file mode 100644 (file)
index 0000000..c148472
--- /dev/null
@@ -0,0 +1,66 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlCommonUtil.cpp
+ * @brief              This is the implementation file for CommonUtil class.
+ */
+
+#include <GlTypes.h>
+
+#include "GlCommonUtil.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Runtime;
+using namespace Tizen::Graphics;
+
+static const int W_DEFAULT_THUMBNAIL = 171;
+static const int H_DEFAULT_THUMBNAIL = 127;
+static const int BASE_STANDARD = 1000;
+static const int FORMAT_TIME = 10;
+static const String DATETIME_FORMAT = L"%02d:%02d:%02d";
+
+Bitmap*
+CommonUtil::GetEmptyThumbnailN(void)
+{
+       Rectangle mainRect(0, 0, W_DEFAULT_THUMBNAIL, H_DEFAULT_THUMBNAIL);
+       Bitmap* pBitmap = new (std::nothrow) Bitmap();
+       result r = pBitmap->Construct(mainRect);
+       if (r != E_SUCCESS)
+       {
+               delete pBitmap;
+               return null;
+       }
+       BufferInfo bufferInfo;
+       pBitmap->Lock(bufferInfo, INFINITE);
+       pBitmap->Unlock();
+       Canvas mainCanvas;
+       mainCanvas.Construct(bufferInfo);
+       mainCanvas.FillRectangle(Color::GetColor(COLOR_ID_WHITE), mainCanvas.GetBounds());
+       mainCanvas.DrawBitmap(mainRect, *pBitmap);
+       return pBitmap;
+}
+
+String
+CommonUtil::DurationToTimeString(const long duration)
+{
+       String strTime;
+       DateTime dateTime;
+       dateTime.AddSeconds(duration / BASE_STANDARD);
+       strTime.Format(FORMAT_TIME, DATETIME_FORMAT.GetPointer(), dateTime.GetHour(), dateTime.GetMinute(), dateTime.GetSecond());
+       return strTime;
+}
diff --git a/src/GlContentUpdateEventListener.cpp b/src/GlContentUpdateEventListener.cpp
new file mode 100644 (file)
index 0000000..6025d6f
--- /dev/null
@@ -0,0 +1,284 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlContentUpdateEventListener.cpp
+ * @brief              This is the implementation file for ContentUpdateEventListener class.
+ */
+
+#include <FApp.h>
+#include <FUi.h>
+#include "GlContentUpdateEventListener.h"
+#include "GlFileListPresentationModel.h"
+#include "GlAlbumListPresentationModel.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Base::Utility;
+using namespace Tizen::Content;
+
+ContentUpdateEventListener* ContentUpdateEventListener::__pContentUpdateEventListener = null;
+
+ContentUpdateEventListener::ContentUpdateEventListener(void)
+       : __pContentManager(null)
+       , __isTimerActive(false)
+       , __changeNotificationReceived(false)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT");
+}
+
+ContentUpdateEventListener::~ContentUpdateEventListener(void)
+{
+       AppLogDebug("ENTER");
+
+       if(__pContentManager != null)
+       {
+               __pContentManager->RemoveContentUpdateEventListener(*this);
+               delete __pContentManager;
+       }
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+ContentUpdateEventListener*
+ContentUpdateEventListener::GetInstance(void)
+{
+       AppLogDebug("ENTER");
+
+       if (__pContentUpdateEventListener == null)
+       {
+               CreateInstance();
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return __pContentUpdateEventListener;
+}
+
+void ContentUpdateEventListener::AddContentListener(void)
+{
+       if(__pContentManager != null)
+       {
+               __pContentManager->AddContentUpdateEventListener(*this);
+       }
+}
+
+void ContentUpdateEventListener::RemoveContentListener(void)
+{
+       if(__pContentManager != null)
+       {
+               __pContentManager->RemoveContentUpdateEventListener(*this);
+       }
+}
+
+result
+ContentUpdateEventListener::Construct(void)
+{
+       AppLogDebug("ENTER");
+
+       __pContentManager = new (std::nothrow) ContentManager();
+
+       if (__pContentManager != null)
+       {
+               __pContentManager->Construct();
+               __pContentManager->AddContentUpdateEventListener(*this);
+       }
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+       return E_SUCCESS;
+}
+
+void
+ContentUpdateEventListener::CreateInstance(void)
+{
+       AppLogDebug("ENTER");
+       __pContentUpdateEventListener = new (std::nothrow) ContentUpdateEventListener();
+
+       if (__pContentUpdateEventListener != null)
+       {
+               result r = __pContentUpdateEventListener->Construct();
+
+               if (IsFailed(r) == true)
+               {
+                       delete __pContentUpdateEventListener;
+                       __pContentUpdateEventListener = null;
+                       AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+                       return;
+               }
+       }
+
+       std::atexit(DestroyInstance);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+ContentUpdateEventListener::DestroyInstance(void)
+{
+       AppLogDebug("ENTER");
+
+       if (__pContentUpdateEventListener != null)
+       {
+               delete __pContentUpdateEventListener;
+               __pContentUpdateEventListener = null;
+       }
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+bool
+ContentUpdateEventListener::GetChangeNotificationStatus()
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT");
+       return __changeNotificationReceived;
+}
+
+void
+ContentUpdateEventListener::ResumeOperation()
+{
+       AppLogDebug("ENTER");
+       AlbumListPresentationModel::GetInstance()->OnContentDeleted();
+       FileListPresentationModel::GetInstance()->OnContentDeleted();
+       __changeNotificationReceived = false;
+       AppLogDebug("EXIT");
+}
+
+String
+ContentUpdateEventListener::GetDirecotyNameFromFullPath(const String& fullPath)const
+{
+       AppLogDebug("ENTER");
+       if (fullPath == null)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return null;
+       }
+       String delim(DIRECTORY_SEPARATOR);
+       StringTokenizer st(fullPath,delim);
+       String token;
+       String tokenPrev;
+       while (st.HasMoreTokens())
+       {
+               tokenPrev = token;
+               st.GetNextToken(token);
+       }
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return tokenPrev;
+}
+
+void
+ContentUpdateEventListener::OnContentFileCreated(Tizen::Content::ContentId contentId, Tizen::Content::ContentType contentType, result r)
+{
+       AppLogDebug("ENTER");
+       if ( !__isTimerActive && ( contentType == CONTENT_TYPE_IMAGE || contentType == CONTENT_TYPE_VIDEO) )
+       {
+               Tizen::Content::ContentInfo* cntInfo = __pContentManager->GetContentInfoN(contentId);
+
+               if ( cntInfo != NULL)
+               {
+                       String path = cntInfo->GetContentPath();
+                       String dirName = GetDirecotyNameFromFullPath(path);
+
+                       FileListPresentationModel* pFileListPM = FileListPresentationModel::GetInstance();
+                       pFileListPM->AddDirectoryIfNew(dirName);
+                       AlbumListPresentationModel::GetInstance()->OnContentCreated();
+                       pFileListPM->OnContentCreated();
+               }
+       }
+
+       AppLogDebug("EXIT");
+}
+
+void
+ContentUpdateEventListener::OnContentFileUpdated(Tizen::Content::ContentId contentId, Tizen::Content::ContentType contentType, result r)
+{
+       AppLogDebug("ENTER");
+       
+       if ( !__isTimerActive && ( contentType == CONTENT_TYPE_IMAGE || contentType == CONTENT_TYPE_VIDEO) )
+       {
+               AlbumListPresentationModel::GetInstance()->OnContentUpdated();
+               FileListPresentationModel::GetInstance()->OnContentUpdated();
+       }
+       else
+       {
+               FileListPresentationModel::GetInstance()->OnContentUpdated(contentId);
+       }
+       AppLogDebug("EXIT");
+}
+
+void
+ContentUpdateEventListener::OnContentFileDeleted(Tizen::Content::ContentId contentId, Tizen::Content::ContentType contentType, result r)
+{
+       AppLogDebug("ENTER");
+
+       if ( !__isTimerActive && ( contentType == CONTENT_TYPE_IMAGE || contentType == CONTENT_TYPE_VIDEO) )
+       {
+               Tizen::App::UiApp* appPtr = Tizen::App::UiApp::GetInstance();
+               if (appPtr->GetAppUiState() == Tizen::App::APP_UI_STATE_FOREGROUND)
+               {
+                       AlbumListPresentationModel::GetInstance()->OnContentDeleted();
+                       FileListPresentationModel::GetInstance()->OnContentDeleted();
+               }
+               else
+               {
+                       __changeNotificationReceived = true;
+               }
+
+       }
+       AppLogDebug("EXIT");
+}
+
+void
+ContentUpdateEventListener::OnContentDirectoryScanCompleted(const Tizen::Base::String& directoryPath, result r)
+{
+       AppLogDebug("ENTER");
+
+       if ( __isTimerActive )
+       {
+               AlbumListPresentationModel::GetInstance()->OnContentScanCompleted( directoryPath );
+               return;
+       }
+       Tizen::App::UiApp* appPtr = Tizen::App::UiApp::GetInstance();
+       if (appPtr->GetAppUiState() == Tizen::App::APP_UI_STATE_FOREGROUND)
+       {
+               AlbumListPresentationModel::GetInstance()->OnContentDeleted();
+               FileListPresentationModel::GetInstance()->OnContentDeleted();
+               AlbumListPresentationModel::GetInstance()->OnContentScanCompleted(directoryPath);
+       }
+       else
+       {
+               bool renameHandled = AlbumListPresentationModel::GetInstance()->OnContentScanCompleted(directoryPath);
+               if (!renameHandled)
+               {
+                       __changeNotificationReceived = true;
+               }
+       }\r
+
+       AppLogDebug("EXIT");
+}
+void
+ContentUpdateEventListener::SetTimerActive(void)
+{
+       __isTimerActive = true;
+}
+
+void
+ContentUpdateEventListener::ReSetTimerActive(void)
+{
+       __isTimerActive = false;
+}
diff --git a/src/GlDropDownCustomItem.cpp b/src/GlDropDownCustomItem.cpp
new file mode 100644 (file)
index 0000000..37e143d
--- /dev/null
@@ -0,0 +1,131 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ *@file: DropDownCustomItem
+ *@brief: To create Drop Down custom item
+ *
+ */
+
+#include <FApp.h>
+#include "GlDropDownCustomItem.h"
+#include "GlTypes.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui::Controls;
+
+const int DropDownCustomItem::IDA_FORMAT_BITMAP = 101;
+const int DropDownCustomItem::IDA_FORMAT_MAIN_STRING = 102;
+const int DropDownCustomItem::IDA_FORMAT_SUB_STRING = 103;
+const int DropDownCustomItem::IDA_FORMAT_DROPPER = 104;
+
+DropDownCustomItem::DropDownCustomItem(void)
+       : __currentState(DROP_DOWN_ITEM_STATE_CLOSED)
+       , __height(0)
+       , __width(0)
+{
+}
+
+DropDownCustomItem::~DropDownCustomItem(void)
+{
+}
+
+result
+DropDownCustomItem::Construct(int width, int height)
+{
+       __width = width;
+       __height = height + 28;
+       Dimension dim(__width, __height);
+       result r = CustomItem::Construct(dim, LIST_ANNEX_STYLE_NORMAL);
+       return r;
+}
+
+void
+DropDownCustomItem::SetMainText(const Tizen::Base::String& text)
+{
+       __mainText = text;
+}
+
+String
+DropDownCustomItem::GetMainText(void) const
+{
+       return __mainText;
+}
+
+void
+DropDownCustomItem::SetSubText(const Tizen::Base::String& text)
+{
+       __subText = text;
+}
+
+String
+DropDownCustomItem::GetSubText(void) const
+{
+       return __subText;
+}
+
+result
+DropDownCustomItem::Make(int fontsize, int itemHeight)
+{
+       AppLogDebug("DropDownCustomItem::Make entered");
+
+       int xMargin = 26;
+       int yMargin = 22;
+       int subTextHeight = 42;
+       int mainTextHeight = itemHeight - yMargin - subTextHeight + 15;
+
+       Tizen::Graphics::Bitmap* pDropperBitmapNormal = null;
+       Tizen::Graphics::Bitmap* pDropperBitmapPressed = null;
+
+       AddElement(Rectangle(xMargin, yMargin, __width - 126, mainTextHeight), IDA_FORMAT_MAIN_STRING,__mainText, fontsize,
+                       CUSTOM_COLOR_TRANSPARENT, CUSTOM_COLOR_TRANSPARENT, CUSTOM_COLOR_TRANSPARENT);
+       AddElement(Rectangle(xMargin, yMargin + mainTextHeight, __width - 126, subTextHeight), IDA_FORMAT_SUB_STRING,__subText, 34, CUSTOM_COLOR_GREY , CUSTOM_COLOR_LISTVIEW_TEXT, CUSTOM_COLOR_LISTVIEW_TEXT);
+
+       AppResource* pAppResource = UiApp::GetInstance()->GetAppResource();
+       if (pAppResource)
+       {
+               if (GetCurState() == DROP_DOWN_ITEM_STATE_CLOSED)
+               {
+                       pDropperBitmapNormal = pAppResource->GetBitmapN(IDB_LIST_EXPAND_CLOSED, BITMAP_PIXEL_FORMAT_ARGB8888);
+                       pDropperBitmapPressed = pAppResource->GetBitmapN(IDB_LIST_EXPAND_CLOSED_PRESS, BITMAP_PIXEL_FORMAT_ARGB8888);
+               }
+               else
+               {
+                       pDropperBitmapNormal = pAppResource->GetBitmapN(IDB_LIST_EXPAND_OPENED, BITMAP_PIXEL_FORMAT_ARGB8888);
+                       pDropperBitmapPressed = pAppResource->GetBitmapN(IDB_LIST_EXPAND_OPENED_PRESS, BITMAP_PIXEL_FORMAT_ARGB8888);
+               }
+
+               AddElement(Rectangle(__width - 85, (__height - 64) / 2, 64, 64), IDA_FORMAT_DROPPER, *pDropperBitmapNormal, pDropperBitmapPressed, pDropperBitmapNormal);
+               delete pDropperBitmapNormal;
+        delete pDropperBitmapPressed;
+       }
+
+       return E_SUCCESS;
+}
+
+DropDownItemState
+DropDownCustomItem::GetCurState(void) const
+{
+       return __currentState;
+}
+
+void
+DropDownCustomItem::SetCurState(const DropDownItemState state)
+{
+       __currentState = state;
+}
diff --git a/src/GlFileListEditorForm.cpp b/src/GlFileListEditorForm.cpp
new file mode 100644 (file)
index 0000000..30f36f9
--- /dev/null
@@ -0,0 +1,1430 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlFileListEditorForm.cpp
+ * @brief              This is the implementation file for FileListEditorForm class.
+ */
+
+#include "GlAllListEditorPanel.h"
+#include "GlAllListSelectionPanel.h"
+#include "GlFileListEditorForm.h"
+#include "GlFileListPresentationModel.h"
+#include "GlGalleryApp.h"
+#include "GlImageListEditorPanel.h"
+#include "GlProgressAnimation.h"
+#include "GlResourceManager.h"
+#include "GlSlideSettingListener.h"
+#include "GlSlideShowPopUp.h"
+#include "GlTypes.h"
+#include "GlVideoListEditorPanel.h"
+#include "GlFileMoveTimer.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Content;
+using namespace Tizen::Graphics;
+using namespace Tizen::System;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+using namespace Tizen::Base::Utility;
+
+static const int GAP_W_POPUP_ITEM = 10;
+static const int W_DELETE_POPUP = 688;
+static const int H_DELETE_POPUP = 230;
+static const int H_DELETE_LABEL = 80;
+static const int Y_DELETE_BUTTON = 132;
+static const int H_DELETE_BUTTON = 74;
+static const int W_DELETE_BUTTON = 318;
+static const int H_TOAST_LABEL = 48;
+static const int Y_DELETE_LABEL = 32;
+
+static const unsigned int COLOR_DELETE_BUTTON_NORMAL = Color32<208, 82, 82>::Value;
+static const unsigned int COLOR_DELETE_BUTTON_PRESSED = Color32<194, 71, 71>::Value;
+static const unsigned int COLOR_DELETE_BUTTON_TEXT = Color32<248, 246, 239>::Value;
+
+static const String RESERVED_MEDIA_PATH = Environment::GetMediaPath();
+
+FileListEditorForm::FileListEditorForm(void)
+       : __pShareContextMenu(null)
+       , __pOptionMenu(null)
+       , __pDeletePopup(null)
+       , __morePosition(Point(0, 0))
+       , __pContentDirectoryList(null)
+       , __pContentDirectoryNameList(null)
+       , __pPopUp(null)
+       , __pFileMove(null)
+       , __isCopyOperation(false)
+       , __pPresentationModel(null)
+       , __isScanProgress(false)
+{
+       AppLogDebug("ENTER");
+       _overlayMsg = false;
+       _pProgressAnim = null;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+FileListEditorForm::~FileListEditorForm(void)
+{
+       AppLogDebug("ENTER");
+       if (__pContentDirectoryList != null)
+       {
+               __pContentDirectoryList->RemoveAll(true);
+               delete __pContentDirectoryList;
+               __pContentDirectoryList = null;
+       }
+
+       if (__pPopUp != null)
+       {
+               delete __pPopUp;
+               __pPopUp = null;
+       }
+
+       if (__pContentDirectoryNameList != null)
+       {
+               __pContentDirectoryNameList->RemoveAll(true);
+               delete __pContentDirectoryNameList;
+               __pContentDirectoryNameList = null;
+       }
+       delete __pFileMove;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+result
+FileListEditorForm::Initialize(void)
+{
+       AppLogDebug("ENTER");
+       result r = Construct(FORM_STYLE_NORMAL | FORM_STYLE_HEADER | FORM_STYLE_FOOTER | FORM_STYLE_LANDSCAPE_INDICATOR_AUTO_HIDE | FORM_STYLE_PORTRAIT_INDICATOR_AUTO_HIDE);
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+void
+FileListEditorForm::ShowAnimation()
+{
+       AppLogDebug("ENTER");
+       Rectangle clientRect= GetClientAreaBounds();
+       Rectangle rect(0, 0, clientRect.width, clientRect.height);
+       _pProgressAnim = new (std::nothrow) ProgressAnimation;
+       _pProgressAnim->Construct(rect);
+       AddControl(_pProgressAnim);
+       _pProgressAnim->SetShowState(true);
+       GetFooter()->SetEnabled(false);
+       _pProgressAnim->AnimationStart();
+       _pProgressAnim->Draw();
+       _overlayMsg = true;
+       AppLogDebug("EXIT");
+}
+
+void
+FileListEditorForm::StopAnimation(void)
+{
+       AppLogDebug("ENTER");
+       if (_pProgressAnim)
+       {
+               _pProgressAnim->AnimationStop();
+               _pProgressAnim->SetShowState(false);
+               RemoveControl(_pProgressAnim);
+               GetFooter()->SetEnabled(true);
+               _pProgressAnim = null;
+               _overlayMsg = false;
+       }
+       AppLogDebug("EXIT");
+}
+
+result
+FileListEditorForm::OnInitializing(void)
+{
+       AppLogDebug("ENTER");
+       Header* pHeader = GetHeader();
+       TryReturn(pHeader != null, E_FAILURE, "[%s] fail to get the header.", GetErrorMessage(GetLastResult()));
+
+       SetOrientation(ORIENTATION_AUTOMATIC);
+       AddOrientationEventListener(*this);
+
+       __pPresentationModel = FileListPresentationModel::GetInstance();
+       __pPresentationModel->ClearThumbnailRequests();
+
+       pHeader->SetStyle(HEADER_STYLE_TITLE);
+       pHeader->SetTitleText(ResourceManager::GetString(L"IDS_COM_BODY_EDIT"));
+
+       if ((__pPresentationModel->GetAppControlMode() == APPCONTROL_MODE_PICK
+               && __pPresentationModel->GetAppControlSelectionMode() == APPCONTROL_SELECTION_MODE_SINGLE) == false)
+       {
+               Bitmap* pNormalBitmap = ResourceManager::GetBitmapN(IDB_ICON_SELECT_ALL);
+               Bitmap* pPressBitmap = ResourceManager::GetBitmapN(IDB_ICON_SELECT_ALL_PRESS);
+               ButtonItem selectAll;
+               selectAll.Construct(BUTTON_ITEM_STYLE_ICON, IDA_FILE_LIST_SELECT_ALL);
+               selectAll.SetIcon(BUTTON_ITEM_STATUS_NORMAL, pNormalBitmap);
+               selectAll.SetIcon(BUTTON_ITEM_STATUS_PRESSED, pPressBitmap);
+               pHeader->SetButton(BUTTON_POSITION_LEFT, selectAll);
+               delete pNormalBitmap;
+               delete pPressBitmap;
+       }
+
+       pHeader->AddActionEventListener(*this);
+
+       InitializeFooter();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+result
+FileListEditorForm::InitializeFooter(void)
+{
+       AppLogDebug("ENTER");
+       Footer* pFooter = GetFooter();
+       TryReturn(pFooter != null, E_FAILURE, "[%s] fail to get the footer.", GetErrorMessage(GetLastResult()));
+       pFooter->RemoveAllItems();
+
+       result r = E_SUCCESS;
+
+       if (__pPresentationModel->GetAppControlMode() == APPCONTROL_MODE_PICK)
+       {
+               if (__pPresentationModel->GetAppControlSelectionMode() == APPCONTROL_SELECTION_MODE_MULTIPLE)
+               {
+                       pFooter->SetStyle(FOOTER_STYLE_BUTTON_TEXT);
+
+                       FooterItem footerConfirm;
+                       footerConfirm.Construct(IDA_FOOTER_CONFIRM);
+                       footerConfirm.SetText(ResourceManager::GetString(L"IDS_COM_SK_DONE"));
+                       pFooter->AddItem(footerConfirm);
+                       pFooter->SetItemEnabled(0, false);
+                       pFooter->SetShowState(true);
+                       pFooter->Invalidate(true);
+               }
+               else
+               {
+                       pFooter->SetStyle(FOOTER_STYLE_SEGMENTED_TEXT);
+                       pFooter->SetShowState(false);
+                       pFooter->Invalidate(true);
+               }
+
+               SetFormBackEventListener(this);
+
+       }
+       else
+       {
+               pFooter->SetStyle(FOOTER_STYLE_BUTTON_ICON_TEXT);
+               SetFormMenuEventListener(this);
+
+               FooterItem footerShare;
+               r = footerShare.Construct(IDA_FOOTER_SHARE);
+               TryReturn(r == E_SUCCESS, r, "[%s] Unable to construct footer item", GetErrorMessage(r));
+               Bitmap* pBitmapShare = ResourceManager::GetBitmapN(IDB_CONTROLBAR_SHARE);
+               Bitmap* pBitmapShareDim = ResourceManager::GetBitmapN(IDB_CONTROLBAR_SHARE_DIM);
+
+               if (pBitmapShare != null && pBitmapShareDim != null)
+               {
+                       footerShare.SetIcon(FOOTER_ITEM_STATUS_NORMAL, pBitmapShare);
+                       footerShare.SetIcon(FOOTER_ITEM_STATUS_DISABLED, pBitmapShareDim);
+               }
+
+               r = pFooter->AddItem(footerShare);
+               delete pBitmapShare;
+               delete pBitmapShareDim;
+               TryReturn(r == E_SUCCESS, r, "[%s] Unable to add item", GetErrorMessage(r));
+
+               FooterItem footerDelete;
+               r = footerDelete.Construct(IDA_FOOTER_DELETE);
+               TryReturn(r == E_SUCCESS, r, "[%s] Unable to construct footer item", GetErrorMessage(r));
+               Bitmap* pBitmapDelete = ResourceManager::GetBitmapN(IDB_CONTROLBAR_DELETE);
+               Bitmap* pBitmapDeleteDim = ResourceManager::GetBitmapN(IDB_CONTROLBAR_DELETE_DIM);
+
+               if (pBitmapDelete != null && pBitmapDeleteDim != null)
+               {
+                       footerDelete.SetIcon(FOOTER_ITEM_STATUS_NORMAL, pBitmapDelete);
+                       footerDelete.SetIcon(FOOTER_ITEM_STATUS_DISABLED, pBitmapDeleteDim);
+               }
+
+               r = pFooter->AddItem(footerDelete);
+               delete pBitmapDelete;
+               delete pBitmapDeleteDim;
+               TryReturn(r == E_SUCCESS, r, "[%s] Unable to add item", GetErrorMessage(r));
+
+               SetFormBackEventListener(this);
+
+               SceneManager* pSceneManager = SceneManager::GetInstance();
+               int checkedCount = 0;
+
+               if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_EDITOR)
+               {
+                       AllListEditorPanel* pEditorPanel = dynamic_cast<AllListEditorPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+                       if (pEditorPanel != null)
+                       {
+                               checkedCount = pEditorPanel->GetItemCheckedCount();
+                       }
+               }
+               else if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_SELECTION)
+               {
+                       AllListSelectionPanel* pSelectionPanel = dynamic_cast<AllListSelectionPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+                       if (pSelectionPanel != null)
+                       {
+                               checkedCount = pSelectionPanel->GetItemCheckedCount();
+                       }
+               }
+
+               AppLogDebug("GetItemCheckedCount(%d)", checkedCount);
+
+               if (__pOptionMenu != null)
+               {
+                       delete __pOptionMenu;
+                       __pOptionMenu = null;
+               }
+
+               __pOptionMenu = new (std::nothrow) OptionMenu();
+               __pOptionMenu->Construct();
+               __pOptionMenu->AddActionEventListener(*this);
+
+               if (__pContentDirectoryNameList != null)
+               {
+                       __pContentDirectoryNameList->RemoveAll(true);
+                       delete __pContentDirectoryNameList;
+                       __pContentDirectoryNameList = null;
+               }
+
+               SetUpPopup();
+       }
+
+       pFooter->AddActionEventListener(*this);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+String
+FileListEditorForm::GetDirecotyNameFromFullPath(const String& fullPath)const
+{
+       AppLogDebug("ENTER");
+       if (fullPath == null)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return null;
+       }
+       String delim(DIRECTORY_SEPARATOR);
+       StringTokenizer st(fullPath,delim);
+       String token;
+       while (st.HasMoreTokens())
+       {
+               st.GetNextToken(token);
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return token;
+}
+
+result
+FileListEditorForm::OnTerminating(void)
+{
+       AppLogDebug("ENTER");
+       __pPresentationModel->RemoveContentEventListener(this);
+
+       if (__pOptionMenu != null)
+       {
+               __pOptionMenu->RemoveActionEventListener(*this);
+               delete __pOptionMenu;
+               __pOptionMenu = null;
+       }
+
+       if (__pShareContextMenu != null)
+       {
+               __pShareContextMenu->RemoveActionEventListener(*this);
+               delete __pShareContextMenu;
+               __pShareContextMenu = null;
+       }
+
+       if (__pDeletePopup != null)
+       {
+               delete __pDeletePopup;
+               __pDeletePopup = null;
+       }
+       _overlayMsg = false;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+void
+FileListEditorForm::OnActionPerformed(const Control& source, int actionId)
+{
+       AppLogDebug("ENTER(actionId=%d)", actionId);
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       TryReturnVoid(pSceneManager != null, "[%s] fail to get SceneManager.", GetErrorMessage(GetLastResult()));
+
+       switch (actionId)
+       {
+       case IDA_FILE_LIST_SELECT_ALL:
+               SelectAllPressed();
+       break;
+
+       case IDA_FOOTER_SHARE:
+       {
+               if (__pShareContextMenu != NULL)
+               {
+                       delete __pShareContextMenu;
+                       __pShareContextMenu = null;
+               }
+
+               Bitmap* pBitmapEmailContextItem = null;
+               Bitmap* pBitmapMessageContextItem = null;
+               pBitmapEmailContextItem = ResourceManager::GetBitmapN(IDB_IMAGE_CONTEXT_EMAIL_ICON);
+               pBitmapMessageContextItem = ResourceManager::GetBitmapN(IDB_IMAGE_CONTEXT_MESSAGE_ICON);
+
+               __pShareContextMenu = new (std::nothrow) ContextMenu();
+               __pShareContextMenu->Construct(Point(GetClientAreaBounds().width/3 + 15, GetClientAreaBounds().height),
+                               CONTEXT_MENU_STYLE_LIST, CONTEXT_MENU_ANCHOR_DIRECTION_UPWARD);
+
+               if ( pBitmapMessageContextItem != null)
+               {
+                       __pShareContextMenu->AddItem(ResourceManager::GetString(L"IDS_COM_BODY_MESSAGE"),
+                               IDA_CONTEXT_MENU_SHARE_MESSAGE, *pBitmapMessageContextItem, null, null);
+                       delete pBitmapMessageContextItem;
+               }
+
+               if ( pBitmapEmailContextItem != null)
+               {
+                       __pShareContextMenu->AddItem(ResourceManager::GetString(L"IDS_COM_BODY_EMAIL"),
+                               IDA_CONTEXT_MENU_SHARE_EMAIL, *pBitmapEmailContextItem, null, null);
+                       delete pBitmapEmailContextItem;
+               }
+               __pShareContextMenu->SetFocusable(true);
+               __pShareContextMenu->AddActionEventListener(*this);
+
+
+               Rectangle rect = source.GetBounds();
+
+               if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_SELECTION)
+               {
+                       __pShareContextMenu->SetAnchorPosition(Point(rect.width / 8 * 3, rect.y));
+               }
+               else
+               {
+                       __pShareContextMenu->SetAnchorPosition(Point(rect.width / 8 * 3, rect.y - H_TOAST_LABEL));
+               }
+
+               __pShareContextMenu->SetShowState(true);
+               __pShareContextMenu->Show();
+
+       }
+       break;
+
+       case IDA_FOOTER_DELETE:
+       {
+               if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_EDITOR)
+               {
+                       AllListEditorPanel* pEditorPanel = dynamic_cast<AllListEditorPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+                       if (pEditorPanel != null && pEditorPanel->GetItemCheckedCount() > 0)
+                       {
+                               __pDeletePopup->SetShowState(true);
+                               __pDeletePopup->Show();
+                               _overlayMsg = true;
+                       }
+               }
+               else if (pSceneManager->GetCurrentSceneId() == IDSCN_IMAGE_LIST_EDITOR)
+               {
+                       ImageListEditorPanel* pEditorPanel = dynamic_cast<ImageListEditorPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+                       if (pEditorPanel != null && pEditorPanel->GetItemCheckedCount() > 0)
+                       {
+                               __pDeletePopup->SetShowState(true);
+                               __pDeletePopup->Show();
+                               _overlayMsg = true;
+                       }
+               }
+               else if (pSceneManager->GetCurrentSceneId() == IDSCN_VIDEO_LIST_EDITOR)
+               {
+                       VideoListEditorPanel* pEditorPanel = dynamic_cast<VideoListEditorPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+                       if (pEditorPanel != null && pEditorPanel->GetItemCheckedCount() > 0)
+                       {
+                               __pDeletePopup->SetShowState(true);
+                               __pDeletePopup->Show();
+                               _overlayMsg = true;
+                       }
+               }
+               if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_SELECTION)
+               {
+                       AllListSelectionPanel* pSelectionPanel = dynamic_cast<AllListSelectionPanel*>
+                       (pSceneManager->GetCurrentScene()->GetPanel());
+                       if (pSelectionPanel != null && pSelectionPanel->GetItemCheckedCount() > 0)
+                       {
+                               __pDeletePopup->SetShowState(true);
+                               __pDeletePopup->Show();
+                               _overlayMsg = true;
+                       }
+               }
+       }
+       break;
+
+       case IDA_CONTEXT_MENU_MORE_EDIT:
+       {
+               break;
+       }
+
+       case IDA_CONTEXT_MENU_MORE_ADD_TAG:
+       {
+               break;
+       }
+
+       case IDA_CONTEXT_MENU_MORE_COPY:
+
+       case IDA_CONTEXT_MENU_MORE_MOVE:
+       {
+               if (actionId == IDA_CONTEXT_MENU_MORE_MOVE)
+               {
+                       __isCopyOperation = false;
+               }
+               else if (actionId == IDA_CONTEXT_MENU_MORE_COPY)
+               {
+                       __isCopyOperation = true;
+               }
+
+               RefreshFolderList();
+
+               __pOptionMenu->SetShowState(true);
+               __pOptionMenu->Show();
+
+
+       }
+       break;
+
+       case IDA_CONTEXT_MENU_MORE_SLIDE_SHOW:
+       {
+               if (__pPopUp != NULL)
+               {
+                       delete __pPopUp;
+                       __pPopUp = NULL;
+               }
+               __pPopUp = new (std::nothrow) SlideShowPopUp();
+
+               if (__pPopUp != null)
+               {
+                       __pPopUp->Initialize();
+                       __pPopUp->SetEventListner(this);
+                       __pPopUp->SetShowState(true);
+                       __pPopUp->Show();
+               }
+       }
+       break;
+
+       case IDA_CONTEXT_MENU_SHARE_MESSAGE:
+       {
+               if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_EDITOR)
+               {
+                       AllListEditorPanel* pEditorPanel = dynamic_cast<AllListEditorPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+                       if (pEditorPanel != null)
+                       {
+                               pEditorPanel->OnRequestMessage();
+                       }
+               }
+               else if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_SELECTION)
+               {
+                       AllListSelectionPanel* pSelectionPanel = dynamic_cast<AllListSelectionPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+                       if (pSelectionPanel != null)
+                       {
+                               pSelectionPanel->OnRequestMessage();
+                       }
+               }
+       }
+       break;
+
+       case IDA_CONTEXT_MENU_SHARE_EMAIL:
+       {
+               if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_EDITOR)
+               {
+                       AllListEditorPanel* pEditorPanel = dynamic_cast<AllListEditorPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+                       if (pEditorPanel != null)
+                       {
+                               pEditorPanel->OnRequestEmail();
+                       }
+               }
+               else if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_SELECTION)
+               {
+                       AllListSelectionPanel* pSelectionPanel = dynamic_cast<AllListSelectionPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+                       if (pSelectionPanel != null)
+                       {
+                               pSelectionPanel->OnRequestEmail();
+                       }
+               }
+       }
+       break;
+
+       case IDA_CONTEXTMENU_EDITOR_MOVE_CREATE_ALBUM:
+       {
+               if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_EDITOR)
+               {
+                       AllListEditorPanel* pListEditorPanel = dynamic_cast<AllListEditorPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+                       if (pListEditorPanel)
+                       {
+                               IList* pList = pListEditorPanel->GetItemCheckedIndexListN();
+                               pList->InsertAt(new (std::nothrow) Integer(ALBUM_CREATE), ALBUM_FIRST_ELEMENT);
+                               if (__isCopyOperation)
+                               {
+                                       pList->InsertAt(new (std::nothrow) Integer(FILE_ACTION_COPY), ALBUM_SECOND_ELEMENT);
+                               }
+                               else
+                               {
+                                       pList->InsertAt(new (std::nothrow) Integer(FILE_ACTION_MOVE), ALBUM_SECOND_ELEMENT);
+                               }
+                               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALBUM_NAME_EDITOR), pList);
+                       }
+
+               }
+               else
+               {
+                       if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_SELECTION)
+                       {
+                               AllListSelectionPanel* pSelectionPanel = dynamic_cast<AllListSelectionPanel*>
+                               (pSceneManager->GetCurrentScene()->GetPanel());
+
+                               if (pSelectionPanel != null)
+                               {
+                                       IList* pList = pSelectionPanel->GetItemCheckedIndexListN();
+                                       pList->InsertAt(new (std::nothrow) Integer(ALBUM_CREATE), ALBUM_FIRST_ELEMENT);
+                                       if (__isCopyOperation)
+                                       {
+                                               pList->InsertAt(new (std::nothrow) Integer(FILE_ACTION_COPY), ALBUM_SECOND_ELEMENT);
+                                       }
+                                       else
+                                       {
+                                               pList->InsertAt(new (std::nothrow) Integer(FILE_ACTION_MOVE), ALBUM_SECOND_ELEMENT);
+                                       }
+                                       pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALBUM_NAME_EDITOR), pList);
+                               }
+                       }
+               }
+       }
+       break;
+
+       case IDA_DELETE_POPUP_DEL:
+       {
+               _overlayMsg = false;
+               __pDeletePopup->SetShowState(false);
+               __pDeletePopup->Invalidate(true);
+
+               if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_EDITOR)
+               {
+                       AllListEditorPanel* pEditorPanel = dynamic_cast<AllListEditorPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+                       if (pEditorPanel != null)
+                       {
+                               result r = pEditorPanel->OnRequestDelete();
+                               if (IsFailed(r))
+                               {
+                                       AppLogDebug("OnRequestDelete failed with %s", GetErrorMessage(r));
+                               }
+                       }
+               }
+               else if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_SELECTION)
+               {
+                       AllListSelectionPanel* pSelectionPanel = dynamic_cast<AllListSelectionPanel*>
+                       (pSceneManager->GetCurrentScene()->GetPanel());
+
+                       if (pSelectionPanel != null)
+                       {
+                               result r = pSelectionPanel->OnRequestDelete();
+                               if (IsFailed(r))
+                               {
+                                       AppLogDebug("OnRequestDelete failed with %s", GetErrorMessage(r));
+                               }
+                       }
+               }
+       }
+       break;
+
+       case IDA_DELETE_POPUP_CANCEL:
+       {
+               _overlayMsg = false;
+               __pDeletePopup->SetShowState(false);
+               __pDeletePopup->Invalidate(true);
+       }
+       break;
+
+       case IDA_CONTEXT_MENU_ROTATE_LEFT:
+       {
+               if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_EDITOR)
+               {
+                       AllListEditorPanel* pEditorPanel = dynamic_cast<AllListEditorPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+                       if (pEditorPanel != null)
+                       {
+                               RotateMode rotateMode = ROTATE_MODE_LEFT;
+                               pEditorPanel->OnRequestRotate(rotateMode);
+                       }
+               }
+               else if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_SELECTION)
+               {
+                       AllListSelectionPanel* pSelectionPanel = dynamic_cast<AllListSelectionPanel*>
+                       (pSceneManager->GetCurrentScene()->GetPanel());
+
+                       if (pSelectionPanel != null)
+                       {
+                               RotateMode rotateMode = ROTATE_MODE_LEFT;
+                               pSelectionPanel->OnRotateRequested(rotateMode);
+                       }
+               }
+       }
+       break;
+
+       case IDA_CONTEXT_MENU_ROTATE_RIGHT:
+       {
+               if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_EDITOR)
+               {
+                       AllListEditorPanel* pEditorPanel = dynamic_cast<AllListEditorPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+                       if (pEditorPanel != null)
+                       {
+                               RotateMode rotateMode = ROTATE_MODE_RIGHT;
+                               pEditorPanel->OnRequestRotate(rotateMode);
+                       }
+               }
+               else if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_SELECTION)
+               {
+
+                       AllListSelectionPanel* pSelectionPanel = dynamic_cast<AllListSelectionPanel*>
+                       (pSceneManager->GetCurrentScene()->GetPanel());
+
+                       if (pSelectionPanel != null)
+                       {
+                               RotateMode rotateMode = ROTATE_MODE_RIGHT;
+                               pSelectionPanel->OnRotateRequested(rotateMode);
+                       }
+               }
+       }
+       break;
+
+       case IDA_FOOTER_CONFIRM:
+       {
+               if (pSceneManager->GetCurrentSceneId() == IDSCN_IMAGE_LIST_EDITOR)
+               {
+                       ImageListEditorPanel* pEditorPanel = dynamic_cast<ImageListEditorPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+                       if (pEditorPanel != null)
+                       {
+                               pEditorPanel->OnRequestAppExitWithMultipleSelectionAppControlResult();
+                       }
+               }
+               else if (pSceneManager->GetCurrentSceneId() == IDSCN_VIDEO_LIST_EDITOR)
+               {
+                       VideoListEditorPanel* pEditorPanel = dynamic_cast<VideoListEditorPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+                       if (pEditorPanel != null)
+                       {
+                               pEditorPanel->OnRequestAppExitWithMultipleSelectionAppControlResult();
+                       }
+               }
+       }
+       break;
+
+       default:
+       {
+               if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_EDITOR)
+               {
+                       if ((IDA_CONTEXTMENU_EDITOR_MOVE_ALBUM_ARRAY_START <= actionId) &&
+                                       (actionId <= IDA_CONTEXTMENU_EDITOR_MOVE_CREATE_ALBUM + 1000))
+                       {
+                               if (__pContentDirectoryList == null)
+                               {
+                                       return;
+                               }
+                               if (__pContentDirectoryList->GetCount() > actionId - IDA_CONTEXTMENU_EDITOR_MOVE_ALBUM_ARRAY_START)
+                               {
+                                       String* pDirectory = static_cast<String*>
+                                       (__pContentDirectoryList->GetAt(actionId - IDA_CONTEXTMENU_EDITOR_MOVE_ALBUM_ARRAY_START));
+
+                                       AllListEditorPanel* pEditorPanel = dynamic_cast<AllListEditorPanel*>
+                                       (pSceneManager->GetCurrentScene()->GetPanel());
+
+                                       if (pEditorPanel != null)
+                                       {
+                                               delete __pFileMove;
+                                               IList* pItemIndexList = pEditorPanel->GetItemCheckedIndexListN();
+                                               __pFileMove = new (std::nothrow) FileMoveTimer(*pDirectory, pItemIndexList, __pPresentationModel, this);
+                                               if (__isCopyOperation)
+                                               {
+                                                       __pFileMove->SetCopy();
+                                               }
+
+                                               result r = __pFileMove->StartTimer();
+                                               if (IsFailed(r))
+                                               {
+                                                       delete __pFileMove;
+                                                       __pFileMove = null;
+                                                       __isCopyOperation = false;
+                                               }
+                                               else
+                                               {
+                                                       _overlayMsg = true;
+                                               }
+                                       }
+                               }
+                       }
+               }
+               else if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_SELECTION)
+               {
+                       if ((IDA_CONTEXTMENU_EDITOR_MOVE_ALBUM_ARRAY_START <= actionId) &&
+                                       (actionId <= IDA_CONTEXTMENU_EDITOR_MOVE_CREATE_ALBUM + 1000))
+                       {
+                               if (__pContentDirectoryList == null)
+                               {
+
+                                       return;
+                               }
+                               if (__pContentDirectoryList->GetCount() > actionId - IDA_CONTEXTMENU_EDITOR_MOVE_ALBUM_ARRAY_START)
+                               {
+                                       String* pDirectory = static_cast<String*>
+                                       (__pContentDirectoryList->GetAt(actionId - IDA_CONTEXTMENU_EDITOR_MOVE_ALBUM_ARRAY_START));
+
+                                       AllListSelectionPanel* pSelectionPanel = dynamic_cast<AllListSelectionPanel*>
+                                               (pSceneManager->GetCurrentScene()->GetPanel());
+
+                                       if (pSelectionPanel != null)
+                                       {
+                                               delete __pFileMove;
+                                               IList* pItemIndexList = pSelectionPanel->GetItemCheckedIndexListN();
+                                               __pFileMove = new (std::nothrow) FileMoveTimer(*pDirectory, pItemIndexList, __pPresentationModel, this);
+                                               if (__isCopyOperation)
+                                               {
+                                                       __pFileMove->SetCopy();
+                                               }
+                                               result r = __pFileMove->StartTimer();
+                                               if (IsFailed(r))
+                                               {
+                                                       delete __pFileMove;
+                                                       __pFileMove = null;
+                                                       __isCopyOperation = false;
+                                               }
+                                               else
+                                               {
+                                                       _overlayMsg = true;
+                                               }
+                                       }
+                               }
+                       }
+               }
+               break;
+       }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+FileListEditorForm::OnFileOpInvalidate(enum FileActionMode actionId)
+{
+       Invalidate(true);
+}
+
+
+void
+FileListEditorForm::OnScanDirStart()
+{
+       AppLogDebug("ENTER");
+       GetHeader()->SetButtonEnabled(BUTTON_POSITION_RIGHT, false);
+       __isScanProgress = true;
+       Invalidate(true);
+       AppLogDebug("EXIT");
+}
+void
+FileListEditorForm::OnScanDirComplete()
+{
+       AppLogDebug("ENTER");
+       GetHeader()->SetButtonEnabled(BUTTON_POSITION_RIGHT, true);
+       __isScanProgress = false;
+       Invalidate(true);
+       AppLogDebug("EXIT");
+}
+
+
+bool
+FileListEditorForm::GetOverlayStatus(void) const
+{
+       return _overlayMsg;
+}
+
+void
+FileListEditorForm::OnFileOpComplete(enum FileActionMode actionId, enum FileActionCompleteRes res)
+{
+       AppLogDebug("ENTER");
+       _overlayMsg = false;
+       __pPresentationModel->SetUpdateProgressStatus(false);
+       if (res != COMPLETE_SUCCESS)
+       {
+               MessageBox messageBox;
+               messageBox.Construct(L"", ResourceManager::GetString(L"IDS_COM_BODY_OPERATION_FAILED"), MSGBOX_STYLE_OK, 3000);
+               int modalResult = 0;
+               _overlayMsg = true;
+               messageBox.ShowAndWait(modalResult);
+               _overlayMsg = false;
+               SceneManager* pSceneManager = SceneManager::GetInstance();
+               AppAssert(pSceneManager);
+               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALL_LIST));
+       }
+       AppLogDebug("EXIT");
+}
+
+void
+FileListEditorForm::OnContentUpdated()
+{
+       AppLogDebug("ENTER");
+
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+
+       if(__pDeletePopup != null)
+       {
+               if(__pDeletePopup->IsVisible() == true)
+               {
+                       __pDeletePopup->Destroy();
+                       __pDeletePopup = null;
+                       _overlayMsg = false;
+                       SetUpPopup();
+               }
+       }
+
+       if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_EDITOR)
+       {
+               AllListEditorPanel* pEditorPanel = dynamic_cast<AllListEditorPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+               if (pEditorPanel != null)
+               {
+                       pEditorPanel->CancelUpdateProgress();
+               }
+       }
+       else if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_SELECTION)
+       {
+               AllListSelectionPanel* pSelectionPanel = dynamic_cast<AllListSelectionPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+               if (pSelectionPanel != null)
+               {
+                       pSelectionPanel->CancelUpdateProgress();
+               }
+       }
+
+       if (__pPresentationModel->GetAppControlMode() == APPCONTROL_MODE_PICK
+                       && pSceneManager->GetCurrentSceneId() == IDSCN_IMAGE_LIST_EDITOR)
+       {
+               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALBUM_LIST, SCENE_TRANSITION_ANIMATION_TYPE_NONE,
+                               SCENE_HISTORY_OPTION_NO_HISTORY, SCENE_DESTROY_OPTION_DESTROY));
+
+       }
+       else if (_overlayMsg == false)
+       {
+               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALL_LIST, SCENE_TRANSITION_ANIMATION_TYPE_NONE,
+                               SCENE_HISTORY_OPTION_NO_HISTORY, SCENE_DESTROY_OPTION_DESTROY));
+       }
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+result
+FileListEditorForm::SetUpPopup(void)
+{
+       AppLogDebug("ENTER");
+       result r = E_SUCCESS;
+
+       if (__pDeletePopup != null)
+       {
+               delete __pDeletePopup;
+               __pDeletePopup = null;
+       }
+
+       __pDeletePopup = new (std::nothrow) Popup();
+       __pDeletePopup->Construct(false, Dimension(W_DELETE_POPUP, H_DELETE_POPUP));
+       __pDeletePopup->SetPropagatedKeyEventListener(this);
+
+       Rectangle popupClientBounds = __pDeletePopup->GetClientAreaBounds();
+
+       Label* pLabelText = new (std::nothrow) Label();
+       pLabelText->Construct(Rectangle(0, Y_DELETE_LABEL, popupClientBounds.width, H_DELETE_LABEL),
+                       ResourceManager::GetString(L"IDS_COM_POP_DELETE_Q"));
+       pLabelText->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+       pLabelText->SetTextConfig(34,LABEL_TEXT_STYLE_BOLD);
+       __pDeletePopup->AddControl(pLabelText);
+
+       Button* pDeleteButton = new (std::nothrow) Button();
+       pDeleteButton->Construct(Rectangle(popupClientBounds.width / 2 + GAP_W_POPUP_ITEM, Y_DELETE_BUTTON, W_DELETE_BUTTON, H_DELETE_BUTTON),
+                       ResourceManager::GetString(L"IDS_COM_BODY_DELETE"));
+       pDeleteButton->SetColor(BUTTON_STATUS_NORMAL, COLOR_DELETE_BUTTON_NORMAL);
+       pDeleteButton->SetColor(BUTTON_STATUS_PRESSED, COLOR_DELETE_BUTTON_PRESSED);
+       pDeleteButton->SetTextColor(COLOR_DELETE_BUTTON_TEXT);
+       pDeleteButton->SetActionId(IDA_DELETE_POPUP_DEL);
+       pDeleteButton->AddActionEventListener(*this);
+       __pDeletePopup->AddControl(pDeleteButton);
+
+       Button* pButtonCancel = new (std::nothrow) Button();
+       pButtonCancel->Construct(Rectangle(16, Y_DELETE_BUTTON, W_DELETE_BUTTON, H_DELETE_BUTTON),
+                       ResourceManager::GetString(L"IDS_COM_POP_CANCEL"));
+       pButtonCancel->SetActionId(IDA_DELETE_POPUP_CANCEL);
+       pButtonCancel->AddActionEventListener(*this);
+       __pDeletePopup->AddControl(pButtonCancel);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+void
+FileListEditorForm::SetTitleText(const String& titleText)
+{
+       AppLogDebug("ENTER");
+       Header* pHeader = GetHeader();
+       TryReturnVoid(pHeader != null, "[%s] fail to get the header.", GetErrorMessage(GetLastResult()));
+       pHeader->SetTitleText(titleText);
+       pHeader->Invalidate(true);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+FileListEditorForm::RefreshFolderList(void)
+{
+       AppLogDebug("ENTER");
+       ContentDirectory contentDirectory;
+       IListT<ContentType>* pContentTypeList = new (std::nothrow) ArrayListT<ContentType>();
+       pContentTypeList->Add(CONTENT_TYPE_IMAGE);
+       pContentTypeList->Add(CONTENT_TYPE_VIDEO);
+       result r = contentDirectory.Construct(*pContentTypeList);
+       if (r != E_SUCCESS)
+       {
+               AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+               return;
+       }
+       delete pContentTypeList;
+
+       if (__pContentDirectoryList != null)
+       {
+               __pContentDirectoryList->RemoveAll(true);
+               delete __pContentDirectoryList;
+               __pContentDirectoryList = null;
+       }
+       __pContentDirectoryList = contentDirectory.GetContentDirectoryPathListN(SORT_ORDER_NONE);
+
+       if (__pContentDirectoryNameList != NULL)
+       {
+               __pContentDirectoryNameList->RemoveAll(true);
+               delete __pContentDirectoryNameList;
+               __pContentDirectoryNameList = null;
+       }
+
+       __pContentDirectoryNameList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+       String* pDirPath = null;
+       String* pDirName = null;
+       String mediaPath = RESERVED_MEDIA_PATH;
+       int length = mediaPath.GetLength();
+       mediaPath.Remove(length-1,1);
+
+       int loopCount = __pContentDirectoryList->GetCount();
+       for (int i = 0; i < loopCount; ++i)
+       {
+               pDirPath = static_cast<String*>(__pContentDirectoryList->GetAt(i));
+               pDirName = new (std::nothrow) String(GetDirecotyNameFromFullPath(*pDirPath));
+
+               if (*pDirPath == mediaPath)
+               {
+                       *pDirName = ResourceManager::GetString(L"IDS_MEDIABR_POP_NO_NAME");
+                       __pContentDirectoryNameList->Add(pDirName);
+               }
+               else
+               {
+                       __pContentDirectoryNameList->Add(pDirName);
+               }
+       }
+
+               __pOptionMenu->RemoveAllItems();
+               __pOptionMenu->AddItem(ResourceManager::GetString(L"IDS_MEDIABR_OPT_CREATE_ALBUM"),
+                               IDA_CONTEXTMENU_EDITOR_MOVE_CREATE_ALBUM);
+
+               loopCount = __pContentDirectoryNameList->GetCount();
+
+               String dirAllAlbums = L"All albums";
+
+               for (int i = 0; i < loopCount; ++i)
+               {
+                       pDirName = static_cast<String*>(__pContentDirectoryNameList->GetAt(i));
+
+                       if (*pDirName != __pPresentationModel->GetCurrentAlbumName() || *pDirName == dirAllAlbums)
+                       {
+                               __pOptionMenu->AddItem(*(new (std::nothrow) String(*pDirName)),
+                                               IDA_CONTEXTMENU_EDITOR_MOVE_ALBUM_ARRAY_START + i);
+                       }
+               }
+
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+FileListEditorForm::OnFormBackRequested(Form& source)
+{
+       AppLogDebug("ENTER");
+
+       if(__isScanProgress)
+       {
+               AppLog (" Skip the call");
+               return;
+       }
+
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       TryReturnVoid(pSceneManager != null, "[%s] fail to get SceneManager.", GetErrorMessage(GetLastResult()));
+
+       if (__pPresentationModel->GetAppControlMode() == APPCONTROL_MODE_PICK)
+       {
+               if (pSceneManager->GetCurrentSceneId() == IDSCN_IMAGE_LIST_EDITOR)
+               {
+                       pSceneManager->GoBackward(BackwardSceneTransition(IDSCN_ALBUM_LIST));
+               }
+               else if (pSceneManager->GetCurrentSceneId() == IDSCN_VIDEO_LIST_EDITOR)
+               {
+                       pSceneManager->GoBackward(BackwardSceneTransition(IDSCN_ALBUM_LIST));
+               }
+       }
+       else
+       {
+               if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_EDITOR)
+               {
+                       pSceneManager->GoBackward(BackwardSceneTransition(IDSCN_ALL_LIST));
+               }
+               else if (pSceneManager->GetCurrentSceneId() == IDSCN_IMAGE_LIST_EDITOR)
+               {
+                       pSceneManager->GoBackward(BackwardSceneTransition(IDSCN_IMAGE_LIST));
+               }
+               else if (pSceneManager->GetCurrentSceneId() == IDSCN_VIDEO_LIST_EDITOR)
+               {
+                       pSceneManager->GoBackward(BackwardSceneTransition(IDSCN_VIDEO_LIST));
+               }
+               else if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_SELECTION)
+               {
+                       if (__pShareContextMenu != null && __pShareContextMenu->GetShowState() == true)
+                       {
+                               __pShareContextMenu->SetShowState(false);
+                       }
+                       else
+                       {
+                               AllListSelectionPanel* pSelectionPanel = dynamic_cast<AllListSelectionPanel*>
+                               (pSceneManager->GetCurrentScene()->GetPanel());
+                               if (pSelectionPanel != null)
+                               {
+                                       IList* pList = pSelectionPanel->GetItemCheckedIndexListN();
+                                       if (pList == null)
+                                       {
+                                               pList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+                                       }
+
+                                       pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALL_LIST_EDITOR, SCENE_TRANSITION_ANIMATION_TYPE_NONE,
+                                                       SCENE_HISTORY_OPTION_ADD_HISTORY, SCENE_DESTROY_OPTION_DESTROY), pList);
+                               }
+                       }
+               }
+               else
+               {
+                       pSceneManager->GoBackward(BackwardSceneTransition(IDSCN_ALL_LIST));
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+FileListEditorForm::SetFooterButtonsState(const bool enableState)
+{
+       AppLogDebug("ENTER");
+       Footer* pFooter = GetFooter();
+       TryReturnVoid(pFooter != null, "[%s] fail to get the footer.", GetErrorMessage(GetLastResult()));
+
+       if (__pPresentationModel->GetAppControlMode() == APPCONTROL_MODE_PICK)
+       {
+               if (enableState == true)
+               {
+                       pFooter->SetButtonEnabled(BUTTON_POSITION_LEFT, true);
+                       pFooter->SetItemEnabled(0, true);
+               }
+               else
+               {
+                       pFooter->SetButtonEnabled(BUTTON_POSITION_LEFT, false);
+                       pFooter->SetItemEnabled(0, false);
+               }
+       }
+       else
+       {
+               if (enableState == true)
+               {
+                       pFooter->SetItemEnabled(0, true);
+                       pFooter->SetItemEnabled(1, true);
+               }
+               else
+               {
+                       pFooter->SetItemEnabled(0, false);
+                       pFooter->SetItemEnabled(1, false);
+               }
+       }
+       pFooter->RequestRedraw(true);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+FileListEditorForm::OnOrientationChanged(const Tizen::Ui::Control &source, Tizen::Ui::OrientationStatus orientationStatus)
+{
+       AppLogDebug("ENTER");
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       pSceneManager->GetCurrentScene();
+
+       if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_EDITOR)
+       {
+               AllListEditorPanel* pEditorPanel = dynamic_cast<AllListEditorPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+               if (pEditorPanel != null)
+               {
+                       pEditorPanel->ChangeOrientation();
+               }
+       }
+       else if (pSceneManager->GetCurrentSceneId() == IDSCN_IMAGE_LIST_EDITOR)
+       {
+               ImageListEditorPanel* pEditorPanel = dynamic_cast<ImageListEditorPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+               if (pEditorPanel != null)
+               {
+                       pEditorPanel->ChangeOrientation();
+               }
+       }
+       else if (pSceneManager->GetCurrentSceneId() == IDSCN_VIDEO_LIST_EDITOR)
+       {
+               VideoListEditorPanel* pEditorPanel = dynamic_cast<VideoListEditorPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+               if (pEditorPanel != null)
+               {
+                       pEditorPanel->ChangeOrientation();
+               }
+       }
+       else if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_SELECTION)
+       {
+               AllListSelectionPanel* pEditorPanel = dynamic_cast<AllListSelectionPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+               if (pEditorPanel != null)
+               {
+                       pEditorPanel->ChangeOrientation();
+               }
+       }
+
+       if (_pProgressAnim != null)
+       {
+               _pProgressAnim->ChangeOrientation(Form::GetBounds());
+               _pProgressAnim->Invalidate(true);
+       }
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+bool
+FileListEditorForm::OnKeyReleased(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo)
+{
+       AppLogDebug("ENTER");
+
+       if(keyEventInfo.GetKeyCode() == KEY_BACK || keyEventInfo.GetKeyCode() == KEY_ESC)
+       {
+               _overlayMsg = false;
+               __pDeletePopup->SetShowState(false);
+               __pDeletePopup->Invalidate(true);
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return false;
+}
+
+result
+FileListEditorForm::MoveToAlbum(const String& destDirectory)
+{
+       AppLogDebug("ENTER");
+       result r = E_FAILURE;
+       String albumName = __pPresentationModel->ConvertToAlbumName(destDirectory);
+       if (albumName != EMPTY_SPACE)
+       {
+               IList* pDirectoryList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+               pDirectoryList->Add(new (std::nothrow) String(destDirectory));
+               __pPresentationModel->SetCurrentAlbumInfo(albumName, *pDirectoryList);
+               __pPresentationModel->SetCurrentAlbumContentType(CONTENT_TYPE_ALL);
+               delete pDirectoryList;
+
+               SceneManager* pSceneManager = SceneManager::GetInstance();
+               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALL_LIST));
+               r = E_SUCCESS;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+void
+FileListEditorForm::SelectAllPressed(void)
+{
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       pSceneManager->GetCurrentScene();
+
+       if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_EDITOR)
+       {
+               AllListEditorPanel* pEditorPanel = dynamic_cast<AllListEditorPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+               if (pEditorPanel != null)
+               {
+                       pEditorPanel->OnSelectAllPressed();
+               }
+       }
+       else if (pSceneManager->GetCurrentSceneId() == IDSCN_IMAGE_LIST_EDITOR)
+       {
+               ImageListEditorPanel* pEditorPanel = dynamic_cast<ImageListEditorPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+               if (pEditorPanel != null)
+               {
+                       pEditorPanel->OnSelectAllPressed();
+               }
+       }
+       else if (pSceneManager->GetCurrentSceneId() == IDSCN_VIDEO_LIST_EDITOR)
+       {
+               VideoListEditorPanel* pEditorPanel = dynamic_cast<VideoListEditorPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+               if (pEditorPanel != null)
+               {
+                       pEditorPanel->OnSelectAllPressed();
+               }
+       }
+       else if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_SELECTION)
+       {
+               AllListSelectionPanel* pEditorPanel = dynamic_cast<AllListSelectionPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+               if (pEditorPanel != null)
+               {
+                       pEditorPanel->OnSelectAllPressed();
+               }
+       }
+}
+
+void
+FileListEditorForm::OnSlideSettingPopUpItemSelected(int index)
+{
+       if (__pPopUp != NULL)
+       {
+               __pPopUp->SetShowState(false);
+       }
+
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+
+       if (index == 0)
+       {
+               if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_EDITOR)
+               {
+                       AllListEditorPanel* pEditorPanel = dynamic_cast<AllListEditorPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+                       if (pEditorPanel != null)
+                       {
+                               pEditorPanel->OnRequestSlideShow();
+                       }
+               }
+               else if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_SELECTION)
+               {
+                       AllListSelectionPanel* pSelectionPanel = dynamic_cast<AllListSelectionPanel*>
+                                       (pSceneManager->GetCurrentScene()->GetPanel());
+
+                       if (pSelectionPanel != null)
+                       {
+                               pSelectionPanel->OnRequestSlideShow();
+                       }
+               }
+       }
+       else if (index == 1)
+       {
+               SceneManager* pSceneManager = SceneManager::GetInstance();
+               TryReturnVoid(pSceneManager != null, "[%s] fail to get SceneManager", GetErrorMessage(GetLastResult()));
+
+               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SETTING_MAIN));
+       }
+}
+
+void
+FileListEditorForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
+{
+       AppLogDebug("ENTER");
+       __pPresentationModel->RemoveContentEventListener(this);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+FileListEditorForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs)
+{
+       AppLogDebug("ENTER");
+       __pPresentationModel->AddContentEventListener(this);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+FileListEditorForm::OnFormMenuRequested (Tizen::Ui::Controls::Form &source)
+{
+       if(__isScanProgress)
+       {
+               return;
+       }
+
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       int checkedCount = 0;
+
+       if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_EDITOR)
+       {
+               AllListEditorPanel* pEditorPanel = dynamic_cast<AllListEditorPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+               if (pEditorPanel != null)
+               {
+                       checkedCount = pEditorPanel->GetItemCheckedCount();
+               }
+       }
+       else if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_SELECTION)
+       {
+               AllListSelectionPanel* pSelectionPanel = dynamic_cast<AllListSelectionPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+               if (pSelectionPanel != null)
+               {
+                       checkedCount = pSelectionPanel->GetItemCheckedCount();
+               }
+       }
+
+       if (__pShareContextMenu != null && __pShareContextMenu->GetShowState() == true)
+       {
+               __pShareContextMenu->SetShowState(false);
+       }
+
+       if (checkedCount < 2 &&  __pPresentationModel->GetCurrentAlbumName() == ALL_ALBUMS_REAL_NAME  )
+       {
+          return;  // no option Menu items in this case
+       }
+
+       if (checkedCount > 0)
+       {
+               if (__pOptionMenu == null)
+               {
+                       return;
+               }
+
+               __pOptionMenu->RemoveAllItems();
+
+               if ( __pPresentationModel->GetCurrentAlbumName() != ALL_ALBUMS_REAL_NAME )
+               {
+               __pOptionMenu->AddItem(ResourceManager::GetString(L"IDS_COM_BODY_MOVE"),
+                               IDA_CONTEXT_MENU_MORE_MOVE);
+               __pOptionMenu->AddItem(ResourceManager::GetString(L"IDS_COM_BODY_COPY"),
+                               IDA_CONTEXT_MENU_MORE_COPY);
+               }
+
+               if (checkedCount > 1)
+               {
+                       __pOptionMenu->AddItem(ResourceManager::GetString(L"IDS_MEDIABR_OPT_SLIDESHOW"),
+                                       IDA_CONTEXT_MENU_MORE_SLIDE_SHOW);
+               }
+
+               if ( __pPresentationModel->GetCurrentAlbumName() != ALL_ALBUMS_REAL_NAME )
+               {
+               __pOptionMenu->AddItem(ResourceManager::GetString(L"IDS_IV_OPT_ROTATE_LEFT"),IDA_CONTEXT_MENU_ROTATE_LEFT);
+               __pOptionMenu->AddItem(ResourceManager::GetString(L"IDS_IV_OPT_ROTATE_RIGHT"),IDA_CONTEXT_MENU_ROTATE_RIGHT);
+               }
+
+               __pOptionMenu->SetShowState(true);
+               __pOptionMenu->Show();
+       }
+}
+
+void
+FileListEditorForm::SetProgressState(const bool progressState)
+{
+       __isScanProgress = progressState;
+}
diff --git a/src/GlFileListForm.cpp b/src/GlFileListForm.cpp
new file mode 100644 (file)
index 0000000..95fc7b1
--- /dev/null
@@ -0,0 +1,369 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlFileListForm.cpp
+ * @brief              This is the implementation file for FileListForm class.
+ */
+
+#include "GlAlbumInfo.h"
+#include "GlAllListPanel.h"
+#include "GlFileListForm.h"
+#include "GlFileListPresentationModel.h"
+#include "GlGalleryApp.h"
+#include "GlResourceManager.h"
+#include "GlSlideSettingListener.h"
+#include "GlSlideShowPopUp.h"
+#include "GlTypes.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;
+using namespace Tizen::Content;
+
+FileListForm::FileListForm(void)
+       : __menuState(true)
+       , __pOptionMenu(null)
+       , __pPopUp(null)
+       , __pPresentationModel(null)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+FileListForm::~FileListForm(void)
+{
+       AppLogDebug("ENTER");
+
+       if (__pPopUp != NULL)
+       {
+               delete __pPopUp;
+               __pPopUp = NULL;
+       }
+
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+result
+FileListForm::Initialize(void)
+{
+       AppLogDebug("ENTER");
+       result r = Form::Construct(IDL_FORM_FILE_LIST);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+result
+FileListForm::OnInitializing(void)
+{
+       AppLogDebug("ENTER");
+       Header* pHeader = GetHeader();
+       TryReturn(pHeader != null, E_FAILURE, "[%s] fail to get the Header.", GetErrorMessage(GetLastResult()));
+
+          SetFormMenuEventListener(this);
+
+       __pPresentationModel = FileListPresentationModel::GetInstance();
+       __pPresentationModel->ClearThumbnailRequests();
+
+       InitializeFooter();
+       SetFormBackEventListener(this);
+       SetOrientation(ORIENTATION_AUTOMATIC);
+       AddOrientationEventListener(*this);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+result
+FileListForm::OnTerminating(void)
+{
+       AppLogDebug("ENTER");
+
+       if (__pOptionMenu != null)
+       {
+               delete __pOptionMenu;
+               __pOptionMenu = null;
+       }
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+void
+FileListForm::OnContentUpdated()
+{
+       AppLogDebug("ENTER");
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       static_cast<AllListPanel*>(pSceneManager->GetCurrentScene()->GetPanel())->Refresh();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+FileListForm::OnActionPerformed(const Control& source, int actionId)
+{
+       AppLogDebug("ENTER");
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       TryReturnVoid(pSceneManager != null, "[%s] fail to get SceneManager", GetErrorMessage(GetLastResult()));
+
+       switch (actionId)
+       {
+       case IDA_FOOTER_EDIT:
+       {
+               if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST)
+               {
+                       pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALL_LIST_EDITOR));
+               }
+               else if (pSceneManager->GetCurrentSceneId() == IDSCN_IMAGE_LIST)
+               {
+                       pSceneManager->GoForward(ForwardSceneTransition(IDSCN_IMAGE_LIST_EDITOR));
+               }
+               else if (pSceneManager->GetCurrentSceneId() == IDSCN_VIDEO_LIST)
+               {
+                       pSceneManager->GoForward(ForwardSceneTransition(IDSCN_VIDEO_LIST_EDITOR));
+               }
+               else
+               {
+                       pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALL_LIST_EDITOR));
+               }
+       }
+       break;
+
+       case IDA_FOOTER_SLIDESHOW:
+       {
+
+               if (__pPopUp != NULL)
+               {
+                       delete __pPopUp;
+                       __pPopUp = NULL;
+               }
+               __pPopUp = new (std::nothrow) SlideShowPopUp();
+
+               if (__pPopUp != null)
+               {
+                       __pPopUp->Initialize();
+                       __pPopUp->SetEventListner(this);
+                       __pPopUp->SetShowState(true);
+                       __pPopUp->Show();
+               }
+       }
+       break;
+
+       case IDA_FOOTER_CAMERA:
+       {
+               const String mimeType = APPCONTROL_MIME_IMAGE_JPG;
+               HashMap* pDataList = new (std::nothrow) HashMap(SingleObjectDeleter);
+               pDataList->Construct();
+               pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_CAMERA_ALLOW_SWITCH), new (std::nothrow) String(APPCONTROL_DATA_TRUE));
+               __pPresentationModel->StartAppControl(APPCONTROL_PROVIDER_ID_CAMERA, APPCONTROL_OPERATION_ID_CREATE_CONTENT,
+                               null, &mimeType, pDataList, this);
+       }
+       break;
+
+       default:
+               break;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+FileListForm::OnFormBackRequested(Form& source)
+{
+       AppLogDebug("ENTER");
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       TryReturnVoid(pSceneManager != null, "[%s] fail to get SceneManager", GetErrorMessage(GetLastResult()));
+
+       pSceneManager->GoBackward(BackwardSceneTransition(IDSCN_ALBUM_LIST));
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+FileListForm::OnOrientationChanged(const Tizen::Ui::Control &source, Tizen::Ui::OrientationStatus orientationStatus)
+{
+
+
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       pSceneManager->GetCurrentScene();
+
+       if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST)
+       {
+               AllListPanel* pListPanel = dynamic_cast<AllListPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+               if (pListPanel != null)
+               {
+                       pListPanel->ChangeOrientation();
+               }
+       }
+}
+
+result
+FileListForm::InitializeFooter(void)
+{
+       AppLogDebug("ENTER");
+       result r = E_SUCCESS;
+       Footer* pFooter = GetFooter();
+       TryReturn(pFooter != null, E_FAILURE, "[%s] fail to get the Footer.", GetErrorMessage(GetLastResult()));
+
+       pFooter->RemoveAllItems();
+       pFooter->SetStyle(FOOTER_STYLE_BUTTON_ICON);
+
+       FooterItem itemCamera;
+       itemCamera.Construct(IDA_FOOTER_CAMERA);
+       Bitmap* pBitmapCamera = ResourceManager::GetBitmapN(IDB_CONTROLBAR_CAMERA);
+       if (pBitmapCamera != null)
+       {
+               itemCamera.SetIcon(FOOTER_ITEM_STATUS_NORMAL, pBitmapCamera);
+       }
+       pFooter->AddItem(itemCamera);
+
+       delete pBitmapCamera;
+
+       if (__pOptionMenu != null)
+       {
+               delete __pOptionMenu;
+               __pOptionMenu = null;
+       }
+
+       __pOptionMenu = new (std::nothrow) OptionMenu();
+       __pOptionMenu->Construct();
+
+       if (__pPresentationModel->GetCurrentAlbumContentInfoCount() > 1)
+       {
+               __pOptionMenu->AddItem(ResourceManager::GetString(L"IDS_MEDIABR_OPT_SLIDESHOW"), IDA_FOOTER_SLIDESHOW);
+       }
+
+       if (__pPresentationModel->GetCurrentAlbumContentInfoCount() == 0)
+       {
+               __pOptionMenu->SetEnabled(false);
+       }
+       else
+       {
+               __pOptionMenu->AddItem(ResourceManager::GetString(L"IDS_COM_HEADER_EDIT"), IDA_FOOTER_EDIT);
+               __pOptionMenu->AddActionEventListener(*this);
+       }
+
+       pFooter->AddActionEventListener(*this);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+void
+FileListForm::SetTitleText(const String& titleText)
+{
+       AppLogDebug("ENTER");
+       Header* pHeader = GetHeader();
+       TryReturnVoid(pHeader != null, "[%s] fail to get the Header.", GetErrorMessage(GetLastResult()));
+
+       if (titleText == ALL_ALBUMS_REAL_NAME)
+       {
+               String text = ResourceManager::GetString(L"IDS_MEDIABR_BODY_ALL_ALBUMS");
+               pHeader->SetTitleText(text);
+       }
+       else
+       {
+               pHeader->SetTitleText(titleText);
+       }
+
+       pHeader->Show();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+FileListForm::OnSlideSettingPopUpItemSelected(int index)
+{
+       if (__pPopUp != NULL)
+       {
+               __pPopUp->SetShowState(false);
+       }
+
+       if (index == 0)
+       {
+               result r = E_SUCCESS;
+               ArrayList* pArrayList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+               pArrayList->Construct();
+               int loopCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+
+               for (int i = 0; i < loopCount; ++i)
+               {
+                       pArrayList->Add(new (std::nothrow) String(__pPresentationModel->GetContentFilePath(i)));
+               }
+
+               const String mimeType = APPCONTROL_MIME_IMAGE_ALL;
+               HashMap* pDataList = new (std::nothrow) HashMap(SingleObjectDeleter);
+               pDataList->Construct();
+               pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_TYPE), new (std::nothrow) String(APPCONTROL_DATA_SLIDE_SHOW));
+               pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_PATH), (Object*)pArrayList);
+
+               r = __pPresentationModel->StartAppControl(APPCONTROL_PROVIDER_ID_IMAGE, APPCONTROL_OPERATION_ID_VIEW, null,
+                               &mimeType, pDataList, null);
+
+               if (r == E_MAX_EXCEEDED)
+               {
+                       MessageBox messageBox;
+                       messageBox.Construct(L"", ResourceManager::GetString(L"IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED"),
+                                       MSGBOX_STYLE_NONE, 3000);
+                       int modalResult;
+                       messageBox.ShowAndWait(modalResult);
+               }
+       }
+       else if (index == 1)
+       {
+               SceneManager* pSceneManager = SceneManager::GetInstance();
+               TryReturnVoid(pSceneManager != null, "[%s] fail to get SceneManager", GetErrorMessage(GetLastResult()));
+
+               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SETTING_MAIN));
+       }
+}
+
+void
+FileListForm::SetMenuState(bool state)
+{
+       __menuState = state;
+}
+
+void
+FileListForm::OnFormMenuRequested (Tizen::Ui::Controls::Form &source)
+{
+
+       if (__menuState == true)
+       {
+               InitializeFooter();
+
+               if (__pOptionMenu == null)
+               {
+                       return;
+               }
+
+               __pOptionMenu->SetShowState(true);
+               __pOptionMenu->Show();
+       }
+}
+
+void
+FileListForm::OnAppControlCompleteResponseReceived(const AppId& appId, const Tizen::Base::String& operationId,
+                       AppCtrlResult appControlResult, const Tizen::Base::Collection::IMap* pExtraData)
+{
+       AppLogDebug("OnAppControlCompleteResponseReceived : %d", appControlResult);
+
+       GalleryApp* pGalleryApp = static_cast<GalleryApp*>(GalleryApp::GetInstance());
+       TryReturnVoid(pGalleryApp != null, "pGalleryApp is null");
+       pGalleryApp->SetFrameEnabled(true);
+}
diff --git a/src/GlFileListPresentationModel.cpp b/src/GlFileListPresentationModel.cpp
new file mode 100644 (file)
index 0000000..17020bf
--- /dev/null
@@ -0,0 +1,1763 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlFileListPresentationModel.cpp
+ * @brief              This is the implementation file for FileListPresentationModel class.
+ */
+
+#include <cstdlib>
+#include <FMedia.h>
+#include <FSystem.h>
+#include "GlCommonUtil.h"
+#include "GlFileListPresentationModel.h"
+#include "GlContentUpdateEventListener.h"
+#include "GlGalleryApp.h"
+#include "GlThumbnailEvent.h"
+#include "GlThumbnailEventArg.h"
+#include "GlThumbnailProvider.h"
+#include "GlTypes.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Base::Runtime;
+using namespace Tizen::Base::Utility;
+using namespace Tizen::Content;
+using namespace Tizen::Graphics;
+using namespace Tizen::Io;
+using namespace Tizen::Media;
+using namespace Tizen::System;
+
+static const String CONTENT_INFO_ORDER = L"ContentFileName";
+
+static const int SIZE_PAGE_NO = 1;
+static const int SIZE_CONUNT_PER_PAGE = 3000;
+static const int SIZE_ICON_LIST_CACHE = 50;
+static const int W_DURATION_TEXT = 44;
+static const int H_DURATION_TEXT = 4;
+static const int W_DURATION = 171;
+static const int H_DURATION = 32;
+static const int W_DEFAULT_THUMBNAIL = 171;
+static const int H_DEFAULT_THUMBNAIL = 127;
+static const int W_WIDE_THUMBNAIL = 171;
+static const int H_WIDE_THUMBNAIL = 127;
+static const int W_PLAY_FG = 64;
+static const int H_PLAY_FG = 64;
+static const int GAP_W_PLAY_FG = (W_DEFAULT_THUMBNAIL -W_PLAY_FG)/2;
+static const int GAP_H_PLAY_FG = (H_DEFAULT_THUMBNAIL - H_PLAY_FG)/2;
+static const int GAP_H_DURATION = H_DEFAULT_THUMBNAIL - H_DURATION;
+static const int ALPHA_DURATION = 70;
+static const int FONT_SIZE_DURATION = 24;
+static const Dimension DIMENSION_REAL_ICON (171,127);
+static const Rectangle RECTANGLE_THUMBNAIL_OFFSET_POSION (1, 1, 171, 127);
+static const Rectangle RECTANGLE_VIDEO_THUMBNAIL_OFFSET_POSION (1, 1, 171, 127);
+static const Color COLOR_DURATION_BG (Color::GetColor(COLOR_ID_BLACK));
+static const Color COLOR_TEXT_OUTLINE (Color::GetColor(COLOR_ID_WHITE));
+
+static const String RESERVED_MEDIA_PATH = Environment::GetMediaPath();
+static const String RESERVED_CAMERA_PATH = Environment::GetMediaPath() + L"Camera";
+static const String RESERVED_CAMERA_PATH_EXT = Environment::GetExternalStoragePath() + L"Camera";
+static const String RESERVED_DOWNLOAD_PATH = Environment::GetMediaPath() + L"Downloads";
+
+FileListPresentationModel* FileListPresentationModel::__pPresentationModelInstance = null;
+ThumbnailProvider* FileListPresentationModel::__pThumbnailProvider = null;
+ThumbnailEvent* FileListPresentationModel::__pThumbnailEvent = null;
+ArrayList* FileListPresentationModel::__pPresentationModelListener = null;
+ArrayList* FileListPresentationModel::__pContentEventListener = null;
+ArrayList* FileListPresentationModel::__pIconListViewCache = null;
+IList* FileListPresentationModel::__pDirectoryList = null;
+IList* FileListPresentationModel::__pContentInfoList = null;
+
+FileListPresentationModel::FileListPresentationModel(void)
+       : __pContentManager(null)
+       , __albumContentType(CONTENT_TYPE_ALL)
+       , __appControlMode(APPCONTROL_MODE_MAIN)
+       , __appControlMediaType(APPCONTROL_MEDIA_TYPE_IMAGE)
+       , __appControlSelectionMode(APPCONTROL_SELECTION_MODE_SINGLE)
+       , __pContentIdList(null)
+       , __updateProgressStatus(false)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+FileListPresentationModel::~FileListPresentationModel(void)
+{
+       AppLogDebug("ENTER");
+       DeviceManager::RemoveDeviceEventListener(DEVICE_TYPE_STORAGE_CARD, *this);
+       if (__pContentIdList)
+       {
+               __pContentIdList->RemoveAll(true);
+               delete __pContentIdList;
+               __pContentIdList = null;
+       }
+       delete __pContentManager;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+FileListPresentationModel*
+FileListPresentationModel::GetInstance(void)
+{
+       AppLogDebug("ENTER");
+       if (__pPresentationModelInstance == null)
+       {
+               CreateInstance();
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return __pPresentationModelInstance;
+}
+
+result
+FileListPresentationModel::Construct(void)
+{
+       AppLogDebug("ENTER");
+
+       IThumbnailEventListener* pThumbnailEventListener = static_cast<IThumbnailEventListener*>(this);
+       __pThumbnailEvent = new (std::nothrow) ThumbnailEvent();
+       __pThumbnailEvent->AddListener(*pThumbnailEventListener, true);
+
+       DeviceManager::AddDeviceEventListener(DEVICE_TYPE_STORAGE_CARD, *this);
+
+       ContentUpdateEventListener::GetInstance();
+       __pContentManager = new (std::nothrow) ContentManager();
+       __pContentManager->Construct();
+
+       if (__pIconListViewCache != null)
+       {
+               __pIconListViewCache->RemoveAll(true);
+               delete __pIconListViewCache;
+               __pIconListViewCache = null;
+       }
+       __pIconListViewCache = new (std::nothrow) ArrayList(SingleObjectDeleter);
+       __pIconListViewCache->Construct(SIZE_ICON_LIST_CACHE);
+
+       if (__pDirectoryList != null)
+       {
+               delete __pDirectoryList;
+       }
+       __pDirectoryList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+
+       if (__pContentInfoList != null)
+       {
+               delete __pContentInfoList;
+       }
+       __pContentInfoList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+
+       __pPresentationModelListener = new (std::nothrow) ArrayList();
+       __pPresentationModelListener->Construct();
+
+       __pContentEventListener = new (std::nothrow) ArrayList();
+       __pContentEventListener->Construct();
+
+       __pThumbnailProvider = ThumbnailProvider::GetInstance();
+
+       GalleryApp* pApp = static_cast<GalleryApp*>(GalleryApp::GetInstance());
+       const IMap* pArguments = pApp->GetAppControlArguments();
+       String operationId = pApp->GetAppControlOperationId();
+
+       if (operationId.CompareTo(APPCONTROL_OPERATION_ID_MAIN) == 0)
+       {
+               __appControlMode = APPCONTROL_MODE_MAIN;
+       }
+       else if (operationId.CompareTo(APPCONTROL_OPERATION_ID_PICK) == 0)
+       {
+               __appControlMode = APPCONTROL_MODE_PICK;
+
+               String mimeType = pApp->GetMimeType();
+               if (mimeType.IsEmpty() != true)
+               {
+                       if (mimeType.StartsWith(APPCONTROL_DATA_VIDEO, 0) == true)
+                       {
+                               __appControlMediaType = APPCONTROL_MEDIA_TYPE_VIDEO;
+                       }
+               }
+               if (pArguments != null)
+               {
+                       const String* selectionMode = static_cast<const String*>(pArguments->GetValue(String(APPCONTROL_KEY_SELECTION_MODE)));
+
+                       if (pApp->GetMimeType().StartsWith(APPCONTROL_DATA_VIDEO, 0) == true)
+                       {
+                               __appControlMediaType = APPCONTROL_MEDIA_TYPE_VIDEO;
+                       }
+
+                       if (selectionMode != null && selectionMode->CompareTo(APPCONTROL_DATA_MULTIPLE) == 0)
+                       {
+                               __appControlSelectionMode = APPCONTROL_SELECTION_MODE_MULTIPLE;
+                       }
+               }
+       }
+       else if (operationId.CompareTo(APPCONTROL_OPERATION_ID_CONFIGURE) == 0)
+       {
+               __appControlMode = APPCONTROL_MODE_SETTING;
+       }
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+void
+FileListPresentationModel::CreateInstance(void)
+{
+       AppLogDebug("ENTER");
+       __pPresentationModelInstance = new (std::nothrow) FileListPresentationModel();
+       result r = __pPresentationModelInstance->Construct();
+       if (IsFailed(r) == true)
+       {
+               delete __pPresentationModelInstance;
+               __pPresentationModelInstance = null;
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return;
+       }
+
+       std::atexit(DestroyInstance);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+FileListPresentationModel::DestroyInstance(void)
+{
+       AppLogDebug("ENTER");
+
+       delete __pThumbnailEvent;
+
+       if (__pIconListViewCache != null)
+       {
+               __pIconListViewCache->RemoveAll(true);
+               delete __pIconListViewCache;
+               __pIconListViewCache = null;
+       }
+
+       if (__pDirectoryList != null)
+       {
+               delete __pDirectoryList;
+               __pDirectoryList = null;
+       }
+
+       if (__pContentInfoList != null)
+       {
+               delete __pContentInfoList;
+               __pContentInfoList = null;
+       }
+
+       if (__pPresentationModelListener != null)
+       {
+               delete __pPresentationModelListener;
+               __pPresentationModelListener = null;
+       }
+
+       if (__pContentEventListener != null)
+       {
+               delete __pContentEventListener;
+               __pContentEventListener = null;
+       }
+
+       delete __pPresentationModelInstance;
+       __pPresentationModelInstance = null;
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+String
+FileListPresentationModel::GetFileNameFromFullPath(const String& fullPath, const bool withExt) const
+{
+       AppLogDebug("ENTER");
+       if (fullPath.CompareTo(EMPTY_SPACE) == 0)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return EMPTY_SPACE;
+       }
+
+       String delim(DIRECTORY_SEPARATOR);
+       StringTokenizer st(fullPath,delim);
+       String token;
+       while (st.HasMoreTokens())
+       {
+               st.GetNextToken(token);
+       }
+
+       if (withExt == true)
+       {
+               AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
+
+               return token;
+       }
+       else
+       {
+               String subDelim(FILE_EXT_SEPARATOR);
+               StringTokenizer subSt(token, subDelim);
+               String subToken;
+               subSt.GetNextToken(subToken);
+               AppLogDebug("EXIT 3(%s)", GetErrorMessage(GetLastResult()));
+
+               return subToken;
+       }
+}
+
+String
+FileListPresentationModel::GetDirecotyNameFromFullPath(const String& fullPath)const
+{
+       AppLogDebug("ENTER");
+       if (fullPath == null)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return null;
+       }
+       String delim(DIRECTORY_SEPARATOR);
+       StringTokenizer st(fullPath,delim);
+       String token;
+       while (st.HasMoreTokens())
+       {
+               st.GetNextToken(token);
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return token;
+}
+
+bool
+FileListPresentationModel::IsContainContentInDirectory(const String& directoryPath, ContentType contentType) const
+{
+       AppLogDebug("ENTER");
+       IListT<ContentType>* pContentTypeList = new (std::nothrow) ArrayListT<ContentType>();
+       if (&directoryPath == null || pContentTypeList == null)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return false;
+       }
+
+       if (contentType == CONTENT_TYPE_IMAGE || contentType == CONTENT_TYPE_ALL)
+       {
+               pContentTypeList->Add(CONTENT_TYPE_IMAGE);
+       }
+       if (contentType == CONTENT_TYPE_VIDEO || contentType == CONTENT_TYPE_ALL)
+       {
+               pContentTypeList->Add(CONTENT_TYPE_VIDEO);
+       }
+
+       ContentDirectory contentDirectory;
+       result r = contentDirectory.Construct(*pContentTypeList);
+       if (pContentTypeList != null)
+       {
+               delete pContentTypeList;
+       }
+       TryReturn(r == E_SUCCESS, false, "[%s] Unable to construct ContentDirectory", GetErrorMessage(r));
+
+       bool returnValue = false;
+       int pageNo = SIZE_PAGE_NO;
+       int countPerPage = SIZE_CONUNT_PER_PAGE;
+
+       IList* pContentList = contentDirectory.GetContentDirectoryItemListN(directoryPath, pageNo, countPerPage,
+                       CONTENT_INFO_ORDER, SORT_ORDER_ASCENDING);
+
+       if (pContentList == null || pContentList->GetCount() <= 0)
+       {
+               returnValue = false;
+       }
+       else
+       {
+               returnValue = true;
+       }
+
+       if (pContentList != null)
+       {
+               delete pContentList;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return returnValue;
+}
+
+result
+FileListPresentationModel::GetThumbnailInSyncCacheN(const int index, String*& pName, Bitmap*& pThumbnail)
+{
+       AppLogDebug("ENTER : index(%d)", index);
+       Bitmap* pOriginalBitmap = null;
+       Bitmap* pDestinationBitmap = null;
+       ContentInfo* pContentInfo = null;
+
+       if (__pContentInfoList != null && index < __pContentInfoList->GetCount())
+       {
+               pContentInfo = static_cast<ContentInfo*>(__pContentInfoList->GetAt(index));
+               if (pContentInfo == null)
+               {
+                       AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+                       return E_FAILURE;
+               }
+       }
+       else
+       {
+               AppLogDebug("EXIT 2 __pContentInfoList(%x) index(%d)", __pContentInfoList, index);
+               return E_FAILURE;
+       }
+
+       ThumbnailInfo* pThumbnailInfo = GetThumbnailInfoFromInternalBufferN(pContentInfo->GetContentId());
+       if (pThumbnailInfo != null)
+       {
+               pName = new (std::nothrow) String(pThumbnailInfo->GetFilePath());
+               pOriginalBitmap = pThumbnailInfo->GetBitmapN();
+       }
+
+       if ((pThumbnailInfo != null)&&(pThumbnailInfo->GetContentType() == CONTENT_TYPE_VIDEO))
+       {
+               if (pOriginalBitmap != null)
+               {
+                       pDestinationBitmap = CoverVideoOverlayedImageOnThumbnailN(*pOriginalBitmap, *pThumbnailInfo);
+                       delete pOriginalBitmap;
+               }
+       }
+       else
+       {
+               pDestinationBitmap = pOriginalBitmap;
+       }
+
+       if (pDestinationBitmap != null)
+       {
+               Bitmap* pThumbnailBgBitmap = ResourceManager::GetBitmapN(IDB_VIDEOTHUMBNAIL_BG);
+               Rectangle thumbnailRect(RECTANGLE_THUMBNAIL_OFFSET_POSION);
+               pDestinationBitmap->Scale(Dimension(RECTANGLE_THUMBNAIL_OFFSET_POSION.width - RECTANGLE_THUMBNAIL_OFFSET_POSION.x
+                               , RECTANGLE_THUMBNAIL_OFFSET_POSION.height - RECTANGLE_THUMBNAIL_OFFSET_POSION.y));
+               if (pThumbnailBgBitmap != null)
+               {
+                       pThumbnailBgBitmap->Scale(DIMENSION_REAL_ICON);
+                       pThumbnail = GetShadedBackgroundBitmapN(*pThumbnailBgBitmap, *pDestinationBitmap, thumbnailRect);
+                       delete pThumbnailBgBitmap;
+                       delete pDestinationBitmap;
+               }
+               else
+               {
+                       pThumbnail = pDestinationBitmap;
+               }
+       }
+       else
+       {
+               pThumbnail = null;
+       }
+
+       if (pThumbnailInfo != null)
+       {
+               delete pThumbnailInfo;
+       }
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+result
+FileListPresentationModel::GetThumbnailVideoInSyncCacheN(const int index,
+               String*& pName, Bitmap*& pThumbnail, String*& pDuration) const
+{
+       AppLogDebug("ENTER : index(%d)", index);
+       ContentInfo* pContentInfo = null;
+       Bitmap* pOriginalBitmap = null;
+
+       if (__pContentInfoList != null && index < __pContentInfoList->GetCount())
+       {
+               pContentInfo = static_cast<ContentInfo*>(__pContentInfoList->GetAt(index));
+               if (pContentInfo == null)
+               {
+                       AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+                       return E_FAILURE;
+               }
+       }
+       else
+       {
+               AppLogDebug("EXIT 2 __pContentInfoList(%x) index(%d)", __pContentInfoList, index);
+               return E_FAILURE;
+       }
+
+       ThumbnailInfo* pThumbnailInfo = GetThumbnailInfoFromInternalBufferN(pContentInfo->GetContentId());
+       if (pThumbnailInfo != null)
+       {
+               pName = new (std::nothrow) String(pThumbnailInfo->GetFilePath());
+               pOriginalBitmap = pThumbnailInfo->GetBitmapN();
+               pDuration = new (std::nothrow) String(CommonUtil::DurationToTimeString(pThumbnailInfo->GetDuration()));
+       }
+       else
+       {
+               pName = new (std::nothrow) String(EMPTY_SPACE);
+               pDuration = new (std::nothrow) String(CommonUtil::DurationToTimeString(0));
+       }
+
+       if (pOriginalBitmap != null)
+       {
+               Bitmap* pThumbnailBgBitmap = ResourceManager::GetBitmapN(IDB_VIDEOTHUMBNAIL_BG);
+               Rectangle thumbnailRect(RECTANGLE_VIDEO_THUMBNAIL_OFFSET_POSION);
+               pOriginalBitmap->Scale(Dimension(RECTANGLE_VIDEO_THUMBNAIL_OFFSET_POSION.width - RECTANGLE_VIDEO_THUMBNAIL_OFFSET_POSION.x
+                               , RECTANGLE_VIDEO_THUMBNAIL_OFFSET_POSION.height - RECTANGLE_VIDEO_THUMBNAIL_OFFSET_POSION.y));
+               if (pThumbnailBgBitmap != null)
+               {
+                       pThumbnailBgBitmap->Scale(Dimension(W_WIDE_THUMBNAIL, H_WIDE_THUMBNAIL));
+                       pThumbnail = GetShadedBackgroundBitmapN(*pThumbnailBgBitmap, *pOriginalBitmap, thumbnailRect);
+                       delete pThumbnailBgBitmap;
+               }
+               delete pOriginalBitmap;
+       }
+       else
+       {
+               pThumbnail = null;
+       }
+
+       if (pThumbnail != null)
+       {
+               pThumbnail->Scale(Dimension(W_WIDE_THUMBNAIL, H_WIDE_THUMBNAIL));
+       }
+
+       if (pThumbnailInfo != null)
+       {
+               delete pThumbnailInfo;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+void
+FileListPresentationModel::RequestThumbnail(const int index)
+{
+       AppLogDebug("ENTER : index(%d)", index);
+       ContentInfo* pContentInfo = null;
+
+       if (__pContentInfoList != null && index < __pContentInfoList->GetCount())
+       {
+               pContentInfo = static_cast<ContentInfo*>(__pContentInfoList->GetAt(index));
+               if (pContentInfo == null)
+               {
+                       AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+                       return;
+               }
+       }
+       else
+       {
+               AppLogDebug("EXIT 2 __pContentInfoList(%x) index(%d)", __pContentInfoList, index);
+
+               return;
+       }
+
+       __pThumbnailProvider->RequestThumbnail(pContentInfo->GetContentId(), __pThumbnailEvent);
+       AppLogDebug("EXIT");
+}
+
+void
+FileListPresentationModel::RequestThumbnail(const ContentId& contentId)
+{
+       __pThumbnailProvider->RequestThumbnail(contentId, __pThumbnailEvent);
+}
+
+void
+FileListPresentationModel::ClearThumbnailRequests(const bool appTerminating)
+{
+       AppLogDebug("ENTER");
+
+       if (__pThumbnailProvider != null)
+       {
+               __pThumbnailProvider->ClearThumbnailRequests(appTerminating);
+       }
+
+       AppLogDebug("EXIT");
+}
+
+void
+FileListPresentationModel::OnThumbnailReceivedN(IEventArg& eventArg)
+{
+       AppLogDebug("ENTER");
+
+       if (&eventArg != null)
+       {
+               ThumbnailEventArg* pThumbnailEventArg = static_cast<ThumbnailEventArg*>(&eventArg);
+               if (pThumbnailEventArg == null)
+               {
+                       AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+                       return;
+               }               
+               ThumbnailInfo* pThumbnailInfo = pThumbnailEventArg->GetThumbnailInfoN();
+               if (pThumbnailInfo == null)
+               {
+                       AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
+
+                       return;
+               }
+
+               bool isMatch = false;
+               ContentId contentId = pThumbnailInfo->GetContentId();
+
+               if (__pIconListViewCache != null)
+               {
+                       IEnumerator* pEnum = __pIconListViewCache->GetEnumeratorN();
+                       Bitmap* pBitmap = null;
+                       while (pEnum->MoveNext() == E_SUCCESS)
+                       {
+                               ThumbnailInfo* pTempThumbnailInfo = static_cast<ThumbnailInfo*>(pEnum->GetCurrent());
+
+                               if (contentId == pTempThumbnailInfo->GetContentId())
+                               {
+                                       AppLogDebug("[CHASEFIRE] PM receive (%ls)", pThumbnailInfo->GetFilePath().GetPointer());
+                                       pBitmap = pThumbnailInfo->GetBitmapN();
+                                       pTempThumbnailInfo->SetBitmap(*pBitmap);
+                                       delete pBitmap;
+
+                                       pTempThumbnailInfo->SetContentType(pThumbnailInfo->GetContentType());
+                                       pTempThumbnailInfo->SetDuration(pThumbnailInfo->GetDuration());
+                                       delete pThumbnailInfo;
+                                       isMatch = true;
+                                       break;
+                               }
+                       }
+
+                       delete pEnum;
+
+                       if (isMatch == false)
+                       {
+                               if (SIZE_ICON_LIST_CACHE <= __pIconListViewCache->GetCount())
+                               {
+                                       __pIconListViewCache->RemoveAt(0, true);
+                               }
+                               AppLogDebug("[CHASEFIRE] (all:%d) Add Thumbail(%ls)", __pIconListViewCache->GetCount(),
+                                               pThumbnailInfo->GetFilePath().GetPointer());
+                               __pIconListViewCache->Add(pThumbnailInfo);
+                       }
+               }
+
+               int index = -1;
+               int loopCount = __pContentInfoList->GetCount();
+               for (int i = 0; i < loopCount; ++i)
+               {
+                       if (contentId == (static_cast<ContentInfo*>(__pContentInfoList->GetAt(i)))->GetContentId())
+                       {
+                               index = i;
+                               break;
+                       }
+               }
+
+               IAlbumEventListener* pInterface = null;
+               IEnumerator* pEventEnum = __pPresentationModelListener->GetEnumeratorN();
+               while (pEventEnum->MoveNext() == E_SUCCESS)
+               {
+                       pInterface = static_cast<IAlbumEventListener*>(pEventEnum->GetCurrent());
+                       pInterface->OnThumbnailDecoded(index);
+               }
+               delete pEventEnum;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+FileListPresentationModel::OnContentCreated(void)
+{
+       AppLogDebug("ENTER");
+       if (__updateProgressStatus == true)
+       {
+               AppLogDebug("EXIT update in application");
+               return;
+       }
+       IFormContentUpdateEventListener* pInterface = null;
+       if (__pContentEventListener == null)
+       {
+               AppLogDebug("EXIT");
+               return;
+       }
+       IEnumerator* pEventEnum = __pContentEventListener->GetEnumeratorN();
+       while (pEventEnum->MoveNext() == E_SUCCESS)
+       {
+               pInterface = static_cast<IFormContentUpdateEventListener*>(pEventEnum->GetCurrent());
+               if (pInterface != null)
+               {
+                       pInterface->OnContentUpdated();
+               }
+       }
+       delete pEventEnum;
+       AppLogDebug("EXIT");
+}
+
+void
+FileListPresentationModel::OnContentUpdated(const ContentId& contentId)
+{
+       AppLogDebug("ENTER");
+       RequestThumbnail(contentId);
+       AppLogDebug("EXIT");
+}
+
+void
+FileListPresentationModel::OnContentUpdated(void)
+{
+       AppLogDebug("ENTER");
+       if (__updateProgressStatus == true)
+       {
+               AppLogDebug("EXIT update in application");
+               return;
+       }
+       //Clear the ImageCaches when content is updated like rotate.
+       if (__pContentEventListener->GetCount())
+       {
+               ClearImageCache();
+       }
+
+       IFormContentUpdateEventListener* pInterface = null;
+       if (__pContentEventListener == null)
+       {
+               AppLogDebug("EXIT");
+               return;
+       }
+       IEnumerator* pEventEnum = __pContentEventListener->GetEnumeratorN();
+       while (pEventEnum->MoveNext() == E_SUCCESS)
+       {
+               pInterface = static_cast<IFormContentUpdateEventListener*>(pEventEnum->GetCurrent());
+               pInterface->OnContentUpdated();
+       }
+       delete pEventEnum;
+       AppLogDebug("EXIT");
+}
+
+void
+FileListPresentationModel::OnContentDeleted(void)
+{
+       AppLogDebug("ENTER");
+       if (__updateProgressStatus == true)
+       {
+               AppLogDebug("EXIT update in application");
+               return;
+       }
+       IFormContentUpdateEventListener* pInterface = null;
+       if (__pContentEventListener == null)
+       {
+               AppLogDebug("EXIT");
+               return;
+       }
+       IEnumerator* pEventEnum = __pContentEventListener->GetEnumeratorN();
+       while (pEventEnum->MoveNext() == E_SUCCESS)
+       {
+               ClearThumbnailRequests();
+               pInterface = static_cast<IFormContentUpdateEventListener*>(pEventEnum->GetCurrent());
+               pInterface->OnContentUpdated();
+       }
+       delete pEventEnum;
+       AppLogDebug("EXIT");
+}
+
+void
+FileListPresentationModel::AddPresentationModelListener(const IAlbumEventListener* listener)
+{
+       AppLogDebug("ENTER");
+       __pPresentationModelListener->Add((Object*)listener);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+FileListPresentationModel::RemovePresentationModelListener(const IAlbumEventListener& listener)
+{
+       AppLogDebug("ENTER");
+       __pPresentationModelListener->Remove(listener);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+FileListPresentationModel::AddContentEventListener(const IFormContentUpdateEventListener* listener)
+{
+       AppLogDebug("ENTER");
+       if (__pContentEventListener != null)
+       {
+               __pContentEventListener->RemoveAll();
+               __pContentEventListener->Add((Object*)listener);
+               AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+       }
+}
+
+void
+FileListPresentationModel::RemoveContentEventListener(const IFormContentUpdateEventListener* listener)
+{
+       AppLogDebug("ENTER");
+       __pContentEventListener->Remove(*listener);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+ThumbnailInfo*
+FileListPresentationModel::GetThumbnailInfoFromInternalBufferN(const ContentId& contentId) const
+{
+       AppLogDebug("ENTER");
+       ThumbnailInfo* pThumbnailInfo = null;
+       ThumbnailInfo* pTempThumbnailInfo = null;
+       if (__pIconListViewCache != null)
+       {
+               int loopCount = __pIconListViewCache->GetCount();
+               for (int i = 0; i < loopCount; ++i)
+               {
+                       pTempThumbnailInfo = static_cast<ThumbnailInfo*>(__pIconListViewCache->GetAt(i));
+                       if (contentId == pTempThumbnailInfo->GetContentId())
+                       {
+
+                               pThumbnailInfo = new (std::nothrow) ThumbnailInfo();
+                               Bitmap* pBitmap = pTempThumbnailInfo->GetBitmapN();
+                               pThumbnailInfo->Construct(pTempThumbnailInfo->GetContentId(), pTempThumbnailInfo->GetFilePath(),
+                                               *pBitmap, pTempThumbnailInfo->GetContentType(), pTempThumbnailInfo->GetDuration());
+                               delete pBitmap;
+                               break;
+                       }
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pThumbnailInfo;
+}
+
+void
+FileListPresentationModel::ShowAnimation(void)
+{
+       IFormContentUpdateEventListener* pInterface = null;
+       IEnumerator* pEventEnum = __pContentEventListener->GetEnumeratorN();
+       while (pEventEnum->MoveNext() == E_SUCCESS)
+       {
+               pInterface = static_cast<IFormContentUpdateEventListener*>(pEventEnum->GetCurrent());
+               pInterface->ShowAnimation();
+       }
+       delete pEventEnum;
+}
+
+void
+FileListPresentationModel::StopAnimation(void)
+{
+       IFormContentUpdateEventListener* pInterface = null;
+       IEnumerator* pEventEnum = __pContentEventListener->GetEnumeratorN();
+       while (pEventEnum->MoveNext() == E_SUCCESS)
+       {
+               pInterface = static_cast<IFormContentUpdateEventListener*>(pEventEnum->GetCurrent());
+               pInterface->StopAnimation();
+       }
+       delete pEventEnum;
+}
+result
+FileListPresentationModel::DeleteContentFileList(const IList& contentIndexList)
+{
+       AppLogDebug("ENTER");
+       if (&contentIndexList == null || contentIndexList.GetCount() <= 0)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return E_SUCCESS;
+       }
+
+       IList * pContentIdList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+       int loopCount = contentIndexList.GetCount();
+       for (int i = 0; i < loopCount; ++i)
+       {
+               const Integer* pIndex = static_cast<const Integer*>(contentIndexList.GetAt(i));
+
+               if ((pIndex != null) && (pIndex->ToInt())>=0 && __pContentInfoList->GetCount() > pIndex->ToInt())
+               {
+                       pContentIdList->Add(new (std::nothrow) ContentId((static_cast<ContentInfo*>
+                                       (__pContentInfoList->GetAt(pIndex->ToInt())))->GetContentId()));
+               }
+       }
+
+       loopCount = pContentIdList->GetCount();
+       for (int i = 0; i < loopCount; ++i)
+       {
+               ContentId* pContentId = static_cast<ContentId*>(pContentIdList->GetAt(i));
+               if (pContentId != null)
+               {
+                       ContentInfo* cntInfo = __pContentManager->GetContentInfoN(*pContentId);
+                       if (cntInfo)
+                       {
+                               String filePath = cntInfo->GetContentPath();
+                               delete cntInfo;
+                               DeleteContentFile(filePath);
+                       }
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+IList*
+FileListPresentationModel::GetCollisionIndexListN(const IList& contentIndexList, const String& destDirectory)
+{
+       AppLogDebug("ENTER");
+       if (&contentIndexList == null || contentIndexList.GetCount() <= 0 || &destDirectory == null
+                       || destDirectory.IsEmpty() == true)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return null;
+       }
+
+       if (File::IsFileExist(destDirectory) == false)
+       {
+               AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
+
+               return null;
+       }
+
+       IList * pCollisionInfoList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+       ContentInfo* pContentInfo = null;
+       int loopCount = contentIndexList.GetCount();
+       for (int i = 0; i < loopCount; ++i)
+       {
+               const Integer* pIndex = static_cast<const Integer*>(contentIndexList.GetAt(i));
+
+               if ((pIndex != null) && (pIndex->ToInt()) >= 0 && __pContentInfoList->GetCount() > pIndex->ToInt())
+               {
+                       pContentInfo = const_cast<ContentInfo*>(static_cast<const ContentInfo*>(__pContentInfoList->GetAt(pIndex->ToInt())));
+                       String filePath = pContentInfo->GetContentPath();
+                       String fileName = GetFileNameFromFullPath(filePath, true);
+
+                       String destPath;
+                       if (destDirectory.EndsWith(DIRECTORY_SEPARATOR) == true)
+                       {
+                               destPath.Append(destDirectory);
+                               destPath.Append(fileName);
+                       }
+                       else
+                       {
+                               destPath.Append(destDirectory);
+                               destPath.Append(DIRECTORY_SEPARATOR);
+                               destPath.Append(fileName);
+                       }
+
+                       if (File::IsFileExist(destPath) == true)
+                       {
+                               pCollisionInfoList->Add(*(new (std::nothrow) String(pIndex->ToString() + MULTI_ITEM_SEPARATOR + fileName)));
+                       }
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pCollisionInfoList;
+}
+
+result
+FileListPresentationModel::MoveToContentFileList(const IList& contentIndexList, const String& destDirectory)
+{
+       AppLogDebug("ENTER");
+       result r = E_SUCCESS;
+       if (&contentIndexList == null || contentIndexList.GetCount() <= 0 || &destDirectory == null || destDirectory.IsEmpty() == true)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return r;
+       }
+
+       if (File::IsFileExist(destDirectory) == false)
+       {
+               Directory::Create(destDirectory, true);
+       }
+
+       delete __pContentIdList;
+       __pContentIdList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+       int loopCount = contentIndexList.GetCount();
+       for (int i = 0; i < loopCount; ++i)
+       {
+               const Integer* pIndex = static_cast<const Integer*>(contentIndexList.GetAt(i));
+
+               if ((pIndex != null) && (pIndex->ToInt())>=0 && __pContentInfoList->GetCount() > pIndex->ToInt())
+               {
+                       __pContentIdList->Add(new (std::nothrow) ContentId((static_cast<ContentInfo*>(__pContentInfoList->GetAt(pIndex->ToInt())))->GetContentId()));
+               }
+       }
+
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+result
+FileListPresentationModel::DeleteContentFile(const String& filePath)
+{
+       AppLogDebug("ENTER");
+       result r = E_SUCCESS;
+       r = File::Remove(filePath);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+result
+FileListPresentationModel::MoveToContentFile(const String& filePath, const String& destDirectory, const bool isCopyOperation)
+{
+       AppLogDebug("ENTER");
+       if (destDirectory.IsEmpty() == true)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+               return E_FAILURE;
+       }
+       result r = E_SUCCESS;
+
+       if (filePath.GetLength() < 4)
+       {
+               AppLogDebug("EXIT 3(%s)", GetErrorMessage(GetLastResult()));
+               return E_FAILURE;
+       }
+
+       String destPath;
+       if (destDirectory.EndsWith(DIRECTORY_SEPARATOR) == true)
+       {
+               destPath.Append(destDirectory);
+               destPath.Append(GetFileNameFromFullPath(filePath, true));
+       }
+       else
+       {
+               destPath.Append(destDirectory);
+               destPath.Append(DIRECTORY_SEPARATOR);
+               destPath.Append(GetFileNameFromFullPath(filePath, true));
+       }
+
+       if (destPath.CompareTo(filePath) == 0)
+       {
+               AppLogDebug("EXIT 4(%s)", GetErrorMessage(GetLastResult()));
+               return E_FAILURE;
+       }
+
+       while (File::IsFileExist(destPath) == true)
+       {
+               int index = 0;
+               r = destPath.IndexOf(FILE_EXT_SEPARATOR, 0, index);
+               if (!IsFailed(r))
+               {
+                       if (index < 0)
+                       {
+                               return E_FAILURE;
+                       }
+                       else
+                       {
+                               destPath.Insert(Math::Rand()%10, index);
+                       }
+               }
+               else
+               {
+                       return E_FAILURE;
+               }
+       }
+
+       r = File::Copy(filePath, destPath, false);
+
+       if (r == E_STORAGE_FULL)
+       {
+               File::Remove(destPath);
+       }
+
+       if (r == E_SUCCESS)
+       {
+               if (isCopyOperation == false)
+               {
+                       File::Remove(filePath);               // if Move Op remove original file
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+void
+FileListPresentationModel::ClearProviderId(void)
+{
+       __providerId.Clear();
+}
+
+result
+FileListPresentationModel::StartAppControl(const String& providerId, const String& operationId,
+               const String* pUriData, const Tizen::Base::String* pMimeType, const HashMap* pDataList,
+               IAppControlResponseListener* pListener)
+{
+       AppLogDebug("ENTER");
+       AppControl* pAc = AppManager::FindAppControlN(providerId, operationId);
+
+       ClearProviderId();
+       __providerId.Append(providerId);
+
+       if (pAc == null)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+               return E_FAILURE;
+       }
+       result r = pAc->Start(pUriData, pMimeType, pDataList, pListener);
+
+       if (r == E_SUCCESS)
+       {
+               GalleryApp* pGalleryApp = static_cast<GalleryApp*>(GalleryApp::GetInstance());
+               pGalleryApp->SetFrameEnabled(false);
+       }
+
+       delete pAc;
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+result
+FileListPresentationModel::SetCurrentAlbumInfo(const String& albumName, const IList& directoryList)
+{
+       AppLogDebug("ENTER");
+
+       if (&directoryList != null)
+       {
+               if (__pDirectoryList != null && __pDirectoryList->GetCount() > 0)
+               {
+                       bool isMatched = false;
+                       int outterLoopCount = __pDirectoryList->GetCount();
+                       int innerLoopCount = 0;
+                       for (int i = 0; i < outterLoopCount; ++i)
+                       {
+                               isMatched = false;
+                               innerLoopCount = directoryList.GetCount();
+                               for (int j = 0; j < innerLoopCount; ++j)
+                               {
+                                       if (static_cast<String*>(__pDirectoryList->GetAt(i))->CompareTo(
+                                                       *(const_cast<String*>(static_cast<const String*>(directoryList.GetAt(j))))) == 0)
+                                       {
+                                               isMatched = true;
+                                               break;
+                                       }
+                               }
+                       }
+
+                       outterLoopCount = directoryList.GetCount();
+                       for (int i = 0; i < outterLoopCount; ++i)
+                       {
+                               isMatched = false;
+                               innerLoopCount = __pDirectoryList->GetCount();
+                               for (int j = 0; j < innerLoopCount; ++j)
+                               {
+                                       if (const_cast<String*>(static_cast<const String*>(directoryList.GetAt(i)))->CompareTo(
+                                                       *(static_cast<String*>(__pDirectoryList->GetAt(j)))) == 0)
+                                       {
+                                               isMatched = true;
+                                               break;
+                                       }
+                               }
+                       }
+               }
+       }
+
+       __albumName = albumName;
+       __providerId.Clear();
+
+       if (__pDirectoryList != null)
+       {
+               delete __pDirectoryList;
+       }
+       __pDirectoryList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+
+       int loopCount = directoryList.GetCount();
+       for (int i = 0; i < loopCount; ++i)
+       {
+               __pDirectoryList->Add(new (std::nothrow) String(*(const_cast<String*>
+                       (static_cast<const String*>(directoryList.GetAt(i))))));
+       }
+
+       if (__pContentInfoList != null)
+       {
+               delete __pContentInfoList;
+               __pContentInfoList = null;
+       }
+
+       if (GetAppControlMode() == APPCONTROL_MODE_PICK)
+       {
+               AppControlMediaType appControlMediaType = GetAppControlMediaType();
+               if (appControlMediaType == APPCONTROL_MEDIA_TYPE_IMAGE)
+               {
+                       __albumContentType = CONTENT_TYPE_IMAGE;
+               }
+               else if (appControlMediaType == APPCONTROL_MEDIA_TYPE_VIDEO)
+               {
+                       __albumContentType = CONTENT_TYPE_VIDEO;
+               }
+       }
+       __pContentInfoList = GetContentInfoListInDirectoryListN(*__pDirectoryList, __albumContentType);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+result
+FileListPresentationModel::RefreshCurrentAlbumContentInfoList(const ContentType contentType)
+{
+       AppLogDebug("ENTER");
+       result r = RefreshContentInfoList(contentType);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+void
+FileListPresentationModel::AddDirectoryIfNew(const String& dirName)
+{
+
+       bool isMatched = false;
+       int dirCount = __pDirectoryList->GetCount();
+       String fullDirName;
+       fullDirName = Environment::GetMediaPath();
+       fullDirName.Append(dirName);
+
+       if (__albumName != ALL_ALBUMS_REAL_NAME) //we are not in All albums
+       {
+               return;
+       }
+
+       for (int i = 0; i < dirCount; ++i)
+       {
+               if (static_cast<String*>(__pDirectoryList->GetAt(i))->CompareTo(fullDirName) == 0)
+               {
+                       isMatched = true;
+                       break;
+               }
+       }
+       
+       if (!isMatched)
+       {
+               __pDirectoryList->Add(new (std::nothrow) String(fullDirName));
+       }
+}
+
+result
+FileListPresentationModel::RefreshContentInfoList(const ContentType contentType)
+{
+       AppLogDebug("ENTER");
+       if ((contentType != CONTENT_TYPE_ALL) && (contentType != CONTENT_TYPE_IMAGE) && (contentType != CONTENT_TYPE_VIDEO))
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return E_FAILURE;
+       }
+
+       if ((__pDirectoryList == null) || (__pDirectoryList->GetCount() <= 0))
+       {
+               AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
+
+               return E_SUCCESS;
+       }
+
+       __albumContentType = contentType;
+
+       if (__pContentInfoList != null)
+       {
+               delete __pContentInfoList;
+               __pContentInfoList = null;
+       }
+
+       __pContentInfoList = GetContentInfoListInDirectoryListN(*__pDirectoryList, __albumContentType);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+String
+FileListPresentationModel::GetCurrentAlbumName(void) const
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return __albumName;
+}
+
+void
+FileListPresentationModel::SetCurrentAlbumName(const String& albumName)
+{
+       AppLogDebug("ENTER");
+       if (&albumName == null)
+       {
+               __albumName = EMPTY_SPACE;
+       }
+       else
+       {
+               __albumName = albumName;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+ContentType
+FileListPresentationModel::GetCurrentAlbumContentType(void) const
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return __albumContentType;
+}
+
+void
+FileListPresentationModel::SetCurrentAlbumContentType(const ContentType contentType)
+{
+       AppLogDebug("ENTER");
+       __albumContentType = contentType;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+IList*
+FileListPresentationModel::GetAlbumDirectoryListN(void) const
+{
+       AppLogDebug("ENTER");
+       IList* pAlbumDirectoryList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+       if (__pDirectoryList == null)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return pAlbumDirectoryList;
+       }
+
+       String* pDirectory = null;
+       int loopCount = __pDirectoryList->GetCount();
+       for (int i = 0; i < loopCount; ++i)
+       {
+               pDirectory = static_cast<String*>(__pDirectoryList->GetAt(i));
+               pAlbumDirectoryList->Add(new (std::nothrow) String(*pDirectory));
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pAlbumDirectoryList;
+}
+
+IList*
+FileListPresentationModel::GetAlbumContentInfoList(void) const
+{
+       AppLogDebug("ENTER");
+       IList* pContentList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+       if (__pContentInfoList == null)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return pContentList;
+       }
+
+       ContentInfo* pContentInfo = null;
+       int loopCount = __pContentInfoList->GetCount();
+       for (int i = 0; i < loopCount; ++i)
+       {
+               pContentInfo = static_cast<ContentInfo*>(__pContentInfoList->GetAt(i));
+               pContentList->Add(pContentInfo);
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pContentList;
+}
+
+ContentInfo*
+FileListPresentationModel::GetContentInfo(const int index) const
+{
+       AppLogDebug("ENTER");
+       if (__pContentInfoList == null || __pContentInfoList->GetCount() == 0)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return null;
+       }
+
+       if (index < 0 || index >= __pContentInfoList->GetCount())
+       {
+               AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
+
+               return null;
+       }
+       ContentInfo* pContentInfo = static_cast<ContentInfo*>(__pContentInfoList->GetAt(index));
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pContentInfo;
+}
+
+IList* FileListPresentationModel::GetContentIdListAtIndexN(const IList& indexList) const
+{
+       AppLogDebug("ENTER");
+       IList* pContentIdList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+       int loopCount = indexList.GetCount();
+       for (int i = 0; i < loopCount; ++i)
+       {
+               const Integer* pIndex = static_cast<const Integer*>(indexList.GetAt(i));
+
+               if ((pIndex != null) && (pIndex->ToInt())>=0 && __pContentInfoList->GetCount() > pIndex->ToInt())
+               {
+                       ContentInfo* pContentInfo = const_cast<ContentInfo*>(static_cast<const ContentInfo*>(__pContentInfoList->GetAt(pIndex->ToInt())));
+                       pContentIdList->Add(new (std::nothrow) ContentId(pContentInfo->GetContentId()));
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+       return pContentIdList;
+}
+
+int
+FileListPresentationModel::GetCurrentAlbumContentInfoCount(void) const
+{
+       AppLogDebug("ENTER");
+       if (__pContentInfoList == null)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return 0;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return __pContentInfoList->GetCount();
+}
+
+ContentId
+FileListPresentationModel::GetContentInfoIndex(const int index) const
+{
+       AppLogDebug("ENTER");
+       if (__pContentInfoList == null || __pContentInfoList->GetCount() == 0)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return 0;
+       }
+
+       if (index < 0 || index >= __pContentInfoList->GetCount())
+       {
+               AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
+
+               return 0;
+       }
+       ContentInfo* pContentInfo = static_cast<ContentInfo*>(__pContentInfoList->GetAt(index));
+       ContentId contentId = pContentInfo->GetContentId();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return contentId;
+}
+
+String
+FileListPresentationModel::GetContentFilePath(const int index) const
+{
+       AppLogDebug("ENTER index(%d)", index);
+       if (__pContentInfoList == null || __pContentInfoList->GetCount() == 0)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return EMPTY_SPACE;
+       }
+
+       if (index < 0 || index >= __pContentInfoList->GetCount())
+       {
+               AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
+
+               return EMPTY_SPACE;
+       }
+
+       ContentInfo* pContentInfo = static_cast<ContentInfo*>(__pContentInfoList->GetAt(index));
+       String contentPath = pContentInfo->GetContentPath();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return contentPath;
+}
+
+Bitmap*
+FileListPresentationModel::CoverVideoOverlayedImageOnThumbnailN(Bitmap& thumbnail,
+               const ThumbnailInfo& thumbmailInfo)
+{
+       AppLogDebug("ENTER");
+       Bitmap* pOverlayedImage = null;
+
+       if (&thumbmailInfo != null)
+       {
+               long duration = thumbmailInfo.GetDuration();
+
+               Canvas mainCanvas;
+               if (&thumbnail != null)
+               {
+                       BufferInfo bufferInfo;
+                       thumbnail.Lock(bufferInfo, INFINITE);
+                       thumbnail.Unlock();
+                       mainCanvas.Construct(bufferInfo);
+               }
+               else
+               {
+                       Rectangle mainRect(0, 0, W_DEFAULT_THUMBNAIL, H_DEFAULT_THUMBNAIL);
+                       mainCanvas.Construct(mainRect);
+                       mainCanvas.FillRectangle(Color::GetColor(COLOR_ID_BLACK), mainRect);
+               }
+
+               Rectangle playRect(GAP_W_PLAY_FG, GAP_H_PLAY_FG, W_PLAY_FG, H_PLAY_FG);
+               Bitmap* playBitmap = ResourceManager::GetBitmapN(IDB_VIDEOTHUMBNAIL_PLAY);
+               if (playBitmap != null)
+               {
+                       mainCanvas.DrawBitmap(playRect, *playBitmap);
+                       delete playBitmap;
+               }
+
+               Canvas durCanvas;
+               Rectangle durSize(0, 0, W_DURATION, H_DURATION);
+               Rectangle durRect(0, GAP_H_DURATION, W_DURATION, H_DURATION);
+               Color durColor(COLOR_DURATION_BG);
+               durColor.SetAlpha(ALPHA_DURATION);
+               durCanvas.Construct(durSize);
+               durCanvas.FillRectangle(durColor, durSize);
+               Font durFont;
+               durFont.Construct(FONT_STYLE_PLAIN, FONT_SIZE_DURATION);
+               durCanvas.SetFont(durFont);
+               durCanvas.DrawText(Point(W_DURATION_TEXT, H_DURATION_TEXT),
+                               CommonUtil::DurationToTimeString(duration), COLOR_TEXT_OUTLINE);
+               Bitmap durBitmap;
+               durBitmap.Construct(durCanvas, durCanvas.GetBounds());
+               mainCanvas.DrawBitmap(durRect, durBitmap);
+
+               pOverlayedImage = new (std::nothrow) Bitmap();
+               pOverlayedImage->Construct(mainCanvas, mainCanvas.GetBounds());
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pOverlayedImage;
+}
+
+Bitmap*
+FileListPresentationModel::GetShadedBackgroundBitmapN(Bitmap& bgBitmap,
+               const Bitmap& originalBitmap, const Rectangle& originalBitmapPosition) const
+{
+       AppLogDebug("ENTER");
+       if (&originalBitmap == null || &originalBitmap == null)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return null;
+       }
+
+       BufferInfo bufferInfo;
+       bgBitmap.Lock(bufferInfo, INFINITE);
+       bgBitmap.Unlock();
+       Canvas mainCanvas;
+       mainCanvas.Construct(bufferInfo);
+       mainCanvas.Clear();
+       mainCanvas.DrawBitmap(originalBitmapPosition, originalBitmap);
+
+       Bitmap* pMainImage = new (std::nothrow) Bitmap();
+       pMainImage->Construct(mainCanvas,mainCanvas.GetBounds());
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pMainImage;
+}
+
+IList*
+FileListPresentationModel::GetContentInfoListInDirectoryListN(const IList& contentDirectoryList,
+               ContentType contentType)const
+{
+       AppLogDebug("ENTER");
+       IList* pContentList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+
+       if ((&contentDirectoryList == null) || (contentDirectoryList.GetCount() == 0)
+                       || ((contentType != CONTENT_TYPE_IMAGE) && (contentType != CONTENT_TYPE_VIDEO) && (contentType != CONTENT_TYPE_ALL)))
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+               return pContentList;
+       }
+
+       ContentDirectory contentDirectory;
+       IListT<ContentType>* pContentTypeList = new (std::nothrow) ArrayListT<ContentType>();
+       if (contentType == CONTENT_TYPE_IMAGE || contentType == CONTENT_TYPE_ALL)
+       {
+               pContentTypeList->Add(CONTENT_TYPE_IMAGE);
+       }
+       if (contentType == CONTENT_TYPE_VIDEO || contentType == CONTENT_TYPE_ALL)
+       {
+               pContentTypeList->Add(CONTENT_TYPE_VIDEO);
+       }
+       result r = contentDirectory.Construct(*pContentTypeList);
+       delete pContentTypeList;
+
+       if (r == E_SUCCESS)
+       {
+               int pageNo = SIZE_PAGE_NO;
+               int countPerPage = SIZE_CONUNT_PER_PAGE;
+               String* pContentDirectory = null;
+
+               int loopCount = contentDirectoryList.GetCount();
+               for (int i = 0; i < loopCount; ++i)
+               {
+                       IList* pIList = null;
+                       pContentDirectory = const_cast<String*>(static_cast<const String*>(contentDirectoryList.GetAt(i)));
+                       if (pContentDirectory != null)
+                       {
+                               pIList = contentDirectory.GetContentDirectoryItemListN(*pContentDirectory, pageNo, countPerPage,
+                                               CONTENT_INFO_ORDER, SORT_ORDER_NONE);
+
+                               if (pIList != null)
+                               {
+                                       pContentList->AddItems(*pIList);
+                               }
+                       }
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pContentList;
+}
+
+String
+FileListPresentationModel::ConvertToAlbumName(const String& targetPath)const
+{
+       AppLogDebug("ENTER");
+       String albumName;
+       if (&targetPath == null || targetPath.GetLength() == 0)
+       {
+               return albumName;
+       }
+
+       String mediaPath = RESERVED_MEDIA_PATH;
+       int length = mediaPath.GetLength();
+       mediaPath.Remove(length-1,1);
+
+
+       if (targetPath == RESERVED_CAMERA_PATH || targetPath == RESERVED_CAMERA_PATH_EXT)
+       {
+               albumName = ResourceManager::GetString(L"IDS_MEDIABR_BODY_CAMERA_ROLL_ABB");
+       }
+       else if (targetPath == RESERVED_DOWNLOAD_PATH)
+       {
+               albumName = ResourceManager::GetString(L"IDS_COM_BODY_DOWNLOADS");
+       }
+       else if (targetPath == mediaPath)
+       {
+
+               albumName = ResourceManager::GetString(L"IDS_MEDIABR_POP_NO_NAME");
+       }
+       else
+       {
+               String directoryName = GetDirecotyNameFromFullPath(targetPath);
+               albumName = directoryName;
+       }
+
+       return albumName;
+}
+
+AppControlMode
+FileListPresentationModel::GetAppControlMode(void) const
+{
+       AppLogDebug("Enter");
+       AppLogDebug("Exit");
+
+       return __appControlMode;
+}
+
+AppControlMediaType
+FileListPresentationModel::GetAppControlMediaType(void) const
+{
+       AppLogDebug("Enter");
+       AppLogDebug("Exit");
+
+       return __appControlMediaType;
+}
+
+AppControlSelectionMode
+FileListPresentationModel::GetAppControlSelectionMode(void) const
+{
+       AppLogDebug("Enter");
+       AppLogDebug("Exit");
+
+       return __appControlSelectionMode;
+}
+
+void
+FileListPresentationModel::SetUpdateProgressStatus(const bool status)
+{
+       AppLogDebug("ENTER status = %d",status);
+       __updateProgressStatus = status;
+       AppLogDebug("EXIT");
+}
+
+result
+FileListPresentationModel::RotateImage(const Tizen::Content::ContentId& contentId, RotateMode rotateMode)
+{
+       result r = E_SUCCESS;
+       ImageBuffer rotateBuffer;
+       ImageBuffer* pRotatedBuffer = null;
+       ImageFormat imageFormat;
+       Image img;
+       ContentInfo* cntInfo = __pContentManager->GetContentInfoN(contentId);
+       if (!cntInfo)
+       {
+               return E_FAILURE;
+       }
+       String filePath = cntInfo->GetContentPath();
+       delete cntInfo;
+
+       ContentType contentType = ContentManagerUtil::CheckContentType(filePath);
+       if (contentType == CONTENT_TYPE_VIDEO)
+       {
+               return r;
+       }
+
+       r = img.Construct();
+
+       if (r == E_SUCCESS)
+       {
+               imageFormat = img.GetImageFormat(filePath);
+
+               r = rotateBuffer.Construct(filePath);
+               if (r == E_SUCCESS)
+               {
+                       if (rotateMode == ROTATE_MODE_RIGHT)
+                       {
+                               pRotatedBuffer = rotateBuffer.RotateN(IMAGE_ROTATION_90);
+                       }
+                       else
+                       {
+                               pRotatedBuffer = rotateBuffer.RotateN(IMAGE_ROTATION_270);
+                       }
+               }
+
+               if (pRotatedBuffer != null)
+               {
+                       r = pRotatedBuffer->EncodeToFile(filePath, imageFormat, true, 100);
+                       delete pRotatedBuffer;
+                       ContentManager::ScanFile(filePath);
+               }
+       }
+
+       return r;
+}
+
+void
+FileListPresentationModel::ClearImageCache(void)
+{
+       AppLogDebug("ENTER");
+
+       if(__pIconListViewCache != null)
+       {
+               bool clearThumbnailReq = true;
+               while(__pIconListViewCache->GetCount() != 0)
+               {
+                       //This is to Clear the Thumbnail Reuqests only Once
+                       if(clearThumbnailReq == true)
+                       {
+                               ClearThumbnailRequests();
+                               clearThumbnailReq = false;
+                       }
+                       __pIconListViewCache->RemoveAt(0, true);
+               }
+       }
+       AppLogDebug("EXIT");
+}
+
+void
+FileListPresentationModel::OnDeviceStateChanged(DeviceType deviceType, const Tizen::Base::String& state)
+{
+       AppLogDebug("ENTER");
+       if (deviceType == DEVICE_TYPE_STORAGE_CARD && state == DEVICE_STORAGE_CARD_UNMOUNTED)
+       {
+               IFormContentUpdateEventListener* pInterface = null;
+               IEnumerator* pEventEnum = __pContentEventListener->GetEnumeratorN();
+               while (pEventEnum->MoveNext() == E_SUCCESS)
+               {
+                       pInterface = static_cast<IFormContentUpdateEventListener*>(pEventEnum->GetCurrent());
+                       pInterface->OnContentUpdated();
+               }
+               delete pEventEnum;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
diff --git a/src/GlFileMoveTimer.cpp b/src/GlFileMoveTimer.cpp
new file mode 100644 (file)
index 0000000..818436f
--- /dev/null
@@ -0,0 +1,282 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               FileMoveTimer.cpp
+ * @brief              This is the source file for FileMoveTimer class.
+ */
+
+#include <FBase.h>
+#include <FContent.h>
+#include <FMedia.h>
+#include <FSystem.h>
+#include <FUi.h>
+
+#include "GlFileListPresentationModel.h"
+#include "GlFileMoveTimer.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Base::Utility;
+using namespace Tizen::Content;
+using namespace Tizen::Io;
+using namespace Tizen::System;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+FileMoveTimer::FileMoveTimer(String& destDirectory, IList* list, FileListPresentationModel* presentationModel,
+               IFileOpInvalidateListener* pInvalidate, bool isCopyOperation)
+       : GlTimerBase(pInvalidate, FILE_ACTION_MOVE)
+       , __pMoveIndexList(list)
+       , __moveToDir(destDirectory)
+       , __isCopyOperation(false)
+       , __pPresentationModel(presentationModel)
+       , __scanDirMap(SingleObjectDeleter)
+       , __pContentManager(null)
+{
+       AppLogDebug("ENTER");
+       __scanDirMap.Construct();
+       DeviceManager::AddDeviceEventListener(DEVICE_TYPE_STORAGE_CARD, *this);
+       AppLogDebug("EXIT");
+}
+
+FileMoveTimer::~FileMoveTimer(void)
+{
+       AppLogDebug("ENTER");
+       DeviceManager::RemoveDeviceEventListener(DEVICE_TYPE_STORAGE_CARD, *this);
+       ScanDirectories();
+       delete __pMoveIndexList;
+       delete __pContentManager;
+       AppLogDebug("EXIT");
+}
+
+IList *
+FileMoveTimer::TimerStart(void)
+{
+       AppLogDebug("ENTER");
+       if (&__moveToDir == null || __moveToDir.IsEmpty())
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+               return null;
+       }
+
+       if (__pMoveIndexList == null || __pMoveIndexList->GetCount() <= 0)
+       {
+               AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
+               return null;
+       }
+
+       if (__pMoveIndexList->GetCount() > 0)
+       {
+               __pContentManager = new (std::nothrow) ContentManager();
+               __pContentManager->Construct();
+               if (__isCopyOperation == true)
+               {
+                       SetActionMode(FILE_ACTION_COPY);
+               }
+               if (File::IsFileExist(__moveToDir) == false)
+               {
+                       result r = Directory::Create(__moveToDir, true);
+                       AppLog("The directory create result is 2(%s)", GetErrorMessage(r));
+
+                       if ( r == E_STORAGE_FULL)
+                       {
+                               return null;
+                       }
+
+               }
+               AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+               IList* pCntIdList = __pPresentationModel->GetContentIdListAtIndexN(*__pMoveIndexList);
+               return pCntIdList;
+       }
+       else
+       {
+               return null;
+       }
+}
+
+result
+FileMoveTimer::TimerExpired(const Object* contentId)
+{
+       AppLogDebug("ENTER");
+       const ContentId* cntId = static_cast<const ContentId*>(contentId);
+       if(cntId == null)
+       {
+               return E_FAILURE;
+       }
+       ContentInfo* cntInfo = __pContentManager->GetContentInfoN(*cntId);
+       if (cntInfo)
+       {
+               String filePath = cntInfo->GetContentPath();
+               delete cntInfo;
+               result r = __pPresentationModel->MoveToContentFile(filePath, __moveToDir, __isCopyOperation);
+               if (!IsFailed(r))
+               {
+                       if (__isCopyOperation == false)
+                       {
+                               //For Move operation, add the directory being moved from for scanning
+                               String dirPath;
+                               int index =0;
+                               result r = filePath.LastIndexOf(DIRECTORY_SEPARATOR, filePath.GetLength() - 1, index);
+                               TryReturn(r == E_SUCCESS, false, "[%s] Unable to get Dirpath", GetErrorMessage(r));
+                               filePath.SubString(0, index, dirPath);
+                               if(!__scanDirMap.ContainsKey(dirPath))
+                               {
+                                       __scanDirMap.Add(new String(dirPath), new Integer(0));
+                               }
+                       }
+                       if (!__scanDirMap.ContainsKey(__moveToDir))
+                       {
+                               __scanDirMap.Add(new String(__moveToDir), new Integer(0));
+                       }
+               }
+               return r;
+       }
+       return E_FAILURE;
+}
+
+result
+FileMoveTimer::ScanDirectories(void)
+{
+       AppLogDebug("ENTER");
+       RequestId reqId;
+       result r = E_FAILURE;
+       if (__scanDirMap.GetCount() > 0)
+       {
+               AppLogDebug("Print AlbumScanMoveToDirPath 2(%d)", __scanDirMap.GetCount());
+               IMapEnumerator* pMapEnum = __scanDirMap.GetMapEnumeratorN();
+               String* pKey = null;
+               while (pMapEnum->MoveNext() == E_SUCCESS)
+               {
+                       pKey = static_cast< String* > (pMapEnum->GetKey());
+                       r = ContentManager::ScanDirectory(*(pKey), true, null, reqId);
+               }
+               __scanDirMap.RemoveAll();
+               delete pMapEnum;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(r));
+       return r;
+}
+
+void
+FileMoveTimer::TimerCancel(int, enum FileActionCancelRes res)
+{
+       AppLogDebug("ENTER");
+       DeviceManager::RemoveDeviceEventListener(DEVICE_TYPE_STORAGE_CARD, *this);
+       if (res == CANCEL_USER || (res == CANCEL_SYS_ERROR && GetMovedCount() > 0) )
+       {
+               String albumName = __pPresentationModel->ConvertToAlbumName(__moveToDir);
+
+               if (albumName != EMPTY_SPACE)
+               {
+                       IList* pDirectoryList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+                       pDirectoryList->Add(new (std::nothrow) String(__moveToDir));
+                       __pPresentationModel->SetCurrentAlbumInfo(albumName, *pDirectoryList);
+                       __pPresentationModel->SetCurrentAlbumContentType(CONTENT_TYPE_ALL);
+                       delete pDirectoryList;
+
+                       SceneManager* pSceneManager = SceneManager::GetInstance();
+                       pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALL_LIST));
+               }
+       }
+       else if (res == CANCEL_SYS_ERROR && GetMovedCount() == 0)
+       {
+               if (__isCopyOperation == true)
+               {
+                       MessageBox messageBox;
+                       messageBox.Construct(L"", L"Unable to copy files.",
+                                       MSGBOX_STYLE_NONE, 3000);
+                       int modalResult;
+                       messageBox.ShowAndWait(modalResult);
+               }
+       }
+       AppLogDebug("EXIt");
+}
+
+int
+FileMoveTimer::GetDirScanCount()
+{
+       AppLogDebug("ENTER");
+       IMapEnumerator* pMapEnum = __scanDirMap.GetMapEnumeratorN();
+       String* pKey = null;
+       while (pMapEnum->MoveNext() == E_SUCCESS)
+       {
+               pKey = static_cast< String* > (pMapEnum->GetKey());
+               if (File::IsFileExist(*pKey) == false)
+               {
+                       __scanDirMap.Remove(*pKey);
+               }
+       }
+       delete pMapEnum;
+       return __scanDirMap.GetCount();
+}
+
+void
+FileMoveTimer::TimerComplete(int, enum FileActionCompleteRes res)
+{
+       AppLogDebug("ENTER");
+       DeviceManager::RemoveDeviceEventListener(DEVICE_TYPE_STORAGE_CARD, *this);
+       String albumName = __pPresentationModel->ConvertToAlbumName(__moveToDir);
+
+       if (albumName != EMPTY_SPACE)
+       {
+               IList* pDirectoryList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+               pDirectoryList->Add(new (std::nothrow) String(__moveToDir));
+               __pPresentationModel->SetCurrentAlbumInfo(albumName, *pDirectoryList);
+               __pPresentationModel->SetCurrentAlbumContentType(CONTENT_TYPE_ALL);
+               delete pDirectoryList;
+
+               SceneManager* pSceneManager = SceneManager::GetInstance();
+               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALL_LIST));
+       }
+       AppLogDebug("EXIt");
+}
+
+void
+FileMoveTimer::SetCopy(void)
+{
+       __isCopyOperation = true;
+}
+
+void
+FileMoveTimer::ClearCopy(void)
+{
+       __isCopyOperation = false;
+}
+
+
+void
+FileMoveTimer::OnDeviceStateChanged(DeviceType deviceType, const Tizen::Base::String& state)
+{
+       AppLogDebug("ENTER");
+       if (deviceType == DEVICE_TYPE_STORAGE_CARD && state == DEVICE_STORAGE_CARD_UNMOUNTED)
+       {
+               String sdcPath = Environment::GetExternalStoragePath();
+               IMapEnumerator* pMapEnum = __scanDirMap.GetMapEnumeratorN();
+               String* pKey = null;
+               while (pMapEnum->MoveNext() == E_SUCCESS)
+               {
+                       pKey = static_cast< String* > (pMapEnum->GetKey());
+                       if (pKey->StartsWith(sdcPath, 0))
+                       {
+                               __scanDirMap.Remove(*pKey);
+                       }
+               }
+               delete pMapEnum;
+       }
+       AppLogDebug("EXIT");
+}
diff --git a/src/GlFileUpdateTimer.cpp b/src/GlFileUpdateTimer.cpp
new file mode 100644 (file)
index 0000000..1ef83cc
--- /dev/null
@@ -0,0 +1,211 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlFileUpdateTimer.cpp
+ * @brief              This is the source file for FileUpdateTimer class.
+ */
+
+#include <FIo.h>
+
+#include "GlFileUpdateTimer.h"
+#include "GlFileListPresentationModel.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Base::Utility;
+using namespace Tizen::Content;
+using namespace Tizen::Io;
+using namespace Tizen::System;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+FileUpdateTimer::FileUpdateTimer(Tizen::Base::Collection::IList* pDelList
+       , IContentFileUpdateManager* pFDM
+       , IFileOpInvalidateListener* invalidate
+       , FileActionMode actionId
+       , RotateMode rotateMode)
+       : GlTimerBase(invalidate, actionId)
+       , __pUpdateIndexList(pDelList)
+       , __pFileUpdateManager(pFDM)
+       , __rotateMode(rotateMode)
+       , __scanDirMap(SingleObjectDeleter)
+       , __pContentManager(null)
+{
+       __scanDirMap.Construct();
+       DeviceManager::AddDeviceEventListener(DEVICE_TYPE_STORAGE_CARD, *this);
+}
+
+FileUpdateTimer::~FileUpdateTimer(void)
+{
+       AppLogDebug("ENTER");
+       DeviceManager::RemoveDeviceEventListener(DEVICE_TYPE_STORAGE_CARD, *this);
+       ScanDirectories();
+       delete __pUpdateIndexList;
+       delete __pContentManager;
+       AppLogDebug("EXIT");
+}
+
+IList *
+FileUpdateTimer::TimerStart(void)
+{
+       AppLogDebug("ENTER");
+       __pContentManager = new (std::nothrow) ContentManager();
+       __pContentManager->Construct();
+       IList* pCntIdList = __pFileUpdateManager->GetContentIdListAtIndexN(*__pUpdateIndexList);
+       AppLogDebug("EXIT");
+       return pCntIdList;
+}
+
+result
+FileUpdateTimer::TimerExpired(const Object* contentId)
+{
+       AppLogDebug("ENTER");
+       if (_actionId == FILE_ACTION_DELETE)
+       {
+               const ContentId* cntId = static_cast<const ContentId*>(contentId);
+               if(cntId == null)
+               {
+                       return E_FAILURE;
+               }
+               ContentInfo* cntInfo = __pContentManager->GetContentInfoN(*cntId);
+               if (cntInfo)
+               {
+                       String filePath = cntInfo->GetContentPath();
+                       delete cntInfo;
+                       result r = __pFileUpdateManager->DeleteContentFile(filePath);
+                       if (!IsFailed(r))
+                       {
+                               String dirPath;
+                               int index =0;
+                               result r = filePath.LastIndexOf(DIRECTORY_SEPARATOR, filePath.GetLength() - 1, index);
+                               TryReturn(r == E_SUCCESS, false, "[%s] Unable to get Dirpath", GetErrorMessage(r));
+                               filePath.SubString(0, index, dirPath);
+                               if(!__scanDirMap.ContainsKey(dirPath))
+                               {
+                                       __scanDirMap.Add(new String(dirPath), new Integer(0));
+                               }
+                       }
+                       return r;
+               }
+               else
+               {
+                       return E_FAILURE;
+               }
+       }
+       else
+       {
+               result r = E_SUCCESS;
+               const ContentId* cntId = static_cast<const ContentId*>(contentId);
+               if (contentId != null)
+               {
+                   r = __pFileUpdateManager->RotateImage(*cntId, __rotateMode);
+                   if ( r == E_SUCCESS )
+                   {
+                       __pFileUpdateManager->RequestThumbnail(*cntId); // do not request thumbnail for video files
+                   }
+                   else
+                   {
+                       return r;
+                   }
+               }
+               return r;
+       }
+       AppLogDebug("EXIT");
+}
+
+result
+FileUpdateTimer::ScanDirectories(void)
+{
+       AppLogDebug("ENTER");
+       RequestId reqId;
+       result r = E_SUCCESS;
+       if (_actionId == FILE_ACTION_DELETE)
+       {
+               int scanCount = __scanDirMap.GetCount();
+               if( scanCount == 0)
+               {
+                       return r;
+               }
+               IMapEnumerator* pMapEnum = __scanDirMap.GetMapEnumeratorN();
+               String* pKey = null;
+               while (pMapEnum->MoveNext() == E_SUCCESS)
+               {
+                       pKey = static_cast< String* > (pMapEnum->GetKey());
+                       r = ContentManager::ScanDirectory(*(pKey), true, null, reqId);
+               }
+               __scanDirMap.RemoveAll();
+               AppLogDebug("EXIT(%s)", GetErrorMessage(r));
+               return r;
+       }
+       else
+       {
+               AppLogDebug("EXIT, nothing to be done");
+               return E_SUCCESS;
+       }
+}
+
+int
+FileUpdateTimer::GetDirScanCount()
+{
+       IMapEnumerator* pMapEnum = __scanDirMap.GetMapEnumeratorN();
+       String* pKey = null;
+       while (pMapEnum->MoveNext() == E_SUCCESS)
+       {
+               pKey = static_cast< String* > (pMapEnum->GetKey());
+               if (File::IsFileExist(*pKey) == false)
+               {
+                       __scanDirMap.Remove(*pKey);
+               }
+       }
+       delete pMapEnum;
+       return __scanDirMap.GetCount();
+}
+
+void
+FileUpdateTimer::OnDeviceStateChanged(DeviceType deviceType, const Tizen::Base::String& state)
+{
+       AppLogDebug("ENTER");
+       if (deviceType == DEVICE_TYPE_STORAGE_CARD && state == DEVICE_STORAGE_CARD_UNMOUNTED &&
+                       _actionId == FILE_ACTION_DELETE)
+       {
+               String sdcPath = Environment::GetExternalStoragePath();
+               IMapEnumerator* pMapEnum = __scanDirMap.GetMapEnumeratorN();
+               String* pKey = null;
+               while (pMapEnum->MoveNext() == E_SUCCESS)
+               {
+                       pKey = static_cast< String* > (pMapEnum->GetKey());
+                       if (pKey->StartsWith(sdcPath, 0))
+                       {
+                               __scanDirMap.Remove(*pKey);
+                       }
+               }
+               delete pMapEnum;
+       }
+       AppLogDebug("EXIT");
+}
+
+void
+FileUpdateTimer::TimerCancel(int, enum FileActionCancelRes res)
+{
+       DeviceManager::RemoveDeviceEventListener(DEVICE_TYPE_STORAGE_CARD, *this);
+}
+void
+FileUpdateTimer::TimerComplete(int, enum FileActionCompleteRes res)
+{
+       DeviceManager::RemoveDeviceEventListener(DEVICE_TYPE_STORAGE_CARD, *this);
+}
diff --git a/src/GlFormFactory.cpp b/src/GlFormFactory.cpp
new file mode 100644 (file)
index 0000000..f4161f2
--- /dev/null
@@ -0,0 +1,109 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlFormFactory.cpp
+ * @brief              This is the implementation file for FormFactory class.
+ */
+
+#include "GlAlbumListEditorForm.h"
+#include "GlAlbumListForm.h"
+#include "GlAlbumNameEditorForm.h"
+#include "GlFileListEditorForm.h"
+#include "GlFileListForm.h"
+#include "GlFormFactory.h"
+#include "GlImageCropForm.h"
+#include "GlSettingMainForm.h"
+#include "GlTypes.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+FormFactory::FormFactory(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+FormFactory::~FormFactory(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+Form*
+FormFactory::CreateFormN(const String& formId, const SceneId& sceneId)
+{
+       AppLogDebug("ENTER");
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       AppAssert(pSceneManager);
+       Form* pNewForm = null;
+
+       if (formId == IDC_FORM_ALBUM_LIST)
+       {
+               AlbumListForm* pForm = new (std::nothrow) AlbumListForm();
+               pForm->Initialize();
+               pSceneManager->AddSceneEventListener(sceneId, *pForm);
+               pNewForm = pForm;
+       }
+       else if (formId == IDC_FORM_ALBUM_LIST_EDITOR)
+       {
+               AlbumListEditorForm* pForm = new (std::nothrow) AlbumListEditorForm();
+               pForm->Initialize();
+               pSceneManager->AddSceneEventListener(sceneId, *pForm);
+               pNewForm = pForm;
+       }
+       else if (formId == IDC_FORM_ALBUM_NAME_EDITOR)
+       {
+               AlbumNameEditorForm* pForm = new (std::nothrow) AlbumNameEditorForm();
+               pForm->Initialize();
+               pSceneManager->AddSceneEventListener(sceneId, *pForm);
+               pNewForm = pForm;
+       }
+       else if (formId == IDC_FORM_FILE_LIST)
+       {
+               FileListForm* pForm = new (std::nothrow) FileListForm();
+               pForm->Initialize();
+               pNewForm = pForm;
+       }
+       else if (formId == IDC_FORM_FILE_LIST_EDITOR)
+       {
+               FileListEditorForm* pForm = new (std::nothrow) FileListEditorForm();
+               pForm->Initialize();
+               pSceneManager->AddSceneEventListener(sceneId, *pForm);
+               pNewForm = pForm;
+       }
+       else if (formId == IDC_FORM_SETTING_MAIN)
+       {
+               SettingMainForm* pForm = new (std::nothrow) SettingMainForm();
+               pForm->Initialize();
+               pSceneManager->AddSceneEventListener(sceneId, *pForm);
+               pNewForm = pForm;
+       }
+       else if (formId == IDC_FORM_IMAGE_CROP)
+       {
+               ImageCropForm* pForm = new (std::nothrow) ImageCropForm();
+               pForm->Initialize();
+               pSceneManager->AddSceneEventListener(sceneId, *pForm);
+               pNewForm = pForm;
+       }
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pNewForm;
+}
diff --git a/src/GlGalleryApp.cpp b/src/GlGalleryApp.cpp
new file mode 100644 (file)
index 0000000..8428b1c
--- /dev/null
@@ -0,0 +1,257 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlGalleryApp.cpp
+ * @brief              This is the implementation file for GalleryApp class.
+ */
+
+#include <FUi.h>
+#include "GlAlbumListPresentationModel.h"
+#include "GlContentUpdateEventListener.h"\r
+#include "GlFileListPresentationModel.h"
+#include "GlGalleryApp.h"
+#include "GlMainFrame.h"
+#include "GlSettingPresentationModel.h"
+#include "GlTypes.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Base::Runtime;
+using namespace Tizen::Base::Utility;
+using namespace Tizen::System;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+GalleryApp::GalleryApp(void)
+       : __requestId(0)
+       , __pArguments(null)
+       , __appControlResult(APP_CTRL_RESULT_SUCCEEDED)
+       , __frameActivated(false)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+GalleryApp::~GalleryApp(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+UiApp*
+GalleryApp::CreateInstance(void)
+{
+       AppLogDebug("ENTER");
+       UiApp* pUiApp = new (std::nothrow) GalleryApp();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pUiApp;
+}
+
+String
+GalleryApp::GetAppControlOperationId(void) const
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return __operationId;
+}
+
+String
+GalleryApp::GetMimeType(void) const
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+       return __mimeType;
+}
+
+const IMap*
+GalleryApp::GetAppControlArguments(void) const
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return __pArguments;
+}
+
+void
+GalleryApp::SendAppControlResult(const AppCtrlResult appControlResult, const IMap* pExtraData)
+{
+       AppLogDebug("ENTER");
+       AppControlProviderManager* pAppManager = AppControlProviderManager::GetInstance();
+       result r = pAppManager->SendAppControlResult(__requestId, appControlResult, pExtraData);
+       if (r == E_MAX_EXCEEDED)
+       {
+               MessageBox messageBox;
+               messageBox.Construct(L"", ResourceManager::GetString(L"IDS_RCS_BODY_MAXIMUM_NUMBER_OF_FILES_EXCEEDED"),
+                               MSGBOX_STYLE_NONE, 3000);
+               int modalResult;
+               messageBox.ShowAndWait(modalResult);
+       }
+
+       AppLogDebug("appControlResult is %d", appControlResult);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+bool
+GalleryApp::OnAppInitializing(AppRegistry& appRegistry)
+{
+       AppLogDebug("ENTER");
+       AppControlProviderManager::GetInstance()->SetAppControlProviderEventListener(this);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return true;
+}
+
+bool
+GalleryApp::OnAppInitialized(void)
+{
+       AppLogDebug("ENTER");
+       MainFrame* pMainFrame = new (std::nothrow) MainFrame();
+       pMainFrame->Construct();
+       AddFrame(*pMainFrame);
+
+       SettingInfo::AddSettingEventListener(*this);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return true;
+}
+
+bool
+GalleryApp::OnAppTerminating(AppRegistry& appRegistry, bool forcedTermination)
+{
+       AppLogDebug("ENTER");\r
+       ContentUpdateEventListener* pContentListener = ContentUpdateEventListener::GetInstance();\r
+       if (pContentListener)\r
+       {\r
+               pContentListener->RemoveContentListener();\r
+       }\r
+       AlbumListPresentationModel* pAlbumListPresentationModel = AlbumListPresentationModel::GetInstance();
+       if (pAlbumListPresentationModel != null)
+       {
+               pAlbumListPresentationModel->ClearThumbnailRequests(true);
+       }
+       FileListPresentationModel* pFileListPresentationModel = FileListPresentationModel::GetInstance();
+       if (pFileListPresentationModel != null)
+       {
+               pFileListPresentationModel->ClearThumbnailRequests(true);
+       }
+
+       delete __pArguments;
+       __pArguments = null;
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return true;
+}
+
+void
+GalleryApp::OnForeground(void)
+{
+       AppLogDebug("ENTER");
+       static bool bFirst = true;
+       if (bFirst)
+       {
+               bFirst = false;
+               return;
+       }
+
+       MainFrame* pMainFrame = dynamic_cast<MainFrame*>(GetFrameAt(0));
+       if (pMainFrame)
+       {
+               pMainFrame->SetEnabled(true);
+               pMainFrame->Invalidate(true);
+       }
+
+       ContentUpdateEventListener* pContentListener = ContentUpdateEventListener::GetInstance();
+       if (pContentListener->GetChangeNotificationStatus() == true)
+       {
+               pContentListener->ResumeOperation();
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+GalleryApp::OnAppControlRequestReceived(RequestId reqId, const String& operationId,
+               const String* pUriData, const String* pMimeType, const IMap* pExtraData)
+{
+       AppLogDebug("ENTER");
+       __requestId = reqId;
+       __operationId = operationId;
+
+       if (pMimeType != null)
+       {
+               __mimeType = *pMimeType;
+       }
+       if (pExtraData != null)
+       {
+               HashMap* pArguments = new (std::nothrow) HashMap(SingleObjectDeleter);
+               pArguments->Construct();
+
+               const String* pKey = null;
+               const String* pValue = null;
+               IList* pKeyList = pExtraData->GetKeysN();
+
+               int loopCount = pKeyList->GetCount();
+               for (int i = 0; i < loopCount; ++i)
+               {
+                       pKey = static_cast<const String*>(pKeyList->GetAt(i));
+                       pValue = static_cast<const String*>(pExtraData->GetValue(*pKey));
+
+                       pArguments->Add(new (std::nothrow) String(*pKey), new (std::nothrow) String(*pValue));
+               }
+               __pArguments = pArguments;
+               delete pKeyList;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+GalleryApp::OnSettingChanged(String& key)
+{
+       AppLogDebug("ENTER key(%ls)", key.GetPointer());
+       if (key.CompareTo(SETTING_KEY_LANGUAGE) == 0 || key.CompareTo(SETTING_KEY_FONT_SIZE) == 0)
+       {
+               UiApp::GetInstance()->Terminate();
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+GalleryApp::SetFrameEnabled(const bool enabled)
+{
+       MainFrame* pMainFrame = dynamic_cast<MainFrame*>(GetFrameAt(0));
+       if (pMainFrame)
+       {
+               pMainFrame->SetEnabled(enabled);
+       }
+}
+
+void
+GalleryApp::SetFrameActivated(bool frameActivated)
+{
+       __frameActivated = frameActivated;
+}
+
+bool
+GalleryApp::GetFrameActivated(void) const
+{
+       return __frameActivated;
+}
+
diff --git a/src/GlGalleryEntry.cpp b/src/GlGalleryEntry.cpp
new file mode 100644 (file)
index 0000000..4fb4032
--- /dev/null
@@ -0,0 +1,56 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlGalleryEntry.cpp
+ * @brief              This is the implementation file for GalleryEntry class.
+ */
+
+#include "GlGalleryApp.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif // __cplusplus
+
+//
+// The entry function of Tizen application called by the operating system.
+//
+_EXPORT_ int
+OspMain(int argc, char *pArgv[])
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("Application started.");
+       ArrayList args(SingleObjectDeleter);
+       args.Construct();
+       for (int i = 0; i < argc; i++)
+       {
+               args.Add(new (std::nothrow) String(pArgv[i]));
+       }
+
+       result r = Tizen::App::UiApp::Execute(GalleryApp::CreateInstance, &args);
+       TryLog(r == E_SUCCESS, "[%s] Application execution failed", GetErrorMessage(r));
+       AppLogDebug("Application finished.");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return static_cast<int>(r);
+}
+#ifdef __cplusplus
+}
+#endif // __cplusplus
diff --git a/src/GlImageCropForm.cpp b/src/GlImageCropForm.cpp
new file mode 100644 (file)
index 0000000..28774ea
--- /dev/null
@@ -0,0 +1,960 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlImageCrop.cpp
+ * @brief              This is the implementation file for Image Crop.
+ */
+
+#include <FApp.h>
+#include <FMedia.h>
+#include <FSystem.h>
+#include <FText.h>
+#include "GlGalleryApp.h"
+#include "GlImageCropForm.h"
+#include "GlResourceManager.h"
+#include "GlTypes.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Content;
+using namespace Tizen::Graphics;
+using namespace Tizen::Io;
+using namespace Tizen::Media;
+using namespace Tizen::System;
+using namespace Tizen::Text;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+static const unsigned int COLOR_GALLERY_BG = Color32<31,31,31>::Value;
+static const unsigned int CROP_BOX_RECTANGLE_COLOR = Color32<199, 110, 6>::Value;
+static const int CROP_BOX_LINE_WIDTH = 5;
+static const int H_CROP_RECTANGLE = 20;
+static const wchar_t* PATH_DATA_DIRECTORY_IN_CROP = L"data/";
+static const wchar_t* FILE_NAME_SEPARATOR = L"_";
+static const int MAX_FILE_LENGHT = 255;
+static const int CROP_BOX_OFFSET = 20;
+
+ImageCropForm::ImageCropForm(void)
+       : __sourceFilePath(L"")
+       , __cropMode(APPCONTROL_DATA_CROP_TYPE_FIT_TO_SCREEN)
+       , __pCanvas(null)
+    , __pCurrentBitmap(null)
+       , __pRectangleBitmap(null)
+       , __imageFormat(IMG_FORMAT_NONE)
+    , __imageBuffer(null)
+       , __pointLocation(OUTSIDE_CROPBOX)
+       , __isOrientationChanged(false)
+       , __imageHeight(0)
+       , __imageWidth(0)
+       , __statusValue(-1)
+       , __formHeight(0)
+       , __formWidth(0)
+       , __skipMoveEvent(0)
+
+{
+}
+
+ImageCropForm::~ImageCropForm(void)
+{
+       if (__pCurrentBitmap != null)
+       {
+               delete __pCurrentBitmap;
+       }
+       if (__pRectangleBitmap != null)
+       {
+               delete __pRectangleBitmap;
+       }
+       if (__pCanvas != null)
+       {
+               delete __pCanvas;
+       }
+}
+
+bool
+ImageCropForm::Initialize(void)
+{
+       Form::Construct(IDL_FORM_IMAGE_CROP);
+
+       return true;
+}
+
+result
+ImageCropForm::OnInitializing(void)
+{
+       AppLogDebug("OnInitializing");
+
+       AppResource* pAppResource = null;
+       pAppResource = UiApp::App::GetInstance()->GetAppResource();
+
+       if (pAppResource != null)
+       {
+               __pRectangleBitmap = pAppResource->GetBitmapN(IDB_IMAGE_CROP_RECTANGLE);
+       }
+
+       Footer* pFooter = GetFooter();
+       if (pFooter != null)
+       {
+               pFooter->AddActionEventListener(*this);
+               pFooter->RemoveAllItems();
+               pFooter->SetStyle(FOOTER_STYLE_BUTTON_TEXT);
+
+               FooterItem footerItem1;
+               footerItem1.Construct(IDA_BUTTON_SAVE);
+               footerItem1.SetText(ResourceManager::GetString(L"IDS_COM_OPT_SAVE"));
+
+               pFooter->AddItem(footerItem1);
+       }
+
+       __pPresentationModel = FileListPresentationModel::GetInstance();
+
+       AddTouchEventListener(*this);
+       AddOrientationEventListener(*this);
+       SetFormBackEventListener(this);
+
+       return E_SUCCESS;
+}
+
+result
+ImageCropForm::OnDraw(void)
+{
+       AppLogDebug("OnDraw");
+       result r = E_SUCCESS;
+
+       if (__pCanvas != null)
+       {
+               __pCanvas->Clear();
+               r = __pCanvas->SetLineWidth(CROP_BOX_LINE_WIDTH);
+               r = __pCanvas->DrawBitmap(Rectangle(__imageBox.x, __imageBox.y, __imageBox.width, __imageBox.height), *__pCurrentBitmap); // Image to be cropped
+               r = __pCanvas->DrawRectangle(Rectangle(__cropBox.x, __cropBox.y, __cropBox.width, __cropBox.height)); // Cropbox rectangle
+               r = __pCanvas->DrawBitmap(Rectangle((__cropBox.x + __cropBox.width / 2) - (H_CROP_RECTANGLE / 2), __cropBox.y - (H_CROP_RECTANGLE / 2), H_CROP_RECTANGLE, H_CROP_RECTANGLE), *__pRectangleBitmap); // Top Rectangle
+               r = __pCanvas->DrawBitmap(Rectangle((__cropBox.x + __cropBox.width / 2) - (H_CROP_RECTANGLE / 2), (__cropBox.y + __cropBox.height - (H_CROP_RECTANGLE / 2)), H_CROP_RECTANGLE, H_CROP_RECTANGLE), *__pRectangleBitmap); // Bottom Rectangle
+               r = __pCanvas->DrawBitmap(Rectangle(__cropBox.x - (H_CROP_RECTANGLE / 2), (__cropBox.y + __cropBox.height / 2) - (H_CROP_RECTANGLE / 2), H_CROP_RECTANGLE, H_CROP_RECTANGLE), *__pRectangleBitmap); //Left Rectangle
+               r = __pCanvas->DrawBitmap(Rectangle(__cropBox.x + __cropBox.width - (H_CROP_RECTANGLE / 2), (__cropBox.y + __cropBox.height / 2) - (H_CROP_RECTANGLE / 2), H_CROP_RECTANGLE, H_CROP_RECTANGLE), *__pRectangleBitmap); //Right Rectangle
+               r = __pCanvas->DrawBitmap(Rectangle(__cropBox.x - (H_CROP_RECTANGLE / 2), __cropBox.y - (H_CROP_RECTANGLE / 2), H_CROP_RECTANGLE, H_CROP_RECTANGLE), *__pRectangleBitmap); // Top Left Rectangle
+               r = __pCanvas->DrawBitmap(Rectangle(__cropBox.x + __cropBox.width - (H_CROP_RECTANGLE / 2), __cropBox.y - (H_CROP_RECTANGLE / 2), H_CROP_RECTANGLE, H_CROP_RECTANGLE), *__pRectangleBitmap); // Top Right Rectangle
+               r = __pCanvas->DrawBitmap(Rectangle(__cropBox.x + __cropBox.width - (H_CROP_RECTANGLE / 2), (__cropBox.y + __cropBox.height - (H_CROP_RECTANGLE / 2)), H_CROP_RECTANGLE, H_CROP_RECTANGLE), *__pRectangleBitmap); // Bottom Right Rectangle
+               r = __pCanvas->DrawBitmap(Rectangle(__cropBox.x - (H_CROP_RECTANGLE / 2), (__cropBox.y + __cropBox.height - (H_CROP_RECTANGLE / 2)), H_CROP_RECTANGLE, H_CROP_RECTANGLE), *__pRectangleBitmap); // Bottom Left Rectangle
+               __pCanvas->SetBackgroundColor(COLOR_GALLERY_BG);
+       }
+
+       return r;
+}
+
+void
+ImageCropForm::OnFormBackRequested(Form& source)
+{
+       AppLogDebug("OnFormBackRequested");
+
+       SceneManager::GetInstance()->GoBackward(BackwardSceneTransition());
+}
+
+void
+ImageCropForm::OnActionPerformed(const Tizen::Ui::Control& source, int actionId)
+{
+       AppLogDebug("OnActionPerformed");
+       result r = E_SUCCESS;
+
+       switch(actionId)
+       {
+       case IDA_BUTTON_SAVE:
+       {
+               GalleryApp* pApp = dynamic_cast<GalleryApp*>(UiApp::GetInstance());
+
+               if (pApp != null && pApp->GetAppControlOperationId() == APPCONTROL_OPERATION_ID_PICK)
+               {
+                       ImageBuffer* pCropBuffer = null;
+                       int count = 1;
+                       int index = 0;
+
+                       String destFilePath;
+                       destFilePath.Append(App::GetInstance()->GetAppSharedPath());
+                       destFilePath.Append(PATH_DATA_DIRECTORY_IN_CROP);
+                       destFilePath.Append(GetFileName(__sourceFilePath));
+                       destFilePath.Reverse();
+                       r = destFilePath.IndexOf(FILE_EXT_SEPARATOR, 0, index);
+                       destFilePath.Reverse();
+                       if (r != E_SUCCESS)
+                       {
+                               index = 0;
+                               destFilePath.Append(FILE_EXT_SEPARATOR);
+                       }
+                       destFilePath.Insert(FILE_NAME_SEPARATOR, destFilePath.GetLength() - index - 1);
+                       destFilePath.Insert(count, destFilePath.GetLength() - index - 1);
+
+                       if (__imageFormat != IMG_FORMAT_JPG || __imageFormat != IMG_FORMAT_PNG || __imageFormat != IMG_FORMAT_BMP)
+                       {
+                               destFilePath.Remove(destFilePath.GetLength() - index, index);
+                               destFilePath.Append(CONTENT_EXT_JPG);
+                       }
+
+                       while (File::IsFileExist(destFilePath) == true)
+                       {
+                               count++;
+                               destFilePath.Clear();
+                               destFilePath.Append(App::GetInstance()->GetAppSharedPath());
+                               destFilePath.Append(PATH_DATA_DIRECTORY_IN_CROP);
+                               destFilePath.Append(GetFileName(__sourceFilePath));
+                               destFilePath.Insert(FILE_NAME_SEPARATOR, destFilePath.GetLength() - index - 1);
+                               destFilePath.Insert(count, destFilePath.GetLength() - index - 1);
+                               if (__imageFormat != IMG_FORMAT_JPG || __imageFormat != IMG_FORMAT_PNG || __imageFormat != IMG_FORMAT_BMP)
+                               {
+                                       destFilePath.Remove(destFilePath.GetLength() - index, index);
+                                       destFilePath.Append(CONTENT_EXT_JPG);
+                               }
+                       }
+
+                       AppCtrlResult appControlResult = APP_CTRL_RESULT_FAILED;
+                       HashMap* pMap = null;
+                       int inputLength = 0;
+                       Utf8Encoding utf8;
+                       r = utf8.GetByteCount(GetFileName(destFilePath), inputLength);
+
+                       while (inputLength > MAX_FILE_LENGHT)
+                       {
+                               destFilePath.IndexOf(FILE_NAME_SEPARATOR, 0, index);
+                               destFilePath.Remove(index - 1, 1);
+                               r = utf8.GetByteCount(GetFileName(destFilePath), inputLength);
+                       }
+
+                       pCropBuffer = __imageBuffer->CropN(((__cropBox.x - __imageBox.x) * __imageWidth) / __imageBox.width, ((__cropBox.y - __imageBox.y) * __imageHeight) / __imageBox.height,
+                                               (__cropBox.width * __imageWidth) / __imageBox.width, (__cropBox.height * __imageHeight) / __imageBox.height);
+
+                       if (pCropBuffer != null)
+                       {
+                               if (__imageFormat == IMG_FORMAT_JPG || __imageFormat == IMG_FORMAT_PNG || __imageFormat == IMG_FORMAT_BMP)
+                               {
+                                       r = pCropBuffer->EncodeToFile(destFilePath, __imageFormat, true, 100);
+                               }
+                               else
+                               {
+                                       r = pCropBuffer->EncodeToFile(destFilePath, IMG_FORMAT_JPG, true, 100);
+                               }
+                               delete pCropBuffer;
+
+                               if (r == E_SUCCESS )
+                               {
+                                       ArrayList* pList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+                                       pList->Add(new (std::nothrow) String(destFilePath));
+
+                                       pMap = new (std::nothrow) HashMap(SingleObjectDeleter);
+                                       pMap->Construct();
+                                       pMap->Add(new (std::nothrow) String(APPCONTROL_KEY_DATA_SELECTED), pList);
+
+                                       appControlResult = APP_CTRL_RESULT_SUCCEEDED;
+                               }
+                               else
+                               {
+                                       appControlResult = APP_CTRL_RESULT_FAILED;
+                               }
+                       }
+                       else
+                       {
+                               appControlResult = APP_CTRL_RESULT_FAILED;
+                       }
+
+                       pApp->SendAppControlResult(appControlResult, pMap);
+                       pApp->Terminate();
+               }
+       }
+       break;
+       }
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+       return;
+}
+
+void
+ImageCropForm::OnOrientationChanged(const Control &source, OrientationStatus orientationStatus)
+{
+       AppLogDebug("OnOrientationChanged");
+
+       __isOrientationChanged = true;
+       SetValue();
+
+       if (__pCanvas != null)
+       {
+               __pCanvas->Clear();
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+ImageCropForm::OnTouchPressed(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo)
+{
+       AppLogDebug("OnTouchPressed");
+
+       __touchStart = currentPosition;
+       CheckCurrentPosition(currentPosition);
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+ImageCropForm::OnTouchMoved(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo)
+{
+       if (++__skipMoveEvent % 5 != 0)
+       {
+               return;
+       }
+       else
+       {
+               __skipMoveEvent = 0;
+       }
+
+       int deltaX = currentPosition.x - __touchStart.x;
+       int deltaY = currentPosition.y - __touchStart.y;
+       if (__cropMode.Equals(APPCONTROL_DATA_CROP_TYPE_AUTO, false))
+       {
+               switch(__pointLocation)
+               {
+               case INSIDE_TOP_RECTANGLE:
+               {
+                       if ((__cropBox.y + deltaY) > __imageBox.y && deltaY < (__cropBox.height - (H_CROP_RECTANGLE * 3)))
+                       {
+                               __cropBox.y += deltaY;
+                               __cropBox.height -= deltaY;
+                       }
+               }
+               break;
+
+               case INSIDE_BOTTOM_RECTANGLE:
+               {
+                       if ((__cropBox.y + __cropBox.height + deltaY) < (__imageBox.y + __imageBox.height)
+                               && (__cropBox.height + deltaY) > (H_CROP_RECTANGLE * 3))
+                       {
+                               __cropBox.height += deltaY;
+                       }
+               }
+               break;
+
+               case INSIDE_LEFT_RECTANGLE:
+               {
+                       if ((__cropBox.x + deltaX) > __imageBox.x && deltaX < __cropBox.width - (H_CROP_RECTANGLE * 3))
+                       {
+                               __cropBox.x += deltaX;
+                               __cropBox.width -= deltaX;
+                       }
+               }
+               break;
+
+               case INSIDE_RIGHT_RECTANGLE:
+               {
+                       if ((__cropBox.x + __cropBox.width + deltaX) < (__imageBox.x + __imageBox.width)
+                               && __cropBox.width + deltaX > (H_CROP_RECTANGLE * 3))
+                       {
+                               __cropBox.width += deltaX;
+                       }
+               }
+               break;
+
+               case INSIDE_TOP_LEFT_RECTANGLE:
+               {
+                       if ((__cropBox.y + deltaY) > __imageBox.y && deltaY < (__cropBox.height - (H_CROP_RECTANGLE * 3))
+                                       && (__cropBox.x + deltaX) > __imageBox.x && deltaX < __cropBox.width - (H_CROP_RECTANGLE * 3))
+                       {
+                               __cropBox.y += deltaY;
+                               __cropBox.height -= deltaY;
+                               __cropBox.x += deltaX;
+                               __cropBox.width -= deltaX;
+                       }
+               }
+               break;
+
+               case INSIDE_TOP_RIGHT_RECTANGLE:
+               {
+                       if ((__cropBox.y + deltaY) > __imageBox.y && deltaY < (__cropBox.height - (H_CROP_RECTANGLE * 3))
+                                       && (__cropBox.x + __cropBox.width + deltaX) < (__imageBox.x + __imageBox.width) && __cropBox.width + deltaX > (H_CROP_RECTANGLE * 3))
+                       {
+                               __cropBox.width += deltaX;
+                               __cropBox.y += deltaY;
+                               __cropBox.height -= deltaY;
+                       }
+               }
+               break;
+
+               case INSIDE_BOTTOM_LEFT_RECTANGLE:
+               {
+                       if ((__cropBox.y + __cropBox.height + deltaY) < (__imageBox.y + __imageBox.height) && (__cropBox.height + deltaY) > (H_CROP_RECTANGLE * 3)
+                               && (__cropBox.x + deltaX) > __imageBox.x && deltaX < __cropBox.width - (H_CROP_RECTANGLE * 3))
+                       {
+                               __cropBox.x += deltaX;
+                               __cropBox.width -= deltaX;
+                               __cropBox.height += deltaY;
+                       }
+               }
+               break;
+
+               case INSIDE_BOTTOM_RIGHT_RECTANGLE:
+               {
+                       if ((__cropBox.x + __cropBox.width + deltaX) < (__imageBox.x + __imageBox.width) && __cropBox.width + deltaX > (H_CROP_RECTANGLE * 3)
+                               && (__cropBox.y + __cropBox.height + deltaY) < (__imageBox.y + __imageBox.height) && (__cropBox.height + deltaY) > (H_CROP_RECTANGLE * 3))
+                       {
+                               __cropBox.width += deltaX;
+                               __cropBox.height += deltaY;
+                       }
+               }
+               break;
+
+               case INSIDE_CROPBOX:
+               {
+                       if ((__cropBox.x + deltaX) > __imageBox.x)
+                       {
+                               __cropBox.x += deltaX;
+                       }
+                       else
+                       {
+                               __cropBox.x = __imageBox.x;
+                       }
+                       if ((__cropBox.y + deltaY) > __imageBox.y)
+                       {
+                               __cropBox.y += deltaY;
+                       }
+                       else
+                       {
+                               __cropBox.y = __imageBox.y;
+                       }
+                       if ((__cropBox.x + __cropBox.width + deltaX) > (__imageBox.x + __imageBox.width))
+                       {
+                               __cropBox.x = __imageBox.x + __imageBox.width - __cropBox.width;
+                       }
+                       if ((__cropBox.y + __cropBox.height + deltaY) > (__imageBox.y + __imageBox.height))
+                       {
+                               __cropBox.y = __imageBox.y + __imageBox.height - __cropBox.height;
+                       }
+               }
+               break;
+
+               default:
+                       break;
+               }
+       }
+       else if (__cropMode.Equals(APPCONTROL_DATA_CROP_TYPE_FIT_TO_SCREEN, false))
+       {
+               if (__pointLocation == INSIDE_LEFT_RECTANGLE || __pointLocation == INSIDE_BOTTOM_LEFT_RECTANGLE
+                       || __pointLocation == INSIDE_TOP_LEFT_RECTANGLE)
+               {
+                       int temp = __cropBox.height;
+                       int height = (__formHeight * (__cropBox.width - (2 * deltaX))) /__formWidth;
+                       temp = height - temp;
+                       if ((__cropBox.width - (2 * deltaX) > (H_CROP_RECTANGLE * 3)) && (!(height >= __imageBox.height || (__cropBox.width - (2 * deltaX)) >= __imageBox.width)))
+                       {
+                               if (__cropBox.x + deltaX >= __imageBox.x && __cropBox.x + __cropBox.width - deltaX <= __imageBox.x + __imageBox.width
+                                       && __cropBox.y - (temp / 2) >= __imageBox.y && __cropBox.y + __cropBox.height + (temp / 2) < __imageBox.y + __imageBox.height
+                                       && (__cropBox.width - (2 * deltaX) > (H_CROP_RECTANGLE * 3)))
+                               {
+                                       __cropBox.x += deltaX;
+                                       __cropBox.width = __cropBox.width - (2 * deltaX);
+                                       __cropBox.height = height;
+                                       __cropBox.y = __cropBox.y - (temp / 2);
+                               }
+                               else if ((__cropBox.y + __cropBox.height) <= (__imageBox.y + __imageBox.height)
+                                               && __cropBox.width < __imageBox.width
+                                               && __cropBox.x + deltaX >= __imageBox.x && __cropBox.y - temp >= __imageBox.y )
+                               {
+                                       if (__cropBox.x + __cropBox.width - deltaX <= __imageBox.x + __imageBox.width
+                                               && __cropBox.x + deltaX >= __imageBox.x)
+                                       {
+                                               __cropBox.x += deltaX;
+                                       }
+                                       else
+                                       {
+                                               __cropBox.x = __cropBox.x + (2 * deltaX);
+                                       }
+                                       __cropBox.width = __cropBox.width - (2 * deltaX);
+                                       __cropBox.height = height;
+                                       __cropBox.y = __cropBox.y - temp;
+                               }
+                               else if (__cropBox.y - (temp / 2) <= __imageBox.y && __cropBox.width - (deltaX) <= __imageBox.width
+                                               && __cropBox.x + deltaX >= __imageBox.x && __cropBox.y + __cropBox.height + temp <= __imageBox.y + __imageBox.height)
+                               {
+                                       if (__cropBox.x + __cropBox.width - deltaX <= __imageBox.x + __imageBox.width)
+                                       {
+                                               __cropBox.x += deltaX;
+                                       }
+                                       else
+                                       {
+                                               __cropBox.x = __cropBox.x + (2 * deltaX);
+                                       }
+                                       __cropBox.width = __cropBox.width - (2 * deltaX);
+                                       __cropBox.height = height;
+                               }
+                       }
+               }
+               else if (__pointLocation == INSIDE_RIGHT_RECTANGLE || __pointLocation == INSIDE_BOTTOM_RIGHT_RECTANGLE
+                               || __pointLocation == INSIDE_TOP_RIGHT_RECTANGLE)
+               {
+                       deltaX *= -1;
+                       int temp = __cropBox.height;
+                       int height = (__formHeight * (__cropBox.width - (2 * deltaX))) / __formWidth;
+                       temp = height - temp;
+                       if ((__cropBox.width - (2 * deltaX) > (H_CROP_RECTANGLE * 3)) && (!(height >= __imageBox.height || (__cropBox.width - (2 * deltaX)) >= __imageBox.width)))
+                       {
+                               if (deltaX < __cropBox.width - (H_CROP_RECTANGLE * 3))
+                               {
+                                       if (__cropBox.x + deltaX > __imageBox.x && __cropBox.x + __cropBox.width - deltaX <= __imageBox.x + __imageBox.width
+                                               && __cropBox.y - (temp / 2) > __imageBox.y && __cropBox.y + __cropBox.height + (temp / 2) < __imageBox.y + __imageBox.height)
+                                       {
+                                               __cropBox.x += deltaX;
+                                               __cropBox.width = __cropBox.width - (2 * deltaX);;
+                                               __cropBox.height = height;
+                                               __cropBox.y = __cropBox.y - (temp / 2);
+                                       }
+                                       else if ((__cropBox.y + __cropBox.height + (temp / 2)) >= (__imageBox.y + __imageBox.height)
+                                                       && __cropBox.x + __cropBox.width - (2 * deltaX) <= __imageBox.x + __imageBox.width
+                                                       && __cropBox.x - deltaX >= __imageBox.x && __cropBox.y - temp >= __imageBox.y )
+                                       {
+                                               if (__cropBox.x + __cropBox.width - deltaX <= __imageBox.x + __imageBox.width
+                                                       && __cropBox.x + deltaX >= __imageBox.x)
+                                               {
+                                                       __cropBox.x += deltaX;
+                                               }
+                                               __cropBox.width = __cropBox.width - (2 * deltaX);
+                                               __cropBox.height = height;
+                                               __cropBox.y = __cropBox.y - temp;
+                                       }
+                                       else if (__cropBox.y - (temp / 2) <= __imageBox.y && __cropBox.width - (deltaX) <= __imageBox.width
+                                                       && __cropBox.x + deltaX <= __imageBox.x && __cropBox.y + __cropBox.height + temp <= __imageBox.y + __imageBox.height)
+                                       {
+                                               if (__cropBox.x + deltaX >= __imageBox.x)
+                                               {
+                                                       __cropBox.x += deltaX;
+                                               }
+                                               else
+                                               {
+                                                       __cropBox.x = __imageBox.x;
+                                               }
+                                               __cropBox.width = __cropBox.width - (2 * deltaX);
+                                               __cropBox.height = height;
+                                       }
+                                       else if (__cropBox.y - (temp / 2) <= __imageBox.y && __cropBox.x + deltaX >= __imageBox.x
+                                                       && __cropBox.x + __cropBox.width - deltaX <= __imageBox.x + __imageBox.width
+                                                       && __cropBox.y + __cropBox.height + temp <= __imageBox.y + __imageBox.height)
+                                       {
+                                               __cropBox.x += deltaX;
+                                               __cropBox.width = __cropBox.width - (2 * deltaX);
+                                               __cropBox.height = height;
+                                       }
+                                       else if (__cropBox.x + deltaX <= __imageBox.x && __cropBox.y - (temp / 2) >= __imageBox.y
+                                                       && __cropBox.x + __cropBox.width - (2 * deltaX) <= __imageBox.x + __imageBox.width
+                                                       && __cropBox.y + __cropBox.height + temp <= __imageBox.y + __imageBox.height)
+                                       {
+                                               __cropBox.width = __cropBox.width - (2 * deltaX);
+                                               __cropBox.y = __cropBox.y - (temp / 2);
+                                               __cropBox.height = height;
+                                       }
+                               }
+                       }
+               }
+               else if (__pointLocation == INSIDE_TOP_RECTANGLE)
+               {
+                       int temp = __cropBox.width;
+                       int width = (__formWidth * (__cropBox.height - (2 * deltaY))) / __formHeight;
+                       temp = width - temp;
+                       if (__cropBox.height - (2 * deltaY) > (__formHeight * (H_CROP_RECTANGLE * 3)) / __formWidth && (!(__cropBox.height - (2 * deltaY) >= __imageBox.height || width >= __imageBox.width)))
+                       {
+                               if (__cropBox.x - (temp /2 ) > __imageBox.x && __cropBox.x + __cropBox.width + temp < __imageBox.x + __imageBox.width
+                                       && __cropBox.y + (deltaY) > __imageBox.y && __cropBox.y + __cropBox.height - (2 * deltaY) < __imageBox.y + __imageBox.height)
+                               {
+                                       __cropBox.y += deltaY;
+                                       __cropBox.height = __cropBox.height - (2 * deltaY);
+                                       __cropBox.width = width;
+                                       __cropBox.x = __cropBox.x - (temp / 2);
+                               }
+                               else if (__cropBox.x - (temp / 2) < __imageBox.x)
+                               {
+                                       if (__cropBox.x + __cropBox.width + temp <= __imageBox.x + __imageBox.width)
+                                       {
+                                               __cropBox.width = width;
+                                       }
+                                       if (__cropBox.y + deltaY >= __imageBox.y)
+                                       {
+                                               __cropBox.y += deltaY;
+                                       }
+                                       if (__cropBox.y + __cropBox.height - (2 * deltaY) < __imageBox.y + __imageBox.height)
+                                       {
+                                               __cropBox.height = __cropBox.height - (2 * deltaY);
+                                       }
+                               }
+                               else if (__cropBox.y + __cropBox.height - (2 * deltaY) >= __imageBox.x + __imageBox.height
+                                               && __cropBox.y + (2 * deltaY) >= __imageBox.y)
+                               {
+                                       if (__cropBox.x - temp >= __imageBox.x
+                                               && __cropBox.x + __cropBox.width + temp > __imageBox.x + __imageBox.width)
+                                       {
+                                               __cropBox.x = __cropBox.x - temp;
+                                       }
+                                       else if (__cropBox.x - temp >= __imageBox.x)
+                                       {
+                                               __cropBox.x = __cropBox.x - temp / 2;
+                                       }
+                                       if (__cropBox.x + __cropBox.width + temp <= __imageBox.x + __imageBox.width)
+                                       {
+                                               __cropBox.width = width;
+                                       }
+                                       if (__cropBox.y + (2 * deltaY) >= __imageBox.y)
+                                       {
+                                               __cropBox.y = __cropBox.y + (2 * deltaY);
+                                               __cropBox.height = __cropBox.height - (2 * deltaY);
+                                       }
+                               }
+                               else if (__cropBox.x + __cropBox.width + (temp / 2) > __imageBox.x + __imageBox.width
+                                               && __cropBox.x - temp >= __imageBox.x && __cropBox.y + deltaY >= __imageBox.y
+                                               && __cropBox.y + __cropBox.height - (2 * deltaY) <= __imageBox.y + __imageBox.height)
+                               {
+                                       __cropBox.x = __cropBox.x - temp;
+                                       __cropBox.width = width;
+                                       __cropBox.y += deltaY;
+                                       __cropBox.height = __cropBox.height - (2 * deltaY);
+                               }
+                       }
+               }
+               else if (__pointLocation == INSIDE_BOTTOM_RECTANGLE)
+               {
+                       deltaY = deltaY * (-1);
+                       int temp = __cropBox.width;
+                       int width = (__formWidth * (__cropBox.height - (2 * deltaY))) / __formHeight;
+                       temp = width - temp;
+                       if (__cropBox.height - (2 * deltaY) > (__formHeight * (H_CROP_RECTANGLE * 3)) / __formWidth && (!(__cropBox.height - (2 * deltaY) >= __imageBox.height || width >= __imageBox.width)))
+                       {
+                               if (__cropBox.x - (temp / 2) >= __imageBox.x && __cropBox.x + __cropBox.width + temp < __imageBox.x + __imageBox.width
+                                       && __cropBox.y + deltaY > __imageBox.y && __cropBox.y + __cropBox.height - (2 * deltaY) < __imageBox.y + __imageBox.height)
+                               {
+                                       __cropBox.y += deltaY;
+                                       __cropBox.height = __cropBox.height - (2 * deltaY);;
+                                       __cropBox.width = width;
+                                       __cropBox.x = __cropBox.x - (temp / 2);
+                               }
+                               else if (__cropBox.y + deltaY < __imageBox.y && __cropBox.y + __cropBox.height - (2 * deltaY) < __imageBox.y + __imageBox.height
+                                               && __cropBox.x - (temp / 2) > __imageBox.x && __cropBox.x + __cropBox.width + temp < __imageBox.x + __imageBox.width)
+                               {
+                                       __cropBox.x = __cropBox.x - (temp / 2);
+                                       __cropBox.width = width;
+                                       __cropBox.height = __cropBox.height - (2 * deltaY);
+                               }
+                               else if (__cropBox.x + __cropBox.width + temp > __imageBox.x + __imageBox.width
+                                               && __cropBox.y + deltaY >= __imageBox.y && __cropBox.y + __cropBox.height + temp <= __imageBox.y + __imageBox.height
+                                               && __cropBox.x - temp >= __imageBox.x)
+                               {
+                                       __cropBox.x = __cropBox.x - temp;
+                                       __cropBox.y += deltaY;
+                                       __cropBox.width = width;
+                                       __cropBox.height = __cropBox.height - (2 * deltaY);
+                               }
+                               else if (__cropBox.x + __cropBox.width + temp >= __imageBox.x + __imageBox.width
+                                               && __cropBox.y + deltaY <= __imageBox.y && __cropBox.x - temp > __imageBox.x
+                                               && __cropBox.y + __cropBox.height + temp < __imageBox.y + __imageBox.height)
+                               {
+                                       __cropBox.x -= temp;
+                                       __cropBox.width = width;
+                                       __cropBox.height = __cropBox.height - (2 * deltaY);
+                               }
+                               else if (__cropBox.x - temp < __imageBox.x && __cropBox.x + __cropBox.width + temp <= __imageBox.x + __imageBox.width
+                                               && __cropBox.y + __cropBox.height - (2 * deltaY) <= __imageBox.y + __imageBox.height)
+                               {
+                                       if (__cropBox.y + deltaY >= __imageBox.y)
+                                       {
+                                               __cropBox.y += deltaY;
+                                       }
+                                       __cropBox.width = width;
+                                       __cropBox.height = __cropBox.height - (2 * deltaY);
+                               }
+                       }
+               }
+               else if (__pointLocation == INSIDE_CROPBOX)
+               {
+                       if ((__cropBox.x + deltaX) > __imageBox.x)
+                       {
+                               __cropBox.x += deltaX;
+                       }
+                       else
+                       {
+                               __cropBox.x = __imageBox.x;
+                       }
+                       if ((__cropBox.y + deltaY) > __imageBox.y)
+                       {
+                               __cropBox.y += deltaY;
+                       }
+                       else
+                       {
+                               __cropBox.y = __imageBox.y;
+                       }
+                       if ((__cropBox.x + __cropBox.width + deltaX) > (__imageBox.x + __imageBox.width))
+                       {
+                               __cropBox.x = __imageBox.x + __imageBox.width - __cropBox.width;
+                       }
+                       if ((__cropBox.y + __cropBox.height + deltaY) > (__imageBox.y + __imageBox.height))
+                       {
+                               __cropBox.y = __imageBox.y + __imageBox.height - __cropBox.height;
+                       }
+               }
+       }
+       RequestRedraw(false);
+       __touchStart = currentPosition;
+}
+
+void
+ImageCropForm::OnTouchReleased(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo)
+{
+       AppLogDebug("OnTouchReleased");
+
+       __pointLocation = OUTSIDE_CROPBOX;
+}
+
+void
+ImageCropForm::OnSceneActivatedN(const SceneId& previousSceneId, const SceneId& currentSceneId, IList* pArgs)
+{
+       AppLogDebug("OnSceneActivatedN");
+
+       __pPresentationModel->AddContentEventListener(this);
+
+       if (pArgs != null)
+       {
+               __sourceFilePath = *(static_cast<String*>(pArgs->GetAt(0)));
+               pArgs->RemoveAll(true);
+               delete pArgs;
+
+               if (__sourceFilePath.IsEmpty() == false)
+               {
+                       if ( __imageBuffer != null)
+                       {
+                               delete __imageBuffer;
+                               __imageBuffer = null;
+                       }
+
+                       __imageBuffer = new (std::nothrow) ImageBuffer();
+
+                       result r = __imageBuffer->Construct(__sourceFilePath.GetPointer());
+                       if (r == E_SUCCESS)
+                       {
+                               __imageWidth = __imageBuffer->GetWidth();
+                               __imageHeight = __imageBuffer->GetHeight();
+
+                               int physicalHeight = CoordinateSystem::ConvertToPhysicalY(__imageHeight);
+                               int physicalWidth = CoordinateSystem::ConvertToPhysicalX(__imageWidth);
+                               __pCurrentBitmap = __imageBuffer->GetBitmapN(BITMAP_PIXEL_FORMAT_ARGB8888, physicalWidth, physicalHeight);
+                               SetValue();
+
+                               Image img;
+                               r = img.Construct();
+                               if (r == E_SUCCESS)
+                               {
+                                       __imageFormat = img.GetImageFormat(__sourceFilePath);
+                               }
+                       }
+                       else
+                       {
+                               GalleryApp* pApp = dynamic_cast<GalleryApp*>(UiApp::GetInstance());
+                               if (pApp != null && pApp->GetAppControlOperationId() == APPCONTROL_OPERATION_ID_PICK)
+                               {
+                                       pApp->SendAppControlResult(APP_CTRL_RESULT_FAILED, null);
+                                       pApp->Terminate();
+                               }
+                       }
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+ImageCropForm::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
+{
+       AppLogDebug("OnSceneDeactivated");
+       __pPresentationModel->RemoveContentEventListener(this);
+       RemoveOrientationEventListener(*this);
+}
+
+void
+ImageCropForm::CheckCurrentPosition(const Point currentPosition)
+{
+       AppLogDebug("CheckCurrentPosition");
+
+       if (currentPosition.x > ((__cropBox.x + __cropBox.width / 2) - (H_CROP_RECTANGLE / 2) - CROP_BOX_OFFSET) && currentPosition.x < ((__cropBox.x + __cropBox.width / 2) + (H_CROP_RECTANGLE / 2) + CROP_BOX_OFFSET)
+               && currentPosition.y >  (__cropBox.y - (H_CROP_RECTANGLE / 2) - CROP_BOX_OFFSET) && currentPosition.y < (__cropBox.y + (H_CROP_RECTANGLE / 2) + CROP_BOX_OFFSET))
+       {
+               __pointLocation = INSIDE_TOP_RECTANGLE;
+       }
+       else if (currentPosition.x > (__cropBox.x - (H_CROP_RECTANGLE / 2) - CROP_BOX_OFFSET) && currentPosition.x < (__cropBox.x + (H_CROP_RECTANGLE / 2) + CROP_BOX_OFFSET)
+               && currentPosition.y >  ((__cropBox.y + __cropBox.height / 2) - (H_CROP_RECTANGLE / 2) - CROP_BOX_OFFSET) && currentPosition.y < ((__cropBox.y + __cropBox.height / 2) + (H_CROP_RECTANGLE / 2) + CROP_BOX_OFFSET))
+       {
+               __pointLocation = INSIDE_LEFT_RECTANGLE;
+       }
+       else if (currentPosition.x > (__cropBox.x + __cropBox.width - (H_CROP_RECTANGLE / 2) - CROP_BOX_OFFSET) && currentPosition.x < (__cropBox.x + __cropBox.width + (H_CROP_RECTANGLE / 2) + CROP_BOX_OFFSET)
+               && currentPosition.y > ((__cropBox.y + __cropBox.height / 2) - (H_CROP_RECTANGLE / 2) - CROP_BOX_OFFSET) && currentPosition.y < ((__cropBox.y + __cropBox.height / 2) + (H_CROP_RECTANGLE / 2) + CROP_BOX_OFFSET))
+       {
+               __pointLocation = INSIDE_RIGHT_RECTANGLE;
+       }
+       else if (currentPosition.x > ((__cropBox.x + __cropBox.width / 2) - (H_CROP_RECTANGLE / 2) - CROP_BOX_OFFSET) && currentPosition.x < ((__cropBox.x + __cropBox.width / 2) + (H_CROP_RECTANGLE / 2) + CROP_BOX_OFFSET)
+               && currentPosition.y > (__cropBox.y + __cropBox.height - (H_CROP_RECTANGLE / 2) - CROP_BOX_OFFSET) && currentPosition.y < (__cropBox.y + __cropBox.height + (H_CROP_RECTANGLE / 2) + CROP_BOX_OFFSET))
+       {
+               __pointLocation = INSIDE_BOTTOM_RECTANGLE;
+       }
+       else if (currentPosition.x > (__cropBox.x - (H_CROP_RECTANGLE / 2) - CROP_BOX_OFFSET) && currentPosition.x < (__cropBox.x + (H_CROP_RECTANGLE / 2) + CROP_BOX_OFFSET)
+                        && currentPosition.y > (__cropBox.y - (H_CROP_RECTANGLE / 2) - CROP_BOX_OFFSET) && currentPosition.y < (__cropBox.y +(H_CROP_RECTANGLE / 2) + CROP_BOX_OFFSET))
+       {
+               __pointLocation = INSIDE_TOP_LEFT_RECTANGLE;
+       }
+       else if (currentPosition.x > ((__cropBox.x + __cropBox.width / 2) - (H_CROP_RECTANGLE / 2) - CROP_BOX_OFFSET) && currentPosition.x < (__cropBox.x + __cropBox.width + (H_CROP_RECTANGLE / 2) + CROP_BOX_OFFSET)
+                       && currentPosition.y > (__cropBox.y - (H_CROP_RECTANGLE / 2) - CROP_BOX_OFFSET) && currentPosition.y < (__cropBox.y +(H_CROP_RECTANGLE / 2) + CROP_BOX_OFFSET))
+       {
+               __pointLocation = INSIDE_TOP_RIGHT_RECTANGLE;
+       }
+       else if (currentPosition.x > (__cropBox.x + __cropBox.width - (H_CROP_RECTANGLE / 2) - CROP_BOX_OFFSET) && currentPosition.x < (__cropBox.x + __cropBox.width + (H_CROP_RECTANGLE / 2) + CROP_BOX_OFFSET)
+                       && currentPosition.y > (__cropBox.y + __cropBox.height - (H_CROP_RECTANGLE / 2) - CROP_BOX_OFFSET) && currentPosition.y < (__cropBox.y + __cropBox.height + (H_CROP_RECTANGLE / 2) + CROP_BOX_OFFSET))
+       {
+               __pointLocation = INSIDE_BOTTOM_RIGHT_RECTANGLE;
+       }
+       else if (currentPosition.x > (__cropBox.x - (H_CROP_RECTANGLE / 2) - CROP_BOX_OFFSET) && currentPosition.x < (__cropBox.x + (H_CROP_RECTANGLE / 2) + CROP_BOX_OFFSET)
+                       && currentPosition.y > (__cropBox.y + __cropBox.height - (H_CROP_RECTANGLE / 2) - CROP_BOX_OFFSET) && currentPosition.y < (__cropBox.y + __cropBox.height + (H_CROP_RECTANGLE / 2) + CROP_BOX_OFFSET))
+       {
+               __pointLocation = INSIDE_BOTTOM_LEFT_RECTANGLE;
+       }
+       else if (currentPosition.x > __cropBox.x && currentPosition.x < (__cropBox.x + __cropBox.width) && currentPosition.y > __cropBox.y && currentPosition.y < (__cropBox.y + __cropBox.height))
+       {
+               __pointLocation = INSIDE_CROPBOX;
+       }
+       else
+       {
+               __pointLocation = OUTSIDE_CROPBOX;
+       }
+       return;
+}
+
+void
+ImageCropForm::SetValue(void)
+{
+       int prevHeight = __imageBox.height;
+       int prevWidth = __imageBox.width;
+       int prevImageboxX = __imageBox.x;
+       int prevImageBoxY = __imageBox.y;
+
+       if (GetOrientationStatus() == ORIENTATION_STATUS_PORTRAIT)
+       {
+               __formHeight = Form::GetBounds().height;
+               __formWidth = Form::GetBounds().width;
+       }
+       else if (GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE || GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE_REVERSE)
+       {
+               __formHeight = Form::GetBounds().width;
+               __formWidth = Form::GetBounds().height;
+       }
+
+       float clientAreaRatio = (GetClientAreaBoundsF().height) / GetClientAreaBoundsF().width;
+
+       if (__imageWidth >= GetClientAreaBounds().width || __imageHeight > GetClientAreaBounds().height)
+       {
+               float imageRatio = __imageHeight / (float) __imageWidth;
+               if (imageRatio < clientAreaRatio)
+               {
+                       __imageBox.width = GetClientAreaBounds().width;
+                       __imageBox.height = (__imageHeight * __imageBox.width) / __imageWidth;
+                       __imageBox.x = GetClientAreaBounds().x;
+                       __imageBox.y = GetClientAreaBounds().y + (GetClientAreaBounds().height - __imageBox.height) / 2;
+               }
+               else
+               {
+                       __imageBox.height = GetClientAreaBounds().height;
+                       __imageBox.width = (__imageWidth * __imageBox.height) / __imageHeight;
+                       __imageBox.x = (GetClientAreaBounds().width - __imageBox.width) / 2;
+                       __imageBox.y = GetClientAreaBounds().y;
+               }
+       }
+       else
+       {
+               __imageBox.height = __imageHeight;
+               __imageBox.width = __imageWidth;
+               __imageBox.x = (GetClientAreaBounds().width - __imageBox.width) / 2;
+               __imageBox.y = GetClientAreaBounds().y + (GetClientAreaBounds().height - __imageBox.height) / 2 ;
+       }
+       if (__isOrientationChanged == false)
+       {
+               if (__imageBox.height > __imageBox.width)
+               {
+                       __cropBox.width = (2 * __imageBox.width) / 3;
+                       __cropBox.height = (__formHeight * __cropBox.width / __formWidth);
+                       if (__cropBox.height > __imageBox.height)
+                       {
+                               __cropBox.height = (2 * __imageBox.height) / 3;
+                               __cropBox.width = (__cropBox.height * __formWidth) / __formHeight;
+                       }
+                       __cropBox.y =  __imageBox.y + (__imageBox.height - __cropBox.height) / 2;
+                       __cropBox.x = __imageBox.x + (__imageBox.width - __cropBox.width) / 2;
+               }
+               else
+               {
+                       __cropBox.height = (2 *__imageBox.height) / 3;
+                       __cropBox.width = (__formWidth * __cropBox.height / __formHeight);
+                       if (__cropBox.width > __imageBox.width)
+                       {
+                               __cropBox.width = (2 * __imageBox.width) / 3;
+                               __cropBox.height = (__formHeight * __cropBox.width) / __formWidth;
+                       }
+                       __cropBox.y = __imageBox.y + (__imageBox.height - __cropBox.height) / 2;
+                       __cropBox.x = __imageBox.x + (__imageBox.width - __cropBox.width) / 2;
+               }
+       }
+       else
+       {
+               float temp = __imageBox.x + ((__cropBox.x - prevImageboxX) * __imageBox.width) / (float) prevWidth;
+               __cropBox.x = (temp + 0.5);
+               temp = __imageBox.y + ((__cropBox.y - prevImageBoxY) * __imageBox.height) / (float) prevHeight;
+               __cropBox.y = (temp + 0.5);
+               temp = (__cropBox.height * __imageBox.height) / (float) prevHeight;
+               __cropBox.height = (temp + 0.5);
+               temp = (__cropBox.width * __imageBox.width) / (float) prevWidth;
+               __cropBox.width = (temp + 0.5);
+       }
+       __pCanvas = GetCanvasN(0.0f, 0.0f, GetClientAreaBoundsF().width, GetClientAreaBoundsF().height);
+       if (__pCanvas != null)
+       {
+               __pCanvas->SetBackgroundColor(COLOR_GALLERY_BG);
+               __pCanvas->SetForegroundColor(CROP_BOX_RECTANGLE_COLOR);
+       }
+}
+
+String
+ImageCropForm::GetFileName(const String& filePath, bool isCheckExe) const
+{
+       String strResult;
+       int lastIndex = -1 ;
+
+       filePath.LastIndexOf(DIRECTORY_SEPARATOR, filePath.GetLength() - 1, lastIndex);
+       filePath.SubString(lastIndex+1, strResult);
+
+       if (isCheckExe == true)
+       {
+               String strTemp = strResult;
+
+               lastIndex = -1;
+               strTemp.LastIndexOf(FILE_EXT_SEPARATOR, strTemp.GetLength() - 1, lastIndex);
+               strTemp.SubString(0, lastIndex, strResult);
+       }
+
+       return strResult;
+}
+
+void
+ImageCropForm::OnContentUpdated()
+{
+       AppLogDebug("ENTER");
+
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALBUM_LIST));
+
+       AppLogDebug("EXIT(%s)");
+}
diff --git a/src/GlImageListEditorPanel.cpp b/src/GlImageListEditorPanel.cpp
new file mode 100644 (file)
index 0000000..90dd923
--- /dev/null
@@ -0,0 +1,708 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlImageListEditorPanel.cpp
+ * @brief              This is the implementation file for ImageListEditorPanel class.
+ */
+
+#include <FContent.h>
+#include <FMedia.h>
+#include "GlAlbumInfo.h"
+#include "GlCommonUtil.h"
+#include "GlFileListPresentationModel.h"
+#include "GlGalleryApp.h"
+#include "GlImageListEditorPanel.h"
+#include "GlResourceManager.h"
+#include "GlTypes.h"
+#include "GlFileUpdateTimer.h"
+#include "GlFileListEditorForm.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Content;
+using namespace Tizen::Graphics;
+using namespace Tizen::Media;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+static const int H_SELECTALL_REGION = 112;
+static const int COUNT_LABEL_FONT_SIZE = 33;
+static const unsigned int COLOR_COUNT_LABEL = Color32<68, 68, 68>::Value;
+static const unsigned int COLOR_SELECT_COUNT_FONT = Color32<255, 255, 255>::Value;
+static const Color COLOR_THUMBNAIL_DIM (Color::GetColor(COLOR_ID_BLACK));
+static const float H_COUNT_LABEL = 48.0f;
+static const int LENGTH_COUNT_LABEL = 256;
+static const int ALPHA_THUMBNAIL_DIM = 70;
+static const Rectangle RECT_INITIAL (0, 0, 10, 10);
+static const int H_CROP_RECTANGLE = 20;
+
+ImageListEditorPanel::ImageListEditorPanel(void)
+       : __itemCount(0)
+       , __pContentIconListView(null)
+       , __pCheckButton(null)
+       , __pLabelSelectCnt(null)
+       , __pPresentationModel(null)
+       , __pFileListEditorForm(null)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+ImageListEditorPanel::~ImageListEditorPanel(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+result
+ImageListEditorPanel::Initialize(void)
+{
+       AppLogDebug("ENTER");
+       result r = Construct(RECT_INITIAL);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+result
+ImageListEditorPanel::OnInitializing(void)
+{
+       AppLogDebug("ENTER");
+       const Form* pForm = dynamic_cast<Form*>(GetParent());
+       TryReturn(pForm != null, E_FAILURE, "[%s] fail to get the form.", GetErrorMessage(GetLastResult()));
+
+       __pPresentationModel = FileListPresentationModel::GetInstance();
+       __pPresentationModel->ClearThumbnailRequests();
+       __pPresentationModel->AddPresentationModelListener(this);
+       __itemCount = 0;
+
+       FloatRectangle clientAreaBounds = pForm->GetClientAreaBoundsF();
+       SetBounds(0.0f, 0.0f, clientAreaBounds.width, clientAreaBounds.height);
+
+       if (__pPresentationModel->GetAppControlMode() == APPCONTROL_MODE_PICK)
+       {
+               __pContentIconListView = new (std::nothrow) IconListView();
+
+               if (__pPresentationModel->GetAppControlSelectionMode() == APPCONTROL_SELECTION_MODE_MULTIPLE)
+               {
+                       __pContentIconListView->Construct(Rectangle(0, 0, clientAreaBounds.width, clientAreaBounds.height - H_COUNT_LABEL),
+                                       DIMENSION_DEFAULT_THUMBNAIL, ICON_LIST_VIEW_STYLE_MARK,
+                                       ICON_LIST_VIEW_SCROLL_DIRECTION_VERTICAL);
+                       Bitmap* pBitmapEmpty = ResourceManager::GetBitmapN(IDB_LISTVIEW_EMPTY);
+                       if (pBitmapEmpty != null)
+                       {
+                               __pContentIconListView->SetBitmapOfEmptyList(pBitmapEmpty);
+                               delete pBitmapEmpty;
+                       }
+                       __pContentIconListView->SetTextOfEmptyList(ResourceManager::GetString(L"IDS_COM_BODY_NO_ITEMS"));
+                       __pContentIconListView->SetItemBorderStyle(ICON_LIST_VIEW_ITEM_BORDER_STYLE_NONE);
+                       __pContentIconListView->SetItemProvider(*this);
+                       __pContentIconListView->SetCheckBoxPosition(ICON_LIST_VIEW_CHECK_BOX_POSITION_TOP_RIGHT);
+                       __pContentIconListView->AddIconListViewItemEventListener(*this);
+                       __pContentIconListView->SetTouchAnimationEnabled(false);
+                       AddControl(__pContentIconListView);
+                       __pContentIconListView->SetShowState(true);
+
+                       __pLabelSelectCnt = new (std::nothrow) Label();
+                       
+                       __pLabelSelectCnt->Construct(FloatRectangle(0, clientAreaBounds.height - H_COUNT_LABEL,
+                                       clientAreaBounds.width, H_COUNT_LABEL), ResourceManager::GetString(L"IDS_ST_POP_NO_ITEMS_SELECTED"));
+                       __pLabelSelectCnt->SetTextVerticalAlignment(ALIGNMENT_MIDDLE);
+                       __pLabelSelectCnt->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+                       __pLabelSelectCnt->SetBackgroundColor(COLOR_COUNT_LABEL);
+                       __pLabelSelectCnt->SetTextColor(Color(COLOR_SELECT_COUNT_FONT));
+                       __pLabelSelectCnt->SetTextConfig(COUNT_LABEL_FONT_SIZE, LABEL_TEXT_STYLE_BOLD);
+                       AddControl(__pLabelSelectCnt);
+               }
+               else
+               {
+                       __pContentIconListView->Construct(Rectangle(0, 0, clientAreaBounds.width, clientAreaBounds.height),
+                                       DIMENSION_DEFAULT_THUMBNAIL, ICON_LIST_VIEW_STYLE_NORMAL,
+                                       ICON_LIST_VIEW_SCROLL_DIRECTION_VERTICAL);
+                       Bitmap* pBitmapEmpty = ResourceManager::GetBitmapN(IDB_LISTVIEW_EMPTY);
+                       if (pBitmapEmpty != null)
+                       {
+                               __pContentIconListView->SetBitmapOfEmptyList(pBitmapEmpty);
+                               delete pBitmapEmpty;
+                       }
+                       __pContentIconListView->SetTextOfEmptyList(ResourceManager::GetString(L"IDS_COM_BODY_NO_ITEMS"));
+                       __pContentIconListView->SetItemBorderStyle(ICON_LIST_VIEW_ITEM_BORDER_STYLE_NONE);
+                       __pContentIconListView->SetItemProvider(*this);
+                       __pContentIconListView->SetCheckBoxPosition(ICON_LIST_VIEW_CHECK_BOX_POSITION_TOP_RIGHT);
+                       __pContentIconListView->AddIconListViewItemEventListener(*this);
+                       __pContentIconListView->SetTouchAnimationEnabled(false);
+                       AddControl(__pContentIconListView);
+                       __pContentIconListView->SetShowState(true);
+               }
+       }
+       else
+       {
+               __pContentIconListView = new (std::nothrow) IconListView();
+               __pContentIconListView->Construct(Rectangle(0, H_SELECTALL_REGION, clientAreaBounds.width,
+                               clientAreaBounds.height - H_SELECTALL_REGION), DIMENSION_DEFAULT_THUMBNAIL,
+                               ICON_LIST_VIEW_STYLE_MARK, ICON_LIST_VIEW_SCROLL_DIRECTION_VERTICAL);
+               Bitmap* pBitmapEmpty = ResourceManager::GetBitmapN(IDB_LISTVIEW_EMPTY);
+               if (pBitmapEmpty != null)
+               {
+                       __pContentIconListView->SetBitmapOfEmptyList(pBitmapEmpty);
+                       delete pBitmapEmpty;
+               }
+               __pContentIconListView->SetTextOfEmptyList(ResourceManager::GetString(L"IDS_COM_BODY_NO_ITEMS"));
+               __pContentIconListView->SetItemBorderStyle(ICON_LIST_VIEW_ITEM_BORDER_STYLE_NONE);
+               __pContentIconListView->SetItemProvider(*this);
+               __pContentIconListView->SetCheckBoxPosition(ICON_LIST_VIEW_CHECK_BOX_POSITION_TOP_RIGHT);
+               __pContentIconListView->AddIconListViewItemEventListener(*this);
+               __pContentIconListView->SetTouchAnimationEnabled(false);
+               AddControl(__pContentIconListView);
+               __pContentIconListView->SetShowState(true);
+
+               __pLabelSelectCnt = new (std::nothrow) Label();
+               __pLabelSelectCnt->Construct(
+                               Rectangle(0, clientAreaBounds.height - H_COUNT_LABEL, clientAreaBounds.width, H_COUNT_LABEL),
+                               ResourceManager::GetString(L"IDS_ST_POP_NO_ITEMS_SELECTED"));
+               __pLabelSelectCnt->SetTextVerticalAlignment(ALIGNMENT_MIDDLE);
+               __pLabelSelectCnt->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+               __pLabelSelectCnt->SetBackgroundColor(COLOR_COUNT_LABEL);
+               __pLabelSelectCnt->SetTextColor(Color(COLOR_SELECT_COUNT_FONT));
+               AddControl(__pLabelSelectCnt);
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+result
+ImageListEditorPanel::OnTerminating(void)
+{
+       AppLogDebug("ENTER");
+       __pPresentationModel->RemovePresentationModelListener(*this);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+int
+ImageListEditorPanel::GetItemCount(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return __itemCount;
+}
+
+IconListViewItem*
+ImageListEditorPanel::CreateItem(int index)
+{
+       AppLogDebug("ENTER : index(%d)", index);
+       IconListViewItem* pIconListviewItem = new (std::nothrow) IconListViewItem();
+       Bitmap* pBitmap = null;
+       String* pItemText = null;
+
+       result r = __pPresentationModel->GetThumbnailInSyncCacheN(index, pItemText, pBitmap);
+       if (pBitmap == null || r == E_FAILURE)
+       {
+               __pPresentationModel->RequestThumbnail(index);
+               pBitmap = CommonUtil::GetEmptyThumbnailN();
+       }
+
+       if (pItemText == null)
+       {
+               pItemText = new (std::nothrow) String(ResourceManager::GetString(L"EMPTY_SPACE"));
+       }
+       else if ((*pItemText) != ResourceManager::GetString(L"EMPTY_SPACE"))
+       {
+               delete pItemText;
+               pItemText = new (std::nothrow) String(ResourceManager::GetString(L"EMPTY_SPACE"));
+       }
+
+       if (__pContentIconListView->IsItemChecked(index) == true)
+       {
+               if (pBitmap != null)
+               {
+                       BufferInfo bufferInfo;
+                       pBitmap->Lock(bufferInfo, INFINITE);
+                       pBitmap->Unlock();
+                       Color dimColor(COLOR_THUMBNAIL_DIM);
+                       dimColor.SetAlpha(ALPHA_THUMBNAIL_DIM);
+
+                       Canvas canvas;
+                       canvas.Construct(bufferInfo);
+                       canvas.FillRectangle(dimColor, canvas.GetBounds());
+
+                       Bitmap* pSelectedBitmap = new (std::nothrow) Bitmap();
+                       pSelectedBitmap->Construct(canvas, canvas.GetBounds());
+                       pIconListviewItem->Construct(*pBitmap, pItemText, pSelectedBitmap);
+                       delete pSelectedBitmap;
+               }
+               else
+               {
+                       AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+                       delete pIconListviewItem;
+                       delete pItemText;
+                       return null;
+               }
+       }
+       else
+       {
+               pIconListviewItem->Construct(*pBitmap, pItemText);
+       }
+
+       if (pBitmap != null)
+       {
+               delete pBitmap;
+       }
+       if (pItemText != null)
+       {
+               delete pItemText;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pIconListviewItem;
+}
+
+bool
+ImageListEditorPanel::DeleteItem(int index, IconListViewItem* pItem)
+{
+       AppLogDebug("ENTER");
+       delete pItem;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return true;
+}
+
+void
+ImageListEditorPanel::OnIconListViewItemStateChanged(IconListView& view, int index, IconListViewItemStatus status)
+{
+       AppLogDebug("ENTER");
+
+       if (status == ICON_LIST_VIEW_ITEM_CHECKED || status == ICON_LIST_VIEW_ITEM_UNCHECKED)
+       {
+               if (__pPresentationModel->GetAppControlMode() == APPCONTROL_MODE_PICK)
+               {
+                       if (__pPresentationModel->GetAppControlSelectionMode() == APPCONTROL_SELECTION_MODE_MULTIPLE)
+                       {
+                               int checkedCount = GetItemCheckedCount();
+                               String strTmp;
+                               if (checkedCount == 0)
+                               {
+                                       strTmp = ResourceManager::GetString(L"IDS_ST_POP_NO_ITEMS_SELECTED");
+                               }
+                               else if (checkedCount == 1)
+                               {
+                                       strTmp = ResourceManager::GetString(L"IDS_VR_POP_1_ITEM_SELECTED");
+                               }
+                               else
+                               {
+                                       strTmp.Format(LENGTH_COUNT_LABEL,
+                                                       ResourceManager::GetString(L"IDS_VR_POP_PD_ITEMS_SELECTED").GetPointer(), checkedCount);
+                               }
+
+                               __pLabelSelectCnt->SetText(strTmp);
+                               __pLabelSelectCnt->RequestRedraw(true);
+                               __pContentIconListView->RefreshList(index, LIST_REFRESH_TYPE_ITEM_MODIFY);
+                       }
+               }
+               else
+               {
+                       int checkedCount = GetItemCheckedCount();
+                       String strTmp;
+                       if (checkedCount == 0)
+                       {
+                               strTmp = ResourceManager::GetString(L"IDS_ST_POP_NO_ITEMS_SELECTED");
+                       }
+                       else if (checkedCount == 1)
+                       {
+                               strTmp = ResourceManager::GetString(L"IDS_VR_POP_1_ITEM_SELECTED");
+                       }
+                       else
+                       {
+                               strTmp.Format(LENGTH_COUNT_LABEL,
+                                               ResourceManager::GetString(L"IDS_VR_POP_PD_ITEMS_SELECTED").GetPointer(), checkedCount);
+                       }
+
+                       __pLabelSelectCnt->SetText(strTmp);
+                       __pLabelSelectCnt->RequestRedraw(true);
+                       if (__pCheckButton->IsSelected())
+                       {
+                               __pCheckButton->SetSelected(false);
+                       }
+                       __pContentIconListView->RefreshList(index, LIST_REFRESH_TYPE_ITEM_MODIFY);
+               }
+       }
+
+       if (    __pPresentationModel->GetAppControlMode() == APPCONTROL_MODE_PICK
+               && __pPresentationModel->GetAppControlSelectionMode() == APPCONTROL_SELECTION_MODE_SINGLE)
+       {
+               if (status == ICON_LIST_VIEW_ITEM_SELECTED)
+               {
+                       GalleryApp* pApp = static_cast<GalleryApp*>(GalleryApp::GetInstance());
+                       const IMap* pArguments = pApp->GetAppControlArguments();
+                       const String* cropMode = null;
+
+                       if (pArguments != null)
+                       {
+                               cropMode = static_cast<const String*>(pArguments->GetValue(String(APPCONTROL_KEY_IMAGEVIEWER_MODE)));
+                       }
+
+                       int width = 0;
+                       int height = 0;
+                       ImageFormat imageFormat = IMG_FORMAT_NONE;
+                       result r = E_SUCCESS;
+                       r = ImageBuffer::GetImageInfo(__pPresentationModel->GetContentFilePath(index), imageFormat, width, height);
+
+                       if (cropMode != null && r == E_SUCCESS && width > (H_CROP_RECTANGLE * 5) && height > (H_CROP_RECTANGLE * 5))
+                       {
+                               ArrayList* pList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+                               pList->Add(new (std::nothrow) String(__pPresentationModel->GetContentFilePath(index)));
+                               SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_IMAGE_CROP), pList);
+                       }
+                       else
+                       {
+
+                               HashMap* pMap = new (std::nothrow) HashMap(SingleObjectDeleter);
+                               result r = pMap->Construct();
+                               if (r == E_SUCCESS)
+                               {
+
+                                       ArrayList* pArrayList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+                                       r = pArrayList->Construct();
+                                       if (r == E_SUCCESS)
+                                       {
+                                               pArrayList->Add(new (std::nothrow) String(__pPresentationModel->GetContentFilePath(index)));
+                                               pMap->Add(new (std::nothrow) String(APPCONTROL_KEY_DATA_SELECTED), (Object*)pArrayList);
+
+                                               GalleryApp* pApp = dynamic_cast<GalleryApp*>(UiApp::GetInstance());
+                                               if (pApp != null)
+                                               {
+                                                       pApp->SendAppControlResult(APP_CTRL_RESULT_SUCCEEDED, pMap);
+                                                       pApp->Terminate();
+                                               }
+                                               else
+                                               {
+                                                       delete pMap;
+                                               }
+                                       }
+                                       else
+                                       {
+                                               delete pArrayList;
+                                               delete pMap;
+                                       }
+                               }
+                               else
+                               {
+                                       delete pMap;
+                               }
+                       }
+               }
+       }
+       SetButtonState();
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+ImageListEditorPanel::OnFileInfoChanged(const ContentType contentType)
+{
+       AppLogDebug("ENTER");
+       if (contentType == CONTENT_TYPE_IMAGE)
+       {
+               __pPresentationModel->RefreshCurrentAlbumContentInfoList(CONTENT_TYPE_IMAGE);
+               __itemCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+               __pContentIconListView->UpdateList();
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+ImageListEditorPanel::OnThumbnailDecoded(const int index)
+{
+       AppLogDebug("ENTER : index(%d)",index);
+       if (index >= 0)
+       {
+               __pContentIconListView->RefreshList(index, LIST_REFRESH_TYPE_ITEM_MODIFY);
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+ImageListEditorPanel::OnSceneActivatedN(const SceneId& previousSceneId,
+                                                               const SceneId& currentSceneId, IList* pArgs)
+{
+       AppLogDebug("ENTER");
+
+       ChangeOrientation();
+
+       __pPresentationModel = FileListPresentationModel::GetInstance();
+
+       if (__pPresentationModel->GetAppControlMode() == APPCONTROL_MODE_PICK)
+       {
+               if (currentSceneId == IDSCN_IMAGE_LIST_EDITOR)
+               {
+                       if (previousSceneId == IDSCN_ALBUM_LIST)
+                       {
+                               AlbumInfo* pAlbumInfo = static_cast<AlbumInfo*>(pArgs->GetAt(0));
+                               if (pAlbumInfo == null)
+                               {
+                                       AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+                                       return;
+                               }
+
+                               IList* pDirectoryList = pAlbumInfo->GetDirectoryListN();
+                               __pPresentationModel->SetCurrentAlbumInfo(pAlbumInfo->GetAlbumName(), *pDirectoryList);
+
+                               if (pDirectoryList != null)
+                               {
+                                       delete pDirectoryList;
+                               }
+                               delete pArgs;
+
+                               __itemCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+                               __pContentIconListView->UpdateList();
+                       }
+               }
+       }
+       else
+       {
+               __itemCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+               __pContentIconListView->RequestRedraw(true);
+       }
+
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       TryReturnVoid(pSceneManager != null, "[%s] fail to get SceneManager.", GetErrorMessage(GetLastResult()));
+
+       __pFileListEditorForm = dynamic_cast<FileListEditorForm*>(pSceneManager->GetCurrentScene()->GetForm());
+       TryReturnVoid(__pFileListEditorForm != null, "[%s] fail to get FileListEditorForm.", GetErrorMessage(GetLastResult()));
+
+       String titleText = __pPresentationModel->GetCurrentAlbumName();
+
+       if (titleText == ALL_ALBUMS_REAL_NAME)
+       {
+               String text = ResourceManager::GetString(L"IDS_MEDIABR_BODY_ALL_ALBUMS");
+               __pFileListEditorForm->SetTitleText(text);
+       }
+       else
+       {
+               __pFileListEditorForm->SetTitleText(titleText);
+       }
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+ImageListEditorPanel::OnSceneDeactivated(const SceneId& currentSceneId,
+                                                               const SceneId& nextSceneId)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+int
+ImageListEditorPanel::GetItemCheckedCount(void) const
+{
+       AppLogDebug("ENTER");
+       int count = 0;
+       if (__pContentIconListView != null)
+       {
+               int loopCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+               for (int i = 0; i < loopCount; ++i)
+               {
+                       if (__pContentIconListView->IsItemChecked(i))
+                       {
+                               ++count;
+                       }
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return count;
+}
+
+IList*
+ImageListEditorPanel::GetItemCheckedIndexListN(void) const
+{
+       AppLogDebug("ENTER");
+       IList* pList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+       Integer* pIndex = null;
+
+       if (__pContentIconListView != null)
+       {
+               int loopCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+               AppLogDebug("ENTER loopCount(%d)", loopCount);
+               for (int i = 0; i < loopCount; ++i)
+               {
+                       if (__pContentIconListView->IsItemChecked(i))
+                       {
+                               pIndex = new (std::nothrow) Integer(i);
+                               AppLogDebug("ENTER loopCount(%d)", loopCount);
+                               AppLogDebug("ENTER loopCount(%d)", pIndex->ToInt());
+                               pList->Add(pIndex);
+                       }
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pList;
+}
+
+void ImageListEditorPanel::OnFileOpInvalidate(enum FileActionMode actionId)
+{
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       FileListEditorForm* pFileListEditorForm =
+                               dynamic_cast<FileListEditorForm*>(pSceneManager->GetCurrentScene()->GetForm());
+       TryReturnVoid(pFileListEditorForm != null, "[%s] fail to get SceneManager.",
+                       GetErrorMessage(GetLastResult()));
+       pFileListEditorForm->Invalidate(true);
+}
+
+void ImageListEditorPanel::OnFileOpComplete(enum FileActionMode actionId, enum FileActionCompleteRes res)
+{
+}
+
+void
+ImageListEditorPanel::OnRequestAppExitWithMultipleSelectionAppControlResult(void)
+{
+       AppLogDebug("ENTER");
+       IList* pIndexList = GetItemCheckedIndexListN();
+
+       if (pIndexList->GetCount() <= 0)
+       {
+               delete pIndexList;
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+               return;
+       }
+
+       ArrayList* pArrayList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+       pArrayList->Construct();
+       int loopCount = pIndexList->GetCount();
+       Integer* pTemp = null;
+       for (int i = 0; i < loopCount; ++i)
+       {
+               pTemp = static_cast<Integer*>(pIndexList->GetAt(i));
+               pArrayList->Add(new (std::nothrow) String(__pPresentationModel->GetContentFilePath(pTemp->ToInt())));
+       }
+
+       HashMap* pMap = new (std::nothrow) HashMap(SingleObjectDeleter);
+       pMap->Construct();
+       pMap->Add(new (std::nothrow) String(APPCONTROL_KEY_DATA_SELECTED), pArrayList);
+
+       GalleryApp* pApp = dynamic_cast<GalleryApp*>(UiApp::GetInstance());
+       if (pApp != null)
+       {
+               pApp->SendAppControlResult(APP_CTRL_RESULT_SUCCEEDED, pMap);
+               pApp->Terminate();
+       }
+
+       delete pIndexList;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+ImageListEditorPanel::OnSelectAllPressed(void)
+{
+       bool needToSelectAll = true;
+       int checkedCount = GetItemCheckedCount();
+       int totalFileCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+       if (checkedCount == totalFileCount)
+       {
+               needToSelectAll = false;
+       }
+
+       if (needToSelectAll == true)
+       {
+               for (int i = 0; i < totalFileCount; ++i)
+               {
+                       if (__pContentIconListView->IsItemChecked(i) == false)
+                       {
+                               __pContentIconListView->SetItemChecked(i, true);
+                               __pContentIconListView->RefreshList(i, LIST_REFRESH_TYPE_ITEM_MODIFY);
+                       }
+                       if (__pFileListEditorForm != null)
+                       {
+                               __pFileListEditorForm->SetFooterButtonsState(true);
+                       }
+               }
+       }
+       else
+       {
+               for (int i = 0; i < totalFileCount; ++i)
+               {
+                       if (__pContentIconListView->IsItemChecked(i) == true)
+                       {
+                               __pContentIconListView->SetItemChecked(i, false);
+                               __pContentIconListView->RefreshList(i, LIST_REFRESH_TYPE_ITEM_MODIFY);
+                       }
+                       if (__pFileListEditorForm != null)
+                       {
+                               __pFileListEditorForm->SetFooterButtonsState(false);
+                       }
+               }
+       }
+
+       String tempString;
+       if (needToSelectAll == true)
+       {
+               tempString.Format(LENGTH_COUNT_LABEL,
+                                               ResourceManager::GetString(L"IDS_VR_POP_PD_ITEMS_SELECTED").GetPointer(), totalFileCount);
+       }
+       else
+       {
+               tempString = ResourceManager::GetString(L"IDS_ST_POP_NO_ITEMS_SELECTED");
+       }
+
+       __pLabelSelectCnt->SetText(tempString);
+       __pLabelSelectCnt->RequestRedraw(true);
+}
+
+void
+ImageListEditorPanel::SetButtonState(void)
+{
+       AppLogDebug("ENTER");
+
+       TryReturnVoid(__pFileListEditorForm != null, "[%s] __pFileListEditorForm is null", GetErrorMessage(GetLastResult()));
+
+       if (GetItemCheckedCount() > 0)
+       {
+               AppLogDebug("BUTTONSTATE : Request Enable");
+               __pFileListEditorForm->SetFooterButtonsState(true);
+       }
+       else
+       {
+               AppLogDebug("BUTTONSTATE : Request disable");
+               __pFileListEditorForm->SetFooterButtonsState(false);
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+ImageListEditorPanel::ChangeOrientation(void)
+{
+       AppLogDebug("ENTER");
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       const Form* pForm = dynamic_cast<Form*>(pSceneManager->GetCurrentScene()->GetForm());
+       TryReturn(pForm != null,, "[%s] fail to get the form.", GetErrorMessage(GetLastResult()));
+
+       FloatRectangle clientAreaBounds = pForm->GetClientAreaBoundsF();
+       SetBounds(0.0f, 0.0f, clientAreaBounds.width, clientAreaBounds.height);
+       if (__pLabelSelectCnt != NULL)
+       {
+       __pLabelSelectCnt->SetBounds(0.0f, clientAreaBounds.height - H_COUNT_LABEL, clientAreaBounds.width, H_COUNT_LABEL);
+       }
+       __pContentIconListView->SetBounds(0.0f, 0.0f, clientAreaBounds.width, clientAreaBounds.height -H_COUNT_LABEL);
+}
diff --git a/src/GlImageListPanel.cpp b/src/GlImageListPanel.cpp
new file mode 100644 (file)
index 0000000..c63a939
--- /dev/null
@@ -0,0 +1,268 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlImageListPanel.cpp
+ * @brief              This is the implementation file for ImageListPanel class.
+ */
+
+#include <FContent.h>
+#include <FMedia.h>
+#include "GlAlbumInfo.h"
+#include "GlCommonUtil.h"
+#include "GlFileListForm.h"
+#include "GlFileListPresentationModel.h"
+#include "GlImageListPanel.h"
+#include "GlTypes.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Content;
+using namespace Tizen::Graphics;
+using namespace Tizen::Media;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+static const Rectangle RECT_INITIAL (0, 0, 10, 10);
+static const int W_CLIENT = 720;
+static const int H_CONTENT_MARGIN = 24;
+static const int W_CONTENT_MARGIN = 14;
+static const int W_CONTENT_SPACE = 20;
+static const int H_CONTENT_SPACE = 24;
+
+ImageListPanel::ImageListPanel(void)
+       : __itemCount(0)
+       , __pContentIconListView(null)
+       , __pPresentationModel(null)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+ImageListPanel::~ImageListPanel(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+result
+ImageListPanel::Initialize(void)
+{
+       AppLogDebug("ENTER");
+       result r = Construct(RECT_INITIAL);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+result
+ImageListPanel::OnInitializing(void)
+{
+       AppLogDebug("ENTER");
+       const Form* pForm = dynamic_cast<Form*>(GetParent());
+       TryReturn(pForm != null, E_FAILURE, "[%s] fail to get the form.", GetErrorMessage(GetLastResult()));
+
+       __pPresentationModel = FileListPresentationModel::GetInstance();
+       __pPresentationModel->ClearThumbnailRequests();
+       __pPresentationModel->AddPresentationModelListener(this);
+
+       Rectangle clientAreaBounds = pForm->GetClientAreaBounds();
+       clientAreaBounds.x = clientAreaBounds.y = 0;
+       SetBounds(clientAreaBounds);
+       __pContentIconListView = new (std::nothrow) IconListView();
+       __pContentIconListView->Construct(Rectangle(0, 0, W_CLIENT, clientAreaBounds.height),
+                       DIMENSION_DEFAULT_THUMBNAIL, ICON_LIST_VIEW_STYLE_NORMAL, ICON_LIST_VIEW_SCROLL_DIRECTION_VERTICAL);
+       Bitmap* pBitmapEmpty = ResourceManager::GetBitmapN(IDB_LISTVIEW_EMPTY);
+       if (pBitmapEmpty != null)
+       {
+               __pContentIconListView->SetBitmapOfEmptyList(pBitmapEmpty);
+               delete pBitmapEmpty;
+       }
+       __pContentIconListView->SetTextOfEmptyList(ResourceManager::GetString(L"IDS_COM_BODY_NO_ITEMS"));
+       __pContentIconListView->SetMargin(MARGIN_TYPE_LEFT, W_CONTENT_MARGIN);
+       __pContentIconListView->SetMargin(MARGIN_TYPE_RIGHT, W_CONTENT_MARGIN);
+       __pContentIconListView->SetMargin(MARGIN_TYPE_TOP, H_CONTENT_MARGIN);
+       __pContentIconListView->SetItemSpacing(W_CONTENT_SPACE, H_CONTENT_SPACE);
+       __pContentIconListView->SetItemBorderStyle(ICON_LIST_VIEW_ITEM_BORDER_STYLE_NONE);
+       __pContentIconListView->SetItemProvider(*this);
+       __pContentIconListView->SetCheckBoxPosition(ICON_LIST_VIEW_CHECK_BOX_POSITION_TOP_RIGHT);
+       __pContentIconListView->AddIconListViewItemEventListener(*this);
+       __pContentIconListView->SetTouchAnimationEnabled(false);
+       AddControl(__pContentIconListView);
+       __pContentIconListView->SetShowState(true);
+       __itemCount = 0;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+result
+ImageListPanel::OnTerminating(void)
+{
+       AppLogDebug("ENTER");
+       __pPresentationModel->RemovePresentationModelListener(*this);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+int
+ImageListPanel::GetItemCount(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return __itemCount;
+}
+
+IconListViewItem*
+ImageListPanel::CreateItem(int index)
+{
+       AppLogDebug("ENTER");
+       IconListViewItem* pIconListviewItem = new (std::nothrow) IconListViewItem();
+       Bitmap* pBitmap = null;
+       String* pItemText = null;
+       result r = __pPresentationModel->GetThumbnailInSyncCacheN(index, pItemText, pBitmap);
+       if (pBitmap == null || r == E_FAILURE)
+       {
+               __pPresentationModel->RequestThumbnail(index);
+               pBitmap = CommonUtil::GetEmptyThumbnailN();
+       }
+
+       if (pItemText == null)
+       {
+               pItemText = new (std::nothrow) String(ResourceManager::GetString(L"EMPTY_SPACE"));
+       }
+       else if ((*pItemText) != ResourceManager::GetString(L"EMPTY_SPACE"))
+       {
+               delete pItemText;
+               pItemText = new (std::nothrow) String(ResourceManager::GetString(L"EMPTY_SPACE"));
+       }
+
+       pIconListviewItem->Construct(*pBitmap, pItemText);
+
+       if (pBitmap != null)
+       {
+               delete pBitmap;
+       }
+       if (pItemText != null)
+       {
+               delete pItemText;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pIconListviewItem;
+}
+
+bool
+ImageListPanel::DeleteItem(int index, IconListViewItem* pItem)
+{
+       AppLogDebug("ENTER");
+       delete pItem;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return true;
+}
+
+void
+ImageListPanel::OnIconListViewItemStateChanged(IconListView& view, int index, IconListViewItemStatus status)
+{
+       AppLogDebug("ENTER");
+       if (status == ICON_LIST_VIEW_ITEM_SELECTED)
+       {
+               ArrayList* pArrayList = new (std::nothrow) ArrayList();
+               pArrayList->Construct();
+               int loopCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+
+               for (int i = 0; i < loopCount; ++i)
+               {
+                       pArrayList->Add(new (std::nothrow) String(__pPresentationModel->GetContentFilePath(i)));
+               }
+               String listIndex;
+               listIndex.Format(10, L"%d", index);
+
+               const String mimeType = APPCONTROL_MIME_IMAGE_ALL;
+               HashMap* pDataList = new (std::nothrow) HashMap(SingleObjectDeleter);
+               pDataList->Construct();
+               pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_TYPE), new (std::nothrow) String(APPCONTROL_DATA_IMAGE));
+               pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_PATH), (Object*)pArrayList);
+               pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_INDEX), new (std::nothrow) String(listIndex));
+
+               __pPresentationModel->StartAppControl(APPCONTROL_PROVIDER_ID_IMAGE, APPCONTROL_OPERATION_ID_VIEW, null,
+                               &mimeType, pDataList, null);
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+ImageListPanel::OnFileInfoChanged(const ContentType contentType)
+{
+       AppLogDebug("ENTER");
+       if (contentType == CONTENT_TYPE_IMAGE)
+       {
+               __itemCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+               __pContentIconListView->UpdateList();
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+ImageListPanel::OnThumbnailDecoded(const int index)
+{
+       AppLogDebug("ENTER : index(%d)", index);
+       if (index >= 0)
+       {
+               __pContentIconListView->RefreshList(index, LIST_REFRESH_TYPE_ITEM_MODIFY);
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+ImageListPanel::OnSceneActivatedN(const SceneId& previousSceneId,
+                                                               const SceneId& currentSceneId, IList* pArgs)
+{
+       AppLogDebug("ENTER");
+       __pPresentationModel = FileListPresentationModel::GetInstance();
+
+       if (currentSceneId == IDSCN_IMAGE_LIST)
+       {
+               __pPresentationModel->RefreshCurrentAlbumContentInfoList(CONTENT_TYPE_IMAGE);
+               __itemCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+               __pContentIconListView->UpdateList();
+       }
+
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       AppAssert(pSceneManager);
+       if (pSceneManager->GetCurrentSceneId() == IDSCN_IMAGE_LIST)
+       {
+               FileListForm* pFileListForm = dynamic_cast<FileListForm*>(pSceneManager->GetCurrentScene()->GetForm());
+               if (pFileListForm != null)
+               {
+                       pFileListForm->SetTitleText(__pPresentationModel->GetCurrentAlbumName());
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+ImageListPanel::OnSceneDeactivated(const SceneId& currentSceneId,
+                                                               const SceneId& nextSceneId)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
diff --git a/src/GlMainFrame.cpp b/src/GlMainFrame.cpp
new file mode 100644 (file)
index 0000000..975b73f
--- /dev/null
@@ -0,0 +1,127 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlMainFrame.cpp
+ * @brief              This is the implementation file for MainFrame class.
+ */
+
+#include <FUi.h>
+#include "GlGalleryApp.h"
+#include "GlFormFactory.h"
+#include "GlMainFrame.h"
+#include "GlPanelFactory.h"
+#include "GlTypes.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+MainFrame::MainFrame(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+MainFrame::~MainFrame(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+result
+MainFrame::OnInitializing(void)
+{
+       AppLogDebug("ENTER");
+       result r = E_SUCCESS;
+       static FormFactory formFactory;
+       static PanelFactory panelFactory;
+
+       AddFrameEventListener(*this);
+
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+
+       r = pSceneManager->RegisterFormFactory(formFactory);
+       r = pSceneManager->RegisterPanelFactory(panelFactory);
+
+       r = pSceneManager->RegisterScene(IDSCN_ALBUM_LIST, IDC_FORM_ALBUM_LIST, IDC_PANEL_BLANK);
+       r = pSceneManager->RegisterScene(IDSCN_ALBUM_LIST_EDITOR, IDC_FORM_ALBUM_LIST_EDITOR, IDC_PANEL_BLANK);
+       r = pSceneManager->RegisterScene(IDSCN_ALBUM_NAME_EDITOR, IDC_FORM_ALBUM_NAME_EDITOR, IDC_PANEL_BLANK);
+
+       r = pSceneManager->RegisterScene(IDSCN_ALL_LIST, IDC_FORM_FILE_LIST, IDC_PANEL_ALL_LIST);
+       r = pSceneManager->RegisterScene(IDSCN_IMAGE_LIST, IDC_FORM_FILE_LIST, IDC_PANEL_IMAGE_LIST);
+       r = pSceneManager->RegisterScene(IDSCN_VIDEO_LIST, IDC_FORM_FILE_LIST, IDC_PANEL_VIDEO_LIST);
+
+       r = pSceneManager->RegisterScene(IDSCN_ALL_LIST_EDITOR, IDC_FORM_FILE_LIST_EDITOR, IDC_PANEL_ALL_LIST_EDITOR);
+       r = pSceneManager->RegisterScene(IDSCN_IMAGE_LIST_EDITOR, IDC_FORM_FILE_LIST_EDITOR, IDC_PANEL_IMAGE_LIST_EDITOR);
+       r = pSceneManager->RegisterScene(IDSCN_VIDEO_LIST_EDITOR, IDC_FORM_FILE_LIST_EDITOR, IDC_PANEL_VIDEO_LIST_EDITOR);
+
+       r = pSceneManager->RegisterScene(IDSCN_ALL_LIST_SELECTION, IDC_FORM_FILE_LIST_EDITOR,
+                       IDC_PANEL_ALL_LIST_SELECTION);
+
+       r = pSceneManager->RegisterScene(IDSCN_SETTING_MAIN, IDC_FORM_SETTING_MAIN, IDC_PANEL_BLANK);
+       r = pSceneManager->RegisterScene(IDSCN_SETTING_INTERVAL, IDC_FORM_SETTING_INTERVAL, IDC_PANEL_BLANK);
+       r = pSceneManager->RegisterScene(IDSCN_SETTING_TRANSITION, IDC_FORM_SETTING_TRANSITION, IDC_PANEL_BLANK);
+       r = pSceneManager->RegisterScene(IDSCN_IMAGE_CROP, IDC_FORM_IMAGE_CROP, IDC_PANEL_BLANK);
+
+       SceneId sceneId;
+       GalleryApp* pGalleryApp = static_cast<GalleryApp*>(GalleryApp::GetInstance());
+
+       String operationID = pGalleryApp->GetAppControlOperationId();
+
+       if (operationID.CompareTo(APPCONTROL_OPERATION_ID_MAIN) == 0)
+       {
+               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALBUM_LIST), null);
+       }
+       else if (operationID.CompareTo(APPCONTROL_OPERATION_ID_PICK) == 0)
+       {
+               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALBUM_LIST), null);
+       }
+       else if (operationID.CompareTo(APPCONTROL_OPERATION_ID_CONFIGURE) == 0)
+       {
+               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SETTING_MAIN), null);
+       }
+       else
+       {
+               pGalleryApp->Terminate();
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+result
+MainFrame::OnTerminating(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+void
+MainFrame::OnFrameActivated(const Frame& source)
+{
+       AppLogDebug("OnFrameActivated");
+
+       GalleryApp* pGalleryApp = static_cast<GalleryApp*>(GalleryApp::GetInstance());
+       if (pGalleryApp != null)
+       {
+               pGalleryApp->SetFrameActivated(true);
+       }
+}
diff --git a/src/GlPanelFactory.cpp b/src/GlPanelFactory.cpp
new file mode 100644 (file)
index 0000000..580c3e1
--- /dev/null
@@ -0,0 +1,108 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlPanelFactory.cpp
+ * @brief              This is the implementation file for PanelFactory class.
+ */
+
+#include "GlAllListEditorPanel.h"
+#include "GlAllListPanel.h"
+#include "GlAllListSelectionPanel.h"
+#include "GlImageListEditorPanel.h"
+#include "GlImageListPanel.h"
+#include "GlPanelFactory.h"
+#include "GlVideoListEditorPanel.h"
+#include "GlVideoListPanel.h"
+#include "GlTypes.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+PanelFactory::PanelFactory()
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+PanelFactory::~PanelFactory()
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+Panel*
+PanelFactory::CreatePanelN(const String& panelId, const SceneId& sceneId)
+{
+       AppLogDebug("ENTER");
+       Panel*  pNewPanel = null;
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       AppAssert(pSceneManager);
+
+       if (panelId == IDC_PANEL_ALL_LIST)
+       {
+               AllListPanel* pPanel = new (std::nothrow) AllListPanel();
+               pPanel->Initialize();
+               pSceneManager->AddSceneEventListener(sceneId, *pPanel);
+               pNewPanel = pPanel;
+       }
+       else if (panelId == IDC_PANEL_IMAGE_LIST)
+       {
+               ImageListPanel* pPanel = new (std::nothrow) ImageListPanel();
+               pPanel->Initialize();
+               pSceneManager->AddSceneEventListener(sceneId, *pPanel);
+               pNewPanel = pPanel;
+       }
+       else if (panelId == IDC_PANEL_VIDEO_LIST)
+       {
+               VideoListPanel* pPanel = new (std::nothrow) VideoListPanel();
+               pPanel->Initialize();
+               pSceneManager->AddSceneEventListener(sceneId, *pPanel);
+               pNewPanel = pPanel;
+       }
+       else if (panelId == IDC_PANEL_ALL_LIST_EDITOR)
+       {
+               AllListEditorPanel* pPanel = new (std::nothrow) AllListEditorPanel();
+               pPanel->Initialize();
+               pSceneManager->AddSceneEventListener(sceneId, *pPanel);
+               pNewPanel = pPanel;
+       }
+       else if (panelId == IDC_PANEL_IMAGE_LIST_EDITOR)
+       {
+               ImageListEditorPanel* pPanel = new (std::nothrow) ImageListEditorPanel();
+               pPanel->Initialize();
+               pSceneManager->AddSceneEventListener(sceneId, *pPanel);
+               pNewPanel = pPanel;
+       }
+       else if (panelId == IDC_PANEL_VIDEO_LIST_EDITOR)
+       {
+               VideoListEditorPanel* pPanel = new (std::nothrow) VideoListEditorPanel();
+               pPanel->Initialize();
+               pSceneManager->AddSceneEventListener(sceneId, *pPanel);
+               pNewPanel = pPanel;
+       }
+       else if (panelId == IDC_PANEL_ALL_LIST_SELECTION)
+       {
+               AllListSelectionPanel* pPanel = new (std::nothrow) AllListSelectionPanel();
+               pPanel->Initialize();
+               pSceneManager->AddSceneEventListener(sceneId, *pPanel);
+               pNewPanel = pPanel;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pNewPanel;
+}
diff --git a/src/GlProgressAnimation.cpp b/src/GlProgressAnimation.cpp
new file mode 100644 (file)
index 0000000..73352bc
--- /dev/null
@@ -0,0 +1,216 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlProgressAnimation.cpp
+ * @brief              This is the implementation file for GlProgressAnimation class.
+ */
+
+#include <FApp.h>
+#include "GlProgressAnimation.h"
+#include "GlTypes.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Graphics;
+using namespace Tizen::Media;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+
+ProgressAnimation::ProgressAnimation(void)
+       : __pAnimation(null)
+       , __pAnimationFrameList(null)
+{
+}
+
+ProgressAnimation::~ProgressAnimation(void)
+{
+       if (__pAnimationFrameList != null)
+       {
+               delete __pAnimationFrameList;
+       }
+}
+
+result
+ProgressAnimation::Construct(Tizen::Graphics::Rectangle rect)
+{
+       Panel::Construct(rect);
+
+       AppResource *pAppResource = Application::GetInstance()->GetAppResource();
+       if (pAppResource != null)
+       {
+               Bitmap *pBitmap0 = pAppResource->GetBitmapN(IDB_ALBUM_RENAME_PROGRESS1);
+               Bitmap *pBitmap1 = pAppResource->GetBitmapN(IDB_ALBUM_RENAME_PROGRESS2);
+               Bitmap *pBitmap2 = pAppResource->GetBitmapN(IDB_ALBUM_RENAME_PROGRESS3);
+               Bitmap *pBitmap3 = pAppResource->GetBitmapN(IDB_ALBUM_RENAME_PROGRESS4);
+               Bitmap *pBitmap4 = pAppResource->GetBitmapN(IDB_ALBUM_RENAME_PROGRESS5);
+               Bitmap *pBitmap5 = pAppResource->GetBitmapN(IDB_ALBUM_RENAME_PROGRESS6);
+               Bitmap *pBitmap6 = pAppResource->GetBitmapN(IDB_ALBUM_RENAME_PROGRESS7);
+               Bitmap *pBitmap7 = pAppResource->GetBitmapN(IDB_ALBUM_RENAME_PROGRESS8);
+               Bitmap *pBitmap8 = pAppResource->GetBitmapN(IDB_ALBUM_RENAME_PROGRESS9);
+               Bitmap *pBitmap9 = pAppResource->GetBitmapN(IDB_ALBUM_RENAME_PROGRESS10);
+               Bitmap *pBitmap10 = pAppResource->GetBitmapN(IDB_ALBUM_RENAME_PROGRESS11);
+               Bitmap *pBitmap11 = pAppResource->GetBitmapN(IDB_ALBUM_RENAME_PROGRESS12);
+               Bitmap *pBitmap12 = pAppResource->GetBitmapN(IDB_ALBUM_RENAME_PROGRESS13);
+               Bitmap *pBitmap13 = pAppResource->GetBitmapN(IDB_ALBUM_RENAME_PROGRESS14);
+               Bitmap *pBitmap14 = pAppResource->GetBitmapN(IDB_ALBUM_RENAME_PROGRESS15);
+               Bitmap *pBitmap15 = pAppResource->GetBitmapN(IDB_ALBUM_RENAME_PROGRESS16);
+               Bitmap *pBitmap16 = pAppResource->GetBitmapN(IDB_ALBUM_RENAME_PROGRESS17);
+               Bitmap *pBitmap17 = pAppResource->GetBitmapN(IDB_ALBUM_RENAME_PROGRESS18);
+               Bitmap *pBitmap18 = pAppResource->GetBitmapN(IDB_ALBUM_RENAME_PROGRESS19);
+               Bitmap *pBitmap19 = pAppResource->GetBitmapN(IDB_ALBUM_RENAME_PROGRESS20);
+               Bitmap *pBitmap20 = pAppResource->GetBitmapN(IDB_ALBUM_RENAME_PROGRESS21);
+               Bitmap *pBitmap21 = pAppResource->GetBitmapN(IDB_ALBUM_RENAME_PROGRESS22);
+               Bitmap *pBitmap22 = pAppResource->GetBitmapN(IDB_ALBUM_RENAME_PROGRESS23);
+               Bitmap *pBitmap23 = pAppResource->GetBitmapN(IDB_ALBUM_RENAME_PROGRESS24);
+               Bitmap *pBitmap24 = pAppResource->GetBitmapN(IDB_ALBUM_RENAME_PROGRESS25);
+               Bitmap *pBitmap25 = pAppResource->GetBitmapN(IDB_ALBUM_RENAME_PROGRESS26);
+               Bitmap *pBitmap26 = pAppResource->GetBitmapN(IDB_ALBUM_RENAME_PROGRESS27);
+               Bitmap *pBitmap27 = pAppResource->GetBitmapN(IDB_ALBUM_RENAME_PROGRESS28);
+               Bitmap *pBitmap28 = pAppResource->GetBitmapN(IDB_ALBUM_RENAME_PROGRESS29);
+               Bitmap *pBitmap29 = pAppResource->GetBitmapN(IDB_ALBUM_RENAME_PROGRESS30);
+
+               // Create AnimationFrames
+               long duration = DURATION / PROGRESS_COUNT;
+               AnimationFrame *pAniFrame1 = new (std::nothrow) AnimationFrame(*pBitmap0, duration);
+               AnimationFrame *pAniFrame2 = new (std::nothrow) AnimationFrame(*pBitmap1, duration);
+               AnimationFrame *pAniFrame3 = new (std::nothrow) AnimationFrame(*pBitmap2, duration);
+               AnimationFrame *pAniFrame4 = new (std::nothrow) AnimationFrame(*pBitmap3, duration);
+               AnimationFrame *pAniFrame5 = new (std::nothrow) AnimationFrame(*pBitmap4, duration);
+               AnimationFrame *pAniFrame6 = new (std::nothrow) AnimationFrame(*pBitmap5, duration);
+               AnimationFrame *pAniFrame7 = new (std::nothrow) AnimationFrame(*pBitmap6, duration);
+               AnimationFrame *pAniFrame8 = new (std::nothrow) AnimationFrame(*pBitmap7, duration);
+               AnimationFrame *pAniFrame9 = new (std::nothrow) AnimationFrame(*pBitmap8, duration);
+               AnimationFrame *pAniFrame10 = new (std::nothrow) AnimationFrame(*pBitmap9, duration);
+               AnimationFrame *pAniFrame11 = new (std::nothrow) AnimationFrame(*pBitmap10, duration);
+               AnimationFrame *pAniFrame12 = new (std::nothrow) AnimationFrame(*pBitmap11, duration);
+               AnimationFrame *pAniFrame13 = new (std::nothrow) AnimationFrame(*pBitmap12, duration);
+               AnimationFrame *pAniFrame14 = new (std::nothrow) AnimationFrame(*pBitmap13, duration);
+               AnimationFrame *pAniFrame15 = new (std::nothrow) AnimationFrame(*pBitmap14, duration);
+               AnimationFrame *pAniFrame16 = new (std::nothrow) AnimationFrame(*pBitmap15, duration);
+               AnimationFrame *pAniFrame17 = new (std::nothrow) AnimationFrame(*pBitmap16, duration);
+               AnimationFrame *pAniFrame18 = new (std::nothrow) AnimationFrame(*pBitmap17, duration);
+               AnimationFrame *pAniFrame19 = new (std::nothrow) AnimationFrame(*pBitmap18, duration);
+               AnimationFrame *pAniFrame20 = new (std::nothrow) AnimationFrame(*pBitmap19, duration);
+               AnimationFrame *pAniFrame21 = new (std::nothrow) AnimationFrame(*pBitmap20, duration);
+               AnimationFrame *pAniFrame22 = new (std::nothrow) AnimationFrame(*pBitmap21, duration);
+               AnimationFrame *pAniFrame23 = new (std::nothrow) AnimationFrame(*pBitmap22, duration);
+               AnimationFrame *pAniFrame24 = new (std::nothrow) AnimationFrame(*pBitmap23, duration);
+               AnimationFrame *pAniFrame25 = new (std::nothrow) AnimationFrame(*pBitmap24, duration);
+               AnimationFrame *pAniFrame26 = new (std::nothrow) AnimationFrame(*pBitmap25, duration);
+               AnimationFrame *pAniFrame27 = new (std::nothrow) AnimationFrame(*pBitmap26, duration);
+               AnimationFrame *pAniFrame28 = new (std::nothrow) AnimationFrame(*pBitmap27, duration);
+               AnimationFrame *pAniFrame29 = new (std::nothrow) AnimationFrame(*pBitmap28, duration);
+               AnimationFrame *pAniFrame30 = new (std::nothrow) AnimationFrame(*pBitmap29, duration);
+
+               // Create AnimationList
+               __pAnimationFrameList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+               __pAnimationFrameList->Construct();
+               __pAnimationFrameList->Add(*pAniFrame1);
+               __pAnimationFrameList->Add(*pAniFrame2);
+               __pAnimationFrameList->Add(*pAniFrame3);
+               __pAnimationFrameList->Add(*pAniFrame4);
+               __pAnimationFrameList->Add(*pAniFrame5);
+               __pAnimationFrameList->Add(*pAniFrame6);
+               __pAnimationFrameList->Add(*pAniFrame7);
+               __pAnimationFrameList->Add(*pAniFrame8);
+               __pAnimationFrameList->Add(*pAniFrame9);
+               __pAnimationFrameList->Add(*pAniFrame10);
+               __pAnimationFrameList->Add(*pAniFrame11);
+               __pAnimationFrameList->Add(*pAniFrame12);
+               __pAnimationFrameList->Add(*pAniFrame13);
+               __pAnimationFrameList->Add(*pAniFrame14);
+               __pAnimationFrameList->Add(*pAniFrame15);
+               __pAnimationFrameList->Add(*pAniFrame16);
+               __pAnimationFrameList->Add(*pAniFrame17);
+               __pAnimationFrameList->Add(*pAniFrame18);
+               __pAnimationFrameList->Add(*pAniFrame19);
+               __pAnimationFrameList->Add(*pAniFrame20);
+               __pAnimationFrameList->Add(*pAniFrame21);
+               __pAnimationFrameList->Add(*pAniFrame22);
+               __pAnimationFrameList->Add(*pAniFrame23);
+               __pAnimationFrameList->Add(*pAniFrame24);
+               __pAnimationFrameList->Add(*pAniFrame25);
+               __pAnimationFrameList->Add(*pAniFrame26);
+               __pAnimationFrameList->Add(*pAniFrame27);
+               __pAnimationFrameList->Add(*pAniFrame28);
+               __pAnimationFrameList->Add(*pAniFrame29);
+               __pAnimationFrameList->Add(*pAniFrame30);
+
+               // Deallocate a Bitmap.
+               delete pBitmap0;
+               delete pBitmap1;
+               delete pBitmap2;
+               delete pBitmap3;
+               delete pBitmap4;
+               delete pBitmap5;
+               delete pBitmap6;
+               delete pBitmap7;
+               delete pBitmap8;
+               delete pBitmap9;
+               delete pBitmap10;
+               delete pBitmap11;
+               delete pBitmap12;
+               delete pBitmap13;
+               delete pBitmap14;
+               delete pBitmap15;
+               delete pBitmap16;
+               delete pBitmap17;
+               delete pBitmap18;
+               delete pBitmap19;
+               delete pBitmap20;
+               delete pBitmap21;
+               delete pBitmap22;
+               delete pBitmap23;
+               delete pBitmap24;
+               delete pBitmap25;
+               delete pBitmap26;
+               delete pBitmap27;
+               delete pBitmap28;
+               delete pBitmap29;
+
+               // Create Animation
+               __pAnimation = new (std::nothrow) Animation();
+               __pAnimation->Construct(Rectangle((rect.width / 2 - 60 / 2), (rect.height / 2 - 30), 60, 60), *__pAnimationFrameList);
+               __pAnimation->SetRepeatCount(10000);
+               AddControl(__pAnimation);
+       }
+
+       return E_SUCCESS;
+}
+
+void
+ProgressAnimation::AnimationStart(void)
+{
+       __pAnimation->SetShowState(true);
+       __pAnimation->Play();
+}
+
+void
+ProgressAnimation::AnimationStop(void)
+{
+       __pAnimation->Stop();
+       __pAnimation->SetShowState(false);
+}
+
+void
+ProgressAnimation::ChangeOrientation(Tizen::Graphics::Rectangle rect)
+{
+       Panel::SetBounds(rect);
+       __pAnimation->SetBounds((rect.width / 2 - 60 / 2), (rect.height / 2 - 30), 60, 60);
+       __pAnimation->Invalidate(true);
+}
diff --git a/src/GlProgressBar.cpp b/src/GlProgressBar.cpp
new file mode 100644 (file)
index 0000000..0e40399
--- /dev/null
@@ -0,0 +1,207 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlProgressBar.cpp
+ * @brief              This is the implementation file for GlProgressBar class.
+ */
+
+#include <FApp.h>
+#include <FUi.h>
+
+#include "GlProgressBar.h"
+#include "GlResourceManager.h"
+#include "GlTypes.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Runtime;
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+
+GlProgressBar::GlProgressBar(IActionEventListener* listener, IPropagatedKeyEventListener* propagatedListener)
+       : __totalVal(1)
+       , __curVal(1)
+       , __pFileProgressingPopup(null)
+       , __pFileProgressingProgress(null)
+       , __pFileProgressingHeaderLabel(null)
+       , __pFileProgressingLabel(null)
+       , __pFileCounterLabel(null)
+       , __pFileProgressingCancelButton(null)
+       , __pActionListener(listener)
+       , __pPropagatedListener(propagatedListener)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+GlProgressBar::~GlProgressBar(void)
+{
+       AppLogDebug("ENTER");
+       if (__pFileProgressingPopup != null)
+       {
+               delete __pFileProgressingPopup;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+GlProgressBar::HideFileProgressingPopup(void)
+{
+       AppLogDebug("ENTER");
+       if (__pFileProgressingPopup != null && __pFileProgressingPopup->IsVisible())
+       {
+               __pFileProgressingPopup->SetShowState(false);
+
+               delete __pFileProgressingPopup;
+               __pFileProgressingPopup = null;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+result
+GlProgressBar::CreateFileProgressingPopup(void)
+{
+       AppLogDebug("ENTER");
+       __pFileProgressingPopup = new (std::nothrow) Popup();
+       result r = __pFileProgressingPopup->Construct(L"IDL_DEL_PROGRESSING_POPUP");
+
+       if (__pFileProgressingPopup != null && r == E_SUCCESS)
+       {
+
+               __pFileProgressingPopup->SetPropagatedKeyEventListener(__pPropagatedListener);
+
+               __pFileProgressingCancelButton = static_cast<Button*>(__pFileProgressingPopup->GetControl(L"IDC_CANCEL_BUTTON", true));
+
+               if (__pFileProgressingCancelButton != null)
+               {
+                       __pFileProgressingCancelButton->SetActionId(IDA_PROGRESSBAR_CANCEL);
+                       __pFileProgressingCancelButton->AddActionEventListener(*__pActionListener);
+                       __pFileProgressingCancelButton->SetShowState(true);
+               }
+
+               __pFileProgressingProgress = static_cast<Progress*>(__pFileProgressingPopup->GetControl(L"IDC_PROGRESS_BAR", true));
+
+               if (__pFileProgressingProgress != null)
+               {
+                       __pFileProgressingProgress->SetName(L"IDC_ANIMATION_PROGRESS");
+                       __pFileProgressingProgress->SetValue(0);
+               }
+
+               __pFileProgressingHeaderLabel = static_cast<Label*>(__pFileProgressingPopup->GetControl(L"IDC_ANIMATION_HEADER", true));
+
+               if (__pFileProgressingHeaderLabel != null)
+               {
+                       __pFileProgressingHeaderLabel->SetName(L"IDC_ANIMATION_HEADER");
+                       __pFileProgressingHeaderLabel->SetShowState(true);
+               }
+
+               __pFileProgressingLabel = static_cast<Label*>(__pFileProgressingPopup->GetControl(L"IDC_ANIMATION_LABEL", true));
+
+               if (__pFileProgressingLabel != null)
+               {
+                       __pFileProgressingLabel->SetName(L"IDC_FILE_COUNT_LABEL");
+                       __pFileProgressingLabel->SetShowState(true);
+               }
+
+               __pFileCounterLabel = static_cast<Label*>(__pFileProgressingPopup->GetControl(L"IDC_COUNTER_LABEL", true));
+
+               if (__pFileCounterLabel != null)
+               {
+                       __pFileCounterLabel->SetText(L"");
+                       __pFileCounterLabel->SetTextColor(CUSTOM_COLOR_GREY);
+                       __pFileCounterLabel->SetShowState(true);
+               }
+
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+       return r;
+}
+
+void
+GlProgressBar::ShowFileProgressingPopup(const int val, enum FileActionMode action)
+{
+       AppLogDebug("ENTER");
+       CreateFileProgressingPopup();
+
+       if (val > 0)
+       {
+               __totalVal = val;
+       }
+       else
+       {
+               __totalVal = 1;
+       }
+       __pFileProgressingProgress->SetRange(1, val);
+
+       if (__pFileProgressingPopup != null)
+       {
+               if (__pFileProgressingHeaderLabel != null)
+               {
+                       switch (action)
+                       {
+                       case FILE_ACTION_MOVE:
+                               __pFileProgressingHeaderLabel->SetText(ResourceManager::GetString(L"IDS_COM_POP_MOVING"));
+                       break;
+
+                       case FILE_ACTION_DELETE:
+                               __pFileProgressingHeaderLabel->SetText(ResourceManager::GetString(L"IDS_COM_POP_DELETING"));
+                       break;
+
+                       case FILE_ACTION_COPY:
+                               __pFileProgressingHeaderLabel->SetText(ResourceManager::GetString(L"IDS_COM_POP_COPYING_ING"));
+                       break;
+
+                       case FILE_ACTION_ROTATE:
+                               __pFileProgressingHeaderLabel->SetText(ResourceManager::GetString(L"IDS_COM_POP_PROCESSING"));
+                       break;
+
+                       default:
+                               break;
+                       }
+
+                       __pFileProgressingHeaderLabel->Invalidate(true);
+               }
+
+               __pFileProgressingPopup->SetShowState(true);
+               __pFileProgressingPopup->Show();
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+GlProgressBar::IncProgress(const int count)
+{
+       AppLogDebug("ENTER");
+       String counter;
+       __curVal = count;
+       __pFileProgressingProgress->SetValue(count);
+
+       counter.Append(count);
+       counter.Append(L"/");
+       counter.Append(__totalVal);
+
+       if (__pFileCounterLabel != null)
+       {
+               __pFileCounterLabel->SetText(counter);
+               __pFileCounterLabel->Invalidate(true);
+       }
+
+       __pFileProgressingPopup->SetShowState(true);
+       __pFileProgressingPopup->Show();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
diff --git a/src/GlRadioCustomItem.cpp b/src/GlRadioCustomItem.cpp
new file mode 100644 (file)
index 0000000..ce63003
--- /dev/null
@@ -0,0 +1,85 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file:      RadioCustomItem.cpp
+ *@brief:      The RadioCustomItem
+ */
+
+#include <FApp.h>
+#include <FUiControls.h>
+
+#include "GlRadioCustomItem.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui::Controls;
+
+
+const int RadioCustomItem::IDA_FORMAT_STRING = 500;
+
+
+RadioCustomItem::RadioCustomItem(void)
+       : __isSelected(false)
+       , __width(0)
+       , __height(0)
+{
+}
+
+RadioCustomItem::~RadioCustomItem(void)
+{
+}
+
+result
+RadioCustomItem::Construct(int width, int height)
+{
+       result r = E_FAILURE;
+       __width = width;
+       __height = height;
+       const Dimension dim(width, height);
+       r = CustomItem::Construct(dim, LIST_ANNEX_STYLE_RADIO);
+
+       return r;
+}
+
+void
+RadioCustomItem::SetText(const Tizen::Base::String& text)
+{
+       __text = text;
+}
+
+String
+RadioCustomItem::GetText(void) const
+{
+       return __text;
+}
+
+result
+RadioCustomItem::Make(int fontSize)
+{
+       result r = E_FAILURE;
+       Color textColor = CUSTOM_COLOR_LISTVIEW_TEXT2;
+       Color pressedTextColor = CUSTOM_COLOR_LISTVIEW_TEXT;
+
+       AppLogDebug("RadioCustomItem::the text is %ls",__text.GetPointer());
+       r = AddElement(Rectangle(16, 5, __width - 85 - 16, __height), IDA_FORMAT_STRING, __text, fontSize, textColor, textColor, textColor, true);
+       TryCatch(!IsFailed(r),,"RadioCustomItem::the value is %s",GetErrorMessage(r));
+
+       CATCH:
+       return r;
+}
+
diff --git a/src/GlResourceManager.cpp b/src/GlResourceManager.cpp
new file mode 100644 (file)
index 0000000..d947425
--- /dev/null
@@ -0,0 +1,58 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlResourceManager.cpp
+ * @brief              This is the implementation file for ResourceManager class.
+ */
+
+#include <FApp.h>
+#include "GlResourceManager.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Graphics;
+
+Bitmap*
+ResourceManager::GetBitmapN(const String& id)
+{
+       AppResource* pAppResource = Application::GetInstance()->GetAppResource();
+       if (pAppResource == null)
+       {
+               return null;
+       }
+
+       return pAppResource->GetBitmapN(id);
+}
+
+String
+ResourceManager::GetString(const String& id)
+{
+       AppResource* pAppResource = Application::GetInstance()->GetAppResource();
+       if (pAppResource == null)
+       {
+               return L"";
+       }
+
+       String str;
+       result r = pAppResource->GetString(id, str);
+
+       if (r != E_SUCCESS)
+       {
+               return L"";
+       }
+       return str;
+}
diff --git a/src/GlSettingMainForm.cpp b/src/GlSettingMainForm.cpp
new file mode 100644 (file)
index 0000000..d0d079a
--- /dev/null
@@ -0,0 +1,793 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlSettingMainForm.cpp
+ * @brief              This is the implementation file for SettingMainForm class.
+ */
+
+#include "GlDropDownCustomItem.h"
+#include "GlFileListPresentationModel.h"
+#include "GlGalleryApp.h"
+#include "GlRadioCustomItem.h"
+#include "GlResourceManager.h"
+#include "GlSettingMainForm.h"
+#include "GlSettingPresentationModel.h"
+#include "GlSettingToggleCustomItem.h"
+#include "GlTypes.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Content;
+using namespace Tizen::Graphics;
+using namespace Tizen::System;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+SettingMainForm::SettingMainForm(void)
+       : __pList(null)
+       , __pPresentationModel(null)
+       , __contentUpdated(false)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+SettingMainForm::~SettingMainForm(void)
+{
+       AppLogDebug("ENTER");
+       if (pGroupItemCount)
+       {
+               delete[] pGroupItemCount;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+result
+SettingMainForm::Initialize(void)
+{
+       AppLogDebug("ENTER");
+       result r = Form::Construct(IDL_FORM_SETTING_MAIN);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+result
+SettingMainForm::OnInitializing(void)
+{
+       AppLogDebug("ENTER");
+       __pPresentationModel = SettingPresentationModel::GetInstance();
+       SettingInfo::AddSettingEventListener(*this);
+
+       Header* pHeader = GetHeader();
+       AppAssert(pHeader);
+       pHeader->SetStyle(HEADER_STYLE_TITLE);
+       pHeader->SetTitleText(ResourceManager::GetString(L"IDS_COM_BODY_GALLERY"));
+
+       __pList = static_cast<GroupedListView*>(GetControl(L"IDC_SETTING_LIST"));
+
+       if (__pList != null)
+       {
+               __pList->SetItemProvider(*this);
+               __pList->AddGroupedListViewItemEventListener(*this);
+       }
+
+       SetFormBackEventListener(this);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+result
+SettingMainForm::OnTerminating(void)
+{
+       AppLogDebug("ENTER");
+       SettingInfo::RemoveSettingEventListener(*this);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+void
+SettingMainForm::OnActionPerformed(const Control& source, int actionId)
+{
+       AppLogDebug("ENTER");
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       AppAssert(pSceneManager);
+
+       switch (actionId)
+       {
+       default:
+       {
+               break;
+       }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+SettingMainForm::OnFormBackRequested(Form& source)
+{
+       AppLogDebug("ENTER");
+
+       GalleryApp* pApp = dynamic_cast<GalleryApp*>(UiApp::GetInstance());
+       if (pApp != null)
+       {
+               if (pApp->GetAppControlOperationId() == APPCONTROL_OPERATION_ID_CONFIGURE)
+               {
+                       if (pApp->GetFrameActivated() == true)
+                       {
+                               pApp->SendAppControlResult(APP_CTRL_RESULT_TERMINATED, null);
+                               pApp->Terminate();
+                       }
+               }
+               else
+               {
+                       SceneManager* pSceneManager = SceneManager::GetInstance();
+                       if (__contentUpdated)
+                       {
+                               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALBUM_LIST));
+                       }
+                       else
+                       {
+                               pSceneManager->GoBackward(BackwardSceneTransition());
+                       }
+               }
+       }
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+SettingMainForm::OnContentUpdated(void)
+{
+       AppLogDebug("ENTER");
+       __contentUpdated = true;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+SettingMainForm::OnSceneActivatedN(const SceneId& previousSceneId,
+               const SceneId& currentSceneId, IList* pArgs)
+{
+       AppLogDebug("ENTER");
+       FileListPresentationModel::GetInstance()->AddContentEventListener(this);
+       __pPresentationModel->CreateDefaultRegistry();
+       InitializeSettingValues();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+SettingMainForm::OnSceneDeactivated(const SceneId& currentSceneId,
+               const SceneId& nextSceneId)
+{
+       AppLogDebug("ENTER");
+       __contentUpdated = false;
+       __pPresentationModel->DeleteRegistry();
+       FileListPresentationModel::GetInstance()->RemoveContentEventListener(this);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+SettingMainForm::OnGroupedListViewItemStateChanged(GroupedListView& listView, int groupIndex, int itemIndex, int elementId, ListItemStatus status)
+{
+       int effectiveIndex = 0;
+       int inputValue = 0;
+
+       effectiveIndex = effectiveIndex + itemIndex;
+
+       if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_DROPDOWN)
+       {
+               AppLogDebug("refreshing data child count is %d", settingInfo[effectiveIndex].childCount);
+               if (settingInfo[effectiveIndex].isOpen == false)
+               {
+                       settingInfo[effectiveIndex].isOpen = true;
+                       settingInfo[effectiveIndex].childCount = 0;
+                       for (int iter = effectiveIndex + 1; iter < SETTING_MAX; ++iter)
+                       {
+                               if (settingInfo[iter].itemType == ITEM_TYPE_RADIO)
+                               {
+                                       ++settingInfo[effectiveIndex].childCount;
+                               }
+                               else
+                               {
+                                       break;
+                               }
+                       }
+                       listView.UpdateList();
+               }
+               else
+               {
+                       settingInfo[effectiveIndex].isOpen = false;
+                       listView.UpdateList();
+               }
+       }
+       else if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_RADIO)
+       {
+               int parentIndex = 0;
+               for (parentIndex = effectiveIndex; parentIndex > SETTING_INVALID; parentIndex--)
+               {
+                       if (settingInfo[parentIndex].itemType == ITEM_TYPE_DROPDOWN)
+                       {
+                               break;
+                       }
+               }
+               settingInfo[parentIndex].subText = settingInfo[effectiveIndex].titleText;
+
+               for (int iter = 0; iter < settingInfo[parentIndex].childCount; ++iter)
+               {
+                       if (parentIndex + iter + 1 != effectiveIndex)
+                       {
+                               AppLogDebug("long effectiveIndex %d set to false", itemIndex - (effectiveIndex - parentIndex) + iter + 1);
+                               settingInfo[parentIndex + iter + 1].isSelected = false;
+                       }
+                       else
+                       {
+                               AppLogDebug("effectiveIndex %d set to true", effectiveIndex);
+                               settingInfo[effectiveIndex].isSelected = true;
+                       }
+               }
+
+               Invalidate(true);
+       }
+       else if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_TOGGLE)
+       {
+               if (settingInfo[effectiveIndex].isSelected == true)
+               {
+                       settingInfo[effectiveIndex].isSelected = false;
+               }
+               else
+               {
+                       settingInfo[effectiveIndex].isSelected = true;
+               }
+               if (__pList != null)
+               {
+                       __pList->SetItemChecked(groupIndex, itemIndex, settingInfo[effectiveIndex].isSelected);
+               }
+       }
+
+       switch (effectiveIndex)
+       {
+       case SETTING_INTERVAL_2:
+       {
+               inputValue = 2;
+               __pPresentationModel->SetValue(SECTION_NAME_IMAGE_VIEWER, ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_INTERVAL,
+                               inputValue);
+               listView.UpdateList();
+       }
+       break;
+
+       case SETTING_INTERVAL_3:
+       {
+               inputValue = 3;
+               __pPresentationModel->SetValue(SECTION_NAME_IMAGE_VIEWER,
+                               ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_INTERVAL, inputValue);
+               listView.UpdateList();
+       }
+       break;
+
+       case SETTING_INTERVAL_5:
+       {
+               inputValue = 5;
+               __pPresentationModel->SetValue(SECTION_NAME_IMAGE_VIEWER,
+                               ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_INTERVAL, inputValue);
+               listView.UpdateList();
+       }
+       break;
+
+       case SETTING_INTERVAL_10:
+       {
+               inputValue = 10;
+               __pPresentationModel->SetValue(SECTION_NAME_IMAGE_VIEWER,
+                               ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_INTERVAL, inputValue);
+               listView.UpdateList();
+       }
+       break;
+
+       case SETTING_INTERVAL_20:
+       {
+               inputValue = 20;
+               __pPresentationModel->SetValue(SECTION_NAME_IMAGE_VIEWER,
+                               ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_INTERVAL, inputValue);
+               listView.UpdateList();
+       }
+       break;
+
+       case SETTING_TRANSITION_PAGE:
+       {
+               inputValue = 0;
+               __pPresentationModel->SetValue(SECTION_NAME_IMAGE_VIEWER,
+                               ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_TRANSITION_EFFECT, inputValue);
+               listView.UpdateList();
+       }
+       break;
+
+       case SETTING_TRANSITION_DISSOLVE:
+       {
+               inputValue = 1;
+               result r = __pPresentationModel->SetValue(SECTION_NAME_IMAGE_VIEWER,
+                               ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_TRANSITION_EFFECT, inputValue);
+               if (r == E_SUCCESS)
+               {
+                       AppLogDebug(" Passed");
+               }
+
+               listView.UpdateList();
+       }
+       break;
+
+       case SETTING_TRANSITION_ZOOM:
+       {
+               inputValue = 2;
+                __pPresentationModel->SetValue(SECTION_NAME_IMAGE_VIEWER,
+                               ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_TRANSITION_EFFECT, inputValue);
+               listView.UpdateList();
+       }
+       break;
+
+       case SETTING_REPEAT:
+       {
+               int repeatValue = 0;
+
+               __pPresentationModel->GetValue(SECTION_NAME_IMAGE_VIEWER,
+                               ENTRY_NAME_IMAGE_VIEWER_REPEAT_VALUE, repeatValue);
+
+               if (repeatValue == 0)
+               {
+                       inputValue = 1;
+               }
+               else
+               {
+                       inputValue = 0;
+               }
+
+               __pPresentationModel->SetValue(SECTION_NAME_IMAGE_VIEWER,
+                               ENTRY_NAME_IMAGE_VIEWER_REPEAT_VALUE, inputValue);
+       }
+       break;
+
+       case SETTING_SHUFFLE:
+       {
+               int shuffleValue = 0;
+
+               __pPresentationModel->GetValue(SECTION_NAME_IMAGE_VIEWER,
+                               ENTRY_NAME_IMAGE_VIEWER_SHUFFLE_VALUE, shuffleValue);
+
+               if (shuffleValue == 0)
+               {
+                       inputValue = 1;
+               }
+               else
+               {
+                       inputValue = 0;
+               }
+
+               __pPresentationModel->SetValue(SECTION_NAME_IMAGE_VIEWER,
+                               ENTRY_NAME_IMAGE_VIEWER_SHUFFLE_VALUE, inputValue);
+       }
+       break;
+
+       default:
+               break;
+       }
+}
+
+GroupItem*
+SettingMainForm::CreateGroupItem(int groupIndex, int itemWidth)
+{
+       GroupItem* pItem = new (std::nothrow) GroupItem();
+       if (pItem == null)
+       {
+               return null;
+       }
+       result r = pItem->Construct(Dimension(itemWidth, 46));
+       if (IsFailed(r))
+       {
+               delete pItem;
+               return null;
+       }
+
+       String text;
+       switch (groupIndex)
+       {
+       case 0:
+               text = ResourceManager::GetString(L"IDS_MEDIABR_OPT_SLIDESHOW");
+       break;
+
+       default:
+               break;
+       }
+
+       pItem->SetElement(text, null);
+
+       AppLogDebug("background color set result %s", GetErrorMessage(r));
+
+       pItem->SetTextColor(CUSTOM_COLOR_SETTINGS_GROUPTITLE);
+       return pItem;
+}
+
+ListItemBase*
+SettingMainForm::CreateItem(int groupIndex, int itemIndex, int itemWidth)
+{
+       AppLog("SettingMainForm::CreateItem --> groupIndex : %d, itemIndex: %d itemWidth: %d ", groupIndex, itemIndex,
+                       itemWidth);
+
+       result r = E_SUCCESS;
+       int effectiveIndex = 0;
+       const Color ITEM_BACKGROUND_COLOR = CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND;
+       const Color ITEM_RADIO_ITEM_BACKGROUND_COLOR = CUSTOM_COLOR_SETTINGS_LISTITEM_RADIO_BACKGROUND;
+       const Color ITEM_BACKGROUND_COLOR_HIGHLIGHTED = CUSTOM_BACKGROUND_COLOR_LISTVIEW_PRESSED_HIGHLIGHTED;
+
+       effectiveIndex = effectiveIndex + itemIndex;
+       AppLogDebug("SettingMainForm::CreateItem --> groupIndex : %d, itemIndex: %d itemWidth: %d effectiveIndex %d", groupIndex, itemIndex, itemWidth, effectiveIndex);
+
+       String fontSizeStr;
+       int fontSize = 0;
+       int itemHeight = 0;
+       int defaultHeight = 112;
+       int defaultFontSize = 44;
+
+       SettingInfo::GetValue("http://tizen.org/setting/font.size", fontSizeStr);
+       AppLog("the font value is %S",fontSizeStr.GetPointer());
+
+       if(fontSizeStr == "medium")
+       {
+               fontSize = 44;
+               itemHeight = defaultHeight + (fontSize - defaultFontSize);
+       }
+       else if(fontSizeStr == "huge")
+       {
+               fontSize =  81;
+               itemHeight = defaultHeight + (fontSize - defaultFontSize);
+       }
+       else if(fontSizeStr == "giant")
+       {
+               fontSize = 98;
+               itemHeight = defaultHeight + (fontSize - defaultFontSize);
+       }
+       else if(fontSizeStr == "small")
+       {
+               fontSize = 36;
+               itemHeight = defaultHeight + (fontSize - defaultFontSize);
+       }
+       else if(fontSizeStr == "large")
+       {
+               fontSize = 64;
+               itemHeight = defaultHeight + (fontSize - defaultFontSize);
+       }
+       else
+       {
+               fontSize = 44;
+               itemHeight = defaultHeight;
+       }
+
+
+       if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_TOGGLE)
+       {
+               SettingToggleCustomItem* pItem = new (std::nothrow) SettingToggleCustomItem();
+               r = pItem->Construct(itemWidth, itemHeight);
+
+               if (IsFailed(r))
+               {
+                       delete pItem;
+                       return null;
+               }
+
+               pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL, ITEM_BACKGROUND_COLOR);
+               pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED, ITEM_BACKGROUND_COLOR_HIGHLIGHTED);
+
+               if (__pList != null)
+               {
+                       __pList->SetItemChecked(groupIndex, itemIndex, settingInfo[effectiveIndex].isSelected);
+               }
+
+               pItem->SetText(settingInfo[effectiveIndex].titleText);
+               pItem->Make(fontSize);
+
+               return pItem;
+       }
+       else if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_DROPDOWN)
+       {
+               DropDownCustomItem* pItem = new (std::nothrow) DropDownCustomItem();
+               r = pItem->Construct(itemWidth,itemHeight);
+               if (IsFailed(r))
+               {
+                       delete pItem;
+                       return null;
+               }
+
+               pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL, ITEM_BACKGROUND_COLOR);
+               pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED, ITEM_BACKGROUND_COLOR_HIGHLIGHTED);
+
+               pItem->SetMainText(settingInfo[effectiveIndex].titleText);
+               pItem->SetSubText(settingInfo[effectiveIndex].subText);
+               if (settingInfo[effectiveIndex].isOpen)
+               {
+                       pItem->SetCurState(DROP_DOWN_ITEM_STATE_OPENED);
+               }
+               else
+               {
+                       pItem->SetCurState(DROP_DOWN_ITEM_STATE_CLOSED);
+               }
+
+               r = pItem->Make(fontSize,itemHeight);
+
+               if (IsFailed(r))
+               {
+                       delete pItem;
+                       return null;
+               }
+
+               return pItem;
+       }
+       else if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_RADIO)
+       {
+               RadioCustomItem* pItem = new (std::nothrow) RadioCustomItem();
+               int parentIndex = 0;
+
+               for (parentIndex = effectiveIndex; parentIndex > SETTING_INVALID; parentIndex--)
+               {
+                       if (settingInfo[parentIndex].itemType == ITEM_TYPE_DROPDOWN)
+                               break;
+               }
+
+               if (settingInfo[parentIndex].isOpen == false)
+               {
+                       r = pItem->Construct(itemWidth, 0);
+                       __pList->SetItemEnabled(groupIndex, itemIndex,false);
+                       AppLogDebug("construct with height 0 %s", GetErrorMessage(r));
+                       return pItem;
+               }
+               else
+               {
+                       pItem->Construct(itemWidth, itemHeight);
+                       __pList->SetItemEnabled(groupIndex, itemIndex, true);
+               }
+
+               pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL, ITEM_RADIO_ITEM_BACKGROUND_COLOR);
+               pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED, ITEM_BACKGROUND_COLOR_HIGHLIGHTED);
+
+               pItem->SetText(settingInfo[effectiveIndex].titleText);
+               AppLogDebug("effectiveIndex %d SettingInfo[effectiveIndex].isSelected %d", effectiveIndex, settingInfo[effectiveIndex].isSelected);
+
+               __pList->SetItemChecked(groupIndex,itemIndex,settingInfo[effectiveIndex].isSelected);
+               pItem->Make(fontSize);
+
+               return pItem;
+       }
+       else
+       {
+               return null;
+       }
+}
+
+bool
+SettingMainForm::DeleteGroupItem(int groupIndex, GroupItem* pItem, int itemWidth)
+{
+       delete pItem;
+       return true;
+}
+
+bool
+SettingMainForm::DeleteItem(int groupIndex, int itemIndex, ListItemBase* pItem, int itemWidth)
+{
+       delete pItem;
+       return true;
+}
+
+int
+SettingMainForm::GetGroupCount(void)
+{
+       int groupCount = 1;
+
+       return groupCount;
+}
+
+int
+SettingMainForm::GetItemCount(int groupIndex)
+{
+       AppLog(" SettingMainForm::GetItemCount --> groupIndex : %d,", groupIndex);
+       return pGroupItemCount[groupIndex];
+}
+
+void
+SettingMainForm::InitializeSettingValues(void)
+{
+       pGroupItemCount = new (std::nothrow) int[1];
+       pGroupItemCount[0] = 12;
+       int interval = 0;
+       int transitionValue = 0;
+       int repeatValue = 0;
+       int shuffletValue = 0;
+       String selectedInterval;
+       String selectedTransition;
+
+       for (int iter = (int) SETTING_INVALID + 1; iter < (int) SETTING_MAX; ++iter)
+       {
+               settingInfo[iter].isSelected = false;
+       }
+
+       result r =__pPresentationModel->GetValue(SECTION_NAME_IMAGE_VIEWER, ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_INTERVAL,
+                       interval);
+
+       if (r == E_SUCCESS)
+       {
+               switch (interval)
+               {
+               case 2:
+               {
+                       selectedInterval = ResourceManager::GetString(L"IDS_MEDIABR_OPT_2_SECONDS");
+                       settingInfo[SETTING_INTERVAL_2].isSelected = true;
+               }
+               break;
+
+               case 3:
+               {
+                       selectedInterval = ResourceManager::GetString(L"IDS_MEDIABR_OPT_3_SECONDS");
+                       settingInfo[SETTING_INTERVAL_3].isSelected = true;
+               }
+               break;
+
+               case 5:
+               {
+                       selectedInterval = ResourceManager::GetString(L"IDS_MEDIABR_BODY_5_SECONDS");
+                       settingInfo[SETTING_INTERVAL_5].isSelected = true;
+               }
+               break;
+
+               case 10:
+               {
+                       selectedInterval = ResourceManager::GetString(L"IDS_MEDIABR_BODY_10_SECONDS");
+                       settingInfo[SETTING_INTERVAL_10].isSelected = true;
+               }
+               break;
+
+               case 20:
+               {
+                       selectedInterval = ResourceManager::GetString(L"IDS_MEDIABR_BODY_20_SECONDS");
+                       settingInfo[SETTING_INTERVAL_20].isSelected = true;
+               }
+               break;
+
+               default:
+                       break;
+               }
+       }
+
+       r = __pPresentationModel->GetValue(SECTION_NAME_IMAGE_VIEWER,
+                       ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_TRANSITION_EFFECT, transitionValue);
+
+       if (r == E_SUCCESS)
+       {
+               switch (transitionValue)
+               {
+               case 0:
+               {
+                       selectedTransition = ResourceManager::GetString(L"IDS_EBOOK_BODY_PAGE");
+                       settingInfo[SETTING_TRANSITION_PAGE].isSelected = true;
+               }
+               break;
+
+               case 1:
+               {
+                       selectedTransition = ResourceManager::GetString(L"IDS_MEDIABR_BODY_DISSOLVE");
+                       settingInfo[SETTING_TRANSITION_DISSOLVE].isSelected = true;
+               }
+               break;
+
+               case 2:
+               {
+                       selectedTransition = ResourceManager::GetString(L"IDS_IV_OPT_ZOOM");
+                       settingInfo[SETTING_TRANSITION_ZOOM].isSelected = true;
+               }
+               break;
+
+               default:
+                       break;
+               }
+       }
+
+       settingInfo[SETTING_SLIDESHOW_INTERVAL_TITLE].titleText = ResourceManager::GetString(L"IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL");
+       settingInfo[SETTING_SLIDESHOW_INTERVAL_TITLE].subText = selectedInterval;
+       settingInfo[SETTING_SLIDESHOW_INTERVAL_TITLE].itemType = ITEM_TYPE_DROPDOWN;
+
+       settingInfo[SETTING_INTERVAL_2].titleText = ResourceManager::GetString(L"IDS_MEDIABR_OPT_2_SECONDS");
+       settingInfo[SETTING_INTERVAL_2].subText = L"";
+       settingInfo[SETTING_INTERVAL_2].itemType = ITEM_TYPE_RADIO;
+
+       settingInfo[SETTING_INTERVAL_3].titleText = ResourceManager::GetString(L"IDS_MEDIABR_OPT_3_SECONDS");
+       settingInfo[SETTING_INTERVAL_3].subText = L"";
+       settingInfo[SETTING_INTERVAL_3].itemType = ITEM_TYPE_RADIO;
+
+       settingInfo[SETTING_INTERVAL_5].titleText = ResourceManager::GetString(L"IDS_MEDIABR_BODY_5_SECONDS");
+       settingInfo[SETTING_INTERVAL_5].subText = L"";
+       settingInfo[SETTING_INTERVAL_5].itemType = ITEM_TYPE_RADIO;
+
+       settingInfo[SETTING_INTERVAL_10].titleText = ResourceManager::GetString(L"IDS_MEDIABR_BODY_10_SECONDS");
+       settingInfo[SETTING_INTERVAL_10].subText = L"";
+       settingInfo[SETTING_INTERVAL_10].itemType = ITEM_TYPE_RADIO;
+
+       settingInfo[SETTING_INTERVAL_20].titleText = ResourceManager::GetString(L"IDS_MEDIABR_BODY_20_SECONDS");
+       settingInfo[SETTING_INTERVAL_20].subText = L"";
+       settingInfo[SETTING_INTERVAL_20].itemType = ITEM_TYPE_RADIO;
+
+       r = __pPresentationModel->GetValue(SECTION_NAME_IMAGE_VIEWER, ENTRY_NAME_IMAGE_VIEWER_REPEAT_VALUE, repeatValue);
+
+       settingInfo[SETTING_REPEAT].titleText = ResourceManager::GetString(L"IDS_MEDIABR_BODY_REPEAT");
+       settingInfo[SETTING_REPEAT].itemType = ITEM_TYPE_TOGGLE;
+
+       if (repeatValue == 0)
+       {
+               settingInfo[SETTING_REPEAT].isSelected = false;
+       }
+       else
+       {
+               settingInfo[SETTING_REPEAT].isSelected = true;
+       }
+
+       r = __pPresentationModel->GetValue(SECTION_NAME_IMAGE_VIEWER,
+                       ENTRY_NAME_IMAGE_VIEWER_SHUFFLE_VALUE, shuffletValue);
+
+       settingInfo[SETTING_SHUFFLE].titleText = ResourceManager::GetString(L"IDS_MEDIABR_BODY_SHUFFLE");
+       settingInfo[SETTING_SHUFFLE].itemType = ITEM_TYPE_TOGGLE;
+
+       if (shuffletValue == 0)
+       {
+               settingInfo[SETTING_SHUFFLE].isSelected = false;
+       }
+       else
+       {
+               settingInfo[SETTING_SHUFFLE].isSelected = true;
+       }
+
+       settingInfo[SETTING_TRANSITION_EFFECT_TITLE].titleText = ResourceManager::GetString(L"IDS_MEDIABR_BODY_TRANSITION_EFFECT");
+       settingInfo[SETTING_TRANSITION_EFFECT_TITLE].subText = selectedTransition;
+       settingInfo[SETTING_TRANSITION_EFFECT_TITLE].itemType = ITEM_TYPE_DROPDOWN;
+
+       settingInfo[SETTING_TRANSITION_PAGE].titleText = ResourceManager::GetString(L"IDS_EBOOK_BODY_PAGE");
+       settingInfo[SETTING_TRANSITION_PAGE].subText = L"";
+       settingInfo[SETTING_TRANSITION_PAGE].itemType = ITEM_TYPE_RADIO;
+
+       settingInfo[SETTING_TRANSITION_DISSOLVE].titleText = ResourceManager::GetString(L"IDS_MEDIABR_BODY_DISSOLVE");
+       settingInfo[SETTING_TRANSITION_DISSOLVE].subText = L"";
+       settingInfo[SETTING_TRANSITION_DISSOLVE].itemType = ITEM_TYPE_RADIO;
+
+       settingInfo[SETTING_TRANSITION_ZOOM].titleText = ResourceManager::GetString(L"IDS_IV_OPT_ZOOM");
+       settingInfo[SETTING_TRANSITION_ZOOM].subText = L"";
+       settingInfo[SETTING_TRANSITION_ZOOM].itemType = ITEM_TYPE_RADIO;
+}
+
+SettingMainForm::SettingItemInfo::SettingItemInfo(void)
+       : childCount(0)
+       , isOpen(false)
+       , isSelected(false)
+{
+}
+
+
+void
+SettingMainForm::OnSettingChanged(String& key)
+{
+       AppLogDebug("ENTER");
+       if (key == L"http://tizen.org/setting/font.size")
+       {
+               __pList->UpdateList();
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
diff --git a/src/GlSettingPresentationModel.cpp b/src/GlSettingPresentationModel.cpp
new file mode 100644 (file)
index 0000000..efd01c8
--- /dev/null
@@ -0,0 +1,245 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlSettingPresentationModel.cpp
+ * @brief              This is the implementation file for SettingPresentationModel class.
+ */
+
+#include <cstdlib>
+#include "GlSettingPresentationModel.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Io;
+
+static const int DEFAULT_VALUE_EFFECT_SLIDE = 0;
+static const int DEFAULT_VALUE_INTERVAL = 3;
+static const int DEFAULT_VALUE_REPEAT = 0;
+static const int DEFAULT_VALUE_SHUFFLE = 0;
+
+const wchar_t* GALLERY_APP_ID = L"ijudt7w61q.Gallery";
+
+const wchar_t* PATH_DATA_DIRECTORY = L"data/";
+const wchar_t* PATH_GALLERY_DEFAULT_SETTINGS = L"GalleryDefaultSettings.ini";
+
+const wchar_t* SECTION_GALLERY = L"GALLRY_SETTING";
+const wchar_t* SECTION_IMAGE_VIEWER = L"IMAGE_VIEWER_SETTING";
+const wchar_t* SECTION_VIDEO_PLAYER = L"VIDEO_PLAYER_SETTING";
+
+const wchar_t* SLIDESHOW_INTERVAL_VALUE = L"SLIDESHOW_INTERVAL_VALUE";
+const wchar_t* TRANSITION_EFFECT_VALUE = L"TRANSITION_EFFECT_VALUE";
+const wchar_t* REPEAT_VALUE = L"REPEAT_VALUE";
+const wchar_t* SHUFFLE_VALUE = L"SHUFFLE_VALUE";
+
+SettingPresentationModel* SettingPresentationModel::__pPresentationModelInstance = null;
+
+SettingPresentationModel::SettingPresentationModel(void)
+       : __pDefaultGalleryRegistry(null)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+SettingPresentationModel::~SettingPresentationModel(void)
+{
+       AppLogDebug("ENTER");
+       delete __pDefaultGalleryRegistry;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+SettingPresentationModel*
+SettingPresentationModel::GetInstance(void)
+{
+       AppLogDebug("ENTER");
+       if (__pPresentationModelInstance == null)
+       {
+               CreateInstance();
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return __pPresentationModelInstance;
+}
+
+result
+SettingPresentationModel::Construct(void)
+{
+       AppLogDebug("ENTER");
+       return E_SUCCESS;
+}
+
+void
+SettingPresentationModel::CreateInstance(void)
+{
+       AppLogDebug("ENTER");
+       __pPresentationModelInstance = new (std::nothrow) SettingPresentationModel;
+       result r = __pPresentationModelInstance->Construct();
+
+       if (IsFailed(r) == true)
+       {
+               delete __pPresentationModelInstance;
+               __pPresentationModelInstance = null;
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return;
+       }
+
+       std::atexit(DestroyInstance);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+SettingPresentationModel::DestroyInstance(void)
+{
+       AppLogDebug("ENTER");
+       delete __pPresentationModelInstance;
+       __pPresentationModelInstance = null;
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+result
+SettingPresentationModel::GetValue(const String& strSectionName, const String& entryName, int& value) const
+{
+       AppLogDebug("ENTER");
+       result r = __pDefaultGalleryRegistry->GetValue(strSectionName, entryName, value);
+       TryCatch(r == E_SUCCESS,, "Registry::GetValue() failed[%s]", GetErrorMessage(r));
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+
+CATCH:
+       AppLogDebug("EXIT with exception(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+result
+SettingPresentationModel::GetValue(const String& strSectionName, const String& entryName, String& value) const
+{
+       AppLogDebug("ENTER");
+       result r = __pDefaultGalleryRegistry->GetValue(strSectionName, entryName, value);
+       TryCatch(r == E_SUCCESS,, "Registry::GetValue() failed[%s]", GetErrorMessage(r));
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+
+CATCH:
+       AppLogDebug("EXIT with exception(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+result
+SettingPresentationModel::SetValue(const String& strSectionName, const String& entryName, const int value)
+{
+       AppLogDebug("ENTER");
+       result r= __pDefaultGalleryRegistry->SetValue(strSectionName, entryName, value);
+       TryCatch(r == E_SUCCESS,, "Registry::SetValue() failed[%s]", GetErrorMessage(r));
+       r = __pDefaultGalleryRegistry->Flush();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+
+CATCH:
+       AppLogDebug("EXIT with exception(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+result
+SettingPresentationModel::SetValue(const String& strSectionName, const String& entryName, const String& value)
+{
+       AppLogDebug("ENTER");
+       result r = __pDefaultGalleryRegistry->SetValue(strSectionName, entryName, value);
+       TryCatch(r == E_SUCCESS,, "Registry::SetValue() failed[%s]", GetErrorMessage(r));
+       r = __pDefaultGalleryRegistry->Flush();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+
+CATCH:
+       AppLogDebug("EXIT with exception(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+result
+SettingPresentationModel::CreateDefaultRegistry(void)
+{
+       AppLogDebug("ENTER");
+       result r = E_SUCCESS;
+       AppManager* pAppManager = AppManager::GetInstance();
+       TryReturn(pAppManager != null, E_FAILURE, "Failed to get AppManager");
+       String pathGalleryDefaultSetting =
+                       pAppManager->GetAppSharedPath(GALLERY_APP_ID) + PATH_DATA_DIRECTORY + PATH_GALLERY_DEFAULT_SETTINGS;
+       AppLogDebug("pathGalleryDefaultSetting(%ls)", pathGalleryDefaultSetting.GetPointer());
+
+       __pDefaultGalleryRegistry = new (std::nothrow) Registry();
+       if (File::IsFileExist(pathGalleryDefaultSetting))
+       {
+               AppLogDebug("Already exist default settings file");
+
+               __pDefaultGalleryRegistry->Construct(pathGalleryDefaultSetting, "r+");
+       }
+       else
+       {
+               AppLogDebug("Creating default settings file");
+
+               __pDefaultGalleryRegistry->Construct(pathGalleryDefaultSetting, "w+");
+               r = __pDefaultGalleryRegistry->AddSection(SECTION_IMAGE_VIEWER);
+               TryCatch(r == E_SUCCESS,, "Registry::AddSection() failed[%s]", GetErrorMessage(r));
+
+               r = __pDefaultGalleryRegistry->AddValue(SECTION_IMAGE_VIEWER, SLIDESHOW_INTERVAL_VALUE,
+                               DEFAULT_VALUE_INTERVAL);
+               TryCatch(r == E_SUCCESS,, "Registry::AddValue() failed[%s]", GetErrorMessage(r));
+
+               r = __pDefaultGalleryRegistry->AddValue(SECTION_IMAGE_VIEWER, TRANSITION_EFFECT_VALUE,
+                               DEFAULT_VALUE_EFFECT_SLIDE);
+               TryCatch(r == E_SUCCESS,, "Registry::AddValue() failed[%s]", GetErrorMessage(r));
+
+               r = __pDefaultGalleryRegistry->AddValue(SECTION_IMAGE_VIEWER, REPEAT_VALUE,
+                               DEFAULT_VALUE_REPEAT);
+               TryCatch(r == E_SUCCESS,, "Registry::AddValue() failed[%s]", GetErrorMessage(r));
+
+               r = __pDefaultGalleryRegistry->AddValue(SECTION_IMAGE_VIEWER, SHUFFLE_VALUE,
+                               DEFAULT_VALUE_SHUFFLE);
+               TryCatch(r == E_SUCCESS,, "Registry::AddValue() failed[%s]", GetErrorMessage(r));
+
+               r = __pDefaultGalleryRegistry->Flush();
+               TryCatch(r == E_SUCCESS,, "Registry::Flush() failed[%s]", GetErrorMessage(r));
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+
+CATCH:
+       delete __pDefaultGalleryRegistry;
+       __pDefaultGalleryRegistry = null;
+       AppLogDebug("EXIT with exception(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+void
+SettingPresentationModel::DeleteRegistry(void)
+{
+       if (__pDefaultGalleryRegistry != null )
+       {
+               delete __pDefaultGalleryRegistry;
+               __pDefaultGalleryRegistry = null;
+       }
+}
diff --git a/src/GlSettingToggleCustomItem.cpp b/src/GlSettingToggleCustomItem.cpp
new file mode 100644 (file)
index 0000000..d631b17
--- /dev/null
@@ -0,0 +1,81 @@
+//
+
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+//!Internet SettingToggleCustomItem class
+/*@file:        SettingToggleCustomItem.cpp
+ *@brief:       The SettingToggleCustomItem
+ *
+ */
+
+#include <FUiControls.h>
+
+#include "GlSettingToggleCustomItem.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui::Controls;
+
+static const int IDA_FORMAT_STRING = 101;
+
+SettingToggleCustomItem::SettingToggleCustomItem(void)
+       : __width(0)
+       , __height(0)
+{
+}
+
+SettingToggleCustomItem::~SettingToggleCustomItem(void)
+{
+}
+
+result
+SettingToggleCustomItem::Construct(int width, int height)
+{
+       result r = E_FAILURE;
+
+       __width = width;
+       __height = height;
+       const Dimension dim(width, height);
+       r = CustomItem::Construct(dim, LIST_ANNEX_STYLE_ONOFF_SLIDING);
+
+       return r;
+}
+
+void
+SettingToggleCustomItem::SetText(const Tizen::Base::String& text)
+{
+       __text = text;
+}
+
+String
+SettingToggleCustomItem::GetText(void) const
+{
+       return __text;
+}
+
+result
+SettingToggleCustomItem::Make(int fontSize)
+{
+       const Color textColor = CUSTOM_COLOR_TRANSPARENT;
+       const Color pressedTextColor = CUSTOM_COLOR_TRANSPARENT;
+       const int X_Margin = 26;
+       const int Y_Margin = 26;
+
+       AddElement(Rectangle(X_Margin, Y_Margin, __width - 200, __height - 2* Y_Margin), IDA_FORMAT_STRING, __text, fontSize, textColor, pressedTextColor, pressedTextColor, true);
+
+       return E_SUCCESS;
+}
diff --git a/src/GlSlideShowPopUp.cpp b/src/GlSlideShowPopUp.cpp
new file mode 100644 (file)
index 0000000..2a5a10e
--- /dev/null
@@ -0,0 +1,181 @@
+//
+// Tizen Native SDK
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file       SlideShowPopUp.cpp
+ * @brief      This file contains the definitions of the SlideShowPopUp class.
+ */
+
+#include <FUiScenes.h>
+
+#include "GlResourceManager.h"
+#include "GlSlideSettingListener.h"
+#include "GlSlideShowPopUp.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 ID_FORMAT_START = 501;
+static const int ID_FORMAT_SETTING = 502;
+static const int ID_CANCEL_BUTTON = 503;
+
+SlideShowPopUp::SlideShowPopUp(void)
+       : __pList(null)
+       , __pListener(null)
+{
+}
+
+SlideShowPopUp::~SlideShowPopUp(void)
+{
+}
+
+bool
+SlideShowPopUp::Initialize(void)
+{
+       Button* pCancelButton = null;
+       Popup::Construct(L"IDL_SLIDESHOW_SETTING_POPUP");
+       Popup::SetPropagatedKeyEventListener(this);
+
+       __pList = static_cast<ListView*>(GetControl(L"IDC_POPUP_LIST"));
+
+       if (__pList == null)
+       {
+               return false;
+       }
+
+       __pList->SetItemProvider(*this);
+       __pList->AddListViewItemEventListener(*this);
+
+       pCancelButton = static_cast<Button*>(GetControl(L"IDC_BUTTON", true));
+
+       if (pCancelButton != null)
+       {
+               pCancelButton->AddActionEventListener(*this);
+               pCancelButton->SetActionId(ID_CANCEL_BUTTON);
+       }
+
+       return true;
+}
+
+result
+SlideShowPopUp::OnTerminating(void)
+{
+       return E_SUCCESS;
+}
+
+void
+SlideShowPopUp::OnActionPerformed(const Control& source, int actionId)
+{
+       switch (actionId)
+       {
+       case ID_CANCEL_BUTTON:
+       {
+               Popup::SetShowState(false);
+               Popup::Show();
+       }
+       break;
+
+       default:
+               break;
+       }
+       return;
+}
+
+void
+SlideShowPopUp::OnListViewItemStateChanged(ListView& listView, int index, int elementId, ListItemStatus status)
+{
+       if (__pListener != null)
+       {
+               __pListener->OnSlideSettingPopUpItemSelected(index);
+       }
+}
+
+bool
+SlideShowPopUp::OnKeyReleased(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo)
+{
+       AppLogDebug("ENTER");
+
+       if(keyEventInfo.GetKeyCode() == KEY_BACK || keyEventInfo.GetKeyCode() == KEY_ESC)
+       {
+               Popup::SetShowState(false);
+               Popup::Show();
+       }
+       return false;
+}
+
+ListItemBase*
+SlideShowPopUp::CreateItem(int index, int itemWidth)
+{
+       ListAnnexStyle style = LIST_ANNEX_STYLE_NORMAL;
+       int listItemHeight = 112;
+
+       CustomItem* pItem = new (std::nothrow) CustomItem();
+       result r = pItem->Construct(Dimension(GetClientAreaBounds().width, listItemHeight), style);
+       pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL, Color::GetColor(COLOR_ID_WHITE));
+
+       if (IsFailed(r))
+       {
+               AppLogDebug("Create Item Failed with error %s", GetErrorMessage(r));
+               return null;
+       }
+
+       switch (index)
+       {
+       case 0:
+       {
+               pItem->AddElement(Rectangle(25, 0, GetClientAreaBounds().width -50, listItemHeight), ID_FORMAT_START,
+                               ResourceManager::GetString(L"IDS_MEDIABR_OPT_START_SLIDESHOW"), true);
+       }
+       break;
+
+       case 1:
+       {
+               pItem->AddElement(Rectangle(25, 0, GetClientAreaBounds().width -50, listItemHeight), ID_FORMAT_SETTING,
+                               ResourceManager::GetString(L"IDS_MEDIABR_BODY_SLIDESHOW_SETTINGS"), true);
+       }
+       break;
+
+       break;
+       default:
+               break;
+       }
+
+       return pItem;
+}
+
+bool
+SlideShowPopUp::DeleteItem(int index, ListItemBase* pItem, int itemWidth)
+{
+       return true;
+}
+
+int
+SlideShowPopUp::GetItemCount(void)
+{
+       return 2;
+}
+
+void
+SlideShowPopUp::SetEventListner(ISlideSettingListener* listner)
+{
+       __pListener = listner;
+}
diff --git a/src/GlThumbnailEvent.cpp b/src/GlThumbnailEvent.cpp
new file mode 100644 (file)
index 0000000..afed0c2
--- /dev/null
@@ -0,0 +1,40 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlThumbnailEvent.cpp
+ * @brief              This is the implementation file for ThumbnailEvent class.
+ */
+
+#include <FBase.h>
+#include "GlThumbnailEvent.h"
+#include "GlThumbnailEventListener.h"
+
+using namespace Tizen::Base::Runtime;
+
+ThumbnailEvent::~ThumbnailEvent(void)
+{
+}
+
+void
+ThumbnailEvent::FireImpl(IEventListener& listener, const IEventArg& eventArg)
+{
+       IThumbnailEventListener* plistener = static_cast<IThumbnailEventListener*> (&listener);
+       if (plistener != null)
+       {
+               plistener->OnThumbnailReceivedN(*(const_cast<IEventArg*>(&eventArg)));
+       }
+}
diff --git a/src/GlThumbnailEventArg.cpp b/src/GlThumbnailEventArg.cpp
new file mode 100644 (file)
index 0000000..7e1f347
--- /dev/null
@@ -0,0 +1,58 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlThumbnailEventArg.cpp
+ * @brief              This is the implementation file for ThumbnailEventArg class.
+ */
+
+#include <FGraphics.h>
+#include "GlThumbnailEventArg.h"
+#include "GlThumbnailInfo.h"
+
+using namespace std;
+using namespace Tizen::Graphics;
+
+ThumbnailEventArg::ThumbnailEventArg(ThumbnailInfo* pThumbnailInfo)
+       : _pThumbnailInfo(pThumbnailInfo)
+{
+}
+
+ThumbnailEventArg::~ThumbnailEventArg(void)
+{
+       if (_pThumbnailInfo != null)
+       {
+               delete _pThumbnailInfo;
+       }
+}
+
+ThumbnailInfo*
+ThumbnailEventArg::GetThumbnailInfoN(void)
+{
+       if (_pThumbnailInfo == null)
+       {
+               return null;
+       }
+
+       Bitmap* pBitmap = _pThumbnailInfo->GetBitmapN();
+       ThumbnailInfo* pThumbnailInfo = new (std::nothrow) ThumbnailInfo();
+       pThumbnailInfo->Construct(_pThumbnailInfo->GetContentId(), _pThumbnailInfo->GetFilePath(),
+                       *pBitmap, _pThumbnailInfo->GetContentType(), _pThumbnailInfo->GetDuration());
+
+       delete pBitmap;
+
+       return pThumbnailInfo;
+}
diff --git a/src/GlThumbnailInfo.cpp b/src/GlThumbnailInfo.cpp
new file mode 100755 (executable)
index 0000000..87c3cd9
--- /dev/null
@@ -0,0 +1,140 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlThumbnailInfo.cpp
+ * @brief              This is the implementation file for ThumbnailInfo class.
+ */
+
+#include <FGraphics.h>
+#include "GlThumbnailInfo.h"
+#include "GlTypes.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Content;
+using namespace Tizen::Graphics;
+
+ThumbnailInfo::ThumbnailInfo(void)
+       : __pBitmap(null)
+       , __contentType(CONTENT_TYPE_IMAGE)
+       , __duration(0)
+{
+}
+
+ThumbnailInfo::~ThumbnailInfo(void)
+{
+       delete __pBitmap;
+}
+
+void
+ThumbnailInfo::Construct(const ContentId& contentId, const String& filePath,
+               const Bitmap& bitmap, const ContentType contentType, const long duration)
+{
+       __contentId = contentId;
+       __filePath = filePath;
+       __pBitmap = CloneBitmapN(bitmap);
+       __contentType = contentType;
+       __duration = duration;
+}
+
+ContentId
+ThumbnailInfo::GetContentId(void) const
+{
+       return __contentId;
+}
+
+String
+ThumbnailInfo::GetFilePath(void) const
+{
+       return __filePath;
+}
+
+void
+ThumbnailInfo::SetFilePath(const String& filePath)
+{
+       if (&filePath == null)
+       {
+               __filePath = EMPTY_SPACE;
+       }
+       else
+       {
+               __filePath = filePath;
+       }
+}
+
+Bitmap*
+ThumbnailInfo::GetBitmapN(void) const
+{
+       return CloneBitmapN(*__pBitmap);
+}
+
+void
+ThumbnailInfo::SetBitmap(const Bitmap& bitmap)
+{
+       if (__pBitmap)
+       {
+               delete __pBitmap;
+       }
+       __pBitmap = CloneBitmapN(bitmap);
+}
+
+ContentType
+ThumbnailInfo::GetContentType(void) const
+{
+       return __contentType;
+}
+
+void
+ThumbnailInfo::SetContentType(ContentType contentType)
+{
+       __contentType = contentType;
+}
+
+long
+ThumbnailInfo::GetDuration(void) const
+{
+       return __duration;
+}
+
+void
+ThumbnailInfo::SetDuration(long duration)
+{
+       __duration = duration;
+}
+
+Bitmap*
+ThumbnailInfo::CloneBitmapN(const Bitmap& bitmap) const
+{
+       Bitmap* pResultBitmap = null;
+       if (&bitmap != null)
+       {
+               Rectangle mainRect(0, 0, bitmap.GetWidth(), bitmap.GetHeight());
+               Canvas mainCanvas;
+               mainCanvas.Construct(mainRect);
+               mainCanvas.DrawBitmap(mainRect, bitmap);
+               pResultBitmap = new (std::nothrow) Bitmap();
+               result r = pResultBitmap->Construct(mainCanvas, mainRect);
+               TryCatch(r == E_SUCCESS,, "pResultBitmap->Construct Failed:%s", GetErrorMessage(r));
+       }
+       return pResultBitmap;
+
+CATCH:
+       delete pResultBitmap;
+       pResultBitmap = null;
+
+       return null;
+
+}
diff --git a/src/GlThumbnailJob.cpp b/src/GlThumbnailJob.cpp
new file mode 100644 (file)
index 0000000..96dbccd
--- /dev/null
@@ -0,0 +1,70 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlThumbnailJob.cpp
+ * @brief              This is the implementation file for ThumbnailJob class.
+ */
+
+#include <FContent.h>
+#include "GlThumbnailEvent.h"
+#include "GlThumbnailJob.h"
+
+using namespace Tizen::Base::Runtime;
+using namespace Tizen::Content;
+
+ThumbnailJob::ThumbnailJob(void)
+       : __requestId(0)
+       , __pRequestEvent(null)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT");
+}
+
+ThumbnailJob::~ThumbnailJob(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT");
+}
+
+void
+ThumbnailJob::Construct(const ContentId& contentId, const unsigned long requestId,
+               const ThumbnailEvent* pRequestEvent)
+{
+       AppLogDebug("ENTER");
+       __contentId = contentId;
+       __requestId = requestId;
+       __pRequestEvent = pRequestEvent;
+       AppLogDebug("EXIT");
+}
+
+ContentId
+ThumbnailJob::GetContentId(void) const
+{
+       return __contentId;
+}
+
+unsigned long
+ThumbnailJob::GetRequestId(void) const
+{
+       return __requestId;
+}
+
+const ThumbnailEvent*
+ThumbnailJob::GetEvent(void) const
+{
+       return __pRequestEvent;
+}
diff --git a/src/GlThumbnailProvider.cpp b/src/GlThumbnailProvider.cpp
new file mode 100644 (file)
index 0000000..3d24a20
--- /dev/null
@@ -0,0 +1,448 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlThumbnailProvider.cpp
+ * @brief              This is the implementation file for ThumbnailProvider class.
+ */
+
+#include <cstdlib>
+#include <FContent.h>
+#include <FMedia.h>
+#include "GlResourceManager.h"
+#include "GlThumbnailEvent.h"
+#include "GlThumbnailEventArg.h"
+#include "GlThumbnailJob.h"
+#include "GlThumbnailProvider.h"
+#include "GlTypes.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Base::Runtime;
+using namespace Tizen::Base::Utility;
+using namespace Tizen::Content;
+using namespace Tizen::Graphics;
+using namespace Tizen::Media;
+
+ThumbnailProvider* ThumbnailProvider::__pThumbnailProviderInstance = null;
+ArrayList* ThumbnailProvider::__pThumbnailEventListener = null;
+
+ThumbnailProvider::ThumbnailProvider(void)
+       : __pMutexCmd(null)
+       , __pCmdQueue(null)
+       , __requestId(0)
+       , __isAppTerminating(false)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+ThumbnailProvider::~ThumbnailProvider(void)
+{
+       AppLogDebug("ENTER");
+       if (__pThumbnailProviderInstance != null)
+       {
+               __pThumbnailProviderInstance->Stop();
+               __pThumbnailProviderInstance->Join();
+       }
+
+       if (__pThumbnailEventListener != null)
+       {
+               delete __pThumbnailEventListener;
+       }
+
+       if (__pMutexCmd != null)
+       {
+               delete __pMutexCmd;
+       }
+
+       if (__pCmdQueue != null)
+       {
+               delete __pCmdQueue;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+ThumbnailProvider*
+ThumbnailProvider::GetInstance(void)
+{
+       AppLogDebug("ENTER");
+       if (__pThumbnailProviderInstance == null)
+       {
+               CreateInstance();
+               __pThumbnailProviderInstance->Start();
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return __pThumbnailProviderInstance;
+}
+
+result
+ThumbnailProvider::Construct(void)
+{
+       AppLogDebug("ENTER");
+
+       __pThumbnailEventListener = new (std::nothrow) ArrayList(SingleObjectDeleter);
+       result r = __pThumbnailEventListener->Construct();
+       TryCatch(r == E_SUCCESS,, "[%s] Unable to set event listener", GetErrorMessage(r));
+
+       __pMutexCmd = new (std::nothrow) Mutex();
+       r = __pMutexCmd->Create();
+       TryCatch(r == E_SUCCESS,, "[%s] Unable to create mutex", GetErrorMessage(r));
+
+       if (__pCmdQueue != null)
+       {
+               delete __pCmdQueue;
+       }
+       __pCmdQueue = new (std::nothrow) ArrayList(SingleObjectDeleter);
+       r = __pCmdQueue->Construct();
+       TryCatch(r == E_SUCCESS,, "[%s] Unable to construct queue", GetErrorMessage(r));
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return EventDrivenThread::Construct();
+
+CATCH:
+       if (__pThumbnailEventListener != null)
+       {
+               delete __pThumbnailEventListener;
+               __pThumbnailEventListener = null;
+       }
+
+       if (__pMutexCmd != null)
+       {
+               delete __pMutexCmd;
+               __pMutexCmd = null;
+       }
+
+       if (__pCmdQueue != null)
+       {
+               delete __pCmdQueue;
+               __pCmdQueue = null;
+       }
+       AppLogDebug("EXIT with exception(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_FAILURE;
+}
+
+void
+ThumbnailProvider::CreateInstance(void)
+{
+       AppLogDebug("ENTER");
+       __pThumbnailProviderInstance = new (std::nothrow) ThumbnailProvider();
+       result r = __pThumbnailProviderInstance->Construct();
+
+       if (IsFailed(r) == true)
+       {
+               delete __pThumbnailProviderInstance;
+               __pThumbnailProviderInstance = null;
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return;
+       }
+
+       std::atexit(DestroyInstance);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+ThumbnailProvider::DestroyInstance(void)
+{
+       AppLogDebug("ENTER");
+       delete __pThumbnailProviderInstance;
+       __pThumbnailProviderInstance = null;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+ThumbnailProvider::Release(void)
+{
+       AppLogDebug("ENTER");
+       if (__pThumbnailProviderInstance != null)
+       {
+               delete __pThumbnailProviderInstance;
+               __pThumbnailProviderInstance = null;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+ThumbnailProvider::RequestThumbnail(const ContentId& contentId, const ThumbnailEvent* event)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("[THREAD] Request Job - (MainThread)");
+
+       if (contentId.ToString().IsEmpty() == true || event == null
+                               || __pMutexCmd == null || __pCmdQueue == null)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+               return;
+       }
+
+       __pMutexCmd->Acquire();
+
+       AppLogDebug("__pMutexCmd: %x", __pMutexCmd);
+
+       ThumbnailJob* pThumbnailJob = new (std::nothrow) ThumbnailJob();
+       AppLogDebug("pThumbnailJob: %x", pThumbnailJob);
+       pThumbnailJob->Construct(contentId, ++__requestId, event);
+       __pCmdQueue->Add(pThumbnailJob);
+
+       __pMutexCmd->Release();
+
+       SendUserEvent(null, null);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+ThumbnailProvider::ClearThumbnailRequests(const bool appTerminating)
+{
+       AppLogDebug("ENTER");
+       if (__pMutexCmd != null)
+       {
+               __pMutexCmd->Acquire();
+               if (__pCmdQueue != null && __pCmdQueue->GetCount() > 0)
+               {
+                       __pCmdQueue->RemoveAll(true);
+               }
+
+               if (appTerminating == true)
+               {
+                       __isAppTerminating = true;
+               }
+               __pMutexCmd->Release();
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+bool
+ThumbnailProvider::OnStart(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return true;
+}
+
+void
+ThumbnailProvider::OnStop(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+ThumbnailProvider::OnUserEventReceivedN(RequestId requestId, IList* pArgs)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("[THREAD] Receive Job Message - (SubThread)");
+       ThumbnailJob* pThumbnailJob = null;
+       ThumbnailInfo* pThumbnailInfo = null;
+       ContentId contentId;
+
+       if (__pMutexCmd == null || __pCmdQueue == null)
+       {
+               delete pArgs;
+               AppLogDebug("EXIT1(%s)", GetErrorMessage(GetLastResult()));
+               return;
+       }
+
+       __pMutexCmd->Acquire();
+       if (__pCmdQueue->GetCount() > 0)
+       {
+               pThumbnailJob = static_cast<ThumbnailJob*>(__pCmdQueue->GetAt(0));
+               if (pThumbnailJob == null)
+               {
+                       __pCmdQueue->RemoveAt(0);
+                       __pMutexCmd->Release();
+                       return;
+               }
+
+               unsigned long requestId = pThumbnailJob->GetRequestId();
+               ContentId contentId = pThumbnailJob->GetContentId();
+               __pMutexCmd->Release();
+
+               pThumbnailInfo = GetThumbnailInfoN(contentId);
+
+               __pMutexCmd->Acquire();
+               pThumbnailJob = static_cast<ThumbnailJob*>(__pCmdQueue->GetAt(0));
+
+               if (pThumbnailJob != null && pThumbnailInfo != null && requestId == pThumbnailJob->GetRequestId())
+               {
+                       ContentType contentType = pThumbnailInfo->GetContentType();
+                       if (contentType == CONTENT_TYPE_IMAGE || contentType == CONTENT_TYPE_VIDEO)
+                       {
+                               ThumbnailEvent* pThumbnailEvent = const_cast<ThumbnailEvent*>(pThumbnailJob->GetEvent());
+                               if (pThumbnailEvent != null)
+                               {
+                                       if (__isAppTerminating != true)
+                                       {
+                                               ThumbnailEventArg* pSendingArg = new (std::nothrow)ThumbnailEventArg(pThumbnailInfo);
+                                               pThumbnailEvent->Fire(*pSendingArg);
+                                       }
+                               }
+                       }
+                       else
+                       {
+                               delete pThumbnailInfo;
+                       }
+                       __pCmdQueue->RemoveAt(0, true);
+               }
+               else
+               {
+                       delete pThumbnailInfo;
+               }
+       }
+       __pMutexCmd->Release();
+
+       delete pArgs;
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+ThumbnailInfo*
+ThumbnailProvider::GetThumbnailInfoN(const ContentId& contentId) const
+{
+       AppLogDebug("ENTER");
+       ThumbnailInfo* pNewThumbnailInfo = null;
+
+       ContentManager contentManager;
+       result r = contentManager.Construct();
+       if (r == E_SUCCESS)
+       {
+               Bitmap* pBitmap = null;
+               long duration = 0;
+
+               ContentInfo* pContentInfo = contentManager.GetContentInfoN(contentId);
+
+               if (pContentInfo != null)
+               {
+                       String path = pContentInfo->GetContentPath();
+                       if (path.EndsWith(L"tif") != true
+                               && path.EndsWith(L"tiff") != true
+                               && path.EndsWith(L"wbmp") != true
+                               && path.EndsWith(L"TIF") != true
+                               && path.EndsWith(L"TIFF") != true
+                               && path.EndsWith(L"WBMP") != true)
+                       {
+                               pBitmap = pContentInfo->GetThumbnailN();
+                       }
+
+                       if (pBitmap == null)
+                       {
+                               pBitmap = GetThumbnailByDecodeN(pContentInfo->GetContentPath(), pContentInfo->GetContentType());
+                               if (pBitmap == null)
+                               {
+                                       pBitmap = ResourceManager::GetBitmapN(IDB_NO_CONTENTS_BROKEN);
+                               }
+                       }
+                       pBitmap->Scale(DIMENSION_DEFAULT_THUMBNAIL);
+
+                       ContentType contentType = pContentInfo->GetContentType();
+
+                       if (contentType == CONTENT_TYPE_VIDEO)
+                       {
+                               VideoContentInfo* pVideoContentInfo = static_cast<VideoContentInfo*>(pContentInfo);
+                               duration = pVideoContentInfo->GetDuration();
+                       }
+
+                       pNewThumbnailInfo = new (std::nothrow) ThumbnailInfo();
+                       pNewThumbnailInfo->Construct(contentId, pContentInfo->GetContentPath(), *pBitmap, contentType, duration);
+                       delete pBitmap;
+                       delete pContentInfo;
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pNewThumbnailInfo;
+}
+
+Bitmap*
+ThumbnailProvider::GetThumbnailByDecodeN(const String& filePath, const ContentType contentType) const
+{
+       AppLogDebug("ENTER");
+       Bitmap* pBitmap = null;
+       if (&filePath == null || filePath.GetLength() <= 0)
+       {
+               pBitmap = new (std::nothrow) Bitmap();
+               pBitmap->Construct(DIMENSION_DEFAULT_THUMBNAIL, BITMAP_PIXEL_FORMAT_RGB565);
+       }
+       else
+       {
+               if (contentType == CONTENT_TYPE_IMAGE)
+               {
+                       ImageBuffer pImageBuffer;
+                       result r = pImageBuffer.Construct(filePath);
+                       if (r == E_SUCCESS)
+                       {
+                               pBitmap = pImageBuffer.GetBitmapN(BITMAP_PIXEL_FORMAT_ARGB8888, BUFFER_SCALING_AUTO);
+                       }
+               }
+               else if (contentType == CONTENT_TYPE_VIDEO)
+               {
+                       VideoFrameExtractor extractor;
+                       result r = extractor.Construct(filePath, MEDIA_PIXEL_FORMAT_RGB565LE);
+                       if (r == E_SUCCESS)
+                       {
+                               ImageBuffer* pImageBuffer = extractor.GetFrameN(0);
+                               if (pImageBuffer != null)
+                               {
+                                       pBitmap = pImageBuffer->GetBitmapN(BITMAP_PIXEL_FORMAT_RGB565, BUFFER_SCALING_AUTO);
+                                       delete pImageBuffer;
+                               }
+                       }
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pBitmap;
+}
+
+String
+ThumbnailProvider::GetFileNameFromFullPath(const String& fullPath, bool withExt) const
+{
+       AppLogDebug("ENTER");
+       if (fullPath.CompareTo(EMPTY_SPACE) == 0)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return EMPTY_SPACE;
+       }
+
+       String delim(DIRECTORY_SEPARATOR);
+       StringTokenizer st(fullPath,delim);
+       String token;
+       while (st.HasMoreTokens())
+       {
+               st.GetNextToken(token);
+       }
+
+       if (withExt == true)
+       {
+               AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
+
+               return token;
+       }
+       else
+       {
+               String subDelim(FILE_EXT_SEPARATOR);
+               StringTokenizer subSt(token, subDelim);
+               String subToken;
+               subSt.GetNextToken(subToken);
+               AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+               return subToken;
+       }
+}
diff --git a/src/GlTimerBase.cpp b/src/GlTimerBase.cpp
new file mode 100644 (file)
index 0000000..26db9e1
--- /dev/null
@@ -0,0 +1,364 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlTimerBase.cpp
+ * @brief              This is the source file for GlTimerBase class.
+ */
+
+#include <FBase.h>
+#include <FUi.h>
+
+#include "GlAlbumListPresentationModel.h"
+#include "GlContentUpdateEventListener.h"
+#include "GlFileListPresentationModel.h"
+#include "GlProgressBar.h"
+#include "GlTimerBase.h"
+#include "GlTypes.h"
+
+using namespace Tizen::Ui;
+using namespace Tizen::Base::Runtime;
+using namespace Tizen::Ui::Controls;
+
+GlTimerBase::GlTimerBase(IFileOpInvalidateListener* invalidateListener, enum FileActionMode actionId)
+       : _actionId(actionId)
+       , __pContentIdList(null)
+       , __moveToCount(0)
+       , __pMoveProBar(null)
+       , __pInvalidate(invalidateListener)
+       , __isStarted(false)
+       , __timerRes(CANCEL_BY_USER)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+GlTimerBase::~GlTimerBase(void)
+{
+       AppLogDebug("ENTER");
+       __pInvalidate = null;
+       AlbumListPresentationModel::GetInstance()->RemoveTimerScanListener();
+       FileListPresentationModel::GetInstance()->StopAnimation();
+       AlbumListPresentationModel::GetInstance()->StopAnimation();
+       ContentUpdateEventListener* pContentListener = ContentUpdateEventListener::GetInstance();
+       pContentListener->ReSetTimerActive();
+
+       if (__pContentIdList != null && __pContentIdList->GetCount() > 0 && __isStarted)
+       {
+               __moveTimer.Cancel();
+               __isStarted = false;
+       }
+       delete __pContentIdList;
+       if (__pMoveProBar)
+       {
+               __pMoveProBar->HideFileProgressingPopup();
+               delete __pMoveProBar;
+       }
+       AppLogDebug("EXIT");
+}
+
+bool
+GlTimerBase::StartTimer(void)
+{
+       AppLogDebug("ENTER");
+       __pContentIdList = TimerStart();
+       if (__pContentIdList != null && __pContentIdList->GetCount() > 0)
+       {
+               AppLogDebug("Starting timer");
+               __pMoveProBar = new (std::nothrow) GlProgressBar(static_cast<IActionEventListener*>(this),
+                               static_cast<IPropagatedKeyEventListener*>(this));
+               __pMoveProBar->ShowFileProgressingPopup(__pContentIdList->GetCount(), _actionId);
+               __moveToCount = 0;
+               __moveTimer.Construct(*this);
+               __moveTimer.Start(60);
+               __isStarted = true;
+               ContentUpdateEventListener* pContentListener = ContentUpdateEventListener::GetInstance();
+               pContentListener->SetTimerActive();
+               AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+               return E_SUCCESS;
+       }
+       AppLogDebug("EXIT1(%s)", GetErrorMessage(GetLastResult()));
+       return E_FAILURE;
+}
+
+void
+GlTimerBase::CancelTimer(void)
+{
+       AppLogDebug("ENTER");
+       __moveTimer.Cancel();
+       __pMoveProBar->HideFileProgressingPopup();
+       int scanCount = GetDirScanCount();
+       if (scanCount > 0)
+       {
+               AlbumListPresentationModel::GetInstance()->AddTimerScanListener(this, scanCount);
+               ScanDirectories();
+               __pInvalidate->OnScanDirStart();
+               FileListPresentationModel::GetInstance()->ShowAnimation();
+               AlbumListPresentationModel::GetInstance()->ShowAnimation();
+       }
+       else
+       {
+               OnOpCancelled(CANCEL_USER);
+       }
+       __isStarted = false;
+       __moveToCount = 0;
+       __timerRes = CANCEL_BY_USER;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+GlTimerBase::OnTimerScanDirComplete()
+{
+       AppLogDebug("OnTimerScanDirComplete ENTER");
+
+       AlbumListPresentationModel::GetInstance()->RemoveTimerScanListener();
+       FileListPresentationModel::GetInstance()->StopAnimation();
+       AlbumListPresentationModel::GetInstance()->StopAnimation();
+       __pInvalidate->OnScanDirComplete();
+       switch(__timerRes)
+       {
+       case CANCEL_SYS:
+               AppLogDebug("CANCEL_SYS");
+               OnOpCancelled(CANCEL_SYS_ERROR);
+               break;
+       case CANCEL_BY_USER:
+               AppLogDebug("CANCEL_BY_USER");
+               OnOpCancelled(CANCEL_USER);
+               break;
+       case TIMER_COMPLETE:
+               AppLogDebug("TIMER_COMPLETE");
+               OnOpComplete(COMPLETE_SUCCESS);
+               break;
+       default:
+               break;
+       }
+       AppLogDebug("ENTER");
+}
+
+void
+GlTimerBase::OnTimerExpired(Timer& timer)
+{
+       AppLogDebug("ENTER");
+       if (&timer == &__moveTimer)
+       {
+               AppLogDebug("__pContentIdList count is %d", __pContentIdList->GetCount());
+               if (__moveToCount < __pContentIdList->GetCount())
+               {
+                       AppLogDebug("__pContentIdList count is %d", __pContentIdList->GetCount());
+                       if (__pContentIdList->GetAt(__moveToCount) != null)
+                       {
+                               result r = TimerExpired(__pContentIdList->GetAt(__moveToCount));
+                               if (IsFailed(r))
+                               {
+                                       if (r == E_STORAGE_FULL || r == E_IO)
+                                       {
+                                               __moveTimer.Cancel();
+                                               __isStarted = false;
+                                               __timerRes = CANCEL_SYS;
+                                               __pMoveProBar->HideFileProgressingPopup();
+                                               int scanCount = GetDirScanCount();
+                                               if ( scanCount > 0)
+                                               {
+                                                       AlbumListPresentationModel::GetInstance()->AddTimerScanListener(this, scanCount);
+                                                       ScanDirectories();
+                                                       __pInvalidate->OnScanDirStart();
+                                                       FileListPresentationModel::GetInstance()->ShowAnimation();
+                                                       AlbumListPresentationModel::GetInstance()->ShowAnimation();
+                                               }
+                                               else
+                                               {
+                                                       MessageBox messageBox;
+                                                       messageBox.Construct(L"", ResourceManager::GetString(L"IDS_COM_BODY_OPERATION_FAILED"),
+                                                                       MSGBOX_STYLE_NONE, 3000);
+                                                       int modalResult;
+                                                       messageBox.ShowAndWait(modalResult);
+                                                       OnOpCancelled(CANCEL_SYS_ERROR);
+                                               }
+                                               AppLogDebug("OnTimerExpired EXIT(%s)", GetErrorMessage(r));
+                                               return;
+                                       }
+                                       //If the errors are file not found etc, skip this file and move to next.
+                               }
+                       }
+                       ++__moveToCount;
+                       __pMoveProBar->IncProgress(__moveToCount);
+                       if (__pInvalidate)
+                       {
+                               __pInvalidate->OnFileOpInvalidate(_actionId);
+                       }
+                       __moveTimer.Start(1);
+                       __isStarted = true;
+               }
+               else
+               {
+                       __moveTimer.Cancel();
+                       __pMoveProBar->HideFileProgressingPopup();
+                       int scanCount = GetDirScanCount();
+                       if (scanCount == 0)
+                       {
+                               __moveToCount = 0;
+                               __isStarted = false;
+                               __timerRes = TIMER_COMPLETE;
+                               OnOpComplete(COMPLETE_SUCCESS);
+                               return;
+                       }
+                       AlbumListPresentationModel::GetInstance()->AddTimerScanListener(this, scanCount);
+                       ScanDirectories();
+                       __pInvalidate->OnScanDirStart();
+                       FileListPresentationModel::GetInstance()->ShowAnimation();
+                       AlbumListPresentationModel::GetInstance()->ShowAnimation();
+                       __isStarted = false;
+                       __timerRes = TIMER_COMPLETE;
+                       __moveToCount = 0;
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+GlTimerBase::OnActionPerformed(const Control& source, int actionId)
+{
+       AppLogDebug("ENTER");
+       switch (actionId)
+       {
+       case IDA_PROGRESSBAR_CANCEL:
+       {
+               CancelTimer();
+       }
+       break;
+
+       default:
+               break;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+int
+GlTimerBase::GetMovedCount() const
+{
+       return __moveToCount;
+}
+
+void
+GlTimerBase::OnOpCancelled(enum FileActionCancelRes res)
+{
+       AppLogDebug("ENTER");
+       ContentUpdateEventListener* pContentListener = ContentUpdateEventListener::GetInstance();
+       pContentListener->ReSetTimerActive();
+       if (__pInvalidate)
+       {
+               __pInvalidate->OnFileOpInvalidate(_actionId);
+       }
+       if (__moveToCount > 0)
+       {
+               if (__pInvalidate)
+               {
+                       if (res != CANCEL_USER)
+                       {
+                               __pInvalidate->OnFileOpComplete(_actionId, COMPLETE_SYS_PARTIAL);
+                       }
+                       else
+                       {
+                               __pInvalidate->OnFileOpComplete(_actionId, COMPLETE_SUCCESS);
+                       }
+               }
+       }
+       else
+       {
+               if (__pInvalidate)
+               {
+                       if (res != CANCEL_USER)
+                       {
+                               __pInvalidate->OnFileOpComplete(_actionId, COMPLETE_SYS_FAILURE);
+                       }
+                       else
+                       {
+                               __pInvalidate->OnFileOpComplete(_actionId, COMPLETE_SUCCESS);
+                       }
+               }
+       }
+       TimerCancel(__moveToCount, res);
+       AppLogDebug("EXIT");
+}
+
+void
+GlTimerBase::OnOpComplete(enum FileActionCompleteRes res)
+{
+       AppLogDebug("ENTER");
+       ContentUpdateEventListener* pContentListener = ContentUpdateEventListener::GetInstance();
+       pContentListener->ReSetTimerActive();
+       if (__pInvalidate)
+       {
+               __pInvalidate->OnFileOpInvalidate(_actionId);
+               __pInvalidate->OnFileOpComplete(_actionId, res);
+       }
+       TimerComplete(__moveToCount, res);
+       AppLogDebug("EXIT");
+}
+
+void
+GlTimerBase::SetActionMode(const enum FileActionMode actionId)
+{
+       AppLogDebug("ENTER");
+       _actionId = actionId;
+       AppLogDebug("EXIT");
+}
+
+bool
+GlTimerBase::IsStarted(void)
+{
+       AppLogDebug("ENTER");
+       return __isStarted;
+}
+
+void
+GlTimerBase::Cancel(void)
+{
+       AppLogDebug("ENTER");
+       if (__isStarted)
+       {
+               __pMoveProBar->HideFileProgressingPopup();
+               __moveTimer.Cancel();
+               __isStarted = false;
+
+               int scanCount = GetDirScanCount();
+               if (scanCount > 0)
+               {
+                       AlbumListPresentationModel::GetInstance()->AddTimerScanListener(this, scanCount);
+                       ScanDirectories();
+                       __pInvalidate->OnScanDirStart();
+                       FileListPresentationModel::GetInstance()->ShowAnimation();
+                       AlbumListPresentationModel::GetInstance()->ShowAnimation();
+               }
+               else
+               {
+                       OnOpCancelled(CANCEL_SYS_ERROR);
+               }
+       }
+       AppLogDebug("EXIT");
+}
+
+bool
+GlTimerBase::OnKeyReleased(Control& source, const Tizen::Ui::KeyEventInfo& keyEventInfo)
+{
+       AppLogDebug("ENTER");
+
+       if(keyEventInfo.GetKeyCode() == KEY_BACK)
+       {
+               CancelTimer();
+       }
+       return true;
+}
diff --git a/src/GlTypes.cpp b/src/GlTypes.cpp
new file mode 100644 (file)
index 0000000..3f4e631
--- /dev/null
@@ -0,0 +1,218 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlTypes.cpp
+ * @brief              This is the implementation file for Types definition
+ */
+
+#include <FGraphics.h>
+#include "GlTypes.h"
+
+using namespace Tizen::Graphics;
+
+const wchar_t* IDL_FORM_ALBUM_LIST = L"IDL_FORM_ALBUM_LIST";
+const wchar_t* IDL_FORM_ALBUM_LIST_EDITOR = L"IDL_FORM_ALBUM_LIST_EDITOR";
+const wchar_t* IDL_FORM_FILE_LIST = L"IDL_FORM_FILE_LIST";
+const wchar_t* IDL_FORM_SETTING_MAIN = L"IDL_FORM_SETTING_MAIN";
+const wchar_t* IDL_FORM_SETTING_INTERVAL = L"IDL_FORM_SETTING_INTERVAL";
+const wchar_t* IDL_FORM_SETTING_TRANSITION = L"IDL_FORM_SETTING_TRANSITION";
+const wchar_t* IDL_FORM_IMAGE_CROP = L"IDL_FORM_IMAGE_CROP";
+
+const wchar_t* IDC_LABEL_ALBUM_LIST_EDITOR_SELECTED = L"IDC_LABEL_ALBUM_LIST_EDITOR_SELECTED";
+
+const wchar_t* IDC_FORM_ALBUM_LIST = L"AlbumListForm";
+const wchar_t* IDC_FORM_ALBUM_LIST_EDITOR = L"AlbumListEditorForm";
+const wchar_t* IDC_FORM_ALBUM_NAME_EDITOR = L"AlbumNameEditorForm";
+const wchar_t* IDC_FORM_FILE_LIST = L"FileListForm";
+const wchar_t* IDC_FORM_FILE_LIST_EDITOR = L"FileListEditorForm";
+const wchar_t* IDC_FORM_SETTING_MAIN = L"SettingMainForm";
+const wchar_t* IDC_FORM_SETTING_INTERVAL = L"SettingIntervalForm";
+const wchar_t* IDC_FORM_SETTING_TRANSITION = L"SettingTransitionForm";
+const wchar_t* IDC_FORM_IMAGE_CROP = L"ImageCropForm";
+
+const wchar_t* IDC_PANEL_BLANK = L"";
+const wchar_t* IDC_PANEL_ALL_LIST = L"AllListPanel";
+const wchar_t* IDC_PANEL_IMAGE_LIST = L"ImageListPanel";
+const wchar_t* IDC_PANEL_VIDEO_LIST = L"VideoListPanel";
+const wchar_t* IDC_PANEL_ALL_LIST_EDITOR = L"AllListEditorPanel";
+const wchar_t* IDC_PANEL_IMAGE_LIST_EDITOR = L"ImageListEditorPanel";
+const wchar_t* IDC_PANEL_VIDEO_LIST_EDITOR = L"VideoListEditorPanel";
+const wchar_t* IDC_PANEL_ALL_LIST_SELECTION = L"AllListSelectionPanel";
+
+const wchar_t* IDSCN_ALBUM_LIST = L"SceneAlbumList";
+const wchar_t* IDSCN_ALBUM_LIST_EDITOR = L"SceneAlbumListEditor";
+const wchar_t* IDSCN_ALBUM_NAME_EDITOR = L"SceneAlbumNameEditor";
+const wchar_t* IDSCN_ALL_LIST = L"SceneFileAllList";
+const wchar_t* IDSCN_IMAGE_LIST = L"SceneFileImageList";
+const wchar_t* IDSCN_VIDEO_LIST = L"SceneFileVideoList";
+const wchar_t* IDSCN_ALL_LIST_EDITOR = L"SceneFileAllListEditor";
+const wchar_t* IDSCN_IMAGE_LIST_EDITOR = L"SceneFileImageListEditor";
+const wchar_t* IDSCN_VIDEO_LIST_EDITOR = L"SceneFileVideoListEditor";
+const wchar_t* IDSCN_ALL_LIST_SELECTION = L"SceneFileAllListSelection";
+const wchar_t* IDSCN_SETTING_MAIN = L"SceneMainSetting";
+const wchar_t* IDSCN_SETTING_INTERVAL = L"SceneInvervalSetting";
+const wchar_t* IDSCN_SETTING_TRANSITION = L"SceneTransitionSetting";
+const wchar_t* IDSCN_IMAGE_CROP = L"SceneImageCrop";
+
+const wchar_t* APPCONTROL_PROVIDER_ID_CAMERA = L"tizen.camera";
+const wchar_t* APPCONTROL_PROVIDER_ID_MESSAGE = L"tizen.messages";
+const wchar_t* APPCONTROL_PROVIDER_ID_EMAIL = L"tizen.email";
+const wchar_t* APPCONTROL_PROVIDER_ID_IMAGE = L"tizen.imageviewer";
+
+const wchar_t* APPCONTROL_OPERATION_ID_PICK    = L"http://tizen.org/appcontrol/operation/pick";
+const wchar_t* APPCONTROL_OPERATION_ID_VIEW = L"http://tizen.org/appcontrol/operation/view";
+const wchar_t* APPCONTROL_OPERATION_ID_CREATE_CONTENT = L"http://tizen.org/appcontrol/operation/create_content";
+const wchar_t* APPCONTROL_OPERATION_ID_COMPOSE = L"http://tizen.org/appcontrol/operation/compose";
+const wchar_t* APPCONTROL_OPERATION_ID_CONFIGURE = L"http://tizen.org/appcontrol/operation/configure";
+const wchar_t* APPCONTROL_OPERATION_ID_MAIN = L"http://tizen.org/appcontrol/operation/main";
+
+const wchar_t* APPCONTROL_KEY_TYPE = L"http://tizen.org/appcontrol/data/type";
+const wchar_t* APPCONTROL_KEY_PATH = L"http://tizen.org/appcontrol/data/path";
+const wchar_t* APPCONTROL_KEY_INDEX = L"http://tizen.org/appcontrol/data/index";
+const wchar_t* APPCONTROL_KEY_SELECTION_MODE = L"http://tizen.org/appcontrol/data/selection_mode";
+const wchar_t* APPCONTROL_KEY_DATA_SELECTED = L"http://tizen.org/appcontrol/data/selected";
+const wchar_t* APPCONTROL_KEY_MESSAGE_TYPE = L"http://tizen.org/appcontrol/data/message/type";
+const wchar_t* APPCONTROL_KEY_CAMERA_ALLOW_SWITCH = L"http://tizen.org/appcontrol/data/camera/allow_switch";
+const wchar_t* APPCONTROL_KEY_IMAGEVIEWER_MODE = L"http://tizen.org/appcontrol/data/image/crop_mode";
+
+const wchar_t* APPCONTROL_URI_MMS_TO = L"mmsto";
+const wchar_t* APPCONTROL_URI_MAIL_TO = L"mailto";
+
+const wchar_t* APPCONTROL_MIME_IMAGE_JPG = L"image/jpg";
+const wchar_t* APPCONTROL_MIME_IMAGE_ALL = L"image/*";
+
+const wchar_t* APPCONTROL_DATA_IMAGE = L"image";
+const wchar_t* APPCONTROL_DATA_VIDEO = L"video";
+const wchar_t* APPCONTROL_DATA_SINGLE = L"single";
+const wchar_t* APPCONTROL_DATA_MULTIPLE = L"multiple";
+const wchar_t* APPCONTROL_DATA_SLIDE_SHOW = L"slideshow";
+const wchar_t* APPCONTROL_DATA_SELECTION_MODE = L"http://tizen.org/appcontrol/data/selection/mode";
+const wchar_t* APPCONTROL_DATA_TRUE = L"true";
+const wchar_t* APPCONTROL_DATA_MMS = L"mms";
+const wchar_t* APPCONTROL_DATA_CROP_TYPE_AUTO = L"auto";
+const wchar_t* APPCONTROL_DATA_CROP_TYPE_FIT_TO_SCREEN = L"fit_to_screen";
+
+const wchar_t* APPCONTROL_RESULT_KEY_LEGACY_RESULT = L"http://tizen.org/appcontrol/data/legacyresult";
+
+const wchar_t* SETTING_KEY_LANGUAGE = L"http://tizen.org/setting/locale.language";
+const wchar_t* SETTING_KEY_FONT_SIZE = L"http://tizen.org/setting/font.size";
+
+const Dimension DIMENSION_DEFAULT_THUMBNAIL = Dimension(171,127);
+const int FOLDER_BITMAP_MAX = 7;
+
+const wchar_t* EMPTY_SPACE = L"";
+const wchar_t* SINGLE_SPACE = L" ";
+
+const wchar_t* DIRECTORY_SEPARATOR = L"/";
+const wchar_t* FILE_EXT_SEPARATOR = L".";
+const wchar_t* MULTI_ITEM_SEPARATOR = L";";
+
+const wchar_t* CONTENT_EXT_PNG = L".png";
+const wchar_t* CONTENT_EXT_BMP = L".bmp";
+const wchar_t* CONTENT_EXT_JPG = L".jpg";
+const wchar_t* CONTENT_EXT_GIF = L".gif";
+const wchar_t* CONTENT_EXT_TIF = L".tif";
+const wchar_t* CONTENT_EXT_MP4 = L".mp4";
+const wchar_t* CONTENT_EXT_3GP = L".3gp";
+const wchar_t* CONTENT_EXT_AVI = L".avi";
+const wchar_t* CONTENT_EXT_RM = L".rm";
+const wchar_t* CONTENT_EXT_WMV = L".wmv";
+const wchar_t* CONTENT_EXT_ASF = L".asf";
+
+const wchar_t* SECTION_NAME_GALLERY = L"GALLRY_SETTING";
+const wchar_t* SECTION_NAME_IMAGE_VIEWER = L"IMAGE_VIEWER_SETTING";
+const wchar_t* SECTION_NAME_VIDEO_PLAYER = L"VIDEO_PLAYER_SETTING";
+const wchar_t* ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_INTERVAL = L"SLIDESHOW_INTERVAL_VALUE";
+const wchar_t* ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_TRANSITION_EFFECT = L"TRANSITION_EFFECT_VALUE";
+const wchar_t* ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_MUSIC = L"MUSIC_VALUE";
+const wchar_t* ENTRY_NAME_IMAGE_VIEWER_REPEAT_VALUE = L"REPEAT_VALUE";
+const wchar_t* ENTRY_NAME_IMAGE_VIEWER_SHUFFLE_VALUE = L"SHUFFLE_VALUE";
+
+const wchar_t* ALL_ALBUMS_REAL_NAME = L"asdqwezxc%%^^@@$$**";
+
+const wchar_t* FONT_SIZE_SETTING_INFO_KEY = L"http://tizen.org/setting/font.size";
+
+const wchar_t* IDB_BUTTON_CIRCLE_BACKGROUND = L"T01_button_circle_bg_normal.png";
+const wchar_t* IDB_BUTTON_RENAME = L"T01_button_rename.png";
+const wchar_t* IDB_CONTROLBAR_CAMERA = L"T01_controlbar_icon_camera.png";
+const wchar_t* IDB_CONTROLBAR_DELETE = L"T01_controlbar_icon_delete.png";
+const wchar_t* IDB_CONTROLBAR_DELETE_DIM = L"T01_toolbar_icon_delete_dim_web.png";
+const wchar_t* IDB_CONTROLBAR_MORE = L"T01_controlbar_icon_more.png";
+const wchar_t* IDB_CONTROLBAR_MORE_DISABLED = L"00_icon_more_dim.png";
+const wchar_t* IDB_CONTROLBAR_MORE_PRESSED = L"00_icon_more_press.png";
+const wchar_t* IDB_CONTROLBAR_SHARE = L"T01_controlbar_icon_share02.png";
+const wchar_t* IDB_CONTROLBAR_SHARE_DIM = L"T01_toolbar_icon_share_dim_web.png";
+const wchar_t* IDB_LISTVIEW_EMPTY = L"T01_Nocontents_picture.png";
+const wchar_t* IDB_MAIN_FOLDER_BACKGROUND = L"T01_main_folder_bg.png";
+const wchar_t* IDB_VIDEOTHUMBNAIL_BG = L"T01_places_thumbnail_bg.png";
+const wchar_t* IDB_VIDEOTHUMBNAIL_BOOKMARK = L"T01_icon_thumbnail_bookmark.png";
+const wchar_t* IDB_VIDEOTHUMBNAIL_FAVORITE = L"T01_icon_thumbnail_favorite.png";
+const wchar_t* IDB_VIDEOTHUMBNAIL_PLAY = L"T01_btn_play.png";
+const wchar_t* IDB_BUTTON_MOVE_SELECTION = L"T01_button_reveal.png";
+const wchar_t* IDB_NO_CONTENTS_BROKEN = L"T01_Nocontents_broken.png";
+const wchar_t* IDB_LIST_EXPAND_CLOSED = L"00_list_expand_closed.png";
+const wchar_t* IDB_LIST_EXPAND_CLOSED_PRESS = L"00_list_expand_closed_press.png";
+const wchar_t* IDB_LIST_EXPAND_OPENED = L"00_list_expand_opened.png";
+const wchar_t* IDB_LIST_EXPAND_OPENED_PRESS = L"00_list_expand_opened_press.png";
+const wchar_t* IDB_ICON_SELECT_ALL = L"00_icon_select_all_web.png";
+const wchar_t* IDB_ICON_SELECT_ALL_PRESS = L"00_icon_select_all_press_web.png";
+
+const wchar_t* DEVICE_STORAGE_CARD_MOUNTED = L"Mounted";
+const wchar_t* DEVICE_STORAGE_CARD_UNMOUNTED = L"Unmounted";
+const wchar_t* IDB_ALBUM_EDIT_RENAME_BG = L"T01_album_edit_rename_bg.png";
+const wchar_t* IDB_ALBUM_EDIT_RENAME = L"T01_album_edit_rename.png";
+const wchar_t* IDB_ALBUM_ICON_FOLDER = L"T01_album_icon_folder.png";
+const wchar_t* IDB_ALBUM_ICON_DOWNLOAD = L"T01_album_icon_download.png";
+const wchar_t* IDB_ALBUM_ICON_CAMERA = L"T01_album_icon_camera.png";
+
+const wchar_t* IDB_ALBUM_RENAME_PROGRESS1 = L"00_list_process_01.png";
+const wchar_t* IDB_ALBUM_RENAME_PROGRESS2 = L"00_list_process_02.png";
+const wchar_t* IDB_ALBUM_RENAME_PROGRESS3 = L"00_list_process_03.png";
+const wchar_t* IDB_ALBUM_RENAME_PROGRESS4 = L"00_list_process_04.png";
+const wchar_t* IDB_ALBUM_RENAME_PROGRESS5 = L"00_list_process_05.png";
+const wchar_t* IDB_ALBUM_RENAME_PROGRESS6 = L"00_list_process_06.png";
+const wchar_t* IDB_ALBUM_RENAME_PROGRESS7 = L"00_list_process_07.png";
+const wchar_t* IDB_ALBUM_RENAME_PROGRESS8 = L"00_list_process_08.png";
+const wchar_t* IDB_ALBUM_RENAME_PROGRESS9 = L"00_list_process_09.png";
+const wchar_t* IDB_ALBUM_RENAME_PROGRESS10 = L"00_list_process_10.png";
+
+const wchar_t* IDB_ALBUM_RENAME_PROGRESS11 = L"00_list_process_11.png";
+const wchar_t* IDB_ALBUM_RENAME_PROGRESS12 = L"00_list_process_12.png";
+const wchar_t* IDB_ALBUM_RENAME_PROGRESS13 = L"00_list_process_13.png";
+const wchar_t* IDB_ALBUM_RENAME_PROGRESS14 = L"00_list_process_14.png";
+const wchar_t* IDB_ALBUM_RENAME_PROGRESS15 = L"00_list_process_15.png";
+const wchar_t* IDB_ALBUM_RENAME_PROGRESS16 = L"00_list_process_16.png";
+const wchar_t* IDB_ALBUM_RENAME_PROGRESS17 = L"00_list_process_17.png";
+const wchar_t* IDB_ALBUM_RENAME_PROGRESS18 = L"00_list_process_18.png";
+const wchar_t* IDB_ALBUM_RENAME_PROGRESS19 = L"00_list_process_19.png";
+const wchar_t* IDB_ALBUM_RENAME_PROGRESS20 = L"00_list_process_20.png";
+
+const wchar_t* IDB_ALBUM_RENAME_PROGRESS21 = L"00_list_process_21.png";
+const wchar_t* IDB_ALBUM_RENAME_PROGRESS22 = L"00_list_process_22.png";
+const wchar_t* IDB_ALBUM_RENAME_PROGRESS23 = L"00_list_process_23.png";
+const wchar_t* IDB_ALBUM_RENAME_PROGRESS24 = L"00_list_process_24.png";
+const wchar_t* IDB_ALBUM_RENAME_PROGRESS25 = L"00_list_process_25.png";
+const wchar_t* IDB_ALBUM_RENAME_PROGRESS26 = L"00_list_process_26.png";
+const wchar_t* IDB_ALBUM_RENAME_PROGRESS27 = L"00_list_process_27.png";
+const wchar_t* IDB_ALBUM_RENAME_PROGRESS28 = L"00_list_process_28.png";
+const wchar_t* IDB_ALBUM_RENAME_PROGRESS29 = L"00_list_process_29.png";
+const wchar_t* IDB_ALBUM_RENAME_PROGRESS30 = L"00_list_process_30.png";
+
+const wchar_t* IDB_IMAGE_CONTEXT_EMAIL_ICON = L"T01_1_face_tag_icon_email.png";
+const wchar_t* IDB_IMAGE_CONTEXT_MESSAGE_ICON =  L"T01_1_face_tag_icon_message.png";
+
+const wchar_t* IDB_IMAGE_CROP_RECTANGLE = L"T01-1_crop_rectangle.png";
diff --git a/src/GlVideoListEditorPanel.cpp b/src/GlVideoListEditorPanel.cpp
new file mode 100644 (file)
index 0000000..3b08f4c
--- /dev/null
@@ -0,0 +1,787 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlVideoListEditorPanel.cpp
+ * @brief              This is the implementation file for VideoListEditorPanel class.
+ */
+
+#include <FContent.h>
+#include <FMedia.h>
+#include "GlAlbumInfo.h"
+#include "GlCommonUtil.h"
+#include "GlFileListPresentationModel.h"
+#include "GlGalleryApp.h"
+#include "GlResourceManager.h"
+#include "GlTypes.h"
+#include "GlVideoListEditorPanel.h"
+#include "GlFileListEditorForm.h"
+#include "GlFileUpdateTimer.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Content;
+using namespace Tizen::Graphics;
+using namespace Tizen::Media;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+static const unsigned int COLOR_COUNT_LABEL = Color32<68, 68, 68>::Value;
+static const unsigned int COLOR_SELECT_COUNT_FONT = Color32<255, 255, 255>::Value;
+static const Color COLOR_THUMBNAIL_DIM (Color::GetColor(COLOR_ID_BLACK));
+static const Rectangle RECT_VIDEO_THUMBNAIL(16, 16, 172, 128);
+static const Rectangle RECT_INITIAL(0, 0, 10, 10);
+
+static const int H_SELECTALL_REGION = 112;
+static const int ALPHA_THUMBNAIL_DIM = 70;
+static const int H_COUNT_LABEL = 48;
+static const int COUNT_LABEL_FONT_SIZE = 33;
+static const int LENGTH_COUNT_LABEL = 256;
+static const int W_CLIENT_REGION = 720;
+static const int H_VIDEO_ITEM = 160;
+static const int GAP_W_VIDEO_TITLE = 16+172+16;
+static const int GAP_H_VIDEO_TITLE = 22;
+static const int W_VIDEO_TITLE = (16+172+16)+(16+64+16);
+static const int H_VIDEO_TITLE = 64;
+static const int FONT_SIZE_TITLE = 36;
+static const int GAP_W_VIDEO_DURATION = 16+172+16;
+static const int GAP_H_VIDEO_DURATION = 22+64;
+static const int W_VIDEO_DURATION = (16+172+16)+(16+64+16);
+static const int H_VIDEO_DURATION = 48;
+static const int FONT_SIZE_DURATION = 32;
+
+VideoListEditorPanel::VideoListEditorPanel(void)
+       : __pContentIconListView(null)
+       , __pCheckButton(null)
+       , __pLabelSelectCnt(null)
+       , __itemCount(0)
+       , __pPresentationModel(null)
+       , __pFileDelete(null)
+       , __pFileListEditorForm(null)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+VideoListEditorPanel::~VideoListEditorPanel(void)
+{
+       AppLogDebug("ENTER");
+       delete __pFileDelete;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+result
+VideoListEditorPanel::Initialize(void)
+{
+       AppLogDebug("ENTER");
+       result r = Construct(RECT_INITIAL);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+result
+VideoListEditorPanel::OnInitializing(void)
+{
+       AppLogDebug("ENTER");
+       const Form* pForm = dynamic_cast<Form*>(GetParent());
+       TryReturn(pForm != null, E_FAILURE, "[%s] fail to get the form.", GetErrorMessage(GetLastResult()));
+
+       __pPresentationModel = FileListPresentationModel::GetInstance();
+       __pPresentationModel->ClearThumbnailRequests();
+       __pPresentationModel->AddPresentationModelListener(this);
+       __itemCount = 0;
+
+       Rectangle clientAreaBounds = pForm->GetClientAreaBounds();
+       clientAreaBounds.x = clientAreaBounds.y = 0;
+       SetBounds(clientAreaBounds);
+
+       if (__pPresentationModel->GetAppControlMode() == APPCONTROL_MODE_PICK)
+       {
+               __pContentIconListView = new (std::nothrow) ListView();
+
+               if (__pPresentationModel->GetAppControlSelectionMode() == APPCONTROL_SELECTION_MODE_MULTIPLE)
+               {
+                       __pContentIconListView->Construct(Rectangle(0, 0, clientAreaBounds.width, clientAreaBounds.height), true, false);
+                       Bitmap* pBitmapEmpty = ResourceManager::GetBitmapN(IDB_LISTVIEW_EMPTY);
+                       if (pBitmapEmpty != null)
+                       {
+                               __pContentIconListView->SetBitmapOfEmptyList(pBitmapEmpty);
+                               delete pBitmapEmpty;
+                       }
+                       __pContentIconListView->SetTextOfEmptyList(ResourceManager::GetString(L"IDS_COM_BODY_NO_ITEMS"));
+                       __pContentIconListView->SetItemProvider(*this);
+                       __pContentIconListView->AddListViewItemEventListener(*this);
+                       AddControl(__pContentIconListView);
+                       __pContentIconListView->SetShowState(true);
+
+                       __pLabelSelectCnt = new (std::nothrow) Label();
+                       __pLabelSelectCnt->Construct(Rectangle(0, clientAreaBounds.height - H_COUNT_LABEL,
+                                       clientAreaBounds.width, H_COUNT_LABEL), ResourceManager::GetString(L"IDS_ST_POP_NO_ITEMS_SELECTED"));
+                       __pLabelSelectCnt->SetTextVerticalAlignment(ALIGNMENT_MIDDLE);
+                       __pLabelSelectCnt->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+                       __pLabelSelectCnt->SetBackgroundColor(COLOR_COUNT_LABEL);
+                       __pLabelSelectCnt->SetTextColor(Color(COLOR_SELECT_COUNT_FONT));
+                       __pLabelSelectCnt->SetTextConfig(COUNT_LABEL_FONT_SIZE, LABEL_TEXT_STYLE_BOLD);
+                       AddControl(__pLabelSelectCnt);
+               }
+               else
+               {
+                       __pContentIconListView->Construct(Rectangle(0, 0, clientAreaBounds.width,
+                                       clientAreaBounds.height), true, false);
+                       Bitmap* pBitmapEmpty = ResourceManager::GetBitmapN(IDB_LISTVIEW_EMPTY);
+                       if (pBitmapEmpty != null)
+                       {
+                               __pContentIconListView->SetBitmapOfEmptyList(pBitmapEmpty);
+                               delete pBitmapEmpty;
+                       }
+                       __pContentIconListView->SetTextOfEmptyList(ResourceManager::GetString(L"IDS_COM_BODY_NO_ITEMS"));
+                       __pContentIconListView->SetItemProvider(*this);
+                       __pContentIconListView->AddListViewItemEventListener(*this);
+                       AddControl(__pContentIconListView);
+                       __pContentIconListView->SetShowState(true);
+               }
+       }
+       else
+       {
+               __pContentIconListView = new (std::nothrow) ListView();
+               __pContentIconListView->Construct(
+                               Rectangle(0, H_SELECTALL_REGION, W_CLIENT_REGION, clientAreaBounds.height - H_SELECTALL_REGION),
+                               true, false);
+               Bitmap* pBitmapEmpty = ResourceManager::GetBitmapN(IDB_LISTVIEW_EMPTY);
+               if (pBitmapEmpty != null)
+               {
+                       __pContentIconListView->SetBitmapOfEmptyList(pBitmapEmpty);
+                       delete pBitmapEmpty;
+               }
+               __pContentIconListView->SetTextOfEmptyList(ResourceManager::GetString(L"IDS_COM_BODY_NO_ITEMS"));
+               __pContentIconListView->SetItemProvider(*this);
+               __pContentIconListView->AddListViewItemEventListener(*this);
+               AddControl(__pContentIconListView);
+               __pContentIconListView->SetShowState(true);
+
+               __pLabelSelectCnt = new (std::nothrow) Label();
+               __pLabelSelectCnt->Construct(
+                               Rectangle(0, clientAreaBounds.height - H_COUNT_LABEL, clientAreaBounds.width, H_COUNT_LABEL),
+                               ResourceManager::GetString(L"IDS_ST_POP_NO_ITEMS_SELECTED"));
+               __pLabelSelectCnt->SetTextVerticalAlignment(ALIGNMENT_MIDDLE);
+               __pLabelSelectCnt->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+               __pLabelSelectCnt->SetBackgroundColor(COLOR_COUNT_LABEL);
+               __pLabelSelectCnt->SetTextColor(Color(COLOR_SELECT_COUNT_FONT));
+               __pLabelSelectCnt->SetTextConfig(COUNT_LABEL_FONT_SIZE, LABEL_TEXT_STYLE_BOLD);
+               AddControl(__pLabelSelectCnt);
+
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+result
+VideoListEditorPanel::OnTerminating(void)
+{
+       AppLogDebug("ENTER");
+       __pPresentationModel->RemovePresentationModelListener(*this);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+int
+VideoListEditorPanel::GetItemCount(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return __itemCount;
+}
+
+ListItemBase*
+VideoListEditorPanel::CreateItem(int index, int itemWidth)
+{
+       AppLogDebug("ENTER : index(%d)", index);
+       CustomItem* pItem = new (std::nothrow) CustomItem();
+
+       Bitmap* pBitmap = null;
+       String* pItemText = null;
+       String* pTitle = null;
+       String* pDuration = null;
+
+       result r = __pPresentationModel->GetThumbnailVideoInSyncCacheN(index, pItemText, pBitmap, pDuration);
+       if (pBitmap == null || r == E_FAILURE)
+       {
+               __pPresentationModel->RequestThumbnail(index);
+               pBitmap = CommonUtil::GetEmptyThumbnailN();
+       }
+
+       if (pItemText == null)
+       {
+               pItemText = new (std::nothrow) String(ResourceManager::GetString(L"EMPTY_SPACE"));
+       }
+
+       pTitle = new (std::nothrow) String(ResourceManager::GetString(L"EMPTY_SPACE"));
+
+       if (pDuration == null)
+       {
+               pDuration = new (std::nothrow) String(ResourceManager::GetString(L"EMPTY_SPACE"));
+       }
+
+       if (__pPresentationModel->GetAppControlMode() == APPCONTROL_MODE_PICK)
+       {
+               if (__pPresentationModel->GetAppControlSelectionMode() == APPCONTROL_SELECTION_MODE_MULTIPLE)
+               {
+                       pItem->Construct(Dimension(itemWidth, H_VIDEO_ITEM), LIST_ANNEX_STYLE_MARK);
+
+                       if (__pContentIconListView->IsItemChecked(index) == true)
+                       {
+                               if (pBitmap != null)
+                               {
+                                       BufferInfo bufferInfo;
+                                       pBitmap->Lock(bufferInfo, INFINITE);
+                                       pBitmap->Unlock();
+
+                                       Color dimColor(COLOR_THUMBNAIL_DIM);
+                                       dimColor.SetAlpha(ALPHA_THUMBNAIL_DIM);
+
+                                       Canvas canvas;
+                                       canvas.Construct(bufferInfo);
+                                       canvas.FillRectangle(dimColor, canvas.GetBounds());
+
+                                       Bitmap* pSelectedBitmap = new (std::nothrow) Bitmap();
+                                       pSelectedBitmap->Construct(canvas, canvas.GetBounds());
+                                       pItem->AddElement(RECT_VIDEO_THUMBNAIL, IDA_FORMAT_THUMBNAIL, *pBitmap, pSelectedBitmap);
+                                       delete pSelectedBitmap;
+                               }
+                               else
+                               {
+                                       AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+                                       delete pTitle;
+                                       delete pItemText;
+                                       delete pDuration;
+                                       return null;
+                               }
+                       }
+                       else
+                       {
+                               pItem->AddElement(RECT_VIDEO_THUMBNAIL, IDA_FORMAT_THUMBNAIL, *pBitmap);
+                       }
+
+                       if (pTitle == null)
+                       {
+                               pTitle = new (std::nothrow) String(SINGLE_SPACE);
+                       }
+                       else if (pTitle->IsEmpty() == true)
+                       {
+                               delete pTitle;
+                               pTitle = new (std::nothrow) String(SINGLE_SPACE);
+                       }
+
+                       Rectangle titleRect(GAP_W_VIDEO_TITLE, GAP_H_VIDEO_TITLE, itemWidth-W_VIDEO_TITLE, H_VIDEO_TITLE);
+                       pItem->AddElement(titleRect, IDA_FORMAT_TITLE, *pTitle, FONT_SIZE_TITLE,
+                                       Color::GetColor(COLOR_ID_BLACK),null,null,false);
+
+                       Rectangle durationRect(GAP_W_VIDEO_DURATION, GAP_H_VIDEO_DURATION, itemWidth-W_VIDEO_DURATION,
+                                       H_VIDEO_DURATION);
+                       pItem->AddElement(durationRect, IDA_FORMAT_DURATION, *pDuration, FONT_SIZE_DURATION,
+                                       Color::GetColor(COLOR_ID_GREY),null,null,false);
+               }
+               else
+               {
+                       pItem->Construct(Dimension(itemWidth, H_VIDEO_ITEM), LIST_ANNEX_STYLE_NORMAL);
+                       pItem->AddElement(RECT_VIDEO_THUMBNAIL, IDA_FORMAT_THUMBNAIL, *pBitmap);
+
+                       if (pTitle == null)
+                       {
+                               pTitle = new (std::nothrow) String(SINGLE_SPACE);
+                       }
+                       else if (pTitle->IsEmpty() == true)
+                       {
+                               delete pTitle;
+                               pTitle = new (std::nothrow) String(SINGLE_SPACE);
+                       }
+
+                       Rectangle titleRect(GAP_W_VIDEO_TITLE, GAP_H_VIDEO_TITLE, itemWidth-W_VIDEO_TITLE, H_VIDEO_TITLE);
+                       pItem->AddElement(titleRect, IDA_FORMAT_TITLE, *pTitle, FONT_SIZE_TITLE,
+                                       Color::GetColor(COLOR_ID_BLACK), null, null, false);
+
+                       Rectangle durationRect(GAP_W_VIDEO_DURATION, GAP_H_VIDEO_DURATION, itemWidth-W_VIDEO_DURATION,
+                                       H_VIDEO_DURATION);
+                       pItem->AddElement(durationRect, IDA_FORMAT_DURATION, *pDuration, FONT_SIZE_DURATION,
+                                       Color::GetColor(COLOR_ID_GREY), null, null, false);
+               }
+       }
+       else
+       {
+               pItem->Construct(Dimension(itemWidth, H_VIDEO_ITEM), LIST_ANNEX_STYLE_MARK);
+               if (__pContentIconListView->IsItemChecked(index) == true)
+               {
+                       if (pBitmap != null)
+                       {
+                               BufferInfo bufferInfo;
+                               pBitmap->Lock(bufferInfo, INFINITE);
+                               pBitmap->Unlock();
+                               Color dimColor(COLOR_THUMBNAIL_DIM);
+                               dimColor.SetAlpha(ALPHA_THUMBNAIL_DIM);
+
+                               Canvas canvas;
+                               canvas.Construct(bufferInfo);
+                               canvas.FillRectangle(dimColor, canvas.GetBounds());
+
+                               Bitmap* pSelectedBitmap = new (std::nothrow) Bitmap();
+                               pSelectedBitmap->Construct(canvas, canvas.GetBounds());
+                               pItem->AddElement(RECT_VIDEO_THUMBNAIL, IDA_FORMAT_THUMBNAIL, *pBitmap, pSelectedBitmap);
+                               delete pSelectedBitmap;
+                       }
+                       else
+                       {
+                               pItem->AddElement(RECT_VIDEO_THUMBNAIL, IDA_FORMAT_THUMBNAIL, *pBitmap);
+                       }
+               }
+               else
+               {
+                       pItem->AddElement(RECT_VIDEO_THUMBNAIL, IDA_FORMAT_THUMBNAIL, *pBitmap);
+               }
+
+               if (pTitle == null)
+               {
+                       pTitle = new (std::nothrow) String(SINGLE_SPACE);
+               }
+               else if (pTitle->IsEmpty() == true)
+               {
+                       delete pTitle;
+                       pTitle = new (std::nothrow) String(SINGLE_SPACE);
+               }
+
+               Rectangle titleRect(GAP_W_VIDEO_TITLE, GAP_H_VIDEO_TITLE, itemWidth-W_VIDEO_TITLE, H_VIDEO_TITLE);
+               pItem->AddElement(titleRect, IDA_FORMAT_TITLE, *pTitle, FONT_SIZE_TITLE,
+                               Color::GetColor(COLOR_ID_BLACK), null, null, false);
+
+               Rectangle durationRect(GAP_W_VIDEO_DURATION, GAP_H_VIDEO_DURATION, itemWidth - W_VIDEO_DURATION,
+                               H_VIDEO_DURATION);
+               pItem->AddElement(durationRect, IDA_FORMAT_DURATION, *pDuration, FONT_SIZE_DURATION,
+                               Color::GetColor(COLOR_ID_GREY), null, null, false);
+       }
+
+       if (pBitmap != null)
+       {
+               delete pBitmap;
+       }
+       if (pItemText != null)
+       {
+               delete pItemText;
+       }
+       if (pTitle != null)
+       {
+               delete pTitle;
+       }
+       if (pDuration != null)
+       {
+               delete pDuration;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pItem;
+}
+
+bool
+VideoListEditorPanel::DeleteItem(int index, ListItemBase* pItem, int itemWidth)
+{
+       AppLogDebug("ENTER");
+       delete pItem;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return true;
+}
+
+void
+VideoListEditorPanel::OnListViewItemStateChanged(ListView& listView, int index, int elementId,
+               ListItemStatus status)
+{
+       AppLogDebug("ENTER");
+
+       if (status == LIST_ITEM_STATUS_CHECKED || status == LIST_ITEM_STATUS_UNCHECKED)
+       {
+               if (__pPresentationModel->GetAppControlMode() == APPCONTROL_MODE_PICK)
+               {
+                       if (__pPresentationModel->GetAppControlSelectionMode() == APPCONTROL_SELECTION_MODE_MULTIPLE)
+                       {
+                               int checkedCount = GetItemCheckedCount();
+                               String strTmp;
+                               if (checkedCount == 0)
+                               {
+                                       strTmp = ResourceManager::GetString(L"IDS_ST_POP_NO_ITEMS_SELECTED");
+                               }
+                               else if (checkedCount == 1)
+                               {
+                                       strTmp = ResourceManager::GetString(L"IDS_VR_POP_1_ITEM_SELECTED");
+                               }
+                               else
+                               {
+                                       strTmp.Format(LENGTH_COUNT_LABEL,
+                                                       ResourceManager::GetString(L"IDS_VR_POP_PD_ITEMS_SELECTED").GetPointer(), checkedCount);
+                               }
+
+                               __pLabelSelectCnt->SetText(strTmp);
+                               __pLabelSelectCnt->RequestRedraw(true);
+                               __pContentIconListView->RefreshList(index, LIST_REFRESH_TYPE_ITEM_MODIFY);
+                       }
+               }
+               else
+               {
+                       int checkedCount = GetItemCheckedCount();
+                       String strTmp;
+                       if (checkedCount == 0)
+                       {
+                               strTmp = ResourceManager::GetString(L"IDS_ST_POP_NO_ITEMS_SELECTED");
+                       }
+                       else if (checkedCount == 1)
+                       {
+                               strTmp = ResourceManager::GetString(L"IDS_VR_POP_1_ITEM_SELECTED");
+                       }
+                       else
+                       {
+                               strTmp.Format(LENGTH_COUNT_LABEL,
+                                               ResourceManager::GetString(L"IDS_VR_POP_PD_ITEMS_SELECTED").GetPointer(), checkedCount);
+                       }
+
+                       __pLabelSelectCnt->SetText(strTmp);
+                       __pLabelSelectCnt->RequestRedraw(true);
+                       if (__pCheckButton->IsSelected())
+                       {
+                               __pCheckButton->SetSelected(false);
+                       }
+                       __pContentIconListView->RefreshList(index, LIST_REFRESH_TYPE_ITEM_MODIFY);
+               }
+       }
+
+       if (    __pPresentationModel->GetAppControlMode() == APPCONTROL_MODE_PICK
+               && __pPresentationModel->GetAppControlSelectionMode() != APPCONTROL_SELECTION_MODE_MULTIPLE)
+       {
+               if (status == LIST_ITEM_STATUS_SELECTED)
+               {
+                       HashMap* pMap = new (std::nothrow) HashMap(SingleObjectDeleter);
+                       result r = pMap->Construct();
+                       if (r == E_SUCCESS)
+                       {
+                               ArrayList* pArrayList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+                               pArrayList->Construct();
+
+                               if (r == E_SUCCESS)
+                               {
+                                       pArrayList->Add(new (std::nothrow) String(__pPresentationModel->GetContentFilePath(index)));
+                                       pMap->Add(new (std::nothrow) String(APPCONTROL_KEY_DATA_SELECTED), (Object*)pArrayList);
+
+                                       GalleryApp* pApp = dynamic_cast<GalleryApp*>(UiApp::GetInstance());
+                                       if (pApp != null)
+                                       {
+                                               pApp->SendAppControlResult(APP_CTRL_RESULT_SUCCEEDED, pMap);
+                                               pApp->Terminate();
+                                       }
+                                       else
+                                       {
+                                               delete pMap;
+                                       }
+                               }
+                       }
+                       else
+                       {
+                               delete pMap;
+                       }
+               }
+       }
+       SetButtonState();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+VideoListEditorPanel::OnFileInfoChanged(const ContentType contentType)
+{
+       AppLogDebug("ENTER");
+       if (contentType == CONTENT_TYPE_VIDEO)
+       {
+               __pPresentationModel->RefreshCurrentAlbumContentInfoList(CONTENT_TYPE_VIDEO);
+               __itemCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+               __pContentIconListView->UpdateList();
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+VideoListEditorPanel::OnThumbnailDecoded(const int index)
+{
+       AppLogDebug("ENTER : index(%d)", index);
+       if (index >= 0)
+       {
+               __pContentIconListView->RefreshList(index, LIST_REFRESH_TYPE_ITEM_MODIFY);
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+VideoListEditorPanel::OnSceneActivatedN(const SceneId& previousSceneId,
+                                                               const SceneId& currentSceneId, IList* pArgs)
+{
+       AppLogDebug("ENTER");
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       __pFileListEditorForm = dynamic_cast<FileListEditorForm*>(pSceneManager->GetCurrentScene()->GetForm());
+
+       __pPresentationModel = FileListPresentationModel::GetInstance();
+
+       if (__pPresentationModel->GetAppControlMode() == APPCONTROL_MODE_PICK)
+       {
+               if (currentSceneId == IDSCN_VIDEO_LIST_EDITOR)
+               {
+                       if (previousSceneId == IDSCN_ALBUM_LIST)
+                       {
+                               AlbumInfo* pAlbumInfo = static_cast<AlbumInfo*>(pArgs->GetAt(0));
+                               if (pAlbumInfo == null)
+                               {
+                                       AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+                                       return;
+                               }
+
+                               IList* pDirectoryList = pAlbumInfo->GetDirectoryListN();
+                               __pPresentationModel->SetCurrentAlbumInfo(pAlbumInfo->GetAlbumName(), *pDirectoryList);
+
+                               if (pDirectoryList != null)
+                               {
+                                       delete pDirectoryList;
+                               }
+                               delete pArgs;
+
+                               __itemCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+                               __pContentIconListView->UpdateList();
+                       }
+               }
+       }
+       else
+       {
+               __itemCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+               __pContentIconListView->RequestRedraw(true);
+       }
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+VideoListEditorPanel::OnSceneDeactivated(const SceneId& currentSceneId,
+                                                               const SceneId& nextSceneId)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+int
+VideoListEditorPanel::GetItemCheckedCount(void) const
+{
+       AppLogDebug("ENTER");
+       int count = 0;
+       if (__pContentIconListView != null)
+       {
+               int loopCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+               for (int i = 0; i < loopCount; ++i)
+               {
+                       if (__pContentIconListView->IsItemChecked(i))
+                       {
+                               ++count;
+                       }
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return count;
+}
+
+IList*
+VideoListEditorPanel::GetItemCheckedIndexListN(void) const
+{
+       AppLogDebug("ENTER");
+       IList* pList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+       Integer* pIndex = null;
+
+       if (__pContentIconListView != null)
+       {
+               int loopCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+               for (int i = 0; i < loopCount; ++i)
+               {
+                       if (__pContentIconListView->IsItemChecked(i))
+                       {
+                               pIndex = new (std::nothrow) Integer(i);
+                               pList->Add(pIndex);
+                       }
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pList;
+}
+
+void
+VideoListEditorPanel::OnFileOpInvalidate(enum FileActionMode actionId)
+{
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       FileListEditorForm* pFileListEditorForm =
+                               dynamic_cast<FileListEditorForm*>(pSceneManager->GetCurrentScene()->GetForm());
+       TryReturnVoid(pFileListEditorForm != null, "[%s] fail to get SceneManager.",
+                       GetErrorMessage(GetLastResult()));
+       pFileListEditorForm->Invalidate(true);
+}
+
+void
+VideoListEditorPanel::OnRequestAppExitWithMultipleSelectionAppControlResult(void)
+{
+       AppLogDebug("ENTER");
+       IList* pIndexList = GetItemCheckedIndexListN();
+
+       if (pIndexList->GetCount() <= 0)
+       {
+               delete pIndexList;
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+               return;
+       }
+
+       HashMap* pMap = new (std::nothrow) HashMap(SingleObjectDeleter);
+       result r = pMap->Construct();
+
+       if (r == E_SUCCESS)
+       {
+               ArrayList* pArrayList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+               r = pArrayList->Construct();
+
+               if (r == E_SUCCESS)
+               {
+                       Integer* pTemp = null;
+                       int loopCount = pIndexList->GetCount();
+
+                       for (int i = 0; i < loopCount; ++i)
+                       {
+                               pTemp = static_cast<Integer*>(pIndexList->GetAt(i));
+                               pArrayList->Add(new (std::nothrow) String(__pPresentationModel->GetContentFilePath(pTemp->ToInt())));
+                       }
+
+                       pMap->Add(new (std::nothrow) String(APPCONTROL_KEY_DATA_SELECTED), (Object*)pArrayList);
+
+                       GalleryApp* pApp = dynamic_cast<GalleryApp*>(UiApp::GetInstance());
+                       if (pApp != null)
+                       {
+                               pApp->SendAppControlResult(APP_CTRL_RESULT_SUCCEEDED, pMap);
+                               pApp->Terminate();
+                       }
+                       else
+                       {
+                               delete pMap;
+                       }
+               }
+               else
+               {
+                       delete pMap;
+                       delete pArrayList;
+               }
+       }
+       else
+       {
+               delete pMap;
+       }
+
+       delete pIndexList;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+VideoListEditorPanel::OnSelectAllPressed(void)
+{
+       bool needToSelectAll = true;
+       int checkedCount = GetItemCheckedCount();
+       int totalFileCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+       if (checkedCount == totalFileCount)
+       {
+               needToSelectAll = false;
+       }
+
+       if (needToSelectAll == true)
+       {
+               for (int i = 0; i < totalFileCount; ++i)
+               {
+                       if (__pContentIconListView->IsItemChecked(i) == false)
+                       {
+                               __pContentIconListView->SetItemChecked(i, true);
+                               __pContentIconListView->RefreshList(i, LIST_REFRESH_TYPE_ITEM_MODIFY);
+                       }
+                       __pFileListEditorForm->SetFooterButtonsState(true);
+               }
+       }
+       else
+       {
+               for (int i = 0; i < totalFileCount; ++i)
+               {
+                       if (__pContentIconListView->IsItemChecked(i) == true)
+                       {
+                               __pContentIconListView->SetItemChecked(i, false);
+                               __pContentIconListView->RefreshList(i, LIST_REFRESH_TYPE_ITEM_MODIFY);
+                       }
+                       __pFileListEditorForm->SetFooterButtonsState(false);
+               }
+       }
+
+       String tempString;
+       if (needToSelectAll == true)
+       {
+               tempString.Format(LENGTH_COUNT_LABEL,
+                                               ResourceManager::GetString(L"IDS_VR_POP_PD_ITEMS_SELECTED").GetPointer(), totalFileCount);
+       }
+       else
+       {
+               tempString = ResourceManager::GetString(L"IDS_ST_POP_NO_ITEMS_SELECTED");
+       }
+
+       __pLabelSelectCnt->SetText(tempString);
+       __pLabelSelectCnt->RequestRedraw(true);
+}
+
+void
+VideoListEditorPanel::SetButtonState(void)
+{
+       AppLogDebug("ENTER");
+       
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       TryReturnVoid(pSceneManager != null, "[%s] fail to get SceneManager.", GetErrorMessage(GetLastResult()));
+
+       if (GetItemCheckedCount() > 0)
+       {
+               __pFileListEditorForm->SetFooterButtonsState(true);
+       }
+       else
+       {
+               __pFileListEditorForm->SetFooterButtonsState(false);
+       }
+       
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+VideoListEditorPanel::ChangeOrientation(void)
+{
+       AppLogDebug("ENTER");
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       const Form* pForm = dynamic_cast<Form*>(pSceneManager->GetCurrentScene()->GetForm());
+       TryReturn(pForm != null,, "[%s] fail to get the form.", GetErrorMessage(GetLastResult()));
+
+       Rectangle clientAreaBounds = pForm->GetClientAreaBounds();
+       SetBounds(0, 0, clientAreaBounds.width, clientAreaBounds.height);
+       __pContentIconListView->SetBounds(0, 0, clientAreaBounds.width, clientAreaBounds.height);
+}
diff --git a/src/GlVideoListPanel.cpp b/src/GlVideoListPanel.cpp
new file mode 100644 (file)
index 0000000..cb29cab
--- /dev/null
@@ -0,0 +1,271 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.1 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlVideoListPanel.cpp
+ * @brief              This is the implementation file for VideoListPanel class.
+ */
+
+#include <FContent.h>
+#include <FMedia.h>
+#include "GlAlbumInfo.h"
+#include "GlCommonUtil.h"
+#include "GlFileListForm.h"
+#include "GlFileListPresentationModel.h"
+#include "GlTypes.h"
+#include "GlVideoListPanel.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Content;
+using namespace Tizen::Graphics;
+using namespace Tizen::Media;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+static const int H_VIDEO_ITEM = 160;
+static const int GAP_W_VIDEO_TITLE = 16+172+16;
+static const int GAP_H_VIDEO_TITLE = 22;
+static const int W_VIDEO_TITLE = (16+172+16)+(16+64+16);
+static const int H_VIDEO_TITLE = 64;
+static const int FONT_SIZE_TITLE = 36;
+static const int GAP_W_VIDEO_DURATION = 16+172+16;
+static const int GAP_H_VIDEO_DURATION = 22+64;
+static const int W_VIDEO_DURATION = (16+172+16)+(16+64+16);
+static const int H_VIDEO_DURATION = 48;
+static const int FONT_SIZE_DURATION = 32;
+static const int W_CLIENT_REGION = 720;
+static const Rectangle RECT_INITIAL (0, 0, 10, 10);
+static const Rectangle RECT_VIDEO_THUMBNAIL (16, 16, 172, 128);
+
+VideoListPanel::VideoListPanel(void)
+       : __itemCount(0)
+       , __pContentListView(null)
+       , __pPresentationModel(0)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+VideoListPanel::~VideoListPanel(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+result
+VideoListPanel::Initialize(void)
+{
+       AppLogDebug("ENTER");
+       result r = Construct(RECT_INITIAL);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+result
+VideoListPanel::OnInitializing(void)
+{
+       AppLogDebug("ENTER");
+       const Form* pForm = dynamic_cast<Form*>(GetParent());
+       TryReturn(pForm != null, E_FAILURE, "[%s] fail to get the form.", GetErrorMessage(GetLastResult()));
+
+       __pPresentationModel = FileListPresentationModel::GetInstance();
+       __pPresentationModel->ClearThumbnailRequests();
+       __pPresentationModel->AddPresentationModelListener(this);
+
+       Rectangle clientAreaBounds = pForm->GetClientAreaBounds();
+       clientAreaBounds.x = clientAreaBounds.y = 0;
+       SetBounds(clientAreaBounds);
+       __pContentListView = new (std::nothrow) ListView();
+       __pContentListView->Construct(Rectangle(0, 0, W_CLIENT_REGION, clientAreaBounds.height), true, false);
+       Bitmap* pBitmapEmpty = ResourceManager::GetBitmapN(IDB_LISTVIEW_EMPTY);
+       if (pBitmapEmpty != null)
+       {
+               __pContentListView->SetBitmapOfEmptyList(pBitmapEmpty);
+               delete pBitmapEmpty;
+       }
+       __pContentListView->SetTextOfEmptyList(ResourceManager::GetString(L"IDS_COM_BODY_NO_ITEMS"));
+       __pContentListView->SetItemProvider(*this);
+       __pContentListView->AddListViewItemEventListener(*this);
+       AddControl(__pContentListView);
+       __pContentListView->SetShowState(true);
+       __itemCount = 0;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+result
+VideoListPanel::OnTerminating(void)
+{
+       AppLogDebug("ENTER");
+       __pPresentationModel->RemovePresentationModelListener(*this);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+int
+VideoListPanel::GetItemCount(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return __itemCount;
+}
+
+ListItemBase*
+VideoListPanel::CreateItem(int index, int itemWidth)
+{
+       AppLogDebug("ENTER : index(%d)", index);
+       CustomItem* pItem = new (std::nothrow) CustomItem();
+       pItem->Construct(Dimension(itemWidth, H_VIDEO_ITEM), LIST_ANNEX_STYLE_NORMAL);
+
+       Bitmap* pBitmap = null;
+       String* pItemText = null;
+       String* pTitle = null;
+       String* pDuration = null;
+
+       result r = __pPresentationModel->GetThumbnailVideoInSyncCacheN(index, pItemText, pBitmap, pDuration);
+       if (pBitmap == null || r == E_FAILURE)
+       {
+               __pPresentationModel->RequestThumbnail(index);
+               pBitmap = CommonUtil::GetEmptyThumbnailN();
+       }
+
+       pItem->AddElement(RECT_VIDEO_THUMBNAIL, IDA_FORMAT_THUMBNAIL, *pBitmap);
+       pTitle = new (std::nothrow) String(SINGLE_SPACE);
+       Rectangle titleRect(GAP_W_VIDEO_TITLE, GAP_H_VIDEO_TITLE, itemWidth-W_VIDEO_TITLE, H_VIDEO_TITLE);
+       pItem->AddElement(titleRect, IDA_FORMAT_TITLE, *pTitle, FONT_SIZE_TITLE,
+                       Color::GetColor(COLOR_ID_BLACK), null, null, false);
+
+       Rectangle durationRect(GAP_W_VIDEO_DURATION, GAP_H_VIDEO_DURATION, itemWidth-W_VIDEO_DURATION,
+                       H_VIDEO_DURATION);
+       pItem->AddElement(durationRect, IDA_FORMAT_DURATION, *pDuration, FONT_SIZE_DURATION,
+                       Color::GetColor(COLOR_ID_GREY), null, null, false);
+
+       if (pBitmap != null)
+       {
+               delete pBitmap;
+       }
+       if (pItemText != null)
+       {
+               delete pItemText;
+       }
+       if (pTitle != null)
+       {
+               delete pTitle;
+       }
+       if (pDuration != null)
+       {
+               delete pDuration;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pItem;
+}
+
+bool
+VideoListPanel::DeleteItem(int index, ListItemBase* pItem, int itemWidth)
+{
+       AppLogDebug("ENTER");
+       delete pItem;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return true;
+}
+
+void
+VideoListPanel::OnListViewItemStateChanged(ListView& listView, int index, int elementId, ListItemStatus status)
+{
+       AppLogDebug("ENTER");
+       if (status == LIST_ITEM_STATUS_SELECTED)
+       {
+               IList* pList = new (std::nothrow) ArrayList();
+               int loopCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+
+               for (int i = 0; i < loopCount; ++i)
+               {
+                       pList->Add(new (std::nothrow) String(__pPresentationModel->GetContentFilePath(i)));
+               }
+               String listIndex;
+               listIndex.Format(10, L"%d", index);
+
+               const String mimeType = APPCONTROL_MIME_IMAGE_ALL;
+               HashMap* pDataList = new (std::nothrow) HashMap(SingleObjectDeleter);
+               pDataList->Construct();
+               pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_TYPE), new (std::nothrow) String(APPCONTROL_DATA_IMAGE));
+               pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_PATH), (Object*)pList);
+               pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_INDEX), new (std::nothrow) String(listIndex));
+
+               __pPresentationModel->StartAppControl(APPCONTROL_PROVIDER_ID_IMAGE, APPCONTROL_OPERATION_ID_VIEW, null,
+                               &mimeType, pDataList, null);
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+VideoListPanel::OnFileInfoChanged(const ContentType contentType)
+{
+       AppLogDebug("ENTER");
+       if (contentType == CONTENT_TYPE_VIDEO)
+       {
+               __itemCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+               __pContentListView->UpdateList();
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+VideoListPanel::OnThumbnailDecoded(const int index)
+{
+       AppLogDebug("ENTER : index(%d)", index);
+       if (index >= 0)
+       {
+               __pContentListView->RefreshList(index, LIST_REFRESH_TYPE_ITEM_MODIFY);
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+VideoListPanel::OnSceneActivatedN(const SceneId& previousSceneId,
+                                                               const SceneId& currentSceneId, IList* pArgs)
+{
+       AppLogDebug("ENTER");
+       __pPresentationModel = FileListPresentationModel::GetInstance();
+
+       if (currentSceneId == IDSCN_VIDEO_LIST)
+       {
+               __pPresentationModel->RefreshCurrentAlbumContentInfoList(CONTENT_TYPE_VIDEO);
+               __itemCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+               __pContentListView->UpdateList();
+       }
+
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       AppAssert(pSceneManager);
+       if (pSceneManager->GetCurrentSceneId() == IDSCN_VIDEO_LIST)
+       {
+               FileListForm* pFileListForm = dynamic_cast<FileListForm*>(pSceneManager->GetCurrentScene()->GetForm());
+               if (pFileListForm != null)
+               {
+                       pFileListForm->SetTitleText(__pPresentationModel->GetCurrentAlbumName());
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}