Label browser
This commit is contained in:
parent
008c539623
commit
7a0538ba2b
45
src/main.rs
45
src/main.rs
@ -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) {
|
fn node_create_dialog(pos_x: f32, pos_y: f32) {
|
||||||
let mut win = window::Window::default()
|
let mut win = window::Window::default()
|
||||||
.with_size(100, 100)
|
.with_size(100, 100)
|
||||||
@ -330,14 +368,15 @@ fn main() {
|
|||||||
}
|
}
|
||||||
ar.finish().ok();
|
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();
|
let mut state = STATE.get().lock().unwrap();
|
||||||
state.edit_mode = EditMode::Node;
|
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();
|
let mut state = STATE.get().lock().unwrap();
|
||||||
state.edit_mode = EditMode::Edge;
|
state.edit_mode = EditMode::Edge;
|
||||||
});
|
});
|
||||||
|
menubar.add("Edit/Edit Labels", Shortcut::None, menu::MenuFlag::Normal, |_| add_remove_labels_dialog());
|
||||||
|
|
||||||
flex.set_size(&menubar, 40);
|
flex.set_size(&menubar, 40);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user