Fixed prevent issue
[apps/osp/Gallery.git] / src / GlSettingMainForm.cpp
index 4772fc1..d0d079a 100644 (file)
@@ -1,7 +1,7 @@
 //
 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
 //
-// Licensed under the Flora License, Version 1.0 (the License);
+// Licensed under the Flora License, Version 1.1 (the License);
 // you may not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
  * @brief              This is the implementation file for SettingMainForm class.
  */
 
+#include "GlDropDownCustomItem.h"
+#include "GlFileListPresentationModel.h"
 #include "GlGalleryApp.h"
+#include "GlRadioCustomItem.h"
 #include "GlResourceManager.h"
 #include "GlSettingMainForm.h"
 #include "GlSettingPresentationModel.h"
+#include "GlSettingToggleCustomItem.h"
 #include "GlTypes.h"
 
 using namespace Tizen::App;
@@ -35,85 +39,10 @@ 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)
+       : __pList(null)
        , __pPresentationModel(null)
+       , __contentUpdated(false)
 {
        AppLogDebug("ENTER");
        AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
@@ -122,6 +51,10 @@ SettingMainForm::SettingMainForm(void)
 SettingMainForm::~SettingMainForm(void)
 {
        AppLogDebug("ENTER");
+       if (pGroupItemCount)
+       {
+               delete[] pGroupItemCount;
+       }
        AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
 }
 
@@ -129,35 +62,32 @@ result
 SettingMainForm::Initialize(void)
 {
        AppLogDebug("ENTER");
-       result r = Construct(FORM_STYLE_NORMAL | FORM_STYLE_INDICATOR | FORM_STYLE_HEADER | FORM_STYLE_FOOTER);
+       result r = Form::Construct(IDL_FORM_SETTING_MAIN);
        AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
 
        return r;
 }
+
 result
 SettingMainForm::OnInitializing(void)
 {
        AppLogDebug("ENTER");
        __pPresentationModel = SettingPresentationModel::GetInstance();
+       SettingInfo::AddSettingEventListener(*this);
 
        Header* pHeader = GetHeader();
        AppAssert(pHeader);
        pHeader->SetStyle(HEADER_STYLE_TITLE);
        pHeader->SetTitleText(ResourceManager::GetString(L"IDS_COM_BODY_GALLERY"));
 
-       Rectangle bounds = GetClientAreaBounds();
-       bounds.x = X_GROUP_DEFAULT;
-       bounds.y = Y_GROUP_DEFAULT;
-       bounds.width -= (bounds.x * GAP_WIDTH);
+       __pList = static_cast<GroupedListView*>(GetControl(L"IDC_SETTING_LIST"));
 
-       __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);
+       if (__pList != null)
+       {
+               __pList->SetItemProvider(*this);
+               __pList->AddGroupedListViewItemEventListener(*this);
+       }
 
-       InitializeFooter();
        SetFormBackEventListener(this);
        AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
 
@@ -168,6 +98,7 @@ result
 SettingMainForm::OnTerminating(void)
 {
        AppLogDebug("ENTER");
+       SettingInfo::RemoveSettingEventListener(*this);
        AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
 
        return E_SUCCESS;
@@ -200,617 +131,663 @@ SettingMainForm::OnFormBackRequested(Form& source)
        {
                if (pApp->GetAppControlOperationId() == APPCONTROL_OPERATION_ID_CONFIGURE)
                {
-                       pApp->SendAppControlResult(APP_CTRL_RESULT_TERMINATED, null);
+                       if (pApp->GetFrameActivated() == true)
+                       {
+                               pApp->SendAppControlResult(APP_CTRL_RESULT_TERMINATED, null);
+                               pApp->Terminate();
+                       }
+               }
+               else
+               {
+                       SceneManager* pSceneManager = SceneManager::GetInstance();
+                       if (__contentUpdated)
+                       {
+                               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_ALBUM_LIST));
+                       }
+                       else
+                       {
+                               pSceneManager->GoBackward(BackwardSceneTransition());
+                       }
                }
-               pApp->Terminate();
        }
 
        AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
 }
 
-result
-SettingMainForm::InitializeFooter(void)
+void
+SettingMainForm::OnContentUpdated(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);
+       __contentUpdated = true;
        AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
