StoneyVCV v2
StoneyDSP Modules for VCV Rack 2.
Loading...
Searching...
No Matches
StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget Struct Reference

The ThemedPanelWidget struct. More...

#include <PanelWidget.hpp>

Inheritance diagram for StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget:
[legend]
Collaboration diagram for StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget:
[legend]

Public Types

using DrawArgs = ::StoneyDSP::StoneyVCV::ComponentLibrary::ThemedWidget::DrawArgs
 
- Public Types inherited from StoneyDSP::StoneyVCV::ComponentLibrary::ThemedWidget
using DrawArgs = ::StoneyDSP::StoneyVCV::ComponentLibrary::Widget::DrawArgs
 
- Public Types inherited from StoneyDSP::StoneyVCV::ComponentLibrary::Widget
using DrawArgs = ::rack::widget::Widget::DrawArgs
 

Public Member Functions

 ThemedPanelWidget (::rack::math::Rect newBox)
 Construct a new ThemedPanelWidget object with its' position and size set using a rack::math::Rect.
 
virtual ~ThemedPanelWidget () noexcept
 Destroys the ThemedPanelWidget object.
 
virtual void step () override
 Advances the module by one frame.
 
virtual void draw (const ::StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::DrawArgs &args) override
 Draws a themed background to the widget's NanoVG context.
 
virtual void onPrefersDarkPanelsChange (const PrefersDarkPanelsChangeEvent &e) override
 Called after the prefersDarkPanels setting is changed.
 
const ::std::size_t & getNumScrews () const noexcept
 
void setNumScrews (const ::std::size_t &newNumScrews)
 
const ::std::size_t & getNumPorts () const noexcept
 
void setNumPorts (const ::std::size_t &newNumPorts)
 
const ::std::size_t & getNumParams () const noexcept
 
void setNumParams (const ::std::size_t &newNumParams)
 
const ::std::size_t & getNumLights () const noexcept
 
void setNumLights (const ::std::size_t &newNumLights)
 
::StoneyDSP::StoneyVCV::ComponentLibrary::FramebufferWidgetgetFrameBufferWidget () noexcept
 
::std::vector<::StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPortPanelWidget * > & getPortPanelWidgets () noexcept
 
::StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPortPanelWidgetgetPortPanelWidget (const ::std::size_t &i) noexcept(false)
 
::std::vector<::StoneyDSP::StoneyVCV::ComponentLibrary::ThemedParamPanelWidget * > & getParamPanelWidgets () noexcept
 
::StoneyDSP::StoneyVCV::ComponentLibrary::ThemedParamPanelWidgetgetParamPanelWidget (const ::std::size_t &i) noexcept(false)
 
- Public Member Functions inherited from StoneyDSP::StoneyVCV::ComponentLibrary::ThemedWidget
 ThemedWidget ()
 Construct a new ThemedWidget object.
 
 ThemedWidget (::rack::math::Rect newBox)
 Construct a new ThemedWidget object with its' position and size set using a rack::math::Rect.
 
virtual ~ThemedWidget () noexcept
 Destroys the ThemedWidget object.
 
const boolgetPrefersDarkPanels () const noexcept
 
- Public Member Functions inherited from StoneyDSP::StoneyVCV::ComponentLibrary::Widget
 Widget ()
 Construct a new Widget object.
 
 Widget (::rack::math::Rect newBox)
 Construct a new Widget object with its' position and size set using a rack::math::Rect.
 
virtual ~Widget () noexcept
 Destroys the Widget object.
 
virtual void onPixelRatioChange (const PixelRatioChangeEvent &e)
 Called after the App->window->pixelRatio setting is changed.
 
const floatgetPixelRatio () const noexcept
 

Protected Member Functions

template<typename TParamPanelWidget >
void addParamPanelWidget (::rack::math::Vec pos)
 
template<typename TParamPanelWidget >
void addParamPanelWidgetCentered (::rack::math::Vec pos)
 
template<typename TParamPanelWidget >
void addParamPanelWidgetSized (::rack::math::Vec pos, ::rack::math::Vec size)
 
template<typename TParamPanelWidget >
void addParamPanelWidgetCenteredSized (::rack::math::Vec pos, ::rack::math::Vec size)
 
template<typename TPortPanelWidget >
void addPortPanelWidget (::rack::math::Vec pos)
 
template<typename TPortPanelWidget >
void addPortPanelWidgetCentered (::rack::math::Vec pos)
 
template<typename TPortPanelWidget >
void addPortPanelWidgetSized (::rack::math::Vec pos, ::rack::math::Vec size)
 
template<typename TPortPanelWidget >
void addPortPanelWidgetCenteredSized (::rack::math::Vec pos, ::rack::math::Vec size)
 

Protected Attributes

::std::vector<::StoneyDSP::StoneyVCV::ComponentLibrary::ThemedParamPanelWidget * > paramPanelWidgets = { NULL }
 
