|
@@ -20,6 +20,7 @@
|
|
|
use dioxus::desktop::wry::application::dpi::LogicalSize;
|
|
|
use dioxus::events::*;
|
|
|
use dioxus::prelude::*;
|
|
|
+use dioxus_html::input_data::keyboard_types::Key;
|
|
|
|
|
|
fn main() {
|
|
|
dioxus::desktop::launch_cfg(app, |cfg| {
|
|
@@ -212,22 +213,26 @@ impl Calculator {
|
|
|
self.waiting_for_operand = true;
|
|
|
}
|
|
|
fn handle_keydown(&mut self, evt: KeyboardEvent) {
|
|
|
- match evt.key_code {
|
|
|
- KeyCode::Backspace => self.backspace(),
|
|
|
- KeyCode::Num0 => self.input_digit(0),
|
|
|
- KeyCode::Num1 => self.input_digit(1),
|
|
|
- KeyCode::Num2 => self.input_digit(2),
|
|
|
- KeyCode::Num3 => self.input_digit(3),
|
|
|
- KeyCode::Num4 => self.input_digit(4),
|
|
|
- KeyCode::Num5 => self.input_digit(5),
|
|
|
- KeyCode::Num6 => self.input_digit(6),
|
|
|
- KeyCode::Num7 => self.input_digit(7),
|
|
|
- KeyCode::Num8 => self.input_digit(8),
|
|
|
- KeyCode::Num9 => self.input_digit(9),
|
|
|
- KeyCode::Add => self.operator = Some(Operator::Add),
|
|
|
- KeyCode::Subtract => self.operator = Some(Operator::Sub),
|
|
|
- KeyCode::Divide => self.operator = Some(Operator::Div),
|
|
|
- KeyCode::Multiply => self.operator = Some(Operator::Mul),
|
|
|
+ match evt.key() {
|
|
|
+ Key::Backspace => self.backspace(),
|
|
|
+ Key::Character(c) => match c.as_str() {
|
|
|
+ "0" => self.input_digit(0),
|
|
|
+ "1" => self.input_digit(1),
|
|
|
+ "2" => self.input_digit(2),
|
|
|
+ "3" => self.input_digit(3),
|
|
|
+ "4" => self.input_digit(4),
|
|
|
+ "5" => self.input_digit(5),
|
|
|
+ "6" => self.input_digit(6),
|
|
|
+ "7" => self.input_digit(7),
|
|
|
+ "8" => self.input_digit(8),
|
|
|
+ "9" => self.input_digit(9),
|
|
|
+ "+" => self.operator = Some(Operator::Add),
|
|
|
+ "-" => self.operator = Some(Operator::Sub),
|
|
|
+ "/" => self.operator = Some(Operator::Div),
|
|
|
+ "*" => self.operator = Some(Operator::Mul),
|
|
|
+ _ => {}
|
|
|
+ },
|
|
|
+
|
|
|
_ => {}
|
|
|
}
|
|
|
}
|