X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2FMathData.h;h=058d86e30e283269710144fbfd6e182c34e43981;hb=02e82157ec583c3900e359de86be79fac6512387;hp=4b79f805fe1d33b9530f77ffc8c5a3626fe79d4a;hpb=da30e3840033dd6c5885de63ac08eeb0d7edb40c;p=lyx.git diff --git a/src/mathed/MathData.h b/src/mathed/MathData.h index 4b79f805fe..058d86e30e 100644 --- a/src/mathed/MathData.h +++ b/src/mathed/MathData.h @@ -16,7 +16,9 @@ #define MATH_DATA_H #include "Dimension.h" + #include "MathAtom.h" +#include "MathRow.h" #include "OutputEnums.h" @@ -24,6 +26,7 @@ #include #include +#include namespace lyx { @@ -117,6 +120,10 @@ public: MathAtom & operator[](pos_type); /// checked read access MathAtom const & operator[](pos_type) const; + + /// Add this array to a math row. Return true if contents got added + bool addToMathRow(MathRow &, MetricsInfo & mi) const; + /// rebuild cached metrics information void metrics(MetricsInfo & mi, Dimension & dim) const; /// @@ -164,7 +171,7 @@ public: /// 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); @@ -177,6 +184,9 @@ protected: mutable int kerning_; Buffer * buffer_; + /// cached object that describes typeset data + mutable std::map mrow_cache_; + private: /// is this an exact match at this position? bool find1(MathData const & ar, size_type pos) const;