VSTGUI: CControl Class Reference

VSTGUI 4.10 Graphical User Interface Framework not only for VST plugins

Classes | Public Member Functions | List of all members
CControl Class Referenceabstract

base class of all VSTGUI controls More...

`#include <ccontrol.h>`

Inheritance diagram for CControl:

## Classes
struct | Impl

## Public Member Functions
| CControl (const CRect &size, IControlListener *listener=nullptr, int32_t tag=0, CBitmap *pBackground=nullptr)
| CControl (const CControl &c)
Value Methods
virtual void | setValue (float val)
virtual float | getValue () const
virtual void | setValueNormalized (float val)
virtual float | getValueNormalized () const
virtual void | setMin (float val)
virtual float | getMin () const
virtual void | setMax (float val)
virtual float | getMax () const
float | getRange () const
virtual void | setOldValue (float val)
virtual float | getOldValue () const
virtual void | setDefaultValue (float val)
virtual float | getDefaultValue () const
virtual void | bounceValue ()
virtual void | valueChanged ()
| notifies listener and dependent objects More...
Editing Methods
virtual void | setTag (int32_t val)
virtual int32_t | getTag () const
virtual void | beginEdit ()
virtual void | endEdit ()
bool | isEditing () const
virtual IControlListener * | getListener () const
| get main listener More...
virtual void | setListener (IControlListener *l)
| set main listener More...
void | registerControlListener (IControlListener *listener)
| register a sub listener More...
void | unregisterControlListener (IControlListener *listener)
| unregister a sub listener More...
Public Member Functions inherited from CView
| CView (const CRect &size)
| CView (const CView &view)
virtual void | dispatchEvent (Event &event)
| dispatch an event More...
virtual void | onMouseDownEvent (MouseDownEvent &event)
| called when a mouse down event occurs More...
virtual void | onMouseMoveEvent (MouseMoveEvent &event)
| called when a mouse move event occurs More...
virtual void | onMouseUpEvent (MouseUpEvent &event)
| called when a mouse up event occurs More...
virtual void | onMouseCancelEvent (MouseCancelEvent &event)
| called when mouse tracking should be canceled More...
virtual void | onMouseEnterEvent (MouseEnterEvent &event)
| called when the mouse enters this view More...
virtual void | onMouseExitEvent (MouseExitEvent &event)
| called when the mouse leaves this view More...
virtual void | onMouseWheelEvent (MouseWheelEvent &event)
| called when a mouse wheel event occurs More...
virtual void | onZoomGestureEvent (ZoomGestureEvent &event)
| called when a zoom gesture event occurs More...
virtual void | setMouseEnabled (bool bEnable=true)
| turn on/off mouse usage for this view More...
bool | getMouseEnabled () const
| get the state of wheather this view uses the mouse or not More...
virtual void | setMouseableArea (const CRect &rect)
| set the area in which the view reacts to the mouse More...
CRect | getMouseableArea () const
| get the area in which the view reacts to the mouse More...
virtual CMouseEventResult | onMouseDown (CPoint &where, const CButtonState &buttons)
| do not use any longer. More...
virtual CMouseEventResult | onMouseUp (CPoint &where, const CButtonState &buttons)
| do not use any longer. More...
virtual CMouseEventResult | onMouseMoved (CPoint &where, const CButtonState &buttons)
| do not use any longer. More...
virtual CMouseEventResult | onMouseCancel ()
| do not use any longer. More...
virtual CMouseEventResult | onMouseEntered (CPoint &where, const CButtonState &buttons)
| do not use any longer. More...
virtual CMouseEventResult | onMouseExited (CPoint &where, const CButtonState &buttons)
| do not use any longer. More...
virtual bool | onWheel (const CPoint &where, const float &distance, const CButtonState &buttons) final
virtual bool | onWheel (const CPoint &where, const CMouseWheelAxis &axis, const float &distance, const CButtonState &buttons)
CRect & | getMouseableArea (CRect &rect) const
| get the area in which the view reacts to the mouse More...
void | setHitTestPath (CGraphicsPath *path)
virtual bool | hitTest (const CPoint &where, const Event &event=noEvent())
| check if where hits this view More...
virtual bool | hitTest (const CPoint &where, const CButtonState &buttons)
bool | doDrag (const DragDescription &dragDescription, const SharedPointer< IDragCallback > &callback={})
| start a drag operation More...
virtual SharedPointer< IDropTarget > | getDropTarget ()
| get the drag target for drag and drop handling More...
void | setDropTarget (const SharedPointer< IDropTarget > &dt)
| set a custom drop target More...
DragResult | doDrag (IDataPackage *source, const CPoint &offset=CPoint(0, 0), CBitmap *dragBitmap=nullptr)
| a drag can only be started from within onMouseDown More...
virtual void | onKeyboardEvent (KeyboardEvent &event)
| called when a keyboard event is dispatched to this view More...
virtual int32_t | onKeyDown (VstKeyCode &keyCode)
| called if a key down event occurs and this view has focus More...
virtual int32_t | onKeyUp (VstKeyCode &keyCode)
| called if a key up event occurs and this view has focus More...
CCoord | getHeight () const
| get the height of the view More...
CCoord | getWidth () const
| get the width of the view More...
virtual void | setViewSize (const CRect &rect, bool invalid=true)
| set views size More...
const CRect & | getViewSize () const
| read only access to view size More...
virtual CRect | getVisibleViewSize () const
| returns the visible size of the view More...
virtual void | parentSizeChanged ()
| notification that one of the views parent has changed its size More...
virtual CPoint & | frameToLocal (CPoint &point) const
| conversion from frame coordinates to local view coordinates More...
virtual CPoint & | localToFrame (CPoint &point) const
| conversion from local view coordinates to frame coordinates More...
virtual void | setAutosizeFlags (int32_t flags)
| set autosize flags More...
int32_t | getAutosizeFlags () const
| get autosize flags More...
virtual bool | sizeToFit ()
| resize view to optimal size More...
virtual void | looseFocus ()
| called if view should loose focus More...
virtual void | takeFocus ()
| called if view should take focus More...
virtual bool | wantsFocus () const
| check if view supports focus More...
virtual void | setWantsFocus (bool state)
| set focus support on/off More...
bool | getAttributeSize (const CViewAttributeID id, uint32_t &outSize) const
| get the size of an attribute More...
bool | getAttribute (const CViewAttributeID id, const uint32_t inSize, void *outData, uint32_t &outSize) const
| get an attribute More...
bool | setAttribute (const CViewAttributeID id, const uint32_t inSize, const void *inData)
| set an attribute More...
bool | removeAttribute (const CViewAttributeID id)
| remove an attribute More...
template<typename T >
bool | setAttribute (const CViewAttributeID id, const T &data)
| set an attribute More...
template<typename T >
bool | getAttribute (const CViewAttributeID id, T &data) const
| get an attribute More...
virtual void | setBackground (CBitmap *background)
| set the background image of this view More...
CBitmap * | getBackground () const
| get the background image of this view More...
virtual void | setDisabledBackground (CBitmap *background)
| set background image used when the mouse is not enabled More...
CBitmap * | getDisabledBackground () const
| get background image used when the mouse is not enabled More...
CBitmap * | getDrawBackground () const
| get the bitmap which is drawn depending on the enabled state. More...
virtual void | setTransparency (bool val)
| set views transparent state More...
bool | getTransparency () const
| get views transparent state More...
virtual void | setAlphaValue (float alpha)
| set alpha value which will be applied when drawing this view More...
float | getAlphaValue () const
| get alpha value More...
virtual bool | removed (CView *parent)
| view is removed from parent view More...
virtual bool | attached (CView *parent)
| view is attached to a parent view More...
bool | isAttached () const
| is view attached to a parentView More...
void | setSubviewState (bool state)
bool | isSubview () const
CView * | getParentView () const
| get parent view More...
CFrame * | getFrame () const
| get frame More...
virtual VSTGUIEditorInterface * | getEditor () const
| get editor More...
void | addAnimation (IdStringPtr name, Animation::IAnimationTarget *target, Animation::ITimingFunction *timingFunction, CBaseObject *notificationObject)
void | addAnimation (IdStringPtr name, Animation::IAnimationTarget *target, Animation::ITimingFunction *timingFunction, const Animation::DoneFunction &doneFunc=nullptr, bool callDoneOnCancel=false)
void | removeAnimation (IdStringPtr name)
void | removeAllAnimations ()
void | registerViewListener (IViewListener *listener)
void | unregisterViewListener (IViewListener *listener)
void | registerViewEventListener (IViewEventListener *listener)
void | unregisterViewEventListener (IViewEventListener *listener)
void | registerViewMouseListener (IViewMouseListener *listener)
void | unregisterViewMouseListener (IViewMouseListener *listener)
CGraphicsTransform | getGlobalTransform (bool ignoreFrame=false) const
| get the active global transform for this view More...
template<typename T >
T & | translateToGlobal (T &t, bool ignoreFrame=false) const
| translates a local coordinate to a global one using parent transforms More...
template<typename T >
T | translateToGlobal (const T &t, bool ignoreFrame=false) const
| translates a local coordinate to a global one using parent transforms More...
template<typename T >
T & | translateToLocal (T &t, bool ignoreFrame=false) const
| translates a global coordinate to a local one using parent transforms More...
template<typename T >
T | translateToLocal (const T &t, bool ignoreFrame=false) const
| translates a local coordinate to a global one using parent transforms More...
virtual CViewContainer * | asViewContainer ()
virtual const CViewContainer * | asViewContainer () const
CMouseEventResult | callMouseListener (MouseListenerCall type, CPoint pos, CButtonState buttons)
void | callMouseListenerEnteredExited (bool mouseEntered)
CMessageResult | notify (CBaseObject *sender, IdStringPtr message) override
void | beforeDelete () override
CBaseObject * | newCopy () const override
virtual void | drawRect (CDrawContext *pContext, const CRect &updateRect)
| called if the view should draw itself More...
virtual bool | checkUpdate (const CRect &updateRect) const
virtual void | invalidRect (const CRect &rect)
| mark rect as invalid More...
virtual void | invalid ()
| mark whole view as invalid More...
virtual void | setVisible (bool state)
| set visibility state More...
bool | isVisible () const
| get visibility state More...
virtual void | onIdle ()
| called on idle when view wants idle More...
void | setWantsIdle (bool state)
| enable/disable onIdle() callback More...
bool | wantsIdle () const
| returns if the view wants idle callback or not More...
virtual bool | wantsWindowActiveStateChangeNotification () const
| whether this view wants to be informed if the window's active state changes More...
virtual void | onWindowActivate (bool state)
| called when the active state of the window changes More...
void | setTooltipText (UTF8StringPtr text)
Public Member Functions inherited from CBaseObject
| CBaseObject ()=default
| ~CBaseObject () noexcept override=default
| CBaseObject (const CBaseObject &)
CBaseObject & | operator= (const CBaseObject &)
Public Member Functions inherited from ReferenceCounted< T >
| ReferenceCounted ()=default
virtual | ~ReferenceCounted () noexcept=default
| ReferenceCounted (const ReferenceCounted &)
ReferenceCounted & | operator= (const ReferenceCounted &)
void | forget () override
| decrease refcount and delete object if refcount == 0 More...
void | remember () override
| increase refcount More...
virtual int32_t | getNbReference () const
| get refcount More...
virtual void | forget ()=0
| decrease refcount and delete object if refcount == 0 More...
virtual void | remember ()=0
| increase refcount More...
Public Member Functions inherited from IFocusDrawing
virtual | ~IFocusDrawing () noexcept=default
virtual bool | drawFocusOnTop ()=0
| draw focus before view will be drawn or afterwards More...
virtual bool | getFocusPath (CGraphicsPath &outPath)=0
| the graphics path will be drawn filled with the evenodd method and the color set in CFrame::setFocusColor() More...

## Misc
using | CheckDefaultValueEventFuncT = bool(*)(CControl *, MouseDownEvent &)
using | CheckDefaultValueFuncT = bool(*)(CControl *, CButtonState)
static CheckDefaultValueEventFuncT | CheckDefaultValueEventFunc
| Function to check if a mouse down event should reset the value to its default value for a control. More...
static int32_t | kZoomModifier = kShift
| zoom modifier key, per default is the shift key More...
static int32_t | kDefaultValueModifier = kControl
static CheckDefaultValueFuncT | CheckDefaultValueFunc
IControlListener * | listener
int32_t | tag
float | value
virtual void | setWheelInc (float val)
virtual float | getWheelInc () const
void | draw (CDrawContext *pContext) override=0
| called if the view should draw itself More...
bool | isDirty () const override
| check if view is dirty More...
void | setDirty (bool val=true) override
| set the view to dirty so that it is redrawn in the next idle. More...
bool | drawFocusOnTop () override
| draw focus before view will be drawn or afterwards More...
bool | getFocusPath (CGraphicsPath &outPath) override
| the graphics path will be drawn filled with the evenodd method and the color set in CFrame::setFocusColor() More...
CBaseObject * | newCopy () const override=0
| ~CControl () noexcept override
static int32_t | mapVstKeyModifier (int32_t vstModifier)

## Additional Inherited Members
Public Types inherited from CView
enum class | MouseListenerCall { MouseDown , MouseMoved , MouseUp , MouseCancel }
Static Public Attributes inherited from CView
static bool | kDirtyCallAlwaysOnMainThread = false
| if this is true, setting a view dirty will call invalid() instead of checking it in idle. More...
static uint32_t | idleRate = 30
| global idle rate in Hz, defaults to 30 Hz More...
Protected Types inherited from CView
enum | { kMouseEnabled = 1 << 0 , kTransparencyEnabled = 1 << 1 , kWantsFocus = 1 << 2 , kIsAttached = 1 << 3 , kVisible = 1 << 4 , kDirty = 1 << 5 , kWantsIdle = 1 << 6 , kIsSubview = 1 << 7 , kHasAlpha = 1 << 8 , kHasBackground = 1 << 9 , kHasDisabledBackground = 1 << 10 , kHasMouseableArea = 1 << 11 , kLastCViewFlag = 11 }
Protected Member Functions inherited from CView
| ~CView () noexcept override
CGraphicsPath * | getHitTestPath () const
bool | hasViewFlag (int32_t bit) const
void | setViewFlag (int32_t bit, bool state)
void | setAlphaValueNoInvalidate (float value)
void | setParentFrame (CFrame *frame)
void | setParentView (CView *parent)

