]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/MathData.h
Merge remote-tracking branch 'features/properpaint' into 2.3.2-staging
[lyx.git] / src / mathed / MathData.h
index 9eae46671a70f1271c190983309fb4d4ac6d3e42..31bb787c98f4d82c56e14193c2358aaa4c180f3e 100644 (file)
@@ -38,7 +38,7 @@ class DocIterator;
 class LaTeXFeatures;
 class ReplaceData;
 class MacroContext;
-class MathMacro;
+class InsetMathMacro;
 class MetricsInfo;
 class PainterInfo;
 class ParIterator;
@@ -129,6 +129,8 @@ public:
        ///
        Dimension const & dimension(BufferView const &) const;
 
+       /// draw the selection over the cell
+       void drawSelection(PainterInfo & pi, int x, int y) const;
        /// redraw cell using cache metrics information
        void draw(PainterInfo & pi, int x, int y) const;
        /// rebuild cached metrics information
@@ -137,6 +139,8 @@ public:
        void drawT(TextPainter & pi, int x, int y) const;
        /// mark cell for re-drawing
        void touch() const;
+       /// approximate the math class of the data
+       MathClass mathClass() const;
 
        /// access to cached x coordinate of last drawing
        int xo(BufferView const & bv) const;
@@ -164,16 +168,18 @@ public:
        int slevel() const { return slevel_; }
        /// additional super/subscript shift
        int sshift() const { return sshift_; }
-       /// superscript kerning
+       /// Italic correction as described in InsetMathScript.h
        int kerning(BufferView const *) const { return kerning_; }
        ///
        void swap(MathData & ar) { base_type::swap(ar); }
 
        /// attach/detach arguments to macros, updating the cur to
        /// stay visually at the same position (cur==0 is allowed)
-       void updateMacros(Cursor * cur, MacroContext const & mc, UpdateType);
+       void updateMacros(Cursor * cur, MacroContext const & mc, UpdateType, int nesting);
        ///
        void updateBuffer(ParIterator const &, UpdateType);
+       ///
+       void setBuffer(Buffer & b) { buffer_ = &b; }
 
 protected:
        /// cached values for super/subscript placement
@@ -194,18 +200,18 @@ private:
        ///
        void detachMacroParameters(DocIterator * dit, const size_type macroPos);
        ///
-       void attachMacroParameters(Cursor * cur, const size_type macroPos, 
+       void attachMacroParameters(Cursor * cur, const size_type macroPos,
                const size_type macroNumArgs, const int macroOptionals,
                const bool fromInitToNormalMode, const bool interactiveInit,
                const size_t appetite);
        ///
-       void collectOptionalParameters(Cursor * cur, 
-               const size_type numOptionalParams, std::vector<MathData> & params, 
+       void collectOptionalParameters(Cursor * cur,
+               const size_type numOptionalParams, std::vector<MathData> & params,
                size_t & pos, MathAtom & scriptToPutAround,
                const pos_type macroPos, const int thisPos, const int thisSlice);
        ///
-       void collectParameters(Cursor * cur, 
-               const size_type numParams, std::vector<MathData> & params, 
+       void collectParameters(Cursor * cur,
+               const size_type numParams, std::vector<MathData> & params,
                size_t & pos, MathAtom & scriptToPutAround,
                const pos_type macroPos, const int thisPos, const int thisSlice,
                const size_t appetite);