From dc3b0e83229c84c4217c1569e70aa695778b42fb Mon Sep 17 00:00:00 2001 From: tildearrow Date: Tue, 7 Jun 2022 19:48:42 -0500 Subject: [PATCH] GUI: find and replace, part 3 --- src/gui/findReplace.cpp | 29 ++++++++++++++++++++++++++++- src/gui/gui.h | 3 ++- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/src/gui/findReplace.cpp b/src/gui/findReplace.cpp index 324f7f30a..0daf34125 100644 --- a/src/gui/findReplace.cpp +++ b/src/gui/findReplace.cpp @@ -331,7 +331,34 @@ void FurnaceGUI::drawFindReplace() { ImGui::EndCombo(); } ImGui::EndDisabled(); - + + ImGui::Text("Match effect position:"); + + if (ImGui::RadioButton("No",curQueryEffectPos==0)) { + curQueryEffectPos=0; + } + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip("match effects regardless of position."); + } + if (ImGui::RadioButton("Lax",curQueryEffectPos==1)) { + curQueryEffectPos=1; + } + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip("match effects only if they appear in-order."); + } + if (ImGui::RadioButton("Strict",curQueryEffectPos==2)) { + curQueryEffectPos=2; + } + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip("match effects only if they appear exactly as specified."); + } + + ImGui::TableNextRow(); + ImGui::TableNextColumn(); + ImGui::Checkbox("From start",&curQueryFromStart); + ImGui::TableNextColumn(); + ImGui::Checkbox("Backwards",&curQueryBackwards); + ImGui::EndTable(); } diff --git a/src/gui/gui.h b/src/gui/gui.h index c50b064dd..2ee6170aa 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -1170,9 +1170,10 @@ class FurnaceGUI { int pgSys, pgAddr, pgVal; std::vector curQuery; - bool curQueryRangeX; + bool curQueryRangeX, curQueryFromStart, curQueryBackwards; int curQueryRangeXMin, curQueryRangeXMax; int curQueryRangeY; + int curQueryEffectPos; struct ActiveNote { int chan;