Label browser

This commit is contained in:
Dane Johnson 2022-05-03 16:36:46 -05:00
parent 008c539623
commit 7a0538ba2b
2 changed files with 42 additions and 3 deletions

BIN
board.zip

Binary file not shown.

View File

@ -107,7 +107,45 @@ impl Board {
}
}
//////////////////// Node Create/Edit Dialogs ////////////////////
//////////////////// Auxilary Dialogs ////////////////////
fn add_remove_labels_dialog() {
let mut state = STATE.get().lock().unwrap();
let mut win = window::Window::default()
.with_size(300, 200)
.center_of_parent();
let flex = group::Flex::default()
.size_of_parent()
.center_of_parent();
let mut label_key_browser = browser::HoldBrowser::default();
for key in state.board.labels.keys() {
label_key_browser.add(key);
}
let mut label_value_browser = browser::HoldBrowser::default();
label_key_browser.set_callback({
let labels = state.board.labels.clone();
move |k| {
label_value_browser.clear();
match k.selected_text() {
Some(key) => {
for val in &labels[&key] {
label_value_browser.add(&val);
}
}
None => {}
}
}
});
flex.end();
win.end();
win.make_resizable(true);
win.make_modal(true);
win.show();
while win.shown() {
app::wait();
}
}
fn node_create_dialog(pos_x: f32, pos_y: f32) {
let mut win = window::Window::default()
.with_size(100, 100)
@ -330,14 +368,15 @@ fn main() {
}
ar.finish().ok();
});
menubar.add("Edit/Edit Nodes", Shortcut::None, menu::MenuFlag::Normal, move |_| {
menubar.add("Edit/Edit Nodes", Shortcut::None, menu::MenuFlag::Normal, |_| {
let mut state = STATE.get().lock().unwrap();
state.edit_mode = EditMode::Node;
});
menubar.add("Edit/Edit Edges", Shortcut::None, menu::MenuFlag::Normal, move |_| {
menubar.add("Edit/Edit Edges", Shortcut::None, menu::MenuFlag::Normal, |_| {
let mut state = STATE.get().lock().unwrap();
state.edit_mode = EditMode::Edge;
});
menubar.add("Edit/Edit Labels", Shortcut::None, menu::MenuFlag::Normal, |_| add_remove_labels_dialog());
flex.set_size(&menubar, 40);