|
| 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.
|
|
IVST3EditorDelegate * | getDelegate () const |
|
UIDescription * | getUIDescription () const |
|
Steinberg::tresult PLUGIN_API | queryInterface (const ::Steinberg::TUID iid, void **obj) override |
|
virtual int32_t | getTagForName (UTF8StringPtr name, int32_t registeredTag) const |
|
virtual IControlListener * | getControlListener (UTF8StringPtr controlTagName) |
|
virtual | ~IControlListener () noexcept=default |
|
virtual int32_t | controlModifierClicked (CControl *pControl, CButtonState button) |
| return 1 if you want the control to not handle it, otherwise 0
|
|
virtual | ~IViewAddedRemovedObserver () noexcept=default |
|
virtual | ~IMouseObserver () noexcept=default |
|
|
| ~VST3Editor () override |
|
void | init () |
|
double | getAbsScaleFactor () 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 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
|
|
bool | onCommandMenuItemSelected (CCommandMenuItem *item) override |
| called when the item was selected
|
|
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;
}
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)