Add size animation in layout measure phase.
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / devel-api / layouting / layout-parent-impl.h
index a6d76c3..a55c7cb 100644 (file)
@@ -25,20 +25,40 @@ namespace Toolkit
 {
 namespace Internal
 {
+class LayoutItem;
 
 /**
- * Interface that allows a layout to determine its layout parent.
- *
- * Needed to prevent circular inheritance - most LayoutBases have a parent,
- * but parenting is provided by LayoutGroup, which is a sub-class of LayoutBase.
+ * Interface that defines a layout Parent. Enables a layout child to access
+ * methods on its parent, e.g. Remove (during unparenting)
  */
 class DALI_TOOLKIT_API LayoutParent
 {
 public:
   /**
-   * Get the parent of this layout.
+   * @brief Add a child to the parent
+   * @param[in] item The item to add to this layout parent
+   */
+  virtual Toolkit::LayoutGroup::LayoutId Add( LayoutItem& item ) = 0;
+
+  /**
+   * @brief Remove a layout child from this group.
+   * @param[in] childId The layout child id
+   */
+  virtual void Remove( Toolkit::LayoutGroup::LayoutId childId ) = 0;
+
+  /**
+   * @brief Remove a child from this parent
+   * @param[in] item The item to remove from this layout parent
+   */
+  virtual void Remove( LayoutItem& item ) = 0;
+
+  /**
+   * @brief Insert a child to the parent
+   * @param[in] target The target item
+   * @param[in] item The item to insert to this layout parent
    */
-  virtual LayoutParent* GetParent() = 0;
+  virtual Toolkit::LayoutGroup::LayoutId Insert( LayoutItem& target, LayoutItem& item ) = 0;
+
 
 protected:
   virtual ~LayoutParent()
@@ -47,6 +67,7 @@ protected:
 };
 
 
+
 } // namespace Internal
 } // namespace Toolkit
 } // namespace Dali