#include "MathData.h"
-#include "insets/insetbase.h"
+#include "insets/Inset.h"
+
+
+namespace lyx {
enum HullType {
hullNone,
hullGather
};
-HullType hullType(std::string const & name);
-std::string hullName(HullType type);
+HullType hullType(docstring const & name);
+docstring hullName(HullType type);
/**
class InsetMathHull;
class InsetMathMatrix;
class InsetMathNest;
-class InsetMathParbox;
class InsetMathScript;
class InsetMathString;
class InsetMathSpace;
class InsetMathSymbol;
class InsetMathUnknown;
-class RefInset;
+class InsetMathRef;
class NormalStream;
class OctaveStream;
class MapleStream;
class MaximaStream;
class MathematicaStream;
-class MathMLStream;
+class MathStream;
class WriteStream;
class InfoStream;
class MathMacroTemplate;
class MathMacro;
class MathPosFinder;
-class Dimension;
-class LCursor;
+class Cursor;
class TextPainter;
class TextMetricsInfo;
class ReplaceData;
-class InsetMath : public InsetBase {
+class InsetMath : public Inset {
public:
/// identification as math inset
InsetMath * asInsetMath() { return this; }
virtual void drawT(TextPainter &, int x, int y) const;
/// return cell given its number
- virtual MathArray & cell(idx_type);
+ virtual MathData & cell(idx_type);
/// return cell given its number
- virtual MathArray const & cell(idx_type) const;
+ virtual MathData const & cell(idx_type) const;
/// identifies certain types of insets
virtual InsetMathAMSArray * asAMSArrayInset() { return 0; }
virtual InsetMathAMSArray const * asAMSArrayInset() const { return 0; }
virtual InsetMathArray * asArrayInset() { return 0; }
virtual InsetMathArray const * asArrayInset() const { return 0; }
+ virtual InsetMathBrace * asBraceInset() { return 0; }
virtual InsetMathBrace const * asBraceInset() const { return 0; }
virtual InsetMathChar const * asCharInset() const { return 0; }
virtual InsetMathDelim * asDelimInset() { return 0; }
virtual InsetMathMatrix const * asMatrixInset() const { return 0; }
virtual InsetMathNest * asNestInset() { return 0; }
virtual InsetMathNest const * asNestInset() const { return 0; }
- virtual InsetMathParbox * asParboxInset() { return 0; }
virtual InsetMathScript * asScriptInset() { return 0; }
virtual InsetMathScript const * asScriptInset() const { return 0; }
virtual InsetMathSpace * asSpaceInset() { return 0; }
virtual InsetMathSymbol const * asSymbolInset() const { return 0; }
virtual InsetMathUnknown * asUnknownInset() { return 0; }
virtual InsetMathUnknown const * asUnknownInset() const { return 0; }
- virtual RefInset * asRefInset() { return 0; }
+ virtual InsetMathRef * asRefInset() { return 0; }
/// identifies things that can get scripts
virtual bool isScriptable() const { return false; }
virtual bool extraBraces() const { return false; }
/// return the content as char if the inset is able to do so
- virtual char getChar() const { return 0; }
+ virtual char_type getChar() const { return 0; }
/// identifies things that can get \limits or \nolimits
virtual bool takesLimits() const { return false; }
/// char char code if possible
- virtual void handleFont(std::string const &) {}
+ virtual void handleFont(docstring const &) {}
/// replace things by other things
virtual void replace(ReplaceData &) {}
/// do we contain a given subsequence?
- virtual bool contains(MathArray const &) const { return false; }
+ virtual bool contains(MathData const &) const { return false; }
/// access to the lock (only nest array have one)
virtual bool lock() const { return false; }
/// access to the lock (only nest array have one)
/// write content as something readable by Mathematica
virtual void mathematica(MathematicaStream &) const;
/// write content as something resembling MathML
- virtual void mathmlize(MathMLStream &) const;
+ virtual void mathmlize(MathStream &) const;
/// write content as something readable by Octave
virtual void octave(OctaveStream &) const;
+ /// plain text output in ucs4 encoding
+ int plaintext(Buffer const &, odocstream &,
+ OutputParams const &) const;
+
/// dump content to stderr for debugging
virtual void dump() const;
virtual HullType getType() const;
/// change type
virtual void mutate(HullType /*newtype*/) {}
- /// usually the latex name
- virtual std::string name() const;
/// math stuff usually isn't allowed in text mode
virtual bool allowedIn(mode_type mode) const { return mode == MATH_MODE; }
+
+ /// superscript kerning
+ virtual int kerning(BufferView const *) const { return 0; }
};
///
std::ostream & operator<<(std::ostream &, MathAtom const &);
///
-lyx::odocstream & operator<<(lyx::odocstream &, MathAtom const &);
+odocstream & operator<<(odocstream &, MathAtom const &);
// initialize math
void initMath();
+
+} // namespace lyx
+
#endif