diff options
author | 2022-06-01 02:04:23 +0200 | |
---|---|---|
committer | 2022-06-01 02:04:23 +0200 | |
commit | e4ca779e436561bf48e5d34cdf554292fd4761e4 (patch) | |
tree | db4b25b7df955e1137b15709ca8c1c6b9cd3d1a7 /style/src | |
parent | c275fde67a7f5d1d5789540dc7905250a2f01fe7 (diff) | |
download | iced-e4ca779e436561bf48e5d34cdf554292fd4761e4.tar.gz iced-e4ca779e436561bf48e5d34cdf554292fd4761e4.tar.bz2 iced-e4ca779e436561bf48e5d34cdf554292fd4761e4.zip |
Introduce `Custom` style variant for `Rule`
Diffstat (limited to 'style/src')
-rw-r--r-- | style/src/theme.rs | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/style/src/theme.rs b/style/src/theme.rs index 713225e1..71a25dbe 100644 --- a/style/src/theme.rs +++ b/style/src/theme.rs @@ -284,17 +284,32 @@ impl pane_grid::StyleSheet for Theme { /* * Rule */ +#[derive(Clone, Copy)] +pub enum Rule { + Default, + Custom(fn(&Theme) -> rule::Appearance), +} + +impl Default for Rule { + fn default() -> Self { + Self::Default + } +} + impl rule::StyleSheet for Theme { - type Style = (); + type Style = Rule; - fn style(&self, _style: Self::Style) -> rule::Appearance { + fn style(&self, style: Self::Style) -> rule::Appearance { let palette = self.extended_palette(); - rule::Appearance { - color: palette.background.strong.color, - width: 1, - radius: 0.0, - fill_mode: rule::FillMode::Full, + match style { + Rule::Default => rule::Appearance { + color: palette.background.strong.color, + width: 1, + radius: 0.0, + fill_mode: rule::FillMode::Full, + }, + Rule::Custom(f) => f(self), } } } |