X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2FMathMacro.h;h=6e795237e197d2b50480c9b69d6f0e19cde108f0;hb=5fdc577badb1cb133d6a0dc7d831bb1f82576adb;hp=4eb93ba53480371d172b7261076de0d4c629892a;hpb=f643ae700700cbd9aa0b1aca8155c6d7f2aee34d;p=lyx.git diff --git a/src/mathed/MathMacro.h b/src/mathed/MathMacro.h index 4eb93ba534..6e795237e1 100644 --- a/src/mathed/MathMacro.h +++ b/src/mathed/MathMacro.h @@ -122,10 +122,12 @@ public: /// docstring name() const; - /// + /// FIXME: Often dangling. MacroData const * macro() const; /// docstring macroName() const; + /// Level of nesting in macros (including this one) + int nesting() const; /// bool validName() const; /// @@ -139,6 +141,9 @@ public: size_t appetite() const; /// InsetCode lyxCode() const { return MATH_MACRO_CODE; } + /// This is not used for display; however whether it is mathrel determines + /// how to split equations intelligently. + MathClass mathClass() const; //override protected: friend class MathData; @@ -152,7 +157,8 @@ protected: /// update macro definition void updateMacro(MacroContext const & mc); /// check if macro definition changed, argument changed etc. and adapt - void updateRepresentation(Cursor * cur, MacroContext const & mc, UpdateType); + void updateRepresentation(Cursor * cur, MacroContext const & mc, + UpdateType, int nesting); /// empty macro, put arguments into args, possibly strip arity-attachedArgsNum_ empty ones. /// Includes the optional arguments. void detachArguments(std::vector & args, bool strip); @@ -161,6 +167,14 @@ protected: void attachArguments(std::vector const & args, size_t arity, int optionals); private: + /// Math mode for output and display. UNDECIDED for user macros: they could + /// be either. + mode_type modeToEnsure() const; + /// This function is needed for now because of two shortfalls of the current + /// implementation: the macro() pointer is often dangling, in which case we + /// fall back to a backup copy, and the macro is not known at inset + /// creation, in which case we fall back to the global macro with this name. + MacroData const * macroBackup() const; /// virtual Inset * clone() const; ///