From db92e1c942154bee474fee5e2c187f8a52a1bb96 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Mon, 4 Mar 2024 19:32:20 +0100 Subject: Enhnace `Themer` to allow derivation from current `Theme` --- widget/src/helpers.rs | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'widget/src/helpers.rs') diff --git a/widget/src/helpers.rs b/widget/src/helpers.rs index ed385ea5..e6322926 100644 --- a/widget/src/helpers.rs +++ b/widget/src/helpers.rs @@ -15,7 +15,6 @@ use crate::rule::{self, Rule}; use crate::runtime::Command; use crate::scrollable::{self, Scrollable}; use crate::slider::{self, Slider}; -use crate::style::application; use crate::text::{self, Text}; use crate::text_editor::{self, TextEditor}; use crate::text_input::{self, TextInput}; @@ -440,13 +439,13 @@ where } /// A widget that applies any `Theme` to its contents. -pub fn themer<'a, Message, Theme, Renderer>( - theme: Theme, - content: impl Into>, -) -> Themer<'a, Message, Theme, Renderer> +pub fn themer<'a, Message, OldTheme, NewTheme, F, Renderer>( + to_theme: F, + content: impl Into>, +) -> Themer<'a, Message, OldTheme, NewTheme, F, Renderer> where + F: Fn(&OldTheme) -> NewTheme, Renderer: core::Renderer, - Theme: application::StyleSheet, { - Themer::new(theme, content) + Themer::new(to_theme, content) } -- cgit From f4a4845ddbdced81ae4ff60bfa19f0e602d84709 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Mon, 4 Mar 2024 20:42:37 +0100 Subject: Simplify theming for `Button` widget --- widget/src/helpers.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'widget/src/helpers.rs') diff --git a/widget/src/helpers.rs b/widget/src/helpers.rs index e6322926..86331e14 100644 --- a/widget/src/helpers.rs +++ b/widget/src/helpers.rs @@ -118,7 +118,7 @@ pub fn button<'a, Message, Theme, Renderer>( ) -> Button<'a, Message, Theme, Renderer> where Renderer: core::Renderer, - Theme: button::StyleSheet, + Theme: button::Style, { Button::new(content) } -- cgit From 1f0a0c235a7729cf2d5716efeecb9c4dc972fdfa Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Tue, 5 Mar 2024 02:08:19 +0100 Subject: Simplify theming for `Checkbox` widget --- widget/src/helpers.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'widget/src/helpers.rs') diff --git a/widget/src/helpers.rs b/widget/src/helpers.rs index 86331e14..397cc452 100644 --- a/widget/src/helpers.rs +++ b/widget/src/helpers.rs @@ -161,7 +161,7 @@ pub fn checkbox<'a, Message, Theme, Renderer>( is_checked: bool, ) -> Checkbox<'a, Message, Theme, Renderer> where - Theme: checkbox::StyleSheet + text::StyleSheet, + Theme: checkbox::Style, Renderer: core::text::Renderer, { Checkbox::new(label, is_checked) -- cgit From 29326215ccf13e1d1e25bf3bf5ada007856bff69 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Tue, 5 Mar 2024 03:48:08 +0100 Subject: Simplify theming for `Container` widget --- widget/src/helpers.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'widget/src/helpers.rs') diff --git a/widget/src/helpers.rs b/widget/src/helpers.rs index 397cc452..a14a307e 100644 --- a/widget/src/helpers.rs +++ b/widget/src/helpers.rs @@ -58,7 +58,7 @@ pub fn container<'a, Message, Theme, Renderer>( content: impl Into>, ) -> Container<'a, Message, Theme, Renderer> where - Theme: container::StyleSheet, + Theme: container::Style, Renderer: core::Renderer, { Container::new(content) @@ -134,7 +134,7 @@ pub fn tooltip<'a, Message, Theme, Renderer>( position: tooltip::Position, ) -> crate::Tooltip<'a, Message, Theme, Renderer> where - Theme: container::StyleSheet + text::StyleSheet, + Theme: container::Style + text::StyleSheet, Renderer: core::text::Renderer, { Tooltip::new(content, tooltip, position) @@ -278,7 +278,7 @@ where Theme: pick_list::StyleSheet + scrollable::StyleSheet + overlay::menu::StyleSheet - + container::StyleSheet, + + container::Style, ::Style: From<::Style>, { -- cgit From d681aaa57e3106cf0ce90b74ade040ca7bb97832 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Tue, 5 Mar 2024 04:42:25 +0100 Subject: Simplify theming for `Scrollable` widget --- widget/src/helpers.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'widget/src/helpers.rs') diff --git a/widget/src/helpers.rs b/widget/src/helpers.rs index a14a307e..3274b8d2 100644 --- a/widget/src/helpers.rs +++ b/widget/src/helpers.rs @@ -104,7 +104,7 @@ pub fn scrollable<'a, Message, Theme, Renderer>( content: impl Into>, ) -> Scrollable<'a, Message, Theme, Renderer> where - Theme: scrollable::StyleSheet, + Theme: scrollable::Tradition, Renderer: core::Renderer, { Scrollable::new(content) @@ -276,7 +276,7 @@ where Message: Clone, Renderer: core::text::Renderer, Theme: pick_list::StyleSheet - + scrollable::StyleSheet + + scrollable::Tradition + overlay::menu::StyleSheet + container::Style, ::Style: -- cgit From 704ec9cb5cdc1d44f2df2f15de700b0af330b1d7 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Tue, 5 Mar 2024 15:53:59 +0100 Subject: Simplify theming for `TextInput` widget --- widget/src/helpers.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'widget/src/helpers.rs') diff --git a/widget/src/helpers.rs b/widget/src/helpers.rs index 3274b8d2..2153ed50 100644 --- a/widget/src/helpers.rs +++ b/widget/src/helpers.rs @@ -104,7 +104,7 @@ pub fn scrollable<'a, Message, Theme, Renderer>( content: impl Into>, ) -> Scrollable<'a, Message, Theme, Renderer> where - Theme: scrollable::Tradition, + Theme: scrollable::Style, Renderer: core::Renderer, { Scrollable::new(content) @@ -209,7 +209,7 @@ pub fn text_input<'a, Message, Theme, Renderer>( ) -> TextInput<'a, Message, Theme, Renderer> where Message: Clone, - Theme: text_input::StyleSheet, + Theme: text_input::Style, Renderer: core::text::Renderer, { TextInput::new(placeholder, value) @@ -276,7 +276,7 @@ where Message: Clone, Renderer: core::text::Renderer, Theme: pick_list::StyleSheet - + scrollable::Tradition + + scrollable::Style + overlay::menu::StyleSheet + container::Style, ::Style: @@ -296,7 +296,7 @@ pub fn combo_box<'a, T, Message, Theme, Renderer>( ) -> ComboBox<'a, T, Message, Theme, Renderer> where T: std::fmt::Display + Clone, - Theme: text_input::StyleSheet + overlay::menu::StyleSheet, + Theme: text_input::Style + overlay::menu::StyleSheet, Renderer: core::text::Renderer, { ComboBox::new(state, placeholder, selection, on_selected) -- cgit From 330a6252054b729e4d4d3f5a5d09f32e06cec282 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Tue, 5 Mar 2024 21:16:22 +0100 Subject: Simplify theming for `QRCode` widget --- widget/src/helpers.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'widget/src/helpers.rs') diff --git a/widget/src/helpers.rs b/widget/src/helpers.rs index 2153ed50..8f0dcd5c 100644 --- a/widget/src/helpers.rs +++ b/widget/src/helpers.rs @@ -396,7 +396,7 @@ where #[cfg(feature = "qr_code")] pub fn qr_code(data: &crate::qr_code::Data) -> crate::QRCode<'_, Theme> where - Theme: crate::qr_code::StyleSheet, + Theme: crate::qr_code::Style, { crate::QRCode::new(data) } -- cgit From d735209fc32238185ea0f27f1f4d1d0044b90e06 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Tue, 5 Mar 2024 21:23:14 +0100 Subject: Move style types of `slider` to `iced_widget` --- widget/src/helpers.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'widget/src/helpers.rs') diff --git a/widget/src/helpers.rs b/widget/src/helpers.rs index 8f0dcd5c..c63a9706 100644 --- a/widget/src/helpers.rs +++ b/widget/src/helpers.rs @@ -20,7 +20,8 @@ use crate::text_editor::{self, TextEditor}; use crate::text_input::{self, TextInput}; use crate::toggler::{self, Toggler}; use crate::tooltip::{self, Tooltip}; -use crate::{Column, MouseArea, Row, Space, Themer, VerticalSlider}; +use crate::vertical_slider::{self, VerticalSlider}; +use crate::{Column, MouseArea, Row, Space, Themer}; use std::borrow::Borrow; use std::ops::RangeInclusive; @@ -240,7 +241,7 @@ pub fn slider<'a, T, Message, Theme>( where T: Copy + From + std::cmp::PartialOrd, Message: Clone, - Theme: slider::StyleSheet, + Theme: slider::Style, { Slider::new(range, value, on_change) } @@ -256,7 +257,7 @@ pub fn vertical_slider<'a, T, Message, Theme>( where T: Copy + From + std::cmp::PartialOrd, Message: Clone, - Theme: slider::StyleSheet, + Theme: vertical_slider::Style, { VerticalSlider::new(range, value, on_change) } -- cgit From 7d84c9c9c3619513519ac1ef7ea1c5f6e4e2cf5d Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Tue, 5 Mar 2024 21:55:24 +0100 Subject: Simplify theming for `Radio` widget --- widget/src/helpers.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'widget/src/helpers.rs') diff --git a/widget/src/helpers.rs b/widget/src/helpers.rs index c63a9706..355f7814 100644 --- a/widget/src/helpers.rs +++ b/widget/src/helpers.rs @@ -179,7 +179,7 @@ pub fn radio( ) -> Radio where Message: Clone, - Theme: radio::StyleSheet, + Theme: radio::Style, Renderer: core::text::Renderer, V: Copy + Eq, { -- cgit From 5824ceb1fe8420b9337eee9a0e6db6cf7cb7f269 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Tue, 5 Mar 2024 22:13:36 +0100 Subject: Simplify theming for `ProgressBar` widget --- widget/src/helpers.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'widget/src/helpers.rs') diff --git a/widget/src/helpers.rs b/widget/src/helpers.rs index 355f7814..01645bc9 100644 --- a/widget/src/helpers.rs +++ b/widget/src/helpers.rs @@ -351,7 +351,7 @@ pub fn progress_bar( value: f32, ) -> ProgressBar where - Theme: progress_bar::StyleSheet, + Theme: progress_bar::Style, { ProgressBar::new(range, value) } -- cgit From a43afc791e8f78b03d802f980a10f32dc932f0b2 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Tue, 5 Mar 2024 22:38:27 +0100 Subject: Simplify theming for `Rule` widget --- widget/src/helpers.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'widget/src/helpers.rs') diff --git a/widget/src/helpers.rs b/widget/src/helpers.rs index 01645bc9..33c9f300 100644 --- a/widget/src/helpers.rs +++ b/widget/src/helpers.rs @@ -324,7 +324,7 @@ pub fn vertical_space() -> Space { /// [`Rule`]: crate::Rule pub fn horizontal_rule(height: impl Into) -> Rule where - Theme: rule::StyleSheet, + Theme: rule::Style, { Rule::horizontal(height) } @@ -334,7 +334,7 @@ where /// [`Rule`]: crate::Rule pub fn vertical_rule(width: impl Into) -> Rule where - Theme: rule::StyleSheet, + Theme: rule::Style, { Rule::vertical(width) } -- cgit From 40af65c3aa4a96281db8f642cfa1641479314d27 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Wed, 6 Mar 2024 11:24:51 +0100 Subject: Simplify theming for `Toggler` widget --- widget/src/helpers.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'widget/src/helpers.rs') diff --git a/widget/src/helpers.rs b/widget/src/helpers.rs index 33c9f300..8cb03691 100644 --- a/widget/src/helpers.rs +++ b/widget/src/helpers.rs @@ -196,7 +196,7 @@ pub fn toggler<'a, Message, Theme, Renderer>( ) -> Toggler<'a, Message, Theme, Renderer> where Renderer: core::text::Renderer, - Theme: toggler::StyleSheet, + Theme: toggler::Style, { Toggler::new(label, is_checked, f) } -- cgit From 69bc1df252382a662228c8b0da6f60358e90f376 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Wed, 6 Mar 2024 11:36:33 +0100 Subject: Simplify theming for `Svg` widget --- widget/src/helpers.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'widget/src/helpers.rs') diff --git a/widget/src/helpers.rs b/widget/src/helpers.rs index 8cb03691..60e7d34f 100644 --- a/widget/src/helpers.rs +++ b/widget/src/helpers.rs @@ -371,7 +371,7 @@ pub fn image(handle: impl Into) -> crate::Image { #[cfg(feature = "svg")] pub fn svg(handle: impl Into) -> crate::Svg where - Theme: crate::svg::StyleSheet, + Theme: crate::svg::Style, { crate::Svg::new(handle) } -- cgit From 68c8f23f02a55373db728b115c3a4360669e2b80 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Wed, 6 Mar 2024 15:20:10 +0100 Subject: Simplify theming for `TextEditor` widget --- widget/src/helpers.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'widget/src/helpers.rs') diff --git a/widget/src/helpers.rs b/widget/src/helpers.rs index 60e7d34f..8dc2e60f 100644 --- a/widget/src/helpers.rs +++ b/widget/src/helpers.rs @@ -224,7 +224,7 @@ pub fn text_editor( ) -> TextEditor<'_, core::text::highlighter::PlainText, Message, Theme, Renderer> where Message: Clone, - Theme: text_editor::StyleSheet, + Theme: text_editor::Style, Renderer: core::text::Renderer, { TextEditor::new(content) -- cgit From 597a41cea73f078eda04eb3ff40cfda5d37d6135 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Wed, 6 Mar 2024 17:08:28 +0100 Subject: Simplify theming for `PickList`, `ComboBox`, and `Menu` widgets --- widget/src/helpers.rs | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) (limited to 'widget/src/helpers.rs') diff --git a/widget/src/helpers.rs b/widget/src/helpers.rs index 8dc2e60f..da9a5792 100644 --- a/widget/src/helpers.rs +++ b/widget/src/helpers.rs @@ -7,7 +7,6 @@ use crate::core; use crate::core::widget::operation; use crate::core::{Element, Length, Pixels}; use crate::keyed; -use crate::overlay; use crate::pick_list::{self, PickList}; use crate::progress_bar::{self, ProgressBar}; use crate::radio::{self, Radio}; @@ -276,12 +275,7 @@ where V: Borrow + 'a, Message: Clone, Renderer: core::text::Renderer, - Theme: pick_list::StyleSheet - + scrollable::Style - + overlay::menu::StyleSheet - + container::Style, - ::Style: - From<::Style>, + pick_list::Style: Default, { PickList::new(options, selected, on_selected) } @@ -297,8 +291,9 @@ pub fn combo_box<'a, T, Message, Theme, Renderer>( ) -> ComboBox<'a, T, Message, Theme, Renderer> where T: std::fmt::Display + Clone, - Theme: text_input::Style + overlay::menu::StyleSheet, + Theme: text_input::Style, Renderer: core::text::Renderer, + combo_box::Style: Default, { ComboBox::new(state, placeholder, selection, on_selected) } -- cgit From 8a63774b24488f71147a728123551ae72c080d14 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Wed, 6 Mar 2024 17:26:07 +0100 Subject: Try `Style` newtype instead of trait for `Svg` widget --- widget/src/helpers.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'widget/src/helpers.rs') diff --git a/widget/src/helpers.rs b/widget/src/helpers.rs index da9a5792..f63306c4 100644 --- a/widget/src/helpers.rs +++ b/widget/src/helpers.rs @@ -366,7 +366,7 @@ pub fn image(handle: impl Into) -> crate::Image { #[cfg(feature = "svg")] pub fn svg(handle: impl Into) -> crate::Svg where - Theme: crate::svg::Style, + crate::svg::Style: Default, { crate::Svg::new(handle) } -- cgit From 34e7c6593a9e0f56cee5db18b7258717cf6bc11b Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Wed, 6 Mar 2024 20:30:58 +0100 Subject: Use `Style` struct pattern instead of trait for all widgets --- widget/src/helpers.rs | 51 ++++++++++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 23 deletions(-) (limited to 'widget/src/helpers.rs') diff --git a/widget/src/helpers.rs b/widget/src/helpers.rs index f63306c4..fdc9462d 100644 --- a/widget/src/helpers.rs +++ b/widget/src/helpers.rs @@ -14,7 +14,7 @@ use crate::rule::{self, Rule}; use crate::runtime::Command; use crate::scrollable::{self, Scrollable}; use crate::slider::{self, Slider}; -use crate::text::{self, Text}; +use crate::text::Text; use crate::text_editor::{self, TextEditor}; use crate::text_input::{self, TextInput}; use crate::toggler::{self, Toggler}; @@ -58,8 +58,8 @@ pub fn container<'a, Message, Theme, Renderer>( content: impl Into>, ) -> Container<'a, Message, Theme, Renderer> where - Theme: container::Style, Renderer: core::Renderer, + container::Style: Default, { Container::new(content) } @@ -104,8 +104,8 @@ pub fn scrollable<'a, Message, Theme, Renderer>( content: impl Into>, ) -> Scrollable<'a, Message, Theme, Renderer> where - Theme: scrollable::Style, Renderer: core::Renderer, + scrollable::Style: Default, { Scrollable::new(content) } @@ -118,7 +118,7 @@ pub fn button<'a, Message, Theme, Renderer>( ) -> Button<'a, Message, Theme, Renderer> where Renderer: core::Renderer, - Theme: button::Style, + button::Style: Default, { Button::new(content) } @@ -134,8 +134,8 @@ pub fn tooltip<'a, Message, Theme, Renderer>( position: tooltip::Position, ) -> crate::Tooltip<'a, Message, Theme, Renderer> where - Theme: container::Style + text::StyleSheet, Renderer: core::text::Renderer, + container::Style: Default, { Tooltip::new(content, tooltip, position) } @@ -147,7 +147,6 @@ pub fn text<'a, Theme, Renderer>( text: impl ToString, ) -> Text<'a, Theme, Renderer> where - Theme: text::StyleSheet, Renderer: core::text::Renderer, { Text::new(text.to_string()) @@ -161,8 +160,8 @@ pub fn checkbox<'a, Message, Theme, Renderer>( is_checked: bool, ) -> Checkbox<'a, Message, Theme, Renderer> where - Theme: checkbox::Style, Renderer: core::text::Renderer, + checkbox::Style: Default, { Checkbox::new(label, is_checked) } @@ -178,9 +177,9 @@ pub fn radio( ) -> Radio where Message: Clone, - Theme: radio::Style, Renderer: core::text::Renderer, V: Copy + Eq, + radio::Style: Default, { Radio::new(label, value, selected, on_click) } @@ -195,7 +194,7 @@ pub fn toggler<'a, Message, Theme, Renderer>( ) -> Toggler<'a, Message, Theme, Renderer> where Renderer: core::text::Renderer, - Theme: toggler::Style, + toggler::Style: Default, { Toggler::new(label, is_checked, f) } @@ -209,8 +208,8 @@ pub fn text_input<'a, Message, Theme, Renderer>( ) -> TextInput<'a, Message, Theme, Renderer> where Message: Clone, - Theme: text_input::Style, Renderer: core::text::Renderer, + text_input::Style: Default, { TextInput::new(placeholder, value) } @@ -223,8 +222,8 @@ pub fn text_editor( ) -> TextEditor<'_, core::text::highlighter::PlainText, Message, Theme, Renderer> where Message: Clone, - Theme: text_editor::Style, Renderer: core::text::Renderer, + text_editor::Style: Default, { TextEditor::new(content) } @@ -240,7 +239,7 @@ pub fn slider<'a, T, Message, Theme>( where T: Copy + From + std::cmp::PartialOrd, Message: Clone, - Theme: slider::Style, + slider::Style: Default, { Slider::new(range, value, on_change) } @@ -256,7 +255,7 @@ pub fn vertical_slider<'a, T, Message, Theme>( where T: Copy + From + std::cmp::PartialOrd, Message: Clone, - Theme: vertical_slider::Style, + vertical_slider::Style: Default, { VerticalSlider::new(range, value, on_change) } @@ -291,7 +290,6 @@ pub fn combo_box<'a, T, Message, Theme, Renderer>( ) -> ComboBox<'a, T, Message, Theme, Renderer> where T: std::fmt::Display + Clone, - Theme: text_input::Style, Renderer: core::text::Renderer, combo_box::Style: Default, { @@ -319,7 +317,7 @@ pub fn vertical_space() -> Space { /// [`Rule`]: crate::Rule pub fn horizontal_rule(height: impl Into) -> Rule where - Theme: rule::Style, + rule::Style: Default, { Rule::horizontal(height) } @@ -329,7 +327,7 @@ where /// [`Rule`]: crate::Rule pub fn vertical_rule(width: impl Into) -> Rule where - Theme: rule::Style, + rule::Style: Default, { Rule::vertical(width) } @@ -346,7 +344,7 @@ pub fn progress_bar( value: f32, ) -> ProgressBar where - Theme: progress_bar::Style, + progress_bar::Style: Default, { ProgressBar::new(range, value) } @@ -392,7 +390,7 @@ where #[cfg(feature = "qr_code")] pub fn qr_code(data: &crate::qr_code::Data) -> crate::QRCode<'_, Theme> where - Theme: crate::qr_code::Style, + crate::qr_code::Style: Default, { crate::QRCode::new(data) } @@ -435,13 +433,20 @@ where } /// A widget that applies any `Theme` to its contents. -pub fn themer<'a, Message, OldTheme, NewTheme, F, Renderer>( - to_theme: F, +pub fn themer<'a, Message, OldTheme, NewTheme, Renderer>( + new_theme: NewTheme, content: impl Into>, -) -> Themer<'a, Message, OldTheme, NewTheme, F, Renderer> +) -> Themer< + 'a, + Message, + OldTheme, + NewTheme, + impl Fn(&OldTheme) -> NewTheme, + Renderer, +> where - F: Fn(&OldTheme) -> NewTheme, Renderer: core::Renderer, + NewTheme: Clone, { - Themer::new(to_theme, content) + Themer::new(move |_| new_theme.clone(), content) } -- cgit From 833538ee7f3a60a839304762dfc29b0881d19094 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 7 Mar 2024 20:11:32 +0100 Subject: Leverage `DefaultStyle` traits instead of `Default` --- widget/src/helpers.rs | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) (limited to 'widget/src/helpers.rs') diff --git a/widget/src/helpers.rs b/widget/src/helpers.rs index fdc9462d..75072d2e 100644 --- a/widget/src/helpers.rs +++ b/widget/src/helpers.rs @@ -58,8 +58,8 @@ pub fn container<'a, Message, Theme, Renderer>( content: impl Into>, ) -> Container<'a, Message, Theme, Renderer> where + Theme: container::DefaultStyle, Renderer: core::Renderer, - container::Style: Default, { Container::new(content) } @@ -104,8 +104,8 @@ pub fn scrollable<'a, Message, Theme, Renderer>( content: impl Into>, ) -> Scrollable<'a, Message, Theme, Renderer> where + Theme: scrollable::DefaultStyle, Renderer: core::Renderer, - scrollable::Style: Default, { Scrollable::new(content) } @@ -117,8 +117,8 @@ pub fn button<'a, Message, Theme, Renderer>( content: impl Into>, ) -> Button<'a, Message, Theme, Renderer> where + Theme: button::DefaultStyle, Renderer: core::Renderer, - button::Style: Default, { Button::new(content) } @@ -134,8 +134,8 @@ pub fn tooltip<'a, Message, Theme, Renderer>( position: tooltip::Position, ) -> crate::Tooltip<'a, Message, Theme, Renderer> where + Theme: container::DefaultStyle, Renderer: core::text::Renderer, - container::Style: Default, { Tooltip::new(content, tooltip, position) } @@ -160,8 +160,8 @@ pub fn checkbox<'a, Message, Theme, Renderer>( is_checked: bool, ) -> Checkbox<'a, Message, Theme, Renderer> where + Theme: checkbox::DefaultStyle, Renderer: core::text::Renderer, - checkbox::Style: Default, { Checkbox::new(label, is_checked) } @@ -177,9 +177,9 @@ pub fn radio( ) -> Radio where Message: Clone, + Theme: radio::DefaultStyle, Renderer: core::text::Renderer, V: Copy + Eq, - radio::Style: Default, { Radio::new(label, value, selected, on_click) } @@ -193,8 +193,8 @@ pub fn toggler<'a, Message, Theme, Renderer>( f: impl Fn(bool) -> Message + 'a, ) -> Toggler<'a, Message, Theme, Renderer> where + Theme: toggler::DefaultStyle, Renderer: core::text::Renderer, - toggler::Style: Default, { Toggler::new(label, is_checked, f) } @@ -208,8 +208,8 @@ pub fn text_input<'a, Message, Theme, Renderer>( ) -> TextInput<'a, Message, Theme, Renderer> where Message: Clone, + Theme: text_input::DefaultStyle, Renderer: core::text::Renderer, - text_input::Style: Default, { TextInput::new(placeholder, value) } @@ -222,8 +222,8 @@ pub fn text_editor( ) -> TextEditor<'_, core::text::highlighter::PlainText, Message, Theme, Renderer> where Message: Clone, + Theme: text_editor::DefaultStyle, Renderer: core::text::Renderer, - text_editor::Style: Default, { TextEditor::new(content) } @@ -239,7 +239,7 @@ pub fn slider<'a, T, Message, Theme>( where T: Copy + From + std::cmp::PartialOrd, Message: Clone, - slider::Style: Default, + Theme: slider::DefaultStyle, { Slider::new(range, value, on_change) } @@ -255,7 +255,7 @@ pub fn vertical_slider<'a, T, Message, Theme>( where T: Copy + From + std::cmp::PartialOrd, Message: Clone, - vertical_slider::Style: Default, + Theme: vertical_slider::DefaultStyle, { VerticalSlider::new(range, value, on_change) } @@ -273,8 +273,8 @@ where L: Borrow<[T]> + 'a, V: Borrow + 'a, Message: Clone, + Theme: pick_list::DefaultStyle, Renderer: core::text::Renderer, - pick_list::Style: Default, { PickList::new(options, selected, on_selected) } @@ -290,8 +290,8 @@ pub fn combo_box<'a, T, Message, Theme, Renderer>( ) -> ComboBox<'a, T, Message, Theme, Renderer> where T: std::fmt::Display + Clone, + Theme: combo_box::DefaultStyle, Renderer: core::text::Renderer, - combo_box::Style: Default, { ComboBox::new(state, placeholder, selection, on_selected) } @@ -317,7 +317,7 @@ pub fn vertical_space() -> Space { /// [`Rule`]: crate::Rule pub fn horizontal_rule(height: impl Into) -> Rule where - rule::Style: Default, + Theme: rule::DefaultStyle, { Rule::horizontal(height) } @@ -327,7 +327,7 @@ where /// [`Rule`]: crate::Rule pub fn vertical_rule(width: impl Into) -> Rule where - rule::Style: Default, + Theme: rule::DefaultStyle, { Rule::vertical(width) } @@ -344,7 +344,7 @@ pub fn progress_bar( value: f32, ) -> ProgressBar where - progress_bar::Style: Default, + Theme: progress_bar::DefaultStyle, { ProgressBar::new(range, value) } @@ -364,7 +364,7 @@ pub fn image(handle: impl Into) -> crate::Image { #[cfg(feature = "svg")] pub fn svg(handle: impl Into) -> crate::Svg where - crate::svg::Style: Default, + Theme: crate::svg::DefaultStyle, { crate::Svg::new(handle) } @@ -390,7 +390,7 @@ where #[cfg(feature = "qr_code")] pub fn qr_code(data: &crate::qr_code::Data) -> crate::QRCode<'_, Theme> where - crate::qr_code::Style: Default, + Theme: crate::qr_code::DefaultStyle, { crate::QRCode::new(data) } -- cgit