LibreOffice Module starmath (master) 1
|
Visitor for drawing SmNodes to OutputDevice. More...
#include <visitors.hxx>
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 () | |
Visitor for drawing SmNodes to OutputDevice.
Definition at line 207 of file visitors.hxx.
|
inline |
Create an instance of SmDrawingVisitor, and use it to draw a formula.
rDevice | Device to draw on |
position | Offset on device to draw the formula |
pTree | Formula tree to draw |
Definition at line 216 of file visitors.hxx.
References SmNode::Accept(), and position().
|
inlinevirtual |
Definition at line 222 of file visitors.hxx.
|
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().
|
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().
|
private |
Draw an SmTextNode or a subclass of this.
Definition at line 502 of file visitors.cxx.
References Point::AdjustY(), OutputDevice::DrawStretchText(), SmRect::GetBaselineOffset(), SmNode::GetFont(), SmTextNode::GetText(), SmRect::GetWidth(), SmNode::IsPhantom(), OutputDevice::LogicToPixel(), maPosition, mrDev, OutputDevice::PixelToLogic(), and SmTmpDevice::SetFont().
Referenced by DrawSpecialNode(), and Visit().
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
Implements SmVisitor.
Definition at line 388 of file visitors.cxx.
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
Implements SmVisitor.
Definition at line 450 of file visitors.cxx.
References OutputDevice::DrawPolyLine(), SmFace::GetBorderWidth(), tools::Polygon::GetBoundRect(), vcl::Font::GetColor(), SmNode::GetFont(), SmPolyLineNode::GetPolygon(), SmPolyLineNode::GetWidth(), SmNode::IsPhantom(), maPosition, tools::Polygon::Move(), mrDev, SmTmpDevice::SetLineColor(), LineInfo::SetWidth(), tools::Rectangle::TopLeft(), Point::X(), and Point::Y().
|
overridevirtual |
avoid GROWING AND SHRINKING of drawn rectangle when constantly increasing zoomfactor.
Implements SmVisitor.
Definition at line 471 of file visitors.cxx.
References tools::Rectangle::AdjustBottom(), tools::Rectangle::AdjustLeft(), tools::Rectangle::AdjustRight(), tools::Rectangle::AdjustTop(), SmRect::AsRectangle(), OutputDevice::DrawRect(), SmFace::GetBorderWidth(), vcl::Font::GetColor(), SmNode::GetFont(), SmRect::GetTopLeft(), tools::Rectangle::IsEmpty(), SmNode::IsPhantom(), OutputDevice::LogicToPixel(), maPosition, mrDev, OutputDevice::PixelToLogic(), SAL_WARN_IF, SmTmpDevice::SetFillColor(), SmTmpDevice::SetFont(), OutputDevice::SetLineColor(), tools::Rectangle::SetPos(), and tools::Rectangle::TopLeft().
|
overridevirtual |
|
overridevirtual |
avoid GROWING AND SHRINKING of drawn rectangle when constantly increasing zoomfactor.
Implements SmVisitor.
Definition at line 417 of file visitors.cxx.
References OutputDevice::DrawRect(), DrawSpecialNode(), SmRootSymbolNode::GetBodyWidth(), SmRect::GetBorderWidth(), vcl::Font::GetColor(), SmNode::GetFont(), SmRect::GetWidth(), SmNode::IsPhantom(), OutputDevice::LogicToPixel(), maPosition, mrDev, OutputDevice::PixelToLogic(), SmTmpDevice::SetFillColor(), SmTmpDevice::SetFont(), OutputDevice::SetLineColor(), tools::Rectangle::SetPos(), and tools::Rectangle::TopLeft().
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
|
private |
Position to draw on the mrDev.
Definition at line 267 of file visitors.hxx.
Referenced by DrawChildren(), DrawTextNode(), and Visit().
|
private |
OutputDevice to draw on.
Definition at line 261 of file visitors.hxx.
Referenced by DrawTextNode(), and Visit().