Vuo
0.4.2
|
Renders a node's port in a QGraphicsScene
.
Typically automatically created by a VuoRendererNode
instance.
Public Member Functions | |
VuoRendererPort (VuoPort *basePort, VuoRendererSignaler *signaler, bool isOutput, bool isReceptorPort=false, bool isFunctionPort=false) | |
Creates a renderer detail for the specified base port. | |
QRectF | boundingRect (void) const |
Returns the bounding rectangle of this port (and its optional name and plug). | |
QPainterPath | shape (void) const |
Returns the shape of the rendered port, for use in collision detection, hit tests, and QGraphicsScene::items() functions. | |
void | paint (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) |
Draws an input or output port (both standard ports and receptor/function ports). | |
VuoRendererPublishedPort * | getProxyPublishedSidebarPort (void) const |
Returns this port's published port sidebar renderering proxy, or NULL if it has none. | |
void | setProxyPublishedSidebarPort (VuoRendererPublishedPort *proxyPort) |
If set, this port will not be drawn; its drawing will be handled by proxySidebarPort . | |
bool | getEligibleForSelection () |
Returns a boolean indicating whether this port has been deemed eligible for selection based on its proximity to the cursor. | |
void | setEligibleForConnection (bool eligible) |
Sets the boolean indicating whether this port is eligible for connection to the cable currently being dragged between ports. | |
void | extendedHoverEnterEvent (bool cableDragUnderway=false) |
Handle mouse hover start events generated by custom code making use of an extended hover range. | |
void | extendedHoverMoveEvent (bool cableDragUnderway=false) |
Handle mouse hover move events generated by custom code making use of an extended hover range. | |
void | extendedHoverLeaveEvent () |
Handle mouse hover leave events generated by custom code making use of an extended hover range. | |
bool | canConnectDirectlyTo (VuoRendererPort *toPort) |
Returns a boolean indicating whether there may be a cable attached directly from this port to toPort , taking into account the respective port types (input vs. | |
bool | isConnectedTo (VuoRendererPort *toPort) |
Returns a boolean indicating whether there is a cable connecting this port to toPort . | |
bool | getInput (void) const |
Returns a boolean indicating whether this port is an input port. | |
bool | getOutput (void) const |
Returns a boolean indicating whether this port is an output port. | |
bool | getReceptorPort (void) const |
Returns a boolean indicating whether this port is a receptor port. | |
bool | getFunctionPort (void) const |
Returns a boolean indicating whether this port is a function port. | |
bool | hasConnectedCable (void) const |
Returns a boolean indicating whether this port has any attached cables. | |
bool | hasConnectedDataCable (void) const |
Returns a boolean indicating whether this port has any attached data+event cables. | |
void | updateGeometry () |
Schedules a redraw of this port. | |
QPainterPath | getPortPath (qreal inset) const |
Returns a closed path representing the port's circle/triangle. | |
QRectF | getPortRect (void) const |
Returns a rectangle encompassing the port's circle. | |
QRectF | getPortConstantTextRect (void) const |
Returns a rect enclosing the string representation of the port's constant value. | |
VuoType * | getDataType (void) const |
Returns the data type associated with this port, or NULL if there is no associated data type. | |
bool | isConstant (void) const |
Returns true if this port has a constant data value. | |
string | getConstantAsString (void) const |
Returns the string representation of this port's constant data value, or an empty string if it has none. | |
VuoRendererPublishedPort * | getPublishedPort () const |
Returns a pointer to the VuoRendererPublishedPort associated with this port, or NULL if this port is not currently published. | |
VuoRendererNode * | getUnderlyingParentNode (void) const |
Returns a pointer to the node to which this port belongs in the underlying Graphviz (.dot/.vuo) representation of the composition. | |
VuoRendererNode * | getRenderedParentNode (void) const |
Returns a pointer to the node currently rendered as this port's parent. | |
VuoRendererPort * | getTypecastParentPort () const |
Returns this port's typecast parent port, or NULL if it has none. | |
void | setTypecastParentPort (VuoRendererPort *typecastParentPort) |
Sets this port's typecast parent port. | |
bool | supportsDisconnectionByDragging (void) |
Returns a boolean indicating whether this port supports cable disconnection by dragging from the port. | |
![]() | |
VuoBaseDetail (string description, VuoPort *base) | |
Creates a VuoNode detail class. | |
VuoPort * | getBase (void) const |
Returns the VuoNode detail class instance's base class instance. | |
void | setBase (VuoPort *base) |
Sets the VuoNode detail class instance's base class instance. | |
Static Public Attributes | |
static const qreal | portSpacing = VuoRendererFonts::thickPenWidth*3.0/4.0 |
Vertical distance, in pixels at 1:1 zoom, between the center points of two ports. | |
static const qreal | portContainerMargin = VuoRendererFonts::thickPenWidth / 6. |
Vertical distance, in pixels at 1:1 zoom, between the outer edge of the first/last port and the node frame rect. | |
Protected Member Functions | |
void | mouseDoubleClickEvent (QGraphicsSceneMouseEvent *event) |
Handle mouse double-click events. | |
void | keyPressEvent (QKeyEvent *event) |
Handle key-press events. | |
void | paintWithOptions (QPainter *painter, bool sidebarPaintMode) |
Draws an input or output port, with customized options: If sidebarPaintMode is true, paints the port for display within the "Published Port" sidebar. | |
QRectF | boundingRectWithOptions (bool sidebarPaintMode) const |
Returns the bounding rectangle of this port, with customized options: If sidebarPaintMode is true, returns the bounding rect of the port for display within the "Published Port" sidebar. | |
QRectF | getNameRect (bool sidebarPaintMode=false) const |
Returns the bounding box of the port's label. | |
QPainterPath | getPortConstantPath (QRectF innerPortRect, QString text, QPainterPath *outsetPath, bool isTypecast=false) const |
Returns a path representing the frame of a port constant. | |
QRectF | getPortConstantTextRectForText (QString text) const |
Returns a rect enclosing the specified text . | |
QPainterPath | getFunctionPortGlyph (void) const |
Returns a path representing the glyph for function ports. | |
void | paintPortName (QPainter *painter, VuoRendererColors *colors, bool sidebarPaintMode) |
Paints the port's label. | |
![]() | |
void | drawBoundingRect (QPainter *painter) |
Draws this item's bounding rect, for debugging. | |
Protected Attributes | |
bool | isReceptorPort |
Is this port a receptor port? | |
VuoRendererSignaler * | signaler |
The Qt signaler used by this port. | |
Friends | |
class | VuoRendererPublishedPort |
VuoRendererPublishedPort needs paintWithOptions(...) and boundingRectWithOptions(...) | |
class | TestVuoRenderer |
Additional Inherited Members | |
![]() | |
static void | setDrawBoundingRects (bool drawBoundingRects) |
Specifies whether bounding rects will be shown the next time the QGraphicsScene is rendered. | |
static void | drawRect (QPainter *painter, QRectF rect) |
Draws a rect, for debugging. | |
|
protected |
Returns the bounding rectangle of this port, with customized options: If sidebarPaintMode
is true, returns the bounding rect of the port for display within the "Published Port" sidebar.
Otherwise, returns the bounding rect of the port for display on the canvas.
bool VuoRendererPort::canConnectDirectlyTo | ( | VuoRendererPort * | toPort | ) |
Returns a boolean indicating whether there may be a cable attached directly from this port to toPort
, taking into account the respective port types (input vs.
output; event-only vs. event+data; respective data types).
void VuoRendererPort::extendedHoverMoveEvent | ( | bool | cableDragUnderway = false | ) |
Handle mouse hover move events generated by custom code making use of an extended hover range.
If the optional highlightOnlyIfConnectable
boolean is set to true, enable hover highlighting for this port only if the port is eligible for connection to the cable currently being connected.
|
protected |
Returns a path representing the frame of a port constant.
If outsetPath
is not NULL, it is given a path that can be stroked with a pen of width 1 without overlapping the returned path.
QRectF VuoRendererPort::getPortConstantTextRect | ( | void | ) | const |
Returns a rect enclosing the string representation of the port's constant value.
If the port does not have a constant value, returns a null rect.
QPainterPath VuoRendererPort::getPortPath | ( | qreal | inset | ) | const |
Returns a closed path representing the port's circle/triangle.
Does not include constant flag (see getPortConstantPath
).
VuoRendererPublishedPort * VuoRendererPort::getPublishedPort | ( | void | ) | const |
Returns a pointer to the VuoRendererPublishedPort associated with this port, or NULL if this port is not currently published.
Assumption: A given internal port will have at most one externally visible published port aliased to it.
VuoRendererNode * VuoRendererPort::getRenderedParentNode | ( | void | ) | const |
Returns a pointer to the node currently rendered as this port's parent.
For ports belonging to typecast nodes, this value will change depending whether the typecast is currently free-standing (in which case that is the node that will be returned) or collapsed (in which case the downstream node to which the typecast is attached is the one that will be returned).
VuoRendererNode * VuoRendererPort::getUnderlyingParentNode | ( | void | ) | const |
Returns a pointer to the node to which this port belongs in the underlying Graphviz (.dot/.vuo) representation of the composition.
For a given port, this value will never change. For typecast ports, this method will always return the original parent typecast node, regardless of whether the typecast is currently free-standing or collapsed.
|
protected |
Draws an input or output port, with customized options: If sidebarPaintMode
is true, paints the port for display within the "Published Port" sidebar.
Otherwise, paints the port for display on the canvas.
void VuoRendererPort::setProxyPublishedSidebarPort | ( | VuoRendererPublishedPort * | proxySidebarPort | ) |
If set, this port will not be drawn; its drawing will be handled by proxySidebarPort
.
Used for ports belonging to "vuo.in" or "vuo.out" nodes, to be rendered within the published port sidebars rather than on the canvas.