Add Align::End for end-based alignment

For use cases that want to reverse the alignment of RTL
lines, this avoids needing to check the RTL status of every line
manually.

This is a breaking change.
This commit is contained in:
John Nunley 2023-07-07 21:31:17 -07:00
parent 7d50d17369
commit aa1b37aede
No known key found for this signature in database
GPG key ID: 42B2FA4582BB1EC9
2 changed files with 3 additions and 0 deletions

View file

@ -120,6 +120,7 @@ pub enum Align {
Right, Right,
Center, Center,
Justified, Justified,
End,
} }
impl Display for Align { impl Display for Align {
@ -129,6 +130,7 @@ impl Display for Align {
Self::Right => write!(f, "Right"), Self::Right => write!(f, "Right"),
Self::Center => write!(f, "Center"), Self::Center => write!(f, "Center"),
Self::Justified => write!(f, "Justified"), Self::Justified => write!(f, "Justified"),
Self::End => write!(f, "End"),
} }
} }
} }

View file

@ -1001,6 +1001,7 @@ impl ShapeLine {
(Align::Right, true) => 0., (Align::Right, true) => 0.,
(Align::Right, false) => line_width - visual_line.w, (Align::Right, false) => line_width - visual_line.w,
(Align::Center, _) => (line_width - visual_line.w) / 2.0, (Align::Center, _) => (line_width - visual_line.w) / 2.0,
(Align::End, _) => line_width - visual_line.w,
(Align::Justified, _) => { (Align::Justified, _) => {
// Don't justify the last line in a paragraph. // Don't justify the last line in a paragraph.
if visual_line.spaces > 0 && index != number_of_visual_lines - 1 { if visual_line.spaces > 0 && index != number_of_visual_lines - 1 {