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) {
|
||||
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);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user