-
-       return r;
 }
 
 void
 SettingMainForm::OnSceneActivatedN(const SceneId& previousSceneId,
-                                                               const SceneId& currentSceneId, IList* pArgs)
+               const SceneId& currentSceneId, IList* pArgs)
 {
        AppLogDebug("ENTER");
-       __pTableView->UpdateTableView();
-       UpdateTableViewCheckButtonState();
+       FileListPresentationModel::GetInstance()->AddContentEventListener(this);
+       __pPresentationModel->CreateDefaultRegistry();
+       InitializeSettingValues();
        AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
 }
 
 void
 SettingMainForm::OnSceneDeactivated(const SceneId& currentSceneId,
-                                                               const SceneId& nextSceneId)
+               const SceneId& nextSceneId)
 {
        AppLogDebug("ENTER");
+       __contentUpdated = false;
+       __pPresentationModel->DeleteRegistry();
+       FileListPresentationModel::GetInstance()->RemoveContentEventListener(this);
        AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
 }
 
-TableViewGroupItem*
-SettingMainForm::CreateGroupItem(int groupIndex, int itemWidth)
+void
+SettingMainForm::OnGroupedListViewItemStateChanged(GroupedListView& listView, int groupIndex, int itemIndex, int elementId, ListItemStatus status)
 {
-       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");
+       int effectiveIndex = 0;
+       int inputValue = 0;
 
-       Label* pLabel = null;
+       effectiveIndex = effectiveIndex + itemIndex;
 
-       switch (groupIndex)
+       if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_DROPDOWN)
        {
-       case GROUP_SLIDESHOW:
+               AppLogDebug("refreshing data child count is %d", settingInfo[effectiveIndex].childCount);
+               if (settingInfo[effectiveIndex].isOpen == false)
                {
-                       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)
+                       settingInfo[effectiveIndex].isOpen = true;
+                       settingInfo[effectiveIndex].childCount = 0;
+                       for (int iter = effectiveIndex + 1; iter < SETTING_MAX; ++iter)
                        {
-                       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:
+                               if (settingInfo[iter].itemType == ITEM_TYPE_RADIO)
                                {
-                                       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");
+                                       ++settingInfo[effectiveIndex].childCount;
                                }
-                               break;
-
-                       default:
+                               else
                                {
+                                       break;
                                }
+                       }
+                       listView.UpdateList();
+               }
+               else
+               {
+                       settingInfo[effectiveIndex].isOpen = false;
+                       listView.UpdateList();
+               }
+       }
+       else if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_RADIO)
+       {
+               int parentIndex = 0;
+               for (parentIndex = effectiveIndex; parentIndex > SETTING_INVALID; parentIndex--)
+               {
+                       if (settingInfo[parentIndex].itemType == ITEM_TYPE_DROPDOWN)
+                       {
                                break;
                        }
                }
-               break;
+               settingInfo[parentIndex].subText = settingInfo[effectiveIndex].titleText;
 
-       case GROUP_SUBTITLES:
+               for (int iter = 0; iter < settingInfo[parentIndex].childCount; ++iter)
                {
-                       switch (itemIndex)
+                       if (parentIndex + iter + 1 != effectiveIndex)
                        {
-                       default:
-                               {
-                               }
-                               break;
+                               AppLogDebug("long effectiveIndex %d set to false", itemIndex - (effectiveIndex - parentIndex) + iter + 1);
+                               settingInfo[parentIndex + iter + 1].isSelected = false;
+                       }
+                       else
+                       {
+                               AppLogDebug("effectiveIndex %d set to true", effectiveIndex);
+                               settingInfo[effectiveIndex].isSelected = true;
                        }
                }
-               break;
 
-       default:
-               break;
+               Invalidate(true);
+       }
+       else if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_TOGGLE)
+       {
+               if (settingInfo[effectiveIndex].isSelected == true)
+               {
+                       settingInfo[effectiveIndex].isSelected = false;
+               }
+               else
+               {
+                       settingInfo[effectiveIndex].isSelected = true;
+               }
+               if (__pList != null)
+               {
+                       __pList->SetItemChecked(groupIndex, itemIndex, settingInfo[effectiveIndex].isSelected);
+               }
        }
 
