#ifndef MATH_INSET_H
#define MATH_INSET_H
-#include "MathData.h"
-
#include "insets/Inset.h"
hullFlAlign,
hullMultline,
hullGather,
- hullRegexp
+ hullRegexp,
+ hullUnknown
};
HullType hullType(docstring const & name);
math editor only, it isn't a general LyX inset. It's used to represent all
the math objects.
-Math insets do not know there parents, a cursor position or things
+Math insets do not know their parents, a cursor position or things
like that. They are dumb objects that are contained in other math insets
(InsetMathNests, in fact) thus forming a tree. The root of this tree is
always a InsetMathHull, which provides an interface to the Outer World by
class InsetMathBrace;
class InsetMathChar;
class InsetMathDelim;
+class InsetMathFracBase;
class InsetMathFrac;
class InsetMathFont;
class InsetMathGrid;
class MathematicaStream;
class MathStream;
class WriteStream;
-class InfoStream;
+class MathData;
class MathMacroTemplate;
class MathMacro;
-class MathPosFinder;
class Cursor;
class TextPainter;
class TextMetricsInfo;
class ReplaceData;
+/// Type of unique identifiers for math insets (used in TexRow)
+typedef void const * uid_type;
+
class InsetMath : public Inset {
public:
virtual InsetMathChar const * asCharInset() const { return 0; }
virtual InsetMathDelim * asDelimInset() { return 0; }
virtual InsetMathDelim const * asDelimInset() const { return 0; }
+ virtual InsetMathFracBase * asFracBaseInset() { return 0; }
+ virtual InsetMathFracBase const * asFracBaseInset() const { return 0; }
virtual InsetMathFrac * asFracInset() { return 0; }
virtual InsetMathFrac const * asFracInset() const { return 0; }
virtual InsetMathFont * asFontInset() { return 0; }
/// identifies things that can get scripts
virtual bool isScriptable() const { return false; }
- /// is the a relational operator (used for splitting equations)
- virtual bool isRelOp() const { return false; }
+ /// identifies a binary operators (used for spacing)
+ virtual bool isMathBin() const { return false; }
+ /// identifies relational operators (used for spacing and splitting equations)
+ virtual bool isMathRel() const { return false; }
+ /// identifies punctuation (used for spacing)
+ virtual bool isMathPunct() const { return false; }
/// will this get written as a single block in {..}
virtual bool extraBraces() const { return false; }
bool isInToc() const { return true; }
///
InsetCode lyxCode() const { return MATH_CODE; }
+ ///
+ uid_type id() const { return this; }
};
///