diff options
author | 2024-03-05 21:55:24 +0100 | |
---|---|---|
committer | 2024-03-05 21:55:24 +0100 | |
commit | 7d84c9c9c3619513519ac1ef7ea1c5f6e4e2cf5d (patch) | |
tree | 84247474621cb2d1615322e29eb9249752c780cd /style | |
parent | d735209fc32238185ea0f27f1f4d1d0044b90e06 (diff) | |
download | iced-7d84c9c9c3619513519ac1ef7ea1c5f6e4e2cf5d.tar.gz iced-7d84c9c9c3619513519ac1ef7ea1c5f6e4e2cf5d.tar.bz2 iced-7d84c9c9c3619513519ac1ef7ea1c5f6e4e2cf5d.zip |
Simplify theming for `Radio` widget
Diffstat (limited to 'style')
-rw-r--r-- | style/src/lib.rs | 1 | ||||
-rw-r--r-- | style/src/radio.rs | 29 | ||||
-rw-r--r-- | style/src/theme.rs | 56 |
3 files changed, 0 insertions, 86 deletions
diff --git a/style/src/lib.rs b/style/src/lib.rs index 6da84b4d..45717d46 100644 --- a/style/src/lib.rs +++ b/style/src/lib.rs @@ -21,7 +21,6 @@ pub mod menu; pub mod pane_grid; pub mod pick_list; pub mod progress_bar; -pub mod radio; pub mod rule; pub mod svg; pub mod text_editor; diff --git a/style/src/radio.rs b/style/src/radio.rs deleted file mode 100644 index 06c49029..00000000 --- a/style/src/radio.rs +++ /dev/null @@ -1,29 +0,0 @@ -//! Change the appearance of radio buttons. -use iced_core::{Background, Color}; - -/// The appearance of a radio button. -#[derive(Debug, Clone, Copy)] -pub struct Appearance { - /// The [`Background`] of the radio button. - pub background: Background, - /// The [`Color`] of the dot of the radio button. - pub dot_color: Color, - /// The border width of the radio button. - pub border_width: f32, - /// The border [`Color`] of the radio button. - pub border_color: Color, - /// The text [`Color`] of the radio button. - pub text_color: Option<Color>, -} - -/// A set of rules that dictate the style of a radio button. -pub trait StyleSheet { - /// The supported style of the [`StyleSheet`]. - type Style: Default; - - /// Produces the active [`Appearance`] of a radio button. - fn active(&self, style: &Self::Style, is_selected: bool) -> Appearance; - - /// Produces the hovered [`Appearance`] of a radio button. - fn hovered(&self, style: &Self::Style, is_selected: bool) -> Appearance; -} diff --git a/style/src/theme.rs b/style/src/theme.rs index 2f8488c7..b188e561 100644 --- a/style/src/theme.rs +++ b/style/src/theme.rs @@ -9,7 +9,6 @@ use crate::menu; use crate::pane_grid; use crate::pick_list; use crate::progress_bar; -use crate::radio; use crate::rule; use crate::svg; use crate::text_editor; @@ -381,61 +380,6 @@ impl pick_list::StyleSheet for Theme { } } -/// The style of a radio button. -#[derive(Default)] -pub enum Radio { - /// The default style. - #[default] - Default, - /// A custom style. - Custom(Box<dyn radio::StyleSheet<Style = Theme>>), -} - -impl radio::StyleSheet for Theme { - type Style = Radio; - - fn active( - &self, - style: &Self::Style, - is_selected: bool, - ) -> radio::Appearance { - match style { - Radio::Default => { - let palette = self.extended_palette(); - - radio::Appearance { - background: Color::TRANSPARENT.into(), - dot_color: palette.primary.strong.color, - border_width: 1.0, - border_color: palette.primary.strong.color, - text_color: None, - } - } - Radio::Custom(custom) => custom.active(self, is_selected), - } - } - - fn hovered( - &self, - style: &Self::Style, - is_selected: bool, - ) -> radio::Appearance { - match style { - Radio::Default => { - let active = self.active(style, is_selected); - let palette = self.extended_palette(); - - radio::Appearance { - dot_color: palette.primary.strong.color, - background: palette.primary.weak.color.into(), - ..active - } - } - Radio::Custom(custom) => custom.hovered(self, is_selected), - } - } -} - /// The style of a toggler. #[derive(Default)] pub enum Toggler { |