X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2Fmath_atom.h;h=9e02b7a8d30883d17d865cb1a9154433a66681a6;hb=cd03e2b7db8379a91f3d31eac2c5bc25b159c541;hp=4a7d1c1a51bbce0a434cfde56cda4a9ef239849f;hpb=73b1ac43f4abe9f6e5eb15471c79c82c0897865f;p=lyx.git diff --git a/src/mathed/math_atom.h b/src/mathed/math_atom.h index 4a7d1c1a51..9e02b7a8d3 100644 --- a/src/mathed/math_atom.h +++ b/src/mathed/math_atom.h @@ -1,13 +1,23 @@ // -*- C++ -*- +/** + * \file math_atom.h + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. + * + * \author André Pönitz + * + * Full author contact details are available in file CREDITS. + */ #ifndef MATH_ATOM_H #define MATH_ATOM_H -#ifdef __GNUG__ -#pragma interface -#endif /** +Wrapper for MathInset * with copy-semantics + +-- + The 'atom' is the major blob in math typesetting. And 'atom' consists of a nucleus, an optional superscript, and an optional subscript. @@ -30,6 +40,7 @@ Andre' */ +class InsetBase; class MathInset; class MathAtom { @@ -38,22 +49,20 @@ public: // std::containers MathAtom(); /// the "real constructor" - explicit MathAtom(MathInset * p); + explicit MathAtom(InsetBase * p); /// copy constructor, invokes nucleus_->clone() MathAtom(MathAtom const &); /// we really need to clean up ~MathAtom(); /// assignment invokes nucleus_->clone() void operator=(MathAtom const &); - /// change inset under the hood - void operator=(MathInset * p); - /// change inset under the hood - void reset(MathInset * p); /// access to the inset (checked with gprof) - MathInset const * nucleus() const { return nucleus_; } MathInset * nucleus() { return nucleus_; } /// access to the inset - MathInset * operator->() const { return nucleus_; } + MathInset const * operator->() const { return nucleus_; } + + /// width cache. Not nice... + mutable int width_; private: ///