VSTGUI  4.5
Graphical User Interface Framework not only for VST plugins
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
CKnob Class Reference

a knob control More...

+ Inheritance diagram for CKnob:

Classes

struct  MouseEditingState
 

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
}
 
- Public Types inherited from CView
enum  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. More...
 
 CKnob (const CKnob &knob)
 
void draw (CDrawContext *pContext) override
 called if the view should draw itself More...
 
bool onWheel (const CPoint &where, const float &distance, const CButtonState &buttons) override
 called if a mouse wheel event is happening over this view More...
 
int32_t onKeyDown (VstKeyCode &keyCode) override
 called if a key down event occurs and this view has focus More...
 
void setViewSize (const CRect &rect, bool invalid=true) override
 set views size More...
 
bool sizeToFit () override
 resize view to optimal size More...
 
void setMin (float val) override
 
void setMax (float val) override
 
bool getFocusPath (CGraphicsPath &outPath) override
 the graphics path will be drawn filled with the evenodd method and the color set in CFrame::setFocusColor() More...
 
bool drawFocusOnTop () override
 draw focus before view will be drawn or afterwards More...
 
CMouseEventResult onMouseDown (CPoint &where, const CButtonState &buttons) override
 called when a mouse down event occurs More...
 
CMouseEventResult onMouseUp (CPoint &where, const CButtonState &buttons) override
 called when a mouse up event occurs More...
 
CMouseEventResult onMouseMoved (CPoint &where, const CButtonState &buttons) override
 called when a mouse move event occurs More...
 
CMouseEventResult onMouseCancel () override
 called when mouse tracking should be canceled More...
 
CBaseObjectnewCopy () const override
 
CKnob Methods
virtual void setStartAngle (float val)
 
virtual float getStartAngle () const
 
virtual void setRangeAngle (float val)
 
virtual float getRangeAngle () const
 
virtual void valueToPoint (CPoint &point) const
 
virtual float valueFromPoint (CPoint &point) const
 
virtual CCoord getInsetValue () const
 
virtual void setInsetValue (CCoord val)
 
virtual int32_t getDrawStyle () const
 
virtual void setDrawStyle (int32_t style)
 
virtual CColor getCoronaColor () const
 
virtual void setCoronaColor (CColor color)
 
virtual CCoord getCoronaInset () const
 
virtual void setCoronaInset (CCoord inset)
 
virtual CColor getColorShadowHandle () const
 
virtual void setColorShadowHandle (CColor color)
 
virtual CColor getColorHandle () const
 
virtual void setColorHandle (CColor color)
 
virtual CCoord getHandleLineWidth () const
 
virtual void setHandleLineWidth (CCoord width)
 
virtual CCoord getCoronaOutlineWidthAdd () const
 
virtual void setCoronaOutlineWidthAdd (CCoord width)
 
virtual CBitmapgetHandleBitmap () const
 
virtual void setHandleBitmap (CBitmap *bitmap)
 
virtual void setZoomFactor (float val)
 
virtual float getZoomFactor () const
 
- Public Member Functions inherited from CControl
 CControl (const CRect &size, IControlListener *listener=nullptr, int32_t tag=0, CBitmap *pBackground=nullptr)
 
 CControl (const CControl &c)
 
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...
 
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 (void) const
 
virtual void setDefaultValue (float val)
 
virtual float getDefaultValue (void) const
 
virtual void bounceValue ()
 
virtual bool checkDefaultValue (CButtonState button)
 
virtual void valueChanged ()
 notifies listener and dependent objects More...
 
virtual void setTag (int32_t val)
 
virtual int32_t getTag () const
 
virtual void beginEdit ()
 
virtual void endEdit ()
 
bool isEditing () const
 
virtual IControlListenergetListener () 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...
 
virtual void setWheelInc (float val)
 
virtual float getWheelInc () const
 
- Public Member Functions inherited from CView
 CView (const CRect &size)
 
 CView (const CView &view)
 
void setSubviewState (bool state)
 
bool isSubview () const
 
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)
 
virtual CViewContainerasViewContainer ()
 
