| 1 | // Copyright © SixtyFPS GmbH <info@slint.dev> |
| 2 | // SPDX-License-Identifier: MIT |
| 3 | |
| 4 | slint::include_modules!(); |
| 5 | |
| 6 | pub fn main() { |
| 7 | let main_window: MainWindow = MainWindow::new().unwrap(); |
| 8 | |
| 9 | virtual_keyboard::init(&main_window); |
| 10 | |
| 11 | main_window.run().unwrap(); |
| 12 | } |
| 13 | |
| 14 | mod virtual_keyboard { |
| 15 | use super::*; |
| 16 | use slint::*; |
| 17 | |
| 18 | pub fn init(app: &MainWindow) { |
| 19 | let weak: Weak = app.as_weak(); |
| 20 | app.global::<VirtualKeyboardHandler>().on_key_pressed({ |
| 21 | move |key: SharedString| { |
| 22 | weak&Window.unwrap() |
| 23 | .window() |
| 24 | .dispatch_event(slint::platform::WindowEvent::KeyPressed { text: key.clone() }); |
| 25 | weak&Window.unwrap() |
| 26 | .window() |
| 27 | .dispatch_event(slint::platform::WindowEvent::KeyReleased { text: key }); |
| 28 | } |
| 29 | }); |
| 30 | } |
| 31 | } |
| 32 | |