iPlug2 - C++ Audio Plug-in Framework
Loading...
Searching...
No Matches
Public Member Functions | Protected Attributes | List of all members
IVNumberBoxControl Class Reference

A "meta control" for a number box with an Inc/Dec button It adds several child buttons if buttons = true. More...

#include <IVNumberBoxControl.h>

Inheritance diagram for IVNumberBoxControl:
[legend]

Public Member Functions

 IVNumberBoxControl (const IRECT &bounds, int paramIdx=kNoParameter, IActionFunction actionFunc=nullptr, const char *label="", const IVStyle &style=DEFAULT_STYLE, bool buttons=false, double defaultValue=50.f, double minValue=1.f, double maxValue=100.f, const char *fmtStr="%0.0f", bool drawTriangle=true)
 
void OnInit () override
 Called just prior to when the control is attached, after its delegate and graphics member variable set. More...
 
void Draw (IGraphics &g) override
 Draw the control to the graphics context. More...
 
void OnResize () override
 Called when IControl is constructed or resized using SetRect(). More...
 
void OnAttached () override
 Called after the control has been attached, and its delegate and graphics member variable set. More...
 
void OnMouseDown (float x, float y, const IMouseMod &mod) override
 Implement this method to respond to a mouse down event on this control. More...
 
void OnMouseUp (float x, float y, const IMouseMod &mod) override
 Implement this method to respond to a mouse up event on this control. More...
 
void OnMouseDrag (float x, float y, float dX, float dY, const IMouseMod &mod) override
 Implement this method to respond to a mouse drag event on this control. More...
 
void OnMouseDblClick (float x, float y, const IMouseMod &mod) override
 Implement this method to respond to a mouse double click event on this control. More...
 
void OnTextEntryCompletion (const char *str, int valIdx) override
 Implement this method to handle text input after IGraphics::CreateTextEntry/IControlPromptUserInput. More...
 
void OnMouseWheel (float x, float y, const IMouseMod &mod, float d) override
 Implement this method to respond to a mouse wheel event on this control. More...
 
void SetValueFromDelegate (double value, int valIdx=0) override
 Set the control's value from the delegate This method is called from the class implementing the IEditorDelegate interface in order to update a control's value members and set it to be marked dirty for redraw. More...
 
void SetValueFromUserInput (double value, int valIdx=0) override
 Set the control's value after user input. More...
 
void SetStyle (const IVStyle &style) override
 Set the Style of this IVControl. More...
 
bool IsFineControl (const IMouseMod &mod, bool wheel) const
 
void OnValueChanged (bool preventAction=false)
 
double GetRealValue () const
 
void SetDrawTriangle (bool draw)
 
- Public Member Functions inherited from IContainerBase
 IContainerBase (const IRECT &bounds, int paramIdx=kNoParameter, IActionFunction actionFunc=nullptr)
 
 IContainerBase (const IRECT &bounds, const std::initializer_list< int > &params, IActionFunction actionFunc=nullptr)
 
 IContainerBase (const IRECT &bounds, IActionFunction actionFunc)
 
 IContainerBase (const IRECT &bounds, AttachFunc attachFunc, ResizeFunc resizeFunc)
 
void SetAttachFunc (AttachFunc attachFunc)
 
void SetResizeFunc (ResizeFunc resizeFunc)
 
virtual void Draw (IGraphics &g) override
 Draw the control to the graphics context. More...
 
virtual void OnAttached () override
 Called after the control has been attached, and its delegate and graphics member variable set. More...
 
virtual void OnResize () override
 Called when IControl is constructed or resized using SetRect(). More...
 
void SetDisabled (bool disable) override
 Sets disabled mode for the control, the default implementation modifies the mBlend member. More...
 
void Hide (bool hide) override
 Shows or hides the IControl. More...
 
IControlAddChildControl (IControl *pControl, int ctrlTag=kNoTag, const char *group="")
 
void RemoveChildControl (IControl *pControl)
 
IControlGetChild (int idx)
 
int NChildren () const
 
void ForAllChildrenFunc (std::function< void(int childIdx, IControl *pControl)> func)
 
