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_ScrollPanel.cpp
20 * @brief This is the implementation file for the %_ScrollPanel class.
24 #include <FBaseErrorDefine.h>
25 #include <FBaseSysLog.h>
26 #include <FUiIScrollPanelEventListener.h>
27 #include <FUiAnimVisualElementAnimation.h>
28 #include <FUiAnimVisualElementValueAnimation.h>
29 #include "FUiAnim_VisualElement.h"
30 #include "FUi_TouchFlickGestureDetector.h"
31 #include "FUiCtrl_UiScrollEvent.h"
32 #include "FUiCtrl_UiScrollEventArg.h"
33 #include "FUiCtrl_Scroll.h"
34 #include "FUiCtrl_ScrollPanelPresenter.h"
35 #include "FUiCtrl_ScrollPanel.h"
37 using namespace Tizen::Base;
38 using namespace Tizen::Graphics;
39 using namespace Tizen::Ui::Animations;
43 const int SCROLL_PANEL_ANIMATION_DEFAULT_REPEAT_COUNT = 1;
46 namespace Tizen { namespace Ui { namespace Controls
48 _ScrollPanel::_ScrollPanel(void)
50 , __pScrollPanelPresenter(null)
51 , __pScrollEvent(null)
52 , __pCoreScrollPanelEvent(null)
53 , __pGestureFlick(null)
54 , __pKeyPadBindingControl(null)
55 , __scrollDirection(SCROLL_PANEL_SCROLL_DIRECTION_VERTICAL)
56 , __scrollInputMode(SCROLL_INPUT_MODE_ALLOW_ANY_DIRECTION)
57 , __autoResizingEnable(true)
58 , __pageScrollEnabled(false)
59 , __pageScrollAlignSize(Dimension(0, 0))
60 , __pageScrollMoveOnlyOnePageOnFlick(true)
61 , __scrollBarVisible(true)
62 , __pHorizontalScrollBar(null)
63 , __pVerticalScrollBar(null)
64 , __pScrollingAnimation(null)
65 , __fixingClientBoundsEnable(true)
71 _ScrollPanel::~_ScrollPanel(void)
73 _ControlManager* pControlManager = _ControlManager::GetInstance();
74 SysTryReturnVoidResult(NID_UI_CTRL, pControlManager, E_SYSTEM, "[%s] System error occurred.", GetErrorMessage(E_SYSTEM));
76 if (GetVisualElement() != null)
78 __pScrollingAnimation->SetVisualElementAnimationTickEventListener(null);
79 __pScrollingAnimation->SetVisualElementAnimationStatusEventListener(null);
80 GetVisualElement()->RemoveAllAnimations();
83 if (__pGestureFlick != null)
85 __pGestureFlick->RemoveGestureListener(*this);
86 pControlManager->RemoveGestureDetector(*__pGestureFlick);
87 RemoveGestureDetector(*__pGestureFlick);
88 delete __pGestureFlick;
89 __pGestureFlick = null;
92 delete __pScrollEvent;
93 __pScrollEvent = null;
95 if (__pVerticalScrollBar != null && IsAncestorOf(*__pVerticalScrollBar))
97 DetachSystemChild(*__pVerticalScrollBar);
99 delete __pVerticalScrollBar;
100 __pVerticalScrollBar = null;
102 if (__pHorizontalScrollBar != null && IsAncestorOf(*__pHorizontalScrollBar))
104 DetachSystemChild(*__pHorizontalScrollBar);
106 delete __pHorizontalScrollBar;
107 __pHorizontalScrollBar = null;
109 delete __pScrollingAnimation;
110 __pScrollingAnimation = null;
112 _Panel::SetPanelPresenter(null);
113 delete __pScrollPanelPresenter;
114 __pScrollPanelPresenter = null;
118 _ScrollPanel::CreateScrollPanelN(const Rectangle& rect, ScrollPanelScrollDirection scrollDirection, bool autoResizingEnable, bool pageScrollEnabled)
121 result r = E_SUCCESS;
123 _Scroll* pHorizontalScrollBar = null;
124 _Scroll* pVerticalScrollBar = null;
126 Rectangle areaBounds = const_cast<Rectangle&>(rect);
128 _ScrollPanel* pScrollPanel = new (std::nothrow) _ScrollPanel;
129 SysTryReturn(NID_UI_CTRL, pScrollPanel != null, null, E_OUT_OF_MEMORY, "[%s] The memory is insufficient.", GetErrorMessage(E_OUT_OF_MEMORY));
131 pScrollPanel->SetScrollDirection(scrollDirection);
132 pScrollPanel->SetScrollAreaAutoResizingEnabled(autoResizingEnable);
133 pScrollPanel->SetPageScrollEnabled(pageScrollEnabled);
135 _ScrollPanelPresenter* pPresenter = new (std::nothrow) _ScrollPanelPresenter;
136 SysTryCatch(NID_UI_CTRL, pPresenter != null, r = E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[%s] The memory is insufficient.", GetErrorMessage(E_OUT_OF_MEMORY));
138 r = pPresenter->Initialize(*pScrollPanel);
139 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
141 r = pScrollPanel->Initialize(*pPresenter);
142 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
144 pPresenter->SetScrollAreaBoundsInternal(areaBounds);
146 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
148 if (scrollDirection == SCROLL_PANEL_SCROLL_DIRECTION_VERTICAL && rect.height > 0)
150 pVerticalScrollBar = _Scroll::CreateScrollN(*pScrollPanel,
151 SCROLL_DIRECTION_VERTICAL,
160 SysTryCatch(NID_UI_CTRL, r ==E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
162 pVerticalScrollBar->EnableScrollingEffect(true);
164 pVerticalScrollBar->AddScrollEventListener(*pScrollPanel);
166 SysTryCatch(NID_UI_CTRL, r ==E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
168 r = pScrollPanel->AttachSystemChild(*pVerticalScrollBar);
169 SysTryCatch(NID_UI_CTRL, r ==E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
171 pScrollPanel->SetVerticalScrollBar(pVerticalScrollBar);
174 if (scrollDirection == SCROLL_PANEL_SCROLL_DIRECTION_HORIZONTAL && rect.width > 0)
176 pHorizontalScrollBar = _Scroll::CreateScrollN(*pScrollPanel,
177 SCROLL_DIRECTION_HORIZONTAL,
186 SysTryCatch(NID_UI_CTRL, r ==E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
188 pHorizontalScrollBar->EnableScrollingEffect(true);
190 pHorizontalScrollBar->AddScrollEventListener(*pScrollPanel);
192 SysTryCatch(NID_UI_CTRL, r ==E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
194 r = pScrollPanel->AttachSystemChild(*pHorizontalScrollBar);
195 SysTryCatch(NID_UI_CTRL, r ==E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
197 pScrollPanel->SetHorizontalScrollBar(pHorizontalScrollBar);
203 if (pHorizontalScrollBar != null && pScrollPanel->IsAncestorOf(*pHorizontalScrollBar))
205 pScrollPanel->DetachSystemChild(*pHorizontalScrollBar);
207 delete pHorizontalScrollBar;
208 pScrollPanel->__pHorizontalScrollBar = null;
210 if (pVerticalScrollBar != null && pScrollPanel->IsAncestorOf(*pVerticalScrollBar))
212 pScrollPanel->DetachSystemChild(*pVerticalScrollBar);
214 delete pVerticalScrollBar;
215 pScrollPanel->__pVerticalScrollBar = null;
218 pScrollPanel->__pScrollPanelPresenter = null;
227 _ScrollPanel::Initialize(const _ScrollPanelPresenter& presenter)
231 result r = _Panel::Initialize(presenter);
232 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
234 SetScrollPanelPresenter(&presenter);
236 __pScrollingAnimation = new (std::nothrow) VisualElementValueAnimation;
237 SysTryReturn(NID_UI_CTRL, __pScrollingAnimation != null, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[%s] The memory is insufficient.", GetErrorMessage(E_OUT_OF_MEMORY));
239 __pScrollingAnimation->SetRepeatCount(SCROLL_PANEL_ANIMATION_DEFAULT_REPEAT_COUNT);
240 __pScrollingAnimation->SetTimingFunction(VisualElementAnimation::GetTimingFunctionByName("EaseOut"));
242 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
244 __pScrollingAnimation->SetVisualElementAnimationTickEventListener(this);
246 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
248 __pScrollingAnimation->SetVisualElementAnimationStatusEventListener(this);
250 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
252 __pGestureFlick = new (std::nothrow) _TouchFlickGestureDetector;
253 SysTryCatch(NID_UI_CTRL, __pGestureFlick != null, , E_OUT_OF_MEMORY, "[%s] The memory is insufficient.", GetErrorMessage(E_OUT_OF_MEMORY));
255 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
259 r = AddGestureDetector(*__pGestureFlick);
260 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
262 r = __pGestureFlick->AddGestureListener(*this);
263 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
268 delete __pGestureFlick;
269 __pGestureFlick = null;
271 delete __pScrollingAnimation;
272 __pScrollingAnimation = null;
279 _ScrollPanel::SetScrollPanelPresenter(const _ScrollPanelPresenter* presenter)
283 _Panel::SetPanelPresenter(presenter);
284 __pScrollPanelPresenter = const_cast <_ScrollPanelPresenter*>(presenter);
290 _ScrollPanel::OnDraw(void)
294 if (__pScrollPanelPresenter == null)
299 result r = __pScrollPanelPresenter->Draw();
300 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
304 _ScrollPanel::OnBoundsChanging(const Tizen::Graphics::Rectangle& bounds)
308 return __pScrollPanelPresenter->OnBoundsChanging(bounds);
312 _ScrollPanel::OnBoundsChanged(void)
316 if (__pScrollPanelPresenter == null)
321 __pScrollPanelPresenter->OnBoundsChanged();
325 _ScrollPanel::OnChildAttached(const _Control& child)
329 if (__pScrollPanelPresenter == null)
334 __pScrollPanelPresenter->OnChildAttached(child);
338 _ScrollPanel::OnChildDetached(const _Control& child)
342 if (__pScrollPanelPresenter == null)
347 __pScrollPanelPresenter->OnChildDetached(child);
351 _ScrollPanel::OnChildBoundsChanged(const _Control& child)
355 if (__pScrollPanelPresenter == null)
360 __pScrollPanelPresenter->OnChildBoundsChanged(child);
364 _ScrollPanel::OnFlickGestureDetected(_TouchFlickGestureDetector& gesture)
368 return __pScrollPanelPresenter->OnFlickGestureDetected(gesture);
372 _ScrollPanel::OnFlickGestureCanceled(_TouchFlickGestureDetector& gesture)
376 return __pScrollPanelPresenter->OnFlickGestureCanceled(gesture);
380 _ScrollPanel::OnAccessibilityFocusMovedNext(const _AccessibilityContainer& control, const _AccessibilityElement& element)
384 return __pScrollPanelPresenter->OnAccessibilityFocusMovedNext(control, element);
388 _ScrollPanel::OnAccessibilityFocusMovedPrevious(const _AccessibilityContainer& control, const _AccessibilityElement& element)
392 return __pScrollPanelPresenter->OnAccessibilityFocusMovedPrevious(control, element);
396 _ScrollPanel::OnAccessibilityReadElement(const _AccessibilityContainer& control, const _AccessibilityElement& element)
400 return __pScrollPanelPresenter->OnAccessibilityReadElement(control, element);
404 _ScrollPanel::OnAccessibilityFocusIn(const _AccessibilityContainer& control, const _AccessibilityElement& element)
408 return __pScrollPanelPresenter->OnAccessibilityFocusIn(control, element);
412 _ScrollPanel::OnAccessibilityFocusOut(const _AccessibilityContainer& control, const _AccessibilityElement& element)
416 return __pScrollPanelPresenter->OnAccessibilityFocusOut(control, element);
420 _ScrollPanel::OnAccessibilityActionPerformed(const _AccessibilityContainer& control, const _AccessibilityElement& element)
424 return __pScrollPanelPresenter->OnAccessibilityActionPerformed(control, element);
427 _ScrollPanel::OnAccessibilityValueIncreased(const _AccessibilityContainer& control, const _AccessibilityElement& element)
432 _ScrollPanel::OnAccessibilityValueDecreased(const _AccessibilityContainer& control, const _AccessibilityElement& element)
436 _UiTouchEventDelivery
437 _ScrollPanel::OnPreviewTouchPressed(const _Control& source, const _TouchInfo& touchinfo)
441 return __pScrollPanelPresenter->OnPreviewTouchPressed(source, touchinfo);
444 _UiTouchEventDelivery
445 _ScrollPanel::OnPreviewTouchMoved(const _Control& source, const _TouchInfo& touchinfo)
449 return __pScrollPanelPresenter->OnPreviewTouchMoved(source, touchinfo);
452 _UiTouchEventDelivery
453 _ScrollPanel::OnPreviewTouchReleased(const _Control& source, const _TouchInfo& touchinfo)
457 return __pScrollPanelPresenter->OnPreviewTouchReleased(source, touchinfo);
460 _UiTouchEventDelivery
461 _ScrollPanel::OnPreviewTouchCanceled(const _Control& source, const _TouchInfo& touchinfo)
465 return __pScrollPanelPresenter->OnPreviewTouchCanceled(source, touchinfo);
469 _ScrollPanel::OnTouchPressed(const _Control& source, const _TouchInfo& touchinfo)
473 return __pScrollPanelPresenter->OnTouchPressed(source, touchinfo);
477 _ScrollPanel::OnTouchMoved(const _Control& source, const _TouchInfo& touchinfo)
481 return __pScrollPanelPresenter->OnTouchMoved(source, touchinfo);
485 _ScrollPanel::OnTouchReleased(const _Control& source, const _TouchInfo& touchinfo)
489 return __pScrollPanelPresenter->OnTouchReleased(source, touchinfo);
493 _ScrollPanel::OnTouchCanceled(const _Control& source, const _TouchInfo& touchinfo)
497 return __pScrollPanelPresenter->OnTouchCanceled(source, touchinfo);
501 _ScrollPanel::OnTouchMoveHandled(const _Control& control)
505 return __pScrollPanelPresenter->OnTouchMoveHandled(control);
509 _ScrollPanel::OnScrollEndReached(_Control& source, ScrollEndEvent type)
513 __pScrollPanelPresenter->OnScrollEndReached(source, type);
517 _ScrollPanel::OnScrollPositionChanged(_Control& source, int scrollPos)
521 __pScrollPanelPresenter->OnScrollPositionChanged(source, scrollPos);
525 _ScrollPanel::OnVisualElementAnimationStarted(const VisualElementAnimation& animation, const String& keyName, VisualElement& target)
529 if (__pScrollPanelPresenter == null)
534 __pScrollPanelPresenter->OnVisualElementAnimationStarted(animation, keyName, target);
538 _ScrollPanel::OnVisualElementAnimationRepeated(const VisualElementAnimation& animation, const String& keyName, VisualElement& target, long currentRepeatCount)
542 if (__pScrollPanelPresenter == null)
547 __pScrollPanelPresenter->OnVisualElementAnimationRepeated(animation, keyName, target, currentRepeatCount);
551 _ScrollPanel::OnVisualElementAnimationFinished(const VisualElementAnimation& animation, const String& keyName, VisualElement& target, bool completedNormally)
555 if (__pScrollPanelPresenter == null)
560 __pScrollPanelPresenter->OnVisualElementAnimationFinished(animation, keyName, target, completedNormally);
564 _ScrollPanel::OnTickOccurred(const VisualElementAnimation& animation, const String& keyName, VisualElement& target, const Variant& currentValue)
568 __pScrollPanelPresenter->OnTickOccurred(animation, keyName, target, currentValue);
572 _ScrollPanel::IsScrollAreaAutoResizingEnabled(void) const
576 return __autoResizingEnable;
580 _ScrollPanel::SetScrollAreaAutoResizingEnabled(bool autoResizingEnable)
584 __autoResizingEnable = autoResizingEnable;
588 _ScrollPanel::GetScrollAreaBounds(void) const
592 return __pScrollPanelPresenter->GetScrollAreaBounds();
596 _ScrollPanel::SetClientAreaHeight(int height)
600 return __pScrollPanelPresenter->SetClientAreaHeight(height);
604 _ScrollPanel::SetClientAreaWidth(int width)
608 return __pScrollPanelPresenter->SetClientAreaWidth(width);
612 _ScrollPanel::SetScrollAreaBounds(Rectangle& bounds)
616 return __pScrollPanelPresenter->SetScrollAreaBounds(bounds);
620 _ScrollPanel::IsPageScrollEnabled(void) const
624 return __pageScrollEnabled;
628 _ScrollPanel::SetPageScrollEnabled(bool enable)
632 __pageScrollEnabled = enable;
636 _ScrollPanel::GetPageScrollAlignSize(void) const
640 return __pageScrollAlignSize;
644 _ScrollPanel::SetPageScrollAlignSize(Dimension size)
648 __pageScrollAlignSize = size;
652 _ScrollPanel::IsPageScrollFlickMoveLimitedOnePage(void) const
654 return __pageScrollMoveOnlyOnePageOnFlick;
658 _ScrollPanel::SetScrollPosition(int position, bool withAnimation)
662 __pScrollPanelPresenter->SetScrollPosition(position, withAnimation);
666 _ScrollPanel::GetScrollPosition(void) const
670 return __pScrollPanelPresenter->GetScrollPosition();
674 _ScrollPanel::GetVerticalScrollPosition(void) const
678 return __pScrollPanelPresenter->GetVerticalScrollPosition();
682 _ScrollPanel::SetVerticalScrollPosition(int position)
686 __pScrollPanelPresenter->SetVerticalScrollPosition(position);
690 _ScrollPanel::GetHorizontalScrollPosition(void) const
694 return __pScrollPanelPresenter->GetHorizontalScrollPosition();
698 _ScrollPanel::SetHorizontalScrollPosition(int position)
702 __pScrollPanelPresenter->SetHorizontalScrollPosition(position);
706 _ScrollPanel::ScrollToControl(const _Control& source)
710 return __pScrollPanelPresenter->ScrollToControl(source);
714 _ScrollPanel::ScrollToTop(void) const
718 __pScrollPanelPresenter->ScrollToTop();
722 _ScrollPanel::ScrollToBottom(void) const
726 __pScrollPanelPresenter->ScrollToBottom();
730 _ScrollPanel::ScrollToLeft(void) const
734 __pScrollPanelPresenter->ScrollToLeft();
738 _ScrollPanel::ScrollToRight(void) const
742 __pScrollPanelPresenter->ScrollToRight();
746 _ScrollPanel::AddScrollEventListener(const _IScrollEventListener& listener)
749 result r = E_SUCCESS;
751 if (__pScrollEvent == null)
753 // Create scroll event
754 __pScrollEvent = new (std::nothrow) _UiScrollEvent;
755 SysTryReturnVoidResult(NID_UI_CTRL, __pScrollEvent != null, E_OUT_OF_MEMORY, "[%s] The memory is insufficient.", GetErrorMessage(E_OUT_OF_MEMORY));
757 r = __pScrollEvent->Construct(*this);
758 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
761 r = __pScrollEvent->AddListener((const Tizen::Base::Runtime::IEventListener &)listener);
762 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
766 _ScrollPanel::RemoveScrollEventListener(const _IScrollEventListener& listener)
769 SysTryReturnVoidResult(NID_UI_CTRL, __pScrollEvent != null, E_SYSTEM, "[%s] __pScrollEvent is invalid pointer.", GetErrorMessage(E_SYSTEM));
771 result r = __pScrollEvent->RemoveListener((const Tizen::Base::Runtime::IEventListener &)listener);
772 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
776 _ScrollPanel::SetScrollPanelEvent(const _ScrollPanelEvent* pScrollPanelEvent)
780 __pCoreScrollPanelEvent = const_cast<_ScrollPanelEvent*>(pScrollPanelEvent);
784 _ScrollPanel::GetScrollPanelEvent(void) const
788 return __pCoreScrollPanelEvent;
792 _ScrollPanel::GetControlKeypadBinding(void) const
796 return __pKeyPadBindingControl;
800 _ScrollPanel::SetControlKeypadBinding(const _Control* pControl)
804 // pControl can be null
805 __pKeyPadBindingControl = pControl;
808 ScrollPanelScrollDirection
809 _ScrollPanel::GetScrollDirection(void) const
813 return __scrollDirection;
817 _ScrollPanel::SetScrollDirection(ScrollPanelScrollDirection direction)
821 __scrollDirection = direction;
825 _ScrollPanel::GetScrollInputMode(void) const
829 return __scrollInputMode;
833 _ScrollPanel::SetScrollInputMode(ScrollInputMode mode)
837 __scrollInputMode = mode;
841 _ScrollPanel::IsScrollBarVisible(void) const
845 return __scrollBarVisible;
849 _ScrollPanel::SetScrollBarVisible(bool scrollBarVisible)
853 __scrollBarVisible = scrollBarVisible;
857 _ScrollPanel::GetScrollBar(void) const
861 ScrollPanelScrollDirection direction = GetScrollDirection();
862 if (direction == SCROLL_PANEL_SCROLL_DIRECTION_HORIZONTAL)
864 return GetHorizontalScrollBar();
868 return GetVerticalScrollBar();
872 _ScrollPanel::SetScrollBar(const _Scroll* pScrollBar)
876 ScrollPanelScrollDirection direction = GetScrollDirection();
877 if (direction == SCROLL_PANEL_SCROLL_DIRECTION_HORIZONTAL)
879 SetHorizontalScrollBar(pScrollBar);
883 SetVerticalScrollBar(pScrollBar);
888 _ScrollPanel::GetVerticalScrollBar(void) const
892 return __pVerticalScrollBar;
896 _ScrollPanel::SetVerticalScrollBar(const _Scroll* pVerticalScrollBar)
900 __pVerticalScrollBar = const_cast<_Scroll*>(pVerticalScrollBar);
904 _ScrollPanel::GetHorizontalScrollBar(void) const
908 return __pHorizontalScrollBar;
912 _ScrollPanel::SetHorizontalScrollBar(const _Scroll* pHorizontalScrollBar)
916 __pHorizontalScrollBar = const_cast<_Scroll*>(pHorizontalScrollBar);
920 _ScrollPanel::IsFixingClientBoundsEnable(void) const
922 return __fixingClientBoundsEnable;
926 _ScrollPanel::SetFixingClientBoundsEnable(bool enable)
928 __fixingClientBoundsEnable = enable;
932 _ScrollPanel::FireOnScrollEndEvent(ScrollEndEvent scrollEndEventType)
936 if (__pScrollEvent == null)
941 _UiScrollEventArg* pEventArg = _UiScrollEventArg::GetScrollEventArgN(*this, scrollEndEventType);
942 result r = GetLastResult();
943 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
945 __pScrollEvent->Fire(*pEventArg);
955 _ScrollPanel::FireOnScrollPositionChangedEvent(void)
959 return FireOnScrollPositionChangedEvent(__pScrollPanelPresenter->GetScrollPosition());
963 _ScrollPanel::FireOnScrollPositionChangedEvent(int scrollPosition)
967 if (__pScrollEvent == null)
972 _UiScrollEventArg* pEventArg = _UiScrollEventArg::GetScrollEventArgN(*this, scrollPosition);
973 result r = GetLastResult();
974 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
976 __pScrollEvent->Fire(*pEventArg);
986 _ScrollPanel::FireOnScrollStoppedEvent(void)
990 if (__pScrollEvent == null)
995 _UiScrollEventArg* pEventArg = _UiScrollEventArg::GetScrollEventArgN(*this);
996 result r = GetLastResult();
997 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
999 __pScrollEvent->Fire(*pEventArg);
1008 VisualElementValueAnimation*
1009 _ScrollPanel::GetScrollingAnimation(void) const
1013 return __pScrollingAnimation;
1017 _ScrollPanel::FireScrollPanelEvent(const _Control& source, CoreScrollPanelStatus scrollPanelStatus)
1021 if (GetControlKeypadBinding() != &source)
1023 if (__pCoreScrollPanelEvent != null)
1025 Tizen::Base::Runtime::IEventArg* pEventArg = _ScrollPanelEvent::CreateScrollPanelEventArgN(scrollPanelStatus);
1026 result r = GetLastResult();
1027 SysTryReturn(NID_UI_CTRL, pEventArg != null, r, r, "[%s] Propagating.", GetErrorMessage(r));
1029 __pCoreScrollPanelEvent->Fire(*pEventArg);
1036 }}} // Tizen::Ui::Controls