X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Ftext-controller-impl.cpp;h=7fac661a11d8a1495e334cfb3c8dc7d43e781574;hp=47877c487090e25e61bd10a3b0e29bcc35f56d85;hb=aa6d5ffc76e7c5ad6785a4a426b9b6ba2ef4d99b;hpb=144dda05c357f536307dc5802dbf5c26cee53c33 diff --git a/dali-toolkit/internal/text/text-controller-impl.cpp b/dali-toolkit/internal/text/text-controller-impl.cpp index 47877c4..7fac661 100644 --- a/dali-toolkit/internal/text/text-controller-impl.cpp +++ b/dali-toolkit/internal/text/text-controller-impl.cpp @@ -1581,6 +1581,43 @@ void Controller::Impl::ScrollBy(Vector2 scroll) } } +bool Controller::Impl::IsScrollable(const Vector2& displacement) +{ + bool isScrollable = false; + if(mEventData) + { + const bool isHorizontalScrollEnabled = mEventData->mDecorator->IsHorizontalScrollEnabled(); + const bool isVerticalScrollEnabled = mEventData->mDecorator->IsVerticalScrollEnabled(); + if(isHorizontalScrollEnabled ||isVerticalScrollEnabled) + { + const Vector2& targetSize = mModel->mVisualModel->mControlSize; + const Vector2& layoutSize = mModel->mVisualModel->GetLayoutSize(); + const Vector2& scrollPosition = mModel->mScrollPosition; + + if(isHorizontalScrollEnabled) + { + const float displacementX = displacement.x; + const float positionX = scrollPosition.x + displacementX; + if(layoutSize.width > targetSize.width && -positionX > 0.f && -positionX < layoutSize.width - targetSize.width) + { + isScrollable = true; + } + } + + if(isVerticalScrollEnabled) + { + const float displacementY = displacement.y; + const float positionY = scrollPosition.y + displacementY; + if(layoutSize.height > targetSize.height && -positionY > 0 && -positionY < layoutSize.height - targetSize.height) + { + isScrollable = true; + } + } + } + } + return isScrollable; +} + float Controller::Impl::GetHorizontalScrollPosition() { // Scroll values are negative internally so we convert them to positive numbers