From bf16d1ddcdcac21a4f4ad5ba79caba857067ee56 Mon Sep 17 00:00:00 2001
From: Héctor Ramón Jiménez <hector@hecrj.dev>
Date: Sun, 28 Jul 2024 15:09:54 +0200
Subject: Implement `underline` support for `rich_text` spans

---
 core/src/text.rs | 10 ++++++++++
 1 file changed, 10 insertions(+)

(limited to 'core')

diff --git a/core/src/text.rs b/core/src/text.rs
index 2f085bd8..68c586f1 100644
--- a/core/src/text.rs
+++ b/core/src/text.rs
@@ -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,
         }
     }
 }
-- 
cgit