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

Container Class of CView objects. More...

+ Inheritance diagram for CViewContainer:

Classes

struct  Impl
 
class  Iterator
 

Public Types

using ViewList = std::list< SharedPointer< CView >>
 
using ChildViewConstIterator = ViewList::const_iterator
 
using ChildViewConstReverseIterator = ViewList::const_reverse_iterator
 
- Public Types inherited from CView
enum  MouseListenerCall { MouseDown, MouseMoved, MouseUp, MouseCancel }
 

Public Member Functions

 CViewContainer (const CRect &size)
 CViewContainer constructor.
 
 CViewContainer (const CViewContainer &viewContainer)
 
virtual bool advanceNextFocusView (CView *oldFocus, bool reverse=false)
 
virtual bool invalidateDirtyViews ()
 
virtual CRect getVisibleSize (const CRect &rect) const
 
void setTransform (const CGraphicsTransform &t)
 
const CGraphicsTransformgetTransform () const
 
void registerViewContainerListener (IViewContainerListener *listener)
 
void unregisterViewContainerListener (IViewContainerListener *listener)
 
void draw (CDrawContext *pContext) override
 
void drawRect (CDrawContext *pContext, const CRect &updateRect) override
 
void onMouseDownEvent (MouseDownEvent &event) override
 called when a mouse down event occurs
 
void onMouseMoveEvent (MouseMoveEvent &event) override
 called when a mouse move event occurs
 
void onMouseUpEvent (MouseUpEvent &event) override
 called when a mouse up event occurs
 
void onMouseCancelEvent (MouseCancelEvent &event) override
 called when mouse tracking should be canceled
 
void onMouseWheelEvent (MouseWheelEvent &event) override
 called when a mouse wheel event occurs
 
void onZoomGestureEvent (ZoomGestureEvent &event) override
 called when a zoom gesture event occurs
 
CMessageResult notify (CBaseObject *sender, IdStringPtr message) override
 
bool onWheel (const CPoint &where, const CMouseWheelAxis &axis, const float &distance, const CButtonState &buttons) final
 
SharedPointer< IDropTargetgetDropTarget () override
 get the drag target for drag and drop handling
 
void looseFocus () override
 called if view should loose focus
 
void takeFocus () override
 called if view should take focus
 
bool isDirty () const override
 check if view is dirty
 
void invalid () override
 mark whole view as invalid
 
void invalidRect (const CRect &rect) override
 mark rect as invalid
 
void setViewSize (const CRect &rect, bool invalid=true) override
 
void parentSizeChanged () override
 notification that one of the views parent has changed its size
 
bool sizeToFit () override
 resize view to optimal size
 
bool removed (CView *parent) override
 view is removed from parent view
 
bool attached (CView *parent) override
 view is attached to a parent view
 
CPointframeToLocal (CPoint &point) const override
 conversion from frame coordinates to local view coordinates
 
CPointlocalToFrame (CPoint &point) const override
 conversion from local view coordinates to frame coordinates
 
CBaseObjectnewCopy () const override
 
CViewContainerasViewContainer () final
 
const CViewContainerasViewContainer () const final
 
Sub View Methods
bool addView (CView *pView, const CRect &mouseableArea, bool mouseEnabled=true)
 add a child view
 
virtual bool addView (CView *pView, CView *pBefore=nullptr)
 add a child view before another view
 
virtual bool removeView (CView *pView, bool withForget=true)
 remove a child view
 
virtual bool removeAll (bool withForget=true)
 remove all child views
 
bool isChild (CView *pView) const
 check if pView is a child view of this container
 
virtual bool isChild (CView *pView, bool deep) const
 check if pView is a child view of this container
 
virtual bool hasChildren () const
 check if container has child views
 
virtual uint32_t getNbViews () const
 get the number of child views
 
virtual CViewgetView (uint32_t index) const
 get the child view at index
 
virtual CViewgetViewAt (const CPoint &where, const GetViewOptions &options=GetViewOptions()) const
 get the view at point where
 
virtual CViewContainergetContainerAt (const CPoint &where, const GetViewOptions &options=GetViewOptions().deep()) const
 get the container at point where
 
virtual bool getViewsAt (const CPoint &where, ViewList &views, const GetViewOptions &options=GetViewOptions().deep()) const
 get all views at point where, top->down
 
virtual bool changeViewZOrder (CView *view, uint32_t newIndex)
 change view z order position
 
virtual bool hitTestSubViews (const CPoint &where, const Event &event)
 
virtual void setAutosizingEnabled (bool state)
 enable or disable autosizing subviews.
 
bool getAutosizingEnabled () const
 
template<class ViewClass , class ContainerClass >
uint32_t getChildViewsOfType (ContainerClass &result, bool deep=false) const
 get child views of type ViewClass.
 
