Updated demos to use DALi clang-format
[platform/core/uifw/dali-demo.git] / examples / gestures / gesture-example.cpp
index d04c63e..129a1b7 100644 (file)
@@ -25,47 +25,41 @@ using namespace std;
 
 namespace
 {
-const Property::Value BACKGROUND
-{
-  { Toolkit::Visual::Property::TYPE, Visual::GRADIENT },
-  { GradientVisual::Property::STOP_COLOR,  Property::Array{ Vector4( 167.0f, 207.0f, 223.0f, 255.0f ) / 255.0f,
-                                                            Vector4(   0.0f,  64.0f, 137.0f, 255.0f ) / 255.0f } },
-  { GradientVisual::Property::START_POSITION, Vector2( 0.0f, -0.5f ) },
-  { GradientVisual::Property::END_POSITION,   Vector2( 0.0f,  0.5f ) }
-};
-
-const Property::Value CONTROL_BACKGROUND
-{
-  { Toolkit::Visual::Property::TYPE, Visual::GRADIENT },
-  { GradientVisual::Property::STOP_COLOR, Property::Array{ Vector4( 234.0f, 185.0f,  45.0f, 255.0f ) / 255.0f,
-                                                           Vector4( 199.0f, 152.0f,  16.0f, 255.0f ) / 255.0f } },
-  { GradientVisual::Property::CENTER, Vector2::ZERO },
-  { GradientVisual::Property::RADIUS, 0.5f }
-};
-
-const float HELP_ANIMATION_DURATION( 25.0f );
-const float HELP_ANIMATION_SEGMENT_TIME( 5.0f );
-const float HELP_ANIMATION_TRANSITION_DURATION( 0.75f );
-const Vector2 HELP_TEXT_POSITION_MULTIPLIER( 0.25f, 0.13f );
-
-const float SHAKY_ANIMATION_DURATION( 0.1f );
-const float SHAKY_ANIMATION_SEGMENT_TIME( 0.05f );
-const float SHAKY_ANIMATION_ANGLE( 1.0f );
-
-const float TOUCH_MODE_ANIMATION_DURATION( 0.1f );
-const Vector4 TOUCH_MODE_COLOR( 1.0f, 0.7f, 0.7f, 1.0f );
-
-const float PAN_MODE_CHANGE_ANIMATION_DURATION( 0.25f );
-const Vector3 PAN_MODE_START_ANIMATION_SCALE( 1.2f, 1.2f, 1.0f );
-const Vector3 PAN_MODE_END_ANIMATION_SCALE( 0.8f, 0.8f, 1.0f );
-
-const float TAP_ANIMATION_DURATION( 0.5f );
-const Vector4 TAP_ANIMATION_COLOR( 0.8f, 0.5, 0.2f, 0.6f );
-
-const Vector3 MINIMUM_SCALE( Vector3::ONE );
-const Vector3 MAXIMUM_SCALE( Vector3::ONE * 2.0f );
-const float SCALE_BACK_ANIMATION_DURATION( 0.25f );
-const float ROTATE_BACK_ANIMATION_DURATION( 0.25f );
+const Property::Value BACKGROUND{
+  {Toolkit::Visual::Property::TYPE, Visual::GRADIENT},
+  {GradientVisual::Property::STOP_COLOR, Property::Array{Vector4(167.0f, 207.0f, 223.0f, 255.0f) / 255.0f, Vector4(0.0f, 64.0f, 137.0f, 255.0f) / 255.0f}},
+  {GradientVisual::Property::START_POSITION, Vector2(0.0f, -0.5f)},
+  {GradientVisual::Property::END_POSITION, Vector2(0.0f, 0.5f)}};
+
+const Property::Value CONTROL_BACKGROUND{
+  {Toolkit::Visual::Property::TYPE, Visual::GRADIENT},
+  {GradientVisual::Property::STOP_COLOR, Property::Array{Vector4(234.0f, 185.0f, 45.0f, 255.0f) / 255.0f, Vector4(199.0f, 152.0f, 16.0f, 255.0f) / 255.0f}},
+  {GradientVisual::Property::CENTER, Vector2::ZERO},
+  {GradientVisual::Property::RADIUS, 0.5f}};
+
+const float   HELP_ANIMATION_DURATION(25.0f);
+const float   HELP_ANIMATION_SEGMENT_TIME(5.0f);
+const float   HELP_ANIMATION_TRANSITION_DURATION(0.75f);
+const Vector2 HELP_TEXT_POSITION_MULTIPLIER(0.25f, 0.13f);
+
+const float SHAKY_ANIMATION_DURATION(0.1f);
+const float SHAKY_ANIMATION_SEGMENT_TIME(0.05f);
+const float SHAKY_ANIMATION_ANGLE(1.0f);
+
+const float   TOUCH_MODE_ANIMATION_DURATION(0.1f);
+const Vector4 TOUCH_MODE_COLOR(1.0f, 0.7f, 0.7f, 1.0f);
+
+const float   PAN_MODE_CHANGE_ANIMATION_DURATION(0.25f);
+const Vector3 PAN_MODE_START_ANIMATION_SCALE(1.2f, 1.2f, 1.0f);
+const Vector3 PAN_MODE_END_ANIMATION_SCALE(0.8f, 0.8f, 1.0f);
+
+const float   TAP_ANIMATION_DURATION(0.5f);
+const Vector4 TAP_ANIMATION_COLOR(0.8f, 0.5, 0.2f, 0.6f);
+
+const Vector3 MINIMUM_SCALE(Vector3::ONE);
+const Vector3 MAXIMUM_SCALE(Vector3::ONE * 2.0f);
+const float   SCALE_BACK_ANIMATION_DURATION(0.25f);
+const float   ROTATE_BACK_ANIMATION_DURATION(0.25f);
 
 /**
  * @brief Shows the given string between the given start and end times.
@@ -78,28 +72,28 @@ const float ROTATE_BACK_ANIMATION_DURATION( 0.25f );
  * @param[in]  startTime  When to start the animators
  * @param[in]  endTime    When to end the animators
  */
-void AddHelpInfo( const std::string&& string, const Vector2& windowSize, Actor parent, Animation animation, float startTime, float endTime )
+void AddHelpInfo(const std::string&& string, const Vector2& windowSize, Actor parent, Animation animation, float startTime, float endTime)
 {
-  Actor text = TextLabel::New( std::move( string ) );
-  Vector3 position( windowSize * HELP_TEXT_POSITION_MULTIPLIER );
+  Actor   text = TextLabel::New(std::move(string));
+  Vector3 position(windowSize * HELP_TEXT_POSITION_MULTIPLIER);
 
-  text.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_CENTER );
-  text.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_CENTER );
-  text.SetProperty( Actor::Property::POSITION, position );
-  text.SetProperty( Actor::Property::OPACITY, 0.0f );
-  text.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, Text::HorizontalAlignment::CENTER );
-  text.SetProperty( TextLabel::Property::MULTI_LINE, true );
-  parent.Add( text );
+  text.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_CENTER);
+  text.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_CENTER);
+  text.SetProperty(Actor::Property::POSITION, position);
+  text.SetProperty(Actor::Property::OPACITY, 0.0f);
+  text.SetProperty(TextLabel::Property::HORIZONTAL_ALIGNMENT, Text::HorizontalAlignment::CENTER);
+  text.SetProperty(TextLabel::Property::MULTI_LINE, true);
+  parent.Add(text);
 
   // Animate IN
