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

Visitor for drawing SmNodes to OutputDevice. More...

#include <visitors.hxx>

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

Public Member Functions

 SmDrawingVisitor (OutputDevice &rDevice, Point position, SmNode *pTree)
 Create an instance of SmDrawingVisitor, and use it to draw a formula. More...
 
virtual ~SmDrawingVisitor ()
 
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
 
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 DrawChildren (SmStructureNode *pNode)
 Draw the children of a pNode This the default method, use by most pNodes. More...
 
void DrawTextNode (SmTextNode *pNode)
 Draw an SmTextNode or a subclass of this. More...
 
void DrawSpecialNode (SmSpecialNode *pNode)
 Draw an SmSpecialNode or a subclass of this
More...
 

Private Attributes

OutputDevice & mrDev
 OutputDevice to draw on. More...
 
Point maPosition
 Position to draw on the mrDev. More...
 

Additional Inherited Members

- Protected Member Functions inherited from SmVisitor
 ~SmVisitor ()
 

Detailed Description

Visitor for drawing SmNodes to OutputDevice.

Definition at line 207 of file visitors.hxx.

Constructor & Destructor Documentation

◆ SmDrawingVisitor()

SmDrawingVisitor::SmDrawingVisitor ( OutputDevice &  rDevice,
Point  position,
SmNode *  pTree 
)
inline

Create an instance of SmDrawingVisitor, and use it to draw a formula.

Parameters
rDeviceDevice to draw on
positionOffset on device to draw the formula
pTreeFormula tree to draw
Remarks
This constructor will do the drawing, no need to anything more.

Definition at line 216 of file visitors.hxx.

References SmNode::Accept(), and position().

◆ ~SmDrawingVisitor()

virtual SmDrawingVisitor::~SmDrawingVisitor ( )
inlinevirtual

Definition at line 222 of file visitors.hxx.

Member Function Documentation

◆ DrawChildren()

void SmDrawingVisitor::DrawChildren ( SmStructureNode *  pNode)
private

Draw the children of a pNode This the default method, use by most pNodes.

Definition at line 527 of file visitors.cxx.

References SmRect::GetTopLeft(), SmNode::IsPhantom(), and maPosition.

Referenced by Visit().

◆ DrawSpecialNode()

void SmDrawingVisitor::DrawSpecialNode ( SmSpecialNode *  pNode)
private

Draw an SmSpecialNode or a subclass of this

since this chars might come from any font, that we may not have set to ALIGN_BASELINE yet, we do it now.

Definition at line 518 of file visitors.cxx.

References ALIGN_BASELINE, DrawTextNode(), SmNode::GetFont(), and vcl::Font::SetAlignment().

Referenced by Visit().

◆ DrawTextNode()

void SmDrawingVisitor::DrawTextNode ( SmTextNode *  pNode)
private

◆ Visit() [1/27]

void SmDrawingVisitor::Visit ( SmAlignNode *  pNode)
overridevirtual

Implements SmVisitor.

Definition at line 318 of file visitors.cxx.

References DrawChildren().

◆ Visit() [2/27]

void SmDrawingVisitor::Visit ( SmAttributeNode *  pNode)
overridevirtual

Implements SmVisitor.

Definition at line 323 of file visitors.cxx.

References DrawChildren().

◆ Visit() [3/27]

void SmDrawingVisitor::Visit ( SmBinDiagonalNode *  pNode)
overridevirtual

Implements SmVisitor.

Definition at line 348 of file visitors.cxx.

References DrawChildren().

◆ Visit() [4/27]

void SmDrawingVisitor::Visit ( SmBinHorNode *  pNode)
overridevirtual

Implements SmVisitor.

Definition at line 338 of file visitors.cxx.

References DrawChildren().

◆ Visit() [5/27]

void SmDrawingVisitor::Visit ( SmBinVerNode *  pNode)
overridevirtual

Implements SmVisitor.

Definition at line 343 of file visitors.cxx.

References DrawChildren().

◆ Visit() [6/27]

void SmDrawingVisitor::Visit ( SmBlankNode *  pNode)
overridevirtual

Implements SmVisitor.

Definition at line 388 of file visitors.cxx.

◆ Visit() [7/27]

void SmDrawingVisitor::Visit ( SmBracebodyNode *  pNode)
overridevirtual

Implements SmVisitor.

Definition at line 308 of file visitors.cxx.

References DrawChildren().

◆ Visit() [8/27]

void SmDrawingVisitor::Visit ( SmBraceNode *  pNode)
overridevirtual

Implements SmVisitor.

Definition at line 303 of file visitors.cxx.

References DrawChildren().

◆ Visit() [9/27]

