VSTGUI: CTabView Class Reference

VSTGUI 4.10 Graphical User Interface Framework not only for VST plugins

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

a tab view More...

`#include <ctabview.h>`

Inheritance diagram for CTabView:

## Public Types
enum | TabPosition { kPositionLeft = 0 , kPositionRight , kPositionTop , kPositionBottom }
enum | TabAlignment { kAlignCenter = 0 , kAlignLeft , kAlignRight , kAlignTop = kAlignLeft , kAlignBottom = kAlignRight }
Public Types inherited from CViewContainer
using | ViewList = std::list<SharedPointer<CView>>
using | ChildViewConstIterator = ViewList::const_iterator
using | ChildViewConstReverseIterator = ViewList::const_reverse_iterator
enum class | MouseListenerCall { MouseDown , MouseMoved , MouseUp , MouseCancel }

## Public Member Functions
| CTabView (const CRect &size, CBitmap *tabBitmap, CBitmap *background=nullptr, TabPosition tabPosition=kPositionTop, int32_t style=0)
| CTabView (const CRect &size, const CRect &tabSize, CBitmap *background=nullptr, TabPosition tabPosition=kPositionTop, int32_t style=0)
Public Member Functions inherited from CViewContainer
| CViewContainer (const CRect &size)
| CViewContainer constructor.
| CViewContainer (const CViewContainer &viewContainer)
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
template<typename Proc>
CView * | findFirstViewIf (Proc filter) const
void | setViewLayouter (const SharedPointer< IViewLayouter > &layouter)
| set a view layouter
SharedPointer< IViewLayouter > | getViewLayouter () const
| get the current view layouter
std::optional< ViewLayout > | calculateViewLayout (const CRect &newSize) const
| calculate the view layout for the new size
bool | applyViewLayout (const ViewLayout &layout)
| apply a previously calculated view layout
bool | inApplyViewLayout () const
| check if a view layout is currently applied
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 | setBackgroundColorDrawStyle (CDrawStyle style)
CDrawStyle | getBackgroundColorDrawStyle () const
void | setInitialFocusView (CView *view)
| set custom initial focus view which is first focused when advanceNextFocusView is called without oldFocus view
CView * | getInitialFocusView () const
| get custom initial focus view
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
Public Member Functions inherited from CView
| CView (const CRect &size)
| CView (const CView &view)
uint64_t | getRuntimeID () const
| get the unique runtime ID
virtual void | dispatchEvent (Event &event)
| dispatch an event
virtual void | 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
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)
Public Member Functions inherited from CBaseObject
| CBaseObject ()=default
| ~CBaseObject () noexcept override=default
| CBaseObject (const CBaseObject &)
CBaseObject & | operator= (const CBaseObject &)
Public Member Functions inherited from ReferenceCounted< int32_t >
| ReferenceCounted ()=default
virtual | ~ReferenceCounted () noexcept=default
| ReferenceCounted (const ReferenceCounted &)
ReferenceCounted & | operator= (const ReferenceCounted &)
| ReferenceCounted ()=default
| ReferenceCounted (const ReferenceCounted &)
virtual | ~ReferenceCounted () noexcept=default
ReferenceCounted & | operator= (const ReferenceCounted &)
void | forget () override
| decrease refcount and delete object if refcount == 0
void | remember () override
| increase refcount
virtual int32_t | getNbReference () const
| get refcount
void | forget () override
| decrease refcount and delete object if refcount == 0
void | remember () override
| increase refcount
virtual int32_t | getNbReference () const
| get refcount
Public Member Functions inherited from IControlListener
virtual | ~IControlListener () noexcept=default
virtual int32_t | controlModifierClicked (CControl *pControl, CButtonState button)
| return 1 if you want the control to not handle it, otherwise 0
virtual void | controlBeginEdit (CControl *pControl)
virtual void | controlEndEdit (CControl *pControl)
virtual void | controlTagWillChange (CControl *pControl)
virtual void | controlTagDidChange (CControl *pControl)

## Tab View Functions
int32_t | numberOfChilds
int32_t | currentTab
TabPosition | tabPosition
int32_t | style
CRect | tabSize
CPoint | tabViewInset
CBitmap * | tabBitmap
CTabChildView * | firstChild
CTabChildView * | lastChild
CTabChildView * | currentChild
virtual bool | addTab (CView *view, UTF8StringPtr name=nullptr, CBitmap *tabBitmap=nullptr)
| add a tab
virtual bool | addTab (CView *view, CControl *button)
| add a tab
virtual bool | removeTab (CView *view)
| remove a tab
virtual bool | removeAllTabs ()
| remove all tabs
virtual bool | selectTab (int32_t index)
| select tab at index
virtual int32_t | getCurrentSelectedTab () const
| get current index of selected tab
virtual CRect & | getTabViewSize (CRect &rect) const
| the size of one tab
virtual void | setTabFontStyle (const CFontRef font, CCoord fontSize=12, CColor selectedColor=kBlackCColor, CColor deselectedColor=kWhiteCColor)
| call this after the tabs are added.
virtual void | alignTabs (TabAlignment alignment=kAlignCenter)
| call this after you have added all tabs to align them according to alignment
virtual void | setTabViewInsets (const CPoint &inset)
void | drawBackgroundRect (CDrawContext *pContext, const CRect &_updateRect) override
| draw the background
void | valueChanged (CControl *pControl) override
void | setViewSize (const CRect &rect, bool invalid=true) override
| set views size
void | setAutosizeFlags (int32_t flags) override
| set autosize flags
CBaseObject * | newCopy () const override
| ~CTabView () noexcept override
void | setCurrentChild (CTabChildView *childView)

