summaryrefslogtreecommitdiffstats
path: root/style
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-06-01 01:44:59 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-06-01 01:46:14 +0200
commit6f69df3d415bfc922ce15539746026843bd410e6 (patch)
tree8683025be83c085aa5363d8927e46b7aa4d22694 /style
parenta206d22670eda60d6364444f690633dc11e75a41 (diff)
downloadiced-6f69df3d415bfc922ce15539746026843bd410e6.tar.gz
iced-6f69df3d415bfc922ce15539746026843bd410e6.tar.bz2
iced-6f69df3d415bfc922ce15539746026843bd410e6.zip
Implement theme styling for `PaneGrid`
Diffstat (limited to 'style')
-rw-r--r--style/src/pane_grid.rs33
-rw-r--r--style/src/theme.rs26
2 files changed, 30 insertions, 29 deletions
diff --git a/style/src/pane_grid.rs b/style/src/pane_grid.rs
index a12ac3f5..5bae353f 100644
--- a/style/src/pane_grid.rs
+++ b/style/src/pane_grid.rs
@@ -4,11 +4,13 @@ use iced_core::Color;
/// A set of rules that dictate the style of a container.
pub trait StyleSheet {
+ type Style: Default + Copy;
+
/// The [`Line`] to draw when a split is picked.
- fn picked_split(&self) -> Option<Line>;
+ fn picked_split(&self, style: Self::Style) -> Option<Line>;
/// The [`Line`] to draw when a split is hovered.
- fn hovered_split(&self) -> Option<Line>;
+ fn hovered_split(&self, style: Self::Style) -> Option<Line>;
}
/// A line.
@@ -22,30 +24,3 @@ pub struct Line {
/// The width of the [`Line`].
pub width: f32,
}
-
-struct Default;
-
-impl StyleSheet for Default {
- fn picked_split(&self) -> Option<Line> {
- None
- }
-
- fn hovered_split(&self) -> Option<Line> {
- None
- }
-}
-
-impl<'a> std::default::Default for Box<dyn StyleSheet + 'a> {
- fn default() -> Self {
- Box::new(Default)
- }
-}
-
-impl<'a, T> From<T> for Box<dyn StyleSheet + 'a>
-where
- T: StyleSheet + 'a,
-{
- fn from(style_sheet: T) -> Self {
- Box::new(style_sheet)
- }
-}
diff --git a/style/src/theme.rs b/style/src/theme.rs
index 2f9fd4fa..71330c2e 100644
--- a/style/src/theme.rs
+++ b/style/src/theme.rs
@@ -4,6 +4,7 @@ pub use self::palette::Palette;
use crate::application;
use crate::button;
+use crate::pane_grid;
use crate::radio;
use crate::slider;
use crate::toggler;
@@ -253,3 +254,28 @@ impl toggler::StyleSheet for Theme {
}
}
}
+
+/*
+ * Pane Grid
+ */
+impl pane_grid::StyleSheet for Theme {
+ type Style = ();
+
+ fn picked_split(&self, _style: Self::Style) -> Option<pane_grid::Line> {
+ let palette = self.extended_palette();
+
+ Some(pane_grid::Line {
+ color: palette.primary.strong.color,
+ width: 2.0,
+ })
+ }
+
+ fn hovered_split(&self, _style: Self::Style) -> Option<pane_grid::Line> {
+ let palette = self.extended_palette();
+
+ Some(pane_grid::Line {
+ color: palette.primary.base.color,
+ width: 2.0,
+ })
+ }
+}