summaryrefslogtreecommitdiffstats
path: root/widget/src/text/rich.rs
diff options
context:
space:
mode:
authorLibravatar Cory Forsstrom <cforsstrom18@gmail.com>2024-07-23 13:36:40 -0700
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-07-28 13:06:57 +0200
commitddcf02f9d0377afe6a35dbbb09a29b4bd52efe2e (patch)
tree146f552a26ca1a41d53a006c570b1ff46b674554 /widget/src/text/rich.rs
parent23a7e9f981728e8a95039db8eb8e9f3d8c6ba3d7 (diff)
downloadiced-ddcf02f9d0377afe6a35dbbb09a29b4bd52efe2e.tar.gz
iced-ddcf02f9d0377afe6a35dbbb09a29b4bd52efe2e.tar.bz2
iced-ddcf02f9d0377afe6a35dbbb09a29b4bd52efe2e.zip
Add background styling to span / rich text
Diffstat (limited to 'widget/src/text/rich.rs')
-rw-r--r--widget/src/text/rich.rs22
1 files changed, 20 insertions, 2 deletions
diff --git a/widget/src/text/rich.rs b/widget/src/text/rich.rs
index 9c0e2fac..832a3ae7 100644
--- a/widget/src/text/rich.rs
+++ b/widget/src/text/rich.rs
@@ -9,8 +9,8 @@ use crate::core::widget::text::{
};
use crate::core::widget::tree::{self, Tree};
use crate::core::{
- self, Clipboard, Color, Element, Event, Layout, Length, Pixels, Rectangle,
- Shell, Size, Widget,
+ self, Clipboard, Color, Element, Event, Layout, Length, Pixels, Point,
+ Rectangle, Shell, Size, Widget,
};
use std::borrow::Cow;
@@ -246,6 +246,24 @@ where
let style = theme.style(&self.class);
+ // Draw backgrounds
+ for (index, span) in self.spans.iter().enumerate() {
+ if let Some(background) = span.background {
+ let translation = layout.position() - Point::ORIGIN;
+
+ for bounds in state.paragraph.span_bounds(index) {
+ renderer.fill_quad(
+ renderer::Quad {
+ bounds: bounds + translation,
+ border: background.border,
+ ..Default::default()
+ },
+ background.color,
+ );
+ }
+ }
+ }
+
text::draw(
renderer,
defaults,