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.h;h=c078271e84026ba0f06f97f0c29bc832bc07d77f;hp=884f9b5cd10fdc28a99fc045428b10db946e8532;hb=8a647e87a01c5c78451653c1264a9eea81ac9b20;hpb=1db0a8becea3dbdebaa942d934d91824a92434e7 diff --git a/dali-toolkit/internal/controls/slider/slider-impl.h b/dali-toolkit/internal/controls/slider/slider-impl.h old mode 100755 new mode 100644 index 884f9b5..c078271 --- a/dali-toolkit/internal/controls/slider/slider-impl.h +++ b/dali-toolkit/internal/controls/slider/slider-impl.h @@ -1,8 +1,8 @@ -#ifndef __DALI_TOOLKIT_INTERNAL_SLIDER_H__ -#define __DALI_TOOLKIT_INTERNAL_SLIDER_H__ +#ifndef DALI_TOOLKIT_INTERNAL_SLIDER_H +#define DALI_TOOLKIT_INTERNAL_SLIDER_H /* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * Copyright (c) 2020 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,12 +19,16 @@ */ // EXTERNAL INCLUDES -#include #include +#include +#include // INTERNAL INCLUDES #include #include +#include +#include +#include namespace Dali { @@ -48,13 +52,6 @@ class Slider : public Control { public: - // Properties - enum - { - SLIDER_PROPERTY_START_INDEX = Control::CONTROL_PROPERTY_END_INDEX + 1, - SLIDER_PROPERTY_END_INDEX = SLIDER_PROPERTY_START_INDEX + 1000 ///< Reserving 1000 property indices - }; - typedef Property::Array MarkList; /** @@ -125,39 +122,32 @@ public: const Vector2& GetHitRegion() const; /** - * Set backing region - * - * @param[in] region The backing region - */ - void SetBackingRegion( const Vector2& region ); - - /** - * Get backing region + * Set the track region * - * @return The backing region + * @param[in] region The track region */ - const Vector2& GetBackingRegion() const; + void SetTrackRegion( const Vector2& region ); /** - * @brief Set the disable color. + * Get the track region * - * @param[in] color The disable color. + * @return The track region */ - void SetDisableColor( const Vector4& color ); + const Vector2& GetTrackRegion() const; /** - * @brief Get disable color + * @brief Set the disabled color. * - * @return The disable color + * @param[in] color The disabled color. */ - Vector4 GetDisableColor() const; + void SetDisabledColor( const Vector4& color ); /** - * Get popup text color + * @brief Get disabled color * - * @return The popup text color + * @return The disabled color */ - Vector4 GetPopupTextColor() const; + Vector4 GetDisabledColor() const; /** * Set the value precision to be used for numbers in the slider @@ -246,9 +236,9 @@ public: Toolkit::Slider::ValueChangedSignalType& SlidingFinishedSignal(); /** - * @copydoc Toolkit::Slider::MarkSignal() + * @copydoc Toolkit::Slider::MarkReachedSignal() */ - Toolkit::Slider::MarkSignalType& MarkSignal(); + Toolkit::Slider::MarkReachedSignalType& MarkReachedSignal(); /** * Connects a callback function with the object's signals. @@ -293,9 +283,10 @@ protected: virtual ~Slider(); /** - * @copydoc Control::OnControlSizeSet( const Vector3& size ) + * @copydoc CustomActorImpl::OnRelayout */ - virtual void OnControlSizeSet( const Vector3& size ); + void OnRelayout( const Vector2& size, RelayoutContainer& container ) override; + private: @@ -332,16 +323,16 @@ private: /** * @copydoc Toolkit::Control::OnInitialize() */ - virtual void OnInitialize(); + void OnInitialize() override; /** - * Hit region touch event + * Hit region touch * * @param[in] actor The actor the event is raised for - * @param[in] event The touch event info - * @return If the event is handled or not + * @param[in] touch The touch info + * @return If touch is handled or not */ - bool OnTouchEvent( Actor actor, const TouchEvent& event ); + bool OnTouch( Actor actor, const TouchEvent& touch ); /** * Pan gesture event @@ -401,46 +392,46 @@ private: Actor CreateHitRegion(); /** - * Create the backing for the slider + * Create the track for the slider * - * @return The backing actor + * @return The track actor */ - ImageActor CreateBacking(); + Toolkit::ImageView CreateTrack(); /** - * Create the progress backing for the slider + * Create the progress track for the slider * - * @return The backing actor + * @return The track actor */ - ImageActor CreateProgress(); + Toolkit::ImageView CreateProgress(); /** * Create the handle for the slider * * @return The created image handle */ - ImageActor CreateHandle(); + Toolkit::ImageView CreateHandle(); /** * Create the popup arrow * * @return The created image handle */ - ImageActor CreatePopupArrow(); + Toolkit::ImageView CreatePopupArrow(); /** * Create the popup * * @return The created image handle */ - ImageActor CreatePopup(); + Toolkit::ImageView CreatePopup(); /** * Create the textview for the popup * * @return The textview created for the popup */ - //Toolkit::TextView CreatePopupText(); + Toolkit::TextLabel CreatePopupText(); /** * Create the value display for the slider @@ -517,74 +508,102 @@ private: void DisplayValue( float value, bool raiseSignals ); /** - * Create the image for the backing + * Create the image for the track + * + * @param[in] filename The track image + */ + void SetTrackVisual( const std::string& filename ); + + /** + * @brief Set the track visual from an Dali::Property::Map * - * @param[in] imageName The name of the image to load and set + * @param[in] map The Dali::Property::Map to use for to display */ - void SetBackingImageName( const std::string& imageName ); + void SetTrackVisual( Dali::Property::Map map ); /** - * @brief Return the backing image file name. + * @brief Return the track image. * - * @return The backing image file name. + * @return The track image. */ - std::string GetBackingImageName(); + std::string GetTrackVisual(); /** * Create the image for the progress bar * - * @param[in] imageName The name of the image to load and set + * @param[in] filename The progress bar image + */ + void SetProgressVisual( const std::string& filename ); + + /** + * @brief Set the progress visual from an Dali::Property::Map + * + * @param[in] map The Dali::Property::Map to use for to display */ - void SetProgressImageName( const std::string& imageName ); + void SetProgressVisual( Dali::Property::Map map ); /** - * @brief Return the progress image name. + * @brief Return the progress bar image. * - * @return The progress image name if it exists. + * @return The progress bar image if it exists. */ - std::string GetProgressImageName(); + std::string GetProgressVisual(); /** * @brief Create the image for the popup * - * @param[in] imageName The name of the image to load and set + * @param[in] filename The popup image + */ + void CreatePopupImage( const std::string& filename ); + + /** + * @brief Set the popup image + * + * @param[in] filename The popup image to set + */ + void SetPopupVisual( const std::string& filename ); + + /** + * @brief Set the popup from an Dali::Property::Map + * + * @param[in] map The Dali::Property::Map to use for to display */ - void CreatePopupImage( const std::string& imageName ); + void SetPopupVisual( Dali::Property::Map map ); /** - * @brief Set the popup name + * @brief Return the popup image. * - * @param[in] imageName The name of the image to set + * @return The popup image if it exists. */ - void SetPopupImageName( const std::string& imageName ); + std::string GetPopupVisual(); /** - * @brief Return the popup image name. + * @brief Set the popup arrow image * - * @return The name of the popup image if it exists. + * @param[in] filename The popup arrow image to set */ - std::string GetPopupImageName(); + void SetPopupArrowVisual( const std::string& filename ); /** - * @brief Set the popup arrow image name + * @brief Set the popup arrow from an Dali::Property::Map * - * @param[in] imageName The name of the image to set + * @param[in] map The Dali::Property::Map to use for to display */ - void SetPopupArrowImageName( const std::string& imageName ); + void SetPopupArrowVisual( Dali::Property::Map map ); /** - * @brief Return the popup arrow image name. + * @brief Return the popup arrow image. * - * @return The name of the popup image if it exists. + * @return The popup arrow image if it exists. */ - std::string GetPopupArrowImageName(); + std::string GetPopupArrowVisual(); /** * Create the image for the popup arrow * - * @param[in] imageName The name of the image to load and set + * @param[in] filename The popup arrow image to load and set */ - void CreatePopupArrowImage( const std::string& imageName ); + void CreatePopupArrowImage( const std::string& filename ); /** * Set the size of the progress bar region @@ -596,23 +615,30 @@ private: /** * Create the image for the handle * - * @param[in] imageName The name of the image to load and set + * @param[in] filename The handle image */ - void SetHandleImageName( const std::string& imageName ); + void SetHandleVisual( const std::string& filename ); /** - * @brief Return the handle image name. + * @brief Set the handle visual from an Dali::Property::Map * - * @return The name of the image handle if it exists. + * @param[in] map The Dali::Property::Map to use for to display */ - std::string GetHandleImageName(); + void SetHandleVisual( Property::Map map ); /** - * Set the size of the handle region + * @brief Return the handle image. * - * @param[in] region The size of the region to set + * @return The handle image if it exists. + */ + std::string GetHandleVisual(); + + /** + * Reset the size of the handle + * + * @param[in] size The size of the handle to set */ - void ResizeHandleRegion( const Vector2& region ); + void ResizeHandleSize( const Vector2& size ); /** * Create and display the value on the handle @@ -625,25 +651,18 @@ private: void DestroyHandleValueDisplay(); /** - * Update the color of the popup text + * Set the size of the handle * - * @param[in] color The new color + * @param[in] size The handle size */ - void SetPopupTextColor( const Vector4& color ); + void SetHandleSize( const Vector2& size ); /** - * Set handle region + * Get the size of the handle * - * @param[in] region The handle region + * @return The handle size */ - void SetHandleRegion( const Vector2& region ); - - /** - * Get handle region - * - * @return The handle region - */ - const Vector2& GetHandleRegion() const; + const Vector2& GetHandleSize() const; /** * Set the lower bound of the slider's value @@ -686,19 +705,21 @@ private: Domain mDomain; ///< Current domain of the handle Actor mHitArea; ///< The input handler - ImageActor mBacking; ///< Backing image - ImageActor mHandle; ///< Slider handle - ImageActor mProgress; ///< Progress backing Actor mValueDisplay; ///< Display of the value - ImageActor mPopup; ///< Popup backing - ImageActor mPopupArrow; ///< Popup arrow backing - + Toolkit::ImageView mTrack; ///< Track image + Toolkit::ImageView mHandle; ///< Slider handle + Toolkit::ImageView mProgress; ///< Progress bar + Toolkit::ImageView mPopup; ///< Popup backing + Toolkit::ImageView mPopupArrow; ///< Popup arrow backing + + Toolkit::TextLabel mValueTextLabel; //< The text value in popup + Toolkit::TextLabel mHandleValueTextLabel; ///< The text value on handle Vector2 mHandleLastTouchPoint; ///< The last touch point for the handle Timer mValueTimer; ///< Timer used to hide value view - Toolkit::Slider::ValueChangedSignalType mValueChangedSignal; ///< Signal emitted when the value is changed + 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 + Toolkit::Slider::MarkReachedSignalType mMarkReachedSignal; ///< Signal emitted when a mark is reached SliderState mState; ///< The state of the slider @@ -706,27 +727,47 @@ private: MarkList mMarks; ///< List of discreet marks - std::string mPopupImageName; ///< Image name for popup image - std::string mPopupArrowImageName; ///< Image name for popup arrow + std::string mPopupVisual; ///< Image for popup image + std::string mPopupArrowVisual; ///< Image for popup arrow image + std::string mTrackVisual; ///< Image for track image + std::string mHandleVisual; ///< Image for handle image + std::string mProgressVisual; ///< Image for progress bar image - Vector4 mDisableColor; ///< The color to tint the slider when disabled - Vector4 mPopupTextColor; ///< The color of the popup text + Property::Map mPopupMap; ///< the Property::Map if the image came from a Property::Map, empty otherwise + Property::Map mTrackMap; ///< the Property::Map if the image came from a Property::Map, empty otherwise + Property::Map mHandleMap; ///< the Property::Map if the image came from a Property::Map, empty otherwise + Property::Map mProgressMap; ///< the Property::Map if the image came from a Property::Map, empty otherwise + Property::Map mPopupArrowMap; ///< the Property::Map if the image came from a Property::Map, empty otherwise + + Vector4 mDisabledColor; ///< The color to tint the slider when disabled Vector2 mHitRegion; ///< Size of hit region - Vector2 mBackingRegion; ///< Size of backing region - Vector2 mHandleRegionSize; ///< Size of the handle region + Vector2 mTrackRegion; ///< Size of track region + Vector2 mHandleSize; ///< Size of the handle - float mLowerBound; ///< Lower bound on value - float mUpperBound; ///< Upper bound on value - float mValue; ///< Current value of slider + float mLowerBound = 0.0f; ///< Lower bound on value + float mUpperBound = 1.0f; ///< Upper bound on value + float mValue = 0.0f; ///< Current value of slider - float mMarkTolerance; ///< Tolerance in percentage of slider width for which to snap to marks + float mMarkTolerance = 0.05f; ///< Tolerance in percentage of slider width for which to snap to marks int mValuePrecision; ///< The precision to use for outputting the value bool mShowPopup : 1, ///< Show the popup or not mShowValue : 1, ///< Whether to display the value number or not on the handle mSnapToMarks : 1; ///< Turn on or off snapping to marks + +protected: + struct AccessibleImpl : public Control::Impl::AccessibleImpl, + public virtual Dali::Accessibility::Value + { + using Control::Impl::AccessibleImpl::AccessibleImpl; + double GetMinimum() override; + double GetCurrent() override; + double GetMaximum() override; + bool SetCurrent( double ) override; + double GetMinimumIncrement() override; + }; }; } // namespace Internal @@ -755,4 +796,4 @@ inline const Toolkit::Internal::Slider& GetImpl( const Toolkit::Slider& pub ) } // namespace Dali -#endif // __DALI_TOOLKIT_INTERNAL_SLIDER_H__ +#endif // DALI_TOOLKIT_INTERNAL_SLIDER_H