2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
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
9 // http://floralicense.org/license/
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.
19 * @file FUiCtrl_IconListViewImpl.h
20 * @brief This is the header file for the _IconListViewImpl class.
23 #ifndef _FUI_CTRL_INTERNAL_ICON_LIST_VIEW_IMPL_H_
24 #define _FUI_CTRL_INTERNAL_ICON_LIST_VIEW_IMPL_H_
26 #include <FUiCtrlIconListView.h>
28 #include "FUi_ControlImpl.h"
29 #include "FUiCtrl_IIconListItemEventListener.h"
30 #include "FUiCtrl_IScrollEventListener.h"
32 namespace Tizen { namespace Ui { namespace Controls
36 class _IconListViewItemEvent;
37 class _IconListViewItemEventArg;
40 class _IconListViewImpl
42 , public _IIconListItemEventListener
43 , public _IScrollEventListener
44 , virtual public Tizen::Base::Runtime::IEventListener
48 virtual ~_IconListViewImpl(void);
50 static _IconListViewImpl* CreateIconListViewImplN(IconListView* pIconListView);
52 virtual const char* GetPublicClassName(void) const;
54 virtual IconListView& GetPublic(void);
58 result Initialize(IconListView* pIconListView, const Tizen::Graphics::Dimension& itemBitmapSize, IconListViewStyle style, IconListViewScrollDirection scrollDirection, IconListViewScrollStyle scrollStyle);
62 result SetItemProvider(IIconListViewItemProvider& provider);
64 void AddIconListViewItemEventListener(IIconListViewItemEventListener& listener);
66 void RemoveIconListViewItemEventListener(IIconListViewItemEventListener& listener);
68 void AddScrollEventListener(IScrollEventListener& listener);
70 void RemoveScrollEventListener(IScrollEventListener& listener);
72 result SetBackgroundBitmap(const Tizen::Graphics::Bitmap* pBitmap);
74 result SetMargin(MarginType type, int value);
76 int GetMargin(MarginType type) const;
78 result SetItemSpacing(int horizontalSpacing, int verticalSpacing);
80 int GetItemHorizontalSpacing(void) const;
82 int GetItemVerticalSpacing(void) const;
84 result SetItemChecked(int index, bool check);
86 bool IsItemChecked(int index) const;
88 int GetItemIndexFromPosition(int x, int y) const;
90 int GetItemIndexFromPosition(const Tizen::Graphics::Point& position) const;
92 result SetTextHorizontalAlignment(HorizontalAlignment alignment);
94 result SetTextVerticalAlignment(IconListViewItemTextVerticalAlignment alignment);
96 HorizontalAlignment GetTextHorizontalAlignment(void) const;
98 IconListViewItemTextVerticalAlignment GetTextVerticalAlignment(void) const;
100 result SetTextOfEmptyList(const Tizen::Base::String& text);
102 Tizen::Base::String GetTextOfEmptyList(void) const;
104 result SetTextColorOfEmptyList(const Tizen::Graphics::Color& color);
106 Tizen::Graphics::Color GetTextColorOfEmptyList(void) const;
108 result SetItemTextColor(IconListViewItemDrawingStatus status, const Tizen::Graphics::Color& color);
110 Tizen::Graphics::Color GetItemTextColor(IconListViewItemDrawingStatus status) const;
112 result SetItemTextSize(int size);
114 int GetItemTextSize(void) const;
116 result SetCheckBoxPosition(IconListViewCheckBoxPosition position);
118 IconListViewCheckBoxPosition GetCheckBoxPosition(void) const;
120 result SetTouchAnimationEnabled(bool enable);
122 bool IsTouchAnimationEnabled(void) const;
124 result ScrollToItem(int index);
126 result ScrollByPixel(int pixel);
128 result RefreshList(int index, ListRefreshType type);
130 result UpdateList(void);
132 result GetItemBitmapSize(int& width, int& height) const;
134 Tizen::Graphics::Dimension GetItemBitmapSize(void) const;
136 result GetItemSize(int& width, int& height) const;
138 Tizen::Graphics::Dimension GetItemSize(void) const;
140 result SetMagneticScrollSize(int scrollSize);
142 int GetMagneticScrollSize(void) const;
144 int GetItemCountPerAxis(void) const;
146 result SetItemLayoutHorizontalAlignment(HorizontalAlignment alignment);
148 result SetItemLayoutVerticalAlignment(VerticalAlignment alignment);
150 HorizontalAlignment GetItemLayoutHorizontalAlignment(void) const;
152 VerticalAlignment GetItemLayoutVerticalAlignment(void) const;
154 result SetItemBorderStyle(IconListViewItemBorderStyle borderStyle);
156 IconListViewItemBorderStyle GetItemBorderStyle(void) const;
158 result SetBitmapOfEmptyList(const Tizen::Graphics::Bitmap* pBitmap);
160 result BeginReorderingMode(void);
162 result EndReorderingMode(void);
164 bool IsInReorderingMode(void) const;
168 // _IIconListItemEventListener
169 virtual void OnIconListItemStateChanged(_IconListViewItemEventArg* pArg);
170 virtual void OnIconListViewOverlayBitmapSelected(_IconListViewItemEventArg* pArg);
171 virtual void OnIconListViewItemReordered(_IconListViewItemEventArg* pArg);
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);
180 static _IconListViewImpl* GetInstance(IconListView& iconListView);
181 static const _IconListViewImpl* GetInstance(const IconListView& iconListView);
185 result Dispose(void);
188 _IconListViewImpl(IconListView* pIconListView, _IconListView* pCore);
189 _IconListViewImpl(const _IconListViewImpl& rhs);
190 _IconListViewImpl& operator =(const _IconListViewImpl& rhs);
194 static const int ICONLISTVIEW_MAX_VIEW_COUNT = 256;
196 _IconListView* __pIconListView;
197 _IconListViewItemEvent* __pIconListViewItemEvent;
198 _ScrollEvent* __pScrollEvent;
199 }; // _IconListViewImpl
201 }}} // Tizen::Ui::Controls
203 #endif // _FUI_CTRL_INTERNAL_ICON_LIST_VIEW_IMPL_H_