From 1dd1a2f97fc747e15e12b5188dad6c41b0d052ea Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Wed, 29 Jun 2022 10:51:01 +0200 Subject: Introduce `StyleSheet` for `Text` widget --- pure/src/helpers.rs | 5 +++-- pure/src/widget.rs | 2 +- pure/src/widget/checkbox.rs | 5 +++-- pure/src/widget/radio.rs | 5 +++-- pure/src/widget/text.rs | 7 ++++++- pure/src/widget/toggler.rs | 5 +++-- pure/src/widget/tooltip.rs | 10 +++++----- 7 files changed, 24 insertions(+), 15 deletions(-) (limited to 'pure') diff --git a/pure/src/helpers.rs b/pure/src/helpers.rs index 18791945..88598f9b 100644 --- a/pure/src/helpers.rs +++ b/pure/src/helpers.rs @@ -71,7 +71,7 @@ pub fn tooltip<'a, Message, Renderer>( ) -> widget::Tooltip<'a, Message, Renderer> where Renderer: iced_native::text::Renderer, - Renderer::Theme: widget::container::StyleSheet, + Renderer::Theme: widget::container::StyleSheet + widget::text::StyleSheet, { widget::Tooltip::new(content, tooltip, position) } @@ -82,6 +82,7 @@ where pub fn text(text: impl Into) -> widget::Text where Renderer: iced_native::text::Renderer, + Renderer::Theme: widget::text::StyleSheet, { widget::Text::new(text) } @@ -96,7 +97,7 @@ pub fn checkbox<'a, Message, Renderer>( ) -> widget::Checkbox<'a, Message, Renderer> where Renderer: iced_native::text::Renderer, - Renderer::Theme: widget::checkbox::StyleSheet, + Renderer::Theme: widget::checkbox::StyleSheet + widget::text::StyleSheet, { widget::Checkbox::new(is_checked, label, f) } diff --git a/pure/src/widget.rs b/pure/src/widget.rs index ab63f7cc..cd825ad8 100644 --- a/pure/src/widget.rs +++ b/pure/src/widget.rs @@ -11,6 +11,7 @@ pub mod rule; pub mod scrollable; pub mod slider; pub mod svg; +pub mod text; pub mod text_input; pub mod toggler; pub mod tooltip; @@ -19,7 +20,6 @@ pub mod tree; mod column; mod row; mod space; -mod text; pub use button::Button; pub use checkbox::Checkbox; diff --git a/pure/src/widget/checkbox.rs b/pure/src/widget/checkbox.rs index 4128876e..9d6a78ce 100644 --- a/pure/src/widget/checkbox.rs +++ b/pure/src/widget/checkbox.rs @@ -7,6 +7,7 @@ use iced_native::layout::{self, Layout}; use iced_native::mouse; use iced_native::renderer; use iced_native::text; +use iced_native::widget; use iced_native::{Clipboard, Length, Point, Rectangle, Shell}; pub use iced_native::widget::checkbox::{Appearance, Checkbox, StyleSheet}; @@ -15,7 +16,7 @@ impl<'a, Message, Renderer> Widget for Checkbox<'a, Message, Renderer> where Renderer: text::Renderer, - Renderer::Theme: StyleSheet, + Renderer::Theme: StyleSheet + widget::text::StyleSheet, { fn width(&self) -> Length { >::width(self) @@ -100,7 +101,7 @@ impl<'a, Message, Renderer> Into> where Message: 'a, Renderer: text::Renderer + 'a, - Renderer::Theme: StyleSheet, + Renderer::Theme: StyleSheet + widget::text::StyleSheet, { fn into(self) -> Element<'a, Message, Renderer> { Element::new(self) diff --git a/pure/src/widget/radio.rs b/pure/src/widget/radio.rs index 9a8885e0..7a6ffbac 100644 --- a/pure/src/widget/radio.rs +++ b/pure/src/widget/radio.rs @@ -7,6 +7,7 @@ use iced_native::layout::{self, Layout}; use iced_native::mouse; use iced_native::renderer; use iced_native::text; +use iced_native::widget; use iced_native::{Clipboard, Length, Point, Rectangle, Shell}; pub use iced_native::widget::radio::{Appearance, Radio, StyleSheet}; @@ -15,7 +16,7 @@ impl Widget for Radio where Message: Clone, Renderer: text::Renderer, - Renderer::Theme: StyleSheet, + Renderer::Theme: StyleSheet + widget::text::StyleSheet, { fn width(&self) -> Length { >::width(self) @@ -100,7 +101,7 @@ impl<'a, Message, Renderer> Into> where Message: 'a + Clone, Renderer: text::Renderer + 'a, - Renderer::Theme: StyleSheet, + Renderer::Theme: StyleSheet + widget::text::StyleSheet, { fn into(self) -> Element<'a, Message, Renderer> { Element::new(self) diff --git a/pure/src/widget/text.rs b/pure/src/widget/text.rs index 0a51b628..23999a2c 100644 --- a/pure/src/widget/text.rs +++ b/pure/src/widget/text.rs @@ -1,16 +1,19 @@ +//! Write some text for your users to read. use crate::widget::Tree; use crate::{Element, Widget}; use iced_native::layout::{self, Layout}; use iced_native::renderer; use iced_native::text; +use iced_native::widget; use iced_native::{Length, Point, Rectangle}; -pub use iced_native::widget::Text; +pub use iced_native::widget::text::{Appearance, StyleSheet, Text}; impl Widget for Text where Renderer: text::Renderer, + Renderer::Theme: widget::text::StyleSheet, { fn width(&self) -> Length { >::width(self) @@ -56,6 +59,7 @@ impl<'a, Message, Renderer> Into> for Text where Renderer: text::Renderer + 'a, + Renderer::Theme: widget::text::StyleSheet, { fn into(self) -> Element<'a, Message, Renderer> { Element::new(self) @@ -65,6 +69,7 @@ where impl<'a, Message, Renderer> Into> for &'a str where Renderer: text::Renderer + 'a, + Renderer::Theme: widget::text::StyleSheet, { fn into(self) -> Element<'a, Message, Renderer> { Text::new(self).into() diff --git a/pure/src/widget/toggler.rs b/pure/src/widget/toggler.rs index fc01a2c9..5efa39ab 100644 --- a/pure/src/widget/toggler.rs +++ b/pure/src/widget/toggler.rs @@ -7,6 +7,7 @@ use iced_native::layout::{self, Layout}; use iced_native::mouse; use iced_native::renderer; use iced_native::text; +use iced_native::widget; use iced_native::{Clipboard, Length, Point, Rectangle, Shell}; pub use iced_native::widget::toggler::{Appearance, StyleSheet, Toggler}; @@ -15,7 +16,7 @@ impl<'a, Message, Renderer> Widget for Toggler<'a, Message, Renderer> where Renderer: text::Renderer, - Renderer::Theme: StyleSheet, + Renderer::Theme: StyleSheet + widget::text::StyleSheet, { fn width(&self) -> Length { >::width(self) @@ -100,7 +101,7 @@ impl<'a, Message, Renderer> Into> where Message: 'a, Renderer: text::Renderer + 'a, - Renderer::Theme: StyleSheet, + Renderer::Theme: StyleSheet + widget::text::StyleSheet, { fn into(self) -> Element<'a, Message, Renderer> { Element::new(self) diff --git a/pure/src/widget/tooltip.rs b/pure/src/widget/tooltip.rs index 745d100d..cbc34722 100644 --- a/pure/src/widget/tooltip.rs +++ b/pure/src/widget/tooltip.rs @@ -9,7 +9,7 @@ use iced_native::renderer; use iced_native::text; use iced_native::widget::container; use iced_native::widget::tooltip; -use iced_native::widget::Text; +use iced_native::widget::{self, Text}; use iced_native::{Clipboard, Layout, Length, Point, Rectangle, Shell}; pub use iced_style::container::{Appearance, StyleSheet}; @@ -20,7 +20,7 @@ pub use tooltip::Position; pub struct Tooltip<'a, Message, Renderer: text::Renderer> where Renderer: text::Renderer, - Renderer::Theme: container::StyleSheet, + Renderer::Theme: container::StyleSheet + widget::text::StyleSheet, { content: Element<'a, Message, Renderer>, tooltip: Text, @@ -33,7 +33,7 @@ where impl<'a, Message, Renderer> Tooltip<'a, Message, Renderer> where Renderer: text::Renderer, - Renderer::Theme: container::StyleSheet, + Renderer::Theme: container::StyleSheet + widget::text::StyleSheet, { /// The default padding of a [`Tooltip`] drawn by this renderer. const DEFAULT_PADDING: u16 = 5; @@ -96,7 +96,7 @@ impl<'a, Message, Renderer> Widget for Tooltip<'a, Message, Renderer> where Renderer: text::Renderer, - Renderer::Theme: container::StyleSheet, + Renderer::Theme: container::StyleSheet + widget::text::StyleSheet, { fn children(&self) -> Vec { vec![Tree::new(&self.content)] @@ -230,7 +230,7 @@ impl<'a, Message, Renderer> From> where Message: 'a, Renderer: 'a + text::Renderer, - Renderer::Theme: container::StyleSheet, + Renderer::Theme: container::StyleSheet + widget::text::StyleSheet, { fn from( tooltip: Tooltip<'a, Message, Renderer>, -- cgit