summaryrefslogtreecommitdiff
path: root/crates/material_theme/src/slider.rs
diff options
context:
space:
mode:
authorpml68 <contact@pml68.dev>2025-06-26 12:16:52 +0200
committerpml68 <contact@pml68.dev>2025-06-26 12:16:52 +0200
commit00c6cf80cb9c4587700078a062a6b32873b6f8ff (patch)
tree9aad054c784b51d4a0bc97c928b89da7dbcab863 /crates/material_theme/src/slider.rs
parentfeat: update for hot reloading support (diff)
downloadiced-builder-00c6cf80cb9c4587700078a062a6b32873b6f8ff.tar.gz
feat: extract `material_theme` into separate repo (`pml68/iced_material`)
Diffstat (limited to '')
-rw-r--r--crates/material_theme/src/slider.rs63
1 files changed, 0 insertions, 63 deletions
diff --git a/crates/material_theme/src/slider.rs b/crates/material_theme/src/slider.rs
deleted file mode 100644
index ae9ee4b..0000000
--- a/crates/material_theme/src/slider.rs
+++ /dev/null
@@ -1,63 +0,0 @@
-use iced_widget::core::{Background, Color, border};
-use iced_widget::slider::{
- Catalog, Handle, HandleShape, Rail, Status, Style, StyleFn,
-};
-
-use super::Theme;
-use crate::utils::{HOVERED_LAYER_OPACITY, PRESSED_LAYER_OPACITY, mix};
-
-impl Catalog for Theme {
- type Class<'a> = StyleFn<'a, Self>;
-
- fn default<'a>() -> <Self as Catalog>::Class<'a> {
- Box::new(default)
- }
-
- fn style(
- &self,
- class: &<Self as Catalog>::Class<'_>,
- status: Status,
- ) -> Style {
- class(self, status)
- }
-}
-
-pub fn styled(left: Color, right: Color, handle_radius: f32) -> Style {
- Style {
- rail: Rail {
- backgrounds: (left.into(), right.into()),
- width: 8.0,
- border: border::rounded(400),
- },
- handle: Handle {
- shape: HandleShape::Circle {
- radius: handle_radius,
- },
- background: Background::Color(left),
- border_width: 0.0,
- border_color: Color::TRANSPARENT,
- },
- }
-}
-
-pub fn default(theme: &Theme, status: Status) -> Style {
- let surface = theme.colors().surface;
- let primary = theme.colors().primary;
- let secondary = theme.colors().secondary;
-
- match status {
- Status::Active => {
- styled(primary.color, secondary.secondary_container, 12.0)
- }
- Status::Hovered => styled(
- mix(primary.color, surface.on_surface, HOVERED_LAYER_OPACITY),
- secondary.secondary_container,
- 12.0,
- ),
- Status::Dragged => styled(
- mix(primary.color, surface.on_surface, PRESSED_LAYER_OPACITY),
- secondary.secondary_container,
- 11.0,
- ),
- }
-}