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 --- style/src/lib.rs | 1 - style/src/radio.rs | 29 ---------------------------- style/src/theme.rs | 56 ------------------------------------------------------ 3 files changed, 86 deletions(-) delete mode 100644 style/src/radio.rs (limited to 'style') 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, -} - -/// 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>), -} - -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 { -- cgit