LibreOffice Module starmath (master) 1
Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
SmCloningVisitor Class Referencefinal

Visitor for cloning a pNode. More...

#include <visitors.hxx>

Inheritance diagram for SmCloningVisitor:
[legend]
Collaboration diagram for SmCloningVisitor:
[legend]

Public Member Functions

 SmCloningVisitor ()
 
virtual ~SmCloningVisitor ()
 
void Visit (SmTableNode *pNode) override
 
void Visit (SmBraceNode *pNode) override
 
void Visit (SmBracebodyNode *pNode) override
 
void Visit (SmOperNode *pNode) override
 
void Visit (SmAlignNode *pNode) override
 
void Visit (SmAttributeNode *pNode) override
 
void Visit (SmFontNode *pNode) override
 
void Visit (SmUnHorNode *pNode) override
 
void Visit (SmBinHorNode *pNode) override
 
void Visit (SmBinVerNode *pNode) override
 
void Visit (SmBinDiagonalNode *pNode) override
 
void Visit (SmSubSupNode *pNode) override
 
void Visit (SmMatrixNode *pNode) override
 
void Visit (SmPlaceNode *pNode) override
 
void Visit (SmTextNode *pNode) override
 
void Visit (SmSpecialNode *pNode) override
 
void Visit (SmGlyphSpecialNode *pNode) override
 
void Visit (SmMathSymbolNode *pNode) override
 
void Visit (SmBlankNode *pNode) override
 
void Visit (SmErrorNode *pNode) override
 
void Visit (SmLineNode *pNode) override
 
void Visit (SmExpressionNode *pNode) override
 
void Visit (SmPolyLineNode *pNode) override
 
void Visit (SmRootNode *pNode) override
 
void Visit (SmRootSymbolNode *pNode) override
 
void Visit (SmRectangleNode *pNode) override
 
void Visit (SmVerticalBraceNode *pNode) override
 
SmNode * Clone (SmNode *pNode)
 Clone a pNode. More...
 
virtual void Visit (SmTableNode *pNode)=0
 
virtual void Visit (SmBraceNode *pNode)=0
 
virtual void Visit (SmBracebodyNode *pNode)=0
 
virtual void Visit (SmOperNode *pNode)=0
 
virtual void Visit (SmAlignNode *pNode)=0
 
virtual void Visit (SmAttributeNode *pNode)=0
 
virtual void Visit (SmFontNode *pNode)=0
 
virtual void Visit (SmUnHorNode *pNode)=0
 
virtual void Visit (SmBinHorNode *pNode)=0
 
virtual void Visit (SmBinVerNode *pNode)=0
 
virtual void Visit (SmBinDiagonalNode *pNode)=0
 
virtual void Visit (SmSubSupNode *pNode)=0
 
virtual void Visit (SmMatrixNode *pNode)=0
 
virtual void Visit (SmPlaceNode *pNode)=0
 
virtual void Visit (SmTextNode *pNode)=0
 
virtual void Visit (SmSpecialNode *pNode)=0
 
virtual void Visit (SmGlyphSpecialNode *pNode)=0
 
virtual void Visit (SmMathSymbolNode *pNode)=0
 
virtual void Visit (SmBlankNode *pNode)=0
 
virtual void Visit (SmErrorNode *pNode)=0
 
virtual void Visit (SmLineNode *pNode)=0
 
virtual void Visit (SmExpressionNode *pNode)=0
 
virtual void Visit (SmPolyLineNode *pNode)=0
 
virtual void Visit (SmRootNode *pNode)=0
 
virtual void Visit (SmRootSymbolNode *pNode)=0
 
virtual void Visit (SmRectangleNode *pNode)=0
 
virtual void Visit (SmVerticalBraceNode *pNode)=0
 

Private Member Functions

void CloneKids (SmStructureNode *pSource, SmStructureNode *pTarget)
 Clone children of pSource and give them to pTarget. More...
 

Static Private Member Functions

static void CloneNodeAttr (SmNode const *pSource, SmNode *pTarget)
 Clone attributes on a pNode. More...
 

Private Attributes

SmNode * mpResult
 

Additional Inherited Members

- Protected Member Functions inherited from SmVisitor
 ~SmVisitor ()
 

Detailed Description

Visitor for cloning a pNode.

This visitor creates deep clones.

Definition at line 382 of file visitors.hxx.

Constructor & Destructor Documentation

◆ SmCloningVisitor()

SmCloningVisitor::SmCloningVisitor ( )
inline

Definition at line 385 of file visitors.hxx.

◆ ~SmCloningVisitor()

virtual SmCloningVisitor::~SmCloningVisitor ( )
inlinevirtual

Definition at line 388 of file visitors.hxx.

Member Function Documentation

◆ Clone()

SmNode * SmCloningVisitor::Clone ( SmNode *  pNode)

