Remove std::vector from public api
[platform/core/uifw/dali-core.git] / dali / internal / event / actors / actor-impl.h
index b476a0d..412d2a0 100644 (file)
@@ -45,7 +45,7 @@ namespace Dali
 struct KeyEvent;
 struct TouchEvent;
 struct HoverEvent;
-struct MouseWheelEvent;
+struct WheelEvent;
 
 namespace Internal
 {
@@ -57,7 +57,7 @@ class RenderTask;
 struct DynamicsData;
 
 typedef IntrusivePtr< Actor > ActorPtr;
-typedef Dali::ActorContainer ActorContainer; // Store handles to return via public-api
+typedef std::vector< Dali::Actor > ActorContainer; // Store handles to return via public-api
 typedef ActorContainer::iterator ActorIter;
 typedef ActorContainer::const_iterator ActorConstIter;
 
@@ -234,18 +234,6 @@ public:
   Dali::Actor GetChildAt( unsigned int index ) const;
 
   /**
-   * Retrieve the Actor's children.
-   * @return A copy of the container of children.
-   */
-  ActorContainer GetChildren();
-
-  /**
-   * Retrieve the Actor's children.
-   * @return A const reference to the container of children.
-   */
-  const ActorContainer& GetChildren() const;
-
-  /**
    * Retrieve a reference to Actor's children.
    * @note Not for public use.
    * @return A reference to the container of children.
@@ -939,12 +927,16 @@ public:
   Dimension::Type GetDimensionDependency( Dimension::Type dimension ) const;
 
   /**
-   * @copydoc Dali::Actor::SetRelayoutEnabled()
+   * @brief Set the size negotiation relayout enabled on this actor
+   *
+   * @param[in] relayoutEnabled Boolean to enable or disable relayout
    */
   void SetRelayoutEnabled( bool relayoutEnabled );
 
   /**
-   * @copydoc Dali::Actor::IsRelayoutEnabled()
+   * @brief Return if relayout is enabled
+   *
+   * @return Return if relayout is enabled or not for this actor
    */
   bool IsRelayoutEnabled() const;
 
@@ -994,20 +986,6 @@ public:
   void RelayoutRequest( Dimension::Type dimension = Dimension::ALL_DIMENSIONS );
 
   /**
-   * @brief Request to relayout of all actors in the sub-tree below the given actor.
-   *
-   * This flags the actor and all actors below it for relayout. The actual
-   * relayout is performed at the end of the frame. This means that multiple calls to relayout
-   * will not cause multiple relayouts to occur.
-   */
-  void RelayoutRequestTree();
-
-  /*
-   * @copydoc Dali::Actor::PropagateRelayoutFlags
-   */
-  void PropagateRelayoutFlags();
-
-  /**
    * @brief Determine if this actor is dependent on it's parent for relayout
    *
    * @param dimension The dimension(s) to check for
@@ -1056,13 +1034,13 @@ public:
   float CalculateSize( Dimension::Type dimension, const Vector2& maximumSize );
 
   /**
-   * @brief Constain a dimension given the relayout constraints on this actor
+   * @brief Clamp a dimension given the relayout constraints on this actor
    *
    * @param[in] size The size to constrain
    * @param[in] dimension The dimension the size exists in
-   * @return Return the constrained size
+   * @return Return the clamped size
    */
-  float ConstrainDimension( float size, Dimension::Type dimension );
+  float ClampDimension( float size, Dimension::Type dimension );
 
   /**
    * Negotiate a dimension based on the size of the parent
@@ -1186,6 +1164,20 @@ public:
   bool IsLayoutNegotiated( Dimension::Type dimension = Dimension::ALL_DIMENSIONS ) const;
 
   /**
+   * @brief provides the Actor implementation of GetHeightForWidth
+   * @param width to use.
+   * @return the height based on the width.
+   */
+  float GetHeightForWidthBase( float width );
+
+  /**
+   * @brief provides the Actor implementation of GetWidthForHeight
+   * @param height to use.
+   * @return the width based on the height.
+   */
+  float GetWidthForHeightBase( float height );
+
+  /**
    * @brief Calculate the size for a child
    *
    * @param[in] child The child actor to calculate the size for
@@ -1422,10 +1414,10 @@ public:
   bool GetHoverRequired() const;
 
   /**
-   * Query whether the application or derived actor type requires mouse wheel events.
-   * @return True if mouse wheel events are required.
+   * Query whether the application or derived actor type requires wheel events.
+   * @return True if wheel events are required.
    */
-  bool GetMouseWheelEventRequired() const;
+  bool GetWheelEventRequired() const;
 
   /**
    * Query whether the actor is actually hittable.  This method checks whether the actor is
@@ -1469,11 +1461,11 @@ public:
   bool EmitHoverEventSignal( const HoverEvent& event );
 
   /**
-   * Used by the EventProcessor to emit mouse wheel event signals.
-   * @param[in] event The mouse wheel event.
+   * Used by the EventProcessor to emit wheel event signals.
+   * @param[in] event The wheel event.
    * @return True if the event was consumed.
    */
-  bool EmitMouseWheelEventSignal( const MouseWheelEvent& event );
+  bool EmitWheelEventSignal( const WheelEvent& event );
 
   /**
    * @copydoc Dali::Actor::TouchedSignal()
@@ -1486,9 +1478,9 @@ public:
   Dali::Actor::HoverSignalType& HoveredSignal();
 
   /**
-   * @copydoc Dali::Actor::MouseWheelEventSignal()
+   * @copydoc Dali::Actor::WheelEventSignal()
    */
-  Dali::Actor::MouseWheelEventSignalType& MouseWheelEventSignal();
+  Dali::Actor::WheelEventSignalType& WheelEventSignal();
 
   /**
    * @copydoc Dali::Actor::OnStageSignal()
@@ -1528,13 +1520,13 @@ public:
    */
   static bool DoAction( BaseObject* object,
                         const std::string& actionName,
-                        const std::vector< Property::Value >& attributes );
+                        const Property::Map& attributes );
 
 public:
   // For Animation
 
   /**
-   * This should only be called by Animation, when the actor is resized using Animation::Resize().
+   * This should only be called by Animation, when the actors SIZE property is animated.
    *
    * @param[in] animation The animation that resized the actor
    * @param[in] targetSize The new target size of the actor
@@ -1542,6 +1534,14 @@ public:
   void NotifySizeAnimation( Animation& animation, const Vector3& targetSize );
 
   /**
+   * This should only be called by Animation, when the actors SIZE_WIDTH or SIZE_HEIGHT property is animated.
+   *
+   * @param[in] animation The animation that resized the actor
+   * @param[in] targetSize The new target size of the actor
+   */
+  void NotifySizeAnimation( Animation& animation, float targetSize, Property::Index property );
+
+  /**
    * For use in derived classes.
    * This should only be called by Animation, when the actor is resized using Animation::Resize().
    */
