diff options
| author | 2024-03-06 20:30:58 +0100 | |
|---|---|---|
| committer | 2024-03-06 20:30:58 +0100 | |
| commit | 34e7c6593a9e0f56cee5db18b7258717cf6bc11b (patch) | |
| tree | 7c65a58e9052f2f95a0025355679b13c7002eeab /core | |
| parent | 8a63774b24488f71147a728123551ae72c080d14 (diff) | |
| download | iced-34e7c6593a9e0f56cee5db18b7258717cf6bc11b.tar.gz iced-34e7c6593a9e0f56cee5db18b7258717cf6bc11b.tar.bz2 iced-34e7c6593a9e0f56cee5db18b7258717cf6bc11b.zip  | |
Use `Style` struct pattern instead of trait for all widgets
Diffstat (limited to '')
| -rw-r--r-- | core/src/widget/text.rs | 39 | 
1 files changed, 15 insertions, 24 deletions
diff --git a/core/src/widget/text.rs b/core/src/widget/text.rs index 217ad8b3..e151476d 100644 --- a/core/src/widget/text.rs +++ b/core/src/widget/text.rs @@ -17,7 +17,6 @@ pub use text::{LineHeight, Shaping};  #[allow(missing_debug_implementations)]  pub struct Text<'a, Theme, Renderer>  where -    Theme: StyleSheet,      Renderer: text::Renderer,  {      content: Cow<'a, str>, @@ -34,7 +33,6 @@ where  impl<'a, Theme, Renderer> Text<'a, Theme, Renderer>  where -    Theme: StyleSheet,      Renderer: text::Renderer,  {      /// Create a new fragment of [`Text`] with the given contents. @@ -49,7 +47,7 @@ where              horizontal_alignment: alignment::Horizontal::Left,              vertical_alignment: alignment::Vertical::Top,              shaping: Shaping::Basic, -            style: Style::Themed(Theme::default()), +            style: Style::default(),          }      } @@ -135,7 +133,6 @@ pub struct State<P: Paragraph>(P);  impl<'a, Message, Theme, Renderer> Widget<Message, Theme, Renderer>      for Text<'a, Theme, Renderer>  where -    Theme: StyleSheet,      Renderer: text::Renderer,  {      fn tag(&self) -> tree::Tag { @@ -283,7 +280,7 @@ pub fn draw<Renderer>(  impl<'a, Message, Theme, Renderer> From<Text<'a, Theme, Renderer>>      for Element<'a, Message, Theme, Renderer>  where -    Theme: StyleSheet + 'a, +    Theme: 'a,      Renderer: text::Renderer + 'a,  {      fn from( @@ -295,7 +292,6 @@ where  impl<'a, Theme, Renderer> Clone for Text<'a, Theme, Renderer>  where -    Theme: StyleSheet,      Renderer: text::Renderer,  {      fn clone(&self) -> Self { @@ -316,7 +312,6 @@ where  impl<'a, Theme, Renderer> From<&'a str> for Text<'a, Theme, Renderer>  where -    Theme: StyleSheet,      Renderer: text::Renderer,  {      fn from(content: &'a str) -> Self { @@ -327,7 +322,7 @@ where  impl<'a, Message, Theme, Renderer> From<&'a str>      for Element<'a, Message, Theme, Renderer>  where -    Theme: StyleSheet + 'a, +    Theme: 'a,      Renderer: text::Renderer + 'a,  {      fn from(content: &'a str) -> Self { @@ -335,22 +330,6 @@ where      }  } -/// The style sheet of some text. -pub trait StyleSheet { -    /// Returns the default styling strategy for [`Text`]. -    fn default() -> fn(&Self) -> Appearance { -        |_| Appearance::default() -    } -} - -impl StyleSheet for Color { -    fn default() -> fn(&Self) -> Appearance { -        |color| Appearance { -            color: Some(*color), -        } -    } -} -  /// The apperance of some text.  #[derive(Debug, Clone, Copy, Default)]  pub struct Appearance { @@ -373,3 +352,15 @@ impl<Theme> Clone for Style<Theme> {  }  impl<Theme> Copy for Style<Theme> {} + +impl<Theme> Default for Style<Theme> { +    fn default() -> Self { +        Style::Colored(None) +    } +} + +impl<Theme> From<fn(&Theme) -> Appearance> for Style<Theme> { +    fn from(f: fn(&Theme) -> Appearance) -> Self { +        Style::Themed(f) +    } +}  | 
