Skip to content

DIWNE::SequenceNodeContainer

#include "DIWNE/Basic/SequenceNodeContainer.h"

Inherits from DIWNE::BasicNode, DIWNE::INodeContainer, DIWNE::Node, DIWNE::DiwneObject, std::enable_shared_from_this< DiwneObject >

Public Functions

Name
SequenceNodeContainer(NodeEditor & editor, std::string label ="SequenceNodeContainer")
virtual voidcenterContent(DrawInfo & context) override
NodeDropZone &getDropZone()
virtual NodeList &getNodeList() override
virtual NodeRangegetNodes() const override
virtual voidonDestroy(bool logEvent) override<br>Gets called the moment the object is marked for deletion by destroy().

Protected Attributes

Name
std::shared_ptr< NodeDropZone >m_dropZone

Additional inherited members

Public Functions inherited from DIWNE::BasicNode

Name
BasicNode(NodeEditor & editor, std::string label)
virtual voidbegin(DrawInfo & context) override<br>First method to be called during object drawing.
virtual voidbottomContent(DrawInfo & context)
virtual voidcontent(DrawInfo & context) override<br>Called after begin() during drawing.
virtual voiddrawBody()
virtual voiddrawHeader(ImDrawFlags corners =ImDrawFlags_RoundCornersTop)
virtual voidend(DrawInfo & context) override<br>Called after content().
const std::string &getTopLabel() const
virtual voidleftContent(DrawInfo & context)
virtual voidrightContent(DrawInfo & context)
voidsetTopLabel(const std::string & str)
virtual voidtopContent(DrawInfo & context)
virtual voidtranslate(const ImVec2 & vec) override<br>Move the object's rect and any other associated positional data.
virtual voidupdateLayout(DrawInfo & context) override<br>Updates object's m_rect, m_displayRect and any other object size variables.

Public Attributes inherited from DIWNE::BasicNode

Name
DiwnePanelm_center
DiwnePanelm_left
DiwnePanelm_middle
DiwnePanelm_right
DiwnePanelm_top

Protected Attributes inherited from DIWNE::BasicNode

Name
boolm_bottomSpacing <br>Whether to add a gap between the node content and the end.
floatm_contentSpacing <br>Gap between left, center and right panels (-1 for default item spacing).
boolm_headerSpacing <br>Whether to add a gap between the node header and its content.
std::stringm_topLabel
floatm_topLabelWidth <br>Top label width in DIWNE coordinates.
floatm_topLabelWidthChange <br>Change of top label width since last frame, used to prevent layout flicker.

Public Functions inherited from DIWNE::INodeContainer

Name
virtual~INodeContainer() =default

Public Functions inherited from DIWNE::Node

Name
Node(const Node & other) =delete
Node(NodeEditor & diwne, std::string labelDiwne ="DiwneNode")
virtual voidafterDraw(DrawInfo & context) override<br>Called last during drawing.
virtual boolallowDrawing() override<br>Decide whether the object should be drawn (when outside the window for example)
virtual voidbegin(DrawInfo & context) override<br>First method to be called during object drawing.
virtual voidcontent(DrawInfo & context) override<br>Called after begin() during drawing.
virtual voiddrawSelectionIndicator(DrawInfo & context)
virtual voidend(DrawInfo & context) override<br>Called after content().
boolgetFlag(char index) const<br>Get the node bit flag value at index.
virtual voidonDrag(DrawInfo & context, bool dragStart, bool dragEnd) override<br>This method gets called when the object is being dragged.
virtual voidonHover(DrawInfo & context) override<br>This method gets called when the object is hovered.
virtual voidonSelection(bool selected) override
Node &operator=(const Node & other) =delete
voidsetFlag(char index, bool value)<br>Set the node bit flag value at index.
virtual voidupdateLayout(DrawInfo & context) override<br>Updates object's m_rect, m_displayRect and any other object size variables.
boolwillBeRemovedFromContainer(const DiwneObject * container)

Protected Functions inherited from DIWNE::Node

Name
virtual voidafterDrawDiwne(DrawInfo & context) override<br>Updates layout, processes interactions and then calls the user afterDraw() method.
virtual boolprocessSelectDiwne(DrawInfo & context) override<br>Processes any interactions related to whether the object should be selected.
virtual voidsetInitialPositionDiwne() override<br>Internal helper for setting the object's initial position.

