VSTGUI: CExternalView Class Reference

VSTGUI 4.10 Graphical User Interface Framework not only for VST plugins

Classes | Public Types | Public Member Functions | List of all members
CExternalView Class Reference

View to embed non CView views into VSTGUI. More...

`#include <cexternalview.h>`

Inheritance diagram for CExternalView:

## Classes
struct | Impl

## Public Types
using | ExternalViewPtr = std::shared_ptr< ExternalView::IView >
Public Types inherited from CView
enum class | MouseListenerCall { MouseDown , MouseMoved , MouseUp , MouseCancel }

## Public Member Functions
| CExternalView (const CRect &r, const ExternalViewPtr &view)
| ~CExternalView () noexcept
bool | attached (CView *parent) override
| view is attached to a parent view More...
bool | removed (CView *parent) override
| view is removed from parent view More...
void | takeFocus () override
| called if view should take focus More...
void | looseFocus () override
| called if view should loose focus More...
void | setViewSize (const CRect &rect, bool invalid=true) override
| set views size More...
void | parentSizeChanged () override
| notification that one of the views parent has changed its size More...
void | onScaleFactorChanged (CFrame *frame, double newScaleFactor) override
void | setMouseEnabled (bool enable=true) override
| turn on/off mouse usage for this view More...
ExternalView::IView * | getExternalView () const override
| returns the embedded view or nullptr if it has none More...
Public Member Functions inherited from CView
| CView (const CRect &size)
| CView (const CView &view)
virtual void | dispatchEvent (Event &event)
| dispatch an event More...
virtual void | onMouseDownEvent (MouseDownEvent &event)
| called when a mouse down event occurs More...
virtual void | onMouseMoveEvent (MouseMoveEvent &event)
| called when a mouse move event occurs More...
virtual void | onMouseUpEvent (MouseUpEvent &event)
| called when a mouse up event occurs More...
virtual void | onMouseCancelEvent (MouseCancelEvent &event)
| called when mouse tracking should be canceled More...
virtual void | onMouseEnterEvent (MouseEnterEvent &event)
| called when the mouse enters this view More...
virtual void | onMouseExitEvent (MouseExitEvent &event)
| called when the mouse leaves this view More...
virtual void | onMouseWheelEvent (MouseWheelEvent &event)
| called when a mouse wheel event occurs More...
virtual void | onZoomGestureEvent (ZoomGestureEvent &event)
| called when a zoom gesture event occurs More...
bool | getMouseEnabled () const
| get the state of wheather this view uses the mouse or not More...
virtual void | setMouseableArea (const CRect &rect)
| set the area in which the view reacts to the mouse More...
CRect | getMouseableArea () const
| get the area in which the view reacts to the mouse More...
virtual CMouseEventResult | onMouseDown (CPoint &where, const CButtonState &buttons)
| do not use any longer. More...
virtual CMouseEventResult | onMouseUp (CPoint &where, const CButtonState &buttons)
| do not use any longer. More...
virtual CMouseEventResult | onMouseMoved (CPoint &where, const CButtonState &buttons)
| do not use any longer. More...
virtual CMouseEventResult | onMouseCancel ()
| do not use any longer. More...
virtual CMouseEventResult | onMouseEntered (CPoint &where, const CButtonState &buttons)
| do not use any longer. More...
virtual CMouseEventResult | onMouseExited (CPoint &where, const CButtonState &buttons)
| do not use any longer. More...
virtual bool | onWheel (const CPoint &where, const float &distance, const CButtonState &buttons) final
virtual bool | onWheel (const CPoint &where, const CMouseWheelAxis &axis, const float &distance, const CButtonState &buttons)
CRect & | getMouseableArea (CRect &rect) const
| get the area in which the view reacts to the mouse More...
void | setHitTestPath (CGraphicsPath *path)
virtual bool | hitTest (const CPoint &where, const Event &event=noEvent())
| check if where hits this view More...
virtual bool | hitTest (const CPoint &where, const CButtonState &buttons)
bool | doDrag (const DragDescription &dragDescription, const SharedPointer< IDragCallback > &callback={})
| start a drag operation More...
virtual SharedPointer< IDropTarget > | getDropTarget ()
| get the drag target for drag and drop handling More...
void | setDropTarget (const SharedPointer< IDropTarget > &dt)
| set a custom drop target More...
DragResult | doDrag (IDataPackage *source, const CPoint &offset=CPoint(0, 0), CBitmap *dragBitmap=nullptr)
| a drag can only be started from within onMouseDown More...
virtual void | onKeyboardEvent (KeyboardEvent &event)
| called when a keyboard event is dispatched to this view More...
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...
CCoord | getHeight () const
| get the height of the view More...
CCoord | getWidth () const
| get the width of the view More...
const CRect & | getViewSize () const
| read only access to view size More...
virtual CRect | getVisibleViewSize () const
| returns the visible size of the view More...
virtual CPoint & | frameToLocal (CPoint &point) const
| conversion from frame coordinates to local view coordinates More...
virtual CPoint & | localToFrame (CPoint &point) const
| conversion from local view coordinates to frame coordinates More...
virtual void | setAutosizeFlags (int32_t flags)
| set autosize flags More...
int32_t | getAutosizeFlags () const
| get autosize flags More...
virtual bool | sizeToFit ()
| resize view to optimal size More...
virtual bool | wantsFocus () const
| check if view supports focus More...
virtual void | setWantsFocus (bool state)
| set focus support on/off More...
bool | getAttributeSize (const CViewAttributeID id, uint32_t &outSize) const
| get the size of an attribute More...
bool | getAttribute (const CViewAttributeID id, const uint32_t inSize, void *outData, uint32_t &outSize) const
| get an attribute More...
bool | setAttribute (const CViewAttributeID id, const uint32_t inSize, const void *inData)
| set an attribute More...
bool | removeAttribute (const CViewAttributeID id)
| remove an attribute More...
template<typename T >
bool | setAttribute (const CViewAttributeID id, const T &data)
| set an attribute More...
template<typename T >
bool | getAttribute (const CViewAttributeID id, T &data) const
| get an attribute More...
virtual void | setBackground (CBitmap *background)
| set the background image of this view More...
CBitmap * | getBackground () 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...
CBitmap * | getDisabledBackground () const
| get background image used when the mouse is not enabled More...
CBitmap * | getDrawBackground () const
| get the bitmap which is drawn depending on the enabled state. More...
virtual void | setTransparency (bool val)
| set views transparent state More...
bool | getTransparency () const
| get views transparent state More...
virtual void | setAlphaValue (float alpha)
| set alpha value which will be applied when drawing this view More...
float | getAlphaValue () const
| get alpha value More...
bool | isAttached () const
| is view attached to a parentView More...
void | setSubviewState (bool state)
bool | isSubview () const
CView * | getParentView () const
| get parent view More...
CFrame * | getFrame () const
| get frame More...
virtual VSTGUIEditorInterface * | getEditor () const
| get editor More...
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 More...
template<typename T >
T & | translateToGlobal (T &t, bool ignoreFrame=false) const
| translates a local coordinate to a global one using parent transforms More...
template<typename T >
T | translateToGlobal (const T &t, bool ignoreFrame=false) const
| translates a local coordinate to a global one using parent transforms More...
template<typename T >
T & | translateToLocal (T &t, bool ignoreFrame=false) const
| translates a global coordinate to a local one using parent transforms More...
template<typename T >
T | translateToLocal (const T &t, bool ignoreFrame=false) const
| translates a local coordinate to a global one using parent transforms More...
virtual CViewContainer * | asViewContainer ()
virtual const CViewContainer * | asViewContainer () const
CMouseEventResult | callMouseListener (MouseListenerCall type, CPoint pos, CButtonState buttons)
void | callMouseListenerEnteredExited (bool mouseEntered)
CMessageResult | notify (CBaseObject *sender, IdStringPtr message) override
void | beforeDelete () override
CBaseObject * | newCopy () const override
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. 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...
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...
virtual bool | wantsWindowActiveStateChangeNotification () const
| whether this view wants to be informed if the window's active state changes More...
virtual void | onWindowActivate (bool state)
| called when the active state of the window changes More...
void | setTooltipText (UTF8StringPtr text)
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< T >
| ReferenceCounted ()=default
virtual | ~ReferenceCounted () noexcept=default
| ReferenceCounted (const ReferenceCounted &)
ReferenceCounted & | operator= (const ReferenceCounted &)
void | forget () override
| decrease refcount and delete object if refcount == 0 More...
void | remember () override
| increase refcount More...
virtual int32_t | getNbReference () const
| get refcount More...
virtual void | forget ()=0
| decrease refcount and delete object if refcount == 0 More...
virtual void | remember ()=0
| increase refcount More...
Public Member Functions inherited from IScaleFactorChangedListener
virtual | ~IScaleFactorChangedListener () noexcept=default
virtual void | onScaleFactorChanged (CFrame *frame, double newScaleFactor)=0
Public Member Functions inherited from IViewEmbedder
virtual | ~IViewEmbedder () noexcept=default
virtual IView * | getExternalView () const =0
| returns the embedded view or nullptr if it has none More...

