]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/math_atom.h
Andreas' patch to prevent crash on click on previewd inset
[lyx.git] / src / mathed / math_atom.h
index 215f102f0f05ec937d817ba71338fe68a3f90c7e..e4e2ce99a4811c809f2868286e62c6d15d5449b6 100644 (file)
@@ -1,18 +1,23 @@
 // -*- C++ -*-
-
-#ifndef MATH_ATOM_H
-#define MATH_ATOM_H
-
-
 /**
- * Wrapper for MathInset * with copy-semantics
+ * \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
+ * Full author contact details are available in file CREDITS.
  */
 
+#ifndef MATH_ATOM_H
+#define MATH_ATOM_H
+
+
 /**
+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.
 
@@ -35,6 +40,7 @@ Andre'
 
 */
 
+class InsetBase;
 class MathInset;
 
 class MathAtom {
@@ -43,18 +49,22 @@ 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 &);
+       MathAtom & operator=(MathAtom const &);
        /// access to the inset (checked with gprof)
        MathInset       * nucleus()       { return nucleus_; }
+       MathInset const * nucleus() const { return nucleus_; }
        /// access to the inset
        MathInset const * operator->() const { return nucleus_; }
 
+       /// width cache. Not nice...
+       //mutable int width_;
+
 private:
        ///
        MathInset * nucleus_;