## Detailed Description

base class of all VSTGUI controls

This object manages the tag identification and the value of a control object.

## Member Typedef Documentation

## ◆ CheckDefaultValueEventFuncT

using CheckDefaultValueEventFuncT = bool (*) (CControl*, MouseDownEvent&)

## ◆ CheckDefaultValueFuncT

using CheckDefaultValueFuncT = bool (*) (CControl*, CButtonState)

## Constructor & Destructor Documentation

## ◆ CControl() [1/2]

CControl | ( | const CRect & | size,
|  | IControlListener * | listener = `nullptr`,
|  | int32_t | tag = `0`,
|  | CBitmap * | pBackground = `nullptr`
| ) |  |

## ◆ CControl() [2/2]

CControl | ( | const CControl & | c | ) |

## ◆ ~CControl()

~CControl | ( |  | ) |
| overrideprotectednoexcept

## Member Function Documentation

## ◆ beginEdit()

void beginEdit | ( |  | ) |
| virtual

## ◆ bounceValue()

void bounceValue | ( |  | ) |
| virtual

## ◆ draw()

void draw | ( | CDrawContext * | pContext | ) |
| overridepure virtual

called if the view should draw itself

Parameters

  pContext | draw context in which to draw

Reimplemented from CView.

Implemented in CAutoAnimation, COnOffButton, CKickButton, CMovieBitmap, CMovieButton, CSlider, CSpecialDigit, CSplashScreen, CAnimationSplashScreen, CSwitchBase, CRockerSwitch, CCheckBox, CTextButton, CListControl, CXYPad, CKnob, CAnimKnob, COptionMenu, CParamDisplay, CScrollbar, CSearchTextEdit, CSegmentButton, CTextEdit, CTextLabel, CVuMeter, and CControlCreatorDummyControl.

