paiagram/interface/tabs/
settings.rs

1use super::Tab;
2use crate::settings::ApplicationSettings;
3use bevy::ecs::system::{InMut, ResMut};
4use egui::Ui;
5use egui_i18n::tr;
6use serde::{Deserialize, Serialize};
7
8#[derive(PartialEq, Debug, Clone, Copy, Serialize, Deserialize)]
9pub struct SettingsTab;
10
11impl Tab for SettingsTab {
12    const NAME: &'static str = "Settings";
13    fn main_display(&mut self, world: &mut bevy::ecs::world::World, ui: &mut Ui) {
14        if let Err(e) = world.run_system_cached_with(show_settings, ui) {
15            bevy::log::error!("UI Error while displaying settings page: {}", e)
16        }
17    }
18    fn title(&self) -> egui::WidgetText {
19        tr!("tab-settings").into()
20    }
21}
22
23fn show_settings(InMut(ui): InMut<Ui>, mut settings: ResMut<ApplicationSettings>) {
24    ui.add(&mut *settings);
25}