Clone a pNode.

Definition at line 1513 of file visitors.cxx.

References SmNode::Accept(), and mpResult.

Referenced by SmCursor::CloneLineToClipboard(), SmCursor::CloneList(), and SmCursor::Copy().

◆ CloneKids()

void SmCloningVisitor::CloneKids ( SmStructureNode *  pSource,
SmStructureNode *  pTarget 
)
private

Clone children of pSource and give them to pTarget.

Definition at line 1529 of file visitors.cxx.

References SmNode::Accept(), SmStructureNode::GetNumSubNodes(), SmStructureNode::GetSubNode(), i, mpResult, and SmStructureNode::SetSubNodes().

Referenced by Visit().

◆ CloneNodeAttr()

void SmCloningVisitor::CloneNodeAttr ( SmNode const *  pSource,
SmNode *  pTarget 
)
staticprivate

Clone attributes on a pNode.

Definition at line 1522 of file visitors.cxx.

References SmNode::GetScaleMode(), and SmNode::SetScaleMode().

Referenced by Visit().

◆ Visit() [1/27]

void SmCloningVisitor::Visit ( SmAlignNode *  pNode)
overridevirtual

◆ Visit() [2/27]

void SmCloningVisitor::Visit ( SmAttributeNode *  pNode)
overridevirtual

◆ Visit() [3/27]

void SmCloningVisitor::Visit ( SmBinDiagonalNode *  pNode)
overridevirtual

◆ Visit() [4/27]

void SmCloningVisitor::Visit ( SmBinHorNode *  pNode)
overridevirtual

◆ Visit() [5/27]

void SmCloningVisitor::Visit ( SmBinVerNode *  pNode)
overridevirtual

◆ Visit() [6/27]

void SmCloningVisitor::Visit ( SmBlankNode *  pNode)
overridevirtual

◆ Visit() [7/27]

void SmCloningVisitor::Visit ( SmBracebodyNode *  pNode)
overridevirtual

◆ Visit() [8/27]

void SmCloningVisitor::Visit ( SmBraceNode *  pNode)
overridevirtual

◆ Visit() [9/27]

void SmCloningVisitor::Visit ( SmErrorNode *  pNode)
overridevirtual

◆ Visit() [10/27]

void SmCloningVisitor::Visit ( SmExpressionNode *  pNode)
overridevirtual

◆ Visit() [11/27]

void SmCloningVisitor::Visit ( SmFontNode *  pNode)
overridevirtual

◆ Visit() [12/27]

void SmCloningVisitor::Visit ( SmGlyphSpecialNode *  pNode)
overridevirtual

◆ Visit() [13/27]

void SmCloningVisitor::Visit ( SmLineNode *  pNode)
overridevirtual

◆ Visit() [14/27]

void SmCloningVisitor::Visit ( SmMathSymbolNode *  pNode)
overridevirtual

◆ Visit() [15/27]

void SmCloningVisitor::Visit ( SmMatrixNode *  pNode)
overridevirtual

◆ Visit() [16/27]

void SmCloningVisitor::Visit ( SmOperNode *  pNode)
overridevirtual

◆ Visit() [17/27]

void SmCloningVisitor::Visit ( SmPlaceNode *  pNode)
overridevirtual

◆ Visit() [18/27]

void SmCloningVisitor::Visit ( SmPolyLineNode *  pNode)
overridevirtual

◆ Visit() [19/27]

void SmCloningVisitor::Visit ( SmRectangleNode *  pNode)
overridevirtual

◆ Visit() [20/27]

void SmCloningVisitor::Visit ( SmRootNode *  pNode)
overridevirtual

◆ Visit() [21/27]

void SmCloningVisitor::Visit ( SmRootSymbolNode *  pNode)
overridevirtual

◆ Visit() [22/27]

void SmCloningVisitor::Visit ( SmSpecialNode *  pNode)
overridevirtual

◆ Visit() [23/27]

void SmCloningVisitor::Visit ( SmSubSupNode *  pNode)
overridevirtual

◆ Visit() [24/27]

void SmCloningVisitor::Visit ( SmTableNode *  pNode)
overridevirtual

◆ Visit() [25/27]

void SmCloningVisitor::Visit ( SmTextNode *  pNode)
overridevirtual

◆ Visit() [26/27]

void SmCloningVisitor::Visit ( SmUnHorNode *  pNode)
overridevirtual

◆ Visit() [27/27]

void SmCloningVisitor::Visit ( SmVerticalBraceNode *  pNode)
overridevirtual

Member Data Documentation

◆ mpResult

SmNode* SmCloningVisitor::mpResult
private

Definition at line 419 of file visitors.hxx.

Referenced by Clone(), CloneKids(), and Visit().


The documentation for this class was generated from the following files: