Krotos Modules 3
Loading...
Searching...
No Matches
ModulationAssignerTable.h
Go to the documentation of this file.
1#pragma once
2
3namespace krotos
4{
5 // Forward declaration of modulation assigner
6 class ModulationAssigner;
7
8 class ModulationAssignerTable : public juce::Component, public juce::TableListBoxModel
9 {
10 public:
11 ModulationAssignerTable(ModulationAssigner& owner, String name, String id);
12
13 /* ====== TableListBoxModel Overrides, see juce::TableListBoxModel ====== */
14 int getNumRows() override;
15 void paintRowBackground(Graphics& g, int rowNumber, int width, int height, bool rowIsSelected) override;
16
17 void paintCell(Graphics& g, int rowNumber, int columnId, int width, int height, bool rowIsSelected) override;
18
19 Component* refreshComponentForCell(int rowNumber, int columnId, bool isRowSelected,
20 Component* existingComponentToUpdate) override;
21
22 void paint(Graphics& g);
23 void resized() override;
24 /* ====== End of TableListBoxModel Overrides ====== */
25
31 void addRow(const ValueTree& modulationInstanceTree);
32
42 void deleteRow(const ValueTree& modulationInstanceTree, int row, bool notifyAssigner);
43
52 void deleteRow(int rowNumber, bool notifyAssigner);
53
63 void deleteRow(const ValueTree& modulationInstanceTree, bool notifyAssigner);
64
74
75 const String& getId() { return m_id; };
76
78 {
79 static const String TextButtonBackId;
80 static const String TextButtonDeleteId;
81 static const String SliderDepthId;
82 };
83
84 private:
86
87 const Identifier m_depthIdentifier{"depth"};
88 std::vector<ValueTree> m_modulationTrees;
89
90 TextButton m_backButton;
92
93 std::map<ValueTree, int> m_tableMap;
94
95 StringArray m_sources;
96 StringArray m_destinations;
97
98 TableListBox m_table;
99 Font m_font{14.0f};
100
101 const int m_padding{5};
103
104 const int k_dropTabIndex{0};
105 const int k_maxAppendLength{16};
106
107 String m_id;
108
112 class ModDepthSlider : public Slider, public ValueTree::Listener
113 {
114 public:
117
118 void setAttachment(int row, int column, const ValueTree& tree, const Identifier& property);
119 void valueChanged() override;
120 void lookAndFeelChanged() override;
121
122 private:
123 void valueTreePropertyChanged(ValueTree& treeWhosePropertyHasChanged, const Identifier& property) override;
124
126 int m_row, m_column; // not used now but may be useful later
127 ValueTree m_tree;
128 Identifier m_property;
129
131 };
132
133 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(ModulationAssignerTable)
134 };
135} // namespace krotos
Definition BipolarSliderLAF.h:6
Definition ModulationAssigner.h:12
Definition ModulationAssignerTable.h:113
void lookAndFeelChanged() override
Definition ModulationAssignerTable.cpp:258
int m_row
Definition ModulationAssignerTable.h:126
ValueTree m_tree
Definition ModulationAssignerTable.h:127
ModDepthSlider(ModulationAssignerTable &modList)
Definition ModulationAssignerTable.cpp:223
~ModDepthSlider()
Definition ModulationAssignerTable.cpp:234
BipolarSliderLAF m_laf
Definition ModulationAssignerTable.h:130
void valueTreePropertyChanged(ValueTree &treeWhosePropertyHasChanged, const Identifier &property) override
Definition ModulationAssignerTable.cpp:252
Identifier m_property
Definition ModulationAssignerTable.h:128
void valueChanged() override
Definition ModulationAssignerTable.cpp:247
void setAttachment(int row, int column, const ValueTree &tree, const Identifier &property)
Definition ModulationAssignerTable.cpp:236
ModulationAssignerTable & m_owner
Definition ModulationAssignerTable.h:125
int m_column
Definition ModulationAssignerTable.h:126
Definition ModulationAssignerTable.h:9
int getNumRows() override
Definition ModulationAssignerTable.cpp:44
ModulationAssigner & m_assigner
Definition ModulationAssignerTable.h:85
void paint(Graphics &g)
Definition ModulationAssignerTable.cpp:125
const int m_padding
Definition ModulationAssignerTable.h:101
const int k_maxAppendLength
Definition ModulationAssignerTable.h:105
void resized() override
Definition ModulationAssignerTable.cpp:135
void deleteRow(const ValueTree &modulationInstanceTree, int row, bool notifyAssigner)
Definition ModulationAssignerTable.cpp:176
std::vector< ValueTree > m_modulationTrees
Definition ModulationAssignerTable.h:88
Label m_titleLabel
Definition ModulationAssignerTable.h:91
ColumnIDs
Definition ModulationAssignerTable.h:68
@ col_Source
Definition ModulationAssignerTable.h:69
@ col_Delete
Definition ModulationAssignerTable.h:72
@ col_Depth
Definition ModulationAssignerTable.h:71
@ col_Destination
Definition ModulationAssignerTable.h:70
int m_numRows
Definition ModulationAssignerTable.h:102
StringArray m_destinations
Definition ModulationAssignerTable.h:96
Component * refreshComponentForCell(int rowNumber, int columnId, bool isRowSelected, Component *existingComponentToUpdate) override
Definition ModulationAssignerTable.cpp:77
TableListBox m_table
Definition ModulationAssignerTable.h:98
String m_id
Definition ModulationAssignerTable.h:107
std::map< ValueTree, int > m_tableMap
Definition ModulationAssignerTable.h:93
Font m_font
Definition ModulationAssignerTable.h:99
const String & getId()
Definition ModulationAssignerTable.h:75
void addRow(const ValueTree &modulationInstanceTree)
Definition ModulationAssignerTable.cpp:145
void paintCell(Graphics &g, int rowNumber, int columnId, int width, int height, bool rowIsSelected) override
Definition ModulationAssignerTable.cpp:56
void paintRowBackground(Graphics &g, int rowNumber, int width, int height, bool rowIsSelected) override
Definition ModulationAssignerTable.cpp:46
const Identifier m_depthIdentifier
Definition ModulationAssignerTable.h:87
StringArray m_sources
Definition ModulationAssignerTable.h:95
TextButton m_backButton
Definition ModulationAssignerTable.h:90
const int k_dropTabIndex
Definition ModulationAssignerTable.h:104
ModulationAssignerTable(ModulationAssigner &owner, String name, String id)
Definition ModulationAssignerTable.cpp:9
Definition AirAbsorptionFilter.cpp:2
Definition ModulationAssignerTable.h:78
static const String TextButtonBackId
Definition ModulationAssignerTable.h:79
static const String TextButtonDeleteId
Definition ModulationAssignerTable.h:80
static const String SliderDepthId
Definition ModulationAssignerTable.h:81