-       TableViewItem* pItem = new (std::nothrow) TableViewItem();
+       switch (effectiveIndex)
+       {
+       case SETTING_INTERVAL_2:
+       {
+               inputValue = 2;
+               __pPresentationModel->SetValue(SECTION_NAME_IMAGE_VIEWER, ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_INTERVAL,
+                               inputValue);
+               listView.UpdateList();
+       }
+       break;
 
-       if (pItem)
+       case SETTING_INTERVAL_3:
        {
-               pItem->Construct(Dimension(W_GROUP_ITEM_DEFAULT, itemHeight), style);
-               pItem->SetBackgroundColor(COLOR_BG_GROUP_ITEM_DEFAULT);
+               inputValue = 3;
+               __pPresentationModel->SetValue(SECTION_NAME_IMAGE_VIEWER,
+                               ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_INTERVAL, inputValue);
+               listView.UpdateList();
+       }
+       break;
 
-               if (isDrawBitmapIcon)
-               {
-                       pLabel = new (std::nothrow) Label();
-                       pLabel->Construct(itemRectIcon, L"");
-                       pLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
-                       pLabel->SetTextVerticalAlignment(ALIGNMENT_MIDDLE);
-                       pLabel->SetBackgroundBitmap(*pBitmap);
+       case SETTING_INTERVAL_5:
+       {
+               inputValue = 5;
+               __pPresentationModel->SetValue(SECTION_NAME_IMAGE_VIEWER,
+                               ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_INTERVAL, inputValue);
+               listView.UpdateList();
+       }
+       break;
 
-                       pItem->AddControl(*pLabel);
-               }
+       case SETTING_INTERVAL_10:
+       {
+               inputValue = 10;
+               __pPresentationModel->SetValue(SECTION_NAME_IMAGE_VIEWER,
+                               ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_INTERVAL, inputValue);
+               listView.UpdateList();
+       }
+       break;
 
-               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);
+       case SETTING_INTERVAL_20:
+       {
+               inputValue = 20;
+               __pPresentationModel->SetValue(SECTION_NAME_IMAGE_VIEWER,
+                               ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_INTERVAL, inputValue);
+               listView.UpdateList();
+       }
+       break;
 
-               pItem->AddControl(*pLabel);
+       case SETTING_TRANSITION_PAGE:
+       {
+               inputValue = 0;
+               __pPresentationModel->SetValue(SECTION_NAME_IMAGE_VIEWER,
+                               ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_TRANSITION_EFFECT, inputValue);
+               listView.UpdateList();
+       }
+       break;
 
-               if (isTwoLineItemText)
+       case SETTING_TRANSITION_DISSOLVE:
+       {
+               inputValue = 1;
+               result r = __pPresentationModel->SetValue(SECTION_NAME_IMAGE_VIEWER,
+                               ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_TRANSITION_EFFECT, inputValue);
+               if (r == E_SUCCESS)
                {
-                       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(" Passed");
                }
-       }
-       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
 
-       return pItem;
-}
+               listView.UpdateList();
+       }
+       break;
 
-int
-SettingMainForm::GetDefaultGroupItemHeight(void)
-{
-       AppLogDebug("ENTER");
-       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+       case SETTING_TRANSITION_ZOOM:
+       {
+               inputValue = 2;
+                __pPresentationModel->SetValue(SECTION_NAME_IMAGE_VIEWER,
+                               ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_TRANSITION_EFFECT, inputValue);
+               listView.UpdateList();
+       }
+       break;
 
-       return H_GROUP_INDEX_NO_TITLE_DEFAULT;
-}
+       case SETTING_REPEAT:
+       {
+               int repeatValue = 0;
 
-int
-SettingMainForm::GetDefaultItemHeight(void)
-{
-       AppLogDebug("ENTER");
-       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+               __pPresentationModel->GetValue(SECTION_NAME_IMAGE_VIEWER,
+                               ENTRY_NAME_IMAGE_VIEWER_REPEAT_VALUE, repeatValue);
 
-       return H_GROUP_ITEM_DEFAULT;
-}
+               if (repeatValue == 0)
+               {
+                       inputValue = 1;
+               }
+               else
+               {
+                       inputValue = 0;
+               }
 
-bool
-SettingMainForm::DeleteGroupItem(int groupIndex, TableViewGroupItem* pItem)
-{
-       AppLogDebug("ENTER");
-       delete pItem;
-       pItem = null;
-       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+               __pPresentationModel->SetValue(SECTION_NAME_IMAGE_VIEWER,
+                               ENTRY_NAME_IMAGE_VIEWER_REPEAT_VALUE, inputValue);
+       }
+       break;
 
-       return true;
-}
+       case SETTING_SHUFFLE:
+       {
+               int shuffleValue = 0;
 
-bool
-SettingMainForm::DeleteItem(int groupIndex, int itemIndex, TableViewItem* pItem)
-{
-       AppLogDebug("ENTER");
-       delete pItem;
-       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+               __pPresentationModel->GetValue(SECTION_NAME_IMAGE_VIEWER,
+                               ENTRY_NAME_IMAGE_VIEWER_SHUFFLE_VALUE, shuffleValue);
 
-       return true;
-}
+               if (shuffleValue == 0)
+               {
+                       inputValue = 1;
+               }
+               else
+               {
+                       inputValue = 0;
+               }
 
-int
-SettingMainForm::GetGroupCount(void)
-{
-       AppLogDebug("ENTER");
-       int groupItemCount = GROUP_COUNT;
-       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+               __pPresentationModel->SetValue(SECTION_NAME_IMAGE_VIEWER,
+                               ENTRY_NAME_IMAGE_VIEWER_SHUFFLE_VALUE, inputValue);
+       }
+       break;
 
-       return groupItemCount;
+       default:
+               break;
+       }
 }
 
