Changed indicator bg color.
[platform/framework/native/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 Apache License, Version 2.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://www.apache.org/licenses/LICENSE-2.0/
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                                                                 float viewRange,
53                                                                 float scrollRange,
54                                                                 float 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                                                                 float viewRange,
89                                                                 float scrollRange,
90                                                                 float 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         SetFocusable(false);
106
107         AcquireHandle();
108
109         return E_SUCCESS;
110 }
111
112 void
113 _Scroll::SetPresenter(_ScrollPresenter& scrollPresenter)
114 {
115         __pPresenter = &scrollPresenter;
116 }
117
118 _ScrollPresenter&
119 _Scroll::GetPresenter(void) const
120 {
121         return *__pPresenter;
122 }
123
124 result
125 _Scroll::SetScrollDirection(_ScrollDirection scrollDir)
126 {
127         return GetPresenter().SetScrollDirection(scrollDir);
128 }
129
130 _ScrollDirection
131 _Scroll::GetScrollDirection(void) const
132 {
133         return GetPresenter().GetScrollDirection();
134 }
135
136 result
137 _Scroll::SetScrollRange(float viewRange, float scrollRange)
138 {
139         return GetPresenter().SetScrollRange(viewRange, scrollRange);
140 }
141
142 void
143 _Scroll::GetScrollRange(float* pViewRange, float* pScrollRange) const
144 {
145         GetPresenter().GetScrollRange(pViewRange, pScrollRange);
146 }
147
148 result
149 _Scroll::SetScrollPosition(float scrollPosition)
150 {
151         return GetPresenter().SetScrollPosition(scrollPosition);
152 }
153
154 float
155 _Scroll::GetScrollPosition(void) const
156 {
157         return GetPresenter().GetScrollPosition();
158 }
159
160 result
161 _Scroll::SetContextMenuScrollType(bool isContextMenu)
162 {
163         return GetPresenter().SetContextMenuScrollType(isContextMenu);
164 }
165
166 void
167 _Scroll::EnableFadeEffect(bool enable)
168 {
169         GetPresenter().EnableFadeEffect(enable);
170 }
171
172 bool
173 _Scroll::IsEnabledFadeEffect(void) const
174 {
175         return GetPresenter().IsEnabledFadeEffect();
176 }
177
178 bool
179 _Scroll::IsOnFadeEffect(void) const
180 {
181         return GetPresenter().IsOnFadeEffect();
182 }
183
184 void
185 _Scroll::EnableScrollingEffect(bool enable)
186 {
187         GetPresenter().EnableScrollingEffect(enable);
188 }
189
190 bool
191 _Scroll::IsEnabledScrollingEffect(void) const
192 {
193         return GetPresenter().IsEnabledScrollingEffect();
194 }
195
196 void
197 _Scroll::EnableOverScrollingEffect(bool enable)
198 {
199         GetPresenter().EnableOverScrollingEffect(enable);
200 }
201
202 bool
203 _Scroll::IsEnabledOverScrollingEffect(void) const
204 {
205         return GetPresenter().IsEnabledOverScrollingEffect();
206 }
207
208 void
209 _Scroll::SetParentUsingViewport(bool useViewport)
210 {
211         GetPresenter().SetParentUsingViewport(useViewport);
212 }
213
214 bool
215 _Scroll::IsParentUsingViewport(void) const
216 {
217         return GetPresenter().IsParentUsingViewport();
218 }
219
220 result
221 _Scroll::SetScrollVisibility(bool visibility)
222 {
223         return GetPresenter().SetScrollVisibility(visibility);
224 }
225
226 bool
227 _Scroll::GetScrollVisibility(void) const
228 {
229         return GetPresenter().GetScrollVisibility();
230 }
231
232 void
233 _Scroll::CancelFadeEffect(void)
234 {
235         GetPresenter().CancelFadeEffect();
236 }
237
238 result
239 _Scroll::SetScrollingEffectVisibility(bool visibility)
240 {
241         return GetPresenter().SetScrollingEffectVisibility(visibility);
242 }
243
244 result
245 _Scroll::EnableJumpToTop(bool enable)
246 {
247         return GetPresenter().EnableJumpToTop(enable);
248 }
249
250 bool
251 _Scroll::IsEnabledJumpToTop(void) const
252 {
253         return GetPresenter().IsEnabledJumpToTop();
254 }
255
256 result
257 _Scroll::EnableHandler(bool enable)
258 {
259         return GetPresenter().EnableHandler(enable);
260 }
261
262 bool
263 _Scroll::IsEnabledHandler(void) const
264 {
265         return GetPresenter().IsEnabledHandler();
266 }
267
268 void
269 _Scroll::AddScrollEventListener(const Tizen::Ui::Controls::_IScrollEventListener& listener)
270 {
271         GetPresenter().AddScrollEventListener(listener);
272 }
273
274 void
275 _Scroll::RemoveScrollEventListener(const Tizen::Ui::Controls::_IScrollEventListener& listener)
276 {
277         GetPresenter().RemoveScrollEventListener(listener);
278 }
279
280 void
281 _Scroll::OnParentBoundsChanged(void)
282 {
283         GetPresenter().OnParentBoundsChanged();
284 }
285
286 void
287 _Scroll::OnDraw(void)
288 {
289         GetPresenter().OnDraw();
290 }
291
292 bool
293 _Scroll::OnTouchPressed(const _Control& source, const _TouchInfo& touchinfo)
294 {
295         return GetPresenter().OnTouchPressed(source, touchinfo);
296 }
297
298 bool
299 _Scroll::OnTouchReleased(const _Control& source, const _TouchInfo& touchinfo)
300 {
301         return GetPresenter().OnTouchReleased(source, touchinfo);
302 }
303
304 bool
305 _Scroll::OnTouchMoved(const _Control& source, const _TouchInfo& touchinfo)
306 {
307         return GetPresenter().OnTouchMoved(source, touchinfo);
308 }
309
310 void
311 _Scroll::OnTouchMoveHandled(const _Control& control)
312 {
313         return GetPresenter().OnTouchMoveHandled(control);
314 }
315
316 HitTestResult
317 _Scroll::HitTest(const Tizen::Graphics::FloatPoint& point)
318 {
319         return GetPresenter().HitTest(point);
320 }
321
322 }}} // Tizen::Ui::Controls