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