-int
-SettingMainForm::GetItemCount(int groupIndex)
+GroupItem*
+SettingMainForm::CreateGroupItem(int groupIndex, int itemWidth)
 {
-       AppLogDebug("ENTER");
-
-       int itemCount = 0;
+       GroupItem* pItem = new (std::nothrow) GroupItem();
+       if (pItem == null)
+       {
+               return null;
+       }
+       result r = pItem->Construct(Dimension(itemWidth, 46));
+       if (IsFailed(r))
+       {
+               delete pItem;
+               return null;
+       }
 
+       String text;
        switch (groupIndex)
        {
-       case GROUP_INDEX_1:
-               {
-                       itemCount = SLIDESHOW_ITEM_COUNT ;
-               }
-               break;
+       case 0:
+               text = ResourceManager::GetString(L"IDS_MEDIABR_OPT_SLIDESHOW");
+       break;
 
-       case GROUP_INDEX_2:
-               {
-                       itemCount = SUBTITLES_ITEM_COUNT ;
-               }
-               break;
        default:
                break;
        }
-       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
 
-       return itemCount;
+       pItem->SetElement(text, null);
+
+       AppLogDebug("background color set result %s", GetErrorMessage(r));
+
+       pItem->SetTextColor(CUSTOM_COLOR_SETTINGS_GROUPTITLE);
+       return pItem;
 }
 
-void
-SettingMainForm::OnGroupedTableViewItemStateChanged(GroupedTableView& tableView, int groupIndex, int itemIndex,
-               TableViewItem* pItem, TableViewItemStatus status)
+ListItemBase*
+SettingMainForm::CreateItem(int groupIndex, int itemIndex, int itemWidth)
 {
-       AppLogDebug("ENTER");
-       SceneManager* pSceneManager = SceneManager::GetInstance();
-       AppAssert(pSceneManager);
-       AppLogDebug("Group(%d) index(%d)", groupIndex, itemIndex);
+       AppLog("SettingMainForm::CreateItem --> groupIndex : %d, itemIndex: %d itemWidth: %d ", groupIndex, itemIndex,
+                       itemWidth);
 
-       switch (groupIndex)
-       {
-       case GROUP_SLIDESHOW:
-               {
+       result r = E_SUCCESS;
+       int effectiveIndex = 0;
+       const Color ITEM_BACKGROUND_COLOR = CUSTOM_COLOR_SETTINGS_LISTITEM_BACKGROUND;
+       const Color ITEM_RADIO_ITEM_BACKGROUND_COLOR = CUSTOM_COLOR_SETTINGS_LISTITEM_RADIO_BACKGROUND;
+       const Color ITEM_BACKGROUND_COLOR_HIGHLIGHTED = CUSTOM_BACKGROUND_COLOR_LISTVIEW_PRESSED_HIGHLIGHTED;
 
-                       switch (itemIndex)
-                       {
-                       case ITEM_SLIDESHOW_INTERVAL:
-                       {
-                               SceneManager* pSceneManager = SceneManager::GetInstance();
-                               AppAssert(pSceneManager);
-                               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SETTING_INTERVAL));
+       effectiveIndex = effectiveIndex + itemIndex;
+       AppLogDebug("SettingMainForm::CreateItem --> groupIndex : %d, itemIndex: %d itemWidth: %d effectiveIndex %d", groupIndex, itemIndex, itemWidth, effectiveIndex);
 
-                               break;
-                       }
-                       case ITEM_SLIDESHOW_TRANSITION:
-                       {
-                               SceneManager* pSceneManager = SceneManager::GetInstance();
-                               AppAssert(pSceneManager);
-                               pSceneManager->GoForward(ForwardSceneTransition(IDSCN_SETTING_TRANSITION));
+       String fontSizeStr;
+       int fontSize = 0;
+       int itemHeight = 0;
+       int defaultHeight = 112;
+       int defaultFontSize = 44;
 
-                               break;
-                       }
-                       default:
-                       {
+       SettingInfo::GetValue("http://tizen.org/setting/font.size", fontSizeStr);
+       AppLog("the font value is %S",fontSizeStr.GetPointer());
 
-                               break;
-                       }
-                       }
-               }
-               break;
+       if(fontSizeStr == "medium")
+       {
+               fontSize = 44;
+               itemHeight = defaultHeight + (fontSize - defaultFontSize);
+       }
+       else if(fontSizeStr == "huge")
+       {
+               fontSize =  81;
+               itemHeight = defaultHeight + (fontSize - defaultFontSize);
+       }
+       else if(fontSizeStr == "giant")
+       {
+               fontSize = 98;
+               itemHeight = defaultHeight + (fontSize - defaultFontSize);
+       }
+       else if(fontSizeStr == "small")
+       {
+               fontSize = 36;
+               itemHeight = defaultHeight + (fontSize - defaultFontSize);
+       }
+       else if(fontSizeStr == "large")
+       {
+               fontSize = 64;
+               itemHeight = defaultHeight + (fontSize - defaultFontSize);
+       }
+       else
+       {
+               fontSize = 44;
+               itemHeight = defaultHeight;
+       }
+
+
+       if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_TOGGLE)
+       {
+               SettingToggleCustomItem* pItem = new (std::nothrow) SettingToggleCustomItem();
+               r = pItem->Construct(itemWidth, itemHeight);
 
-       case GROUP_SUBTITLES:
+               if (IsFailed(r))
                {
+                       delete pItem;
+                       return null;
                }
-               break;
 
-       default:
+               pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL, ITEM_BACKGROUND_COLOR);
+               pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED, ITEM_BACKGROUND_COLOR_HIGHLIGHTED);
+
+               if (__pList != null)
                {
+                       __pList->SetItemChecked(groupIndex, itemIndex, settingInfo[effectiveIndex].isSelected);
                }
