+ * @brief Retrieve the text's controller.
+ * @param[in] visual The text visual.
+ * @return The text controller
+ */
+ static Text::ControllerPtr GetController(Toolkit::Visual::Base visual)
+ {
+ return GetVisualObject(visual).mController;
+ };
+
+ /**
+ * @brief Set the index of the animatable text color property.
+ * @param[in] visual The text visual.
+ * @param[in] animatablePropertyIndex The index of the animatable property
+ */
+ static void SetAnimatableTextColorProperty(Toolkit::Visual::Base visual, Property::Index animatablePropertyIndex)
+ {
+ GetVisualObject(visual).mAnimatableTextColorPropertyIndex = animatablePropertyIndex;
+ };
+
+ /**
+ * @brief Set the flag to trigger the textures to be initialized and renderer to be added to the control.
+ * @param[in] visual The text visual.
+ */
+ static void EnableRendererUpdate(Toolkit::Visual::Base visual)
+ {
+ GetVisualObject(visual).mRendererUpdateNeeded = true;
+ };
+
+ /**
+ * @brief Set the text to be always rendered
+ * @param[in] visual The text visual.
+ * @param[in] requireRender Whether to text always rendered.
+ */
+ static void SetRequireRender(Toolkit::Visual::Base visual, bool requireRender)
+ {
+ GetVisualObject(visual).SetRequireRender(requireRender);
+ };
+
+ /**
+ * @brief Instantly updates the renderer
+ * @param[in] visual The text visual.
+ */
+ static void UpdateRenderer(Toolkit::Visual::Base visual)
+ {
+ GetVisualObject(visual).UpdateRenderer();
+ };
+
+public: // from Visual::Base
+ /**