summaryrefslogtreecommitdiffstats
path: root/style/src/slider.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-03-04 03:57:03 +0100
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-03-04 03:57:03 +0100
commitce309db37b8eb9860ae1f1be1710fb39e7a9edea (patch)
treea28ef6659f6235ec7bc2a7403cfef467a71fb2bf /style/src/slider.rs
parent1bb5a1b9a23e1c4739430ac87ca33b06c2f4d9df (diff)
downloadiced-ce309db37b8eb9860ae1f1be1710fb39e7a9edea.tar.gz
iced-ce309db37b8eb9860ae1f1be1710fb39e7a9edea.tar.bz2
iced-ce309db37b8eb9860ae1f1be1710fb39e7a9edea.zip
Try new approach to theming for `Slider`
Diffstat (limited to '')
-rw-r--r--style/src/slider.rs29
1 files changed, 18 insertions, 11 deletions
diff --git a/style/src/slider.rs b/style/src/slider.rs
index bf1c7329..0c19e47d 100644
--- a/style/src/slider.rs
+++ b/style/src/slider.rs
@@ -1,6 +1,6 @@
//! Change the apperance of a slider.
use crate::core::border;
-use crate::core::Color;
+use crate::core::{Color, Pixels};
/// The appearance of a slider.
#[derive(Debug, Clone, Copy)]
@@ -11,6 +11,17 @@ pub struct Appearance {
pub handle: Handle,
}
+impl Appearance {
+ /// Changes the [`HandleShape`] of the [`Appearance`] to a circle
+ /// with the given radius.
+ pub fn with_circular_handle(mut self, radius: impl Into<Pixels>) -> Self {
+ self.handle.shape = HandleShape::Circle {
+ radius: radius.into().0,
+ };
+ self
+ }
+}
+
/// The appearance of a slider rail
#[derive(Debug, Clone, Copy)]
pub struct Rail {
@@ -54,15 +65,11 @@ pub enum HandleShape {
/// A set of rules that dictate the style of a slider.
pub trait StyleSheet {
- /// The supported style of the [`StyleSheet`].
- type Style: Default;
-
- /// Produces the style of an active slider.
- fn active(&self, style: &Self::Style) -> Appearance;
-
- /// Produces the style of an hovered slider.
- fn hovered(&self, style: &Self::Style) -> Appearance;
+ fn default() -> fn(&Self, Status) -> Appearance;
+}
- /// Produces the style of a slider that is being dragged.
- fn dragging(&self, style: &Self::Style) -> Appearance;
+pub enum Status {
+ Active,
+ Hovered,
+ Dragging,
}