Dummy second window

This commit is contained in:
Simon Gellis 2025-02-02 18:33:59 -05:00
parent 492c04316d
commit ae7ab1e204
6 changed files with 50 additions and 5 deletions

View File

@ -21,7 +21,8 @@ use crate::{
persistence::Persistence, persistence::Persistence,
vram::VramLoader, vram::VramLoader,
window::{ window::{
AboutWindow, AppWindow, CharacterDataWindow, GameWindow, GdbServerWindow, InputWindow, AboutWindow, AppWindow, BgMapWindow, CharacterDataWindow, GameWindow, GdbServerWindow,
InputWindow,
}, },
}; };
@ -203,6 +204,10 @@ impl ApplicationHandler<UserEvent> for Application {
let vram = CharacterDataWindow::new(sim_id); let vram = CharacterDataWindow::new(sim_id);
self.open(event_loop, Box::new(vram)); self.open(event_loop, Box::new(vram));
} }
UserEvent::OpenBgMap(sim_id) => {
let bgmap = BgMapWindow::new(sim_id);
self.open(event_loop, Box::new(bgmap));
}
UserEvent::OpenDebugger(sim_id) => { UserEvent::OpenDebugger(sim_id) => {
let debugger = let debugger =
GdbServerWindow::new(sim_id, self.client.clone(), self.proxy.clone()); GdbServerWindow::new(sim_id, self.client.clone(), self.proxy.clone());
@ -415,6 +420,7 @@ pub enum UserEvent {
GamepadEvent(gilrs::Event), GamepadEvent(gilrs::Event),
OpenAbout, OpenAbout,
OpenCharacterData(SimId), OpenCharacterData(SimId),
OpenBgMap(SimId),
OpenDebugger(SimId), OpenDebugger(SimId),
OpenInput, OpenInput,
OpenPlayer2, OpenPlayer2,

View File

@ -1,19 +1,19 @@
pub use about::AboutWindow; pub use about::AboutWindow;
pub use character_data::CharacterDataWindow;
use egui::{Context, ViewportBuilder, ViewportId}; use egui::{Context, ViewportBuilder, ViewportId};
pub use game::GameWindow; pub use game::GameWindow;
pub use gdb::GdbServerWindow; pub use gdb::GdbServerWindow;
pub use input::InputWindow; pub use input::InputWindow;
pub use vram::{BgMapWindow, CharacterDataWindow};
use winit::event::KeyEvent; use winit::event::KeyEvent;
use crate::emulator::SimId; use crate::emulator::SimId;
mod about; mod about;
mod character_data;
mod game; mod game;
mod game_screen; mod game_screen;
mod gdb; mod gdb;
mod input; mod input;
mod vram;
pub trait AppWindow { pub trait AppWindow {
fn viewport_id(&self) -> ViewportId; fn viewport_id(&self) -> ViewportId;

View File

@ -138,6 +138,12 @@ impl GameWindow {
.unwrap(); .unwrap();
ui.close_menu(); ui.close_menu();
} }
if ui.button("Background Maps").clicked() {
self.proxy
.send_event(UserEvent::OpenBgMap(self.sim_id))
.unwrap();
ui.close_menu();
}
}); });
ui.menu_button("About", |ui| { ui.menu_button("About", |ui| {
self.proxy.send_event(UserEvent::OpenAbout).unwrap(); self.proxy.send_event(UserEvent::OpenAbout).unwrap();

5
src/window/vram.rs Normal file
View File

@ -0,0 +1,5 @@
mod bgmap;
mod chardata;
pub use bgmap::*;
pub use chardata::*;

29
src/window/vram/bgmap.rs Normal file
View File

@ -0,0 +1,29 @@
use egui::{CentralPanel, Context, ViewportBuilder, ViewportId};
use crate::{emulator::SimId, window::AppWindow};
pub struct BgMapWindow {
sim_id: SimId,
}
impl BgMapWindow {
pub fn new(sim_id: SimId) -> Self {
Self { sim_id }
}
}
impl AppWindow for BgMapWindow {
fn viewport_id(&self) -> ViewportId {
ViewportId::from_hash_of(format!("bgmap-{}", self.sim_id))
}
fn initial_viewport(&self) -> ViewportBuilder {
ViewportBuilder::default()
.with_title(format!("BG Map Data ({})", self.sim_id))
.with_inner_size((640.0, 480.0))
}
fn show(&mut self, ctx: &Context) {
CentralPanel::default().show(ctx, |ui| ui.label("TODO"));
}
}

View File

@ -7,10 +7,9 @@ use egui_extras::{Column, Size, StripBuilder, TableBuilder};
use crate::{ use crate::{
emulator::SimId, emulator::SimId,
vram::{VramPalette, VramResource}, vram::{VramPalette, VramResource},
window::AppWindow,
}; };
use super::AppWindow;
pub struct CharacterDataWindow { pub struct CharacterDataWindow {
sim_id: SimId, sim_id: SimId,
palette: VramPalette, palette: VramPalette,