virtual const CViewContainerasViewContainer () const
 
CMouseEventResult callMouseListener (MouseListenerCall type, CPoint pos, CButtonState buttons)
 
void callMouseListenerEnteredExited (bool mouseEntered)
 
CMessageResult notify (CBaseObject *sender, IdStringPtr message) override
 
void beforeDelete () override
 
CBaseObjectnewCopy () const override
 
virtual CMouseEventResult onMouseEntered (CPoint &where, const CButtonState &buttons)
 called when the mouse enters this view More...
 
virtual CMouseEventResult onMouseExited (CPoint &where, const CButtonState &buttons)
 called when the mouse leaves this view More...
 
void setHitTestPath (CGraphicsPath *path)
 
virtual bool hitTest (const CPoint &where, const CButtonState &buttons=-1)
 check if where hits this view More...
 
virtual bool onWheel (const CPoint &where, const CMouseWheelAxis &axis, const float &distance, const CButtonState &buttons)
 called if a mouse wheel event is happening over this view 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...
 
CRectgetMouseableArea (CRect &rect) const
 get the area in which the view reacts to the mouse More...
 
const CRectgetMouseableArea () const
 read only access to the mouseable area More...
 
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 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...
 
const CRectgetViewSize () 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 CPointframeToLocal (CPoint &point) const
 conversion from frame coordinates to local view coordinates More...
 
