Purge underscored header file barriers
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / controls / slider / slider-impl.h
index a8003c7..bbae4d5 100755 (executable)
@@ -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) 2019 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.
  */
 
 // EXTERNAL INCLUDES
-#include <dali/public-api/actors/image-actor.h>
 #include <dali/public-api/adaptor-framework/timer.h>
+#include <dali/public-api/object/property-array.h>
+#include <dali/public-api/object/property-map.h>
 
 // INTERNAL INCLUDES
 #include <dali-toolkit/public-api/controls/control-impl.h>
 #include <dali-toolkit/public-api/controls/slider/slider.h>
 #include <dali-toolkit/public-api/controls/text-controls/text-label.h>
+#include <dali-toolkit/public-api/controls/image-view/image-view.h>
 
 namespace Dali
 {
@@ -119,39 +121,32 @@ public:
   const Vector2& GetHitRegion() const;
 
   /**
-   * Set backing region
+   * Set the track region
    *
-   * @param[in] region The backing region
+   * @param[in] region The track region
    */
-  void SetBackingRegion( const Vector2& region );
+  void SetTrackRegion( const Vector2& region );
 
   /**
-   * Get backing region
+   * Get the track region
    *
-   * @return The backing region
+   * @return The track region
    */
-  const Vector2& GetBackingRegion() const;
+  const Vector2& GetTrackRegion() const;
 
   /**
-   * @brief Set the disable color.
+   * @brief Set the disabled color.
    *
-   * @param[in] color The disable color.
+   * @param[in] color The disabled color.
    */
-  void SetDisableColor( const Vector4& color );
+  void SetDisabledColor( const Vector4& color );
 
   /**
-   * @brief Get disable color
+   * @brief Get disabled color
    *
-   * @return The disable color
+   * @return The disabled color
    */
-  Vector4 GetDisableColor() const;
-
-  /**
-   * Get popup text color
-   *
-   * @return The popup text color
-   */
-  Vector4 GetPopupTextColor() const;
+  Vector4 GetDisabledColor() const;
 
   /**
    * Set the value precision to be used for numbers in the slider
@@ -240,9 +235,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.
@@ -287,9 +282,10 @@ protected:
   virtual ~Slider();
 
   /**
-   * @copydoc Control::OnControlSizeSet( const Vector3& size )
+   * @copydoc CustomActorImpl::OnRelayout
    */
-  virtual void OnControlSizeSet( const Vector3& size );
+  virtual void OnRelayout( const Vector2& size, RelayoutContainer& container );
+
 
 private:
 
@@ -329,13 +325,13 @@ private:
   virtual void OnInitialize();
 
   /**
-   * 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 TouchData& touch );
 
   /**
    * Pan gesture event
@@ -395,39 +391,39 @@ 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
@@ -511,74 +507,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
@@ -590,23 +614,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
@@ -619,25 +650,18 @@ private:
   void DestroyHandleValueDisplay();
 
   /**
-   * Update the color of the popup text
-   *
-   * @param[in] color The new color
-   */
-  void SetPopupTextColor( const Vector4& color );
-
-  /**
-   * Set handle region
+   * Set the size of the handle
    *
-   * @param[in] region The handle region
+   * @param[in] size The handle size
    */
-  void SetHandleRegion( const Vector2& region );
+  void SetHandleSize( const Vector2& size );
 
   /**
-   * Get handle region
+   * Get the size of the handle
    *
-   * @return The handle region
+   * @return The handle size
    */
-  const Vector2& GetHandleRegion() const;
+  const Vector2& GetHandleSize() const;
 
   /**
    * Set the lower bound of the slider's value
@@ -680,21 +704,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::TextLabel mValueTextLabel;         //< The text value in popup
-  Toolkit::TextLabel mHandleValueTextLabel;   ///< The text value on handle
+  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
 
@@ -702,15 +726,23 @@ 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
+
+  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 mDisableColor;    ///< The color to tint the slider when disabled
-  Vector4 mPopupTextColor;  ///< The color of the popup text
+  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
@@ -751,4 +783,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