]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/InsetMath.h
listerrors.lyx : Update a link.
[lyx.git] / src / mathed / InsetMath.h
index 2f91e9ede5e6f872d3b8fd753fc8b56205ebfed8..24884ba541ebf0c827ce0524d848aff10a59ee56 100644 (file)
@@ -5,7 +5,7 @@
  * Licence details can be found in the file COPYING.
  *
  * \author Alejandro Aguilar Sierra
- * \author André Pönitz
+ * \author André Pönitz
  *
  * Full author contact details are available in file CREDITS.
  */
@@ -31,7 +31,8 @@ enum HullType {
        hullXXAlignAt,
        hullFlAlign,
        hullMultline,
-       hullGather
+       hullGather,
+       hullRegexp
 };
 
 HullType hullType(docstring const & name);
@@ -66,11 +67,13 @@ class InsetMathNest;
 class InsetMathScript;
 class InsetMathString;
 class InsetMathSpace;
+class InsetMathSpecialChar;
 class InsetMathSymbol;
 class InsetMathUnknown;
 
 class InsetMathRef;
 
+class HtmlStream;
 class NormalStream;
 class OctaveStream;
 class MapleStream;
@@ -91,10 +94,19 @@ class ReplaceData;
 
 class InsetMath : public Inset {
 public:
+       ///
+       InsetMath(Buffer * buf = 0) : Inset(buf) {}
        /// identification as math inset
        InsetMath * asInsetMath() { return this; }
+       /// identification as math inset
+       InsetMath const * asInsetMath() const { return this; }
        /// this is overridden in math text insets (i.e. mbox)
        bool inMathed() const { return true; }
+       ///
+       virtual docstring name() const;
+
+       /// this is overridden by specific insets
+       virtual mode_type currentMode() const { return MATH_MODE; }
 
        /// the ascent of the inset above the baseline
        /// compute the size of the object for text based drawing
@@ -142,6 +154,7 @@ public:
        virtual InsetMathUnknown        * asUnknownInset()        { return 0; }
        virtual InsetMathUnknown const  * asUnknownInset() const  { return 0; }
        virtual InsetMathRef            * asRefInset()            { return 0; }
+       virtual InsetMathSpecialChar const * asSpecialCharInset() const { return 0; }
 
        /// identifies things that can get scripts
        virtual bool isScriptable() const { return false; }
@@ -176,8 +189,13 @@ public:
        virtual void maxima(MaximaStream &) const;
        /// write content as something readable by Mathematica
        virtual void mathematica(MathematicaStream &) const;
-       /// write content as something resembling MathML
+       /// write content as MathML
        virtual void mathmlize(MathStream &) const;
+       /// write content as HTML, best we can.
+       /// the idea for this, and some of the details, come from
+       /// eLyXer, written by Alex Fernandez. no code is borrowed. rather,
+       /// we try to mimic how eLyXer outputs some math.
+       virtual void htmlize(HtmlStream &) const;
        /// write content as something readable by Octave
        virtual void octave(OctaveStream &) const;
 
@@ -199,6 +217,10 @@ public:
 
        /// superscript kerning
        virtual int kerning(BufferView const *) const { return 0; }
+       ///
+       bool isInToc() const { return true; }
+       ///
+       InsetCode lyxCode() const { return MATH_CODE; }
 };
 
 ///