## ◆ drawFocusOnTop()

bool drawFocusOnTop | ( |  | ) |
| overridevirtual

draw focus before view will be drawn or afterwards

Implements IFocusDrawing.

Reimplemented in CKnob, CListControl, and CSegmentButton.

## ◆ endEdit()

void endEdit | ( |  | ) |
| virtual

## ◆ getDefaultValue()

float getDefaultValue | ( | void |  | ) | const
| virtual

## ◆ getFocusPath()

bool getFocusPath | ( | CGraphicsPath & | outPath | ) |
| overridevirtual

the graphics path will be drawn filled with the evenodd method and the color set in CFrame::setFocusColor()

Implements IFocusDrawing.

Reimplemented in CKnob, CListControl, CParamDisplay, and CSegmentButton.

## ◆ getListener()

virtual IControlListener * getListener | ( |  | ) | const
| inlinevirtual

get main listener

## ◆ getMax()

float getMax | ( |  | ) | const
| virtual

Reimplemented in COptionMenu.

## ◆ getMin()

float getMin | ( |  | ) | const
| virtual

Reimplemented in COptionMenu.

## ◆ getOldValue()

float getOldValue | ( | void |  | ) | const
| virtual

## ◆ getRange()

float getRange | ( |  | ) | const
| inline

## ◆ getTag()

virtual int32_t getTag | ( |  | ) | const
| inlinevirtual

## ◆ getValue()

virtual float getValue | ( |  | ) | const
| inlinevirtual

## ◆ getValueNormalized()

float getValueNormalized | ( |  | ) | const
| virtual

## ◆ getWheelInc()

float getWheelInc | ( |  | ) | const
| virtual

## ◆ isDirty()

bool isDirty | ( |  | ) | const
| overridevirtual

check if view is dirty

Reimplemented from CView.

## ◆ isEditing()

bool isEditing | ( |  | ) | const

## ◆ mapVstKeyModifier()

int32_t mapVstKeyModifier | ( | int32_t | vstModifier | ) |
| staticprotected

## ◆ newCopy()

CBaseObject * newCopy | ( |  | ) | const
| overridepure virtual

Implemented in CExternalControl, CAutoAnimation, COnOffButton, CCheckBox, CKickButton, CTextButton, CKnob, CAnimKnob, CListControl, CMovieBitmap, CMovieButton, COptionMenu, CParamDisplay, CScrollbar, CSegmentButton, CSlider, CSpecialDigit, CSplashScreen, CVerticalSwitch, CHorizontalSwitch, CRockerSwitch, CTextEdit, CTextLabel, CVuMeter, CControlCreatorDummyControl, and CKnobBase.

## ◆ registerControlListener()

void registerControlListener | ( | IControlListener * | listener | ) |

register a sub listener

## ◆ setDefaultValue()

