From 30aff2209ef3030161ced962af1cf88729157b9c Mon Sep 17 00:00:00 2001 From: Polesznyák Márk Date: Tue, 9 Dec 2025 09:08:05 +0100 Subject: chore: update as necessary for upstream iced changes --- examples/styling.rs | 27 ++++++++++++++++++--------- src/scrollable.rs | 14 ++++++++------ src/toggler.rs | 43 ++++++++++++++++++++++++++++--------------- 3 files changed, 54 insertions(+), 30 deletions(-) diff --git a/examples/styling.rs b/examples/styling.rs index 37a613d..81c82dd 100644 --- a/examples/styling.rs +++ b/examples/styling.rs @@ -165,6 +165,7 @@ impl Styling { let toggler = toggler(self.toggler_value) .label("Toggle me!") .on_toggle(Message::TogglerToggled) + .size(20) .spacing(10); let card = { @@ -217,15 +218,23 @@ impl Styling { } fn subscription(&self) -> Subscription { - keyboard::on_key_press(|key, _modifiers| match key { - keyboard::Key::Named( - keyboard::key::Named::ArrowUp | keyboard::key::Named::ArrowLeft, - ) => Some(Message::PreviousTheme), - keyboard::Key::Named( - keyboard::key::Named::ArrowDown - | keyboard::key::Named::ArrowRight, - ) => Some(Message::NextTheme), - _ => None, + keyboard::listen().filter_map(|event| { + let keyboard::Event::KeyPressed { key, .. } = event + else { + return None; + }; + + match key { + keyboard::Key::Named( + keyboard::key::Named::ArrowUp + | keyboard::key::Named::ArrowLeft, + ) => Some(Message::PreviousTheme), + keyboard::Key::Named( + keyboard::key::Named::ArrowDown + | keyboard::key::Named::ArrowRight, + ) => Some(Message::NextTheme), + _ => None, + } }) } diff --git a/src/scrollable.rs b/src/scrollable.rs index 0277ea8..5f3f166 100644 --- a/src/scrollable.rs +++ b/src/scrollable.rs @@ -29,7 +29,7 @@ pub fn default(theme: &Theme, status: Status) -> Style { let active_rail = Rail { background: None, scroller: Scroller { - color: surface.text, + background: surface.text.into(), border: border::rounded(400), }, border: Border::default(), @@ -38,7 +38,7 @@ pub fn default(theme: &Theme, status: Status) -> Style { let disabled_rail = Rail { background: Some(Background::Color(disabled_container(surface.text))), scroller: Scroller { - color: disabled_text(surface.text), + background: disabled_text(surface.text).into(), border: border::rounded(400), }, ..active_rail @@ -98,11 +98,12 @@ pub fn default(theme: &Theme, status: Status) -> Style { } => { let hovered_rail = Rail { scroller: Scroller { - color: mix( + background: mix( surface.text, surface.color, HOVERED_LAYER_OPACITY, - ), + ) + .into(), border: border::rounded(400), }, ..active_rail @@ -141,11 +142,12 @@ pub fn default(theme: &Theme, status: Status) -> Style { } => { let dragged_rail = Rail { scroller: Scroller { - color: mix( + background: mix( surface.text, surface.color, PRESSED_LAYER_OPACITY, - ), + ) + .into(), border: border::rounded(400), }, ..active_rail diff --git a/src/toggler.rs b/src/toggler.rs index 25730a2..ad6bbb1 100644 --- a/src/toggler.rs +++ b/src/toggler.rs @@ -1,4 +1,4 @@ -use iced_widget::core::Color; +use iced_widget::core::{Background, Color}; use iced_widget::toggler::{Catalog, Status, Style, StyleFn}; use super::Theme; @@ -19,19 +19,21 @@ impl Catalog for Theme { } pub fn styled( - background: Color, - foreground: Color, + background: Background, + foreground: Background, text_color: Color, border: Option, ) -> Style { Style { background, - background_border_width: if border.is_some() { 2.0 } else { 0.0 }, + background_border_width: if border.is_some() { 1.5 } else { 0.0 }, background_border_color: border.unwrap_or(Color::TRANSPARENT), foreground, - foreground_border_width: 2.0, + foreground_border_width: 0.0, foreground_border_color: Color::TRANSPARENT, text_color: Some(text_color), + border_radius: None, + padding_ratio: 0.2, } } @@ -42,11 +44,16 @@ pub fn default(theme: &Theme, status: Status) -> Style { match status { Status::Active { is_toggled } => { if is_toggled { - styled(primary.color, primary.text, surface.text, None) + styled( + primary.color.into(), + primary.text.into(), + surface.text, + None, + ) } else { styled( - surface.container.highest, - theme.colors().outline.color, + surface.container.highest.into(), + theme.colors().outline.color.into(), surface.text, Some(theme.colors().outline.color), ) @@ -54,15 +61,21 @@ pub fn default(theme: &Theme, status: Status) -> Style { } Status::Hovered { is_toggled } => { if is_toggled { - styled(primary.color, primary.container, surface.text, None) + styled( + primary.color.into(), + primary.container.into(), + surface.text, + None, + ) } else { styled( mix( surface.container.highest, surface.text, HOVERED_LAYER_OPACITY, - ), - surface.text_variant, + ) + .into(), + surface.text_variant.into(), surface.text, Some(theme.colors().outline.color), ) @@ -71,15 +84,15 @@ pub fn default(theme: &Theme, status: Status) -> Style { Status::Disabled { is_toggled } => { if is_toggled { styled( - disabled_container(surface.text), - disabled_text(surface.color), + disabled_container(surface.text).into(), + disabled_text(surface.color).into(), surface.text, None, ) } else { styled( - disabled_container(surface.container.highest), - disabled_text(surface.text), + disabled_container(surface.container.highest).into(), + disabled_text(surface.text).into(), surface.text, Some(disabled_text(surface.text)), ) -- cgit v1.2.3