|
1 | 1 | //! Work with data; message handling |
2 | 2 |
|
3 | 3 | use iced::{ |
4 | | - Event, Task, |
| 4 | + Event, Task, keyboard, |
5 | 5 | window::{self, Id, Settings}, |
6 | 6 | }; |
7 | 7 |
|
@@ -140,8 +140,37 @@ impl TimeKeeper { |
140 | 140 | Task::none() |
141 | 141 | } |
142 | 142 |
|
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 | + } |
145 | 174 | } |
146 | 175 |
|
147 | 176 | fn select_page(&mut self, page: Page) -> Task<Message> { |
|
0 commit comments