commit 95feb5814ef0d112338b4657793b6726554a1209
parent ded60c8a54b708045f19a8bab3e0cd414bd94e1e
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date: Sat, 4 May 2024 23:59:59 +0200
disable D&D on part elements for parts > 0 if in multi mode
Diffstat:
4 files changed, 37 insertions(+), 2 deletions(-)
diff --git a/source/xtJucePlugin/xtPartButton.cpp b/source/xtJucePlugin/xtPartButton.cpp
@@ -1,5 +1,6 @@
#include "xtPartButton.h"
+#include "xtController.h"
#include "xtEditor.h"
namespace xtJucePlugin
@@ -14,4 +15,18 @@ namespace xtJucePlugin
{
m_editor.getParts().selectPart(getPart());
}
+
+ bool PartButton::isInterestedInDragSource(const SourceDetails& dragSourceDetails)
+ {
+ if(getPart() > 0 && !m_editor.getXtController().isMultiMode())
+ return false;
+ return jucePluginEditorLib::PartButton<DrawableButton>::isInterestedInDragSource(dragSourceDetails);
+ }
+
+ void PartButton::mouseDrag(const juce::MouseEvent& _event)
+ {
+ if(getPart() > 0 && !m_editor.getXtController().isMultiMode())
+ return;
+ jucePluginEditorLib::PartButton<DrawableButton>::mouseDrag(_event);
+ }
}
diff --git a/source/xtJucePlugin/xtPartButton.h b/source/xtJucePlugin/xtPartButton.h
@@ -13,6 +13,9 @@ namespace xtJucePlugin
void onClick() override;
+ bool isInterestedInDragSource(const SourceDetails& dragSourceDetails) override;
+ void mouseDrag(const juce::MouseEvent& _event) override;
+
private:
Editor& m_editor;
};
diff --git a/source/xtJucePlugin/xtPartName.cpp b/source/xtJucePlugin/xtPartName.cpp
@@ -11,17 +11,31 @@ namespace xtJucePlugin
, m_onProgramChanged(_editor.getXtController().onProgramChanged)
, m_onPlayModeChanged(_editor.getXtController().onPlayModeChanged)
{
- m_onPlayModeChanged = [this](const bool& _multiMode)
+ m_onPlayModeChanged = [this](const bool&)
{
updatePartName();
};
- m_onProgramChanged = [this](uint8_t _program)
+ m_onProgramChanged = [this](uint8_t)
{
updatePartName();
};
}
+ bool PartName::isInterestedInDragSource(const SourceDetails& _dragSourceDetails)
+ {
+ if(getPart() > 0 && !m_editor.getXtController().isMultiMode())
+ return false;
+ return PartButton<TextButton>::isInterestedInDragSource(_dragSourceDetails);
+ }
+
+ void PartName::mouseDrag(const juce::MouseEvent& _event)
+ {
+ if(getPart() > 0 && !m_editor.getXtController().isMultiMode())
+ return;
+ PartButton<TextButton>::mouseDrag(_event);
+ }
+
void PartName::updatePartName()
{
const auto& c = m_editor.getXtController();
diff --git a/source/xtJucePlugin/xtPartName.h b/source/xtJucePlugin/xtPartName.h
@@ -13,6 +13,9 @@ namespace xtJucePlugin
public:
explicit PartName(Editor& _editor);
+ bool isInterestedInDragSource(const SourceDetails& _dragSourceDetails) override;
+ void mouseDrag(const juce::MouseEvent& _event) override;
+
private:
void updatePartName();