Interface for the plugin's gui functionality. More...
#include <mostlyharmless_IEditor.h>
Public Member Functions | |
virtual | ~IEditor () noexcept=default |
virtual void | initialise ()=0 |
virtual void | destroy ()=0 |
virtual bool | allowResize () const noexcept=0 |
virtual void | setSize (std::uint32_t width, std::uint32_t height)=0 |
virtual void | onResizeRequested (std::uint32_t *newWidth, std::uint32_t *newHeight)=0 |
virtual void | getSize (std::uint32_t *width, std::uint32_t *height)=0 |
virtual void | setParent (void *parentHandle)=0 |
virtual void | show ()=0 |
virtual void | hide ()=0 |
virtual void | onParamEvent (events::ProcToGuiParamEvent event)=0 |
Interface for the plugin's gui functionality.
As detailed in the FX Plugin tutorial, users can optionally implement this (or descendents), and must implement ISharedState, IEngine and IPluginEntry, and register their subclasses with the framework to create an audio plugin. These will also be created if using the provided create.py
script.
This interface serves as the the barebones gui hooks for implementing a framework of your choosing with the framework, and doesn't provide any functionality out of the box. If you'd like to use a webview gui, take a look at WebviewEditor or WebviewBase instead.
|
virtualdefaultnoexcept |
Virtual destructor.
|
nodiscardpure virtualnoexcept |
Return true here if you want your gui to be resizable, otherwise return false.
Implemented in mostly_harmless::gui::WebviewBase, and mostly_harmless::gui::WebviewEditor.
|
pure virtual |
Called when the editor is closed.
Implemented in mostly_harmless::gui::WebviewBase.
|
pure virtual |
Queries the editor about the size of its window. Initially, the parent window's size depends entirely on this call.
width | A pointer to the width, to set. |
height | A pointer to the height, to set. |
Implemented in mostly_harmless::gui::WebviewBase.
|
pure virtual |
Called when the editor should hide.
Implemented in mostly_harmless::gui::WebviewBase.
|
pure virtual |
Called immediately after the gui has been created - use this to perform any post-creation initialisation.
Implemented in mostly_harmless::gui::WebviewBase, and mostly_harmless::gui::WebviewEditor.
|
pure virtual |
Called via the internal gui dispatch thread when a new parameter event is sent by the host - use this hook to sync the changes with the gui!
Implemented in mostly_harmless::gui::WebviewBase, and mostly_harmless::gui::WebviewEditor.
|
pure virtual |
Called when the host tries to adjust the editor's size, and allows the user to add extra constraints to the requested bounds. Calls to this will be followed by a subsequent call to setSize, using the values stored in the newWidth and newHeight parameters.
newWidth | A pointer containing the new requested width. Can be mutated by your implementation, to clamp the size to a certain max or aspect ratio, for example. |
newHeight | A pointer containing the new requested height. Can be mutated by your implementation, to clamp the size to a certain max or aspect ratio, for example. |
Implemented in mostly_harmless::gui::WebviewBase, and mostly_harmless::gui::WebviewEditor.
|
pure virtual |
Use this function to add your custom window to the parent view.
parentHandle | A void* to the parent window's handle - the actual type is platform specific (HWND on Windows, NSView on macOS). |
Implemented in mostly_harmless::gui::WebviewBase.
|
pure virtual |
Called when the size of the parent window has been changed.
width | The new parent width. |
height | The new parent height. |
Implemented in mostly_harmless::gui::WebviewBase.
|
pure virtual |
Called when the editor should show.
Implemented in mostly_harmless::gui::WebviewBase.