1 // -*- C++ -*- 2 /** 3 * \file InsetMathRoot.h 4 * This file is part of LyX, the document processor. 5 * Licence details can be found in the file COPYING. 6 * 7 * \author Alejandro Aguilar Sierra 8 * \author André Pönitz 9 * 10 * Full author contact details are available in file CREDITS. 11 */ 12 13 #ifndef MATH_ROOT_H 14 #define MATH_ROOT_H 15 16 #include "InsetMathNest.h" 17 18 19 namespace lyx { 20 21 22 /// The general n-th root inset. 23 class InsetMathRoot : public InsetMathNest { 24 public: 25 /// 26 InsetMathRoot(Buffer * buf); 27 /// 28 bool idxUpDown(Cursor & cur, bool up) const; 29 /// 30 void metrics(MetricsInfo & mi, Dimension & dim) const; 31 /// 32 void draw(PainterInfo & pi, int x, int y) const; 33 34 /// 35 void write(WriteStream & os) const; 36 /// 37 void normalize(NormalStream &) const; 38 /// 39 void mathmlize(MathStream &) const; 40 /// 41 void htmlize(HtmlStream &) const; 42 /// 43 void maple(MapleStream &) const; 44 /// 45 void mathematica(MathematicaStream &) const; 46 /// 47 void octave(OctaveStream &) const; 48 /// lyxCode()49 InsetCode lyxCode() const { return MATH_ROOT_CODE; } 50 /// 51 void validate(LaTeXFeatures &) const; 52 53 private: 54 virtual Inset * clone() const; 55 }; 56 57 void mathed_root_metrics(MetricsInfo & mi, MathData const & nucleus, 58 MathData const * root, Dimension & dim); 59 60 void mathed_draw_root(PainterInfo & pi, int x, int y, MathData const & nucleus, 61 MathData const * root, Dimension const & dim); 62 63 64 } // namespace lyx 65 #endif 66