+void Scrollable::SetProperty( BaseObject* object, Property::Index index, const Property::Value& value )
+{
+ Toolkit::Scrollable scrollable = Toolkit::Scrollable::DownCast( Dali::BaseHandle( object ) );
+
+ if( scrollable )
+ {
+ Scrollable& scrollableImpl( GetImpl( scrollable ) );
+ switch( index )
+ {
+ case Toolkit::Scrollable::Property::OVERSHOOT_EFFECT_COLOR:
+ {
+ scrollableImpl.SetOvershootEffectColor( value.Get<Vector4>() );
+ break;
+ }
+ case Toolkit::Scrollable::Property::OVERSHOOT_ANIMATION_SPEED:
+ {
+ scrollableImpl.SetOvershootAnimationSpeed( value.Get<float>() );
+ break;
+ }
+ }
+ }
+}
+
+Property::Value Scrollable::GetProperty( BaseObject* object, Property::Index index )
+{
+ Property::Value value;
+
+ Toolkit::Scrollable scrollable = Toolkit::Scrollable::DownCast( Dali::BaseHandle( object ) );
+
+ if( scrollable )
+ {
+ Scrollable& scrollableImpl( GetImpl( scrollable ) );
+ switch( index )
+ {
+ case Toolkit::Scrollable::Property::OVERSHOOT_EFFECT_COLOR:
+ {
+ value = scrollableImpl.GetOvershootEffectColor();
+ break;
+ }
+ case Toolkit::Scrollable::Property::OVERSHOOT_ANIMATION_SPEED:
+ {
+ value = scrollableImpl.GetOvershootAnimationSpeed();
+ break;
+ }
+ }
+ }
+
+ return value;
+}
+
+Toolkit::ScrollComponent Scrollable::NewScrollComponent(Toolkit::Scrollable& scrollable, Toolkit::Scrollable::ScrollComponentType type)
+{
+ Toolkit::ScrollComponent instance;
+
+ switch(type)
+ {
+ case Toolkit::Scrollable::VerticalScrollBar:
+ {
+ instance = static_cast<Toolkit::ScrollComponent>(Toolkit::ScrollBarInternal::New(scrollable, true));
+ break;
+ }
+ case Toolkit::Scrollable::HorizontalScrollBar:
+ {
+ instance = static_cast<Toolkit::ScrollComponent>(Toolkit::ScrollBarInternal::New(scrollable, false));
+ break;
+ }
+ case Toolkit::Scrollable::OvershootIndicator:
+ {
+ DALI_ASSERT_ALWAYS(!"Unrecognized component type");
+ break;
+ }
+ }
+
+ return instance;
+}
+