Tizen 2.1 base
[framework/osp/uifw.git] / src / ui / inc / FUiCtrl_IconListViewImpl.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_IconListViewImpl.h
20  * @brief               This is the header file for the _IconListViewImpl class.
21  */
22
23 #ifndef _FUI_CTRL_INTERNAL_ICON_LIST_VIEW_IMPL_H_
24 #define _FUI_CTRL_INTERNAL_ICON_LIST_VIEW_IMPL_H_
25
26 #include <FUiCtrlIconListView.h>
27
28 #include "FUi_ControlImpl.h"
29 #include "FUiCtrl_IIconListItemEventListener.h"
30 #include "FUiCtrl_IScrollEventListener.h"
31
32 namespace Tizen { namespace Ui { namespace Controls
33 {
34
35 class _IconListView;
36 class _IconListViewItemEvent;
37 class _IconListViewItemEventArg;
38 class _ScrollEvent;
39
40 class _IconListViewImpl
41         : public _ControlImpl
42         , public _IIconListItemEventListener
43         , public _IScrollEventListener
44         , virtual public Tizen::Base::Runtime::IEventListener
45 {
46 // Lifecycle
47 public:
48         virtual ~_IconListViewImpl(void);
49
50         static _IconListViewImpl* CreateIconListViewImplN(IconListView* pIconListView);
51
52         virtual const char* GetPublicClassName(void) const;
53
54         virtual IconListView& GetPublic(void);
55
56 // Operations
57 public:
58         result Initialize(IconListView* pIconListView, const Tizen::Graphics::Dimension& itemBitmapSize, IconListViewStyle style, IconListViewScrollDirection scrollDirection, IconListViewScrollStyle scrollStyle);
59
60 // Accessor
61 public:
62         result SetItemProvider(IIconListViewItemProvider& provider);
63
64         void AddIconListViewItemEventListener(IIconListViewItemEventListener& listener);
65
66         void RemoveIconListViewItemEventListener(IIconListViewItemEventListener& listener);
67
68         void AddScrollEventListener(IScrollEventListener& listener);
69
70         void RemoveScrollEventListener(IScrollEventListener& listener);
71
72         result SetBackgroundBitmap(const Tizen::Graphics::Bitmap* pBitmap);
73
74         result SetMargin(MarginType type, int value);
75
76         int GetMargin(MarginType type) const;
77
78         result SetItemSpacing(int horizontalSpacing, int verticalSpacing);
79
80         int GetItemHorizontalSpacing(void) const;
81
82         int GetItemVerticalSpacing(void) const;
83
84         result SetItemChecked(int index, bool check);
85
86         bool IsItemChecked(int index) const;
87
88         int GetItemIndexFromPosition(int x, int y) const;
89
90         int GetItemIndexFromPosition(const Tizen::Graphics::Point& position) const;
91
92         result SetTextHorizontalAlignment(HorizontalAlignment alignment);
93
94         result SetTextVerticalAlignment(IconListViewItemTextVerticalAlignment alignment);
95
96         HorizontalAlignment GetTextHorizontalAlignment(void) const;
97
98         IconListViewItemTextVerticalAlignment GetTextVerticalAlignment(void) const;
99
100         result SetTextOfEmptyList(const Tizen::Base::String& text);
101
102         Tizen::Base::String GetTextOfEmptyList(void) const;
103
104         result SetTextColorOfEmptyList(const Tizen::Graphics::Color& color);
105
106         Tizen::Graphics::Color GetTextColorOfEmptyList(void) const;
107
108         result SetItemTextColor(IconListViewItemDrawingStatus status, const Tizen::Graphics::Color& color);
109
110         Tizen::Graphics::Color GetItemTextColor(IconListViewItemDrawingStatus status) const;
111
112         result SetItemTextSize(int size);
113
114         int GetItemTextSize(void) const;
115
116         result SetCheckBoxPosition(IconListViewCheckBoxPosition position);
117
118         IconListViewCheckBoxPosition GetCheckBoxPosition(void) const;
119
120         result SetTouchAnimationEnabled(bool enable);
121
122         bool IsTouchAnimationEnabled(void) const;
123
124         result ScrollToItem(int index);
125
126         result ScrollByPixel(int pixel);
127
128         result RefreshList(int index, ListRefreshType type);
129
130         result UpdateList(void);
131
132         result GetItemBitmapSize(int& width, int& height) const;
133
134         Tizen::Graphics::Dimension GetItemBitmapSize(void) const;
135
136         result GetItemSize(int& width, int& height) const;
137
138         Tizen::Graphics::Dimension GetItemSize(void) const;
139
140         result SetMagneticScrollSize(int scrollSize);
141
142         int GetMagneticScrollSize(void) const;
143
144         int GetItemCountPerAxis(void) const;
145
146         result SetItemLayoutHorizontalAlignment(HorizontalAlignment alignment);
147
148         result SetItemLayoutVerticalAlignment(VerticalAlignment alignment);
149
150         HorizontalAlignment GetItemLayoutHorizontalAlignment(void) const;
151
152         VerticalAlignment GetItemLayoutVerticalAlignment(void) const;
153
154         result SetItemBorderStyle(IconListViewItemBorderStyle borderStyle);
155
156         IconListViewItemBorderStyle GetItemBorderStyle(void) const;
157
158         result SetBitmapOfEmptyList(const Tizen::Graphics::Bitmap* pBitmap);
159
160         result BeginReorderingMode(void);
161
162         result EndReorderingMode(void);
163
164         bool IsInReorderingMode(void) const;
165
166 // Inquiry
167 public:
168         // _IIconListItemEventListener
169         virtual void OnIconListItemStateChanged(_IconListViewItemEventArg* pArg);
170         virtual void OnIconListViewOverlayBitmapSelected(_IconListViewItemEventArg* pArg);
171         virtual void OnIconListViewItemReordered(_IconListViewItemEventArg* pArg);
172
173         // _IScrollEventListener
174         virtual void OnScrollEndReached(Tizen::Ui::_Control& source, ScrollEndEvent type);
175         virtual void OnScrollPositionChanged(Tizen::Ui::_Control& source, int scrollPos);
176         virtual void OnScrollStopped(Tizen::Ui::_Control& source);
177
178 // Constants
179 public:
180         static _IconListViewImpl* GetInstance(IconListView& iconListView);
181         static const _IconListViewImpl* GetInstance(const IconListView& iconListView);
182
183 // Lifecycle
184 protected:
185         result Dispose(void);
186
187 private:
188         _IconListViewImpl(IconListView* pIconListView, _IconListView* pCore);
189         _IconListViewImpl(const _IconListViewImpl& rhs);
190         _IconListViewImpl& operator =(const _IconListViewImpl& rhs);
191
192 // Attribute
193 private:
194         static const int ICONLISTVIEW_MAX_VIEW_COUNT = 256;
195
196         _IconListView* __pIconListView;
197         _IconListViewItemEvent* __pIconListViewItemEvent;
198         _ScrollEvent* __pScrollEvent;
199 }; // _IconListViewImpl
200
201 }}} // Tizen::Ui::Controls
202
203 #endif // _FUI_CTRL_INTERNAL_ICON_LIST_VIEW_IMPL_H_