VSTGUI: CKnob Class Reference

VSTGUI 4.10 Graphical User Interface Framework not only for VST plugins

Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
CKnob Class Reference
Views » Controls

a knob control More...

`#include <cknob.h>`

Inheritance diagram for CKnob:

## Public Types
enum | DrawStyle { kLegacyHandleLineDrawing = 0 , kHandleCircleDrawing = 1 << 0 , kCoronaDrawing = 1 << 1 , kCoronaFromCenter = 1 << 2 , kCoronaInverted = 1 << 3 , kCoronaLineDashDot = 1 << 4 , kCoronaOutline = 1 << 5 , kCoronaLineCapButt = 1 << 6 , kSkipHandleDrawing = 1 << 7 }
using | CheckDefaultValueEventFuncT = bool (*) (CControl*, MouseDownEvent&)
using | CheckDefaultValueFuncT = bool (*) (CControl*, CButtonState)
enum class | MouseListenerCall { MouseDown , MouseMoved , MouseUp , MouseCancel }

## Public Member Functions
| CKnob (const CRect &size, IControlListener *listener, int32_t tag, CBitmap *background, CBitmap *handle, const CPoint &offset=CPoint(0, 0), int32_t drawStyle=kLegacyHandleLineDrawing)
| CKnob constructor.
| CKnob (const CKnob &knob)
virtual void | valueToPoint (CPoint &point) const
virtual float | valueFromPoint (CPoint &point) const
virtual void | setStartAngle (float val)
virtual float | getStartAngle () const
virtual void | setRangeAngle (float val)
virtual float | getRangeAngle () const
virtual void | setZoomFactor (float val)
virtual float | getZoomFactor () const
virtual CCoord | getInsetValue () const
virtual void | setInsetValue (CCoord val)
virtual void | setKnobRange (float val)
virtual float | getKnobRange () const
void | onMouseWheelEvent (MouseWheelEvent &event) override
| called when a mouse wheel event occurs
void | onKeyboardEvent (KeyboardEvent &event) override
| called when a keyboard event is dispatched to this view
void | setViewSize (const CRect &rect, bool invalid=true) override
| set views size
bool | sizeToFit () override
| resize view to optimal size
void | setMin (float val) override
void | setMax (float val) override
CMouseEventResult | onMouseDown (CPoint &where, const CButtonState &buttons) override
| do not use any longer.
CMouseEventResult | onMouseUp (CPoint &where, const CButtonState &buttons) override
| do not use any longer.
CMouseEventResult | onMouseMoved (CPoint &where, const CButtonState &buttons) override
| do not use any longer.
CMouseEventResult | onMouseCancel () override
| do not use any longer.
Public Member Functions inherited from CControl
| CControl (const CRect &size, IControlListener *listener=nullptr, int32_t tag=0, CBitmap *pBackground=nullptr)
| CControl (const CControl &c)
virtual void | setValue (float val)
virtual float | getValue () const
virtual void | setValueNormalized (float val)
virtual float | getValueNormalized () const
virtual float | getMin () const
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
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
virtual void | setListener (IControlListener *l)
| set main listener
void | registerControlListener (IControlListener *listener)
| register a sub listener
void | unregisterControlListener (IControlListener *listener)
| unregister a sub listener
virtual void | setWheelInc (float val)
virtual float | getWheelInc () const
bool | isDirty () const override
| check if view is dirty
void | setDirty (bool val=true) override
| set the view to dirty so that it is redrawn in the next idle.
Public Member Functions inherited from CView
| CView (const CRect &size)
| CView (const CView &view)
uint64_t | getRuntimeID () const
| get the unique runtime ID
virtual void | dispatchEvent (Event &event)
| dispatch an event
virtual void | onMouseDownEvent (MouseDownEvent &event)
| called when a mouse down event occurs
virtual void | onMouseMoveEvent (MouseMoveEvent &event)
| called when a mouse move event occurs
virtual void | onMouseUpEvent (MouseUpEvent &event)
| called when a mouse up event occurs
virtual void | onMouseCancelEvent (MouseCancelEvent &event)
| called when mouse tracking should be canceled
virtual void | onMouseEnterEvent (MouseEnterEvent &event)
| called when the mouse enters this view
virtual void | onMouseExitEvent (MouseExitEvent &event)
| called when the mouse leaves this view
virtual void | onZoomGestureEvent (ZoomGestureEvent &event)
| called when a zoom gesture event occurs
virtual void | setMouseEnabled (bool bEnable=true)
| turn on/off mouse usage for this view
bool | getMouseEnabled () const
| get the state of whether this view uses the mouse or not
virtual void | setMouseableArea (const CRect &rect)
| set the area in which the view reacts to the mouse
CRect | getMouseableArea () const
| get the area in which the view reacts to the mouse
virtual CMouseEventResult | onMouseEntered (CPoint &where, const CButtonState &buttons)
| do not use any longer.
virtual CMouseEventResult | onMouseExited (CPoint &where, const CButtonState &buttons)
| do not use any longer.
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
void | setHitTestPath (CGraphicsPath *path)
virtual bool | hitTest (const CPoint &where, const Event &event=noEvent())
| check if where hits this view
virtual bool | hitTest (const CPoint &where, const CButtonState &buttons)
bool | doDrag (const DragDescription &dragDescription, const SharedPointer< IDragCallback > &callback={})
| start a drag operation
virtual SharedPointer< IDropTarget > | getDropTarget ()
| get the drag target for drag and drop handling
void | setDropTarget (const SharedPointer< IDropTarget > &dt)
| set a custom drop target
DragResult | doDrag (IDataPackage *source, const CPoint &offset=CPoint(0, 0), CBitmap *dragBitmap=nullptr)
| a drag can only be started from within onMouseDown
virtual int32_t | onKeyDown (VstKeyCode &keyCode)
| called if a key down event occurs and this view has focus
virtual int32_t | onKeyUp (VstKeyCode &keyCode)
| called if a key up event occurs and this view has focus
CCoord | getHeight () const
| get the height of the view
CCoord | getWidth () const
| get the width of the view
const CRect & | getViewSize () const
| read only access to view size
virtual CRect | getVisibleViewSize () const
| returns the visible size of the view
virtual void | parentSizeChanged ()
| notification that one of the views parent has changed its size
virtual CPoint & | frameToLocal (CPoint &point) const
| conversion from frame coordinates to local view coordinates
virtual CPoint & | localToFrame (CPoint &point) const
| conversion from local view coordinates to frame coordinates
virtual void | setAutosizeFlags (int32_t flags)
| set autosize flags
int32_t | getAutosizeFlags () const
| get autosize flags
virtual void | looseFocus ()
| called if view should loose focus
virtual void | takeFocus ()
| called if view should take focus
virtual bool | wantsFocus () const
| check if view supports focus
virtual void | setWantsFocus (bool state)
| set focus support on/off
bool | getAttributeSize (const CViewAttributeID id, uint32_t &outSize) const
| get the size of an attribute
bool | getAttribute (const CViewAttributeID id, const uint32_t inSize, void *outData, uint32_t &outSize) const
| get an attribute
bool | setAttribute (const CViewAttributeID id, const uint32_t inSize, const void *inData)
| set an attribute
bool | removeAttribute (const CViewAttributeID id)
| remove an attribute
template<typename T>
bool | setAttribute (const CViewAttributeID id, const T &data)
| set an attribute
template<typename T>
bool | getAttribute (const CViewAttributeID id, T &data) const
| get an attribute
virtual void | setBackground (CBitmap *background)
| set the background image of this view
CBitmap * | getBackground () const
| get the background image of this view
virtual void | setDisabledBackground (CBitmap *background)
| set background image used when the mouse is not enabled
CBitmap * | getDisabledBackground () const
| get background image used when the mouse is not enabled
CBitmap * | getDrawBackground () const
| get the bitmap which is drawn depending on the enabled state.
virtual void | setTransparency (bool val)
| set views transparent state
bool | getTransparency () const
| get views transparent state
virtual void | setAlphaValue (float alpha)
| set alpha value which will be applied when drawing this view
float | getAlphaValue () const
| get alpha value
virtual bool | removed (CView *parent)
| view is removed from parent view
virtual bool | attached (CView *parent)
| view is attached to a parent view
bool | isAttached () const
| is view attached to a parentView
void | setSubviewState (bool state)
bool | isSubview () const
CView * | getParentView () const
| get parent view
CFrame * | getFrame () const
| get frame
virtual VSTGUIEditorInterface * | getEditor () const
| get editor
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
template<typename T>
T & | translateToGlobal (T &t, bool ignoreFrame=false) const
| translates a local coordinate to a global one using parent transforms
template<typename T>
T | translateToGlobal (const T &t, bool ignoreFrame=false) const
| translates a local coordinate to a global one using parent transforms
template<typename T>
T & | translateToLocal (T &t, bool ignoreFrame=false) const
| translates a global coordinate to a local one using parent transforms
template<typename T>
T | translateToLocal (const T &t, bool ignoreFrame=false) const
| translates a local coordinate to a global one using parent transforms
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
virtual bool | checkUpdate (const CRect &updateRect) const
virtual void | invalidRect (const CRect &rect)
| mark rect as invalid
virtual void | invalid ()
| mark whole view as invalid
virtual void | setVisible (bool state)
| set visibility state
bool | isVisible () const
| get visibility state
virtual void | onIdle ()
| called on idle when view wants idle
void | setWantsIdle (bool state)
| enable/disable onIdle() callback
bool | wantsIdle () const
| returns if the view wants idle callback or not
virtual bool | wantsWindowActiveStateChangeNotification () const
| whether this view wants to be informed if the window's active state changes
virtual void | onWindowActivate (bool state)
| called when the active state of the window changes
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< int32_t >
| ReferenceCounted ()=default
virtual | ~ReferenceCounted () noexcept=default
| ReferenceCounted (const ReferenceCounted &)
ReferenceCounted & | operator= (const ReferenceCounted &)
| ReferenceCounted ()=default
| ReferenceCounted (const ReferenceCounted &)
virtual | ~ReferenceCounted () noexcept=default
ReferenceCounted & | operator= (const ReferenceCounted &)
void | forget () override
| decrease refcount and delete object if refcount == 0
void | remember () override
| increase refcount
virtual int32_t | getNbReference () const
| get refcount
void | forget () override
| decrease refcount and delete object if refcount == 0
void | remember () override
| increase refcount
virtual int32_t | getNbReference () const
| get refcount
Public Member Functions inherited from IFocusDrawing
virtual | ~IFocusDrawing () noexcept=default

