Add new string and adapt coding idiom
[apps/osp/Gallery.git] / inc / GlSettingMainForm.h
1 //
2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
3 //
4 // Licensed under the Flora License, Version 1.0 (the License);
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 //     http://floralicense.org/license/
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an AS IS BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 //
16
17 /**
18  * @file                GlSettingMainForm.h
19  * @brief               This is the header file for SettingMainForm class.
20  */
21
22 #ifndef _GL_SETTING_MAIN_FORM_H_
23 #define _GL_SETTING_MAIN_FORM_H_
24
25 #include <FApp.h>
26 #include <FBase.h>
27 #include <FContent.h>
28 #include <FUi.h>
29
30 enum SettingListItemType
31 {
32         ITEM_TYPE_NORMAL = 0,
33         ITEM_TYPE_TOGGLE,
34         ITEM_TYPE_DROPDOWN,
35         ITEM_TYPE_RADIO,
36 };
37
38 enum
39 {
40         SETTING_INVALID = -1,
41         SETTING_SLIDESHOW_INTERVAL_TITLE = 0,
42         SETTING_INTERVAL_2,
43         SETTING_INTERVAL_3,
44         SETTING_INTERVAL_5,
45         SETTING_INTERVAL_10,
46         SETTING_INTERVAL_20,
47         SETTING_REPEAT,
48         SETTING_SHUFFLE,
49         SETTING_TRANSITION_EFFECT_TITLE,
50         SETTING_TRANSITION_PAGE,
51         SETTING_TRANSITION_DISSOLVE,
52         SETTING_TRANSITION_ZOOM,
53         SETTING_MAX
54 };
55
56 class SettingPresentationModel;
57
58 class SettingMainForm
59         : public Tizen::Ui::Controls::Form
60         , public Tizen::Ui::IActionEventListener
61         , public Tizen::Ui::Controls::IGroupedListViewItemEventListener
62         , public Tizen::Ui::Controls::IGroupedListViewItemProvider
63         , public Tizen::Ui::Controls::IFormBackEventListener
64         , public Tizen::Ui::Scenes::ISceneEventListener
65 {
66 public:
67         SettingMainForm(void);
68         virtual ~SettingMainForm(void);
69         result Initialize(void);
70
71         virtual result OnInitializing(void);
72         virtual result OnTerminating(void);
73
74         virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
75
76         void OnGroupedListViewContextItemStateChanged(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex, int itemIndex, int elementId, Tizen::Ui::Controls::ListContextItemStatus status);
77         void OnGroupedListViewItemStateChanged(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex, int itemIndex, int elementId, Tizen::Ui::Controls::ListItemStatus status);
78         void OnGroupedListViewItemSwept(Tizen::Ui::Controls::GroupedListView& listView, int groupIndex, int itemIndex, Tizen::Ui::Controls::SweepDirection direction);
79
80         virtual int GetGroupCount(void);
81         virtual int GetItemCount(int groupIndex);
82         virtual Tizen::Ui::Controls::GroupItem* CreateGroupItem(int groupIndex, int itemWidth);
83         virtual bool DeleteGroupItem(int groupIndex, Tizen::Ui::Controls::GroupItem* pItem, int itemWidth);
84         virtual Tizen::Ui::Controls::ListItemBase* CreateItem(int groupIndex, int itemIndex, int itemWidth);
85         virtual bool DeleteItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth);
86
87         virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source);
88
89         virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId,
90                         const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);
91         virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId,
92                         const Tizen::Ui::Scenes::SceneId& nextSceneId);
93
94         class SettingItemInfo
95         {
96         public:
97                 SettingItemInfo(void);
98                 virtual ~SettingItemInfo(void){};
99
100         public:
101                 int childCount;
102                 bool isOpen;
103                 bool isSelected;
104                 SettingListItemType itemType;
105                 Tizen::Base::String titleText;
106                 Tizen::Base::String subText;
107         };
108
109         int* pGroupItemCount;
110         SettingItemInfo settingInfo[SETTING_MAX];
111
112 private:
113         void InitializeSettingValues(void);
114
115 private:
116         Tizen::Ui::Controls::GroupedListView* __pList;
117         SettingPresentationModel* __pPresentationModel;
118 };
119
120 #endif /* _GL_SETTING_MAIN_FORM_H_ */