#include "IPlugEffect.h" #include "IPlug_include_in_plug_src.h" #include "IControls.h" IPlugEffect::IPlugEffect(const InstanceInfo& info) : Plugin(info, MakeConfig(kNumParams, kNumPresets)) { GetParam(kGain)->InitDouble("Gain", 0., 0., 100.0, 0.01, "%"); mMakeGraphicsFunc = [&]() { return MakeGraphics(*this, PLUG_WIDTH, PLUG_HEIGHT, PLUG_FPS, GetScaleForScreen(PLUG_WIDTH, PLUG_HEIGHT)); }; mLayoutFunc = [&](IGraphics* pGraphics) { // if controls allready exist when this layout function is called // we can remove them if (pGraphics->NControls()) { pGraphics->RemoveAllControls(); } pGraphics->AttachCornerResizer(EUIResizerMode::Scale, false); pGraphics->AttachPanelBackground(mSkinIndex == 0 ? COLOR_GRAY : COLOR_RED); pGraphics->LoadFont("Roboto-Regular", ROBOTO_FN); const IRECT b = pGraphics->GetBounds(); pGraphics->AttachControl(new IVSlideSwitchControl(b.GetCentredInside(100), DefaultClickActionFunc, "Skin", DEFAULT_STYLE, false, EDirection::Horizontal, 2, mSkinIndex))->SetAnimationEndActionFunction([pGraphics, this](IControl* pCaller){ this->mSkinIndex = pCaller->GetValue() > 0.5; this->LayoutUI(pGraphics); }); }; }