summaryrefslogtreecommitdiffstats
path: root/style
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-03-06 11:24:51 +0100
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-03-06 11:24:51 +0100
commit40af65c3aa4a96281db8f642cfa1641479314d27 (patch)
tree6cd41fd0bd3804a185f94b1f7d79d42f0f0537b2 /style
parenta43afc791e8f78b03d802f980a10f32dc932f0b2 (diff)
downloadiced-40af65c3aa4a96281db8f642cfa1641479314d27.tar.gz
iced-40af65c3aa4a96281db8f642cfa1641479314d27.tar.bz2
iced-40af65c3aa4a96281db8f642cfa1641479314d27.zip
Simplify theming for `Toggler` widget
Diffstat (limited to 'style')
-rw-r--r--style/src/lib.rs1
-rw-r--r--style/src/theme.rs70
-rw-r--r--style/src/toggler.rs35
3 files changed, 0 insertions, 106 deletions
diff --git a/style/src/lib.rs b/style/src/lib.rs
index 09a943aa..3e439f07 100644
--- a/style/src/lib.rs
+++ b/style/src/lib.rs
@@ -23,6 +23,5 @@ pub mod pick_list;
pub mod svg;
pub mod text_editor;
pub mod theme;
-pub mod toggler;
pub use theme::Theme;
diff --git a/style/src/theme.rs b/style/src/theme.rs
index a7a95ab0..993e3d68 100644
--- a/style/src/theme.rs
+++ b/style/src/theme.rs
@@ -10,7 +10,6 @@ use crate::pane_grid;
use crate::pick_list;
use crate::svg;
use crate::text_editor;
-use crate::toggler;
use crate::core::{Background, Border, Color};
@@ -378,75 +377,6 @@ impl pick_list::StyleSheet for Theme {
}
}
-/// The style of a toggler.
-#[derive(Default)]
-pub enum Toggler {
- /// The default style.
- #[default]
- Default,
- /// A custom style.
- Custom(Box<dyn toggler::StyleSheet<Style = Theme>>),
-}
-
-impl toggler::StyleSheet for Theme {
- type Style = Toggler;
-
- fn active(
- &self,
- style: &Self::Style,
- is_active: bool,
- ) -> toggler::Appearance {
- match style {
- Toggler::Default => {
- let palette = self.extended_palette();
-
- toggler::Appearance {
- background: if is_active {
- palette.primary.strong.color
- } else {
- palette.background.strong.color
- },
- background_border_width: 0.0,
- background_border_color: Color::TRANSPARENT,
- foreground: if is_active {
- palette.primary.strong.text
- } else {
- palette.background.base.color
- },
- foreground_border_width: 0.0,
- foreground_border_color: Color::TRANSPARENT,
- }
- }
- Toggler::Custom(custom) => custom.active(self, is_active),
- }
- }
-
- fn hovered(
- &self,
- style: &Self::Style,
- is_active: bool,
- ) -> toggler::Appearance {
- match style {
- Toggler::Default => {
- let palette = self.extended_palette();
-
- toggler::Appearance {
- foreground: if is_active {
- Color {
- a: 0.5,
- ..palette.primary.strong.text
- }
- } else {
- palette.background.weak.color
- },
- ..self.active(style, is_active)
- }
- }
- Toggler::Custom(custom) => custom.hovered(self, is_active),
- }
- }
-}
-
/// The style of a pane grid.
#[derive(Default)]
pub enum PaneGrid {
diff --git a/style/src/toggler.rs b/style/src/toggler.rs
deleted file mode 100644
index 731e87ce..00000000
--- a/style/src/toggler.rs
+++ /dev/null
@@ -1,35 +0,0 @@
-//! Change the appearance of a toggler.
-use iced_core::Color;
-
-/// The appearance of a toggler.
-#[derive(Debug, Clone, Copy)]
-pub struct Appearance {
- /// The background [`Color`] of the toggler.
- pub background: Color,
- /// The width of the background border of the toggler.
- pub background_border_width: f32,
- /// The [`Color`] of the background border of the toggler.
- pub background_border_color: Color,
- /// The foreground [`Color`] of the toggler.
- pub foreground: Color,
- /// The width of the foreground border of the toggler.
- pub foreground_border_width: f32,
- /// The [`Color`] of the foreground border of the toggler.
- pub foreground_border_color: Color,
-}
-
-/// A set of rules that dictate the style of a toggler.
-pub trait StyleSheet {
- /// The supported style of the [`StyleSheet`].
- type Style: Default;
-
- /// Returns the active [`Appearance`] of the toggler for the provided [`Style`].
- ///
- /// [`Style`]: Self::Style
- fn active(&self, style: &Self::Style, is_active: bool) -> Appearance;
-
- /// Returns the hovered [`Appearance`] of the toggler for the provided [`Style`].
- ///
- /// [`Style`]: Self::Style
- fn hovered(&self, style: &Self::Style, is_active: bool) -> Appearance;
-}