A bit more re-organization.
[lyx.git] / src / mathed / InsetMathFont.h
blobe687bc0ede2b861de3119fcc0b51090e20493310
1 // -*- C++ -*-
2 /**
3 * \file InsetMathFont.h
4 * This file is part of LyX, the document processor.
5 * Licence details can be found in the file COPYING.
7 * \author André Pönitz
9 * Full author contact details are available in file CREDITS.
12 #ifndef MATH_FONTINSET_H
13 #define MATH_FONTINSET_H
15 #include "InsetMathNest.h"
18 namespace lyx {
21 class latexkeys;
23 /// Inset for font changes
24 class InsetMathFont : public InsetMathNest {
25 public:
26 ///
27 explicit InsetMathFont(Buffer * buf, latexkeys const * key);
28 ///
29 InsetMathFont * asFontInset() { return this; }
30 ///
31 InsetMathFont const * asFontInset() const { return this; }
32 /// are we in math mode, text mode, or unsure?
33 mode_type currentMode() const;
34 /// do we allow changing mode during latex export?
35 bool lockedMode() const;
36 ///
37 docstring name() const;
38 ///
39 void metrics(MetricsInfo & mi, Dimension & dim) const;
40 ///
41 void draw(PainterInfo & pi, int x, int y) const;
42 ///
43 void metricsT(TextMetricsInfo const & mi, Dimension & dim) const;
44 ///
45 void drawT(TextPainter & pi, int x, int y) const;
46 ///
47 void validate(LaTeXFeatures & features) const;
48 ///
49 void infoize(odocstream & os) const;
50 ///
51 int kerning(BufferView const * bv) const { return cell(0).kerning(bv); }
52 ///
53 InsetCode lyxCode() const { return MATH_FONT_CODE; }
55 private:
56 virtual Inset * clone() const;
57 /// the font to be used on screen
58 latexkeys const * key_;
62 } // namespace lyx
63 #endif