-               break;
-       }
-       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
-}
 
-void
-SettingMainForm::UpdateGroupItem(int groupIndex, TableViewGroupItem* pItem)
-{
-       AppLogDebug("ENTER");
-       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
-}
+               pItem->SetText(settingInfo[effectiveIndex].titleText);
+               pItem->Make(fontSize);
 
-void
-SettingMainForm::UpdateItem(int groupIndex, int itemIndex, TableViewItem* pItem)
-{
-       AppLogDebug("ENTER");
-       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
-}
+               return pItem;
+       }
+       else if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_DROPDOWN)
+       {
+               DropDownCustomItem* pItem = new (std::nothrow) DropDownCustomItem();
+               r = pItem->Construct(itemWidth,itemHeight);
+               if (IsFailed(r))
+               {
+                       delete pItem;
+                       return null;
+               }
 
-void
-SettingMainForm::OnGroupedTableViewContextItemActivationStateChanged(GroupedTableView& tableView, int groupIndex,
-               int itemIndex, TableViewContextItem* pContextItem, bool activated)
-{
-       AppLogDebug("ENTER");
-       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
-}
+               pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL, ITEM_BACKGROUND_COLOR);
+               pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED, ITEM_BACKGROUND_COLOR_HIGHLIGHTED);
 
-void
-SettingMainForm::OnGroupedTableViewGroupItemStateChanged(GroupedTableView& tableView, int groupIndex,
-               TableViewGroupItem* pItem, TableViewItemStatus status)
-{
-       AppLogDebug("ENTER");
-       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
-}
+               pItem->SetMainText(settingInfo[effectiveIndex].titleText);
+               pItem->SetSubText(settingInfo[effectiveIndex].subText);
+               if (settingInfo[effectiveIndex].isOpen)
+               {
+                       pItem->SetCurState(DROP_DOWN_ITEM_STATE_OPENED);
+               }
+               else
+               {
+                       pItem->SetCurState(DROP_DOWN_ITEM_STATE_CLOSED);
+               }
 
