aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPolesznyák Márk <contact@pml68.dev>2025-12-09 09:08:05 +0100
committerPolesznyák Márk <contact@pml68.dev>2025-12-09 09:08:05 +0100
commit30aff2209ef3030161ced962af1cf88729157b9c (patch)
tree9ec973d60d199f4dc4bae5daaf2068e04c812786
parentchore(manifest): add homepage, fix repo URL (diff)
downloadiced_material-30aff2209ef3030161ced962af1cf88729157b9c.tar.gz
chore: update as necessary for upstream iced changes
-rw-r--r--examples/styling.rs27
-rw-r--r--src/scrollable.rs14
-rw-r--r--src/toggler.rs43
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<Message> {
- 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<Color>,
) -> 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)),
)