]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/MathMacro.h
Fix overflow of inset over text (see #9224)
[lyx.git] / src / mathed / MathMacro.h
index b431a9a9a516c9344117d618cab328cd3ee6ae72..b2d75534d2a04376ba42a573209c31b5de07c0e8 100644 (file)
@@ -69,10 +69,14 @@ public:
        ///
        void write(WriteStream & os) const;
        ///
+       void normalize(NormalStream & os) const;
+       ///
        void maple(MapleStream &) const;
        ///
        void mathmlize(MathStream &) const;
        ///
+       void htmlize(HtmlStream &) const;
+       ///
        void octave(OctaveStream &) const;
        ///
        void infoize(odocstream &) const;
@@ -90,7 +94,7 @@ public:
                DISPLAY_INIT,
                DISPLAY_INTERACTIVE_INIT,
                DISPLAY_UNFOLDED,
-               DISPLAY_NORMAL,
+               DISPLAY_NORMAL
        };
 
        ///
@@ -135,7 +139,7 @@ protected:
        /// update macro definition
        void updateMacro(MacroContext const & mc);
        /// check if macro definition changed, argument changed etc. and adapt
-       void updateRepresentation();
+       void updateRepresentation(Cursor * cur, MacroContext const & mc, UpdateType);
        /// empty macro, put arguments into args, possibly strip arity-attachedArgsNum_ empty ones.
        /// Includes the optional arguments.
        void detachArguments(std::vector<MathData> & args, bool strip);
@@ -179,6 +183,10 @@ private:
        std::string requires_;
        /// update macro representation
        bool needsUpdate_;
+       /// update lock to avoid loops
+       class UpdateLocker;
+       friend class UpdateLocker;
+       bool isUpdating_;
        /// maximal number of arguments the macro is greedy for
        size_t appetite_;