+void ScrollBar::SetIndicatorHeightPolicy( Toolkit::ScrollBar::IndicatorHeightPolicy policy )
+{
+ mIndicatorHeightPolicy = policy;
+ ApplyConstraints();
+}
+
+Toolkit::ScrollBar::IndicatorHeightPolicy ScrollBar::GetIndicatorHeightPolicy()
+{
+ return mIndicatorHeightPolicy;
+}
+
+void ScrollBar::SetIndicatorFixedHeight( float height )
+{
+ mIndicatorFixedHeight = height;
+ ApplyConstraints();
+}
+
+float ScrollBar::GetIndicatorFixedHeight()
+{
+ return mIndicatorFixedHeight;
+}
+
+void ScrollBar::SetIndicatorShowDuration( float durationSeconds )
+{
+ mIndicatorShowDuration = durationSeconds;
+}
+
+float ScrollBar::GetIndicatorShowDuration()
+{
+ return mIndicatorShowDuration;
+}
+
+void ScrollBar::SetIndicatorHideDuration( float durationSeconds )
+{
+ mIndicatorHideDuration = durationSeconds;
+}
+
+float ScrollBar::GetIndicatorHideDuration()
+{
+ return mIndicatorHideDuration;
+}
+
+void ScrollBar::OnIndicatorHeightPolicyPropertySet( Property::Value propertyValue )
+{
+ std::string policyName( propertyValue.Get<std::string>() );
+ if(policyName == "Variable")
+ {
+ SetIndicatorHeightPolicy(Toolkit::ScrollBar::Variable);
+ }
+ else if(policyName == "Fixed")
+ {
+ SetIndicatorHeightPolicy(Toolkit::ScrollBar::Fixed);
+ }
+ else
+ {
+ DALI_ASSERT_ALWAYS( !"ScrollBar::OnIndicatorHeightPolicyPropertySet(). Invalid Property value." );
+ }
+}
+
+bool ScrollBar::DoConnectSignal( BaseObject* object, ConnectionTrackerInterface* tracker, const std::string& signalName, FunctorDelegate* functor )
+{
+ Dali::BaseHandle handle( object );
+
+ bool connected( true );
+ Toolkit::ScrollBar scrollBar = Toolkit::ScrollBar::DownCast( handle );
+
+ if( 0 == strcmp( signalName.c_str(), SCROLL_POSITION_NOTIFIED_SIGNAL ) )
+ {
+ scrollBar.ScrollPositionNotifiedSignal().Connect( tracker, functor );
+ }
+ else
+ {
+ // signalName does not match any signal
+ connected = false;
+ }
+
+ return connected;
+}
+
+void ScrollBar::SetProperty( BaseObject* object, Property::Index index, const Property::Value& value )
+{
+ Toolkit::ScrollBar scrollBar = Toolkit::ScrollBar::DownCast( Dali::BaseHandle( object ) );
+
+ if( scrollBar )
+ {
+ ScrollBar& scrollBarImpl( GetImpl( scrollBar ) );
+ switch( index )
+ {
+ case Toolkit::ScrollBar::Property::INDICATOR_HEIGHT_POLICY:
+ {
+ scrollBarImpl.OnIndicatorHeightPolicyPropertySet( value );
+ break;
+ }
+ case Toolkit::ScrollBar::Property::INDICATOR_FIXED_HEIGHT:
+ {
+ scrollBarImpl.SetIndicatorFixedHeight(value.Get<float>());
+ break;
+ }
+ case Toolkit::ScrollBar::Property::INDICATOR_SHOW_DURATION:
+ {
+ scrollBarImpl.SetIndicatorShowDuration(value.Get<float>());
+ break;
+ }
+ case Toolkit::ScrollBar::Property::INDICATOR_HIDE_DURATION:
+ {
+ scrollBarImpl.SetIndicatorHideDuration(value.Get<float>());
+ break;
+ }
+ }
+ }
+}
+
+Property::Value ScrollBar::GetProperty( BaseObject* object, Property::Index index )
+{
+ Property::Value value;
+
+ Toolkit::ScrollBar scrollBar = Toolkit::ScrollBar::DownCast( Dali::BaseHandle( object ) );
+
+ if( scrollBar )
+ {
+ ScrollBar& scrollBarImpl( GetImpl( scrollBar ) );
+ switch( index )
+ {
+ case Toolkit::ScrollBar::Property::INDICATOR_HEIGHT_POLICY:
+ {
+ value = INDICATOR_HEIGHT_POLICY_NAME[ scrollBarImpl.GetIndicatorHeightPolicy() ];
+ break;
+ }
+ case Toolkit::ScrollBar::Property::INDICATOR_FIXED_HEIGHT:
+ {
+ value = scrollBarImpl.GetIndicatorFixedHeight();
+ break;
+ }
+ case Toolkit::ScrollBar::Property::INDICATOR_SHOW_DURATION:
+ {
+ value = scrollBarImpl.GetIndicatorShowDuration();
+ break;
+ }
+ case Toolkit::ScrollBar::Property::INDICATOR_HIDE_DURATION:
+ {
+ value = scrollBarImpl.GetIndicatorHideDuration();
+ break;
+ }
+ }
+ }
+ return value;
+}
+