2020-09-04 01:17:54 +10:00
|
|
|
use std::sync::mpsc;
|
|
|
|
|
2020-09-03 07:22:49 +10:00
|
|
|
use baseview::Message;
|
|
|
|
|
2020-05-26 08:44:15 +10:00
|
|
|
fn main() {
|
|
|
|
let window_open_options = baseview::WindowOpenOptions {
|
|
|
|
title: "baseview",
|
|
|
|
width: 512,
|
|
|
|
height: 512,
|
|
|
|
parent: baseview::Parent::None,
|
|
|
|
};
|
|
|
|
|
2020-09-04 01:17:54 +10:00
|
|
|
let (message_tx, message_rx) = mpsc::channel::<Message>();
|
|
|
|
|
2020-09-03 07:22:49 +10:00
|
|
|
let my_program = MyProgram {};
|
|
|
|
|
2020-09-04 01:17:54 +10:00
|
|
|
let window = baseview::Window::build(window_open_options, message_tx);
|
2020-09-03 07:22:49 +10:00
|
|
|
|
2020-09-04 01:17:54 +10:00
|
|
|
// Get raw window handle!
|
|
|
|
let _raw_handle = window.raw_window_handle();
|
|
|
|
|
|
|
|
my_program_loop(my_program, message_rx);
|
|
|
|
}
|
2020-09-03 07:23:03 +10:00
|
|
|
struct MyProgram {}
|
2020-09-03 07:22:49 +10:00
|
|
|
|
2020-09-04 01:17:54 +10:00
|
|
|
fn my_program_loop(_my_program: MyProgram, message_rx: mpsc::Receiver<Message>) {
|
|
|
|
loop {
|
|
|
|
let message = message_rx.recv().unwrap();
|
2020-09-03 07:22:49 +10:00
|
|
|
match message {
|
|
|
|
Message::CursorMotion(x, y) => {
|
|
|
|
println!("Cursor moved, x: {}, y: {}", x, y);
|
2020-09-03 07:23:03 +10:00
|
|
|
}
|
2020-09-03 07:22:49 +10:00
|
|
|
Message::MouseDown(button_id) => {
|
|
|
|
println!("Mouse down, button id: {:?}", button_id);
|
2020-09-03 07:23:03 +10:00
|
|
|
}
|
2020-09-03 07:22:49 +10:00
|
|
|
Message::MouseUp(button_id) => {
|
|
|
|
println!("Mouse up, button id: {:?}", button_id);
|
2020-09-03 07:23:03 +10:00
|
|
|
}
|
2020-09-03 07:22:49 +10:00
|
|
|
Message::MouseScroll(mouse_scroll) => {
|
|
|
|
println!("Mouse scroll, {:?}", mouse_scroll);
|
2020-09-03 07:23:03 +10:00
|
|
|
}
|
2020-09-03 07:22:49 +10:00
|
|
|
Message::MouseClick(mouse_click) => {
|
|
|
|
println!("Mouse click, {:?}", mouse_click);
|
|
|
|
}
|
|
|
|
Message::KeyDown(keycode) => {
|
|
|
|
println!("Key down, keycode: {}", keycode);
|
2020-09-03 07:23:03 +10:00
|
|
|
}
|
2020-09-03 07:22:49 +10:00
|
|
|
Message::KeyUp(keycode) => {
|
|
|
|
println!("Key up, keycode: {}", keycode);
|
2020-09-03 07:23:03 +10:00
|
|
|
}
|
2020-09-03 07:22:49 +10:00
|
|
|
Message::CharacterInput(char_code) => {
|
|
|
|
println!("Character input, char_code: {}", char_code);
|
2020-09-03 07:23:03 +10:00
|
|
|
}
|
2020-09-03 07:22:49 +10:00
|
|
|
Message::WindowResized(window_info) => {
|
|
|
|
println!("Window resized, {:?}", window_info);
|
2020-09-03 07:23:03 +10:00
|
|
|
}
|
2020-09-03 07:22:49 +10:00
|
|
|
Message::WindowFocus => {
|
|
|
|
println!("Window focused");
|
2020-09-03 07:23:03 +10:00
|
|
|
}
|
2020-09-03 07:22:49 +10:00
|
|
|
Message::WindowUnfocus => {
|
|
|
|
println!("Window unfocused");
|
2020-09-03 07:23:03 +10:00
|
|
|
}
|
2020-09-03 07:22:49 +10:00
|
|
|
Message::Opened(window_info) => {
|
|
|
|
println!("Window opened, {:?}", window_info);
|
2020-09-03 07:23:03 +10:00
|
|
|
}
|
2020-09-03 07:22:49 +10:00
|
|
|
Message::WillClose => {
|
|
|
|
println!("Window will close");
|
2020-09-03 07:23:03 +10:00
|
|
|
}
|
2020-09-03 07:22:49 +10:00
|
|
|
}
|
|
|
|
}
|
2020-09-03 07:23:03 +10:00
|
|
|
}
|