11 * Wrapper for MathInset * with copy-semantics
13 * \author André Pönitz
15 * Full author contact details are available in file CREDITS
19 The 'atom' is the major blob in math typesetting. And 'atom' consists
20 of a nucleus, an optional superscript, and an optional subscript.
22 Exactly where the subscript and superscript are drawn depends on the
23 size, and type, of the nucleus they are attached to.
29 Ok: Implementing it thusly is not feasible since cursor movement gets
30 hackish. We use MathAtom only as a wrapper around MathInset * with value
33 The MathAtom owns the MathInset * and is responsible for proper cloning and
34 destruction. Every MathInset * should be put into a MathAtom after its
35 creation as soon as possible.
45 /// default constructor, object is useless, but we need it to put it into
48 /// the "real constructor"
49 explicit MathAtom(MathInset * p);
50 /// copy constructor, invokes nucleus_->clone()
51 MathAtom(MathAtom const &);
52 /// we really need to clean up
54 /// assignment invokes nucleus_->clone()
55 void operator=(MathAtom const &);
56 /// access to the inset (checked with gprof)
57 MathInset * nucleus() { return nucleus_; }
58 /// access to the inset
59 MathInset const * operator->() const { return nucleus_; }