+ /**
+ * Starts the transition animation.
+ * Button::TransitionFinished is called when the animation finishes.
+ */
+ void StartTransitionAnimation();
+
+ /**
+ * This method stops all transition animations
+ */
+ void StopTransitionAnimation();
+
+ /**
+ * Called when the transition animation finishes.
+ */
+ void TransitionAnimationFinished( Dali::Animation& source );
+
+ /**
+ * Resets the Button to the base state for the current paint state.
+ * Any additionally inserted images needed for transitions that are
+ * no longer needed and the removed.
+ */
+ void ResetImageLayers();
+
+ /**
+ * Transitions out the actor
+ */
+ void TransitionOut( Actor actor );
+
+ /**
+ * Removes the actor from the button and prepares it to be transitioned out
+ */
+ void RemoveButtonImage( Actor& actor );
+
+ /**
+ * Finds the index of the actor.
+ * If the actor doesn't exist, return the last index + 1.
+ */
+ unsigned int FindChildIndex( Actor& actor );
+
+ /**
+ * Adds an actor to the hierarchy and prepares it to be transitioned.
+ * @param[in] actor The actor to add
+ */
+ void PrepareAddButtonImage( Actor& actor );
+
+ /**
+ * Adds an actor to the hierarchy and marks it to be transitioned.
+ * @param[in] actor The actor to add
+ */
+ void TransitionButtonImage( Actor& actor );
+
+ /**
+ * Adds an actor to the hierarchy.
+ * @param[in] actor The actor to add
+ */
+ void AddButtonImage( Actor& actor );
+
+ /**
+ * (Re)Adds the label (if exists) to the hierarchy (so it is always on top).
+ */
+ void ReAddLabel();
+