1 // -*- C++ -*- 2 /** 3 * \file InsetMathXArrow.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_XARROWINSET_H 13 #define MATH_XARROWINSET_H 14 15 #include "InsetMathFrac.h" 16 17 18 namespace lyx { 19 20 21 /// Wide arrows like \xrightarrow 22 class InsetMathXArrow : public InsetMathFracBase { 23 public: 24 /// 25 explicit InsetMathXArrow(Buffer * buf, docstring const & name); 26 /// 27 void draw(PainterInfo & pi, int x, int y) const; 28 /// 29 void write(WriteStream & os) const; 30 /// 31 void metrics(MetricsInfo & mi, Dimension & dim) const; 32 /// 33 void normalize(NormalStream & os) const; 34 /// 35 void mathmlize(MathStream &) const; 36 /// 37 void htmlize(HtmlStream &) const; 38 /// 39 void validate(LaTeXFeatures & features) const; 40 /// lyxCode()41 InsetCode lyxCode() const { return MATH_XARROW_CODE; } 42 /// mathClass()43 MathClass mathClass() const { return MC_REL; } 44 45 private: 46 virtual Inset * clone() const; 47 /// 48 bool upper() const; 49 /// 50 docstring const name_; 51 }; 52 53 54 } // namespace lyx 55 #endif 56