LibreOffice Module starmath (master) 1
Classes | Namespaces | Macros | Typedefs | Enumerations
node.hxx File Reference
#include "types.hxx"
#include "token.hxx"
#include "rect.hxx"
#include "format.hxx"
#include "nodetype.hxx"
#include <editeng/editdata.hxx>
#include <rtl/ustrbuf.hxx>
Include dependency graph for node.hxx:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  o3tl::typed_flags< FontAttribute >
 
struct  o3tl::typed_flags< FontChangeMask >
 
class  SmNode
 
class  SmStructureNode
 Abstract baseclass for all composite node. More...
 
class  SmVisibleNode
 Abstract base class for all visible node. More...
 
class  SmGraphicNode
 
class  SmRectangleNode
 Draws a rectangle. More...
 
class  SmPolyLineNode
 Polygon line node. More...
 
class  SmTextNode
 Text node. More...
 
class  SmSpecialNode
 Special node for user defined characters. More...
 
class  SmGlyphSpecialNode
 Glyph node for custom operators. More...
 
class  SmMathSymbolNode
 Math symbol node. More...
 
class  SmMathIdentifierNode
 Math Identifier. More...
 
class  SmRootSymbolNode
 Root symbol node. More...
 
class  SmPlaceNode
 Place node. More...
 
class  SmErrorNode
 Error node, for parsing errors. More...
 
class  SmTableNode
 Table node. More...
 
class  SmLineNode
 A line. More...
 
class  SmExpressionNode
 Expression node. More...
 
class  SmUnHorNode
 Unary horizontal node. More...
 
class  SmRootNode
 Root node. More...
 
class  SmBinHorNode
 Binary horizontal node. More...
 
class  SmBinVerNode
 Binary horizontal node. More...
 
class  SmBinDiagonalNode
 Binary diagonal node. More...
 
class  SmSubSupNode
 Super- and subscript node. More...
 
class  SmBraceNode
 Node for brace construction. More...
 
class  SmBracebodyNode
 Body of an SmBraceNode. More...
 
class  SmVerticalBraceNode
 Node for vertical brace construction. More...
 
class  SmOperNode
 Operation Node. More...
 
class  SmAlignNode
 Node used for alignment. More...
 
class  SmAttributeNode
 Attribute node. More...
 
class  SmFontNode
 Font node. More...
 
class  SmMatrixNode
 Matrix node. More...
 
class  SmBlankNode
 Node for whitespace. More...
 

Namespaces

namespace  o3tl
 

Macros

#define SUBSUP_NUM_ENTRIES   6
 numbers of entries in the above enum (that is: the number of possible sub-/supscripts) More...
 

Typedefs

typedef std::vector< SmNode * > SmNodeArray
 

Enumerations

enum class  FontAttribute {
  None = 0x0000 ,
  Bold = 0x0001 ,
  Italic = 0x0002
}
 The SmNode is the basic structure of formula data. More...
 
enum class  FontSizeType {
  ABSOLUT = 1 ,
  PLUS = 2 ,
  MINUS = 3 ,
  MULTIPLY = 4 ,
  DIVIDE = 5
}
 
enum class  FontChangeMask {
  None = 0x0000 ,
  Face = 0x0001 ,
  Size = 0x0002 ,
  Bold = 0x0004 ,
  Italic = 0x0008 ,
  Color = 0x0010 ,
  Phantom = 0x0020
}
 
enum class  SmScaleMode {
  None ,
  Width ,
  Height
}
 
enum  SmSubSup {
  CSUB ,
  CSUP ,
  RSUB ,
  RSUP ,
  LSUB ,
  LSUP
}
 Enum used to index sub-/supscripts in the 'maSubNodes' array in 'SmSubSupNode'. More...
 

Macro Definition Documentation

◆ SUBSUP_NUM_ENTRIES

#define SUBSUP_NUM_ENTRIES   6

numbers of entries in the above enum (that is: the number of possible sub-/supscripts)

Definition at line 1542 of file node.hxx.

Typedef Documentation

◆ SmNodeArray

typedef std::vector< SmNode * > SmNodeArray

Definition at line 115 of file node.hxx.

Enumeration Type Documentation

◆ FontAttribute

enum class FontAttribute
strong

The SmNode is the basic structure of formula data.

Each token is stored in one node of specific kind. They can have SmNodeType. It allows to identify node type after abstraction. Here goes the subclasses tree:

SmRect SmNode SmStructureNode Head of tree diagram SmTableNode binom SmLineNode A line SmExpressionNode { content } SmUnHorNode unary operators +-; -+; +x; -x; ... SmRootNode Root structure SmBinHorNode binary operators A + B SmBinVerNode over; frac; ... SmBinDiagonalNode wideslash SmSubSupNode csub, csup, lsub, from, to, ... SmBraceNode (); []; left lbrace right rbrace; ... SmBracebodyNode ( content ); [ content ]; ... SmVerticalBraceNode overbrace; underbrace; SmOperNode sum from to; int from to; SmAlignNode text alignment SmAttributeNode font attributes; bold; SmFontNode font serif; ... SmMatrixNode matrix SmVisibleNode drawable node SmGraphicNode graphics display SmRectangleNode SmPolyLineNode overline; underline; widehat; ... SmBlankNode blank space; ~; ... SmTextNode "text"; func functname; ... SmSpecialNode SmGlyphSpecialNode symbolname SmMathSymbolNode math symbols SmMathIdentifierNode variable SmRootSymbolNode root symbol SmPlaceNode <?> SmErrorNode red ? for errors

Enumerator
None 
Bold 
Italic 

Definition at line 73 of file node.hxx.

◆ FontChangeMask

enum class FontChangeMask
strong
Enumerator
None 
Face 
Size 
Bold 
Italic 
Color 
Phantom 

Definition at line 94 of file node.hxx.

◆ FontSizeType

enum class FontSizeType
strong
Enumerator
ABSOLUT 
PLUS 
MINUS 
MULTIPLY 
DIVIDE 

Definition at line 85 of file node.hxx.

◆ SmScaleMode

enum class SmScaleMode
strong
Enumerator
None 
Width 
Height 

Definition at line 117 of file node.hxx.

◆ SmSubSup

enum SmSubSup

Enum used to index sub-/supscripts in the 'maSubNodes' array in 'SmSubSupNode'.

See graphic for positions at char:

H H
HHHH
H H
@ LSUB
Definition: node.hxx:1536
@ CSUB
Definition: node.hxx:1536
@ RSUP
Definition: node.hxx:1536
@ RSUB
Definition: node.hxx:1536
@ LSUP
Definition: node.hxx:1536
@ CSUP
Definition: node.hxx:1536
Enumerator
CSUB 
CSUP 
RSUB 
RSUP 
LSUB 
LSUP 

Definition at line 1535 of file node.hxx.