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;