VSTGUI
4.10
Graphical User Interface Framework not only for VST plugins
|
Base Class of all view objects. More...
Classes | |
struct | Impl |
Public Types | |
enum | MouseListenerCall { MouseDown, MouseMoved, MouseUp, MouseCancel } |
Public Member Functions | |
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 More... | |
virtual void | onWindowActivate (bool state) |
called when the active state of the window changes More... | |
void | setTooltipText (UTF8StringPtr text) |
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 |
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) final |
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... | |
bool | getMouseEnabled () const |
get the state of wheather this view uses the mouse or not More... | |
void | setMouseableArea (const CRect &rect) |
set the area in which the view reacts to the mouse More... | |
CRect & | getMouseableArea (CRect &rect) const |
get 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... | |
Drag & Drop Methods | |
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... | |
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 CRect & | getViewSize () 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 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... | |
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... | |
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... | |
Background Methods | |
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... | |
Transparency Methods | |
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... | |
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 | |
CView * | getParentView () const |
get parent view More... | |
CFrame * | getFrame () const |
get frame More... | |
virtual VSTGUIEditorInterface * | getEditor () const |
get editor More... | |
Animation Methods | |
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) |
void | removeAnimation (IdStringPtr name) |
void | removeAllAnimations () |
View Listener Methods | |
void | registerViewListener (IViewListener *listener) |
void | unregisterViewListener (IViewListener *listener) |
void | registerViewMouseListener (IViewMouseListener *listener) |
void | unregisterViewMouseListener (IViewMouseListener *listener) |
Coordinate translation Methods | |
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... | |
![]() | |
CBaseObject ()=default | |
~CBaseObject () noexcept override=default | |
CBaseObject (const CBaseObject &o) | |
CBaseObject & | operator= (const CBaseObject &obj) |
![]() | |
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... | |
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, kHasAlpha = 1 << 8, kHasBackground = 1 << 9, kHasDisabledBackground = 1 << 10, kHasMouseableArea = 1 << 11, kLastCViewFlag = 11 } |
Protected Member Functions | |
~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) |
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. 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. 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... | |
Base Class of all view objects.
|
protected |
|
strong |
|
overrideprotecteddefaultnoexcept |
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 |
||
) |
|
inlinevirtual |
Reimplemented in CViewContainer.
|
inlinevirtual |
Reimplemented in CViewContainer.
|
virtual |
view is attached to a parent view
parent | parent view |
Reimplemented in CFrame, CViewContainer, CSegmentButton, CDataBrowser, CSplitView, CFontChooser, UIViewSwitchContainer, CListControl, COpenGLView, CShadowViewContainer, CLayeredViewContainer, and CAutoLayoutContainerView.
|
overridevirtual |
Reimplemented from ReferenceCounted< T >.
Reimplemented in CViewContainer.
CMouseEventResult callMouseListener | ( | MouseListenerCall | type, |
CPoint | pos, | ||
CButtonState | buttons | ||
) |
void callMouseListenerEnteredExited | ( | bool | mouseEntered | ) |
|
inlinevirtual |
bool doDrag | ( | const DragDescription & | dragDescription, |
const SharedPointer< IDragCallback > & | callback = {} |
||
) |
start a drag operation
A drag can only be started from within onMouseDown or onMouseMove.
This method may return immediately before the drop occurs, if you want to be notified about the result you have to provide a callback object.
dragDescription | drag description |
callback | callback |
DragResult doDrag | ( | IDataPackage * | source, |
const CPoint & | offset = CPoint (0, 0) , |
||
CBitmap * | dragBitmap = nullptr |
||
) |
a drag can only be started from within onMouseDown
See CDropSource to create the source data package
source | source drop |
offset | bitmap offset |
dragBitmap | bitmap to drag |
|
virtual |
called if the view should draw itself
pContext | draw context in which to draw |
Reimplemented in COptionMenu, CTextButton, CFrame, CAnimKnob, CSlider, CKickButton, CRockerSwitch, CViewContainer, CSegmentButton, CKnob, CParamDisplay, CCheckBox, CControl, CAnimationSplashScreen, CTextEdit, CGradientView, CTextLabel, CVuMeter, CScrollbar, CListControl, COnOffButton, CSwitchBase, CSearchTextEdit, CSplashScreen, CXYPad, CAutoAnimation, CMovieBitmap, CMovieButton, CSpecialDigit, and CControlCreatorDummyControl.
|
inlinevirtual |
called if the view should draw itself
Reimplemented in CFrame, CViewContainer, CSegmentButton, CMultiLineTextLabel, CListControl, CShadowViewContainer, and CLayeredViewContainer.
conversion from frame coordinates to local view coordinates
point | location |
Reimplemented in CFrame, and CViewContainer.
float getAlphaValue | ( | ) | const |
get alpha value
bool getAttribute | ( | const CViewAttributeID | aId, |
const uint32_t | inSize, | ||
void * | outData, | ||
uint32_t & | outSize | ||
) | const |
get an attribute
aId | the ID of the Attribute |
inSize | the size of the outData pointer |
outData | a pointer where to copy the attribute data |
outSize | the size in bytes which was copied into outData |
|
inline |
get an attribute
bool getAttributeSize | ( | const CViewAttributeID | aId, |
uint32_t & | outSize | ||
) | const |
get the size of an attribute
aId | the ID of the Attribute |
outSize | on return the size of the attribute |
int32_t getAutosizeFlags | ( | ) | const |
get autosize flags
CBitmap * getBackground | ( | ) | const |
get the background image of this view
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 |
get the drag target for drag and drop handling
Reimplemented in CViewContainer.
|
virtual |
get editor
Reimplemented in CFrame.
CFrame * getFrame | ( | ) | const |
get frame
CGraphicsTransform getGlobalTransform | ( | bool | ignoreFrame = false | ) | const |
get the active global transform for this view
|
inline |
get the height of the view
|
protected |
CRect getMouseableArea | ( | ) | const |
get the area in which the view reacts to the mouse
|
inline |
get the state of wheather this view uses the mouse or not
CView * getParentView | ( | ) | const |
get parent view
|
inline |
get views transparent state
const CRect & getViewSize | ( | ) | const |
read only access to view size
|
virtual |
returns the visible size of the view
|
inline |
get the width of the view
|
protected |
|
virtual |
check if where hits this view
where | location |
buttons | button and modifier state |
Reimplemented in CViewContainer, and CSplashScreen.
|
inlinevirtual |
mark whole view as invalid
Reimplemented in CFrame, CViewContainer, and CLayeredViewContainer.
|
virtual |
mark rect as invalid
rect | rect to invalidate |
Reimplemented in CFrame, CViewContainer, COpenGLView, and CLayeredViewContainer.
|
inline |
is view attached to a parentView
|
inlinevirtual |
check if view is dirty
Reimplemented in CViewContainer, and CControl.
|
inline |
|
inline |
get visibility state
conversion from local view coordinates to frame coordinates
point | location |
Reimplemented in CFrame, and CViewContainer.
|
virtual |
called if view should loose focus
Reimplemented in COptionMenu, CViewContainer, and CTextEdit.
|
inlineoverride |
|
overridevirtual |
sender | message sender |
message | message text |
Reimplemented from CBaseObject.
Reimplemented in CViewContainer.
|
inlinevirtual |
called on idle when view wants idle
Reimplemented in CVuMeter.
|
virtual |
called if a key down event occurs and this view has focus
keyCode | key code of pressed key |
Reimplemented in COptionMenu, CTextButton, CFrame, CKickButton, CRockerSwitch, CSegmentButton, CDataBrowser, CCheckBox, CHorizontalSwitch, CVerticalSwitch, CTextEdit, CFontChooser, CSliderBase, CListControl, COnOffButton, CKnobBase, CXYPad, and CMovieButton.
|
virtual |
called if a key up event occurs and this view has focus
keyCode | key code of pressed key |
Reimplemented in CTextButton, CFrame, CKickButton, and CRockerSwitch.
|
virtual |
called when mouse tracking should be canceled
Reimplemented in CTextButton, CKickButton, CRockerSwitch, CViewContainer, CCheckBox, CSliderBase, CScrollbar, CKnobBase, COnOffButton, CSwitchBase, CXYPad, and CMovieButton.
|
virtual |
called when a mouse down event occurs
where | mouse location of mouse down |
buttons | button and modifier state |
Reimplemented in COptionMenu, CTextButton, CFrame, CKickButton, CRockerSwitch, CViewContainer, CSegmentButton, CDataBrowser, CCheckBox, CAnimationSplashScreen, CTextEdit, CSliderBase, CScrollbar, CListControl, CKnobBase, CSplashScreen, COnOffButton, CSwitchBase, CXYPad, CSearchTextEdit, CMovieButton, and CAutoAnimation.
|
inlinevirtual |
called when the mouse enters this view
Reimplemented in CScrollbar.
|
inlinevirtual |
called when the mouse leaves this view
Reimplemented in CFrame, CScrollbar, and CListControl.
|
virtual |
called when a mouse move event occurs
where | mouse location of mouse move |
buttons | button and modifier state |
Reimplemented in CTextButton, CFrame, CKickButton, CRockerSwitch, CViewContainer, CCheckBox, CSliderBase, CScrollbar, CListControl, CKnobBase, COnOffButton, CSwitchBase, CXYPad, and CMovieButton.
|
virtual |
called when a mouse up event occurs
where | mouse location of mouse up |
buttons | button and modifier state |
Reimplemented in CTextButton, CFrame, CKickButton, CRockerSwitch, CViewContainer, CCheckBox, CSliderBase, CScrollbar, CListControl, CKnobBase, COnOffButton, CSwitchBase, CXYPad, and CMovieButton.
|
inlinefinalvirtual |
|
virtual |
called if a mouse wheel event is happening over this view
where | location |
axis | mouse wheel axis |
distance | wheel distance |
buttons | button and modifier state |
Reimplemented in CFrame, CViewContainer, CRockerSwitch, CScrollView, CTextLabel, CSliderBase, CScrollbar, CKnobBase, and CXYPad.
|
inlinevirtual |
called when the active state of the window changes
|
inlinevirtual |
notification that one of the views parent has changed its size
Reimplemented in CViewContainer, CTextEdit, COpenGLView, and CLayeredViewContainer.
void registerViewListener | ( | IViewListener * | listener | ) |
void registerViewMouseListener | ( | IViewMouseListener * | listener | ) |
void removeAllAnimations | ( | ) |
void removeAnimation | ( | IdStringPtr | name | ) |
bool removeAttribute | ( | const CViewAttributeID | id | ) |
remove an attribute
|
virtual |
view is removed from parent view
parent | parent view |
Reimplemented in CTextButton, CViewContainer, CParamDisplay, CDataBrowser, CSplitView, UIViewSwitchContainer, COpenGLView, CShadowViewContainer, and CLayeredViewContainer.
|
virtual |
set alpha value which will be applied when drawing this view
Reimplemented in CLayeredViewContainer.
|
protected |
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.
aId | the ID of the Attribute |
inSize | the size of the outData pointer |
inData | a pointer to the data |
|
inline |
set an attribute
|
virtual |
set autosize flags
Reimplemented in CDataBrowser, CScrollView, and CTabView.
|
virtual |
|
virtual |
|
virtual |
set background image used when the mouse is not enabled
background | new disabled background bitmap |
void setDropTarget | ( | const SharedPointer< IDropTarget > & | dt | ) |
set a custom drop target
void setHitTestPath | ( | CGraphicsPath * | path | ) |
path | the 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. |
void setMouseableArea | ( | const CRect & | rect | ) |
set the area in which the view reacts to the mouse
|
virtual |
turn on/off mouse usage for this view
|
protected |
|
protected |
void setSubviewState | ( | bool | state | ) |
void setTooltipText | ( | UTF8StringPtr | text | ) |
|
virtual |
set views transparent state
Reimplemented in CScrollView.
|
protected |
|
virtual |
set views size
newSize | rect of new size of view |
doInvalid | if true set view dirty |
Reimplemented in CTextButton, CFrame, CViewContainer, CSegmentButton, CMultiLineTextLabel, CDataBrowser, CScrollView, CTextEdit, CSplitView, CTabView, CSliderBase, CScrollbar, CListControl, CTextLabel, CVuMeter, CGradientView, CShadowViewContainer, COpenGLView, CLayeredViewContainer, CKnobBase, and CAutoLayoutContainerView.
|
virtual |
set visibility state
Reimplemented in COpenGLView.
|
virtual |
set focus support on/off
Reimplemented in CDataBrowser.
void setWantsIdle | ( | bool | state | ) |
enable/disable onIdle() callback
|
inlinevirtual |
resize view to optimal size
Reimplemented in CTextButton, CAnimKnob, CViewContainer, CSlider, CKickButton, CRockerSwitch, CMultiLineTextLabel, CCheckBox, CAnimationSplashScreen, CRowColumnView, CSplitView, CVuMeter, CTextLabel, COnOffButton, CKnobBase, CSwitchBase, CMovieButton, and CMovieBitmap.
|
virtual |
called if view should take focus
Reimplemented in COptionMenu, CViewContainer, and CTextEdit.
|
inline |
translates a local coordinate to a global one using parent transforms
|
inline |
translates a local coordinate to a global one using parent transforms
|
inline |
translates a global coordinate to a local one using parent transforms
|
inline |
translates a local coordinate to a global one using parent transforms
void unregisterViewListener | ( | IViewListener * | listener | ) |
void unregisterViewMouseListener | ( | IViewMouseListener * | listener | ) |
|
inlinevirtual |
check if view supports focus
Reimplemented in CDataBrowser, and CTextEdit.
|
inline |
returns if the view wants idle callback or not
|
inlinevirtual |
whether this view wants to be informed if the window's active state changes
|
static |
global idle rate in Hz, defaults to 30 Hz
|
static |
if this is true, setting a view dirty will call invalid() instead of checking it in idle.
Default value is false.