BillySheet-Rust/src/main.rs

62 lines
1.7 KiB
Rust

use eframe::egui;
fn main() {
let options = eframe::NativeOptions::default();
eframe::run_native(
"Billy Sheet editor",
options,
Box::new(|ctx| {
ctx.egui_ctx.options().screen_reader = true;
Box::new(Gui::default())
}),
);
}
#[derive(Debug)]
struct Gui {
test: billy_sheet::sheet::CharacterSheet,
edit_mode: bool,
}
impl Default for Gui {
fn default() -> Self {
Self {
test: billy_sheet::sheet::CharacterSheet::default(),
edit_mode: true,
}
}
}
impl eframe::App for Gui {
fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) {
egui::TopBottomPanel::top("menu").show(ctx, |ui| {
egui::menu::bar(ui, |ui| {
egui::widgets::global_dark_light_mode_buttons(ui);
ui.menu_button("File", |ui| {
if ui.button("Open (Ctrl + O)").clicked() {}
if ui.button("Quit (Ctrl + Q)").clicked() {
_frame.close();
}
});
if ui.button(format!("Edit mode {}", self.edit_mode)).clicked() {
self.edit_mode = !self.edit_mode;
}
});
});
egui::CentralPanel::default().show(ctx, |ui| {
ui.heading("My egui Application");
ui.separator();
ui.vertical_centered_justified(|ui| {
ui.label("Hello");
// ui.text_edit_multiline(self.test.name());
});
});
if ctx
.input_mut()
.consume_key(egui::Modifiers::CTRL, egui::Key::Q)
{
_frame.close();
}
}
}