made selection tabs stay at the top of the menu

This commit is contained in:
grimsace
2026-06-02 12:01:23 -05:00
parent e3cbff86d8
commit 639ce3f291
+59 -65
View File
@@ -21,72 +21,66 @@ pub fn draw_side_panel(
.default_width(280.0) .default_width(280.0)
.show_separator_line(true) .show_separator_line(true)
.show(ctx, |ui| { .show(ctx, |ui| {
egui::ScrollArea::vertical().show(ui, |ui| { ui.horizontal_wrapped(|ui| {
ui.horizontal(|ui| { if ui
if ui .selectable_label(settings.active_tab == Tab::Generate, "Generate")
.selectable_label(settings.active_tab == Tab::Generate, "Generate") .clicked()
.clicked() {
{ settings.active_tab = Tab::Generate;
settings.active_tab = Tab::Generate;
}
if ui
.selectable_label(settings.active_tab == Tab::Layout, "Layout")
.clicked()
{
settings.active_tab = Tab::Layout;
}
if ui
.selectable_label(settings.active_tab == Tab::StartAndEnd, "Start & End")
.clicked()
{
settings.active_tab = Tab::StartAndEnd;
}
if ui
.selectable_label(
settings.active_tab == Tab::MonstersAndTraps,
"Monsters/Traps",
)
.clicked()
{
settings.active_tab = Tab::MonstersAndTraps;
}
if ui
.selectable_label(settings.active_tab == Tab::Add, "Add")
.clicked()
{
settings.active_tab = Tab::Add;
}
if ui
.selectable_label(settings.active_tab == Tab::ExportSave, "Export/Save")
.clicked()
{
settings.active_tab = Tab::ExportSave;
}
});
ui.separator();
match settings.active_tab {
Tab::Generate => tabs::draw_generate_tab(
ui,
settings,
&mut result,
export_progress,
num_levels,
),
Tab::Layout => tabs::draw_layout_tab(ui, settings, &mut result),
Tab::StartAndEnd => tabs::draw_start_and_end_tab(ui, settings, &mut result),
Tab::MonstersAndTraps => {
tabs::draw_monsters_and_traps_tab(ui, settings, &mut result)
}
Tab::Add => tabs::draw_add_tab(ui, settings, &mut result),
Tab::ExportSave => tabs::draw_export_save_tab(
ui,
settings,
&mut result,
export_progress,
num_levels,
),
} }
if ui
.selectable_label(settings.active_tab == Tab::Layout, "Layout")
.clicked()
{
settings.active_tab = Tab::Layout;
}
if ui
.selectable_label(settings.active_tab == Tab::StartAndEnd, "Start & End")
.clicked()
{
settings.active_tab = Tab::StartAndEnd;
}
if ui
.selectable_label(
settings.active_tab == Tab::MonstersAndTraps,
"Monsters/Traps",
)
.clicked()
{
settings.active_tab = Tab::MonstersAndTraps;
}
if ui
.selectable_label(settings.active_tab == Tab::Add, "Add")
.clicked()
{
settings.active_tab = Tab::Add;
}
if ui
.selectable_label(settings.active_tab == Tab::ExportSave, "Export/Save")
.clicked()
{
settings.active_tab = Tab::ExportSave;
}
});
ui.separator();
egui::ScrollArea::vertical().show(ui, |ui| match settings.active_tab {
Tab::Generate => {
tabs::draw_generate_tab(ui, settings, &mut result, export_progress, num_levels)
}
Tab::Layout => tabs::draw_layout_tab(ui, settings, &mut result),
Tab::StartAndEnd => tabs::draw_start_and_end_tab(ui, settings, &mut result),
Tab::MonstersAndTraps => {
tabs::draw_monsters_and_traps_tab(ui, settings, &mut result)
}
Tab::Add => tabs::draw_add_tab(ui, settings, &mut result),
Tab::ExportSave => tabs::draw_export_save_tab(
ui,
settings,
&mut result,
export_progress,
num_levels,
),
}); });
}); });