From dcae3819736cf9ca4c565f557694337a41f6f029 Mon Sep 17 00:00:00 2001 From: David Given Date: Fri, 24 Oct 2025 01:00:11 +0200 Subject: [PATCH] Add some more GUI for the disk exerciser. --- src/gui2/exerciserview.cc | 47 ++++++++++++++++++++++++++++++++++- src/gui2/rsrc/lang/en_US.json | 7 ++++++ 2 files changed, 53 insertions(+), 1 deletion(-) diff --git a/src/gui2/exerciserview.cc b/src/gui2/exerciserview.cc index e87de6fa..51ca517d 100644 --- a/src/gui2/exerciserview.cc +++ b/src/gui2/exerciserview.cc @@ -18,8 +18,53 @@ using namespace hex; -ExerciserView::ExerciserView(): View::Modal("fluxengine.view.exerciser.name", ICON_VS_DEBUG) {} +ExerciserView::ExerciserView(): + View::Modal("fluxengine.view.exerciser.name", ICON_VS_DEBUG) +{ +} void ExerciserView::drawContent() { + static int selectedDrive = 0; + static int selectedTrack = 0; + + const float label_width = ImGui::GetFontSize() * 6; + ImGui::PushItemWidth(-label_width); + DEFER(ImGui::PopItemWidth()); + + ImGui::SliderInt("fluxengine.view.exerciser.drive"_lang, + &selectedDrive, + 0, + 1, + "%d", + ImGuiSliderFlags_None); + ImGui::SliderInt("fluxengine.view.exerciser.cylinder"_lang, + &selectedTrack, + 0, + 82, + "%d", + ImGuiSliderFlags_None); + + if (ImGui::BeginTable("nudgeTable", + 3, + ImGuiTableFlags_NoSavedSettings | ImGuiTableFlags_SizingStretchProp, + {ImGui::GetContentRegionAvail().x - label_width, 0})) + { + DEFER(ImGui::EndTable()); + + ImGui::TableNextColumn(); + if (ImGui::Button("fluxengine.view.exerciser.nudgeDown"_lang, + {ImGui::GetContentRegionAvail().x, 0})) + selectedTrack--; + ImGui::TableNextColumn(); + if (ImGui::Button("fluxengine.view.exerciser.reset"_lang, + {ImGui::GetContentRegionAvail().x, 0})) + selectedTrack = 0; + ImGui::TableNextColumn(); + if (ImGui::Button("fluxengine.view.exerciser.nudgeUp"_lang, + {ImGui::GetContentRegionAvail().x, 0})) + selectedTrack++; + } + + selectedTrack = std::clamp(selectedTrack, 0, 82); } \ No newline at end of file diff --git a/src/gui2/rsrc/lang/en_US.json b/src/gui2/rsrc/lang/en_US.json index 1e338ecc..3d0e1ef2 100644 --- a/src/gui2/rsrc/lang/en_US.json +++ b/src/gui2/rsrc/lang/en_US.json @@ -47,6 +47,13 @@ "fluxengine.view.visualiser.name": "FluxEngine disk visualiser", "fluxengine.view.visualiser.missingData": "Partial visualisation", + "fluxengine.view.exerciser.name": "FluxEngine disk exerciser", + "fluxengine.view.exerciser.drive": "Drive", + "fluxengine.view.exerciser.cylinder": "Cylinder", + "fluxengine.view.exerciser.nudgeDown": "Nudge down", + "fluxengine.view.exerciser.reset": "Reset", + "fluxengine.view.exerciser.nudgeUp": "Nudge up", + "fluxengine.view.status.runningSuffix": "...", "fluxengine.view.status.succeededSuffix": "... done", "fluxengine.view.status.failedSuffix": "... failed",