Public Attributes inherited from DIWNE::Node

Name
boolm_forceDraw <br>Internal flag to force drawing of the node, used by pins (TODO: move to DiwneObject?)

Protected Attributes inherited from DIWNE::Node

Name
NodeFlagm_flag <br>The node flag bit field.

Public Functions inherited from DIWNE::DiwneObject

Name
DiwneObject(DIWNE::NodeEditor & diwne, std::string labelDiwne)
virtual~DiwneObject()
virtual voidafterDraw(DrawInfo & context)<br>Called last during drawing.
virtual boolallowDragStart() const<br>Determines whether a drag operation can start from this object.
virtual boolallowDrawing()<br>Decide whether the object should be drawn (when outside the window for example)
virtual boolallowHover() const<br>Determines whether the object can be hovered.
virtual boolallowInteraction() const<br>Decide whether the object should react to user input in general.
virtual boolallowPopup() const<br>Determines whether a popup can be raised over the object.
virtual boolallowPress(const DrawInfo & context) const<br>Determines whether the object can be pressed.
virtual boolallowSelectOnClick(const DrawInfo & context) const<br>Determines whether the object can be selected by clicking it (eg.
template <typename T =DiwneObject&gt; <br>T *as()<br>Returns a raw pointer to itself casted to a type.
virtual voidbegin(DrawInfo & context) =0<br>First method to be called during object drawing.
virtual voidcontent(DrawInfo & context) =0<br>Called after begin() during drawing.
virtual voiddestroy(bool logEvent =true)<br>Marks the object for lazy destruction/deallocation and removal from any containers (like the node editor).
virtual voiddraw(DrawMode drawMode =DrawMode_Interactive)<br>Generic draw method meant to be used by external code.
virtual voiddrawDiwne(DrawInfo & context, DrawMode drawMode =DrawMode_Interactive)<br>Internal draw method.
DrawInfodrawDiwneEx(DrawInfo & context, DrawMode drawMode =DrawMode_Interactive)
virtual voidend(DrawInfo & context) =0<br>Called after content().
virtual voidfinalize(DrawInfo & context)<br>The final method to be called, gets called every frame and doesn't do any drawing.
ImRectgetDisplayRect() const<br>Object's bounds aligned to current viewport pixel boundaries.
IDgetId() const
DiwneObject *getParentObject() const
ImVec2getPosition() const<br>Returns the top left corner of the object's rect.
virtual ImRectgetRect() const<br>Rectangle bounds of the object in DIWNE coordinates (editor canvas coordinates).
boolgetSelectable()
virtual boolgetSelected() const<br>Whether the object is selected or not.
StyleOverride *getStyleOverride() const
virtual voidinitialize(DrawInfo & context)<br>First method to be called every frame.
boolisAnyParentSelected()
boolisChildObject() const
boolisChildOfObject(DiwneObject * parent)
boolisDestroyed() const
boolisDragging(DrawInfo & context)<br>Is this object the source of an active dragging operation?
boolisFixed() const<br>Fixed objects are ones rendered at a position determined by some other object.
boolisRendered() const
boolisToBeBroughtToFront()
virtual voidonDrag(DrawInfo & context, bool dragStart, bool dragEnd)<br>This method gets called when the object is being dragged.
virtual voidonHover(DrawInfo & context)<br>This method gets called when the object is hovered.
virtual voidonPopup()
virtual voidonPressed(bool justPressed, DrawInfo & context)<br>Called when the object is pressed, meaning a key is pressed over it.
virtual voidonReleased(bool justReleased, DrawInfo & context)<br>Called when the object is not pressed.
virtual voidonSelection(bool selected)
voidopenPopup()<br>Request to open the object's popup if possible.
booloperator!=(const DiwneObject & rhs) const
booloperator==(const DiwneObject & rhs) const
virtual voidpopupContent(DrawInfo & context)<br>Content of popup menu raised on this objec.
virtual voidprocessInteractions(DrawInfo & context)<br>Method for reacting to user input after the object is fully drawn and its dimensions are known.
voidsetBringToFront(bool val)<br>Marks the object to be brought to front (be drawn first).
voidsetFixed(bool val)
voidsetForceDraw(bool val)<br>When true, makes the object automatically add the ForceDraw DrawMode flag.
voidsetParentObject(DiwneObject * parent)
voidsetPopupEnabled(bool val)
voidsetPosition(const ImVec2 & position)<br>Move the object's rect and any other associated positional data to the specified position.
voidsetRendered(bool val)
voidsetSelectable(bool selectable)<br>Whether the object can be selected.
virtual boolsetSelected(bool selected)<br>Set the selection state of the object.
voidsetStyleOverride(StyleOverride * styleOverride)<br>Assign a StyleOverride object to this DiwneObject.
voidsetTooltip(const std::string & text)
voidsetTooltipEnabled(bool val)
template <typename T =DiwneObject&gt; <br>std::shared_ptr< T >sharedPtr()<br>Returns a shared pointer to this object.
voidshowTooltip(const std::string & label, const ImColor && color, DrawInfo & context)<br>Immediately show a tooltip next to the mouse cursor with the specified text.
voidshowTooltip(const std::string & label, const std::string & desc, const ImColor && color, DrawInfo & context, float wrapWidth =35.f)<br>Immediately show a tooltip next to the mouse cursor with the specified text.
voidstopDrag(DrawInfo & context)<br>End an active drag operation this object is a source of.
virtual Style &style() const<br>Get the style for this object.
virtual voidtooltipContent(DrawInfo & context)<br>Content of the object's tooltip.
virtual voidtranslate(const ImVec2 & vec)<br>Move the object's rect and any other associated positional data.
virtual voidupdateLayout(DrawInfo & context) =0<br>Updates object's m_rect, m_displayRect and any other object size variables.

Protected Functions inherited from DIWNE::DiwneObject

Name
virtual voidafterDrawDiwne(DrawInfo & context)<br>Updates layout, processes interactions and then calls the user afterDraw() method.
virtual voidbeginDiwne(DrawInfo & context)
virtual voidendDiwne(DrawInfo & context)
virtual voidfinalizeDiwne(DrawInfo & context)
virtual voidinitializeDiwne(DrawInfo & context)
virtual boolisDraggedDiwne()<br>Is the object being dragged? (usually by mouse or some key combo)
virtual boolisHoveredDiwne()<br>Is the object being hovered? The default implementation mostly gets this information from ImGui::IsItemHovered() but the behavior can be changed or restricted.
virtual boolisJustPressedDiwne()<br>Determine whether a key/s of interest was/were just pressed.
virtual boolisPressedDiwne()<br>Determine whether a key/s of interest is/are pressed down over the object.
virtual boolpopupShouldBeOpenedDiwne() const<br>Determine whether a popup should be opened, that is, by default, that right mouse button was pressed and isn't dragging.
virtual voidprocessDragDiwne(DrawInfo & context)
virtual voidprocessHoverDiwne(DrawInfo & context)<br>Processes whether the object is currently hovered.
virtual voidprocessInteractionsDiwne(DrawInfo & context)
virtual voidprocessPopupAndTooltipDiwne(DrawInfo & context)<br>Processes whether a popup should be opened over this object.
virtual voidprocessPressAndReleaseDiwne(DrawInfo & context)<br>Processes whether the object is currently pressed (held) and further if it was just pressed or released.
virtual boolprocessSelectDiwne(DrawInfo & context)<br>Processes any interactions related to whether the object should be selected.
virtual voidsetInitialPositionDiwne()<br>Internal helper for setting the object's initial position.
voidsetSize(const ImVec2 & size)
voidupdateRectFromImGuiItem()

Public Attributes inherited from DIWNE::DiwneObject

Name
NodeEditor &diwne <br>Reference to the NodeEditor instance (also named 'editor' in some classes)
boolm_deletable <br>Whether the object can be destroyed by the user.
boolm_destroy <br>Indicates the object is to be deleted (and deallocated)
ImRectm_displayRect <br>Rectangle bounds aligned with the last viewport.
boolm_draggable <br>Whether dragging of the object is allowed by default.
DrawModem_drawMode <br>Read-only flag thats updated on each drawDiwne().
boolm_drawnThisFrame <br>Read only flag indicating whether the object has been drawn this frame.
boolm_fixed <br>Whether the object can be moved by user operations.
boolm_forceHoverDiwne <br>Special flag that can be used to enforce hover state, used by pin drag assist.
boolm_hoverable <br>Whether hovering is enabled by default.
boolm_hovered <br>Is the object hovered (usually by the mouse or whatever isHoveredDiwne() tracks)
boolm_hoverRoot <br>Whether hovering this object should prevent other objects from hovering.
IDm_idDiwne <br>Unique numeric identifier of the object.
boolm_isDragged <br>Is the object dragged? Returns false immediately on drag end (unlike isDragging()).
boolm_isPressed <br>Is the object pressed down (held)? Requirement for dragging.
boolm_justHidden <br>Read only flag indicating that this object was drawn last frame, but not this one.
boolm_justPressed <br>Read only flag indicating the object was pressed this frame (eg.
boolm_justReleased <br>Read only flag indicating the object was released this frame (eg.
std::stringm_labelDiwne <br>Unique string identifier, consists of <some string>:<m_idDiwne>.
ImRectm_rect <br>Rectangle bounds of the object in diwne coordinates.
StyleOverride *m_styleOverride <br>Style override to allow uniquely styled object types.

Protected Attributes inherited from DIWNE::DiwneObject

Name
unsigned long longg_diwneIDCounter <br>Static unique ID generator, unique only for current application run.
boolm_bringToFront <br>Request the object's rendering order to be moved to the front above other objects.
boolm_forceDraw <br>Request the next draw of the object to have the ForceDraw DrawMode flag.
boolm_internalHover <br>Temporary storage for an internal ImGui::IsItemHovered() check Can be set in the end() method to determine if object is hovered if applicable.
boolm_openPopup <br>Request to open popup.
boolm_openTooltip <br>Request to open tooltip.
DiwneObject *m_parentObject <br>Sets the parent object of object, relevant in node container and hover hierarchy.
boolm_popupEnabled <br>Whether this object has popup enabled.
std::stringm_popupLabelDiwne <br>ImGui popup identifier.
boolm_rendered <br>Whether the object should be drawn, this is a general flag that overrides behavior of the allowDrawing() method.
boolm_selectable <br>Should not be accessed directly.
boolm_selected <br>Should not be accessed directly.
boolm_tooltipEnabled <br>Whether this object has tooltip enabled.
std::stringm_tooltipText

Public Functions Documentation

function SequenceNodeContainer

cpp
SequenceNodeContainer(
    NodeEditor & editor,
    std::string label ="SequenceNodeContainer"
)
SequenceNodeContainer(
    NodeEditor & editor,
    std::string label ="SequenceNodeContainer"
)

function centerContent

cpp
virtual void centerContent(
    DrawInfo & context
) override
virtual void centerContent(
    DrawInfo & context
) override

Reimplements: DIWNE::BasicNode::centerContent

function getDropZone

cpp
NodeDropZone & getDropZone()
NodeDropZone & getDropZone()

function getNodeList

cpp
virtual NodeList & getNodeList() override
virtual NodeList & getNodeList() override

Reimplements: DIWNE::INodeContainer::getNodeList

function getNodes

cpp
virtual NodeRange getNodes() const override
virtual NodeRange getNodes() const override

Reimplements: DIWNE::INodeContainer::getNodes

function onDestroy

cpp
virtual void onDestroy(
    bool logEvent
) override
virtual void onDestroy(
    bool logEvent
) override

Gets called the moment the object is marked for deletion by destroy().

See: destroy()

Warning: It is possible that the onDestroy() callback is never called when destroy() wasn't properly called. DiwneObjects containing other DiwneObjects should always ensure to destroy their children in their onDestroy().

Reimplements: DIWNE::Node::onDestroy

It is called only once per object.

Protected Attributes Documentation

variable m_dropZone

cpp
std::shared_ptr< NodeDropZone > m_dropZone = std::make_shared<NodeDropZone>(diwne, this);
std::shared_ptr< NodeDropZone > m_dropZone = std::make_shared<NodeDropZone>(diwne, this);

Updated on 2025-05-31 at 12:55:31 +0000