-  TimePeriod timePeriod( startTime, HELP_ANIMATION_TRANSITION_DURATION );
-  animation.AnimateTo( Property( text, Actor::Property::COLOR_ALPHA ),  1.0f,       timePeriod );
-  animation.AnimateBy( Property( text, Actor::Property::POSITION_X ),  -position.x, timePeriod );
+  TimePeriod timePeriod(startTime, HELP_ANIMATION_TRANSITION_DURATION);
+  animation.AnimateTo(Property(text, Actor::Property::COLOR_ALPHA), 1.0f, timePeriod);
+  animation.AnimateBy(Property(text, Actor::Property::POSITION_X), -position.x, timePeriod);
 
   // Animate OUT
   timePeriod.delaySeconds = endTime;
-  animation.AnimateTo( Property( text, Actor::Property::COLOR_ALPHA ),  0.0f,       timePeriod );
-  animation.AnimateBy( Property( text, Actor::Property::POSITION_X ),  -position.x, timePeriod );
+  animation.AnimateTo(Property(text, Actor::Property::COLOR_ALPHA), 0.0f, timePeriod);
+  animation.AnimateBy(Property(text, Actor::Property::POSITION_X), -position.x, timePeriod);
 }
 
 } // unnamed namespace
@@ -116,99 +110,97 @@ void AddHelpInfo( const std::string&& string, const Vector2& windowSize, Actor p
 class GestureExample : public ConnectionTracker
 {
 public:
-
   /**
    * @brief Constructor.
    *
    * @param[in]  application  Reference to the application
    */
-  GestureExample( Application &application )
-  : mApplication( application )
+  GestureExample(Application& application)
+  : mApplication(application)
   {
     // Connect to the Application's Init signal
-    application.InitSignal().Connect( this, &GestureExample::Create );
+    application.InitSignal().Connect(this, &GestureExample::Create);
   }
 
 private:
-
   /**
    * @brief Creates the scene as described in this class' description.
    *
    * @param[in]  application  Reference to the application class
    */
-  void Create( Application& application )
+  void Create(Application& application)
   {
     // Get a handle to the window & connect to the key event signal
-    auto window = application.GetWindow();
+    auto    window     = application.GetWindow();
     Vector2 windowSize = window.GetSize();
     window.KeyEventSignal().Connect(this, &GestureExample::OnKeyEvent);
 
     // Create a background with a linear gradient which matches parent size & is placed in the center.
     Actor background = Control::New();
-    background.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
-    background.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
-    background.SetProperty( Control::Property::BACKGROUND, BACKGROUND );
-    window.Add( background );
+    background.SetResizePolicy(ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS);
+    background.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
+    background.SetProperty(Control::Property::BACKGROUND, BACKGROUND);
+    window.Add(background);
 
     // Create a control with a circular gradient that we'll use for the gestures and be a quarter of the size of the window.
     Actor touchControl = Control::New();
-    touchControl.SetProperty( Actor::Property::SIZE, windowSize * 0.25f );
-    touchControl.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
-    touchControl.SetProperty( Control::Property::BACKGROUND, CONTROL_BACKGROUND );
-    background.Add( touchControl );
+    touchControl.SetProperty(Actor::Property::SIZE, windowSize * 0.25f);
+    touchControl.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
+    touchControl.SetProperty(Control::Property::BACKGROUND, CONTROL_BACKGROUND);
+    background.Add(touchControl);
 
     // Connect to the touch signal
-    touchControl.TouchedSignal().Connect( this, &GestureExample::OnTouch );
-    touchControl.SetProperty( Actor::Property::LEAVE_REQUIRED, true );
+    touchControl.TouchedSignal().Connect(this, &GestureExample::OnTouch);
+    touchControl.SetProperty(Actor::Property::LEAVE_REQUIRED, true);
 
     // Create a long press gesture detector, attach the actor & connect
     mLongPressDetector = LongPressGestureDetector::New();
-    mLongPressDetector.Attach( touchControl );
-    mLongPressDetector.DetectedSignal().Connect( this, &GestureExample::OnLongPress );
+    mLongPressDetector.Attach(touchControl);
+    mLongPressDetector.DetectedSignal().Connect(this, &GestureExample::OnLongPress);
 
     // Create a pan gesture detector & connect, don't attach the actor as we'll attach it when we detect a long-press
     mPanDetector = PanGestureDetector::New();
-    mPanDetector.DetectedSignal().Connect( this, &GestureExample::OnPan );
+    mPanDetector.DetectedSignal().Connect(this, &GestureExample::OnPan);
 
     // Create a tap gesture detector, attach the actor & connect
     mTapDetector = TapGestureDetector::New();
-    mTapDetector.Attach( touchControl );
-    mTapDetector.DetectedSignal().Connect( this, &GestureExample::OnTap );
+    mTapDetector.Attach(touchControl);
+    mTapDetector.DetectedSignal().Connect(this, &GestureExample::OnTap);
 
     // Create a pinch gesture detector, attach the actor & connect
     mPinchDetector = PinchGestureDetector::New();
-    mPinchDetector.Attach( touchControl );
-    mPinchDetector.DetectedSignal().Connect( this, &GestureExample::OnPinch );
+    mPinchDetector.Attach(touchControl);
+    mPinchDetector.DetectedSignal().Connect(this, &GestureExample::OnPinch);
 
     // Create a rotation gesture detector, attach the actor & connect
     mRotationDetector = RotationGestureDetector::New();
-    mRotationDetector.Attach( touchControl );
-    mRotationDetector.DetectedSignal().Connect( this, &GestureExample::OnRotation );
+    mRotationDetector.Attach(touchControl);
+    mRotationDetector.DetectedSignal().Connect(this, &GestureExample::OnRotation);
 
     // Create an animation which shakes the actor when in Pan mode
-    mShakeAnimation = Animation::New( SHAKY_ANIMATION_DURATION );
-    mShakeAnimation.AnimateBy( Property( touchControl, Actor::Property::ORIENTATION ),
-                               Quaternion( Degree(  SHAKY_ANIMATION_ANGLE ), Vector3::ZAXIS ),
-                               AlphaFunction::BOUNCE,
-                               TimePeriod( 0.0f, SHAKY_ANIMATION_SEGMENT_TIME ) );
-    mShakeAnimation.AnimateBy( Property( touchControl, Actor::Property::ORIENTATION ),
-                               Quaternion( Degree( -SHAKY_ANIMATION_ANGLE ), Vector3::ZAXIS ),
-                               AlphaFunction::BOUNCE,
-                               TimePeriod( SHAKY_ANIMATION_SEGMENT_TIME, SHAKY_ANIMATION_SEGMENT_TIME ) );
+    mShakeAnimation = Animation::New(SHAKY_ANIMATION_DURATION);
+    mShakeAnimation.AnimateBy(Property(touchControl, Actor::Property::ORIENTATION),
+                              Quaternion(Degree(SHAKY_ANIMATION_ANGLE), Vector3::ZAXIS),
+                              AlphaFunction::BOUNCE,
+                              TimePeriod(0.0f, SHAKY_ANIMATION_SEGMENT_TIME));
+    mShakeAnimation.AnimateBy(Property(touchControl, Actor::Property::ORIENTATION),
+                              Quaternion(Degree(-SHAKY_ANIMATION_ANGLE), Vector3::ZAXIS),
+                              AlphaFunction::BOUNCE,
+                              TimePeriod(SHAKY_ANIMATION_SEGMENT_TIME, SHAKY_ANIMATION_SEGMENT_TIME));
 
     // Animate help information
     // Here we just animate some text on the screen to show tips on how to use this example
     // The help animation loops
-    Animation helpAnimation = Animation::New( HELP_ANIMATION_DURATION );
+    Animation helpAnimation = Animation::New(HELP_ANIMATION_DURATION);
 
-    float startTime( 0.0f );
-    float endTime( startTime + HELP_ANIMATION_SEGMENT_TIME );
+    float startTime(0.0f);
+    float endTime(startTime + HELP_ANIMATION_SEGMENT_TIME);
 
-    AddHelpInfo( "Tap image for animation",                              windowSize, background, helpAnimation, startTime, endTime );
-    AddHelpInfo( "Press & Hold image to drag",                           windowSize, background, helpAnimation, startTime += HELP_ANIMATION_SEGMENT_TIME, endTime += HELP_ANIMATION_SEGMENT_TIME );
-    AddHelpInfo( "Pinch image to resize",                                windowSize, background, helpAnimation, startTime += HELP_ANIMATION_SEGMENT_TIME, endTime += HELP_ANIMATION_SEGMENT_TIME );
-    AddHelpInfo( "Move fingers in a circular motion on image to rotate", windowSize, background, helpAnimation, startTime += HELP_ANIMATION_SEGMENT_TIME, endTime += HELP_ANIMATION_SEGMENT_TIME );
-    helpAnimation.SetLooping( true );
+    AddHelpInfo("Tap image for animation", windowSize, background, helpAnimation, startTime, endTime);
+    AddHelpInfo("Press & Hold image to drag", windowSize, background, helpAnimation, startTime += HELP_ANIMATION_SEGMENT_TIME, endTime += HELP_ANIMATION_SEGMENT_TIME);
+    AddHelpInfo("Pinch image to resize", windowSize, background, helpAnimation, startTime += HELP_ANIMATION_SEGMENT_TIME, endTime += HELP_ANIMATION_SEGMENT_TIME);
+    AddHelpInfo("Move fingers in a circular motion on image to rotate", windowSize, background, helpAnimation, startTime += HELP_ANIMATION_SEGMENT_TIME, endTime += HELP_ANIMATION_SEGMENT_TIME);
+    helpAnimation.SetLooping(true);
     helpAnimation.Play();
   }
 
@@ -218,16 +210,16 @@ private:
    * @param[in]  actor  The touched actor
    * @param[in]  touch  The touch event
    */
-  bool OnTouch( Actor actor, const TouchEvent& touch )
+  bool OnTouch(Actor actor, const TouchEvent& touch)
   {
-    switch( touch.GetState( 0 ) )
+    switch(touch.GetState(0))
     {
       case PointState::DOWN:
       {
         // When we get a touch point, change the color of the actor.
 
-        Animation anim = Animation::New( TOUCH_MODE_ANIMATION_DURATION );
-        anim.AnimateTo( Property( actor, Actor::Property::COLOR ), TOUCH_MODE_COLOR );
+        Animation anim = Animation::New(TOUCH_MODE_ANIMATION_DURATION);
+        anim.AnimateTo(Property(actor, Actor::Property::COLOR), TOUCH_MODE_COLOR);
         anim.Play();
         break;
       }
@@ -236,16 +228,16 @@ private:
       case PointState::UP:
       case PointState::INTERRUPTED:
       {
-        if( ! mPanStarted )
+        if(!mPanStarted)
         {
           // If we're not panning, change the color back to normal.
 
-          Animation anim = Animation::New( TOUCH_MODE_ANIMATION_DURATION );
-          anim.AnimateTo( Property( actor, Actor::Property::COLOR ), Vector4::ONE );
+          Animation anim = Animation::New(TOUCH_MODE_ANIMATION_DURATION);
+          anim.AnimateTo(Property(actor, Actor::Property::COLOR), Vector4::ONE);
           anim.Play();
 
           // Stop the shake animation from looping.
-          mShakeAnimation.SetLooping( false );
+          mShakeAnimation.SetLooping(false);
         }
         break;
       }
@@ -264,20 +256,20 @@ private:
    * @param[in]  actor      The actor that's been long-pressed
    * @param[in]  longPress  The long-press gesture information
    */
-  void OnLongPress( Actor actor, const LongPressGesture& longPress )
+  void OnLongPress(Actor actor, const LongPressGesture& longPress)
   {
-    if( longPress.GetState() == GestureState::STARTED )
+    if(longPress.GetState() == GestureState::STARTED)
     {
       // When we first receive a long press, attach the actor to the pan detector.
-      mPanDetector.Attach( actor );
+      mPanDetector.Attach(actor);
 
       // Do a small animation to indicate to the user that we are in pan mode.
-      Animation anim = Animation::New( PAN_MODE_CHANGE_ANIMATION_DURATION );
-      anim.AnimateTo( Property( actor, Actor::Property::SCALE ), actor.GetCurrentProperty< Vector3 >( Actor::Property::SCALE ) * PAN_MODE_START_ANIMATION_SCALE, AlphaFunction::BOUNCE );
+      Animation anim = Animation::New(PAN_MODE_CHANGE_ANIMATION_DURATION);
+      anim.AnimateTo(Property(actor, Actor::Property::SCALE), actor.GetCurrentProperty<Vector3>(Actor::Property::SCALE) * PAN_MODE_START_ANIMATION_SCALE, AlphaFunction::BOUNCE);
       anim.Play();
 
       // Start the shake animation so the user knows when they are in pan mode.
-      mShakeAnimation.SetLooping( true );
+      mShakeAnimation.SetLooping(true);
       mShakeAnimation.Play();
     }
   }
@@ -288,22 +280,22 @@ private:
    * @param[in]  actor  The actor that's been panned
    * @param[in]  pan    The pan gesture information
    */
-  void OnPan( Actor actor, const PanGesture& pan )
+  void OnPan(Actor actor, const PanGesture& pan)
   {
     // Just move the actor by the displacement.
 
     // As the displacement is in local actor coords, we will have to multiply the displacement by the
     // actor's scale so that it moves the correct amount in the parent's coordinate system.
-    Vector3 scaledDisplacement( pan.GetDisplacement() );
-    scaledDisplacement *= actor.GetCurrentProperty< Vector3 >( Actor::Property::SCALE );
+    Vector3 scaledDisplacement(pan.GetDisplacement());
+    scaledDisplacement *= actor.GetCurrentProperty<Vector3>(Actor::Property::SCALE);
 
     Vector3 currentPosition;
-    actor.GetProperty( Actor::Property::POSITION ).Get( currentPosition );
+    actor.GetProperty(Actor::Property::POSITION).Get(currentPosition);
 
     Vector3 newPosition = currentPosition + scaledDisplacement;
-    actor.SetProperty( Actor::Property::POSITION, newPosition );
+    actor.SetProperty(Actor::Property::POSITION, newPosition);
 
-    switch( pan.GetState() )
+    switch(pan.GetState())
     {
       case GestureState::STARTED:
       {
@@ -316,23 +308,23 @@ private:
       {
         // If we cancel or finish the pan, do an animation to indicate this and stop the shake animation.
 
-        Animation anim = Animation::New( PAN_MODE_CHANGE_ANIMATION_DURATION );
-        anim.AnimateTo( Property( actor, Actor::Property::COLOR ), Vector4::ONE );
-        anim.AnimateTo( Property( actor, Actor::Property::SCALE ), actor.GetCurrentProperty< Vector3 >( Actor::Property::SCALE ) * PAN_MODE_END_ANIMATION_SCALE, AlphaFunction::BOUNCE );
+        Animation anim = Animation::New(PAN_MODE_CHANGE_ANIMATION_DURATION);
+        anim.AnimateTo(Property(actor, Actor::Property::COLOR), Vector4::ONE);
+        anim.AnimateTo(Property(actor, Actor::Property::SCALE), actor.GetCurrentProperty<Vector3>(Actor::Property::SCALE) * PAN_MODE_END_ANIMATION_SCALE, AlphaFunction::BOUNCE);
 
         // Move actor back to center if we're out of bounds
         Vector2 halfWindowSize = Vector2(mApplication.GetWindow().GetSize()) * 0.5f;
-        if( ( abs( newPosition.x ) > halfWindowSize.width  ) ||
-            ( abs( newPosition.y ) > halfWindowSize.height ) )
+        if((abs(newPosition.x) > halfWindowSize.width) ||
+           (abs(newPosition.y) > halfWindowSize.height))
         {
-          anim.AnimateTo( Property( actor, Actor::Property::POSITION ), Vector3::ZERO, AlphaFunction::EASE_IN );
+          anim.AnimateTo(Property(actor, Actor::Property::POSITION), Vector3::ZERO, AlphaFunction::EASE_IN);
         }
         anim.Play();
 
         // Set end of pan configuration and disconnect the actor from the pan detector
-        mShakeAnimation.SetLooping( false );
+        mShakeAnimation.SetLooping(false);
         mPanStarted = false;
-        mPanDetector.Detach( actor );
+        mPanDetector.Detach(actor);
         break;
       }
 
@@ -349,15 +341,15 @@ private:
    * @param[in]  actor The actor that's been tapped
    * @param[in]  tap   The tap gesture information
    */
-  void OnTap( Actor actor, const TapGesture& tap )
+  void OnTap(Actor actor, const TapGesture& tap)
   {
     // Do a short animation to show a tap has happened.
 
-    Animation anim = Animation::New( TAP_ANIMATION_DURATION );
-    anim.AnimateBy( Property( actor, Actor::Property::ORIENTATION ), Quaternion( ANGLE_360, Vector3::ZAXIS ) );
-    anim.AnimateTo( Property( actor, Actor::Property::SCALE ), Vector3::ONE, AlphaFunction::LINEAR );
-    anim.AnimateTo( Property( actor, Actor::Property::COLOR ), TAP_ANIMATION_COLOR, AlphaFunction::BOUNCE );
-    anim.AnimateTo( Property( actor, Actor::Property::POSITION ), Vector3::ZERO, AlphaFunction::EASE_OUT_SQUARE );
+    Animation anim = Animation::New(TAP_ANIMATION_DURATION);
+    anim.AnimateBy(Property(actor, Actor::Property::ORIENTATION), Quaternion(ANGLE_360, Vector3::ZAXIS));
+    anim.AnimateTo(Property(actor, Actor::Property::SCALE), Vector3::ONE, AlphaFunction::LINEAR);
+    anim.AnimateTo(Property(actor, Actor::Property::COLOR), TAP_ANIMATION_COLOR, AlphaFunction::BOUNCE);
+    anim.AnimateTo(Property(actor, Actor::Property::POSITION), Vector3::ZERO, AlphaFunction::EASE_OUT_SQUARE);
     anim.Play();
   }
 
@@ -367,35 +359,35 @@ private:
    * @param[in]  actor  The actor that's been pinched
    * @param[in]  pinch  The pinch gesture information
    */
-  void OnPinch( Actor actor, const PinchGesture& pinch )
+  void OnPinch(Actor actor, const PinchGesture& pinch)
   {
-    switch( pinch.GetState() )
+    switch(pinch.GetState())
     {
       case GestureState::STARTED:
       {
         // Starting scale is required so that we know what to multiply the pinch.scale by.
-        mStartingScale = actor.GetCurrentProperty< Vector3 >( Actor::Property::SCALE );
+        mStartingScale = actor.GetCurrentProperty<Vector3>(Actor::Property::SCALE);
         break;
       }
 
       case GestureState::FINISHED:
       case GestureState::CANCELLED:
       {
-        Vector3 scale( actor.GetCurrentProperty< Vector3 >( Actor::Property::SCALE ) );
+        Vector3 scale(actor.GetCurrentProperty<Vector3>(Actor::Property::SCALE));
 
         // Ensure the actor sizes itself to be within the limits defined.
-        if ( scale.x < MINIMUM_SCALE.x )
+        if(scale.x < MINIMUM_SCALE.x)
         {
           scale = MINIMUM_SCALE;
         }
-        else if ( scale.x > MAXIMUM_SCALE.x )
+        else if(scale.x > MAXIMUM_SCALE.x)
         {
           scale = MAXIMUM_SCALE;
         }
 
         // Do an animation to come back to go back to the limits.
-        Animation anim = Animation::New( SCALE_BACK_ANIMATION_DURATION );
-        anim.AnimateTo( Property( actor, Actor::Property::SCALE ), scale, AlphaFunction::LINEAR );
+        Animation anim = Animation::New(SCALE_BACK_ANIMATION_DURATION);
+        anim.AnimateTo(Property(actor, Actor::Property::SCALE), scale, AlphaFunction::LINEAR);
         anim.Play();
         break;
       }
@@ -406,7 +398,7 @@ private:
       }
     }
 
-    actor.SetProperty( Actor::Property::SCALE, mStartingScale * pinch.GetScale() );
+    actor.SetProperty(Actor::Property::SCALE, mStartingScale * pinch.GetScale());
   }
 
   /**
@@ -415,14 +407,14 @@ private:
    * @param[in]  actor     The actor that's been pinched
    * @param[in]  rotation  The rotation gesture information
    */
-  void OnRotation( Actor actor, const RotationGesture& rotation )
+  void OnRotation(Actor actor, const RotationGesture& rotation)
   {
-    switch( rotation.GetState() )
+    switch(rotation.GetState())
     {
       case GestureState::STARTED:
       {
         // Starting orientation is required so that we know what to multiply the rotation.rotation by.
-        mStartingOrientation = actor.GetCurrentProperty< Quaternion >( Actor::Property::ORIENTATION );
+        mStartingOrientation = actor.GetCurrentProperty<Quaternion>(Actor::Property::ORIENTATION);
         break;
       }
 
@@ -430,8 +422,8 @@ private:
       case GestureState::CANCELLED:
       {
         // Do an animation to come back to go back to the original orientation.
-        Animation anim = Animation::New( ROTATE_BACK_ANIMATION_DURATION );
-        anim.AnimateTo( Property( actor, Actor::Property::ORIENTATION ), Quaternion::IDENTITY, AlphaFunction::LINEAR );
+        Animation anim = Animation::New(ROTATE_BACK_ANIMATION_DURATION);
+        anim.AnimateTo(Property(actor, Actor::Property::ORIENTATION), Quaternion::IDENTITY, AlphaFunction::LINEAR);
         anim.Play();
         break;
       }
@@ -442,7 +434,7 @@ private:
       }
     }
 
-    actor.SetProperty( Actor::Property::ORIENTATION, Quaternion( mStartingOrientation * Quaternion( rotation.GetRotation(), Vector3::ZAXIS ) ) );
+    actor.SetProperty(Actor::Property::ORIENTATION, Quaternion(mStartingOrientation * Quaternion(rotation.GetRotation(), Vector3::ZAXIS)));
   }
 
   /**
@@ -451,11 +443,11 @@ private:
    * Will use this to quit the application if Back or the Escape key is received.
    * @param[in] event The key event information
    */
-  void OnKeyEvent( const KeyEvent& event )
+  void OnKeyEvent(const KeyEvent& event)
   {
-    if( event.GetState() == KeyEvent::DOWN )
+    if(event.GetState() == KeyEvent::DOWN)
     {
-      if( IsKey( event, Dali::DALI_KEY_ESCAPE ) || IsKey( event, Dali::DALI_KEY_BACK ) )
+      if(IsKey(event, Dali::DALI_KEY_ESCAPE) || IsKey(event, Dali::DALI_KEY_BACK))
       {
         mApplication.Quit();
       }
@@ -463,24 +455,24 @@ private:
   }
 
 private:
-  Application&  mApplication;
+  Application& mApplication;
 
-  PanGestureDetector mPanDetector;
+  PanGestureDetector       mPanDetector;
   LongPressGestureDetector mLongPressDetector;
-  TapGestureDetector mTapDetector;
-  PinchGestureDetector mPinchDetector;
-  RotationGestureDetector mRotationDetector;
+  TapGestureDetector       mTapDetector;
+  PinchGestureDetector     mPinchDetector;
+  RotationGestureDetector  mRotationDetector;
 
-  Vector3 mStartingScale; ///< Set to the scale of the control when pinch starts.
+  Vector3    mStartingScale;       ///< Set to the scale of the control when pinch starts.
   Quaternion mStartingOrientation; ///< Set to the orientation of the control when the rotation starts.
-  Animation mShakeAnimation; ///< "Shake" animation to show when we are in panning mode.
-  bool mPanStarted = false; ///< Set to true to state that panning has started.
+  Animation  mShakeAnimation;      ///< "Shake" animation to show when we are in panning mode.
+  bool       mPanStarted = false;  ///< Set to true to state that panning has started.
 };
 
-int DALI_EXPORT_API main( int argc, char **argv )
+int DALI_EXPORT_API main(int argc, char** argv)
 {
-  Application application = Application::New( &argc, &argv );
-  GestureExample controller( application );
+  Application    application = Application::New(&argc, &argv);
+  GestureExample controller(application);
   application.MainLoop();
   return 0;
 }