Add a checkbox to quit on disconnect

This commit is contained in:
2025-01-09 23:00:46 -05:00
parent d99344eb15
commit fd7298d24e
4 changed files with 37 additions and 11 deletions
+9 -3
View File
@@ -78,19 +78,20 @@ impl GameWindow {
ui.close_menu();
}
if ui.button("Quit").clicked() {
ctx.send_viewport_cmd(ViewportCommand::Close);
let _ = self.proxy.send_event(UserEvent::Quit(self.sim_id));
}
});
ui.menu_button("Emulation", |ui| {
let state = self.client.emulator_state();
let is_ready = self.client.sim_state(self.sim_id) == SimState::Ready;
let can_pause = is_ready && state == EmulatorState::Running;
let can_resume = is_ready && state == EmulatorState::Paused;
if state == EmulatorState::Running {
if ui.add_enabled(is_ready, Button::new("Pause")).clicked() {
if ui.add_enabled(can_pause, Button::new("Pause")).clicked() {
self.client.send_command(EmulatorCommand::Pause);
ui.close_menu();
}
} else if ui.add_enabled(can_pause, Button::new("Resume")).clicked() {
} else if ui.add_enabled(can_resume, Button::new("Resume")).clicked() {
self.client.send_command(EmulatorCommand::Resume);
ui.close_menu();
}
@@ -317,6 +318,10 @@ impl AppWindow for GameWindow {
}
}
fn sim_id(&self) -> SimId {
self.sim_id
}
fn initial_viewport(&self) -> ViewportBuilder {
ViewportBuilder::default()
.with_title("Lemur")
@@ -380,6 +385,7 @@ impl AppWindow for GameWindow {
if self.sim_id == SimId::Player2 {
self.client.send_command(EmulatorCommand::StopSecondSim);
}
let _ = self.proxy.send_event(UserEvent::Quit(self.sim_id));
}
}