From 9b2fd6416775cb27af69e34fb20063d28b4314eb Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Wed, 6 Mar 2024 15:41:57 +0100 Subject: Simplify theming for `PaneGrid` widget --- style/src/lib.rs | 1 - style/src/pane_grid.rs | 38 ----------------------------- style/src/theme.rs | 66 +------------------------------------------------- 3 files changed, 1 insertion(+), 104 deletions(-) delete mode 100644 style/src/pane_grid.rs (limited to 'style') diff --git a/style/src/lib.rs b/style/src/lib.rs index 828f5871..695f8fb6 100644 --- a/style/src/lib.rs +++ b/style/src/lib.rs @@ -18,7 +18,6 @@ pub use iced_core as core; pub mod application; pub mod menu; -pub mod pane_grid; pub mod pick_list; pub mod theme; diff --git a/style/src/pane_grid.rs b/style/src/pane_grid.rs deleted file mode 100644 index 35570584..00000000 --- a/style/src/pane_grid.rs +++ /dev/null @@ -1,38 +0,0 @@ -//! Change the appearance of a pane grid. -use iced_core::{Background, Border, Color}; - -/// The appearance of the hovered region of a pane grid. -#[derive(Debug, Clone, Copy)] -pub struct Appearance { - /// The [`Background`] of the pane region. - pub background: Background, - /// The [`Border`] of the pane region. - pub border: Border, -} - -/// A line. -/// -/// It is normally used to define the highlight of something, like a split. -#[derive(Debug, Clone, Copy, PartialEq)] -pub struct Line { - /// The [`Color`] of the [`Line`]. - pub color: Color, - - /// The width of the [`Line`]. - pub width: f32, -} - -/// A set of rules that dictate the style of a container. -pub trait StyleSheet { - /// The supported style of the [`StyleSheet`]. - type Style: Default; - - /// The [`Appearance`] to draw when a pane is hovered. - fn hovered_region(&self, style: &Self::Style) -> Appearance; - - /// The [`Line`] to draw when a split is picked. - fn picked_split(&self, style: &Self::Style) -> Option; - - /// The [`Line`] to draw when a split is hovered. - fn hovered_split(&self, style: &Self::Style) -> Option; -} diff --git a/style/src/theme.rs b/style/src/theme.rs index 78995e23..cac52acd 100644 --- a/style/src/theme.rs +++ b/style/src/theme.rs @@ -6,10 +6,9 @@ pub use palette::Palette; use crate::application; use crate::core::widget::text; use crate::menu; -use crate::pane_grid; use crate::pick_list; -use crate::core::{Background, Border, Color}; +use crate::core::Border; use std::fmt; use std::rc::Rc; @@ -375,67 +374,4 @@ impl pick_list::StyleSheet for Theme { } } -/// The style of a pane grid. -#[derive(Default)] -pub enum PaneGrid { - /// The default style. - #[default] - Default, - /// A custom style. - Custom(Box>), -} - -impl pane_grid::StyleSheet for Theme { - type Style = PaneGrid; - - fn hovered_region(&self, style: &Self::Style) -> pane_grid::Appearance { - match style { - PaneGrid::Default => { - let palette = self.extended_palette(); - - pane_grid::Appearance { - background: Background::Color(Color { - a: 0.5, - ..palette.primary.base.color - }), - border: Border { - width: 2.0, - color: palette.primary.strong.color, - radius: 0.0.into(), - }, - } - } - PaneGrid::Custom(custom) => custom.hovered_region(self), - } - } - - fn picked_split(&self, style: &Self::Style) -> Option { - match style { - PaneGrid::Default => { - let palette = self.extended_palette(); - - Some(pane_grid::Line { - color: palette.primary.strong.color, - width: 2.0, - }) - } - PaneGrid::Custom(custom) => custom.picked_split(self), - } - } - - fn hovered_split(&self, style: &Self::Style) -> Option { - match style { - PaneGrid::Default => { - let palette = self.extended_palette(); - - Some(pane_grid::Line { - color: palette.primary.base.color, - width: 2.0, - }) - } - PaneGrid::Custom(custom) => custom.hovered_split(self), - } - } -} - impl text::StyleSheet for Theme {} -- cgit