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

Base Class of all view objects. More...

+ Inheritance diagram for CView:

Public Member Functions

 CView (const CRect &size)
 
 CView (const CView &view)
 
void setSubviewState (bool state)
 
bool isSubview () const
 
CGraphicsTransform getGlobalTransform () const
 
template<typename T >
T & translateToGlobal (T &t) const
 
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 local coordinate to a global one using parent transforms More...
 
template<typename T >
translateToLocal (const T &t) const
 translates a global coordinate to a local one using parent transforms More...
 
CMessageResult notify (CBaseObject *sender, IdStringPtr message)
 translates a local coordinate to a global one using parent transforms More...
 
void beforeDelete ()
 
virtual bool isTypeOf (IdStringPtr s) const
 
virtual CBaseObjectnewCopy () const
 
Mouse Methods
virtual CMouseEventResult onMouseDown (CPoint &where, const CButtonState &buttons)
 called when a mouse down event occurs More...
 
virtual CMouseEventResult onMouseUp (CPoint &where, const CButtonState &buttons)
 called when a mouse up event occurs More...
 
virtual CMouseEventResult onMouseMoved (CPoint &where, const CButtonState &buttons)
 called when a mouse move event occurs More...
 
virtual CMouseEventResult onMouseCancel ()
 called when mouse tracking should be canceled More...
 
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 float &distance, const CButtonState &buttons)
 called if a mouse wheel event is happening over 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...
 
virtual 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...
 
virtual CRectgetMouseableArea (CRect &rect) const
 get the area in which the view reacts to the mouse More...
 
virtual const CRectgetMouseableArea () const
 read only access to the mouseable area More...
 
Drag & Drop Methods
virtual DragResult doDrag (IDataPackage *source, const CPoint &offset=CPoint(0, 0), CBitmap *dragBitmap=0)
 start a drag operation. See CDropSource to create the source data package More...
 
virtual bool onDrop (IDataPackage *drag, const CPoint &where)
 called if a drag is dropped onto this view More...
 
virtual void onDragEnter (IDataPackage *drag, const CPoint &where)
 called if a drag is entering this view More...
 
virtual void onDragLeave (IDataPackage *drag, const CPoint &where)
 called if a drag is leaving this view More...
 
virtual void onDragMove (IDataPackage *drag, const CPoint &where)
 called if a drag is moved inside this view More...
 
Keyboard Methods
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...
 
View Size Methods
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 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...
 
virtual int32_t getAutosizeFlags () const
 get autosize flags More...
 
virtual bool sizeToFit ()
 resize view to optimal size More...
 
Focus Methods
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...
 
Attribute Methods
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...
 
Background Methods
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
 
Transparency Methods
virtual void setTransparency (bool val)
 set views transparent state More...
 
virtual 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...
 
Attaching Methods
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...
 
Parent Methods
CViewgetParentView () const
 get parent view More...
 
CFramegetFrame () const
 get frame More...
 
virtual VSTGUIEditorInterfacegetEditor () const
 get editor More...
 
Animation Methods
void addAnimation (IdStringPtr name, Animation::IAnimationTarget *target, Animation::ITimingFunction *timingFunction, CBaseObject *notificationObject=0)
 
void removeAnimation (IdStringPtr name)
 
void removeAllAnimations ()
 
View Listener Methods
void registerViewListener (IViewListener *listener)
 
void unregisterViewListener (IViewListener *listener)
 
- Public Member Functions inherited from CBaseObject
 CBaseObject ()
 
virtual ~CBaseObject ()
 
virtual void forget ()
 decrease refcount and delete object if refcount == 0 More...
 
virtual void remember ()
 increase refcount More...
 
virtual int32_t getNbReference () const
 get refcount More...
 

Protected Types

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 Member Functions

 ~CView ()
 
CGraphicsPathgetHitTestPath () const
 

Protected Attributes

CRect size
 
CRect mouseableArea
 
CFramepParentFrame
 
CViewpParentView
 
int32_t viewFlags
 
int32_t autosizeFlags
 
float alphaValue
 

Draw and Update Methods

static bool kDirtyCallAlwaysOnMainThread = false
 if this is true, setting a view dirty will call invalid() instead of checking it in idle. Default value is false. More...
 
virtual void draw (CDrawContext *pContext)
 called if the view should draw itself 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 bool isDirty () const
 check if view is dirty More...
 
virtual void setDirty (bool val=true)
 set the view to dirty so that it is redrawn in the next idle. Thread Safe ! More...
 
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...
 

Idle Methods

