Add some more GUI for the disk exerciser.

This commit is contained in:
David Given
2025-10-24 01:00:11 +02:00
parent 2142bc7cce
commit dcae381973
2 changed files with 53 additions and 1 deletions

View File

@@ -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);
}

View File

@@ -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",