summaryrefslogtreecommitdiffstats
path: root/core/src/widget
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-07-17 18:47:58 +0200
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-07-17 18:50:53 +0200
commitffb520fb3703ce4ece9fb6d5ee2c7aa0b846879f (patch)
tree2f840fba3f2bb72e3d255c2778f88dd324cc0f4e /core/src/widget
parent616689ca54942a13aac3615e571ae995ad4571b6 (diff)
downloadiced-ffb520fb3703ce4ece9fb6d5ee2c7aa0b846879f.tar.gz
iced-ffb520fb3703ce4ece9fb6d5ee2c7aa0b846879f.tar.bz2
iced-ffb520fb3703ce4ece9fb6d5ee2c7aa0b846879f.zip
Decouple caching from `Paragraph` API
Diffstat (limited to 'core/src/widget')
-rw-r--r--core/src/widget/text.rs11
1 files changed, 7 insertions, 4 deletions
diff --git a/core/src/widget/text.rs b/core/src/widget/text.rs
index 91c9893d..2aeb0765 100644
--- a/core/src/widget/text.rs
+++ b/core/src/widget/text.rs
@@ -3,7 +3,8 @@ use crate::alignment;
use crate::layout;
use crate::mouse;
use crate::renderer;
-use crate::text::{self, Paragraph};
+use crate::text;
+use crate::text::paragraph::{self, Paragraph};
use crate::widget::tree::{self, Tree};
use crate::{
Color, Element, Layout, Length, Pixels, Point, Rectangle, Size, Theme,
@@ -155,7 +156,7 @@ where
/// The internal state of a [`Text`] widget.
#[derive(Debug, Default)]
-pub struct State<P: Paragraph>(P);
+pub struct State<P: Paragraph>(paragraph::Plain<P>);
impl<'a, Message, Theme, Renderer> Widget<Message, Theme, Renderer>
for Text<'a, Theme, Renderer>
@@ -168,7 +169,9 @@ where
}
fn state(&self) -> tree::State {
- tree::State::new(State(Renderer::Paragraph::default()))
+ tree::State::new(State::<Renderer::Paragraph>(
+ paragraph::Plain::default(),
+ ))
}
fn size(&self) -> Size<Length> {
@@ -294,7 +297,7 @@ pub fn draw<Renderer>(
};
renderer.fill_paragraph(
- paragraph,
+ paragraph.raw(),
Point::new(x, y),
appearance.color.unwrap_or(style.text_color),
*viewport,