]> git.lyx.org Git - lyx.git/blob - src/mathed/math_atom.h
use stream-like syntax for LaTeX output
[lyx.git] / src / mathed / math_atom.h
1 // -*- C++ -*-
2
3 #ifndef MATH_ATOM_H
4 #define MATH_ATOM_H
5
6 #ifdef __GNUG__
7 #pragma interface
8 #endif
9
10 /** 
11 The 'atom' is the major blob in math typesetting.  And 'atom' consists
12 of a nucleus, an optional superscript, and an optional subscript.
13
14 Exactly where the subscript and superscript are drawn depends on the
15 size, and type, of the nucleus they are attached to.  
16
17 Jules
18 */
19
20 class MathInset;
21
22 class MathAtom {
23 public: 
24         ///
25         MathAtom();
26         ///
27         MathAtom(MathAtom const &);
28         ///
29         explicit MathAtom(MathInset * p);
30         /// 
31         virtual ~MathAtom(); 
32         ///
33         void operator=(MathAtom const &);
34         ///
35         MathInset * nucleus() const;
36         ///
37         MathInset * operator->() const;
38
39 private:
40         ///
41         MathInset * nucleus_;
42
43         /// raw copy
44         void copy(MathAtom const & p);
45         /// raw destruction
46         void done();
47 };
48
49 #endif