+ * Struct to hold data for rows and columns
+ *
+ * If sizePolicy is FIXED then size is the absolute size to use.
+ * If sizePolicy is FIT, RELATIVE or FILL then size is the calculated value of size.
+ */
+ struct RowColumnData
+ {
+ /**
+ * Default constructor
+ */
+ RowColumnData()
+ : size( 0.0f ),
+ fillRatio( 0.0f ),
+ position( 0.0f ),
+ sizePolicy( Toolkit::TableView::FILL )
+ {
+ }
+
+ /**
+ * Constructor
+ *
+ * @param[in] newSize The size to set for this data
+ * @param[in] newSizePolicy The policy used to interpret the size value
+ */
+ RowColumnData( float newSize, float newFillRatio, Toolkit::TableView::LayoutPolicy newSizePolicy )
+ : size( newSize ),
+ fillRatio( newFillRatio ),
+ position( 0.0f ),
+ sizePolicy( newSizePolicy )
+ {
+ }
+
+ float size; ///< Set or calculated size
+ float fillRatio; ///< Ratio to fill remaining space, only valid with RELATIVE or FILL policy
+ float position; ///< Position of the row/column, this value is updated during every Relayout round
+ Toolkit::TableView::LayoutPolicy sizePolicy; ///< The size policy used to interpret the size value
+ };
+
+ typedef Dali::Vector<RowColumnData> RowColumnArray;
+
+public:
+
+ /**
+ * Structure for the layout data
+ */
+ struct CellData
+ {
+ CellData()
+ : horizontalAlignment( HorizontalAlignment::LEFT ),
+ verticalAlignment( VerticalAlignment::TOP )
+ {
+ }
+
+ // data members
+ Dali::Actor actor;
+ Toolkit::TableView::CellPosition position;
+ HorizontalAlignment::Type horizontalAlignment;
+ VerticalAlignment::Type verticalAlignment;
+ };
+
+private:
+
+ /**