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=af6284681b608b3e846cbaef8b69722eb109df22;hp=859926deb1fd44aff9573dfc8726b7e2538d7d61;hb=eea53605c5acb244aebb72d75bdd9b3a68a9678a;hpb=beacebbb139c15b44535e3d28c835fc31b412c7c diff --git a/dali-toolkit/internal/controls/slider/slider-impl.cpp b/dali-toolkit/internal/controls/slider/slider-impl.cpp index 859926d..af62846 100755 --- a/dali-toolkit/internal/controls/slider/slider-impl.cpp +++ b/dali-toolkit/internal/controls/slider/slider-impl.cpp @@ -22,6 +22,7 @@ #include #include #include +#include #include // INTERNAL INCLUDES @@ -35,40 +36,46 @@ namespace Dali namespace Toolkit { -// Properties -const Property::Index Slider::LOWER_BOUND_PROPERTY = Internal::Slider::SLIDER_PROPERTY_START_INDEX; -const Property::Index Slider::UPPER_BOUND_PROPERTY = Internal::Slider::SLIDER_PROPERTY_START_INDEX + 1; - -const Property::Index Slider::VALUE_PROPERTY = Internal::Slider::SLIDER_PROPERTY_START_INDEX + 2; -const Property::Index Slider::HIT_REGION_PROPERTY = Internal::Slider::SLIDER_PROPERTY_START_INDEX + 3; -const Property::Index Slider::BACKING_REGION_PROPERTY = Internal::Slider::SLIDER_PROPERTY_START_INDEX + 4; -const Property::Index Slider::HANDLE_REGION_PROPERTY = Internal::Slider::SLIDER_PROPERTY_START_INDEX + 5; - -const Property::Index Slider::BACKING_IMAGE_NAME_PROPERTY = Internal::Slider::SLIDER_PROPERTY_START_INDEX + 6; -const Property::Index Slider::HANDLE_IMAGE_NAME_PROPERTY = Internal::Slider::SLIDER_PROPERTY_START_INDEX + 7; -const Property::Index Slider::PROGRESS_IMAGE_NAME_PROPERTY = Internal::Slider::SLIDER_PROPERTY_START_INDEX + 8; -const Property::Index Slider::POPUP_IMAGE_NAME_PROPERTY = Internal::Slider::SLIDER_PROPERTY_START_INDEX + 9; -const Property::Index Slider::POPUP_ARROW_IMAGE_NAME_PROPERTY = Internal::Slider::SLIDER_PROPERTY_START_INDEX + 10; - -const Property::Index Slider::DISABLE_COLOR_PROPERTY = Internal::Slider::SLIDER_PROPERTY_START_INDEX + 11; -const Property::Index Slider::POPUP_TEXT_COLOR_PROPERTY = Internal::Slider::SLIDER_PROPERTY_START_INDEX + 12; - -const Property::Index Slider::VALUE_PRECISION_PROPERTY = Internal::Slider::SLIDER_PROPERTY_START_INDEX + 13; - -const Property::Index Slider::SHOW_POPUP_PROPERTY = Internal::Slider::SLIDER_PROPERTY_START_INDEX + 14; -const Property::Index Slider::SHOW_VALUE_PROPERTY = Internal::Slider::SLIDER_PROPERTY_START_INDEX + 15; - -const Property::Index Slider::ENABLED_PROPERTY = Internal::Slider::SLIDER_PROPERTY_START_INDEX + 16; - -const Property::Index Slider::MARKS_PROPERTY = Internal::Slider::SLIDER_PROPERTY_START_INDEX + 17; -const Property::Index Slider::SNAP_TO_MARKS_PROPERTY = Internal::Slider::SLIDER_PROPERTY_START_INDEX + 18; -const Property::Index Slider::MARK_TOLERANCE_PROPERTY = Internal::Slider::SLIDER_PROPERTY_START_INDEX + 19; - namespace Internal { -namespace +namespace // Unnamed namespace +{ + +BaseHandle Create() { + return Dali::Toolkit::Slider::New(); +} + +// Setup properties, signals and actions using the type-registry. +DALI_TYPE_REGISTRATION_BEGIN( Toolkit::Slider, Toolkit::Control, Create ) + +DALI_PROPERTY_REGISTRATION( Slider, "lower-bound", FLOAT, LOWER_BOUND ) +DALI_PROPERTY_REGISTRATION( Slider, "upper-bound", FLOAT, UPPER_BOUND ) +DALI_PROPERTY_REGISTRATION( Slider, "value", FLOAT, VALUE ) +DALI_PROPERTY_REGISTRATION( Slider, "hit-region", VECTOR2, HIT_REGION ) +DALI_PROPERTY_REGISTRATION( Slider, "backing-region", VECTOR2, BACKING_REGION ) +DALI_PROPERTY_REGISTRATION( Slider, "handle-region", VECTOR2, HANDLE_REGION ) +DALI_PROPERTY_REGISTRATION( Slider, "backing-image-name", STRING, BACKING_IMAGE_NAME ) +DALI_PROPERTY_REGISTRATION( Slider, "handle-image-name", STRING, HANDLE_IMAGE_NAME ) +DALI_PROPERTY_REGISTRATION( Slider, "progress-image-name", STRING, PROGRESS_IMAGE_NAME ) +DALI_PROPERTY_REGISTRATION( Slider, "popup-image-name", STRING, POPUP_IMAGE_NAME ) +DALI_PROPERTY_REGISTRATION( Slider, "popup-arrow-image-name", STRING, POPUP_ARROW_IMAGE_NAME ) +DALI_PROPERTY_REGISTRATION( Slider, "disable-color", VECTOR4, DISABLE_COLOR ) +DALI_PROPERTY_REGISTRATION( Slider, "popup-text-color", VECTOR4, POPUP_TEXT_COLOR ) +DALI_PROPERTY_REGISTRATION( Slider, "value-precision", INTEGER, VALUE_PRECISION ) +DALI_PROPERTY_REGISTRATION( Slider, "show-popup", BOOLEAN, SHOW_POPUP ) +DALI_PROPERTY_REGISTRATION( Slider, "show-value", BOOLEAN, SHOW_VALUE ) +DALI_PROPERTY_REGISTRATION( Slider, "enabled", BOOLEAN, ENABLED ) +DALI_PROPERTY_REGISTRATION( Slider, "marks", ARRAY, MARKS ) +DALI_PROPERTY_REGISTRATION( Slider, "snap-to-marks", BOOLEAN, SNAP_TO_MARKS ) +DALI_PROPERTY_REGISTRATION( Slider, "mark-tolerance", FLOAT, MARK_TOLERANCE ) + +DALI_SIGNAL_REGISTRATION( Slider, "value-changed", SIGNAL_VALUE_CHANGED ) +DALI_SIGNAL_REGISTRATION( Slider, "mark", SIGNAL_MARK ) + +DALI_TYPE_REGISTRATION_END() + const float BACKING_Z = -0.1f; const float PROGRESS_Z = 0.1f; const float HANDLE_Z = 1.0f; @@ -115,50 +122,7 @@ const bool DEFAULT_SHOW_VALUE = true; const bool DEFAULT_ENABLED = true; const bool DEFAULT_SNAP_TO_MARKS = false; -// Signals - -const char* const SIGNAL_VALUE_CHANGED = "value-changed"; -const char* const SIGNAL_MARK = "mark"; - -BaseHandle Create() -{ - return Dali::Toolkit::Slider::New(); -} - -TypeRegistration typeRegistration( typeid( Dali::Toolkit::Slider ), typeid( Dali::Toolkit::Control ), Create ); - -SignalConnectorType signalConnector1( typeRegistration, SIGNAL_VALUE_CHANGED, &Toolkit::Internal::Slider::DoConnectSignal ); -SignalConnectorType signalConnector2( typeRegistration, SIGNAL_MARK, &Toolkit::Internal::Slider::DoConnectSignal ); - -PropertyRegistration property1( typeRegistration, "lower-bound", Toolkit::Slider::LOWER_BOUND_PROPERTY, Property::FLOAT, &Slider::SetProperty, &Slider::GetProperty ); -PropertyRegistration property2( typeRegistration, "upper-bound", Toolkit::Slider::UPPER_BOUND_PROPERTY, Property::FLOAT, &Slider::SetProperty, &Slider::GetProperty ); -PropertyRegistration property3( typeRegistration, "value", Toolkit::Slider::VALUE_PROPERTY, Property::FLOAT, &Slider::SetProperty, &Slider::GetProperty ); - -PropertyRegistration property4( typeRegistration, "hit-region", Toolkit::Slider::HIT_REGION_PROPERTY, Property::VECTOR2, &Slider::SetProperty, &Slider::GetProperty ); -PropertyRegistration property5( typeRegistration, "backing-region", Toolkit::Slider::BACKING_REGION_PROPERTY, Property::VECTOR2, &Slider::SetProperty, &Slider::GetProperty ); -PropertyRegistration property6( typeRegistration, "handle-region", Toolkit::Slider::HANDLE_REGION_PROPERTY, Property::VECTOR2, &Slider::SetProperty, &Slider::GetProperty ); - -PropertyRegistration property7( typeRegistration, "backing-image-name", Toolkit::Slider::BACKING_IMAGE_NAME_PROPERTY, Property::STRING, &Slider::SetProperty, &Slider::GetProperty ); -PropertyRegistration property8( typeRegistration, "handle-image-name", Toolkit::Slider::HANDLE_IMAGE_NAME_PROPERTY, Property::STRING, &Slider::SetProperty, &Slider::GetProperty ); -PropertyRegistration property9( typeRegistration, "progress-image-name", Toolkit::Slider::PROGRESS_IMAGE_NAME_PROPERTY, Property::STRING, &Slider::SetProperty, &Slider::GetProperty ); -PropertyRegistration property10( typeRegistration, "popup-image-name", Toolkit::Slider::POPUP_IMAGE_NAME_PROPERTY, Property::STRING, &Slider::SetProperty, &Slider::GetProperty ); -PropertyRegistration property11( typeRegistration, "popup-arrow-image-name", Toolkit::Slider::POPUP_ARROW_IMAGE_NAME_PROPERTY, Property::STRING, &Slider::SetProperty, &Slider::GetProperty ); - -PropertyRegistration property12( typeRegistration, "disable-color", Toolkit::Slider::DISABLE_COLOR_PROPERTY, Property::VECTOR4, &Slider::SetProperty, &Slider::GetProperty ); -PropertyRegistration property13( typeRegistration, "popup-text-color", Toolkit::Slider::POPUP_TEXT_COLOR_PROPERTY, Property::VECTOR4, &Slider::SetProperty, &Slider::GetProperty ); - -PropertyRegistration property14( typeRegistration, "value-precision", Toolkit::Slider::VALUE_PRECISION_PROPERTY, Property::INTEGER, &Slider::SetProperty, &Slider::GetProperty ); - -PropertyRegistration property15( typeRegistration, "show-popup", Toolkit::Slider::SHOW_POPUP_PROPERTY, Property::BOOLEAN, &Slider::SetProperty, &Slider::GetProperty ); -PropertyRegistration property16( typeRegistration, "show-value", Toolkit::Slider::SHOW_VALUE_PROPERTY, Property::BOOLEAN, &Slider::SetProperty, &Slider::GetProperty ); - -PropertyRegistration property17( typeRegistration, "enabled", Toolkit::Slider::ENABLED_PROPERTY, Property::BOOLEAN, &Slider::SetProperty, &Slider::GetProperty ); - -PropertyRegistration property18( typeRegistration, "marks", Toolkit::Slider::MARKS_PROPERTY, Property::ARRAY, &Slider::SetProperty, &Slider::GetProperty ); -PropertyRegistration property19( typeRegistration, "snap-to-marks", Toolkit::Slider::SNAP_TO_MARKS_PROPERTY, Property::BOOLEAN, &Slider::SetProperty, &Slider::GetProperty ); -PropertyRegistration property20( typeRegistration, "mark-tolerance", Toolkit::Slider::MARK_TOLERANCE_PROPERTY, Property::FLOAT, &Slider::SetProperty, &Slider::GetProperty ); - -} // namespace +} // Unnamed namespace /////////////////////////////////////////////////////////////////////////////////////////////////// // Slider @@ -801,16 +765,14 @@ bool Slider::MarkReached( float value, int& outIndex ) outIndex = current; return true; } + + if( value < mark ) + { + tail = current - 1; + } else { - if( value < mark ) - { - tail = current - 1; - } - else - { - head = current + 1; - } + head = current + 1; } } @@ -1031,121 +993,121 @@ void Slider::SetProperty( BaseObject* object, Property::Index propertyIndex, con switch ( propertyIndex ) { - case Toolkit::Slider::LOWER_BOUND_PROPERTY: + case Toolkit::Slider::Property::LOWER_BOUND: { sliderImpl.SetLowerBound( value.Get< float >() ); break; } - case Toolkit::Slider::UPPER_BOUND_PROPERTY: + case Toolkit::Slider::Property::UPPER_BOUND: { sliderImpl.SetUpperBound( value.Get< float >() ); break; } - case Toolkit::Slider::VALUE_PROPERTY: + case Toolkit::Slider::Property::VALUE: { sliderImpl.SetValue( value.Get< float >() ); break; } - case Toolkit::Slider::HIT_REGION_PROPERTY: + case Toolkit::Slider::Property::HIT_REGION: { sliderImpl.SetHitRegion( value.Get< Vector2 >() ); break; } - case Toolkit::Slider::BACKING_REGION_PROPERTY: + case Toolkit::Slider::Property::BACKING_REGION: { sliderImpl.SetBackingRegion( value.Get< Vector2 >() ); break; } - case Toolkit::Slider::HANDLE_REGION_PROPERTY: + case Toolkit::Slider::Property::HANDLE_REGION: { sliderImpl.SetHandleRegion( value.Get< Vector2 >() ); break; } - case Toolkit::Slider::BACKING_IMAGE_NAME_PROPERTY: + case Toolkit::Slider::Property::BACKING_IMAGE_NAME: { sliderImpl.SetBackingImageName( value.Get< std::string >() ); break; } - case Toolkit::Slider::HANDLE_IMAGE_NAME_PROPERTY: + case Toolkit::Slider::Property::HANDLE_IMAGE_NAME: { sliderImpl.SetHandleImageName( value.Get< std::string >() ); break; } - case Toolkit::Slider::PROGRESS_IMAGE_NAME_PROPERTY: + case Toolkit::Slider::Property::PROGRESS_IMAGE_NAME: { sliderImpl.SetProgressImageName( value.Get< std::string >() ); break; } - case Toolkit::Slider::POPUP_IMAGE_NAME_PROPERTY: + case Toolkit::Slider::Property::POPUP_IMAGE_NAME: { sliderImpl.SetPopupImageName( value.Get< std::string >() ); break; } - case Toolkit::Slider::POPUP_ARROW_IMAGE_NAME_PROPERTY: + case Toolkit::Slider::Property::POPUP_ARROW_IMAGE_NAME: { sliderImpl.SetPopupArrowImageName( value.Get< std::string >() ); break; } - case Toolkit::Slider::DISABLE_COLOR_PROPERTY: + case Toolkit::Slider::Property::DISABLE_COLOR: { sliderImpl.SetDisableColor( value.Get< Vector4 >() ); break; } - case Toolkit::Slider::POPUP_TEXT_COLOR_PROPERTY: + case Toolkit::Slider::Property::POPUP_TEXT_COLOR: { sliderImpl.SetPopupTextColor( value.Get< Vector4 >() ); break; } - case Toolkit::Slider::VALUE_PRECISION_PROPERTY: + case Toolkit::Slider::Property::VALUE_PRECISION: { sliderImpl.SetValuePrecision( value.Get< int >() ); break; } - case Toolkit::Slider::SHOW_POPUP_PROPERTY: + case Toolkit::Slider::Property::SHOW_POPUP: { sliderImpl.SetShowPopup( value.Get< bool >() ); break; } - case Toolkit::Slider::SHOW_VALUE_PROPERTY: + case Toolkit::Slider::Property::SHOW_VALUE: { sliderImpl.SetShowValue( value.Get< bool >() ); break; } - case Toolkit::Slider::ENABLED_PROPERTY: + case Toolkit::Slider::Property::ENABLED: { sliderImpl.SetEnabled( value.Get< bool >() ); break; } - case Toolkit::Slider::MARKS_PROPERTY: + case Toolkit::Slider::Property::MARKS: { sliderImpl.SetMarks( value.Get< Property::Array >() ); break; } - case Toolkit::Slider::SNAP_TO_MARKS_PROPERTY: + case Toolkit::Slider::Property::SNAP_TO_MARKS: { sliderImpl.SetSnapToMarks( value.Get< bool >() ); break; } - case Toolkit::Slider::MARK_TOLERANCE_PROPERTY: + case Toolkit::Slider::Property::MARK_TOLERANCE: { sliderImpl.SetMarkTolerance( value.Get< float >() ); break; @@ -1166,122 +1128,122 @@ Property::Value Slider::GetProperty( BaseObject* object, Property::Index propert switch ( propertyIndex ) { - case Toolkit::Slider::LOWER_BOUND_PROPERTY: + case Toolkit::Slider::Property::LOWER_BOUND: { value = sliderImpl.GetLowerBound(); break; } - case Toolkit::Slider::UPPER_BOUND_PROPERTY: + case Toolkit::Slider::Property::UPPER_BOUND: { value = sliderImpl.GetUpperBound(); break; } - case Toolkit::Slider::VALUE_PROPERTY: + case Toolkit::Slider::Property::VALUE: { value = sliderImpl.GetValue(); break; } - case Toolkit::Slider::HIT_REGION_PROPERTY: + case Toolkit::Slider::Property::HIT_REGION: { value = sliderImpl.GetHitRegion(); break; } - case Toolkit::Slider::BACKING_REGION_PROPERTY: + case Toolkit::Slider::Property::BACKING_REGION: { value = sliderImpl.GetBackingRegion(); break; } - case Toolkit::Slider::HANDLE_REGION_PROPERTY: + case Toolkit::Slider::Property::HANDLE_REGION: { value = sliderImpl.GetHandleRegion(); break; } - case Toolkit::Slider::BACKING_IMAGE_NAME_PROPERTY: + case Toolkit::Slider::Property::BACKING_IMAGE_NAME: { value = sliderImpl.GetBackingImageName(); break; } - case Toolkit::Slider::HANDLE_IMAGE_NAME_PROPERTY: + case Toolkit::Slider::Property::HANDLE_IMAGE_NAME: { value = sliderImpl.GetHandleImageName(); break; } - case Toolkit::Slider::PROGRESS_IMAGE_NAME_PROPERTY: + case Toolkit::Slider::Property::PROGRESS_IMAGE_NAME: { value = sliderImpl.GetProgressImageName(); break; } - case Toolkit::Slider::POPUP_IMAGE_NAME_PROPERTY: + case Toolkit::Slider::Property::POPUP_IMAGE_NAME: { value = sliderImpl.GetPopupImageName(); break; } - case Toolkit::Slider::POPUP_ARROW_IMAGE_NAME_PROPERTY: + case Toolkit::Slider::Property::POPUP_ARROW_IMAGE_NAME: { value = sliderImpl.GetPopupArrowImageName(); break; } - case Toolkit::Slider::DISABLE_COLOR_PROPERTY: + case Toolkit::Slider::Property::DISABLE_COLOR: { value = sliderImpl.GetDisableColor(); break; } - case Toolkit::Slider::POPUP_TEXT_COLOR_PROPERTY: + case Toolkit::Slider::Property::POPUP_TEXT_COLOR: { value = sliderImpl.GetPopupTextColor(); break; } - case Toolkit::Slider::VALUE_PRECISION_PROPERTY: + case Toolkit::Slider::Property::VALUE_PRECISION: { value = sliderImpl.GetValuePrecision(); break; } - case Toolkit::Slider::SHOW_POPUP_PROPERTY: + case Toolkit::Slider::Property::SHOW_POPUP: { value = sliderImpl.GetShowPopup(); break; } - case Toolkit::Slider::SHOW_VALUE_PROPERTY: + case Toolkit::Slider::Property::SHOW_VALUE: { value = sliderImpl.GetShowValue(); break; } - case Toolkit::Slider::ENABLED_PROPERTY: + case Toolkit::Slider::Property::ENABLED: { value = sliderImpl.IsEnabled(); break; } - case Toolkit::Slider::MARKS_PROPERTY: + case Toolkit::Slider::Property::MARKS: { // TODO: Need to be able to return a PropertyArray // value = sliderImpl.GetMarks(); break; } - case Toolkit::Slider::SNAP_TO_MARKS_PROPERTY: + case Toolkit::Slider::Property::SNAP_TO_MARKS: { value = sliderImpl.GetSnapToMarks(); break; } - case Toolkit::Slider::MARK_TOLERANCE_PROPERTY: + case Toolkit::Slider::Property::MARK_TOLERANCE: { value = sliderImpl.GetMarkTolerance(); break;