addCell method
Adds cell at the specified row
taking colspan
and rowspan
into account.
The column number will be determined automatically.
Implementation
int addCell(int row, Widget child, {int colspan = 1, int rowspan = 1}) {
_grid[row] ??= {};
var col = 0;
while (_grid[row].containsKey(col)) {
col++;
}
final index = _slots.length;
_slots.add(_TableMetadataSlot(
child: child, col: col, colspan: colspan, row: row, rowspan: rowspan));
for (var r = 0; r < rowspan; r++) {
for (var c = 0; c < colspan; c++) {
var rr = row + r;
_grid[rr] ??= {};
var cc = col + c;
if (!_grid[rr].containsKey(cc)) {
_grid[rr][cc] = index;
}
}
}
return index;
}