void setDefaultValue | ( | float | val | ) |
| virtual

Reimplemented in CXYPad.

## ◆ setDirty()

void setDirty | ( | bool | val = `true` | ) |
| overridevirtual

set the view to dirty so that it is redrawn in the next idle.

Thread Safe !

Reimplemented from CView.

Reimplemented in CVuMeter.

## ◆ setListener()

virtual void setListener | ( | IControlListener * | l | ) |
| inlinevirtual

set main listener

## ◆ setMax()

void setMax | ( | float | val | ) |
| virtual

Reimplemented in CKnobBase, CListControl, COptionMenu, and CXYPad.

## ◆ setMin()

void setMin | ( | float | val | ) |
| virtual

Reimplemented in CKnobBase, CListControl, COptionMenu, and CXYPad.

## ◆ setOldValue()

void setOldValue | ( | float | val | ) |
| virtual

## ◆ setTag()

void setTag | ( | int32_t | val | ) |
| virtual

## ◆ setValue()

void setValue | ( | float | val | ) |
| virtual

Reimplemented in CExternalControl, COptionMenu, CTextEdit, and CMultiLineTextLabel.

## ◆ setValueNormalized()

void setValueNormalized | ( | float | val | ) |
| virtual

## ◆ setWheelInc()

void setWheelInc | ( | float | val | ) |
| virtual

## ◆ unregisterControlListener()

void unregisterControlListener | ( | IControlListener * | listener | ) |

unregister a sub listener

## ◆ valueChanged()

void valueChanged | ( |  | ) |
| virtual

notifies listener and dependent objects

Reimplemented in CSplashScreen, CSegmentButton, CTextEdit, and CTextLabel.

## Member Data Documentation

## ◆ CheckDefaultValueEventFunc

CControl::CheckDefaultValueEventFuncT CheckDefaultValueEventFunc
| static

Initial value:
=
[] (CControl* c, MouseDownEvent& event) {
if (event.buttonState.isLeft ())
{
return CheckDefaultValueFunc (c, buttonStateFromMouseEvent (event));
}
return false;
}
VSTGUI::CControl::CControl
CControl(const CRect &size, IControlListener *listener=nullptr, int32_t tag=0, CBitmap *pBackground=nullptr)
Definition: ccontrol.cpp:62
VSTGUI::CControl::CheckDefaultValueFunc
static CheckDefaultValueFuncT CheckDefaultValueFunc
Definition: ccontrol.h:115
VSTGUI::buttonStateFromMouseEvent
CButtonState buttonStateFromMouseEvent(const MouseEvent &event)
convert from new MouseEvent to old CButtonState
Definition: events.cpp:34

Function to check if a mouse down event should reset the value to its default value for a control.

Per default this checks for a left mouse down button and the control modifier key.

## ◆ CheckDefaultValueFunc

CControl::CheckDefaultValueFuncT CheckDefaultValueFunc
| static

Initial value:
= [] (CControl*,
CButtonState button) {
return (button.isLeftButton () && button.getModifierState () == kDefaultValueModifier);
}
VSTGUI::CControl::kDefaultValueModifier
static int32_t kDefaultValueModifier
Definition: ccontrol.h:108

Deprecated:
  Function to check if the button state is the state to set the control value to its default value. The default implementation uses the kDefaultValueModifier (see above). Use this to change this to double click per example. But consider to change this to the same behaviour as the host you are running in for best user experience.

## ◆ kDefaultValueModifier

int32_t kDefaultValueModifier = kControl
| inlinestatic

Deprecated:
  default value modifier key, per default is the control key

## ◆ kZoomModifier

int32_t kZoomModifier = kShift
| inlinestatic

zoom modifier key, per default is the shift key

## ◆ listener

IControlListener* listener
| protected

## ◆ tag

int32_t tag
| protected

## ◆ value

float value
| protected

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

- ccontrol.h
- ccontrol.cpp