merge with master
[apps/osp/Gallery.git] / inc / GlSettingMainForm.h
index cb51836..3aa88d5 100644 (file)
 #include <FContent.h>
 #include <FUi.h>
 
+enum SettingListItemType
+{
+       ITEM_TYPE_NORMAL = 0,
+       ITEM_TYPE_TOGGLE,
+       ITEM_TYPE_DROPDOWN,
+       ITEM_TYPE_RADIO,
+};
+
+enum
+{
+       SETTING_INVALID = -1,
+       SETTING_SLIDESHOW_INTERVAL_TITLE = 0, //1
+       SETTING_INTERVAL_2,                                       //2
+       SETTING_INTERVAL_3,                               //3
+       SETTING_INTERVAL_5,                   //4
+       SETTING_INTERVAL_10,                  //5
+       SETTING_INTERVAL_20,                  //6
+       SETTING_REPEAT,                       //7
+       //SETTING_SHUFFLE,                      //8
+       SETTING_TRANSITION_EFFECT_TITLE,      //9
+       SETTING_TRANSITION_SLIDE,             //10
+       SETTING_TRANSITION_DISSOLVE,          //11
+       SETTING_TRANSITION_ZOOM,              //12
+       SETTING_MAX                                                       //13
+};
+
 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:
+: public Tizen::Ui::Controls::Form
+  , public Tizen::Ui::IActionEventListener
+  , public Tizen::Ui::Controls::IGroupedListViewItemEventListener
+  , public Tizen::Ui::Controls::IGroupedListViewItemProvider
+  , public Tizen::Ui::Controls::IFormBackEventListener
+  , public Tizen::Ui::Scenes::ISceneEventListener
+  {
+  public:
        SettingMainForm(void);
        virtual ~SettingMainForm(void);
        result Initialize(void);
@@ -47,26 +73,25 @@ public:
 
        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);
+       //IGroupedListViewItemProvider
+       Tizen::Ui::Controls::GroupItem* CreateGroupItem(int groupIndex, int itemWidth);
+
+       Tizen::Ui::Controls::ListItemBase* CreateItem(int groupIndex, int itemIndex, int itemWidth);
+
+       bool DeleteGroupItem(int groupIndex, Tizen::Ui::Controls::GroupItem* pItem, int itemWidth);
+
+       bool DeleteItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth);
+
+       int GetGroupCount(void);
+
+       int GetItemCount(int groupIndex);
+
+       //IGroupedListViewItemEventListener
+       void OnGroupedListViewContextItemStateChanged(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex, int itemIndex, int elementId, Tizen::Ui::Controls::ListContextItemStatus status);
+
+       void OnGroupedListViewItemStateChanged(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex, int itemIndex, int elementId, Tizen::Ui::Controls::ListItemStatus status);
+
+       void OnGroupedListViewItemSwept(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex, int itemIndex, Tizen::Ui::Controls::SweepDirection direction);
 
        virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source);
 
@@ -75,17 +100,41 @@ public:
        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);
+       class SettingItemInfo
+       {
+       public:
+               /**
+                * @brief The Default Constructor
+                */
+               SettingItemInfo(void);
+
+               /**
+                * @brief The Default Destructor
+                */
+               virtual ~SettingItemInfo(void){};
 
-private:
-       Tizen::Ui::Controls::GroupedTableView* __pTableView;
+       public:
+               int childCount;     //only for ITEM_TYPE_DROPDOWN type items
+               bool isOpen;        //true for opened and false for closed
+               bool isSelected;        //only for ITEM_TYPE_RADIO && ITEM_TYPE_TOGGLE type of items
+               SettingListItemType itemType;
+               Tizen::Base::String titleText;
+               Tizen::Base::String subText;
+       };
+
+       int* pGroupItemCount;
+       SettingItemInfo settingInfo[SETTING_MAX];
+
+  private:
+       /**
+        * @brief Initializes this instance of settings default values.
+        */
+       void InitializeSettingValues(void);
+
+  private:
+       Tizen::Ui::Controls::GroupedListView* __pList;
        SettingPresentationModel* __pPresentationModel;
-};
+
+  };
 
 #endif /* _GL_SETTING_MAIN_FORM_H_ */