You should use a specialised controller for your UI. You should do something like this:
class MyUIController : public DelegationController
{
public:
MyUIController (IController* parent) : DelegationController (parent) {}
IControlListener* getControlListener (UTF8StringPtr controlTagName) override { return this; }
void valueChanged (CControl* pControl)
{
}
};
And for your EOSXController :
IController* EOSXController::createSubController (UTF8StringPtr name, const IUIDescription* description, VST3Editor* editor)
{
return new MyUIController (editor);
}