node-based graph editor
git clone https://git.lucas.co/cce-graph.git
refactor: update text rendering to support text bounding boxes
Makefile | 14 ++++++++++++++
src/main.rs | 7 ++++---
2 files changed, 18 insertions(+), 3 deletions(-)
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..e5544ae
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,14 @@
+.PHONY: build install run clean
+
+build:
+ cargo build --release
+
+install: build
+ mkdir -p ~/.local/bin
+ install -m 755 target/release/clear-graph ~/.local/bin/clear-graph
+
+run:
+ cargo run
+
+clean:
+ cargo clean
diff --git a/src/main.rs b/src/main.rs
index bd65500..5b8cebe 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -33,12 +33,12 @@ impl GraphApp {
self.text_items.clear();
// 1. Collect labels from Graph widget
- let mut labels = self.graph.text_labels();
+ let mut labels = self.graph.text_labels_with_bounds();
// 2. Collect labels from MenuBar widget
- labels.extend(self.menu_bar.text_labels());
+ labels.extend(self.menu_bar.text_labels_with_bounds());
- for label in labels {
+ for (label, bounds) in labels {
let metrics = Metrics::new(label.font_size, label.font_size * 1.4);
let mut buf = Buffer::new(&mut self.font_system, metrics);
buf.set_text(&mut self.font_system, &label.text, Attrs::new(), glyphon::Shaping::Advanced);
@@ -48,6 +48,7 @@ impl GraphApp {
x: label.x,
y: label.y,
color: glyphon::Color::rgb(label.color[0], label.color[1], label.color[2]),
+ bounds,
});
}
}