From c862787e4d8a3e9cf6387ec4fd21787589611ce4 Mon Sep 17 00:00:00 2001 From: fichl Date: Tue, 6 Feb 2024 02:23:42 +0100 Subject: [PATCH] theme color per instance --- NeuralAmpModeler/NeuralAmpModeler.cpp | 28 +++++++++++++++++---- NeuralAmpModeler/NeuralAmpModelerControls.h | 18 ++++++------- 2 files changed, 32 insertions(+), 14 deletions(-) diff --git a/NeuralAmpModeler/NeuralAmpModeler.cpp b/NeuralAmpModeler/NeuralAmpModeler.cpp index 17745fe13..c427aac48 100644 --- a/NeuralAmpModeler/NeuralAmpModeler.cpp +++ b/NeuralAmpModeler/NeuralAmpModeler.cpp @@ -21,6 +21,8 @@ using namespace igraphics; const double kDCBlockerFrequency = 5.0; +iplug::igraphics::IColor NAM_CUSTOMTHEMECOLOR = PluginColors::NAM_THEMECOLOR; + // Styles const IVColorSpec colorSpec{ DEFAULT_BGCOLOR, // Background @@ -421,6 +423,7 @@ bool NeuralAmpModeler::SerializeState(IByteChunk& chunk) const // when we unserialize) chunk.PutStr(mNAMPath.Get()); chunk.PutStr(mIRPath.Get()); + chunk.PutStr(mHighLightColor.Get()); return SerializeParams(chunk); } @@ -429,6 +432,7 @@ int NeuralAmpModeler::UnserializeState(const IByteChunk& chunk, int startPos) WDL_String dir; startPos = chunk.GetStr(mNAMPath, startPos); startPos = chunk.GetStr(mIRPath, startPos); + startPos = chunk.GetStr(mHighLightColor, startPos); int retcode = UnserializeParams(chunk, startPos); if (mNAMPath.GetLength()) _StageModel(mNAMPath); @@ -460,6 +464,20 @@ void NeuralAmpModeler::OnUIOpen() if (mModel != nullptr) GetUI()->GetControlWithTag(kCtrlTagOutNorm)->SetDisabled(!mModel->HasLoudness()); mCheckSampleRateWarning = true; + + GetUI()->ForStandardControlsFunc([&](IControl* pControl) { + if (auto* pVectorBase = pControl->As()) + { + if (mHighLightColor.GetLength()) + NAM_CUSTOMTHEMECOLOR = IColor::FromColorCodeStr(mHighLightColor.Get()); + + pVectorBase->SetColor(kX1, NAM_CUSTOMTHEMECOLOR); + pVectorBase->SetColor(kPR, NAM_CUSTOMTHEMECOLOR.WithOpacity(0.6f)); + pVectorBase->SetColor(kFR, NAM_CUSTOMTHEMECOLOR.WithOpacity(0.1f)); + pVectorBase->SetColor(kX3, NAM_CUSTOMTHEMECOLOR.WithContrast(0.1f)); + } + pControl->GetUI()->SetAllControlsDirty(); + }); } void NeuralAmpModeler::OnParamChangeUI(int paramIdx, EParamSource source) @@ -495,12 +513,12 @@ bool NeuralAmpModeler::OnMessage(int msgTag, int ctrlTag, int dataSize, const vo GetUI()->ForStandardControlsFunc([&](IControl* pControl) { if (auto* pVectorBase = pControl->As()) { - IColor color = IColor::FromColorCodeStr(mHighLightColor.Get()); + NAM_CUSTOMTHEMECOLOR = IColor::FromColorCodeStr(mHighLightColor.Get()); - pVectorBase->SetColor(kX1, color); - pVectorBase->SetColor(kPR, color.WithOpacity(0.3f)); - pVectorBase->SetColor(kFR, color.WithOpacity(0.4f)); - pVectorBase->SetColor(kX3, color.WithContrast(0.1f)); + pVectorBase->SetColor(kX1, NAM_CUSTOMTHEMECOLOR); + pVectorBase->SetColor(kPR, NAM_CUSTOMTHEMECOLOR.WithOpacity(0.6f)); + pVectorBase->SetColor(kFR, NAM_CUSTOMTHEMECOLOR.WithOpacity(0.1f)); + pVectorBase->SetColor(kX3, NAM_CUSTOMTHEMECOLOR.WithContrast(0.1f)); } pControl->GetUI()->SetAllControlsDirty(); }); diff --git a/NeuralAmpModeler/NeuralAmpModelerControls.h b/NeuralAmpModeler/NeuralAmpModelerControls.h index cd7877c7d..36602dff0 100644 --- a/NeuralAmpModeler/NeuralAmpModelerControls.h +++ b/NeuralAmpModeler/NeuralAmpModelerControls.h @@ -556,14 +556,14 @@ class NAMAboutBoxControl : public IContainerBase AddChildControl(new IURLControl(IRECT(), "www.neuralampmodeler.com", "https://www.neuralampmodeler.com", text, COLOR_TRANSPARENT, PluginColors::HELP_TEXT_MO, PluginColors::HELP_TEXT_CLICKED)); - // AddChildControl(new IVColorSwatchControl(IRECT() , "Highlight", [&](int idx, IColor color){ - // - // WDL_String colorCodeStr; - // color.ToColorCodeStr(colorCodeStr, false); - // this->GetDelegate()->SendArbitraryMsgFromUI(kMsgTagHighlightColor, kNoTag, colorCodeStr.GetLength(), - // colorCodeStr.Get()); - // - // }, mStyle, IVColorSwatchControl::ECellLayout::kHorizontal, {kFG}, {""})); + AddChildControl(new IVColorSwatchControl(IRECT() , "Highlight", [&](int idx, IColor color){ + + WDL_String colorCodeStr; + color.ToColorCodeStr(colorCodeStr, false); + this->GetDelegate()->SendArbitraryMsgFromUI(kMsgTagHighlightColor, kNoTag, colorCodeStr.GetLength(), + colorCodeStr.Get()); + + }, mStyle, IVColorSwatchControl::ECellLayout::kHorizontal, {kX1}, {""})); OnResize(); } @@ -581,7 +581,7 @@ class NAMAboutBoxControl : public IContainerBase GetChild(3)->SetTargetAndDrawRECTs(titleLabel.GetVShifted(titleLabel.H() + 20).GetMidVPadded(5)); GetChild(4)->SetTargetAndDrawRECTs(titleLabel.GetVShifted(titleLabel.H() + 40).GetMidVPadded(7)); GetChild(5)->SetTargetAndDrawRECTs(titleLabel.GetVShifted(titleLabel.H() + 60).GetMidVPadded(7)); - // GetChild(6)->SetTargetAndDrawRECTs(content.GetFromBRHC(100, 50)); + GetChild(6)->SetTargetAndDrawRECTs(content.GetFromBRHC(100, 50)); } }