Tizen 2.1 base
[framework/osp/uifw.git] / src / ui / controls / FUiCtrl_Scroll.cpp
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_Scroll.cpp
20  * @brief               This is the implementation file for the _Scroll class.
21  */
22
23 #include <FBaseSysLog.h>
24 #include "FUiCtrl_Scroll.h"
25 #include "FUiCtrl_ScrollPresenter.h"
26
27 using namespace Tizen::Base;
28 using namespace Tizen::Graphics;
29 using namespace Tizen::Ui::Animations;
30
31 namespace Tizen { namespace Ui { namespace Controls
32 {
33
34 _Scroll::_Scroll(void)
35         : __pPresenter(null)
36 {
37 }
38
39 _Scroll::~_Scroll(void)
40 {
41         delete __pPresenter;
42         __pPresenter = null;
43 }
44
45 _Scroll*
46 _Scroll::CreateScrollN(Tizen::Ui::_Control& parentCtrl,
47                                                                 _ScrollDirection scrollDir,
48                                                                 bool enableFadeEffect,
49                                                                 bool enableJumpToTop,
50                                                                 bool enableHandler,
51                                                                 bool visibility,
52                                                                 int viewRange,
53                                                                 int scrollRange,
54                                                                 int scrollPosition)
55 {
56         result r = E_SUCCESS;
57         ClearLastResult();
58
59         _Scroll* pScroll = new (std::nothrow) _Scroll();
60         SysTryReturn(NID_UI_CTRL, pScroll, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
61
62
63         r = pScroll->Construct(parentCtrl,
64                                                         scrollDir,
65                                                         enableFadeEffect,
66                                                         enableJumpToTop,
67                                                         enableHandler,
68                                                         visibility,
69                                                         viewRange,
70                                                         scrollRange,
71                                                         scrollPosition);
72         SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating", GetErrorMessage(r));
73
74         return pScroll;
75
76 CATCH:
77         delete pScroll;
78         return null;
79 }
80
81 result
82 _Scroll::Construct(Tizen::Ui::_Control& parentCtrl,
83                                                                 _ScrollDirection scrollDir,
84                                                                 bool enableFadeEffect,
85                                                                 bool enableJumpToTop,
86                                                                 bool enableHandler,
87                                                                 bool visibility,
88                                                                 int viewRange,
89                                                                 int scrollRange,
90                                                                 int scrollPosition)
91 {
92         _ScrollPresenter* pPresenter = _ScrollPresenter::CreateScrollPresenterN(parentCtrl,
93                                                                                                                         *this,
94                                                                                                                         scrollDir,
95                                                                                                                         enableFadeEffect,
96                                                                                                                         enableJumpToTop,
97                                                                                                                         enableHandler,
98                                                                                                                         visibility,
99                                                                                                                         viewRange,
100                                                                                                                         scrollRange,
101                                                                                                                         scrollPosition);
102         SysTryReturnResult(NID_UI_CTRL, pPresenter, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
103
104         SetPresenter((_ScrollPresenter &)*pPresenter);
105
106         AcquireHandle();
107
108         return E_SUCCESS;
109 }
110
111 void
112 _Scroll::SetPresenter(_ScrollPresenter& scrollPresenter)
113 {
114         __pPresenter = &scrollPresenter;
115 }
116
117 _ScrollPresenter&
118 _Scroll::GetPresenter(void) const
119 {
120         return *__pPresenter;
121 }
122
123 result
124 _Scroll::SetScrollDirection(_ScrollDirection scrollDir)
125 {
126         return GetPresenter().SetScrollDirection(scrollDir);
127 }
128
129 _ScrollDirection
130 _Scroll::GetScrollDirection(void) const
131 {
132         return GetPresenter().GetScrollDirection();
133 }
134
135 result
136 _Scroll::SetScrollRange(int viewRange, int scrollRange)
137 {
138         return GetPresenter().SetScrollRange(viewRange, scrollRange);
139 }
140
141 void
142 _Scroll::GetScrollRange(int* pViewRange, int* pScrollRange) const
143 {
144         GetPresenter().GetScrollRange(pViewRange, pScrollRange);
145 }
146
147 result
148 _Scroll::SetScrollPosition(int scrollPosition)
149 {
150         return GetPresenter().SetScrollPosition(scrollPosition);
151 }
152
153 int
154 _Scroll::GetScrollPosition(void) const
155 {
156         return GetPresenter().GetScrollPosition();
157 }
158
159 void
160 _Scroll::EnableFadeEffect(bool enable)
161 {
162         GetPresenter().EnableFadeEffect(enable);
163 }
164
165 bool
166 _Scroll::IsEnabledFadeEffect(void) const
167 {
168         return GetPresenter().IsEnabledFadeEffect();
169 }
170
171 bool
172 _Scroll::IsOnFadeEffect(void) const
173 {
174         return GetPresenter().IsOnFadeEffect();
175 }
176
177 void
178 _Scroll::EnableScrollingEffect(bool enable)
179 {
180         GetPresenter().EnableScrollingEffect(enable);
181 }
182
183 bool
184 _Scroll::IsEnabledScrollingEffect(void) const
185 {
186         return GetPresenter().IsEnabledScrollingEffect();
187 }
188
189 void
190 _Scroll::EnableOverScrollingEffect(bool enable)
191 {
192         GetPresenter().EnableOverScrollingEffect(enable);
193 }
194
195 bool
196 _Scroll::IsEnabledOverScrollingEffect(void) const
197 {
198         return GetPresenter().IsEnabledOverScrollingEffect();
199 }
200
201 void
202 _Scroll::SetParentUsingViewport(bool useViewport)
203 {
204         GetPresenter().SetParentUsingViewport(useViewport);
205 }
206
207 bool
208 _Scroll::IsParentUsingViewport(void) const
209 {
210         return GetPresenter().IsParentUsingViewport();
211 }
212
213 result
214 _Scroll::SetScrollVisibility(bool visibility)
215 {
216         return GetPresenter().SetScrollVisibility(visibility);
217 }
218
219 bool
220 _Scroll::GetScrollVisibility(void) const
221 {
222         return GetPresenter().GetScrollVisibility();
223 }
224
225 void
226 _Scroll::CancelFadeEffect(void)
227 {
228         GetPresenter().CancelFadeEffect();
229 }
230
231 result
232 _Scroll::SetScrollingEffectVisibility(bool visibility)
233 {
234         return GetPresenter().SetScrollingEffectVisibility(visibility);
235 }
236
237 result
238 _Scroll::EnableJumpToTop(bool enable)
239 {
240         return GetPresenter().EnableJumpToTop(enable);
241 }
242
243 bool
244 _Scroll::IsEnabledJumpToTop(void) const
245 {
246         return GetPresenter().IsEnabledJumpToTop();
247 }
248
249 result
250 _Scroll::EnableHandler(bool enable)
251 {
252         return GetPresenter().EnableHandler(enable);
253 }
254
255 bool
256 _Scroll::IsEnabledHandler(void) const
257 {
258         return GetPresenter().IsEnabledHandler();
259 }
260
261 void
262 _Scroll::AddScrollEventListener(const Tizen::Ui::Controls::_IScrollEventListener& listener)
263 {
264         GetPresenter().AddScrollEventListener(listener);
265 }
266
267 void
268 _Scroll::RemoveScrollEventListener(const Tizen::Ui::Controls::_IScrollEventListener& listener)
269 {
270         GetPresenter().RemoveScrollEventListener(listener);
271 }
272
273 void
274 _Scroll::OnParentBoundsChanged(void)
275 {
276         GetPresenter().OnParentBoundsChanged();
277 }
278
279 void
280 _Scroll::OnDraw(void)
281 {
282         GetPresenter().OnDraw();
283 }
284
285 bool
286 _Scroll::OnTouchPressed(const _Control& source, const _TouchInfo& touchinfo)
287 {
288         return GetPresenter().OnTouchPressed(source, touchinfo);
289 }
290
291 bool
292 _Scroll::OnTouchReleased(const _Control& source, const _TouchInfo& touchinfo)
293 {
294         return GetPresenter().OnTouchReleased(source, touchinfo);
295 }
296
297 bool
298 _Scroll::OnTouchMoved(const _Control& source, const _TouchInfo& touchinfo)
299 {
300         return GetPresenter().OnTouchMoved(source, touchinfo);
301 }
302
303 HitTestResult
304 _Scroll::HitTest(const Tizen::Graphics::FloatPoint& point)
305 {
306         return GetPresenter().HitTest(point);
307 }
308
309 }}} // Tizen::Ui::Controls