From 664251f3f5c7b76f69a97683af1468094bba887f Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Sat, 14 May 2022 01:47:55 +0200 Subject: Draft first-class `Theme` support RFC: https://github.com/iced-rs/rfcs/pull/6 --- pure/src/helpers.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'pure/src/helpers.rs') diff --git a/pure/src/helpers.rs b/pure/src/helpers.rs index 746b807d..ad6f10b1 100644 --- a/pure/src/helpers.rs +++ b/pure/src/helpers.rs @@ -50,7 +50,12 @@ where /// [`Button`]: widget::Button pub fn button<'a, Message, Renderer>( content: impl Into>, -) -> widget::Button<'a, Message, Renderer> { +) -> widget::Button<'a, Message, Renderer> +where + Renderer: iced_native::Renderer, + Renderer::Theme: widget::button::StyleSheet, + ::Variant: Default, +{ widget::Button::new(content) } -- cgit From 3a820b45f336398c48f8bedf7b8c4b8af876efff Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 26 May 2022 00:40:27 +0200 Subject: Implement theme styling for `Slider` --- pure/src/helpers.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'pure/src/helpers.rs') diff --git a/pure/src/helpers.rs b/pure/src/helpers.rs index ad6f10b1..71ae7635 100644 --- a/pure/src/helpers.rs +++ b/pure/src/helpers.rs @@ -147,14 +147,16 @@ where /// Creates a new [`Slider`]. /// /// [`Slider`]: widget::Slider -pub fn slider<'a, Message, T>( +pub fn slider<'a, T, Message, Renderer>( range: std::ops::RangeInclusive, value: T, on_change: impl Fn(T) -> Message + 'a, -) -> widget::Slider<'a, T, Message> +) -> widget::Slider<'a, T, Message, Renderer> where - Message: Clone, T: Copy + From + std::cmp::PartialOrd, + Message: Clone, + Renderer: iced_native::Renderer, + Renderer::Theme: widget::slider::StyleSheet, { widget::Slider::new(range, value, on_change) } -- cgit From cf0230072c01ea9523f4d98a3656f5c975b3f347 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 26 May 2022 23:07:34 +0200 Subject: Rename `Variant` to `Style` and `Style` to `Appearance` --- pure/src/helpers.rs | 1 - 1 file changed, 1 deletion(-) (limited to 'pure/src/helpers.rs') diff --git a/pure/src/helpers.rs b/pure/src/helpers.rs index 71ae7635..d8741b09 100644 --- a/pure/src/helpers.rs +++ b/pure/src/helpers.rs @@ -54,7 +54,6 @@ pub fn button<'a, Message, Renderer>( where Renderer: iced_native::Renderer, Renderer::Theme: widget::button::StyleSheet, - ::Variant: Default, { widget::Button::new(content) } -- cgit From 28d09bfff1dde55190986bab10d7aaeb0ceb49de Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Fri, 27 May 2022 01:26:57 +0200 Subject: Implement theme styling for `Radio` --- pure/src/helpers.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'pure/src/helpers.rs') diff --git a/pure/src/helpers.rs b/pure/src/helpers.rs index d8741b09..159256ed 100644 --- a/pure/src/helpers.rs +++ b/pure/src/helpers.rs @@ -100,15 +100,16 @@ where /// Creates a new [`Radio`]. /// /// [`Radio`]: widget::Radio -pub fn radio<'a, Message, Renderer, V>( +pub fn radio( label: impl Into, value: V, selected: Option, on_click: impl FnOnce(V) -> Message, -) -> widget::Radio<'a, Message, Renderer> +) -> widget::Radio where Message: Clone, Renderer: iced_native::text::Renderer, + Renderer::Theme: widget::radio::StyleSheet, V: Copy + Eq, { widget::Radio::new(value, label, selected, on_click) -- cgit From 3e2b6247f72815b6e928237f242c2d66478cf15d Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Tue, 31 May 2022 05:13:57 +0200 Subject: Implement theme styling for `Toggler` ... and wire up theming to the `styling` example. --- pure/src/helpers.rs | 1 + 1 file changed, 1 insertion(+) (limited to 'pure/src/helpers.rs') diff --git a/pure/src/helpers.rs b/pure/src/helpers.rs index 159256ed..9a8a29c1 100644 --- a/pure/src/helpers.rs +++ b/pure/src/helpers.rs @@ -125,6 +125,7 @@ pub fn toggler<'a, Message, Renderer>( ) -> widget::Toggler<'a, Message, Renderer> where Renderer: iced_native::text::Renderer, + Renderer::Theme: widget::toggler::StyleSheet, { widget::Toggler::new(is_checked, label, f) } -- cgit From c275fde67a7f5d1d5789540dc7905250a2f01fe7 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Wed, 1 Jun 2022 01:56:46 +0200 Subject: Implement theme styling for `Rule` --- pure/src/helpers.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'pure/src/helpers.rs') diff --git a/pure/src/helpers.rs b/pure/src/helpers.rs index 9a8a29c1..2b5ac823 100644 --- a/pure/src/helpers.rs +++ b/pure/src/helpers.rs @@ -202,14 +202,22 @@ pub fn vertical_space(height: Length) -> widget::Space { /// Creates a horizontal [`Rule`] with the given height. /// /// [`Rule`]: widget::Rule -pub fn horizontal_rule<'a>(height: u16) -> widget::Rule<'a> { +pub fn horizontal_rule(height: u16) -> widget::Rule +where + Renderer: iced_native::Renderer, + Renderer::Theme: widget::rule::StyleSheet, +{ widget::Rule::horizontal(height) } /// Creates a vertical [`Rule`] with the given width. /// /// [`Rule`]: widget::Rule -pub fn vertical_rule<'a>(width: u16) -> widget::Rule<'a> { +pub fn vertical_rule(width: u16) -> widget::Rule +where + Renderer: iced_native::Renderer, + Renderer::Theme: widget::rule::StyleSheet, +{ widget::Rule::vertical(width) } -- cgit From 77dc9dc2cb4ac092ce88c2700253fbfc54292e2b Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Wed, 1 Jun 2022 02:40:42 +0200 Subject: Implement theme styling for `ProgressBar` --- pure/src/helpers.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'pure/src/helpers.rs') diff --git a/pure/src/helpers.rs b/pure/src/helpers.rs index 2b5ac823..b26e1c22 100644 --- a/pure/src/helpers.rs +++ b/pure/src/helpers.rs @@ -228,9 +228,13 @@ where /// * the current value of the [`ProgressBar`]. /// /// [`ProgressBar`]: widget::ProgressBar -pub fn progress_bar<'a>( +pub fn progress_bar( range: RangeInclusive, value: f32, -) -> widget::ProgressBar<'a> { +) -> widget::ProgressBar +where + Renderer: iced_native::Renderer, + Renderer::Theme: widget::progress_bar::StyleSheet, +{ widget::ProgressBar::new(range, value) } -- cgit From 835877fc636d71c1faaa4826cbfde8e09b3c82ba Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Sat, 4 Jun 2022 03:26:53 +0200 Subject: Implement theme styling for `Checkbox` --- pure/src/helpers.rs | 1 + 1 file changed, 1 insertion(+) (limited to 'pure/src/helpers.rs') diff --git a/pure/src/helpers.rs b/pure/src/helpers.rs index b26e1c22..ebc8f14b 100644 --- a/pure/src/helpers.rs +++ b/pure/src/helpers.rs @@ -93,6 +93,7 @@ pub fn checkbox<'a, Message, Renderer>( ) -> widget::Checkbox<'a, Message, Renderer> where Renderer: iced_native::text::Renderer, + Renderer::Theme: widget::checkbox::StyleSheet, { widget::Checkbox::new(is_checked, label, f) } -- cgit From ce53d3933c860cd958636cce415ac97c04aee746 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Tue, 7 Jun 2022 01:11:35 +0200 Subject: Implement theme styling for `TextInput` --- pure/src/helpers.rs | 1 + 1 file changed, 1 insertion(+) (limited to 'pure/src/helpers.rs') diff --git a/pure/src/helpers.rs b/pure/src/helpers.rs index ebc8f14b..1d020b3c 100644 --- a/pure/src/helpers.rs +++ b/pure/src/helpers.rs @@ -142,6 +142,7 @@ pub fn text_input<'a, Message, Renderer>( where Message: Clone, Renderer: iced_native::text::Renderer, + Renderer::Theme: widget::text_input::StyleSheet, { widget::TextInput::new(placeholder, value, on_change) } -- cgit From de21a651c0616307bb6bfd36da1a06119e629b10 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Tue, 7 Jun 2022 03:26:48 +0200 Subject: Implement theme styling for `Scrollable` --- pure/src/helpers.rs | 1 + 1 file changed, 1 insertion(+) (limited to 'pure/src/helpers.rs') diff --git a/pure/src/helpers.rs b/pure/src/helpers.rs index 1d020b3c..810b3885 100644 --- a/pure/src/helpers.rs +++ b/pure/src/helpers.rs @@ -41,6 +41,7 @@ pub fn scrollable<'a, Message, Renderer>( ) -> widget::Scrollable<'a, Message, Renderer> where Renderer: iced_native::Renderer, + Renderer::Theme: widget::scrollable::StyleSheet, { widget::Scrollable::new(content) } -- cgit From 97555e67af8b4bcc77df69c5e72156e14948150e Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Tue, 7 Jun 2022 04:11:24 +0200 Subject: Implement theme styling for `Container` --- pure/src/helpers.rs | 2 ++ 1 file changed, 2 insertions(+) (limited to 'pure/src/helpers.rs') diff --git a/pure/src/helpers.rs b/pure/src/helpers.rs index 810b3885..216dab53 100644 --- a/pure/src/helpers.rs +++ b/pure/src/helpers.rs @@ -14,6 +14,7 @@ pub fn container<'a, Message, Renderer>( ) -> widget::Container<'a, Message, Renderer> where Renderer: iced_native::Renderer, + Renderer::Theme: widget::container::StyleSheet, { widget::Container::new(content) } @@ -70,6 +71,7 @@ pub fn tooltip<'a, Message, Renderer>( ) -> widget::Tooltip<'a, Message, Renderer> where Renderer: iced_native::text::Renderer, + Renderer::Theme: widget::container::StyleSheet, { widget::Tooltip::new(content, tooltip, position) } -- cgit From 396735b682433928f52ba777891e14f2fbc703c7 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Tue, 7 Jun 2022 04:51:44 +0200 Subject: Implement theme styling for `PickList` and `Menu` --- pure/src/helpers.rs | 1 + 1 file changed, 1 insertion(+) (limited to 'pure/src/helpers.rs') diff --git a/pure/src/helpers.rs b/pure/src/helpers.rs index 216dab53..18791945 100644 --- a/pure/src/helpers.rs +++ b/pure/src/helpers.rs @@ -179,6 +179,7 @@ where T: ToString + Eq + 'static, [T]: ToOwned>, Renderer: iced_native::text::Renderer, + Renderer::Theme: widget::pick_list::StyleSheet, { widget::PickList::new(options, selected, on_selected) } -- cgit 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 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'pure/src/helpers.rs') 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) } -- cgit