-int
-SettingMainForm::GetFontSize(void)
-{
-       AppLogDebug("ENTER");
-       result r = E_SUCCESS;
+               r = pItem->Make(fontSize,itemHeight);
 
-       int fontSize = FONT_MAIN_TEXT_SIZE_NORMAL;
-       String fontSizeValue(L"");
+               if (IsFailed(r))
+               {
+                       delete pItem;
+                       return null;
+               }
 
-       if ((r = SettingInfo::GetValue(FONT_SIZE_SETTING_INFO_KEY, fontSizeValue)) == E_SUCCESS)
+               return pItem;
+       }
+       else if (settingInfo[effectiveIndex].itemType == ITEM_TYPE_RADIO)
        {
-               AppLogDebug("GetValue Fail [%s]", GetErrorMessage(r));
+               RadioCustomItem* pItem = new (std::nothrow) RadioCustomItem();
+               int parentIndex = 0;
 
-               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))
+               for (parentIndex = effectiveIndex; parentIndex > SETTING_INVALID; parentIndex--)
                {
-                       fontSize = FONT_MAIN_TEXT_SIZE_HUGE;
-               }
-               else if (fontSizeValue.Equals(FONT_SIZE_SETTING_TYPE_LARGE, false))
-               {
-                       fontSize = FONT_MAIN_TEXT_SIZE_LARGE;
+                       if (settingInfo[parentIndex].itemType == ITEM_TYPE_DROPDOWN)
+                               break;
                }
-               else if (fontSizeValue.Equals(FONT_SIZE_SETTING_TYPE_MEDIUM, false))
+
+               if (settingInfo[parentIndex].isOpen == false)
                {
-                       fontSize = FONT_MAIN_TEXT_SIZE_NORMAL;
+                       r = pItem->Construct(itemWidth, 0);
+                       __pList->SetItemEnabled(groupIndex, itemIndex,false);
+                       AppLogDebug("construct with height 0 %s", GetErrorMessage(r));
+                       return pItem;
                }
                else
                {
-                       fontSize = FONT_MAIN_TEXT_SIZE_SMALL;
+                       pItem->Construct(itemWidth, itemHeight);
+                       __pList->SetItemEnabled(groupIndex, itemIndex, true);
                }
+
+               pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_NORMAL, ITEM_RADIO_ITEM_BACKGROUND_COLOR);
+               pItem->SetBackgroundColor(LIST_ITEM_DRAWING_STATUS_PRESSED, ITEM_BACKGROUND_COLOR_HIGHLIGHTED);
+
+               pItem->SetText(settingInfo[effectiveIndex].titleText);
+               AppLogDebug("effectiveIndex %d SettingInfo[effectiveIndex].isSelected %d", effectiveIndex, settingInfo[effectiveIndex].isSelected);
+
+               __pList->SetItemChecked(groupIndex,itemIndex,settingInfo[effectiveIndex].isSelected);
+               pItem->Make(fontSize);
+
+               return pItem;
        }
-       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
+       else
+       {
+               return null;
+       }
+}
 
-       return fontSize;
+bool
+SettingMainForm::DeleteGroupItem(int groupIndex, GroupItem* pItem, int itemWidth)
+{
+       delete pItem;
+       return true;
 }
 
-void
-SettingMainForm::ItemTypeIconAndOneLine(Rectangle& icon, Rectangle& main)
+bool
+SettingMainForm::DeleteItem(int groupIndex, int itemIndex, ListItemBase* pItem, int itemWidth)
 {
-       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()));
+       delete pItem;
+       return true;
 }
 
 int
-SettingMainForm::GetSettingInfoItemStatus(int settingIndex)
+SettingMainForm::GetGroupCount(void)
 {
-       AppLogDebug("ENTER");
-       int returnValue = 0;
+       int groupCount = 1;
+
+       return groupCount;
+}
+
+int
+SettingMainForm::GetItemCount(int groupIndex)
+{
+       AppLog(" SettingMainForm::GetItemCount --> groupIndex : %d,", groupIndex);
+       return pGroupItemCount[groupIndex];
+}
 