- Public Member Functions inherited from IControl
 IControl (const IRECT &bounds, int paramIdx=kNoParameter, IActionFunction actionFunc=nullptr)
 Constructor. More...
 
 IControl (const IRECT &bounds, const std::initializer_list< int > &params, IActionFunction actionFunc=nullptr)
 Constructor (range of parameters) More...
 
 IControl (const IRECT &bounds, IActionFunction actionFunc)
 Constructor (no paramIdx) More...
 
 IControl (const IControl &)=delete
 
void operator= (const IControl &)=delete
 
virtual ~IControl ()
 Destructor. More...
 
virtual void OnMouseDown (float x, float y, const IMouseMod &mod)
 Implement this method to respond to a mouse down event on this control. More...
 
virtual void OnMouseUp (float x, float y, const IMouseMod &mod)
 Implement this method to respond to a mouse up event on this control. More...
 
virtual void OnMouseDrag (float x, float y, float dX, float dY, const IMouseMod &mod)
 Implement this method to respond to a mouse drag event on this control. More...
 
virtual void OnMouseDblClick (float x, float y, const IMouseMod &mod)
 Implement this method to respond to a mouse double click event on this control. More...
 
virtual void OnMouseWheel (float x, float y, const IMouseMod &mod, float d)
 Implement this method to respond to a mouse wheel event on this control. More...
 
virtual bool OnKeyDown (float x, float y, const IKeyPress &key)
 Implement this method to respond to a key down event on this control. More...
 
virtual bool OnKeyUp (float x, float y, const IKeyPress &key)
 Implement this method to respond to a key up event on this control. More...
 
virtual void OnMouseOver (float x, float y, const IMouseMod &mod)
 Implement this method to respond to a mouseover event on this control. More...
 
virtual void OnMouseOut ()
 Implement this method to respond to a mouseout event on this control. More...
 
virtual void OnTouchCancelled (float x, float y, const IMouseMod &mod)
 Implement this method to respond to a touch cancel event on this control. More...
 
virtual void OnDrop (const char *str)
 Implement to do something when something was drag 'n dropped onto this control. More...
 
virtual void OnDropMultiple (const std::vector< const char * > &paths)
 Implement to handle multiple items drag 'n dropped onto this control. More...
 
