VSTGUI 4.10 Graphical User Interface Framework not only for VST plugins

Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
VST3Editor Class Reference
New classes » Version 4.0

VST3 Editor with automatic parameter binding. More...

`#include <vst3editor.h>`

Inheritance diagram for VST3Editor:

## Public Member Functions
| VST3Editor (Steinberg::Vst::EditController *controller, UTF8StringPtr templateName, UTF8StringPtr xmlFile)
| VST3Editor (UIDescription *desc, Steinberg::Vst::EditController *controller, UTF8StringPtr templateName, UTF8StringPtr xmlFile=nullptr)
bool | exchangeView (UTF8StringPtr templateName)
void | enableTooltips (bool state)
bool | setEditorSizeConstrains (const CPoint &newMinimumSize, const CPoint &newMaximumSize)
void | getEditorSizeConstrains (CPoint &minimumSize, CPoint &maximumSize) const
bool | requestResize (const CPoint &newSize)
void | setZoomFactor (double factor)
double | getZoomFactor () const
void | setAllowedZoomFactors (std::vector< double > zoomFactors)
void | setDelegate (IVST3EditorDelegate *delegate)
| set the delegate of the editor. More...
IVST3EditorDelegate * | getDelegate () const
UIDescription * | getUIDescription () const
Steinberg::tresult PLUGIN_API | queryInterface (const ::Steinberg::TUID iid, void **obj) override
Public Member Functions inherited from IController
virtual int32_t | getTagForName (UTF8StringPtr name, int32_t registeredTag) const
virtual IControlListener * | getControlListener (UTF8StringPtr controlTagName)
virtual CView * | createView (const UIAttributes &attributes, const IUIDescription *description)
virtual CView * | verifyView (CView *view, const UIAttributes &attributes, const IUIDescription *description)
virtual IController * | createSubController (UTF8StringPtr name, const IUIDescription *description)
Public Member Functions inherited from IControlListener
virtual | ~IControlListener () noexcept=default
virtual void | valueChanged (CControl *pControl)=0
virtual int32_t | controlModifierClicked (CControl *pControl, CButtonState button)
| return 1 if you want the control to not handle it, otherwise 0 More...
virtual void | controlBeginEdit (CControl *pControl)
virtual void | controlEndEdit (CControl *pControl)
virtual void | controlTagWillChange (CControl *pControl)
virtual void | controlTagDidChange (CControl *pControl)
Public Member Functions inherited from IViewAddedRemovedObserver
virtual | ~IViewAddedRemovedObserver () noexcept=default
virtual void | onViewAdded (CFrame *frame, CView *view)=0
virtual void | onViewRemoved (CFrame *frame, CView *view)=0
Public Member Functions inherited from IMouseObserver
virtual | ~IMouseObserver () noexcept=default
virtual void | onMouseEntered (CView *view, CFrame *frame)=0
virtual void | onMouseExited (CView *view, CFrame *frame)=0
virtual void | onMouseEvent (MouseEvent &event, CFrame *frame)=0
bool | validateCommandMenuItem (CCommandMenuItem *item) override
| called before the item is shown to validate its state More...
bool | onCommandMenuItemSelected (CCommandMenuItem *item) override
| called when the item was selected More...
virtual bool | validateCommandMenuItem (CCommandMenuItem *item)=0
| called before the item is shown to validate its state More...
virtual bool | onCommandMenuItemSelected (CCommandMenuItem *item)=0
| called when the item was selected More...
Public Member Functions inherited from IReference
virtual void | forget ()=0
| decrease refcount and delete object if refcount == 0 More...
virtual void | remember ()=0
| increase refcount More...

## Protected Types
using | ParameterChangeListenerMap = std::map< int32_t, ParameterChangeListener * >

## Protected Member Functions
| ~VST3Editor () override
void | init ()
double | getAbsScaleFactor () const
double | getContentScaleFactor () const
ParameterChangeListener * | getParameterChangeListener (int32_t tag) const
void | recreateView ()
void | requestRecreateView ()
void | syncParameterTags ()
void | save (bool saveAs=false)
bool | enableEditing (bool state)
void | saveScreenshot ()
bool | enableShowEditButton () const
void | enableShowEditButton (bool state)
void | showEditButton (bool state)
bool | inEditMode () const
bool PLUGIN_API | open (void *parent, const PlatformType &type) override
void PLUGIN_API | close () override
void | beginEdit (int32_t index) override
void | endEdit (int32_t index) override
CView * | createView (const UIAttributes &attributes, const IUIDescription *description) override
CView * | verifyView (CView *view, const UIAttributes &attributes, const IUIDescription *description) override
IController * | createSubController (UTF8StringPtr name, const IUIDescription *description) override
bool | beforeSizeChange (const CRect &newSize, const CRect &oldSize) override
Steinberg::tresult PLUGIN_API | onSize (Steinberg::ViewRect *newSize) override
Steinberg::tresult PLUGIN_API | canResize () override
Steinberg::tresult PLUGIN_API | checkSizeConstraint (Steinberg::ViewRect *rect) override
Steinberg::tresult PLUGIN_API | findParameter (Steinberg::int32 xPos, Steinberg::int32 yPos, Steinberg::Vst::ParamID &resultTag) override
virtual void | valueChanged (CControl *pControl) override
virtual void | controlBeginEdit (CControl *pControl) override
virtual void | controlEndEdit (CControl *pControl) override
virtual void | controlTagWillChange (CControl *pControl) override
virtual void | controlTagDidChange (CControl *pControl) override
void | onViewAdded (CFrame *frame, CView *view) override
void | onViewRemoved (CFrame *frame, CView *view) override
void | onMouseEntered (CView *view, CFrame *frame) override
void | onMouseExited (CView *view, CFrame *frame) override
void | onMouseEvent (MouseEvent &event, CFrame *frame) override
bool | validateCommandMenuItem (CCommandMenuItem *item) override
| called before the item is shown to validate its state More...
bool | onCommandMenuItemSelected (CCommandMenuItem *item) override
| called when the item was selected More...

## Protected Attributes
KeyboardHook * | keyboardHook {nullptr}
UIDescription * | description {nullptr}
IVST3EditorDelegate * | delegate {nullptr}
IController * | originalController {nullptr}
IControlListener * | openUIEditorController {nullptr}
ParameterChangeListenerMap | paramChangeListeners
std::string | viewName
std::string | xmlFile
bool | tooltipsEnabled {true}
bool | doCreateView {false}
bool | editingEnabled {false}
double | contentScaleFactor {1.}
double | zoomFactor {1.}
std::vector< double > | allowedZoomFactors
CPoint | minSize
CPoint | maxSize
CRect | nonEditRect
Optional< CPoint > | sizeRequest

## Detailed Description

VST3 Editor with automatic parameter binding.

The VST3Editor class represents the view for a VST3 plug-in. It automatically binds the VST3 parameters to VSTGUI control tags and it includes an inline UI editor for rapid development.

# Setup

Add the following code to your Steinberg::Vst::EditController class:

IPlugView* PLUGIN_API MyEditController::createView (FIDString name)
{
if (strcmp (name, ViewType::kEditor) == 0)
{
return new VST3Editor (this, "view", "myEditor.uidesc");
}
return 0;
}
VSTGUI::VST3Editor::VST3Editor
VST3Editor(Steinberg::Vst::EditController *controller, UTF8StringPtr templateName, UTF8StringPtr xmlFile)
Definition: vst3editor.cpp:408

To activate the inline editor you need to define the preprocessor definition "VSTGUI_LIVE_EDITING=1". Rebuild your plug-in, start your prefered host, instanciate your plug-in, open the context menu inside your editor and choose "Enable Editing". Now you can define tags, colors, fonts, bitmaps and add views to your editor.

See Inline UI Editor for VST3 (WYSIWYG)

## Member Typedef Documentation

## ◆ ParameterChangeListenerMap

using ParameterChangeListenerMap = std::map<int32_t, ParameterChangeListener*>
| protected

## Constructor & Destructor Documentation

## ◆ VST3Editor() [1/2]

VST3Editor | ( | Steinberg::Vst::EditController * | controller,
|  | UTF8StringPtr | templateName,
|  | UTF8StringPtr | xmlFile
| ) |  |

## ◆ VST3Editor() [2/2]

VST3Editor | ( | UIDescription * | desc,
|  | Steinberg::Vst::EditController * | controller,
|  | UTF8StringPtr | templateName,
|  | UTF8StringPtr | xmlFile = `nullptr`
| ) |  |

