VSTGUI 4.10
Graphical User Interface Framework not only for VST plugins
|
Container Class of CView objects. More...
#include <cviewcontainer.h>
Classes | |
struct | Impl |
class | Iterator |
Public Types | |
using | ViewList = std::list<SharedPointer<CView>> |
enum class | MouseListenerCall { MouseDown , MouseMoved , MouseUp , MouseCancel } |
Public Member Functions | |
CViewContainer (const CRect &size) | |
CViewContainer constructor. | |
CViewContainer (const CViewContainer &viewContainer) | |
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 CView * | getView (uint32_t index) const |
get the child view at index | |
virtual CView * | getViewAt (const CPoint &where, const GetViewOptions &options=GetViewOptions()) const |
get the view at point where | |
virtual CViewContainer * | getContainerAt (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 | |
![]() | |
CView (const CRect &size) | |
CView (const CView &view) | |
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 |
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 | |
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 CRect & | getViewSize () 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 | |
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 | |
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 | |
CMouseEventResult | callMouseListener (MouseListenerCall type, CPoint pos, CButtonState buttons) |
void | callMouseListenerEnteredExited (bool mouseEntered) |
CBaseObject * | newCopy () const override |
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 | |
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) |
![]() | |
CBaseObject ()=default | |
~CBaseObject () noexcept override=default | |
CBaseObject (const CBaseObject &) | |
CBaseObject & | operator= (const CBaseObject &) |
![]() | |
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 | |
Background Methods | |
enum | { kAutosizeSubviews = 1 << (CView::kLastCViewFlag + 1) } |
using | ChildViewConstIterator = ViewList::const_iterator |
using | ChildViewConstReverseIterator = ViewList::const_reverse_iterator |
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 |
virtual bool | advanceNextFocusView (CView *oldFocus, bool reverse=false) |
virtual bool | invalidateDirtyViews () |
virtual CRect | getVisibleSize (const CRect &rect) const |
void | setTransform (const CGraphicsTransform &t) |
const CGraphicsTransform & | getTransform () 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< IDropTarget > | getDropTarget () 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 | |
CPoint & | frameToLocal (CPoint &point) const override |
conversion from frame coordinates to local view coordinates | |
CPoint & | localToFrame (CPoint &point) const override |
conversion from local view coordinates to frame coordinates | |
CBaseObject * | newCopy () const override |
CViewContainer * | asViewContainer () final |
const CViewContainer * | asViewContainer () const final |
~CViewContainer () noexcept override | |
void | beforeDelete () override |
virtual bool | checkUpdateRect (CView *view, const CRect &rect) |
check if view needs to be updated for rect | |
void | setMouseDownView (CView *view) |
CView * | getMouseDownView () const |
const ViewList & | getChildren () const |
Additional Inherited Members | |
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 | |
![]() | |
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 } |
~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) |
Container Class of CView objects.
using ChildViewConstIterator = ViewList::const_iterator |
using ChildViewConstReverseIterator = ViewList::const_reverse_iterator |
using ViewList = std::list<SharedPointer<CView>> |
|
explicit |
CViewContainer constructor.
rect | the size of the container |
CViewContainer | ( | const CViewContainer & | viewContainer | ) |
|
overrideprotectednoexcept |
add a child view
pView | the view object to add to this container |
mouseableArea | the view area in where the view will get mouse events |
mouseEnabled | bool to set if view will get mouse events |
add a child view before another view
pView | the view object to add to this container |
pBefore | the view object |
Reimplemented in CAutoLayoutContainerView, CScrollView, and CSplitView.
|
virtual |
oldFocus | old focus view |
reverse | search order |
Reimplemented in CFrame.
|
inlinefinalvirtual |
Reimplemented from CView.
|
inlinefinalvirtual |
Reimplemented from CView.
|
overridevirtual |
view is attached to a parent view
parent | parent view |
Reimplemented from CView.
Reimplemented in UIViewSwitchContainer.
|
overrideprotectedvirtual |
Reimplemented from CView.
|
virtual |
change view z order position
view | view which z order position should be changed |
newIndex | index of new z position |
Reimplemented in CAutoLayoutContainerView, and CScrollView.
check if view needs to be updated for rect
view | view to check |
rect | update rect |
|
overridevirtual |
pContext | the context which to use to draw this container and its subviews |
Reimplemented from CView.
|
virtual |
draw the background
pContext | the context which to use to draw the background |
_updateRect | the area which to draw |
Reimplemented in CScrollView, CShadowViewContainer, and CTabView.
|
overridevirtual |
pContext | the context which to use to draw |
updateRect | the area which to draw |
Reimplemented from CView.
|
inline |
execute proc for each child view
conversion from frame coordinates to local view coordinates
point | location |
Reimplemented from CView.
|
inline |
|
virtual |
get the background color
CDrawStyle getBackgroundColorDrawStyle | ( | ) | const |
|
virtual |
get the offset of the background bitmap
|
protected |
|
inline |
get child views of type ViewClass.
ContainerClass must be a stdc++ container
|
virtual |
get the container at point where
p | location |
options | search search options |
Reimplemented in CFrame.
|
overridevirtual |
get the drag target for drag and drop handling
Reimplemented from CView.
|
protected |
|
virtual |
const CGraphicsTransform & getTransform | ( | ) | const |
|
virtual |
get the child view at index
index | the index of the view to return |
Reimplemented in CScrollView.
|
virtual |
get the view at point where
p | location |
options | search options |
Reimplemented in CFrame.
|
virtual |
get all views at point where, top->down
p | location |
views | result list |
options | search options |
Reimplemented in CFrame.
rect | size to get visible size of |
|
virtual |
check if container has child views
where | point |
event | current event |
Reimplemented in CFrame.
|
overridevirtual |
mark whole view as invalid
Reimplemented from CView.
|
virtual |
|
overridevirtual |
bool isChild | ( | CView * | pView | ) | const |
check if pView is a child view of this container
pView | the view which should be checked if it is a child of this container |
|
virtual |
check if pView is a child view of this container
|
overridevirtual |
check if view is dirty
Reimplemented from CView.
conversion from local view coordinates to frame coordinates
point | location |
Reimplemented from CView.
|
overridevirtual |
called if view should loose focus
Reimplemented from CView.
|
inlineoverride |
|
overridevirtual |
sender | message sender |
message | message text |
Reimplemented from CView.
|
overridevirtual |
called when mouse tracking should be canceled
Reimplemented from CView.
|
overridevirtual |
called when a mouse down event occurs
Reimplemented from CView.
|
overridevirtual |
called when a mouse move event occurs
Reimplemented from CView.
|
overridevirtual |
called when a mouse up event occurs
Reimplemented from CView.
|
overridevirtual |
called when a mouse wheel event occurs
Reimplemented from CView.
|
finalvirtual |
where | location |
axis | mouse wheel axis |
distance | wheel distance |
buttons | button and modifier state |
Reimplemented from CView.
|
overridevirtual |
called when a zoom gesture event occurs
Reimplemented from CView.
|
overridevirtual |
notification that one of the views parent has changed its size
Reimplemented from CView.
void registerViewContainerListener | ( | IViewContainerListener * | listener | ) |
|
virtual |
remove all child views
withForget | bool to indicate if the view's reference counter should be decreased after removed from the container |
Reimplemented in CFrame, CScrollView, and CSplitView.
|
overridevirtual |
view is removed from parent view
parent | parent view |
Reimplemented from CView.
Reimplemented in UIViewSwitchContainer.
|
virtual |
remove a child view
pView | the view which should be removed from the container |
withForget | bool to indicate if the view's reference counter should be decreased after removed from the container |
Reimplemented in CAutoLayoutContainerView, CFrame, CScrollView, and CSplitView.
|
virtual |
enable or disable autosizing subviews.
Per default this is enabled.
|
virtual |
set the background color (will only be drawn if this container is not set to transparent and does not have a background bitmap)
color | the new background color of the container |
Reimplemented in CScrollView.
|
virtual |
|
virtual |
set the offset of the background bitmap
|
protected |
void setTransform | ( | const CGraphicsTransform & | t | ) |
|
overridevirtual |
rect | the new size of the container |
invalid | the views to dirty |
Reimplemented from CView.
|
overridevirtual |
resize view to optimal size
Reimplemented from CView.
|
overridevirtual |
called if view should take focus
Reimplemented from CView.
void unregisterViewContainerListener | ( | IViewContainerListener * | listener | ) |