3 * \file InsetMathFont.h
4 * This file is part of LyX, the document processor.
5 * Licence details can be found in the file COPYING.
9 * Full author contact details are available in file CREDITS.
12 #ifndef MATH_FONTINSET_H
13 #define MATH_FONTINSET_H
15 #include "InsetMathNest.h"
23 /// Inset for font changes
24 class InsetMathFont
: public InsetMathNest
{
27 explicit InsetMathFont(Buffer
* buf
, latexkeys
const * key
);
29 InsetMathFont
* asFontInset() { return this; }
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;
37 docstring
name() const;
39 void metrics(MetricsInfo
& mi
, Dimension
& dim
) const;
41 void draw(PainterInfo
& pi
, int x
, int y
) const;
43 void metricsT(TextMetricsInfo
const & mi
, Dimension
& dim
) const;
45 void drawT(TextPainter
& pi
, int x
, int y
) const;
47 void validate(LaTeXFeatures
& features
) const;
49 void infoize(odocstream
& os
) const;
51 int kerning(BufferView
const * bv
) const { return cell(0).kerning(bv
); }
53 InsetCode
lyxCode() const { return MATH_FONT_CODE
; }
56 virtual Inset
* clone() const;
57 /// the font to be used on screen
58 latexkeys
const * key_
;