diff options
author | 2024-03-05 22:13:36 +0100 | |
---|---|---|
committer | 2024-03-05 22:13:55 +0100 | |
commit | 5824ceb1fe8420b9337eee9a0e6db6cf7cb7f269 (patch) | |
tree | a0a4ae0022d48490cc3f2c579aa020cd13955f71 /style | |
parent | 87d16a090b14fa206bb87041a32d66348bc294e4 (diff) | |
download | iced-5824ceb1fe8420b9337eee9a0e6db6cf7cb7f269.tar.gz iced-5824ceb1fe8420b9337eee9a0e6db6cf7cb7f269.tar.bz2 iced-5824ceb1fe8420b9337eee9a0e6db6cf7cb7f269.zip |
Simplify theming for `ProgressBar` widget
Diffstat (limited to 'style')
-rw-r--r-- | style/src/lib.rs | 1 | ||||
-rw-r--r-- | style/src/progress_bar.rs | 23 | ||||
-rw-r--r-- | style/src/theme.rs | 56 |
3 files changed, 0 insertions, 80 deletions
diff --git a/style/src/lib.rs b/style/src/lib.rs index 45717d46..c8fb9ffe 100644 --- a/style/src/lib.rs +++ b/style/src/lib.rs @@ -20,7 +20,6 @@ pub mod application; pub mod menu; pub mod pane_grid; pub mod pick_list; -pub mod progress_bar; pub mod rule; pub mod svg; pub mod text_editor; diff --git a/style/src/progress_bar.rs b/style/src/progress_bar.rs deleted file mode 100644 index b62512d8..00000000 --- a/style/src/progress_bar.rs +++ /dev/null @@ -1,23 +0,0 @@ -//! Change the appearance of a progress bar. -use crate::core::border; -use crate::core::Background; - -/// The appearance of a progress bar. -#[derive(Debug, Clone, Copy)] -pub struct Appearance { - /// The [`Background`] of the progress bar. - pub background: Background, - /// The [`Background`] of the bar of the progress bar. - pub bar: Background, - /// The border radius of the progress bar. - pub border_radius: border::Radius, -} - -/// A set of rules that dictate the style of a progress bar. -pub trait StyleSheet { - /// The supported style of the [`StyleSheet`]. - type Style: Default; - - /// Produces the [`Appearance`] of the progress bar. - fn appearance(&self, style: &Self::Style) -> Appearance; -} diff --git a/style/src/theme.rs b/style/src/theme.rs index b188e561..8ed15408 100644 --- a/style/src/theme.rs +++ b/style/src/theme.rs @@ -8,7 +8,6 @@ use crate::core::widget::text; use crate::menu; use crate::pane_grid; use crate::pick_list; -use crate::progress_bar; use crate::rule; use crate::svg; use crate::text_editor; @@ -512,61 +511,6 @@ impl pane_grid::StyleSheet for Theme { } } -/// The style of a progress bar. -#[derive(Default)] -pub enum ProgressBar { - /// The primary style. - #[default] - Primary, - /// The success style. - Success, - /// The danger style. - Danger, - /// A custom style. - Custom(Box<dyn progress_bar::StyleSheet<Style = Theme>>), -} - -impl<T: Fn(&Theme) -> progress_bar::Appearance + 'static> From<T> - for ProgressBar -{ - fn from(f: T) -> Self { - Self::Custom(Box::new(f)) - } -} - -impl progress_bar::StyleSheet for Theme { - type Style = ProgressBar; - - fn appearance(&self, style: &Self::Style) -> progress_bar::Appearance { - if let ProgressBar::Custom(custom) = style { - return custom.appearance(self); - } - - let palette = self.extended_palette(); - - let from_palette = |bar: Color| progress_bar::Appearance { - background: palette.background.strong.color.into(), - bar: bar.into(), - border_radius: 2.0.into(), - }; - - match style { - ProgressBar::Primary => from_palette(palette.primary.base.color), - ProgressBar::Success => from_palette(palette.success.base.color), - ProgressBar::Danger => from_palette(palette.danger.base.color), - ProgressBar::Custom(custom) => custom.appearance(self), - } - } -} - -impl<T: Fn(&Theme) -> progress_bar::Appearance> progress_bar::StyleSheet for T { - type Style = Theme; - - fn appearance(&self, style: &Self::Style) -> progress_bar::Appearance { - (self)(style) - } -} - /// The style of a rule. #[derive(Default)] pub enum Rule { |