Implement underline support for rich_text spans

This commit is contained in:
Héctor Ramón Jiménez 2024-07-28 15:09:54 +02:00
parent c47a6ed7b6
commit bf16d1ddcd
No known key found for this signature in database
GPG key ID: 7CC46565708259A7
3 changed files with 70 additions and 21 deletions

View file

@ -245,6 +245,8 @@ pub struct Span<'a, Link = (), Font = crate::Font> {
///
/// Currently, it only affects the bounds of the [`Highlight`].
pub padding: Padding,
/// Whether the [`Span`] should be underlined or not.
pub underline: bool,
}
/// A text highlight.
@ -268,6 +270,7 @@ impl<'a, Link, Font> Span<'a, Link, Font> {
highlight: None,
link: None,
padding: Padding::ZERO,
underline: false,
}
}
@ -386,6 +389,12 @@ impl<'a, Link, Font> Span<'a, Link, Font> {
self
}
/// Sets whether the [`Span`] shoud be underlined or not.
pub fn underline(mut self, underline: bool) -> Self {
self.underline = underline;
self
}
/// Turns the [`Span`] into a static one.
pub fn to_static(self) -> Span<'static, Link, Font> {
Span {
@ -397,6 +406,7 @@ impl<'a, Link, Font> Span<'a, Link, Font> {
link: self.link,
highlight: self.highlight,
padding: self.padding,
underline: self.underline,
}
}
}