CanvasRenderer: Refactoring tvgObject management
[platform/core/uifw/dali-adaptor.git] / dali / internal / canvas-renderer / common / drawable-impl.h
index 10e25f5..8222833 100644 (file)
@@ -41,6 +41,17 @@ class Drawable : public Dali::BaseObject
 {
 public:
   /**
+   * @brief Enumeration for type of drawable.
+   */
+  enum class Types
+  {
+    NONE = 0,      ///< Means that type is not defined.
+    SHAPE,         ///< Meaning of Shape class that inherits Drawable.
+    DRAWABLE_GROUP ///< Meaning of DrawableGorup class that inherits Drawable.
+  };
+
+public:
+  /**
    * @brief Constructor
    */
   Drawable();
@@ -86,16 +97,21 @@ public:
   virtual bool Transform(const Dali::Matrix3& matrix);
 
   /**
-   * @brief Set whether drawable added to the other object(canvas or drawable) or not.
+   * @copydoc Dali::CanvasRenderer::Drawable::GetBoundingBox
+   */
+  virtual Rect<float> GetBoundingBox() const;
+
+  /**
+   * @brief Set whether this drawable object was added to other object(CanvasRenderer or DrawableGroup) or not.
    * @param[in] added Ture if added, false otherwise.
    */
-  virtual void SetDrawableAdded(bool added);
+  virtual void SetAdded(bool added);
 
   /**
-   * @brief Returns whether this object was added to another object(canvas or drawable).
+   * @brief Returns whether this drawable object was added to another object(CanvasRenderer or DrawableGroup).
    * @return Returns Ture if added, false otherwise.
    */
-  virtual bool IsDrawableAdded();
+  virtual bool IsAdded() const;
 
   /**
    * @brief Returns a drawable object pointer.
@@ -122,6 +138,18 @@ public:
   virtual bool GetChanged() const;
 
   /**
+   * @brief Set drawable's type.
+   * @param[in] type Type of drawable.
+   */
+  virtual void SetType(Types type);
+
+  /**
+   * @brief Get drawable's type.
+   * @return Returns type of drawable.
+   */
+  virtual Types GetType() const;
+
+  /**
    * @brief Returns a drawable's implements object pointer.
    * @return Returns a drawable's implements object pointer.
    */
@@ -133,7 +161,7 @@ public:
   Drawable& operator=(Drawable&&) = delete;
 
 private:
-  Dali::Internal::Adaptor::Drawable* pImpl = nullptr;
+  Dali::Internal::Adaptor::Drawable* mImpl = nullptr;
 };
 
 } // namespace Adaptor