## CKnob Methods
CPoint | offset
int32_t | drawStyle
CColor | colorHandle
CColor | colorShadowHandle
CColor | coronaColor
CCoord | handleLineWidth
CCoord | coronaInset
CCoord | coronaOutlineWidthAdd
CLineStyle | coronaLineStyle
CBitmap * | pHandle
int32_t | getDrawStyle () const
virtual void | setDrawStyle (int32_t style)
CColor | getCoronaColor () const
virtual void | setCoronaColor (CColor color)
CCoord | getCoronaInset () const
virtual void | setCoronaInset (CCoord inset)
CColor | getColorShadowHandle () const
virtual void | setColorShadowHandle (CColor color)
CColor | getColorHandle () const
virtual void | setColorHandle (CColor color)
CCoord | getHandleLineWidth () const
virtual void | setHandleLineWidth (CCoord width)
CCoord | getCoronaOutlineWidthAdd () const
virtual void | setCoronaOutlineWidthAdd (CCoord width)
const CLineStyle::CoordVector & | getCoronaDashDotLengths () const
virtual void | setCoronaDashDotLengths (const CLineStyle::CoordVector &lengths)
CBitmap * | getHandleBitmap () const
void | setHandleBitmap (CBitmap *bitmap)
void | draw (CDrawContext *pContext) override
| called if the view should draw itself
bool | getFocusPath (CGraphicsPath &outPath) override
| the graphics path will be drawn filled with the evenodd method and the color set in CFrame::setFocusColor()
bool | drawFocusOnTop () override
| draw focus before view will be drawn or afterwards
CBaseObject * | newCopy () const override
| ~CKnob () noexcept override
virtual void | drawHandle (CDrawContext *pContext)
virtual void | drawCoronaOutline (CDrawContext *pContext) const
virtual void | drawCorona (CDrawContext *pContext) const
virtual void | drawHandleAsCircle (CDrawContext *pContext) const
virtual void | drawHandleAsLine (CDrawContext *pContext) const
static void | addArc (CGraphicsPath *path, const CRect &r, double startAngle, double sweepAngle)

