+ virtual void OnBackgroundImageSet();
+
+ /**
+ * @copydoc Toolkit::Internal::Button::OnSelectedBackgroundImageSet()
+ */
+ virtual void OnSelectedBackgroundImageSet();
+
+ /**
+ * @copydoc Toolkit::Internal::Button::OnDisabledImageSet()
+ */
+ virtual void OnDisabledImageSet();
+
+ /**
+ * @copydoc Toolkit::Internal::Button::OnDisabledBackgroundImageSet()
+ */
+ virtual void OnDisabledBackgroundImageSet();
+
+ /**
+ * @copydoc Toolkit::Internal::Button::OnSelected()
+ */
+ virtual bool OnSelected();
+
+ /**
+ * @copydoc Toolkit::Internal::Button::OnDisabled()
+ */
+ virtual bool OnDisabled();
+
+ /**
+ * @copydoc Toolkit::Internal::Button::OnPressed()
+ */
+ virtual bool OnPressed();
+
+ /**
+ * @copydoc Toolkit::Internal::Button::OnReleased()
+ */
+ virtual bool OnReleased();
+
+ /**
+ * @copydoc Toolkit::Internal::Button::StopAllAnimations()
+ */
+ virtual void StopAllAnimations();
+
+private: // From Control
+
+ /**
+ * @copydoc Toolkit::Control::OnControlSizeSet( const Vector3& targetSize )
+ */
+ virtual void OnControlSizeSet( const Vector3& targetSize );
+
+ /**
+ * @copydoc Toolkit::Control::GetNaturalSize
+ */
+ Vector3 GetNaturalSize();
+
+ /**
+ * @copydoc Toolkit::Control::OnSetResizePolicy
+ */
+ virtual void OnSetResizePolicy( ResizePolicy::Type policy, Dimension::Type dimension );
+
+private:
+
+ /**
+ * Starts the transition animation.
+ * PushButton::TransitionAnimationFinished slot is called when the animation finishes.
+ */
+ void StartTransitionAnimation();
+
+ /**
+ * Stops the transition animation.
+ * @param[in] remove If true, removes the fadeout actor from root.
+ */
+ void StopTransitionAnimation( bool remove = true );
+
+ /**
+ * It adds the actor to the root actor and to the fade in animation.
+ * @param[inout] image The actor.
+ * @param[in] opacity The initial opacity.
+ * @param[in] scale The initial scale.
+ */
+ void FadeInImage( Actor& image, float opacity = 0.f, Vector3 scale = Vector3( 1.f, 1.f, 1.f ) );
+
+ /**
+ * It adds the actor fade out animation and stores it to be removed when the animation finishes.
+ * @param[in] layer Defines if the actor is going to be stored in the mFadeOutBackgroundImage or mFadeOutCheckedImage member.
+ * @param[inout] image The actor.
+ * @param[in] opacity The initial opacity.
+ * @param[in] scale The initial scale.
+ */
+ void FadeOutImage( Actor& image, float opacity = 1.f, Vector3 scale = Vector3( 1.f, 1.f, 1.f ) );
+
+ /**
+ * @brief Custom configuration for size negotiation
+ */
+ void ConfigureSizeNegotiation();
+
+ /**
+ * @brief Configure size negotiation for a given dimension
+ *
+ * @param[in] dimension The dimension to configure
+ * @param[in] images The list of images to configure
+ * @param[in] label The text label to configure
+ */
+ void ConfigureSizeNegotiationDimension( Dimension::Type dimension, const ActorContainer& images, Actor& label );
+
+ // slots
+
+ /**
+ * Called when the transition animation finishes.
+ */
+ void TransitionAnimationFinished( Dali::Animation& source );