diff options
author | bptato <nincsnevem662@gmail.com> | 2022-07-20 23:03:21 +0200 |
---|---|---|
committer | bptato <nincsnevem662@gmail.com> | 2022-07-20 23:03:21 +0200 |
commit | 062027c84176f8a6fa8870d7c527ece3aee7b519 (patch) | |
tree | 0c81375df962c79ceef5580c9579dbc9aeadc6a8 /src/render | |
parent | e2b52fdf1def543a7199a4f0aa639e65afb22463 (diff) | |
download | chawan-062027c84176f8a6fa8870d7c527ece3aee7b519.tar.gz |
Refactor some layout engine types, fix list-item
Diffstat (limited to 'src/render')
-rw-r--r-- | src/render/renderdocument.nim | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/render/renderdocument.nim b/src/render/renderdocument.nim index d2239416..54628946 100644 --- a/src/render/renderdocument.nim +++ b/src/render/renderdocument.nim @@ -201,7 +201,7 @@ proc paintBackground(lines: var FlexibleGrid, color: CSSColor, startx, starty, e inc y -proc renderBlockContext(grid: var FlexibleGrid, ctx: BlockContext, x, y: int, term: TermAttributes) +proc renderBlockContext(grid: var FlexibleGrid, ctx: BlockBox, x, y: int, term: TermAttributes) proc renderInlineContext(grid: var FlexibleGrid, ctx: InlineContext, x, y: int, term: TermAttributes) = let x = x + ctx.offset.x @@ -215,8 +215,8 @@ proc renderInlineContext(grid: var FlexibleGrid, ctx: InlineContext, x, y: int, grid.addLine() for atom in line.atoms: - if atom of InlineBlock: - let iblock = InlineBlock(atom) + if atom of InlineBlockBox: + let iblock = InlineBlockBox(atom) grid.renderBlockContext(iblock.bctx, x + iblock.offset.x, y + iblock.offset.y, term) elif atom of InlineWord: let word = InlineWord(atom) @@ -225,8 +225,8 @@ proc renderInlineContext(grid: var FlexibleGrid, ctx: InlineContext, x, y: int, let spacing = InlineSpacing(atom) grid.setSpacing(spacing, x, y, term) -proc renderBlockContext(grid: var FlexibleGrid, ctx: BlockContext, x, y: int, term: TermAttributes) = - var stack = newSeqOfCap[(BlockContext, int, int)](100) +proc renderBlockContext(grid: var FlexibleGrid, ctx: BlockBox, x, y: int, term: TermAttributes) = + var stack = newSeqOfCap[(BlockBox, int, int)](100) stack.add((ctx, x, y)) while stack.len > 0: @@ -237,9 +237,10 @@ proc renderBlockContext(grid: var FlexibleGrid, ctx: BlockContext, x, y: int, te if ctx.computed{"background-color"}.rgba.a != 0: #TODO color blending grid.paintBackground(ctx.computed{"background-color"}, x, y, x + ctx.width, y + ctx.height, term) - if ctx of ListItem: - let ctx = ListItem(ctx) - grid.renderInlineContext(ctx.marker, x - ctx.marker.maxwidth, y, term) + if ctx of ListItemBox: + let ctx = ListItemBox(ctx) + if ctx.marker != nil: + grid.renderInlineContext(ctx.marker, x - ctx.marker.maxwidth, y, term) if ctx.inline != nil: assert ctx.nested.len == 0 |