lyx_mirror/src/mathed
Stefan Schimanski 36dbec4506 * Lazy MathData to avoid unneeded interpretation of macro definitions
* DocIterator as MacroPosition
* Iterative search for macro in scope until a visible one is found.
This include the ability to resolve macro inside nested text insets.
* Speed up macro lookups by factor 2: only getMacro(name) call, no
further hasMacro(name) call before
* Both way child/master support
* Correct macro scope for multi-paragraph environments
* Correct macro scope for multi-depth-paragraphs
* Buffer::updateMacros made const
* Update macros when loaded (of master and child)
* Do not remove too many braces when unfolding a macro. This could
lead to a data loss because the relationship between arguments of
macros can be mixed up if nested macros are unfold at once.
* Reduce dependencies to MetricsInfo in MathMacro   
* Update macros when needed. Normally it's done just before doing
metrics. But in cases without a brace around some constructs (like
\left(bla\right)) there is some help needed.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22241 a592a061-630c-0410-9148-cb99ea01b6c8
2007-12-21 20:42:46 +00:00
..
BUGS
CommandInset.cpp 'using namespace std' instead of 'using std::xxx' 2007-12-12 10:16:00 +00:00
CommandInset.h
InsetFormulaMacro.cpp getting rid of superfluous std:: statements. 2007-12-12 19:28:07 +00:00
InsetFormulaMacro.h Move Inset::Code to InsetCode.h 2007-10-13 09:04:52 +00:00
InsetMath.cpp getting rid of superfluous std:: statements. 2007-12-12 19:28:07 +00:00
InsetMath.h * non-const coercion for math braces 2007-11-01 10:58:59 +00:00
InsetMathAMSArray.cpp Move debug.{cpp,h}, Messages.{cpp,h} and gettext.{cpp,h} to support/. 2007-11-29 07:04:28 +00:00
InsetMathAMSArray.h
InsetMathArray.cpp 'using namespace std' instead of 'using std::xxx' 2007-12-12 10:16:00 +00:00
InsetMathArray.h
InsetMathBig.cpp * src/mathed/InsetMathBig.cpp: 2007-11-06 09:30:33 +00:00
InsetMathBig.h
InsetMathBoldSymbol.cpp we assume (more or less) conforming compilers nowadays. 2007-11-06 21:45:24 +00:00
InsetMathBoldSymbol.h
InsetMathBox.cpp some consolidation 2007-11-06 20:57:29 +00:00
InsetMathBox.h some consolidation 2007-11-06 20:57:29 +00:00
InsetMathBrace.cpp getting rid of superfluous std:: statements. 2007-12-12 19:28:07 +00:00
InsetMathBrace.h * non-const coercion for math braces 2007-11-01 10:58:59 +00:00
InsetMathCases.cpp 'using namespace lyx::support' instead of 'using support::xxx' 2007-12-12 18:57:56 +00:00
InsetMathCases.h
InsetMathChar.cpp Move debug.{cpp,h}, Messages.{cpp,h} and gettext.{cpp,h} to support/. 2007-11-29 07:04:28 +00:00
InsetMathChar.h Splitup Font in saner bits: 2007-10-28 18:51:54 +00:00
InsetMathColor.cpp #include cosmetics 2007-11-05 23:46:17 +00:00
InsetMathColor.h Move Color::color enum to ColorCode.h 2007-10-25 12:41:02 +00:00
InsetMathComment.cpp we assume (more or less) conforming compilers nowadays. 2007-11-06 21:45:24 +00:00
InsetMathComment.h
InsetMathDecoration.cpp getting rid of superfluous std:: statements. 2007-12-12 19:28:07 +00:00
InsetMathDecoration.h
InsetMathDelim.cpp 'using namespace std' instead of 'using std::xxx' 2007-12-12 10:16:00 +00:00
InsetMathDelim.h
InsetMathDiff.cpp Move debug.{cpp,h}, Messages.{cpp,h} and gettext.{cpp,h} to support/. 2007-11-29 07:04:28 +00:00
InsetMathDiff.h
InsetMathDots.cpp #include cosmetics 2007-11-05 23:46:17 +00:00
InsetMathDots.h
InsetMathEnv.cpp we assume (more or less) conforming compilers nowadays. 2007-11-06 21:45:24 +00:00
InsetMathEnv.h
InsetMathExFunc.cpp 'using namespace std' instead of 'using std::xxx' 2007-12-12 10:16:00 +00:00
InsetMathExFunc.h
InsetMathExInt.cpp Move debug.{cpp,h}, Messages.{cpp,h} and gettext.{cpp,h} to support/. 2007-11-29 07:04:28 +00:00
InsetMathExInt.h
InsetMathFont.cpp #include cosmetics 2007-11-05 23:46:17 +00:00
InsetMathFont.h
InsetMathFontOld.cpp #include cosmetics 2007-11-05 23:46:17 +00:00
InsetMathFontOld.h
InsetMathFrac.cpp getting rid of superfluous std:: statements. 2007-12-12 19:28:07 +00:00
InsetMathFrac.h Getting rid of LTR bias --- part 4/4 2007-11-05 19:44:03 +00:00
InsetMathGrid.cpp getting rid of superfluous lyx::support:: statements. 2007-12-12 19:57:42 +00:00
InsetMathGrid.h support for \pagebreak: 2007-11-23 02:10:00 +00:00
InsetMathHull.cpp header cleanup. 2007-12-16 22:09:28 +00:00
InsetMathHull.h Use forceLTR instead of inset codes in order to determine whether an inset 2007-11-05 23:44:47 +00:00
InsetMathKern.cpp use strfwd.h if possible 2007-11-27 20:51:20 +00:00
InsetMathKern.h
InsetMathLefteqn.cpp remove unneeded Cursor.h include; 2007-11-05 22:54:53 +00:00
InsetMathLefteqn.h
InsetMathLim.cpp Move debug.{cpp,h}, Messages.{cpp,h} and gettext.{cpp,h} to support/. 2007-11-29 07:04:28 +00:00
InsetMathLim.h
InsetMathMatrix.cpp
InsetMathMatrix.h
InsetMathMBox.cpp getting rid of superfluous std:: statements. 2007-12-12 19:28:07 +00:00
InsetMathMBox.h
InsetMathNest.cpp * Lazy MathData to avoid unneeded interpretation of macro definitions 2007-12-21 20:42:46 +00:00
InsetMathNest.h Getting rid of LTR bias --- part 4/4 2007-11-05 19:44:03 +00:00
InsetMathNumber.cpp 'using namespace std' instead of 'using std::xxx' 2007-12-12 10:16:00 +00:00
InsetMathNumber.h
InsetMathOverset.cpp getting rid of superfluous std:: statements. 2007-12-12 19:28:07 +00:00
InsetMathOverset.h put \frac style stuff into a single unit. -161477. 2007-10-25 21:53:06 +00:00
InsetMathPar.cpp we assume (more or less) conforming compilers nowadays. 2007-11-06 21:45:24 +00:00
InsetMathPar.h
InsetMathPhantom.cpp we assume (more or less) conforming compilers nowadays. 2007-11-06 21:45:24 +00:00
InsetMathPhantom.h
InsetMathRef.cpp 'using namespace std' instead of 'using std::xxx' 2007-12-12 10:16:00 +00:00
InsetMathRef.h
InsetMathRoot.cpp 'using namespace std' instead of 'using std::xxx' 2007-12-12 10:16:00 +00:00
InsetMathRoot.h
InsetMathScript.cpp 'using namespace std' instead of 'using std::xxx' 2007-12-12 10:16:00 +00:00
InsetMathScript.h Getting rid of LTR bias --- part 4/4 2007-11-05 19:44:03 +00:00
InsetMathSize.cpp we assume (more or less) conforming compilers nowadays. 2007-11-06 21:45:24 +00:00
InsetMathSize.h
InsetMathSpace.cpp 'using namespace std' instead of 'using std::xxx' 2007-12-12 10:16:00 +00:00
InsetMathSpace.h
InsetMathSplit.cpp 'using namespace std' instead of 'using std::xxx' 2007-12-12 10:16:00 +00:00
InsetMathSplit.h
InsetMathSqrt.cpp Move Color::color enum to ColorCode.h 2007-10-25 12:41:02 +00:00
InsetMathSqrt.h
InsetMathStackrel.cpp getting rid of superfluous std:: statements. 2007-12-12 19:28:07 +00:00
InsetMathStackrel.h put \frac style stuff into a single unit. -161477. 2007-10-25 21:53:06 +00:00
InsetMathString.cpp
InsetMathString.h
InsetMathSubstack.cpp 'using namespace std' instead of 'using std::xxx' 2007-12-12 10:16:00 +00:00
InsetMathSubstack.h
InsetMathSymbol.cpp getting rid of superfluous std:: statements. 2007-12-12 19:28:07 +00:00
InsetMathSymbol.h Splitup Font in saner bits: 2007-10-28 18:51:54 +00:00
InsetMathTabular.cpp we assume (more or less) conforming compilers nowadays. 2007-11-06 21:45:24 +00:00
InsetMathTabular.h
InsetMathUnderset.cpp getting rid of superfluous std:: statements. 2007-12-12 19:28:07 +00:00
InsetMathUnderset.h put \frac style stuff into a single unit. -161477. 2007-10-25 21:53:06 +00:00
InsetMathUnknown.cpp
InsetMathUnknown.h
InsetMathXArrow.cpp getting rid of superfluous std:: statements. 2007-12-12 19:28:07 +00:00
InsetMathXArrow.h put \frac style stuff into a single unit. -161477. 2007-10-25 21:53:06 +00:00
InsetMathXYArrow.cpp 'using namespace std' instead of 'using std::xxx' 2007-12-12 10:16:00 +00:00
InsetMathXYArrow.h
InsetMathXYMatrix.cpp we assume (more or less) conforming compilers nowadays. 2007-11-06 21:45:24 +00:00
InsetMathXYMatrix.h
MacroTable.cpp * Lazy MathData to avoid unneeded interpretation of macro definitions 2007-12-21 20:42:46 +00:00
MacroTable.h * Lazy MathData to avoid unneeded interpretation of macro definitions 2007-12-21 20:42:46 +00:00
MathAtom.cpp 'using namespace std' instead of 'using std::xxx' 2007-12-12 10:16:00 +00:00
MathAtom.h Remove remnant of the past. 2007-10-01 10:50:16 +00:00
MathAutoCorrect.cpp * get rid of support::absolutePath() 2007-12-17 16:04:46 +00:00
MathAutoCorrect.h
MathData.cpp * Lazy MathData to avoid unneeded interpretation of macro definitions 2007-12-21 20:42:46 +00:00
MathData.h * Lazy MathData to avoid unneeded interpretation of macro definitions 2007-12-21 20:42:46 +00:00
MathExtern.cpp * get rid of support::absolutePath() 2007-12-17 16:04:46 +00:00
MathExtern.h use strfwd.h if possible 2007-11-27 20:51:20 +00:00
MathFactory.cpp * get rid of support::absolutePath() 2007-12-17 16:04:46 +00:00
MathFactory.h use strfwd.h if possible 2007-11-27 20:51:20 +00:00
MathGridInfo.h
MathMacro.cpp * Lazy MathData to avoid unneeded interpretation of macro definitions 2007-12-21 20:42:46 +00:00
MathMacro.h * Lazy MathData to avoid unneeded interpretation of macro definitions 2007-12-21 20:42:46 +00:00
MathMacroArgument.cpp Move debug.{cpp,h}, Messages.{cpp,h} and gettext.{cpp,h} to support/. 2007-11-29 07:04:28 +00:00
MathMacroArgument.h * dynamic macros as described in http://1stein.org/download/dynmacro.pdf 2007-11-01 11:13:07 +00:00
MathMacroTemplate.cpp * Lazy MathData to avoid unneeded interpretation of macro definitions 2007-12-21 20:42:46 +00:00
MathMacroTemplate.h * Lazy MathData to avoid unneeded interpretation of macro definitions 2007-12-21 20:42:46 +00:00
MathParser.cpp * Lazy MathData to avoid unneeded interpretation of macro definitions 2007-12-21 20:42:46 +00:00
MathParser.h remove unneeded #include 2007-11-05 23:01:18 +00:00
MathStream.cpp getting rid of superfluous std:: statements. 2007-12-12 19:28:07 +00:00
MathStream.h #include cosmetics 2007-11-05 23:46:17 +00:00
MathSupport.cpp getting rid of superfluous std:: statements. 2007-12-12 19:28:07 +00:00
MathSupport.h use strfwd.h if possible 2007-11-27 20:51:20 +00:00
README
ReplaceData.h
texify
TextPainter.cpp we assume (more or less) conforming compilers nowadays. 2007-11-06 21:45:24 +00:00
TextPainter.h

Inset 'Xyz' is implemented by 'MathXyzInset' in 'math_xyzinset.[hC]'


Inset hierarchy:

                                   MathInset
                                (abstract base)

                         /            |               \

              Dim                  Char               Symbol, Space, ...
         (thing that need       (for things formerly
          the width_/ascent_     known as characters)
          /descent_ cache)

          /             \

       Nest              Dots,  Func, ...
  (for thing with
   nested content)

        |         \

      Grid        Decoration   Delim   Frac  Macro  Root  Script  Sqrt

      /   \

 Array    Hull
         (base for eqnarray/align/...)