-       switch (settingIndex)
+void
+SettingMainForm::InitializeSettingValues(void)
+{
+       pGroupItemCount = new (std::nothrow) int[1];
+       pGroupItemCount[0] = 12;
+       int interval = 0;
+       int transitionValue = 0;
+       int repeatValue = 0;
+       int shuffletValue = 0;
+       String selectedInterval;
+       String selectedTransition;
+
+       for (int iter = (int) SETTING_INVALID + 1; iter < (int) SETTING_MAX; ++iter)
        {
-       case SETTING_INFO_KEY_INDEX_SLIDESHOW_INTERVAL:
+               settingInfo[iter].isSelected = false;
+       }
+
+       result r =__pPresentationModel->GetValue(SECTION_NAME_IMAGE_VIEWER, ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_INTERVAL,
+                       interval);
+
+       if (r == E_SUCCESS)
        {
-               int realValue = 0;
-               __pPresentationModel->GetValue(SECTION_NAME_IMAGE_VIEWER, ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_INTERVAL,
-                               realValue);
-               switch (realValue)
+               switch (interval)
                {
                case 2:
                {
-                       returnValue = 0;
-                       break;
+                       selectedInterval = ResourceManager::GetString(L"IDS_MEDIABR_OPT_2_SECONDS");
+                       settingInfo[SETTING_INTERVAL_2].isSelected = true;
                }
+               break;
+
                case 3:
                {
-                       returnValue = 1;
-                       break;
+                       selectedInterval = ResourceManager::GetString(L"IDS_MEDIABR_OPT_3_SECONDS");
+                       settingInfo[SETTING_INTERVAL_3].isSelected = true;
                }
+               break;
+
                case 5:
                {
-                       returnValue = 2;
-                       break;
+                       selectedInterval = ResourceManager::GetString(L"IDS_MEDIABR_BODY_5_SECONDS");
+                       settingInfo[SETTING_INTERVAL_5].isSelected = true;
                }
+               break;
+
                case 10:
                {
-                       returnValue = 3;
-                       break;
+                       selectedInterval = ResourceManager::GetString(L"IDS_MEDIABR_BODY_10_SECONDS");
+                       settingInfo[SETTING_INTERVAL_10].isSelected = true;
                }
+               break;
+
                case 20:
                {
-                       returnValue = 4;
-                       break;
+                       selectedInterval = ResourceManager::GetString(L"IDS_MEDIABR_BODY_20_SECONDS");
+                       settingInfo[SETTING_INTERVAL_20].isSelected = true;
                }
+               break;
+
                default:
-               {
-                       returnValue = 0;
                        break;
                }
-               }
+       }
 
-               AppLogDebug("SETTINGS : interval (%d)", returnValue);
+       r = __pPresentationModel->GetValue(SECTION_NAME_IMAGE_VIEWER,
+                       ENTRY_NAME_IMAGE_VIEWER_SLIDESHOW_TRANSITION_EFFECT, transitionValue);
 
-               break;
-       }
-       case SETTING_INFO_KEY_INDEX_SLIDESHOW_TRANSITION:
+       if (r == E_SUCCESS)
        {
-               __pPresentationModel->GetValue(SECTION_NAME_IMAGE_VIEWER, SETTING_INFO_KEY_INDEX_SLIDESHOW_TRANSITION,
-                               returnValue);
+               switch (transitionValue)
+               {
+               case 0:
+               {
+                       selectedTransition = ResourceManager::GetString(L"IDS_EBOOK_BODY_PAGE");
+                       settingInfo[SETTING_TRANSITION_PAGE].isSelected = true;
+               }
+               break;
 
-               AppLogDebug("SETTINGS : transition(%d)", returnValue);
+               case 1:
+               {
+                       selectedTransition = ResourceManager::GetString(L"IDS_MEDIABR_BODY_DISSOLVE");
+                       settingInfo[SETTING_TRANSITION_DISSOLVE].isSelected = true;
+               }
+               break;
 
+               case 2:
+               {
+                       selectedTransition = ResourceManager::GetString(L"IDS_IV_OPT_ZOOM");
+                       settingInfo[SETTING_TRANSITION_ZOOM].isSelected = true;
+               }
                break;
+
+               default:
+                       break;
+               }
        }
-       default:
+
+       settingInfo[SETTING_SLIDESHOW_INTERVAL_TITLE].titleText = ResourceManager::GetString(L"IDS_MEDIABR_BODY_SLIDESHOW_INTERVAL");
+       settingInfo[SETTING_SLIDESHOW_INTERVAL_TITLE].subText = selectedInterval;
+       settingInfo[SETTING_SLIDESHOW_INTERVAL_TITLE].itemType = ITEM_TYPE_DROPDOWN;
+
+       settingInfo[SETTING_INTERVAL_2].titleText = ResourceManager::GetString(L"IDS_MEDIABR_OPT_2_SECONDS");
+       settingInfo[SETTING_INTERVAL_2].subText = L"";
+       settingInfo[SETTING_INTERVAL_2].itemType = ITEM_TYPE_RADIO;
+
+       settingInfo[SETTING_INTERVAL_3].titleText = ResourceManager::GetString(L"IDS_MEDIABR_OPT_3_SECONDS");
+       settingInfo[SETTING_INTERVAL_3].subText = L"";
+       settingInfo[SETTING_INTERVAL_3].itemType = ITEM_TYPE_RADIO;
+
+       settingInfo[SETTING_INTERVAL_5].titleText = ResourceManager::GetString(L"IDS_MEDIABR_BODY_5_SECONDS");
+       settingInfo[SETTING_INTERVAL_5].subText = L"";
+       settingInfo[SETTING_INTERVAL_5].itemType = ITEM_TYPE_RADIO;
+
+       settingInfo[SETTING_INTERVAL_10].titleText = ResourceManager::GetString(L"IDS_MEDIABR_BODY_10_SECONDS");
+       settingInfo[SETTING_INTERVAL_10].subText = L"";
+       settingInfo[SETTING_INTERVAL_10].itemType = ITEM_TYPE_RADIO;
+
+       settingInfo[SETTING_INTERVAL_20].titleText = ResourceManager::GetString(L"IDS_MEDIABR_BODY_20_SECONDS");
+       settingInfo[SETTING_INTERVAL_20].subText = L"";
+       settingInfo[SETTING_INTERVAL_20].itemType = ITEM_TYPE_RADIO;
+
+       r = __pPresentationModel->GetValue(SECTION_NAME_IMAGE_VIEWER, ENTRY_NAME_IMAGE_VIEWER_REPEAT_VALUE, repeatValue);
+
+       settingInfo[SETTING_REPEAT].titleText = ResourceManager::GetString(L"IDS_MEDIABR_BODY_REPEAT");
+       settingInfo[SETTING_REPEAT].itemType = ITEM_TYPE_TOGGLE;
+
+       if (repeatValue == 0)
        {
-               break;
+               settingInfo[SETTING_REPEAT].isSelected = false;
        }
