diff options
author | bptato <nincsnevem662@gmail.com> | 2023-09-09 22:41:04 +0200 |
---|---|---|
committer | bptato <nincsnevem662@gmail.com> | 2023-09-09 22:41:04 +0200 |
commit | 6943546078a20c763a9bb346b42681efc0d1e527 (patch) | |
tree | 5d6ae1736b7eff63433763637d92b979eb7e0aff /src/layout | |
parent | 330cc2a7692002cadd9f6dee477abcbf14c94976 (diff) | |
download | chawan-6943546078a20c763a9bb346b42681efc0d1e527.tar.gz |
layout: simplify preBuildTableRows
the iterator here was rather pointless
Diffstat (limited to 'src/layout')
-rw-r--r-- | src/layout/engine.nim | 49 |
1 files changed, 13 insertions, 36 deletions
diff --git a/src/layout/engine.nim b/src/layout/engine.nim index f3249cba..1658d91d 100644 --- a/src/layout/engine.nim +++ b/src/layout/engine.nim @@ -1294,53 +1294,30 @@ proc buildTableRow(pctx: TableContext, ctx: RowContext, parent: BlockBox, row.width = x return row -iterator rows(builder: TableBoxBuilder): BoxBuilder {.inline.} = - var header: seq[TableRowBoxBuilder] - var body: seq[TableRowBoxBuilder] - var footer: seq[TableRowBoxBuilder] +proc preBuildTableRows(ctx: var TableContext, builder: TableBoxBuilder, + table: BlockBox) = + var rows: seq[TableRowBoxBuilder] var caption: TableCaptionBoxBuilder for child in builder.children: - assert child.computed{"display"} in ProperTableChild, $child.computed{"display"} + assert child.computed{"display"} in ProperTableChild case child.computed{"display"} of DISPLAY_TABLE_ROW: - body.add(TableRowBoxBuilder(child)) - of DISPLAY_TABLE_HEADER_GROUP: - for child in child.children: - assert child.computed{"display"} == DISPLAY_TABLE_ROW - header.add(TableRowBoxBuilder(child)) - of DISPLAY_TABLE_ROW_GROUP: - for child in child.children: - assert child.computed{"display"} == DISPLAY_TABLE_ROW - body.add(TableRowBoxBuilder(child)) - of DISPLAY_TABLE_FOOTER_GROUP: + rows.add(TableRowBoxBuilder(child)) + of DISPLAY_TABLE_HEADER_GROUP, DISPLAY_TABLE_ROW_GROUP, + DISPLAY_TABLE_FOOTER_GROUP: for child in child.children: assert child.computed{"display"} == DISPLAY_TABLE_ROW - footer.add(TableRowBoxBuilder(child)) + rows.add(TableRowBoxBuilder(child)) of DISPLAY_TABLE_CAPTION: if caption == nil: caption = TableCaptionBoxBuilder(child) else: discard if caption != nil: - yield caption - for child in header: - yield child - for child in body: - yield child - for child in footer: - yield child - -proc preBuildTableRows(ctx: var TableContext, builder: TableBoxBuilder, - table: BlockBox) = - var i = 0 - for row in builder.rows: - if unlikely(row.computed{"display"} == DISPLAY_TABLE_CAPTION): - ctx.caption = TableCaptionBoxBuilder(row) - else: - let row = TableRowBoxBuilder(row) - let rctx = ctx.preBuildTableRow(row, table) - ctx.rows.add(rctx) - ctx.maxwidth = max(rctx.width, ctx.maxwidth) - inc i + ctx.caption = caption + for row in rows: + let rctx = ctx.preBuildTableRow(row, table) + ctx.rows.add(rctx) + ctx.maxwidth = max(rctx.width, ctx.maxwidth) proc calcUnspecifiedColIndices(ctx: var TableContext, W: var LayoutUnit, weight: var float64): seq[int] = |