Should be used when a view needs to do a task periodically.

The onIdle() method will be called only if the view is attached.

static uint32_t idleRate
 global idle rate in Hz, defaults to 30 Hz 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...
 

Detailed Description

Base Class of all view objects.

Member Enumeration Documentation

anonymous enum
protected
Enumerator
kMouseEnabled 
kTransparencyEnabled 
kWantsFocus 
kIsAttached 
kVisible 
kDirty 
kWantsIdle 
kIsSubview 
kLastCViewFlag 

Constructor & Destructor Documentation

CView ( const CRect size)
CView ( const CView view)
~CView ( )
protected

Member Function Documentation

void addAnimation ( IdStringPtr  name,
Animation::IAnimationTarget target,
Animation::ITimingFunction timingFunction,
CBaseObject notificationObject = 0 
)
bool attached ( CView parent)
virtual

view is attached to a parent view

Parameters
parentparent view
Returns
true if view successfully attached to parent

Reimplemented in CDataBrowser, CViewContainer, CFrame, CSegmentButton, CFontChooser, CSplitView, COpenGLView, CShadowViewContainer, UIViewSwitchContainer, CLayeredViewContainer, and CAutoLayoutContainerView.

void beforeDelete ( )
virtual

Reimplemented from CBaseObject.

virtual bool checkUpdate ( const CRect updateRect) const
inlinevirtual
DragResult doDrag ( IDataPackage source,
const CPoint offset = CPoint (0, 0),
CBitmap dragBitmap = 0 
)
virtual

start a drag operation. See CDropSource to create the source data package

a drag can only be started from within onMouseDown

Parameters
sourcesource drop
offsetbitmap offset
dragBitmapbitmap to drag
Returns
0 on failure, negative if source was moved and positive if source was copied

Reimplemented in CFrame.

virtual void drawRect ( CDrawContext pContext,
const CRect updateRect 
)
inlinevirtual

called if the view should draw itself

Reimplemented in CFrame, CViewContainer, CSegmentButton, CShadowViewContainer, and CLayeredViewContainer.

CPoint & frameToLocal ( CPoint point) const
virtual

conversion from frame coordinates to local view coordinates

Parameters
pointlocation
Returns
converted point

Reimplemented in CViewContainer.

float getAlphaValue ( ) const
inline

get alpha value

bool getAttribute ( const CViewAttributeID  aId,
const uint32_t  inSize,
void *  outData,
uint32_t &  outSize 
) const

get an attribute

Parameters
aIdthe ID of the Attribute
inSizethe size of the outData pointer
outDataa pointer where to copy the attribute data
outSizethe size in bytes which was copied into outData
Returns
true if attribute exists and outData was big enough. outSize and outData is valid then.
bool getAttributeSize ( const CViewAttributeID  aId,
uint32_t &  outSize 
) const

get the size of an attribute

Parameters
aIdthe ID of the Attribute
outSizeon return the size of the attribute
Returns
true if attribute exists. outSize is valid then.
virtual int32_t getAutosizeFlags ( ) const
inlinevirtual

get autosize flags

CBitmap* getBackground ( ) const
inline

get the background image of this view

CBitmap* getDisabledBackground ( ) const
inline

get background image used when the mouse is not enabled

CBitmap* getDrawBackground ( ) const
inline
VSTGUIEditorInterface * getEditor ( ) const
virtual

get editor

Reimplemented in CFrame.

CFrame* getFrame ( ) const
inline

get frame

CGraphicsTransform getGlobalTransform ( ) const
CCoord getHeight ( ) const
inline

get the height of the view

CGraphicsPath* getHitTestPath ( ) const
inlineprotected
virtual CRect& getMouseableArea ( CRect rect) const
inlinevirtual

get the area in which the view reacts to the mouse

virtual const CRect& getMouseableArea ( ) const
inlinevirtual

read only access to the mouseable area

virtual bool getMouseEnabled ( ) const
inlinevirtual

get the state of wheather this view uses the mouse or not

CView* getParentView ( ) const
inline

get parent view

virtual bool getTransparency ( ) const
inlinevirtual

get views transparent state

const CRect& getViewSize ( ) const
inline

read only access to view size

CRect getVisibleViewSize ( ) const
virtual

returns the visible size of the view

Returns
visible size of view
CCoord getWidth ( ) const
inline

get the width of the view

bool hitTest ( const CPoint where,
const CButtonState buttons = -1 
)
virtual

check if where hits this view

Parameters
wherelocation
buttonsbutton and modifier state
Returns
true if point hits this view

Reimplemented in CViewContainer, and CSplashScreen.

virtual void invalid ( )
inlinevirtual

mark whole view as invalid

Reimplemented in CViewContainer, CFrame, and CLayeredViewContainer.

void invalidRect ( const CRect rect)
virtual

mark rect as invalid

Parameters
rectrect to invalidate

Reimplemented in CViewContainer, CFrame, COpenGLView, and CLayeredViewContainer.

bool isAttached ( ) const
inline

is view attached to a parentView

virtual bool isDirty ( ) const
inlinevirtual

check if view is dirty

Reimplemented in CControl, and CViewContainer.

bool isSubview ( ) const
inline
bool isVisible ( ) const
inline

get visibility state

CPoint & localToFrame ( CPoint point) const
virtual

conversion from local view coordinates to frame coordinates

Parameters
pointlocation
Returns
converted point

Reimplemented in CViewContainer.

void looseFocus ( )
virtual

called if view should loose focus

Reimplemented in COptionMenu, CViewContainer, and CTextEdit.

CMessageResult notify ( CBaseObject sender,
IdStringPtr  message 
)
virtual

translates a local coordinate to a global one using parent transforms

Parameters
sendermessage sender
messagemessage text
Returns
message handled or not. See CMessageResult

Reimplemented from CBaseObject.

Reimplemented in CViewContainer.

virtual void onDragEnter ( IDataPackage drag,
const CPoint where 
)
inlinevirtual

called if a drag is entering this view

Reimplemented in CViewContainer.

virtual void onDragLeave ( IDataPackage drag,
const CPoint where 
)
inlinevirtual

called if a drag is leaving this view

Reimplemented in CViewContainer.

virtual void onDragMove ( IDataPackage drag,
const CPoint where 
)
inlinevirtual

called if a drag is moved inside this view

Reimplemented in CViewContainer.

virtual bool onDrop ( IDataPackage drag,
const CPoint where 
)
inlinevirtual

called if a drag is dropped onto this view

Reimplemented in CViewContainer.

virtual void onIdle ( )
inlinevirtual

called on idle when view wants idle

Reimplemented in CVuMeter.

int32_t onKeyDown ( VstKeyCode keyCode)
virtual

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 in CTextButton, COptionMenu, CDataBrowser, CFrame, CKickButton, CSegmentButton, CCheckBox, CRockerSwitch, CSlider, CKnob, CFontChooser, CHorizontalSwitch, CTextEdit, COnOffButton, CMovieButton, and CVerticalSwitch.

int32_t onKeyUp ( VstKeyCode keyCode)
virtual

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

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

Reimplemented in CTextButton, CFrame, CKickButton, and CRockerSwitch.

CMouseEventResult onMouseCancel ( )
virtual

called when mouse tracking should be canceled

Reimplemented in CTextButton, CKickButton, CViewContainer, CCheckBox, CSlider, and COnOffButton.

CMouseEventResult onMouseDown ( CPoint where,
const CButtonState buttons 
)
virtual

called when a mouse down event occurs

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

Reimplemented in CTextButton, COptionMenu, CDataBrowser, CFrame, CKickButton, CViewContainer, CSegmentButton, CCheckBox, CRockerSwitch, CKnob, CAnimationSplashScreen, CSlider, CHorizontalSwitch, CTextEdit, COnOffButton, CSplashScreen, CScrollbar, CMovieButton, CVerticalSwitch, CAutoAnimation, and CXYPad.

virtual CMouseEventResult onMouseEntered ( CPoint where,
const CButtonState buttons 
)
inlinevirtual

called when the mouse enters this view

Reimplemented in CScrollbar.

virtual CMouseEventResult onMouseExited ( CPoint where,
const CButtonState buttons 
)
inlinevirtual

called when the mouse leaves this view

Reimplemented in CFrame, and CScrollbar.

CMouseEventResult onMouseMoved ( CPoint where,
const CButtonState buttons 
)
virtual

called when a mouse move event occurs

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

Reimplemented in CTextButton, CFrame, CKickButton, CViewContainer, CCheckBox, CRockerSwitch, CKnob, CSlider, CHorizontalSwitch, COnOffButton, CScrollbar, CMovieButton, CVerticalSwitch, and CXYPad.

CMouseEventResult onMouseUp ( CPoint where,
const CButtonState buttons 
)
virtual

called when a mouse up event occurs

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

Reimplemented in CTextButton, CFrame, CKickButton, CViewContainer, CCheckBox, CRockerSwitch, CKnob, CSlider, CHorizontalSwitch, COnOffButton, CScrollbar, CMovieButton, CVerticalSwitch, and CXYPad.

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