## Additional Inherited Members
static CheckDefaultValueEventFuncT | CheckDefaultValueEventFunc
| Function to check if a mouse down event should reset the value to its default value for a control.
static int32_t | kZoomModifier = kShift
| zoom modifier key, per default is the shift key
static int32_t | kDefaultValueModifier = kControl
static CheckDefaultValueFuncT | CheckDefaultValueFunc
static bool | kDirtyCallAlwaysOnMainThread = false
| if this is true, setting a view dirty will call invalid() instead of checking it in idle.
static uint32_t | idleRate = 30
| global idle rate in Hz, defaults to 30 Hz
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 }
| CKnobBase (const CRect &size, IControlListener *listener, int32_t tag, CBitmap *background)
| CKnobBase (const CKnobBase &knob)
void | compute ()
| ~CControl () noexcept override
| ~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)
Protected Member Functions inherited from CMouseWheelEditingSupport
void | invalidMouseWheelEditTimer (CControl *control)
void | onMouseWheelEditing (CControl *control)
static int32_t | mapVstKeyModifier (int32_t vstModifier)
float | startAngle
float | rangeAngle
float | zoomFactor
float | knobRange
CCoord | inset
IControlListener * | listener
int32_t | tag
float | value

## Detailed Description

a knob control

Define a knob with a given background and foreground handle. The handle describes a circle over the background (between -45deg and +225deg). By clicking alt modifier and left mouse button the default value is used. By clicking alt modifier and left mouse button the value changes with a vertical move (version 2.1)