virtual CPointlocalToFrame (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 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...
 
CBitmapgetBackground () 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...
 
CBitmapgetDisabledBackground () const
 get background image used when the mouse is not enabled More...
 
CBitmapgetDrawBackground () 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...
 
CViewgetParentView () const
 get parent view More...
 
CFramegetFrame () const
 get frame More...
 
virtual VSTGUIEditorInterfacegetEditor () const
 get editor More...
 
void addAnimation (IdStringPtr name, Animation::IAnimationTarget *target, Animation::ITimingFunction *timingFunction, CBaseObject *notificationObject=nullptr)
 
void addAnimation (IdStringPtr name, Animation::IAnimationTarget *target, Animation::ITimingFunction *timingFunction, const Animation::DoneFunction &doneFunc)
 
void removeAnimation (IdStringPtr name)
 
void removeAllAnimations ()
 
void registerViewListener (IViewListener *listener)
 
void unregisterViewListener (IViewListener *listener)
 
void registerViewMouseListener (IViewMouseListener *listener)
 
void unregisterViewMouseListener (IViewMouseListener *listener)
 
CGraphicsTransform getGlobalTransform () const
 get the active global transform for this view More...
 
template<typename T >
T & translateToGlobal (T &t) const
 translates a local coordinate to a global one using parent transforms More...
 
template<typename T >
translateToGlobal (const T &t) const
 translates a local coordinate to a global one using parent transforms More...
 
template<typename T >
T & translateToLocal (T &t) const
 translates a global coordinate to a local one using parent transforms More...
 
template<typename T >
translateToLocal (const T &t) const
 translates a local coordinate to a global one using parent transforms More...
 
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...
 
- Public Member Functions inherited from CBaseObject
 CBaseObject ()=default
 
 ~CBaseObject () noexceptoverride=default
 
 CBaseObject (const CBaseObject &o)
 
CBaseObjectoperator= (const CBaseObject &obj)
 
- Public Member Functions inherited from ReferenceCounted< T >
 ReferenceCounted ()=default
 
virtual ~ReferenceCounted () noexcept=default
 
 ReferenceCounted (const ReferenceCounted &)
 
ReferenceCountedoperator= (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...
 
- Public Member Functions inherited from IFocusDrawing
virtual ~IFocusDrawing () noexcept=default
 
- Public Member Functions inherited from IDependency
virtual void addDependency (CBaseObject *obj)
 add a dependent object More...
 
virtual void removeDependency (CBaseObject *obj)
 remove a dependent object. More...
 
virtual void changed (IdStringPtr message)
 notify dependent objects of change with message. More...
 
virtual void deferChanges (bool state)
 defer changes until later. More...
 

Protected Member Functions

 ~CKnob () noexceptoverride
 
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
 
void compute ()
 
void addArc (CGraphicsPath *path, const CRect &r, double startAngle, double sweepAngle) const
 
- Protected Member Functions inherited from CControl
 ~CControl () noexceptoverride=default
 
- Protected Member Functions inherited from CView
 ~CView () noexceptoverride
 
CGraphicsPathgetHitTestPath () 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 IDependency
 IDependency ()=default
 
virtual ~IDependency () noexcept
 

Protected Attributes

CPoint offset
 
int32_t drawStyle
 
CColor colorHandle
 
CColor colorShadowHandle
 
CColor coronaColor
 
CCoord handleLineWidth
 
CCoord inset
 
CCoord coronaInset
 
CCoord coronaOutlineWidthAdd
 
CBitmappHandle
 
float startAngle
 
float rangeAngle
 
float zoomFactor
 
- Protected Attributes inherited from CControl
IControlListenerlistener
 
SubListenerDispatcher subListeners
 
int32_t tag
 
float oldValue
 
float defaultValue
 
float value
 
float vmin
 
float vmax
 
float wheelInc
 
int32_t editing
 
- Protected Attributes inherited from IDependency
int32_t deferChangeCount {0}
 
DeferedChangesSet deferedChanges
 
DependentList dependents
 

Additional Inherited Members

- Static Public Attributes inherited from CControl
static int32_t kZoomModifier = kShift
 zoom modifier key, per default is the shift key More...
 
static int32_t kDefaultValueModifier = kControl
 default value modifier key, per default is the control key More...
 
static IdStringPtr kMessageValueChanged = "kMessageValueChanged"
 
static IdStringPtr kMessageBeginEdit = "kMessageBeginEdit"
 
static IdStringPtr kMessageEndEdit = "kMessageEndEdit"
 
- 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
 global idle rate in Hz, defaults to 30 Hz More...
 
- Protected Types inherited from CControl
using SubListenerDispatcher = DispatchList< IControlListener * >
 
- 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,
  kLastCViewFlag = 7
}
 
- Protected Types inherited from IDependency
using DeferedChangesSet = std::set< IdStringPtr >
 
using DependentList = std::list< CBaseObject * >
 
- Static Protected Member Functions inherited from CControl
static int32_t mapVstKeyModifier (int32_t vstModifier)
 
- Static Protected Member Functions inherited from IDependency
static void rememberObject (CBaseObject *obj)
 
static void forgetObject (CBaseObject *obj)
 

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

enum DrawStyle
Enumerator
kLegacyHandleLineDrawing 
kHandleCircleDrawing 
kCoronaDrawing 
kCoronaFromCenter 
kCoronaInverted 
kCoronaLineDashDot 
kCoronaOutline 
kCoronaLineCapButt 
kSkipHandleDrawing 

Constructor & Destructor Documentation

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
sizethe size of this view
listenerthe listener
tagthe control tag
backgroundbackground bitmap
handlehandle bitmap
offsetoffset of background bitmap
drawStyledraw style
CKnob ( const CKnob knob)
~CKnob ( )
overrideprotectednoexcept

Member Function Documentation

void addArc ( CGraphicsPath path,
const CRect r,
double  startAngle,
double  sweepAngle 
) const
protected
void compute ( )
protected
void draw ( CDrawContext pContext)
overridevirtual

called if the view should draw itself

Parameters
pContextdraw context in which to draw

Implements CControl.

Reimplemented in CAnimKnob.

void drawCorona ( CDrawContext pContext) const
protectedvirtual
void drawCoronaOutline ( CDrawContext pContext) const
protectedvirtual
bool drawFocusOnTop ( )
overridevirtual

draw focus before view will be drawn or afterwards

Reimplemented from CControl.

void drawHandle ( CDrawContext pContext)
protectedvirtual
void drawHandleAsCircle ( CDrawContext pContext) const
protectedvirtual
void drawHandleAsLine ( CDrawContext pContext) const
protectedvirtual
virtual CColor getColorHandle ( ) const
inlinevirtual
virtual CColor getColorShadowHandle ( ) const
inlinevirtual
virtual CColor getCoronaColor ( ) const
inlinevirtual
virtual CCoord getCoronaInset ( ) const
inlinevirtual
virtual CCoord getCoronaOutlineWidthAdd ( ) const
inlinevirtual
virtual int32_t getDrawStyle ( ) const
inlinevirtual
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.

virtual CBitmap* getHandleBitmap ( ) const
inlinevirtual
virtual CCoord getHandleLineWidth ( ) const
inlinevirtual
virtual CCoord getInsetValue ( ) const
inlinevirtual
virtual float getRangeAngle ( ) const
inlinevirtual
virtual float getStartAngle ( ) const
inlinevirtual
virtual float getZoomFactor ( ) const
inlinevirtual
CBaseObject* newCopy ( ) const
inlineoverridevirtual

Implements CControl.

Reimplemented in CAnimKnob.

int32_t onKeyDown ( VstKeyCode keyCode)
overridevirtual

called if a key down event occurs and this view has focus

Parameters
keyCodekey code of pressed key
Returns
-1 if not handled and 1 if handled

Reimplemented from CView.

CMouseEventResult onMouseCancel ( )
overridevirtual

called when mouse tracking should be canceled

Reimplemented from CView.

CMouseEventResult onMouseDown ( CPoint where,
const CButtonState buttons 
)
overridevirtual

called when a mouse down event occurs

Parameters
wheremouse location of mouse down
buttonsbutton and modifier state
Returns
event result. see CMouseEventResult

Reimplemented from CView.

CMouseEventResult onMouseMoved ( CPoint where,
const CButtonState buttons 
)
overridevirtual

called when a mouse move event occurs

Parameters
wheremouse location of mouse move
buttonsbutton and modifier state
Returns
event result. see CMouseEventResult

Reimplemented from CView.

CMouseEventResult onMouseUp ( CPoint where,
const CButtonState buttons 
)
overridevirtual

called when a mouse up event occurs

Parameters
wheremouse location of mouse up
buttonsbutton and modifier state
Returns
event result. see CMouseEventResult

Reimplemented from CView.

bool onWheel ( const CPoint where,
const float &  distance,
const CButtonState buttons 
)
overridevirtual

called if a mouse wheel event is happening over this view

Parameters
wherelocation
distancewheel distance
buttonsbutton and modifier state
Returns
true if handled

Reimplemented from CView.

void setColorHandle ( CColor  color)
virtual
void setColorShadowHandle ( CColor  color)
virtual
void setCoronaColor ( CColor  color)
virtual
void setCoronaInset ( CCoord  inset)
virtual
void setCoronaOutlineWidthAdd ( CCoord  width)
virtual
void setDrawStyle ( int32_t  style)
virtual
void setHandleBitmap ( CBitmap bitmap)
virtual
void setHandleLineWidth ( CCoord  width)
virtual
virtual void setInsetValue ( CCoord  val)
inlinevirtual
void setMax ( float  val)
overridevirtual

Reimplemented from CControl.

void setMin ( float  val)
overridevirtual

Reimplemented from CControl.

void setRangeAngle ( float  val)
virtual
void setStartAngle ( float  val)
virtual
void setViewSize ( const CRect newSize,
bool  doInvalid = true 
)
overridevirtual

set views size

Parameters
newSizerect of new size of view
doInvalidif true set view dirty

Reimplemented from CView.

virtual void setZoomFactor ( float  val)
inlinevirtual
bool sizeToFit ( )
overridevirtual

resize view to optimal size

Reimplemented from CView.

Reimplemented in CAnimKnob.

float valueFromPoint ( CPoint point) const
virtual
void valueToPoint ( CPoint point) const
virtual

Member Data Documentation

CColor colorHandle
protected
CColor colorShadowHandle
protected
CColor coronaColor
protected
CCoord coronaInset
protected
CCoord coronaOutlineWidthAdd
protected
int32_t drawStyle
protected
CCoord handleLineWidth
protected
CCoord inset
protected
CPoint offset
protected
CBitmap* pHandle
protected
float rangeAngle
protected
float startAngle
protected
float zoomFactor
protected

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