Files
2026-08-16 18:24:52 +07:00

35 lines
1.9 KiB
C++

// This file is part of VSTGUI. It is subject to the license terms
// in the LICENSE file found in the top-level directory of this
// distribution and at http://github.com/steinbergmedia/vstgui/LICENSE
#pragma once
#include "icontroller.h"
namespace VSTGUI {
//-----------------------------------------------------------------------------
class DelegationController : public IController
{
public:
explicit DelegationController (IController* controller) : controller (controller) {}
// IControlListener
void valueChanged (CControl* pControl) override { controller->valueChanged (pControl); }
int32_t controlModifierClicked (CControl* pControl, CButtonState button) override { return controller->controlModifierClicked (pControl, button); }
void controlBeginEdit (CControl* pControl) override { controller->controlBeginEdit (pControl); }
void controlEndEdit (CControl* pControl) override { controller->controlEndEdit (pControl); }
void controlTagWillChange (VSTGUI::CControl* pControl) override { controller->controlTagWillChange (pControl); }
void controlTagDidChange (VSTGUI::CControl* pControl) override { controller->controlTagDidChange (pControl); }
// IController
int32_t getTagForName (UTF8StringPtr name, int32_t registeredTag) const override { return controller->getTagForName (name, registeredTag); }
IControlListener* getControlListener (UTF8StringPtr name) override { return controller->getControlListener (name); }
CView* createView (const UIAttributes& attributes, const IUIDescription* description) override { return controller->createView (attributes, description); }
CView* verifyView (CView* view, const UIAttributes& attributes, const IUIDescription* description) override { return controller->verifyView (view, attributes, description); }
IController* createSubController (IdStringPtr name, const IUIDescription* description) override { return controller->createSubController (name, description); }
protected:
IController* controller;
};
} // VSTGUI