+ void PerformFunctionOnVisualsInState( void(Button::*functionPtr)( Property::Index visualIndex), State state );
+
+ /**
+ * Changes the button state when an action occurs on it
+ * @param[in] requestedState the state to change to
+ */
+ void ChangeState( State requestedState );
+
+ /**
+ * @brief Get unselected button color
+ * @return color as vector4
+ */
+ const Vector4 GetUnselectedColor() const;
+
+ /**
+ * @brief Get selected button color
+ * @return color as vector4
+ */
+ const Vector4 GetSelectedColor() const;
+
+ /**
+ * Sets the color of button in selected or unselected state, if image also supplied this color will be appplied to it.
+ * If no visual exists, it is created.
+ * @param[in] color The color to use.
+ * @param[in] visualIndex The Visual to apply the color
+ */
+ void SetColor( const Vector4& color, Property::Index visualIndex );