+ /**
+ * Gets currently staged renderer, or an empty handle if not staged
+ */
+ Renderer GetRenderer();
+
+ /**
+ * Sets the mix color ( including opacity ) of the visual.
+ * @param[in] mixColor The new mix color
+ */
+ void SetMixColor( const Vector4& color );
+
+ /**
+ * Sets the mix color of the visual.
+ * @param[in] mixColor The new mix color
+ */
+ void SetMixColor( const Vector3& color );
+
+ /**
+ * Gets the mix color of the visual.
+ * @return The mix color
+ */
+ const Vector4& GetMixColor() const;
+
+ /**
+ * Animate the property if it exists in the visual or renderer.
+ *
+ * If it's a visual property such as mix color or a transform property,
+ * saves the target value to the local data.
+ *
+ * If the visual isn't staged (i.e. it doesn't have a renderer),
+ * then this will not add an animation.
+ *
+ * @param[in] transition The animation to create or attach to
+ * @param[in] animator The animation parameters of the property.
+ */
+ void AnimateProperty( Dali::Animation& transition,
+ Internal::TransitionData::Animator& animator );
+
+ /**
+ * @brief Add an observer to watch for when the Visuals resources are loaded.
+ * Currently only supports a single observer
+ *
+ */
+ void AddResourceObserver( Visual::ResourceObserver& observer );
+
+ /**
+ * @brief Remove an observer
+ */
+ void RemoveResourceObserver( Visual::ResourceObserver& observer );
+
+ /**
+ * @brief Called when the visuals resources are loaded / ready
+ */
+ void ResourceReady( Toolkit::Visual::ResourceStatus resourceStatus );
+
+ /**
+ * @brief Called when the visuals resources are loaded / ready
+ * @return true if ready, false otherwise
+ */
+ virtual bool IsResourceReady() const;
+
+ /**
+ * @brief Get the loading state of the visual resource
+ * @return Return the loading status (PREPARING, READY and FAILED) of visual resource
+ */
+ Toolkit::Visual::ResourceStatus GetResourceStatus() const;
+
+ /**
+ * @brief Get the fitting mode for the visual
+ */
+ FittingMode GetFittingMode() const;
+
+ protected: