diff options
author | 2024-03-06 15:41:57 +0100 | |
---|---|---|
committer | 2024-03-06 15:49:06 +0100 | |
commit | 9b2fd6416775cb27af69e34fb20063d28b4314eb (patch) | |
tree | d6c55df1df5466429e0afe410acfa488600718c5 /style | |
parent | 68c8f23f02a55373db728b115c3a4360669e2b80 (diff) | |
download | iced-9b2fd6416775cb27af69e34fb20063d28b4314eb.tar.gz iced-9b2fd6416775cb27af69e34fb20063d28b4314eb.tar.bz2 iced-9b2fd6416775cb27af69e34fb20063d28b4314eb.zip |
Simplify theming for `PaneGrid` widget
Diffstat (limited to 'style')
-rw-r--r-- | style/src/lib.rs | 1 | ||||
-rw-r--r-- | style/src/pane_grid.rs | 38 | ||||
-rw-r--r-- | style/src/theme.rs | 66 |
3 files changed, 1 insertions, 104 deletions
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<Line>; - - /// The [`Line`] to draw when a split is hovered. - fn hovered_split(&self, style: &Self::Style) -> Option<Line>; -} 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<dyn pane_grid::StyleSheet<Style = Theme>>), -} - -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<pane_grid::Line> { - 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<pane_grid::Line> { - 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 {} |