diff options
| author | Polesznyák Márk <contact@pml68.dev> | 2025-09-29 12:56:17 +0200 |
|---|---|---|
| committer | Polesznyák Márk <contact@pml68.dev> | 2025-09-29 12:56:17 +0200 |
| commit | e703a81b042fd79dcc262472eb075cc5ded0aebb (patch) | |
| tree | 6021f84dad08b5a6137a49c56a98613b5faccd21 /examples | |
| parent | docs(README): add builds.sr.ht status badge (diff) | |
| download | iced_material-e703a81b042fd79dcc262472eb075cc5ded0aebb.tar.gz | |
feat!: use iced's built-in theme preference detection
Diffstat (limited to '')
| -rw-r--r-- | examples/styling.rs | 46 |
1 files changed, 17 insertions, 29 deletions
diff --git a/examples/styling.rs b/examples/styling.rs index 127f615..6b8a381 100644 --- a/examples/styling.rs +++ b/examples/styling.rs @@ -1,8 +1,7 @@ use iced::keyboard; use iced::widget::{ - Button, center, checkbox, column, container, horizontal_rule, pick_list, - progress_bar, row, scrollable, slider, text, text_input, toggler, - vertical_rule, vertical_space, + Button, center, checkbox, column, container, pick_list, progress_bar, row, + rule, scrollable, slider, space, text, text_input, toggler, }; use iced::{Center, Fill, Subscription}; use iced_material::{Theme, button}; @@ -35,7 +34,6 @@ enum Message { TogglerToggled(bool), PreviousTheme, NextTheme, - SystemThemeChanged(Theme), } impl Styling { @@ -66,9 +64,6 @@ impl Styling { }; } } - Message::SystemThemeChanged(theme) => { - Theme::update_system_theme(theme) - } } } @@ -104,7 +99,7 @@ impl Styling { let progress_bar = || progress_bar(0.0..=100.0, self.slider_value); let scrollable = scrollable( - column!["Scroll me!", vertical_space().height(800), "You did it!"] + column!["Scroll me!", space::vertical().height(800), "You did it!"] .padding(10), ) .width(Fill) @@ -144,7 +139,7 @@ impl Styling { let content = column![ choose_theme, - horizontal_rule(1), + rule::horizontal(1), text_input, row![filled, elevated, filled_tonal, outlined, text_button] .spacing(10) @@ -153,7 +148,7 @@ impl Styling { progress_bar(), row![ scrollable, - row![vertical_rule(1), column![checkbox, toggler].spacing(20)] + row![rule::vertical(1), column![checkbox, toggler].spacing(20)] .spacing(20) ] .spacing(10) @@ -169,26 +164,19 @@ impl Styling { } fn subscription(&self) -> Subscription<Message> { - let theme_toggle = - 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, - }); - - let system_theme = - Theme::subscription().map(Message::SystemThemeChanged); - - Subscription::batch([theme_toggle, system_theme]) + 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, + }) } - fn theme(&self) -> Theme { - self.theme.clone() + fn theme(&self) -> Option<Theme> { + None } } |
