3 * \file InsetMathSpace.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_SPACEINSET_H
13 #define MATH_SPACEINSET_H
15 #include "InsetMath.h"
23 class InsetMathSpace
: public InsetMath
{
26 explicit InsetMathSpace();
28 explicit InsetMathSpace(std::string
const & name
, std::string
const & length
);
30 explicit InsetMathSpace(Length
const & length
);
34 InsetMathSpace
const * asSpaceInset() const { return this; }
36 InsetMathSpace
* asSpaceInset() { return this; }
40 void metrics(MetricsInfo
& mi
, Dimension
& dim
) const;
42 void draw(PainterInfo
& pi
, int x
, int y
) const;
45 void normalize(NormalStream
&) const;
47 void validate(LaTeXFeatures
& features
) const;
49 void maple(MapleStream
&) const;
51 void mathematica(MathematicaStream
&) const;
53 void octave(OctaveStream
&) const;
55 void write(WriteStream
& os
) const;
56 /// generate something that will be understood by the Dialogs.
57 std::string
const createDialogStr() const;
59 bool hasSettings() const { return true; }
61 docstring
contextMenu(BufferView
const &, int, int) const;
63 bool getStatus(Cursor
&, FuncRequest
const &, FuncStatus
&) const;
65 InsetCode
lyxCode() const { return MATH_SPACE_CODE
; }
69 virtual void doDispatch(Cursor
& cur
, FuncRequest
& cmd
);
71 virtual Inset
* clone() const;
73 bool isNegative() const;
76 /// amount of space for \\hspace