@@ -1833,11 +1833,11 @@ private:
 
   /**
    * For use in derived classes.
-   * This is only called if the mouse wheel signal was not consumed.
-   * @param[in] event The mouse event.
+   * This is only called if the wheel signal was not consumed.
+   * @param[in] event The wheel event.
    * @return True if the event should be consumed.
    */
-  virtual bool OnMouseWheelEvent( const MouseWheelEvent& event )
+  virtual bool OnWheelEvent( const WheelEvent& event )
   {
     return false;
   }
@@ -1878,7 +1878,7 @@ protected:
   // Signals
   Dali::Actor::TouchSignalType             mTouchedSignal;
   Dali::Actor::HoverSignalType             mHoveredSignal;
-  Dali::Actor::MouseWheelEventSignalType   mMouseWheelEventSignal;
+  Dali::Actor::WheelEventSignalType        mWheelEventSignal;
   Dali::Actor::OnStageSignalType           mOnStageSignal;
   Dali::Actor::OffStageSignalType          mOffStageSignal;
   Dali::Actor::OnRelayoutSignalType        mOnRelayoutSignal;
@@ -1899,8 +1899,9 @@ protected:
   bool mKeyboardFocusable                          : 1; ///< Whether the actor should be focusable by keyboard navigation
   bool mDerivedRequiresTouch                       : 1; ///< Whether the derived actor type requires touch event signals
   bool mDerivedRequiresHover                       : 1; ///< Whether the derived actor type requires hover event signals
-  bool mDerivedRequiresMouseWheelEvent             : 1; ///< Whether the derived actor type requires mouse wheel event signals
+  bool mDerivedRequiresWheelEvent                  : 1; ///< Whether the derived actor type requires wheel event signals
   bool mOnStageSignalled                           : 1; ///< Set to true before OnStageConnection signal is emitted, and false before OnStageDisconnection
+  bool mInsideOnSizeSet                            : 1; ///< Whether we are inside OnSizeSet
   bool mInheritOrientation                         : 1; ///< Cached: Whether the parent's orientation should be inherited.
   bool mInheritScale                               : 1; ///< Cached: Whether the parent's scale should be inherited.
   DrawMode::Type mDrawMode                         : 2; ///< Cached: How the actor and its children should be drawn