egui/MenuBar: grey out workspace-tied commands when no workspace is loaded

This commit is contained in:
Alain Emilia Anna Zscheile 2024-10-03 15:26:09 +02:00
parent e66fbe292b
commit b5c637e68b
1 changed files with 66 additions and 46 deletions

View File

@ -129,12 +129,14 @@ impl MenuBar {
egui::menu::bar(ui, |ui| {
ui.menu_button(tr.text("tr-menu-file"), |ui| {
open_design.button(ctx, ui);
ui.add_enabled_ui(maybe_workspace.is_some(), |ui| {
export_session.button(ctx, ui);
ui.separator();
import_history.button(ctx, ui);
export_history.button(ctx, ui);
});
ui.separator();
@ -145,6 +147,7 @@ impl MenuBar {
});
ui.menu_button(tr.text("tr-menu-edit"), |ui| {
ui.add_enabled_ui(maybe_workspace.is_some(), |ui| {
undo.button(ctx, ui);
redo.button(ctx, ui);
@ -156,6 +159,7 @@ impl MenuBar {
remove_bands.button(ctx, ui);
});
});
ui.menu_button(tr.text("tr-menu-view"), |ui| {
ui.toggle_value(
@ -165,11 +169,15 @@ impl MenuBar {
ui.separator();
ui.add_enabled_ui(maybe_workspace.is_some(), |ui| {
ui.checkbox(
&mut self.show_ratsnest,
tr.text("tr-menu-view-show-ratsnest"),
);
ui.checkbox(&mut self.show_navmesh, tr.text("tr-menu-view-show-navmesh"));
ui.checkbox(
&mut self.show_navmesh,
tr.text("tr-menu-view-show-navmesh"),
);
ui.checkbox(&mut self.show_bboxes, tr.text("tr-menu-view-show-bboxes"));
ui.checkbox(
&mut self.show_origin_destination,
@ -182,6 +190,7 @@ impl MenuBar {
&mut self.show_layer_manager,
tr.text("tr-menu-view-show-layer-manager"),
);
});
ui.separator();
@ -192,11 +201,19 @@ impl MenuBar {
);
});
// NOTE: we could disable the entire range of menus below
// when no workspace is loaded, but that would disrupt "hover-scrolling"
// between menus inside of the conditionally enabled section and
// those outside...
ui.menu_button(tr.text("tr-menu-place"), |ui| {
ui.add_enabled_ui(maybe_workspace.is_some(), |ui| {
place_via.toggle_widget(ctx, ui, &mut self.is_placing_via);
});
});
ui.menu_button(tr.text("tr-menu-route"), |ui| {
ui.add_enabled_ui(maybe_workspace.is_some(), |ui| {
autoroute.button(ctx, ui);
ui.separator();
@ -218,11 +235,14 @@ impl MenuBar {
);
});
});
});
ui.menu_button(tr.text("tr-menu-inspect"), |ui| {
ui.add_enabled_ui(maybe_workspace.is_some(), |ui| {
compare_detours.button(ctx, ui);
measure_length.button(ctx, ui);
});
});
ui.separator();