diff --git a/board-builder-impl-egui/src/main.rs b/board-builder-impl-egui/src/main.rs index 63d5a23..b285d73 100644 --- a/board-builder-impl-egui/src/main.rs +++ b/board-builder-impl-egui/src/main.rs @@ -100,36 +100,36 @@ impl eframe::App for BoardBuilderApp { image.paint_at(ui, response.rect); let view = View(response.rect); self.draw_board(&painter, view); - if let Some(pos) = response.interact_pointer_pos() { - let btn = if response.clicked() { - PointerButton::Primary - } else if response.secondary_clicked() { - PointerButton::Secondary - } else { - PointerButton::Middle - }; - let (x, y) = view.xform(pos); - self.dispatch_click(btn, x, y); - } + if let Some(pos) = response.interact_pointer_pos() { + let btn = if response.clicked() { + PointerButton::Primary + } else if response.secondary_clicked() { + PointerButton::Secondary + } else { + PointerButton::Middle + }; + let (x, y) = view.xform(pos); + self.dispatch_click(btn, x, y); + } } }); - if self.create_node_dialog.open { - Window::new("Create Node") - .collapsible(false) - .show(ctx, |ui| { + if self.create_node_dialog.open { + Window::new("Create Node") + .collapsible(false) + .show(ctx, |ui| { let mut board = self.board.borrow_mut(); - ui.label("Name:"); - ui.text_edit_singleline(&mut self.create_node_dialog.name); - if ui.button("Add").clicked() { - self.create_node_dialog.close(); - board.add_node( - self.create_node_dialog.x, - self.create_node_dialog.y, - self.create_node_dialog.name.clone(), - ) - } - }); - } + ui.label("Name:"); + ui.text_edit_singleline(&mut self.create_node_dialog.name); + if ui.button("Add").clicked() { + self.create_node_dialog.close(); + board.add_node( + self.create_node_dialog.x, + self.create_node_dialog.y, + self.create_node_dialog.name.clone(), + ) + } + }); + } self.edit_labels_dialog.ui(ctx); } } @@ -147,7 +147,7 @@ impl BoardBuilderApp { fn load_image_file(&mut self, ctx: &Context, image_file: &Path) -> Result<(), image::ImageError> { let image = image::io::Reader::open(image_file)?.decode()?; self.load_image(ctx, image); - + Ok(()) } @@ -164,17 +164,17 @@ impl BoardBuilderApp { fn draw_board(&self, painter: &Painter, view: View) { let board = self.board.borrow(); for (&id, node) in &board.nodes { - let color = if Some(id) == self.selected_node { - Color32::RED - } else { - Color32::BLACK - }; + let color = if Some(id) == self.selected_node { + Color32::RED + } else { + Color32::BLACK + }; painter.text( view.inv_xform(node.x, node.y), Align2::CENTER_CENTER, &node.name, FontId::proportional(16.0), - color, + color, ); let stroke = Stroke { width: 1.0, color: Color32::BLACK }; for edge in &node.edges { @@ -188,34 +188,34 @@ impl BoardBuilderApp { } fn dispatch_click(&mut self, btn: PointerButton, x: f32, y: f32) { - use EditMode::*; - use PointerButton::*; - match (btn, self.edit_mode) { - (Primary, Nodes) => self.create_node_dialog.show(x, y), - (Primary, Edges) => self.select_edge(x, y), - (Secondary, Nodes) => self.delete_node(x, y), - _ => {}, - } + use EditMode::*; + use PointerButton::*; + match (btn, self.edit_mode) { + (Primary, Nodes) => self.create_node_dialog.show(x, y), + (Primary, Edges) => self.select_edge(x, y), + (Secondary, Nodes) => self.delete_node(x, y), + _ => {}, + } } fn select_edge(&mut self, x: f32, y: f32) { let mut board = self.board.borrow_mut(); - if let Some(nearest_id) = board.nearest_node(x, y) { - match self.selected_node { - None => self.selected_node = Some(nearest_id), - Some(id) if id == nearest_id => self.selected_node = None, - Some(id) => board.add_edge(id, nearest_id), - } - } + if let Some(nearest_id) = board.nearest_node(x, y) { + match self.selected_node { + None => self.selected_node = Some(nearest_id), + Some(id) if id == nearest_id => self.selected_node = None, + Some(id) => board.add_edge(id, nearest_id), + } + } } fn delete_node(&mut self, x: f32, y: f32) { let mut board = self.board.borrow_mut(); - if let Some(nearest_id) = board.nearest_node(x, y) { - board.remove_node(nearest_id); - } + if let Some(nearest_id) = board.nearest_node(x, y) { + board.remove_node(nearest_id); + } } - + } #[derive(Clone, Copy)] @@ -235,14 +235,14 @@ struct CreateNodeDialog { impl CreateNodeDialog { fn show(&mut self, x: f32, y: f32) { - self.open = true; - self.x = x; - self.y = y; - self.name = String::new(); + self.open = true; + self.x = x; + self.y = y; + self.name = String::new(); } fn close(&mut self) { - self.open = false; + self.open = false; } } @@ -304,7 +304,7 @@ impl EditLabelsDialog { if let StringDialogResponse::Accepted(key) = self.add_key_dialog.ui(ui, "Add Key") { board.labels.insert(key, Vec::new()); - } + } } }); } @@ -322,7 +322,6 @@ enum StringDialogResponse { Cancelled, Accepted(String) } - impl StringDialog { fn show(&mut self) { @@ -347,7 +346,7 @@ impl StringDialog { } else { StringDialogResponse::Null } - + } _ => StringDialogResponse::Null, } @@ -364,11 +363,11 @@ impl StringDialog { // impl EditNodeDialog { // fn show(&mut self, id: usize, board: &Board) { -// self.open = true; -// let node = board.nodes.get(&id).unwrap(); - -// self.id = id; -// self.name = node.name.clone(); -// self.labels = node.labels.clone(); +// self.open = true; +// let node = board.nodes.get(&id).unwrap(); + +// self.id = id; +// self.name = node.name.clone(); +// self.labels = node.labels.clone(); // } // }