JKQTPlotter trunk/v5.0.0
an extensive Qt5+Qt6 Plotter framework (including a feature-richt plotter widget, a speed-optimized, but limited variant and a LaTeX equation renderer!), written fully in C/C++ and without external dependencies
|
subclass representing a \begin{matrix}
, \begin{tabular}
, \begin{array}
, ... node
More...
#include <jkqtmathtextmatrixnode.h>
Classes | |
struct | LayoutInfo |
describes the layout of the whole node More... | |
Public Types | |
enum | LineType { LTnone , LTline , LTdoubleline , LTheavyline , LTdashed , LTdoubleDashed , LTdefault =LTnone } |
types of lines More... | |
Public Member Functions | |
JKQTMathTextMatrixNode (JKQTMathText *parent, const QString &columnSpec=QString()) | |
JKQTMathTextMatrixNode (JKQTMathText *parent, const QVector< QVector< JKQTMathTextNode * > > &children, const QString &columnSpec=QString()) | |
virtual | ~JKQTMathTextMatrixNode () override |
virtual int | childCount () const override |
returns the number of child nodes | |
virtual void | clearChildren (bool deleteChildren=true) override |
clear all children, deleting them if deleteChildren==true | |
virtual void | deleteChild (int i) override |
delete the i-th child | |
virtual double | draw (QPainter &painter, double x, double y, JKQTMathTextEnvironment currentEv) const override |
draw the contents at the designated position | |
virtual const JKQTMathTextNode * | getChild (int i) const override |
returns the i-th child node | |
virtual JKQTMathTextNode * | getChild (int i) override |
returns the i-th child node | |
virtual QList< JKQTMathTextNode * > | getChildren () override |
returns a list of all child node | |
QVector< QVector< JKQTMathTextNode * > > | getChildrenMatrix () const |
returns the child nodes | |
int | getColumns () const |
number of columns in the matrix | |
int | getLines () const |
number of rows in the matrix | |
virtual QString | getTypeName () const override |
return the name of this class as a string | |
virtual JKQTMathTextNode * | replaceChild (int i, JKQTMathTextNode *newChild) override |
returns the i-th child node | |
void | setChildren (const QVector< QVector< JKQTMathTextNode * > > &children) |
sets the child nodes | |
void | setRowBottomLine (int col, LineType line) |
lines to the bottom of each row | |
void | setTopLine (LineType line) |
line at the top of the table | |
virtual bool | toHtml (QString &html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) const override |
convert node to HTML and returns true on success | |
Public Member Functions inherited from JKQTMathTextMultiChildNode | |
JKQTMathTextMultiChildNode (JKQTMathText *parentMathText) | |
virtual | ~JKQTMathTextMultiChildNode () override |
virtual QList< const JKQTMathTextNode * > | getChildren () const |
returns a list of all child node | |
virtual JKQTMathTextNode * | getFirstChild () |
returns the first child node | |
virtual const JKQTMathTextNode * | getFirstChild () const |
returns the first child node | |
virtual JKQTMathTextNode * | getLastChild () |
returns the last child node | |
virtual const JKQTMathTextNode * | getLastChild () const |
returns the last child node | |
bool | hasChildren () const |
returns true if children exist | |
bool | isEmpty () const |
returns true if there are no children | |
virtual void | replaceAndDeleteChild (int i, JKQTMathTextNode *newChild) |
replaces the i-th child node with the node newChild , deletes the replaced old node | |
Public Member Functions inherited from JKQTMathTextNode | |
JKQTMathTextNode (const JKQTMathTextNode &)=delete | |
JKQTMathTextNode (JKQTMathText *parentMathText) | |
virtual | ~JKQTMathTextNode () |
bool | getDrawBoxes () const |
returns the drawing of colored boxes (for DEBUGGING) around the actual output of the node is enabled | |
JKQTMathTextNode * | getParentNode () |
parent node of this node (i.e. one level up, ode nullptr ) | |
const JKQTMathTextNode * | getParentNode () const |
parent node of this node (i.e. one level up, ode nullptr ) | |
JKQTMathTextNodeSize | getSize (QPainter &painter, JKQTMathTextEnvironment currentEv) const |
determine the size of the node, calls getSizeInternal() implementation of the actual type | |
bool | isSubSuperscriptAboveBelowNode () const |
if true then following sub- and/or superscripts are placed below and above the node, not besides it. This is activated when \sum\limits_{sub}^{sup} is used in LaTeX instead of simply \sum_{sub}^{sup} | |
JKQTMathTextNode & | operator= (const JKQTMathTextNode &)=delete |
void | setParentNode (JKQTMathTextNode *node) |
parent node of this node (i.e. one level up, ode nullptr ) | |
void | setSubSuperscriptAboveBelowNode (bool __value) |
if true then following sub- and/or superscripts are placed below and above the node, not besides it. This is activated when \sum\limits_{sub}^{sup} is used in LaTeX instead of simply \sum_{sub}^{sup} | |
Protected Member Functions | |
LayoutInfo | calcLayout (QPainter &painter, const JKQTMathTextEnvironment ¤tEv) const |
calclates the layout of the whole block/node | |
void | clearChildrenImpl (bool deleteChildren) |
clear all children, deleting them if deleteChildren==true | |
virtual JKQTMathTextNodeSize | getSizeInternal (QPainter &painter, JKQTMathTextEnvironment currentEv) const override |
determine the size of the node, overwrite this function in derived classes | |
void | parseColumnSpec (const QString &columnspec) |
parses a column specifier | |
virtual void | setDrawBoxes (bool draw) override |
enables the drawing of colored boxes (for DEBUGGING) around the actual output of the node | |
Protected Member Functions inherited from JKQTMathTextNode | |
void | addToErrorList (const QString &error) |
adds a new error to the JKQTMathText referenced by parentMathText | |
void | doDrawBoxes (QPainter &painter, double x, double y, const JKQTMathTextNodeSize &size) const |
draws colored boxes (for DEBUGGING) around the actual output of the node | |
void | doDrawBoxes (QPainter &painter, double x, double y, JKQTMathTextEnvironment currentEv) const |
draws colored boxes (for DEBUGGING) around the actual output of the node | |
template<class T > | |
QList< T * > | getParents () |
returns the list of parent, parent-of-parent, ... that can be cast to type T | |
template<class T > | |
QList< const T * > | getParents () const |
returns the list of parent, parent-of-parent, ... that can be cast to type T | |
Static Protected Member Functions | |
static void | drawHLine (QPainter &painter, double x, double y, double width, LineType lt, double linewidth, double linewidthHeavy, QColor color, double doublelineseparation) |
draw a horizontal line starting at pixel position (x, y ) with length width, using linetype lt, width linewidth and color | |
static void | drawVLine (QPainter &painter, double x, double y, double height, LineType lt, double linewidth, double linewidthHeavy, QColor color, double doublelineseparation) |
draw a vertical line starting at pixel position (x, y ) with length height, using linetype lt, width linewidth and color | |
Protected Attributes | |
QVector< QVector< JKQTMathTextNode * > > | children |
child nodes making up the matrix, vector of rows | |
QVector< JKQTMathTextHorizontalAlignment > | columnAlignment |
alignment of the columns | |
int | columns |
number of columns in the matrix | |
QMap< int, LineType > | horizontalLineBottomRow |
lines to the bottom of each row | |
LineType | horizontalLineTop |
line at the top of the table | |
int | lines |
number of rows in the matrix | |
LineType | verticalLineLeft |
line at the left of the table | |
QMap< int, LineType > | verticalLineRHSColumn |
lines to the right of each column | |
Protected Attributes inherited from JKQTMathTextNode | |
bool | drawBoxes |
enables the drawing of colored boxes (for DEBUGGING) around the actual output of the node | |
JKQTMathText * | parentMathText |
parent JKQTMathText object (required for several drawing operations | |
JKQTMathTextNode * | parentNode |
parent node of this node (i.e. one level up, ode nullptr ) | |
bool | subSuperscriptAboveBelowNode |
if true then following sub- and/or superscripts are placed below and above the node, not besides it. This is activated when \sum\limits_{sub}^{sup} is used in LaTeX instead of simply \sum_{sub}^{sup} | |
Additional Inherited Members | |
Static Public Member Functions inherited from JKQTMathTextNode | |
static double | getNonItalicXCorretion (QPainter &painter, double width_potentiallyitalic, const JKQTMathTextEnvironment &ev_potentiallyitalic, const JKQTMathTextNode *child) |
calculates the x-size-difference between the given (probably) italic (width externally calculated: width_potentiallyitalic, ev_potentiallyitalic) and the non-italic version of child | |
subclass representing a \begin{matrix}
, \begin{tabular}
, \begin{array}
, ... node
Definition of the matrix geometry
Two examples:
JKQTMathTextMatrixNode::JKQTMathTextMatrixNode | ( | JKQTMathText * | parent, |
const QVector< QVector< JKQTMathTextNode * > > & | children, | ||
const QString & | columnSpec = QString() |
||
) |
JKQTMathTextMatrixNode::JKQTMathTextMatrixNode | ( | JKQTMathText * | parent, |
const QString & | columnSpec = QString() |
||
) |
|
overridevirtual |
|
protected |
calclates the layout of the whole block/node
|
overridevirtual |
returns the number of child nodes
Implements JKQTMathTextMultiChildNode.
|
overridevirtual |
clear all children, deleting them if deleteChildren==true
Implements JKQTMathTextMultiChildNode.
|
protected |
clear all children, deleting them if deleteChildren==true
|
overridevirtual |
delete the i-th child
Implements JKQTMathTextMultiChildNode.
|
overridevirtual |
draw the contents at the designated position
painter | QPainter to use |
x | x-position, where the drawing starts [Pixel] |
y | Y-position of the baseline, where the drawing starts [Pixel] |
currentEv | JKQTMathTextEnvironment object describing the current drawing environment/settings |
Implements JKQTMathTextNode.
|
staticprotected |
draw a horizontal line starting at pixel position (x, y ) with length width, using linetype lt, width linewidth and color
|
staticprotected |
draw a vertical line starting at pixel position (x, y ) with length height, using linetype lt, width linewidth and color
|
overridevirtual |
returns the i-th child node
Implements JKQTMathTextMultiChildNode.
|
overridevirtual |
returns the i-th child node
Implements JKQTMathTextMultiChildNode.
|
overridevirtual |
returns a list of all child node
Reimplemented from JKQTMathTextMultiChildNode.
QVector< QVector< JKQTMathTextNode * > > JKQTMathTextMatrixNode::getChildrenMatrix | ( | ) | const |
returns the child nodes
int JKQTMathTextMatrixNode::getColumns | ( | ) | const |
number of columns in the matrix
int JKQTMathTextMatrixNode::getLines | ( | ) | const |
number of rows in the matrix
|
overrideprotectedvirtual |
determine the size of the node, overwrite this function in derived classes
painter | painter to use for determining the size |
currentEv | current environment object |
Implements JKQTMathTextNode.
|
overridevirtual |
return the name of this class as a string
Reimplemented from JKQTMathTextNode.
|
protected |
parses a column specifier
|
overridevirtual |
returns the i-th child node
Implements JKQTMathTextMultiChildNode.
void JKQTMathTextMatrixNode::setChildren | ( | const QVector< QVector< JKQTMathTextNode * > > & | children | ) |
sets the child nodes
|
overrideprotectedvirtual |
enables the drawing of colored boxes (for DEBUGGING) around the actual output of the node
Reimplemented from JKQTMathTextMultiChildNode.
void JKQTMathTextMatrixNode::setRowBottomLine | ( | int | col, |
LineType | line | ||
) |
lines to the bottom of each row
void JKQTMathTextMatrixNode::setTopLine | ( | LineType | line | ) |
line at the top of the table
|
overridevirtual |
convert node to HTML and returns true
on success
[out] | html | new HTML code is APPENDED to this string |
currentEv | JKQTMathTextEnvironment object describing the current drawing environment/settings | |
defaultEv | JKQTMathTextEnvironment object describing the default drawing environment/settings when starting to interpret a node tree |
true
on success Reimplemented from JKQTMathTextNode.
|
protected |
child nodes making up the matrix, vector of rows
|
protected |
alignment of the columns
|
protected |
number of columns in the matrix
|
protected |
lines to the bottom of each row
|
protected |
line at the top of the table
|
protected |
number of rows in the matrix
|
protected |
line at the left of the table
|
protected |
lines to the right of each column