]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/InsetMathScript.h
Proper GUI feedback for leqno option
[lyx.git] / src / mathed / InsetMathScript.h
index e851e2b371e4ae02e2c49450bf068494852dc20e..0b96d03ce2e03bdc9307229d93136b35c5c0c934 100644 (file)
@@ -4,7 +4,7 @@
  * This file is part of LyX, the document processor.
  * Licence details can be found in the file COPYING.
  *
- * \author André Pönitz
+ * \author André Pönitz
  *
  * Full author contact details are available in file CREDITS.
  */
@@ -25,14 +25,16 @@ namespace lyx {
 class InsetMathScript : public InsetMathNest {
 public:
        /// create inset without scripts
-       InsetMathScript();
+       InsetMathScript(Buffer * buf);
        /// create inset with single script
-       explicit InsetMathScript(bool up);
+       explicit InsetMathScript(Buffer * buf, bool up);
        /// create inset with single script and given nucleus
-       InsetMathScript(MathAtom const & at, bool up);
+       InsetMathScript(Buffer * buf, MathAtom const & at, bool up);
        ///
        mode_type currentMode() const { return MATH_MODE; }
        ///
+       MathClass mathClass() const;
+       ///
        void metrics(MetricsInfo & mi, Dimension & dim) const;
        ///
        void draw(PainterInfo & pi, int x, int y) const;
@@ -60,8 +62,10 @@ public:
        void maple(MapleStream &) const;
        /// write content as something readable by Mathematica
        void mathematica(MathematicaStream &) const;
-       /// write content as something resembling MathML
+       /// write content as MathML
        void mathmlize(MathStream &) const;
+       /// write content as HTML
+       void htmlize(HtmlStream &) const;
        /// write content as something readable by Octave
        void octave(OctaveStream &) const;
 
@@ -102,8 +106,15 @@ public:
        void infoize(odocstream & os) const;
        /// say whether we have displayed limits
        void infoize2(odocstream & os) const;
+       ///
+       InsetCode lyxCode() const { return MATH_SCRIPT_CODE; }
+       ///
+       void validate(LaTeXFeatures &features) const;
 protected:
        virtual void doDispatch(Cursor & cur, FuncRequest & cmd);
+       /// do we want to handle this event?
+       bool getStatus(Cursor & cur, FuncRequest const & cmd,
+               FuncStatus & status) const;
 private:
        virtual Inset * clone() const;
        /// returns x offset for main part
@@ -124,12 +135,15 @@ private:
        int nasc(BufferView const &) const;
        /// returns descent of nucleus if any
        int ndes(BufferView const &) const;
-       /// returns superscript kerning of nucleus if any
+       /// Italic correction: amount of displacement between subscript and
+       /// superscript in math mode as per Appendix G, rule 18f.  A positive value
+       /// shifts the superscript to the right, and a negative value shifts the
+       /// subscript to the left.
        int nker(BufferView const * bv) const;
        /// where do we have to draw the scripts?
        bool hasLimits() const;
        /// clean up empty cells and return true if a cell has been deleted.
-       bool notifyCursorLeaves(Cursor & cur);
+       bool notifyCursorLeaves(Cursor const & old, Cursor & cur);
 
        /// possible subscript (index 0) and superscript (index 1)
        bool cell_1_is_up_;
@@ -138,6 +152,6 @@ private:
 };
 
 
-
 } // namespace lyx
+
 #endif