## ◆ ~VST3Editor()

~VST3Editor | ( |  | ) |
| override protected

## Member Function Documentation

## ◆ beforeSizeChange()

bool beforeSizeChange | ( | const CRect & | newSize,
|  | const CRect & | oldSize
| ) |  |
| override protected

## ◆ beginEdit()

void beginEdit | ( | int32_t | index | ) |
| override protected

## ◆ canResize()

Steinberg::tresult PLUGIN_API canResize | ( |  | ) |
| override protected

## ◆ checkSizeConstraint()

Steinberg::tresult PLUGIN_API checkSizeConstraint | ( | Steinberg::ViewRect * | rect | ) |
| override protected

## ◆ close()

void PLUGIN_API close | ( |  | ) |
| override protected

## ◆ controlBeginEdit()

void controlBeginEdit | ( | CControl * | pControl | ) |
| override protected virtual

Reimplemented from IControlListener.

## ◆ controlEndEdit()

void controlEndEdit | ( | CControl * | pControl | ) |
| override protected virtual

Reimplemented from IControlListener.

## ◆ controlTagDidChange()

void controlTagDidChange | ( | CControl * | pControl | ) |
| override protected virtual

Reimplemented from IControlListener.

## ◆ controlTagWillChange()

void controlTagWillChange | ( | CControl * | pControl | ) |
| override protected virtual

Reimplemented from IControlListener.

## ◆ createSubController()

IController * createSubController | ( | UTF8StringPtr | name,
|  | const IUIDescription * | description
| ) |  |
| override protected virtual

Reimplemented from IController.

## ◆ createView()

CView * createView | ( | const UIAttributes & | attributes,
|  | const IUIDescription * | description
| ) |  |
| override protected virtual

Reimplemented from IController.

## ◆ enableEditing()

bool enableEditing | ( | bool | state | ) |
| protected

## ◆ enableShowEditButton() [1/2]

bool enableShowEditButton | ( |  | ) | const
| protected

## ◆ enableShowEditButton() [2/2]

void enableShowEditButton | ( | bool | state | ) |
| protected

## ◆ enableTooltips()

void enableTooltips | ( | bool | state | ) |

## ◆ endEdit()

void endEdit | ( | int32_t | index | ) |
| override protected

## ◆ exchangeView()

bool exchangeView | ( | UTF8StringPtr | templateName | ) |

## ◆ findParameter()

Steinberg::tresult PLUGIN_API findParameter | ( | Steinberg::int32 | xPos,
|  | Steinberg::int32 | yPos,
|  | Steinberg::Vst::ParamID & | resultTag
| ) |  |
| override protected

## ◆ getAbsScaleFactor()

double getAbsScaleFactor | ( |  | ) | const
| protected

## ◆ getContentScaleFactor()

double getContentScaleFactor | ( |  | ) | const
| protected

## ◆ getDelegate()

IVST3EditorDelegate * getDelegate | ( |  | ) | const

## ◆ getEditorSizeConstrains()

void getEditorSizeConstrains | ( | CPoint & | minimumSize,
|  | CPoint & | maximumSize
| ) |  | const

## ◆ getParameterChangeListener()

ParameterChangeListener * getParameterChangeListener | ( | int32_t | tag | ) | const
| protected

## ◆ getUIDescription()

UIDescription * getUIDescription | ( |  | ) | const

## ◆ getZoomFactor()

double getZoomFactor | ( |  | ) | const

## ◆ inEditMode()

bool inEditMode | ( |  | ) | const
| protected

## ◆ init()

void init | ( |  | ) |
| protected

## ◆ onCommandMenuItemSelected()

bool onCommandMenuItemSelected | ( | CCommandMenuItem * | item | ) |
| override protected virtual

called when the item was selected

Reimplemented from CommandMenuItemTargetAdapter.

## ◆ onMouseEntered()

void onMouseEntered | ( | CView * | view,
|  | CFrame * | frame
| ) |  |
| inline override protected virtual

Implements IMouseObserver.

## ◆ onMouseEvent()

void onMouseEvent | ( | MouseEvent & | event,
|  | CFrame * | frame
| ) |  |
| override protected virtual

Implements IMouseObserver.

