(Slider)Added SlidingFinishedSignal 29/17229/1
authorXiangyin Ma <x1.ma@samsung.com>
Fri, 28 Feb 2014 15:47:20 +0000 (15:47 +0000)
committerPaul Wisbey <p.wisbey@samsung.com>
Wed, 5 Mar 2014 18:21:33 +0000 (18:21 +0000)
[Issue] N/A

[Problem] N/A

[Cause] N/A

[Solution] Add SlidingFinishedSignal, receives new value when the finger is lifed up

Signed-off-by: Paul Wisbey <p.wisbey@samsung.com>
Change-Id: Ice003fb098d337fe84ec40581a19e5da5c94fcc3

dali-toolkit/internal/controls/slider/slider-impl.cpp
dali-toolkit/internal/controls/slider/slider-impl.h
dali-toolkit/public-api/controls/slider/slider.cpp
dali-toolkit/public-api/controls/slider/slider.h

index 6462e0c..e90c694 100755 (executable)
@@ -211,6 +211,14 @@ bool Slider::OnTouchEvent(Actor actor, const TouchEvent& event)
       SetValue( value );
       DisplayPopup( value );
     }
+    else if( touchState == TouchPoint::Up)
+    {
+      if( mState == PRESSED )
+      {
+        mState = NORMAL;
+        mSlidingFinishedSignal.Emit( Toolkit::Slider::DownCast( Self() ), Self().GetProperty( mPropertyValue ).Get<float>());
+      }
+    }
   }
 
   return true;
@@ -235,11 +243,15 @@ void Slider::OnPan( Actor actor, PanGesture gesture )
       }
       case Gesture::Finished:
       {
-        if( mState == PRESSED && GetSnapToMarks() )
+        if( mState == PRESSED  )
         {
-          float value = MapBounds( SnapToMark( MapPercentage( gesture.position ) ), GetLowerBound(), GetUpperBound() );
-          SetValue( value );
-          DisplayPopup( value );
+          if( GetSnapToMarks() )
+          {
+            float value = MapBounds( SnapToMark( MapPercentage( gesture.position ) ), GetLowerBound(), GetUpperBound() );
+            SetValue( value );
+            DisplayPopup( value );
+          }
+          mSlidingFinishedSignal.Emit( Toolkit::Slider::DownCast( Self() ), Self().GetProperty( mPropertyValue ).Get<float>());
         }
 
         mState = NORMAL;
@@ -566,6 +578,11 @@ Toolkit::Slider::ValueChangedSignalType& Slider::ValueChangedSignal()
   return mValueChangedSignal;
 }
 
+Toolkit::Slider::ValueChangedSignalType& Slider::SlidingFinishedSignal()
+{
+  return mSlidingFinishedSignal;
+}
+
 Toolkit::Slider::MarkSignalType& Slider::MarkSignal()
 {
   return mMarkSignal;
index 3f4b8c8..d97da67 100755 (executable)
@@ -221,6 +221,11 @@ public:
   Toolkit::Slider::ValueChangedSignalType& ValueChangedSignal();
 
   /**
+   * copydoc Toolkit::Slider::SlidingFinishedSignal()
+   */
+  Toolkit::Slider::ValueChangedSignalType& SlidingFinishedSignal();
+
+  /**
    * @copydoc Toolkit::Slider::MarkSignal()
    */
   Toolkit::Slider::MarkSignalType& MarkSignal();
@@ -657,6 +662,7 @@ private:
   Timer mValueTimer;                        ///< Timer used to hide value view
 
   Toolkit::Slider::ValueChangedSignalType mValueChangedSignal;    ///< Signal emitted when the value is changed
+  Toolkit::Slider::ValueChangedSignalType mSlidingFinishedSignal;    ///< Signal emitted when a sliding is finished
   Toolkit::Slider::MarkSignalType mMarkSignal;                    ///< Signal emitted when a mark is reached
 
   SliderState mState;                 ///< The state of the slider
index c81a2c1..a72792e 100644 (file)
@@ -108,6 +108,11 @@ Slider::ValueChangedSignalType& Slider::ValueChangedSignal()
   return GetImpl( *this ).ValueChangedSignal();
 }
 
+Slider::ValueChangedSignalType& Slider::SlidingFinishedSignal()
+{
+  return GetImpl( *this ).SlidingFinishedSignal();
+}
+
 Slider::MarkSignalType& Slider::MarkSignal()
 {
   return GetImpl( *this ).MarkSignal();
index a79fcb4..c5dc76f 100644 (file)
@@ -126,6 +126,11 @@ public:
   ValueChangedSignalType& ValueChangedSignal();
 
   /**
+   * Signal emitted when the sliding is finished
+   */
+  ValueChangedSignalType& SlidingFinishedSignal();
+
+  /**
    * Signal emitted when the slider handle reaches a mark
    */
   MarkSignalType& MarkSignal();