Krotos Modules 3
Loading...
Searching...
No Matches
ModulationAssignerDropArea.h
Go to the documentation of this file.
1#pragma once
2
3namespace krotos
4{
8 class DropComponent;
9 class MultiDropComponent;
10
11 class ModulationAssignerDropArea : public juce::Component
12 {
13 public:
15 void resized() override;
16 void paint(Graphics& g) override;
17
21 const OwnedArray<DropComponent>& getDropComponents() const noexcept { return m_dropComponents; }
22
26 int getNumDropComponents() const noexcept { return m_dropComponents.size(); };
27
30
34 void removeComponent(const String& kwidgetID);
35
39 void setMargin(float margin);
40
44 void setNumComponentsPerRow(int min, int max)
45 {
46 m_minPerRow = min;
47 m_maxPerRow = max;
48 };
49
54 void drawSingleRowAsColumn(bool isColumn) { m_singleRowColumn = isColumn; };
55
57 {
58 static const String ModulationDropComponentID;
59 static const String ModulationMultiDropComponentID;
60 };
61
71 DropComponent* findDropComponent(const String& kwidgetID, int modSourceID);
72
73 private:
74 OwnedArray<DropComponent> m_dropComponents;
75 OwnedArray<MultiDropComponent> m_multiDropComponents;
77 float m_margin{1.0f};
78 Colour m_borderColour{Colours::red};
79 bool m_singleRowColumn{false};
80
81 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(ModulationAssignerDropArea)
82 };
83} // namespace krotos
A component for dropping draggable juce objects onto.
Definition DropComponent.h:11
Definition ModulationAssignerDropArea.h:12
OwnedArray< MultiDropComponent > m_multiDropComponents
Definition ModulationAssignerDropArea.h:75
void removeComponent(const String &kwidgetID)
Remove a drop component using its associated kwidgetID.
Definition ModulationAssignerDropArea.cpp:111
DropComponent * findDropComponent(const String &kwidgetID, int modSourceID)
Searches all the DropComponents in this DropArea to find which one is attached to the given kwidget m...
Definition ModulationAssignerDropArea.cpp:87
const OwnedArray< DropComponent > & getDropComponents() const noexcept
Returns an array of the child drop components.
Definition ModulationAssignerDropArea.h:21
OwnedArray< DropComponent > m_dropComponents
Definition ModulationAssignerDropArea.h:74
int m_minPerRow
Definition ModulationAssignerDropArea.h:76
void drawSingleRowAsColumn(bool isColumn)
Set this to true if a DropArea with a single row of items should draw as a column,...
Definition ModulationAssignerDropArea.h:54
void paint(Graphics &g) override
Definition ModulationAssignerDropArea.cpp:12
DropComponent * addDropComponent(DropComponent *newComp)
Definition ModulationAssignerDropArea.cpp:71
bool m_singleRowColumn
Definition ModulationAssignerDropArea.h:79
ModulationAssignerDropArea()
Definition ModulationAssignerDropArea.cpp:10
void setNumComponentsPerRow(int min, int max)
Set the min / max number of drop components allowed per row in the flex box.
Definition ModulationAssignerDropArea.h:44
Colour m_borderColour
Definition ModulationAssignerDropArea.h:78
int m_maxPerRow
Definition ModulationAssignerDropArea.h:76
float m_margin
Definition ModulationAssignerDropArea.h:77
int getNumDropComponents() const noexcept
Returns the number of child drop components.
Definition ModulationAssignerDropArea.h:26
void resized() override
Definition ModulationAssignerDropArea.cpp:14
void setMargin(float margin)
Sets the flex box margin.
Definition ModulationAssignerDropArea.cpp:141
MultiDropComponent * addMultiDropComponent(MultiDropComponent *newComp)
Definition ModulationAssignerDropArea.cpp:79
A simple container for a holding multiple drop components used for assigning modulation to a kwidget ...
Definition MultiDropComponent.h:16
Definition AirAbsorptionFilter.cpp:2
Definition ModulationAssignerDropArea.h:57
static const String ModulationMultiDropComponentID
Definition ModulationAssignerDropArea.h:59
static const String ModulationDropComponentID
Definition ModulationAssignerDropArea.h:58