From 2f39909cd5a858fe940936258ee6f558073d33f0 Mon Sep 17 00:00:00 2001 From: Xiangyin Ma Date: Fri, 28 Feb 2014 15:47:20 +0000 Subject: [PATCH] (Slider)Added SlidingFinishedSignal [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 Change-Id: Ice003fb098d337fe84ec40581a19e5da5c94fcc3 --- .../internal/controls/slider/slider-impl.cpp | 25 ++++++++++++++++++---- .../internal/controls/slider/slider-impl.h | 6 ++++++ dali-toolkit/public-api/controls/slider/slider.cpp | 5 +++++ dali-toolkit/public-api/controls/slider/slider.h | 5 +++++ 4 files changed, 37 insertions(+), 4 deletions(-) diff --git a/dali-toolkit/internal/controls/slider/slider-impl.cpp b/dali-toolkit/internal/controls/slider/slider-impl.cpp index 6462e0c..e90c694 100755 --- a/dali-toolkit/internal/controls/slider/slider-impl.cpp +++ b/dali-toolkit/internal/controls/slider/slider-impl.cpp @@ -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()); + } + } } 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()); } 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; diff --git a/dali-toolkit/internal/controls/slider/slider-impl.h b/dali-toolkit/internal/controls/slider/slider-impl.h index 3f4b8c8..d97da67 100755 --- a/dali-toolkit/internal/controls/slider/slider-impl.h +++ b/dali-toolkit/internal/controls/slider/slider-impl.h @@ -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 diff --git a/dali-toolkit/public-api/controls/slider/slider.cpp b/dali-toolkit/public-api/controls/slider/slider.cpp index c81a2c1..a72792e 100644 --- a/dali-toolkit/public-api/controls/slider/slider.cpp +++ b/dali-toolkit/public-api/controls/slider/slider.cpp @@ -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(); diff --git a/dali-toolkit/public-api/controls/slider/slider.h b/dali-toolkit/public-api/controls/slider/slider.h index a79fcb4..c5dc76f 100644 --- a/dali-toolkit/public-api/controls/slider/slider.h +++ b/dali-toolkit/public-api/controls/slider/slider.h @@ -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(); -- 2.7.4