witas 0.11.2

An asynchronous window library in Rust for Windows
Documentation
#[tokio::main]
async fn main() {
    let mut rx = witas::EventReceiver::new();
    let _window = witas::Window::builder()
        .title("witas dialog")
        .inner_size(witas::LogicalSize::new(640, 480))
        .set_receiver(&rx)
        .await
        .unwrap();
    loop {
        let (event, _) = rx.recv().await;
        match event {
            witas::Event::KeyInput(input) if input.key_state == witas::KeyState::Pressed => {
                match input.key_code.vkey {
                    witas::VirtualKey::O => {
                        let path = witas::FileOpenDialog::new().await.unwrap();
                        println!("Open: {:?}", path);
                    }
                    witas::VirtualKey::M => {
                        let paths = witas::FileOpenDialog::new()
                            .allow_multi_select()
                            .await
                            .unwrap();
                        println!("Open(Multi): {:?}", paths);
                    }
                    witas::VirtualKey::S => {
                        let path = witas::FileSaveDialog::new().await.unwrap();
                        println!("Save: {:?}", path);
                    }
                    _ => {}
                }
            }
            witas::Event::Closed => break,
            _ => {}
        }
    }
}