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

OutputDevicemrDev
 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: