summaryrefslogtreecommitdiffstats
path: root/core/src/widget
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/widget')
-rw-r--r--core/src/widget/text.rs45
-rw-r--r--core/src/widget/tree.rs12
2 files changed, 29 insertions, 28 deletions
diff --git a/core/src/widget/text.rs b/core/src/widget/text.rs
index 4cabc7ce..0796c4e4 100644
--- a/core/src/widget/text.rs
+++ b/core/src/widget/text.rs
@@ -15,10 +15,10 @@ pub use text::{LineHeight, Shaping};
/// A paragraph of text.
#[allow(missing_debug_implementations)]
-pub struct Text<'a, Renderer>
+pub struct Text<'a, Theme, Renderer>
where
+ Theme: StyleSheet,
Renderer: text::Renderer,
- Renderer::Theme: StyleSheet,
{
content: Cow<'a, str>,
size: Option<Pixels>,
@@ -29,13 +29,13 @@ where
vertical_alignment: alignment::Vertical,
font: Option<Renderer::Font>,
shaping: Shaping,
- style: <Renderer::Theme as StyleSheet>::Style,
+ style: Theme::Style,
}
-impl<'a, Renderer> Text<'a, Renderer>
+impl<'a, Theme, Renderer> Text<'a, Theme, Renderer>
where
+ Theme: StyleSheet,
Renderer: text::Renderer,
- Renderer::Theme: StyleSheet,
{
/// Create a new fragment of [`Text`] with the given contents.
pub fn new(content: impl Into<Cow<'a, str>>) -> Self {
@@ -74,10 +74,7 @@ where
}
/// Sets the style of the [`Text`].
- pub fn style(
- mut self,
- style: impl Into<<Renderer::Theme as StyleSheet>::Style>,
- ) -> Self {
+ pub fn style(mut self, style: impl Into<Theme::Style>) -> Self {
self.style = style.into();
self
}
@@ -123,10 +120,11 @@ where
#[derive(Debug, Default)]
pub struct State<P: Paragraph>(P);
-impl<'a, Message, Renderer> Widget<Message, Renderer> for Text<'a, Renderer>
+impl<'a, Message, Theme, Renderer> Widget<Message, Theme, Renderer>
+ for Text<'a, Theme, Renderer>
where
+ Theme: StyleSheet,
Renderer: text::Renderer,
- Renderer::Theme: StyleSheet,
{
fn tag(&self) -> tree::Tag {
tree::Tag::of::<State<Renderer::Paragraph>>()
@@ -169,7 +167,7 @@ where
&self,
tree: &Tree,
renderer: &mut Renderer,
- theme: &Renderer::Theme,
+ theme: &Theme,
style: &renderer::Style,
layout: Layout<'_>,
_cursor_position: mouse::Cursor,
@@ -272,21 +270,23 @@ pub fn draw<Renderer>(
);
}
-impl<'a, Message, Renderer> From<Text<'a, Renderer>>
- for Element<'a, Message, Renderer>
+impl<'a, Message, Theme, Renderer> From<Text<'a, Theme, Renderer>>
+ for Element<'a, Message, Theme, Renderer>
where
+ Theme: StyleSheet + 'a,
Renderer: text::Renderer + 'a,
- Renderer::Theme: StyleSheet,
{
- fn from(text: Text<'a, Renderer>) -> Element<'a, Message, Renderer> {
+ fn from(
+ text: Text<'a, Theme, Renderer>,
+ ) -> Element<'a, Message, Theme, Renderer> {
Element::new(text)
}
}
-impl<'a, Renderer> Clone for Text<'a, Renderer>
+impl<'a, Theme, Renderer> Clone for Text<'a, Theme, Renderer>
where
+ Theme: StyleSheet,
Renderer: text::Renderer,
- Renderer::Theme: StyleSheet,
{
fn clone(&self) -> Self {
Self {
@@ -304,20 +304,21 @@ where
}
}
-impl<'a, Renderer> From<&'a str> for Text<'a, Renderer>
+impl<'a, Theme, Renderer> From<&'a str> for Text<'a, Theme, Renderer>
where
+ Theme: StyleSheet,
Renderer: text::Renderer,
- Renderer::Theme: StyleSheet,
{
fn from(content: &'a str) -> Self {
Self::new(content)
}
}
-impl<'a, Message, Renderer> From<&'a str> for Element<'a, Message, Renderer>
+impl<'a, Message, Theme, Renderer> From<&'a str>
+ for Element<'a, Message, Theme, Renderer>
where
+ Theme: StyleSheet + 'a,
Renderer: text::Renderer + 'a,
- Renderer::Theme: StyleSheet,
{
fn from(content: &'a str) -> Self {
Text::from(content).into()
diff --git a/core/src/widget/tree.rs b/core/src/widget/tree.rs
index ff52b1ce..6b1a1309 100644
--- a/core/src/widget/tree.rs
+++ b/core/src/widget/tree.rs
@@ -31,8 +31,8 @@ impl Tree {
}
/// Creates a new [`Tree`] for the provided [`Widget`].
- pub fn new<'a, Message, Renderer>(
- widget: impl Borrow<dyn Widget<Message, Renderer> + 'a>,
+ pub fn new<'a, Message, Theme, Renderer>(
+ widget: impl Borrow<dyn Widget<Message, Theme, Renderer> + 'a>,
) -> Self
where
Renderer: crate::Renderer,
@@ -54,9 +54,9 @@ impl Tree {
/// Otherwise, the whole [`Tree`] is recreated.
///
/// [`Widget::diff`]: crate::Widget::diff
- pub fn diff<'a, Message, Renderer>(
+ pub fn diff<'a, Message, Theme, Renderer>(
&mut self,
- new: impl Borrow<dyn Widget<Message, Renderer> + 'a>,
+ new: impl Borrow<dyn Widget<Message, Theme, Renderer> + 'a>,
) where
Renderer: crate::Renderer,
{
@@ -68,9 +68,9 @@ impl Tree {
}
/// Reconciles the children of the tree with the provided list of widgets.
- pub fn diff_children<'a, Message, Renderer>(
+ pub fn diff_children<'a, Message, Theme, Renderer>(
&mut self,
- new_children: &[impl Borrow<dyn Widget<Message, Renderer> + 'a>],
+ new_children: &[impl Borrow<dyn Widget<Message, Theme, Renderer> + 'a>],
) where
Renderer: crate::Renderer,
{