+       else
+       {
+               settingInfo[SETTING_REPEAT].isSelected = true;
        }
-       AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
 
-       return returnValue;
-}
+       r = __pPresentationModel->GetValue(SECTION_NAME_IMAGE_VIEWER,
+                       ENTRY_NAME_IMAGE_VIEWER_SHUFFLE_VALUE, shuffletValue);
 
-void
-SettingMainForm::ItemTypeTwoLine(Rectangle& main, Rectangle& sub, int fontSize)
-{
-       Rectangle clientRect = GetClientAreaBounds();
+       settingInfo[SETTING_SHUFFLE].titleText = ResourceManager::GetString(L"IDS_MEDIABR_BODY_SHUFFLE");
+       settingInfo[SETTING_SHUFFLE].itemType = ITEM_TYPE_TOGGLE;
 
-       if (fontSize > FONT_MAIN_TEXT_SIZE_LARGE)
+       if (shuffletValue == 0)
        {
-               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;
+               settingInfo[SETTING_SHUFFLE].isSelected = false;
        }
        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;
+               settingInfo[SETTING_SHUFFLE].isSelected = true;
        }
+
+       settingInfo[SETTING_TRANSITION_EFFECT_TITLE].titleText = ResourceManager::GetString(L"IDS_MEDIABR_BODY_TRANSITION_EFFECT");
+       settingInfo[SETTING_TRANSITION_EFFECT_TITLE].subText = selectedTransition;
+       settingInfo[SETTING_TRANSITION_EFFECT_TITLE].itemType = ITEM_TYPE_DROPDOWN;
+
+       settingInfo[SETTING_TRANSITION_PAGE].titleText = ResourceManager::GetString(L"IDS_EBOOK_BODY_PAGE");
+       settingInfo[SETTING_TRANSITION_PAGE].subText = L"";
+       settingInfo[SETTING_TRANSITION_PAGE].itemType = ITEM_TYPE_RADIO;
+
+       settingInfo[SETTING_TRANSITION_DISSOLVE].titleText = ResourceManager::GetString(L"IDS_MEDIABR_BODY_DISSOLVE");
+       settingInfo[SETTING_TRANSITION_DISSOLVE].subText = L"";
+       settingInfo[SETTING_TRANSITION_DISSOLVE].itemType = ITEM_TYPE_RADIO;
+
+       settingInfo[SETTING_TRANSITION_ZOOM].titleText = ResourceManager::GetString(L"IDS_IV_OPT_ZOOM");
+       settingInfo[SETTING_TRANSITION_ZOOM].subText = L"";
+       settingInfo[SETTING_TRANSITION_ZOOM].itemType = ITEM_TYPE_RADIO;
 }
 
+SettingMainForm::SettingItemInfo::SettingItemInfo(void)
+       : childCount(0)
+       , isOpen(false)
+       , isSelected(false)
+{
+}
+
+
 void
-SettingMainForm::UpdateTableViewCheckButtonState(void)
+SettingMainForm::OnSettingChanged(String& key)
 {
        AppLogDebug("ENTER");
+       if (key == L"http://tizen.org/setting/font.size")
+       {
+               __pList->UpdateList();
+       }
        AppLogDebug("EXIT(%s)", GetErrorMessage(GetLastResult()));
 }