## Member Enumeration Documentation

## ◆ DrawStyle

enum DrawStyle

Enumerator
kLegacyHandleLineDrawing |
kHandleCircleDrawing |
kCoronaDrawing |
kCoronaFromCenter |
kCoronaInverted |
kCoronaLineDashDot |
kCoronaOutline |
kCoronaLineCapButt |
kSkipHandleDrawing |

## Constructor & Destructor Documentation

## ◆ CKnob() [1/2]

CKnob | ( | const CRect & | size,
|  | IControlListener * | listener,
|  | int32_t | tag,
|  | CBitmap * | background,
|  | CBitmap * | handle,
|  | const CPoint & | offset = CPoint (0, 0),
|  | int32_t | drawStyle = kLegacyHandleLineDrawing )

CKnob constructor.

Parameters

  size | the size of this view
  listener | the listener
  tag | the control tag
  background | background bitmap
  handle | handle bitmap
  offset | offset of background bitmap
  drawStyle | draw style

## ◆ CKnob() [2/2]

CKnob | ( | const CKnob & | knob | ) |

## ◆ ~CKnob()

~CKnob | ( |  | ) |
| overrideprotectednoexcept

## Member Function Documentation

## ◆ addArc()

void addArc | ( | CGraphicsPath * | path,
|  | const CRect & | r,
|  | double | startAngle,
|  | double | sweepAngle )
| staticprotected

## ◆ draw()

void draw | ( | CDrawContext * | pContext | ) |
| overridevirtual

called if the view should draw itself

