78 lines
2.3 KiB
Rust
78 lines
2.3 KiB
Rust
use std::sync::mpsc;
|
|
|
|
use baseview::Event;
|
|
|
|
fn main() {
|
|
let window_open_options = baseview::WindowOpenOptions {
|
|
title: "baseview",
|
|
width: 512,
|
|
height: 512,
|
|
parent: baseview::Parent::None,
|
|
};
|
|
|
|
let my_program = MyProgram {};
|
|
|
|
let (_app_message_tx, app_message_rx) = mpsc::channel::<()>();
|
|
|
|
// Send _app_message_tx to a separate thread, then send messages to the GUI thread.
|
|
|
|
let _ = baseview::Window::open(window_open_options, my_program, app_message_rx);
|
|
}
|
|
struct MyProgram {}
|
|
|
|
impl baseview::AppWindow for MyProgram {
|
|
type AppMessage = ();
|
|
|
|
fn create_context(
|
|
&mut self,
|
|
_window: baseview::RawWindow,
|
|
_window_info: &baseview::WindowInfo,
|
|
) {
|
|
}
|
|
|
|
fn draw(&mut self) {}
|
|
|
|
fn on_event(&mut self, event: Event) {
|
|
match event {
|
|
Event::CursorMotion(x, y) => {
|
|
println!("Cursor moved, x: {}, y: {}", x, y);
|
|
}
|
|
Event::MouseDown(button_id) => {
|
|
println!("Mouse down, button id: {:?}", button_id);
|
|
}
|
|
Event::MouseUp(button_id) => {
|
|
println!("Mouse up, button id: {:?}", button_id);
|
|
}
|
|
Event::MouseScroll(mouse_scroll) => {
|
|
println!("Mouse scroll, {:?}", mouse_scroll);
|
|
}
|
|
Event::MouseClick(mouse_click) => {
|
|
println!("Mouse click, {:?}", mouse_click);
|
|
}
|
|
Event::KeyDown(keycode) => {
|
|
println!("Key down, keycode: {}", keycode);
|
|
}
|
|
Event::KeyUp(keycode) => {
|
|
println!("Key up, keycode: {}", keycode);
|
|
}
|
|
Event::CharacterInput(char_code) => {
|
|
println!("Character input, char_code: {}", char_code);
|
|
}
|
|
Event::WindowResized(window_info) => {
|
|
println!("Window resized, {:?}", window_info);
|
|
}
|
|
Event::WindowFocus => {
|
|
println!("Window focused");
|
|
}
|
|
Event::WindowUnfocus => {
|
|
println!("Window unfocused");
|
|
}
|
|
Event::WillClose => {
|
|
println!("Window will close");
|
|
}
|
|
}
|
|
}
|
|
|
|
fn on_app_message(&mut self, _message: Self::AppMessage) {}
|
|
}
|