## 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. More...
static uint32_t | idleRate = 30
| global idle rate in Hz, defaults to 30 Hz More...
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 inherited from CView
| ~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

View to embed non CView views into VSTGUI.

This view is the umbrella for views from other view systems (like HWND child windows or NSViews). The actual implementation for the external view must be done via ExternalView::IView

## Member Typedef Documentation

## ◆ ExternalViewPtr

using ExternalViewPtr = std::shared_ptr<ExternalView::IView>

## Constructor & Destructor Documentation

## ◆ CExternalView()

CExternalView | ( | const CRect & | r,
|  | const ExternalViewPtr & | view
| ) |  |

## ◆ ~CExternalView()

~CExternalView | ( |  | ) |
| noexcept

## Member Function Documentation

## ◆ attached()

bool attached | ( | CView * | parent | ) |
| overridevirtual

view is attached to a parent view

Parameters

  parent | parent view

Returns
  true if view successfully attached to parent

Reimplemented from CView.

## ◆ getExternalView()

ExternalView::IView * getExternalView | ( |  | ) | const
| overridevirtual

returns the embedded view or nullptr if it has none

Implements IViewEmbedder.

## ◆ looseFocus()

void looseFocus | ( |  | ) |
| overridevirtual

called if view should loose focus

Reimplemented from CView.

## ◆ onScaleFactorChanged()

void onScaleFactorChanged | ( | CFrame * | frame,
|  | double | newScaleFactor
| ) |  |
| overridevirtual

Implements IScaleFactorChangedListener.

## ◆ parentSizeChanged()

void parentSizeChanged | ( |  | ) |
| overridevirtual

notification that one of the views parent has changed its size

Reimplemented from CView.

## ◆ removed()

bool removed | ( | CView * | parent | ) |
| overridevirtual

view is removed from parent view

Parameters

  parent | parent view

Returns
  true if view successfully removed from parent

Reimplemented from CView.

## ◆ setMouseEnabled()

void setMouseEnabled | ( | bool | bEnable = `true` | ) |
| overridevirtual

turn on/off mouse usage for this view

Reimplemented from CView.

## ◆ 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.

## ◆ takeFocus()

void takeFocus | ( |  | ) |
| overridevirtual

called if view should take focus

Reimplemented from CView.

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

- cexternalview.h
- cexternalview.cpp