From 13a25f5f2520fbc4eefa44173ec3df7625a54c75 Mon Sep 17 00:00:00 2001 From: Shane Dunne Date: Mon, 2 Sep 2019 14:43:35 -0400 Subject: [PATCH] Add programs menu There is now a third sub-menu on the right-click menu, beneath "Skins" and "Banks", from which you can select the among the programs in the current bank. --- Source/PluginEditor.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Source/PluginEditor.cpp b/Source/PluginEditor.cpp index c0be1cd..494be13 100755 --- a/Source/PluginEditor.cpp +++ b/Source/PluginEditor.cpp @@ -636,6 +636,7 @@ void ObxdAudioProcessorEditor::mouseUp(const MouseEvent& e) PopupMenu menu; PopupMenu skinMenu; PopupMenu bankMenu; + PopupMenu progMenu; Array skins; const Array& banks = getFilter()->getBankFiles(); @@ -670,6 +671,16 @@ void ObxdAudioProcessorEditor::mouseUp(const MouseEvent& e) menu.addSubMenu("Banks", bankMenu); } + int progStart = 2000; + { + for (int i = 0; i < processor.getNumPrograms(); ++i) + { + progMenu.addItem(i + progStart + 1, processor.getProgramName(i), true, i == processor.getCurrentProgram()); + } + + menu.addSubMenu("Programs", progMenu); + } + const Point pos = e.getMouseDownScreenPosition(); int result = menu.showAt(Rectangle(pos.getX(), pos.getY(), 1, 1)); @@ -691,6 +702,12 @@ void ObxdAudioProcessorEditor::mouseUp(const MouseEvent& e) const File bankFile = banks.getUnchecked(result); getFilter()->loadFromFXBFile(bankFile); } + else if (result >= (progStart + 1) && result <= (progStart + processor.getNumPrograms())) + { + result -= 1; + result -= progStart; + processor.setCurrentProgram(result); + } } }