## ◆ onMouseExited()

void onMouseExited | ( | CView * | view,
|  | CFrame * | frame
| ) |  |
| inline override protected virtual

Implements IMouseObserver.

## ◆ onSize()

Steinberg::tresult PLUGIN_API onSize | ( | Steinberg::ViewRect * | newSize | ) |
| override protected

## ◆ onViewAdded()

void onViewAdded | ( | CFrame * | frame,
|  | CView * | view
| ) |  |
| override protected virtual

Implements IViewAddedRemovedObserver.

## ◆ onViewRemoved()

void onViewRemoved | ( | CFrame * | frame,
|  | CView * | view
| ) |  |
| override protected virtual

Implements IViewAddedRemovedObserver.

## ◆ open()

bool PLUGIN_API open | ( | void * | parent,
|  | const PlatformType & | type
| ) |  |
| override protected

## ◆ queryInterface()

Steinberg::tresult PLUGIN_API queryInterface | ( | const ::Steinberg::TUID | iid,
|  | void ** | obj
| ) |  |
| override

## ◆ recreateView()

void recreateView | ( |  | ) |
| protected

## ◆ requestRecreateView()

void requestRecreateView | ( |  | ) |
| protected

## ◆ requestResize()

bool requestResize | ( | const CPoint & | newSize | ) |

## ◆ save()

void save | ( | bool | saveAs = `false` | ) |
| protected

## ◆ saveScreenshot()

void saveScreenshot | ( |  | ) |
| protected

## ◆ setAllowedZoomFactors()

void setAllowedZoomFactors | ( | std::vector< double > | zoomFactors | ) |
| inline

## ◆ setDelegate()

void setDelegate | ( | IVST3EditorDelegate * | delegate | ) |

set the delegate of the editor.

no reference counting is happening here.

## ◆ setEditorSizeConstrains()

bool setEditorSizeConstrains | ( | const CPoint & | newMinimumSize,
|  | const CPoint & | newMaximumSize
| ) |  |

## ◆ setZoomFactor()

void setZoomFactor | ( | double | factor | ) |

## ◆ showEditButton()

void showEditButton | ( | bool | state | ) |
| protected

## ◆ syncParameterTags()

void syncParameterTags | ( |  | ) |
| protected

## ◆ validateCommandMenuItem()

bool validateCommandMenuItem | ( | CCommandMenuItem * | item | ) |
| override protected virtual

called before the item is shown to validate its state

Reimplemented from CommandMenuItemTargetAdapter.

## ◆ valueChanged()

void valueChanged | ( | CControl * | pControl | ) |
| override protected virtual

Implements IControlListener.

## ◆ verifyView()

CView * verifyView | ( | CView * | view,
|  | const UIAttributes & | attributes,
|  | const IUIDescription * | description
| ) |  |
| override protected virtual

Reimplemented from IController.

## Member Data Documentation

## ◆ allowedZoomFactors

std::vector<double> allowedZoomFactors
| protected

## ◆ contentScaleFactor

double contentScaleFactor {1.}
| protected

## ◆ delegate

IVST3EditorDelegate* delegate {nullptr}
| protected

## ◆ description

UIDescription* description {nullptr}
| protected

## ◆ doCreateView

bool doCreateView {false}
| protected

## ◆ editingEnabled

bool editingEnabled {false}
| protected

## ◆ keyboardHook

KeyboardHook* keyboardHook {nullptr}
| protected

## ◆ maxSize

CPoint maxSize
| protected

## ◆ minSize

CPoint minSize
| protected

## ◆ nonEditRect

CRect nonEditRect
| protected

## ◆ openUIEditorController

IControlListener* openUIEditorController {nullptr}
| protected

## ◆ originalController

IController* originalController {nullptr}
| protected

## ◆ paramChangeListeners

ParameterChangeListenerMap paramChangeListeners
| protected

## ◆ sizeRequest

Optional<CPoint> sizeRequest
| protected

## ◆ tooltipsEnabled

bool tooltipsEnabled {true}
| protected

## ◆ viewName

std::string viewName
| protected

## ◆ xmlFile

std::string xmlFile
| protected

## ◆ zoomFactor

double zoomFactor {1.}
| protected

The documentation for this class was generated from the following files:

- vst3editor.h
- vst3editor.cpp