lyx_mirror/src/mathed/InsetMathStackrel.h
Jean-Marc Lasgouttes 361bd53bc3 Introduce the notion of math class
This done according to the TeXbook. This class replaces the individual
isMathXXX() methods. The mathClass() method (currently unused) is
provided for the following insets:

 * InsetMathChar (with a revised list of affected characters)
 * InsetMathSymbol: the class is given by the `extra' field
   Operators defined in lib/symbols (e.g. \log) are MC_OP
 * InsetMathFrac is MC_INNER (except nicefrac and units)
 * InsetDelimiters is MC_INNER
 * InsetStackrel is MC_REL
 * The class of InsetScript is the class of the last element of its
   nucleus (yes, it is a hack, but doing it right is more work).

Remove the explicit spacing that was done in the different insets. The spacing
will be reintroduced properly in a forthcoming commit.
2016-11-16 15:21:52 +01:00

51 lines
1013 B
C++

// -*- C++ -*-
/**
* \file InsetMathStackrel.h
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
* \author André Pönitz
*
* Full author contact details are available in file CREDITS.
*/
#ifndef MATH_STACKRELINSET_H
#define MATH_STACKRELINSET_H
#include "InsetMathFrac.h"
namespace lyx {
class InsetMathStackrel : public InsetMathFracBase {
public:
///
InsetMathStackrel(Buffer * buf, bool sub);
///
bool idxUpDown(Cursor &, bool up) const;
///
MathClass mathClass() const;
///
void metrics(MetricsInfo & mi, Dimension & dim) const;
///
void draw(PainterInfo & pi, int x, int y) const;
///
void write(WriteStream & os) const;
///
void normalize(NormalStream &) const;
///
void mathmlize(MathStream &) const;
///
void htmlize(HtmlStream &) const;
///
void validate(LaTeXFeatures &) const;
///
InsetCode lyxCode() const { return MATH_STACKREL_CODE; }
private:
virtual Inset * clone() const;
};
} // namespace lyx
#endif