1#ifndef AUBO_SCOPE_TREE_NODE_H
2#define AUBO_SCOPE_TREE_NODE_H
44 TreeNodePtr
addChild(ProgramNodePtr program_node);
64 ProgramNodePtr program_node);
84 ProgramNodePtr program_node);
224 int traverse(std::function<
int(ProgramNodePtr,
int,
int)> nodeVisitor);
#define ARCS_CLASS_FORWARD(C)
Macro that forward declares a class and defines the respective smartpointers through ARCS_DECLARE_PTR...
std::vector< TreeNodePtr > getChildren()
int traverse(std::function< int(ProgramNodePtr, int, int)> nodeVisitor)
TreeNodePtr addChild(ProgramNodePtr program_node)
Add a child program node to the sub-tree.
TreeNodePtr insertChildBefore(TreeNodePtr existingChildNode, ProgramNodePtr program_node)
Inserts a child program node in the sub-tree directly before the existing selected child node.
bool isInProgramTree()
Whether the node is in the program tree; nodes not in the program tree may have been cut or deleted.
void setChildSequenceLocked(bool isChildSequenceLocked)
Configures whether or not child nodes can be rearranged, deleted or have other nodes inserted into th...
TreeNodePtr insertChildAfter(TreeNodePtr existingChildNode, ProgramNodePtr program_node)
Inserts a child program node under in the sub-tree directly after the existing selected child node.
ProgramNodePtr getProgramNode()
TreeNodePtr locateDescendantTreeNode(ProgramNodePtr program_node)
std::vector< TreeNodePtr > getChildrenNotSuppressed()
bool removeChild(TreeNodePtr program_node)
Removes a child node from the sub-tree.
TreeNodePtr cutChildNode(TreeNodePtr child)
Cut a child program node under in the sub-tree directly after the existing selected child node.