New, edit modes
This commit is contained in:
parent
0291a6e941
commit
974d21d167
@ -19,17 +19,30 @@ struct BoardBuilderApp {
|
||||
board: Board,
|
||||
texture: Option<TextureHandle>,
|
||||
image: Option<image::DynamicImage>,
|
||||
edit_mode: EditMode,
|
||||
}
|
||||
|
||||
enum EditMode {
|
||||
Nodes,
|
||||
Edges,
|
||||
}
|
||||
impl Default for EditMode {
|
||||
fn default() -> Self {
|
||||
EditMode::Nodes
|
||||
}
|
||||
}
|
||||
|
||||
impl eframe::App for BoardBuilderApp {
|
||||
fn update(&mut self, ctx: &Context, _frame: &mut eframe::Frame) {
|
||||
TopBottomPanel::top("menubar").show(ctx, |ui| {
|
||||
menu::bar(ui, |ui| {
|
||||
fn choose_file() {
|
||||
FileDialog::new().pick_file();
|
||||
}
|
||||
ui.menu_button("File", |ui| {
|
||||
ui.button("New");
|
||||
if ui.button("New").clicked() {
|
||||
self.board = Board::default();
|
||||
self.texture = None;
|
||||
self.image = None;
|
||||
self.edit_mode = EditMode::Nodes;
|
||||
}
|
||||
if ui.button("Open...").clicked() {
|
||||
if let Some(board_file) = FileDialog::new().pick_file() {
|
||||
match read_board_from_file(&board_file) {
|
||||
@ -46,7 +59,7 @@ impl eframe::App for BoardBuilderApp {
|
||||
}
|
||||
if ui.button("Save As...").clicked() {
|
||||
if let Some(board_file) = FileDialog::new().save_file() {
|
||||
write_board_to_file(&self.board, self.image.as_ref(), &board_file);
|
||||
write_board_to_file(&self.board, self.image.as_ref(), &board_file).expect("Something went wrong saving!");
|
||||
}
|
||||
}
|
||||
if ui.button("Open Image...").clicked() {
|
||||
@ -54,14 +67,20 @@ impl eframe::App for BoardBuilderApp {
|
||||
.add_filter("Image", &["png", "jpg", "jpeg", "gif", "webp", "bmp", "tiff"])
|
||||
.pick_file();
|
||||
if let Some(image_file) = image_file {
|
||||
self.load_image_file(ctx, &image_file);
|
||||
self.load_image_file(ctx, &image_file).unwrap();
|
||||
}
|
||||
}
|
||||
});
|
||||
ui.menu_button("Edit", |ui| {
|
||||
ui.button("Edit Nodes");
|
||||
ui.button("Edit Edges");
|
||||
ui.button("Edit Labels...");
|
||||
if ui.button("Edit Nodes").clicked() {
|
||||
self.edit_mode = EditMode::Nodes;
|
||||
}
|
||||
if ui.button("Edit Edges").clicked() {
|
||||
self.edit_mode = EditMode::Edges;
|
||||
}
|
||||
if ui.button("Edit Labels...").clicked() {
|
||||
todo!();
|
||||
}
|
||||
})
|
||||
});
|
||||
});
|
||||
@ -86,7 +105,6 @@ impl BoardBuilderApp {
|
||||
style.text_styles.insert(style::TextStyle::Button, button);
|
||||
cc.egui_ctx.set_style(style);
|
||||
|
||||
|
||||
BoardBuilderApp::default()
|
||||
}
|
||||
fn load_image_file(&mut self, ctx: &Context, image_file: &Path) -> Result<(), image::ImageError> {
|
||||
|
Loading…
Reference in New Issue
Block a user