Re-layout the controls as 3 columns

This commit is contained in:
Jean Pierre Cimalando 2020-06-21 17:20:03 +02:00 committed by Paul Ferrand
parent 35dc738e18
commit 65005afa79

View file

@ -323,112 +323,89 @@ void SfizzVstEditor::createFrameContents()
CRect row = topRow; CRect row = topRow;
row.top += 45.0; row.top += 45.0;
row.bottom += 45.0; row.bottom += 45.0;
row.left += 100.0; row.left += 20.0;
row.right -= 100.0; row.right -= 20.0;
CCoord interRow = 35.0; static const CCoord interRow = 35.0;
static const CCoord interColumn = 20.0;
static const int numColumns = 3;
auto leftSide = [&row]() -> CRect { auto nthColumn = [&row](int colIndex) -> CRect {
CRect div = row; CRect div = row;
div.right = 0.5 * (div.left + div.right); CCoord columnWidth = (div.right - div.left + interColumn) / numColumns - interColumn;
return div; div.left = div.left + colIndex * (columnWidth + interColumn);
}; div.right = div.left + columnWidth;
auto rightSide = [&row]() -> CRect {
CRect div = row;
div.left = 0.5 * (div.left + div.right);
return div;
};
auto labelArea = [&topRow, &row]() -> CRect {
CRect div = row;
div.right = topRow.right - 10.0;
div.left = div.right - 100.0 + 20.0;
return div; return div;
}; };
CTextLabel* label; CTextLabel* label;
SimpleSlider* slider; SimpleSlider* slider;
label = new CTextLabel(leftSide(), "Volume"); label = new CTextLabel(nthColumn(0), "Volume");
label->setFontColor(CColor(0x00, 0x00, 0x00)); label->setFontColor(CColor(0x00, 0x00, 0x00));
label->setFrameColor(CColor(0x00, 0x00, 0x00, 0x00)); label->setFrameColor(CColor(0x00, 0x00, 0x00, 0x00));
label->setBackColor(CColor(0x00, 0x00, 0x00, 0x00)); label->setBackColor(CColor(0x00, 0x00, 0x00, 0x00));
label->setHoriAlign(kLeftText); label->setHoriAlign(kLeftText);
panel->addView(label); panel->addView(label);
slider = new SimpleSlider(rightSide(), this, kTagSetVolume); slider = new SimpleSlider(nthColumn(1), this, kTagSetVolume);
panel->addView(slider); panel->addView(slider);
adjustMinMaxToRangeParam(slider, kPidVolume); adjustMinMaxToRangeParam(slider, kPidVolume);
_volumeSlider = slider; _volumeSlider = slider;
label = new CTextLabel(labelArea(), ""); label = new CTextLabel(nthColumn(2), "");
_volumeLabel = label; _volumeLabel = label;
panel->addView(label); panel->addView(label);
row.top += interRow; row.top += interRow;
row.bottom += interRow; row.bottom += interRow;
label = new CTextLabel(leftSide(), "Polyphony"); label = new CTextLabel(nthColumn(0), "Polyphony");
label->setFontColor(CColor(0x00, 0x00, 0x00)); label->setFontColor(CColor(0x00, 0x00, 0x00));
label->setFrameColor(CColor(0x00, 0x00, 0x00, 0x00)); label->setFrameColor(CColor(0x00, 0x00, 0x00, 0x00));
label->setBackColor(CColor(0x00, 0x00, 0x00, 0x00)); label->setBackColor(CColor(0x00, 0x00, 0x00, 0x00));
label->setHoriAlign(kLeftText); label->setHoriAlign(kLeftText);
panel->addView(label); panel->addView(label);
slider = new SimpleSlider(rightSide(), this, kTagSetNumVoices); slider = new SimpleSlider(nthColumn(1), this, kTagSetNumVoices);
panel->addView(slider); panel->addView(slider);
adjustMinMaxToRangeParam(slider, kPidNumVoices); adjustMinMaxToRangeParam(slider, kPidNumVoices);
_numVoicesSlider = slider; _numVoicesSlider = slider;
label = new CTextLabel(labelArea(), ""); label = new CTextLabel(nthColumn(2), "");
_numVoicesLabel = label; _numVoicesLabel = label;
panel->addView(label); panel->addView(label);
row.top += interRow; row.top += interRow;
row.bottom += interRow; row.bottom += interRow;
label = new CTextLabel(leftSide(), "Oversampling"); label = new CTextLabel(nthColumn(0), "Oversampling");
label->setFontColor(CColor(0x00, 0x00, 0x00)); label->setFontColor(CColor(0x00, 0x00, 0x00));
label->setFrameColor(CColor(0x00, 0x00, 0x00, 0x00)); label->setFrameColor(CColor(0x00, 0x00, 0x00, 0x00));
label->setBackColor(CColor(0x00, 0x00, 0x00, 0x00)); label->setBackColor(CColor(0x00, 0x00, 0x00, 0x00));
label->setHoriAlign(kLeftText); label->setHoriAlign(kLeftText);
panel->addView(label); panel->addView(label);
slider = new SimpleSlider(rightSide(), this, kTagSetOversampling); slider = new SimpleSlider(nthColumn(1), this, kTagSetOversampling);
panel->addView(slider); panel->addView(slider);
adjustMinMaxToRangeParam(slider, kPidOversampling); adjustMinMaxToRangeParam(slider, kPidOversampling);
_oversamplingSlider = slider; _oversamplingSlider = slider;
label = new CTextLabel(labelArea(), ""); label = new CTextLabel(nthColumn(2), "");
_oversamplingLabel = label; _oversamplingLabel = label;
panel->addView(label); panel->addView(label);
row.top += interRow; row.top += interRow;
row.bottom += interRow; row.bottom += interRow;
label = new CTextLabel(leftSide(), "Preload size"); label = new CTextLabel(nthColumn(0), "Preload size");
label->setFontColor(CColor(0x00, 0x00, 0x00)); label->setFontColor(CColor(0x00, 0x00, 0x00));
label->setFrameColor(CColor(0x00, 0x00, 0x00, 0x00)); label->setFrameColor(CColor(0x00, 0x00, 0x00, 0x00));
label->setBackColor(CColor(0x00, 0x00, 0x00, 0x00)); label->setBackColor(CColor(0x00, 0x00, 0x00, 0x00));
label->setHoriAlign(kLeftText); label->setHoriAlign(kLeftText);
panel->addView(label); panel->addView(label);
slider = new SimpleSlider(rightSide(), this, kTagSetPreloadSize); slider = new SimpleSlider(nthColumn(1), this, kTagSetPreloadSize);
panel->addView(slider); panel->addView(slider);
adjustMinMaxToRangeParam(slider, kPidPreloadSize); adjustMinMaxToRangeParam(slider, kPidPreloadSize);
_preloadSizeSlider = slider; _preloadSizeSlider = slider;
label = new CTextLabel(labelArea(), ""); label = new CTextLabel(nthColumn(2), "");
_preloadSizeLabel = label; _preloadSizeLabel = label;
panel->addView(label); panel->addView(label);
// row.top += interRow;
// row.bottom += interRow;
// label = new CTextLabel(leftSide(), "Freewheel");
// label->setFontColor(CColor(0x00, 0x00, 0x00));
// label->setFrameColor(CColor(0x00, 0x00, 0x00, 0x00));
// label->setBackColor(CColor(0x00, 0x00, 0x00, 0x00));
// label->setHoriAlign(kLeftText);
// panel->addView(label);
// slider = new SimpleSlider(rightSide(), this, kTag);
// panel->addView(slider);
// adjustMinMaxToRangeParam(slider, kPid);
// _aSlider = slider;
_subPanels[kPanelSettings] = panel; _subPanels[kPanelSettings] = panel;
} }
@ -446,27 +423,18 @@ void SfizzVstEditor::createFrameContents()
CRect row = topRow; CRect row = topRow;
row.top += 45.0; row.top += 45.0;
row.bottom += 45.0; row.bottom += 45.0;
row.left += 100.0; row.left += 20.0;
row.right -= 100.0; row.right -= 20.0;
CCoord interRow = 35.0; static const CCoord interRow = 35.0;
static const CCoord interColumn = 20.0;
static const int numColumns = 3;
auto leftSide = [&row]() -> CRect { auto nthColumn = [&row](int colIndex) -> CRect {
CRect div = row; CRect div = row;
div.right = 0.5 * (div.left + div.right); CCoord columnWidth = (div.right - div.left + interColumn) / numColumns - interColumn;
return div; div.left = div.left + colIndex * (columnWidth + interColumn);
}; div.right = div.left + columnWidth;
auto rightSide = [&row]() -> CRect {
CRect div = row;
div.left = 0.5 * (div.left + div.right);
return div;
};
auto labelArea = [&topRow, &row]() -> CRect {
CRect div = row;
div.right = topRow.right - 10.0;
div.left = div.right - 100.0 + 20.0;
return div; return div;
}; };
@ -474,66 +442,66 @@ void SfizzVstEditor::createFrameContents()
SimpleSlider* slider; SimpleSlider* slider;
CTextButton* textbutton; CTextButton* textbutton;
label = new CTextLabel(leftSide(), "Scala file"); label = new CTextLabel(nthColumn(0), "Scala file");
label->setFontColor(CColor(0x00, 0x00, 0x00)); label->setFontColor(CColor(0x00, 0x00, 0x00));
label->setFrameColor(CColor(0x00, 0x00, 0x00, 0x00)); label->setFrameColor(CColor(0x00, 0x00, 0x00, 0x00));
label->setBackColor(CColor(0x00, 0x00, 0x00, 0x00)); label->setBackColor(CColor(0x00, 0x00, 0x00, 0x00));
label->setHoriAlign(kLeftText); label->setHoriAlign(kLeftText);
panel->addView(label); panel->addView(label);
textbutton = new CTextButton(rightSide(), this, kTagLoadScalaFile, "Choose"); textbutton = new CTextButton(nthColumn(1), this, kTagLoadScalaFile, "Choose");
panel->addView(textbutton); panel->addView(textbutton);
label = new CTextLabel(labelArea(), ""); label = new CTextLabel(nthColumn(2), "");
_scalaFileLabel = label; _scalaFileLabel = label;
panel->addView(label); panel->addView(label);
row.top += interRow; row.top += interRow;
row.bottom += interRow; row.bottom += interRow;
label = new CTextLabel(leftSide(), "Scala root key"); label = new CTextLabel(nthColumn(0), "Scala root key");
label->setFontColor(CColor(0x00, 0x00, 0x00)); label->setFontColor(CColor(0x00, 0x00, 0x00));
label->setFrameColor(CColor(0x00, 0x00, 0x00, 0x00)); label->setFrameColor(CColor(0x00, 0x00, 0x00, 0x00));
label->setBackColor(CColor(0x00, 0x00, 0x00, 0x00)); label->setBackColor(CColor(0x00, 0x00, 0x00, 0x00));
label->setHoriAlign(kLeftText); label->setHoriAlign(kLeftText);
panel->addView(label); panel->addView(label);
slider = new SimpleSlider(rightSide(), this, kTagSetScalaRootKey); slider = new SimpleSlider(nthColumn(1), this, kTagSetScalaRootKey);
panel->addView(slider); panel->addView(slider);
adjustMinMaxToRangeParam(slider, kPidScalaRootKey); adjustMinMaxToRangeParam(slider, kPidScalaRootKey);
_scalaRootKeySlider = slider; _scalaRootKeySlider = slider;
label = new CTextLabel(labelArea(), ""); label = new CTextLabel(nthColumn(2), "");
_scalaRootKeyLabel = label; _scalaRootKeyLabel = label;
panel->addView(label); panel->addView(label);
row.top += interRow; row.top += interRow;
row.bottom += interRow; row.bottom += interRow;
label = new CTextLabel(leftSide(), "Tuning frequency"); label = new CTextLabel(nthColumn(0), "Tuning frequency");
label->setFontColor(CColor(0x00, 0x00, 0x00)); label->setFontColor(CColor(0x00, 0x00, 0x00));
label->setFrameColor(CColor(0x00, 0x00, 0x00, 0x00)); label->setFrameColor(CColor(0x00, 0x00, 0x00, 0x00));
label->setBackColor(CColor(0x00, 0x00, 0x00, 0x00)); label->setBackColor(CColor(0x00, 0x00, 0x00, 0x00));
label->setHoriAlign(kLeftText); label->setHoriAlign(kLeftText);
panel->addView(label); panel->addView(label);
slider = new SimpleSlider(rightSide(), this, kTagSetTuningFrequency); slider = new SimpleSlider(nthColumn(1), this, kTagSetTuningFrequency);
panel->addView(slider); panel->addView(slider);
adjustMinMaxToRangeParam(slider, kPidTuningFrequency); adjustMinMaxToRangeParam(slider, kPidTuningFrequency);
_tuningFrequencySlider = slider; _tuningFrequencySlider = slider;
label = new CTextLabel(labelArea(), ""); label = new CTextLabel(nthColumn(2), "");
_tuningFrequencyLabel = label; _tuningFrequencyLabel = label;
panel->addView(label); panel->addView(label);
row.top += interRow; row.top += interRow;
row.bottom += interRow; row.bottom += interRow;
label = new CTextLabel(leftSide(), "Stretched tuning"); label = new CTextLabel(nthColumn(0), "Stretched tuning");
label->setFontColor(CColor(0x00, 0x00, 0x00)); label->setFontColor(CColor(0x00, 0x00, 0x00));
label->setFrameColor(CColor(0x00, 0x00, 0x00, 0x00)); label->setFrameColor(CColor(0x00, 0x00, 0x00, 0x00));
label->setBackColor(CColor(0x00, 0x00, 0x00, 0x00)); label->setBackColor(CColor(0x00, 0x00, 0x00, 0x00));
label->setHoriAlign(kLeftText); label->setHoriAlign(kLeftText);
panel->addView(label); panel->addView(label);
slider = new SimpleSlider(rightSide(), this, kTagSetStretchedTuning); slider = new SimpleSlider(nthColumn(1), this, kTagSetStretchedTuning);
panel->addView(slider); panel->addView(slider);
adjustMinMaxToRangeParam(slider, kPidStretchedTuning); adjustMinMaxToRangeParam(slider, kPidStretchedTuning);
_stretchedTuningSlider = slider; _stretchedTuningSlider = slider;
label = new CTextLabel(labelArea(), ""); label = new CTextLabel(nthColumn(2), "");
_stretchedTuningLabel = label; _stretchedTuningLabel = label;
panel->addView(label); panel->addView(label);