VSTGUI  4.9
Graphical User Interface Framework not only for VST plugins
Customization Class Reference

Customization helper for an UIDesc window. More...

+ Inheritance diagram for Customization:

Public Types

using CreateViewControllerFunc = std::function< IController *(const UTF8StringView &name, IController *parent, const IUIDescription *uiDesc)>
 

Public Member Functions

void addCreateViewControllerFunc (const UTF8String &name, CreateViewControllerFunc func)
 
IControllercreateController (const UTF8StringView &name, IController *parent, const IUIDescription *uiDesc) override
 Create a sub controller. More...
 
- Public Member Functions inherited from CustomizationAdapter
void onUIDescriptionParsed (const IUIDescription *uiDesc) override
 Notification that the UIDescription was sucessfully parsed. More...
 
- Public Member Functions inherited from Interface
virtual ~Interface () noexcept
 
 Interface ()=default
 
 Interface (const Interface &)=delete
 
 Interface (Interface &&)=delete
 
Interfaceoperator= (const Interface &)=delete
 
Interfaceoperator= (Interface &&)=delete
 
template<typename T >
const auto dynamicCast () const
 
template<typename T >
auto dynamicCast ()
 

Static Public Member Functions

static std::shared_ptr< Customizationmake ()
 

Detailed Description

Customization helper for an UIDesc window.

Use this class to create controllers for your views

Example:

using namespace VSTGUI::Standalone;
auto customization = UIDesc::Customization::make ();
customization->addCreateViewControllerFunc (
"MyFirstViewController", [] (const auto& name, auto parent, const auto uiDesc) {
return new MyFirstViewController (parent);
});
customization->addCreateViewControllerFunc (
"MySecondViewController", [] (const auto& name, auto parent, const auto uiDesc) {
return new MySecondViewController (parent);
});
config.uiDescFileName = "Window.uidesc";
config.viewName = "Window";
config.customization = customization;
config.windowConfig.title = "MyWindow";
if (auto window = UIDesc::makeWindow (config))
window->show ();

The view controller MyFirstViewController will be created when the sub-controller attribute of a view is equal to "MyFirstController" and the same for "MySecondViewController".

Member Typedef Documentation

◆ CreateViewControllerFunc

using CreateViewControllerFunc = std::function<IController*( const UTF8StringView& name, IController* parent, const IUIDescription* uiDesc)>

Member Function Documentation

◆ addCreateViewControllerFunc()

void addCreateViewControllerFunc ( const UTF8String name,
CreateViewControllerFunc  func 
)
inline

◆ createController()

IController* createController ( const UTF8StringView name,
IController parent,
const IUIDescription uiDesc 
)
inlineoverridevirtual

Create a sub controller.

A sub controller can be defined in the UI editor for a view and will be responsible as a controller for the view and its children.

The controller will be automatically destroyed when the view is destroyed. You should always create a new controller instance here and do not cache it.

Parameters
namename of the sub controller
parentthe parent controller
uiDescthe UIDescription instance

Reimplemented from CustomizationAdapter.

◆ make()

static std::shared_ptr<Customization> make ( )
inlinestatic

The documentation for this class was generated from the following file:
VSTGUI::Standalone::WindowStyle::border
WindowStyle & border()
Definition: iwindow.h:89
VSTGUI::Standalone::UIDesc::Config::windowConfig
WindowConfiguration windowConfig
Window configuration.
Definition: iuidescwindow.h:78
VSTGUI::Standalone::WindowStyle::centered
WindowStyle & centered()
Definition: iwindow.h:114
VSTGUI::Standalone::UIDesc::Config
Configuration for an UIDescription window.
Definition: iuidescwindow.h:69
VSTGUI::Standalone::WindowStyle::close
WindowStyle & close()
Definition: iwindow.h:94
VSTGUI::Standalone::WindowConfiguration::title
UTF8String title
Window title.
Definition: iwindow.h:145
VSTGUI::Standalone
Standalone Library
Definition: appinit.h:11
VSTGUI::Standalone::WindowConfiguration::style
WindowStyle style
Window style.
Definition: iwindow.h:141
VSTGUI::Standalone::UIDesc::Config::uiDescFileName
UTF8String uiDescFileName
Filename of the UIDescription xml file.
Definition: iuidescwindow.h:72
VSTGUI::Standalone::UIDesc::Config::customization
CustomizationPtr customization
Optional UI customization
Definition: iuidescwindow.h:94
VSTGUI::Standalone::WindowStyle::size
WindowStyle & size()
Definition: iwindow.h:99
VSTGUI::Standalone::UIDesc::Customization::make
static std::shared_ptr< Customization > make()
Definition: customization.h:70
VSTGUI::Standalone::UIDesc::Config::viewName
UTF8String viewName
Template name of the view in the uidesc file to show in the window.
Definition: iuidescwindow.h:75
VSTGUI::Standalone::UIDesc::makeWindow
WindowPtr makeWindow(const Config &config)
Create a window with an UIDescription.