diff options
author | 2023-09-07 03:10:57 +0200 | |
---|---|---|
committer | 2023-09-07 03:10:57 +0200 | |
commit | c8fed143eb14d790da0592c5e24c741f6fda101e (patch) | |
tree | cf7f002d1ac7e2a8c036f1d420238d69ab45407b /examples/stopwatch/src | |
parent | a56b25b9096d47ada3c4349f5b91110dfaa92bf6 (diff) | |
parent | d21f0698b505d699c44e9414f902dbeca9474e39 (diff) | |
download | iced-c8fed143eb14d790da0592c5e24c741f6fda101e.tar.gz iced-c8fed143eb14d790da0592c5e24c741f6fda101e.tar.bz2 iced-c8fed143eb14d790da0592c5e24c741f6fda101e.zip |
Merge pull request #2073 from iced-rs/event-helpers
Add `keyboard` subscriptions and rename `subscription::events` to `event::listen`
Diffstat (limited to 'examples/stopwatch/src')
-rw-r--r-- | examples/stopwatch/src/main.rs | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/examples/stopwatch/src/main.rs b/examples/stopwatch/src/main.rs index 842ba3d4..0b0f0607 100644 --- a/examples/stopwatch/src/main.rs +++ b/examples/stopwatch/src/main.rs @@ -1,5 +1,6 @@ use iced::alignment; use iced::executor; +use iced::keyboard; use iced::theme::{self, Theme}; use iced::time; use iced::widget::{button, column, container, row, text}; @@ -77,12 +78,25 @@ impl Application for Stopwatch { } fn subscription(&self) -> Subscription<Message> { - match self.state { + let tick = match self.state { State::Idle => Subscription::none(), State::Ticking { .. } => { time::every(Duration::from_millis(10)).map(Message::Tick) } + }; + + fn handle_hotkey( + key_code: keyboard::KeyCode, + _modifiers: keyboard::Modifiers, + ) -> Option<Message> { + match key_code { + keyboard::KeyCode::Space => Some(Message::Toggle), + keyboard::KeyCode::R => Some(Message::Reset), + _ => None, + } } + + Subscription::batch(vec![tick, keyboard::on_key_press(handle_hotkey)]) } fn view(&self) -> Element<Message> { |