X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2FMathRow.h;h=cb4c8614cd38f5993cc31a8821ce5cf501634724;hb=a68e5b777487b495feeefa53700834ecec6ec196;hp=3d31e1cbcb683d2a49894f6c98d67cd188228f70;hpb=f3f9b083d180412a62a50bdef06ab236dca5fc9d;p=lyx.git diff --git a/src/mathed/MathRow.h b/src/mathed/MathRow.h index 3d31e1cbcb..cb4c8614cd 100644 --- a/src/mathed/MathRow.h +++ b/src/mathed/MathRow.h @@ -12,6 +12,7 @@ #ifndef MATH_ROW_H #define MATH_ROW_H +#include "InsetMath.h" #include "MathClass.h" #include "ColorCode.h" @@ -29,7 +30,6 @@ class PainterInfo; class InsetMath; class MathData; -class MathMacro; /* * While for editing purpose it is important that macros are counted @@ -47,43 +47,38 @@ public: // What row elements can be enum Type { INSET, // this element is a plain inset - BEG_MACRO, // a macro begins here - END_MACRO, // a macro ends here - BEG_ARG, // a macro argument begins here - END_ARG, // a macro argument ends here - BEGIN, // dummy element before row - END, // dummy element after row - BOX // an empty box + BOX, // an empty box + BEGIN, // an inset and/or a math array begins here + END, // an inset and/or a math array ends here + DUMMY // a dummy element (used before or after row) }; // An elements, together with its spacing struct Element { /// - Element(Type t, MetricsInfo & mi); + Element(MetricsInfo const & mi, Type t, MathClass mc = MC_UNKNOWN); /// Classifies the contents of the object Type type; + /// the class of the element + MathClass mclass; + /// the spacing around the element + int before, after; /// count wether the current mathdata is nested in macro(s) int macro_nesting; + /// Marker type + InsetMath::marker_type marker; /// When type is INSET - /// the math inset + /// the math inset (also for BEGIN and END) InsetMath const * inset; - /// the class of the inset - MathClass mclass; - /// the spacing around the inset - int before, after; // Non empty when there is a completion to draw docstring compl_text; // the number of characters forming the unique part. size_t compl_unique_to; - /// When type is BEG_MACRO, END_MACRO, BEG_ARG, END_ARG - /// the math macro - MathMacro const * macro; - - // type is BEG_ARG, END_ARG + // type is BEGIN, END MathData const * ar; // type is BOX @@ -115,8 +110,8 @@ public: // compute the spacings. MathRow(MetricsInfo & mi, MathData const * ar); - // - void metrics(MetricsInfo & mi, Dimension & dim) const; + // this returns true if the caret is here + bool metrics(MetricsInfo & mi, Dimension & dim); // void draw(PainterInfo & pi, int const x, int const y) const;