iPlug 2: IVectorBase Class Reference

A base interface to be combined with IControl for vectorial controls "IVControls", in order for them to share a common style If you need more flexibility, you're on your own! More...

#include <IControl.h>

Public Member Functions

 IVectorBase (const IVStyle &style, bool labelInWidget=false, bool valueInWidget=false)
 IVectorBase Constructor. More...
 
void AttachIControl (IControl *pControl, const char *label)
 Call in the constructor of your IVControl to link the IVectorBase and IControl. More...
 
virtual void OnStyleChanged ()
 Implement if extra changes are required in response to style changing. More...
 
void SetColor (EVColor colorIdx, const IColor &color)
 Set one of the IVColors that style the IVControl. More...
 
void SetColors (const IVColorSpec &spec)
 Set the colors of this IVControl. More...
 
const IColorGetColor (EVColor color) const
 Get value of a specific EVColor in the IVControl. More...
 
void SetLabelStr (const char *label)
 
const char * GetLabelStr () const
 
void SetValueStr (const char *value)
 
void SetWidgetFrac (float frac)
 
void SetAngle (float angle)
 
void SetShowLabel (bool show)
 
void SetShowValue (bool show)
 
void SetRoundness (float roundness)
 
void SetDrawFrame (bool draw)
 
void SetDrawShadows (bool draw)
 
void SetEmboss (bool draw)
 
void SetShadowOffset (float offset)
 
void SetFrameThickness (float thickness)
 
void SetSplashRadius (float radius)
 
void SetSplashPoint (float x, float y)
 
void SetShape (EVShape shape)
 
virtual void SetStyle (const IVStyle &style)
 Set the Style of this IVControl. More...
 
IVStyle GetStyle () const
 Get the style of this IVControl. More...
 
IRECT GetAdjustedHandleBounds (IRECT handleBounds) const
 Get the adjusted bounds for the widget handle, based on the style settings. More...
 
float GetRoundedCornerRadius (const IRECT &bounds) const
 Get the radius of rounded corners for a rectangle, based on the style roundness factor. More...
 
IRECT GetWidgetBounds () const
 
IRECT GetLabelBounds () const
 
IRECT GetValueBounds () const
 
void DrawSplash (IGraphics &g, const IRECT &clipRegion=IRECT())
 Draw a splash effect when a widget handle is clicked (via SplashClickAnimationFunc) More...
 
virtual void DrawBackground (IGraphics &g, const IRECT &rect)
 Draw the IVControl background (usually transparent) More...
 
virtual void DrawWidget (IGraphics &g)
 Draw the IVControl main widget (override) More...
 
virtual void DrawLabel (IGraphics &g)
 Draw the IVControl label text. More...
 
virtual void DrawValue (IGraphics &g, bool mouseOver)
 Draw the IVControl value text. More...
 
virtual void DrawPressableShape (IGraphics &g, EVShape shape, const IRECT &bounds, bool pressed, bool mouseOver, bool disabled)
 Call one of the DrawPressableShape methods. More...
 
void DrawPressableEllipse (IGraphics &g, const IRECT &bounds, bool pressed, bool mouseOver, bool disabled)
 Draw an ellipse-shaped vector button. More...
 
IRECT DrawPressableRectangle (IGraphics &g, const IRECT &bounds, bool pressed, bool mouseOver, bool disabled, bool rtl=true, bool rtr=true, bool rbl=true, bool rbr=true)
 Draw a rectangle-shaped vector button. More...
 
IRECT DrawPressableTriangle (IGraphics &g, const IRECT &bounds, bool pressed, bool mouseOver, float angle, bool disabled)
 Draw a triangle-shaped vector button. More...
 
IRECT MakeRects (const IRECT &parent, bool hasHandle=false)
 Calculate the rectangles for the various areas, depending on the style. More...
 

Protected Attributes

IControlmControl = nullptr
 
IVStyle mStyle
 
bool mLabelInWidget = false
 
bool mValueInWidget = false
 
float mSplashRadius = 0.f
 
IVec2 mSplashPoint = {0.f, 0.f}
 
float mMaxSplashRadius = 50.f
 
float mTrackSize = 2.f
 
float mValueDisplayFrac = 0.66f
 
IRECT mWidgetBounds
 
IRECT mLabelBounds
 
IRECT mValueBounds
 
WDL_String mLabelStr
 
WDL_String mValueStr
 
EVShape mShape = EVShape::Rectangle
 

A base interface to be combined with IControl for vectorial controls "IVControls", in order for them to share a common style If you need more flexibility, you're on your own!

Definition at line 761 of file IControl.h.

IVectorBase::IVectorBase ( const IVStyle style,
bool  labelInWidget = false,
bool  valueInWidget = false 
)
inline

IVectorBase Constructor.

Parameters
stylethe IVStyle for this control
labelInWidgetSet true If the label should be drawn inside the widget bounds
valueInWidgetSet true If the value should be drawn inside the widget bounds

Definition at line 768 of file IControl.h.

References SetStyle().

◆ ~IVectorBase()

virtual IVectorBase::~IVectorBase ( )
inlinevirtual

◆ AttachIControl()

void IVectorBase::AttachIControl ( IControl pControl,
const char *  label 
)
inline

◆ DrawBackground()

virtual void IVectorBase::DrawBackground ( IGraphics g,
const IRECT rect 
)
inlinevirtual

Draw the IVControl background (usually transparent)

Reimplemented in IVTrackControlBase.

Definition at line 881 of file IControl.h.

References IGraphics::FillRect(), IControl::GetBlend(), and GetColor().

Referenced by IVLabelControl::Draw(), IVButtonControl::Draw(), IVSwitchControl::Draw(), IVSlideSwitchControl::Draw(), IVTabSwitchControl::Draw(), IVKnobControl::Draw(), IVSliderControl::Draw(), IVXYPadControl::Draw(), IVPlotControl::Draw(), IVPanelControl::Draw(), IVBarGraphSpectrumAnalyzerControl< MAXNC, MAX_FFT_SIZE >::Draw(), IVDisplayControl::Draw(), IVScopeControl< MAXNC, MAXBUF >::Draw(), and IVSpectrumAnalyzerControl< MAXNC, MAX_FFT_SIZE >::Draw().

◆ DrawLabel()

virtual void IVectorBase::DrawLabel ( IGraphics g)
inlinevirtual

Draw the IVControl label text.

Definition at line 894 of file IControl.h.

References IGraphics::DrawText(), IControl::GetBlend(), and IRECT::H().

Referenced by IVButtonControl::Draw(), IVSwitchControl::Draw(), IVSlideSwitchControl::Draw(), IVTabSwitchControl::Draw(), IVKnobControl::Draw(), IVSliderControl::Draw(), IVRangeSliderControl::Draw(), IVXYPadControl::Draw(), IVPlotControl::Draw(), IVGroupControl::Draw(), IVPanelControl::Draw(), IVColorSwatchControl::Draw(), IVBarGraphSpectrumAnalyzerControl< MAXNC, MAX_FFT_SIZE >::Draw(), IVDisplayControl::Draw(), IVMeterControl< MAXNC >::Draw(), IVMultiSliderControl< MAXNC >::Draw(), IVNumberBoxControl::Draw(), IVBakedPresetManagerControl::Draw(), IVDiskPresetManagerControl::Draw(), IVScopeControl< MAXNC, MAXBUF >::Draw(), IVSpectrumAnalyzerControl< MAXNC, MAX_FFT_SIZE >::Draw(), and IVTabbedPagesControl::Draw().

◆ DrawPressableEllipse()

void IVectorBase::DrawPressableEllipse ( IGraphics g,
const IRECT bounds,
bool  pressed,
bool  mouseOver,
bool  disabled 
)
inline

◆ DrawPressableRectangle()

IRECT IVectorBase::DrawPressableRectangle ( IGraphics g,
const IRECT bounds,
bool  pressed,
bool  mouseOver,
bool  disabled,
bool  rtl = true,
bool  rtr = true,
bool  rbl = true,
bool  rbr = true 
)
inline

Draw a rectangle-shaped vector button.

Parameters
gThe IGraphics context
boundsThe bounds in which to draw the shape
pressed/c true if shape is pressed
mouseOver/c true if the mouse is over the bounds
disabled/c true if the shape should be drawn disabled
Returns
The handle area of the rectangle

Definition at line 1025 of file IControl.h.

References IGraphics::DrawRoundRect(), DrawSplash(), IGraphics::FillRoundRect(), GetAdjustedHandleBounds(), IControl::GetAnimationFunction(), IControl::GetBlend(), GetColor(), IRECT::GetPadded(), GetRoundedCornerRadius(), IRECT::GetTranslated(), IRECT::ReduceFromBottom(), and IRECT::ReduceFromRight().

Referenced by DrawPressableShape(), and IVPanelControl::DrawWidget().

◆ DrawPressableShape()

virtual void IVectorBase::DrawPressableShape ( IGraphics g,
EVShape  shape,
const IRECT bounds,
bool  pressed,
bool  mouseOver,
bool  disabled 
)
inlinevirtual

◆ DrawPressableTriangle()

IRECT IVectorBase::DrawPressableTriangle ( IGraphics g,
const IRECT bounds,
bool  pressed,
bool  mouseOver,
float  angle,
bool  disabled 
)
inline

Draw a triangle-shaped vector button.

Parameters
gThe IGraphics context used for drawing
boundsWhere to draw the button
pressedWhether to draw the button pressed or unpressed
mouseOverWhether mouse is currently hovering on control

Definition at line 1108 of file IControl.h.

References DrawSplash(), IGraphics::DrawTriangle(), IGraphics::FillTriangle(), GetAdjustedHandleBounds(), IControl::GetAnimationFunction(), IControl::GetBlend(), GetColor(), IRECT::GetTranslated(), IRECT::H(), IRECT::MW(), and IRECT::W().

Referenced by DrawPressableShape().

◆ DrawSplash()

◆ DrawValue()

virtual void IVectorBase::DrawValue ( IGraphics g,
bool  mouseOver 
)
inlinevirtual

◆ DrawWidget()

virtual void IVectorBase::DrawWidget ( IGraphics g)
inlinevirtual

Draw the IVControl main widget (override)

Reimplemented in IVButtonControl, IVSwitchControl, IVToggleControl, IVSlideSwitchControl, IVTabSwitchControl, IVRadioButtonControl, IVKnobControl, IVSliderControl, IVRangeSliderControl, IVXYPadControl, IVGroupControl, IVPanelControl, IVColorSwatchControl, IVDisplayControl, IVScopeControl< MAXNC, MAXBUF >, and IVTrackControlBase.

Definition at line 888 of file IControl.h.

◆ GetAdjustedHandleBounds()

IRECT IVectorBase::GetAdjustedHandleBounds ( IRECT  handleBounds) const
inline

◆ GetColor()

const IColor & IVectorBase::GetColor ( EVColor  color) const
inline

Get value of a specific EVColor in the IVControl.

Definition at line 806 of file IControl.h.

References IVColorSpec::GetColor().

Referenced by IVLabelControl::Draw(), IVXYPadControl::Draw(), IVPlotControl::Draw(), IFPSDisplayControl::Draw(), IVBarGraphSpectrumAnalyzerControl< MAXNC, MAX_FFT_SIZE >::Draw(), IVDisplayControl::Draw(), IVMeterControl< MAXNC >::Draw(), IVMultiSliderControl< MAXNC >::Draw(), IVNumberBoxControl::Draw(), IVScopeControl< MAXNC, MAXBUF >::Draw(), IVSpectrumAnalyzerControl< MAXNC, MAX_FFT_SIZE >::Draw(), IVTabbedPagesControl::Draw(), IVTrackControlBase::DrawBackground(), DrawBackground(), DrawPressableEllipse(), DrawPressableRectangle(), DrawPressableTriangle(), DrawSplash(), IVTrackControlBase::DrawTrackHandle(), IVToggleControl::DrawValue(), IVRadioButtonControl::DrawWidget(), IVRangeSliderControl::DrawWidget(), IVGroupControl::DrawWidget(), IVColorSwatchControl::DrawWidget(), IVDisplayControl::DrawWidget(), IVScopeControl< MAXNC, MAXBUF >::DrawWidget(), and IVColorSwatchControl::OnMouseDown().

◆ GetLabelBounds()

IRECT IVectorBase::GetLabelBounds ( ) const
inline

◆ GetLabelStr()

const char * IVectorBase::GetLabelStr ( ) const
inline

◆ GetRoundedCornerRadius()

float IVectorBase::GetRoundedCornerRadius ( const IRECT bounds) const
inline

◆ GetStyle()

IVStyle IVectorBase::GetStyle ( ) const
inline

◆ GetValueBounds()

IRECT IVectorBase::GetValueBounds ( ) const
inline

◆ GetWidgetBounds()

IRECT IVectorBase::GetWidgetBounds ( ) const
inline

◆ MakeRects()

IRECT IVectorBase::MakeRects ( const IRECT parent,
bool  hasHandle = false 
)
inline

Calculate the rectangles for the various areas, depending on the style.

Parameters
parentThe parent rectangle to divide up
hasHandleSet /c true for a button control to adjust for pressing
Returns
IRECT The clickable widget area

Definition at line 1163 of file IControl.h.

References IRECT::Empty(), GetAdjustedHandleBounds(), IRECT::GetCentredInside(), IRECT::GetFromBottom(), IRECT::GetFromLeft(), IRECT::GetFromRight(), IRECT::GetFromTop(), IRECT::GetMidHPadded(), IRECT::GetMidVPadded(), IRECT::GetReducedFromBottom(), IRECT::GetReducedFromLeft(), IRECT::GetReducedFromRight(), IRECT::GetReducedFromTop(), IRECT::GetScaledAboutCentre(), IControl::GetUI(), IRECT::H(), IGraphics::MeasureText(), and IRECT::W().

Referenced by IVButtonControl::OnResize(), IVSwitchControl::OnResize(), IVTabSwitchControl::OnResize(), IVKnobControl::OnResize(), IVSliderControl::OnResize(), IVXYPadControl::OnResize(), IVPlotControl::OnResize(), IVGroupControl::OnResize(), IVPanelControl::OnResize(), IVColorSwatchControl::OnResize(), IVBarGraphSpectrumAnalyzerControl< MAXNC, MAX_FFT_SIZE >::OnResize(), IVDisplayControl::OnResize(), IVNumberBoxControl::OnResize(), IVBakedPresetManagerControl::OnResize(), IVDiskPresetManagerControl::OnResize(), IVScopeControl< MAXNC, MAXBUF >::OnResize(), IVSpectrumAnalyzerControl< MAXNC, MAX_FFT_SIZE >::OnResize(), IVTabbedPagesControl::OnResize(), and IVTrackControlBase::OnResize().

◆ OnStyleChanged()

virtual void IVectorBase::OnStyleChanged ( )
inlinevirtual

◆ SetAngle()

void IVectorBase::SetAngle ( float  angle)
inline

◆ SetColor()

void IVectorBase::SetColor ( EVColor  colorIdx,
const IColor color 
)
inline

◆ SetColors()

void IVectorBase::SetColors ( const IVColorSpec spec)
inline

◆ SetDrawFrame()

void IVectorBase::SetDrawFrame ( bool  draw)
inline

◆ SetDrawShadows()

void IVectorBase::SetDrawShadows ( bool  draw)
inline

◆ SetEmboss()

void IVectorBase::SetEmboss ( bool  draw)
inline

◆ SetFrameThickness()

void IVectorBase::SetFrameThickness ( float  thickness)
inline

◆ SetLabelStr()

void IVectorBase::SetLabelStr ( const char *  label)
inline

◆ SetRoundness()

void IVectorBase::SetRoundness ( float  roundness)
inline

◆ SetShadowOffset()

void IVectorBase::SetShadowOffset ( float  offset)
inline

◆ SetShape()

void IVectorBase::SetShape ( EVShape  shape)
inline

◆ SetShowLabel()

void IVectorBase::SetShowLabel ( bool  show)
inline

◆ SetShowValue()

void IVectorBase::SetShowValue ( bool  show)
inline

◆ SetSplashPoint()

void IVectorBase::SetSplashPoint ( float  x,
float  y 
)
inline

◆ SetSplashRadius()

void IVectorBase::SetSplashRadius ( float  radius)
inline

◆ SetStyle()

virtual void IVectorBase::SetStyle ( const IVStyle style)
inlinevirtual

◆ SetValueStr()

void IVectorBase::SetValueStr ( const char *  value)
inline

◆ SetWidgetFrac()

void IVectorBase::SetWidgetFrac ( float  frac)
inline

◆ mControl

IControl* IVectorBase::mControl = nullptr

protected

◆ mLabelBounds

IRECT IVectorBase::mLabelBounds

protected

◆ mLabelInWidget

bool IVectorBase::mLabelInWidget = false

protected

◆ mLabelStr

WDL_String IVectorBase::mLabelStr

protected

◆ mMaxSplashRadius

float IVectorBase::mMaxSplashRadius = 50.f

protected

◆ mShape

EVShape IVectorBase::mShape = EVShape::Rectangle

protected

◆ mSplashPoint

IVec2 IVectorBase::mSplashPoint = {0.f, 0.f}

protected

◆ mSplashRadius

float IVectorBase::mSplashRadius = 0.f

protected

◆ mStyle

◆ mTrackSize

float IVectorBase::mTrackSize = 2.f

protected

◆ mValueBounds

IRECT IVectorBase::mValueBounds

protected

◆ mValueDisplayFrac

float IVectorBase::mValueDisplayFrac = 0.66f

protected

◆ mValueInWidget

bool IVectorBase::mValueInWidget = false

protected

◆ mValueStr

WDL_String IVectorBase::mValueStr

protected

◆ mWidgetBounds

IRECT IVectorBase::mWidgetBounds

protected

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