]> git.lyx.org Git - lyx.git/blob - src/mathed/math_symbolinset.h
start native C++ support for Octave, Maple and MathML
[lyx.git] / src / mathed / math_symbolinset.h
1 // -*- C++ -*-
2 #ifndef MATH_SYMBOLINSET_H
3 #define MATH_SYMBOLINSET_H
4
5 #include "math_diminset.h"
6
7 struct latexkeys;
8
9 // "normal" symbols that don't take limits and don't grow in displayed
10 // formulae
11
12 class MathSymbolInset : public MathDimInset {
13 public:
14         ///
15         explicit MathSymbolInset(latexkeys const *);
16         ///
17         MathInset * clone() const;
18         ///
19         void write(MathWriteInfo & os) const;
20         ///
21         void writeNormal(std::ostream &) const;
22         ///
23         void metrics(MathMetricsInfo const & st) const;
24         ///
25         void draw(Painter &, int x, int y) const;
26         ///
27         bool isRelOp() const;
28         ///
29         bool isScriptable() const;
30         /// identifies things that can get \limits or \nolimits
31         bool takesLimits() const;
32
33         ///
34         string octavize() const;
35         ///
36         string maplize() const;
37         ///
38         string mathmlize() const;
39 private:
40         ///
41         MathTextCodes code() const;
42         ///
43         MathTextCodes code2() const;
44
45         ///
46         latexkeys const * sym_;
47         ///
48         mutable int h_;
49         ///
50         mutable MathMetricsInfo mi_;
51 };
52 #endif