diff options
| author | Laurenz <laurmaedje@gmail.com> | 2022-06-12 17:16:14 +0200 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2022-06-12 17:26:18 +0200 |
| commit | 6e3b1a2c80428d581d00b9d65e1c45401df2e210 (patch) | |
| tree | 34d4b1c200851aa77af66b737bfe445e2da11f44 /src/library/text | |
| parent | ed6550fdb08eae92bffab6b6b137b1e0eebf62c6 (diff) | |
Make all fields of `Frame` private
Diffstat (limited to 'src/library/text')
| -rw-r--r-- | src/library/text/par.rs | 29 | ||||
| -rw-r--r-- | src/library/text/shaping.rs | 5 |
2 files changed, 18 insertions, 16 deletions
diff --git a/src/library/text/par.rs b/src/library/text/par.rs index 41246b00..7a656a30 100644 --- a/src/library/text/par.rs +++ b/src/library/text/par.rs @@ -336,7 +336,7 @@ impl<'a> Item<'a> { match self { Self::Text(shaped) => shaped.width, Self::Absolute(v) => *v, - Self::Frame(frame) => frame.size.x, + Self::Frame(frame) => frame.width(), Self::Fractional(_) | Self::Repeat(_, _) | Self::Pin(_) => Length::zero(), } } @@ -1071,7 +1071,7 @@ fn stack( // Stack the lines into one frame per region. for line in lines { let frame = commit(p, ctx, line, ®ions, width)?; - let height = frame.size.y; + let height = frame.size().y; while !regions.first.y.fits(height) && !regions.in_last() { finished.push(Arc::new(output)); @@ -1082,11 +1082,11 @@ fn stack( } if !first { - output.size.y += p.leading; + output.size_mut().y += p.leading; } - let pos = Point::with_y(output.size.y); - output.size.y += height; + let pos = Point::with_y(output.height()); + output.size_mut().y += height; output.push_frame(pos, frame); regions.first.y -= height + p.leading; @@ -1156,9 +1156,9 @@ fn commit( let mut frames = vec![]; for item in reordered { let mut push = |offset: &mut Length, frame: MaybeShared<Frame>| { - let width = frame.size.x; + let width = frame.width(); top.set_max(frame.baseline()); - bottom.set_max(frame.size.y - frame.baseline()); + bottom.set_max(frame.size().y - frame.baseline()); frames.push((*offset, frame)); *offset += width; }; @@ -1179,23 +1179,24 @@ fn commit( } Item::Repeat(node, styles) => { let before = offset; - let width = Fraction::one().share(fr, remaining); - let size = Size::new(width, regions.base.y); + let fill = Fraction::one().share(fr, remaining); + let size = Size::new(fill, regions.base.y); let pod = Regions::one(size, regions.base, Spec::new(false, false)); let frame = node.layout(ctx, &pod, *styles)?.remove(0); - let count = (width / frame.size.x).floor(); - let remaining = width % frame.size.x; + let width = frame.width(); + let count = (fill / width).floor(); + let remaining = fill % width; let apart = remaining / (count - 1.0); if count == 1.0 { offset += p.align.position(remaining); } - if frame.size.x > Length::zero() { + if width > Length::zero() { for _ in 0 .. (count as usize).min(1000) { push(&mut offset, MaybeShared::Shared(frame.clone())); offset += apart; } } - offset = before + width; + offset = before + fill; } Item::Pin(idx) => { let mut frame = Frame::new(Size::zero()); @@ -1212,7 +1213,7 @@ fn commit( let size = Size::new(width, top + bottom); let mut output = Frame::new(size); - output.baseline = Some(top); + output.set_baseline(top); // Construct the line's frame. for (offset, frame) in frames { diff --git a/src/library/text/shaping.rs b/src/library/text/shaping.rs index 591abb5e..bb88836c 100644 --- a/src/library/text/shaping.rs +++ b/src/library/text/shaping.rs @@ -84,7 +84,7 @@ impl<'a> ShapedText<'a> { let mut offset = Length::zero(); let mut frame = Frame::new(size); - frame.baseline = Some(top); + frame.set_baseline(top); let shift = self.styles.get(TextNode::BASELINE); let lang = self.styles.get(TextNode::LANG); @@ -103,7 +103,7 @@ impl<'a> ShapedText<'a> { id: glyph.glyph_id, x_advance: glyph.x_advance + if glyph.is_justifiable() { - frame.size.x += justification; + frame.size_mut().x += justification; Em::from_length(justification, self.size) } else { Em::zero() @@ -120,6 +120,7 @@ impl<'a> ShapedText<'a> { fill, glyphs, }; + let text_layer = frame.layer(); let width = text.width(); |