void SmDrawingVisitor::Visit ( SmErrorNode *  pNode)
overridevirtual

Implements SmVisitor.

Definition at line 392 of file visitors.cxx.

References DrawSpecialNode().

◆ Visit() [10/27]

void SmDrawingVisitor::Visit ( SmExpressionNode *  pNode)
overridevirtual

Implements SmVisitor.

Definition at line 402 of file visitors.cxx.

References DrawChildren().

◆ Visit() [11/27]

void SmDrawingVisitor::Visit ( SmFontNode *  pNode)
overridevirtual

Implements SmVisitor.

Definition at line 328 of file visitors.cxx.

References DrawChildren().

◆ Visit() [12/27]

void SmDrawingVisitor::Visit ( SmGlyphSpecialNode *  pNode)
overridevirtual

Implements SmVisitor.

Definition at line 378 of file visitors.cxx.

References DrawSpecialNode().

◆ Visit() [13/27]

void SmDrawingVisitor::Visit ( SmLineNode *  pNode)
overridevirtual

Implements SmVisitor.

Definition at line 397 of file visitors.cxx.

References DrawChildren().

◆ Visit() [14/27]

void SmDrawingVisitor::Visit ( SmMathSymbolNode *  pNode)
overridevirtual

Implements SmVisitor.

Definition at line 383 of file visitors.cxx.

References DrawSpecialNode().

◆ Visit() [15/27]

void SmDrawingVisitor::Visit ( SmMatrixNode *  pNode)
overridevirtual

Implements SmVisitor.

Definition at line 358 of file visitors.cxx.

References DrawChildren().

◆ Visit() [16/27]

void SmDrawingVisitor::Visit ( SmOperNode *  pNode)
overridevirtual

Implements SmVisitor.

Definition at line 313 of file visitors.cxx.

References DrawChildren().

◆ Visit() [17/27]

void SmDrawingVisitor::Visit ( SmPlaceNode *  pNode)
overridevirtual

Implements SmVisitor.

Definition at line 363 of file visitors.cxx.

References DrawSpecialNode().

◆ Visit() [18/27]

void SmDrawingVisitor::Visit ( SmPolyLineNode *  pNode)
overridevirtual

◆ Visit() [19/27]

void SmDrawingVisitor::Visit ( SmRectangleNode *  pNode)
overridevirtual

◆ Visit() [20/27]

void SmDrawingVisitor::Visit ( SmRootNode *  pNode)
overridevirtual

Implements SmVisitor.

Definition at line 407 of file visitors.cxx.

References DrawChildren().

◆ Visit() [21/27]

void SmDrawingVisitor::Visit ( SmRootSymbolNode *  pNode)
overridevirtual

◆ Visit() [22/27]

void SmDrawingVisitor::Visit ( SmSpecialNode *  pNode)
overridevirtual

Implements SmVisitor.

Definition at line 373 of file visitors.cxx.

References DrawSpecialNode().

◆ Visit() [23/27]

void SmDrawingVisitor::Visit ( SmSubSupNode *  pNode)
overridevirtual

Implements SmVisitor.

Definition at line 353 of file visitors.cxx.

References DrawChildren().

◆ Visit() [24/27]

void SmDrawingVisitor::Visit ( SmTableNode *  pNode)
overridevirtual

Implements SmVisitor.

Definition at line 298 of file visitors.cxx.

References DrawChildren().

◆ Visit() [25/27]

void SmDrawingVisitor::Visit ( SmTextNode *  pNode)
overridevirtual

Implements SmVisitor.

Definition at line 368 of file visitors.cxx.

References DrawTextNode().

◆ Visit() [26/27]

void SmDrawingVisitor::Visit ( SmUnHorNode *  pNode)
overridevirtual

Implements SmVisitor.

Definition at line 333 of file visitors.cxx.

References DrawChildren().

◆ Visit() [27/27]

void SmDrawingVisitor::Visit ( SmVerticalBraceNode *  pNode)
overridevirtual

Implements SmVisitor.

Definition at line 412 of file visitors.cxx.

References DrawChildren().

Member Data Documentation

◆ maPosition

Point SmDrawingVisitor::maPosition
private

Position to draw on the mrDev.

Remarks
This variable is used to pass parameters in DrawChildren( ), this means that after a call to DrawChildren( ) the contents of this method is undefined so if needed cache it locally on the stack.

Definition at line 267 of file visitors.hxx.

Referenced by DrawChildren(), DrawTextNode(), and Visit().

◆ mrDev

OutputDevice& SmDrawingVisitor::mrDev
private

OutputDevice to draw on.

Definition at line 261 of file visitors.hxx.

Referenced by DrawTextNode(), and Visit().


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