template<typename Proc >
void forEachChild (Proc proc) const
 execute proc for each child view
 
Background Methods
virtual void setBackgroundColor (const CColor &color)
 set the background color (will only be drawn if this container is not set to transparent and does not have a background bitmap)
 
virtual CColor getBackgroundColor () const
 get the background color
 
virtual void setBackgroundOffset (const CPoint &p)
 set the offset of the background bitmap
 
virtual CPoint getBackgroundOffset () const
 get the offset of the background bitmap
 
virtual void drawBackgroundRect (CDrawContext *pContext, const CRect &_updateRect)
 draw the background
 
virtual void setBackgroundColorDrawStyle (CDrawStyle style)
 
CDrawStyle getBackgroundColorDrawStyle () 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
 
virtual void onWindowActivate (bool state)
 called when the active state of the window changes
 
void setTooltipText (UTF8StringPtr text)
 
CMouseEventResult callMouseListener (MouseListenerCall type, CPoint pos, CButtonState buttons)
 
void callMouseListenerEnteredExited (bool mouseEntered)
 
CMessageResult notify (CBaseObject *sender, IdStringPtr message) override
 
CBaseObjectnewCopy () const override
 
virtual void dispatchEvent (Event &event)
 dispatch an event
 
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 setMouseEnabled (bool bEnable=true)
 turn on/off mouse usage for this view
 
bool getMouseEnabled () const
 get the state of wheather 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 onMouseDown (CPoint &where, const CButtonState &buttons)
 do not use any longer.
 
virtual CMouseEventResult onMouseUp (CPoint &where, const CButtonState &buttons)
 do not use any longer.
 
virtual CMouseEventResult onMouseMoved (CPoint &where, const CButtonState &buttons)
 do not use any longer.
 
virtual CMouseEventResult onMouseCancel ()
 do not use any longer.
 
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
 
CRectgetMouseableArea (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
 
bool doDrag (const DragDescription &dragDescription, const SharedPointer< IDragCallback > &callback={})
 A drag can only be started from within onMouseDown or onMouseMove.
 
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 void onKeyboardEvent (KeyboardEvent &event)
 called when a keyboard event is dispatched to this view
 
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 CRectgetViewSize () const
 read only access to view size
 
virtual CRect getVisibleViewSize () const
 returns the visible size of the view
 
virtual void setAutosizeFlags (int32_t flags)
 set autosize flags
 
int32_t getAutosizeFlags () const
 get autosize flags
 
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
 
CBitmapgetBackground () const
 get the background image of this view
 
virtual void setDisabledBackground (CBitmap *background)
 set background image used when the mouse is not enabled
 
CBitmapgetDisabledBackground () const
 get background image used when the mouse is not enabled
 
CBitmapgetDrawBackground () 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
 
bool isAttached () const
 is view attached to a parentView
 
CViewgetParentView () const
 get parent view
 
CFramegetFrame () const
 get frame
 
virtual VSTGUIEditorInterfacegetEditor () 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 >
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 >
translateToLocal (const T &t, bool ignoreFrame=false) const
 translates a local coordinate to a global one using parent transforms
 
virtual bool checkUpdate (const CRect &updateRect) const
 
virtual void setDirty (bool val=true)
 set the view to dirty so that it is redrawn in the next idle.
 
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
 
- Public Member Functions inherited from CBaseObject
 CBaseObject ()=default
 
 ~CBaseObject () noexceptoverride=default
 
 CBaseObject (const CBaseObject &)
 
CBaseObjectoperator= (const CBaseObject &)
 
virtual CMessageResult notify ([[maybe_unused]] CBaseObject *sender,[[maybe_unused]] IdStringPtr message)
 
- 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
 
void remember () override
 increase refcount
 
virtual int32_t getNbReference () const
 get refcount
 

Protected Types

enum  { kAutosizeSubviews = 1 << (CView::kLastCViewFlag + 1) }
 
- 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

 ~CViewContainer () noexceptoverride
 
void beforeDelete () override
 
virtual bool checkUpdateRect (CView *view, const CRect &rect)
 check if view needs to be updated for rect
 
void setMouseDownView (CView *view)
 
CViewgetMouseDownView () const
 
const ViewListgetChildren () const
 
- 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)
 

Additional Inherited Members

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

Detailed Description

Container Class of CView objects.

Member Typedef Documentation

using ChildViewConstIterator = ViewList::const_iterator
using ChildViewConstReverseIterator = ViewList::const_reverse_iterator
using ViewList = std::list<SharedPointer<CView>>

Member Enumeration Documentation

anonymous enum
protected
Enumerator
kAutosizeSubviews 

Constructor & Destructor Documentation

CViewContainer ( const CRect rect)
explicit

CViewContainer constructor.

Parameters
rectthe size of the container
CViewContainer ( const CViewContainer viewContainer)
~CViewContainer ( )
overrideprotectednoexcept

Member Function Documentation

bool addView ( CView pView,
const CRect mouseableArea,
bool  mouseEnabled = true 
)

add a child view

Parameters
pViewthe view object to add to this container
mouseableAreathe view area in where the view will get mouse events
mouseEnabledbool to set if view will get mouse events
Returns
true on success. false if view was already attached
bool addView ( CView pView,
CView pBefore = nullptr 
)
virtual

add a child view before another view

Parameters
pViewthe view object to add to this container
pBeforethe view object
Returns
true on success. false if view was already attached

Reimplemented in CScrollView, CSplitView, and CAutoLayoutContainerView.

bool advanceNextFocusView ( CView oldFocus,
bool  reverse = false 
)
virtual
Parameters
oldFocusold focus view
reversesearch order
Returns
true on success

Reimplemented in CFrame.

CViewContainer* asViewContainer ( )
inlinefinalvirtual

Reimplemented from CView.

const CViewContainer* asViewContainer ( ) const
inlinefinalvirtual

Reimplemented from CView.

bool attached ( CView parent)
overridevirtual

view is attached to a parent view

Parameters
parentparent view
Returns
true if view successfully attached to parent

Reimplemented from CView.

Reimplemented in UIViewSwitchContainer.

void beforeDelete ( )
overrideprotectedvirtual

Reimplemented from CView.

bool changeViewZOrder ( CView view,
uint32_t  newIndex 
)
virtual

change view z order position

Parameters
viewview which z order position should be changed
newIndexindex of new z position
Returns
true if z order of view changed

Reimplemented in CScrollView, and CAutoLayoutContainerView.

bool checkUpdateRect ( CView view,
const CRect rect 
)
protectedvirtual

check if view needs to be updated for rect

Parameters
viewview to check
rectupdate rect
Returns
true if view needs update
void draw ( CDrawContext pContext)
overridevirtual
Parameters
pContextthe context which to use to draw this container and its subviews

Reimplemented from CView.

void drawBackgroundRect ( CDrawContext pContext,
const CRect _updateRect 
)
virtual

draw the background

Parameters
pContextthe context which to use to draw the background
_updateRectthe area which to draw

Reimplemented in CScrollView, CTabView, and CShadowViewContainer.

void drawRect ( CDrawContext pContext,
const CRect updateRect 
)
overridevirtual
Parameters
pContextthe context which to use to draw
updateRectthe area which to draw

Reimplemented from CView.

void forEachChild ( Proc  proc) const
inline

execute proc for each child view

CPoint & frameToLocal ( CPoint point) const
overridevirtual

conversion from frame coordinates to local view coordinates

Parameters
pointlocation
Returns
converted point

Reimplemented from CView.

bool getAutosizingEnabled ( ) const
inline
CColor getBackgroundColor ( ) const
virtual

get the background color

CDrawStyle getBackgroundColorDrawStyle ( ) const
CPoint getBackgroundOffset ( ) const
virtual

get the offset of the background bitmap

auto getChildren ( ) const
protected
uint32_t getChildViewsOfType ( ContainerClass &  result,
bool  deep = false 
) const
inline

get child views of type ViewClass.

ContainerClass must be a stdc++ container

CViewContainer * getContainerAt ( const CPoint p,
const GetViewOptions options = GetViewOptions ().deep () 
) const
virtual

get the container at point where

Parameters
plocation
optionssearch search options
Returns
view container at position p or null

Reimplemented in CFrame.

SharedPointer< IDropTarget > getDropTarget ( )
overridevirtual

get the drag target for drag and drop handling

Reimplemented from CView.

CView * getMouseDownView ( ) const
protected
uint32_t getNbViews ( ) const
virtual

get the number of child views

Returns
number of subviews

Reimplemented in CScrollView.

const CGraphicsTransform & getTransform ( ) const
CView * getView ( uint32_t  index) const
virtual

get the child view at index

Parameters
indexthe index of the view to return
Returns
view at index. NULL if view at index does not exist.

Reimplemented in CScrollView.

CView * getViewAt ( const CPoint p,
const GetViewOptions options = GetViewOptions () 
) const
virtual

get the view at point where

Parameters
plocation
optionssearch options
Returns
view at position p or null

Reimplemented in CFrame.

bool getViewsAt ( const CPoint p,
ViewList views,
const GetViewOptions options = GetViewOptions ().deep () 
) const
virtual

get all views at point where, top->down

Parameters
plocation
viewsresult list
optionssearch options
Returns
success

