X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fscroll-bar%2Fscroll-bar-impl.cpp;h=d2b715fa03d773bb94d318bb1051a2289142ab8f;hp=f1573b6084c90caa72e1bda4b76185afc7f146cf;hb=4f1a814c47a80f11892a6a887cd98099a2eace09;hpb=2071317d301e9d5af326a3a2efcd2996263fbead diff --git a/dali-toolkit/internal/controls/scroll-bar/scroll-bar-impl.cpp b/dali-toolkit/internal/controls/scroll-bar/scroll-bar-impl.cpp index f1573b6..d2b715f 100755 --- a/dali-toolkit/internal/controls/scroll-bar/scroll-bar-impl.cpp +++ b/dali-toolkit/internal/controls/scroll-bar/scroll-bar-impl.cpp @@ -20,12 +20,14 @@ // EXTERNAL INCLUDES #include // for strcmp -#include #include #include +#include #include +#include #include -#include +#include + // INTERNAL INCLUDES #include @@ -173,6 +175,7 @@ ScrollBar::~ScrollBar() void ScrollBar::OnInitialize() { CreateDefaultIndicatorActor(); + Self().SetDrawMode(DrawMode::OVERLAY_2D); } void ScrollBar::SetScrollPropertySource( Handle handle, Property::Index propertyScrollPosition, Property::Index propertyMinScrollPosition, Property::Index propertyMaxScrollPosition, Property::Index propertyScrollContentSize ) @@ -215,19 +218,13 @@ void ScrollBar::SetScrollIndicator( Actor indicator ) if( indicator ) { mIndicator = indicator; + Self().Add(mIndicator); - Actor self = Self(); - self.Add(mIndicator); - self.SetDrawMode(DrawMode::OVERLAY); + EnableGestureDetection(Gesture::Type(Gesture::Pan)); - if( !mPanGestureDetector ) - { - mPanGestureDetector = PanGestureDetector::New(); - mPanGestureDetector.DetectedSignal().Connect(this, &ScrollBar::OnPan); - } - - mPanGestureDetector.DetachAll(); - mPanGestureDetector.Attach( mIndicator ); + PanGestureDetector detector( GetPanGestureDetector() ); + detector.DetachAll(); + detector.Attach( mIndicator ); unsigned int childCount = mIndicator.GetChildCount(); for ( unsigned int index = 0; index < childCount; index++ ) @@ -235,7 +232,7 @@ void ScrollBar::SetScrollIndicator( Actor indicator ) Actor child = mIndicator.GetChildAt( index ); if ( child ) { - mPanGestureDetector.Attach( child ); + detector.Attach( child ); } } } @@ -370,7 +367,7 @@ bool ScrollBar::OnPanGestureProcessTick() return true; } -void ScrollBar::OnPan( Actor source, const PanGesture& gesture ) +void ScrollBar::OnPan( const PanGesture& gesture ) { if(mScrollableObject) { @@ -437,16 +434,16 @@ void ScrollBar::OnPan( Actor source, const PanGesture& gesture ) if(itemView) { // Disable automatic refresh in ItemView during fast scrolling - GetImpl(itemView).SetRefreshEnabled(true);//!mIsPanning); + GetImpl(itemView).SetRefreshEnabled(!mIsPanning); } } } -void ScrollBar::OnControlSizeSet( const Vector3& size ) +void ScrollBar::OnSizeSet( const Vector3& size ) { if(mIndicatorHeightPolicy == Toolkit::ScrollBar::Fixed) { - mIndicator.SetSize(Self().GetCurrentSize().width, mIndicatorFixedHeight); + mIndicator.SetSize(size.width, mIndicatorFixedHeight); } } @@ -600,16 +597,19 @@ void ScrollBar::SetProperty( BaseObject* object, Property::Index index, const Pr } case Toolkit::ScrollBar::Property::SCROLL_POSITION_INTERVALS: { - Dali::Vector positions; - size_t positionCount = value.GetSize(); - positions.Resize( positionCount ); - - for( size_t i = 0; i != positionCount; ++i ) + Property::Array* array = value.GetArray(); + if( array ) { - value.GetItem(i).Get( positions[i] ); + Dali::Vector positions; + size_t positionCount = array->Count(); + positions.Resize( positionCount ); + for( size_t i = 0; i != positionCount; ++i ) + { + array->GetElementAt( i ).Get( positions[i] ); + } + + scrollBarImpl.SetScrollPositionIntervals(positions); } - - scrollBarImpl.SetScrollPositionIntervals(positions); break; } } @@ -654,12 +654,13 @@ Property::Value ScrollBar::GetProperty( BaseObject* object, Property::Index inde } case Toolkit::ScrollBar::Property::SCROLL_POSITION_INTERVALS: { - Property::Value value; + Property::Value value( Property::ARRAY ); + Property::Array* array = value.GetArray(); Dali::Vector positions = scrollBarImpl.GetScrollPositionIntervals(); - size_t positionCount( positions.Size() ); + size_t positionCount( array->Count() ); for( size_t i( 0 ); i != positionCount; ++i ) { - value.AppendItem( positions[i] ); + array->PushBack( positions[i] ); } break; }