LibreOffice Module starmath (master) 1
Public Member Functions | Protected Member Functions | Private Attributes | List of all members
SmLineNode Class Reference

A line. More...

#include <node.hxx>

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

Public Member Functions

 SmLineNode (const SmToken &rNodeToken)
 
void SetUseExtraSpaces (bool bVal)
 Sets if it going to use extra spaces. More...
 
bool IsUseExtraSpaces () const
 Checks if it is using extra spaces. More...
 
virtual void Prepare (const SmFormat &rFormat, const SmDocShell &rDocShell, int nDepth) override
 Prepare preliminary settings about font and text (e.g. More...
 
virtual void Arrange (OutputDevice &rDev, const SmFormat &rFormat) override
 Prepares the SmRect to render. More...
 
void Accept (SmVisitor *pVisitor) override
 Accept a visitor. More...
 
- Public Member Functions inherited from SmStructureNode
virtual ~SmStructureNode () override
 
virtual bool IsVisible () const override
 Checks node visibility. More...
 
virtual size_t GetNumSubNodes () const override
 Gets the number of subnodes. More...
 
virtual SmNodeGetSubNode (size_t nIndex) override
 Gets the subnode of index nIndex. More...
 
SmNodeGetSubNodeBinMo (size_t nIndex) const
 Gets the subnode of index nIndex, used for operators. More...
 
void ClearSubNodes ()
 Does the cleaning of the subnodes. More...
 
void SetSubNodes (std::unique_ptr< SmNode > pFirst, std::unique_ptr< SmNode > pSecond, std::unique_ptr< SmNode > pThird=nullptr)
 Sets subnodes, used for operators. More...
 
void SetSubNodes (SmNode *pFirst, SmNode *pSecond, SmNode *pThird)
 Sets subnodes. More...
 
void SetSubNodesBinMo (std::unique_ptr< SmNode > pFirst, std::unique_ptr< SmNode > pSecond, std::unique_ptr< SmNode > pThird=nullptr)
 Sets subnodes, used for operators. More...
 
void SetSubNodes (SmNodeArray &&rNodeArray)
 Sets subnodes. More...
 
virtual void GetAccessibleText (OUStringBuffer &rText) const override
 Appends to rText the node text. More...
 
SmNodeArray::iterator begin ()
 Gets the first subnode. More...
 
SmNodeArray::iterator end ()
 Gets the last subnode. More...
 
SmNodeArray::reverse_iterator rbegin ()
 Gets the last subnode. More...
 
SmNodeArray::reverse_iterator rend ()
 Gets the first subnode. More...
 
int IndexOfSubNode (SmNode const *pSubNode)
 Get the index of the child node pSubNode. More...
 
void SetSubNode (size_t nIndex, SmNode *pNode)
 Sets the subnode pNode at nIndex. More...
 
virtual SmNodeGetSubNode (size_t nIndex)=0
 Gets the subnode of index nIndex. More...
 
const SmNodeGetSubNode (size_t nIndex) const
 Gets the subnode of index nIndex. More...
 
- Public Member Functions inherited from SmNode
 SmNode (const SmNode &)=delete
 
SmNodeoperator= (const SmNode &)=delete
 
virtual ~SmNode ()
 
virtual bool IsVisible () const =0
 Checks node visibility. More...
 
virtual size_t GetNumSubNodes () const =0
 Gets the number of subnodes. More...
 
virtual SmNodeGetSubNode (size_t nIndex)=0
 Gets the subnode of index nIndex. More...
 
const SmNodeGetSubNode (size_t nIndex) const
 
virtual const SmNodeGetLeftMost () const
 (this assumes the one with index 0 is always the leftmost subnode for the current node). More...
 
FontChangeMaskFlags ()
 Gets the FontChangeMask flags. More...
 
FontAttributeAttributes ()
 Gets the font attributes. More...
 
bool IsPhantom () const
 Checks if it is a visible node rendered invisible. More...
 
void SetPhantom (bool bIsPhantom)
 Sets the render visibility of a visible node to bIsPhantom. More...
 
void SetColor (const Color &rColor)
 Sets the font color. More...
 
void SetAttribute (FontAttribute nAttrib)
 Sets the font attribute nAttrib. More...
 
void ClearAttribute (FontAttribute nAttrib)
 Clears the font attribute nAttrib. More...
 
const SmFaceGetFont () const
 Gets the font. More...
 
SmFaceGetFont ()
 
void SetFont (const SmFace &rFace)
 Sets the font to rFace. More...
 
void SetFontSize (const Fraction &rRelSize, FontSizeType nType)
 Sets the font size to rRelSize with type nType. More...
 
void SetSize (const Fraction &rScale)
 Sets the font size to rRelSize with type FontSizeType::ABSOLUT. More...
 
virtual void Prepare (const SmFormat &rFormat, const SmDocShell &rDocShell, int nDepth)
 Prepare preliminary settings about font and text (e.g. More...
 
void PrepareAttributes ()
 Prepare preliminary font attributes Called on Prepare(...). More...
 
void SetRectHorAlign (RectHorAlign eHorAlign, bool bApplyToSubTree=true)
 Sets the alignment of the text. More...
 
RectHorAlign GetRectHorAlign () const
 Gets the alignment of the text. More...
 
const SmRectGetRect () const
 Parses itself to SmRect. More...
 
void Move (const Point &rVector)
 Moves the rectangle by rVector. More...
 
void MoveTo (const Point &rPoint)
 Moves the rectangle to rPoint, being the top left corner the origin. More...
 
virtual void Arrange (OutputDevice &rDev, const SmFormat &rFormat)=0
 Prepares the SmRect to render. More...
 
virtual void GetAccessibleText (OUStringBuffer &rText) const =0
 Appends to rText the node text. More...
 
sal_Int32 GetAccessibleIndex () const
 Gets the node accessible index. More...
 
void SetAccessibleIndex (sal_Int32 nAccIndex)
 Sets the node accessible index to nAccIndex. More...
 
const SmNodeFindNodeWithAccessibleIndex (sal_Int32 nAccIndex) const
 Finds the node with accessible index nAccIndex. More...
 
sal_uInt16 GetRow () const
 Gets the line in the text where the node is located. More...
 
sal_uInt16 GetColumn () const
 Gets the column of the line in the text where the node is located. More...
 
SmScaleMode GetScaleMode () const
 Gets the scale mode. More...
 
void SetScaleMode (SmScaleMode eMode)
 Sets the scale mode to eMode. More...
 
virtual void AdaptToX (OutputDevice &rDev, sal_uLong nWidth)
 
virtual void AdaptToY (OutputDevice &rDev, sal_uLong nHeight)
 
SmNodeType GetType () const
 Gets the node type. More...
 
const SmTokenGetToken () const
 Gets the token. More...
 
SmTokenGetToken ()
 
const ESelectionGetSelection () const
 Gets node position in input text. More...
 
void SetSelection (ESelection aESelection)
 Gets node position in input text. More...
 
const SmNodeFindTokenAt (sal_uInt16 nRow, sal_uInt16 nCol) const
 Finds the node from the position in the text. More...
 
const SmNodeFindRectClosestTo (const Point &rPoint) const
 Finds the closest rectangle in the screen. More...
 
virtual void Accept (SmVisitor *pVisitor)=0
 Accept a visitor. More...
 
bool IsSelected () const
 Checks if the node is selected. More...
 
void SetSelected (bool Selected)
 Sets the node to Selected. More...
 
const SmStructureNodeGetParent () const
 Gets the parent node of this node. More...
 
SmStructureNodeGetParent ()
 
void SetParent (SmStructureNode *parent)
 Sets the parent node. More...
 
void SetToken (SmToken const &token)
 Sets the token for this node. More...
 
- Public Member Functions inherited from SmRect
 SmRect ()
 
 SmRect (const OutputDevice &rDev, const SmFormat *pFormat, const OUString &rText, sal_uInt16 nBorderWidth)
 
 SmRect (tools::Long nWidth, tools::Long nHeight)
 
sal_uInt16 GetBorderWidth () const
 
void SetItalicSpaces (tools::Long nLeftSpace, tools::Long nRightSpace)
 
void SetWidth (sal_uLong nWidth)
 
void SetLeft (tools::Long nLeft)
 
void SetRight (tools::Long nRight)
 
void SetBottom (tools::Long nBottom)
 
void SetTop (tools::Long nTop)
 
const PointGetTopLeft () const
 
tools::Long GetTop () const
 
tools::Long GetLeft () const
 
tools::Long GetBottom () const
 
tools::Long GetRight () const
 
tools::Long GetCenterY () const
 
tools::Long GetWidth () const
 
tools::Long GetHeight () const
 
tools::Long GetItalicLeftSpace () const
 
tools::Long GetItalicRightSpace () const
 
tools::Long GetHiAttrFence () const
 
tools::Long GetLoAttrFence () const
 
tools::Long GetItalicLeft () const
 
tools::Long GetItalicCenterX () const
 
tools::Long GetItalicRight () const
 
tools::Long GetItalicWidth () const
 
bool HasBaseline () const
 
tools::Long GetBaseline () const
 
tools::Long GetBaselineOffset () const
 
tools::Long GetAlignT () const
 
tools::Long GetAlignM () const
 
tools::Long GetAlignB () const
 
const SizeGetSize () const
 
Size GetItalicSize () const
 
void Move (const Point &rPosition)
 
void MoveTo (const Point &rPosition)
 
bool IsEmpty () const
 
bool HasAlignInfo () const
 
Point AlignTo (const SmRect &rRect, RectPos ePos, RectHorAlign eHor, RectVerAlign eVer) const
 
SmRectExtendBy (const SmRect &rRect, RectCopyMBL eCopyMode)
 
void ExtendBy (const SmRect &rRect, RectCopyMBL eCopyMode, tools::Long nNewAlignM)
 
SmRectExtendBy (const SmRect &rRect, RectCopyMBL eCopyMode, bool bKeepVerAlignParams)
 
tools::Long OrientedDist (const Point &rPoint) const
 
bool IsInsideRect (const Point &rPoint) const
 
bool IsInsideItalicRect (const Point &rPoint) const
 
tools::Rectangle AsRectangle () const
 
SmRect AsGlyphRect () const
 

Protected Member Functions

 SmLineNode (SmNodeType eNodeType, const SmToken &rNodeToken)
 
- Protected Member Functions inherited from SmStructureNode
 SmStructureNode (SmNodeType eNodeType, const SmToken &rNodeToken, size_t nSize=0)
 
- Protected Member Functions inherited from SmNode
 SmNode (SmNodeType eNodeType, SmToken aNodeToken)
 

Private Attributes

bool mbUseExtraSpaces
 

Detailed Description

A line.

Used as child of SmTableNode when the SmTableNode is the root node of the formula tree.

Definition at line 1177 of file node.hxx.

Constructor & Destructor Documentation

◆ SmLineNode() [1/2]

SmLineNode::SmLineNode ( SmNodeType  eNodeType,
const SmToken rNodeToken 
)
inlineprotected

Definition at line 1182 of file node.hxx.

◆ SmLineNode() [2/2]

SmLineNode::SmLineNode ( const SmToken rNodeToken)
inlineexplicit

Definition at line 1187 of file node.hxx.

Member Function Documentation

◆ Accept()

void SmLineNode::Accept ( SmVisitor pVisitor)
overridevirtual

Accept a visitor.

Calls the method for this class on the visitor.

Parameters
pVisitor
Returns

Implements SmNode.

Reimplemented in SmExpressionNode.

Definition at line 2439 of file node.cxx.

References SmVisitor::Visit().

◆ Arrange()

void SmLineNode::Arrange ( OutputDevice rDev,
const SmFormat rFormat 
)
overridevirtual

Prepares the SmRect to render.

Parameters
rDev
rFormat
Returns

be sure to use a character that has explicitly defined HiAttribut line in rect.cxx such as 'a' in order to make 'vec a' look same to 'vec {a}'.

Implements SmNode.

Reimplemented in SmExpressionNode.

Definition at line 600 of file node.cxx.

References Point::AdjustX(), SmRect::AlignTo(), SmNode::Arrange(), Baseline, Center, DIS_HORIZONTAL, SmRect::ExtendBy(), SmRect::GetBorderWidth(), SmFormat::GetDistance(), SmNode::GetFont(), vcl::Font::GetFontSize(), SmStructureNode::GetNumSubNodes(), SmNode::GetRect(), SmStructureNode::GetSubNode(), Size::Height(), i, IsUseExtraSpaces(), SmNode::MoveTo(), Right, SmTmpDevice::SetFont(), SmRect::SetItalicSpaces(), SmRect::SetWidth(), SmRect::SmRect(), and Xor.

Referenced by SmExpressionNode::Arrange().

◆ IsUseExtraSpaces()

bool SmLineNode::IsUseExtraSpaces ( ) const
inline

Checks if it is using extra spaces.

It is used for calculating space between nodes when rendering. By default it is true.

Returns
is using extra spaces

Definition at line 1206 of file node.hxx.

References mbUseExtraSpaces.

Referenced by Arrange().

◆ Prepare()

void SmLineNode::Prepare ( const SmFormat rFormat,
const SmDocShell rDocShell,
int  nDepth 
)
overridevirtual

Prepare preliminary settings about font and text (e.g.

maFace, meRectHorAlign, mnFlags, mnAttributes, etc.)

Parameters
rFormat
rDocShell
nDepth
Returns

Reimplemented from SmNode.

Definition at line 586 of file node.cxx.

References Face, SmNode::Flags(), FNT_VARIABLE, SmNode::GetFont(), SmFormat::GetFont(), and SmNode::Prepare().

◆ SetUseExtraSpaces()

void SmLineNode::SetUseExtraSpaces ( bool  bVal)
inline

Sets if it going to use extra spaces.

It is used to set if there has to be space between node while rendering. By default it is true.

Parameters
bVal
Returns

Definition at line 1198 of file node.hxx.

References mbUseExtraSpaces.

Member Data Documentation

◆ mbUseExtraSpaces

bool SmLineNode::mbUseExtraSpaces
private

Definition at line 1179 of file node.hxx.

Referenced by IsUseExtraSpaces(), and SetUseExtraSpaces().


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