## 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
Protected Types inherited from CViewContainer
enum | { kAutosizeSubviews = 1 << (CView::kLastCViewFlag + 1) , kInApplyLayout = 1 << (CView::kLastCViewFlag + 2) }
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 }
| ~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
| ~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)

## Detailed Description

a tab view

## Member Enumeration Documentation

## ◆ TabAlignment

enum TabAlignment

Enumerator
kAlignCenter |
kAlignLeft |
kAlignRight |
kAlignTop |
kAlignBottom |

## ◆ TabPosition

enum TabPosition

Enumerator
kPositionLeft |
kPositionRight |
kPositionTop |
kPositionBottom |

## Constructor & Destructor Documentation

## ◆ CTabView() [1/2]

CTabView | ( | const CRect & | size,
|  | CBitmap * | tabBitmap,
|  | CBitmap * | background = nullptr,
|  | TabPosition | tabPosition = kPositionTop,
|  | int32_t | style = 0 )

## ◆ CTabView() [2/2]

CTabView | ( | const CRect & | size,
|  | const CRect & | tabSize,
|  | CBitmap * | background = nullptr,
|  | TabPosition | tabPosition = kPositionTop,
|  | int32_t | style = 0 )

## ◆ ~CTabView()

~CTabView | ( |  | ) |
| overrideprotectednoexcept

## Member Function Documentation

## ◆ addTab() [1/2]

bool addTab | ( | CView * | view,
|  | CControl * | button )
| virtual

add a tab

## ◆ addTab() [2/2]

bool addTab | ( | CView * | view,
|  | UTF8StringPtr | name = nullptr,
|  | CBitmap * | tabBitmap = nullptr )
| virtual

add a tab

## ◆ alignTabs()

void alignTabs | ( | TabAlignment | alignment = kAlignCenter | ) |
| virtual

call this after you have added all tabs to align them according to alignment

## ◆ drawBackgroundRect()

void drawBackgroundRect | ( | CDrawContext * | pContext,
|  | const CRect & | _updateRect )
| overridevirtual

draw the background

Parameters

  pContext | the context which to use to draw the background
  _updateRect | the area which to draw

Reimplemented from CViewContainer.

## ◆ getCurrentSelectedTab()

virtual int32_t getCurrentSelectedTab | ( |  | ) | const
| inlinevirtual

get current index of selected tab

## ◆ getTabViewSize()

CRect & getTabViewSize | ( | CRect & | rect | ) | const
| virtual

the size of one tab

## ◆ newCopy()

CBaseObject * newCopy | ( |  | ) | const
| inlineoverride

## ◆ removeAllTabs()

bool removeAllTabs | ( |  | ) |
| virtual

remove all tabs

## ◆ removeTab()

bool removeTab | ( | CView * | view | ) |
| virtual

remove a tab

## ◆ selectTab()

bool selectTab | ( | int32_t | index | ) |
| virtual

select tab at index

## ◆ setAutosizeFlags()

void setAutosizeFlags | ( | int32_t | flags | ) |
| overridevirtual

set autosize flags

Reimplemented from CView.

## ◆ setCurrentChild()

void setCurrentChild | ( | CTabChildView * | childView | ) |
| protected

## ◆ setTabFontStyle()

void setTabFontStyle | ( | const CFontRef | font,
|  | CCoord | fontSize = 12,
|  | CColor | selectedColor = kBlackCColor,
|  | CColor | deselectedColor = kWhiteCColor )
| virtual

call this after the tabs are added.

Tabs added after this call will have the default font style.

## ◆ setTabViewInsets()

void setTabViewInsets | ( | const CPoint & | inset | ) |
| virtual

## ◆ setViewSize()

void setViewSize | ( | const CRect & | newSize,
|  | bool | doInvalid = true )
| overridevirtual

set views size

Parameters

  newSize | rect of new size of view
  doInvalid | if true set view dirty

Reimplemented from CView.

## ◆ valueChanged()

void valueChanged | ( | CControl * | pControl | ) |
| overridevirtual

Implements IControlListener.

## Member Data Documentation

## ◆ currentChild

CTabChildView* currentChild
| protected

## ◆ currentTab

int32_t currentTab
| protected

## ◆ firstChild

CTabChildView* firstChild
| protected

## ◆ lastChild

CTabChildView* lastChild
| protected

## ◆ numberOfChilds

int32_t numberOfChilds
| protected

## ◆ style

int32_t style
| protected

## ◆ tabBitmap

CBitmap* tabBitmap
| protected

## ◆ tabPosition

TabPosition tabPosition
| protected

## ◆ tabSize

CRect tabSize
| protected

## ◆ tabViewInset

CPoint tabViewInset
| protected

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

- ctabview.h
- ctabview.cpp