diff options
Diffstat (limited to '')
| -rw-r--r-- | style/src/pane_grid.rs | 33 | ||||
| -rw-r--r-- | style/src/theme.rs | 26 | 
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, +        }) +    } +}  | 
