pub use about::AboutWindow; use egui::{Context, ViewportBuilder, ViewportId}; pub use game::GameWindow; pub use gdb::GdbServerWindow; pub use input::InputWindow; pub use vram::{BgMapWindow, CharacterDataWindow}; use winit::event::KeyEvent; use crate::emulator::SimId; mod about; mod game; mod game_screen; mod gdb; mod input; mod vram; pub trait AppWindow { fn viewport_id(&self) -> ViewportId; fn sim_id(&self) -> SimId { SimId::Player1 } fn initial_viewport(&self) -> ViewportBuilder; fn show(&mut self, ctx: &Context); fn on_init(&mut self, ctx: &Context, render_state: &egui_wgpu::RenderState) { let _ = ctx; let _ = render_state; } fn on_destroy(&mut self) {} fn handle_key_event(&mut self, event: &KeyEvent) { let _ = event; } fn handle_gamepad_event(&mut self, event: &gilrs::Event) { let _ = event; } }