VCV Rack API v2
|
A Widget that stops propagation of all recursive PositionEvents (such as ButtonEvent) but gives a chance for children to consume first. More...
#include <OpaqueWidget.hpp>
Public Member Functions | |
void | onHover (const HoverEvent &e) override |
void | onButton (const ButtonEvent &e) override |
void | onHoverKey (const HoverKeyEvent &e) override |
void | onHoverText (const HoverTextEvent &e) override |
void | onHoverScroll (const HoverScrollEvent &e) override |
void | onDragHover (const DragHoverEvent &e) override |
void | onPathDrop (const PathDropEvent &e) override |
Public Member Functions inherited from rack::widget::Widget | |
virtual | ~Widget () |
math::Rect | getBox () |
void | setBox (math::Rect box) |
Calls setPosition() and then setSize(). | |
math::Vec | getPosition () |
void | setPosition (math::Vec pos) |
Sets position and triggers RepositionEvent if position changed. | |
math::Vec | getSize () |
void | setSize (math::Vec size) |
Sets size and triggers ResizeEvent if size changed. | |
widget::Widget * | getParent () |
bool | isVisible () |
void | setVisible (bool visible) |
Sets visible and triggers ShowEvent or HideEvent if changed. | |
void | show () |
Makes Widget visible and triggers ShowEvent if changed. | |
void | hide () |
Makes Widget not visible and triggers HideEvent if changed. | |
void | requestDelete () |
Requests this Widget's parent to delete it in the next step(). | |
virtual math::Rect | getChildrenBoundingBox () |
Returns the smallest rectangle containing this widget's children (visible and invisible) in its local coordinates. | |
virtual math::Rect | getVisibleChildrenBoundingBox () |
bool | isDescendantOf (Widget *ancestor) |
Returns whether ancestor is a parent or distant parent of this widget. | |
virtual math::Vec | getRelativeOffset (math::Vec v, Widget *ancestor) |
Returns v (given in local coordinates) transformed into the coordinate system of ancestor . | |
math::Vec | getAbsoluteOffset (math::Vec v) |
Returns v transformed into world/root/global/absolute coordinates. | |
virtual float | getRelativeZoom (Widget *ancestor) |
Returns the zoom level in the coordinate system of ancestor . | |
float | getAbsoluteZoom () |
virtual math::Rect | getViewport (math::Rect r=math::Rect::inf()) |
Returns a subset of the given Rect bounded by the box of this widget and all ancestors. | |
template<class T > | |
T * | getAncestorOfType () |
template<class T > | |
T * | getFirstDescendantOfType () |
bool | hasChild (Widget *child) |
Checks if the given widget is a child of this widget. | |
void | addChild (Widget *child) |
Adds widget to the top of the children. | |
void | addChildBottom (Widget *child) |
Adds widget to the bottom of the children. | |
void | addChildBelow (Widget *child, Widget *sibling) |
Adds widget directly below another widget. | |
void | addChildAbove (Widget *child, Widget *sibling) |
void | removeChild (Widget *child) |
Removes widget from list of children if it exists. | |
void | clearChildren () |
Removes and deletes all child Widgets. | |
virtual void | step () |
Advances the module by one frame. | |
virtual void | draw (const DrawArgs &args) |
Draws the widget to the NanoVG context. | |
virtual DEPRECATED void | draw (NVGcontext *vg) |
Override draw(const DrawArgs &args) instead. | |
virtual void | drawLayer (const DrawArgs &args, int layer) |
Draw additional layers. | |
void | drawChild (Widget *child, const DrawArgs &args, int layer=0) |
Draws a particular child. | |
template<typename TMethod , class TEvent > | |
void | recurseEvent (TMethod f, const TEvent &e) |
Recurses an event to all visible Widgets. | |
template<typename TMethod , class TEvent > | |
void | recursePositionEvent (TMethod f, const TEvent &e) |
Recurses an event to all visible Widgets until it is consumed. | |
virtual void | onDoubleClick (const DoubleClickEvent &e) |
virtual void | onEnter (const EnterEvent &e) |
virtual void | onLeave (const LeaveEvent &e) |
virtual void | onSelect (const SelectEvent &e) |
virtual void | onDeselect (const DeselectEvent &e) |
virtual void | onSelectKey (const SelectKeyEvent &e) |
virtual void | onSelectText (const SelectTextEvent &e) |
virtual void | onDragStart (const DragStartEvent &e) |
virtual void | onDragEnd (const DragEndEvent &e) |
virtual void | onDragMove (const DragMoveEvent &e) |
virtual void | onDragEnter (const DragEnterEvent &e) |
virtual void | onDragLeave (const DragLeaveEvent &e) |
virtual void | onDragDrop (const DragDropEvent &e) |
virtual void | onAction (const ActionEvent &e) |
virtual void | onChange (const ChangeEvent &e) |
virtual void | onDirty (const DirtyEvent &e) |
virtual void | onReposition (const RepositionEvent &e) |
virtual void | onResize (const ResizeEvent &e) |
virtual void | onAdd (const AddEvent &e) |
virtual void | onRemove (const RemoveEvent &e) |
virtual void | onShow (const ShowEvent &e) |
virtual void | onHide (const HideEvent &e) |
virtual void | onContextCreate (const ContextCreateEvent &e) |
virtual void | onContextDestroy (const ContextDestroyEvent &e) |
Public Member Functions inherited from rack::WeakBase | |
~WeakBase () | |
size_t | getWeakCount () |
Additional Inherited Members | |
Public Types inherited from rack::widget::Widget | |
using | BaseEvent = widget::BaseEvent |
Public Attributes inherited from rack::widget::Widget | |
math::Rect | box = math::Rect(math::Vec(), math::Vec(INFINITY, INFINITY)) |
Position relative to parent and size of widget. | |
Widget * | parent = NULL |
Automatically set when Widget is added as a child to another Widget. | |
std::list< Widget * > | children |
bool | visible = true |
Disables rendering but allow stepping. | |
bool | requestedDelete = false |
If set to true, parent will delete Widget in the next step(). | |
Public Attributes inherited from rack::WeakBase | |
WeakHandle * | weakHandle = nullptr |
A Widget that stops propagation of all recursive PositionEvents (such as ButtonEvent) but gives a chance for children to consume first.
Also consumes HoverEvent and ButtonEvent for left-clicks.
|
inlineoverridevirtual |
Reimplemented from rack::widget::Widget.
Reimplemented in rack::app::RackScrollWidget, rack::app::RackWidget, rack::app::Scene, rack::app::SliderKnob, and rack::ui::ScrollWidget.
|
inlineoverridevirtual |
Reimplemented from rack::widget::Widget.
Reimplemented in rack::app::ParamWidget, rack::app::PortWidget, rack::app::RackScrollWidget, rack::app::RackWidget, rack::app::SliderKnob, rack::app::SvgButton, rack::ui::Scrollbar, rack::ui::ScrollWidget, and rack::ui::TextField.
|
inlineoverridevirtual |
Reimplemented from rack::widget::Widget.
Reimplemented in rack::app::RackScrollWidget, rack::app::RackWidget, rack::app::Scene, and rack::ui::ScrollWidget.
|
inlineoverridevirtual |
Reimplemented from rack::widget::Widget.
|
inlineoverridevirtual |
Reimplemented from rack::widget::Widget.
Reimplemented in rack::app::RackScrollWidget, and rack::ui::ScrollWidget.
|
inlineoverridevirtual |
Reimplemented from rack::widget::Widget.
Reimplemented in rack::app::RackWidget, rack::app::Scene, and rack::ui::TextField.
|
inlineoverridevirtual |
Reimplemented from rack::widget::Widget.
Reimplemented in rack::app::Scene.