VCV Rack API v2
Loading...
Searching...
No Matches
helpers.hpp File Reference
#include <plugin/Model.hpp>
#include <ui/MenuOverlay.hpp>
#include <ui/MenuItem.hpp>
#include <ui/MenuLabel.hpp>
#include <ui/Menu.hpp>
#include <app/PortWidget.hpp>
#include <app/ParamWidget.hpp>
#include <app/ModuleLightWidget.hpp>
#include <app/Scene.hpp>
#include <app/SvgPanel.hpp>
#include <engine/Module.hpp>
#include <engine/ParamQuantity.hpp>
#include <context.hpp>
#include <functional>
Include dependency graph for helpers.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  rack
 Root namespace for the Rack API.
 

Functions

template<class TModule , class TModuleWidget >
plugin::Modelrack::createModel (std::string slug)
 Returns a Model that constructs a Module and ModuleWidget subclass.
 
template<class TWidget >
TWidget * rack::createWidget (math::Vec pos)
 Creates a Widget subclass with its top-left at a position.
 
template<class TWidget >
TWidget * rack::createWidgetCentered (math::Vec pos)
 Creates a Widget subclass with its center at a position.
 
template<class TPanel = app::SvgPanel>
TPanel * rack::createPanel (std::string svgPath)
 Creates an SvgPanel and loads the SVG from the given path.
 
template<class TPanel = app::ThemedSvgPanel>
TPanel * rack::createPanel (std::string lightSvgPath, std::string darkSvgPath)
 Creates a ThemedSvgPanel and loads the light/dark SVGs from the given paths.
 
template<class TParamWidget >
TParamWidget * rack::createParam (math::Vec pos, engine::Module *module, int paramId)
 
template<class TParamWidget >
TParamWidget * rack::createParamCentered (math::Vec pos, engine::Module *module, int paramId)
 
template<class TPortWidget >
TPortWidget * rack::createInput (math::Vec pos, engine::Module *module, int inputId)
 
template<class TPortWidget >
TPortWidget * rack::createInputCentered (math::Vec pos, engine::Module *module, int inputId)
 
template<class TPortWidget >
TPortWidget * rack::createOutput (math::Vec pos, engine::Module *module, int outputId)
 
template<class TPortWidget >
TPortWidget * rack::createOutputCentered (math::Vec pos, engine::Module *module, int outputId)
 
template<class TModuleLightWidget >
TModuleLightWidget * rack::createLight (math::Vec pos, engine::Module *module, int firstLightId)
 
template<class TModuleLightWidget >
TModuleLightWidget * rack::createLightCentered (math::Vec pos, engine::Module *module, int firstLightId)
 
template<class TParamWidget >
TParamWidget * rack::createLightParam (math::Vec pos, engine::Module *module, int paramId, int firstLightId)
 Creates a param with a light and calls setFirstLightId() on it.
 
template<class TParamWidget >
TParamWidget * rack::createLightParamCentered (math::Vec pos, engine::Module *module, int paramId, int firstLightId)
 
template<class TMenu = ui::Menu>
TMenu * rack::createMenu ()
 
template<class TMenuLabel = ui::MenuLabel>
TMenuLabel * rack::createMenuLabel (std::string text)
 
template<class TMenuItem = ui::MenuItem>
TMenuItem * rack::createMenuItem (std::string text, std::string rightText="")
 
template<class TMenuItem = ui::MenuItem>
TMenuItem * rack::createMenuItem (std::string text, std::string rightText, std::function< void()> action, bool disabled=false, bool alwaysConsume=false)
 Creates a MenuItem with an action that calls a lambda function.
 
template<class TMenuItem = ui::MenuItem>
TMenuItem * rack::createCheckMenuItem (std::string text, std::string rightText, std::function< bool()> checked, std::function< void()> action, bool disabled=false, bool alwaysConsume=false)
 Creates a MenuItem with a check mark set by a lambda function.
 
template<class TMenuItem = ui::MenuItem>
TMenuItem * rack::createBoolMenuItem (std::string text, std::string rightText, std::function< bool()> getter, std::function< void(bool state)> setter, bool disabled=false, bool alwaysConsume=false)
 Creates a MenuItem that controls a boolean value with a check mark.
 
template<typename T >
ui::MenuItemrack::createBoolPtrMenuItem (std::string text, std::string rightText, T *ptr)
 Easy wrapper for createBoolMenuItem() to modify a bool pointer.
 
template<class TMenuItem = ui::MenuItem>
TMenuItem * rack::createSubmenuItem (std::string text, std::string rightText, std::function< void(ui::Menu *menu)> createMenu, bool disabled=false)
 Creates a MenuItem that opens a submenu.
 
template<class TMenuItem = ui::MenuItem>
TMenuItem * rack::createIndexSubmenuItem (std::string text, std::vector< std::string > labels, std::function< size_t()> getter, std::function< void(size_t val)> setter, bool disabled=false, bool alwaysConsume=false)
 Creates a MenuItem that when hovered, opens a submenu with several MenuItems indexed by an integer.
 
template<typename T >
ui::MenuItemrack::createIndexPtrSubmenuItem (std::string text, std::vector< std::string > labels, T *ptr)
 Easy wrapper for createIndexSubmenuItem() that controls an integer index at a pointer address.