Parameters

  pContext | draw context in which to draw

Implements CControl.

## ◆ drawCorona()

void drawCorona | ( | CDrawContext * | pContext | ) | const
| protectedvirtual

## ◆ drawCoronaOutline()

void drawCoronaOutline | ( | CDrawContext * | pContext | ) | const
| protectedvirtual

## ◆ drawFocusOnTop()

bool drawFocusOnTop | ( |  | ) |
| overridevirtual

draw focus before view will be drawn or afterwards

Reimplemented from CControl.

## ◆ drawHandle()

void drawHandle | ( | CDrawContext * | pContext | ) |
| protectedvirtual

## ◆ drawHandleAsCircle()

void drawHandleAsCircle | ( | CDrawContext * | pContext | ) | const
| protectedvirtual

## ◆ drawHandleAsLine()

void drawHandleAsLine | ( | CDrawContext * | pContext | ) | const
| protectedvirtual

## ◆ getColorHandle()

CColor getColorHandle | ( |  | ) | const
| inline

## ◆ getColorShadowHandle()

CColor getColorShadowHandle | ( |  | ) | const
| inline

## ◆ getCoronaColor()

CColor getCoronaColor | ( |  | ) | const
| inline

## ◆ getCoronaDashDotLengths()

const CLineStyle::CoordVector & getCoronaDashDotLengths | ( |  | ) | const

## ◆ getCoronaInset()

CCoord getCoronaInset | ( |  | ) | const
| inline

## ◆ getCoronaOutlineWidthAdd()

CCoord getCoronaOutlineWidthAdd | ( |  | ) | const
| inline

## ◆ getDrawStyle()

int32_t getDrawStyle | ( |  | ) | const
| inline

## ◆ getFocusPath()

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

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

Reimplemented from CControl.

## ◆ getHandleBitmap()

CBitmap * getHandleBitmap | ( |  | ) | const
| inline

## ◆ getHandleLineWidth()

CCoord getHandleLineWidth | ( |  | ) | const
| inline

## ◆ newCopy()

CBaseObject * newCopy | ( |  | ) | const
| inlineoverridevirtual

Implements CKnobBase.

## ◆ setColorHandle()

void setColorHandle | ( | CColor | color | ) |
| virtual

## ◆ setColorShadowHandle()

void setColorShadowHandle | ( | CColor | color | ) |
| virtual

## ◆ setCoronaColor()

void setCoronaColor | ( | CColor | color | ) |
| virtual

## ◆ setCoronaDashDotLengths()

void setCoronaDashDotLengths | ( | const CLineStyle::CoordVector & | lengths | ) |
| virtual

## ◆ setCoronaInset()

void setCoronaInset | ( | CCoord | inset | ) |
| virtual

## ◆ setCoronaOutlineWidthAdd()

void setCoronaOutlineWidthAdd | ( | CCoord | width | ) |
| virtual

## ◆ setDrawStyle()

void setDrawStyle | ( | int32_t | style | ) |
| virtual

## ◆ setHandleBitmap()

void setHandleBitmap | ( | CBitmap * | bitmap | ) |

## ◆ setHandleLineWidth()

void setHandleLineWidth | ( | CCoord | width | ) |
| virtual

## Member Data Documentation

## ◆ colorHandle

CColor colorHandle
| protected

## ◆ colorShadowHandle

CColor colorShadowHandle
| protected

## ◆ coronaColor

CColor coronaColor
| protected

## ◆ coronaInset

CCoord coronaInset
| protected

## ◆ coronaLineStyle

CLineStyle coronaLineStyle
| protected

## ◆ coronaOutlineWidthAdd

CCoord coronaOutlineWidthAdd
| protected

## ◆ drawStyle

int32_t drawStyle
| protected

## ◆ handleLineWidth

CCoord handleLineWidth
| protected

## ◆ offset

CPoint offset
| protected

## ◆ pHandle

CBitmap* pHandle
| protected

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

- cknob.h
- cknob.cpp