called if a mouse wheel event is happening over this view

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

Reimplemented in CFrame, CViewContainer, CRockerSwitch, CSlider, CKnob, and CTextLabel.

bool onWheel ( const CPoint where,
const CMouseWheelAxis axis,
const float &  distance,
const CButtonState buttons 
)
virtual

called if a mouse wheel event is happening over this view

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

Reimplemented in CFrame, CViewContainer, CScrollView, CTextLabel, and CScrollbar.

virtual void parentSizeChanged ( )
inlinevirtual

notification that one of the views parent has changed its size

Reimplemented in CViewContainer, CTextEdit, COpenGLView, and CLayeredViewContainer.

void registerViewListener ( IViewListener listener)
void removeAllAnimations ( )
void removeAnimation ( IdStringPtr  name)
bool removeAttribute ( const CViewAttributeID  id)

remove an attribute

bool removed ( CView parent)
virtual

view is removed from parent view

Parameters
parentparent view
Returns
true if view successfully removed from parent

Reimplemented in CTextButton, CDataBrowser, CViewContainer, CParamDisplay, CSplitView, COpenGLView, CShadowViewContainer, UIViewSwitchContainer, and CLayeredViewContainer.

void setAlphaValue ( float  alpha)
virtual

set alpha value which will be applied when drawing this view

Reimplemented in CLayeredViewContainer.

bool setAttribute ( const CViewAttributeID  aId,
const uint32_t  inSize,
const void *  inData 
)

set an attribute

copies data into the attribute.

If it does not exist, creates a new attribute.

Parameters
aIdthe ID of the Attribute
inSizethe size of the outData pointer
inDataa pointer to the data
Returns
true if attribute was set
virtual void setAutosizeFlags ( int32_t  flags)
inlinevirtual

set autosize flags

Reimplemented in CDataBrowser, CScrollView, and CTabView.

void setBackground ( CBitmap background)
virtual

set the background image of this view

Parameters
backgroundnew background bitmap

Reimplemented in CAnimKnob, and CCheckBox.

void setDirty ( bool  val = true)
virtual

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

Reimplemented in CControl, and CVuMeter.

void setDisabledBackground ( CBitmap background)
virtual

set background image used when the mouse is not enabled

Parameters
backgroundnew disabled background bitmap
void setHitTestPath ( CGraphicsPath path)
Parameters
paththe path to use for hit testing. The path will be translated by this views origin, so that the path must not be set again, if the view is moved. Otherwise when the size of the view changes, the path must also be set again.
virtual void setMouseableArea ( const CRect rect)
inlinevirtual

set the area in which the view reacts to the mouse

void setMouseEnabled ( bool  bEnable = true)
virtual

turn on/off mouse usage for this view

void setSubviewState ( bool  state)
void setTransparency ( bool  val)
virtual

set views transparent state

Reimplemented in CScrollView.

void setViewSize ( const CRect newSize,
bool  doInvalid = true 
)
virtual
void setVisible ( bool  state)
virtual

set visibility state

Reimplemented in COpenGLView.

void setWantsFocus ( bool  state)
virtual

set focus support on/off

Reimplemented in CDataBrowser.

void setWantsIdle ( bool  state)

enable/disable onIdle() callback

void takeFocus ( )
virtual

called if view should take focus

Reimplemented in COptionMenu, CViewContainer, and CTextEdit.

T& translateToGlobal ( T &  t) const
inline
T translateToGlobal ( const T &  t) const
inline

translates a local coordinate to a global one using parent transforms

T& translateToLocal ( T &  t) const
inline

translates a local coordinate to a global one using parent transforms

T translateToLocal ( const T &  t) const
inline

translates a global coordinate to a local one using parent transforms

void unregisterViewListener ( IViewListener listener)
virtual bool wantsFocus ( ) const
inlinevirtual

check if view supports focus

Reimplemented in CTextEdit.

bool wantsIdle ( ) const
inline

returns if the view wants idle callback or not

Member Data Documentation

float alphaValue
protected
int32_t autosizeFlags
protected
uint32_t idleRate
static

global idle rate in Hz, defaults to 30 Hz

bool kDirtyCallAlwaysOnMainThread = false
static

if this is true, setting a view dirty will call invalid() instead of checking it in idle. Default value is false.

CRect mouseableArea
protected
CFrame* pParentFrame
protected
CView* pParentView
protected
CRect size
protected
int32_t viewFlags
protected

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