commit fb4244cd2604c51d596f2b36d4050d7bc8137379
parent 15462f577d4490e80cd348f6f8362a8c7f536879
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date: Sat, 1 Jun 2024 02:47:56 +0200
add parameter links menu
Diffstat:
1 file changed, 36 insertions(+), 0 deletions(-)
diff --git a/source/jucePluginEditorLib/pluginEditor.cpp b/source/jucePluginEditorLib/pluginEditor.cpp
@@ -364,6 +364,42 @@ namespace jucePluginEditorLib
}
}
+ // Parameter links
+
+ juce::PopupMenu linkMenu;
+
+ menu.addSeparator();
+
+ for (const auto& regionId : paramRegionIds)
+ {
+ juce::PopupMenu regionMenu;
+
+ const auto currentPart = controller.getCurrentPart();
+
+ for(uint8_t p=0; p<controller.getPartCount(); ++p)
+ {
+ if(p == currentPart)
+ continue;
+
+ const auto isLinked = controller.getParameterLinks().isRegionLinked(regionId, currentPart, p);
+
+ regionMenu.addItem(std::string("Link Part ") + std::to_string(p+1), true, isLinked, [this, regionId, isLinked, currentPart, p]
+ {
+ auto& links = m_processor.getController().getParameterLinks();
+
+ if(isLinked)
+ links.unlinkRegion(regionId, currentPart, p);
+ else
+ links.linkRegion(regionId, currentPart, p);
+ });
+ }
+
+ const auto& regionName = regions.find(regionId)->second.getName();
+ linkMenu.addSubMenu("Region '" + regionName + "'", regionMenu);
+ }
+
+ menu.addSubMenu("Parameter Links", linkMenu);
+
menu.showMenuAsync({});
return true;