Revert " modify license, permission and remove ^M char"
[framework/osp/uifw.git] / src / ui / inc / FUiCtrl_TableViewItemProvider.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Flora License, Version 1.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 //     http://floralicense.org/license/
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an AS IS BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17
18 /**
19  * @file                FUiCtrl_TableViewItemProvider.h
20  * @brief               This file defines the _TableViewItemProvider class.
21  *
22  * This header file contains the declarations of the _TableViewItemProvider class.
23  */
24
25 #ifndef _FUI_CTRL_INTERNAL_TABLE_VIEW_ITEM_PROVIDER_H_
26 #define _FUI_CTRL_INTERNAL_TABLE_VIEW_ITEM_PROVIDER_H_
27
28 #include <FUiCtrlTableViewTypes.h>
29 #include "FUiCtrl_TableView.h"
30 #include "FUi_Control.h"
31
32 namespace Tizen { namespace Ui { namespace Controls
33 {
34 class TableViewItem;
35 class TableViewGroupItem;
36 class ITableViewItemProvider;
37 class ITableViewItemProviderF;
38 class IGroupedTableViewItemProvider;
39 class IGroupedTableViewItemProviderF;
40 class ISectionTableViewItemProvider;
41 class ISectionTableViewItemProviderF;
42 struct TableViewItemTag;
43
44 class _TableViewItemProvider
45 {
46 public:
47         virtual ~_TableViewItemProvider(void);
48
49         static _TableViewItemProvider* CreateTableViewItemProviderN(TableViewStyle style, bool useFloatingPoint = false);
50
51         result SetSimpleStyleItemProvider(ITableViewItemProvider* pProvider);
52         result SetGroupedStyleItemProvider(IGroupedTableViewItemProvider* pProvider);
53         result SetSectionStyleItemProvider(ISectionTableViewItemProvider* pProvider);
54
55         result SetSimpleStyleItemProviderF(ITableViewItemProviderF* pProvider);
56         result SetGroupedStyleItemProviderF(IGroupedTableViewItemProviderF* pProvider);
57         result SetSectionStyleItemProviderF(ISectionTableViewItemProviderF* pProvider);
58
59         int GetGroupCount(void);
60         int GetItemCount(int groupIndex);
61         float GetGroupItemHeight(int groupIndex);
62         float GetItemHeight(const TableViewItemTag& itemTag);
63         TableViewGroupItem* CreateGroupItem(int groupIndex, float itemWidth);
64         bool DeleteGroupItem(int groupIndex, TableViewGroupItem* pItem);
65         TableViewItem* CreateItem(const TableViewItemTag& itemTag, float itemWidth);
66         bool DeleteItem(const TableViewItemTag& itemTag, TableViewItem* pItem);
67         bool UpdateItem(const TableViewItemTag& itemTag, TableViewItem *pItem);
68         bool UpdateGroupItem(int groupIndex, TableViewGroupItem *pItem);
69         Tizen::Base::String GetSectionHeader(int groupIndex);
70         bool HasSectionHeader(int groupIndex);
71         Tizen::Base::String GetSectionFooter(int groupIndex);
72         bool HasSectionFooter(int groupIndex);
73         float GetDefaultItemHeight(void);
74         float GetDefaultGroupItemHeight(void);
75         bool IsReorderable(int groupIndexFrom, int groupIndexTo);
76         bool IsOnProcessing();
77
78 protected:
79         _TableViewItemProvider(TableViewStyle style, bool useFloatingPoint);
80
81 private:
82         _TableViewItemProvider(_TableViewItemProvider& rhs);
83         _TableViewItemProvider& operator =(_TableViewItemProvider& rhs);
84
85 // Attribute
86 private:
87         ITableViewItemProvider* __pSimpleProvider;
88         IGroupedTableViewItemProvider* __pGroupedProvider;
89         ISectionTableViewItemProvider* __pSectionProvider;
90
91         ITableViewItemProviderF* __pSimpleProviderF;
92         IGroupedTableViewItemProviderF* __pGroupedProviderF;
93         ISectionTableViewItemProviderF* __pSectionProviderF;
94
95         TableViewStyle __style;
96         bool __onProcessing;
97         bool __useFloatingPoint;
98
99 }; // _TableViewItemProvider
100
101 }}}     // Tizen::Ui::Controls
102
103 #endif // _FUI_CTRL_INTERNAL_TABLE_VIEW_ITEM_PROVIDER_H_
104
105