Skip to content

Commit 3e68caa

Browse files
committed
Add hotkey support for stopwatch example
1 parent 08a031c commit 3e68caa

1 file changed

Lines changed: 15 additions & 1 deletion

File tree

examples/stopwatch/src/main.rs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
use iced::alignment;
22
use iced::executor;
3+
use iced::keyboard;
34
use iced::theme::{self, Theme};
45
use iced::time;
56
use iced::widget::{button, column, container, row, text};
@@ -77,12 +78,25 @@ impl Application for Stopwatch {
7778
}
7879

7980
fn subscription(&self) -> Subscription<Message> {
80-
match self.state {
81+
let tick = match self.state {
8182
State::Idle => Subscription::none(),
8283
State::Ticking { .. } => {
8384
time::every(Duration::from_millis(10)).map(Message::Tick)
8485
}
86+
};
87+
88+
fn handle_hotkey(
89+
key_code: keyboard::KeyCode,
90+
_modifiers: keyboard::Modifiers,
91+
) -> Option<Message> {
92+
match key_code {
93+
keyboard::KeyCode::Space => Some(Message::Toggle),
94+
keyboard::KeyCode::R => Some(Message::Reset),
95+
_ => None,
96+
}
8597
}
98+
99+
Subscription::batch(vec![tick, keyboard::on_key_press(handle_hotkey)])
86100
}
87101

88102
fn view(&self) -> Element<Message> {

0 commit comments

Comments
 (0)