Skip to content

Commit 6332eae

Browse files
committed
Implement hotkey support (fix #18)
1 parent 405341f commit 6332eae

1 file changed

Lines changed: 32 additions & 3 deletions

File tree

src/ui/update.rs

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
//! Work with data; message handling
22
33
use iced::{
4-
Event, Task,
4+
Event, Task, keyboard,
55
window::{self, Id, Settings},
66
};
77

@@ -140,8 +140,37 @@ impl TimeKeeper {
140140
Task::none()
141141
}
142142

143-
fn handle_events(&mut self, _event: Event) -> Task<Message> {
144-
Task::none()
143+
/// Handle events (e.g. keyboard combinations)
144+
///
145+
/// - F1 - about
146+
/// - F2 - settings
147+
/// - F3 - show/hide statistics
148+
/// - F5 - start/pause
149+
/// - F6 - stop
150+
fn handle_events(&mut self, event: Event) -> Task<Message> {
151+
match event {
152+
Event::Keyboard(keyboard::Event::KeyPressed {
153+
key: keyboard::Key::Named(keyboard::key::Named::F1),
154+
..
155+
}) => self.select_page(Page::About),
156+
Event::Keyboard(keyboard::Event::KeyPressed {
157+
key: keyboard::Key::Named(keyboard::key::Named::F2),
158+
..
159+
}) => self.select_page(Page::Settings),
160+
Event::Keyboard(keyboard::Event::KeyPressed {
161+
key: keyboard::Key::Named(keyboard::key::Named::F3),
162+
..
163+
}) => self.toggle_stats(),
164+
Event::Keyboard(keyboard::Event::KeyPressed {
165+
key: keyboard::Key::Named(keyboard::key::Named::F5),
166+
..
167+
}) => self.toggle_pause(),
168+
Event::Keyboard(keyboard::Event::KeyPressed {
169+
key: keyboard::Key::Named(keyboard::key::Named::F6),
170+
..
171+
}) => self.set_stop(),
172+
_ => Task::none(),
173+
}
145174
}
146175

147176
fn select_page(&mut self, page: Page) -> Task<Message> {

0 commit comments

Comments
 (0)