+ /**
+ * @copydoc Dali::Toolkit::Button::SetLabelText
+ */
+ void SetLabelText( const std::string& label );
+
+ /**
+ * @copydoc Dali::Toolkit::Button::GetLabelText
+ */
+ std::string GetLabelText() const;
+
+ /**
+ * @brief Produces a Property::Map of Text properties to create a Text Visual
+ * If the label does not exist yet, it is created.
+ * The derived buttons are notified if any properties are changed.
+ * @param[in] properties A Property::Map of key-value pairs of properties to set.
+ * @param[out] properties A Property::Map of text visual properties to set.
+ */
+ void MergeLabelProperties( const Property::Map& inMap, Property::Map& outMap );
+
+ /**
+ * Performs actions as requested using the action name.
+ * @param[in] object The object on which to perform the action.
+ * @param[in] actionName The action to perform.
+ * @param[in] attributes The attributes with which to perfrom this action.
+ * @return true if action has been accepted by this control
+ */
+ static bool DoAction( BaseObject* object, const std::string& actionName, const Property::Map& attributes );
+
+public: // Deprecated API
+
+ /**
+ * @copydoc Dali::Toolkit::Button::SetLabel( Actor label )
+ */
+ void SetLabel( Actor label );
+
+ /**
+ * @deprecated Sets the unselected image with an url.
+ * @param[in] image The Actor to use.
+ */
+ void SetUnselectedImage( const std::string& filename );
+
+ /**
+ * @deprecated Sets the selected image with an url.
+ * @param[in] filename The url of the image to use to use.
+ */
+ void SetSelectedImage( const std::string& filename );
+
+ /**
+ * @deprecated Sets the selected background image with an url.
+ * @param[in] filename The url of the image to use to use.
+ */
+ void SetSelectedBackgroundImage( const std::string& filename );
+
+ /**
+ * @deprecated Sets the background image with an url.
+ * @param[in] filename The url of the image to use to use.
+ */
+ void SetBackgroundImage( const std::string& filename );
+
+ /**
+ * @deprecated Sets the disabled unselected background image with an url.
+ * @param[in] filename The url of the image to use to use.
+ */
+ void SetDisabledBackgroundImage( const std::string& filename );
+
+ /**
+ * @deprecated Sets the disabled unselected image with an url.
+ * @param[in] filename The url of the image to use to use.
+ */
+ void SetDisabledImage( const std::string& filename );
+
+ /**
+ * @deprecated Sets the disabled selected image with an url.
+ * @param[in] filename The url of the image to use to use.
+ */
+ void SetDisabledSelectedImage( const std::string& filename );
+
+ /**
+ * @deprecated Sets the unselected image with an Actor.
+ * @param[in] image The Image to use.
+ */
+ void SetButtonImage( Image image );
+
+ /**
+ * @deprecated Sets the selected image with an Actor.
+ * @param[in] image The Image to use.
+ */
+ void SetSelectedImage( Image image );
+
+ /**
+ * @Gets url of a image visual, used by GetProperty but for deprecated Properties
+ * @param[in] index Visual index of url required
+ * @return filename for the corresponding visual
+ */
+ std::string GetUrlForImageVisual( const Property::Index index ) const;
+
+ /**
+ * @copydoc Dali::Toolkit::Button::GetButtonImage
+ */
+ Actor GetButtonImage() const;
+
+ /**
+ * @copydoc Dali::Toolkit::Button::GetSelectedImage
+ */
+ Actor GetSelectedImage() const;
+
+public:
+
+ /**
+ * Button's state
+ */
+ enum State
+ {
+ UNSELECTED_STATE, ///< The button is unselected.
+ SELECTED_STATE, ///< The button is selected.
+ DISABLED_UNSELECTED_STATE, ///< The button is disabled and unselected.
+ DISABLED_SELECTED_STATE, ///< The button is disabled and selected.
+ STATE_COUNT, ///< Number of States
+ };
+
+ /**
+ * Enum to distinguish the different style-able components of the button
+ */
+ enum Visuals
+ {
+ UNSELECTED_FOREGROUND = 0,
+ SELECTED_FOREGROUND,
+ DISABLED_SELECTED_FOREGROUND,
+ DISABLED_UNSELECTED_FOREGROUND,
+ UNSELECTED_BACKGROUND,
+ SELECTED_BACKGROUND,
+ DISABLED_UNSELECTED_BACKGROUND,
+ DISABLED_SELECTED_BACKGROUND,
+ VISUALS_COUNT
+ };
+
+ /**
+ * Enum to list types of visual a state can have.
+ */
+ enum VisualState
+ {
+ BACKGROUND = 0,
+ FOREGROUND,
+ VISUAL_STATE_COUNT
+ };
+
+protected:
+
+ /**
+ * Button press state which is not the same as the actual button's state.
+ * For example An UNSELECTED button can be DEPRESSED, but until released, the actual button state doesn't change to SELECTED
+ */
+ enum PressState
+ {
+ DEPRESSED, ///< The button is up.
+ UNPRESSED, ///< The button is down.
+ TOGGLE_DEPRESSED, ///< The button has been pressed down and will stay depressed when released.
+ };
+
+ /**
+ * Construct a new Button.
+ */
+ Button();
+
+ /**
+ * A reference counted object may only be deleted by calling Unreference()
+ */
+ virtual ~Button();
+ /**
+ * @return A reference to the label actor.
+ */
+ Actor& GetLabelActor();
+
+ /**
+ * @return A reference to the unselected button image.
+ */
+ Actor GetUnselectedImage();
+
+ /**
+ * @return A reference to the selected image.
+ */
+ Actor GetSelectedImage();
+