::std::vector<::StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPortPanelWidget * > portPanelWidgets = { NULL }
 
::std::size_t numScrews = 0U
 
::std::size_t numParams = 0U
 
::std::size_t numPorts = 0U
 
::std::size_t numLights = 0U
 
::StoneyDSP::StoneyVCV::ComponentLibrary::FramebufferWidgetfb = NULL
 The "head" Framebuffer Widget of the PanelWidget.
 
::StoneyDSP::StoneyVCV::ComponentLibrary::PanelBorderWidgetpanelBorder = NULL
 
::StoneyDSP::StoneyVCV::ComponentLibrary::PanelLinesWidgetpanelLines = NULL
 
::std::array<::rack::math::Vec, 4 > screwsPositions = { ::rack::math::Vec() }
 
::std::array<::rack::componentlibrary::ThemedScrew *, 4 > screws = { NULL }
 
- Protected Attributes inherited from StoneyDSP::StoneyVCV::ComponentLibrary::ThemedWidget
bool lastPrefersDarkPanels = {::rack::settings::preferDarkPanels}
 
- Protected Attributes inherited from StoneyDSP::StoneyVCV::ComponentLibrary::Widget
::rack::math::Rect box = ::rack::math::Rect(::rack::math::Vec(), ::rack::math::Vec(INFINITY, INFINITY))
 Position relative to parent and size of Widget.
 
::rack::Widget * parent = NULL
 Automatically set when Widget is added as a child to another Widget.
 
::std::list<::rack::Widget * > children
 
bool visible = true
 Disables rendering but allow stepping.
 
bool requestedDelete = false
 If set to true, parent will delete Widget in the next step().
 
float lastPixelRatio = { rack::contextGet() ->window->pixelRatio}
 
const floatpixelRatioPtr = NULL
 

Private Member Functions

 ThemedPanelWidget (const ThemedPanelWidget &)=delete
 
ThemedPanelWidgetoperator= (const ThemedPanelWidget &)=delete
 
 ThemedPanelWidget (ThemedPanelWidget &&)=delete
 
ThemedPanelWidgetoperator= (ThemedPanelWidget &&)=delete
 
 ThemedPanelWidget ()=delete
 

Friends

template<class TPanelWidget >
TPanelWidgetStoneyDSP::StoneyVCV::createPanelWidget (::rack::math::Rect box)
 

Detailed Description

The ThemedPanelWidget struct.

Member Typedef Documentation

◆ DrawArgs

Constructor & Destructor Documentation

◆ ThemedPanelWidget() [1/4]

StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::ThemedPanelWidget ( ::rack::math::Rect  newBox)

Construct a new ThemedPanelWidget object with its' position and size set using a rack::math::Rect.

◆ ~ThemedPanelWidget()

virtual StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::~ThemedPanelWidget ( )
virtualnoexcept

Destroys the ThemedPanelWidget object.

◆ ThemedPanelWidget() [2/4]

StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::ThemedPanelWidget ( const ThemedPanelWidget )
privatedelete

◆ ThemedPanelWidget() [3/4]

StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::ThemedPanelWidget ( ThemedPanelWidget &&  )
privatedelete

◆ ThemedPanelWidget() [4/4]

StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::ThemedPanelWidget ( )
privatedelete

Member Function Documentation

◆ step()

virtual void StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::step ( )
overridevirtual

Advances the module by one frame.

Calls the superclass's step() to recurse to children.

Reimplemented from StoneyDSP::StoneyVCV::ComponentLibrary::ThemedWidget.

Reimplemented in StoneyDSP::StoneyVCV::VCA::VCAPanelWidget.

◆ draw()

virtual void StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::draw ( const ::StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::DrawArgs args)
overridevirtual

Draws a themed background to the widget's NanoVG context.

Calls the superclass's draw(args) to recurse to children.

Parameters
args

Reimplemented from StoneyDSP::StoneyVCV::ComponentLibrary::ThemedWidget.

Reimplemented in StoneyDSP::StoneyVCV::VCA::VCAPanelWidget.

◆ onPrefersDarkPanelsChange()

virtual void StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::onPrefersDarkPanelsChange ( const PrefersDarkPanelsChangeEvent e)
overridevirtual

Called after the prefersDarkPanels setting is changed.

Parameters
e

Reimplemented from StoneyDSP::StoneyVCV::ComponentLibrary::ThemedWidget.

◆ getNumScrews()

const ::std::size_t & StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::getNumScrews ( ) const
noexcept

◆ setNumScrews()

void StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::setNumScrews ( const ::std::size_t &  newNumScrews)

◆ getNumPorts()

const ::std::size_t & StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::getNumPorts ( ) const
noexcept

◆ setNumPorts()

void StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::setNumPorts ( const ::std::size_t &  newNumPorts)

◆ getNumParams()

const ::std::size_t & StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::getNumParams ( ) const
noexcept

