![]() |
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 an superscript node with exactly one argument in the syntax tree More...
#include <jkqtmathtextsubsupernode.h>
Public Member Functions | |
JKQTMathTextSuperscriptNode (JKQTMathText *parent, JKQTMathTextNode *child) | |
virtual | ~JKQTMathTextSuperscriptNode () override |
virtual double | draw (QPainter &painter, double x, double y, JKQTMathTextEnvironment currentEv) const override |
draw the contents at the designated position | |
double | drawWithSpecialPlacement (QPainter &painter, double x, double y, JKQTMathTextEnvironment currentEv, const JKQTMathTextNodeSize *prevNodeSizeForSpecialPlacement) const |
like draw(), but allows to draw the superscript with special placement rules after large blocks (e.g. braces), when prevNodeSizeForSpecialPlacement is not nullptr | |
JKQTMathTextNodeSize | getSizeWithSpecialPlacement (QPainter &painter, JKQTMathTextEnvironment currentEv, const JKQTMathTextNodeSize *prevNodeSizeForSpecialPlacement) const |
like getSize(), i.e. determine the size of the node, but cares for superscript with special placement rules after large blocks (e.g. braces), when prevNodeSizeForSpecialPlacement is not nullptr | |
virtual QString | getTypeName () const override |
return the name of this class as a string | |
virtual bool | toHtml (QString &html, JKQTMathTextEnvironment currentEv, JKQTMathTextEnvironment defaultEv) const override |
convert node to HTML and returns true on success | |
![]() | |
JKQTMathTextSingleChildNode (JKQTMathTextNode *_child, JKQTMathText *parentMathText) | |
virtual | ~JKQTMathTextSingleChildNode () override |
JKQTMathTextNode * | getChild () |
child node of this node | |
const JKQTMathTextNode * | getChild () const |
child node of this node | |
bool | hasChild () const |
returns true if the child is valie (!=nullptr ) | |
void | replaceAndDeleteChild (JKQTMathTextNode *newChild) |
replaces the child node with the node newChild , deletes the replaced old node | |
JKQTMathTextNode * | replaceChild (JKQTMathTextNode *newChild) |
replaces the child node with the node newChild , returns the replaced old node | |
virtual void | setDrawBoxes (bool draw) override |
enables the drawing of colored boxes (for DEBUGGING) around the actual output of the node | |
![]() | |
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 | |
virtual JKQTMathTextNodeSize | getSizeInternal (QPainter &painter, JKQTMathTextEnvironment currentEv) const override |
determine the size of the node, overwrite this function in derived classes | |
![]() | |
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 | |
Additional Inherited Members | |
![]() | |
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 | |
![]() | |
JKQTMathTextNode * | child |
child node of this node | |
![]() | |
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} | |
subclass representing an superscript node with exactly one argument in the syntax tree
\int
, \sum
... or after braces)
|
explicit |
|
overridevirtual |
|
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.
double JKQTMathTextSuperscriptNode::drawWithSpecialPlacement | ( | QPainter & | painter, |
double | x, | ||
double | y, | ||
JKQTMathTextEnvironment | currentEv, | ||
const JKQTMathTextNodeSize * | prevNodeSizeForSpecialPlacement | ||
) | const |
like draw(), but allows to draw the superscript with special placement rules after large blocks (e.g. braces), when prevNodeSizeForSpecialPlacement is not nullptr
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 | |
[in] | prevNodeSizeForSpecialPlacement | optional parameter, describing the size of the previous node (on the left). This may be used for layout of some nodes (e.g. sub/super to move correctly next to large parantheses ...) |
|
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.
JKQTMathTextNodeSize JKQTMathTextSuperscriptNode::getSizeWithSpecialPlacement | ( | QPainter & | painter, |
JKQTMathTextEnvironment | currentEv, | ||
const JKQTMathTextNodeSize * | prevNodeSizeForSpecialPlacement | ||
) | const |
like getSize(), i.e. determine the size of the node, but cares for superscript with special placement rules after large blocks (e.g. braces), when prevNodeSizeForSpecialPlacement is not nullptr
painter | painter to use for determining the size | |
currentEv | current environment object | |
[in] | prevNodeSizeForSpecialPlacement | optional parameter, describing the size of the previous node (on the left). This may be used for layout of some nodes (e.g. sub/super to move correctly next to large parantheses ...) |
|
overridevirtual |
return the name of this class as a string
Reimplemented from JKQTMathTextNode.
|
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.