+ case Toolkit::Slider::Property::VALUE:
+ {
+ sliderImpl.SetValue( value.Get< float >() );
+ break;
+ }
+
+ case Toolkit::Slider::Property::TRACK_VISUAL:
+ {
+ Property::Map map;
+ if( value.Get( map ) )
+ {
+ sliderImpl.SetTrackVisual( map );
+ }
+ break;
+ }
+
+ case Toolkit::Slider::Property::HANDLE_VISUAL:
+ {
+ Property::Map map;
+ if( value.Get( map ) )
+ {
+ sliderImpl.SetHandleVisual( map );
+ }
+ break;
+ }
+
+ case Toolkit::Slider::Property::PROGRESS_VISUAL:
+ {
+ Property::Map map;
+ if( value.Get( map ) )
+ {
+ sliderImpl.SetProgressVisual( map );
+ }
+ break;
+ }
+
+ case Toolkit::Slider::Property::POPUP_VISUAL:
+ {
+ std::string imageUrl;
+ if( value.Get( imageUrl ) )
+ {
+ sliderImpl.SetPopupVisual( imageUrl );
+ }
+
+ // If it is not a string, then get a Property::Map from the property if possible.
+ Property::Map map;
+ if( value.Get( map ) )
+ {
+ sliderImpl.SetPopupVisual( map );
+ }
+
+ break;
+ }
+
+ case Toolkit::Slider::Property::POPUP_ARROW_VISUAL:
+ {
+ Property::Map map;
+ if( value.Get( map ) )
+ {
+ sliderImpl.SetPopupArrowVisual( map );
+ }
+ break;
+ }
+
+ case Toolkit::Slider::Property::DISABLED_COLOR:
+ {
+ sliderImpl.SetDisabledColor( value.Get< Vector4 >() );
+ break;
+ }
+
+ case Toolkit::Slider::Property::VALUE_PRECISION:
+ {
+ sliderImpl.SetValuePrecision( value.Get< int >() );
+ break;
+ }
+
+ case Toolkit::Slider::Property::SHOW_POPUP:
+ {
+ sliderImpl.SetShowPopup( value.Get< bool >() );
+ break;
+ }
+
+ case Toolkit::Slider::Property::SHOW_VALUE:
+ {
+ sliderImpl.SetShowValue( value.Get< bool >() );
+ break;
+ }
+
+ case Toolkit::Slider::Property::MARKS:
+ {
+ sliderImpl.SetMarks( value.Get< Property::Array >() );
+ break;
+ }
+
+ case Toolkit::Slider::Property::SNAP_TO_MARKS:
+ {
+ sliderImpl.SetSnapToMarks( value.Get< bool >() );
+ break;
+ }
+
+ case Toolkit::Slider::Property::MARK_TOLERANCE:
+ {
+ sliderImpl.SetMarkTolerance( value.Get< float >() );
+ break;
+ }
+ }
+ }
+}
+
+Property::Value Slider::GetProperty( BaseObject* object, Property::Index propertyIndex )
+{
+ Property::Value value;
+
+ Toolkit::Slider slider = Toolkit::Slider::DownCast( Dali::BaseHandle( object ) );
+
+ if ( slider )
+ {
+ Slider& sliderImpl( GetImpl( slider ) );
+
+ switch ( propertyIndex )
+ {
+ case Toolkit::Slider::Property::LOWER_BOUND:
+ {
+ value = sliderImpl.GetLowerBound();
+ break;
+ }
+
+ case Toolkit::Slider::Property::UPPER_BOUND:
+ {
+ value = sliderImpl.GetUpperBound();
+ break;
+ }
+
+ case Toolkit::Slider::Property::VALUE:
+ {
+ value = sliderImpl.GetValue();
+ break;
+ }
+
+ case Toolkit::Slider::Property::TRACK_VISUAL:
+ {
+ if( !sliderImpl.mTrackVisual.empty() )
+ {
+ value = sliderImpl.GetTrackVisual();
+ }
+ else if( !sliderImpl.mTrackMap.Empty() )
+ {
+ value = sliderImpl.mTrackMap;
+ }
+ break;
+ }
+
+ case Toolkit::Slider::Property::HANDLE_VISUAL:
+ {
+ if( !sliderImpl.mHandleVisual.empty() )
+ {
+ value = sliderImpl.GetHandleVisual();
+ }
+ else if( !sliderImpl.mHandleMap.Empty() )
+ {
+ value = sliderImpl.mHandleMap;
+ }
+ break;
+ }
+
+ case Toolkit::Slider::Property::PROGRESS_VISUAL:
+ {
+ if( !sliderImpl.mProgressVisual.empty() )
+ {
+ value = sliderImpl.GetProgressVisual();
+ }
+ else if( !sliderImpl.mProgressMap.Empty() )
+ {
+ value = sliderImpl.mProgressMap;
+ }
+ break;
+ }
+
+ case Toolkit::Slider::Property::POPUP_VISUAL:
+ {
+ if( !sliderImpl.mPopupVisual.empty() )
+ {
+ value = sliderImpl.GetPopupVisual();
+ }
+ else if( !sliderImpl.mPopupMap.Empty() )
+ {
+ value = sliderImpl.mPopupMap;
+ }
+ break;
+ }
+
+ case Toolkit::Slider::Property::POPUP_ARROW_VISUAL:
+ {
+ if( !sliderImpl.mPopupArrowVisual.empty() )
+ {
+ value = sliderImpl.GetPopupArrowVisual();
+ }
+ else if( !sliderImpl.mPopupArrowMap.Empty() )
+ {
+ value = sliderImpl.mPopupArrowMap;
+ }
+ break;
+ }
+
+ case Toolkit::Slider::Property::DISABLED_COLOR:
+ {
+ value = sliderImpl.GetDisabledColor();
+ break;
+ }
+
+ case Toolkit::Slider::Property::VALUE_PRECISION:
+ {
+ value = sliderImpl.GetValuePrecision();
+ break;
+ }
+
+ case Toolkit::Slider::Property::SHOW_POPUP:
+ {
+ value = sliderImpl.GetShowPopup();
+ break;
+ }
+
+ case Toolkit::Slider::Property::SHOW_VALUE:
+ {
+ value = sliderImpl.GetShowValue();
+ break;
+ }
+
+ case Toolkit::Slider::Property::MARKS:
+ {
+ Property::Value value1( Property::ARRAY );
+ Property::Array* markArray = value1.GetArray();
+
+ if( markArray )
+ {
+ *markArray = sliderImpl.GetMarks();
+ }
+
+ value = value1;
+ break;
+ }
+
+ case Toolkit::Slider::Property::SNAP_TO_MARKS:
+ {
+ value = sliderImpl.GetSnapToMarks();
+ break;
+ }
+
+ case Toolkit::Slider::Property::MARK_TOLERANCE:
+ {
+ value = sliderImpl.GetMarkTolerance();
+ break;
+ }