1 // -*- C++ -*- 2 /** 3 * \file InsetMathExInt.h 4 * This file is part of LyX, the document processor. 5 * Licence details can be found in the file COPYING. 6 * 7 * \author André Pönitz 8 * 9 * Full author contact details are available in file CREDITS. 10 */ 11 12 #ifndef MATH_EXINTINSET_H 13 #define MATH_EXINTINSET_H 14 15 16 // \int_l^u f(x) dx in one block (as opposed to 'f','(','x',')' or 'f','x') 17 // or \sum, \prod... for interfacing external programs 18 19 #include "InsetMathNest.h" 20 21 22 namespace lyx { 23 24 // for integrals: 25 // cell(0) is stuff before the 'd' 26 // cell(1) is the stuff after the 'd' 27 // cell(2) is the lower bound 28 // cell(3) is the upper bound 29 // for sums: 30 // cell(0) is the main body 31 // cell(1) is the index (e.g., i), if the lower bound is "i = ..." 32 // or the whole lower bound if not 33 // cell(2) is what follows the "=" in the first case 34 // cell(3) is the upper bound 35 class InsetMathExInt : public InsetMathNest { 36 public: 37 /// 38 explicit InsetMathExInt(Buffer * buf, docstring const & name_); 39 /// 40 void symbol(docstring const &); 41 /// 42 void metrics(MetricsInfo & mi, Dimension & dim) const; 43 /// 44 void draw(PainterInfo &, int x, int y) const; 45 46 /// 47 void normalize(NormalStream &) const; 48 /// 49 void maxima(MaximaStream &) const; 50 /// 51 void maple(MapleStream &) const; 52 /// 53 void mathematica(MathematicaStream &) const; 54 /// 55 void mathmlize(MathStream &) const; 56 /// 57 void htmlize(HtmlStream &) const; 58 /// 59 void write(WriteStream & os) const; 60 /// lyxCode()61 InsetCode lyxCode() const { return MATH_EXINT_CODE; } 62 private: 63 virtual Inset * clone() const; 64 /// 65 bool hasScripts() const; 66 67 /// 68 docstring symbol_; 69 }; 70 71 72 } // namespace lyx 73 74 75 #endif 76