diff options
author | 2024-03-05 21:23:14 +0100 | |
---|---|---|
committer | 2024-03-05 21:23:14 +0100 | |
commit | d735209fc32238185ea0f27f1f4d1d0044b90e06 (patch) | |
tree | c6c9896d9d498f4393d5cb4fd0c41520f0b7f2e0 /style | |
parent | 330a6252054b729e4d4d3f5a5d09f32e06cec282 (diff) | |
download | iced-d735209fc32238185ea0f27f1f4d1d0044b90e06.tar.gz iced-d735209fc32238185ea0f27f1f4d1d0044b90e06.tar.bz2 iced-d735209fc32238185ea0f27f1f4d1d0044b90e06.zip |
Move style types of `slider` to `iced_widget`
Diffstat (limited to 'style')
-rw-r--r-- | style/src/lib.rs | 1 | ||||
-rw-r--r-- | style/src/slider.rs | 75 | ||||
-rw-r--r-- | style/src/theme.rs | 38 |
3 files changed, 0 insertions, 114 deletions
diff --git a/style/src/lib.rs b/style/src/lib.rs index 7a6be69a..6da84b4d 100644 --- a/style/src/lib.rs +++ b/style/src/lib.rs @@ -23,7 +23,6 @@ pub mod pick_list; pub mod progress_bar; pub mod radio; pub mod rule; -pub mod slider; pub mod svg; pub mod text_editor; pub mod theme; 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<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 { - /// 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, -} diff --git a/style/src/theme.rs b/style/src/theme.rs index 9038d730..2f8488c7 100644 --- a/style/src/theme.rs +++ b/style/src/theme.rs @@ -11,7 +11,6 @@ use crate::pick_list; use crate::progress_bar; use crate::radio; use crate::rule; -use crate::slider; use crate::svg; use crate::text_editor; use crate::toggler; @@ -279,43 +278,6 @@ impl<T: Fn(&Theme) -> application::Appearance> application::StyleSheet for T { } } -impl slider::StyleSheet for Theme { - fn default() -> fn(&Self, slider::Status) -> slider::Appearance { - slider - } -} - -pub fn slider(theme: &Theme, status: slider::Status) -> slider::Appearance { - let palette = theme.extended_palette(); - - let handle = slider::Handle { - shape: slider::HandleShape::Rectangle { - width: 8, - border_radius: 4.0.into(), - }, - color: Color::WHITE, - border_color: Color::WHITE, - border_width: 1.0, - }; - - slider::Appearance { - rail: slider::Rail { - colors: (palette.primary.base.color, palette.secondary.base.color), - width: 4.0, - border_radius: 2.0.into(), - }, - handle: slider::Handle { - color: match status { - slider::Status::Active => palette.background.base.color, - slider::Status::Hovered => palette.primary.weak.color, - slider::Status::Dragging => palette.primary.base.color, - }, - border_color: palette.primary.base.color, - ..handle - }, - } -} - /// The style of a menu. #[derive(Clone, Default)] pub enum Menu { |