diff options
author | 2022-05-26 00:40:27 +0200 | |
---|---|---|
committer | 2022-05-26 00:40:27 +0200 | |
commit | 3a820b45f336398c48f8bedf7b8c4b8af876efff (patch) | |
tree | 44d7597820aabe1f7b0fc9db053357170e25aeec /style/src/theme.rs | |
parent | 03eda9b162012c503ead649e5ccb95b7ef1d10ed (diff) | |
download | iced-3a820b45f336398c48f8bedf7b8c4b8af876efff.tar.gz iced-3a820b45f336398c48f8bedf7b8c4b8af876efff.tar.bz2 iced-3a820b45f336398c48f8bedf7b8c4b8af876efff.zip |
Implement theme styling for `Slider`
Diffstat (limited to 'style/src/theme.rs')
-rw-r--r-- | style/src/theme.rs | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/style/src/theme.rs b/style/src/theme.rs index 16f24923..e3c0efc6 100644 --- a/style/src/theme.rs +++ b/style/src/theme.rs @@ -3,6 +3,7 @@ mod palette; pub use self::palette::Palette; use crate::button; +use crate::slider; use iced_core::{Background, Color}; @@ -118,3 +119,56 @@ impl button::StyleSheet for Theme { } } } + +impl slider::StyleSheet for Theme { + type Variant = (); + + fn active(&self, _variant: Self::Variant) -> slider::Style { + let palette = self.extended_palette(); + + let handle = slider::Handle { + shape: slider::HandleShape::Rectangle { + width: 8, + border_radius: 4.0, + }, + color: Color::WHITE, + border_color: Color::WHITE, + border_width: 1.0, + }; + + slider::Style { + rail_colors: (palette.background.strong, palette.background.base), + handle: slider::Handle { + color: palette.background.base, + border_color: palette.border, + ..handle + }, + } + } + + fn hovered(&self, variant: Self::Variant) -> slider::Style { + let active = self.active(variant); + let palette = self.extended_palette(); + + slider::Style { + handle: slider::Handle { + color: palette.background.weak, + ..active.handle + }, + ..active + } + } + + fn dragging(&self, variant: Self::Variant) -> slider::Style { + let active = self.active(variant); + let palette = self.extended_palette(); + + slider::Style { + handle: slider::Handle { + color: palette.background.strong, + ..active.handle + }, + ..active + } + } +} |