X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2FMathData.h;h=6f92852a0171ddb77039c82b7e6f7961be512b6f;hb=f6d505c1ee494ab0d30eebba86082c86a915e1df;hp=c235b2ce18e67d84bc5f29a40ea3e9f55b3fe64b;hpb=d8eaec5c03b5a961219f8d61c782b22c41849edc;p=lyx.git diff --git a/src/mathed/MathData.h b/src/mathed/MathData.h index c235b2ce18..6f92852a01 100644 --- a/src/mathed/MathData.h +++ b/src/mathed/MathData.h @@ -5,8 +5,8 @@ * Licence details can be found in the file COPYING. * * \author Alejandro Aguilar Sierra - * \author André Pönitz - * \author Lars Gullik Bjønnes + * \author André Pönitz + * \author Lars Gullik Bjønnes * \author Stefan Schimanski * * Full author contact details are available in file CREDITS. @@ -18,13 +18,17 @@ #include "Dimension.h" #include "MathAtom.h" +#include "OutputEnums.h" + #include "support/strfwd.h" +#include #include namespace lyx { +class Buffer; class BufferView; class Cursor; class DocIterator; @@ -34,6 +38,7 @@ class MacroContext; class MathMacro; class MetricsInfo; class PainterInfo; +class ParIterator; class TextMetricsInfo; class TextPainter; @@ -61,9 +66,13 @@ public: public: /// - MathData() {} + MathData(Buffer * buf = 0) : buffer_(buf) {} + /// + MathData(Buffer * buf, const_iterator from, const_iterator to); /// - MathData(const_iterator from, const_iterator to); + Buffer * buffer() { return buffer_; } + /// + Buffer const * buffer() const { return buffer_; } /// void append(MathData const & ar); @@ -158,7 +167,9 @@ 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); + void updateMacros(Cursor * cur, MacroContext const & mc, UpdateType); + /// + void updateBuffer(ParIterator const &, UpdateType); protected: /// cached values for super/subscript placement @@ -167,26 +178,30 @@ protected: mutable int slevel_; mutable int sshift_; mutable int kerning_; - + Buffer * buffer_; + private: /// is this an exact match at this position? bool find1(MathData const & ar, size_type pos) const; /// - void detachMacroParameters(Cursor * cur, const size_type macroPos); + void detachMacroParameters(DocIterator * dit, 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 bool fromInitToNormalMode, const bool interactiveInit, + const size_t appetite); /// void collectOptionalParameters(Cursor * cur, const size_type numOptionalParams, std::vector & params, - size_t & pos, const pos_type macroPos, const int thisPos, const int thisSlice); + 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 & params, size_t & pos, MathAtom & scriptToPutAround, - const pos_type macroPos, const int thisPos, const int thisSlice); + const pos_type macroPos, const int thisPos, const int thisSlice, + const size_t appetite); }; ///