virtual void OnRescale ()
 Implement to do something when graphics is scaled globally (e.g. More...
 
virtual void OnResize ()
 Called when IControl is constructed or resized using SetRect(). More...
 
virtual void OnInit ()
 Called just prior to when the control is attached, after its delegate and graphics member variable set. More...
 
virtual void OnAttached ()
 Called after the control has been attached, and its delegate and graphics member variable set. More...
 
virtual void OnMsgFromDelegate (int msgTag, int dataSize, const void *pData)
 Implement to receive messages sent to the control, see IEditorDelegate:SendControlMsgFromDelegate() More...
 
virtual void OnMidi (const IMidiMsg &msg)
 Implement to receive MIDI messages sent to the control if mWantsMidi == true, see IEditorDelegate:SendMidiMsgFromDelegate() More...
 
virtual bool OnGesture (const IGestureInfo &info)
 
virtual void CreateContextMenu (IPopupMenu &contextMenu)
 Called by default when the user right clicks a control. More...
 
virtual void OnPopupMenuSelection (IPopupMenu *pSelectedMenu, int valIdx)
 Implement this method to handle popup menu selection after IGraphics::CreatePopupMenu/IControlPromptUserInput. More...
 
virtual void OnTextEntryCompletion (const char *str, int valIdx)
 Implement this method to handle text input after IGraphics::CreateTextEntry/IControlPromptUserInput. More...
 
virtual void OnContextSelection (int itemSelected)
 Implement this to respond to a menu selection from CreateContextMenu();. More...
 
virtual void Draw (IGraphics &g)=0
 Draw the control to the graphics context. More...
 
virtual void DrawPTHighlight (IGraphics &g)
 Implement this to customise how a colored highlight is drawn on the control in ProTools (AAX format only), when a control is linked to a parameter that is automated. More...
 
void PromptUserInput (int valIdx=0)
 Call this method in response to a mouse event to create an edit box so the user can enter a value, or pop up a pop-up menu, if the control is linked to a parameter (mParamIdx > kNoParameter) More...
 
void PromptUserInput (const IRECT &bounds, int valIdx=0)
 Create a text entry box so the user can enter a value, or pop up a pop-up menu, if the control is linked to a parameter (mParamIdx > kNoParameter) specifying the bounds. More...
 
IControlSetActionFunction (IActionFunction actionFunc)
 Set an Action Function for this control. More...
 
IControlSetAnimationEndActionFunction (IActionFunction actionFunc)
 Set an Action Function to be called at the end of an animation. More...
 
IControlSetTooltip (const char *str)
 Set a tooltip for the control. More...
 
const char * GetTooltip () const
 
int GetParamIdx (int valIdx=0) const
 Get the index of a parameter that the control is linked to Normaly controls are either linked to a single parameter or no parameter but some may be linked to multiple parameters. More...
 
virtual void SetParamIdx (int paramIdx, int valIdx=0)
 Set the index of a parameter that the control is linked to If you are calling this "manually" to reuse a control for multiple parameters, you probably want to call IEditorDelegate::SendCurrentParamValuesFromDelegate() afterward, to update the control values. More...
 
int LinkedToParam (int paramIdx) const
 Check if the control is linked to a particular parameter. More...
 
int NVals () const
 
virtual int GetValIdxForPos (float x, float y) const
 Check to see which of the control's values relates to this x and y coordinate. More...
 
const IParamGetParam (int valIdx=0) const
 Get a const pointer to the IParam object (owned by the editor delegate class), associated with this control. More...
 
virtual void SetValueFromDelegate (double value, int valIdx=0)
 Set the control's value from the delegate This method is called from the class implementing the IEditorDelegate interface in order to update a control's value members and set it to be marked dirty for redraw. More...
 
virtual void SetValueFromUserInput (double value, int valIdx=0)
 Set the control's value after user input. More...
 
virtual void SetValueToDefault (int valIdx=kNoValIdx)
 Set one or all of the control's values to the default value of the associated parameter. More...
 
virtual void SetValue (double value, int valIdx=0)
 Set one of the control's values. More...
 
double GetValue (int valIdx=0) const
 Get the control's value. More...
 
void SetGroup (const char *groupName)
 Assign the control to a control group. More...
 
const char * GetGroup () const
 Get the group that the control belongs to, if any. More...
 
const ITextGetText () const
 Get the Text object for the control. More...
 
virtual void SetText (const IText &txt)
 Set the Text object typically used to determine font/layout/size etc of the main text in a control. More...
 
void SetBlend (const IBlend &blend)
 Set the Blend for this control. More...
 
IBlend GetBlend () const
 Get the Blend for this control. More...
 
int GetTextEntryLength () const
 Get the max number of characters that are allowed in text entry. More...
 
void SetTextEntryLength (int len)
 Set the max number of characters that are allowed in text entry. More...
 
const IRECTGetRECT () const
 Get the rectangular draw area for this control, within the graphics context. More...
 
void SetRECT (const IRECT &bounds)
 Set the rectangular draw area for this control, within the graphics context. More...
 
const IRECTGetTargetRECT () const
 Get the rectangular mouse tracking target area, within the graphics context for this control. More...
 
void SetTargetRECT (const IRECT &bounds)
 Set the rectangular mouse tracking target area, within the graphics context for this control. More...
 
void SetTargetAndDrawRECTs (const IRECT &bounds)
 Set BOTH the draw rect and the target area, within the graphics context for this control. More...
 
virtual void SetPosition (float x, float y)
 Set the position of the control, preserving the width and height. More...
 
virtual void SetSize (float w, float h)
 Set the size of the control, preserving the current position. More...
 
void SetPTParameterHighlight (bool isHighlighted, int color)
 Used internally by the AAX wrapper view interface to set the control parmeter highlight. More...
 
bool GetMouseDblAsSingleClick () const
 Get double click as single click By default, mouse double click has its own handler. More...
 
virtual void Hide (bool hide)
 Shows or hides the IControl. More...
 
bool IsHidden () const
 
virtual void SetDisabled (bool disable)
 Sets disabled mode for the control, the default implementation modifies the mBlend member. More...
 
bool IsDisabled () const
 
void SetMouseOverWhenDisabled (bool allow)
 Specify whether the control should respond to mouse overs when disabled. More...
 
void SetMouseEventsWhenDisabled (bool allow)
 Specify whether the control should respond to other mouse events when disabled. More...
 
bool GetMouseOverWhenDisabled () const
 
bool GetMouseEventsWhenDisabled () const
 
bool GetIgnoreMouse () const
 
virtual void SetIgnoreMouse (bool ignore)
 Specify whether the control should respond to mouse events. More...
 
bool GetPromptShowsParamLabel () const
 
void SetPromptShowsParamLabel (bool enable)
 Set if the control should show parameter labels/units e.g. More...
 
virtual bool IsHit (float x, float y) const
 Hit test the control. More...
 
virtual void SetDirty (bool triggerAction=true, int valIdx=kNoValIdx)
 Mark the control as dirty, i.e. More...
 
virtual void SetClean ()
 
void Animate ()
 
virtual bool IsDirty ()
 Called at each display refresh by the IGraphics draw loop, after IControl::Animate(), to determine if the control is marked as dirty. More...
 
void DisablePrompt (bool disable)
 Disable/enable default prompt for user input. More...
 
virtual void OnGUIIdle ()
 This is an idle timer tick call on the GUI thread, only active if USE_IDLE_CALLS is defined. More...
 
int GetTag () const
 Get the control's tag. More...
 
void SetWantsMidi (bool enable=true)
 Specify whether this control wants to know about MIDI messages sent to the UI. More...
 
bool GetWantsMidi () const
 
void SetWantsMultiTouch (bool enable=true)
 Specify whether this control supports multiple touches. More...
 
bool GetWantsMultiTouch () const
 
IControlAttachGestureRecognizer (EGestureType type, IGestureFunc func)
 Add a IGestureFunc that should be triggered in response to a certain type of gesture. More...
 
virtual bool GetWantsGestures () const
 
EGestureType GetLastGesture () const
 
IGEditorDelegateGetDelegate ()
 Gets a pointer to the class implementing the IEditorDelegate interface that handles parameter changes from this IGraphics instance. More...
 
void SetDelegate (IGEditorDelegate &dlg)
 Used internally to set the mDelegate (and mGraphics) variables. More...
 
IContainerBaseGetParent () const
 
void SetParent (IContainerBase *pParent)
 
IGraphicsGetUI ()
 
const IGraphicsGetUI () const
 
bool GetMouseIsOver () const
 This can be used in IControl::Draw() to check if the mouse is over the control, without implementing mouse over methods. More...
 
virtual void SnapToMouse (float x, float y, EDirection direction, const IRECT &bounds, int valIdx=-1, double minClip=0., double maxClip=1.)
 Set control value based on x, y position within a rectangle. More...
 
virtual void OnEndAnimation ()
 
void StartAnimation (int duration)
 
void SetAnimation (IAnimationFunction func)
 Set the animation function. More...
 
void SetAnimation (IAnimationFunction func, int duration)
 Set the animation function and starts it. More...
 
IAnimationFunction GetAnimationFunction ()
 Get the control's animation function, if it exists. More...
 
IActionFunction GetActionFunction ()
 Get the control's action function, if it exists. More...
 
double GetAnimationProgress () const
 Get the progress in a control's animation, in the range 0-1. More...
 
Milliseconds GetAnimationDuration () const
 Get the duration of animations applied to the control. More...
 
template<class T >
T * As ()
 Helper function to dynamic cast an IControl to a subclass. More...
 
- Public Member Functions inherited from IVectorBase
 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

IActionFunction mIncrementFunc = [this](IControl* pCaller) { mRealValue += mLargeIncrement; OnValueChanged(); }
 
IActionFunction mDecrementFunc = [this](IControl* pCaller) { mRealValue -= mLargeIncrement; OnValueChanged(); }
 
IVLabelControlmTextReadout = nullptr
 
IVButtonControlmIncButton = nullptr
 
IVButtonControlmDecButton = nullptr
 
WDL_String mFmtStr
 
double mLargeIncrement = 1.f
 
double mSmallIncrement = 0.1f
 
double mMinValue
 
double mMaxValue
 
double mRealValue = 0.f
 
bool mHideCursorOnDrag = true
 
bool mButtons = false
 
bool mDrawTriangle = true
 
bool mMouseIsDown = false
 
- Protected Attributes inherited from IContainerBase
AttachFunc mAttachFunc = nullptr
 
ResizeFunc mResizeFunc = nullptr
 
WDL_PtrList< IControlmChildren
 
- Protected Attributes inherited from IControl
IRECT mRECT
 
IRECT mTargetRECT
 
WDL_String mGroup
 Controls can be grouped for hiding and showing panels. More...
 
IText mText
 
IBlend mBlend
 
int mTextEntryLength = DEFAULT_TEXT_ENTRY_LEN
 
bool mDirty = true
 
bool mHide = false
 
bool mDisabled = false
 
bool mDisablePrompt = true
 
bool mDblAsSingleClick = false
 
bool mMouseOverWhenDisabled = false
 
bool mMouseEventsWhenDisabled = false
 
bool mIgnoreMouse = false
 
bool mWantsMidi = false
 
bool mWantsMultiTouch = false
 
bool mPromptShowsParamLabel = false
 
bool mMouseIsOver = false
 if mGraphics::mHandleMouseOver = true, this will be true when the mouse is over control. More...
 
WDL_String mTooltip
 
IColor mPTHighlightColor = COLOR_RED
 
bool mPTisHighlighted = false
 
- Protected Attributes inherited from IVectorBase
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
 

Additional Inherited Members

- Public Types inherited from IContainerBase
using AttachFunc = std::function< void(IContainerBase *pContainer, const IRECT &bounds)>
 
using ResizeFunc = std::function< void(IContainerBase *pContainer, const IRECT &bounds)>
 
- Protected Member Functions inherited from IControl
template<typename T , typename... Args>
void ForValIdx (int valIdx, T func, Args... args)
 A helper template function to call a method for an individual value, or for all values. More...
 
void SetNVals (int nVals)
 

Detailed Description

A "meta control" for a number box with an Inc/Dec button It adds several child buttons if buttons = true.

Definition at line 26 of file IVNumberBoxControl.h.

Constructor & Destructor Documentation

◆ IVNumberBoxControl()

IVNumberBoxControl::IVNumberBoxControl ( const IRECT bounds,
int  paramIdx = kNoParameter,
IActionFunction  actionFunc = nullptr,
const char *  label = "",
const IVStyle style = DEFAULT_STYLE,
bool  buttons = false,
double  defaultValue = 50.f,
double  minValue = 1.f,
double  maxValue = 100.f,
const char *  fmtStr = "%0.0f",
bool  drawTriangle = true 
)
inline

Definition at line 30 of file IVNumberBoxControl.h.

Member Function Documentation

◆ Draw()

void IVNumberBoxControl::Draw ( IGraphics g)
inlineoverridevirtual

Draw the control to the graphics context.

Parameters
gThe graphics context to which this control belongs.

Reimplemented from IContainerBase.

Definition at line 58 of file IVNumberBoxControl.h.

References IVectorBase::DrawLabel(), IGraphics::FillRect(), IGraphics::FillTriangle(), IVectorBase::GetColor(), IRECT::GetPadded(), IControl::GetRECT(), and IControl::mMouseIsOver.

◆ GetRealValue()

double IVNumberBoxControl::GetRealValue ( ) const
inline

Definition at line 223 of file IVNumberBoxControl.h.

◆ IsFineControl()

bool IVNumberBoxControl::IsFineControl ( const IMouseMod mod,
bool  wheel 
) const
inline

Definition at line 198 of file IVNumberBoxControl.h.

◆ OnAttached()

void IVNumberBoxControl::OnAttached ( )
inlineoverridevirtual

Called after the control has been attached, and its delegate and graphics member variable set.

Use this method for controls that might need to attach sub controls that should be above their parent in the stack

Reimplemented from IContainerBase.

Definition at line 97 of file IVNumberBoxControl.h.

References IRECT::FracRectVertical(), IRECT::GetPadded(), IRECT::Pad(), IRECT::ReduceFromLeft(), IControl::SetAnimationEndActionFunction(), ITextControl::SetStrFmt(), SplashClickActionFunc(), and IRECT::W().

◆ OnInit()

void IVNumberBoxControl::OnInit ( )
inlineoverridevirtual

Called just prior to when the control is attached, after its delegate and graphics member variable set.

Reimplemented from IControl.

Definition at line 48 of file IVNumberBoxControl.h.

References IParam::GetDefault(), IParam::GetMax(), IParam::GetMin(), and IControl::GetParam().

◆ OnMouseDblClick()

void IVNumberBoxControl::OnMouseDblClick ( float  x,
float  y,
const IMouseMod mod 
)
inlineoverridevirtual

Implement this method to respond to a mouse double click event on this control.

Parameters
xThe X coordinate of the mouse event
yThe Y coordinate of the mouse event
modA struct indicating which modifier keys are held for the event

Reimplemented from IControl.

Definition at line 144 of file IVNumberBoxControl.h.

References IRECT::Contains(), IGraphics::CreateTextEntry(), IControl::GetRECT(), ITextControl::GetStr(), IControl::GetUI(), and IControl::IsDisabled().

◆ OnMouseDown()

void IVNumberBoxControl::OnMouseDown ( float  x,
float  y,
const IMouseMod mod 
)
inlineoverridevirtual

Implement this method to respond to a mouse down event on this control.

Parameters
xThe X coordinate of the mouse event
yThe Y coordinate of the mouse event
modA struct indicating which modifier keys are held for the event

Reimplemented from IControl.

Definition at line 113 of file IVNumberBoxControl.h.

References IEditorDelegate::BeginInformHostOfParamChangeFromUI(), IControl::GetDelegate(), IControl::GetParam(), IControl::GetParamIdx(), IControl::GetUI(), and IGraphics::HideMouseCursor().

◆ OnMouseDrag()

void IVNumberBoxControl::OnMouseDrag ( float  x,
float  y,
float  dX,
float  dY,
const IMouseMod mod 
)
inlineoverridevirtual

Implement this method to respond to a mouse drag event on this control.

Parameters
xThe X coordinate of the mouse event
yThe Y coordinate of the mouse event
dXThe X delta (difference) since the last event
dYThe Y delta (difference) since the last event
modA struct indicating which modifier keys are held for the event

Reimplemented from IControl.

Definition at line 137 of file IVNumberBoxControl.h.

◆ OnMouseUp()

void IVNumberBoxControl::OnMouseUp ( float  x,
float  y,
const IMouseMod mod 
)
inlineoverridevirtual

Implement this method to respond to a mouse up event on this control.

Parameters
xThe X coordinate of the mouse event
yThe Y coordinate of the mouse event
modA struct indicating which modifier keys are held for the event

Reimplemented from IControl.

Definition at line 124 of file IVNumberBoxControl.h.

References IEditorDelegate::EndInformHostOfParamChangeFromUI(), IControl::GetDelegate(), IControl::GetParam(), IControl::GetParamIdx(), IControl::GetUI(), IGraphics::HideMouseCursor(), and IControl::SetDirty().

◆ OnMouseWheel()

void IVNumberBoxControl::OnMouseWheel ( float  x,
float  y,
const IMouseMod mod,
float  d 
)
inlineoverridevirtual

Implement this method to respond to a mouse wheel event on this control.

Parameters
xThe X coordinate of the mouse event
yThe Y coordinate of the mouse event
modA struct indicating which modifier keys are held for the event
dThe delta value (difference) since the last mouse wheel event

Reimplemented from IControl.

Definition at line 156 of file IVNumberBoxControl.h.

◆ OnResize()

void IVNumberBoxControl::OnResize ( )
inlineoverridevirtual

Called when IControl is constructed or resized using SetRect().

NOTE: if you call SetDirty() in this method, you should call SetDirty(false) to avoid triggering parameter changes

Reimplemented from IContainerBase.

Definition at line 76 of file IVNumberBoxControl.h.

References IRECT::FracRectVertical(), IRECT::GetPadded(), IControl::GetRECT(), IVectorBase::MakeRects(), IRECT::Pad(), IRECT::ReduceFromLeft(), IControl::SetTargetAndDrawRECTs(), IControl::SetTargetRECT(), and IRECT::W().

◆ OnTextEntryCompletion()

void IVNumberBoxControl::OnTextEntryCompletion ( const char *  str,
int  valIdx 
)
inlineoverridevirtual

Implement this method to handle text input after IGraphics::CreateTextEntry/IControlPromptUserInput.

Parameters
strA CString with the inputted text
valIdxAn index that indicates which of the control's values the text completion relates to

Reimplemented from IControl.

Definition at line 150 of file IVNumberBoxControl.h.

◆ OnValueChanged()

void IVNumberBoxControl::OnValueChanged ( bool  preventAction = false)
inline

Definition at line 211 of file IVNumberBoxControl.h.

◆ SetDrawTriangle()

void IVNumberBoxControl::SetDrawTriangle ( bool  draw)
inline

Definition at line 225 of file IVNumberBoxControl.h.

◆ SetStyle()

void IVNumberBoxControl::SetStyle ( const IVStyle style)
inlineoverridevirtual

Set the Style of this IVControl.

Parameters
style

Reimplemented from IVectorBase.

Definition at line 186 of file IVNumberBoxControl.h.

References IVectorBase::SetStyle().

◆ SetValueFromDelegate()

void IVNumberBoxControl::SetValueFromDelegate ( double  value,
int  valIdx = 0 
)
inlineoverridevirtual

Set the control's value from the delegate This method is called from the class implementing the IEditorDelegate interface in order to update a control's value members and set it to be marked dirty for redraw.

Parameters
valueNormalised incoming value
valIdxThe index of the value to set, which should be between 0 and NVals()

Reimplemented from IControl.

Definition at line 164 of file IVNumberBoxControl.h.

References IParam::FromNormalized(), IControl::GetParam(), and IControl::SetValueFromDelegate().

◆ SetValueFromUserInput()

void IVNumberBoxControl::SetValueFromUserInput ( double  value,
int  valIdx = 0 
)
inlineoverridevirtual

Set the control's value after user input.

This method is called after a text entry or popup menu prompt triggered by PromptUserInput(), calling SetDirty(true), which will mean that the new value gets sent back to the delegate

Parameters
valuethe normalised value after user input via text entry or pop-up menu
valIdxAn index to choose which of the control's linked parameters to retrieve. NOTE: since controls usually have only 1 parameter you can omit this argument and use the default index of 0

Reimplemented from IControl.

Definition at line 175 of file IVNumberBoxControl.h.

References IParam::FromNormalized(), IControl::GetParam(), and IControl::SetValueFromUserInput().

Member Data Documentation

◆ mButtons

bool IVNumberBoxControl::mButtons = false
protected

Definition at line 241 of file IVNumberBoxControl.h.

◆ mDecButton

IVButtonControl* IVNumberBoxControl::mDecButton = nullptr
protected

Definition at line 233 of file IVNumberBoxControl.h.

◆ mDecrementFunc

IActionFunction IVNumberBoxControl::mDecrementFunc = [this](IControl* pCaller) { mRealValue -= mLargeIncrement; OnValueChanged(); }
protected

Definition at line 230 of file IVNumberBoxControl.h.

◆ mDrawTriangle

bool IVNumberBoxControl::mDrawTriangle = true
protected

Definition at line 242 of file IVNumberBoxControl.h.

◆ mFmtStr

WDL_String IVNumberBoxControl::mFmtStr
protected

Definition at line 234 of file IVNumberBoxControl.h.

◆ mHideCursorOnDrag

bool IVNumberBoxControl::mHideCursorOnDrag = true
protected

Definition at line 240 of file IVNumberBoxControl.h.

◆ mIncButton

IVButtonControl* IVNumberBoxControl::mIncButton = nullptr
protected

Definition at line 232 of file IVNumberBoxControl.h.

◆ mIncrementFunc

IActionFunction IVNumberBoxControl::mIncrementFunc = [this](IControl* pCaller) { mRealValue += mLargeIncrement; OnValueChanged(); }
protected

Definition at line 229 of file IVNumberBoxControl.h.

◆ mLargeIncrement

double IVNumberBoxControl::mLargeIncrement = 1.f
protected

Definition at line 235 of file IVNumberBoxControl.h.

◆ mMaxValue

double IVNumberBoxControl::mMaxValue
protected

Definition at line 238 of file IVNumberBoxControl.h.

◆ mMinValue

double IVNumberBoxControl::mMinValue
protected

Definition at line 237 of file IVNumberBoxControl.h.

◆ mMouseIsDown

bool IVNumberBoxControl::mMouseIsDown = false
protected

Definition at line 243 of file IVNumberBoxControl.h.

◆ mRealValue

double IVNumberBoxControl::mRealValue = 0.f
protected

Definition at line 239 of file IVNumberBoxControl.h.

◆ mSmallIncrement

double IVNumberBoxControl::mSmallIncrement = 0.1f
protected

Definition at line 236 of file IVNumberBoxControl.h.

◆ mTextReadout

IVLabelControl* IVNumberBoxControl::mTextReadout = nullptr
protected

Definition at line 231 of file IVNumberBoxControl.h.


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