summaryrefslogtreecommitdiffstats
path: root/style/src/theme.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-05-26 00:40:27 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-05-26 00:40:27 +0200
commit3a820b45f336398c48f8bedf7b8c4b8af876efff (patch)
tree44d7597820aabe1f7b0fc9db053357170e25aeec /style/src/theme.rs
parent03eda9b162012c503ead649e5ccb95b7ef1d10ed (diff)
downloadiced-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.rs54
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
+ }
+ }
+}