Initial release

This commit is contained in:
civ
2026-08-16 18:24:52 +07:00
commit 876886a39a
13244 changed files with 2353959 additions and 0 deletions
@@ -0,0 +1,64 @@
// 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 "iuidescription.h"
//------------------------------------------------------------------------
namespace VSTGUI {
//------------------------------------------------------------------------
struct IUIDescriptionAddOn
{
virtual ~IUIDescriptionAddOn () noexcept = default;
/** called after the desc was parsed */
virtual void afterParsing (IUIDescription* desc) = 0;
/** called before the desc is saved */
virtual void beforeSaving (IUIDescription* desc) = 0;
/** called when the desc is going to be destroyed */
virtual void onDestroy (IUIDescription* desc) = 0;
using CreateTemplateViewFunc =
std::function<CView*(UTF8StringPtr name, IController* controller)>;
/** called when a new template view should be created. The provided CreateTemplateViewFunc can
* be used to create the view in a normal way
*/
virtual CreateTemplateViewFunc onCreateTemplateView (const IUIDescription* desc,
const CreateTemplateViewFunc& f) = 0;
/** the add-on can wrap the view factory or return the original one if not needed */
virtual IViewFactory* getViewFactory (IUIDescription* desc, IViewFactory* originalFactory) = 0;
/** called when the desc is going into edit mode */
virtual void onEditingStart (IUIDescription* desc) = 0;
/** called when the desc is going out of edit mode */
virtual void onEditingEnd (IUIDescription* desc) = 0;
};
//------------------------------------------------------------------------
struct UIDescriptionAddOnAdapter : IUIDescriptionAddOn
{
void afterParsing (IUIDescription* desc) override {}
void beforeSaving (IUIDescription* desc) override {}
void onDestroy (IUIDescription* desc) override {}
CreateTemplateViewFunc onCreateTemplateView (const IUIDescription* desc,
const CreateTemplateViewFunc& f) override
{
return [=] (UTF8StringPtr name, IController* controller) {
return f (name, controller);
};
}
IViewFactory* getViewFactory (IUIDescription* desc, IViewFactory* originalFactory) override
{
return originalFactory;
}
void onEditingStart (IUIDescription* desc) override {}
void onEditingEnd (IUIDescription* desc) override {}
};
//------------------------------------------------------------------------
} // VSTGUI