X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fslider%2Fslider-impl.cpp;h=c347676db102733a762d73f50063c68a1727ad48;hp=757bef83d808a537caf8226a420a4ed7aa140bfc;hb=f546dd5d83a968e573f8f053a01ce43df32c71a0;hpb=bf58973c37b31d52707463a1e9cdecdbe91099f6 diff --git a/dali-toolkit/internal/controls/slider/slider-impl.cpp b/dali-toolkit/internal/controls/slider/slider-impl.cpp index 757bef8..c347676 100644 --- a/dali-toolkit/internal/controls/slider/slider-impl.cpp +++ b/dali-toolkit/internal/controls/slider/slider-impl.cpp @@ -204,7 +204,12 @@ void Slider::OnInitialize() self.SetProperty( Actor::Property::SIZE, Vector2( DEFAULT_HIT_REGION.x, DEFAULT_HIT_REGION.y ) ); // Connect to the touch signal - self.TouchSignal().Connect( this, &Slider::OnTouch ); + self.TouchedSignal().Connect( this, &Slider::OnTouch ); + + DevelControl::SetAccessibilityConstructor( self, []( Dali::Actor actor ) { + return std::unique_ptr< Dali::Accessibility::Accessible >( + new AccessibleImpl( actor, Dali::Accessibility::Role::SLIDER ) ); + } ); } void Slider::OnRelayout( const Vector2& size, RelayoutContainer& container ) @@ -248,25 +253,25 @@ void Slider::OnPan( Actor actor, const PanGesture& gesture ) // gesture.position is in local actor coordinates if( mState != DISABLED ) { - switch( gesture.state ) + switch( gesture.GetState() ) { - case Gesture::Continuing: + case GestureState::CONTINUING: { if( mState == PRESSED ) { - float value = MapBounds( MarkFilter ( MapPercentage( gesture.position ) ), GetLowerBound(), GetUpperBound() ); + float value = MapBounds( MarkFilter ( MapPercentage( gesture.GetPosition() ) ), GetLowerBound(), GetUpperBound() ); SetValue( value ); DisplayPopup( value ); } break; } - case Gesture::Finished: + case GestureState::FINISHED: { if( mState == PRESSED ) { if( GetSnapToMarks() ) { - float value = MapBounds( SnapToMark( MapPercentage( gesture.position ) ), GetLowerBound(), GetUpperBound() ); + float value = MapBounds( SnapToMark( MapPercentage( gesture.GetPosition() ) ), GetLowerBound(), GetUpperBound() ); SetValue( value ); DisplayPopup( value ); } @@ -381,7 +386,7 @@ Actor Slider::CreateHitRegion() Actor hitRegion = Actor::New(); hitRegion.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER ); hitRegion.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER ); - hitRegion.TouchSignal().Connect( this, &Slider::OnTouch ); + hitRegion.TouchedSignal().Connect( this, &Slider::OnTouch ); return hitRegion; } @@ -1409,6 +1414,39 @@ Property::Value Slider::GetProperty( BaseObject* object, Property::Index propert return value; } +double Slider::AccessibleImpl::GetMinimum() +{ + auto p = Toolkit::Slider::DownCast( self ); + return p.GetProperty( Toolkit::Slider::Property::LOWER_BOUND ).Get< float >(); +} + +double Slider::AccessibleImpl::GetCurrent() +{ + auto p = Toolkit::Slider::DownCast( self ); + return p.GetProperty( Toolkit::Slider::Property::VALUE ).Get< float >(); +} + +double Slider::AccessibleImpl::GetMaximum() +{ + auto p = Toolkit::Slider::DownCast( self ); + return p.GetProperty( Toolkit::Slider::Property::UPPER_BOUND ).Get< float >(); +} + +bool Slider::AccessibleImpl::SetCurrent( double current ) +{ + if( current < GetMinimum() || current > GetMaximum() ) + return false; + auto p = Toolkit::Slider::DownCast( self ); + p.SetProperty( Toolkit::Slider::Property::VALUE, static_cast< float >( current ) ); + return true; +} + +double Slider::AccessibleImpl::GetMinimumIncrement() +{ + auto p = Toolkit::Slider::DownCast( self ); + return p.GetProperty( Toolkit::Slider::Property::MARK_TOLERANCE ).Get< float >(); +} + } // namespace Internal } // namespace Toolkit