summaryrefslogtreecommitdiffstats
path: root/style
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-03-06 15:41:57 +0100
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-03-06 15:49:06 +0100
commit9b2fd6416775cb27af69e34fb20063d28b4314eb (patch)
treed6c55df1df5466429e0afe410acfa488600718c5 /style
parent68c8f23f02a55373db728b115c3a4360669e2b80 (diff)
downloadiced-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.rs1
-rw-r--r--style/src/pane_grid.rs38
-rw-r--r--style/src/theme.rs66
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 {}