From ce309db37b8eb9860ae1f1be1710fb39e7a9edea Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Mon, 4 Mar 2024 03:57:03 +0100 Subject: Try new approach to theming for `Slider` --- style/src/slider.rs | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) (limited to 'style/src/slider.rs') 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) -> 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, } -- cgit From d735209fc32238185ea0f27f1f4d1d0044b90e06 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Tue, 5 Mar 2024 21:23:14 +0100 Subject: Move style types of `slider` to `iced_widget` --- style/src/slider.rs | 75 ----------------------------------------------------- 1 file changed, 75 deletions(-) delete mode 100644 style/src/slider.rs (limited to 'style/src/slider.rs') diff --git a/style/src/slider.rs b/style/src/slider.rs deleted file mode 100644 index 0c19e47d..00000000 --- a/style/src/slider.rs +++ /dev/null @@ -1,75 +0,0 @@ -//! Change the apperance of a slider. -use crate::core::border; -use crate::core::{Color, Pixels}; - -/// The appearance of a slider. -#[derive(Debug, Clone, Copy)] -pub struct Appearance { - /// The colors of the rail of the slider. - pub rail: Rail, - /// The appearance of the [`Handle`] of the slider. - 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) -> Self { - self.handle.shape = HandleShape::Circle { - radius: radius.into().0, - }; - self - } -} - -/// The appearance of a slider rail -#[derive(Debug, Clone, Copy)] -pub struct Rail { - /// The colors of the rail of the slider. - pub colors: (Color, Color), - /// The width of the stroke of a slider rail. - pub width: f32, - /// The border radius of the corners of the rail. - pub border_radius: border::Radius, -} - -/// The appearance of the handle of a slider. -#[derive(Debug, Clone, Copy)] -pub struct Handle { - /// The shape of the handle. - pub shape: HandleShape, - /// The [`Color`] of the handle. - pub color: Color, - /// The border width of the handle. - pub border_width: f32, - /// The border [`Color`] of the handle. - pub border_color: Color, -} - -/// The shape of the handle of a slider. -#[derive(Debug, Clone, Copy)] -pub enum HandleShape { - /// A circular handle. - Circle { - /// The radius of the circle. - radius: f32, - }, - /// A rectangular shape. - Rectangle { - /// The width of the rectangle. - width: u16, - /// The border radius of the corners of the rectangle. - border_radius: border::Radius, - }, -} - -/// A set of rules that dictate the style of a slider. -pub trait StyleSheet { - fn default() -> fn(&Self, Status) -> Appearance; -} - -pub enum Status { - Active, - Hovered, - Dragging, -} -- cgit