Reimplemented in CFrame.

CRect getVisibleSize ( const CRect rect) const
virtual
Parameters
rectsize to get visible size of
Returns
visible size of rect
bool hasChildren ( ) const
virtual

check if container has child views

bool hitTestSubViews ( const CPoint where,
const Event event 
)
virtual
Parameters
wherepoint
eventcurrent event
Returns
true if any sub view accepts the hit

Reimplemented in CFrame.

void invalid ( )
overridevirtual

mark whole view as invalid

Reimplemented from CView.

bool invalidateDirtyViews ( )
virtual
void invalidRect ( const CRect rect)
overridevirtual

mark rect as invalid

Parameters
rectrect to invalidate

Reimplemented from CView.

bool isChild ( CView pView) const

check if pView is a child view of this container

Parameters
pViewthe view which should be checked if it is a child of this container
Returns
true on success
bool isChild ( CView pView,
bool  deep 
) const
virtual

check if pView is a child view of this container

bool isDirty ( ) const
overridevirtual

check if view is dirty

Reimplemented from CView.

CPoint & localToFrame ( CPoint point) const
overridevirtual

conversion from local view coordinates to frame coordinates

Parameters
pointlocation
Returns
converted point

Reimplemented from CView.

void looseFocus ( )
overridevirtual

called if view should loose focus

Reimplemented from CView.

CBaseObject* newCopy ( ) const
inlineoverride
CMessageResult notify ( CBaseObject sender,
IdStringPtr  message 
)
override
void onMouseCancelEvent ( MouseCancelEvent event)
overridevirtual

called when mouse tracking should be canceled

Reimplemented from CView.

void onMouseDownEvent ( MouseDownEvent event)
overridevirtual

called when a mouse down event occurs

Reimplemented from CView.

void onMouseMoveEvent ( MouseMoveEvent event)
overridevirtual

called when a mouse move event occurs

Reimplemented from CView.

void onMouseUpEvent ( MouseUpEvent event)
overridevirtual

called when a mouse up event occurs

Reimplemented from CView.

void onMouseWheelEvent ( MouseWheelEvent event)
overridevirtual

called when a mouse wheel event occurs

Reimplemented from CView.

bool onWheel ( const CPoint where,
const CMouseWheelAxis axis,
const float &  distance,
const CButtonState buttons 
)
finalvirtual
Deprecated:
please use onMouseWheelEvent instead
Parameters
wherelocation
axismouse wheel axis
distancewheel distance
buttonsbutton and modifier state
Returns
true if handled

Reimplemented from CView.

void onZoomGestureEvent ( ZoomGestureEvent event)
overridevirtual

called when a zoom gesture event occurs

Reimplemented from CView.

void parentSizeChanged ( )
overridevirtual

notification that one of the views parent has changed its size

Reimplemented from CView.

void registerViewContainerListener ( IViewContainerListener listener)
bool removeAll ( bool  withForget = true)
virtual

remove all child views

Parameters
withForgetbool to indicate if the view's reference counter should be decreased after removed from the container
Returns
true on success

Reimplemented in CFrame, CScrollView, and CSplitView.

bool removed ( CView parent)
overridevirtual

view is removed from parent view

Parameters
parentparent view
Returns
true if view successfully removed from parent

Reimplemented from CView.

Reimplemented in UIViewSwitchContainer.

bool removeView ( CView pView,
bool  withForget = true 
)
virtual

remove a child view

Parameters
pViewthe view which should be removed from the container
withForgetbool to indicate if the view's reference counter should be decreased after removed from the container
Returns
true on success

Reimplemented in CFrame, CScrollView, CSplitView, and CAutoLayoutContainerView.

void setAutosizingEnabled ( bool  state)
virtual

enable or disable autosizing subviews.

Per default this is enabled.

void setBackgroundColor ( const CColor color)
virtual

set the background color (will only be drawn if this container is not set to transparent and does not have a background bitmap)

Parameters
colorthe new background color of the container

Reimplemented in CScrollView.

void setBackgroundColorDrawStyle ( CDrawStyle  style)
virtual
void setBackgroundOffset ( const CPoint p)
virtual

set the offset of the background bitmap

void setMouseDownView ( CView view)
protected
void setTransform ( const CGraphicsTransform t)
void setViewSize ( const CRect rect,
bool  invalid = true 
)
overridevirtual
Parameters
rectthe new size of the container
invalidthe views to dirty

Reimplemented from CView.

bool sizeToFit ( )
overridevirtual

resize view to optimal size

Reimplemented from CView.

void takeFocus ( )
overridevirtual

called if view should take focus

Reimplemented from CView.

void unregisterViewContainerListener ( IViewContainerListener listener)

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