Tizen 2.1 base
authorJinkun Jang <jinkun.jang@samsung.com>
Tue, 12 Mar 2013 16:38:53 +0000 (01:38 +0900)
committerJinkun Jang <jinkun.jang@samsung.com>
Tue, 12 Mar 2013 16:38:53 +0000 (01:38 +0900)
150 files changed:
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/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/GlBasePanel.h [new file with mode: 0644]
inc/GlCommonUtil.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/GlFormFactory.h [new file with mode: 0644]
inc/GlGalleryApp.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/GlResourceManager.h [new file with mode: 0644]
inc/GlSettingIntervalForm.h [new file with mode: 0644]
inc/GlSettingMainForm.h [new file with mode: 0644]
inc/GlSettingPresentationModel.h [new file with mode: 0644]
inc/GlSettingTransitionForm.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/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/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/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_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-size-normal/IDL_FORM.xml [new file with mode: 0644]
res/slk-SK.xml [new file with mode: 0644]
res/slv-SI.xml [new file with mode: 0644]
res/spa-ES.xml [new file with mode: 0644]
res/spa-MX.xml [new file with mode: 0644]
res/srp-RS.xml [new file with mode: 0644]
res/swe-SE.xml [new file with mode: 0644]
res/tur-TR.xml [new file with mode: 0644]
res/ukr-UA.xml [new file with mode: 0644]
res/uzb-UZ.xml [new file with mode: 0644]
res/zho-CN.xml [new file with mode: 0644]
res/zho-HK.xml [new file with mode: 0644]
res/zho-SG.xml [new file with mode: 0644]
res/zho-TW.xml [new file with mode: 0644]
shared/data/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/GlCommonUtil.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/GlFormFactory.cpp [new file with mode: 0644]
src/GlGalleryApp.cpp [new file with mode: 0644]
src/GlGalleryEntry.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/GlResourceManager.cpp [new file with mode: 0644]
src/GlSettingIntervalForm.cpp [new file with mode: 0644]
src/GlSettingMainForm.cpp [new file with mode: 0644]
src/GlSettingPresentationModel.cpp [new file with mode: 0644]
src/GlSettingTransitionForm.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: 0644]
src/GlThumbnailJob.cpp [new file with mode: 0644]
src/GlThumbnailProvider.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/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..9c95663
--- /dev/null
@@ -0,0 +1,206 @@
+Flora License
+
+Version 1.0, May, 2012
+
+http://floralicense.org/license/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+"License" shall mean the terms and conditions for use, reproduction,
+and distribution as defined by Sections 1 through 9 of this document.
+
+"Licensor" shall mean the copyright owner or entity authorized by
+the copyright owner that is granting the License.
+
+"Legal Entity" shall mean the union of the acting entity and
+all other entities that control, are controlled by, or are
+under common control with that entity. For the purposes of
+this definition, "control" means (i) the power, direct or indirect,
+to cause the direction or management of such entity,
+whether by contract or otherwise, or (ii) ownership of fifty percent (50%)
+or more of the outstanding shares, or (iii) beneficial ownership of
+such entity.
+
+"You" (or "Your") shall mean an individual or Legal Entity
+exercising permissions granted by this License.
+
+"Source" form shall mean the preferred form for making modifications,
+including but not limited to software source code, documentation source,
+and configuration files.
+
+"Object" form shall mean any form resulting from mechanical
+transformation or translation of a Source form, including but
+not limited to compiled object code, generated documentation,
+and conversions to other media types.
+
+"Work" shall mean the work of authorship, whether in Source or Object form,
+made available under the License, as indicated by a copyright notice
+that is included in or attached to the work (an example is provided
+in the Appendix below).
+
+"Derivative Works" shall mean any work, whether in Source or Object form,
+that is based on (or derived from) the Work and for which the editorial
+revisions, annotations, elaborations, or other modifications represent,
+as a whole, an original work of authorship. For the purposes of this License,
+Derivative Works shall not include works that remain separable from,
+or merely link (or bind by name) to the interfaces of, the Work and
+Derivative Works thereof.
+
+"Contribution" shall mean any work of authorship, including the original
+version of the Work and any modifications or additions to that Work or
+Derivative Works thereof, that is intentionally submitted to Licensor
+for inclusion in the Work by the copyright owner or by an individual or
+Legal Entity authorized to submit on behalf of the copyright owner.
+For the purposes of this definition, "submitted" means any form of
+electronic, verbal, or written communication sent to the Licensor or
+its representatives, including but not limited to communication on
+electronic mailing lists, source code control systems, and issue
+tracking systems that are managed by, or on behalf of, the Licensor
+for the purpose of discussing and improving the Work, but excluding
+communication that is conspicuously marked or otherwise designated
+in writing by the copyright owner as "Not a Contribution."
+
+"Contributor" shall mean Licensor and any individual or Legal Entity
+on behalf of whom a Contribution has been received by Licensor and
+subsequently incorporated within the Work.
+
+"Tizen Certified Platform" shall mean a software platform that complies
+with the standards set forth in the Compatibility Definition Document
+and passes the Compatibility Test Suite as defined from time to time
+by the Tizen Technical Steering Group and certified by the Tizen
+Association or its designated agent.
+
+2. Grant of Copyright License.  Subject to the terms and conditions of
+this License, each Contributor hereby grants to You a perpetual,
+worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+copyright license to reproduce, prepare Derivative Works of,
+publicly display, publicly perform, sublicense, and distribute the
+Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License.  Subject to the terms and conditions of
+this License, each Contributor hereby grants to You a perpetual,
+worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+(except as stated in this section) patent license to make, have made,
+use, offer to sell, sell, import, and otherwise transfer the Work
+solely as incorporated into a Tizen Certified Platform, where such
+license applies only to those patent claims licensable by such
+Contributor that are necessarily infringed by their Contribution(s)
+alone or by combination of their Contribution(s) with the Work solely
+as incorporated into a Tizen Certified Platform to which such
+Contribution(s) was submitted. If You institute patent litigation
+against any entity (including a cross-claim or counterclaim
+in a lawsuit) alleging that the Work or a Contribution incorporated
+within the Work constitutes direct or contributory patent infringement,
+then any patent licenses granted to You under this License for that
+Work shall terminate as of the date such litigation is filed.
+
+4. Redistribution.  You may reproduce and distribute copies of the
+Work or Derivative Works thereof pursuant to the copyright license
+above, in any medium, with or without modifications, and in Source or
+Object form, provided that You meet the following conditions:
+
+  1. You must give any other recipients of the Work or Derivative Works
+     a copy of this License; and
+  2. You must cause any modified files to carry prominent notices stating
+     that You changed the files; and
+  3. You must retain, in the Source form of any Derivative Works that
+     You distribute, all copyright, patent, trademark, and attribution
+     notices from the Source form of the Work, excluding those notices
+     that do not pertain to any part of the Derivative Works; and
+  4. If the Work includes a "NOTICE" text file as part of its distribution,
+     then any Derivative Works that You distribute must include a readable
+     copy of the attribution notices contained within such NOTICE file,
+     excluding those notices that do not pertain to any part of
+     the Derivative Works, in at least one of the following places:
+     within a NOTICE text file distributed as part of the Derivative Works;
+     within the Source form or documentation, if provided along with the
+     Derivative Works; or, within a display generated by the Derivative Works,
+     if and wherever such third-party notices normally appear.
+     The contents of the NOTICE file are for informational purposes only
+     and do not modify the License.
+
+You may add Your own attribution notices within Derivative Works
+that You distribute, alongside or as an addendum to the NOTICE text
+from the Work, provided that such additional attribution notices
+cannot be construed as modifying the License. You may add Your own
+copyright statement to Your modifications and may provide additional or
+different license terms and conditions for use, reproduction, or
+distribution of Your modifications, or for any such Derivative Works
+as a whole, provided Your use, reproduction, and distribution of
+the Work otherwise complies with the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise,
+any Contribution intentionally submitted for inclusion in the Work
+by You to the Licensor shall be under the terms and conditions of
+this License, without any additional terms or conditions.
+Notwithstanding the above, nothing herein shall supersede or modify
+the terms of any separate license agreement you may have executed
+with Licensor regarding such Contributions.
+
+6. Trademarks.  This License does not grant permission to use the trade
+names, trademarks, service marks, or product names of the Licensor,
+except as required for reasonable and customary use in describing the
+origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or
+agreed to in writing, Licensor provides the Work (and each
+Contributor provides its Contributions) on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+implied, including, without limitation, any warranties or conditions
+of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+PARTICULAR PURPOSE. You are solely responsible for determining the
+appropriateness of using or redistributing the Work and assume any
+risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory,
+whether in tort (including negligence), contract, or otherwise,
+unless required by applicable law (such as deliberate and grossly
+negligent acts) or agreed to in writing, shall any Contributor be
+liable to You for damages, including any direct, indirect, special,
+incidental, or consequential damages of any character arising as a
+result of this License or out of the use or inability to use the
+Work (including but not limited to damages for loss of goodwill,
+work stoppage, computer failure or malfunction, or any and all
+other commercial damages or losses), even if such Contributor
+has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing
+the Work or Derivative Works thereof, You may choose to offer,
+and charge a fee for, acceptance of support, warranty, indemnity,
+or other liability obligations and/or rights consistent with this
+License. However, in accepting such obligations, You may act only
+on Your own behalf and on Your sole responsibility, not on behalf
+of any other Contributor, and only if You agree to indemnify,
+defend, and hold each Contributor harmless for any liability
+incurred by, or claims asserted against, such Contributor by reason
+of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Flora License to your work
+
+To apply the Flora License to your work, attach the following
+boilerplate notice, with the fields enclosed by brackets "[]"
+replaced with your own identifying information. (Don't include
+the brackets!) The text should be enclosed in the appropriate
+comment syntax for the file format. We also recommend that a
+file or class name and description of purpose be included on the
+same "printed page" as the copyright notice for easier
+identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Flora License, Version 1.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://floralicense.org/license/
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
diff --git a/NOTICE b/NOTICE
new file mode 100644 (file)
index 0000000..9ec42be
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1,3 @@
+Copyright (c) 2012 Samsung Electronics Co., Ltd. All rights reserved.
+Except as noted, this software is licensed under Flora License, Version 1.
+Please, see the LICENSE.Flora file for Flora License, Version 1 terms and conditions.
\ No newline at end of file
diff --git a/inc/GlAlbumEventListener.h b/inc/GlAlbumEventListener.h
new file mode 100644 (file)
index 0000000..7b16a45
--- /dev/null
@@ -0,0 +1,37 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlAlbumEventListener.h
+ * @brief              This is the header file for AlbumEventListener class.
+ */
+
+#ifndef _GL_ALBUM_EVENT_LISTENER_H_
+#define _GL_ALBUM_EVENT_LISTENER_H_
+
+#include <FBase.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..e4d1728
--- /dev/null
@@ -0,0 +1,80 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlAlbumInfo.h
+ * @brief              This is the header file for AlbumInfo class.
+ */
+
+#ifndef _GL_ALBUM_INFO_H_
+#define _GL_ALBUM_INFO_H_
+
+#include <FBase.h>
+#include <FContent.h>
+#include <FGraphics.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);
+
+       Tizen::Graphics::Bitmap* GetFolderThumnailBitmap(int index);
+       void AppendFolderThumnailBitmap(Tizen::Graphics::Bitmap* folderThumnailBitmap, int index);
+       int GetFolderThumnailBitmapCount(void) const;
+
+       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(int index);
+       int GetEmptyBitmapIndex(void);
+
+       Tizen::Base::String GetCreateDateString(void) const;
+       void SetCreateDateString(Tizen::Base::String& strMinimumDate, Tizen::Base::String& strMaximumDate);
+
+protected :
+       Tizen::Base::String __albumName;
+       Tizen::Base::Collection::IList* __pDirectoryFullPathList;
+       Tizen::Base::Collection::IList* __pContentIdList;
+       Tizen::Base::String __createFileDateString;
+       int __folderThumnailBitmapCount;
+       Tizen::Graphics::Bitmap* __pFolderThumnailBitmap[7];
+};
+
+#endif /* _GL_ALBUM_INFO_H_ */
diff --git a/inc/GlAlbumListEditorForm.h b/inc/GlAlbumListEditorForm.h
new file mode 100644 (file)
index 0000000..2a2b710
--- /dev/null
@@ -0,0 +1,107 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               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 <FApp.h>
+#include <FBase.h>
+#include <FContent.h>
+#include <FGraphics.h>
+#include <FIo.h>
+#include <FMedia.h>
+#include <FSystem.h>
+#include <FUi.h>
+#include "GlAlbumEventListener.h"
+#include "GlBaseForm.h"
+
+class AlbumListPresentationModel;
+class AlbumListEditorForm
+       : public BaseForm
+       , public Tizen::Ui::IActionEventListener
+       , public Tizen::Ui::Controls::IFormBackEventListener
+       , public Tizen::Ui::Controls::IIconListViewItemEventListener
+       , public Tizen::Ui::Controls::IIconListViewItemProvider
+       , public Tizen::Ui::Scenes::ISceneEventListener
+       , public IAlbumEventListener
+{
+public:
+       AlbumListEditorForm();
+       virtual ~AlbumListEditorForm();
+
+       result Initialize(void);
+
+       virtual result OnInitializing(void);
+       virtual result OnTerminating(void);
+       virtual void OnUpdateContentList(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 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 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:
+       result InitializeHeader(void);
+       result InitializeFooter(void);
+       result InitializeControl(void);
+       result InitializePopup(void);
+       result SetRenameButtonImage(void);
+       void CreateIconListView(void);
+       void SetAllCheckState(bool state);
+
+       void OnRequestEmailAction(void);
+       result DeleteFolder(void);
+       int GetCheckedFolder(void);
+       result Update(void);
+       void SetFooterButtonsState(bool enableState);
+       void SetButtonState(void);
+
+private:
+       int __checkedCount;
+       Tizen::Ui::Controls::CheckButton* __pAllCheckButton;
+       Tizen::Ui::Controls::Label* __pSelectCountLabel;
+
+       Tizen::Ui::Controls::IconListView* __pEditorFolderIconList;
+       Tizen::Ui::Controls::ContextMenu* __pShareContextMenu;
+       Tizen::Ui::Controls::Popup* __pDeletePopup;
+
+       Tizen::Graphics::Bitmap* __pEditFolderBitmap;
+       AlbumListPresentationModel* __pPresentationModel;
+};
+
+#endif /* _GL_ALBUM_LIST_EDITOR_FORM_H_ */
diff --git a/inc/GlAlbumListForm.h b/inc/GlAlbumListForm.h
new file mode 100644 (file)
index 0000000..134d19f
--- /dev/null
@@ -0,0 +1,91 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               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 <FBase.h>
+#include <FGraphics.h>
+#include <FIo.h>
+#include <FMedia.h>
+#include <FSystem.h>
+#include <FUi.h>
+#include "GlAlbumEventListener.h"
+#include "GlBaseForm.h"
+
+class AlbumListPresentationModel;
+class AlbumListForm
+       : public BaseForm
+       , public Tizen::Base::Runtime::ITimerEventListener
+       , public Tizen::Ui::IActionEventListener
+       , public Tizen::Ui::Controls::IFormBackEventListener
+       , public Tizen::Ui::Controls::IIconListViewItemEventListener
+       , public Tizen::Ui::Controls::IIconListViewItemProvider
+       , public Tizen::Ui::Scenes::ISceneEventListener
+       , public IAlbumEventListener
+{
+public:
+       AlbumListForm(void);
+       virtual ~AlbumListForm(void);
+
+       result Initialize(void);
+
+       virtual result OnInitializing(void);
+       virtual result OnTerminating(void);
+       virtual void OnUpdateContentList(void);
+
+       virtual void OnTimerExpired(Tizen::Base::Runtime::Timer &timer);
+
+       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 OnFileInfoChanged(const Tizen::Content::ContentType contentType);
+       virtual void OnThumbnailDecoded(const int index);
+
+private:
+       result InitializeHeader(void);
+       result InitializeFooter(void);
+       void CreateIconListView(void);
+       result Update(void);
+
+private:
+       Tizen::Ui::Controls::IconListView* __pAlbumViewIconList;
+       Tizen::Ui::Controls::ContextMenu* __pContextMenuMore;
+       int __itemCount;
+       Tizen::Base::Runtime::Timer* __pTimer;
+       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..2d00eee
--- /dev/null
@@ -0,0 +1,108 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               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 <FBase.h>
+#include <FContent.h>
+#include <FGraphics.h>
+#include <FIo.h>
+#include <FUi.h>
+#include "GlAlbumEventListener.h"
+#include "GlResourceManager.h"
+#include "GlThumbnailEventListener.h"
+#include "GlThumbnailProvider.h"
+#include "GlTypes.h"
+
+class AlbumInfo;
+
+class AlbumListPresentationModel
+       : public Tizen::Base::Object
+       , public IThumbnailEventListener
+{
+public:
+       static AlbumListPresentationModel* GetInstance(void);
+
+public:
+       result AddPresentationModelListener(IAlbumEventListener* listener);
+       result RemovePresentationModelListener(IAlbumEventListener& listner);
+
+       void RequestThumbnail(const int folderIndex, int pathIndex);
+       void CancelThumbnailRequest(const int folderIndex);
+       void ClearThumbnailRequests(bool appTerminating = false);
+       result StartAppControl( const Tizen::Base::String&  providerId, const Tizen::Base::String&  operationId,
+                       const Tizen::Base::Collection::IMap* pDataList, Tizen::App::IAppControlResponseListener* pListener);
+
+       void InitializeAlbumInfoList(const Tizen::Content::ContentType& contentType);
+       result DeleteContentInfoInDirectory(int index, Tizen::Content::ContentType contentType);
+       void CallAlbumChangedEvent(void);
+       int GetFolderCount(void);
+
+       Tizen::Graphics::Bitmap* CreateMergeBitmapN(int index);
+       Tizen::Base::Collection::IList* GetAlbumInfoList(void);
+
+       AppControlMode GetAppControlMode(void) const;
+       AppControlMediaType GetAppControlMediaType(void) const;
+       AppControlSelectionMode GetAppControlSelectionMode(void) const;
+
+       virtual void OnThumbnailReceivedN(Tizen::Base::Runtime::IEventArg& eventArg);
+
+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, int partialIndex,
+                       const Tizen::Graphics::Rectangle& rectNew);
+       void DrawFontImage(Tizen::Graphics::Canvas& canvas, AlbumInfo* pAlbumInfo, int index);
+
+       bool GetMinMaxDateTimeString(Tizen::Base::Collection::IList* pContentIdList, Tizen::Base::String& MinimumTime,
+                       Tizen::Base::String& MaximumTime);
+
+       Tizen::Base::String GetDirectoryName(Tizen::Base::String& directoryPath);
+       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;
+
+       Tizen::Graphics::Bitmap* __pFolderBackgroundBitmap;
+       static ThumbnailEvent* __pThumbnailEvent;
+
+       static Tizen::Base::Collection::ArrayList* __pPresentationModelListener;
+
+       static Tizen::Base::Collection::IList* __pAlbumInfoList;
+
+       AppControlMode __appControlMode;
+       AppControlMediaType __appControlMediaType;
+       AppControlSelectionMode __appControlSelectionMode;
+};
+
+#endif /* _GL_ALBUM_LIST_PRESENTATION_MODEL_H_ */
diff --git a/inc/GlAlbumNameEditorForm.h b/inc/GlAlbumNameEditorForm.h
new file mode 100644 (file)
index 0000000..0754f12
--- /dev/null
@@ -0,0 +1,76 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               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 <FBase.h>
+#include <FIo.h>
+#include <FMedia.h>
+#include <FSystem.h>
+#include <FUi.h>
+#include "GlTypes.h"
+
+class AlbumListPresentationModel;
+class AlbumNameEditorForm
+       : public Tizen::Ui::Controls::Form
+       , public Tizen::Ui::IActionEventListener
+       , public Tizen::Ui::IOrientationEventListener
+       , public Tizen::Ui::ITextEventListener
+       , public Tizen::Ui::Controls::IFormBackEventListener
+       , public Tizen::Ui::Scenes::ISceneEventListener
+{
+public:
+       AlbumNameEditorForm();
+       virtual ~AlbumNameEditorForm();
+
+       result Initialize(void);
+
+       virtual result OnInitializing(void);
+       virtual result OnTerminating(void);
+
+       virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+       virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source);
+       virtual void OnOrientationChanged(const Tizen::Ui::Control &source,
+                       Tizen::Ui::OrientationStatus orientationStatus);
+
+       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 OnTextValueChanged(const Tizen::Ui::Control& source);
+       virtual void OnTextValueChangeCanceled(const Tizen::Ui::Control& source);
+
+private:
+       Tizen::Ui::Controls::EditField* __pNameEditField;
+       Tizen::Base::String __nameEditFieldText;
+       Tizen::Base::String __nameEditFieldPreText;
+       Tizen::Base::String __nameEditFieldTempText;
+       int __folderIndex;
+       AlbumNameEditorMode __albumNameEditorMode;
+       Tizen::Ui::Scenes::SceneId __callerSceneId;
+       Tizen::Ui::Scenes::SceneId __previousSceneId;
+       Tizen::Ui::Controls::MessageBox* __pMessageBox;
+       AlbumListPresentationModel* __pPresentationModel;
+};
+
+#endif /* _GL_ALBUM_NAME_EDITOR_FORM_H_ */
diff --git a/inc/GlAllListEditorPanel.h b/inc/GlAllListEditorPanel.h
new file mode 100644 (file)
index 0000000..ba17fc2
--- /dev/null
@@ -0,0 +1,88 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               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 <FApp.h>
+#include <FUi.h>
+#include "GlAlbumEventListener.h"
+#include "GlThumbnailEventListener.h"
+#include "GlBasePanel.h"
+
+class FileListPresentationModel;
+
+class AllListEditorPanel
+       : public BasePanel
+       , public Tizen::Ui::IActionEventListener
+       , public Tizen::Ui::Controls::IIconListViewItemEventListener
+       , public Tizen::Ui::Controls::IIconListViewItemProvider
+       , public Tizen::Ui::Scenes::ISceneEventListener
+       , public IAlbumEventListener
+{
+public:
+       AllListEditorPanel(void);
+       virtual ~AllListEditorPanel(void);
+
+       result Initialize(void);
+
+       virtual result OnInitializing(void);
+       virtual result OnTerminating(void);
+       virtual void OnUpdateContentList(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);
+
+       result OnRequestDeleteAction(void);
+       result OnRequestEmailAction(void);
+       result OnRequestMoveToAction(Tizen::Base::String& destDirectory);
+       result OnRequestSlideShowAction(void);
+       int GetItemCheckedCount(void) const;
+
+private:
+       Tizen::Base::Collection::IList* GetItemCheckedIndexListN(void) const;
+       void ResetSelection(void);
+       void SetButtonState(void);
+
+private:
+       Tizen::Ui::Controls::IconListView* __pContentIconListView;
+       Tizen::Ui::Controls::CheckButton* __pCheckButton;
+       Tizen::Ui::Controls::Label* __pLabelSelectCnt;
+       Tizen::Ui::Controls::Button* __pButtonSelectRegion;
+       int __itemCount;
+       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..83d1606
--- /dev/null
@@ -0,0 +1,72 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlAllListPanel.h
+ * @brief              This is the header file for AllListPanel class.
+ */
+
+#ifndef _GL_ALL_LIST_PANEL_H_
+#define _GL_ALL_LIST_PANEL_H_
+
+#include <FApp.h>
+#include <FUi.h>
+#include "GlAlbumEventListener.h"
+#include "GlBasePanel.h"
+#include "GlThumbnailEventListener.h"
+
+class FileListPresentationModel;
+
+class AllListPanel
+       : public BasePanel
+       , public Tizen::Ui::Controls::IIconListViewItemEventListener
+       , public Tizen::Ui::Controls::IIconListViewItemProvider
+       , public Tizen::Ui::Scenes::ISceneEventListener
+       , public IAlbumEventListener
+{
+public:
+       AllListPanel();
+       virtual ~AllListPanel();
+       result Initialize(void);
+
+       virtual result OnInitializing(void);
+       virtual result OnTerminating(void);
+       virtual void OnUpdateContentList(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 Refresh(void);
+
+private:
+       Tizen::Ui::Controls::IconListView* __pContentIconListView;
+       int __itemCount;
+       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..eebedfc
--- /dev/null
@@ -0,0 +1,86 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               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 <FApp.h>
+#include <FUi.h>
+#include "GlAlbumEventListener.h"
+#include "GlBasePanel.h"
+#include "GlThumbnailEventListener.h"
+
+class FileListPresentationModel;
+
+class AllListSelectionPanel
+       : public BasePanel
+       , public Tizen::Ui::Controls::IIconListViewItemEventListener
+       , public Tizen::Ui::Controls::IIconListViewItemProvider
+       , public Tizen::Ui::Scenes::ISceneEventListener
+       , public IAlbumEventListener
+{
+public:
+       AllListSelectionPanel(void);
+       virtual ~AllListSelectionPanel(void);
+
+       result Initialize(void);
+
+       virtual result OnInitializing(void);
+       virtual result OnTerminating(void);
+       virtual void OnUpdateContentList(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);
+
+       result OnRequestDeleteAction(void);
+       result OnRequestEmailAction(void);
+       result OnRequestMoveToAction(Tizen::Base::String& destDirectory);
+       result OnRequestSlideShowAction(void);
+
+       int GetItemCheckedCount(void) const;
+       Tizen::Base::Collection::IList* GetItemCheckedIndexListN(void);
+
+private:
+       int GetRealindexFromVirtualIndex(int virtualIndex);
+       int GetVirtualIndexFromRealIndex(int realIndex);
+       void ResetSelection(void);
+       void SetButtonState(void);
+
+private:
+       Tizen::Ui::Controls::IconListView* __pContentIconListView;
+       Tizen::Base::Collection::IList* __pSeletedIndexList;
+       int __itemCount;
+       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..bf1e199
--- /dev/null
@@ -0,0 +1,31 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+#include <FUi.h>
+
+#ifndef _GL_BASE_FORM_H_
+#define _GL_BASE_FORM_H_
+
+class BaseForm
+       : public Tizen::Ui::Controls::Form
+{
+public:
+       virtual ~BaseForm(void){};
+       virtual void OnUpdateContentList(void){};
+};
+
+
+#endif /* _GL_BASE_FORM_H_ */
diff --git a/inc/GlBasePanel.h b/inc/GlBasePanel.h
new file mode 100644 (file)
index 0000000..68ab318
--- /dev/null
@@ -0,0 +1,31 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+#include <FUi.h>
+
+#ifndef _MP_BASE_PANEL_H_
+#define _MP_BASE_PANEL_H_
+
+class BasePanel
+       : public Tizen::Ui::Controls::Panel
+{
+public:
+       virtual ~BasePanel(void){};
+       virtual void OnUpdateContentList(void) = 0;
+};
+
+
+#endif /* _MP_BASE_PANEL_H_ */
diff --git a/inc/GlCommonUtil.h b/inc/GlCommonUtil.h
new file mode 100644 (file)
index 0000000..d597576
--- /dev/null
@@ -0,0 +1,35 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlCommonUtil.h
+ * @brief              This is the header file for CommonUtil class.
+ */
+
+#ifndef _GL_COMMON_UTIL_H_
+#define _GL_COMMON_UTIL_H_
+
+#include <FBase.h>
+#include <FGraphics.h>
+
+class CommonUtil
+{
+public:
+       static Tizen::Graphics::Bitmap* GetEmptyThumbnailN(void);
+       static Tizen::Base::String DurationToTimeString(long duration);
+};
+
+#endif /* _GL_COMMON_UTIL_H_ */
diff --git a/inc/GlFileListEditorForm.h b/inc/GlFileListEditorForm.h
new file mode 100644 (file)
index 0000000..0ccbe90
--- /dev/null
@@ -0,0 +1,73 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               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 <FApp.h>
+#include <FBase.h>
+#include <FContent.h>
+#include <FUi.h>
+#include "GlBaseForm.h"
+
+class FileListPresentationModel;
+
+class FileListEditorForm
+       : public BaseForm
+       , public Tizen::Ui::IActionEventListener
+       , public Tizen::Ui::Controls::IFormBackEventListener
+{
+public:
+       FileListEditorForm(void);
+       virtual ~FileListEditorForm(void);
+       result Initialize(void);
+
+       virtual result OnInitializing(void);
+       virtual result OnTerminating(void);
+       virtual void OnUpdateContentList(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 RefreshFolderList(void);
+       void SetFooterButtonsState(bool enableState);
+       result MoveToAlbum(Tizen::Base::String& destDirectory);
+
+private:
+       result InitializeFooter(void);
+       Tizen::Base::String GetDirecotyNameFromFullPath(const Tizen::Base::String& fullPath)const;
+       result SetUpPopup(void);
+
+private:
+       Tizen::Ui::Controls::ContextMenu* __pContextMenuMore;
+       Tizen::Ui::Controls::ContextMenu* __pContextMenuShare;
+       Tizen::Ui::Controls::ContextMenu* __pContextEditorMenuMove;
+       Tizen::Ui::Controls::ContextMenu* __pContextSelectionMenuMove;
+       Tizen::Ui::Controls::Popup* __pDeletePopup;
+       Tizen::Graphics::Point __morePosition;
+       Tizen::Base::Collection::IList* __pContentDirectoryList;
+       Tizen::Base::Collection::IList* __pContentDirectoryNameList;
+       FileListPresentationModel* __pPresentationModel;
+};
+
+#endif /* _GL_FILE_LIST_EDITOR_FORM_H_ */
diff --git a/inc/GlFileListForm.h b/inc/GlFileListForm.h
new file mode 100644 (file)
index 0000000..e40e06b
--- /dev/null
@@ -0,0 +1,61 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               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 <FBase.h>
+#include <FContent.h>
+#include <FUi.h>
+#include "GlBaseForm.h"
+
+class FileListPresentationModel;
+
+class FileListForm
+       : public BaseForm
+       , public Tizen::Ui::IActionEventListener
+       , public Tizen::Ui::Controls::IFormBackEventListener
+{
+public:
+       FileListForm(void);
+       virtual ~FileListForm(void);
+       result Initialize(void);
+
+       virtual result OnInitializing(void);
+       virtual result OnTerminating(void);
+       virtual void OnUpdateContentList(void);
+
+       virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+
+       virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source);
+
+       void SetTitleText(const Tizen::Base::String& titleText);
+
+private:
+       result InitializeFooter(void);
+
+private:
+       Tizen::Ui::Controls::ContextMenu* __pContextMenuMore;
+       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..68f6337
--- /dev/null
@@ -0,0 +1,129 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               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 <FBase.h>
+#include <FContent.h>
+#include <FGraphics.h>
+#include <FUi.h>
+#include "GlAlbumEventListener.h"
+#include "GlResourceManager.h"
+#include "GlThumbnailEventListener.h"
+#include "GlTypes.h"
+
+class ThumbnailProvider;
+class ThumbnailInfo;
+class ThumbnailEvent;
+
+class FileListPresentationModel
+       : public Tizen::Base::Object
+       , public IThumbnailEventListener
+{
+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);
+       void RequestThumbnail(const int index);
+       void CancelThumbnailRequest(const int index);
+       void ClearThumbnailRequests(bool appTerminating = false);
+
+       static void AddPresentationModelListener(const IAlbumEventListener* listener);
+       static void RemovePresentationModelListener(const IAlbumEventListener& 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::Collection::IMap* pDataList, Tizen::App::IAppControlResponseListener* pListener);
+       result SetCurrentAlbumInfo(const Tizen::Base::String& albumName,
+                       const Tizen::Base::Collection::IList& directoryList);
+       result RefreshCurrentAlbumContentInfoList(Tizen::Content::ContentType contentType);
+       Tizen::Base::String GetCurrentAlbumName(void);
+       void SetCurrentAlbumName(Tizen::Base::String& albumName);
+       Tizen::Content::ContentType GetCurrentAlbumContentType(void);
+       void SetCurrentAlbumContentType(Tizen::Content::ContentType contentType);
+       Tizen::Base::Collection::IList* GetAlbumDirectoryListN(void);
+       Tizen::Base::Collection::IList* GetAlbumContentInfoList(void);
+       Tizen::Content::ContentInfo* GetContentInfo(int index);
+       int GetCurrentAlbumContentInfoCount(void);
+       Tizen::Content::ContentId GetContentInfoIndex(int index);
+       Tizen::Base::String GetContentFilePath(int index);
+       Tizen::Base::String ConvertToAlbumName(const Tizen::Base::String& targetPath)const;
+
+       AppControlMode GetAppControlMode(void) const;
+       AppControlMediaType GetAppControlMediaType(void) const;
+       AppControlSelectionMode GetAppControlSelectionMode(void) const;
+
+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(Tizen::Content::ContentType contentType);
+       Tizen::Base::String GetFileNameFromFullPath(const Tizen::Base::String& fullPath, 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::Content::ContentId& contentId);
+       result MoveToContentFile(const Tizen::Content::ContentId& contentId,
+                       const Tizen::Base::String& destDirectory);
+       Tizen::Graphics::Bitmap* GetShadedBackgroundBitmapN(Tizen::Graphics::Bitmap& bgBitmap,
+                       const Tizen::Graphics::Bitmap& orgBitmap, const Tizen::Graphics::Rectangle& orgBitmapPosition);
+       Tizen::Base::Collection::IList* GetContentInfoListInDirectoryListN(
+                       const Tizen::Base::Collection::IList& contentDirectoryList,
+                       Tizen::Content::ContentType contentType)const;
+
+       virtual void OnThumbnailReceivedN(Tizen::Base::Runtime::IEventArg& eventArg);
+
+private:
+       static FileListPresentationModel* __pPresentationModelInstance;
+       static ThumbnailProvider* __pThumbnailProvider;
+       static ThumbnailEvent* __pThumbnailEvent;
+       static Tizen::Base::Collection::ArrayList* __pPresentationModelListener;
+       static Tizen::Base::Collection::ArrayList* __pIconListViewCache;
+       static Tizen::Base::Collection::IList* __pDirectoryList;
+       static Tizen::Base::Collection::IList* __pContentInfoList;
+
+       Tizen::Base::String __albumName;
+       Tizen::Content::ContentType __albumContentType;
+       AppControlMode __appControlMode;
+       AppControlMediaType __appControlMediaType;
+       AppControlSelectionMode __appControlSelectionMode;
+};
+
+#endif /* _GL_FILE_LIST_PRESENTATION_MODEL_H_ */
diff --git a/inc/GlFormFactory.h b/inc/GlFormFactory.h
new file mode 100644 (file)
index 0000000..64b703a
--- /dev/null
@@ -0,0 +1,38 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlFormFactory.h
+ * @brief              This is the header file for FormFactory class.
+ */
+
+#ifndef _GL_FORM_FACTORY_H_
+#define _GL_FORM_FACTORY_H_
+
+#include <FUi.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..ac4ec70
--- /dev/null
@@ -0,0 +1,72 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               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 <FBase.h>
+#include <FSystem.h>
+#include <FUi.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;
+       const Tizen::Base::Collection::IMap* GetAppControlArguments(void) const;
+       void SendAppControlResult(Tizen::App::AppCtrlResult appControlResult,
+                       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(bool enabled);
+
+private:
+       RequestId __requestId;
+       Tizen::Base::String __operationId;
+       Tizen::Base::String __uriData;
+       const Tizen::Base::Collection::HashMap* __pArguments;
+       Tizen::App::AppCtrlResult __appControlResult;
+};
+
+#endif /* _GL_GALLERY_APP_H_ */
diff --git a/inc/GlImageListEditorPanel.h b/inc/GlImageListEditorPanel.h
new file mode 100644 (file)
index 0000000..ba157ec
--- /dev/null
@@ -0,0 +1,86 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               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 <FApp.h>
+#include <FUi.h>
+#include "GlAlbumEventListener.h"
+#include "GlBasePanel.h"
+#include "GlThumbnailEventListener.h"
+
+class FileListPresentationModel;
+
+class ImageListEditorPanel
+       : public BasePanel
+       , public Tizen::Ui::IActionEventListener
+       , public Tizen::Ui::Controls::IIconListViewItemEventListener
+       , public Tizen::Ui::Controls::IIconListViewItemProvider
+       , public Tizen::Ui::Scenes::ISceneEventListener
+       , public IAlbumEventListener
+{
+public:
+       ImageListEditorPanel(void);
+       virtual ~ImageListEditorPanel(void);
+
+       result Initialize(void);
+
+       virtual result OnInitializing(void);
+       virtual result OnTerminating(void);
+       virtual void OnUpdateContentList(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);
+
+       void OnRequestDeleteAction(void);
+       void OnRequestEmailAction(void);
+       void OnRequestMoveToAction(Tizen::Base::String& destDirectory);
+       void OnRequestAppExitWithMultipleSelectionAppControlResult(void);
+
+       int GetItemCheckedCount(void) const;
+
+private:
+       Tizen::Base::Collection::IList* GetItemCheckedIndexList(void) const;
+
+private:
+       Tizen::Ui::Controls::IconListView* __pContentIconListView;
+       Tizen::Ui::Controls::CheckButton* __pCheckButton;
+       Tizen::Ui::Controls::Label* __pLabelSelectCnt;
+       int __itemCount;
+       FileListPresentationModel* __pPresentationModel;
+};
+
+#endif /* _GL_IMAGE_LIST_EDITOR_PANEL_H_ */
diff --git a/inc/GlImageListPanel.h b/inc/GlImageListPanel.h
new file mode 100644 (file)
index 0000000..74eb8c5
--- /dev/null
@@ -0,0 +1,71 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlImageListPanel.h
+ * @brief              This is the header file for ImageListPanel class.
+ */
+
+#ifndef _GL_IMAGE_LIST_PANEL_H_
+#define _GL_IMAGE_LIST_PANEL_H_
+
+#include <FApp.h>
+#include <FUi.h>
+#include "GlAlbumEventListener.h"
+#include "GlBasePanel.h"
+#include "GlThumbnailEventListener.h"
+
+class FileListPresentationModel;
+
+class ImageListPanel
+       : public BasePanel
+       , public Tizen::Ui::Controls::IIconListViewItemEventListener
+       , public Tizen::Ui::Controls::IIconListViewItemProvider
+       , public Tizen::Ui::Scenes::ISceneEventListener
+       , public IAlbumEventListener
+{
+public:
+       ImageListPanel();
+       virtual ~ImageListPanel();
+
+       result Initialize(void);
+
+       virtual result OnInitializing(void);
+       virtual result OnTerminating(void);
+       virtual void OnUpdateContentList(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:
+       Tizen::Ui::Controls::IconListView* __pContentIconListView;
+       int __itemCount;
+       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..41e0b40
--- /dev/null
@@ -0,0 +1,39 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlMainFrame.h
+ * @brief              This is the header file for MainFrame class.
+ */
+
+#ifndef _GL_MAIN_FRAME_H_
+#define _GL_MAIN_FRAME_H_
+
+#include <FBase.h>
+#include <FUi.h>
+
+class MainFrame
+       : public Tizen::Ui::Controls::Frame
+{
+public:
+       MainFrame(void);
+       virtual ~MainFrame(void);
+
+       virtual result OnInitializing(void);
+       virtual result OnTerminating(void);
+};
+
+#endif /* _GL_MAIN_FRAME_H_ */
diff --git a/inc/GlPanelFactory.h b/inc/GlPanelFactory.h
new file mode 100644 (file)
index 0000000..c5c5b5d
--- /dev/null
@@ -0,0 +1,38 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               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/GlResourceManager.h b/inc/GlResourceManager.h
new file mode 100644 (file)
index 0000000..c5fe036
--- /dev/null
@@ -0,0 +1,39 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlResourceManager.h
+ * @brief              This is the header file for ResourceManager class.
+ */
+
+#ifndef _GL_RESOURCE_MANAGER_H_
+#define _GL_RESOURCE_MANAGER_H_
+
+#include <FBase.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/GlSettingIntervalForm.h b/inc/GlSettingIntervalForm.h
new file mode 100644 (file)
index 0000000..e7ea5d5
--- /dev/null
@@ -0,0 +1,89 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlSettingIntervalForm.h
+ * @brief              This is the header file for SettingIntervalForm class.
+ */
+
+#ifndef _GL_SETTING_INTERVAL_FORM_H_
+#define _GL_SETTING_INTERVAL_FORM_H_
+
+#include <FApp.h>
+#include <FBase.h>
+#include <FContent.h>
+#include <FUi.h>
+
+class SettingPresentationModel;
+
+class SettingIntervalForm
+       : public Tizen::Ui::Controls::Form
+       , public Tizen::Ui::IActionEventListener
+       , public Tizen::Ui::Controls::IGroupedTableViewItemProvider
+       , public Tizen::Ui::Controls::IGroupedTableViewItemEventListener
+       , public Tizen::Ui::Controls::IFormBackEventListener
+       , public Tizen::Ui::Scenes::ISceneEventListener
+{
+public:
+       SettingIntervalForm(void);
+       virtual ~SettingIntervalForm(void);
+       result Initialize(void);
+
+       virtual result OnInitializing(void);
+       virtual result OnTerminating(void);
+
+       virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+
+       virtual int GetGroupCount(void);
+       virtual int GetItemCount(int groupIndex);
+       virtual Tizen::Ui::Controls::TableViewGroupItem* CreateGroupItem(int groupIndex, int itemWidth);
+       virtual bool DeleteGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem);
+       virtual void UpdateGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem);
+       virtual Tizen::Ui::Controls::TableViewItem* CreateItem(int groupIndex, int itemIndex, int itemWidth);
+       virtual bool DeleteItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem);
+       virtual void UpdateItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem);
+       virtual int GetDefaultGroupItemHeight(void);
+       virtual int GetDefaultItemHeight(void);
+
+       virtual void OnGroupedTableViewContextItemActivationStateChanged(
+                       Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex,
+                       Tizen::Ui::Controls::TableViewContextItem* pContextItem, bool activated);
+       virtual void OnGroupedTableViewGroupItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView,
+                       int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem,
+                       Tizen::Ui::Controls::TableViewItemStatus status);
+       virtual void OnGroupedTableViewItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView,
+                       int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem,
+                       Tizen::Ui::Controls::TableViewItemStatus status);
+
+       virtual void 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);
+
+private:
+       result InitializeFooter(void);
+       int GetFontSize(void);
+       void ItemTypeIconAndOneLine(Tizen::Graphics::Rectangle& icon, Tizen::Graphics::Rectangle& main);
+       void UpdateTableViewRedioButtonState(int senderIndex = -1);
+
+private:
+       Tizen::Ui::Controls::GroupedTableView* __pTableView;
+       SettingPresentationModel* __pPresentationModel;
+};
+
+#endif /* _GL_SETTING_INTERVAL_FORM_H_ */
diff --git a/inc/GlSettingMainForm.h b/inc/GlSettingMainForm.h
new file mode 100644 (file)
index 0000000..cb51836
--- /dev/null
@@ -0,0 +1,91 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlSettingMainForm.h
+ * @brief              This is the header file for SettingMainForm class.
+ */
+
+#ifndef _GL_SETTING_MAIN_FORM_H_
+#define _GL_SETTING_MAIN_FORM_H_
+
+#include <FApp.h>
+#include <FBase.h>
+#include <FContent.h>
+#include <FUi.h>
+
+class SettingPresentationModel;
+
+class SettingMainForm
+       : public Tizen::Ui::Controls::Form
+       , public Tizen::Ui::IActionEventListener
+       , public Tizen::Ui::Controls::IGroupedTableViewItemEventListener
+       , public Tizen::Ui::Controls::IGroupedTableViewItemProvider
+       , public Tizen::Ui::Controls::IFormBackEventListener
+       , public Tizen::Ui::Scenes::ISceneEventListener
+{
+public:
+       SettingMainForm(void);
+       virtual ~SettingMainForm(void);
+       result Initialize(void);
+
+       virtual result OnInitializing(void);
+       virtual result OnTerminating(void);
+
+       virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+
+       virtual Tizen::Ui::Controls::TableViewGroupItem* CreateGroupItem(int groupIndex, int itemWidth);
+       virtual Tizen::Ui::Controls::TableViewItem* CreateItem(int groupIndex, int itemIndex, int itemWidth);
+       virtual int GetDefaultGroupItemHeight(void);
+       virtual int GetDefaultItemHeight(void);
+       virtual bool DeleteGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem);
+       virtual bool DeleteItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem);
+       virtual int GetGroupCount(void);
+       virtual int GetItemCount(int groupIndex);
+       virtual void UpdateGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem);
+       virtual void UpdateItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem);
+
+       virtual void OnGroupedTableViewContextItemActivationStateChanged(
+                       Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex,
+                       Tizen::Ui::Controls::TableViewContextItem* pContextItem, bool activated);
+       virtual void OnGroupedTableViewGroupItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView,
+                       int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem,
+                       Tizen::Ui::Controls::TableViewItemStatus status);
+       virtual void OnGroupedTableViewItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView,
+                       int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem,
+                       Tizen::Ui::Controls::TableViewItemStatus status);
+
+       virtual void 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);
+
+private:
+       result InitializeFooter(void);
+       int GetFontSize(void);
+       void ItemTypeIconAndOneLine(Tizen::Graphics::Rectangle& icon, Tizen::Graphics::Rectangle& main);
+       int GetSettingInfoItemStatus(int settingIndex);
+       void ItemTypeTwoLine(Tizen::Graphics::Rectangle& main, Tizen::Graphics::Rectangle& sub, int fontSize);
+       void UpdateTableViewCheckButtonState(void);
+
+private:
+       Tizen::Ui::Controls::GroupedTableView* __pTableView;
+       SettingPresentationModel* __pPresentationModel;
+};
+
+#endif /* _GL_SETTING_MAIN_FORM_H_ */
diff --git a/inc/GlSettingPresentationModel.h b/inc/GlSettingPresentationModel.h
new file mode 100644 (file)
index 0000000..fd4451e
--- /dev/null
@@ -0,0 +1,62 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               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 ResetGallerySettingsRegistry(void);
+
+private:
+       SettingPresentationModel(void);
+       virtual ~SettingPresentationModel(void);
+       SettingPresentationModel(SettingPresentationModel& value);
+       SettingPresentationModel& operator = (SettingPresentationModel&);
+
+       result Construct(void);
+       static void CreateInstance(void);
+       static void DestroyInstance(void);
+
+       result CreateDefaultRegistry(void);
+
+private:
+       static SettingPresentationModel* __pPresentationModelInstance;
+       Tizen::Io::Registry* __pDefaultGalleryRegistry;
+       Tizen::Io::Registry* __pAppGalleryRegistry;
+};
+
+#endif /* _GL_SETTING_PRESENTATION_MODEL_H_ */
diff --git a/inc/GlSettingTransitionForm.h b/inc/GlSettingTransitionForm.h
new file mode 100644 (file)
index 0000000..f572d36
--- /dev/null
@@ -0,0 +1,89 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlSettingTransitionForm.h
+ * @brief              This is the header file for SettingTransitionForm class.
+ */
+
+#ifndef _GL_SETTING_TRANSITION_FORM_H_
+#define _GL_SETTING_TRANSITION_FORM_H_
+
+#include <FApp.h>
+#include <FBase.h>
+#include <FContent.h>
+#include <FUi.h>
+
+class SettingPresentationModel;
+
+class SettingTransitionForm
+       : public Tizen::Ui::Controls::Form
+       , public Tizen::Ui::IActionEventListener
+       , public Tizen::Ui::Controls::IGroupedTableViewItemEventListener
+       , public Tizen::Ui::Controls::IGroupedTableViewItemProvider
+       , public Tizen::Ui::Controls::IFormBackEventListener
+       , public Tizen::Ui::Scenes::ISceneEventListener
+{
+public:
+       SettingTransitionForm(void);
+       virtual ~SettingTransitionForm(void);
+       result Initialize(void);
+
+       virtual result OnInitializing(void);
+       virtual result OnTerminating(void);
+
+       virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+
+       virtual void OnGroupedTableViewContextItemActivationStateChanged(
+                       Tizen::Ui::Controls::GroupedTableView& tableView, int groupIndex, int itemIndex,
+                       Tizen::Ui::Controls::TableViewContextItem* pContextItem, bool activated);
+       virtual void OnGroupedTableViewGroupItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView,
+                       int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem,
+                       Tizen::Ui::Controls::TableViewItemStatus status);
+       virtual void OnGroupedTableViewItemStateChanged(Tizen::Ui::Controls::GroupedTableView& tableView,
+                       int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem,
+                       Tizen::Ui::Controls::TableViewItemStatus status);
+
+       virtual Tizen::Ui::Controls::TableViewGroupItem* CreateGroupItem(int groupIndex, int itemWidth);
+       virtual Tizen::Ui::Controls::TableViewItem* CreateItem(int groupIndex, int itemIndex, int itemWidth);
+       virtual int GetDefaultGroupItemHeight(void);
+       virtual int GetDefaultItemHeight(void);
+       virtual bool DeleteGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem);
+       virtual bool DeleteItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem);
+       virtual int GetGroupCount(void);
+       virtual int GetItemCount(int groupIndex);
+       virtual void UpdateGroupItem(int groupIndex, Tizen::Ui::Controls::TableViewGroupItem* pItem);
+       virtual void UpdateItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::TableViewItem* pItem);
+
+       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);
+
+private:
+       result InitializeFooter(void);
+       int GetFontSize(void);
+       void ItemTypeIconAndOneLine(Tizen::Graphics::Rectangle& icon, Tizen::Graphics::Rectangle& main);
+       void UpdateTableViewRedioButtonState(int senderIndex = -1);
+
+private:
+       Tizen::Ui::Controls::GroupedTableView* __pTableView;
+       SettingPresentationModel* __pPresentationModel;
+};
+
+#endif /* _GL_SETTING_TRANSITION_FORM_H_ */
diff --git a/inc/GlThumbnailEvent.h b/inc/GlThumbnailEvent.h
new file mode 100644 (file)
index 0000000..23017a2
--- /dev/null
@@ -0,0 +1,40 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               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..318dcae
--- /dev/null
@@ -0,0 +1,41 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlThumbnailEventArg.h
+ * @brief              This is the header file for ThumbnailEventArg class.
+ */
+
+#ifndef _GL_THUMBNAIL_EVENT_ARG_H_
+#define _GL_THUMBNAIL_EVENT_ARG_H_
+
+#include <FBase.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..186656d
--- /dev/null
@@ -0,0 +1,35 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlThumbnailEventListener.h
+ * @brief              This is the header file for ThumbnailEventListener class.
+ */
+
+#ifndef _GL_THUMBNAIL_EVENT_LISTENER_H_
+#define _GL_THUMBNAIL_EVENT_LISTENER_H_
+
+#include <FBase.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..3d8856e
--- /dev/null
@@ -0,0 +1,60 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlThumbnailInfo.h
+ * @brief              This is the header file for ThumbnailInfo class.
+ */
+
+#ifndef _GL_THUMBNAIL_INFO_H_
+#define _GL_THUMBNAIL_INFO_H_
+
+#include <FBase.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..7533d19
--- /dev/null
@@ -0,0 +1,53 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlThumbnailJob.h
+ * @brief              This is the header file for ThumbnailJob class.
+ */
+
+#ifndef _GL_THUMBNAIL_JOB_H_
+#define _GL_THUMBNAIL_JOB_H_
+
+#include <FContent.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() 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..88ced8e
--- /dev/null
@@ -0,0 +1,72 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlThumbnailProvider.h
+ * @brief              This is the header file for ThumbnailProvider class.
+ */
+
+#ifndef _GL_THUMBNAIL_PROVIDER_H_
+#define _GL_THUMBNAIL_PROVIDER_H_
+
+#include <FBase.h>
+#include <FGraphics.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 CancelThumbnailRequest(const Tizen::Content::ContentId& contentId, const ThumbnailEvent* event);
+       void ClearThumbnailRequests(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 __appTerminating;
+};
+
+#endif /* _GL_THUMBNAIL_PROVIDER_H_ */
diff --git a/inc/GlTypes.h b/inc/GlTypes.h
new file mode 100644 (file)
index 0000000..f50feb6
--- /dev/null
@@ -0,0 +1,214 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlTypes.h
+ * @brief              This is the header file for Types definition.
+ */
+
+#ifndef _GL_TYPES_H_
+#define _GL_TYPES_H_
+
+enum ACTION_ID_
+{
+       ACTION_ID_BUTTON_CHECKED = 101,
+       ACTION_ID_BUTTON_CREATE_NAME_CANCEL = 102,
+       ACTION_ID_BUTTON_CREATE_NAME_DONE = 103,
+       ACTION_ID_BUTTON_MOVE_TO_SELECTION = 104,
+       ACTION_ID_BUTTON_UNCHECKED = 105,
+       ACTION_ID_CHECK_SELECT_OFF = 201,
+       ACTION_ID_CHECK_SELECT_ON = 202,
+       ACTION_ID_CONTEXT_MENU_EMAIL = 301,
+       ACTION_ID_CONTEXT_MENU_MORE_ADD_TAG = 302,
+       ACTION_ID_CONTEXT_MENU_MORE_EDIT = 303,
+       ACTION_ID_CONTEXT_MENU_MORE_MOVE = 304,
+       ACTION_ID_CONTEXT_MENU_MORE_SLIDE_SHOW = 305,
+       ACTION_ID_CONTEXT_MENU_SHARE_EMAIL = 306,
+       ACTION_ID_CONTEXTMENU_EDITOR_MOVE_ALBUM_ARRAY_START = 401,
+       ACTION_ID_CONTEXTMENU_EDITOR_MOVE_CREATE_ALBUM = 600,
+       ACTION_ID_CONTEXTMENU_SELECTION_MOVE_ALBUM_ARRAY_START = 601,
+       ACTION_ID_CONTEXTMENU_SELECTION_MOVE_CREATE_ALBUM = 800,
+       ACTION_ID_DELETE_POPUP_CANCEL = 801,
+       ACTION_ID_DELETE_POPUP_DEL = 802,
+       ACTION_ID_EDITE_FOLDER = 901,
+       ACTION_ID_FOOTER_CAMERA = 902,
+       ACTION_ID_FOOTER_CANCEL = 903,
+       ACTION_ID_FOOTER_CONFIRM = 904,
+       ACTION_ID_FOOTER_DELETE = 905,
+       ACTION_ID_FOOTER_EDIT = 906,
+       ACTION_ID_FOOTER_MORE = 907,
+       ACTION_ID_FOOTER_SHARE = 908,
+       ACTION_ID_FOOTER_SLIDESHOW = 909,
+       ACTION_ID_FORMAT_DURATION = 1001,
+       ACTION_ID_FORMAT_THUMBNAIL = 1002,
+       ACTION_ID_FORMAT_TITLE = 1003,
+       ACTION_ID_SELECTALL_CHECKED = 1001,
+       ACTION_ID_SELECTALL_UNCHECKED = 1002
+};
+
+enum AppControlMode
+{
+       APP_CONTROL_MODE_MAIN,
+       APP_CONTROL_MODE_PICK,
+       APP_CONTROL_MODE_SETTING,
+       APP_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
+};
+
+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_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* 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_CREATECONTENT;
+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_MEDIA_TYPE;
+extern const wchar_t* APPCONTROL_KEY_PATH;
+extern const wchar_t* APPCONTROL_KEY_INDEX;
+extern const wchar_t* APPCONTROL_KEY_ATTACHMENTS;
+extern const wchar_t* APPCONTROL_KEY_SELECTION_MODE;
+extern const wchar_t* APPCONTROL_KEY_DATA_SELECTED;
+
+extern const wchar_t* APPCONTROL_DATA_CAMERA;
+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_RESULT_KEY_LEGACY_RESULT;
+
+
+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* 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_MORE;
+extern const wchar_t* IDB_CONTROLBAR_SHARE;
+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;
+
+#endif /* _GL_TYPES_H_ */
diff --git a/inc/GlVideoListEditorPanel.h b/inc/GlVideoListEditorPanel.h
new file mode 100644 (file)
index 0000000..bd1c174
--- /dev/null
@@ -0,0 +1,88 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               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 <FApp.h>
+#include <FUi.h>
+#include "GlAlbumEventListener.h"
+#include "GlBasePanel.h"
+#include "GlThumbnailEventListener.h"
+
+class FileListPresentationModel;
+
+class VideoListEditorPanel
+       : public BasePanel
+       , public Tizen::Ui::IActionEventListener
+       , public Tizen::Ui::Controls::IListViewItemEventListener
+       , public Tizen::Ui::Controls::IListViewItemProvider
+       , public Tizen::Ui::Scenes::ISceneEventListener
+       , public IAlbumEventListener
+{
+public:
+       VideoListEditorPanel();
+       virtual ~VideoListEditorPanel();
+       result Initialize(void);
+
+       virtual result OnInitializing(void);
+       virtual result OnTerminating(void);
+       virtual void OnUpdateContentList(void);
+
+       virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+
+       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);
+
+       void OnRequestDeleteAction(void);
+       void OnRequestEmailAction(void);
+       void OnRequestMoveToAction(Tizen::Base::String& destDirectory);
+       void OnRequestAppExitWithMultipleSelectionAppControlResult(void);
+       int GetItemCheckedCount(void) const;
+
+private:
+       Tizen::Base::Collection::IList* GetItemCheckedIndexList(void) const;
+
+private:
+       Tizen::Ui::Controls::ListView* __pContentListView;
+       Tizen::Ui::Controls::CheckButton* __pCheckButton;
+       Tizen::Ui::Controls::Label* __pLabelSelectCnt;
+       int __itemCount;
+       FileListPresentationModel* __pPresentationModel;
+};
+
+#endif /* _GL_VIDEO_LIST_EDITOR_PANEL_H_ */
diff --git a/inc/GlVideoListPanel.h b/inc/GlVideoListPanel.h
new file mode 100644 (file)
index 0000000..79025ac
--- /dev/null
@@ -0,0 +1,74 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlVideoListPanel.h
+ * @brief              This is the header file for VideoListPanel class.
+ */
+
+#ifndef _GL_VIDEO_LIST_PANEL_H_
+#define _GL_VIDEO_LIST_PANEL_H_
+
+#include <FApp.h>
+#include <FUi.h>
+#include "GlAlbumEventListener.h"
+#include "GlBasePanel.h"
+#include "GlThumbnailEventListener.h"
+
+class FileListPresentationModel;
+
+class VideoListPanel
+       : public BasePanel
+       , public Tizen::Ui::Controls::IListViewItemEventListener
+       , public Tizen::Ui::Controls::IListViewItemProvider
+       , public Tizen::Ui::Scenes::ISceneEventListener
+       , public IAlbumEventListener
+{
+public:
+       VideoListPanel();
+       virtual ~VideoListPanel();
+       result Initialize(void);
+
+       virtual result OnInitializing(void);
+       virtual result OnTerminating(void);
+       virtual void OnUpdateContentList(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:
+       Tizen::Ui::Controls::ListView* __pContentListView;
+       int __itemCount;
+       FileListPresentationModel* __pPresentationModel;
+};
+
+#endif /* _GL_VIDEO_LIST_PANEL_H_ */
diff --git a/manifest.xml b/manifest.xml
new file mode 100644 (file)
index 0000000..b130478
--- /dev/null
@@ -0,0 +1,91 @@
+<?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="tizen.platform.core.cpu.arch">x86</Feature>
+        <Feature Name="tizen.screen.coordinatesystem.logical">Normal</Feature>
+    </Requirements>
+    <Apps>
+        <ApiVersion>2.0</ApiVersion>
+        <Privileges>
+            <Privilege>http://tizen.org/privilege/content.read</Privilege>
+            <Privilege>http://tizen.org/privilege/content.write</Privilege>
+                       <Privilege>http://tizen.org/privilege/application.launch</Privilege>
+        </Privileges>
+        <UiApp Main="True" MenuIconVisible="True" Name="Gallery" GlFrame="Off" SubMode="True">
+            <UiScalability BaseScreenSize="Normal" CoordinateSystem="Logical" LogicalCoordinate="720"/>
+            <UiTheme SystemTheme="White"/>
+            <DisplayNames>
+                               <DisplayName Locale="ara-AE">استوديو-Ref</DisplayName>
+                               <DisplayName Locale="aze-AZ">Qalereya-Ref</DisplayName>
+                               <DisplayName Locale="bul-BG">Галерия-Ref</DisplayName>
+                               <DisplayName Locale="cat-ES">Galeria-Ref</DisplayName>
+                               <DisplayName Locale="ces-CZ">Galerie-Ref</DisplayName>
+                               <DisplayName Locale="dan-DK">Galleri-Ref</DisplayName>
+                               <DisplayName Locale="deu-DE">Galerie-Ref</DisplayName>
+                               <DisplayName Locale="ell-GR">Συλλογή-Ref</DisplayName>
+                               <DisplayName Locale="eng-GB">Gallery-Ref</DisplayName>
+                               <DisplayName Locale="eng-PH">Gallery-Ref</DisplayName>
+                               <DisplayName Locale="eng-US">Gallery-Ref</DisplayName>
+                               <DisplayName Locale="est-EE">Galerii-Ref</DisplayName>
+                               <DisplayName Locale="eus-ES">Galeria-Ref</DisplayName>
+                               <DisplayName Locale="fin-FI">Galleria-Ref</DisplayName>
+                               <DisplayName Locale="fra-CA">Galerie-Ref</DisplayName>
+                               <DisplayName Locale="fra-FR">Galerie-Ref</DisplayName>
+                               <DisplayName Locale="gle-IE">Gailearaí-Ref</DisplayName>
+                               <DisplayName Locale="glg-ES">Galería-Ref</DisplayName>
+                               <DisplayName Locale="hin-IN">गैलरी-Ref</DisplayName>
+                               <DisplayName Locale="hrv-HR">Album-Ref</DisplayName>
+                               <DisplayName Locale="hun-HU">Galéria-Ref</DisplayName>
+                               <DisplayName Locale="hye-AM">Պատկերասրահ-Ref</DisplayName>
+                               <DisplayName Locale="isl-IS">Gallerí-Ref</DisplayName>
+                               <DisplayName Locale="ita-IT">Galleria-Ref</DisplayName>
+                               <DisplayName Locale="jpn-JP">ギャラリー-Ref</DisplayName>
+                               <DisplayName Locale="kat-GE">გალერეა-Ref</DisplayName>
+                               <DisplayName Locale="kaz-KZ">Галерея-Ref</DisplayName>
+                               <DisplayName Locale="kor-KR">갤러리-Ref</DisplayName>
+                               <DisplayName Locale="lav-LV">Galerija-Ref</DisplayName>
+                               <DisplayName Locale="lit-LT">Galerija-Ref</DisplayName>
+                               <DisplayName Locale="mkd-MK">Галерија-Ref</DisplayName>
+                               <DisplayName Locale="nld-NL">Galerij-Ref</DisplayName>
+                               <DisplayName Locale="nob-NO">Galleri-Ref</DisplayName>
+                               <DisplayName Locale="pol-PL">Galeria-Ref</DisplayName>
+                               <DisplayName Locale="por-BR">Galeria-Ref</DisplayName>
+                               <DisplayName Locale="por-PT">Galeria-Ref</DisplayName>
+                               <DisplayName Locale="ron-RO">Galerie-Ref</DisplayName>
+                               <DisplayName Locale="rus-RU">Галерея-Ref</DisplayName>
+                               <DisplayName Locale="slk-SK">Galéria-Ref</DisplayName>
+                               <DisplayName Locale="slv-SI">Galerija-Ref</DisplayName>
+                               <DisplayName Locale="spa-ES">Galería-Ref</DisplayName>
+                               <DisplayName Locale="spa-MX">Galería-Ref</DisplayName>
+                               <DisplayName Locale="srp-RS">Galerija-Ref</DisplayName>
+                               <DisplayName Locale="swe-SE">Galleri-Ref</DisplayName>
+                               <DisplayName Locale="tur-TR">Galeri-Ref</DisplayName>
+                               <DisplayName Locale="ukr-UA">Галерея-Ref</DisplayName>
+                               <DisplayName Locale="uzb-UZ">Galereya-Ref</DisplayName>
+                               <DisplayName Locale="zho-CN">图库-Ref</DisplayName>
+                               <DisplayName Locale="zho-HK">媒體瀏覽器-Ref</DisplayName>
+                               <DisplayName Locale="zho-SG">画廊-Ref</DisplayName>
+                               <DisplayName Locale="zho-TW">媒體瀏覽器-Ref</DisplayName>
+            </DisplayNames>
+            <Icons>
+                <Icon Section="MainMenu" Type="Xhigh">mainmenu.png</Icon>
+            </Icons>
+            <AppControls>
+                <AppControl Category="osp.appcontrol.category.none" ProviderId="http://tizen.org/appcontrol/provider/gallery">
+                    <Capability OperationId="http://tizen.org/appcontrol/operation/pick">
+                        <Resolution MimeType="image/*"/>
+                        <Resolution MimeType="video/*"/>
+                    </Capability>
+                    <Capability OperationId="http://tizen.org/appcontrol/operation/configure">
+                        <Resolution MimeType="" UriScheme=""/>
+                    </Capability>                    
+                </AppControl>
+            </AppControls>
+            <LaunchConditions/>
+            <Notifications/>
+        </UiApp>
+    </Apps>
+</Manifest>
diff --git a/packaging/apps.Gallery.spec b/packaging/apps.Gallery.spec
new file mode 100644 (file)
index 0000000..7a6a06e
--- /dev/null
@@ -0,0 +1,61 @@
+Name:       apps.Gallery
+Summary:    Gallery application
+Version:    1.0.0
+Release:    1
+Group:      TO_BE/FILLED_IN
+License:    TO BE FILLED IN
+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
+
+Requires: osp-installer
+
+%description
+Verification application: Gallery
+
+%prep
+%setup -q
+
+%build
+MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
+%ifarch %{ix86}
+CXXFLAGS="$CXXFLAGS -D_OSP_DEBUG_ -D_OSP_X86_ -D_OSP_EMUL_" cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DFULLVER=%{version} -DMAJORVER=${MAJORVER}
+%else
+CXXFLAGS="$CXXFLAGS -D_OSP_DEBUG_ -D_OSP_ARMEL_" cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DFULLVER=%{version} -DMAJORVER=${MAJORVER}
+%endif
+
+# Call make instruction with smp support
+make %{?jobs:-j%jobs}
+
+%install
+rm -rf %{buildroot}
+%make_install
+
+%post
+/sbin/ldconfig
+PKG_ID=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/*
diff --git a/res/ara-AE.xml b/res/ara-AE.xml
new file mode 100644 (file)
index 0000000..6b99e80
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">تم الوصول إلى أقصى عدد من الحروف</text>
+    <text id="IDS_COM_BODY_DELETE">حذف</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">الألبومات</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s موجود بالفعل</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">ملفات الكاميرا</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">إنشاء ألبوم</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">تأثير الانتقال</text>
+    <text id="IDS_COM_POP_CANCEL">إلغاء</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">قوس قزح</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">موجود بالفعل. هل تريد الاستبدال؟</text>
+    <text id="IDS_COM_BODY_EMAIL">بريد إلكتروني</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">لا يمكن المسح</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">تحديد الكل</text>
+    <text id="IDS_EBOOK_BODY_PAGE">الصفحة</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">فشل المسح</text>
+    <text id="IDS_COM_BODY_SELECTED">محدد</text>
+    <text id="IDS_COM_BODY_MUSIC">الموسيقى</text>
+    <text id="IDS_MEDIABR_BODY_FADE">التلاشي التدريجي</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">ثانيتان</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">فشلت العملية</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">الخلط</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">إلغاء</text>
+    <text id="IDS_COM_HEADER_EDIT">تعديل</text>
+    <text id="IDS_COM_BODY_IMAGES">الصور</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">حذف؟</text>
+    <text id="IDS_COM_BODY_VIDEOS">الفيديو</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">فاصل عرض الشرائح</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">عرض شرائح</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">التفعيل</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">لا يوجد اسم</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">اسم الألبوم مستخدم بالفعل</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">لا توجد عناصر</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 ثوان</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">موجود مسبقا</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">إخفاء</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">تكرار</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">اختيار الكل</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">مشغل فيديو</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">ثوان</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 ثوان</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">فشل النقل</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">كافة الألبومات</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 ثانية</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">تم بلوغ أقصى عدد من الأحرف (%d)</text>
+    <text id="IDS_IV_OPT_ZOOM">زوم</text>
+    <text id="IDS_COM_BODY_GALLERY">استوديو</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 ثوان</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">إذابة</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">غير قادر على تغيير الاسم. جاري استخدام الملف</text>
+    <text id="IDS_COM_BODY_VIDEO">فيديو</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">يتعذر إعادة التسمية. اسم الألبوم مستخدم بالفعل</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">الترجمات المصاحبة</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">عرض الصور</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">ملفات محملة</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">إنشاء مجلد؟</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">تغييرالاسم</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">شرائح</text>
+    <text id="IDS_COM_BODY_MOVE">نقل</text>
+    <text id="IDS_IV_BODY_INTERVAL">الفترة</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">تمت</text>
+    <text id="IDS_COM_POP_DELETE_Q">مسح؟</text>
+    <text id="IDS_COM_BODY_EDIT">تعديل</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">تم بلوغ أقصى عدد من الأحرف (%d)</text>
+    <text id="IDS_COM_SK_DONE">تمت</text>
+</string_table>
diff --git a/res/aze-AZ.xml b/res/aze-AZ.xml
new file mode 100644 (file)
index 0000000..a4d27f4
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Simvol sayı maksimuma çatıb</text>
+    <text id="IDS_COM_BODY_DELETE">Sil</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albomlar</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s hazırda mövcuddur</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Kamera çarxı</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Albom yaradın</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Keçid effekti</text>
+    <text id="IDS_COM_POP_CANCEL">Ləğv et</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Diafraqma</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_BODY_EMAIL">Elektron poçtlar</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Silmək mümkün deyil</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Hamsnı seç</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Səhifə</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Silmək mümkün olmadı</text>
+    <text id="IDS_COM_BODY_SELECTED">Seçilmişi</text>
+    <text id="IDS_COM_BODY_MUSIC">Musiqi</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Tutqunlaşdır</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 saniyə</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Əməliyyat alınmadı</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Təsadüfi sıralama</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Ləğv et</text>
+    <text id="IDS_COM_HEADER_EDIT">Redaktə et</text>
+    <text id="IDS_COM_BODY_IMAGES">Təsvirlər</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Silinsin?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Video</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Slaydşou intervalı</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Slyd nmyşi</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Aktivləşdirmə</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Ad yoxdur</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Albom adı artıq ist.edilir</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Elementlər yoxdur</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 saniyə</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Artıq var</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Sayrışmaq</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Təkrar et</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Hamısını seç</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Video pleyer</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">Saniyələr</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 saniyə</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Keçmə alınmadı</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Bütün albomlar</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 saniyə</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Simvolların sayı maksimuma (%d) çatıb</text>
+    <text id="IDS_IV_OPT_ZOOM">Yaxınlaşdırma/uzaqlaşdırma</text>
+    <text id="IDS_COM_BODY_GALLERY">Qalereya</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 saniyə</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Seç</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Yenidən adlandırmaq mümkün deyildir</text>
+    <text id="IDS_COM_BODY_VIDEO">Video</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_MEDIABR_BODY_SUBTITLES">Yarımbaşlıqlar</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Slayd göstərmə</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Yükləmələr</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Qovluq yaradılsın?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Adı dəyişdir</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Slayd</text>
+    <text id="IDS_COM_BODY_MOVE">Göndər</text>
+    <text id="IDS_IV_BODY_INTERVAL">İnterval</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Tamamlandı</text>
+    <text id="IDS_COM_POP_DELETE_Q">Silinsin?</text>
+    <text id="IDS_COM_BODY_EDIT">Redaktə et</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Simvolların sayı maksimuma (%d) çatıb</text>
+    <text id="IDS_COM_SK_DONE">Bitdi</text>
+</string_table>
diff --git a/res/bul-BG.xml b/res/bul-BG.xml
new file mode 100644 (file)
index 0000000..9b2bfbf
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Достигнат максимален брой знаци</text>
+    <text id="IDS_COM_BODY_DELETE">Изтриване</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Албуми</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s вече съществува</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Материал камера</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Създаване на албум</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Ефект на преход</text>
+    <text id="IDS_COM_POP_CANCEL">Отказ</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Ирис</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Вече съществува. Презапис?</text>
+    <text id="IDS_COM_BODY_EMAIL">Email</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Невъзможно изтриване</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Изб.всички</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Страница</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Неуспешно изтриване</text>
+    <text id="IDS_COM_BODY_SELECTED">Избрани</text>
+    <text id="IDS_COM_BODY_MUSIC">Музика</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Избледняване</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 секунди</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Операцията е неуспешна</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Разбъркано</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Отказ</text>
+    <text id="IDS_COM_HEADER_EDIT">Редактиране</text>
+    <text id="IDS_COM_BODY_IMAGES">Изображения</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Премахване?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Видеоклипове</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Интервал на слайдшоуто</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Слайдшоу</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Активиране</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Без име</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Име на албума вече се изп.</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Няма елементи</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 секунди</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Вече съществува</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Щори</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Повтаряне</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Избери всички</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Видео плейър</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">секунди</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 секунди</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Неуспешно преместване</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Всички албуми</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 секунди</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Достигнат е максималният брой знаци (%d)</text>
+    <text id="IDS_IV_OPT_ZOOM">Зум</text>
+    <text id="IDS_COM_BODY_GALLERY">Галерия</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 секунди</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Размиване</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Не може да се преименува</text>
+    <text id="IDS_COM_BODY_VIDEO">Видеоклип</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Не може да се преименува. Името на албума вече се използва</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Субтитри</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Слайдшоу</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Изтеглени файлове</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Създаване на папка?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Промяна на име</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Слайд</text>
+    <text id="IDS_COM_BODY_MOVE">Премести</text>
+    <text id="IDS_IV_BODY_INTERVAL">Интервал</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Завършено</text>
+    <text id="IDS_COM_POP_DELETE_Q">Изтриване?</text>
+    <text id="IDS_COM_BODY_EDIT">Редактиране</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Достигнат е максималният брой знаци (%d)</text>
+    <text id="IDS_COM_SK_DONE">Готово</text>
+</string_table>
diff --git a/res/cat-ES.xml b/res/cat-ES.xml
new file mode 100644 (file)
index 0000000..a031be6
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" 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_COM_BODY_DELETE">Esborrar</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Àlbums</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s ja existeix</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Rodet càmera</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Crear àlbum</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Efecte de transició</text>
+    <text id="IDS_COM_POP_CANCEL">Cancel·lar</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Ja existeix. Sobreescriure?</text>
+    <text id="IDS_COM_BODY_EMAIL">Correu electrònic</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">No es pot esborrar</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Selec tot</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Pàgina</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Error en esborrar</text>
+    <text id="IDS_COM_BODY_SELECTED">Seleccionat</text>
+    <text id="IDS_COM_BODY_MUSIC">Música</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Perdre intensitat</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 segons</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Operació fallida</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Ordre aleatori</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Cancel·lar</text>
+    <text id="IDS_COM_HEADER_EDIT">Editar</text>
+    <text id="IDS_COM_BODY_IMAGES">Imatges</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Eliminar?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Vídeos</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Interval de la presentació de diapositives</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Diaposit</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Activació</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Sense nom</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Nom d'àlbum ja en ús</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">No hi ha elements</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 segons</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Ja existeix</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Persiana</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Repetir</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Seleccioni-ho tot</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Reproductor de vídeo</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">segons</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 segons</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Error en moure</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Tots els àlbums</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 segons</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_IV_OPT_ZOOM">Zoom</text>
+    <text id="IDS_COM_BODY_GALLERY">Galeria</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 segons</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Dissoldre</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">No es pot canviar nom</text>
+    <text id="IDS_COM_BODY_VIDEO">Vídeo</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_MEDIABR_BODY_SUBTITLES">Subtítols</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Presentació de diapositives</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Descàrregues</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Crear carpeta?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Canviar nom</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Diapositiva</text>
+    <text id="IDS_COM_BODY_MOVE">Moure</text>
+    <text id="IDS_IV_BODY_INTERVAL">Interval</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Completat</text>
+    <text id="IDS_COM_POP_DELETE_Q">Esborrar?</text>
+    <text id="IDS_COM_BODY_EDIT">Editar</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_COM_SK_DONE">Finalit.</text>
+</string_table>
diff --git a/res/ces-CZ.xml b/res/ces-CZ.xml
new file mode 100644 (file)
index 0000000..481fbcc
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" 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_COM_BODY_DELETE">Odstranit</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Alba</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s již existuje</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Soubory z fot.</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Vytvořit album</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Přechodový efekt</text>
+    <text id="IDS_COM_POP_CANCEL">Zrušit</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Duha</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Již existuje. Přepsat?</text>
+    <text id="IDS_COM_BODY_EMAIL">E-mail</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Nelze odstranit</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Vybrat vše</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Stránka</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Odstranění se nezdařilo</text>
+    <text id="IDS_COM_BODY_SELECTED">Vybráno</text>
+    <text id="IDS_COM_BODY_MUSIC">Hudba</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Zvolna mizet</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 sekund</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Otevření se nezdařilo</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Náhodně</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Zrušit</text>
+    <text id="IDS_COM_HEADER_EDIT">Upravit</text>
+    <text id="IDS_COM_BODY_IMAGES">Obrázky</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Odstranit?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Videa</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Interval prezentace</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Prezent.</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Aktivace</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Žádný název</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Název alba je již použit</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Žádné položky</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 sekund</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Již existuje</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Roleta</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Opakovat</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Vybrat vše</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Videopřeh.</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">sekundy</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 sekundy</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Přesunutí se nezdařilo</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Všechna alba</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 sekund</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_IV_OPT_ZOOM">Přiblížení</text>
+    <text id="IDS_COM_BODY_GALLERY">Galerie</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 sekund</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Rozplynout</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Nelze přejmenovat</text>
+    <text id="IDS_COM_BODY_VIDEO">Video</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_MEDIABR_BODY_SUBTITLES">Titulky</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Prezentace</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Stažené položky</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Chcete vytvořit složku?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Změnit název</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Sklouznutí</text>
+    <text id="IDS_COM_BODY_MOVE">Přesunout</text>
+    <text id="IDS_IV_BODY_INTERVAL">Interval</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Dokončeno</text>
+    <text id="IDS_COM_POP_DELETE_Q">Odstranit?</text>
+    <text id="IDS_COM_BODY_EDIT">Upravit</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_COM_SK_DONE">Hotovo</text>
+</string_table>
diff --git a/res/dan-DK.xml b/res/dan-DK.xml
new file mode 100644 (file)
index 0000000..f6acc35
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Det maksimale antal tegn er nået</text>
+    <text id="IDS_COM_BODY_DELETE">Slet</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albums</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s eksisterer allerede</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Kamerarolle</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Opret album</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Overgangseffekt</text>
+    <text id="IDS_COM_POP_CANCEL">Annullér</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Findes allerede. Vil du overskrive?</text>
+    <text id="IDS_COM_BODY_EMAIL">E-mail</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Kunne ikke slette</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Vælg alle</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Side</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Sletning mislykkedes</text>
+    <text id="IDS_COM_BODY_SELECTED">Valgte</text>
+    <text id="IDS_COM_BODY_MUSIC">Musik</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Tone ud</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 sekunder</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Handlingen mislykkedes</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Bland</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Annullér</text>
+    <text id="IDS_COM_HEADER_EDIT">Redigér</text>
+    <text id="IDS_COM_BODY_IMAGES">Billeder</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Fjern?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Videoklip</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Interval for diasshow</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Diasshow</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Aktivering</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Intet navn</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Albumnavn allerede i brug</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Ingen elementer</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 sekunder</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Findes allerede</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Afblænd</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Gentag</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Vælg alle</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Videoafspiller</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">sekunder</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 sekunder</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Flytning mislykkedes</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Alle album</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 sekunder</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Det maksimale antal tegn (%d) er nået</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoom</text>
+    <text id="IDS_COM_BODY_GALLERY">Galleri</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 sekunder</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Opløs</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Kunne ikke omdøbe</text>
+    <text id="IDS_COM_BODY_VIDEO">Videoklip</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_MEDIABR_BODY_SUBTITLES">Undertekster</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Diasshow</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Downloads</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Opret mappe?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Skift navn</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Dias</text>
+    <text id="IDS_COM_BODY_MOVE">Flyt</text>
+    <text id="IDS_IV_BODY_INTERVAL">Interval</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Udført</text>
+    <text id="IDS_COM_POP_DELETE_Q">Slet?</text>
+    <text id="IDS_COM_BODY_EDIT">Redigér</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Det maksimale antal tegn (%d) er nået</text>
+    <text id="IDS_COM_SK_DONE">Udført</text>
+</string_table>
diff --git a/res/deu-DE.xml b/res/deu-DE.xml
new file mode 100644 (file)
index 0000000..53657d0
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Maximal zulässige Zeichenanzahl erreicht.</text>
+    <text id="IDS_COM_BODY_DELETE">Löschen</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Alben</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s ist bereits vorhanden</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Filmrolle</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Album erstellen</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Übergangseffekt</text>
+    <text id="IDS_COM_POP_CANCEL">Abbrechen</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Bereits vorhanden. Überschreiben?</text>
+    <text id="IDS_COM_BODY_EMAIL">E-Mail</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Kann nicht gelöscht werden</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Alle ausw.</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Seite</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Löschen fehlgeschlagen</text>
+    <text id="IDS_COM_BODY_SELECTED">Ausgewählt</text>
+    <text id="IDS_COM_BODY_MUSIC">Musik</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Ausblenden</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 Sekunden</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Vorgang fehlgeschlagen</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Zufallswiedergabe</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Abbrechen</text>
+    <text id="IDS_COM_HEADER_EDIT">Bearbeiten</text>
+    <text id="IDS_COM_BODY_IMAGES">Eigene Bilder</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Entfernen?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Videos</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Diashowintervall</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Diashow</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Aktivierung</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Kein Name</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Albumn. wird bereits verw.</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Keine Elemente</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 Sekunden</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Bereits vorhanden</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Blenden</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Wiederholen</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Alle auswählen</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Video-Player</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">Sekunden</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 Sekunden</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Verschieben fehlgeschlagen</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Alle Alben</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 Sekunden</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Maximale Anzahl an Zeichen (%d) erreicht.</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoom</text>
+    <text id="IDS_COM_BODY_GALLERY">Galerie</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 Sekunden</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Auflösen</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Umbenennen nicht möglich</text>
+    <text id="IDS_COM_BODY_VIDEO">Video</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_MEDIABR_BODY_SUBTITLES">Untertitel</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Diashow</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Downloads</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Ordner erstellen?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Name ändern</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Gleiten</text>
+    <text id="IDS_COM_BODY_MOVE">Verschieben</text>
+    <text id="IDS_IV_BODY_INTERVAL">Intervall</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Abgeschlossen</text>
+    <text id="IDS_COM_POP_DELETE_Q">Löschen?</text>
+    <text id="IDS_COM_BODY_EDIT">Bearbeiten</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Maximale Anzahl an Zeichen (%d) erreicht.</text>
+    <text id="IDS_COM_SK_DONE">OK</text>
+</string_table>
diff --git a/res/ell-GR.xml b/res/ell-GR.xml
new file mode 100644 (file)
index 0000000..a38ebaa
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Ο μέγιστος αριθμός χαρακτήρων συμπληρώθηκε</text>
+    <text id="IDS_COM_BODY_DELETE">Διαγραφή</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Άλμπουμ</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">Το αρχείο %s υπάρχει ήδη</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Λήψεις με κάμερα</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Δημιουργία άλμπουμ</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Εφέ μετάβασης</text>
+    <text id="IDS_COM_POP_CANCEL">Ακύρωση</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Ίριδα</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Υπάρχει ήδη. Αντικατάσταση;</text>
+    <text id="IDS_COM_BODY_EMAIL">Email</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Δεν είναι δυνατή η διαγραφή</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Επιλ. όλων</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Σελίδα</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Αποτυχία διαγραφής</text>
+    <text id="IDS_COM_BODY_SELECTED">Επιλεγμένο</text>
+    <text id="IDS_COM_BODY_MUSIC">Μουσική</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Σταδιακή εμφάνιση</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 δευτερόλεπτα</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Λειτουργία απέτυχε</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Τυχαία σειρά</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Ακύρωση</text>
+    <text id="IDS_COM_HEADER_EDIT">Επεξεργασία</text>
+    <text id="IDS_COM_BODY_IMAGES">Εικόνες</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Αφαίρεση;</text>
+    <text id="IDS_COM_BODY_VIDEOS">Βίντεο</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Διάστημα παρουσίασης</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Παρ/σίαση</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Ενεργοποίηση</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Κανένα όνομα</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Το όνομα άλμπουμ χρησ. ήδη</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Κανένα στοιχείο</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 δευτερόλεπτα</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Υπάρχει ήδη</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Ρολό</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Επανάληψη</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Επιλογή όλων</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Αναπαραγωγή Βίντεο</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">δευτ.</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 δευτερόλεπτα</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Αποτυχία μετακίνησης</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Όλα τα άλμπουμ</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 δευτερόλεπτα</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Συμπληρώθηκε ο μέγιστος αριθμός χαρακτήρων (%d)</text>
+    <text id="IDS_IV_OPT_ZOOM">Ζουμ</text>
+    <text id="IDS_COM_BODY_GALLERY">Συλλογή</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 δευτερόλεπτα</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Αποσύνθεση</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Δεν είναι δυνατή η μετονομασία</text>
+    <text id="IDS_COM_BODY_VIDEO">Προσθήκη βίντεο</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Δεν είναι δυνατή η μετονομασία. To όνομα άλμπουμ χρησιμοποιείται ήδη</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Υπότιτλοι</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Παρουσίαση</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Λήψεις</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Δημιουργία φακέλου;</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Αλλαγή ονόματος</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Διαφάνεια</text>
+    <text id="IDS_COM_BODY_MOVE">Μετακίνηση</text>
+    <text id="IDS_IV_BODY_INTERVAL">Διάστημα</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Ολοκληρώθηκε</text>
+    <text id="IDS_COM_POP_DELETE_Q">Διαγραφή;</text>
+    <text id="IDS_COM_BODY_EDIT">Επεξεργασία</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Συμπληρώθηκε ο μέγιστος αριθμός χαρακτήρων (%d)</text>
+    <text id="IDS_COM_SK_DONE">Ok</text>
+</string_table>
diff --git a/res/eng-GB.xml b/res/eng-GB.xml
new file mode 100644 (file)
index 0000000..5588221
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Maximum number of characters reached</text>
+    <text id="IDS_COM_BODY_DELETE">Delete</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albums</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s already exists</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Camera roll</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Create album</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Transition effect</text>
+    <text id="IDS_COM_POP_CANCEL">Cancel</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Already exists. Overwrite?</text>
+    <text id="IDS_COM_BODY_EMAIL">Email</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Unable to delete</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Select all</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Page</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Delete failed</text>
+    <text id="IDS_COM_BODY_SELECTED">Selected</text>
+    <text id="IDS_COM_BODY_MUSIC">Music</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Fade</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 seconds</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Operation failed</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Shuffle</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Cancel</text>
+    <text id="IDS_COM_HEADER_EDIT">Edit</text>
+    <text id="IDS_COM_BODY_IMAGES">Images</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Remove?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Videos</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Slideshow interval</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Slide show</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Activation</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">No name</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Album name already in use</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">No items</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 seconds</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Already exists</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Blind</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Repeat</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Select all</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Video Player</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">seconds</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 seconds</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Moving failed</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">All albums</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 seconds</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Maximum number of characters (%d) reached</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoom</text>
+    <text id="IDS_COM_BODY_GALLERY">Gallery</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 seconds</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Dissolve</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Unable to rename</text>
+    <text id="IDS_COM_BODY_VIDEO">Video</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_MEDIABR_BODY_SUBTITLES">Subtitles</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Slide show</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Downloads</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Create folder?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Change name</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Slide</text>
+    <text id="IDS_COM_BODY_MOVE">Move</text>
+    <text id="IDS_IV_BODY_INTERVAL">Interval</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Completed</text>
+    <text id="IDS_COM_POP_DELETE_Q">Delete?</text>
+    <text id="IDS_COM_BODY_EDIT">Edit</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Maximum number of characters (%d) reached</text>
+    <text id="IDS_COM_SK_DONE">Done</text>
+</string_table>
diff --git a/res/eng-PH.xml b/res/eng-PH.xml
new file mode 100644 (file)
index 0000000..5588221
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Maximum number of characters reached</text>
+    <text id="IDS_COM_BODY_DELETE">Delete</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albums</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s already exists</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Camera roll</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Create album</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Transition effect</text>
+    <text id="IDS_COM_POP_CANCEL">Cancel</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Already exists. Overwrite?</text>
+    <text id="IDS_COM_BODY_EMAIL">Email</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Unable to delete</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Select all</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Page</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Delete failed</text>
+    <text id="IDS_COM_BODY_SELECTED">Selected</text>
+    <text id="IDS_COM_BODY_MUSIC">Music</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Fade</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 seconds</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Operation failed</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Shuffle</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Cancel</text>
+    <text id="IDS_COM_HEADER_EDIT">Edit</text>
+    <text id="IDS_COM_BODY_IMAGES">Images</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Remove?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Videos</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Slideshow interval</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Slide show</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Activation</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">No name</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Album name already in use</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">No items</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 seconds</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Already exists</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Blind</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Repeat</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Select all</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Video Player</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">seconds</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 seconds</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Moving failed</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">All albums</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 seconds</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Maximum number of characters (%d) reached</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoom</text>
+    <text id="IDS_COM_BODY_GALLERY">Gallery</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 seconds</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Dissolve</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Unable to rename</text>
+    <text id="IDS_COM_BODY_VIDEO">Video</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_MEDIABR_BODY_SUBTITLES">Subtitles</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Slide show</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Downloads</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Create folder?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Change name</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Slide</text>
+    <text id="IDS_COM_BODY_MOVE">Move</text>
+    <text id="IDS_IV_BODY_INTERVAL">Interval</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Completed</text>
+    <text id="IDS_COM_POP_DELETE_Q">Delete?</text>
+    <text id="IDS_COM_BODY_EDIT">Edit</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Maximum number of characters (%d) reached</text>
+    <text id="IDS_COM_SK_DONE">Done</text>
+</string_table>
diff --git a/res/eng-US.xml b/res/eng-US.xml
new file mode 100644 (file)
index 0000000..ee937cf
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Maximum number of characters reached</text>
+    <text id="IDS_COM_BODY_DELETE">Delete</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albums</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s already exists</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Camera roll</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Create album</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Transition effect</text>
+    <text id="IDS_COM_POP_CANCEL">Cancel</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Already exists. Overwrite?</text>
+    <text id="IDS_COM_BODY_EMAIL">Email</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Unable to delete</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Select all</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Page</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Delete failed</text>
+    <text id="IDS_COM_BODY_SELECTED">Selected</text>
+    <text id="IDS_COM_BODY_MUSIC">Music</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Fade</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 seconds</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Operation failed</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Shuffle</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Cancel</text>
+    <text id="IDS_COM_HEADER_EDIT">Edit</text>
+    <text id="IDS_COM_BODY_IMAGES">Images</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Delete?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Videos</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Slideshow interval</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Slide show</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Activation</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">No name</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Album name already in use</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">No items</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 seconds</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Already exists</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Blind</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Repeat</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Select all</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Video Player</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">Seconds</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 seconds</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Moving failed</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">All albums</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 seconds</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Maximum number of characters (%d) reached</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoom</text>
+    <text id="IDS_COM_BODY_GALLERY">Gallery</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 seconds</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Dissolve</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Unable to rename</text>
+    <text id="IDS_COM_BODY_VIDEO">Video</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_MEDIABR_BODY_SUBTITLES">Subtitles</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Slide show</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Downloads</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Create folder?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Change name</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Slide</text>
+    <text id="IDS_COM_BODY_MOVE">Move</text>
+    <text id="IDS_IV_BODY_INTERVAL">Interval</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Completed</text>
+    <text id="IDS_COM_POP_DELETE_Q">Delete?</text>
+    <text id="IDS_COM_BODY_EDIT">Edit</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Maximum number of characters (%d) reached</text>
+    <text id="IDS_COM_SK_DONE">Done</text>
+</string_table>
diff --git a/res/est-EE.xml b/res/est-EE.xml
new file mode 100644 (file)
index 0000000..8e48d4e
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Lubatud arv märke on täis</text>
+    <text id="IDS_COM_BODY_DELETE">Kustuta</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albumid</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s on juba olemas</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Kaamera rullik</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Loo album</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Ülemineku efekt</text>
+    <text id="IDS_COM_POP_CANCEL">Tühista</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iiris</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">On juba olemas. Kas kirjutada üle?</text>
+    <text id="IDS_COM_BODY_EMAIL">E-post</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Ei saa kustutada</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Vali kõik</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Lehekülg</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">BT-peakomplekt sees</text>
+    <text id="IDS_COM_BODY_SELECTED">Valitud</text>
+    <text id="IDS_COM_BODY_MUSIC">Muusika</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Hajumine</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 sekundit</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Toiming nurjus</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Juhuesitus</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Tühista</text>
+    <text id="IDS_COM_HEADER_EDIT">Muuda</text>
+    <text id="IDS_COM_BODY_IMAGES">Pildid</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Eemaldada?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Videod</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Slaidiseansi intervall</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Slaidis.</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Aktiveerimine</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Nimi puudub</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Albumi nimi juba kasutusel</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Üksusi ei ole</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 sekundit</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Juba olemas</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Vari</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Korda</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Vali kõik</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Videomängija</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">sekundit</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 sekundit</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Teisaldamine nurjus</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Kõik albumid</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 sekundit</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Maksimaalne tähemärkide arv (%d) on saavutatud</text>
+    <text id="IDS_IV_OPT_ZOOM">Suumi</text>
+    <text id="IDS_COM_BODY_GALLERY">Galerii</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 sekundit</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Lahuta</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Ei saa ümber nimetada</text>
+    <text id="IDS_COM_BODY_VIDEO">Video</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_MEDIABR_BODY_SUBTITLES">Subtiitrid</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Slaidiseanss</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Allalaet. failid</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Kas luua kaust?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Muuda nime</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Slaid</text>
+    <text id="IDS_COM_BODY_MOVE">Teisalda</text>
+    <text id="IDS_IV_BODY_INTERVAL">Intervall</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Lõpule viidud</text>
+    <text id="IDS_COM_POP_DELETE_Q">Kustutada?</text>
+    <text id="IDS_COM_BODY_EDIT">Muuda</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Maksimaalne tähemärkide arv (%d) on saavutatud</text>
+    <text id="IDS_COM_SK_DONE">Valmis</text>
+</string_table>
diff --git a/res/eus-ES.xml b/res/eus-ES.xml
new file mode 100644 (file)
index 0000000..f4bb149
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Gehienezko karaktere kopurura heldu zara</text>
+    <text id="IDS_COM_BODY_DELETE">Ezabatu</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albumak</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s dagoeneko bada</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Kamera erroilua</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Albuma sortu</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Trantsizio efektua</text>
+    <text id="IDS_COM_POP_CANCEL">Ezeztatu</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Irisa</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Dagoeneko bada. Berridatzi?</text>
+    <text id="IDS_COM_BODY_EMAIL">Posta elektroniko mezuak</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Ezin da ezabatu</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Haut. den.</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Orria</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Akatsa ezabatzerakoan</text>
+    <text id="IDS_COM_BODY_SELECTED">Aukeratutakoa(k)</text>
+    <text id="IDS_COM_BODY_MUSIC">Musika</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Koloregabetu</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 segundo</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Eragiketak huts egin du</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Ausazko ordena</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Ezeztatu</text>
+    <text id="IDS_COM_HEADER_EDIT">Editatu</text>
+    <text id="IDS_COM_BODY_IMAGES">Irudiak</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Kendu?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Bideoak</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Aurkzpen tartea</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Erakusketa</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Aktibazioa</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Izenik gabe</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Izen hori erabilia dago</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Elementurik ez</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 segundo</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Dagoeneko badago</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Itsua</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Errepikatu</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Denak aukeratu</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Bideo Jogailua</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">segundoak</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 segundo</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Errorea mugitzerakoan</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Album guztiak</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 segundo</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Gehienezko karaktere kopurura (%d) iritsi zara</text>
+    <text id="IDS_IV_OPT_ZOOM">Zooma</text>
+    <text id="IDS_COM_BODY_GALLERY">Galeria</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 segundo</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Disolbatu</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Ezin da berrizendatu</text>
+    <text id="IDS_COM_BODY_VIDEO">Bideoa</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_MEDIABR_BODY_SUBTITLES">Azpitituluak</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Diapositiba aurkezpena</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Deskargak</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Karpeta sortu?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Izena aldatu</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Diapositiba</text>
+    <text id="IDS_COM_BODY_MOVE">Mugitu</text>
+    <text id="IDS_IV_BODY_INTERVAL">Tartea</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Osatua</text>
+    <text id="IDS_COM_POP_DELETE_Q">Ezabatu?</text>
+    <text id="IDS_COM_BODY_EDIT">Editatu</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Gehienezko karaktere kopurura (%d) iritsi zara</text>
+    <text id="IDS_COM_SK_DONE">Amaituta</text>
+</string_table>
diff --git a/res/fin-FI.xml b/res/fin-FI.xml
new file mode 100644 (file)
index 0000000..b272c09
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Merkkien enimmäismäärä saavutettu</text>
+    <text id="IDS_COM_BODY_DELETE">Poista</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albumit</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s on jo olemassa</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Kamerarulla</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Luo albumi</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Siirtymätehoste</text>
+    <text id="IDS_COM_POP_CANCEL">Peruuta</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">On jo olemassa. Päivitetäänkö?</text>
+    <text id="IDS_COM_BODY_EMAIL">Sähköposti</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Ei voi poistaa</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">V. kaikki</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Sivu</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Poisto epäonnistui</text>
+    <text id="IDS_COM_BODY_SELECTED">Valittu</text>
+    <text id="IDS_COM_BODY_MUSIC">Musiikki</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Häivytä</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 sekuntia</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Toiminto epäonnistui</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Sekoitus</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Peruuta</text>
+    <text id="IDS_COM_HEADER_EDIT">Muokkaa</text>
+    <text id="IDS_COM_BODY_IMAGES">Kuvat</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Poistetaanko?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Videot</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Kuvaesityksen aikaväli</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Diaesitys</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Aktivointi</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Ei nimeä</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Albumin nimi jo käytössä</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Ei kohteita</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 sekuntia</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">On jo olemassa</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Kaihdin</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Toista</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Valitse kaikki</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Videosoitin</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">sekuntia</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 sekuntia</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Siirto epäonnistui</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Kaikki albumit</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 sekuntia</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Merkkien enimmäismäärä (%d) on saavutettu</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoomaus</text>
+    <text id="IDS_COM_BODY_GALLERY">Galleria</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 sekuntia</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Ristikuva</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Ei voi nimetä uudelleen</text>
+    <text id="IDS_COM_BODY_VIDEO">Video</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_MEDIABR_BODY_SUBTITLES">Tekstitys</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Diaesitys</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Lataukset</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Luodaanko kansio?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Vaihda nimi</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Dia</text>
+    <text id="IDS_COM_BODY_MOVE">Siirrä</text>
+    <text id="IDS_IV_BODY_INTERVAL">Väli</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Valmis</text>
+    <text id="IDS_COM_POP_DELETE_Q">Poistetaanko?</text>
+    <text id="IDS_COM_BODY_EDIT">Muokkaa</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Merkkien enimmäismäärä (%d) on saavutettu</text>
+    <text id="IDS_COM_SK_DONE">Valmis</text>
+</string_table>
diff --git a/res/fra-CA.xml b/res/fra-CA.xml
new file mode 100644 (file)
index 0000000..f4ed3f7
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Nb. max. de caractères atteint</text>
+    <text id="IDS_COM_BODY_DELETE">Supprimer</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albums</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s existe déjà</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Pellicule</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Créer un album</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Effet de transition</text>
+    <text id="IDS_COM_POP_CANCEL">Annuler</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Existe déjà. L'écraser?</text>
+    <text id="IDS_COM_BODY_EMAIL">Courriel</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Suppression impossible</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Sélectionner tout</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Page</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Échec de suppression</text>
+    <text id="IDS_COM_BODY_SELECTED">Sélectionné</text>
+    <text id="IDS_COM_BODY_MUSIC">Musique</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Fondu</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 secondes</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Échec de l'opération</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Mode aléatoire</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Annuler</text>
+    <text id="IDS_COM_HEADER_EDIT">Modifier</text>
+    <text id="IDS_COM_BODY_IMAGES">Images</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Retirer?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Vidéos</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Intervalle du diaporama</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Diaporama</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Activation</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Aucun nom</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Nom d'album déjà utilisé</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Aucun élément</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 secondes</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Existe déjà</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Stores vénitiens</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Répéter</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Sélectionner tout</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Lecteur vidéo</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">secondes</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 secondes</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Échec du déplacement</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Tous les albums</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 secondes</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Nombre maximum de caractères (%d) atteint</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoom</text>
+    <text id="IDS_COM_BODY_GALLERY">Galerie</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 secondes</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Fondu enchainé</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Impossible de renommer l'élément</text>
+    <text id="IDS_COM_BODY_VIDEO">Vidéo</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_MEDIABR_BODY_SUBTITLES">Sous-titres</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Diaporama</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Télécharg.</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Créer un dossier ?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Modifier le nom</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Diapo</text>
+    <text id="IDS_COM_BODY_MOVE">Déplacer</text>
+    <text id="IDS_IV_BODY_INTERVAL">Intervalle</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">OK</text>
+    <text id="IDS_COM_POP_DELETE_Q">Supprimer ?</text>
+    <text id="IDS_COM_BODY_EDIT">Modifier</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Nombre maximum de caractères (%d) atteint</text>
+    <text id="IDS_COM_SK_DONE">OK</text>
+</string_table>
diff --git a/res/fra-FR.xml b/res/fra-FR.xml
new file mode 100644 (file)
index 0000000..5435fc3
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Nb. max. de caractères atteint</text>
+    <text id="IDS_COM_BODY_DELETE">Supprimer</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albums</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s existe déjà</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Pellicule</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Créer un album</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Effet de transition</text>
+    <text id="IDS_COM_POP_CANCEL">Annuler</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Existe déjà. L' écraser ?</text>
+    <text id="IDS_COM_BODY_EMAIL">Email</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Suppression impossible</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Sélect. tt</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Page</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Échec de suppression</text>
+    <text id="IDS_COM_BODY_SELECTED">Sélectionné</text>
+    <text id="IDS_COM_BODY_MUSIC">Musique</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Fondu</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 secondes</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Échec de l'opération</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Mode aléatoire</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Annuler</text>
+    <text id="IDS_COM_HEADER_EDIT">Modifier</text>
+    <text id="IDS_COM_BODY_IMAGES">Images</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Supprimer ?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Vidéos</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Intervalle du diaporama</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Diaporama</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Activation</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Aucun nom</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Nom d'album déjà utilisé</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Aucun élément</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 secondes</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Existe déjà</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Stores vénitiens</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Répéter</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Sélect. tout</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Lecteur vidéo</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">secondes</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 secondes</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Échec du déplacement</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Tous les albums</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 secondes</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_IV_OPT_ZOOM">Zoom</text>
+    <text id="IDS_COM_BODY_GALLERY">Galerie</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 secondes</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Fondu enchaîné</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Impossible de renommer l'élément</text>
+    <text id="IDS_COM_BODY_VIDEO">Vidéo</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_MEDIABR_BODY_SUBTITLES">Sous-titres</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Diaporama</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Téléchargements</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Créer un dossier ?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Modifier le nom</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Défilement</text>
+    <text id="IDS_COM_BODY_MOVE">Déplacer</text>
+    <text id="IDS_IV_BODY_INTERVAL">Intervalle</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">OK</text>
+    <text id="IDS_COM_POP_DELETE_Q">Supprimer ?</text>
+    <text id="IDS_COM_BODY_EDIT">Modifier</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_COM_SK_DONE">Effectué</text>
+</string_table>
diff --git a/res/gle-IE.xml b/res/gle-IE.xml
new file mode 100644 (file)
index 0000000..bf5b8c8
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Uaslíon na gcarachtar bainte amach</text>
+    <text id="IDS_COM_BODY_DELETE">Scrios</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albaim</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">Tá %s ann cheana</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Rolla ceamara</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Déan albam</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Maisíocht trasdula</text>
+    <text id="IDS_COM_POP_CANCEL">Cuir ar ceal</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Feileastram</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Ann cheana. Forscríobh?</text>
+    <text id="IDS_COM_BODY_EMAIL">R-phost</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Ní féidir scriosadh</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Rogh. gach</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Leathanach</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Theip ar scriosadh</text>
+    <text id="IDS_COM_BODY_SELECTED">Roghnaithe</text>
+    <text id="IDS_COM_BODY_MUSIC">Ceol</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Céimnigh</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 shoicind</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Theip ar oibríocht</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Suaitheadh</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Cuir ar ceal</text>
+    <text id="IDS_COM_HEADER_EDIT">Cuir in eagar</text>
+    <text id="IDS_COM_BODY_IMAGES">Íomhánna</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Bain?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Físeáin</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Eatramh taispeántais sleamhnán</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Sleamhnán</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Gníomhachtú</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Níl ainm ann</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Ainm albaim in úsáid cheana</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Níl míreanna ann</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 soicind</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Ann cheana</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Dallóg</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Déan arís</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Roghnaigh gach</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Seinnteoir Físeán</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">soicindí</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 shoicind</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Theip ar bhogadh</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Gach albam</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 soicind</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Uaslíon na gcarachtar (%d) bainte amach</text>
+    <text id="IDS_IV_OPT_ZOOM">Zúmáil</text>
+    <text id="IDS_COM_BODY_GALLERY">Gailearaí</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 shoicind</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Leáigh</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Ní féidir athainmniú</text>
+    <text id="IDS_COM_BODY_VIDEO">Físeán</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_MEDIABR_BODY_SUBTITLES">Fotheidil</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Taispeántas sleamhnán</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Ioslódálacha</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Déan fillteán?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Athraigh ainm</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Sleamhnán</text>
+    <text id="IDS_COM_BODY_MOVE">Bog</text>
+    <text id="IDS_IV_BODY_INTERVAL">Eatramh</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Curtha i gcrích</text>
+    <text id="IDS_COM_POP_DELETE_Q">Scrios?</text>
+    <text id="IDS_COM_BODY_EDIT">Cuir in eagar</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Uaslíon na gcarachtar (%d) bainte amach</text>
+    <text id="IDS_COM_SK_DONE">Déanta</text>
+</string_table>
diff --git a/res/glg-ES.xml b/res/glg-ES.xml
new file mode 100644 (file)
index 0000000..ffbc26f
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Número máximo de caracteres alcanzado</text>
+    <text id="IDS_COM_BODY_DELETE">Eliminar</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Álbums</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s xa existe</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Rolo de cámara</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Crear álbum</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Efecto de transición</text>
+    <text id="IDS_COM_POP_CANCEL">Cancelar</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Xa existe. Sobrescribir?</text>
+    <text id="IDS_COM_BODY_EMAIL">Correo electrónico</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Non se pode eliminar</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Selec todo</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Páxina</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Erro ao eliminar</text>
+    <text id="IDS_COM_BODY_SELECTED">Seleccionado</text>
+    <text id="IDS_COM_BODY_MUSIC">Música</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Atenuar</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 segundos</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Fallo na operación</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Orde aleatoria</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Cancelar</text>
+    <text id="IDS_COM_HEADER_EDIT">Editar</text>
+    <text id="IDS_COM_BODY_IMAGES">Imaxes</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Eliminar?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Vídeos</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Intervalo de presentación</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Diapos</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Activación</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Sen nome</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Nome de álbum xa en uso</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Sen elementos</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 segundos</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Xa existe</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Persiana</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Repetir</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Seleccionar todo</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Reprodutor de Vídeo</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">segundos</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 segundos</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Erro ao mover</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Todos os álbums</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 segundos</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_IV_OPT_ZOOM">Zoom</text>
+    <text id="IDS_COM_BODY_GALLERY">Galería</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 segundos</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Fundir</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Non se pode cambiar o nome</text>
+    <text id="IDS_COM_BODY_VIDEO">Vídeo</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_MEDIABR_BODY_SUBTITLES">Subtítulos</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Presentación de diapositivas</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Descargas</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Crear carpeta?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Cambiar nome</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Diapositiva</text>
+    <text id="IDS_COM_BODY_MOVE">Mover</text>
+    <text id="IDS_IV_BODY_INTERVAL">Intervalo</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Completada</text>
+    <text id="IDS_COM_POP_DELETE_Q">Eliminar?</text>
+    <text id="IDS_COM_BODY_EDIT">Editar</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_COM_SK_DONE">Finalizado</text>
+</string_table>
diff --git a/res/hin-IN.xml b/res/hin-IN.xml
new file mode 100644 (file)
index 0000000..94545f5
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">वर्णो की संख्‍या अधिकतम पहुँची</text>
+    <text id="IDS_COM_BODY_DELETE">हटाएँ</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">अल्बम्स</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s पहले से मौजूद है</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">कैमरा रोल</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">अल्बम बनाएँ</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">परिवर्तन प्रभाव</text>
+    <text id="IDS_COM_POP_CANCEL">रद्द करें</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">आइरिस</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">पहले से मौजूद है। ओवरराइट करें?</text>
+    <text id="IDS_COM_BODY_EMAIL">ईमेल</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">हटाने में अक्षम</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">सभी चुनें</text>
+    <text id="IDS_EBOOK_BODY_PAGE">पेज</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">हटाना विफल</text>
+    <text id="IDS_COM_BODY_SELECTED">चुना गया</text>
+    <text id="IDS_COM_BODY_MUSIC">संगीत</text>
+    <text id="IDS_MEDIABR_BODY_FADE">फीका</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 सेकंड</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">कार्रवाई विफल</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">शफ़ल</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">रद्द करें</text>
+    <text id="IDS_COM_HEADER_EDIT">संपादित करें</text>
+    <text id="IDS_COM_BODY_IMAGES">छवियाँ</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">हटाएँ?</text>
+    <text id="IDS_COM_BODY_VIDEOS">विडियो</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">स्लाइड शो अंतराल</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">स्लाइड शो</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">सक्रियण</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">नाम नहीं</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">अल्बम नाम पहले से उपयोग में</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">कोई मदें नहीं</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 सेकंड</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">पहले से ही मौजूद</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">ब्लाइंड</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">दोहराव</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">सभी चुनें</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">वीडियो प्‍लेयर</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">सेकेंड</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 सेकंड</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">ले जाना विफल हुआ</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">सभी एलबम्‍स</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 सेकंड</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">वर्णों की अधिकतम संख्या (%d) तक पहुँच गया</text>
+    <text id="IDS_IV_OPT_ZOOM">ज़ूम</text>
+    <text id="IDS_COM_BODY_GALLERY">गैलरी</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 सेकंड</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">विलय</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">नाम बदलने में अक्षम</text>
+    <text id="IDS_COM_BODY_VIDEO">विडियो</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">पुनर्नामित करने में अक्षम. अल्बम नाम पहले से उपयोग में</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">उपशीर्षक</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">स्लाइड शो</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">डाउनलोड</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">फोल्डर बनाएं?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">नाम बदलें</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">स्लाइड</text>
+    <text id="IDS_COM_BODY_MOVE">ले जाएँ</text>
+    <text id="IDS_IV_BODY_INTERVAL">अन्तराल</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">पूर्ण</text>
+    <text id="IDS_COM_POP_DELETE_Q">हटाएँ?</text>
+    <text id="IDS_COM_BODY_EDIT">संपादित करें</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">वर्णों की अधिकतम संख्या (%d) तक पहुँच गया</text>
+    <text id="IDS_COM_SK_DONE">हुआ</text>
+</string_table>
diff --git a/res/hrv-HR.xml b/res/hrv-HR.xml
new file mode 100644 (file)
index 0000000..0890a0c
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Maks. broj znakova</text>
+    <text id="IDS_COM_BODY_DELETE">Obriši</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albumi</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s već postoji</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Snimke kamere</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Novi album</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Efekt prijelaza</text>
+    <text id="IDS_COM_POP_CANCEL">Prekid</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Već postoji. Piši preko?</text>
+    <text id="IDS_COM_BODY_EMAIL">Email</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Brisanje nemoguće</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Označi sve</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Stranica</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Brisanje neuspješno</text>
+    <text id="IDS_COM_BODY_SELECTED">Odabrano</text>
+    <text id="IDS_COM_BODY_MUSIC">Glazba</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Zatamni</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 sek</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Neuspješno</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Nasumično</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Prekid</text>
+    <text id="IDS_COM_HEADER_EDIT">Uredi</text>
+    <text id="IDS_COM_BODY_IMAGES">Slike</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Ukloniti?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Video</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Interval prezentacije</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Prezentacija</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Uključivanje</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Nema imena</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Već postoji naziv albuma</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Nema stavki</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 sek</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Već postoji</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Roleta</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Ponavljanje</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Odaberi sve</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Video Player</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">sekundi</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 sek</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Premještanje neuspješno</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Svi albumi</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 sek</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Maksimalan broj znakova (%d)</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoom</text>
+    <text id="IDS_COM_BODY_GALLERY">Album</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 sek</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Razrijedi</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Nemoguće preimenovati</text>
+    <text id="IDS_COM_BODY_VIDEO">Video</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_MEDIABR_BODY_SUBTITLES">Titlovi</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Prezentacija</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Skidanja</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Nova mapa?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Promijenite ime</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Listanje</text>
+    <text id="IDS_COM_BODY_MOVE">Premjesti</text>
+    <text id="IDS_IV_BODY_INTERVAL">Interval</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Obavljeno</text>
+    <text id="IDS_COM_POP_DELETE_Q">Obrisati?</text>
+    <text id="IDS_COM_BODY_EDIT">Uredi</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Maksimalan broj znakova (%d)</text>
+    <text id="IDS_COM_SK_DONE">OK</text>
+</string_table>
diff --git a/res/hun-HU.xml b/res/hun-HU.xml
new file mode 100644 (file)
index 0000000..b4e5602
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Nincs hely több karakternek</text>
+    <text id="IDS_COM_BODY_DELETE">Töröl</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albumok</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">Már van %s nevű fájl</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Filmszalag</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Album létrehozása</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Áttűnés</text>
+    <text id="IDS_COM_POP_CANCEL">Mégse</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Írisz</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Már létezik. Felülírja?</text>
+    <text id="IDS_COM_BODY_EMAIL">E-mail</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Nem törölhető</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Mind kijel.</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Oldal</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Törlés sikertelen</text>
+    <text id="IDS_COM_BODY_SELECTED">Kiválasztott</text>
+    <text id="IDS_COM_BODY_MUSIC">Zenék</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Áttűnés</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 másodperc</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Sikertelen művelet</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Véletlen sorrend</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Mégse</text>
+    <text id="IDS_COM_HEADER_EDIT">Szerkeszt</text>
+    <text id="IDS_COM_BODY_IMAGES">Képek</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Törli?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Videók</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Diabemutató intervalluma</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Diavet.</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Aktivál</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Nincs név</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Ilyen albumnév már van</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Nincs tétel</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 másodperc</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Már létezik</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Rács</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Ismétlés</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Összes kijelölése</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Videolejátszó</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">másodperc</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 másodperc</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Az áthelyezés sikertelen</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Összes album</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 másodperc</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_IV_OPT_ZOOM">Nagyítás</text>
+    <text id="IDS_COM_BODY_GALLERY">Galéria</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 másodperc</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Áttűnés</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Nem lehet átnevezni</text>
+    <text id="IDS_COM_BODY_VIDEO">Videó</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_MEDIABR_BODY_SUBTITLES">Feliratok</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Diavetítés</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Letöltések</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Mappát hoz létre?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Név módosítása</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Dia</text>
+    <text id="IDS_COM_BODY_MOVE">Áthelyez</text>
+    <text id="IDS_IV_BODY_INTERVAL">Intervallum</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Kész</text>
+    <text id="IDS_COM_POP_DELETE_Q">Törli?</text>
+    <text id="IDS_COM_BODY_EDIT">Szerkeszt</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_COM_SK_DONE">Kész</text>
+</string_table>
diff --git a/res/hye-AM.xml b/res/hye-AM.xml
new file mode 100644 (file)
index 0000000..b49fbd9
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Հասել եք նիշերի առավելագույն քանակին</text>
+    <text id="IDS_COM_BODY_DELETE">Ջնջել</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Ալբոմներ</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s-ն արդեն գոյություն ունի</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Խցիկի հոլովակ</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Ստեղծել ալբոմ</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Փոխանցման էֆեկտ</text>
+    <text id="IDS_COM_POP_CANCEL">Չեղարկել</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Ծիածան</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Արդեն գոյություն ունի: Վերագրանցե՞լ</text>
+    <text id="IDS_COM_BODY_EMAIL">Էլ.փոստ</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Անհար է ջնջել</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Ընտրել բլր</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Էջ</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Ջնջումը ձախողվեց</text>
+    <text id="IDS_COM_BODY_SELECTED">Ընտրված</text>
+    <text id="IDS_COM_BODY_MUSIC">Երաժշտությն</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Անհետացող</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 վայրկյան</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Գործողությունը ձախողվեց</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Պատահական</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Չեղարկել</text>
+    <text id="IDS_COM_HEADER_EDIT">Խմբագրել</text>
+    <text id="IDS_COM_BODY_IMAGES">Պատկերներ</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Հեռացնե՞լ</text>
+    <text id="IDS_COM_BODY_VIDEOS">Տեսահոլովակներ</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Սահկահանդեսի միջակայքը</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Սլյդ շոու</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Ակտիվացում</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Անուն չկա</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Ալբմի անունն արդեն գրծվմ է</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Տարրեր չկան</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 վայրկյան</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Արդեն գոյություն ունի</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Գալարավարագույր</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Կրկնել</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Ընտրել բոլորը</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Տեսանվագարկիչ</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">վայրկյաններ</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3  վայրկյան</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Տեղափոխումը ձախողվեց</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Բոլոր ալբոմները</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 վայրկյան</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Հասել է նիշերի առավելագույն քանակին (%d)</text>
+    <text id="IDS_IV_OPT_ZOOM">Մասշտաբ</text>
+    <text id="IDS_COM_BODY_GALLERY">Պատկերասրահ</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 վայրկյան</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Լուծել</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Հնարավոր չէ վերանվանել</text>
+    <text id="IDS_COM_BODY_VIDEO">Վիդեո</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Անհնար է վերանվանել: Ալբոմի անունն արդեն գործածվում է</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Ենթավերնագրեր</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Սլայդ շոու</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Բեռնումներ</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Ստեղծե՞լ թղթապանակ</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Փոխել անունը</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Սլայդ</text>
+    <text id="IDS_COM_BODY_MOVE">Տեղափոխել</text>
+    <text id="IDS_IV_BODY_INTERVAL">Դադար</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Ավարտված է</text>
+    <text id="IDS_COM_POP_DELETE_Q">Ջնջե՞լ</text>
+    <text id="IDS_COM_BODY_EDIT">Խմբագրել</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Հասել է նիշերի առավելագույն քանակին (%d)</text>
+    <text id="IDS_COM_SK_DONE">Պատրաստ</text>
+</string_table>
diff --git a/res/isl-IS.xml b/res/isl-IS.xml
new file mode 100644 (file)
index 0000000..e060c2e
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Hámarksfjölda stafa hefur verið náð</text>
+    <text id="IDS_COM_BODY_DELETE">Eyða</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Möppur</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s er til fyrir</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Myndarúlla</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Búa til albúm</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Skipting</text>
+    <text id="IDS_COM_POP_CANCEL">Hætta við</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Augasteinn</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Er þegar til. Viltu skrifa yfir?</text>
+    <text id="IDS_COM_BODY_EMAIL">Tölvupóstur</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Það er ekki hægt að eyða</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Velja allt</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Síða</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Ekki tókst að eyða</text>
+    <text id="IDS_COM_BODY_SELECTED">Valið</text>
+    <text id="IDS_COM_BODY_MUSIC">Tónlist</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Lækka</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 sekúndur</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Aðgerð mistókst</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Stokka</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Hætta við</text>
+    <text id="IDS_COM_HEADER_EDIT">Breyta</text>
+    <text id="IDS_COM_BODY_IMAGES">Myndir</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Á að fjarlægja?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Myndskeið</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Tími milli mynda</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Skyggnur</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Virkjun</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Ekkert heiti</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Heitið er þegar í notkun</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Engin atriði</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 sekúndur</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Er þegar til</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Rimlagardína</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Endurtaka</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Velja allt</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Myndspilari</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">sekúndur</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 sekúndur</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Ekki tókst að flytja</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Allar plötur</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 sekúndur</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Hámarkfjölda stafa (%d) hefur verið náð</text>
+    <text id="IDS_IV_OPT_ZOOM">Aðdráttur</text>
+    <text id="IDS_COM_BODY_GALLERY">Gallerí</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 sekúndur</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Leysa upp</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Mistókst að breyta heiti</text>
+    <text id="IDS_COM_BODY_VIDEO">Myndskeið</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_MEDIABR_BODY_SUBTITLES">Texti</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Glærusýning</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Niðurhal</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Á að búa til möppu?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Breyta heiti</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Glæra</text>
+    <text id="IDS_COM_BODY_MOVE">Færa</text>
+    <text id="IDS_IV_BODY_INTERVAL">Bil</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Lokið</text>
+    <text id="IDS_COM_POP_DELETE_Q">Á að eyða?</text>
+    <text id="IDS_COM_BODY_EDIT">Breyta</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Hámarkfjölda stafa (%d) hefur verið náð</text>
+    <text id="IDS_COM_SK_DONE">Lokið</text>
+</string_table>
diff --git a/res/ita-IT.xml b/res/ita-IT.xml
new file mode 100644 (file)
index 0000000..a2853b1
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Raggiunto numero massimo di caratteri</text>
+    <text id="IDS_COM_BODY_DELETE">Elimina</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Album</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s esiste già</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Foto personali</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Crea album</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Effetto di transizione</text>
+    <text id="IDS_COM_POP_CANCEL">Annulla</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iride</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Già esistente. Sovrascrivere?</text>
+    <text id="IDS_COM_BODY_EMAIL">E-mail</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Impossibile eliminare</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Sel. tutto</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Pagina</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Eliminazione non riuscita</text>
+    <text id="IDS_COM_BODY_SELECTED">Selezionato</text>
+    <text id="IDS_COM_BODY_MUSIC">Musica</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Sfumatura</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 secondi</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Operazione non eseguita</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Riproduzione casuale</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Annulla</text>
+    <text id="IDS_COM_HEADER_EDIT">Modifica</text>
+    <text id="IDS_COM_BODY_IMAGES">Immagini</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Rimuovere?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Video</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Intervallo presentazione</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Present.</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Attivazione</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Nessun nome</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Nome album già in uso</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Nessun elemento</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 secondi</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Già esiste</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Veneziana</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Ripeti</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Seleziona tutto</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Lettore video</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">secondi</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 secondi</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Spostamento non riuscito</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Tutti gli album</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 secondi</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Raggiunto numero massimo di caratteri (%d)</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoom</text>
+    <text id="IDS_COM_BODY_GALLERY">Galleria</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 secondi</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Dissolvenza</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Impossibile rinominare</text>
+    <text id="IDS_COM_BODY_VIDEO">Video</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_MEDIABR_BODY_SUBTITLES">Sottotitoli</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Presentazione</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Download</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Creare cartella?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Cambia nome</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Scorrimento</text>
+    <text id="IDS_COM_BODY_MOVE">Sposta</text>
+    <text id="IDS_IV_BODY_INTERVAL">Intervallo</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Fatto</text>
+    <text id="IDS_COM_POP_DELETE_Q">Eliminare?</text>
+    <text id="IDS_COM_BODY_EDIT">Modifica</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Raggiunto numero massimo di caratteri (%d)</text>
+    <text id="IDS_COM_SK_DONE">Fatto</text>
+</string_table>
diff --git a/res/jpn-JP.xml b/res/jpn-JP.xml
new file mode 100644 (file)
index 0000000..578f445
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">最大文字数に達しました。</text>
+    <text id="IDS_COM_BODY_DELETE">削除</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">アルバム</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%sは既に存在します。</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">カメラロール</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">アルバム​作成</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">通過効果</text>
+    <text id="IDS_COM_POP_CANCEL">キャンセル</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">アイリス</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">同名ファイルがあります。上書きしますか?</text>
+    <text id="IDS_COM_BODY_EMAIL">Eメール</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">削除できません。</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">全て選択</text>
+    <text id="IDS_EBOOK_BODY_PAGE">ページ</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">削除できませんでした。</text>
+    <text id="IDS_COM_BODY_SELECTED">選択済み</text>
+    <text id="IDS_COM_BODY_MUSIC">音楽</text>
+    <text id="IDS_MEDIABR_BODY_FADE">フェード</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2秒</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">操作に失敗しました。</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">シャッフル</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">キャンセル</text>
+    <text id="IDS_COM_HEADER_EDIT">編集</text>
+    <text id="IDS_COM_BODY_IMAGES">画像</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">削除しますか?</text>
+    <text id="IDS_COM_BODY_VIDEOS">動画</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">スライドショーの間隔</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">スライドショー</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">アクティベーション</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">名前なし</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">アルバム名は既に使用しています。</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">アイテムがありません。</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10秒</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">既に登録されています。</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">ブラインド</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">繰り返し</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">全て選択</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">動画</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">秒</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3秒</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">移動に失敗しました。</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">全アルバム</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20秒</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">最大文字数(%d)に達しました。</text>
+    <text id="IDS_IV_OPT_ZOOM">ズーム</text>
+    <text id="IDS_COM_BODY_GALLERY">ギャラリー</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5秒</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">ディゾルブ</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">名前を変更できません。</text>
+    <text id="IDS_COM_BODY_VIDEO">動画</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">名前​を​変更​できません。​アルバム名​は​既に​使用​されて​います</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">字幕</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">スライドショー</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">ダウンロード</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">フォルダを作成しますか?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">名前を変更</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">スライド</text>
+    <text id="IDS_COM_BODY_MOVE">移動</text>
+    <text id="IDS_IV_BODY_INTERVAL">間隔</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">完了しました。</text>
+    <text id="IDS_COM_POP_DELETE_Q">削除しますか?</text>
+    <text id="IDS_COM_BODY_EDIT">編集</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">最大文字数(%d)に達しました。</text>
+    <text id="IDS_COM_SK_DONE">完了</text>
+</string_table>
diff --git a/res/kat-GE.xml b/res/kat-GE.xml
new file mode 100644 (file)
index 0000000..de0b8ed
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">მიღწეულია სიმბოლოების მაქსიმალური რაოდენობა</text>
+    <text id="IDS_COM_BODY_DELETE">წაშლა</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">ალბომები</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s უკვე არსებობს</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">ვიდეოფრაგმენტი</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">ალბომის შექმნა</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">გადასვლის ეფექტი</text>
+    <text id="IDS_COM_POP_CANCEL">გაუქმება</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">ირისი</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">უკვე არსებობს. გადავაწერო?</text>
+    <text id="IDS_COM_BODY_EMAIL">ელ-ფოსტა</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">წაშლა შეუძლებელია</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">ყველა</text>
+    <text id="IDS_EBOOK_BODY_PAGE">გვერდი</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">წაშლა არ მოხერხდა</text>
+    <text id="IDS_COM_BODY_SELECTED">შერჩეული</text>
+    <text id="IDS_COM_BODY_MUSIC">მუსიკა</text>
+    <text id="IDS_MEDIABR_BODY_FADE">ნელ-ნელა ჩაქრობა</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 წამი</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">ოპერაცია ვერ შესრულდა</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">გადანაცვლება</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">გაუქმება</text>
+    <text id="IDS_COM_HEADER_EDIT">შეცვლა</text>
+    <text id="IDS_COM_BODY_IMAGES">გამოსახულებები</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">წაიშალოს?</text>
+    <text id="IDS_COM_BODY_VIDEOS">ვიდეოები</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">სლაიდ–შოუს ინტერვალი</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">სლაიდ–შოუ</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">გააქტიურება</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">უსახელო</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">ალბომის სახელი უკვე არის</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">ელემენტები არ არის</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 წამი</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">უკვე არის</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">დაბინდვა</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">გამეორება</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">ყველას არჩევა</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">ვიდეო პლეერი</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">წამი</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 წამი</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">გადატანა ვერ შესრულდა</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">ყველა ალბომი</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 წამი</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">მიღწეულია სიმბოლოების მაქსიმალური რაოდენობა (%d)</text>
+    <text id="IDS_IV_OPT_ZOOM">მასშტაბი</text>
+    <text id="IDS_COM_BODY_GALLERY">გალერეა</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 წამი</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">თანდათან გაქრობა</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">სახელს ვერ შეცვლით</text>
+    <text id="IDS_COM_BODY_VIDEO">ვიდეო</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">სახელს ვერ შეცვლით. ალბომის სახელი უკვე გამოყენებულია</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">სუბტიტრები</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">სლაიდშოუ</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">გადმოწერილები</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">შექმნით საქაღალდეს?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">სახელის შეცვლა</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">სლაიდი</text>
+    <text id="IDS_COM_BODY_MOVE">გადატანა</text>
+    <text id="IDS_IV_BODY_INTERVAL">ინტერვალი</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">დასრულდა</text>
+    <text id="IDS_COM_POP_DELETE_Q">წაიშალოს?</text>
+    <text id="IDS_COM_BODY_EDIT">შეცვლა</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">მიღწეულია სიმბოლოების მაქსიმალური რაოდენობა (%d)</text>
+    <text id="IDS_COM_SK_DONE">შესრულდა</text>
+</string_table>
diff --git a/res/kaz-KZ.xml b/res/kaz-KZ.xml
new file mode 100644 (file)
index 0000000..3105c79
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Таңбалардың ен көп саны артты</text>
+    <text id="IDS_COM_BODY_DELETE">Жою</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Альбомдар</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s бар</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Камера білігі</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Альбом жасау</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Өтпелі әсер</text>
+    <text id="IDS_COM_POP_CANCEL">Тоқтату</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Жыланқияқ</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Бар. Қайта жазу керек пе?</text>
+    <text id="IDS_COM_BODY_EMAIL">Эл. пошта</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Жою мүмкін емес</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Барл. таң.</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Бет</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Жою үстінде үзіліп кетті</text>
+    <text id="IDS_COM_BODY_SELECTED">Таңдалды</text>
+    <text id="IDS_COM_BODY_MUSIC">Музыка</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Тегіс пайда болу</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 секунд</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Әрекет сәтсіз аяқталды</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Кездейсоқ тәртіп</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Тоқтату</text>
+    <text id="IDS_COM_HEADER_EDIT">Өзгерту</text>
+    <text id="IDS_COM_BODY_IMAGES">Суреттер</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Жоясыз ба?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Бейнежазбалар</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Слайдшоу аралығы</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Слайдшоу</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Активтеу</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Ондай есім жоқ</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Альбом атауы пайдаланылуда</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Баптар жоқ</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 секунд</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Қолданыста бар</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Көрінбейді</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Қайталау</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Бәрін бөлектеу</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Бейне ойнатқыш</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">секунд</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 секунд</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Орналастырылмады</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Барлық альбомдар</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 секунд</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Ең көп таңбалар санына (%d) жетті</text>
+    <text id="IDS_IV_OPT_ZOOM">Ауқымы</text>
+    <text id="IDS_COM_BODY_GALLERY">Галерея</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 секунд</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Жоқ болу</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Атын өзгерту мүмкін емес</text>
+    <text id="IDS_COM_BODY_VIDEO">Бейне</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Атауын өзгерту мүмкін емес. Альбомның атауы пайдаланылуда</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Субтитрлер</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Слайд-шоу</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Жазылған</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Қалта құрасыз ба?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Атын өзгерту</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Слайд</text>
+    <text id="IDS_COM_BODY_MOVE">Орналастыру</text>
+    <text id="IDS_IV_BODY_INTERVAL">Аралық</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Аяқталды</text>
+    <text id="IDS_COM_POP_DELETE_Q">Өшіресіз бе?</text>
+    <text id="IDS_COM_BODY_EDIT">Өзгерту</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Ең көп таңбалар санына (%d) жетті</text>
+    <text id="IDS_COM_SK_DONE">Дайын</text>
+</string_table>
diff --git a/res/kor-KR.xml b/res/kor-KR.xml
new file mode 100644 (file)
index 0000000..91d6ec0
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">입력 가능한 최대 글자수를 초과하였습니다</text>
+    <text id="IDS_COM_BODY_DELETE">삭제</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">앨범</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s이(가) 저장되어 있습니다</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">카메라 앨범</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">앨범 추가</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">전환 효과</text>
+    <text id="IDS_COM_POP_CANCEL">취소</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">아이리스</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">사용 중인 이름입니다. 덮어쓸까요?</text>
+    <text id="IDS_COM_BODY_EMAIL">이메일</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">삭제할 수 없습니다</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">모두 선택</text>
+    <text id="IDS_EBOOK_BODY_PAGE">페이지</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">삭제하지 못하였습니다</text>
+    <text id="IDS_COM_BODY_SELECTED">단일 선택</text>
+    <text id="IDS_COM_BODY_MUSIC">음악</text>
+    <text id="IDS_MEDIABR_BODY_FADE">페이드</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2초</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">작업을 수행하지 못하였습니다</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">셔플</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">취소</text>
+    <text id="IDS_COM_HEADER_EDIT">편집</text>
+    <text id="IDS_COM_BODY_IMAGES">이미지</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">제거할까요?</text>
+    <text id="IDS_COM_BODY_VIDEOS">동영상</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">슬라이드쇼 전환 간격</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">슬라이드쇼</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">실행</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">이름이 없습니다</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">사용 중인 이름입니다</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">항목이 없습니다</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10초</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">이미 저장되어 있습니다</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">블라인드</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">반복</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">모두 선택</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">비디오 플레이어</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">초</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3초</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">이동하지 못하였습니다</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">모든 앨범</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20초</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">최대 글자 수(%d개)를 초과하였습니다</text>
+    <text id="IDS_IV_OPT_ZOOM">확대/축소</text>
+    <text id="IDS_COM_BODY_GALLERY">갤러리</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5초</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">디졸브</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">이름을 변경할 수 없습니다</text>
+    <text id="IDS_COM_BODY_VIDEO">동영상</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">사용 중인 앨범 이름이므로 변경할 수 없습니다</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">자막</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">슬라이드쇼</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">다운로드 관리</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">폴더를 추가할까요?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">이름 변경</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">슬라이드</text>
+    <text id="IDS_COM_BODY_MOVE">이동</text>
+    <text id="IDS_IV_BODY_INTERVAL">간격</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">완료되었습니다</text>
+    <text id="IDS_COM_POP_DELETE_Q">삭제할까요?</text>
+    <text id="IDS_COM_BODY_EDIT">편집</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">최대 글자 수(%d개)를 초과하였습니다</text>
+    <text id="IDS_COM_SK_DONE">완료</text>
+</string_table>
diff --git a/res/lav-LV.xml b/res/lav-LV.xml
new file mode 100644 (file)
index 0000000..e77c860
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Sasniegts maksimālais rakstzīmju skaits</text>
+    <text id="IDS_COM_BODY_DELETE">Dzēst</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albumi</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s jau pastāv</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Kam.fotoatt.rul.</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Izveidot albumu</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Pārejas efekts</text>
+    <text id="IDS_COM_POP_CANCEL">Atcelt</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Varavīksne</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Jau pastāv. Vai pārrakstīt?</text>
+    <text id="IDS_COM_BODY_EMAIL">E-pasts</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Nevar izdzēst</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Izv. visu</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Lapa</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Neizdevās izdzēst</text>
+    <text id="IDS_COM_BODY_SELECTED">Izvēlēts</text>
+    <text id="IDS_COM_BODY_MUSIC">Mūzika</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Izgaist</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 sekundes</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Darbība neizdevās</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Jaukt</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Atcelt</text>
+    <text id="IDS_COM_HEADER_EDIT">Rediģēt</text>
+    <text id="IDS_COM_BODY_IMAGES">Attēli</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Vai noņemt?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Video</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Slaidrādes intervāls</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Slaidrāde</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Aktivizēšana</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Nav vārda</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Alb.nosauk. jau tiek liet.</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Nav vienumu</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 sekundes</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Jau pastāv</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Aizēnošana</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Atkārtot</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Izv. visu</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Video atskaņotājs</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">sekundes</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 sekundes</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Pārvietošana neizdevās</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Visi albumi</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 sekundes</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Sasniegts maksimālais rakstzīmju skaits (%d)</text>
+    <text id="IDS_IV_OPT_ZOOM">Tālummaiņa</text>
+    <text id="IDS_COM_BODY_GALLERY">Galerija</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 sekundes</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Izšķīdināt</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Nevar pārdēvēt</text>
+    <text id="IDS_COM_BODY_VIDEO">Video</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_MEDIABR_BODY_SUBTITLES">Subtitri</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Slaidrāde</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Lejupielādes</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Vai izveidot mapi?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Mainīt vārdu</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Slaids</text>
+    <text id="IDS_COM_BODY_MOVE">Pārvietot</text>
+    <text id="IDS_IV_BODY_INTERVAL">Intervāls</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Pabeigts</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_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Sasniegts maksimālais rakstzīmju skaits (%d)</text>
+    <text id="IDS_COM_SK_DONE">Gatavs</text>
+</string_table>
diff --git a/res/lit-LT.xml b/res/lit-LT.xml
new file mode 100644 (file)
index 0000000..f6cae22
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Pasiektas didžiausias simbolių skaičius</text>
+    <text id="IDS_COM_BODY_DELETE">Trinti</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albumai</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s jau yra</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Nuotr. rodymas</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Sukurti albumą</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Perėjimo efektas</text>
+    <text id="IDS_COM_POP_CANCEL">Atšaukti</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Rainelė</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Jau yra. Perrašyti?</text>
+    <text id="IDS_COM_BODY_EMAIL">El. paštas</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Ištrinti nepavyko</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Rin. Viską</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Puslapis</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Ištrinti nepavyko</text>
+    <text id="IDS_COM_BODY_SELECTED">Pasirinkta</text>
+    <text id="IDS_COM_BODY_MUSIC">Muzika</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Išblukimas</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 sekundės</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Veiksmas nepavyko</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Maišyti</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Atšaukti</text>
+    <text id="IDS_COM_HEADER_EDIT">Redaguoti</text>
+    <text id="IDS_COM_BODY_IMAGES">Vaizdai</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Ar šalinti?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Vaizdo įrašai</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Skaidrių rodymo intervalas</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Skaid.rod.</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Aktyvinimas</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Nėra vardo</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Albumo pavadinimas jau yra</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Elementų nėra</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 sekundžių</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Jau yra</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Žaliuzės</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Kartoti</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Pasirinkti viską</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Vaizdo įrašų leistuvas</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">sekundės</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 sekundės</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Perkelti nepavyko</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Visi albumai</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 sekundžių</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Pasiektas didžiausias simbolių skaičius (%d)</text>
+    <text id="IDS_IV_OPT_ZOOM">Mastelio keitimas</text>
+    <text id="IDS_COM_BODY_GALLERY">Galerija</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 sekundės</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Panaikinti</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Neįmanoma pervardinti</text>
+    <text id="IDS_COM_BODY_VIDEO">Vaizdo įrašas</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_MEDIABR_BODY_SUBTITLES">Subtitrai</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Skaidrių demonstravimas</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Atsisiųsti elem.</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Ar kurti aplanką?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Keisti vardą</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Skaidrė</text>
+    <text id="IDS_COM_BODY_MOVE">Perkelti</text>
+    <text id="IDS_IV_BODY_INTERVAL">Intervalas</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Atlikta</text>
+    <text id="IDS_COM_POP_DELETE_Q">Ar trinti?</text>
+    <text id="IDS_COM_BODY_EDIT">Redaguoti</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Pasiektas didžiausias simbolių skaičius (%d)</text>
+    <text id="IDS_COM_SK_DONE">Atlikta</text>
+</string_table>
diff --git a/res/mkd-MK.xml b/res/mkd-MK.xml
new file mode 100644 (file)
index 0000000..9a172d6
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Достигнат е максималниот број знаци</text>
+    <text id="IDS_COM_BODY_DELETE">Избриши</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Албуми</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s веќе постои</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Ролна на камера</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Нов албум</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Премин</text>
+    <text id="IDS_COM_POP_CANCEL">Откажи</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Зеница</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Веќе постои. Пресними?</text>
+    <text id="IDS_COM_BODY_EMAIL">Е-пошта</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Не може да се избрише</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Изб. сите</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Страна</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Неуспешно бришење</text>
+    <text id="IDS_COM_BODY_SELECTED">Избраните</text>
+    <text id="IDS_COM_BODY_MUSIC">Музика</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Затемнување</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 секунди</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Неуспешна операција</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Произволно</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Откажи</text>
+    <text id="IDS_COM_HEADER_EDIT">Измени</text>
+    <text id="IDS_COM_BODY_IMAGES">Слики</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Отстрани?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Видео-записи</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Период на слајдовите</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Слајдови</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Активирање</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Нема име</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Името на албумот постои</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Нема записи</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 секунди</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Веќе постои</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Ролетна</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Повторување</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Избери ги сите</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Видео-плеер</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">секунди</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 секунди</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Неуспешно преместување</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Сите албуми</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 секунди</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Достигнат е максималниот број знаци (%d)</text>
+    <text id="IDS_IV_OPT_ZOOM">Зголемено</text>
+    <text id="IDS_COM_BODY_GALLERY">Галерија</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 секунди</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Растворање</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Не може да се преименува</text>
+    <text id="IDS_COM_BODY_VIDEO">Видео-запис</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Не може да се преименува. Името на албумот постои</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Титли</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Слајдови</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Преземено</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Направи нова папка?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Смени име</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Слајд</text>
+    <text id="IDS_COM_BODY_MOVE">Премести</text>
+    <text id="IDS_IV_BODY_INTERVAL">Интервал</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Завршено</text>
+    <text id="IDS_COM_POP_DELETE_Q">Да се избрише?</text>
+    <text id="IDS_COM_BODY_EDIT">Измени</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Достигнат е максималниот број знаци (%d)</text>
+    <text id="IDS_COM_SK_DONE">Готово</text>
+</string_table>
diff --git a/res/nld-NL.xml b/res/nld-NL.xml
new file mode 100644 (file)
index 0000000..38cd2e2
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Maximumaantal tekens bereikt</text>
+    <text id="IDS_COM_BODY_DELETE">Wissen</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albums</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s bestaat al</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Camerarol</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Album maken</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Overgangseffect</text>
+    <text id="IDS_COM_POP_CANCEL">Annuleren</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Bestaat al. Overschrijven?</text>
+    <text id="IDS_COM_BODY_EMAIL">E-mail</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Kan niet verwijderen</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Alles sel.</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Pagina</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Verwijderen mislukt</text>
+    <text id="IDS_COM_BODY_SELECTED">Geselecteerd</text>
+    <text id="IDS_COM_BODY_MUSIC">Muziek</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Uitvloeien</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 seconden</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Bewerking is mislukt</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Willekeurig</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Annuleren</text>
+    <text id="IDS_COM_HEADER_EDIT">Bewerken</text>
+    <text id="IDS_COM_BODY_IMAGES">Afbeeldingen</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Verwijderen?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Video's</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Interval diashow</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Diashow</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Inschakelen</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Geen naam</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Albumnaam al in gebruik</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Geen items</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 seconden</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Bestaat al</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Jaloezie</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Herhalen</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Alles selecteren</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Videospeler</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">seconden</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 seconden</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Verplaatsen is mislukt</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Alle albums</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 seconden</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Maximumaantal tekens (%d) bereikt</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoomen</text>
+    <text id="IDS_COM_BODY_GALLERY">Galerij</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 seconden</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Oplossen</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Kan de naam niet wijzigen</text>
+    <text id="IDS_COM_BODY_VIDEO">Video</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_MEDIABR_BODY_SUBTITLES">Ondertitels</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Diapresentatie</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Downloads</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Map maken?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Naam wijzigen</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Pictogram</text>
+    <text id="IDS_COM_BODY_MOVE">Verplaatsen</text>
+    <text id="IDS_IV_BODY_INTERVAL">Interval</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Voltooid</text>
+    <text id="IDS_COM_POP_DELETE_Q">Verwijderen?</text>
+    <text id="IDS_COM_BODY_EDIT">Bewerken</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Maximumaantal tekens (%d) bereikt</text>
+    <text id="IDS_COM_SK_DONE">Gereed</text>
+</string_table>
diff --git a/res/nob-NO.xml b/res/nob-NO.xml
new file mode 100644 (file)
index 0000000..c7dfbb4
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Nådd maksimalt antall tegn</text>
+    <text id="IDS_COM_BODY_DELETE">Slett</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Album</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s finnes allerede</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Kamerabilder</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Lag album</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Overgangseffekt</text>
+    <text id="IDS_COM_POP_CANCEL">Avbryt</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Finnes allerede. Vil du overskrive?</text>
+    <text id="IDS_COM_BODY_EMAIL">E-post</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Kan ikke slette</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Velg alle</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Side</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Kunne ikke slette</text>
+    <text id="IDS_COM_BODY_SELECTED">Valgt</text>
+    <text id="IDS_COM_BODY_MUSIC">Musikk</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Fade</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 sekunder</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Operasjonen mislyktes</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Tilfeldig avspilling</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Avbryt</text>
+    <text id="IDS_COM_HEADER_EDIT">Rediger</text>
+    <text id="IDS_COM_BODY_IMAGES">Bilder</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Fjerne?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Videoklipp</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Bildefremvisningsintervall</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Bildevisn</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Aktivering</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Ingen navn</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Albumnavn allerede i bruk</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Ingen elementer</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 sekunder</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Finnes allerede</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Persienne</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Gjenta</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Merk alt</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Videospiller</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">sekunder</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 sekunder</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Flyttingen mislyktes</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Alle album</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 sekunder</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Maksimalt antall tegn (%d) er nådd</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoom</text>
+    <text id="IDS_COM_BODY_GALLERY">Galleri</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 sekunder</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Oppløs</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Kan ikke gi nytt navn</text>
+    <text id="IDS_COM_BODY_VIDEO">Videoklipp</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_MEDIABR_BODY_SUBTITLES">Undertekster</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Bildefremvisning</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Nedlast.</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Opprette mappe?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Endre navn</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Lysbilde</text>
+    <text id="IDS_COM_BODY_MOVE">Flytt</text>
+    <text id="IDS_IV_BODY_INTERVAL">Intervall</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Fullført</text>
+    <text id="IDS_COM_POP_DELETE_Q">Slette?</text>
+    <text id="IDS_COM_BODY_EDIT">Rediger</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Maksimalt antall tegn (%d) er nådd</text>
+    <text id="IDS_COM_SK_DONE">Utført</text>
+</string_table>
diff --git a/res/pol-PL.xml b/res/pol-PL.xml
new file mode 100644 (file)
index 0000000..9c07a54
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Osiągnięto maksymalną liczbę znaków</text>
+    <text id="IDS_COM_BODY_DELETE">Usuń</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albumy</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s już istnieje</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Rolka aparatu</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Utwórz album</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Efekt przejścia menu</text>
+    <text id="IDS_COM_POP_CANCEL">Anuluj</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Koło</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Już istnieje. Zamienić?</text>
+    <text id="IDS_COM_BODY_EMAIL">E-mail</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Nie można usunąć</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Zazn. wsz.</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Strony</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Błąd usuwania</text>
+    <text id="IDS_COM_BODY_SELECTED">Wybrany</text>
+    <text id="IDS_COM_BODY_MUSIC">Muzyka</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Zanikanie</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 sek.</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Operacja nie powiodła się</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Kolejność losowa</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Anuluj</text>
+    <text id="IDS_COM_HEADER_EDIT">Edytuj</text>
+    <text id="IDS_COM_BODY_IMAGES">Obrazy</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Usunąć?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Filmy</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Interwał pokazu slajdów</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Pok. slajd</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Aktywacja</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Bez nazwy</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Nazwa albumu już w użyciu</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Brak elementów</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 sek.</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Już istnieje</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Zasłona</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Powtórz</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Zaznacz wszystko</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Odtwarzacz wideo</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">s</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 sek.</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Błąd przenoszenia</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Wszystkie albumy</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 sek.</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Osiągnięto maksymalną liczbę znaków (%d)</text>
+    <text id="IDS_IV_OPT_ZOOM">Powiększenie</text>
+    <text id="IDS_COM_BODY_GALLERY">Galeria</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 sek.</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Przenikanie</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Nie można zmienić nazwy</text>
+    <text id="IDS_COM_BODY_VIDEO">Film</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_MEDIABR_BODY_SUBTITLES">Napisy</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Pokaz slajdów</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Pobrane</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Utworzyć katalog ?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Zmień nazwę</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Slajd</text>
+    <text id="IDS_COM_BODY_MOVE">Przenieś</text>
+    <text id="IDS_IV_BODY_INTERVAL">Okres</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Zakończono</text>
+    <text id="IDS_COM_POP_DELETE_Q">Usunąć?</text>
+    <text id="IDS_COM_BODY_EDIT">Edytuj</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Osiągnięto maksymalną liczbę znaków (%d)</text>
+    <text id="IDS_COM_SK_DONE">Gotowe</text>
+</string_table>
diff --git a/res/por-BR.xml b/res/por-BR.xml
new file mode 100644 (file)
index 0000000..c198dbe
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Número máximo de caracteres atingido</text>
+    <text id="IDS_COM_BODY_DELETE">Apagar</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Álbuns</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s já existente</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Giro da câmera</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Criar álbum</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Efeito de transição</text>
+    <text id="IDS_COM_POP_CANCEL">Cancelar</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Já existe. Substituir?</text>
+    <text id="IDS_COM_BODY_EMAIL">E-mail</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Impossível apagar</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Sel. Tudo</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Página</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Erro ao apagar</text>
+    <text id="IDS_COM_BODY_SELECTED">Selecionado</text>
+    <text id="IDS_COM_BODY_MUSIC">Músicas</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Desbotar</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 segundos</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Operação falhou</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Modo aleatório</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Cancelar</text>
+    <text id="IDS_COM_HEADER_EDIT">Editar</text>
+    <text id="IDS_COM_BODY_IMAGES">Imagens</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Remover?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Vídeos</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Intervalo da apresentação de slides</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Ver slides</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Ativação</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Sem nome</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Nome de álbum existente</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Sem itens</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 segundos</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Já existe</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Persiana</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Repetir</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Selecionar tudo</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Video Player</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">segundos</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 segundos</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Erro ao mover</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Todos os álbuns</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 segundos</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Número máximo de caracteres (%d) atingido</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoom</text>
+    <text id="IDS_COM_BODY_GALLERY">Galeria</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 segundos</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Dissolver</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Impossível renomear</text>
+    <text id="IDS_COM_BODY_VIDEO">Vídeo</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_MEDIABR_BODY_SUBTITLES">Legendas</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Exibição de slides</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Downloads</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">criar pasta?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Alterar nome</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Transição</text>
+    <text id="IDS_COM_BODY_MOVE">Mover</text>
+    <text id="IDS_IV_BODY_INTERVAL">Intervalo</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Concluído</text>
+    <text id="IDS_COM_POP_DELETE_Q">Apagar?</text>
+    <text id="IDS_COM_BODY_EDIT">Editar</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Número máximo de caracteres (%d) atingido</text>
+    <text id="IDS_COM_SK_DONE">Concluído</text>
+</string_table>
diff --git a/res/por-PT.xml b/res/por-PT.xml
new file mode 100644 (file)
index 0000000..e275c9b
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Número máximo de caracteres atingido.</text>
+    <text id="IDS_COM_BODY_DELETE">Eliminar</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Álbuns</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s já existente</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Rolo da câmara</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Criar álbum</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Efeito de transição</text>
+    <text id="IDS_COM_POP_CANCEL">Cancelar</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Íris</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Já existe. Substituir?</text>
+    <text id="IDS_COM_BODY_EMAIL">E-mail</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Impossível apagar.</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Selec. tudo</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Página</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Falha ao apagar</text>
+    <text id="IDS_COM_BODY_SELECTED">Seleccionado</text>
+    <text id="IDS_COM_BODY_MUSIC">Música</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Saída gradual</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 segundos</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Operação falhou</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Aleatório</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Cancelar</text>
+    <text id="IDS_COM_HEADER_EDIT">Editar</text>
+    <text id="IDS_COM_BODY_IMAGES">Imagens</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Remover?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Vídeos</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Duração da apresentação</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Diaporama</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Activação</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Sem nome</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Nome de álbum já utilizado</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Sem itens</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 segundos</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Já existe</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Persiana</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Repetir</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Selec. tudo</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Leitor de Vídeo</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">segundos</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 segundos</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Falha ao mover</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Todos os álbuns</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 segundos</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Número máximo de caracteres (%d) atingido</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoom</text>
+    <text id="IDS_COM_BODY_GALLERY">Galeria</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 segundos</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Dissolver</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Impossível mudar nome</text>
+    <text id="IDS_COM_BODY_VIDEO">Vídeo</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_MEDIABR_BODY_SUBTITLES">Legendas</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Apresentação de slides</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Transferências</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Criar pasta?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Alterar nome</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Slide</text>
+    <text id="IDS_COM_BODY_MOVE">Mover</text>
+    <text id="IDS_IV_BODY_INTERVAL">Intervalo</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Concluída</text>
+    <text id="IDS_COM_POP_DELETE_Q">Eliminar?</text>
+    <text id="IDS_COM_BODY_EDIT">Editar</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Número máximo de caracteres (%d) atingido</text>
+    <text id="IDS_COM_SK_DONE">Concluído</text>
+</string_table>
diff --git a/res/ron-RO.xml b/res/ron-RO.xml
new file mode 100644 (file)
index 0000000..4b545c3
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Adăugare la marcaje</text>
+    <text id="IDS_COM_BODY_DELETE">Ştergere</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albume</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s există deja</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Capturi cameră</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Creare album</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Efect de tranziţie</text>
+    <text id="IDS_COM_POP_CANCEL">Anulare</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Curcubeu</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Există deja. Suprascrieţi?</text>
+    <text id="IDS_COM_BODY_EMAIL">Email</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Imposibil de şters</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Sel. int.</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Pagină</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Ştergerea nu a reuşit</text>
+    <text id="IDS_COM_BODY_SELECTED">Selectat</text>
+    <text id="IDS_COM_BODY_MUSIC">Muzică</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Estompare</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 secunde</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Operaţie nereuşită</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Amestecare</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Anulare</text>
+    <text id="IDS_COM_HEADER_EDIT">Editare</text>
+    <text id="IDS_COM_BODY_IMAGES">Imagini</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Eliminare?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Videoclipuri</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Interval expunere diapozitive</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Ex. diap.</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Activare</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Nici un nume</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Numele este deja în uz</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Niciun element</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 secunde</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Există deja</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Jaluzele</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Repetare</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Selectare toate</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Player video</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">secunde</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 secunde</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Mutarea nu a reuşit</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Toate albumele</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 secunde</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_IV_OPT_ZOOM">Panoramare</text>
+    <text id="IDS_COM_BODY_GALLERY">Galerie</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 secunde</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Dizolvare</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Imposibil de redenumit</text>
+    <text id="IDS_COM_BODY_VIDEO">Videoclip</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_MEDIABR_BODY_SUBTITLES">Subtitrare</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Expuneri diapozitive</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Descărcări</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Creaţi folder?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Schimbare nume</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Diapozitiv</text>
+    <text id="IDS_COM_BODY_MOVE">Mutare</text>
+    <text id="IDS_IV_BODY_INTERVAL">Interval</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Finalizat</text>
+    <text id="IDS_COM_POP_DELETE_Q">Ştergeţi?</text>
+    <text id="IDS_COM_BODY_EDIT">Editare</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_COM_SK_DONE">Gata</text>
+</string_table>
diff --git a/res/rus-RU.xml b/res/rus-RU.xml
new file mode 100644 (file)
index 0000000..f6fde71
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Достигнуто максимальное число символов</text>
+    <text id="IDS_COM_BODY_DELETE">Удалить</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Альбомы</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s уже существует</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Каталог фото</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Создать альбом</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Эффект перехода</text>
+    <text id="IDS_COM_POP_CANCEL">Отмена</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Радуга</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Уже существует. Перезаписать?</text>
+    <text id="IDS_COM_BODY_EMAIL">E-mail</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Невозможно удалить</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Выбр. все</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Страница</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Сбой удаления</text>
+    <text id="IDS_COM_BODY_SELECTED">Выбрано</text>
+    <text id="IDS_COM_BODY_MUSIC">Музыка</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Растворение</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 секунды</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Сбой операции</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Случайный порядок</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Отмена</text>
+    <text id="IDS_COM_HEADER_EDIT">Изменить</text>
+    <text id="IDS_COM_BODY_IMAGES">Картинки</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Удалить?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Видео</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Интервал для слайд-шоу</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Слайд-шоу</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Активация</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Нет имени</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Имя альбома используется</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Нет элементов</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 секунд</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Уже существует</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Жалюзи</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Повторить</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Выбрать все</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Видеоплеер</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">сек.</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 секунды</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Сбой перемещения</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Все альбомы</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 секунд</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Достигнуто максимальное число символов (%d)</text>
+    <text id="IDS_IV_OPT_ZOOM">Масштаб</text>
+    <text id="IDS_COM_BODY_GALLERY">Галерея</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 секунд</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Растворение</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Невозможно переименовать</text>
+    <text id="IDS_COM_BODY_VIDEO">Видео</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Невозможно переименовать. Имя альбома уже используется</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Субтитры</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Слайд-шоу</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Загрузки</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Создать папку?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Изменить имя</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Слайд-шоу</text>
+    <text id="IDS_COM_BODY_MOVE">Переместить</text>
+    <text id="IDS_IV_BODY_INTERVAL">Интервал</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Завершено</text>
+    <text id="IDS_COM_POP_DELETE_Q">Удалить?</text>
+    <text id="IDS_COM_BODY_EDIT">Изменить</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Достигнуто максимальное число символов (%d)</text>
+    <text id="IDS_COM_SK_DONE">Готово</text>
+</string_table>
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_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-size-normal/IDL_FORM.xml b/res/screen-size-normal/IDL_FORM.xml
new file mode 100644 (file)
index 0000000..ae50282
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<!DOCTYPE Scene SYSTEM "UIForm.dtd">
+
+<Scene Bversion="3.0.0.v20120410" Dversion="20120315">
+       <LogicalCoordinate>720</LogicalCoordinate>
+    <Form id="IDL_FORM">
+        <property backgroundColor="" backgroundOpacity="100" 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_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+        <layout mode="Landscape" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+    </Form>
+    <Footer>
+        <property backgroundBitmapPath="" color="" colorOpacity="0" disabledButtonColor="" disabledButtonColorOpacity="0" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="0" disabledItemTextColor="" footerStyle="FOOTER_STYLE_BUTTON_TEXT" 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="true"/>
+        <itemSet/>
+    </Footer>
+    <Header>
+        <property 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="" titleIconPath="" titleText="Album View!!" titleTextColor=""/>
+        <itemSet/>
+    </Header>
+    <Button id="IDC_BUTTON_OK" parent="IDL_FORM">
+        <property disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="0" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="0" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="" normalColor="" normalColorOpacity="0" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="0" pressedTextColor="" text="OK" textSize="32" verticalAlign="ALIGN_MIDDLE"/>
+        <layout bottomRelation="" bottomRelationType="" centerHorizontal="true" centerVertical="true" height="135" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="420" />
+        <layout bottomRelation="" bottomRelationType="" centerHorizontal="true" centerVertical="true" height="102" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="400" />
+    </Button>
+</Scene>
diff --git a/res/slk-SK.xml b/res/slk-SK.xml
new file mode 100644 (file)
index 0000000..f1ffc94
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Bol dosiahnutý maximálny počet znakov</text>
+    <text id="IDS_COM_BODY_DELETE">Odstrániť</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albumy</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s už existuje</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Kat. fotoaparátu</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Vytvoriť album</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Efekt prechodu</text>
+    <text id="IDS_COM_POP_CANCEL">Zrušiť</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Clona</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Už existuje. Prepísať?</text>
+    <text id="IDS_COM_BODY_EMAIL">E-mail</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Nedá sa odstrániť</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Vybrať vš.</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Stránka</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Vymazanie sa nepodarilo</text>
+    <text id="IDS_COM_BODY_SELECTED">Vybrané</text>
+    <text id="IDS_COM_BODY_MUSIC">Hudba</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Stmievanie</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 sekundy</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Operácia zlyhala</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Náhodné poradie</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Zrušiť</text>
+    <text id="IDS_COM_HEADER_EDIT">Upraviť</text>
+    <text id="IDS_COM_BODY_IMAGES">Obrázky</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Odstrániť?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Videá</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Interval prezentácie</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Prezent.</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Aktivácia</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Žiadny názov</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Názov albumu sa už používa</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Žiadne položky</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 sekúnd</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Už existuje</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Roleta</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Opakovať</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Vybrať všetky</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Prehrávač videí</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">sekundy</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 sekundy</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Presunutie sa nepodarilo</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Všetky albumy</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 sekúnd</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Dosiahol sa maximálny počet znakov (%d)</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoom</text>
+    <text id="IDS_COM_BODY_GALLERY">Galéria</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 sekúnd</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Prelínanie</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Nedá sa premenovať</text>
+    <text id="IDS_COM_BODY_VIDEO">Video</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_MEDIABR_BODY_SUBTITLES">Titulky</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Prezentácia</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Stiahnuté položky</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Vytvoriť priečinok?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Zmeniť názov</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Vysunutie</text>
+    <text id="IDS_COM_BODY_MOVE">Presunúť</text>
+    <text id="IDS_IV_BODY_INTERVAL">Interval</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Dokončené</text>
+    <text id="IDS_COM_POP_DELETE_Q">Odstrániť?</text>
+    <text id="IDS_COM_BODY_EDIT">Upraviť</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Dosiahol sa maximálny počet znakov (%d)</text>
+    <text id="IDS_COM_SK_DONE">Hotovo</text>
+</string_table>
diff --git a/res/slv-SI.xml b/res/slv-SI.xml
new file mode 100644 (file)
index 0000000..f578ee8
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Doseženo je največje dovoljeno število znakov</text>
+    <text id="IDS_COM_BODY_DELETE">Izbriši</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albumi</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s že obstaja</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Mapa s slikami</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Ustvari album</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Učinek prehoda</text>
+    <text id="IDS_COM_POP_CANCEL">Prekliči</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Mavrica</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Že obstaja. Prepišem?</text>
+    <text id="IDS_COM_BODY_EMAIL">E-pošta</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Brisanje ni mogoče</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Izberi vse</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Stran</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Brisanje ni uspelo</text>
+    <text id="IDS_COM_BODY_SELECTED">Izbrano</text>
+    <text id="IDS_COM_BODY_MUSIC">Glasba</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Zatemnitev</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 sekundi</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Postopek ni uspel</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Naključno</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Prekliči</text>
+    <text id="IDS_COM_HEADER_EDIT">Uredi</text>
+    <text id="IDS_COM_BODY_IMAGES">Slike</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Odstranim?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Videoposnetki</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Interval diaprojekcije</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Diaproj.</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Vklop</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Brez imena</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Ime albuma se že uporablja</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Ni predmetov</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 sekund</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Že obstaja</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Zastor</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Ponovi</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Izberi vse</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Video predvajalnik</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">sekund</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 sekunde</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Premikanje ni uspelo</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Vsi albumi</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 sekund</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Doseženo je največje število znakov (%d)</text>
+    <text id="IDS_IV_OPT_ZOOM">Povečava</text>
+    <text id="IDS_COM_BODY_GALLERY">Galerija</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 sekund</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Raztopi</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Ni mogoče preimenovati</text>
+    <text id="IDS_COM_BODY_VIDEO">Video</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_MEDIABR_BODY_SUBTITLES">Podnapisi</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Diaprojekcija</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Prenosi</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Ustvarim mapo?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Spremeni ime</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Prehod</text>
+    <text id="IDS_COM_BODY_MOVE">Premakni</text>
+    <text id="IDS_IV_BODY_INTERVAL">Interval</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Končano</text>
+    <text id="IDS_COM_POP_DELETE_Q">Izbrišem?</text>
+    <text id="IDS_COM_BODY_EDIT">Uredi</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Doseženo je največje število znakov (%d)</text>
+    <text id="IDS_COM_SK_DONE">Končano</text>
+</string_table>
diff --git a/res/spa-ES.xml b/res/spa-ES.xml
new file mode 100644 (file)
index 0000000..f09c366
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Alcanzado el número máximo de caracteres</text>
+    <text id="IDS_COM_BODY_DELETE">Eliminar</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Álbumes</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s ya existe</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Carrete</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Crear álbum</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Efecto de transición</text>
+    <text id="IDS_COM_POP_CANCEL">Cancelar</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Ya existe. ¿Desea reemplazarlo?</text>
+    <text id="IDS_COM_BODY_EMAIL">Correo electrónico</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">No se puede eliminar</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Sele. todo</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Página</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Error al borrar</text>
+    <text id="IDS_COM_BODY_SELECTED">Seleccionado</text>
+    <text id="IDS_COM_BODY_MUSIC">Música</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Desaparición</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 segundos</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Error de funcionamiento</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Reproducción aleatoria</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Cancelar</text>
+    <text id="IDS_COM_HEADER_EDIT">Editar</text>
+    <text id="IDS_COM_BODY_IMAGES">Imágenes</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">¿Eliminar?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Vídeos</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Intervalo de presentación de diapositivas</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Pres diap</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Activación</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Sin nombre</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Nombre de álbum ya en uso</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Ningún elemento</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 segundos</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Ya existe</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Efecto persiana</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Repetir</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Seleccionar todo</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Reproductor de vídeo</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">segundos</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 segundos</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Error al mover</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Todos los álbumes</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 segundos</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Número máximo de caracteres (%d) alcanzado</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoom</text>
+    <text id="IDS_COM_BODY_GALLERY">Galería</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 segundos</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Fundir</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Imposible cambiar el nombre</text>
+    <text id="IDS_COM_BODY_VIDEO">Vídeo</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_MEDIABR_BODY_SUBTITLES">Subtítulos</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Presentación de diapositivas</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Descargas</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">¿Crear carpeta?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Cambiar nombre</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Diapositiva</text>
+    <text id="IDS_COM_BODY_MOVE">Mover</text>
+    <text id="IDS_IV_BODY_INTERVAL">Intervalo</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Finalizado</text>
+    <text id="IDS_COM_POP_DELETE_Q">¿Eliminar?</text>
+    <text id="IDS_COM_BODY_EDIT">Editar</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Número máximo de caracteres (%d) alcanzado</text>
+    <text id="IDS_COM_SK_DONE">Hecho</text>
+</string_table>
diff --git a/res/spa-MX.xml b/res/spa-MX.xml
new file mode 100644 (file)
index 0000000..ff0f491
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" 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_COM_BODY_DELETE">Eliminar</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Álbumes</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s ya existe</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Carrete</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Crear álbum</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Efecto de transición</text>
+    <text id="IDS_COM_POP_CANCEL">Cancelar</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Ya existe. ¿Desea reemplazarlo?</text>
+    <text id="IDS_COM_BODY_EMAIL">Correo</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">No puede eliminar</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Todo</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Página</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Error al eliminar</text>
+    <text id="IDS_COM_BODY_SELECTED">Seleccionado</text>
+    <text id="IDS_COM_BODY_MUSIC">Música</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Aparecer</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 segundos</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Error de funcionamiento</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Aleatorio</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Cancelar</text>
+    <text id="IDS_COM_HEADER_EDIT">Editar</text>
+    <text id="IDS_COM_BODY_IMAGES">Imágenes</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">¿Eliminar?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Videos</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Intervalo de presentación de diapositivas</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Pres diap</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Activación</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Sin nombre</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Nombre de álbum ya existe</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Ningún elemento</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 segundos</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Ya existe</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Persiana</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Repetir</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Seleccionar todo</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Reproductor de Video</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">segundos</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 segundos</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Error al mover</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Todos los álbumes</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 segundos</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Número máximo de caracteres (%d) alcanzado</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoom</text>
+    <text id="IDS_COM_BODY_GALLERY">Galería</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 segundos</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Fundir</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">No se puede renombrar</text>
+    <text id="IDS_COM_BODY_VIDEO">Video</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_MEDIABR_BODY_SUBTITLES">Subtítulos</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Presentación de diapositivas </text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Descargas</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">crear carpeta?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Renombrar</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Deslizar</text>
+    <text id="IDS_COM_BODY_MOVE">Mover</text>
+    <text id="IDS_IV_BODY_INTERVAL">Intervalo</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Completo</text>
+    <text id="IDS_COM_POP_DELETE_Q">¿Eliminar?</text>
+    <text id="IDS_COM_BODY_EDIT">Editar</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Número máximo de caracteres (%d) alcanzado</text>
+    <text id="IDS_COM_SK_DONE">Realizado</text>
+</string_table>
diff --git a/res/srp-RS.xml b/res/srp-RS.xml
new file mode 100644 (file)
index 0000000..977b13f
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Dostignut maksimalan broj karaktera</text>
+    <text id="IDS_COM_BODY_DELETE">Obriši</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albumi</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s već postoji</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Traka kamere</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Kreiraj album</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Efekat prelaza</text>
+    <text id="IDS_COM_POP_CANCEL">Poništi</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Već postoji. Prebriši?</text>
+    <text id="IDS_COM_BODY_EMAIL">E-pošta</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Nemoguće obrisati</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Izab. sve</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Strana</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Brisanje neuspešno</text>
+    <text id="IDS_COM_BODY_SELECTED">Označeno</text>
+    <text id="IDS_COM_BODY_MUSIC">Muzika</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Izbledi</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 sekunde</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Operacija neuspešna</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Nasumično</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Poništi</text>
+    <text id="IDS_COM_HEADER_EDIT">Izmeni</text>
+    <text id="IDS_COM_BODY_IMAGES">Slike</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Ukloni?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Video zapisi</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Interval za slajd-šou</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Slajd-šou</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Aktivacija</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Nema imena</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Naziv albuma već u upotr.</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Nema stavki</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 sekundi</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Već postoji</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Roletna</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Ponovi</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Izaberi sve</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Video plejer</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">sekunde</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 sekunde</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Premeštanje neuspešno</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Svi albumi</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 sekundi</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Dostignut maksimalan broj karaktera (%d)</text>
+    <text id="IDS_IV_OPT_ZOOM">Zumiranje</text>
+    <text id="IDS_COM_BODY_GALLERY">Galerija</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 sekundi</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Rastvori</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Nemoguće preimenovati</text>
+    <text id="IDS_COM_BODY_VIDEO">Video zapis</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_MEDIABR_BODY_SUBTITLES">Titlovi</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Slajd-šou</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Preuzimanja</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Kreiraj folder?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Promeni ime</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Slajd</text>
+    <text id="IDS_COM_BODY_MOVE">Premesti</text>
+    <text id="IDS_IV_BODY_INTERVAL">Interval</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Završeno</text>
+    <text id="IDS_COM_POP_DELETE_Q">Obriši?</text>
+    <text id="IDS_COM_BODY_EDIT">Izmeni</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Dostignut maksimalan broj karaktera (%d)</text>
+    <text id="IDS_COM_SK_DONE">Gotovo</text>
+</string_table>
diff --git a/res/swe-SE.xml b/res/swe-SE.xml
new file mode 100644 (file)
index 0000000..c311d98
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Maximalt antal tecken har använts</text>
+    <text id="IDS_COM_BODY_DELETE">Radera</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Album</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s finns redan</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Kamerarulle</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Skapa album</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Övergångseffekt</text>
+    <text id="IDS_COM_POP_CANCEL">Avbryt</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Används redan.\nSkriv över?</text>
+    <text id="IDS_COM_BODY_EMAIL">E-post</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Kan inte radera</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Välj allt</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Sida</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Radering misslyckades</text>
+    <text id="IDS_COM_BODY_SELECTED">Markerade</text>
+    <text id="IDS_COM_BODY_MUSIC">Musik</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Tona</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 sekunder</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Åtgärden misslyckades</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Blanda</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Avbryt</text>
+    <text id="IDS_COM_HEADER_EDIT">Redigera</text>
+    <text id="IDS_COM_BODY_IMAGES">Bilder</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Ta bort?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Videoklipp</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Bildspelsintervall</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Bildspel</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Aktivera</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Inget namn</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Albumnamnet används redan</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Inga objekt</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 sekunder</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Finns redan</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Fördragning</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Upprepa</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Välj alla</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Videospelare</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">sekunder</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 sekunder</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Det gick inte att flytta</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Alla album</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 sekunder</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Högsta antal tecken (%d) har uppnåtts</text>
+    <text id="IDS_IV_OPT_ZOOM">Zoom</text>
+    <text id="IDS_COM_BODY_GALLERY">Galleri</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 sekunder</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Lös upp</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Kan inte byta namn</text>
+    <text id="IDS_COM_BODY_VIDEO">Videoklipp</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_MEDIABR_BODY_SUBTITLES">Textning</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Bildspel</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Nedladdningar</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Skapa mapp?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Byt namn</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Bild</text>
+    <text id="IDS_COM_BODY_MOVE">Flytta</text>
+    <text id="IDS_IV_BODY_INTERVAL">Intervall</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Slutförd</text>
+    <text id="IDS_COM_POP_DELETE_Q">Radera?</text>
+    <text id="IDS_COM_BODY_EDIT">Redigera</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Högsta antal tecken (%d) har uppnåtts</text>
+    <text id="IDS_COM_SK_DONE">Klar</text>
+</string_table>
diff --git a/res/tur-TR.xml b/res/tur-TR.xml
new file mode 100644 (file)
index 0000000..b4a9497
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Maksimum karakter sayısına ulaşıldı</text>
+    <text id="IDS_COM_BODY_DELETE">Sil</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albümler</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s zaten var</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Kamera klasörü</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Albüm oluştur</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Geçiş efekti</text>
+    <text id="IDS_COM_POP_CANCEL">İptal</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">İris</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Zaten var. Üzerine yazılsın mı?</text>
+    <text id="IDS_COM_BODY_EMAIL">E-posta</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Silinemiyor</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Tümünü seç</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Sayfa</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Silinemedi</text>
+    <text id="IDS_COM_BODY_SELECTED">Seçili</text>
+    <text id="IDS_COM_BODY_MUSIC">Müzik</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Soldur</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 saniye</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">İşlem başarısız</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Karışık</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">İptal</text>
+    <text id="IDS_COM_HEADER_EDIT">Düzenle</text>
+    <text id="IDS_COM_BODY_IMAGES">Resimler</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Kaldır?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Videolar</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Slayt gösterisi aralığı</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Slayt şov</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Etkinleştirme</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">İsim yok</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Albüm adı zaten kullanılıyor</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Öğe yok</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 saniye</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Zaten var</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Kör</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Tekrarla</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Hepsini seç</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Video Oynatıcı</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">saniye</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 saniye</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Taşıma başarısız</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Tüm albümler</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 saniye</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Maksimum karakter sayısına (%d) ulaşıldı</text>
+    <text id="IDS_IV_OPT_ZOOM">Yakınlaştır</text>
+    <text id="IDS_COM_BODY_GALLERY">Galeri</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 saniye</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Çöz</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Yeniden adlandırılamıyor. Dosya kullanımda.</text>
+    <text id="IDS_COM_BODY_VIDEO">Video</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_MEDIABR_BODY_SUBTITLES">Altyazılar</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Slayt gösterisi</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">İndirilenler</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Klasör oluşturulsun mu?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">İsim değiştir</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Slayt</text>
+    <text id="IDS_COM_BODY_MOVE">Taşı</text>
+    <text id="IDS_IV_BODY_INTERVAL">Aralık</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Tamamlandı</text>
+    <text id="IDS_COM_POP_DELETE_Q">Sil?</text>
+    <text id="IDS_COM_BODY_EDIT">Düzenle</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Maksimum karakter sayısına (%d) ulaşıldı</text>
+    <text id="IDS_COM_SK_DONE">Kaydet</text>
+</string_table>
diff --git a/res/ukr-UA.xml b/res/ukr-UA.xml
new file mode 100644 (file)
index 0000000..71cba66
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Досягнуто максимальної кількості символів</text>
+    <text id="IDS_COM_BODY_DELETE">Видалити</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Альбоми</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s вже існує</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Плівка камери</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Створити альбом</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Ефект переходу</text>
+    <text id="IDS_COM_POP_CANCEL">Скасувати</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Ірісова діафрагма</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Вже існує. Переписати?</text>
+    <text id="IDS_COM_BODY_EMAIL">Email</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Неможливо видалити</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Вибр. всі</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Сторінка</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Збій видалення</text>
+    <text id="IDS_COM_BODY_SELECTED">Вибране</text>
+    <text id="IDS_COM_BODY_MUSIC">Музика</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Загасання</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 секунди</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Збій операції</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Випадковий порядок</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Скасувати</text>
+    <text id="IDS_COM_HEADER_EDIT">Редагувати</text>
+    <text id="IDS_COM_BODY_IMAGES">Зображення</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Видалити?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Відео</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Інтервал слайд-шоу</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Слайд-шоу</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Активація</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Немає імені</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Ім’я альбому вже викор.</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Немає об’єктів</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 секунд</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Вже існує</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Жалюзі</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Повторення</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Вибрати всі</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Відеоплеєр</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">секунди</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 секунди</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Збій переміщення</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Усі альбоми</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 секунд</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Досягнуто максимальної кількості символів: %d</text>
+    <text id="IDS_IV_OPT_ZOOM">Масштаб</text>
+    <text id="IDS_COM_BODY_GALLERY">Галерея</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 секунд</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Розчинення</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Неможливо перейменувати</text>
+    <text id="IDS_COM_BODY_VIDEO">Відео</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">Неможливо перейменувати. Ім’я альбому вже використовується</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">Субтитри</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Слайд-шоу</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Завантаження</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Створити папку?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Змінити ім'я</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Слайд</text>
+    <text id="IDS_COM_BODY_MOVE">Перемістити</text>
+    <text id="IDS_IV_BODY_INTERVAL">Інтервал</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Завершено</text>
+    <text id="IDS_COM_POP_DELETE_Q">Видалити?</text>
+    <text id="IDS_COM_BODY_EDIT">Редагувати</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Досягнуто максимальної кількості символів: %d</text>
+    <text id="IDS_COM_SK_DONE">Готово</text>
+</string_table>
diff --git a/res/uzb-UZ.xml b/res/uzb-UZ.xml
new file mode 100644 (file)
index 0000000..bbdca24
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">Belgilar soni ruxsat etilgan maksimal miqdorga yetdi</text>
+    <text id="IDS_COM_BODY_DELETE">O'chirish</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">Albom</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s avvaldan mavjud</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">Kamera roli</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">Albom yaratish</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">Almashuvchi effekt</text>
+    <text id="IDS_COM_POP_CANCEL">Bekor qilish</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Gulsapsar</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">Avvaldan mavjud. Ustidan yozilsinmi?</text>
+    <text id="IDS_COM_BODY_EMAIL">E-pochta</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">Yo‘q qilib bo‘lmaydi</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">Bar. tanla</text>
+    <text id="IDS_EBOOK_BODY_PAGE">Sahifa</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">Yo‘q qilish bajarilmadi</text>
+    <text id="IDS_COM_BODY_SELECTED">Tanlangan</text>
+    <text id="IDS_COM_BODY_MUSIC">Musiqa</text>
+    <text id="IDS_MEDIABR_BODY_FADE">Xiralashish</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 soniya</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">Operatsiya bajarilmadi</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">Tasodifiy</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">Bekor qilish</text>
+    <text id="IDS_COM_HEADER_EDIT">Tahrirlash</text>
+    <text id="IDS_COM_BODY_IMAGES">Tasvirlar</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">Olib tashlansinmi?</text>
+    <text id="IDS_COM_BODY_VIDEOS">Videolar</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">Slayd-shou intervali</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">Slayd-shou</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">Faollashtirish</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">Nom yo‘q</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">Albom nomi ishlatilmoqda</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">Elementlar yo‘q</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 soniya</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">Avvaldan mavjud</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">Jalyuzi</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">Takrorlash</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">Barchasini tanlash</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">Video pleyer</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">soniya</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 soniya</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">Ko‘chirib bo‘lmadi</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">Barcha albomlar</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 soniya</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Belgilar soni ruxsat etilgan maksimal miqdorga (%d) yetdi</text>
+    <text id="IDS_IV_OPT_ZOOM">Masshtabni o‘zgartirish</text>
+    <text id="IDS_COM_BODY_GALLERY">Galereya</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 soniya</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">Erish</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">Nomini o‘zgartirib bo‘lmaydi</text>
+    <text id="IDS_COM_BODY_VIDEO">Video</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_MEDIABR_BODY_SUBTITLES">Tagsarlavhalar</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">Slayd-shou</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">Yuklanishlar</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">Jild yaratilsinmi?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">Nomni o‘zgartirish</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">Slayd</text>
+    <text id="IDS_COM_BODY_MOVE">Ko‘chirish</text>
+    <text id="IDS_IV_BODY_INTERVAL">Interval</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">Yakunlandi</text>
+    <text id="IDS_COM_POP_DELETE_Q">O'chirilsinmi?</text>
+    <text id="IDS_COM_BODY_EDIT">Tahrirlash</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">Belgilar soni ruxsat etilgan maksimal miqdorga (%d) yetdi</text>
+    <text id="IDS_COM_SK_DONE">Bajarildi</text>
+</string_table>
diff --git a/res/zho-CN.xml b/res/zho-CN.xml
new file mode 100644 (file)
index 0000000..90f2706
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">已达到最大字符限制</text>
+    <text id="IDS_COM_BODY_DELETE">删除</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">专辑</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s 已存在</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">滚动照相机</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">新建相册</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">转换效果</text>
+    <text id="IDS_COM_POP_CANCEL">取消</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">彩色效果</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">已存在。覆盖?</text>
+    <text id="IDS_COM_BODY_EMAIL">电子邮件</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">无法删除</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">选择全部</text>
+    <text id="IDS_EBOOK_BODY_PAGE">页面</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">删除失败</text>
+    <text id="IDS_COM_BODY_SELECTED">已选择</text>
+    <text id="IDS_COM_BODY_MUSIC">音乐</text>
+    <text id="IDS_MEDIABR_BODY_FADE">淡出</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 秒</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">操作失败</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">随机播放</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">取消</text>
+    <text id="IDS_COM_HEADER_EDIT">编辑</text>
+    <text id="IDS_COM_BODY_IMAGES">图片</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">移除?</text>
+    <text id="IDS_COM_BODY_VIDEOS">视频</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">幻灯片播放间隔</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">幻灯片</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">激活</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">无名称</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">相册名已使用</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">无项目</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 秒</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">已经存在</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">百叶窗</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">重复</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">全选</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">视频播放器</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">秒</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 秒</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">移动失败</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">所有相册</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 秒</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">已达到最大字符数(%d)</text>
+    <text id="IDS_IV_OPT_ZOOM">缩放</text>
+    <text id="IDS_COM_BODY_GALLERY">图库</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 秒</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">溶解</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">无法重命名</text>
+    <text id="IDS_COM_BODY_VIDEO">录像</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">无法重命名。相册名已使用</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">字幕</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">幻灯片</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">下载列表</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">创建文件夹吗?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">更改名称</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">幻灯片</text>
+    <text id="IDS_COM_BODY_MOVE">移动</text>
+    <text id="IDS_IV_BODY_INTERVAL">间隔</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">已完成</text>
+    <text id="IDS_COM_POP_DELETE_Q">删除?</text>
+    <text id="IDS_COM_BODY_EDIT">编辑</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">已达到最大字符数(%d)</text>
+    <text id="IDS_COM_SK_DONE">完成</text>
+</string_table>
diff --git a/res/zho-HK.xml b/res/zho-HK.xml
new file mode 100644 (file)
index 0000000..ecef1a1
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">字元數目已達上限</text>
+    <text id="IDS_COM_BODY_DELETE">刪除</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">專輯</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s 已存在</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">相簿</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">建立相簿</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">過場效果</text>
+    <text id="IDS_COM_POP_CANCEL">取消</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">光圈</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">已存在。要覆蓋嗎?</text>
+    <text id="IDS_COM_BODY_EMAIL">電子郵件</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">無法刪除</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">選擇全部</text>
+    <text id="IDS_EBOOK_BODY_PAGE">頁面</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">刪除失敗</text>
+    <text id="IDS_COM_BODY_SELECTED">已選擇</text>
+    <text id="IDS_COM_BODY_MUSIC">音樂</text>
+    <text id="IDS_MEDIABR_BODY_FADE">褪色</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 秒</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">操作失敗</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">隨機播放</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">取消</text>
+    <text id="IDS_COM_HEADER_EDIT">編輯</text>
+    <text id="IDS_COM_BODY_IMAGES">圖像</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">要移除嗎?</text>
+    <text id="IDS_COM_BODY_VIDEOS">影片</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">投影片間隔</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">投影片放映</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">啟動</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">無名稱</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">相簿名稱已使用</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">無項目</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 秒</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">已存在</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">百葉窗</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">重複</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">選擇全部</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">影片播放器</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">秒</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 秒</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">移動失敗</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">全部專輯</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 秒</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">已達字元數目上限 (%d)</text>
+    <text id="IDS_IV_OPT_ZOOM">縮放</text>
+    <text id="IDS_COM_BODY_GALLERY">媒體瀏覽器</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 秒</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">融化</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">無法重新命名</text>
+    <text id="IDS_COM_BODY_VIDEO">影片</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">無法重新命名。相簿名稱已使用</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">字幕</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">投影片播放</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">下載項目</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">要建立資料夾嗎?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">更改名稱</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">滑動</text>
+    <text id="IDS_COM_BODY_MOVE">移動</text>
+    <text id="IDS_IV_BODY_INTERVAL">間隔</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">已完成</text>
+    <text id="IDS_COM_POP_DELETE_Q">刪除嗎?</text>
+    <text id="IDS_COM_BODY_EDIT">編輯</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">已達字元數目上限 (%d)</text>
+    <text id="IDS_COM_SK_DONE">完成</text>
+</string_table>
diff --git a/res/zho-SG.xml b/res/zho-SG.xml
new file mode 100644 (file)
index 0000000..957704a
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">已达最大字符数量</text>
+    <text id="IDS_COM_BODY_DELETE">删除</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">相册</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s 已存在</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">滚动照相机</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">新建相册</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">转换效果</text>
+    <text id="IDS_COM_POP_CANCEL">取消</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">Iris 效果</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">已存在。覆盖?</text>
+    <text id="IDS_COM_BODY_EMAIL">电邮</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">无法删除</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">选择全部</text>
+    <text id="IDS_EBOOK_BODY_PAGE">页面</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">删除失败</text>
+    <text id="IDS_COM_BODY_SELECTED">已选定</text>
+    <text id="IDS_COM_BODY_MUSIC">音乐</text>
+    <text id="IDS_MEDIABR_BODY_FADE">淡出</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2秒</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">操作失败</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">随机播放</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">取消</text>
+    <text id="IDS_COM_HEADER_EDIT">编辑</text>
+    <text id="IDS_COM_BODY_IMAGES">图像</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">移除?</text>
+    <text id="IDS_COM_BODY_VIDEOS">录像</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">幻灯片播放间隔</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">幻灯片</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">启动</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">无名称</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">相册名已使用</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">无项目</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 秒</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">已经存在</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">百叶窗</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">重复</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">全选</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">视频播放器</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">秒</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3秒</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">移动失败</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">所有相册</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20秒</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">已达到最大字符数(%d)</text>
+    <text id="IDS_IV_OPT_ZOOM">变焦</text>
+    <text id="IDS_COM_BODY_GALLERY">画廊</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5秒</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">溶化</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">无法重命名</text>
+    <text id="IDS_COM_BODY_VIDEO">录像</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">无法重命名。相册名已使用</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">说明字幕</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">幻灯片播放</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">下载</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">创建文件夹吗?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">更改名称</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">滑动</text>
+    <text id="IDS_COM_BODY_MOVE">移动</text>
+    <text id="IDS_IV_BODY_INTERVAL">间隔</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">已完成</text>
+    <text id="IDS_COM_POP_DELETE_Q">删除?</text>
+    <text id="IDS_COM_BODY_EDIT">编辑</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">已达到最大字符数(%d)</text>
+    <text id="IDS_COM_SK_DONE">已完成</text>
+</string_table>
diff --git a/res/zho-TW.xml b/res/zho-TW.xml
new file mode 100644 (file)
index 0000000..4383a9c
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<string_table Bversion="3.0.0.201302021409" Dversion="20120315">
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED">已達字元數上限</text>
+    <text id="IDS_COM_BODY_DELETE">刪除</text>
+    <text id="IDS_MEDIABR_BUTTON_ALBUMS">相簿</text>
+    <text id="IDS_COM_POP_PS_ALREADY_EXISTS">%s 已存在</text>
+    <text id="IDS_MEDIABR_BODY_CAMERA_ROLL_ABB">相簿</text>
+    <text id="IDS_MEDIABR_OPT_CREATE_ALBUM">建立專輯</text>
+    <text id="IDS_MEDIABR_BODY_TRANSITION_EFFECT">轉換效果</text>
+    <text id="IDS_COM_POP_CANCEL">取消</text>
+    <text id="IDS_MEDIABR_MBODY_IRIS_M_EFFECT">光圈</text>
+    <text id="IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q">已存在。要覆寫嗎?</text>
+    <text id="IDS_COM_BODY_EMAIL">電子郵件</text>
+    <text id="IDS_COM_POP_UNABLE_TO_DELETE">無法刪除</text>
+    <text id="IDS_COM_BODY_SELECT_ALL_ABB">選擇所有</text>
+    <text id="IDS_EBOOK_BODY_PAGE">頁面</text>
+    <text id="IDS_COM_POP_DELETE_FAILED">刪除失敗</text>
+    <text id="IDS_COM_BODY_SELECTED">已選擇</text>
+    <text id="IDS_COM_BODY_MUSIC">音樂</text>
+    <text id="IDS_MEDIABR_BODY_FADE">淡化</text>
+    <text id="IDS_MEDIABR_OPT_2_SECONDS">2 秒</text>
+    <text id="IDS_COM_BODY_OPERATION_FAILED">操作失敗</text>
+    <text id="IDS_MEDIABR_BODY_SHUFFLE">隨機播放</text>
+    <text id="IDS_COM_BODY_EDIT_CANCEL">取消</text>
+    <text id="IDS_COM_HEADER_EDIT">編輯</text>
+    <text id="IDS_COM_BODY_IMAGES">圖像</text>
+    <text id="IDS_MEDIABR_POPUP_REMOVE_Q">要移除嗎?</text>
+    <text id="IDS_COM_BODY_VIDEOS">影片</text>
+    <text id="IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL">投影片放映間隔</text>
+    <text id="IDS_MEDIABR_BUTTON_SLIDE_SHOW">投影片放映</text>
+    <text id="IDS_MEDIABR_BODY_ACTIVATION">啟動</text>
+    <text id="IDS_MEDIABR_POP_NO_NAME">無姓名</text>
+    <text id="IDS_MEDIABR_POP_ALBUM_NAME_ALREADY_IN_USE_ABB">相簿名稱已被使用</text>
+    <text id="IDS_COM_BODY_NO_ITEMS">無項目</text>
+    <text id="IDS_MEDIABR_BODY_10_SECONDS">10 秒</text>
+    <text id="IDS_COM_POP_ALREDY_EXISTS">已存在</text>
+    <text id="IDS_MEDIABR_BODY_BLIND">百頁窗</text>
+    <text id="IDS_MEDIABR_BODY_REPEAT">重複</text>
+    <text id="IDS_COM_BODY_SELECT_ALL">全選</text>
+    <text id="IDS_COM_BODY_VIDEO_PLAYER">影片播放器</text>
+    <text id="IDS_COM_BODY_SECONDS_LC">秒</text>
+    <text id="IDS_MEDIABR_OPT_3_SECONDS">3 秒</text>
+    <text id="IDS_COM_POP_MOVING_FAILED">移動失敗</text>
+    <text id="IDS_MEDIABR_BODY_ALL_ALBUMS">所有相簿</text>
+    <text id="IDS_MEDIABR_BODY_20_SECONDS">20 秒</text>
+    <text id="IDS_IV_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">達到%個最大字元</text>
+    <text id="IDS_IV_OPT_ZOOM">縮放</text>
+    <text id="IDS_COM_BODY_GALLERY">媒體瀏覽器</text>
+    <text id="IDS_MEDIABR_BODY_5_SECONDS">5 秒</text>
+    <text id="IDS_MEDIABR_BODY_DISSOLVE">分解</text>
+    <text id="IDS_MEDIABR_POP_UNABLE_TO_RENAME">無法重新命名</text>
+    <text id="IDS_COM_BODY_VIDEO">影片</text>
+    <text id="IDS_MEDIABR_BODY_UNABLE_TO_RENAME_ALBUM_NAME_ALREADY_IN_USE_ABB">無法重新命名。相簿名稱已被使用</text>
+    <text id="IDS_MEDIABR_BODY_SUBTITLES">字幕</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE_SHOW">投影片放映</text>
+    <text id="IDS_COM_BODY_DOWNLOADS">下載</text>
+    <text id="IDS_MEDIABR_POP_CREATE_FOLDER_Q">要建立資料夾嗎?</text>
+    <text id="IDS_COM_BODY_CHANGE_NAME">變更名稱</text>
+    <text id="IDS_MEDIABR_OPT_SLIDE">投影片</text>
+    <text id="IDS_COM_BODY_MOVE">移動</text>
+    <text id="IDS_IV_BODY_INTERVAL">間隔</text>
+    <text id="IDS_MEDIABR_POP_COMPLETED">已完成</text>
+    <text id="IDS_COM_POP_DELETE_Q">要刪除嗎?</text>
+    <text id="IDS_COM_BODY_EDIT">編輯</text>
+    <text id="IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_HPD_REACHED">達到%個最大字元</text>
+    <text id="IDS_COM_SK_DONE">完成</text>
+</string_table>
diff --git a/shared/data/GalleryDefaultSettings.ini b/shared/data/GalleryDefaultSettings.ini
new file mode 100644 (file)
index 0000000..5c13ef3
--- /dev/null
@@ -0,0 +1,3 @@
+#IMAGE_VIEWER_SETTING
+SLIDESHOW_INTERVAL_VALUE=3
+TRANSITION_EFFECT_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..3205a57
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..db43812
--- /dev/null
@@ -0,0 +1,474 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               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;
+
+static const int FORMAT_BUFFER_SIZE = 256;
+
+AlbumInfo::AlbumInfo(void)
+ :__albumName(EMPTY_SPACE)
+ ,__pDirectoryFullPathList(null)
+ ,__pContentIdList(null)
+ ,__folderThumnailBitmapCount(0)
+{
+       for (int i = 0; i < FOLDER_BITMAP_MAX; ++i)
+       {
+               __pFolderThumnailBitmap[i] = null;
+       }
+}
+
+AlbumInfo::~AlbumInfo(void)
+{
+       if (__pDirectoryFullPathList != null)
+       {
+               delete __pDirectoryFullPathList;
+       }
+
+       if (__pContentIdList != null)
+       {
+               delete __pContentIdList;
+       }
+
+       for (int i = 0; i < FOLDER_BITMAP_MAX; ++i)
+       {
+               if (__pFolderThumnailBitmap[i] != null)
+               {
+                       delete __pFolderThumnailBitmap[i];
+               }
+       }
+}
+
+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;
+       pEnum = null;
+
+       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;
+       pEnum = null;
+}
+
+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;
+       pEnum = null;
+
+       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)
+       {
+               r = E_SUCCESS;
+       }
+       else
+       {
+               delete __pDirectoryFullPathList;
+               delete __pContentIdList;
+               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;
+       pEnum = null;
+
+       int thumnailCount = __pContentIdList->GetCount();
+       if (thumnailCount >= FOLDER_BITMAP_MAX)
+       {
+               __folderThumnailBitmapCount = FOLDER_BITMAP_MAX;
+       }
+       else
+       {
+               __folderThumnailBitmapCount = thumnailCount;
+       }
+}
+
+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(int index)
+{
+       result r = E_SUCCESS;
+
+       if (__pContentIdList != null)
+       {
+               r = __pContentIdList->RemoveAt(index, true);
+       }
+
+       return r;
+}
+
+int
+AlbumInfo::GetFolderThumnailBitmapCount(void) const
+{
+       return __folderThumnailBitmapCount;
+}
+
+void
+AlbumInfo::AppendFolderThumnailBitmap(Bitmap* FolderThumnailBitmap, int index)
+{
+       if (index >= FOLDER_BITMAP_MAX)
+       {
+               return;
+       }
+
+       __pFolderThumnailBitmap[index] = FolderThumnailBitmap;
+}
+
+Bitmap*
+AlbumInfo::GetFolderThumnailBitmap(int index)
+{
+       if (index >= FOLDER_BITMAP_MAX)
+       {
+               return null;
+       }
+
+       return __pFolderThumnailBitmap[index];
+}
+
+int
+AlbumInfo::GetEmptyBitmapIndex(void)
+{
+       int empty = FOLDER_BITMAP_MAX;
+
+       for (int i = 0; i < __folderThumnailBitmapCount; ++i)
+       {
+               if (i >= FOLDER_BITMAP_MAX)
+               {
+                       break;
+               }
+
+               if (__pFolderThumnailBitmap[i] == null)
+               {
+                       empty = i;
+                       break;
+               }
+       }
+       return empty;
+}
+
+String
+AlbumInfo::GetCreateDateString(void) const
+{
+       return __createFileDateString;
+}
+
+void
+AlbumInfo::SetCreateDateString(String& strMinimumDate, String& strMaximumDate)
+{
+       String resultTime;
+
+       if (strMinimumDate == strMaximumDate)
+       {
+               resultTime.Format(FORMAT_BUFFER_SIZE, L"%ls", strMaximumDate.GetPointer());
+       }
+       else
+       {
+               resultTime.Format(FORMAT_BUFFER_SIZE, L"%ls - %ls", strMinimumDate.GetPointer(),
+                               strMaximumDate.GetPointer());
+       }
+
+       __createFileDateString = resultTime;
+}
+
+AlbumInfoType
+AlbumInfo::GetAlbumInfoType(void)
+{
+       return ALBUM_INFO_TYPE_FOLDER;
+}
diff --git a/src/GlAlbumListEditorForm.cpp b/src/GlAlbumListEditorForm.cpp
new file mode 100644 (file)
index 0000000..4561cec
--- /dev/null
@@ -0,0 +1,843 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlAlbumListEditorForm.cpp
+ * @brief              This is the implementation file for AlbumListEditorForm class.
+ */
+
+#include <FApp.h>
+#include "GlAlbumInfo.h"
+#include "GlAlbumListEditorForm.h"
+#include "GlAlbumListPresentationModel.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::Media;
+using namespace Tizen::Io;
+using namespace Tizen::System;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+static const unsigned int COLOR_SELECT_COUNT_LABEL = Color32<68, 68, 68>::Value;
+static const unsigned int COLOR_SELECT_COUNT_FONT = Color32<255, 255, 255>::Value;
+
+static const int W_FOLDER_SIZE = 334;
+static const int H_FOLDER_SIZE = 334;
+
+static const int W_BUTTON_RENAME_SIZE = 64;
+static const int H_BUTTON_RENAME_SIZE = 64;
+
+static const int GAP_W_POPUP_ITEM = 5;
+static const int W_DELETE_POPUP = 600;
+static const int H_DELETE_POPUP = 300;
+static const int H_DELETE_LABEL = 180;
+static const int Y_DELETE_BUTTON = 180;
+static const int H_DELETE_BUTTON = 80;
+
+static const int X_POSITION_ICON_LIST_VIEW = 0;
+static const int Y_POSITION_ICON_LIST_VIEW = 80;
+
+static const int H_CHECKBOX = 80;
+static const int GAP_H_ICON_LIST_VIEW = 40;
+
+static const int H_SELECT_COUNT_LABEL = 48;
+
+static const int FORMAT_BUFFER_SIZE = 256;
+
+static const int X_POSITION_SHARE_CONTEXTMENU = 300;
+static const int Y_POSITION_SHARE_CONTEXTMENU = 1180;
+
+static const Color COLOR_FOLDER_BITMAP_DIM(Color::GetColor(COLOR_ID_BLACK));
+static const int ALPHA_FOLDER_BITMAP_DIM = 70;
+
+AlbumListEditorForm::AlbumListEditorForm()
+       : __checkedCount(0)
+       , __pAllCheckButton(null)
+       , __pSelectCountLabel(null)
+       , __pEditorFolderIconList(null)
+       , __pShareContextMenu(null)
+       , __pDeletePopup(null)
+       , __pEditFolderBitmap(null)
+       , __pPresentationModel(null)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+AlbumListEditorForm::~AlbumListEditorForm()
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+result
+AlbumListEditorForm::Initialize(void)
+{
+       AppLogDebug("ENTER");
+       result r = Construct(FORM_STYLE_NORMAL | FORM_STYLE_INDICATOR | FORM_STYLE_HEADER | FORM_STYLE_FOOTER);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+result
+AlbumListEditorForm::OnInitializing(void)
+{
+       AppLogDebug("ENTER");
+       result r = E_SUCCESS;
+
+       SetRenameButtonImage();
+
+       __pPresentationModel = AlbumListPresentationModel::GetInstance();
+       __pPresentationModel->ClearThumbnailRequests();
+       __pPresentationModel->AddPresentationModelListener(this);
+
+       r = InitializeHeader();
+       if (r != E_SUCCESS)
+       {
+               AppLogDebug("[%s] Unable to InitializeHeader.", GetErrorMessage(r));
+       }
+
+       r = InitializeFooter();
+       if (r != E_SUCCESS)
+       {
+               AppLogDebug("[%s] Unable to set InitializeFooter.", GetErrorMessage(r));
+       }
+
+       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");
+       __pPresentationModel->RemovePresentationModelListener(*this);
+
+       if (__pDeletePopup != null)
+       {
+               delete __pDeletePopup;
+               __pDeletePopup = null;
+       }
+
+       if (__pEditFolderBitmap != null)
+       {
+               delete __pEditFolderBitmap;
+               __pEditFolderBitmap = null;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+void
+AlbumListEditorForm::OnUpdateContentList()
+{
+       AppLogDebug("ENTER");
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALBUM_LIST));
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+result
+AlbumListEditorForm::SetRenameButtonImage(void)
+{
+       AppLogDebug("ENTER");
+       Bitmap* pSrcBitmap1 = ResourceManager::GetBitmapN(IDB_BUTTON_CIRCLE_BACKGROUND);
+       Bitmap* pSrcBitmap2 = ResourceManager::GetBitmapN(IDB_BUTTON_RENAME);
+
+       Bitmap* pBitmap = new (std::nothrow) Bitmap();
+       BufferInfo bufferinfo;
+       Canvas canvas;
+       Dimension size(W_BUTTON_RENAME_SIZE, H_BUTTON_RENAME_SIZE);
+       result r = pBitmap->Construct(size, BITMAP_PIXEL_FORMAT_ARGB8888);
+       r = pBitmap->Lock(bufferinfo);
+       r = canvas.Construct(bufferinfo);
+
+       if (pSrcBitmap1 != null)
+       {
+               canvas.DrawBitmap(Point(0, 0), *pSrcBitmap1);
+               delete pSrcBitmap1;
+               pSrcBitmap1 = null;
+       }
+       if (pSrcBitmap2 != null)
+       {
+               canvas.DrawBitmap(Point(0, 0), *pSrcBitmap2);
+               delete pSrcBitmap2;
+               pSrcBitmap2 = null;
+       }
+
+       pBitmap->Unlock();
+
+       __pEditFolderBitmap = pBitmap;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+result
+AlbumListEditorForm::InitializeHeader(void)
+{
+       AppLogDebug("ENTER");
+       Header* pHeader = GetHeader();
+       if (pHeader == null)
+       {
+               AppLogDebug("EXIT 1");
+
+               return E_SYSTEM;
+       }
+
+       result r = pHeader->SetStyle(HEADER_STYLE_TITLE);
+       if (r != E_SUCCESS)
+       {
+               AppLogDebug("EXIT 2");
+
+               return r;
+       }
+
+       pHeader->SetTitleText(ResourceManager::GetString(L"IDS_COM_BODY_GALLERY"));
+       pHeader->AddActionEventListener(*this);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+result
+AlbumListEditorForm::InitializeFooter(void)
+{
+       AppLogDebug("ENTER");
+       Footer* pFooter = GetFooter();
+       if (pFooter == null)
+       {
+               AppLogDebug("EXIT 1");
+
+               return E_SYSTEM;
+       }
+
+       pFooter->SetStyle(FOOTER_STYLE_BUTTON_ICON);
+       pFooter->RemoveAllItems();
+       pFooter->SetBackButtonEnabled(true);
+       pFooter->SetBackButton();
+       SetFormBackEventListener(this);
+
+       FooterItem itemShare;
+       itemShare.Construct(ACTION_ID_FOOTER_SHARE);
+       itemShare.SetText(ResourceManager::GetString(L"EMPTY_SPACE"));
+       Bitmap* pBitmap2 = ResourceManager::GetBitmapN(IDB_CONTROLBAR_SHARE);
+       if (pBitmap2 != null)
+       {
+               itemShare.SetIcon(FOOTER_ITEM_STATUS_NORMAL, pBitmap2);
+       }
+       pFooter->AddItem(itemShare);
+       delete pBitmap2;
+
+       FooterItem itemDelete;
+       itemDelete.Construct(ACTION_ID_FOOTER_DELETE);
+       itemDelete.SetText(ResourceManager::GetString(L"EMPTY_SPACE"));
+       Bitmap* pBitmap1 = ResourceManager::GetBitmapN(IDB_CONTROLBAR_DELETE);
+       if (pBitmap1 != null)
+       {
+               itemDelete.SetIcon(FOOTER_ITEM_STATUS_NORMAL, pBitmap1);
+       }
+       pFooter->AddItem(itemDelete);
+       delete pBitmap1;
+       pBitmap1 = null;
+
+
+       pFooter->AddActionEventListener(*this);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+result
+AlbumListEditorForm::InitializeControl()
+{
+       AppLogDebug("ENTER");
+       String tempString;
+
+       CreateIconListView();
+       __checkedCount = GetCheckedFolder();
+       tempString.Format(FORMAT_BUFFER_SIZE, L"%ls (%d)",
+                       ResourceManager::GetString(L"IDS_COM_BODY_SELECTED").GetPointer(), __checkedCount);
+
+       __pAllCheckButton = new (std::nothrow) CheckButton();
+       __pAllCheckButton->Construct(Rectangle(0, 0, GetClientAreaBounds().width, H_CHECKBOX),
+                       CHECK_BUTTON_STYLE_MARK, BACKGROUND_STYLE_DEFAULT, false);
+       __pAllCheckButton->SetText(ResourceManager::GetString(L"IDS_COM_BODY_SELECT_ALL"));
+       __pAllCheckButton->SetActionId(ACTION_ID_CHECK_SELECT_ON, ACTION_ID_CHECK_SELECT_OFF);
+       __pAllCheckButton->SetChromaKeyColor(Color(COLOR_SELECT_COUNT_LABEL));
+       __pAllCheckButton->AddActionEventListener(*this);
+       AddControl(*__pAllCheckButton);
+
+       __pSelectCountLabel = new (std::nothrow) Label();
+       __pSelectCountLabel->Construct(Rectangle(0, GetClientAreaBounds().height - H_SELECT_COUNT_LABEL,
+                       GetClientAreaBounds().width, H_SELECT_COUNT_LABEL), tempString);
+
+       __pSelectCountLabel->SetTextVerticalAlignment(ALIGNMENT_MIDDLE);
+       __pSelectCountLabel->SetTextHorizontalAlignment(ALIGNMENT_CENTER);
+       __pSelectCountLabel->SetBackgroundColor(Color(COLOR_SELECT_COUNT_LABEL));
+       __pSelectCountLabel->SetTextColor(Color(COLOR_SELECT_COUNT_FONT));
+       AddControl(*__pSelectCountLabel);
+
+       __pShareContextMenu = new ContextMenu();
+       __pShareContextMenu->Construct(Point(X_POSITION_SHARE_CONTEXTMENU, Y_POSITION_SHARE_CONTEXTMENU),
+                       CONTEXT_MENU_STYLE_LIST);
+       __pShareContextMenu->AddItem(ResourceManager::GetString(L"IDS_COM_BODY_EMAIL"),ACTION_ID_CONTEXT_MENU_EMAIL);
+       __pShareContextMenu->AddActionEventListener(*this);
+
+       InitializePopup();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+result
+AlbumListEditorForm::InitializePopup(void)
+{
+       AppLogDebug("ENTER");
+       if (__pDeletePopup == null)
+       {
+               __pDeletePopup = new (std::nothrow) Popup();
+               __pDeletePopup->Construct(false, Dimension(W_DELETE_POPUP, H_DELETE_POPUP));
+
+               Rectangle popupClientBounds = __pDeletePopup->GetClientAreaBounds();
+
+               Label* pLabel = new (std::nothrow) Label();
+               pLabel->Construct(Rectangle(0, 0, popupClientBounds.width, H_DELETE_LABEL),
+                               ResourceManager::GetString(L"IDS_COM_POP_DELETE_Q"));
+
+               Button* pDeleteButton = new (std::nothrow) Button();
+               pDeleteButton->Construct(
+                               Rectangle(0, Y_DELETE_BUTTON, popupClientBounds.width / 2 - GAP_W_POPUP_ITEM, H_DELETE_BUTTON),
+                               ResourceManager::GetString(L"IDS_COM_BODY_DELETE"));
+               pDeleteButton->SetActionId(ACTION_ID_DELETE_POPUP_DEL);
+               pDeleteButton->AddActionEventListener(*this);
+
+               Button* pCancelButton = new (std::nothrow) Button();
+               pCancelButton->Construct(
+                               Rectangle(popupClientBounds.width / 2 + GAP_W_POPUP_ITEM, Y_DELETE_BUTTON,
+                               popupClientBounds.width / 2 - GAP_W_POPUP_ITEM, H_DELETE_BUTTON),
+                               ResourceManager::GetString(L"IDS_COM_POP_CANCEL"));
+               pCancelButton->SetActionId(ACTION_ID_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");
+       Dimension itemSize(W_FOLDER_SIZE, H_FOLDER_SIZE);
+       __pEditorFolderIconList = new (std::nothrow) IconListView();
+       __pEditorFolderIconList->Construct(Rectangle(X_POSITION_ICON_LIST_VIEW, Y_POSITION_ICON_LIST_VIEW,
+                       GetClientAreaBounds().width, GetClientAreaBounds().height - H_CHECKBOX - GAP_H_ICON_LIST_VIEW),
+                       itemSize, ICON_LIST_VIEW_STYLE_MARK, ICON_LIST_VIEW_SCROLL_DIRECTION_VERTICAL);
+       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"));
+       __pEditorFolderIconList->SetItemBorderStyle(ICON_LIST_VIEW_ITEM_BORDER_STYLE_NONE);
+       __pEditorFolderIconList->SetItemProvider(*this);
+       __pEditorFolderIconList->SetTouchAnimationEnabled(false);
+       __pEditorFolderIconList->AddIconListViewItemEventListener(*this);
+       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;
+       IconListViewItem* pIconListview = new IconListViewItem();
+
+       IList* pAlbumInfoList = __pPresentationModel->GetAlbumInfoList();
+       AlbumInfo* pAlbumInfo = static_cast<AlbumInfo*>(pAlbumInfoList->GetAt(index));
+       int emptyIndex = pAlbumInfo->GetEmptyBitmapIndex();
+
+       if (emptyIndex != FOLDER_BITMAP_MAX)
+       {
+               __pPresentationModel->RequestThumbnail(index, emptyIndex);
+       }
+
+       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());
+                       pIconListview->Construct(*pBitmap, null, pSelectedBitmap);
+                       delete pSelectedBitmap;
+                       pSelectedBitmap = null;
+               }
+       }
+       else
+       {
+               pIconListview->Construct(*pBitmap);
+       }
+
+       if (pBitmap != null)
+       {
+               delete pBitmap;
+               pBitmap = null;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pIconListview;
+}
+
+void
+AlbumListEditorForm::OnIconListViewItemStateChanged(IconListView& view, int index, IconListViewItemStatus status)
+{
+       AppLogDebug("ENTER");
+       String tempString;
+
+       if (status == ICON_LIST_VIEW_ITEM_CHECKED || status == ICON_LIST_VIEW_ITEM_UNCHECKED)
+       {
+               __checkedCount = GetCheckedFolder();
+               tempString.Format(FORMAT_BUFFER_SIZE, L"%ls (%d)",
+                               ResourceManager::GetString(L"IDS_COM_BODY_SELECTED").GetPointer(), __checkedCount);
+               __pSelectCountLabel->SetText(tempString);
+               __pSelectCountLabel->RequestRedraw();
+               __pEditorFolderIconList->RefreshList(index, LIST_REFRESH_TYPE_ITEM_MODIFY);
+               int maxCount = __pPresentationModel->GetFolderCount();
+
+               if (__pAllCheckButton->IsSelected() == true)
+               {
+                       __pAllCheckButton->SetSelected(false);
+               }
+               else
+               {
+                       if (__checkedCount == maxCount)
+                       {
+                               AppLogDebug("SELECTIONTEST(%d)(%d)",__checkedCount,  maxCount);
+                               __pAllCheckButton->SetSelected(true);
+                       }
+               }
+       }
+       SetButtonState();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumListEditorForm::OnIconListViewOverlayBitmapSelected (IconListView &iconListView, int index,
+               int overlayBitmapId)
+{
+       AppLogDebug("ENTER");
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+
+       if (overlayBitmapId == ACTION_ID_EDITE_FOLDER)
+       {
+               ArrayList* pSelectedIndex = new (std::nothrow) ArrayList(SingleObjectDeleter);
+               pSelectedIndex->Construct();
+               pSelectedIndex->Add(new (std::nothrow) Integer(index));
+
+               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()
+{
+       AppLogDebug("ENTER");
+       int maxCount = __pPresentationModel->GetFolderCount();
+       result r = E_FAILURE;
+
+       int checkedCount = 0;
+
+       for (int i = 0 ; i < maxCount; ++i)
+       {
+               if (__pEditorFolderIconList->IsItemChecked(i) == true)
+               {
+                       ++checkedCount;
+                       __pPresentationModel->DeleteContentInfoInDirectory(i, CONTENT_TYPE_ALL);
+                       if (i == 0)
+                       {
+                               break;
+                       }
+               }
+       }
+
+       if (checkedCount == 0)
+       {
+               r = E_FAILURE;
+       }
+       else
+       {
+               r = E_SUCCESS;
+               __pAllCheckButton->SetSelected(true);
+               __pAllCheckButton->RequestRedraw(true);
+       }
+
+       SetAllCheckState(false);
+       __pPresentationModel->InitializeAlbumInfoList(CONTENT_TYPE_ALL);
+       __pEditorFolderIconList->UpdateList();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+void
+AlbumListEditorForm::SetAllCheckState(bool state)
+{
+       AppLogDebug("ENTER");
+       int maxCount = __pPresentationModel->GetFolderCount();
+       String tempString;
+
+       if (state == true)
+       {
+               tempString.Format(FORMAT_BUFFER_SIZE, L"%ls (%d)",
+                               ResourceManager::GetString(L"IDS_COM_BODY_SELECTED").GetPointer(), maxCount);
+       }
+       else
+       {
+               tempString.Format(FORMAT_BUFFER_SIZE, L"%ls (%d)",
+                               ResourceManager::GetString(L"IDS_COM_BODY_SELECTED").GetPointer(), 0);
+       }
+
+       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 = GetCheckedFolder();
+
+       SetButtonState();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+int
+AlbumListEditorForm::GetCheckedFolder()
+{
+       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 ACTION_ID_CHECK_SELECT_ON:
+               SetAllCheckState(true);
+               break;
+       case ACTION_ID_CHECK_SELECT_OFF:
+               SetAllCheckState(false);
+               break;
+       case ACTION_ID_FOOTER_DELETE:
+               if (__checkedCount > 0)
+               {
+                       __pDeletePopup->SetShowState(true);
+                       __pDeletePopup->Show();
+               }
+               break;
+       case ACTION_ID_FOOTER_SHARE:
+               __pShareContextMenu->SetShowState(true);
+               __pShareContextMenu->Show();
+               break;
+       case ACTION_ID_CONTEXT_MENU_EMAIL:
+       {
+               OnRequestEmailAction();
+               break;
+       }
+       case ACTION_ID_DELETE_POPUP_DEL:
+       {
+               __pDeletePopup->SetShowState(false);
+               __pDeletePopup->Show();
+               result r = DeleteFolder();
+               AppLogDebug("CHECKBUTTONSTATE : R1");
+               if (r == E_SUCCESS)
+               {
+                       AppLogDebug("CHECKBUTTONSTATE : R2");
+                       SceneManager* pSceneManager = SceneManager::GetInstance();
+                       AppAssert(pSceneManager);
+                       pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALBUM_LIST));
+               }
+               AppLogDebug("CHECKBUTTONSTATE : R3");
+               break;
+       }
+       case ACTION_ID_DELETE_POPUP_CANCEL:
+       {
+               __pDeletePopup->SetShowState(false);
+               __pDeletePopup->Show();
+               break;
+       }
+       default:
+               break;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumListEditorForm::OnFormBackRequested(Form& source)
+{
+       AppLogDebug("ENTER");
+       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");
+       __pPresentationModel->InitializeAlbumInfoList(CONTENT_TYPE_ALL);
+       __pEditorFolderIconList->UpdateList();
+
+       __checkedCount = GetCheckedFolder();
+
+       String tempString;
+       tempString.Format(FORMAT_BUFFER_SIZE, L"%ls (%d)",
+                       ResourceManager::GetString(L"IDS_COM_BODY_SELECTED").GetPointer(), __checkedCount);
+       __pSelectCountLabel->SetText(tempString);
+       __pSelectCountLabel->RequestRedraw();
+
+       int maxCount = __pPresentationModel->GetFolderCount();
+       if (__checkedCount != 0 && __checkedCount == maxCount)
+       {
+               __pAllCheckButton->SetSelected(true);
+       }
+       else
+       {
+               __pAllCheckButton->SetSelected(false);
+       }
+
+       SetButtonState();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumListEditorForm::OnSceneDeactivated(const SceneId& currentSceneId,
+                                                                                  const SceneId& nextSceneId)
+{
+       AppLogDebug("ENTER");
+       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()));
+}
+
+result
+AlbumListEditorForm::Update(void)
+{
+       AppLogDebug("ENTER");
+       result r = __pEditorFolderIconList->UpdateList();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+void
+AlbumListEditorForm::OnRequestEmailAction(void)
+{
+       AppLogDebug("ENTER");
+
+       int checkCount = GetCheckedFolder();
+
+       if (checkCount <= 0)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return;
+       }
+
+       String combineText;
+
+       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;
+               }
+               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;
+                                       }
+                                       String path = pContentInfo->GetContentPath();
+                                       if (combineText.CompareTo(EMPTY_SPACE) != 0)
+                                       {
+                                          combineText.Append(L";");
+                                       }
+                                       combineText.Append(path);
+                                }
+
+                                if (i == 0)
+                                {
+                                        break;
+                                }
+                       }
+               }
+
+               HashMap* pDataList = new (std::nothrow) HashMap(SingleObjectDeleter);
+               pDataList->Construct();
+               pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_ATTACHMENTS),
+                               new (std::nothrow) String(combineText));
+
+               __pPresentationModel->StartAppControl(APPCONTROL_PROVIDER_ID_EMAIL,
+                               APPCONTROL_OPERATION_ID_COMPOSE, pDataList, null);
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumListEditorForm::SetFooterButtonsState(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 (GetCheckedFolder() > 0)
+       {
+               AppLogDebug("BUTTONSTATE : Request Enable");
+               SetFooterButtonsState(true);
+       }
+       else
+       {
+               AppLogDebug("BUTTONSTATE : Request disable");
+               SetFooterButtonsState(false);
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
diff --git a/src/GlAlbumListForm.cpp b/src/GlAlbumListForm.cpp
new file mode 100644 (file)
index 0000000..f93b17b
--- /dev/null
@@ -0,0 +1,571 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlAlbumListForm.cpp
+ * @brief              This is the implementation file for AlbumListForm class.
+ */
+
+#include <FApp.h>
+#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 = 334;
+static const int H_FOLDER_SIZE = 334;
+
+AlbumListForm::AlbumListForm(void)
+       : __pAlbumViewIconList(null)
+       , __pContextMenuMore(null)
+       , __itemCount(0)
+       , __pTimer(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 = Construct(FORM_STYLE_NORMAL | FORM_STYLE_INDICATOR | FORM_STYLE_HEADER | FORM_STYLE_FOOTER);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+result
+AlbumListForm::OnInitializing(void)
+{
+       AppLogDebug("ENTER");
+       result r = E_SUCCESS;
+
+       __pPresentationModel = AlbumListPresentationModel::GetInstance();
+       __pPresentationModel->ClearThumbnailRequests();
+       __pPresentationModel->AddPresentationModelListener(this);
+
+       if (__pPresentationModel->GetAppControlMode() == APP_CONTROL_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();
+
+       if (__itemCount == 0)
+       {
+               __pTimer = new (std::nothrow) Timer();
+               __pTimer->Construct(*this);
+               __pTimer->Start(1000);
+       }
+       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() == APP_CONTROL_MODE_PICK)
+       {
+               pFooter->SetBackButton();
+               SetFormBackEventListener(this);
+       }
+       else
+       {
+               pFooter->SetStyle(FOOTER_STYLE_BUTTON_ICON);
+               pFooter->SetBackButton();
+               pFooter->RemoveAllItems();
+
+               FooterItem itemCamera;
+               itemCamera.Construct(ACTION_ID_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;
+               pBitmap1 = null;
+
+               ButtonItem footerMore;
+               footerMore.Construct(BUTTON_ITEM_STYLE_ICON, ACTION_ID_FOOTER_MORE);
+               Bitmap* pBitmapMore = ResourceManager::GetBitmapN(IDB_CONTROLBAR_MORE);
+               if (pBitmapMore != null)
+               {
+                       footerMore.SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapMore);
+               }
+               pFooter->SetButton(BUTTON_POSITION_LEFT,footerMore);
+               delete pBitmapMore;
+               pBitmapMore = null;
+
+               __pContextMenuMore = new (std::nothrow) ContextMenu();
+               __pContextMenuMore->Construct(Point(0, 0), CONTEXT_MENU_STYLE_LIST);
+               __pContextMenuMore->AddItem(ResourceManager::GetString(L"IDS_COM_HEADER_EDIT"), ACTION_ID_FOOTER_EDIT);
+               __pContextMenuMore->SetShowState(false);
+               __pContextMenuMore->AddActionEventListener(*this);
+
+               SetFormBackEventListener(this);
+       }
+       pFooter->AddActionEventListener(*this);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+void
+AlbumListForm::CreateIconListView(void)
+{
+       AppLogDebug("ENTER");
+       Rectangle clientArea = this->GetClientAreaBounds();
+       Dimension itemSize(W_FOLDER_SIZE, H_FOLDER_SIZE);
+       clientArea.x = clientArea.y = 0;
+       __pAlbumViewIconList = new (std::nothrow) IconListView();
+       __pAlbumViewIconList->Construct(Rectangle(0, 0, GetClientAreaBounds().width, GetClientAreaBounds().height),
+                       itemSize, ICON_LIST_VIEW_STYLE_NORMAL  , ICON_LIST_VIEW_SCROLL_DIRECTION_VERTICAL);
+       Bitmap* pBitmap = ResourceManager::GetBitmapN(IDB_LISTVIEW_EMPTY);
+       if (pBitmap != null)
+       {
+               __pAlbumViewIconList->SetBitmapOfEmptyList(pBitmap);
+               delete pBitmap;
+               pBitmap = null;
+       }
+       __pAlbumViewIconList->SetTextOfEmptyList(ResourceManager::GetString(L"IDS_COM_BODY_NO_ITEMS"));
+       __pAlbumViewIconList->SetItemBorderStyle(ICON_LIST_VIEW_ITEM_BORDER_STYLE_NONE);
+       __pAlbumViewIconList->SetItemProvider(*this);
+       __pAlbumViewIconList->SetTouchAnimationEnabled(false);
+       __pAlbumViewIconList->AddIconListViewItemEventListener(*this);
+       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)
+               {
+                       int emptyIndex = pAlbumInfo->GetEmptyBitmapIndex();
+
+                       if (emptyIndex != FOLDER_BITMAP_MAX)
+                       {
+                               __pPresentationModel->RequestThumbnail(index, emptyIndex);
+                       }
+                       AppLogDebug("index(%d), emptyIndex(%d)", index, emptyIndex);
+
+                       pBitmap = __pPresentationModel->CreateMergeBitmapN(index);
+
+                       if (pBitmap != null)
+                       {
+                               IconListViewItem* pIconListview = new (std::nothrow) IconListViewItem();
+                               pIconListview->Construct(*pBitmap);
+                               delete pBitmap;
+                               pBitmap = null;
+                               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* aList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+               aList->Construct();
+               aList->Add(pSendAlbumInfo);
+
+               if (__pPresentationModel->GetAppControlMode() == APP_CONTROL_MODE_PICK)
+               {
+                       if (__pPresentationModel->GetAppControlMediaType() == APPCONTROL_MEDIA_TYPE_IMAGE)
+                       {
+                               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_IMAGE_LIST_EDITOR), aList);
+                       }
+                       else if  (__pPresentationModel->GetAppControlMediaType() == APPCONTROL_MEDIA_TYPE_VIDEO)
+                       {
+                               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_VIDEO_LIST_EDITOR), aList);
+                       }
+                       else
+                       {
+                               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_IMAGE_LIST_EDITOR), aList);
+                       }
+               }
+               else
+               {
+                       pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALL_LIST), aList);
+               }
+       }
+       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);
+
+       if (__pContextMenuMore != null)
+       {
+               delete __pContextMenuMore;
+               __pContextMenuMore = null;
+       }
+
+       if (__pTimer != null)
+       {
+               __pTimer->Cancel();
+               delete __pTimer;
+               __pTimer = null;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+void
+AlbumListForm::OnTimerExpired(Timer &timer)
+{
+       AppLogDebug("ENTER");
+       if (__pPresentationModel->GetAppControlMode() == APP_CONTROL_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();
+
+       static int timerCount = 0;
+       if (__itemCount > 1)
+       {
+               __pAlbumViewIconList->UpdateList();
+       }
+       else if (timerCount < 30)
+       {
+               __pTimer->Start(1000);
+               ++timerCount;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumListForm::OnActionPerformed(const Control& source, int actionId)
+{
+       AppLogDebug("ENTER");
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+
+       switch (actionId)
+       {
+       case ACTION_ID_FOOTER_CAMERA:
+               {
+                       HashMap* pDataList = new (std::nothrow) HashMap(SingleObjectDeleter);
+                       pDataList->Construct();
+                       pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_TYPE),
+                                       new (std::nothrow) String(APPCONTROL_DATA_CAMERA));
+
+                       __pPresentationModel->StartAppControl(APPCONTROL_PROVIDER_ID_CAMERA,
+                                       APPCONTROL_OPERATION_ID_CAPTURE, pDataList, null);
+               }
+               break;
+       case ACTION_ID_FOOTER_EDIT:
+               {
+                       pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALBUM_LIST_EDITOR));
+               }
+               break;
+       case ACTION_ID_FOOTER_MORE:
+               {
+                       if (__pContextMenuMore->GetShowState() == false && __pPresentationModel->GetFolderCount() != 0)
+                       {
+                               Rectangle rect = source.GetBounds();
+                               __pContextMenuMore->SetAnchorPosition(Point(rect.width/8, rect.y));
+                               __pContextMenuMore->SetShowState(true);
+                               __pContextMenuMore->Show();
+                       }
+                       else
+                       {
+                               __pContextMenuMore->SetShowState(false);
+                       }
+               }
+               break;
+       default:
+               {
+               }
+               break;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumListForm::OnFormBackRequested(Form& source)
+{
+       AppLogDebug("ENTER");
+       if (__pPresentationModel->GetAppControlMode() == APP_CONTROL_MODE_PICK)
+       {
+               AppLogDebug("APP_CONTROL_MODE_PICK");
+               GalleryApp* pApp = dynamic_cast<GalleryApp*>(UiApp::GetInstance());
+               if (pApp != null)
+               {
+                       if (__pPresentationModel->GetAppControlMode() == APP_CONTROL_MODE_PICK)
+                       {
+                               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");
+
+       if (__pPresentationModel->GetAppControlMode() == APP_CONTROL_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::OnSceneDeactivated(const SceneId& currentSceneId,
+                                                                                  const SceneId& nextSceneId)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumListForm::OnUpdateContentList()
+{
+       AppLogDebug("ENTER");
+
+       if (__pPresentationModel->GetAppControlMode() == APP_CONTROL_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()));
+}
+
+result
+AlbumListForm::Update(void)
+{
+       AppLogDebug("ENTER");
+       result r = __pAlbumViewIconList->UpdateList();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
diff --git a/src/GlAlbumListPresentationModel.cpp b/src/GlAlbumListPresentationModel.cpp
new file mode 100644 (file)
index 0000000..1b35fa6
--- /dev/null
@@ -0,0 +1,1348 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               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 "GlGalleryApp.h"
+#include "GlThumbnailEvent.h"
+#include "GlThumbnailEventArg.h"
+#include "GlThumbnailProvider.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 = 102;
+static const int FOLDER_SIZE_WIDTH = 334;
+static const int FOLDER_SIZE_HEIGHT = 334;
+
+static const int FONT_SIZE_FOLDER_NAME = 32;
+static const int FONT_SIZE_FOLDER_DATE = 25;
+static const int FONT_SIZE_FOLDER_COUNT = 42;
+static const int GAP_FONT = 5;
+
+static const int MAX_FONT_LENGTH = 15;
+
+static const unsigned int COLOR_BLACK = Color32<25, 25, 25>::Value;
+static const unsigned int COLOR_1 = Color32<71, 128, 11>::Value;
+static const unsigned int COLOR_2 = Color32<56, 78, 116>::Value;
+static const unsigned int COLOR_3 = Color32<49, 125, 174>::Value;
+static const unsigned int COLOR_4 = Color32<165, 53, 33>::Value;
+
+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 CONTENT_INFO_ORDER = L"ContentFileName";
+
+static const int FORMAT_BUFFER_SIZE = 256;
+
+static const int MAX_RANDOM_COLOR_NUMBER = 4;
+static const int COMPARE_COLOR_NUMBER_0 = 0;
+static const int COMPARE_COLOR_NUMBER_1 = 1;
+static const int COMPARE_COLOR_NUMBER_2 = 2;
+static const int COMPARE_COLOR_NUMBER_3 = 3;
+
+static const int DOUBLE_NUMBER = 2;
+static const int TRIPLE_NUMBER = 3;
+
+static const int EXCEPTION_NUMBER_0 = 0;
+static const int EXCEPTION_NUMBER_1 = 1;
+static const int EXCEPTION_NUMBER_2 = 2;
+
+static const int MAX_NUMBER_X = 3;
+static const int MAX_NUMBER_Y = 3;
+
+static const int MAX_THUMNAIL_COUNT_IN_ALBUM = 7;
+
+AlbumListPresentationModel* AlbumListPresentationModel::__pPresentationModelInstance = null;
+ArrayList* AlbumListPresentationModel::__pPresentationModelListener = null;
+ThumbnailProvider* AlbumListPresentationModel::__pThumbnailProvider = null;
+ThumbnailEvent* AlbumListPresentationModel::__pThumbnailEvent = null;
+IList* AlbumListPresentationModel::__pAlbumInfoList = null;
+
+AlbumListPresentationModel::AlbumListPresentationModel(void)
+       :__pFolderBackgroundBitmap(null)
+       ,__appControlMode(APP_CONTROL_MODE_MAIN)
+       ,__appControlMediaType(APPCONTROL_MEDIA_TYPE_UNKNOWN)
+       ,__appControlSelectionMode(APPCONTROL_SELECTION_MODE_UNKNOWN)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+AlbumListPresentationModel::~AlbumListPresentationModel(void)
+{
+       AppLogDebug("ENTER");
+       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();
+
+       IThumbnailEventListener* pThumbnailEventListener = static_cast<IThumbnailEventListener*>(this);
+       __pThumbnailEvent = new (std::nothrow) ThumbnailEvent();
+       __pThumbnailEvent->AddListener(*pThumbnailEventListener, true);
+
+       __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 = APP_CONTROL_MODE_MAIN;
+       }
+       else if (operationId.CompareTo(APPCONTROL_OPERATION_ID_PICK) == 0)
+       {
+               __appControlMode = APP_CONTROL_MODE_PICK;
+
+               if (pArguments != null)
+               {
+                       const String* selectionMode =
+                                       static_cast<const String*>(pArguments->GetValue(String(APPCONTROL_KEY_SELECTION_MODE)));
+                       const String* mediaType =
+                                       static_cast<const String*>(pArguments->GetValue(String(APPCONTROL_KEY_MEDIA_TYPE)));
+
+                       if (mediaType != null && mediaType->CompareTo(APPCONTROL_DATA_VIDEO) == 0)
+                       {
+                               __appControlMediaType = APPCONTROL_MEDIA_TYPE_VIDEO;
+                       }
+                       else
+                       {
+                               __appControlMediaType = APPCONTROL_MEDIA_TYPE_IMAGE;
+                       }
+
+                       if (selectionMode != null && selectionMode->CompareTo(APPCONTROL_DATA_MULTIPLE) == 0)
+                       {
+                               __appControlSelectionMode = APPCONTROL_SELECTION_MODE_MULTIPLE;
+                       }
+                       else
+                       {
+                               __appControlSelectionMode = APPCONTROL_SELECTION_MODE_SINGLE;
+                       }
+               }
+       }
+       else if (operationId.CompareTo(APPCONTROL_OPERATION_ID_CONFIGURE) == 0)
+       {
+               __appControlMode = APP_CONTROL_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;
+       }
+
+       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::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;
+               pEnum = null;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumListPresentationModel::DrawPartialImage(Canvas& canvas, AlbumInfo* pAlbumInfo, int partialIndex,
+               const Rectangle& rectNew)
+{
+       AppLogDebug("ENTER partialIndex(%d)", partialIndex);
+       if (&canvas == null || __pFolderBackgroundBitmap == null || pAlbumInfo == null)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return;
+       }
+
+       Dimension dimSet(ICON_SIZE, ICON_SIZE);
+       canvas.DrawBitmap(rectNew, *__pFolderBackgroundBitmap);
+       int startIndex = 0;
+
+       switch (partialIndex)
+       {
+       case 0:
+               break;
+       case 1:
+       {
+               Bitmap* pBitmap1 = pAlbumInfo->GetFolderThumnailBitmap(startIndex);
+               if (pBitmap1 != 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, *pBitmap1);
+               }
+               break;
+       }
+       case 2:
+       {
+               Bitmap* pBitmap1 = pAlbumInfo->GetFolderThumnailBitmap(startIndex++);
+               Bitmap* pBitmap2 = pAlbumInfo->GetFolderThumnailBitmap(startIndex);
+               if (pBitmap1 != null && pBitmap2 != null)
+               {
+                       Rectangle rectFirst(ICON_CAP+FOLDER_CAP,
+                                       ICON_CAP * DOUBLE_NUMBER + ICON_SIZE,
+                                       ICON_CAP * DOUBLE_NUMBER + ICON_SIZE * TRIPLE_NUMBER,
+                                       ICON_CAP * DOUBLE_NUMBER + ICON_SIZE * DOUBLE_NUMBER);
+                       Rectangle rectSecond(ICON_CAP * TRIPLE_NUMBER + FOLDER_CAP + ICON_SIZE * DOUBLE_NUMBER,
+                                       ICON_CAP, ICON_SIZE, ICON_SIZE);
+                       canvas.DrawBitmap(rectFirst, *pBitmap1);
+                       canvas.DrawBitmap(rectSecond, *pBitmap2);
+               }
+               break;
+       }
+       case 3:
+       {
+               Bitmap* pBitmap1 = pAlbumInfo->GetFolderThumnailBitmap(startIndex++);
+               Bitmap* pBitmap2 = pAlbumInfo->GetFolderThumnailBitmap(startIndex++);
+               Bitmap* pBitmap3 = pAlbumInfo->GetFolderThumnailBitmap(startIndex);
+               if (pBitmap1 != null && pBitmap2 != null && pBitmap3 != null)
+               {
+                       Rectangle rectFirst(ICON_CAP+FOLDER_CAP, ICON_CAP * DOUBLE_NUMBER + ICON_SIZE,
+                                       ICON_CAP + ICON_SIZE * DOUBLE_NUMBER, ICON_CAP + ICON_SIZE * DOUBLE_NUMBER);
+                       Rectangle rectSecond(ICON_CAP * TRIPLE_NUMBER + FOLDER_CAP + ICON_SIZE * DOUBLE_NUMBER,
+                                       ICON_CAP * DOUBLE_NUMBER + ICON_SIZE, ICON_SIZE, ICON_CAP + ICON_SIZE * DOUBLE_NUMBER);
+                       Rectangle rectThird(ICON_CAP * TRIPLE_NUMBER + FOLDER_CAP + ICON_SIZE * DOUBLE_NUMBER, ICON_CAP,
+                                       ICON_SIZE, ICON_SIZE);
+                       canvas.DrawBitmap(rectFirst, *pBitmap1);
+                       canvas.DrawBitmap(rectSecond, *pBitmap2);
+                       canvas.DrawBitmap(rectThird, *pBitmap3);
+               }
+               break;
+       }
+       case 4:
+       {
+               Bitmap* pBitmap1 = pAlbumInfo->GetFolderThumnailBitmap(startIndex++);
+               Bitmap* pBitmap = null;
+               if (pBitmap1 != null)
+               {
+                       Rectangle rectFirst(ICON_CAP+FOLDER_CAP, ICON_CAP * DOUBLE_NUMBER + ICON_SIZE,
+                                       ICON_CAP + ICON_SIZE * DOUBLE_NUMBER, ICON_CAP + ICON_SIZE * DOUBLE_NUMBER);
+                       canvas.DrawBitmap(rectFirst, *pBitmap1);
+
+                       for (int y = 0; y < MAX_NUMBER_Y; ++y)
+                       {
+                               for (int x = 0; x < MAX_NUMBER_X; ++x)
+                               {
+                                       if ((y == EXCEPTION_NUMBER_0 || y == EXCEPTION_NUMBER_1 || y == EXCEPTION_NUMBER_2)
+                                               && (x == EXCEPTION_NUMBER_0 || x == EXCEPTION_NUMBER_1))
+                                       {
+                                               continue;
+                                       }
+
+                                       int xPoint = (ICON_CAP * (x + 1)) + FOLDER_CAP + (dimSet.width * x);
+                                       int yPoint = (ICON_CAP * (y + 1)) + (dimSet.height * y);
+
+                                       pBitmap = pAlbumInfo->GetFolderThumnailBitmap(startIndex++);
+                                       if (pBitmap != null)
+                                       {
+                                               Rectangle rect(xPoint,yPoint,dimSet.width,dimSet.height);
+                                               canvas.DrawBitmap(rect, *pBitmap);
+                                       }
+                               }
+                       }
+               }
+               break;
+       }
+       case 5:
+       {
+               Bitmap* pBitmap1 = pAlbumInfo->GetFolderThumnailBitmap(startIndex++);
+               Bitmap* pBitmap2 = pAlbumInfo->GetFolderThumnailBitmap(startIndex++);
+               Bitmap* pBitmap = null;
+
+               if (pBitmap1 != null && pBitmap2 != null)
+               {
+                       Rectangle rectFirst(ICON_CAP + FOLDER_CAP,
+                                       ICON_CAP * DOUBLE_NUMBER + ICON_SIZE, ICON_CAP + ICON_SIZE * DOUBLE_NUMBER, dimSet.height);
+                       Rectangle rectSecond(ICON_CAP + FOLDER_CAP, ICON_CAP * TRIPLE_NUMBER + ICON_SIZE * DOUBLE_NUMBER,
+                                       ICON_CAP + ICON_SIZE * DOUBLE_NUMBER, dimSet.height);
+                       canvas.DrawBitmap(rectFirst, *pBitmap1);
+                       canvas.DrawBitmap(rectSecond, *pBitmap2);
+
+                       for (int y = 0; y < MAX_NUMBER_Y; ++y)
+                       {
+                               for (int x = 0; x < MAX_NUMBER_X; ++x)
+                               {
+                                       if ((y == EXCEPTION_NUMBER_0 || y == EXCEPTION_NUMBER_1 || y == EXCEPTION_NUMBER_2)
+                                               && (x == EXCEPTION_NUMBER_0 || x == EXCEPTION_NUMBER_1))
+                                       {
+                                               continue;
+                                       }
+
+                                       int xPoint = (ICON_CAP * (x + 1)) + FOLDER_CAP + (dimSet.width * x);
+                                       int yPoint = (ICON_CAP * (y + 1)) + (dimSet.height * y);
+
+                                       pBitmap = pAlbumInfo->GetFolderThumnailBitmap(startIndex++);
+                                       if (pBitmap != null)
+                                       {
+                                               Rectangle rect(xPoint,yPoint,dimSet.width,dimSet.height);
+                                               canvas.DrawBitmap(rect, *pBitmap);
+                                       }
+                               }
+                       }
+               }
+               break;
+       }
+       case 6:
+       {
+               Bitmap* pBitmap1 = pAlbumInfo->GetFolderThumnailBitmap(startIndex++);
+               Bitmap* pBitmap = null;
+               if (pBitmap1 != null)
+               {
+                       Rectangle rectFirst(ICON_CAP+FOLDER_CAP, ICON_CAP * DOUBLE_NUMBER + ICON_SIZE,
+                                       ICON_CAP + ICON_SIZE * DOUBLE_NUMBER, dimSet.height);
+                       canvas.DrawBitmap(rectFirst, *pBitmap1);
+
+                       for (int y = 0; y < MAX_NUMBER_Y; ++y)
+                       {
+                               for (int x = 0; x < MAX_NUMBER_X; ++x)
+                               {
+                                       if ((y == EXCEPTION_NUMBER_0 || y == EXCEPTION_NUMBER_1)
+                                               && (x == EXCEPTION_NUMBER_0 || x == EXCEPTION_NUMBER_1))
+                                       {
+                                               continue;
+                                       }
+
+                                       int xPoint = (ICON_CAP * (x + 1)) + FOLDER_CAP + (dimSet.width * x);
+                                       int yPoint = (ICON_CAP * (y + 1)) + (dimSet.height * y);
+
+                                       pBitmap = pAlbumInfo->GetFolderThumnailBitmap(startIndex++);
+                                       if (pBitmap != null)
+                                       {
+                                               Rectangle rect(xPoint,yPoint,dimSet.width,dimSet.height);
+                                               canvas.DrawBitmap(rect, *pBitmap);
+                                       }
+                               }
+                       }
+               }
+               break;
+       }
+       case 7:
+       {
+               Bitmap* pBitmap = null;
+               for (int y = 0; y < MAX_NUMBER_Y; ++y)
+               {
+                       for (int x = 0; x < MAX_NUMBER_X; ++x)
+                       {
+                               if (y == EXCEPTION_NUMBER_0 && (x == EXCEPTION_NUMBER_0 || x == EXCEPTION_NUMBER_1))
+                               {
+                                       continue;
+                               }
+
+                               int xPoint = (ICON_CAP * (x + 1)) + FOLDER_CAP + (dimSet.width * x);
+                               int yPoint = (ICON_CAP * (y + 1)) + (dimSet.height * y);
+
+                               pBitmap = pAlbumInfo->GetFolderThumnailBitmap(startIndex++);
+                               if (pBitmap != null)
+                               {
+                                       Rectangle rect(xPoint,yPoint,dimSet.width,dimSet.height);
+                                       canvas.DrawBitmap(rect, *pBitmap);
+                               }
+                       }
+               }
+               break;
+       }
+       default:
+               break;
+       }
+       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;
+       }
+
+       String dateString;
+       dateString = pAlbumInfo->GetCreateDateString();
+
+       String strCnt;
+       int allContentCount = pAlbumInfo->GetContentIdCount();
+       strCnt.Format(FORMAT_BUFFER_SIZE, L"%d", allContentCount);
+
+       String strFolderName = pAlbumInfo->GetAlbumName();
+       Color colorBack = COLOR_BLACK;
+
+       if (    strFolderName == ResourceManager::GetString(L"IDS_MEDIABR_BODY_ALL_ALBUMS")
+               || strFolderName == ResourceManager::GetString(L"IDS_MEDIABR_BODY_CAMERA_ROLL_ABB")
+           || strFolderName == ResourceManager::GetString(L"IDS_COM_BODY_DOWNLOADS"))
+       {
+               colorBack = COLOR_BLACK;
+       }
+       else
+       {
+               if (index % MAX_RANDOM_COLOR_NUMBER == COMPARE_COLOR_NUMBER_0)
+               {
+                       colorBack = COLOR_1;
+               }
+               else if (index % MAX_RANDOM_COLOR_NUMBER == COMPARE_COLOR_NUMBER_1)
+               {
+                       colorBack = COLOR_2;
+               }
+               else if (index % MAX_RANDOM_COLOR_NUMBER == COMPARE_COLOR_NUMBER_2)
+               {
+                       colorBack = COLOR_3;
+               }
+               else if (index % MAX_RANDOM_COLOR_NUMBER == COMPARE_COLOR_NUMBER_3)
+               {
+                       colorBack = COLOR_4;
+               }
+       }
+
+       Rectangle rectBack(ICON_CAP + FOLDER_CAP, ICON_CAP, ICON_SIZE * DOUBLE_NUMBER + ICON_CAP, ICON_SIZE);
+       canvas.FillRectangle(colorBack, rectBack);
+
+       Point pointText;
+
+       Font ftFolderName, ftDate, ftCnt;
+       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);
+
+       EnrichedText enText;
+       enText.Construct(Dimension(ICON_SIZE * DOUBLE_NUMBER - (ICON_CAP * DOUBLE_NUMBER),
+                       FONT_SIZE_FOLDER_NAME + ICON_CAP * DOUBLE_NUMBER));
+       enText.SetHorizontalAlignment(TEXT_ALIGNMENT_LEFT);
+
+       TextElement textElement;
+       textElement.Construct(strFolderName);
+       textElement.SetFont(ftFolderName);
+       textElement.SetTextColor(Color::GetColor(COLOR_ID_WHITE));
+       enText.SetTextAbbreviationEnabled(true);
+       enText.Add(textElement);
+
+       pointText = Point(ICON_CAP + FOLDER_CAP, ICON_CAP + FONT_SIZE_FOLDER_NAME);
+       canvas.SetFont(ftDate);
+       canvas.SetForegroundColor(Color::GetColor(COLOR_ID_GREY));
+       canvas.DrawText(pointText, dateString, MAX_FONT_LENGTH);
+
+       pointText = Point((ICON_SIZE * DOUBLE_NUMBER + ICON_CAP) - ((FONT_SIZE_FOLDER_COUNT / DOUBLE_NUMBER) * strCnt.GetLength() + GAP_FONT),
+                       ICON_CAP + FONT_SIZE_FOLDER_NAME + FONT_SIZE_FOLDER_DATE);
+       canvas.SetFont(ftCnt);
+       canvas.SetForegroundColor(Color::GetColor(COLOR_ID_WHITE));
+       canvas.DrawText(pointText, strCnt, MAX_FONT_LENGTH);
+
+       pointText = Point(ICON_CAP + FOLDER_CAP, ICON_CAP);
+       canvas.SetForegroundColor(Color::GetColor(COLOR_ID_WHITE));
+       canvas.DrawText(pointText, enText);
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+Bitmap*
+AlbumListPresentationModel::CreateMergeBitmapN(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));
+       int paticalCount = 0;
+       if (pAlbumInfo != null)
+       {
+               paticalCount = pAlbumInfo->GetFolderThumnailBitmapCount();
+       }
+
+       if (paticalCount == 0)
+       {
+               AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
+
+               return null;
+       }
+
+       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, paticalCount, rectNew);
+       DrawFontImage(canvas, pAlbumInfo, index);
+
+
+       pBitmapNew->Unlock();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pBitmapNew;
+}
+
+bool
+AlbumListPresentationModel::GetMinMaxDateTimeString(IList* pContentIdList, String& MinimumTime, String& MaximumTime)
+{
+       AppLogDebug("ENTER");
+       int fileCount = pContentIdList->GetCount();
+
+       if (fileCount == 0)
+       {
+               MinimumTime = EMPTY_SPACE;
+               MaximumTime = EMPTY_SPACE;
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return false;
+       }
+
+       DateTime dateMin, dateMax;
+       ContentManager contentManager;
+       result r = contentManager.Construct();
+       if (r == E_SUCCESS)
+       {
+               for (int count = 0; count < fileCount; ++count)
+               {
+                       ContentId* pContentId = static_cast<ContentId*>(pContentIdList->GetAt(count));
+                       ContentInfo* pContentInfo = contentManager.GetContentInfoN(*pContentId);
+
+                       if (pContentInfo == null)
+                       {
+                               MinimumTime = EMPTY_SPACE;
+                               MaximumTime = EMPTY_SPACE;
+                               AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
+
+                               return false;
+                       }
+
+                       DateTime dateFileTime = pContentInfo->GetDateTime();
+
+                       if (count == 0)
+                       {
+                               dateMin = dateFileTime;
+                               dateMax = dateFileTime;
+                               continue;
+                       }
+
+                       if (DateTime::Compare(dateMax, dateFileTime) > 0)
+                       {
+                               dateMax = dateFileTime;
+                       }
+
+                       if (DateTime::Compare(dateMin, dateFileTime) < 0)
+                       {
+                               dateMin = dateFileTime;
+                       }
+               }
+               MinimumTime.Format(FORMAT_BUFFER_SIZE, L"%04d.%d", dateMin.GetYear(), dateMin.GetMonth());
+               MaximumTime.Format(FORMAT_BUFFER_SIZE, L"%04d.%d", dateMax.GetYear(), dateMax.GetMonth());
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+    return true;
+}
+
+result
+AlbumListPresentationModel::StartAppControl( const String&  providerId, const String&  operationId,
+                                         const IMap* pDataList, IAppControlResponseListener* pListener)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("FindAppControlN(%ls, %ls)", providerId.GetPointer(), operationId.GetPointer());
+       if (pDataList != null)
+       {
+               IList* pKeyList = pDataList->GetKeysN();
+               if (pKeyList != null)
+               {
+                       int keyCount = pKeyList->GetCount();
+                       for (int i = 0; i < keyCount; ++i)
+                       {
+                               String* pKey = const_cast<String*>(static_cast<const String*>(pKeyList->GetAt(i)));
+                               String* pValue = const_cast<String*>(static_cast<const String*>(pDataList->GetValue(*pKey)));
+
+                               AppLogDebug("(%ls:%ls)", pKey == null ? L"(null)" : pKey->GetPointer(), pValue == null ? L"(null)" : pValue->GetPointer());
+                       }
+               }
+       }
+
+       AppControl* pAc = AppManager::FindAppControlN(providerId, operationId);
+       if (pAc == null)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return E_FAILURE;
+       }
+       result r = pAc->Start(null, null, 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)
+{
+       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)
+{
+       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);
+               if (r != E_SUCCESS)
+               {
+                       delete __pAlbumInfoList;
+                       __pAlbumInfoList = null;
+                       delete pListT;
+                       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();
+       result r = pAllAlbumInfo->Construct();
+       if (r != E_SUCCESS)
+       {
+               delete pContentDirectoryPathList;
+               delete pAllAlbumInfo;
+               AppLogDebug("EXIT 3(%s)", GetErrorMessage(GetLastResult()));
+
+               return;
+       }
+
+       pAllAlbumInfo->SetAlbumName(ResourceManager::GetString(L"IDS_MEDIABR_BODY_ALL_ALBUMS"));
+       AlbumInfo* pCameraAlbumInfo = new (std::nothrow) AlbumInfo();
+       r = pCameraAlbumInfo->Construct();
+       if (r != E_SUCCESS)
+       {
+               delete pContentDirectoryPathList;
+               delete pAllAlbumInfo;
+               delete pCameraAlbumInfo;
+               AppLogDebug("EXIT 4(%s)", GetErrorMessage(GetLastResult()));
+
+               return;
+       }
+
+       pCameraAlbumInfo->SetAlbumName(ResourceManager::GetString(L"IDS_MEDIABR_BODY_CAMERA_ROLL_ABB"));
+       AlbumInfo* pDownloadAlbumInfo = new (std::nothrow) AlbumInfo();
+       r = pDownloadAlbumInfo->Construct();
+       if (r != E_SUCCESS)
+       {
+               delete pContentDirectoryPathList;
+               delete pAllAlbumInfo;
+               delete pCameraAlbumInfo;
+               delete pDownloadAlbumInfo;
+               AppLogDebug("EXIT 5(%s)", GetErrorMessage(GetLastResult()));
+
+               return;
+       }
+
+       pDownloadAlbumInfo->SetAlbumName(ResourceManager::GetString(L"IDS_COM_BODY_DOWNLOADS"));
+       AlbumInfo* pNoNameAlbumInfo = new (std::nothrow) AlbumInfo();
+       r = pNoNameAlbumInfo->Construct();
+       if (r != E_SUCCESS)
+       {
+               delete pContentDirectoryPathList;
+               delete pAllAlbumInfo;
+               delete pCameraAlbumInfo;
+               delete pDownloadAlbumInfo;
+               delete pNoNameAlbumInfo;
+               AppLogDebug("EXIT 6(%s)", GetErrorMessage(GetLastResult()));
+
+               return;
+       }
+
+       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());
+                       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);
+                                       delete pContentIdList;
+                               }
+                       }
+                       else if (*pDirPath == RESERVED_MEDIA_PATH)
+                       {
+                               IList* pContentIdList = GetContentIdListInDirectoryN(*pDirPath, contentType);
+
+                               if (pContentIdList != null)
+                               {
+                                       pNoNameAlbumInfo->AppendDirectory(*pDirPath);
+                                       pNoNameAlbumInfo->AppendContentIdList(*pContentIdList);
+
+                                       pAllAlbumInfo->AppendDirectory(*pDirPath);
+                                       pAllAlbumInfo->AppendContentIdList(*pContentIdList);
+                                       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);
+                                               delete pSubDirList;
+                                       }
+                                       delete pContentIdList;
+                               }
+                       }
+
+                       if (pAlbumInfo != null && pAlbumInfo->GetContentIdCount() > 0)
+                       {
+                               String strMaximumDate;
+                               String strMinimumDate;
+                               GetMinMaxDateTimeString(pAlbumInfo->GetContentIdListN(), strMinimumDate, strMaximumDate);
+                               pAlbumInfo->SetCreateDateString(strMinimumDate, strMaximumDate);
+                               __pAlbumInfoList->Add(pAlbumInfo);
+                               pAlbumInfo = null;
+                       }
+                       else
+                       {
+                               delete pAlbumInfo;
+                               pAlbumInfo = null;
+                       }
+               }
+
+               int insertIndex = 0;
+               if (pAllAlbumInfo->GetContentIdCount() > 0)
+               {
+                       String strMaximumDate;
+                       String strMinimumDate;
+                       GetMinMaxDateTimeString(pAllAlbumInfo->GetContentIdListN(), strMinimumDate, strMaximumDate);
+                       pAllAlbumInfo->SetCreateDateString(strMinimumDate, strMaximumDate);
+                       __pAlbumInfoList->InsertAt((Object&)*pAllAlbumInfo, insertIndex++);
+                       pAllAlbumInfo = null;
+               }
+               else
+               {
+                       delete pAllAlbumInfo;
+                       pAllAlbumInfo = null;
+               }
+
+               if (pCameraAlbumInfo->GetContentIdCount() > 0)
+               {
+                       String strMaximumDate;
+                       String strMinimumDate;
+                       GetMinMaxDateTimeString(pCameraAlbumInfo->GetContentIdListN(), strMinimumDate, strMaximumDate);
+                       pCameraAlbumInfo->SetCreateDateString(strMinimumDate, strMaximumDate);
+                       __pAlbumInfoList->InsertAt((Object&)*pCameraAlbumInfo, insertIndex++);
+               }
+               else
+               {
+                       delete pCameraAlbumInfo;
+                       pCameraAlbumInfo = null;
+               }
+
+               if (pDownloadAlbumInfo->GetContentIdCount() > 0)
+               {
+                       String strMaximumDate;
+                       String strMinimumDate;
+                       String dateString;
+                       GetMinMaxDateTimeString(pDownloadAlbumInfo->GetContentIdListN(), strMinimumDate, strMaximumDate);
+                       pDownloadAlbumInfo->SetCreateDateString(strMinimumDate, strMaximumDate);
+                       __pAlbumInfoList->InsertAt((Object&)*pDownloadAlbumInfo, insertIndex++);
+               }
+               else
+               {
+                       delete pDownloadAlbumInfo;
+                       pDownloadAlbumInfo = null;
+               }
+
+               if (pNoNameAlbumInfo->GetContentIdCount() > 0)
+               {
+                       String strMaximumDate;
+                       String strMinimumDate;
+                       String dateString;
+                       GetMinMaxDateTimeString(pNoNameAlbumInfo->GetContentIdListN(), strMinimumDate, strMaximumDate);
+                       pNoNameAlbumInfo->SetCreateDateString(strMinimumDate, strMaximumDate);
+                       __pAlbumInfoList->InsertAt((Object&)*pNoNameAlbumInfo, insertIndex++);
+               }
+               else
+               {
+                       delete pNoNameAlbumInfo;
+                       pNoNameAlbumInfo = null;
+               }
+
+               delete pEnum;
+       }
+       else
+       {
+               delete pAllAlbumInfo;
+               delete pCameraAlbumInfo;
+               delete pDownloadAlbumInfo;
+               delete pNoNameAlbumInfo;
+       }
+
+       if (pContentDirectoryPathList != null)
+       {
+               delete pContentDirectoryPathList;
+       }
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+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,
+                       CONTENT_INFO_ORDER, SORT_ORDER_ASCENDING);
+       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;
+       }
+       delete pContentInfoList;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pContentIdList;
+}
+
+result
+AlbumListPresentationModel::DeleteContentInfoInDirectory(int index, ContentType contentType)
+{
+       AppLogDebug("ENTER");
+       result r = E_SUCCESS;
+       if (__pAlbumInfoList == null)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return r;
+       }
+
+       AlbumInfo* pAlbumInfo = static_cast<AlbumInfo*>(__pAlbumInfoList->GetAt(index));
+
+       int loopCount = pAlbumInfo->GetDirectoryCount();
+       for (int i = 0; i < loopCount; ++i)
+       {
+               ContentDirectory directory;
+               const String contentDirectoryPath = pAlbumInfo->GetDirectory(i);
+
+               if (contentType == CONTENT_TYPE_ALL)
+               {
+                       IListT< ContentType >* pListT = new (std::nothrow) ArrayListT<ContentType>();
+                       pListT->Add(CONTENT_TYPE_IMAGE);
+                       pListT->Add(CONTENT_TYPE_VIDEO);
+                       r = directory.Construct(*pListT);
+                       delete pListT;
+                       pListT = null;
+               }
+               else
+               {
+                       r = directory.Construct(contentType);
+               }
+               if (r != E_SUCCESS)
+               {
+                       continue;
+               }
+
+               int pageNo = 1;
+               int countPerPage = directory.GetContentDirectoryItemCount(contentDirectoryPath);
+               IList* pContentInfoList = directory.GetContentDirectoryItemListN(contentDirectoryPath, pageNo,
+                               countPerPage, CONTENT_INFO_ORDER, SORT_ORDER_ASCENDING);
+               ContentManager contentManager;
+               r = contentManager.Construct();
+               if (r != E_SUCCESS)
+               {
+                       delete pContentInfoList;
+                       continue;
+               }
+
+               if ((pContentInfoList != null) && (pContentInfoList->GetCount() > 0))
+               {
+                       IEnumerator* pEnum = pContentInfoList->GetEnumeratorN();
+                       while (pEnum->MoveNext() == E_SUCCESS || r == E_SUCCESS)
+                       {
+                               ContentInfo* pContentInfo =  static_cast<ContentInfo*>(pEnum->GetCurrent());
+                               ContentId contentId = pContentInfo->GetContentId();
+                               r = contentManager.DeleteContent(contentId);
+                       }
+                       delete pEnum;
+                       pEnum = null;
+               }
+
+               delete pContentInfoList;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       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)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return __pAlbumInfoList;
+}
+
+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(i) == null)
+                                               {
+                                                       pAlbumInfo->AppendFolderThumnailBitmap(pThumbnailInfo->GetBitmapN(), i);
+                                                       pUpdateFolderIndex->Add(new (std::nothrow) Integer(x));
+                                               }
+                                       }
+                               }
+                       }
+               }
+
+               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 *index = (Integer*)pUpdateFolderIndex->GetAt(k);
+                                       int folderIndex = index->ToInt();
+
+                                       AlbumInfo* pAlbumInfo = static_cast<AlbumInfo*>(__pAlbumInfoList->GetAt(folderIndex));
+                                       int emptyIndex = pAlbumInfo->GetEmptyBitmapIndex();
+                                       if (emptyIndex == FOLDER_BITMAP_MAX)
+                                       {
+                                               pListener->OnThumbnailDecoded(folderIndex);
+                                       }
+                                       else
+                                       {
+                                               RequestThumbnail(folderIndex, emptyIndex);
+                                       }
+                               }
+                       }
+                       delete pEnum;
+                       pEnum = null;
+               }
+
+               delete pUpdateFolderIndex;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumListPresentationModel::RequestThumbnail(const int folderIndex, 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::CancelThumbnailRequest(const int folderIndex)
+{
+       AppLogDebug("ENTER : folderIndex(%d)", folderIndex);
+       if (__pAlbumInfoList != null)
+       {
+               AlbumInfo* pAlbumInfo = static_cast<AlbumInfo*>(__pAlbumInfoList->GetAt(folderIndex));
+               if (pAlbumInfo != null)
+               {
+                       int loopCount = pAlbumInfo->GetFolderThumnailBitmapCount();
+                       ContentId contentId;
+                       if (loopCount > MAX_THUMNAIL_COUNT_IN_ALBUM)
+                       {
+                               loopCount = MAX_THUMNAIL_COUNT_IN_ALBUM;
+                       }
+
+                       __pThumbnailProvider->CancelThumbnailRequest(contentId, __pThumbnailEvent);
+
+                       for (int i = 0; i < loopCount ; ++i)
+                       {
+                               contentId = pAlbumInfo->GetContentId(i);
+                               __pThumbnailProvider->CancelThumbnailRequest(contentId, __pThumbnailEvent);
+                       }
+               }
+       }
+       AppLogDebug("EXIT");
+}
+
+void
+AlbumListPresentationModel::ClearThumbnailRequests(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..63df8d4
--- /dev/null
@@ -0,0 +1,395 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlAlbumNameEditorForm.cpp
+ * @brief              This is the implementation file for AlbumNameEditorForm class.
+ */
+
+#include <FApp.h>
+#include "GlAlbumInfo.h"
+#include "GlAlbumNameEditorForm.h"
+#include "GlAlbumListPresentationModel.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::Graphics;
+using namespace Tizen::Media;
+using namespace Tizen::Io;
+using namespace Tizen::System;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+static const Rectangle RECT_NAME_EDIT_FIELD (0, 0, 720, 100);
+static const unsigned int COLOR_NAME_EDIT_FIELD = Color32<255, 255, 255>::Value;
+static const int ALBUM_MAX_LENGTH = 255;
+
+AlbumNameEditorForm::AlbumNameEditorForm()
+       : __pNameEditField(null)
+       , __folderIndex(0)
+       , __albumNameEditorMode(ALBUM_NAME_EDITOR_MODE_RENAME)
+       , __pMessageBox(null)
+       , __pPresentationModel(null)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+AlbumNameEditorForm::~AlbumNameEditorForm()
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+result
+AlbumNameEditorForm::Initialize(void)
+{
+       AppLogDebug("ENTER");
+       result r = Construct(FORM_STYLE_HEADER | FORM_STYLE_NORMAL | FORM_STYLE_INDICATOR);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+result
+AlbumNameEditorForm::OnInitializing(void)
+{
+       AppLogDebug("ENTER");
+       SetOrientation(ORIENTATION_PORTRAIT);
+       AddOrientationEventListener(*this);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+void
+AlbumNameEditorForm::OnOrientationChanged(const Control &source, OrientationStatus orientationStatus)
+{
+       AppLogDebug("ENTER");
+       __pNameEditField->SetBounds(RECT_NAME_EDIT_FIELD);
+       __pNameEditField->SetFocus();
+       Draw(true);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumNameEditorForm::OnTextValueChanged(const Control& source)
+{
+       AppLogDebug("ENTER");
+       String inputString = __pNameEditField->GetText();
+
+       ByteBuffer* buffer = StringUtil::StringToUtf8N(inputString);
+       int remaining = 0;
+       if (buffer != null)
+       {
+               remaining = buffer->GetRemaining();
+       }
+
+       if (remaining >= ALBUM_MAX_LENGTH)
+       {
+               if (__pMessageBox == null)
+               {
+                       __pMessageBox = new (std::nothrow) MessageBox();
+                       __pMessageBox->Construct(L"",
+                                       ResourceManager::GetString(L"IDS_COM_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"),
+                                       MSGBOX_STYLE_NONE, 3000);
+                       int modalResult = 0;
+                       __pMessageBox->ShowAndWait(modalResult);
+                       delete __pMessageBox;
+                       __pMessageBox = null;
+               }
+
+               __pNameEditField->SetText(__nameEditFieldTempText);
+               __pNameEditField->SetFocus();
+
+               return;
+       }
+       __nameEditFieldTempText = inputString;
+
+       inputString.Trim();
+
+       Header* header = GetHeader();
+       HeaderItemStatus itemStatus;
+       header->GetItemStatus(0, itemStatus);
+       if (inputString.GetLength() == 0)
+       {
+               if (itemStatus != HEADER_ITEM_STATUS_DISABLED)
+               {
+                       header->SetItemEnabled(0, false);
+                       header->RequestRedraw(true);
+               }
+       }
+       else
+       {
+               if (itemStatus == HEADER_ITEM_STATUS_DISABLED)
+               {
+                       header->SetItemEnabled(0, true);
+                       header->RequestRedraw(true);
+               }
+       }
+       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::OnActionPerformed(const Control& source, int actionId)
+{
+       AppLogDebug("ENTER");
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+
+       String pPath;
+       String strOri;
+       __nameEditFieldText = __pNameEditField->GetText();
+
+       if (__albumNameEditorMode == ALBUM_NAME_EDITOR_MODE_RENAME)
+       {
+               IList* pAlbumInfoList = __pPresentationModel->GetAlbumInfoList();
+               AlbumInfo* pAlbumInfo = static_cast<AlbumInfo*>(pAlbumInfoList->GetAt(__folderIndex));
+               pPath = pAlbumInfo->GetDirectory(0);
+               strOri = pPath;
+       }
+
+       switch (actionId)
+       {
+       case ACTION_ID_BUTTON_CREATE_NAME_DONE:
+       {
+               __pNameEditField->HideKeypad();
+               __pNameEditField->RequestRedraw();
+               pPath.Append(Tizen::System::Environment::GetMediaPath());
+               pPath.Append(__nameEditFieldText);
+
+               if (__previousSceneId != IDSCN_ALL_LIST_EDITOR && __previousSceneId != IDSCN_ALL_LIST_SELECTION)
+               {
+                       Directory::Create( pPath, true);
+               }
+
+               __nameEditFieldPreText = __nameEditFieldText;
+               ArrayList argsList;
+               argsList.Construct();
+               argsList.Add(new (std::nothrow) String(pPath));
+
+               pSceneManager->GoBackward(BackwardSceneTransition(__callerSceneId), &argsList);
+               break;
+       }
+       case ACTION_ID_BUTTON_CREATE_NAME_CANCEL:
+       {
+               __pNameEditField->SetText(__nameEditFieldPreText);
+               __pNameEditField->HideKeypad();
+               __pNameEditField->Draw();
+               pSceneManager->GoBackward(BackwardSceneTransition(__callerSceneId));
+               break;
+       }
+       default:
+               break;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumNameEditorForm::OnFormBackRequested(Form& source)
+{
+       AppLogDebug("ENTER");
+       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;
+
+       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;
+               }
+       }
+
+       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");
+               }
+
+               __albumNameEditorMode = ALBUM_NAME_EDITOR_MODE_CREATE;
+               __callerSceneId = previousSceneId;
+       }
+       else
+       {
+               __albumNameEditorMode = ALBUM_NAME_EDITOR_MODE_RENAME;
+               __callerSceneId = EMPTY_SPACE;
+       }
+
+       if (__albumNameEditorMode == ALBUM_NAME_EDITOR_MODE_CREATE)
+       {
+               Header* pHeader = GetHeader();
+               AppAssert(pHeader);
+               pHeader->SetStyle(HEADER_STYLE_BUTTON);
+
+               HeaderItem doneItem;
+               HeaderItem cancelItem;
+               doneItem.Construct(ACTION_ID_BUTTON_CREATE_NAME_DONE);
+               doneItem.SetText(ResourceManager::GetString(L"IDS_COM_SK_DONE"));
+               cancelItem.Construct(ACTION_ID_BUTTON_CREATE_NAME_CANCEL);
+               cancelItem.SetText(ResourceManager::GetString(L"IDS_COM_POP_CANCEL"));
+
+               pHeader->SetStyle(HEADER_STYLE_BUTTON);
+               pHeader->AddItem(doneItem);
+               pHeader->AddItem(cancelItem);
+               pHeader->AddActionEventListener(*this);
+               pHeader->SetItemEnabled(0, false);
+
+               __pNameEditField = new (std::nothrow) EditField();
+               __pNameEditField->Construct(RECT_NAME_EDIT_FIELD, EDIT_FIELD_STYLE_NORMAL, INPUT_STYLE_OVERLAY,
+                               false, ALBUM_MAX_LENGTH);
+               __pNameEditField->AddTextEventListener(*this);
+               __pNameEditField->SetColor(EDIT_STATUS_NORMAL, COLOR_NAME_EDIT_FIELD);
+
+               AddControl(*__pNameEditField);
+               __pNameEditField->AddActionEventListener(*this);
+
+               __nameEditFieldText = EMPTY_SPACE;
+               __nameEditFieldPreText = EMPTY_SPACE;
+               __pNameEditField->SetText(__nameEditFieldText);
+               __nameEditFieldTempText = __nameEditFieldText;
+
+               __pNameEditField->SetOverlayKeypadCommandButtonVisible(false);
+               __pNameEditField->SetFocus();
+
+       }
+       else
+       {
+               Header* pHeader = GetHeader();
+               AppAssert(pHeader);
+               pHeader->SetTitleText(ResourceManager::GetString(L"IDS_COM_BODY_CHANGE_NAME"));
+               pHeader->SetStyle(HEADER_STYLE_BUTTON);
+
+               HeaderItem doneItem;
+               HeaderItem cancelItem;
+               doneItem.Construct(ACTION_ID_BUTTON_CREATE_NAME_DONE);
+               doneItem.SetText(ResourceManager::GetString(L"IDS_COM_SK_DONE"));
+               cancelItem.Construct(ACTION_ID_BUTTON_CREATE_NAME_CANCEL);
+               cancelItem.SetText(ResourceManager::GetString(L"IDS_COM_POP_CANCEL"));
+
+               pHeader->SetStyle(HEADER_STYLE_BUTTON);
+               pHeader->AddItem(doneItem);
+               pHeader->AddItem(cancelItem);
+               pHeader->AddActionEventListener(*this);
+
+               __pNameEditField = new (std::nothrow) EditField();
+               __pNameEditField->Construct(RECT_NAME_EDIT_FIELD,
+                                                         EDIT_FIELD_STYLE_NORMAL, INPUT_STYLE_OVERLAY);
+               __pNameEditField->AddTextEventListener(*this);
+               __pNameEditField->SetColor(EDIT_STATUS_NORMAL, COLOR_NAME_EDIT_FIELD);
+
+               AddControl(*__pNameEditField);
+               __pNameEditField->AddActionEventListener(*this);
+               String strName;
+
+               IList* pAlbumInfoList = __pPresentationModel->GetAlbumInfoList();
+               AlbumInfo* pAlbumInfo = static_cast<AlbumInfo*>(pAlbumInfoList->GetAt(__folderIndex));
+
+               strName = pAlbumInfo->GetAlbumName();
+               __nameEditFieldText = strName;
+               __nameEditFieldPreText = strName;
+               __pNameEditField->SetText(__nameEditFieldText);
+
+               __pNameEditField->SetOverlayKeypadCommandButtonVisible(false);
+               __pNameEditField->SetFocus();
+       }
+
+       if (__albumNameEditorMode == ALBUM_NAME_EDITOR_MODE_CREATE)
+       {
+               __nameEditFieldText = EMPTY_SPACE;
+               __nameEditFieldPreText = EMPTY_SPACE;
+               __pNameEditField->SetText(__nameEditFieldText);
+       }
+       else
+       {
+               IList* pAlbumInfoList = __pPresentationModel->GetAlbumInfoList();
+               AlbumInfo* pAlbumInfo = static_cast<AlbumInfo*>(pAlbumInfoList->GetAt(__folderIndex));
+               if (pAlbumInfo != null)
+               {
+                       String strName;
+                       strName = pAlbumInfo->GetAlbumName();
+
+                       __nameEditFieldText = strName;
+                       __nameEditFieldPreText = strName;
+                       __pNameEditField->SetText(__nameEditFieldText);
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AlbumNameEditorForm::OnSceneDeactivated(const SceneId& currentSceneId,
+                                                                                  const SceneId& nextSceneId)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
diff --git a/src/GlAllListEditorPanel.cpp b/src/GlAllListEditorPanel.cpp
new file mode 100644 (file)
index 0000000..bdf466e
--- /dev/null
@@ -0,0 +1,788 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlAllListEditorPanel.cpp
+ * @brief              This is the implementation file for AllListEditorPanel class.
+ */
+
+#include <FContent.h>
+#include <FMedia.h>
+#include "GlAllListEditorPanel.h"
+#include "GlCommonUtil.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 int H_SELECTALL_REGION = 112;
+static const int H_COUNT_LABEL = 48;
+static const int H_COUNT_LABEL_BUTTON = 42;
+static const int W_COUNT_LABEL_BUTTON = 42;
+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;
+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 unsigned int COLOR_SELECTALL_REGION = Color32<0x2A, 0x36, 0x4A>::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)
+       : __pContentIconListView(null)
+       , __pCheckButton(null)
+       , __pLabelSelectCnt(null)
+       , __pButtonSelectRegion(null)
+       , __itemCount(0)
+       , __pPresentationModel(null)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+AllListEditorPanel::~AllListEditorPanel(void)
+{
+       AppLogDebug("ENTER");
+       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);
+
+       Rectangle clientAreaBounds = pForm->GetClientAreaBounds();
+       clientAreaBounds.x = clientAreaBounds.y = 0;
+       result r = SetBounds(clientAreaBounds);
+
+       Panel* pCheckPanel = new (std::nothrow) Panel();
+       pCheckPanel->Construct(Rectangle(0, 0, clientAreaBounds.width, H_SELECTALL_REGION));
+       pCheckPanel->SetBackgroundColor(COLOR_SELECTALL_REGION);
+       __pCheckButton = new (std::nothrow) CheckButton();
+       __pCheckButton->Construct(pCheckPanel->GetBounds(), CHECK_BUTTON_STYLE_MARK, BACKGROUND_STYLE_DEFAULT, false,
+                       ResourceManager::GetString(L"IDS_COM_BODY_SELECT_ALL"));
+       __pCheckButton->SetActionId(ACTION_ID_BUTTON_CHECKED, ACTION_ID_BUTTON_UNCHECKED);
+       __pCheckButton->AddActionEventListener(*this);
+       pCheckPanel->AddControl(*__pCheckButton);
+       AddControl(*pCheckPanel);
+
+       __pContentIconListView = new (std::nothrow) IconListView();
+       __pContentIconListView->Construct(Rectangle(0, H_SELECTALL_REGION, clientAreaBounds.width,
+                       clientAreaBounds.height - H_COUNT_LABEL - 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;
+               pBitmapEmpty = null;
+       }
+       __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);
+
+       __pLabelSelectCnt = new (std::nothrow) Label();
+       String strTmp;
+       strTmp.Format(LENGTH_COUNT_LABEL, L"%ls (%d)",
+                       ResourceManager::GetString(L"IDS_COM_BODY_SELECTED").GetPointer(), 0);
+       __pLabelSelectCnt->Construct(
+                       Rectangle(0, clientAreaBounds.height-H_COUNT_LABEL, clientAreaBounds.width, H_COUNT_LABEL), strTmp);
+       __pLabelSelectCnt->SetTextVerticalAlignment(ALIGNMENT_MIDDLE);
+       __pLabelSelectCnt->SetTextHorizontalAlignment(ALIGNMENT_CENTER);
+       __pLabelSelectCnt->SetBackgroundColor(COLOR_COUNT_LABEL);
+       __pLabelSelectCnt->SetTextColor(Color(COLOR_SELECT_COUNT_FONT));
+       AddControl(*__pLabelSelectCnt);
+       __pLabelSelectCnt->Invalidate(true);
+
+       __pButtonSelectRegion = new (std::nothrow) Button();
+       __pButtonSelectRegion->Construct(Rectangle(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(ACTION_ID_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;
+               pSelectionBitmap = null;
+       }
+       __pButtonSelectRegion->AddActionEventListener(*this);
+
+       __itemCount=0;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+result
+AllListEditorPanel::OnTerminating(void)
+{
+       AppLogDebug("ENTER");
+       __pPresentationModel->RemovePresentationModelListener(*this);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+void
+AllListEditorPanel::OnUpdateContentList()
+{
+       AppLogDebug("ENTER");
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALL_LIST));
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+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 ACTION_ID_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;
+               strTmp.Format(LENGTH_COUNT_LABEL, L"%ls (%d)",
+                               ResourceManager::GetString(L"IDS_COM_BODY_SELECTED").GetPointer(), checkedCount);
+               __pLabelSelectCnt->SetText(strTmp);
+               __pLabelSelectCnt->RequestRedraw(true);
+               SetButtonState();
+               break;
+       }
+       case ACTION_ID_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;
+               strTmp.Format(LENGTH_COUNT_LABEL, L"%ls (%d)",
+                               ResourceManager::GetString(L"IDS_COM_BODY_SELECTED").GetPointer(), checkedCount);
+               __pLabelSelectCnt->SetText(strTmp);
+               __pLabelSelectCnt->RequestRedraw(true);
+               __pContentIconListView->UpdateList();
+               SetButtonState();
+               break;
+       }
+       case ACTION_ID_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;
+                       pSelectedBitmap = null;
+               }
+               else
+               {
+                       AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+                       return null;
+               }
+       }
+       else
+       {
+               pIconListviewItem = new (std::nothrow) IconListViewItem();
+               pIconListviewItem->Construct(*pBitmap, pItemText);
+       }
+
+       if (pBitmap != null)
+       {
+               delete pBitmap;
+               pBitmap = null;
+       }
+       if (pItemText != null)
+       {
+               delete pItemText;
+               pItemText = null;
+       }
+       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;
+               strTmp.Format(LENGTH_COUNT_LABEL, L"%ls (%d)",
+                               ResourceManager::GetString(L"IDS_COM_BODY_SELECTED").GetPointer(), checkedCount);
+               __pLabelSelectCnt->SetText(strTmp);
+               __pLabelSelectCnt->RequestRedraw(true);
+               if (__pCheckButton->IsSelected() == true)
+               {
+                       __pCheckButton->SetSelected(false);
+               }
+               else
+               {
+                       if (checkedCount != 0 && checkedCount == __pPresentationModel->GetCurrentAlbumContentInfoCount())
+                       {
+                               __pCheckButton->SetSelected(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");
+       __pPresentationModel = FileListPresentationModel::GetInstance();
+
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       TryReturnVoid(pSceneManager != null, "[%s] fail to get SceneManager.", GetErrorMessage(GetLastResult()));
+
+       if (previousSceneId == IDSCN_ALBUM_NAME_EDITOR)
+       {
+               if (pArgs != null && pArgs->GetCount() > 0)
+               {
+                       String* pDirectory = static_cast<String*>(pArgs->GetAt(0));
+                       OnRequestMoveToAction(*pDirectory);
+               }
+       }
+       else if (previousSceneId == IDSCN_ALL_LIST_SELECTION)
+       {
+               ResetSelection();
+       }
+       else if (previousSceneId == IDSCN_ALL_LIST)
+       {
+               ResetSelection();
+       }
+
+       SetButtonState();
+
+       FileListEditorForm* pFileListEditorForm =
+                       dynamic_cast<FileListEditorForm*>(pSceneManager->GetCurrentScene()->GetForm());
+       TryReturnVoid(pFileListEditorForm != null, "[%s] fail to get SceneManager.",
+                       GetErrorMessage(GetLastResult()));
+
+       pFileListEditorForm->SetTitleText(ResourceManager::GetString(L"IDS_COM_BODY_EDIT"));
+       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
+AllListEditorPanel::OnSceneDeactivated(const SceneId& currentSceneId, const SceneId& nextSceneId)
+{
+       AppLogDebug("ENTER");
+       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;
+                       }
+               }
+       }
+       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::OnRequestDeleteAction(void)
+{
+       AppLogDebug("ENTER");
+       IList* pIndexList = GetItemCheckedIndexListN();
+       if (pIndexList->GetCount() <= 0)
+       {
+               delete pIndexList;
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return E_FAILURE;
+       }
+       result r = __pPresentationModel->DeleteContentFileList(*pIndexList);
+       if (r != E_SUCCESS)
+       {
+               delete pIndexList;
+               AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
+
+               return E_FAILURE;
+       }
+
+       __pCheckButton->SetSelected(false);
+
+       String strTmp;
+       strTmp.Format(LENGTH_COUNT_LABEL, L"%ls (%d)",
+                       ResourceManager::GetString(L"IDS_COM_BODY_SELECTED").GetPointer(), 0);
+       __pLabelSelectCnt->SetText(strTmp);
+       __pLabelSelectCnt->RequestRedraw(true);
+
+       __pPresentationModel->RefreshCurrentAlbumContentInfoList(CONTENT_TYPE_ALL);
+       __itemCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+       __pContentIconListView->UpdateList();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+result
+AllListEditorPanel::OnRequestEmailAction(void)
+{
+       AppLogDebug("ENTER");
+       IList* pIndexList = GetItemCheckedIndexListN();
+       if (pIndexList == null || pIndexList->GetCount() <= 0)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return E_FAILURE;
+       }
+
+       String combineText;
+       String path;
+       Integer* pIndex = null;
+       int checkedIndex;
+
+       int loopCount = pIndexList->GetCount();
+       AppLogDebug("pIndexList->GetCount(%d)", loopCount);
+       for (int i = 0; i < loopCount; ++i)
+       {
+               pIndex = static_cast<Integer*>(pIndexList->GetAt(i));
+               if (pIndex != null)
+               {
+                       checkedIndex = pIndex->ToInt();
+                       path = __pPresentationModel->GetContentFilePath(checkedIndex);
+               }
+
+               if (combineText.CompareTo(EMPTY_SPACE) != 0)
+               {
+                       combineText.Append(L";");
+               }
+               combineText.Append(path);
+       }
+
+       HashMap* pDataList = new (std::nothrow) HashMap(SingleObjectDeleter);
+       pDataList->Construct();
+       pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_ATTACHMENTS), new (std::nothrow) String(combineText));
+
+       __pPresentationModel->StartAppControl(APPCONTROL_PROVIDER_ID_EMAIL,
+                       APPCONTROL_OPERATION_ID_COMPOSE, pDataList, null);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+result
+AllListEditorPanel::OnRequestMoveToAction(String& destDirectory)
+{
+       AppLogDebug("ENTER");
+       if (&destDirectory == null || destDirectory.IsEmpty())
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return E_FAILURE;
+       }
+       IList* pIndexList = GetItemCheckedIndexListN();
+       if (pIndexList == null || pIndexList->GetCount() <= 0)
+       {
+               AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
+
+               return E_FAILURE;
+       }
+
+       IList* pCollisionList = __pPresentationModel->GetCollisionIndexListN(*pIndexList, destDirectory);
+
+       if (pCollisionList != null)
+       {
+               int loopCount = pCollisionList->GetCount();
+               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 fileNmae;
+
+                       if (st.HasMoreTokens() == true)
+                       {
+                               st.GetNextToken(token);
+                               Integer::Parse(token, collisionIndex);
+
+                               if (st.HasMoreTokens() == true)
+                               {
+                                       st.GetNextToken(fileNmae);
+                               }
+
+                               MessageBox messageBox;
+                               messageBox.Construct(L"", fileNmae + ResourceManager::GetString(L"IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q"), MSGBOX_STYLE_YESNO, 0);
+                               int modalResult = 0;
+                               messageBox.ShowAndWait(modalResult);
+                               if (modalResult == MSGBOX_RESULT_NO)
+                               {
+                                       int innerLoopCount = pIndexList->GetCount();
+                                       for (int j = 0; j < innerLoopCount; ++j)
+                                       {
+                                               if(collisionIndex == (const_cast<Integer*>(static_cast<const Integer*>(pIndexList->GetAt(j))))->ToInt())
+                                               {
+                                                       pIndexList->RemoveAt(j, true);
+                                                       --j;
+                                                       --innerLoopCount;
+                                               }
+                                       }
+                               }
+                       }
+               }
+               delete pCollisionList;
+       }
+       result r = __pPresentationModel->MoveToContentFileList(*pIndexList, destDirectory);
+       delete pIndexList;
+       TryReturn(r == E_SUCCESS, E_FAILURE, "Failed on OnRequestDeleteAction");
+
+
+       ResetSelection();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+result
+AllListEditorPanel::OnRequestSlideShowAction(void)
+{
+       AppLogDebug("ENTER");
+       IList* pIndexList = GetItemCheckedIndexListN();
+       if (pIndexList == null)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return E_FAILURE;
+       }
+
+       HashMap* pDataList = new (std::nothrow) HashMap(SingleObjectDeleter);
+       result r = pDataList->Construct();
+       if (r != E_SUCCESS)
+       {
+               delete pDataList;
+               pDataList = null;
+               delete pIndexList;
+               pIndexList = null;
+               AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
+
+               return E_FAILURE;
+       }
+
+       pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_TYPE),
+                       new (std::nothrow) String(APPCONTROL_DATA_SLIDE_SHOW));
+
+       Integer* pRealIndex = null;
+       int realIndex = -1;
+       String combineText;
+       String path;
+
+       int loopCount = pIndexList->GetCount();
+       if (loopCount > 0)
+       {
+               for (int i = 0; i < loopCount; ++i)
+               {
+                       pRealIndex = static_cast<Integer*>(pIndexList->GetAt(i));
+                       if (pRealIndex != null)
+                       {
+                               realIndex = pRealIndex->ToInt();
+                       }
+
+                       path = __pPresentationModel->GetContentFilePath(realIndex);
+                       if (combineText.CompareTo(EMPTY_SPACE) != 0)
+                       {
+                               combineText.Append(L";");
+                       }
+                       combineText.Append(path);
+               }
+               pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_PATH), new (std::nothrow) String(combineText));
+       }
+
+       delete pIndexList;
+
+       __pPresentationModel->StartAppControl(APPCONTROL_PROVIDER_ID_IMAGE,
+                       APPCONTROL_OPERATION_ID_VIEW, pDataList, null);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+void
+AllListEditorPanel::ResetSelection(void)
+{
+       AppLogDebug("ENTER");
+       __pPresentationModel->RefreshCurrentAlbumContentInfoList(CONTENT_TYPE_ALL);
+       __itemCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+       __pContentIconListView->UpdateList();
+
+       int checkedCount = GetItemCheckedCount();
+       String strTmp;
+       strTmp.Format(LENGTH_COUNT_LABEL, L"%ls (%d)",
+                       ResourceManager::GetString(L"IDS_COM_BODY_SELECTED").GetPointer(), checkedCount);
+       __pLabelSelectCnt->SetText(strTmp);
+       __pLabelSelectCnt->RequestRedraw(true);
+       __pCheckButton->SetSelected(false);
+       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()));
+
+       FileListEditorForm* pFileListEditorForm =
+                       dynamic_cast<FileListEditorForm*>(pSceneManager->GetCurrentScene()->GetForm());
+       TryReturnVoid(pFileListEditorForm != 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()));
+}
diff --git a/src/GlAllListPanel.cpp b/src/GlAllListPanel.cpp
new file mode 100644 (file)
index 0000000..78ba548
--- /dev/null
@@ -0,0 +1,359 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlAllListPanel.cpp
+ * @brief              This is the implementation file for AllListPanel class.
+ */
+
+#include <FContent.h>
+#include <FMedia.h>
+#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 = 24;
+static const int W_CONTENT_MARGIN = 14;
+static const int W_CONTENT_SPACE = 20;
+static const int H_CONTENT_SPACE = 24;
+
+AllListPanel::AllListPanel()
+       : __pContentIconListView(null)
+       , __itemCount(0)
+       , __pPresentationModel(null)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+AllListPanel::~AllListPanel()
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AllListPanel::Refresh(void)
+{
+       AppLogDebug("ENTER");
+       if (__pPresentationModel->GetAppControlMode() == APP_CONTROL_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();
+       __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;
+               pBitmapEmpty = null;
+       }
+       __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");
+       __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;
+               pBitmap = null;
+       }
+       if (pItemText != null)
+       {
+               delete pItemText;
+               pItemText = null;
+       }
+       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");
+       if (status == ICON_LIST_VIEW_ITEM_SELECTED)
+       {
+               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));
+
+               if (__pPresentationModel->GetCurrentAlbumContentInfoCount() <= 0)
+               {
+                       AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+                       return;
+               }
+
+               String combineText;
+               String path;
+               int loopCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+               for (int i = 0 ; i < loopCount; ++i)
+               {
+                       path = __pPresentationModel->GetContentFilePath(i);
+
+                       if (combineText.CompareTo(EMPTY_SPACE) != 0)
+                       {
+                               combineText.Append(L";");
+                       }
+                       combineText.Append(path);
+               }
+
+               String listIndex;
+               listIndex.Format(10, L"%d", index);
+               pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_PATH), new (std::nothrow) String(combineText));
+               pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_INDEX), new (std::nothrow) String(listIndex));
+
+               __pPresentationModel->StartAppControl(APPCONTROL_PROVIDER_ID_IMAGE,
+                               APPCONTROL_OPERATION_ID_VIEW, pDataList, null);
+       }
+       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::OnSceneActivatedN(const SceneId& previousSceneId,
+                                                               const SceneId& currentSceneId, IList* pArgs)
+{
+       AppLogDebug("ENTER");
+       __pPresentationModel = FileListPresentationModel::GetInstance();
+
+       if (currentSceneId == IDSCN_ALL_LIST)
+       {
+               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
+               {
+                       __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());
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AllListPanel::OnSceneDeactivated(const SceneId& currentSceneId,
+                                                               const SceneId& nextSceneId)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+AllListPanel::OnUpdateContentList()
+{
+       AppLogDebug("ENTER");
+       Refresh();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
diff --git a/src/GlAllListSelectionPanel.cpp b/src/GlAllListSelectionPanel.cpp
new file mode 100644 (file)
index 0000000..beecfcd
--- /dev/null
@@ -0,0 +1,731 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlAllListSelectionPanel.cpp
+ * @brief              This is the implementation file for AllListSelectionPanel class.
+ */
+
+#include <FContent.h>
+#include <FMedia.h>
+#include "GlAllListSelectionPanel.h"
+#include "GlCommonUtil.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 int LENGTH_COUNT_LABEL = 256;
+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;
+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)
+       : __pContentIconListView(null)
+       , __pSeletedIndexList(null)
+       , __itemCount(0)
+       , __pPresentationModel(0)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+AllListSelectionPanel::~AllListSelectionPanel(void)
+{
+       AppLogDebug("ENTER");
+       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;
+               pBitmapEmpty = null;
+       }
+       __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 r;
+}
+
+void
+AllListSelectionPanel::OnUpdateContentList()
+{
+       AppLogDebug("ENTER");
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALL_LIST));
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+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;
+                       pSelectedBitmap = null;
+               }
+               else
+               {
+                       AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+                       return null;
+               }
+
+       }
+       else
+       {
+               pIconListviewItem = new (std::nothrow) IconListViewItem();
+               pIconListviewItem->Construct(*pBitmap, pItemText);
+       }
+
+       if (pBitmap != null)
+       {
+               delete pBitmap;
+               pBitmap = null;
+       }
+       if (pItemText != null)
+       {
+               delete pItemText;
+               pItemText = null;
+       }
+       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()));
+
+               FileListEditorForm* pFileListEditorForm =
+                               dynamic_cast<FileListEditorForm*>(pSceneManager->GetCurrentScene()->GetForm());
+               TryReturnVoid(pFileListEditorForm != null, "[%s] fail to get FileListEditorForm.",
+                               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");
+       __pPresentationModel = FileListPresentationModel::GetInstance();
+
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       TryReturnVoid(pSceneManager != null, "[%s] fail to get SceneManager.", GetErrorMessage(GetLastResult()));
+
+       if (previousSceneId == IDSCN_ALBUM_NAME_EDITOR)
+       {
+               if (pArgs != null && pArgs->GetCount() > 0)
+               {
+                       String* pDirectory = static_cast<String*>(pArgs->GetAt(0));
+                       OnRequestMoveToAction(*pDirectory);
+               }
+       }
+       else if (previousSceneId == IDSCN_ALL_LIST_EDITOR)
+       {
+               if (pArgs != null)
+               {
+                       __pSeletedIndexList = pArgs;
+                       pArgs = null;
+               }
+               ResetSelection();
+               int loopCount = __pSeletedIndexList->GetCount();
+               for (int i = 0; i < loopCount; ++i)
+               {
+                       __pContentIconListView->SetItemChecked(i, true);
+                       __pContentIconListView->RequestRedraw(true);
+               }
+       }
+       SetButtonState();
+       FileListEditorForm* pFileListEditorForm =
+                       dynamic_cast<FileListEditorForm*>(pSceneManager->GetCurrentScene()->GetForm());
+       TryReturnVoid(pFileListEditorForm != null, "[%s] fail to get FileListEditorForm.",
+                       GetErrorMessage(GetLastResult()));
+
+       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");
+       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)
+{
+       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(int virtualIndex)
+{
+       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(int realIndex)
+{
+       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::OnRequestDeleteAction(void)
+{
+       AppLogDebug("ENTER");
+       IList* pIndexList = GetItemCheckedIndexListN();
+       if (pIndexList->GetCount() <= 0)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return E_FAILURE;
+       }
+       result r = __pPresentationModel->DeleteContentFileList(*pIndexList);
+       if (r != E_SUCCESS)
+       {
+               delete pIndexList;
+               AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
+
+               return E_FAILURE;
+       }
+
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       TryReturn(pSceneManager != null, E_FAILURE, "[%s] fail to get SceneManager.",
+                       GetErrorMessage(GetLastResult()));
+
+       FileListEditorForm* pFileListEditorForm =
+                       dynamic_cast<FileListEditorForm*>(pSceneManager->GetCurrentScene()->GetForm());
+       TryReturn(pFileListEditorForm != null, E_FAILURE, "[%s] fail to get FileListEditorForm.",
+                       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();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+result
+AllListSelectionPanel::OnRequestEmailAction(void)
+{
+       AppLogDebug("ENTER");
+       IList* pIndexList = GetItemCheckedIndexListN();
+       if (pIndexList == null || pIndexList->GetCount() <= 0)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return E_FAILURE;
+       }
+
+       String combineText;
+       String path;
+       Integer* pIndex = null;
+       int checkedIndex;
+
+       int loopCount = pIndexList->GetCount();
+       AppLogDebug("pIndexList->GetCount(%d)", loopCount);
+       for (int i = 0; i < loopCount; ++i)
+       {
+               pIndex = static_cast<Integer*>(pIndexList->GetAt(i));
+               if (pIndex != null)
+               {
+                       checkedIndex = pIndex->ToInt();
+                       path = __pPresentationModel->GetContentFilePath(checkedIndex);
+               }
+
+               if (combineText.CompareTo(EMPTY_SPACE) != 0)
+               {
+                       combineText.Append(L";");
+               }
+               combineText.Append(path);
+       }
+       HashMap* pDataList = new (std::nothrow) HashMap(SingleObjectDeleter);
+       pDataList->Construct();
+       pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_ATTACHMENTS), new (std::nothrow) String(combineText));
+
+       __pPresentationModel->StartAppControl(APPCONTROL_PROVIDER_ID_EMAIL,
+                       APPCONTROL_OPERATION_ID_COMPOSE, pDataList, null);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+result
+AllListSelectionPanel::OnRequestMoveToAction(String& destDirectory)
+{
+       AppLogDebug("ENTER");
+       if (&destDirectory == null || destDirectory.IsEmpty())
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return E_FAILURE;
+       }
+       IList* pIndexList = GetItemCheckedIndexListN();
+       if (pIndexList == null || pIndexList->GetCount() <= 0)
+       {
+               AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
+
+               return E_FAILURE;
+       }
+
+       IList* pCollisionList = __pPresentationModel->GetCollisionIndexListN(*pIndexList, destDirectory);
+
+       if (pCollisionList != null)
+       {
+               int loopCount = pCollisionList->GetCount();
+               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 fileNmae;
+
+                       if (st.HasMoreTokens() == true)
+                       {
+                               st.GetNextToken(token);
+                               Integer::Parse(token, collisionIndex);
+
+                               if (st.HasMoreTokens() == true)
+                               {
+                                       st.GetNextToken(fileNmae);
+                               }
+
+                               MessageBox messageBox;
+                               messageBox.Construct(L"", fileNmae + ResourceManager::GetString(L"IDS_MEDIABR_POP_ALREADY_EXISTS_OVERWRITE_Q"), MSGBOX_STYLE_YESNO, 0);
+                               int modalResult = 0;
+                               messageBox.ShowAndWait(modalResult);
+                               if (modalResult == MSGBOX_RESULT_NO)
+                               {
+                                       int innerLoopCount = pIndexList->GetCount();
+                                       for (int j = 0; j < innerLoopCount; ++j)
+                                       {
+                                               if(collisionIndex == (const_cast<Integer*>(static_cast<const Integer*>(pIndexList->GetAt(j))))->ToInt())
+                                               {
+                                                       pIndexList->RemoveAt(j, true);
+                                                       --j;
+                                                       --innerLoopCount;
+                                               }
+                                       }
+                               }
+                       }
+               }
+               delete pCollisionList;
+       }
+       result r = __pPresentationModel->MoveToContentFileList(*pIndexList, destDirectory);
+       delete pIndexList;
+       pIndexList = null;
+       TryReturn(r == E_SUCCESS, E_FAILURE, "Failed on OnRequestDeleteAction");
+
+       __pSeletedIndexList->RemoveAll(true);
+       ResetSelection();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+result
+AllListSelectionPanel::OnRequestSlideShowAction(void)
+{
+       AppLogDebug("ENTER");
+       IList* pIndexList = GetItemCheckedIndexListN();
+       if (pIndexList == null)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return E_FAILURE;
+       }
+
+       HashMap* pDataList = new (std::nothrow) HashMap(SingleObjectDeleter);
+       result r = pDataList->Construct();
+       if (r != E_SUCCESS)
+       {
+               delete pDataList;
+               pDataList = null;
+               delete pIndexList;
+               pIndexList = null;
+               AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
+
+               return E_FAILURE;
+       }
+
+       pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_TYPE),
+                       new (std::nothrow) String(APPCONTROL_DATA_SLIDE_SHOW));
+
+       Integer* pRealIndex = null;
+       int realIndex = -1;
+       String combineText;
+       String path;
+
+       int loopCount = pIndexList->GetCount();
+       if (loopCount > 0)
+       {
+               for (int i = 0; i < loopCount; ++i)
+               {
+                       pRealIndex = static_cast<Integer*>(pIndexList->GetAt(i));
+                       if (pRealIndex != null)
+                       {
+                               realIndex = pRealIndex->ToInt();
+                       }
+
+                       path = __pPresentationModel->GetContentFilePath(realIndex);
+                       if (combineText.CompareTo(EMPTY_SPACE) != 0)
+                       {
+                               combineText.Append(L";");
+                       }
+                       combineText.Append(path);
+               }
+               pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_PATH),
+                               new (std::nothrow) String(combineText));
+       }
+
+       delete pIndexList;
+       pIndexList = null;
+
+       __pPresentationModel->StartAppControl(APPCONTROL_PROVIDER_ID_IMAGE,
+                       APPCONTROL_OPERATION_ID_VIEW, pDataList, null);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+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()));
+
+       FileListEditorForm* pFileListEditorForm = dynamic_cast<FileListEditorForm*>(pSceneManager->GetCurrentScene()->GetForm());
+       TryReturnVoid(pFileListEditorForm != null, "[%s] fail to get FileListEditorForm.", 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);
+       if (__pContentIconListView != null)
+       {
+               __pContentIconListView->UpdateList();
+       }
+       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()));
+
+       FileListEditorForm* pFileListEditorForm = dynamic_cast<FileListEditorForm*>(pSceneManager->GetCurrentScene()->GetForm());
+       TryReturnVoid(pFileListEditorForm != null, "[%s] fail to get FileListEditorForm.", 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()));
+}
diff --git a/src/GlCommonUtil.cpp b/src/GlCommonUtil.cpp
new file mode 100644 (file)
index 0000000..5dad1e6
--- /dev/null
@@ -0,0 +1,57 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlCommonUtil.cpp
+ * @brief              This is the implementation file for CommonUtil class.
+ */
+
+#include "GlCommonUtil.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Graphics;
+
+static const int W_DEFAULT_THUMBNAIL = 158;
+static const int H_DEFAULT_THUMBNAIL = 158;
+static const int BASE_STANDARD = 1000;
+static const int FORMAT_TIME = 10;
+static const String DATETIME_FORMAT = L"%02d:%02d";
+
+Bitmap*
+CommonUtil::GetEmptyThumbnailN(void)
+{
+       Rectangle mainRect(0, 0, W_DEFAULT_THUMBNAIL, H_DEFAULT_THUMBNAIL);
+       Bitmap* pBitmap = new (std::nothrow) Bitmap();
+       pBitmap->Construct(mainRect);
+       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(long duration)
+{
+       String strTime;
+       DateTime dateTime;
+       dateTime.AddSeconds( duration / BASE_STANDARD);
+       strTime.Format(FORMAT_TIME, DATETIME_FORMAT.GetPointer(), dateTime.GetMinute(), dateTime.GetSecond());
+       return strTime;
+}
diff --git a/src/GlFileListEditorForm.cpp b/src/GlFileListEditorForm.cpp
new file mode 100644 (file)
index 0000000..b1d2e2f
--- /dev/null
@@ -0,0 +1,869 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               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 "GlResourceManager.h"
+#include "GlTypes.h"
+#include "GlVideoListEditorPanel.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::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+using namespace Tizen::Base::Utility;
+
+static const int GAP_W_POPUP_ITEM = 5;
+static const int W_DELETE_POPUP = 600;
+static const int H_DELETE_POPUP = 300;
+static const int H_DELETE_LABEL = 180;
+static const int Y_DELETE_BUTTON = 180;
+static const int H_DELETE_BUTTON = 80;
+
+FileListEditorForm::FileListEditorForm(void)
+       : __pContextMenuMore(null)
+       , __pContextMenuShare(null)
+       , __pContextEditorMenuMove(null)
+       , __pContextSelectionMenuMove(null)
+       , __pDeletePopup(null)
+       , __morePosition(Point(0, 0))
+       , __pContentDirectoryList(null)
+       , __pContentDirectoryNameList(null)
+       , __pPresentationModel(null)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+FileListEditorForm::~FileListEditorForm(void)
+{
+       AppLogDebug("ENTER");
+       if (__pContentDirectoryList != null)
+       {
+               delete __pContentDirectoryList;
+       }
+       if (__pContentDirectoryNameList != null)
+       {
+               delete __pContentDirectoryNameList;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+result
+FileListEditorForm::Initialize(void)
+{
+       AppLogDebug("ENTER");
+       result r = Construct(FORM_STYLE_NORMAL | FORM_STYLE_INDICATOR | FORM_STYLE_HEADER | FORM_STYLE_FOOTER);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+result
+FileListEditorForm::OnInitializing(void)
+{
+       AppLogDebug("ENTER");
+       Header* pHeader = GetHeader();
+       TryReturn(pHeader != null, E_FAILURE, "[%s] fail to get the header.", GetErrorMessage(GetLastResult()));
+
+       __pPresentationModel = FileListPresentationModel::GetInstance();
+       __pPresentationModel->ClearThumbnailRequests();
+
+       pHeader->SetStyle(HEADER_STYLE_TITLE);
+       pHeader->SetTitleText(ResourceManager::GetString(L"IDS_COM_BODY_EDIT"));
+       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() == APP_CONTROL_MODE_PICK)
+       {
+               if (__pPresentationModel->GetAppControlSelectionMode() == APPCONTROL_SELECTION_MODE_MULTIPLE)
+               {
+                       pFooter->SetStyle(FOOTER_STYLE_SEGMENTED_TEXT);
+
+                       FooterItem footerConfirm;
+                       r = footerConfirm.Construct(ACTION_ID_FOOTER_CONFIRM);
+                       TryReturn(r == E_SUCCESS, r, "[%s] Unable to construct footer item", GetErrorMessage(r));
+                       footerConfirm.SetText(ResourceManager::GetString(L"IDS_COM_POP_DONE"));
+                       r = pFooter->AddItem(footerConfirm);
+                       TryReturn(r == E_SUCCESS, r, "[%s] Unable to add item", GetErrorMessage(r));
+
+                       pFooter->SetBackButton();
+                       SetFormBackEventListener(this);
+               }
+               else
+               {
+                       pFooter->SetStyle(FOOTER_STYLE_SEGMENTED_TEXT);
+
+                       pFooter->SetBackButton();
+                       SetFormBackEventListener(this);
+               }
+       }
+       else
+       {
+               pFooter->SetStyle(FOOTER_STYLE_BUTTON_ICON_TEXT);
+
+               ButtonItem footerMore;
+               footerMore.Construct(BUTTON_ITEM_STYLE_ICON, ACTION_ID_FOOTER_MORE);
+               Bitmap* pBitmapMore = ResourceManager::GetBitmapN(IDB_CONTROLBAR_MORE);
+               if (pBitmapMore != null)
+               {
+                       footerMore.SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapMore);
+               }
+               pFooter->SetButton(BUTTON_POSITION_LEFT,footerMore);
+
+               FooterItem footerShare;
+               r = footerShare.Construct(ACTION_ID_FOOTER_SHARE);
+               TryReturn(r == E_SUCCESS, r, "[%s] Unable to construct footer item", GetErrorMessage(r));
+               Bitmap* pBitmapShare = ResourceManager::GetBitmapN(IDB_CONTROLBAR_SHARE);
+               if (pBitmapShare != null)
+               {
+                       r = footerShare.SetIcon(FOOTER_ITEM_STATUS_NORMAL, pBitmapShare);
+                       TryReturn(r == E_SUCCESS, r, "[%s] Unable to set text", GetErrorMessage(r));
+               }
+               r = pFooter->AddItem(footerShare);
+               delete pBitmapShare;
+               pBitmapShare = null;
+               TryReturn(r == E_SUCCESS, r, "[%s] Unable to add item", GetErrorMessage(r));
+
+               FooterItem footerDelete;
+               r = footerDelete.Construct(ACTION_ID_FOOTER_DELETE);
+               TryReturn(r == E_SUCCESS, r, "[%s] Unable to construct footer item", GetErrorMessage(r));
+               Bitmap* pBitmapDelete = ResourceManager::GetBitmapN(IDB_CONTROLBAR_DELETE);
+               if (pBitmapDelete != null)
+               {
+                       r = footerDelete.SetIcon(FOOTER_ITEM_STATUS_NORMAL, pBitmapDelete);
+                       TryReturn(r == E_SUCCESS, r, "[%s] Unable to set text", GetErrorMessage(r));
+               }
+               r = pFooter->AddItem(footerDelete);
+               delete pBitmapDelete;
+               pBitmapDelete = null;
+               TryReturn(r == E_SUCCESS, r, "[%s] Unable to add item", GetErrorMessage(r));
+
+               pFooter->SetBackButton();
+               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(__pContextMenuMore != null)
+               {
+                       delete __pContextMenuMore;
+                       __pContextMenuMore = null;
+               }
+
+               __pContextMenuMore = new (std::nothrow) ContextMenu();
+               __pContextMenuMore->Construct(Point(0, 0), CONTEXT_MENU_STYLE_LIST);
+
+               __pContextMenuMore->AddItem(ResourceManager::GetString(L"IDS_COM_BODY_MOVE"), ACTION_ID_CONTEXT_MENU_MORE_MOVE);
+
+               if (checkedCount > 1)
+               {
+                       __pContextMenuMore->AddItem(ResourceManager::GetString(L"IDS_MEDIABR_BUTTON_SLIDE_SHOW"), ACTION_ID_CONTEXT_MENU_MORE_SLIDE_SHOW);
+               }
+
+               __pContextMenuMore->SetShowState(false);
+               __pContextMenuMore->AddActionEventListener(*this);
+
+               __pContextMenuShare = new (std::nothrow) ContextMenu();
+               __pContextMenuShare->Construct(Point(0, 0), CONTEXT_MENU_STYLE_LIST);
+               __pContextMenuShare->AddItem(ResourceManager::GetString(L"IDS_COM_BODY_EMAIL"), ACTION_ID_CONTEXT_MENU_SHARE_EMAIL);
+               __pContextMenuShare->SetShowState(false);
+               __pContextMenuShare->AddActionEventListener(*this);
+
+               __pContextEditorMenuMove = new (std::nothrow) ContextMenu();
+               __pContextEditorMenuMove->Construct(Point(0, 0), CONTEXT_MENU_STYLE_LIST);
+               __pContextEditorMenuMove->AddActionEventListener(*this);
+
+               __pContextSelectionMenuMove = new (std::nothrow) ContextMenu();
+               __pContextSelectionMenuMove->Construct(Point(0, 0), CONTEXT_MENU_STYLE_LIST);
+               __pContextSelectionMenuMove->AddActionEventListener(*this);
+
+               if (__pContentDirectoryNameList != null)
+               {
+                       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");
+
+       if (__pContextMenuMore != null)
+       {
+               __pContextMenuMore->RemoveActionEventListener(*this);
+               delete __pContextMenuMore;
+               __pContextMenuMore = null;
+       }
+
+       if (__pContextMenuShare != null)
+       {
+               __pContextMenuShare->RemoveActionEventListener(*this);
+               delete __pContextMenuShare;
+               __pContextMenuShare = null;
+       }
+
+       if (__pContextEditorMenuMove != null)
+       {
+               __pContextEditorMenuMove->RemoveActionEventListener(*this);
+               delete __pContextEditorMenuMove;
+               __pContextEditorMenuMove = null;
+       }
+
+       if (__pContextSelectionMenuMove != null)
+       {
+               __pContextSelectionMenuMove->RemoveActionEventListener(*this);
+               delete __pContextSelectionMenuMove;
+               __pContextSelectionMenuMove = null;
+       }
+
+       if (__pDeletePopup != null)
+       {
+               delete __pDeletePopup;
+               __pDeletePopup = null;
+       }
+       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 ACTION_ID_FOOTER_MORE:
+       {
+
+               InitializeFooter();
+
+               if (__pContextMenuMore->GetShowState() == false)
+               {
+                       Rectangle rect = source.GetBounds();
+                       __morePosition = Point(rect.width/8,rect.y);
+                       __pContextMenuMore->SetAnchorPosition(Point(rect.width/8,rect.y));
+                       __pContextMenuMore->SetShowState(true);
+                       __pContextMenuMore->Show();
+               }
+               else
+               {
+                       __pContextMenuMore->SetShowState(false);
+               }
+               break;
+       }
+       case ACTION_ID_FOOTER_SHARE:
+       {
+               if (__pContextMenuShare->GetShowState() == false)
+               {
+                       Rectangle rect = source.GetBounds();
+                       __pContextMenuShare->SetAnchorPosition(Point(rect.width/8*3 ,rect.y));
+                       __pContextMenuShare->SetShowState(true);
+                       __pContextMenuShare->Show();
+               }
+               else
+               {
+                       __pContextMenuShare->SetShowState(false);
+               }
+               break;
+       }
+       case ACTION_ID_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();
+                       }
+               }
+               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();
+                       }
+               }
+               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();
+                       }
+               }
+               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();
+                       }
+               }
+               break;
+       }
+       case ACTION_ID_CONTEXT_MENU_MORE_EDIT:
+       {
+               break;
+       }
+       case ACTION_ID_CONTEXT_MENU_MORE_ADD_TAG:
+       {
+               break;
+       }
+       case ACTION_ID_CONTEXT_MENU_MORE_MOVE:
+       {
+               RefreshFolderList();
+               if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_EDITOR)
+               {
+                       if (__pContextEditorMenuMove->GetShowState() == false)
+                       {
+                               __pContextEditorMenuMove->SetAnchorPosition(__morePosition);
+                               __pContextEditorMenuMove->SetShowState(true);
+                               __pContextEditorMenuMove->Show();
+                       }
+                       else
+                       {
+                               __pContextEditorMenuMove->SetShowState(false);
+                       }
+               }
+               else if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_SELECTION)
+               {
+                       if (__pContextSelectionMenuMove->GetShowState() == false)
+                       {
+                               __pContextSelectionMenuMove->SetAnchorPosition(__morePosition);
+                               __pContextSelectionMenuMove->SetShowState(true);
+                               __pContextSelectionMenuMove->Show();
+                       }
+                       else
+                       {
+                               __pContextSelectionMenuMove->SetShowState(false);
+                       }
+               }
+
+               break;
+       }
+       case ACTION_ID_CONTEXT_MENU_MORE_SLIDE_SHOW:
+       {
+               if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_EDITOR)
+               {
+                       AllListEditorPanel* pEditorPanel = dynamic_cast<AllListEditorPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+                       if (pEditorPanel != null)
+                       {
+                               pEditorPanel->OnRequestSlideShowAction();
+                       }
+               }
+               else if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_SELECTION)
+               {
+                       AllListSelectionPanel* pSelectionPanel = dynamic_cast<AllListSelectionPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+                       if (pSelectionPanel != null)
+                       {
+                               pSelectionPanel->OnRequestSlideShowAction();
+                       }
+               }
+
+               break;
+       }
+       case ACTION_ID_CONTEXT_MENU_SHARE_EMAIL:
+       {
+               if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_EDITOR)
+               {
+                       AllListEditorPanel* pEditorPanel = dynamic_cast<AllListEditorPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+                       if (pEditorPanel != null)
+                       {
+                               pEditorPanel->OnRequestEmailAction();
+                       }
+               }
+               else if (pSceneManager->GetCurrentSceneId() == IDSCN_IMAGE_LIST_EDITOR)
+               {
+                       ImageListEditorPanel* pEditorPanel = dynamic_cast<ImageListEditorPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+                       if (pEditorPanel != null)
+                       {
+                               pEditorPanel->OnRequestEmailAction();
+                       }
+               }
+               else if (pSceneManager->GetCurrentSceneId() == IDSCN_VIDEO_LIST_EDITOR)
+               {
+                       VideoListEditorPanel* pEditorPanel = dynamic_cast<VideoListEditorPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+                       if (pEditorPanel != null)
+                       {
+                               pEditorPanel->OnRequestEmailAction();
+                       }
+
+               }
+               else if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_SELECTION)
+               {
+                       AllListSelectionPanel* pSelectionPanel = dynamic_cast<AllListSelectionPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+                       if (pSelectionPanel != null)
+                       {
+                               pSelectionPanel->OnRequestEmailAction();
+                       }
+               }
+
+               break;
+       }
+       case ACTION_ID_CONTEXTMENU_EDITOR_MOVE_CREATE_ALBUM:
+       {
+               if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_EDITOR)
+               {
+                       pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALBUM_NAME_EDITOR));
+               }
+               break;
+       }
+       case ACTION_ID_CONTEXTMENU_SELECTION_MOVE_CREATE_ALBUM:
+       {
+               if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_SELECTION)
+               {
+                       pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALBUM_NAME_EDITOR));
+               }
+               break;
+       }
+       case ACTION_ID_DELETE_POPUP_DEL:
+       {
+               __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->OnRequestDeleteAction();
+                               if (r == E_SUCCESS)
+                               {
+                                       if (pEditorPanel->GetItemCount() > 0)
+                                       {
+                                               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALL_LIST));
+                                       }
+                                       else
+                                       {
+                                               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALBUM_LIST));
+                                       }
+                               }
+                       }
+               }
+               else if (pSceneManager->GetCurrentSceneId() == IDSCN_IMAGE_LIST_EDITOR)
+               {
+                       ImageListEditorPanel* pEditorPanel = dynamic_cast<ImageListEditorPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+                       if (pEditorPanel != null)
+                       {
+                               pEditorPanel->OnRequestDeleteAction();
+                       }
+               }
+               else if (pSceneManager->GetCurrentSceneId() == IDSCN_VIDEO_LIST_EDITOR)
+               {
+                       VideoListEditorPanel* pEditorPanel = dynamic_cast<VideoListEditorPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+                       if (pEditorPanel != null)
+                       {
+                               pEditorPanel->OnRequestDeleteAction();
+                       }
+               }
+               else if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_SELECTION)
+               {
+                       AllListSelectionPanel* pSelectionPanel = dynamic_cast<AllListSelectionPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+                       if (pSelectionPanel != null)
+                       {
+                               result r = pSelectionPanel->OnRequestDeleteAction();
+                               if (r == E_SUCCESS)
+                               {
+                                       if (pSelectionPanel->GetItemCount() > 0)
+                                       {
+                                               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALL_LIST));
+                                       }
+                                       else
+                                       {
+                                               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALBUM_LIST));
+                                       }
+                               }
+                       }
+               }
+
+               break;
+       }
+       case ACTION_ID_DELETE_POPUP_CANCEL:
+       {
+               __pDeletePopup->SetShowState(false);
+               __pDeletePopup->Invalidate(true);
+               break;
+       }
+       case ACTION_ID_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 ((ACTION_ID_CONTEXTMENU_EDITOR_MOVE_ALBUM_ARRAY_START <= actionId) && (actionId <= ACTION_ID_CONTEXTMENU_EDITOR_MOVE_CREATE_ALBUM + 1000))
+                       {
+                               if (__pContentDirectoryList == null)
+                               {
+
+                                       return;
+                               }
+                               if (__pContentDirectoryList->GetCount() > actionId - ACTION_ID_CONTEXTMENU_EDITOR_MOVE_ALBUM_ARRAY_START)
+                               {
+                                       String* pDirectory = static_cast<String*>(__pContentDirectoryList->GetAt(actionId - ACTION_ID_CONTEXTMENU_EDITOR_MOVE_ALBUM_ARRAY_START));
+
+                                       AllListEditorPanel* pEditorPanel = dynamic_cast<AllListEditorPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+                                       if (pEditorPanel != null)
+                                       {
+                                               result r = pEditorPanel->OnRequestMoveToAction(*pDirectory);
+                                               if (r == E_SUCCESS)
+                                               {
+                                                       MoveToAlbum(*pDirectory);
+                                               }
+                                       }
+                               }
+                       }
+               }
+               else if (pSceneManager->GetCurrentSceneId() == IDSCN_ALL_LIST_SELECTION)
+               {
+                       if ((ACTION_ID_CONTEXTMENU_SELECTION_MOVE_ALBUM_ARRAY_START <= actionId) && (actionId <= ACTION_ID_CONTEXTMENU_SELECTION_MOVE_CREATE_ALBUM + 1000))
+                       {
+                               if (__pContentDirectoryList == null)
+                               {
+
+                                       return;
+                               }
+                               if (__pContentDirectoryList->GetCount() > actionId - ACTION_ID_CONTEXTMENU_SELECTION_MOVE_ALBUM_ARRAY_START)
+                               {
+                                       String* pDirectory = static_cast<String*>(__pContentDirectoryList->GetAt(actionId - ACTION_ID_CONTEXTMENU_SELECTION_MOVE_ALBUM_ARRAY_START));
+
+                                       AllListSelectionPanel* pSelectionPanel = dynamic_cast<AllListSelectionPanel*>(pSceneManager->GetCurrentScene()->GetPanel());
+                                       if (pSelectionPanel != null)
+                                       {
+                                               result r = pSelectionPanel->OnRequestMoveToAction(*pDirectory);
+                                               if (r == E_SUCCESS)
+                                               {
+                                                       MoveToAlbum(*pDirectory);
+                                               }
+                                       }
+                               }
+                       }
+               }
+
+               break;
+       }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+FileListEditorForm::OnUpdateContentList()
+{
+       AppLogDebug("ENTER");
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALL_LIST));
+       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));
+
+       Rectangle popupClientBounds = __pDeletePopup->GetClientAreaBounds();
+
+       Label* pLabelText = new (std::nothrow) Label();
+       pLabelText->Construct(Rectangle(0, 0, popupClientBounds.width, H_DELETE_LABEL), ResourceManager::GetString(L"IDS_COM_POP_DELETE_Q"));
+       pLabelText->SetTextHorizontalAlignment(ALIGNMENT_CENTER);
+       __pDeletePopup->AddControl(*pLabelText);
+
+       Button* pButtonDel = new (std::nothrow) Button();
+       pButtonDel->Construct(Rectangle(0, Y_DELETE_BUTTON, popupClientBounds.width / 2 - GAP_W_POPUP_ITEM, H_DELETE_BUTTON), ResourceManager::GetString(L"IDS_COM_BODY_DELETE"));
+       pButtonDel->SetActionId(ACTION_ID_DELETE_POPUP_DEL);
+       pButtonDel->AddActionEventListener(*this);
+       __pDeletePopup->AddControl(*pButtonDel);
+
+       Button* pButtonCancel = new (std::nothrow) Button();
+       pButtonCancel->Construct(Rectangle(popupClientBounds.width / 2 + GAP_W_POPUP_ITEM, Y_DELETE_BUTTON, popupClientBounds.width / 2 - GAP_W_POPUP_ITEM, H_DELETE_BUTTON), ResourceManager::GetString(L"IDS_COM_POP_CANCEL"));
+       pButtonCancel->SetActionId(ACTION_ID_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);
+       contentDirectory.Construct(*pContentTypeList);
+       delete pContentTypeList;
+       pContentTypeList = null;
+
+       if (__pContentDirectoryList != null)
+       {
+               delete __pContentDirectoryList;
+               __pContentDirectoryList = null;
+       }
+       __pContentDirectoryList = contentDirectory.GetContentDirectoryPathListN(SORT_ORDER_NONE);
+       __pContentDirectoryNameList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+       String* pDirPath = null;
+       String* pDirName = null;
+
+       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));
+               __pContentDirectoryNameList->Add(pDirName);
+       }
+       __pContextEditorMenuMove->RemoveAllItems();
+       __pContextEditorMenuMove->AddItem(ResourceManager::GetString(L"IDS_MEDIABR_OPT_CREATE_ALBUM"), ACTION_ID_CONTEXTMENU_EDITOR_MOVE_CREATE_ALBUM);
+       __pContextSelectionMenuMove->RemoveAllItems();
+       __pContextSelectionMenuMove->AddItem(ResourceManager::GetString(L"IDS_MEDIABR_OPT_CREATE_ALBUM"), ACTION_ID_CONTEXTMENU_SELECTION_MOVE_CREATE_ALBUM);
+
+       loopCount = __pContentDirectoryNameList->GetCount();
+       for (int i = 0; i < loopCount; ++i)
+       {
+               pDirName = static_cast<String*>(__pContentDirectoryNameList->GetAt(i));
+               __pContextEditorMenuMove->AddItem(*(new (std::nothrow) String(*pDirName)), ACTION_ID_CONTEXTMENU_EDITOR_MOVE_ALBUM_ARRAY_START + i);
+               __pContextSelectionMenuMove->AddItem(*(new (std::nothrow) String(*pDirName)), ACTION_ID_CONTEXTMENU_SELECTION_MOVE_ALBUM_ARRAY_START + i);
+       }
+       __pContextEditorMenuMove->SetShowState(false);
+       __pContextSelectionMenuMove->SetShowState(false);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+FileListEditorForm::OnFormBackRequested(Form& source)
+{
+       AppLogDebug("ENTER");
+
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       TryReturnVoid(pSceneManager != null, "[%s] fail to get SceneManager.", GetErrorMessage(GetLastResult()));
+
+       if (__pPresentationModel->GetAppControlMode() == APP_CONTROL_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)
+               {
+                       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->GoBackward(BackwardSceneTransition(IDSCN_ALL_LIST_EDITOR), pList);
+                       }
+               }
+               else
+               {
+                       pSceneManager->GoBackward(BackwardSceneTransition(IDSCN_ALL_LIST));
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+FileListEditorForm::SetFooterButtonsState(bool enableState)
+{
+       AppLogDebug("ENTER");
+       Footer* pFooter = GetFooter();
+       TryReturnVoid(pFooter != null, "[%s] fail to get the footer.", GetErrorMessage(GetLastResult()));
+
+       if (enableState == true)
+       {
+               pFooter->SetButtonEnabled(BUTTON_POSITION_LEFT, true);
+               pFooter->SetItemEnabled(0, true);
+               pFooter->SetItemEnabled(1, true);
+       }
+       else
+       {
+               pFooter->SetButtonEnabled(BUTTON_POSITION_LEFT, false);
+               pFooter->SetItemEnabled(0, false);
+               pFooter->SetItemEnabled(1, false);
+       }
+
+       pFooter->RequestRedraw(true);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+result
+FileListEditorForm::MoveToAlbum(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;
+}
diff --git a/src/GlFileListForm.cpp b/src/GlFileListForm.cpp
new file mode 100644 (file)
index 0000000..c2628bc
--- /dev/null
@@ -0,0 +1,285 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlFileListForm.cpp
+ * @brief              This is the implementation file for FileListForm class.
+ */
+
+#include "GlAlbumInfo.h"
+#include "GlAllListPanel.h"
+#include "GlFileListForm.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::Graphics;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+using namespace Tizen::Content;
+
+static const String DEFAULT_TITLE = L"File View";
+
+FileListForm::FileListForm(void)
+       : __pContextMenuMore(null)
+       , __pPresentationModel(null)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+FileListForm::~FileListForm(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+result
+FileListForm::Initialize(void)
+{
+       AppLogDebug("ENTER");
+       result r = Construct(FORM_STYLE_NORMAL | FORM_STYLE_INDICATOR | FORM_STYLE_HEADER | FORM_STYLE_FOOTER);
+       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()));
+
+       __pPresentationModel = FileListPresentationModel::GetInstance();
+       __pPresentationModel->ClearThumbnailRequests();
+
+       pHeader->SetStyle(HEADER_STYLE_TITLE);
+       pHeader->SetTitleText(DEFAULT_TITLE);
+
+       InitializeFooter();
+       SetFormBackEventListener(this);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+result
+FileListForm::OnTerminating(void)
+{
+       AppLogDebug("ENTER");
+       if (__pContextMenuMore != null)
+       {
+               delete __pContextMenuMore;
+               __pContextMenuMore = null;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+void
+FileListForm::OnUpdateContentList()
+{
+       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 ACTION_ID_FOOTER_MORE:
+       {
+               AppLogDebug("ITEMCOUNT(%d)", __pPresentationModel->GetCurrentAlbumContentInfoCount());
+
+               InitializeFooter();
+
+               if (__pContextMenuMore->GetShowState() == false)
+               {
+                       Rectangle rect = source.GetBounds();
+                       __pContextMenuMore->SetAnchorPosition(Point(rect.width/8, rect.y));
+                       __pContextMenuMore->SetShowState(true);
+                       __pContextMenuMore->Show();
+               }
+               else
+               {
+                       __pContextMenuMore->SetShowState(false);
+               }
+               break;
+       }
+       case ACTION_ID_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 ACTION_ID_FOOTER_SLIDESHOW:
+       {
+               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));
+
+               if (__pPresentationModel->GetCurrentAlbumContentInfoCount() <= 0)
+               {
+                       break;
+               }
+               String combineText;
+               String path;
+
+               int loopCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+               for (int i = 0; i < loopCount; ++i)
+               {
+                       path = __pPresentationModel->GetContentFilePath(i);
+                       if (combineText.CompareTo(EMPTY_SPACE) != 0)
+                       {
+                               combineText.Append(L";");
+                       }
+                       combineText.Append(path);
+               }
+               pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_PATH),
+                               new (std::nothrow) String(combineText));
+
+               __pPresentationModel->StartAppControl(APPCONTROL_PROVIDER_ID_IMAGE,
+                               APPCONTROL_OPERATION_ID_VIEW, pDataList, null);
+               break;
+       }
+       case ACTION_ID_FOOTER_CAMERA:
+       {
+               HashMap* pDataList = new (std::nothrow) HashMap(SingleObjectDeleter);
+               pDataList->Construct();
+               pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_TYPE),
+                               new (std::nothrow) String(APPCONTROL_DATA_CAMERA));
+
+               __pPresentationModel->StartAppControl(APPCONTROL_PROVIDER_ID_CAMERA,
+                               APPCONTROL_OPERATION_ID_CAPTURE, pDataList, null);
+               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()));
+}
+
+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);
+
+       ButtonItem footerMore;
+       footerMore.Construct(BUTTON_ITEM_STYLE_ICON, ACTION_ID_FOOTER_MORE);
+       Bitmap* pBitmapMore = ResourceManager::GetBitmapN(IDB_CONTROLBAR_MORE);
+       if (pBitmapMore != null)
+       {
+               footerMore.SetIcon(BUTTON_ITEM_STATUS_NORMAL, pBitmapMore);
+       }
+       pFooter->SetButton(BUTTON_POSITION_LEFT,footerMore);
+
+       FooterItem itemCamera;
+       itemCamera.Construct(ACTION_ID_FOOTER_CAMERA);
+       Bitmap* pBitmapCamera = ResourceManager::GetBitmapN(IDB_CONTROLBAR_CAMERA);
+       if (pBitmapCamera != null)
+       {
+               itemCamera.SetIcon(FOOTER_ITEM_STATUS_NORMAL, pBitmapCamera);
+       }
+       pFooter->AddItem(itemCamera);
+
+       if (__pContextMenuMore != null)
+       {
+               delete __pContextMenuMore;
+               __pContextMenuMore = null;
+       }
+
+       __pContextMenuMore = new (std::nothrow) ContextMenu();
+       __pContextMenuMore->Construct(Point(0, 0), CONTEXT_MENU_STYLE_LIST);
+
+       if (__pPresentationModel->GetCurrentAlbumContentInfoCount() > 1)
+       {
+               __pContextMenuMore->AddItem(ResourceManager::GetString(L"IDS_MEDIABR_BUTTON_SLIDE_SHOW"), ACTION_ID_FOOTER_SLIDESHOW);
+       }
+
+       if (__pPresentationModel->GetCurrentAlbumContentInfoCount() == 0)
+       {
+               __pContextMenuMore->SetEnabled(false);
+       }
+       else
+       {
+               __pContextMenuMore->AddItem(ResourceManager::GetString(L"IDS_COM_HEADER_EDIT"), ACTION_ID_FOOTER_EDIT);
+               __pContextMenuMore->SetShowState(false);
+               __pContextMenuMore->AddActionEventListener(*this);
+       }
+
+       pFooter->SetBackButton();
+
+       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()));
+       pHeader->SetTitleText(titleText);
+       pHeader->Show();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
diff --git a/src/GlFileListPresentationModel.cpp b/src/GlFileListPresentationModel.cpp
new file mode 100644 (file)
index 0000000..7ae73b0
--- /dev/null
@@ -0,0 +1,1497 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               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 "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 = 158;
+static const int H_DURATION = 38;
+static const int W_DEFAULT_THUMBNAIL = 158;
+static const int H_DEFAULT_THUMBNAIL = 158;
+static const int W_WIDE_THUMBNAIL = 172;
+static const int H_WIDE_THUMBNAIL = 128;
+static const int W_PLAY_FG = 64;
+static const int H_PLAY_FG = 64;
+static const int GAP_W_PLAY_FG = 47;
+static const int GAP_H_PLAY_FG = 27;
+static const int GAP_H_DURATION = 27+64+28;
+static const int ALPHA_DURATION = 70;
+static const int FONT_SIZE_DURATION = 28;
+static const Dimension DIMENSION_REAL_ICON (162,164);
+static const Rectangle RECTANGLE_THUMBNAIL_OFFSET_POSION (1, 1, 156, 158);
+static const Rectangle RECTANGLE_VIDEO_THUMBNAIL_OFFSET_POSION (1, 1, 168, 124);
+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_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::__pIconListViewCache = null;
+IList* FileListPresentationModel::__pDirectoryList = null;
+IList* FileListPresentationModel::__pContentInfoList = null;
+
+FileListPresentationModel::FileListPresentationModel(void)
+       :__albumContentType(CONTENT_TYPE_ALL)
+       ,__appControlMode(APP_CONTROL_MODE_MAIN)
+       ,__appControlMediaType(APPCONTROL_MEDIA_TYPE_UNKNOWN)
+       ,__appControlSelectionMode(APPCONTROL_SELECTION_MODE_UNKNOWN)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+FileListPresentationModel::~FileListPresentationModel(void)
+{
+       AppLogDebug("ENTER");
+       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);
+
+       if (__pIconListViewCache != null)
+       {
+               delete __pIconListViewCache;
+       }
+       __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();
+
+       __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 = APP_CONTROL_MODE_MAIN;
+       }
+       else if (operationId.CompareTo(APPCONTROL_OPERATION_ID_PICK) == 0)
+       {
+               __appControlMode = APP_CONTROL_MODE_PICK;
+
+               if (pArguments != null)
+               {
+                       const String* selectionMode = static_cast<const String*>(pArguments->GetValue(String(APPCONTROL_KEY_SELECTION_MODE)));
+                       const String* mediaType = static_cast<const String*>(pArguments->GetValue(String(APPCONTROL_KEY_MEDIA_TYPE)));
+
+                       if (mediaType != null && mediaType->CompareTo(APPCONTROL_DATA_VIDEO) == 0)
+                       {
+                               __appControlMediaType = APPCONTROL_MEDIA_TYPE_VIDEO;
+                       }
+                       else
+                       {
+                               __appControlMediaType = APPCONTROL_MEDIA_TYPE_IMAGE;
+                       }
+
+                       if (selectionMode != null && selectionMode->CompareTo(APPCONTROL_DATA_MULTIPLE) == 0)
+                       {
+                               __appControlSelectionMode = APPCONTROL_SELECTION_MODE_MULTIPLE;
+                       }
+                       else
+                       {
+                               __appControlSelectionMode = APPCONTROL_SELECTION_MODE_SINGLE;
+                       }
+               }
+       }
+       else if (operationId.CompareTo(APPCONTROL_OPERATION_ID_CONFIGURE) == 0)
+       {
+               __appControlMode = APP_CONTROL_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;
+       __pIconListViewCache = null;
+
+       if (__pIconListViewCache != null)
+       {
+               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;
+       }
+
+       delete __pPresentationModelInstance;
+       __pPresentationModelInstance = null;
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+String
+FileListPresentationModel::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 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;
+               pContentTypeList = null;
+       }
+       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;
+               pContentList = null;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return returnValue;
+}
+
+result
+FileListPresentationModel::GetThumbnailInSyncCacheN(const int index, String*& pName, Bitmap*& pThumbnail)
+{
+       AppLogDebug("ENTER : index(%d)", index);
+       Bitmap* pOrgBitmap = null;
+       Bitmap* pDstBitmap = 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());
+               pOrgBitmap = pThumbnailInfo->GetBitmapN();
+       }
+
+       if ((pThumbnailInfo != null)&&(pThumbnailInfo->GetContentType() == CONTENT_TYPE_VIDEO))
+       {
+               if (pOrgBitmap != null)
+               {
+                       pDstBitmap = CoverVideoOverlayedImageOnThumbnailN(*pOrgBitmap, *pThumbnailInfo);
+                       delete pOrgBitmap;
+                       pOrgBitmap = null;
+               }
+       }
+       else
+       {
+               pDstBitmap = pOrgBitmap;
+       }
+
+       if (pDstBitmap != null)
+       {
+               Bitmap* pThumbnailBgBitmap = ResourceManager::GetBitmapN(IDB_VIDEOTHUMBNAIL_BG);
+               Rectangle thumbnailRect(RECTANGLE_THUMBNAIL_OFFSET_POSION);
+               pDstBitmap->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, *pDstBitmap, thumbnailRect);
+                       delete pThumbnailBgBitmap;
+                       pThumbnailBgBitmap = null;
+                       delete pDstBitmap;
+                       pDstBitmap = null;
+               }
+               else
+               {
+                       pThumbnail = pDstBitmap;
+               }
+       }
+       else
+       {
+               pThumbnail = null;
+       }
+
+       if (pThumbnailInfo != null)
+       {
+               delete pThumbnailInfo;
+               pThumbnailInfo = null;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+result
+FileListPresentationModel::GetThumbnailVideoInSyncCacheN(const int index, String*& pName, Bitmap*& pThumbnail, String*& pDuration)
+{
+       AppLogDebug("ENTER : index(%d)", index);
+       ContentInfo* pContentInfo = null;
+       Bitmap* pOrgBitmap = 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());
+               pOrgBitmap = 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 (pOrgBitmap != null)
+       {
+               Bitmap* pThumbnailBgBitmap = ResourceManager::GetBitmapN(IDB_VIDEOTHUMBNAIL_BG);
+               Rectangle thumbnailRect(RECTANGLE_VIDEO_THUMBNAIL_OFFSET_POSION);
+               pOrgBitmap->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, *pOrgBitmap, thumbnailRect);
+                       delete pThumbnailBgBitmap;
+                       pThumbnailBgBitmap = null;
+               }
+               delete pOrgBitmap;
+               pOrgBitmap = null;
+       }
+       else
+       {
+               pThumbnail = null;
+       }
+
+       if (pThumbnail != null)
+       {
+               pThumbnail->Scale(Dimension(W_WIDE_THUMBNAIL, H_WIDE_THUMBNAIL));
+       }
+
+       if (pThumbnailInfo != null)
+       {
+               delete pThumbnailInfo;
+               pThumbnailInfo = null;
+       }
+       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::CancelThumbnailRequest(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;
+               }
+                __pThumbnailProvider->CancelThumbnailRequest(pContentInfo->GetContentId(), __pThumbnailEvent);
+       }
+       AppLogDebug("EXIT");
+}
+
+void
+FileListPresentationModel::ClearThumbnailRequests(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;
+                                       pThumbnailInfo = null;
+                                       isMatch = true;
+                                       break;
+                               }
+                       }
+
+                       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;
+               pEventEnum = null;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+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()));
+}
+
+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;
+}
+
+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)
+               {
+                       DeleteContentFile(*pContentId);
+               }
+       }
+       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);
+       }
+
+       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)
+               {
+                       MoveToContentFile(*pContentId, destDirectory);
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+result
+FileListPresentationModel::DeleteContentFile(const ContentId& contentId)
+{
+       AppLogDebug("ENTER");
+       if (&contentId == null)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return E_SUCCESS;
+       }
+       ContentManager contentManager;
+       result r = contentManager.Construct();
+       if (r == E_SUCCESS)
+       {
+               r = contentManager.DeleteContent(contentId);
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+result
+FileListPresentationModel::MoveToContentFile(const ContentId& contentId, const String& destDirectory)
+{
+       AppLogDebug("ENTER");
+       if (contentId.ToString().IsEmpty() == true || destDirectory.IsEmpty() == true)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+               return E_FAILURE;
+       }
+
+       ContentManager contentManager;
+       result r = contentManager.Construct();
+       if (r == E_SUCCESS)
+       {
+               ContentInfo* pContentInfo = contentManager.GetContentInfoN(contentId);
+               if (pContentInfo == null)
+               {
+                       AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
+                       return E_FAILURE;
+               }
+
+               String filePath = pContentInfo->GetContentPath();
+               if (filePath.GetLength() < 4)
+               {
+                       AppLogDebug("EXIT 3(%s)", GetErrorMessage(GetLastResult()));
+
+                       return E_SUCCESS;
+               }
+
+               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_SUCCESS;
+               }
+
+               if (File::IsFileExist(destPath) == true)
+               {
+                       File::Remove(destPath);
+               }
+
+               result r = E_SUCCESS;
+
+               if (pContentInfo->GetContentType() == CONTENT_TYPE_IMAGE)
+               {
+
+                       r = File::Copy(filePath, destPath, false);
+                       if (r == E_SUCCESS)
+                       {
+                               ContentManager cntManager;
+                               result rt = cntManager.Construct();
+                               if (rt == E_SUCCESS)
+                               {
+                                       ImageContentInfo contentInfo;
+                                       rt = contentInfo.Construct(&destPath);
+                                       if (rt == E_SUCCESS)
+                                       {
+                                               cntManager.CreateContent(contentInfo);
+                                               cntManager.DeleteContent(contentId);
+                                       }
+                               }
+                       }
+               }
+               else if (pContentInfo->GetContentType() == CONTENT_TYPE_VIDEO)
+               {
+                       r = File::Copy(filePath, destPath, false);
+
+                       if (r == E_SUCCESS)
+                       {
+                               ContentManager cntManager;
+                               result rt = cntManager.Construct();
+                               if (rt == E_SUCCESS)
+                               {
+                                       VideoContentInfo contentInfo;
+                                       rt = contentInfo.Construct(&destPath);
+                                       {
+                                               cntManager.CreateContent(contentInfo);
+                                               cntManager.DeleteContent(contentId);
+                                       }
+                               }
+                       }
+               }
+               delete pContentInfo;
+               pContentInfo = null;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+result
+FileListPresentationModel::StartAppControl( const String& providerId, const String& operationId,
+                                                                       const IMap* pDataList, IAppControlResponseListener* pListener)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("FindAppControlN(%ls, %ls)", providerId.GetPointer(), operationId.GetPointer());
+       if (pDataList != null)
+       {
+               IList* pKeyList = pDataList->GetKeysN();
+               if (pKeyList != null)
+               {
+                       int keyCount = pKeyList->GetCount();
+                       for (int i = 0 ; i < keyCount ; ++i)
+                       {
+                               String* pKey = const_cast<String*>(static_cast<const String*>(pKeyList->GetAt(i)));
+                               String* pValue = const_cast<String*>(static_cast<const String*>(pDataList->GetValue(*pKey)));
+
+                               AppLogDebug("(%ls:%ls)", pKey == null ? L"(null)" : pKey->GetPointer(), pValue == null ? L"(null)" : pValue->GetPointer());
+                       }
+               }
+       }
+       AppControl* pAc = AppManager::FindAppControlN(providerId, operationId);
+       if (pAc == null)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return E_FAILURE;
+       }
+       result r = pAc->Start(null, null, 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;
+
+       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() == APP_CONTROL_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(ContentType contentType)
+{
+       AppLogDebug("ENTER");
+       result r = RefreshContentInfoList(contentType);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+result
+FileListPresentationModel::RefreshContentInfoList(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 = GetContentInfoListInDirectoryListN(*__pDirectoryList, __albumContentType);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+String
+FileListPresentationModel::GetCurrentAlbumName(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return __albumName;
+}
+
+void
+FileListPresentationModel::SetCurrentAlbumName(String& albumName)
+{
+       AppLogDebug("ENTER");
+       if (&albumName == null)
+       {
+               __albumName = EMPTY_SPACE;
+       }
+       else
+       {
+               __albumName = albumName;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+ContentType
+FileListPresentationModel::GetCurrentAlbumContentType(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return __albumContentType;
+}
+
+void
+FileListPresentationModel::SetCurrentAlbumContentType(ContentType contentType)
+{
+       AppLogDebug("ENTER");
+       __albumContentType = contentType;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+IList*
+FileListPresentationModel::GetAlbumDirectoryListN(void)
+{
+       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)
+{
+       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(int index)
+{
+       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;
+}
+
+int
+FileListPresentationModel::GetCurrentAlbumContentInfoCount(void)
+{
+       AppLogDebug("ENTER");
+       if (__pContentInfoList == null)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return 0;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return __pContentInfoList->GetCount();
+}
+
+ContentId
+FileListPresentationModel::GetContentInfoIndex(int index)
+{
+       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(int index)
+{
+       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* overlayedImage = 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;
+                       playBitmap = null;
+               }
+
+               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);
+
+               overlayedImage = new (std::nothrow) Bitmap();
+               overlayedImage->Construct(mainCanvas,mainCanvas.GetBounds());
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return overlayedImage;
+}
+
+Bitmap*
+FileListPresentationModel::GetShadedBackgroundBitmapN(Bitmap& bgBitmap,
+                                                                                       const Bitmap& orgBitmap,
+                                                                                       const Rectangle& orgBitmapPosition)
+{
+       AppLogDebug("ENTER");
+       if (&orgBitmap == null || &orgBitmap == 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(orgBitmapPosition, orgBitmap);
+
+       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);
+                               }
+                               else
+                               {
+                                       delete 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;
+       }
+
+       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
+       {
+               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;
+}
diff --git a/src/GlFormFactory.cpp b/src/GlFormFactory.cpp
new file mode 100644 (file)
index 0000000..a70f321
--- /dev/null
@@ -0,0 +1,115 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               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 "GlSettingIntervalForm.h"
+#include "GlSettingMainForm.h"
+#include "GlSettingTransitionForm.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();
+               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_SETTING_INTERVAL)
+       {
+               SettingIntervalForm* pForm = new (std::nothrow) SettingIntervalForm();
+               pForm->Initialize();
+               pSceneManager->AddSceneEventListener(sceneId, *pForm);
+               pNewForm = pForm;
+       }
+       else if (formId == IDC_FORM_SETTING_TRANSITION)
+       {
+               SettingTransitionForm* pForm = new (std::nothrow) SettingTransitionForm();
+               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..b8da117
--- /dev/null
@@ -0,0 +1,245 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlGalleryApp.cpp
+ * @brief              This is the implementation file for GalleryApp class.
+ */
+
+#include "GlAlbumListPresentationModel.h"
+#include "GlBaseForm.h"
+#include "GlBasePanel.h"
+#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;
+
+static const wchar_t* PARAM_LANGUAGE = L"http://tizen.org/setting/locale.language";
+static const wchar_t* PARAM_LOCALE = L"http://tizen.org/setting/locale.country";
+
+GalleryApp::GalleryApp(void)
+       :__requestId(0)
+       ,__pArguments(null)
+       ,__appControlResult(APP_CTRL_RESULT_SUCCEEDED)
+{
+       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::GetUriData(void) const
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+       return __uriData;
+}
+
+const IMap*
+GalleryApp::GetAppControlArguments(void) const
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return __pArguments;
+}
+
+void
+GalleryApp::SendAppControlResult(AppCtrlResult appControlResult, IMap* pExtraData)
+{
+       AppLogDebug("ENTER");
+       AppControlProviderManager* pAppManager = AppControlProviderManager::GetInstance();
+       pAppManager->SendAppControlResult(__requestId, appControlResult, pExtraData);
+       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");
+       AlbumListPresentationModel* pAlbumListPresentationModel = AlbumListPresentationModel::GetInstance();
+       if (pAlbumListPresentationModel != null)
+       {
+               pAlbumListPresentationModel->ClearThumbnailRequests(true);
+       }
+       FileListPresentationModel* pFileListPresentationModel = FileListPresentationModel::GetInstance();
+       if (pFileListPresentationModel != null)
+       {
+               pFileListPresentationModel->ClearThumbnailRequests(true);
+       }
+
+       Thread::Sleep(1000);
+
+       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));
+       pMainFrame->SetEnabled(true);
+       pMainFrame->Invalidate(true);
+
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       AppAssert(pSceneManager);
+
+       Scene* pScene = pSceneManager->GetCurrentScene();
+       AppAssert(pSceneManager);
+
+       BasePanel* pBasePanel = dynamic_cast<BasePanel*>(pScene->GetPanel());
+       BaseForm* pBaseForm = dynamic_cast<BaseForm*>(pScene->GetForm());
+       if(pBasePanel != null)
+       {
+               pBasePanel->OnUpdateContentList();
+       }
+       else
+       {
+               if (pBaseForm != null)
+               {
+                       pBaseForm->OnUpdateContentList();
+               }
+       }
+       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 (pUriData != null)
+       {
+               __uriData = *pUriData;
+       }
+       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));
+
+                       if (pValue != null && pKey->CompareTo(APPCONTROL_RESULT_KEY_LEGACY_RESULT) != 0)
+                       {
+                               AppLogDebug("(%ls:%ls)", pKey == null ? L"(null)" : pKey->GetPointer(), pValue == null ? L"(null)" : pValue->GetPointer());
+                               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");
+       if (key.CompareTo(PARAM_LANGUAGE) == 0 || key.CompareTo(PARAM_LOCALE) == 0)
+       {
+               UiApp::GetInstance()->Terminate();
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+GalleryApp::SetFrameEnabled(bool enabled)
+{
+       MainFrame* pMainFrame = dynamic_cast<MainFrame*>(GetFrameAt(0));
+       pMainFrame->SetEnabled(enabled);
+}
diff --git a/src/GlGalleryEntry.cpp b/src/GlGalleryEntry.cpp
new file mode 100644 (file)
index 0000000..87d3cd6
--- /dev/null
@@ -0,0 +1,56 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               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/GlImageListEditorPanel.cpp b/src/GlImageListEditorPanel.cpp
new file mode 100644 (file)
index 0000000..3311669
--- /dev/null
@@ -0,0 +1,698 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               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"
+
+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 unsigned int COLOR_SELECTALL_REGION = Color32<0x2A, 0x36, 0x4A>::Value;
+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 int H_COUNT_LABEL = 48;
+static const int LENGTH_COUNT_LABEL = 256;
+static const int ALPHA_THUMBNAIL_DIM = 70;
+static const Rectangle RECT_INITIAL (0, 0, 10, 10);
+
+ImageListEditorPanel::ImageListEditorPanel(void)
+       : __pContentIconListView(null)
+       , __pCheckButton(null)
+       , __pLabelSelectCnt(null)
+       , __itemCount(0)
+       , __pPresentationModel(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;
+
+       Rectangle clientAreaBounds = pForm->GetClientAreaBounds();
+       clientAreaBounds.x = clientAreaBounds.y = 0;
+       SetBounds(clientAreaBounds);
+
+       if (__pPresentationModel->GetAppControlMode() == APP_CONTROL_MODE_PICK)
+       {
+               __pContentIconListView = new (std::nothrow) IconListView();
+
+               if (__pPresentationModel->GetAppControlSelectionMode() == APPCONTROL_SELECTION_MODE_MULTIPLE)
+               {
+                       __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;
+                               pBitmapEmpty = null;
+                       }
+                       __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);
+
+                       String strTmp;
+                       strTmp.Format(LENGTH_COUNT_LABEL, L"%ls (%d)",
+                                       ResourceManager::GetString(L"IDS_COM_BODY_SELECTED").GetPointer(), 0);
+                       __pLabelSelectCnt = new (std::nothrow) Label();
+                       __pLabelSelectCnt->Construct(Rectangle(0, clientAreaBounds.height-H_COUNT_LABEL,
+                                       clientAreaBounds.width, H_COUNT_LABEL), strTmp);
+                       __pLabelSelectCnt->SetTextVerticalAlignment(ALIGNMENT_MIDDLE);
+                       __pLabelSelectCnt->SetTextHorizontalAlignment(ALIGNMENT_CENTER);
+                       __pLabelSelectCnt->SetBackgroundColor(COLOR_COUNT_LABEL);
+                       __pLabelSelectCnt->SetTextColor(Color(COLOR_SELECT_COUNT_FONT));
+                       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;
+                               pBitmapEmpty = null;
+                       }
+                       __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
+       {
+               Panel* pCheckPanel = new (std::nothrow) Panel();
+               pCheckPanel->Construct(Rectangle(0, 0, clientAreaBounds.width, H_SELECTALL_REGION));
+               pCheckPanel->SetBackgroundColor(COLOR_SELECTALL_REGION);
+               __pCheckButton = new (std::nothrow) CheckButton();
+               __pCheckButton->Construct(pCheckPanel->GetBounds(), CHECK_BUTTON_STYLE_MARK, BACKGROUND_STYLE_DEFAULT,
+                               false, ResourceManager::GetString(L"IDS_COM_BODY_SELECT_ALL"));
+               __pCheckButton->SetActionId(ACTION_ID_SELECTALL_CHECKED, ACTION_ID_SELECTALL_UNCHECKED);
+               __pCheckButton->AddActionEventListener(*this);
+               pCheckPanel->AddControl(*__pCheckButton);
+               AddControl(*pCheckPanel);
+
+               __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;
+                       pBitmapEmpty = null;
+               }
+               __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);
+
+               String strTmp;
+               strTmp.Format(LENGTH_COUNT_LABEL, L"%ls (%d)",
+                               ResourceManager::GetString(L"IDS_COM_BODY_SELECTED").GetPointer(), 0);
+               __pLabelSelectCnt = new (std::nothrow) Label();
+               __pLabelSelectCnt->Construct(
+                               Rectangle(0, clientAreaBounds.height-H_COUNT_LABEL, clientAreaBounds.width, H_COUNT_LABEL),
+                               strTmp);
+               __pLabelSelectCnt->SetTextVerticalAlignment(ALIGNMENT_MIDDLE);
+               __pLabelSelectCnt->SetTextHorizontalAlignment(ALIGNMENT_CENTER);
+               __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;
+}
+
+void
+ImageListEditorPanel::OnUpdateContentList()
+{
+       AppLogDebug("ENTER");
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       pSceneManager->GoForward(ForwardSceneTransition(IDSCN_IMAGE_LIST));
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+ImageListEditorPanel::OnActionPerformed(const Control& source, int actionId)
+{
+       AppLogDebug("ENTER");
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       AppAssert(pSceneManager);
+
+       switch (actionId)
+       {
+       case ACTION_ID_SELECTALL_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;
+               strTmp.Format(LENGTH_COUNT_LABEL, L"%ls (%d)",
+                               ResourceManager::GetString(L"IDS_COM_BODY_SELECTED").GetPointer(), checkedCount);
+               __pLabelSelectCnt->SetText(strTmp);
+               __pLabelSelectCnt->RequestRedraw(true);
+               break;
+       }
+       case ACTION_ID_SELECTALL_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;
+               strTmp.Format(LENGTH_COUNT_LABEL, L"%ls (%d)",
+                               ResourceManager::GetString(L"IDS_COM_BODY_SELECTED").GetPointer(), checkedCount);
+               __pLabelSelectCnt->SetText(strTmp);
+               __pLabelSelectCnt->RequestRedraw(true);
+               __pContentIconListView->UpdateList();
+               break;
+       }
+       default:
+       {
+               break;
+       }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+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;
+                       pSelectedBitmap = null;
+               }
+               else
+               {
+                       AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+                       return null;
+               }
+       }
+       else
+       {
+               pIconListviewItem->Construct(*pBitmap, pItemText);
+       }
+
+       if (pBitmap != null)
+       {
+               delete pBitmap;
+               pBitmap = null;
+       }
+       if (pItemText != null)
+       {
+               delete pItemText;
+               pItemText = null;
+       }
+       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() == APP_CONTROL_MODE_PICK)
+               {
+                       if (__pPresentationModel->GetAppControlSelectionMode() == APPCONTROL_SELECTION_MODE_MULTIPLE)
+                       {
+                               int checkedCount = GetItemCheckedCount();
+                               String strTmp;
+                               strTmp.Format(LENGTH_COUNT_LABEL, L"%ls (%d)",
+                                               ResourceManager::GetString(L"IDS_COM_BODY_SELECTED").GetPointer(), checkedCount);
+                               __pLabelSelectCnt->SetText(strTmp);
+                               __pLabelSelectCnt->RequestRedraw(true);
+                               __pContentIconListView->RefreshList(index, LIST_REFRESH_TYPE_ITEM_MODIFY);
+                       }
+               }
+               else
+               {
+                       int checkedCount = GetItemCheckedCount();
+                       String strTmp;
+                       strTmp.Format(LENGTH_COUNT_LABEL, L"%ls (%d)",
+                                       ResourceManager::GetString(L"IDS_COM_BODY_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() == APP_CONTROL_MODE_PICK
+               && __pPresentationModel->GetAppControlSelectionMode() == APPCONTROL_SELECTION_MODE_SINGLE)
+       {
+               if (status == ICON_LIST_VIEW_ITEM_SELECTED)
+               {
+                       HashMap* map = new (std::nothrow) HashMap(SingleObjectDeleter);
+                       result r = map->Construct();
+                       if (r == E_SUCCESS)
+                       {
+                               map->Add(new (std::nothrow) String(APPCONTROL_KEY_PATH),
+                                               new (std::nothrow) String(__pPresentationModel->GetContentFilePath(index)));
+                               map->Add(new (std::nothrow) String(APPCONTROL_KEY_DATA_SELECTED),
+                                               new (std::nothrow) String(__pPresentationModel->GetContentFilePath(index)));
+
+                               GalleryApp* pApp = dynamic_cast<GalleryApp*>(UiApp::GetInstance());
+                               if (pApp != null)
+                               {
+                                       pApp->SendAppControlResult(APP_CTRL_RESULT_SUCCEEDED, map);
+                                       pApp->Terminate();
+                               }
+                               else
+                               {
+                                       delete map;
+                                       map = null;
+                               }
+                       }
+                       else
+                       {
+                               delete map;
+                               map = null;
+                       }
+               }
+       }
+       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");
+       __pPresentationModel = FileListPresentationModel::GetInstance();
+
+       if (__pPresentationModel->GetAppControlMode() == APP_CONTROL_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);
+       }
+       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::GetItemCheckedIndexList(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
+ImageListEditorPanel::OnRequestDeleteAction(void)
+{
+       AppLogDebug("ENTER");
+       IList* pIndexList = GetItemCheckedIndexList();
+
+       if (pIndexList == null || pIndexList->GetCount() <= 0 || __pPresentationModel == null)
+       {
+               delete pIndexList;
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return;
+       }
+
+       __pPresentationModel->DeleteContentFileList(*pIndexList);
+       delete pIndexList;
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+ImageListEditorPanel::OnRequestEmailAction(void)
+{
+       AppLogDebug("ENTER");
+       IList* pIndexList = GetItemCheckedIndexList();
+       if (pIndexList->GetCount() <= 0)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return;
+       }
+
+       String combineText;
+       String path;
+       int loopCount = pIndexList->GetCount();
+       for (int i = 0; i < loopCount; ++i)
+       {
+               path = __pPresentationModel->GetContentFilePath(i);
+
+               if (path.EndsWith(CONTENT_EXT_PNG)
+                               || path.EndsWith(CONTENT_EXT_BMP)
+                               || path.EndsWith(CONTENT_EXT_JPG)
+                               || path.EndsWith(CONTENT_EXT_GIF)
+                               || path.EndsWith(CONTENT_EXT_TIF)
+                               || path.EndsWith(CONTENT_EXT_MP4)
+                               || path.EndsWith(CONTENT_EXT_3GP)
+                               || path.EndsWith(CONTENT_EXT_AVI)
+                               || path.EndsWith(CONTENT_EXT_RM)
+                               || path.EndsWith(CONTENT_EXT_WMV)
+                               || path.EndsWith(CONTENT_EXT_ASF)
+                       )
+               {
+                       if (combineText.CompareTo(EMPTY_SPACE) != 0)
+                       {
+                               combineText.Append(L";");
+                       }
+                       combineText.Append(path);
+               }
+       }
+
+       HashMap* pDataList = new (std::nothrow) HashMap(SingleObjectDeleter);
+       pDataList->Construct();
+       pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_ATTACHMENTS),
+                       new (std::nothrow) String(combineText));
+
+       __pPresentationModel->StartAppControl(APPCONTROL_PROVIDER_ID_EMAIL,
+                       APPCONTROL_OPERATION_ID_COMPOSE, pDataList, null);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+ImageListEditorPanel::OnRequestMoveToAction(String& destDirectory)
+{
+       AppLogDebug("ENTER");
+       if (&destDirectory == null || destDirectory.IsEmpty())
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return;
+       }
+
+       IList* pIndexList = GetItemCheckedIndexList();
+       if (pIndexList == null || pIndexList->GetCount() <= 0)
+       {
+               AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
+
+               return;
+       }
+       result r = __pPresentationModel->MoveToContentFileList(*pIndexList, destDirectory);
+       delete pIndexList;
+       pIndexList = null;
+       TryReturn(r == E_SUCCESS, , "Failed on OnRequestDeleteAction");
+
+       __pPresentationModel->RefreshCurrentAlbumContentInfoList(CONTENT_TYPE_ALL);
+       __itemCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+       __pContentIconListView->UpdateList();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+ImageListEditorPanel::OnRequestAppExitWithMultipleSelectionAppControlResult(void)
+{
+       AppLogDebug("ENTER");
+       IList* pIndexList = GetItemCheckedIndexList();
+
+       if (pIndexList->GetCount() <= 0)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return;
+       }
+
+       String combineText;
+
+       int loopCount = pIndexList->GetCount();
+       for (int i = 0; i < loopCount; ++i)
+       {
+               combineText.Append(__pPresentationModel->GetContentFilePath(i));
+               combineText.Append(L";");
+       }
+
+       HashMap* map = new (std::nothrow) HashMap(SingleObjectDeleter);
+       map->Construct();
+       map->Add(new (std::nothrow) String(APPCONTROL_KEY_PATH),
+                       new (std::nothrow) String(combineText));
+       map->Add(new (std::nothrow) String(APPCONTROL_KEY_DATA_SELECTED),
+                               new (std::nothrow) String(combineText));
+
+       GalleryApp* pApp = dynamic_cast<GalleryApp*>(UiApp::GetInstance());
+       if (pApp != null)
+       {
+               pApp->SendAppControlResult(APP_CTRL_RESULT_SUCCEEDED, map);
+               pApp->Terminate();
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
diff --git a/src/GlImageListPanel.cpp b/src/GlImageListPanel.cpp
new file mode 100644 (file)
index 0000000..fc1f3e6
--- /dev/null
@@ -0,0 +1,298 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               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()
+       : __pContentIconListView(null)
+       , __itemCount(0)
+       , __pPresentationModel(null)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+ImageListPanel::~ImageListPanel()
+{
+       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;
+               pBitmapEmpty = null;
+       }
+       __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;
+}
+
+void
+ImageListPanel::OnUpdateContentList()
+{
+       AppLogDebug("ENTER");
+       if (__pPresentationModel->GetAppControlMode() == APP_CONTROL_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();
+       __pContentIconListView->UpdateList();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+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;
+               pBitmap = null;
+       }
+       if (pItemText != null)
+       {
+               delete pItemText;
+               pItemText = null;
+       }
+       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)
+       {
+               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));
+
+               int loopCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+               for (int i = 0; i < loopCount; ++i)
+               {
+                       pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_PATH),
+                                       new (std::nothrow) String(__pPresentationModel->GetContentFilePath(i)));
+               }
+               String listIndex;
+               listIndex.Format(10, L"%d", index);
+               pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_INDEX),
+                               new (std::nothrow) String(listIndex));
+
+               __pPresentationModel->StartAppControl(APPCONTROL_PROVIDER_ID_IMAGE,
+                               APPCONTROL_OPERATION_ID_VIEW, 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..6977063
--- /dev/null
@@ -0,0 +1,111 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               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");
+       static FormFactory formFactory;
+       static PanelFactory panelFactory;
+
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+
+       pSceneManager->RegisterFormFactory(formFactory);
+       pSceneManager->RegisterPanelFactory(panelFactory);
+
+       pSceneManager->RegisterScene(IDSCN_ALBUM_LIST, IDC_FORM_ALBUM_LIST, IDC_PANEL_BLANK);
+       pSceneManager->RegisterScene(IDSCN_ALBUM_LIST_EDITOR, IDC_FORM_ALBUM_LIST_EDITOR, IDC_PANEL_BLANK);
+       pSceneManager->RegisterScene(IDSCN_ALBUM_NAME_EDITOR, IDC_FORM_ALBUM_NAME_EDITOR, IDC_PANEL_BLANK);
+
+       pSceneManager->RegisterScene(IDSCN_ALL_LIST, IDC_FORM_FILE_LIST, IDC_PANEL_ALL_LIST);
+       pSceneManager->RegisterScene(IDSCN_IMAGE_LIST, IDC_FORM_FILE_LIST, IDC_PANEL_IMAGE_LIST);
+       pSceneManager->RegisterScene(IDSCN_VIDEO_LIST, IDC_FORM_FILE_LIST, IDC_PANEL_VIDEO_LIST);
+
+       pSceneManager->RegisterScene(IDSCN_ALL_LIST_EDITOR, IDC_FORM_FILE_LIST_EDITOR, IDC_PANEL_ALL_LIST_EDITOR);
+       pSceneManager->RegisterScene(IDSCN_IMAGE_LIST_EDITOR, IDC_FORM_FILE_LIST_EDITOR, IDC_PANEL_IMAGE_LIST_EDITOR);
+       pSceneManager->RegisterScene(IDSCN_VIDEO_LIST_EDITOR, IDC_FORM_FILE_LIST_EDITOR, IDC_PANEL_VIDEO_LIST_EDITOR);
+
+       pSceneManager->RegisterScene(IDSCN_ALL_LIST_SELECTION, IDC_FORM_FILE_LIST_EDITOR,
+                       IDC_PANEL_ALL_LIST_SELECTION);
+
+       pSceneManager->RegisterScene(IDSCN_SETTING_MAIN, IDC_FORM_SETTING_MAIN, IDC_PANEL_BLANK);
+       pSceneManager->RegisterScene(IDSCN_SETTING_INTERVAL, IDC_FORM_SETTING_INTERVAL, IDC_PANEL_BLANK);
+       pSceneManager->RegisterScene(IDSCN_SETTING_TRANSITION, IDC_FORM_SETTING_TRANSITION, 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 E_SUCCESS;
+}
+
+result
+MainFrame::OnTerminating(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
diff --git a/src/GlPanelFactory.cpp b/src/GlPanelFactory.cpp
new file mode 100644 (file)
index 0000000..4ae85cf
--- /dev/null
@@ -0,0 +1,108 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               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/GlResourceManager.cpp b/src/GlResourceManager.cpp
new file mode 100644 (file)
index 0000000..f694a85
--- /dev/null
@@ -0,0 +1,56 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               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 null;
+       }
+
+       String str;
+       pAppResource->GetString(id, str);
+
+       return str;
+}
diff --git a/src/GlSettingIntervalForm.cpp b/src/GlSettingIntervalForm.cpp
new file mode 100644 (file)
index 0000000..b7297ec
--- /dev/null
@@ -0,0 +1,677 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlSettingIntervalForm.cpp
+ * @brief              This is the implementation file for SettingIntervalForm class.
+ */
+
+#include "GlGalleryApp.h"
+#include "GlResourceManager.h"
+#include "GlSettingIntervalForm.h"
+#include "GlSettingPresentationModel.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;
+
+static const int FONT_MAIN_TEXT_SIZE_GIANT = 100;
+static const int FONT_MAIN_TEXT_SIZE_HUGE = 70;
+static const int FONT_MAIN_TEXT_SIZE_LARGE = 55;
+static const int FONT_MAIN_TEXT_SIZE_NORMAL = 44;
+static const int FONT_MAIN_TEXT_SIZE_SMALL = 32;
+
+static const int X_GROUP_DEFAULT = 16;
+static const int Y_GROUP_DEFAULT = 0;
+static const int GAP_WIDTH = 2;
+
+static const int H_GROUP_ITEM_DEFAULT_LABEL = 114;
+static const int X_GROUP_ITEM_DEFAULT_LABEL = 16;
+
+static const int H_GROUP_INDEX_DEFAULT = 82;
+static const int H_GROUP_INDEX_TITLE_TEXT = 36;
+
+static const int X_ITEM_TYPE_3_ICON = 26;
+static const int Y_ITEM_TYPE_3_ICON = 21;
+static const int W_ITEM_TYPE_3_ICON = 0;
+static const int H_ITEM_TYPE_3_ICON = 74;
+
+static const int H_GROUP_ITEM_DEFAULT = 114;
+static const int W_GROUP_ITEM_DEFAULT = 720;
+
+static const int X_ITEM_TYPE_1_LABEL = 16;
+static const int W_ITEM_TYPE_1_LABEL = (720 - X_ITEM_TYPE_1_LABEL);
+static const int H_ITEM_TYPE_1_LABEL = 114;
+
+static const int W_ITEM_TYPE_2_LABEL_MAIN = W_ITEM_TYPE_1_LABEL;
+
+static const int X_ITEM_TYPE_3_LABEL = (X_ITEM_TYPE_3_ICON + W_ITEM_TYPE_3_ICON);
+static const int Y_ITEM_TYPE_3_LABEL = 0;
+static const int W_ITEM_TYPE_3_LABEL = (W_ITEM_TYPE_2_LABEL_MAIN - X_ITEM_TYPE_3_LABEL);
+static const int H_ITEM_TYPE_3_LABEL = H_ITEM_TYPE_1_LABEL;
+
+static const unsigned int COLOR_MAIN_TEXT = Color32<0, 0, 0>::Value;
+static const unsigned int COLOR_GROUP_TITLE_TEXT = Color32<93, 110, 141>::Value;
+static const unsigned int COLOR_BG_GROUP_INDEX_DEFAULT = Color32<249, 249, 249>::Value;
+static const unsigned int COLOR_BG_GROUP_ITEM_DEFAULT = Color32<236, 240, 242>::Value;
+
+static const int FONT_SIZE_GROUP_TITLE_TEXT = 32;
+
+static const int H_GROUP_INDEX_NO_TITLE_DEFAULT = 40;
+
+static const wchar_t* FONT_SIZE_SETTING_TYPE_GIANT = L"giant";
+static const wchar_t* FONT_SIZE_SETTING_TYPE_HUGE = L"huge";
+static const wchar_t* FONT_SIZE_SETTING_TYPE_LARGE = L"large";
+static const wchar_t* FONT_SIZE_SETTING_TYPE_MEDIUM = L"medium";
+
+static const int GROUP_TIMEINTERVAL = 0;
+
+static const int GROUP_COUNT = 1;
+static const int GROUP_INDEX_1 = 0;
+
+static const int TIMEINTERVAL_ITEM_COUNT = 5;
+
+static const int ITEM_SLIDESHOW_INTERVAL_SEC_2 = 0;
+static const int ITEM_SLIDESHOW_INTERVAL_SEC_3 = 1;
+static const int ITEM_SLIDESHOW_INTERVAL_SEC_5 = 2;
+static const int ITEM_SLIDESHOW_INTERVAL_SEC_10 = 3;
+static const int ITEM_SLIDESHOW_INTERVAL_SEC_20 = 4;
+
+SettingIntervalForm::SettingIntervalForm(void)
+       : __pTableView(null)
+       , __pPresentationModel(null)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+SettingIntervalForm::~SettingIntervalForm(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+result
+SettingIntervalForm::Initialize(void)
+{
+       AppLogDebug("ENTER");
+       result r = Construct(FORM_STYLE_NORMAL | FORM_STYLE_INDICATOR | FORM_STYLE_HEADER | FORM_STYLE_FOOTER);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+result
+SettingIntervalForm::OnInitializing(void)
+{
+       AppLogDebug("ENTER");
+       __pPresentationModel = SettingPresentationModel::GetInstance();
+
+       Header* pHeader = GetHeader();
+       AppAssert(pHeader);
+       pHeader->SetStyle(HEADER_STYLE_TITLE);
+       pHeader->SetTitleText(ResourceManager::GetString(L"IDS_COM_BODY_GALLERY"));
+
+       Rectangle bounds = GetClientAreaBounds();
+       bounds.x = X_GROUP_DEFAULT;
+       bounds.y = Y_GROUP_DEFAULT;
+       bounds.width -= (bounds.x * GAP_WIDTH);
+
+       __pTableView = new (std::nothrow) GroupedTableView();
+
+       __pTableView->Construct(bounds, true, TABLE_VIEW_SCROLL_BAR_STYLE_NONE);
+       __pTableView->SetItemProvider(this);
+
+       AddControl(*__pTableView);
+       __pTableView->SetGroupedLookEnabled(true);
+       __pTableView->AddGroupedTableViewItemEventListener(*this);
+
+       InitializeFooter();
+       SetFormBackEventListener(this);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+result
+SettingIntervalForm::OnTerminating(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+void
+SettingIntervalForm::OnActionPerformed(const Control& source, int actionId)
+{
+       AppLogDebug("ENTER");
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       AppAssert(pSceneManager);
+
+       switch (actionId)
+       {
+       default:
+       {
+               break;
+       }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+SettingIntervalForm::OnFormBackRequested(Form& source)
+{
+       AppLogDebug("ENTER");
+
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       AppAssert(pSceneManager);
+       pSceneManager->GoBackward(BackwardSceneTransition(IDSCN_SETTING_MAIN));
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+result
+SettingIntervalForm::InitializeFooter(void)
+{
+       AppLogDebug("ENTER");
+       result r = E_SUCCESS;
+       Footer* pFooter = GetFooter();
+       AppAssert(pFooter);
+       pFooter->RemoveAllItems();
+       pFooter->SetStyle(FOOTER_STYLE_BUTTON_ICON);
+
+       pFooter->SetBackButton();
+
+       pFooter->AddActionEventListener(*this);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+void
+SettingIntervalForm::OnSceneActivatedN(const SceneId& previousSceneId,
+                                                               const SceneId& currentSceneId, IList* pArgs)
+{
+       AppLogDebug("ENTER");
+       __pTableView->UpdateTableView();
+       UpdateTableViewRedioButtonState();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+SettingIntervalForm::OnSceneDeactivated(const SceneId& currentSceneId,
+                                                               const SceneId& nextSceneId)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+TableViewGroupItem*
+SettingIntervalForm::CreateGroupItem(int groupIndex, int itemWidth)
+{
+       AppLogDebug("ENTER");
+
+       int itemHeight = H_GROUP_INDEX_DEFAULT;
+       LabelTextStyle style = LABEL_TEXT_STYLE_BOLD;
+       Rectangle itemRectangle;
+       String groupText = ResourceManager::GetString(L"IDS_MEDIABR_POP_NO_NAME");
+       Label* pLabel = null;
+
+       switch (groupIndex)
+       {
+       case GROUP_TIMEINTERVAL:
+               {
+                       groupText = ResourceManager::GetString(L"IDS_IV_BODY_INTERVAL");
+               }
+               break;
+
+       default:
+               break;
+       }
+
+       TableViewGroupItem* pItem = new (std::nothrow) TableViewGroupItem();
+
+       itemRectangle.x = X_GROUP_ITEM_DEFAULT_LABEL;
+       itemRectangle.y = H_GROUP_INDEX_TITLE_TEXT;
+       itemRectangle.width = itemWidth;
+       itemRectangle.height = (itemHeight - H_GROUP_INDEX_TITLE_TEXT);
+
+       pItem->Construct(Dimension(itemWidth, itemHeight));
+       pItem->SetBackgroundColor(COLOR_BG_GROUP_INDEX_DEFAULT);
+
+       pLabel = new (std::nothrow) Label();
+       pLabel->Construct(itemRectangle, groupText);
+       pLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+       pLabel->SetTextVerticalAlignment(ALIGNMENT_TOP);
+       pLabel->SetTextConfig(FONT_SIZE_GROUP_TITLE_TEXT, style);
+       pLabel->SetTextColor(COLOR_GROUP_TITLE_TEXT);
+
+       pItem->AddControl(*pLabel);
+       pItem->SetEnabled(false);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pItem;
+}
+
+TableViewItem*
+SettingIntervalForm::CreateItem(int groupIndex, int itemIndex, int itemWidth)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("group[%d] item[%d]", groupIndex, itemIndex);
+
+       int fontSize = GetFontSize();
+
+       unsigned int itemHeight = 0;
+       bool isDrawBitmapIcon = true;
+
+       Rectangle itemRectIcon;
+       Rectangle itemRectLabel;
+       Rectangle itemRectSecondLabel;
+       String itemText(L"");
+       String itemTextTwoLine(L"");
+       TableViewAnnexStyle style = TABLE_VIEW_ANNEX_STYLE_NORMAL;
+       Bitmap* pBitmap = null;
+       Label* pLabel = null;
+
+       itemHeight = H_GROUP_ITEM_DEFAULT_LABEL;
+       ItemTypeIconAndOneLine(itemRectIcon, itemRectLabel);
+
+       switch (groupIndex)
+       {
+       case GROUP_TIMEINTERVAL:
+               {
+                       switch (itemIndex)
+                       {
+                       case ITEM_SLIDESHOW_INTERVAL_SEC_2:
+                               {
+                                       style = TABLE_VIEW_ANNEX_STYLE_RADIO;
+                                       itemText = ResourceManager::GetString(L"IDS_MEDIABR_OPT_2_SECONDS");
+                               }
+                               break;
+
+                       case ITEM_SLIDESHOW_INTERVAL_SEC_3:
+                               {
+                                       style = TABLE_VIEW_ANNEX_STYLE_RADIO;
+                                       itemText = ResourceManager::GetString(L"IDS_MEDIABR_OPT_3_SECONDS");
+                               }
+                               break;
+
+                       case ITEM_SLIDESHOW_INTERVAL_SEC_5:
+                               {
+                                       style = TABLE_VIEW_ANNEX_STYLE_RADIO;
+                                       itemText = ResourceManager::GetString(L"IDS_MEDIABR_BODY_5_SECONDS");
+                               }
+                               break;
+
+                       case ITEM_SLIDESHOW_INTERVAL_SEC_10:
+                               {
+                                       style = TABLE_VIEW_ANNEX_STYLE_RADIO;
+                                       itemText = ResourceManager::GetString(L"IDS_MEDIABR_BODY_10_SECONDS");
+                               }
+                               break;
+
+                       case ITEM_SLIDESHOW_INTERVAL_SEC_20:
+                               {
+                                       style = TABLE_VIEW_ANNEX_STYLE_RADIO;
+                                       itemText = ResourceManager::GetString(L"IDS_MEDIABR_BODY_20_SECONDS");
+                               }
+                               break;
+
+                       default:
+                               {
+                               }
+                               break;
+                       }
+               }
+               break;
+
+       default:
+               break;
+       }
+
+       TableViewItem* pItem = new (std::nothrow) TableViewItem();
+
+       if (pItem)
+       {
+               pItem->Construct(Dimension(W_GROUP_ITEM_DEFAULT, itemHeight), style);
+               pItem->SetBackgroundColor(COLOR_BG_GROUP_ITEM_DEFAULT);
+
+               if (isDrawBitmapIcon)
+               {
+                       pLabel = new (std::nothrow) Label();
+                       pLabel->Construct(itemRectIcon, L"");
+                       pLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+                       pLabel->SetTextVerticalAlignment(ALIGNMENT_MIDDLE);
+                       pLabel->SetBackgroundBitmap(*pBitmap);
+
+                       pItem->AddControl(*pLabel);
+               }
+
+               pLabel = new (std::nothrow) Label();
+               pLabel->Construct(itemRectLabel, itemText);
+               pLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+               pLabel->SetTextConfig(fontSize, LABEL_TEXT_STYLE_NORMAL);
+               pLabel->SetTextColor(COLOR_MAIN_TEXT);
+
+               pItem->AddControl(*pLabel);
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pItem;
+}
+
+int
+SettingIntervalForm::GetDefaultGroupItemHeight(void)
+{
+       return H_GROUP_INDEX_NO_TITLE_DEFAULT;
+}
+
+int
+SettingIntervalForm::GetDefaultItemHeight(void)
+{
+       return H_GROUP_ITEM_DEFAULT;
+}
+
+bool
+SettingIntervalForm::DeleteGroupItem(int groupIndex, TableViewGroupItem* pItem)
+{
+       AppLogDebug("ENTER");
+       delete pItem;
+       pItem = null;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return true;
+}
+
+bool
+SettingIntervalForm::DeleteItem(int groupIndex, int itemIndex, TableViewItem* pItem)
+{
+       AppLogDebug("ENTER");
+       delete pItem;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return true;
+}
+
+int
+SettingIntervalForm::GetGroupCount(void)
+{
+       AppLogDebug("ENTER groupItemCount(%d)", GROUP_COUNT);
+       int groupItemCount = GROUP_COUNT;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return groupItemCount;
+}
+
+int
+SettingIntervalForm::GetItemCount(int groupIndex)
+{
+       AppLogDebug("ENTER");
+
+       int itemCount = 0;
+
+       switch (groupIndex)
+       {
+       case GROUP_INDEX_1:
+               {
+                       itemCount = TIMEINTERVAL_ITEM_COUNT ;
+               }
+               break;
+
+       default:
+               break;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return itemCount;
+}
+
+void
+SettingIntervalForm::OnGroupedTableViewItemStateChanged(GroupedTableView& tableView, int groupIndex,
+               int itemIndex, TableViewItem* pItem, TableViewItemStatus status)
+{
+       AppLogDebug("ENTER");
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       AppAssert(pSceneManager);
+
+       AppLogDebug("Group(%d) index(%d)", groupIndex, itemIndex);
+
+       switch (groupIndex)
+       {
+       case GROUP_TIMEINTERVAL:
+               {
+                       switch (itemIndex)
+                       {
+                       case ITEM_SLIDESHOW_INTERVAL_SEC_2:
+                               {
+                                       int inputValue = 2;
+                                       __pPresentationModel->SetValue(SECTION_NAME_IMAGE_VIEWER,
+                                                       ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_INTERVAL, inputValue);
+                                       __pTableView->SetItemChecked(groupIndex, itemIndex, true);
+                                       AppLogDebug("SETTINGS : setvalue interval(%d)", inputValue);
+                               }
+                               break;
+
+                       case ITEM_SLIDESHOW_INTERVAL_SEC_3:
+                               {
+                                       int inputValue = 3;
+                                       __pPresentationModel->SetValue(SECTION_NAME_IMAGE_VIEWER,
+                                                       ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_INTERVAL, inputValue);
+                                       __pTableView->SetItemChecked(groupIndex, itemIndex, true);
+                                       AppLogDebug("SETTINGS : setvalue interval(%d)", inputValue);
+                               }
+                               break;
+
+                       case ITEM_SLIDESHOW_INTERVAL_SEC_5:
+                               {
+                                       int inputValue = 5;
+                                       __pPresentationModel->SetValue(SECTION_NAME_IMAGE_VIEWER,
+                                                       ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_INTERVAL, inputValue);
+                                       __pTableView->SetItemChecked(groupIndex, itemIndex, true);
+                                       AppLogDebug("SETTINGS : setvalue interval(%d)", inputValue);
+                               }
+                               break;
+
+                       case ITEM_SLIDESHOW_INTERVAL_SEC_10:
+                               {
+                                       int inputValue = 10;
+                                       __pPresentationModel->SetValue(SECTION_NAME_IMAGE_VIEWER,
+                                                       ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_INTERVAL, inputValue);
+                                       __pTableView->SetItemChecked(groupIndex, itemIndex, true);
+                                       AppLogDebug("SETTINGS : setvalue interval(%d)", inputValue);
+                               }
+                               break;
+
+                       case ITEM_SLIDESHOW_INTERVAL_SEC_20:
+                               {
+                                       int inputValue = 20;
+                                       __pPresentationModel->SetValue(SECTION_NAME_IMAGE_VIEWER,
+                                                       ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_INTERVAL, inputValue);
+                                       __pTableView->SetItemChecked(groupIndex, itemIndex, true);
+                                       AppLogDebug("SETTINGS : setvalue interval(%d)", inputValue);
+                               }
+                               break;
+
+                       default:
+                               {
+                               }
+                               break;
+                       }
+                       UpdateTableViewRedioButtonState(itemIndex);
+               }
+               break;
+
+       default:
+               {
+               }
+               break;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+SettingIntervalForm::UpdateGroupItem(int groupIndex, TableViewGroupItem* pItem)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+SettingIntervalForm::UpdateItem(int groupIndex, int itemIndex, TableViewItem* pItem)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+SettingIntervalForm::OnGroupedTableViewContextItemActivationStateChanged(GroupedTableView& tableView,
+               int groupIndex, int itemIndex, TableViewContextItem* pContextItem, bool activated)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+SettingIntervalForm::OnGroupedTableViewGroupItemStateChanged(GroupedTableView& tableView, int groupIndex,
+               TableViewGroupItem* pItem, TableViewItemStatus status)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+int
+SettingIntervalForm::GetFontSize(void)
+{
+       AppLogDebug("ENTER");
+       result r = E_SUCCESS;
+
+       int fontSize = FONT_MAIN_TEXT_SIZE_NORMAL;
+       String fontSizeValue(L"");
+
+       if ((r = SettingInfo::GetValue(FONT_SIZE_SETTING_INFO_KEY, fontSizeValue)) == E_SUCCESS)
+       {
+               AppLogDebug("GetValue Fail [%s]", GetErrorMessage(r));
+
+               if (fontSizeValue.Equals(FONT_SIZE_SETTING_TYPE_GIANT, false))
+               {
+                       fontSize = FONT_MAIN_TEXT_SIZE_GIANT;
+               }
+               else if (fontSizeValue.Equals(FONT_SIZE_SETTING_TYPE_HUGE, false))
+               {
+                       fontSize = FONT_MAIN_TEXT_SIZE_HUGE;
+               }
+               else if (fontSizeValue.Equals(FONT_SIZE_SETTING_TYPE_LARGE, false))
+               {
+                       fontSize = FONT_MAIN_TEXT_SIZE_LARGE;
+               }
+               else if (fontSizeValue.Equals(FONT_SIZE_SETTING_TYPE_MEDIUM, false))
+               {
+                       fontSize = FONT_MAIN_TEXT_SIZE_NORMAL;
+               }
+               else
+               {
+                       fontSize = FONT_MAIN_TEXT_SIZE_SMALL;
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return fontSize;
+}
+
+void
+SettingIntervalForm::ItemTypeIconAndOneLine(Rectangle& icon, Rectangle& main)
+{
+       AppLogDebug("ENTER");
+       icon.x = X_ITEM_TYPE_3_ICON;
+       icon.y = Y_ITEM_TYPE_3_ICON;
+       icon.width = W_ITEM_TYPE_3_ICON;
+       icon.height = H_ITEM_TYPE_3_ICON;
+
+       main.x = X_ITEM_TYPE_3_LABEL;
+       main.y = Y_ITEM_TYPE_3_LABEL;
+       main.width = W_ITEM_TYPE_3_LABEL;
+       main.height = H_ITEM_TYPE_3_LABEL;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+SettingIntervalForm::UpdateTableViewRedioButtonState(int senderIndex)
+{
+       AppLogDebug("ENTER senderIndex(%d)", senderIndex);
+
+       int selectedIndex = 0;
+       int realValue = 0;
+       __pPresentationModel->GetValue(SECTION_NAME_IMAGE_VIEWER, ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_INTERVAL,
+                       realValue);
+       switch (realValue)
+       {
+       case 2:
+       {
+               selectedIndex = 0;
+               break;
+       }
+       case 3:
+       {
+               selectedIndex = 1;
+               break;
+       }
+       case 5:
+       {
+               selectedIndex = 2;
+               break;
+       }
+       case 10:
+       {
+               selectedIndex = 3;
+               break;
+       }
+       case 20:
+       {
+               selectedIndex = 4;
+               break;
+       }
+       default:
+       {
+               selectedIndex = 0;
+               break;
+       }
+       }
+       AppLogDebug("selectedIndex(%d)", selectedIndex);
+
+       for (int i = 0; i < TIMEINTERVAL_ITEM_COUNT; ++i)
+       {
+               if (senderIndex != i)
+               {
+                       if (selectedIndex == i)
+                       {
+                               __pTableView->SetItemChecked(GROUP_TIMEINTERVAL, i, true);
+                       }
+                       else
+                       {
+                               __pTableView->SetItemChecked(GROUP_TIMEINTERVAL, i, false);
+                       }
+                       __pTableView->RefreshItem(GROUP_TIMEINTERVAL, i, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
diff --git a/src/GlSettingMainForm.cpp b/src/GlSettingMainForm.cpp
new file mode 100644 (file)
index 0000000..4772fc1
--- /dev/null
@@ -0,0 +1,816 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlSettingMainForm.cpp
+ * @brief              This is the implementation file for SettingMainForm class.
+ */
+
+#include "GlGalleryApp.h"
+#include "GlResourceManager.h"
+#include "GlSettingMainForm.h"
+#include "GlSettingPresentationModel.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;
+
+static const int FONT_MAIN_TEXT_SIZE_GIANT = 100;
+static const int FONT_MAIN_TEXT_SIZE_HUGE = 70;
+static const int FONT_MAIN_TEXT_SIZE_LARGE = 55;
+static const int FONT_MAIN_TEXT_SIZE_NORMAL = 44;
+static const int FONT_MAIN_TEXT_SIZE_SMALL = 32;
+
+static const int X_GROUP_DEFAULT = 16;
+static const int Y_GROUP_DEFAULT = 0;
+static const int GAP_WIDTH = 2;
+
+static const int H_GROUP_ITEM_DEFAULT_LABEL = 114;
+static const int X_GROUP_ITEM_DEFAULT_LABEL = 16;
+
+static const int H_GROUP_INDEX_DEFAULT = 82;
+static const int H_GROUP_INDEX_TITLE_TEXT = 36;
+
+static const int X_ITEM_TYPE_3_ICON = 26;
+static const int Y_ITEM_TYPE_3_ICON = 21;
+static const int W_ITEM_TYPE_3_ICON = 0;
+static const int H_ITEM_TYPE_3_ICON = 74;
+
+static const int H_GROUP_ITEM_DEFAULT = 114;
+static const int W_GROUP_ITEM_DEFAULT = 720;
+
+static const int X_ITEM_TYPE_1_LABEL = 16;
+static const int Y_ITEM_TYPE_1_LABEL = 0;
+static const int W_ITEM_TYPE_1_LABEL = (720 - X_ITEM_TYPE_1_LABEL);
+static const int H_ITEM_TYPE_1_LABEL = 114;
+
+static const int X_ITEM_TYPE_2_LABEL_MAIN = X_ITEM_TYPE_1_LABEL;
+static const int Y_ITEM_TYPE_2_LABEL_MAIN = Y_ITEM_TYPE_1_LABEL;
+static const int W_ITEM_TYPE_2_LABEL_MAIN = W_ITEM_TYPE_1_LABEL;
+static const int H_ITEM_TYPE_2_LABEL_MAIN = 70;
+
+static const int X_ITEM_TYPE_2_LABEL_SUB = X_ITEM_TYPE_1_LABEL;
+static const int Y_ITEM_TYPE_2_LABEL_SUB = H_ITEM_TYPE_2_LABEL_MAIN;
+static const int H_ITEM_TYPE_2_LABEL_SUB = 48;
+
+static const int X_ITEM_TYPE_3_LABEL = (X_ITEM_TYPE_3_ICON + W_ITEM_TYPE_3_ICON);
+static const int Y_ITEM_TYPE_3_LABEL = 0;
+static const int W_ITEM_TYPE_3_LABEL = (W_ITEM_TYPE_2_LABEL_MAIN - X_ITEM_TYPE_3_LABEL);
+static const int H_ITEM_TYPE_3_LABEL = H_ITEM_TYPE_1_LABEL;
+
+static const unsigned int COLOR_MAIN_TEXT = Color32<0, 0, 0>::Value;
+static const unsigned int COLOR_SUB_TEXT = Color32<42, 137, 194>::Value;
+static const unsigned int COLOR_GROUP_TITLE_TEXT = Color32<93, 110, 141>::Value;
+static const unsigned int COLOR_BG_GROUP_INDEX_DEFAULT = Color32<249, 249, 249>::Value;
+static const unsigned int COLOR_BG_GROUP_ITEM_DEFAULT = Color32<236, 240, 242>::Value;
+
+static const int FONT_SIZE_SUB_TEXT = 32;
+static const int FONT_SIZE_GROUP_TITLE_TEXT = 32;
+
+static const int H_GROUP_INDEX_NO_TITLE_DEFAULT = 40;
+
+static const wchar_t* FONT_SIZE_SETTING_TYPE_GIANT = L"giant";
+static const wchar_t* FONT_SIZE_SETTING_TYPE_HUGE = L"huge";
+static const wchar_t* FONT_SIZE_SETTING_TYPE_LARGE = L"large";
+static const wchar_t* FONT_SIZE_SETTING_TYPE_MEDIUM = L"medium";
+
+static const int GROUP_SLIDESHOW = 0;
+static const int GROUP_SUBTITLES = 1;
+static const int GROUP_COUNT = 1;
+static const int GROUP_INDEX_1 = 0;
+static const int GROUP_INDEX_2 = 1;
+
+static const int SLIDESHOW_ITEM_COUNT = 2;
+static const int SUBTITLES_ITEM_COUNT = 0;
+
+static const int ITEM_SLIDESHOW_INTERVAL = 0;
+static const int ITEM_SLIDESHOW_TRANSITION = 1;
+
+static const int SETTING_INFO_KEY_INDEX_SLIDESHOW_INTERVAL = 0;
+static const int SETTING_INFO_KEY_INDEX_SLIDESHOW_TRANSITION = 1;
+
+const int GAP_TWO_LINE_ITEM_WIDTH = 80;
+
+SettingMainForm::SettingMainForm(void)
+       : __pTableView(null)
+       , __pPresentationModel(null)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+SettingMainForm::~SettingMainForm(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+result
+SettingMainForm::Initialize(void)
+{
+       AppLogDebug("ENTER");
+       result r = Construct(FORM_STYLE_NORMAL | FORM_STYLE_INDICATOR | FORM_STYLE_HEADER | FORM_STYLE_FOOTER);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+result
+SettingMainForm::OnInitializing(void)
+{
+       AppLogDebug("ENTER");
+       __pPresentationModel = SettingPresentationModel::GetInstance();
+
+       Header* pHeader = GetHeader();
+       AppAssert(pHeader);
+       pHeader->SetStyle(HEADER_STYLE_TITLE);
+       pHeader->SetTitleText(ResourceManager::GetString(L"IDS_COM_BODY_GALLERY"));
+
+       Rectangle bounds = GetClientAreaBounds();
+       bounds.x = X_GROUP_DEFAULT;
+       bounds.y = Y_GROUP_DEFAULT;
+       bounds.width -= (bounds.x * GAP_WIDTH);
+
+       __pTableView = new (std::nothrow) GroupedTableView();
+       __pTableView->Construct(bounds, true, TABLE_VIEW_SCROLL_BAR_STYLE_NONE);
+       __pTableView->SetItemProvider(this);
+       AddControl(*__pTableView);
+       __pTableView->SetGroupedLookEnabled(true);
+       __pTableView->AddGroupedTableViewItemEventListener(*this);
+
+       InitializeFooter();
+       SetFormBackEventListener(this);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+result
+SettingMainForm::OnTerminating(void)
+{
+       AppLogDebug("ENTER");
+       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)
+               {
+                       pApp->SendAppControlResult(APP_CTRL_RESULT_TERMINATED, null);
+               }
+               pApp->Terminate();
+       }
+
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+result
+SettingMainForm::InitializeFooter(void)
+{
+       AppLogDebug("ENTER");
+       result r = E_SUCCESS;
+       Footer* pFooter = GetFooter();
+       AppAssert(pFooter);
+       pFooter->RemoveAllItems();
+       pFooter->SetStyle(FOOTER_STYLE_BUTTON_ICON);
+
+       pFooter->SetBackButton();
+
+       pFooter->AddActionEventListener(*this);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+void
+SettingMainForm::OnSceneActivatedN(const SceneId& previousSceneId,
+                                                               const SceneId& currentSceneId, IList* pArgs)
+{
+       AppLogDebug("ENTER");
+       __pTableView->UpdateTableView();
+       UpdateTableViewCheckButtonState();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+SettingMainForm::OnSceneDeactivated(const SceneId& currentSceneId,
+                                                               const SceneId& nextSceneId)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+TableViewGroupItem*
+SettingMainForm::CreateGroupItem(int groupIndex, int itemWidth)
+{
+       AppLogDebug("ENTER");
+
+       int itemHeight = H_GROUP_INDEX_DEFAULT;
+       LabelTextStyle style = LABEL_TEXT_STYLE_BOLD;
+       Rectangle itemRectangle;
+       String groupText = ResourceManager::GetString(L"IDS_MEDIABR_POP_NO_NAME");
+
+       Label* pLabel = null;
+
+       switch (groupIndex)
+       {
+       case GROUP_SLIDESHOW:
+               {
+                       groupText = ResourceManager::GetString(L"IDS_MEDIABR_BUTTON_SLIDE_SHOW");
+               }
+               break;
+
+       default:
+               break;
+       }
+
+       TableViewGroupItem* pItem = new (std::nothrow) TableViewGroupItem();
+
+       itemRectangle.x = X_GROUP_ITEM_DEFAULT_LABEL;
+       itemRectangle.y = H_GROUP_INDEX_TITLE_TEXT;
+       itemRectangle.width = itemWidth;
+       itemRectangle.height = (itemHeight - H_GROUP_INDEX_TITLE_TEXT);
+
+       pItem->Construct(Dimension(itemWidth, itemHeight));
+       pItem->SetBackgroundColor(COLOR_BG_GROUP_INDEX_DEFAULT);
+
+       pLabel = new (std::nothrow) Label();
+       pLabel->Construct(itemRectangle, groupText);
+       pLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+       pLabel->SetTextVerticalAlignment(ALIGNMENT_TOP);
+       pLabel->SetTextConfig(FONT_SIZE_GROUP_TITLE_TEXT, style);
+       pLabel->SetTextColor(COLOR_GROUP_TITLE_TEXT);
+
+       pItem->AddControl(*pLabel);
+       pItem->SetEnabled(false);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pItem;
+}
+
+TableViewItem*
+SettingMainForm::CreateItem(int groupIndex, int itemIndex, int itemWidth)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("group[%d] item[%d]", groupIndex, itemIndex);
+       int fontSize = GetFontSize();
+       unsigned int itemHeight = 0;
+       bool isTwoLineItemText = false;
+       bool isDrawBitmapIcon = true;
+
+       Rectangle itemRectIcon;
+       Rectangle itemRectLabel;
+       Rectangle itemRectSecondLabel;
+       String itemText(L"");
+       String itemTextTwoLine(L"");
+       TableViewAnnexStyle style = TABLE_VIEW_ANNEX_STYLE_NORMAL;
+       Bitmap* pBitmap = null;
+       Label* pLabel = null;
+
+       itemHeight = H_GROUP_ITEM_DEFAULT_LABEL;
+       ItemTypeIconAndOneLine(itemRectIcon, itemRectLabel);
+
+       switch (groupIndex)
+       {
+       case GROUP_SLIDESHOW:
+               {
+                       switch (itemIndex)
+                       {
+                       case ITEM_SLIDESHOW_INTERVAL:
+                               {
+                                       isTwoLineItemText = true;
+                                       isDrawBitmapIcon = false;
+                                       ItemTypeTwoLine(itemRectLabel, itemRectSecondLabel, fontSize);
+                                       itemHeight = (itemRectLabel.height + itemRectSecondLabel.height);
+
+                                       int returnValue = 0;
+                                       result r = __pPresentationModel->GetValue(SECTION_NAME_IMAGE_VIEWER,
+                                                       ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_INTERVAL, returnValue);
+
+                                       AppLogDebug("interval(%d)", returnValue);
+                                       if (r == E_SUCCESS)
+                                       {
+                                       switch (returnValue)
+                                       {
+                                               case 2:
+                                                       {
+                                                               itemTextTwoLine = ResourceManager::GetString(L"IDS_MEDIABR_OPT_2_SECONDS");
+                                                       }
+                                                       break;
+
+                                               case 3:
+                                                       {
+                                                               itemTextTwoLine = ResourceManager::GetString(L"IDS_MEDIABR_OPT_3_SECONDS");
+                                                       }
+                                                       break;
+
+                                               case 5:
+                                                       {
+                                                               itemTextTwoLine = ResourceManager::GetString(L"IDS_MEDIABR_BODY_5_SECONDS");
+                                                       }
+                                                       break;
+
+                                               case 10:
+                                                       {
+                                                               itemTextTwoLine = ResourceManager::GetString(L"IDS_MEDIABR_BODY_10_SECONDS");
+                                                       }
+                                                       break;
+
+                                               case 20:
+                                                       {
+                                                               itemTextTwoLine = ResourceManager::GetString(L"IDS_MEDIABR_BODY_20_SECONDS");
+                                                       }
+                                                       break;
+
+                                               default:
+                                                       {
+
+                                                       }
+                                                       break;
+                                               }
+                                       }
+                                       itemText = ResourceManager::GetString(L"IDS_IV_BODY_INTERVAL");
+                               }
+                               break;
+                       case ITEM_SLIDESHOW_TRANSITION:
+                               {
+                                       isTwoLineItemText = true;
+                                       isDrawBitmapIcon = false;
+                                       ItemTypeTwoLine(itemRectLabel, itemRectSecondLabel, fontSize);
+                                       itemHeight = (itemRectLabel.height + itemRectSecondLabel.height);
+
+                                       int returnValue = 0;
+                                       result r = __pPresentationModel->GetValue(SECTION_NAME_IMAGE_VIEWER,
+                                                       ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_TRANSITION_EFFECT, returnValue);
+
+                                       if (r == E_SUCCESS)
+                                       {
+                                       switch (returnValue)
+                                       {
+                                               case 0:
+                                                       {
+                                                               itemTextTwoLine = ResourceManager::GetString(L"IDS_MEDIABR_OPT_SLIDE");
+                                                       }
+                                                       break;
+                                               case 1:
+                                                       {
+                                                               itemTextTwoLine = ResourceManager::GetString(L"IDS_EBOOK_BODY_PAGE");
+                                                       }
+                                                       break;
+
+                                               case 2:
+                                                       {
+                                                               itemTextTwoLine = ResourceManager::GetString(L"IDS_MEDIABR_BODY_DISSOLVE");
+                                                       }
+                                                       break;
+
+                                               case 3:
+                                                       {
+                                                               itemTextTwoLine = ResourceManager::GetString(L"IDS_IV_OPT_ZOOM");
+                                                       }
+                                                       break;
+
+                                               default:
+                                                       {
+                                                       }
+                                                       break;
+                                               }
+                                       }
+
+                                       itemText = ResourceManager::GetString(L"IDS_MEDIABR_BODY_TRANSITION_EFFECT");
+                               }
+                               break;
+
+                       default:
+                               {
+                               }
+                               break;
+                       }
+               }
+               break;
+
+       case GROUP_SUBTITLES:
+               {
+                       switch (itemIndex)
+                       {
+                       default:
+                               {
+                               }
+                               break;
+                       }
+               }
+               break;
+
+       default:
+               break;
+       }
+
+       TableViewItem* pItem = new (std::nothrow) TableViewItem();
+
+       if (pItem)
+       {
+               pItem->Construct(Dimension(W_GROUP_ITEM_DEFAULT, itemHeight), style);
+               pItem->SetBackgroundColor(COLOR_BG_GROUP_ITEM_DEFAULT);
+
+               if (isDrawBitmapIcon)
+               {
+                       pLabel = new (std::nothrow) Label();
+                       pLabel->Construct(itemRectIcon, L"");
+                       pLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+                       pLabel->SetTextVerticalAlignment(ALIGNMENT_MIDDLE);
+                       pLabel->SetBackgroundBitmap(*pBitmap);
+
+                       pItem->AddControl(*pLabel);
+               }
+
+               pLabel = new (std::nothrow) Label();
+               pLabel->Construct(itemRectLabel, itemText);
+               pLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+               pLabel->SetTextConfig(fontSize, LABEL_TEXT_STYLE_NORMAL);
+               pLabel->SetTextColor(COLOR_MAIN_TEXT);
+
+               pItem->AddControl(*pLabel);
+
+               if (isTwoLineItemText)
+               {
+                       pLabel = new (std::nothrow) Label();
+                       pLabel->Construct(itemRectSecondLabel, itemTextTwoLine);
+                       pLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+                       pLabel->SetTextConfig(FONT_SIZE_SUB_TEXT, LABEL_TEXT_STYLE_NORMAL);
+                       pLabel->SetTextColor(COLOR_SUB_TEXT);
+
+                       pItem->AddControl(*pLabel);
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pItem;
+}
+
+int
+SettingMainForm::GetDefaultGroupItemHeight(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return H_GROUP_INDEX_NO_TITLE_DEFAULT;
+}
+
+int
+SettingMainForm::GetDefaultItemHeight(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return H_GROUP_ITEM_DEFAULT;
+}
+
+bool
+SettingMainForm::DeleteGroupItem(int groupIndex, TableViewGroupItem* pItem)
+{
+       AppLogDebug("ENTER");
+       delete pItem;
+       pItem = null;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return true;
+}
+
+bool
+SettingMainForm::DeleteItem(int groupIndex, int itemIndex, TableViewItem* pItem)
+{
+       AppLogDebug("ENTER");
+       delete pItem;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return true;
+}
+
+int
+SettingMainForm::GetGroupCount(void)
+{
+       AppLogDebug("ENTER");
+       int groupItemCount = GROUP_COUNT;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return groupItemCount;
+}
+
+int
+SettingMainForm::GetItemCount(int groupIndex)
+{
+       AppLogDebug("ENTER");
+
+       int itemCount = 0;
+
+       switch (groupIndex)
+       {
+       case GROUP_INDEX_1:
+               {
+                       itemCount = SLIDESHOW_ITEM_COUNT ;
+               }
+               break;
+
+       case GROUP_INDEX_2:
+               {
+                       itemCount = SUBTITLES_ITEM_COUNT ;
+               }
+               break;
+       default:
+               break;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return itemCount;
+}
+
+void
+SettingMainForm::OnGroupedTableViewItemStateChanged(GroupedTableView& tableView, int groupIndex, int itemIndex,
+               TableViewItem* pItem, TableViewItemStatus status)
+{
+       AppLogDebug("ENTER");
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       AppAssert(pSceneManager);
+       AppLogDebug("Group(%d) index(%d)", groupIndex, itemIndex);
+
+       switch (groupIndex)
+       {
+       case GROUP_SLIDESHOW:
+               {
+
+                       switch (itemIndex)
+                       {
+                       case ITEM_SLIDESHOW_INTERVAL:
+                       {
+                               SceneManager* pSceneManager = SceneManager::GetInstance();
+                               AppAssert(pSceneManager);
+                               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SETTING_INTERVAL));
+
+                               break;
+                       }
+                       case ITEM_SLIDESHOW_TRANSITION:
+                       {
+                               SceneManager* pSceneManager = SceneManager::GetInstance();
+                               AppAssert(pSceneManager);
+                               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SETTING_TRANSITION));
+
+                               break;
+                       }
+                       default:
+                       {
+
+                               break;
+                       }
+                       }
+               }
+               break;
+
+       case GROUP_SUBTITLES:
+               {
+               }
+               break;
+
+       default:
+               {
+               }
+               break;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+SettingMainForm::UpdateGroupItem(int groupIndex, TableViewGroupItem* pItem)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+SettingMainForm::UpdateItem(int groupIndex, int itemIndex, TableViewItem* pItem)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+SettingMainForm::OnGroupedTableViewContextItemActivationStateChanged(GroupedTableView& tableView, int groupIndex,
+               int itemIndex, TableViewContextItem* pContextItem, bool activated)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+SettingMainForm::OnGroupedTableViewGroupItemStateChanged(GroupedTableView& tableView, int groupIndex,
+               TableViewGroupItem* pItem, TableViewItemStatus status)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+int
+SettingMainForm::GetFontSize(void)
+{
+       AppLogDebug("ENTER");
+       result r = E_SUCCESS;
+
+       int fontSize = FONT_MAIN_TEXT_SIZE_NORMAL;
+       String fontSizeValue(L"");
+
+       if ((r = SettingInfo::GetValue(FONT_SIZE_SETTING_INFO_KEY, fontSizeValue)) == E_SUCCESS)
+       {
+               AppLogDebug("GetValue Fail [%s]", GetErrorMessage(r));
+
+               if (fontSizeValue.Equals(FONT_SIZE_SETTING_TYPE_GIANT, false))
+               {
+                       fontSize = FONT_MAIN_TEXT_SIZE_GIANT;
+               }
+               else if (fontSizeValue.Equals(FONT_SIZE_SETTING_TYPE_HUGE, false))
+               {
+                       fontSize = FONT_MAIN_TEXT_SIZE_HUGE;
+               }
+               else if (fontSizeValue.Equals(FONT_SIZE_SETTING_TYPE_LARGE, false))
+               {
+                       fontSize = FONT_MAIN_TEXT_SIZE_LARGE;
+               }
+               else if (fontSizeValue.Equals(FONT_SIZE_SETTING_TYPE_MEDIUM, false))
+               {
+                       fontSize = FONT_MAIN_TEXT_SIZE_NORMAL;
+               }
+               else
+               {
+                       fontSize = FONT_MAIN_TEXT_SIZE_SMALL;
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return fontSize;
+}
+
+void
+SettingMainForm::ItemTypeIconAndOneLine(Rectangle& icon, Rectangle& main)
+{
+       AppLogDebug("ENTER");
+       icon.x = X_ITEM_TYPE_3_ICON;
+       icon.y = Y_ITEM_TYPE_3_ICON;
+       icon.width = W_ITEM_TYPE_3_ICON;
+       icon.height = H_ITEM_TYPE_3_ICON;
+
+       main.x = X_ITEM_TYPE_3_LABEL;
+       main.y = Y_ITEM_TYPE_3_LABEL;
+       main.width = W_ITEM_TYPE_3_LABEL;
+       main.height = H_ITEM_TYPE_3_LABEL;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+int
+SettingMainForm::GetSettingInfoItemStatus(int settingIndex)
+{
+       AppLogDebug("ENTER");
+       int returnValue = 0;
+
+       switch (settingIndex)
+       {
+       case SETTING_INFO_KEY_INDEX_SLIDESHOW_INTERVAL:
+       {
+               int realValue = 0;
+               __pPresentationModel->GetValue(SECTION_NAME_IMAGE_VIEWER, ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_INTERVAL,
+                               realValue);
+               switch (realValue)
+               {
+               case 2:
+               {
+                       returnValue = 0;
+                       break;
+               }
+               case 3:
+               {
+                       returnValue = 1;
+                       break;
+               }
+               case 5:
+               {
+                       returnValue = 2;
+                       break;
+               }
+               case 10:
+               {
+                       returnValue = 3;
+                       break;
+               }
+               case 20:
+               {
+                       returnValue = 4;
+                       break;
+               }
+               default:
+               {
+                       returnValue = 0;
+                       break;
+               }
+               }
+
+               AppLogDebug("SETTINGS : interval (%d)", returnValue);
+
+               break;
+       }
+       case SETTING_INFO_KEY_INDEX_SLIDESHOW_TRANSITION:
+       {
+               __pPresentationModel->GetValue(SECTION_NAME_IMAGE_VIEWER, SETTING_INFO_KEY_INDEX_SLIDESHOW_TRANSITION,
+                               returnValue);
+
+               AppLogDebug("SETTINGS : transition(%d)", returnValue);
+
+               break;
+       }
+       default:
+       {
+               break;
+       }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return returnValue;
+}
+
+void
+SettingMainForm::ItemTypeTwoLine(Rectangle& main, Rectangle& sub, int fontSize)
+{
+       Rectangle clientRect = GetClientAreaBounds();
+
+       if (fontSize > FONT_MAIN_TEXT_SIZE_LARGE)
+       {
+               main.x = X_ITEM_TYPE_2_LABEL_MAIN;
+               main.y = Y_ITEM_TYPE_2_LABEL_MAIN;
+               main.width = (clientRect.width - GAP_TWO_LINE_ITEM_WIDTH);
+               main.height = H_ITEM_TYPE_1_LABEL;
+
+               sub.x = X_ITEM_TYPE_2_LABEL_SUB;
+               sub.y = H_ITEM_TYPE_1_LABEL;
+               sub.width = (clientRect.width - GAP_TWO_LINE_ITEM_WIDTH);
+               sub.height = H_ITEM_TYPE_2_LABEL_SUB;
+       }
+       else
+       {
+               main.x = X_ITEM_TYPE_2_LABEL_MAIN;
+               main.y = Y_ITEM_TYPE_2_LABEL_MAIN;
+               main.width = (clientRect.width - GAP_TWO_LINE_ITEM_WIDTH);
+               main.height = H_ITEM_TYPE_2_LABEL_MAIN;
+
+               sub.x = X_ITEM_TYPE_2_LABEL_SUB;
+               sub.y = Y_ITEM_TYPE_2_LABEL_SUB;
+               sub.width = (clientRect.width - GAP_TWO_LINE_ITEM_WIDTH);
+               sub.height = H_ITEM_TYPE_2_LABEL_SUB;
+       }
+}
+
+void
+SettingMainForm::UpdateTableViewCheckButtonState(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
diff --git a/src/GlSettingPresentationModel.cpp b/src/GlSettingPresentationModel.cpp
new file mode 100644 (file)
index 0000000..0230200
--- /dev/null
@@ -0,0 +1,303 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               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;
+using namespace std;
+
+static const int DEFAULT_VALUE_EFFECT_SLIDE = 0;
+static const int DEFAULT_VALUE_INTERVAL = 3;
+
+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* PATH_GALLERY_SETTINGS = L"GalleryUserSettings.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";
+
+SettingPresentationModel* SettingPresentationModel::__pPresentationModelInstance = null;
+
+SettingPresentationModel::SettingPresentationModel(void)
+       :__pDefaultGalleryRegistry(null)
+       ,__pAppGalleryRegistry(null)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+SettingPresentationModel::~SettingPresentationModel(void)
+{
+       AppLogDebug("ENTER");
+       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");
+       int valueRegistryNumber = 0;
+       String valueRegistryString = L"";
+       AppManager* pAppManager = AppManager::GetInstance();
+       TryReturn(pAppManager != null, E_FAILURE, "Failed to get AppManager");
+       String pathGallerySetting =
+                       pAppManager->GetAppSharedPath(GALLERY_APP_ID) + PATH_DATA_DIRECTORY + PATH_GALLERY_SETTINGS;
+       AppLogDebug("pathGallerySetting(%ls)", pathGallerySetting.GetPointer());
+
+       __pDefaultGalleryRegistry = new (std::nothrow) Registry();
+       __pAppGalleryRegistry = new (std::nothrow) Registry();
+
+       result r = CreateDefaultRegistry();
+       TryCatch(r == E_SUCCESS, , "CreateDefaultRegistry() failed[%s]", GetErrorMessage(r));
+
+       if (File::IsFileExist(pathGallerySetting) == true)
+       {
+               AppLogDebug("Already exist camcorder settings file");
+
+               __pAppGalleryRegistry->Construct(pathGallerySetting, "r+");
+       }
+       else
+       {
+               __pAppGalleryRegistry->Construct(pathGallerySetting, "w+");
+               r = __pAppGalleryRegistry->AddSection(SECTION_IMAGE_VIEWER);
+               TryCatch(r == E_SUCCESS, , "Registry::AddSection() failed[%s]", GetErrorMessage(r));
+
+               r = __pDefaultGalleryRegistry->GetValue(SECTION_IMAGE_VIEWER, SLIDESHOW_INTERVAL_VALUE,
+                               valueRegistryNumber);
+               TryCatch(r == E_SUCCESS, , "Registry::GetValue() failed[%s]", GetErrorMessage(r));
+               r = __pAppGalleryRegistry->AddValue(SECTION_IMAGE_VIEWER, SLIDESHOW_INTERVAL_VALUE, valueRegistryNumber);
+               TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
+
+               r = __pDefaultGalleryRegistry->GetValue(SECTION_IMAGE_VIEWER, TRANSITION_EFFECT_VALUE,
+                               valueRegistryString);
+               TryCatch(r == E_SUCCESS, , "Registry::GetValue() failed[%s]", GetErrorMessage(r));
+               r = __pAppGalleryRegistry->AddValue(SECTION_IMAGE_VIEWER, TRANSITION_EFFECT_VALUE, valueRegistryString);
+               TryCatch(r == E_SUCCESS, , "Registry::AddValue() failed[%s]", GetErrorMessage(r));
+
+               r = __pAppGalleryRegistry->Flush();
+               TryCatch(r == E_SUCCESS, , "Registry::Flush() 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;
+
+       delete __pAppGalleryRegistry;
+       __pAppGalleryRegistry = null;
+       AppLogDebug("EXIT with exception(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+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 = __pAppGalleryRegistry->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 = __pAppGalleryRegistry->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= __pAppGalleryRegistry->SetValue(strSectionName, entryName, value);
+       TryCatch(r == E_SUCCESS, , "Registry::SetValue() failed[%s]", GetErrorMessage(r));
+       r = __pAppGalleryRegistry->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 = __pAppGalleryRegistry->SetValue(strSectionName, entryName, value);
+       TryCatch(r == E_SUCCESS, , "Registry::SetValue() failed[%s]", GetErrorMessage(r));
+       r = __pAppGalleryRegistry->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());
+
+       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->Flush();
+               TryCatch(r == E_SUCCESS, , "Registry::Flush() failed[%s]", GetErrorMessage(r));
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+
+CATCH:
+       AppLogDebug("EXIT with exception(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+result
+SettingPresentationModel::ResetGallerySettingsRegistry(void)
+{
+       AppLogDebug("ENTER");
+       AppManager* pAppManager = AppManager::GetInstance();
+       TryReturn(pAppManager != null, E_FAILURE, "Failed to get AppManager");
+       String pathGallerySetting =
+                       pAppManager->GetAppSharedPath(GALLERY_APP_ID) + PATH_DATA_DIRECTORY + PATH_GALLERY_SETTINGS;
+
+       if (File::IsFileExist(pathGallerySetting))
+       {
+               File::Remove(pathGallerySetting);
+       }
+
+       result r = Construct();
+       TryCatch(r == E_SUCCESS, , "CameraSettingsPresentationModel::Construct() failed[%s]", GetErrorMessage(r));
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+
+CATCH:
+       AppLogDebug("EXIT with exception(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
diff --git a/src/GlSettingTransitionForm.cpp b/src/GlSettingTransitionForm.cpp
new file mode 100644 (file)
index 0000000..6526abe
--- /dev/null
@@ -0,0 +1,618 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlSettingTransitionForm.cpp
+ * @brief              This is the implementation file for SettingTransitionForm class.
+ */
+
+#include "GlGalleryApp.h"
+#include "GlResourceManager.h"
+#include "GlSettingPresentationModel.h"
+#include "GlSettingTransitionForm.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;
+
+static const int FONT_MAIN_TEXT_SIZE_GIANT = 100;
+static const int FONT_MAIN_TEXT_SIZE_HUGE = 70;
+static const int FONT_MAIN_TEXT_SIZE_LARGE = 55;
+static const int FONT_MAIN_TEXT_SIZE_NORMAL = 44;
+static const int FONT_MAIN_TEXT_SIZE_SMALL = 32;
+
+static const int X_GROUP_DEFAULT = 16;
+static const int Y_GROUP_DEFAULT = 0;
+static const int GAP_WIDTH = 2;
+
+static const int H_GROUP_ITEM_DEFAULT_LABEL = 114;
+static const int X_GROUP_ITEM_DEFAULT_LABEL = 16;
+
+static const int H_GROUP_INDEX_DEFAULT = 82;
+static const int H_GROUP_INDEX_TITLE_TEXT = 36;
+
+static const int X_ITEM_TYPE_3_ICON = 26;
+static const int Y_ITEM_TYPE_3_ICON = 21;
+static const int W_ITEM_TYPE_3_ICON = 0;
+static const int H_ITEM_TYPE_3_ICON = 74;
+
+static const int H_GROUP_ITEM_DEFAULT = 114;
+static const int W_GROUP_ITEM_DEFAULT = 720;
+
+static const int X_ITEM_TYPE_1_LABEL = 16;
+static const int W_ITEM_TYPE_1_LABEL = (720 - X_ITEM_TYPE_1_LABEL);
+static const int H_ITEM_TYPE_1_LABEL = 114;
+
+static const int W_ITEM_TYPE_2_LABEL_MAIN = W_ITEM_TYPE_1_LABEL;
+
+static const int X_ITEM_TYPE_3_LABEL = (X_ITEM_TYPE_3_ICON + W_ITEM_TYPE_3_ICON);
+static const int Y_ITEM_TYPE_3_LABEL = 0;
+static const int W_ITEM_TYPE_3_LABEL = (W_ITEM_TYPE_2_LABEL_MAIN - X_ITEM_TYPE_3_LABEL);
+static const int H_ITEM_TYPE_3_LABEL = H_ITEM_TYPE_1_LABEL;
+
+static const unsigned int COLOR_MAIN_TEXT = Color32<0, 0, 0>::Value;
+static const unsigned int COLOR_GROUP_TITLE_TEXT = Color32<93, 110, 141>::Value;
+static const unsigned int COLOR_BG_GROUP_INDEX_DEFAULT = Color32<249, 249, 249>::Value;
+static const unsigned int COLOR_BG_GROUP_ITEM_DEFAULT = Color32<236, 240, 242>::Value;
+static const int FONT_SIZE_GROUP_TITLE_TEXT = 32;
+
+static const int H_GROUP_INDEX_NO_TITLE_DEFAULT = 40;
+
+static const wchar_t* FONT_SIZE_SETTING_TYPE_GIANT = L"giant";
+static const wchar_t* FONT_SIZE_SETTING_TYPE_HUGE = L"huge";
+static const wchar_t* FONT_SIZE_SETTING_TYPE_LARGE = L"large";
+static const wchar_t* FONT_SIZE_SETTING_TYPE_MEDIUM = L"medium";
+
+static const int GROUP_TRANSITION = 0;
+
+static const int GROUP_COUNT = 1;
+static const int GROUP_INDEX_1 = 0;
+
+static const int TRANSITION_ITEM_COUNT = 4;
+
+static const int ITEM_SLIDESHOW_TRANSITION_EFFECT_SLIDE = 0;
+static const int ITEM_SLIDESHOW_TRANSITION_EFFECT_PAGE = 1;
+static const int ITEM_SLIDESHOW_TRANSITION_EFFECT_DISSOLVE = 2;
+static const int ITEM_SLIDESHOW_TRANSITION_EFFECT_ZOOM = 3;
+
+SettingTransitionForm::SettingTransitionForm(void)
+       : __pTableView(null)
+       , __pPresentationModel(null)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+SettingTransitionForm::~SettingTransitionForm(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+result
+SettingTransitionForm::Initialize(void)
+{
+       AppLogDebug("ENTER");
+       result r = Construct(FORM_STYLE_NORMAL | FORM_STYLE_INDICATOR | FORM_STYLE_HEADER | FORM_STYLE_FOOTER);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+result
+SettingTransitionForm::OnInitializing(void)
+{
+       AppLogDebug("ENTER");
+       __pPresentationModel = SettingPresentationModel::GetInstance();
+
+       Header* pHeader = GetHeader();
+       AppAssert(pHeader);
+       pHeader->SetStyle(HEADER_STYLE_TITLE);
+       pHeader->SetTitleText(ResourceManager::GetString(L"IDS_COM_BODY_GALLERY"));
+
+       Rectangle bounds = GetClientAreaBounds();
+       bounds.x = X_GROUP_DEFAULT;
+       bounds.y = Y_GROUP_DEFAULT;
+       bounds.width -= (bounds.x * GAP_WIDTH);
+
+       __pTableView = new (std::nothrow) GroupedTableView();
+
+       __pTableView->Construct(bounds, true, TABLE_VIEW_SCROLL_BAR_STYLE_NONE);
+       __pTableView->SetItemProvider(this);
+
+       AddControl(*__pTableView);
+       __pTableView->SetGroupedLookEnabled(true);
+       __pTableView->AddGroupedTableViewItemEventListener(*this);
+
+       InitializeFooter();
+       SetFormBackEventListener(this);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+result
+SettingTransitionForm::OnTerminating(void)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return E_SUCCESS;
+}
+
+void
+SettingTransitionForm::OnActionPerformed(const Control& source, int actionId)
+{
+       AppLogDebug("ENTER");
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       AppAssert(pSceneManager);
+
+       switch (actionId)
+       {
+       default:
+       {
+               break;
+       }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+SettingTransitionForm::OnFormBackRequested(Form& source)
+{
+       AppLogDebug("ENTER");
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       AppAssert(pSceneManager);
+       pSceneManager->GoBackward(BackwardSceneTransition(IDSCN_SETTING_MAIN));
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+result
+SettingTransitionForm::InitializeFooter(void)
+{
+       AppLogDebug("ENTER");
+       result r = E_SUCCESS;
+       Footer* pFooter = GetFooter();
+       AppAssert(pFooter);
+       pFooter->RemoveAllItems();
+       pFooter->SetStyle(FOOTER_STYLE_BUTTON_ICON);
+
+       pFooter->SetBackButton();
+
+       pFooter->AddActionEventListener(*this);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return r;
+}
+
+void
+SettingTransitionForm::OnSceneActivatedN(const SceneId& previousSceneId,
+                                                               const SceneId& currentSceneId, IList* pArgs)
+{
+       AppLogDebug("ENTER");
+       __pTableView->UpdateTableView();
+       UpdateTableViewRedioButtonState();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+SettingTransitionForm::OnSceneDeactivated(const SceneId& currentSceneId,
+                                                               const SceneId& nextSceneId)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+TableViewGroupItem*
+SettingTransitionForm::CreateGroupItem(int groupIndex, int itemWidth)
+{
+       AppLogDebug("ENTER");
+
+       int itemHeight = H_GROUP_INDEX_DEFAULT;
+       LabelTextStyle style = LABEL_TEXT_STYLE_BOLD;
+       Rectangle itemRectangle;
+       String groupText = ResourceManager::GetString(L"IDS_MEDIABR_POP_NO_NAME");
+       Label* pLabel = null;
+
+       switch (groupIndex)
+       {
+       case GROUP_TRANSITION:
+               {
+                       groupText = ResourceManager::GetString(L"IDS_MEDIABR_BODY_TRANSITION_EFFECT");
+               }
+               break;
+
+       default:
+               break;
+       }
+
+       TableViewGroupItem* pItem = new (std::nothrow) TableViewGroupItem();
+
+       itemRectangle.x = X_GROUP_ITEM_DEFAULT_LABEL;
+       itemRectangle.y = H_GROUP_INDEX_TITLE_TEXT;
+       itemRectangle.width = itemWidth;
+       itemRectangle.height = (itemHeight - H_GROUP_INDEX_TITLE_TEXT);
+
+       pItem->Construct(Dimension(itemWidth, itemHeight));
+       pItem->SetBackgroundColor(COLOR_BG_GROUP_INDEX_DEFAULT);
+
+       pLabel = new (std::nothrow) Label();
+       pLabel->Construct(itemRectangle, groupText);
+       pLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+       pLabel->SetTextVerticalAlignment(ALIGNMENT_TOP);
+       pLabel->SetTextConfig(FONT_SIZE_GROUP_TITLE_TEXT, style);
+       pLabel->SetTextColor(COLOR_GROUP_TITLE_TEXT);
+
+       pItem->AddControl(*pLabel);
+       pItem->SetEnabled(false);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pItem;
+}
+
+TableViewItem*
+SettingTransitionForm::CreateItem(int groupIndex, int itemIndex, int itemWidth)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("group[%d] item[%d]", groupIndex, itemIndex);
+
+       int fontSize = GetFontSize();
+
+       unsigned int itemHeight = 0;
+       bool isDrawBitmapIcon = true;
+
+       Rectangle itemRectIcon;
+       Rectangle itemRectLabel;
+       Rectangle itemRectSecondLabel;
+       String itemText(L"");
+       String itemTextTwoLine(L"");
+       TableViewAnnexStyle style = TABLE_VIEW_ANNEX_STYLE_NORMAL;
+       Bitmap* pBitmap = null;
+       Label* pLabel = null;
+
+       itemHeight = H_GROUP_ITEM_DEFAULT_LABEL;
+       ItemTypeIconAndOneLine(itemRectIcon, itemRectLabel);
+
+       switch (groupIndex)
+       {
+       case GROUP_TRANSITION:
+               {
+                       switch (itemIndex)
+                       {
+                       case ITEM_SLIDESHOW_TRANSITION_EFFECT_SLIDE:
+                               {
+                                       style = TABLE_VIEW_ANNEX_STYLE_RADIO;
+                                       itemText = ResourceManager::GetString(L"IDS_MEDIABR_OPT_SLIDE");
+                               }
+                               break;
+                       case ITEM_SLIDESHOW_TRANSITION_EFFECT_PAGE:
+                               {
+                                       style = TABLE_VIEW_ANNEX_STYLE_RADIO;
+                                       itemText = ResourceManager::GetString(L"IDS_EBOOK_BODY_PAGE");
+                               }
+                               break;
+
+                       case ITEM_SLIDESHOW_TRANSITION_EFFECT_DISSOLVE:
+                               {
+                                       style = TABLE_VIEW_ANNEX_STYLE_RADIO;
+                                       itemText = ResourceManager::GetString(L"IDS_MEDIABR_BODY_DISSOLVE");
+                               }
+                               break;
+
+                       case ITEM_SLIDESHOW_TRANSITION_EFFECT_ZOOM:
+                               {
+                                       style = TABLE_VIEW_ANNEX_STYLE_RADIO;
+                                       itemText = ResourceManager::GetString(L"IDS_IV_OPT_ZOOM");
+                               }
+                               break;
+
+                       default:
+                               {
+                               }
+                               break;
+                       }
+               }
+               break;
+
+       default:
+               break;
+       }
+
+       TableViewItem* pItem = new (std::nothrow) TableViewItem();
+
+       if (pItem)
+       {
+               pItem->Construct(Dimension(W_GROUP_ITEM_DEFAULT, itemHeight), style);
+               pItem->SetBackgroundColor(COLOR_BG_GROUP_ITEM_DEFAULT);
+
+               if (isDrawBitmapIcon)
+               {
+                       pLabel = new (std::nothrow) Label();
+                       pLabel->Construct(itemRectIcon, L"");
+                       pLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+                       pLabel->SetTextVerticalAlignment(ALIGNMENT_MIDDLE);
+                       pLabel->SetBackgroundBitmap(*pBitmap);
+
+                       pItem->AddControl(*pLabel);
+               }
+
+               pLabel = new (std::nothrow) Label();
+               pLabel->Construct(itemRectLabel, itemText);
+               pLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+               pLabel->SetTextConfig(fontSize, LABEL_TEXT_STYLE_NORMAL);
+               pLabel->SetTextColor(COLOR_MAIN_TEXT);
+
+               pItem->AddControl(*pLabel);
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pItem;
+}
+
+int
+SettingTransitionForm::GetDefaultGroupItemHeight(void)
+{
+       return H_GROUP_INDEX_NO_TITLE_DEFAULT;
+}
+
+int
+SettingTransitionForm::GetDefaultItemHeight(void)
+{
+       return H_GROUP_ITEM_DEFAULT;
+}
+
+bool
+SettingTransitionForm::DeleteGroupItem(int groupIndex, TableViewGroupItem* pItem)
+{
+       AppLogDebug("ENTER");
+
+       delete pItem;
+       pItem = null;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return true;
+}
+
+bool
+SettingTransitionForm::DeleteItem(int groupIndex, int itemIndex, TableViewItem* pItem)
+{
+       AppLogDebug("ENTER");
+       delete pItem;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return true;
+}
+
+int
+SettingTransitionForm::GetGroupCount(void)
+{
+       int groupItemCount = GROUP_COUNT;
+
+       return groupItemCount;
+}
+
+int
+SettingTransitionForm::GetItemCount(int groupIndex)
+{
+       AppLogDebug("ENTER");
+
+       int itemCount = 0;
+
+       switch (groupIndex)
+       {
+       case GROUP_INDEX_1:
+               {
+                       itemCount = TRANSITION_ITEM_COUNT ;
+               }
+               break;
+
+       default:
+               break;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return itemCount;
+}
+
+void
+SettingTransitionForm::OnGroupedTableViewItemStateChanged(GroupedTableView& tableView, int groupIndex,
+               int itemIndex, TableViewItem* pItem, TableViewItemStatus status)
+{
+       AppLogDebug("ENTER");
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       AppAssert(pSceneManager);
+
+       AppLogDebug("Group(%d) index(%d)", groupIndex, itemIndex);
+
+       switch (groupIndex)
+       {
+       case GROUP_TRANSITION:
+               {
+                       switch (itemIndex)
+                       {
+                       case ITEM_SLIDESHOW_TRANSITION_EFFECT_SLIDE:
+                               {
+                                       int inputValue = ITEM_SLIDESHOW_TRANSITION_EFFECT_SLIDE;
+                                       __pPresentationModel->SetValue(SECTION_NAME_IMAGE_VIEWER,
+                                                       ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_TRANSITION_EFFECT, inputValue);
+                                       __pTableView->SetItemChecked(groupIndex, itemIndex, true);
+                                       AppLogDebug("SETTINGS : setvalue interval(%d)", inputValue);
+                               }
+                               break;
+                       case ITEM_SLIDESHOW_TRANSITION_EFFECT_PAGE:
+                               {
+                                       int inputValue = ITEM_SLIDESHOW_TRANSITION_EFFECT_PAGE;
+                                       __pPresentationModel->SetValue(SECTION_NAME_IMAGE_VIEWER,
+                                                       ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_TRANSITION_EFFECT, inputValue);
+                                       __pTableView->SetItemChecked(groupIndex, itemIndex, true);
+                                       AppLogDebug("SETTINGS : setvalue interval(%d)", inputValue);
+                               }
+                               break;
+
+                       case ITEM_SLIDESHOW_TRANSITION_EFFECT_DISSOLVE:
+                               {
+                                       int inputValue = ITEM_SLIDESHOW_TRANSITION_EFFECT_DISSOLVE;
+                                       __pPresentationModel->SetValue(SECTION_NAME_IMAGE_VIEWER,
+                                                       ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_TRANSITION_EFFECT, inputValue);
+                                       __pTableView->SetItemChecked(groupIndex, itemIndex, true);
+                                       AppLogDebug("SETTINGS : setvalue interval(%d)", inputValue);
+                               }
+                               break;
+
+                       case ITEM_SLIDESHOW_TRANSITION_EFFECT_ZOOM:
+                               {
+                                       int inputValue = ITEM_SLIDESHOW_TRANSITION_EFFECT_ZOOM;
+                                       __pPresentationModel->SetValue(SECTION_NAME_IMAGE_VIEWER,
+                                                       ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_TRANSITION_EFFECT, inputValue);
+                                       __pTableView->SetItemChecked(groupIndex, itemIndex, true);
+                                       AppLogDebug("SETTINGS : setvalue interval(%d)", inputValue);
+                               }
+                               break;
+
+                       default:
+                               {
+                               }
+                               break;
+                       }
+                       UpdateTableViewRedioButtonState(itemIndex);
+               }
+               break;
+
+       default:
+               {
+               }
+               break;
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+SettingTransitionForm::UpdateGroupItem(int groupIndex, TableViewGroupItem* pItem)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+SettingTransitionForm::UpdateItem(int groupIndex, int itemIndex, TableViewItem* pItem)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+SettingTransitionForm::OnGroupedTableViewContextItemActivationStateChanged(GroupedTableView& tableView,
+               int groupIndex, int itemIndex, TableViewContextItem* pContextItem, bool activated)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+SettingTransitionForm::OnGroupedTableViewGroupItemStateChanged(GroupedTableView& tableView, int groupIndex,
+               TableViewGroupItem* pItem, TableViewItemStatus status)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+int
+SettingTransitionForm::GetFontSize(void)
+{
+       AppLogDebug("ENTER");
+       result r = E_SUCCESS;
+
+       int fontSize = FONT_MAIN_TEXT_SIZE_NORMAL;
+       String fontSizeValue(L"");
+
+       if ((r = SettingInfo::GetValue(FONT_SIZE_SETTING_INFO_KEY, fontSizeValue)) == E_SUCCESS)
+       {
+               AppLogDebug("GetValue Fail [%s]", GetErrorMessage(r));
+
+               if (fontSizeValue.Equals(FONT_SIZE_SETTING_TYPE_GIANT, false))
+               {
+                       fontSize = FONT_MAIN_TEXT_SIZE_GIANT;
+               }
+               else if (fontSizeValue.Equals(FONT_SIZE_SETTING_TYPE_HUGE, false))
+               {
+                       fontSize = FONT_MAIN_TEXT_SIZE_HUGE;
+               }
+               else if (fontSizeValue.Equals(FONT_SIZE_SETTING_TYPE_LARGE, false))
+               {
+                       fontSize = FONT_MAIN_TEXT_SIZE_LARGE;
+               }
+               else if (fontSizeValue.Equals(FONT_SIZE_SETTING_TYPE_MEDIUM, false))
+               {
+                       fontSize = FONT_MAIN_TEXT_SIZE_NORMAL;
+               }
+               else
+               {
+                       fontSize = FONT_MAIN_TEXT_SIZE_SMALL;
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return fontSize;
+}
+
+void
+SettingTransitionForm::ItemTypeIconAndOneLine(Rectangle& icon, Rectangle& main)
+{
+       AppLogDebug("ENTER");
+       icon.x = X_ITEM_TYPE_3_ICON;
+       icon.y = Y_ITEM_TYPE_3_ICON;
+       icon.width = W_ITEM_TYPE_3_ICON;
+       icon.height = H_ITEM_TYPE_3_ICON;
+
+       main.x = X_ITEM_TYPE_3_LABEL;
+       main.y = Y_ITEM_TYPE_3_LABEL;
+       main.width = W_ITEM_TYPE_3_LABEL;
+       main.height = H_ITEM_TYPE_3_LABEL;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+SettingTransitionForm::UpdateTableViewRedioButtonState(int senderIndex)
+{
+       AppLogDebug("ENTER senderIndex(%d)", senderIndex);
+       int selectedIndex = 0;
+       __pPresentationModel->GetValue(SECTION_NAME_IMAGE_VIEWER, ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_TRANSITION_EFFECT,
+                       selectedIndex);
+       AppLogDebug("selectedIndex(%d)", selectedIndex);
+
+       for (int i = 0; i < TRANSITION_ITEM_COUNT; ++i)
+       {
+               if (senderIndex != i)
+               {
+                       if (selectedIndex == i)
+                       {
+                               __pTableView->SetItemChecked(GROUP_TRANSITION, i, true);
+                       }
+                       else
+                       {
+                               __pTableView->SetItemChecked(GROUP_TRANSITION, i, false);
+                       }
+                       __pTableView->RefreshItem(GROUP_TRANSITION, i, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
diff --git a/src/GlThumbnailEvent.cpp b/src/GlThumbnailEvent.cpp
new file mode 100644 (file)
index 0000000..c1e7a2c
--- /dev/null
@@ -0,0 +1,40 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               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..b0af791
--- /dev/null
@@ -0,0 +1,58 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               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 100644 (file)
index 0000000..bee758c
--- /dev/null
@@ -0,0 +1,127 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               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)
+{
+}
+
+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)
+{
+       __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();
+               pResultBitmap->Construct(mainCanvas,mainRect);
+       }
+       return pResultBitmap;
+}
diff --git a/src/GlThumbnailJob.cpp b/src/GlThumbnailJob.cpp
new file mode 100644 (file)
index 0000000..5185898
--- /dev/null
@@ -0,0 +1,64 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlThumbnailJob.cpp
+ * @brief              This is the implementation file for ThumbnailJob class.
+ */
+
+#include <FBase.h>
+#include "GlThumbnailEvent.h"
+#include "GlThumbnailJob.h"
+
+using namespace Tizen::Base::Runtime;
+using namespace Tizen::Content;
+
+ThumbnailJob::ThumbnailJob(void)
+       : __requestId(0)
+       , __pRequestEvent(null)
+{
+}
+
+ThumbnailJob::~ThumbnailJob(void)
+{
+}
+
+void
+ThumbnailJob::Construct(const ContentId& contentId, const unsigned long requestId,
+               const ThumbnailEvent* pRequestEvent)
+{
+       __contentId = contentId;
+       __requestId = requestId;
+       __pRequestEvent = pRequestEvent;
+}
+
+ContentId
+ThumbnailJob::GetContentId(void) const
+{
+       return __contentId;
+}
+
+unsigned long
+ThumbnailJob::GetRequestId() 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..b37e987
--- /dev/null
@@ -0,0 +1,480 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               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)
+       , __appTerminating(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();
+
+       ThumbnailJob* pThumbnailJob = new (std::nothrow) ThumbnailJob();
+       pThumbnailJob->Construct(contentId, ++__requestId, event);
+       __pCmdQueue->Add(pThumbnailJob);
+
+       __pMutexCmd->Release();
+
+       SendUserEvent(null, null);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+ThumbnailProvider::CancelThumbnailRequest(const ContentId& contentId, const ThumbnailEvent* event)
+{
+       AppLogDebug("ENTER");
+       ThumbnailJob* pThumbnailJob = null;
+
+       if (__pMutexCmd == null || __pCmdQueue == null)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+               return;
+       }
+
+       __pMutexCmd->Acquire();
+
+       int loopCount = __pCmdQueue->GetCount();
+       for (int i = 0; i < loopCount; ++i)
+       {
+               pThumbnailJob = static_cast<ThumbnailJob*>(__pCmdQueue->GetAt(i));
+
+               if (pThumbnailJob != null
+                       && pThumbnailJob->GetContentId() == contentId
+                       && pThumbnailJob->GetEvent() == event)
+               {
+                       AppLogDebug("ENTER i(%d) event(%x)", i, event);
+                       __pCmdQueue->RemoveAt(i, true);
+                       break;
+               }
+       }
+       __pMutexCmd->Release();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+ThumbnailProvider::ClearThumbnailRequests(bool appTerminating)
+{
+       AppLogDebug("ENTER");
+       if (__pMutexCmd != null)
+       {
+               __pMutexCmd->Acquire();
+               if (__pCmdQueue != null && __pCmdQueue->GetCount() > 0)
+               {
+                       __pCmdQueue->RemoveAll(true);
+               }
+
+               if (appTerminating == true)
+               {
+                       __appTerminating = 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 (__appTerminating != 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 && GetLastResult() == E_SUCCESS)
+               {
+                       pBitmap = pContentInfo->GetThumbnailN();
+
+                       if (GetLastResult() != E_SUCCESS)
+                       {
+                               delete pContentInfo;
+                               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+                               return null;
+                       }
+
+                       if (pBitmap == null)
+                       {
+                               pBitmap = GetThumbnailByDecodeN(pContentInfo->GetContentPath(), pContentInfo->GetContentType());
+                               if (pBitmap == null)
+                               {
+                                       pBitmap = ResourceManager::GetBitmapN(IDB_NO_CONTENTS_BROKEN);
+                               }
+                       }
+                       pBitmap->Scale(DIMENSION_DEFAULT_THUMBNAIL);
+               }
+               else
+               {
+                       delete pContentInfo;
+                       AppLogDebug("EXIT 2(%s)", GetErrorMessage(GetLastResult()));
+
+                       return null;
+               }
+
+               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;
+       }
+       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/GlTypes.cpp b/src/GlTypes.cpp
new file mode 100644 (file)
index 0000000..f71e463
--- /dev/null
@@ -0,0 +1,133 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               GlTypes.cpp
+ * @brief              This is the implementation file for Types definition
+ */
+
+#include <FGraphics.h>
+#include "GlTypes.h"
+
+using namespace Tizen::Graphics;
+
+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_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* 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_CAPTURE = L"http://tizen.org/appcontrol/operation/capture";
+const wchar_t* APPCONTROL_OPERATION_ID_CREATECONTENT = L"http://tizen.org/appcontrol/operation/createcontent";
+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"type";
+const wchar_t* APPCONTROL_KEY_MEDIA_TYPE = L"mediaType";
+const wchar_t* APPCONTROL_KEY_PATH = L"path";
+const wchar_t* APPCONTROL_KEY_INDEX = L"index";
+const wchar_t* APPCONTROL_KEY_ATTACHMENTS = L"attachments";
+const wchar_t* APPCONTROL_KEY_SELECTION_MODE = L"selectionMode";
+const wchar_t* APPCONTROL_KEY_DATA_SELECTED = L"http://tizen.org/appcontrol/data/selected";
+
+const wchar_t* APPCONTROL_DATA_CAMERA = L"camera";
+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_RESULT_KEY_LEGACY_RESULT = L"http://tizen.org/appcontrol/data/legacyresult";
+
+const Dimension DIMENSION_DEFAULT_THUMBNAIL = Dimension(158,158);
+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* 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_MORE = L"T01_controlbar_icon_more.png";
+const wchar_t* IDB_CONTROLBAR_SHARE = L"T01_controlbar_icon_share02.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";
diff --git a/src/GlVideoListEditorPanel.cpp b/src/GlVideoListEditorPanel.cpp
new file mode 100644 (file)
index 0000000..5ed5ebd
--- /dev/null
@@ -0,0 +1,832 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               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"
+
+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_SELECTALL_REGION = Color32<0x2A, 0x36, 0x4A>::Value;
+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 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()
+       : __pContentListView(null)
+       , __pCheckButton(null)
+       , __pLabelSelectCnt(null)
+       , __itemCount(0)
+       , __pPresentationModel(null)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+VideoListEditorPanel::~VideoListEditorPanel()
+{
+       AppLogDebug("ENTER");
+       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() == APP_CONTROL_MODE_PICK)
+       {
+               __pContentListView = new (std::nothrow) ListView();
+
+               if (__pPresentationModel->GetAppControlSelectionMode() == APPCONTROL_SELECTION_MODE_MULTIPLE)
+               {
+                       __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;
+                               pBitmapEmpty = null;
+                       }
+                       __pContentListView->SetTextOfEmptyList(ResourceManager::GetString(L"IDS_COM_BODY_NO_ITEMS"));
+                       __pContentListView->SetItemProvider(*this);
+                       __pContentListView->AddListViewItemEventListener(*this);
+                       AddControl(*__pContentListView);
+                       __pContentListView->SetShowState(true);
+
+                       String strTmp;
+                       strTmp.Format(LENGTH_COUNT_LABEL, L"%ls (%d)",
+                                       ResourceManager::GetString(L"IDS_COM_BODY_SELECTED").GetPointer(), 0);
+                       __pLabelSelectCnt = new (std::nothrow) Label();
+                       __pLabelSelectCnt->Construct(
+                                       Rectangle(0, clientAreaBounds.height-H_COUNT_LABEL, clientAreaBounds.width, H_COUNT_LABEL),
+                                       strTmp);
+                       __pLabelSelectCnt->SetTextVerticalAlignment(ALIGNMENT_MIDDLE);
+                       __pLabelSelectCnt->SetTextHorizontalAlignment(ALIGNMENT_CENTER);
+                       __pLabelSelectCnt->SetBackgroundColor(COLOR_COUNT_LABEL);
+                       __pLabelSelectCnt->SetTextColor(Color(COLOR_SELECT_COUNT_FONT));
+                       AddControl(*__pLabelSelectCnt);
+               }
+               else
+               {
+                       __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;
+                               pBitmapEmpty = null;
+                       }
+                       __pContentListView->SetTextOfEmptyList(ResourceManager::GetString(L"IDS_COM_BODY_NO_ITEMS"));
+                       __pContentListView->SetItemProvider(*this);
+                       __pContentListView->AddListViewItemEventListener(*this);
+                       AddControl(*__pContentListView);
+                       __pContentListView->SetShowState(true);
+               }
+       }
+       else
+       {
+               Panel* pCheckPanel = new (std::nothrow) Panel();
+               pCheckPanel->Construct(Rectangle(0, 0, clientAreaBounds.width, H_SELECTALL_REGION));
+               pCheckPanel->SetBackgroundColor(COLOR_SELECTALL_REGION);
+               __pCheckButton = new (std::nothrow) CheckButton();
+               __pCheckButton->Construct(pCheckPanel->GetBounds(), CHECK_BUTTON_STYLE_MARK, BACKGROUND_STYLE_DEFAULT,
+                               false, ResourceManager::GetString(L"IDS_COM_BODY_SELECT_ALL"));
+               __pCheckButton->SetActionId(ACTION_ID_SELECTALL_CHECKED, ACTION_ID_SELECTALL_UNCHECKED);
+               __pCheckButton->AddActionEventListener(*this);
+               pCheckPanel->AddControl(*__pCheckButton);
+               AddControl(*pCheckPanel);
+
+               __pContentListView = new (std::nothrow) ListView();
+               __pContentListView->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)
+               {
+                       __pContentListView->SetBitmapOfEmptyList(pBitmapEmpty);
+                       delete pBitmapEmpty;
+                       pBitmapEmpty = null;
+               }
+               __pContentListView->SetTextOfEmptyList(ResourceManager::GetString(L"IDS_COM_BODY_NO_ITEMS"));
+               __pContentListView->SetItemProvider(*this);
+               __pContentListView->AddListViewItemEventListener(*this);
+               AddControl(*__pContentListView);
+               __pContentListView->SetShowState(true);
+
+               String strTmp;
+               strTmp.Format(LENGTH_COUNT_LABEL, L"%ls (%d)",
+                               ResourceManager::GetString(L"IDS_COM_BODY_SELECTED").GetPointer(), 0);
+               __pLabelSelectCnt = new (std::nothrow) Label();
+               __pLabelSelectCnt->Construct(
+                               Rectangle(0, clientAreaBounds.height-H_COUNT_LABEL, clientAreaBounds.width, H_COUNT_LABEL),
+                               strTmp);
+               __pLabelSelectCnt->SetTextVerticalAlignment(ALIGNMENT_MIDDLE);
+               __pLabelSelectCnt->SetTextHorizontalAlignment(ALIGNMENT_CENTER);
+               __pLabelSelectCnt->SetBackgroundColor(COLOR_COUNT_LABEL);
+               __pLabelSelectCnt->SetTextColor(Color(COLOR_SELECT_COUNT_FONT));
+               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;
+}
+
+void
+VideoListEditorPanel::OnUpdateContentList()
+{
+       AppLogDebug("ENTER");
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       pSceneManager->GoForward(ForwardSceneTransition(IDSCN_VIDEO_LIST));
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+VideoListEditorPanel::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 ACTION_ID_SELECTALL_CHECKED:
+       {
+               int loopCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+               for (int i = 0; i < loopCount; ++i)
+               {
+                       if (__pContentListView->IsItemChecked(i) == false)
+                       {
+                               __pContentListView->SetItemChecked(i,true);
+                               __pContentListView->RefreshList(i, LIST_REFRESH_TYPE_ITEM_MODIFY);
+                       }
+               }
+
+               int checkedCount = GetItemCheckedCount();
+               String strTmp;
+               strTmp.Format(LENGTH_COUNT_LABEL, L"%ls (%d)",
+                               ResourceManager::GetString(L"IDS_COM_BODY_SELECTED").GetPointer(), checkedCount);
+               __pLabelSelectCnt->SetText(strTmp);
+               __pLabelSelectCnt->RequestRedraw(true);
+               break;
+       }
+       case ACTION_ID_SELECTALL_UNCHECKED:
+       {
+               int loopCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+               for (int i = 0; i < loopCount; ++i)
+               {
+                       if (__pContentListView->IsItemChecked(i) == true)
+                       {
+                               __pContentListView->SetItemChecked(i,false);
+                       }
+               }
+
+               int checkedCount = GetItemCheckedCount();
+               String strTmp;
+               strTmp.Format(LENGTH_COUNT_LABEL, L"%ls (%d)",
+                               ResourceManager::GetString(L"IDS_COM_BODY_SELECTED").GetPointer(), checkedCount);
+               __pLabelSelectCnt->SetText(strTmp);
+               __pLabelSelectCnt->RequestRedraw(true);
+               __pContentListView->UpdateList();
+               break;
+       }
+       default:
+       {
+               break;
+       }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+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() == APP_CONTROL_MODE_PICK)
+       {
+               if (__pPresentationModel->GetAppControlSelectionMode() == APPCONTROL_SELECTION_MODE_MULTIPLE)
+               {
+                       pItem->Construct(Dimension(itemWidth, H_VIDEO_ITEM), LIST_ANNEX_STYLE_MARK);
+
+                       if (__pContentListView->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, ACTION_ID_FORMAT_THUMBNAIL, *pBitmap,
+                                                       pSelectedBitmap);
+                                       delete pSelectedBitmap;
+                                       pSelectedBitmap = null;
+                               }
+                               else
+                               {
+                                       AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+                                       return null;
+                               }
+                       }
+                       else
+                       {
+                               pItem->AddElement(RECT_VIDEO_THUMBNAIL, ACTION_ID_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, ACTION_ID_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, ACTION_ID_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, ACTION_ID_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, ACTION_ID_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, ACTION_ID_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 (__pContentListView->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, ACTION_ID_FORMAT_THUMBNAIL, *pBitmap, pSelectedBitmap);
+                               delete pSelectedBitmap;
+                               pSelectedBitmap = null;
+                       }
+                       else
+                       {
+                               pItem->AddElement(RECT_VIDEO_THUMBNAIL, ACTION_ID_FORMAT_THUMBNAIL, *pBitmap);
+                       }
+               }
+               else
+               {
+                       pItem->AddElement(RECT_VIDEO_THUMBNAIL, ACTION_ID_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, ACTION_ID_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, ACTION_ID_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() == APP_CONTROL_MODE_PICK)
+               {
+                       if (__pPresentationModel->GetAppControlSelectionMode() == APPCONTROL_SELECTION_MODE_MULTIPLE)
+                       {
+                               int checkedCount = GetItemCheckedCount();
+                               String strTmp;
+                               strTmp.Format(LENGTH_COUNT_LABEL, L"%ls (%d)",
+                                               ResourceManager::GetString(L"IDS_COM_BODY_SELECTED").GetPointer(), checkedCount);
+                               __pLabelSelectCnt->SetText(strTmp);
+                               __pLabelSelectCnt->RequestRedraw(true);
+                               __pContentListView->RefreshList(index, LIST_REFRESH_TYPE_ITEM_MODIFY);
+                       }
+               }
+               else
+               {
+                       int checkedCount = GetItemCheckedCount();
+                       String strTmp;
+                       strTmp.Format(LENGTH_COUNT_LABEL, L"%ls (%d)",
+                                       ResourceManager::GetString(L"IDS_COM_BODY_SELECTED").GetPointer(), checkedCount);
+                       __pLabelSelectCnt->SetText(strTmp);
+                       __pLabelSelectCnt->RequestRedraw(true);
+                       if (__pCheckButton->IsSelected())
+                       {
+                               __pCheckButton->SetSelected(false);
+                       }
+                       __pContentListView->RefreshList(index, LIST_REFRESH_TYPE_ITEM_MODIFY);
+               }
+       }
+
+       if (    __pPresentationModel->GetAppControlMode() == APP_CONTROL_MODE_PICK
+               && __pPresentationModel->GetAppControlSelectionMode() != APPCONTROL_SELECTION_MODE_MULTIPLE)
+       {
+               if (status == LIST_ITEM_STATUS_SELECTED)
+               {
+                       HashMap* map = new (std::nothrow) HashMap(SingleObjectDeleter);
+                       result r = map->Construct();
+                       if (r == E_SUCCESS)
+                       {
+                               map->Add(new (std::nothrow) String(APPCONTROL_KEY_PATH),
+                                               new (std::nothrow) String(__pPresentationModel->GetContentFilePath(index)));
+                               map->Add(new (std::nothrow) String(APPCONTROL_KEY_DATA_SELECTED),
+                                               new (std::nothrow) String(__pPresentationModel->GetContentFilePath(index)));
+
+                               GalleryApp* pApp = dynamic_cast<GalleryApp*>(UiApp::GetInstance());
+                               if (pApp != null)
+                               {
+                                       pApp->SendAppControlResult(APP_CTRL_RESULT_SUCCEEDED, map);
+                                       pApp->Terminate();
+                               }
+                               else
+                               {
+                                       delete map;
+                               }
+                       }
+                       else
+                       {
+                               delete map;
+                       }
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+VideoListEditorPanel::OnListViewItemSwept(ListView& listView, int index, SweepDirection direction)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+VideoListEditorPanel::OnListViewContextItemStateChanged(ListView& listView, int index, int elementId,
+               ListContextItemStatus status)
+{
+       AppLogDebug("ENTER");
+       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();
+               __pContentListView->UpdateList();
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+VideoListEditorPanel::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
+VideoListEditorPanel::OnSceneActivatedN(const SceneId& previousSceneId,
+                                                               const SceneId& currentSceneId, IList* pArgs)
+{
+       AppLogDebug("ENTER");
+       __pPresentationModel = FileListPresentationModel::GetInstance();
+
+       if (__pPresentationModel->GetAppControlMode() == APP_CONTROL_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();
+                               __pContentListView->UpdateList();
+                       }
+               }
+       }
+       else
+       {
+               __itemCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+               __pContentListView->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 (__pContentListView != null)
+       {
+               int loopCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+               for (int i = 0; i < loopCount; ++i)
+               {
+                       if (__pContentListView->IsItemChecked(i))
+                       {
+                               ++count;
+                       }
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return count;
+}
+
+IList*
+VideoListEditorPanel::GetItemCheckedIndexList(void) const
+{
+       AppLogDebug("ENTER");
+       IList* pList = new (std::nothrow) ArrayList(SingleObjectDeleter);
+       Integer* pIndex=null;
+
+       if (__pContentListView != null)
+       {
+               int loopCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+               for (int i = 0; i < loopCount; ++i)
+               {
+                       if (__pContentListView->IsItemChecked(i))
+                       {
+                               pIndex = new (std::nothrow) Integer(i);
+                               pList->Add(pIndex);
+                       }
+               }
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+
+       return pList;
+}
+
+void
+VideoListEditorPanel::OnRequestDeleteAction(void)
+{
+       AppLogDebug("ENTER");
+       IList* pIndexList = GetItemCheckedIndexList();
+
+       if (pIndexList == null || pIndexList->GetCount() <= 0 || __pPresentationModel == null)
+       {
+               delete pIndexList;
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return;
+       }
+
+       __pPresentationModel->DeleteContentFileList(*pIndexList);
+       delete pIndexList;
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+VideoListEditorPanel::OnRequestEmailAction(void)
+{
+       AppLogDebug("ENTER");
+       IList* pIndexList = GetItemCheckedIndexList();
+       if (pIndexList->GetCount() <= 0)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return;
+       }
+
+       String combineText;
+       String path;
+
+       int loopCount = pIndexList->GetCount();
+       for (int i = 0; i < loopCount; ++i)
+       {
+               path = __pPresentationModel->GetContentFilePath(i);
+
+               if (    path.EndsWith(CONTENT_EXT_PNG)
+                       || path.EndsWith(CONTENT_EXT_BMP)
+                       || path.EndsWith(CONTENT_EXT_JPG)
+                       || path.EndsWith(CONTENT_EXT_GIF)
+                       || path.EndsWith(CONTENT_EXT_TIF)
+                       || path.EndsWith(CONTENT_EXT_MP4)
+                       || path.EndsWith(CONTENT_EXT_3GP)
+                       || path.EndsWith(CONTENT_EXT_AVI)
+                       || path.EndsWith(CONTENT_EXT_RM)
+                       || path.EndsWith(CONTENT_EXT_WMV)
+                       || path.EndsWith(CONTENT_EXT_ASF)
+                       )
+               {
+                       if (combineText.CompareTo(EMPTY_SPACE) != 0)
+                       {
+                               combineText.Append(L";");
+                       }
+                       combineText.Append(path);
+               }
+       }
+
+       HashMap* pDataList = new (std::nothrow) HashMap(SingleObjectDeleter);
+       pDataList->Construct();
+       pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_ATTACHMENTS),
+                       new (std::nothrow) String(combineText));
+
+       __pPresentationModel->StartAppControl(APPCONTROL_PROVIDER_ID_EMAIL,
+                       APPCONTROL_OPERATION_ID_COMPOSE, pDataList, null);
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+VideoListEditorPanel::OnRequestMoveToAction(String& destDirectory)
+{
+       AppLogDebug("ENTER");
+       if (&destDirectory == null || destDirectory.IsEmpty())
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return;
+       }
+
+       IList* pIndexList = GetItemCheckedIndexList();
+       if (pIndexList == null || pIndexList->GetCount() <= 0)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return;
+       }
+       result r = __pPresentationModel->MoveToContentFileList(*pIndexList, destDirectory);
+       delete pIndexList;
+       pIndexList = null;
+       TryReturn(r == E_SUCCESS, , "Failed on OnRequestDeleteAction");
+
+       __pPresentationModel->RefreshCurrentAlbumContentInfoList(CONTENT_TYPE_ALL);
+       __itemCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+       __pContentListView->UpdateList();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+VideoListEditorPanel::OnRequestAppExitWithMultipleSelectionAppControlResult(void)
+{
+       AppLogDebug("ENTER");
+       IList* pIndexList = GetItemCheckedIndexList();
+
+       if (pIndexList->GetCount() <= 0)
+       {
+               AppLogDebug("EXIT 1(%s)", GetErrorMessage(GetLastResult()));
+
+               return;
+       }
+
+       String combineText;
+
+       int loopCount = pIndexList->GetCount();
+       for (int i = 0; i < loopCount; ++i)
+       {
+               combineText.Append(__pPresentationModel->GetContentFilePath(i));
+               combineText.Append(L";");
+       }
+
+       HashMap* map = new (std::nothrow) HashMap(SingleObjectDeleter);
+       map->Construct();
+       map->Add(new (std::nothrow) String(APPCONTROL_KEY_PATH),
+                       new (std::nothrow) String(combineText));
+       map->Add(new (std::nothrow) String(APPCONTROL_KEY_DATA_SELECTED),
+                       new (std::nothrow) String(combineText));
+
+       GalleryApp* pApp = dynamic_cast<GalleryApp*>(UiApp::GetInstance());
+       if (pApp != null)
+       {
+               pApp->SendAppControlResult(APP_CTRL_RESULT_SUCCEEDED, map);
+               pApp->Terminate();
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
diff --git a/src/GlVideoListPanel.cpp b/src/GlVideoListPanel.cpp
new file mode 100644 (file)
index 0000000..bf281c4
--- /dev/null
@@ -0,0 +1,322 @@
+//
+// Copyright (c) 2012 Samsung Electronics Co., Ltd.
+//
+// Licensed under the Flora License, Version 1.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://floralicense.org/license/
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+/**
+ * @file               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()
+       : __pContentListView(null)
+       , __itemCount(0)
+       , __pPresentationModel(0)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+VideoListPanel::~VideoListPanel()
+{
+       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;
+               pBitmapEmpty = null;
+       }
+       __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;
+}
+
+void
+VideoListPanel::OnUpdateContentList()
+{
+       AppLogDebug("ENTER");
+       if (__pPresentationModel->GetAppControlMode() == APP_CONTROL_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();
+       __pContentListView->UpdateList();
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+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, ACTION_ID_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, ACTION_ID_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, ACTION_ID_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)
+       {
+               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));
+
+               int loopCount = __pPresentationModel->GetCurrentAlbumContentInfoCount();
+               for (int i = 0; i < loopCount; ++i)
+               {
+                       pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_PATH),
+                               new (std::nothrow) String(__pPresentationModel->GetContentFilePath(i)));
+               }
+               String listIndex;
+               listIndex.Format(10, L"d", index);
+               pDataList->Add(new (std::nothrow) String(APPCONTROL_KEY_INDEX),
+                               new (std::nothrow) String(listIndex));
+
+               __pPresentationModel->StartAppControl(APPCONTROL_PROVIDER_ID_IMAGE,
+                               APPCONTROL_OPERATION_ID_VIEW, pDataList, null);
+       }
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+VideoListPanel::OnListViewItemSwept(ListView& listView, int index, SweepDirection direction)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}
+
+void
+VideoListPanel::OnListViewContextItemStateChanged(ListView& listView, int index, int elementId, ListContextItemStatus status)
+{
+       AppLogDebug("ENTER");
+       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()));
+}
+
+void
+VideoListPanel::OnSceneDeactivated(const SceneId& currentSceneId,
+                                                               const SceneId& nextSceneId)
+{
+       AppLogDebug("ENTER");
+       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+}