+ * Struct to hold data for rows and columns
+ *
+ * If sizePolicy is FIXED then size is the absolute size to use.
+ * If sizePolicy is FIT or FILL then size is the calculated value of size.
+ */
+ struct RowColumnData
+ {
+ /**
+ * Default constructor
+ */
+ RowColumnData()
+ : size( 0.0f ),
+ fillRatio( 0.0f ),
+ sizePolicy( FILL ),
+ userFillRatio( false )
+ {
+ }
+
+ /**
+ * 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, CellSizePolicy newSizePolicy, bool newUserFillRatio )
+ : size( newSize ),
+ fillRatio( newFillRatio ),
+ sizePolicy( newSizePolicy ),
+ userFillRatio( newUserFillRatio )
+ {
+ }
+
+ float size; ///< Set or calculated size
+ float fillRatio; ///< Ratio to fill remaining space
+ CellSizePolicy sizePolicy; ///< The size policy used to interpret the size value
+ bool userFillRatio : 1; ///< FillRatio was set by user
+ };
+
+ 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:
+
+ /**