◆ setNumParams()

void StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::setNumParams ( const ::std::size_t &  newNumParams)

◆ getNumLights()

const ::std::size_t & StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::getNumLights ( ) const
noexcept

◆ setNumLights()

void StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::setNumLights ( const ::std::size_t &  newNumLights)

◆ getFrameBufferWidget()

::StoneyDSP::StoneyVCV::ComponentLibrary::FramebufferWidget & StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::getFrameBufferWidget ( )
noexcept

◆ getPortPanelWidgets()

::std::vector<::StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPortPanelWidget * > & StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::getPortPanelWidgets ( )
noexcept

◆ getPortPanelWidget()

::StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPortPanelWidget & StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::getPortPanelWidget ( const ::std::size_t &  i)

◆ getParamPanelWidgets()

::std::vector<::StoneyDSP::StoneyVCV::ComponentLibrary::ThemedParamPanelWidget * > & StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::getParamPanelWidgets ( )
noexcept

◆ getParamPanelWidget()

::StoneyDSP::StoneyVCV::ComponentLibrary::ThemedParamPanelWidget & StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::getParamPanelWidget ( const ::std::size_t &  i)

◆ addParamPanelWidget()

void StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::addParamPanelWidget ( ::rack::math::Vec  pos)
inlineprotected

◆ addParamPanelWidgetCentered()

void StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::addParamPanelWidgetCentered ( ::rack::math::Vec  pos)
inlineprotected

◆ addParamPanelWidgetSized()

void StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::addParamPanelWidgetSized ( ::rack::math::Vec  pos,
::rack::math::Vec  size 
)
inlineprotected

◆ addParamPanelWidgetCenteredSized()

void StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::addParamPanelWidgetCenteredSized ( ::rack::math::Vec  pos,
::rack::math::Vec  size 
)
inlineprotected

◆ addPortPanelWidget()

void StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::addPortPanelWidget ( ::rack::math::Vec  pos)
inlineprotected

◆ addPortPanelWidgetCentered()

void StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::addPortPanelWidgetCentered ( ::rack::math::Vec  pos)
inlineprotected

◆ addPortPanelWidgetSized()

void StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::addPortPanelWidgetSized ( ::rack::math::Vec  pos,
::rack::math::Vec  size 
)
inlineprotected

◆ addPortPanelWidgetCenteredSized()

void StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::addPortPanelWidgetCenteredSized ( ::rack::math::Vec  pos,
::rack::math::Vec  size 
)
inlineprotected

◆ operator=() [1/2]

ThemedPanelWidget & StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::operator= ( const ThemedPanelWidget )
privatedelete

◆ operator=() [2/2]

ThemedPanelWidget & StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::operator= ( ThemedPanelWidget &&  )
privatedelete

Friends And Related Symbol Documentation

◆ StoneyDSP::StoneyVCV::createPanelWidget

template<class TPanelWidget >
TPanelWidget * StoneyDSP::StoneyVCV::createPanelWidget ( ::rack::math::Rect  box)
friend

Member Data Documentation

◆ paramPanelWidgets

::std::vector<::StoneyDSP::StoneyVCV::ComponentLibrary::ThemedParamPanelWidget *> StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::paramPanelWidgets = { NULL }
protected

◆ portPanelWidgets

::std::vector<::StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPortPanelWidget *> StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::portPanelWidgets = { NULL }
protected

◆ numScrews

::std::size_t StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::numScrews = 0U
protected

◆ numParams

::std::size_t StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::numParams = 0U
protected

◆ numPorts

::std::size_t StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::numPorts = 0U
protected

◆ numLights

::std::size_t StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::numLights = 0U
protected

◆ fb

::StoneyDSP::StoneyVCV::ComponentLibrary::FramebufferWidget* StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::fb = NULL
protected

The "head" Framebuffer Widget of the PanelWidget.

Ideally, sub-classes of this ThemedPanelWidget class will initialize any sub-widgets, such as panels and text labels for ports and parameters, and then place them all into this FramebufferWidget instance, where the owner can manage Dirty events, and so forth, affecting the whole panel.

This prevents the need for tracking lots of different Framebuffer Widgets and event sources/sinks for the representation of one overall Panel.

◆ panelBorder

::StoneyDSP::StoneyVCV::ComponentLibrary::PanelBorderWidget* StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::panelBorder = NULL
protected

◆ panelLines

::StoneyDSP::StoneyVCV::ComponentLibrary::PanelLinesWidget* StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::panelLines = NULL
protected

◆ screwsPositions

::std::array<::rack::math::Vec, 4> StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::screwsPositions = { ::rack::math::Vec() }
protected

◆ screws

::std::array<::rack::componentlibrary::ThemedScrew *, 4> StoneyDSP::StoneyVCV::ComponentLibrary::ThemedPanelWidget::screws = { NULL }
protected

The documentation for this struct was generated from the following file: