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 IColor & | GetColor (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 | |
| IControl * | mControl = 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.
|
inline |
IVectorBase Constructor.
- Parameters
-
style the IVStyle for this control labelInWidget Set trueIf the label should be drawn inside the widget boundsvalueInWidget Set trueIf the value should be drawn inside the widget bounds
Definition at line 768 of file IControl.h.
References SetStyle().
◆ ~IVectorBase()
|
inlinevirtual |
◆ AttachIControl()
|
inline |
◆ DrawBackground()
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()
|
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()
|
inline |
◆ DrawPressableRectangle()
|
inline |
Draw a rectangle-shaped vector button.
- Parameters
-
g The IGraphics context bounds The 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()
|
inlinevirtual |
◆ DrawPressableTriangle()
|
inline |
Draw a triangle-shaped vector button.
- Parameters
-
g The IGraphics context used for drawing bounds Where to draw the button pressed Whether to draw the button pressed or unpressed mouseOver Whether 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()
|
inlinevirtual |
◆ DrawWidget()
|
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()
◆ GetColor()
|
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()
|
inline |
◆ GetLabelStr()
|
inline |
◆ GetRoundedCornerRadius()
|
inline |
◆ GetStyle()
|
inline |
◆ GetValueBounds()
|
inline |
◆ GetWidgetBounds()
|
inline |
◆ MakeRects()
Calculate the rectangles for the various areas, depending on the style.
- Parameters
-
parent The parent rectangle to divide up hasHandle Set /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()
|
inlinevirtual |
◆ SetAngle()
|
inline |
◆ SetColor()
|
inline |
◆ SetColors()
|
inline |
◆ SetDrawFrame()
|
inline |
◆ SetDrawShadows()
|
inline |
◆ SetEmboss()
|
inline |
◆ SetFrameThickness()
|
inline |
◆ SetLabelStr()
|
inline |
◆ SetRoundness()
|
inline |
◆ SetShadowOffset()
|
inline |
◆ SetShape()
|
inline |
◆ SetShowLabel()
|
inline |
◆ SetShowValue()
|
inline |
◆ SetSplashPoint()
|
inline |
◆ SetSplashRadius()
|
inline |
◆ SetStyle()
|
inlinevirtual |
◆ SetValueStr()
|
inline |
◆ SetWidgetFrac()
|
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: