]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/math_data.h
bug + spped fixes + small stuff
[lyx.git] / src / mathed / math_data.h
index b4fa7785d4685dc2dfadc84874356da79b5d9d68..87ed99c495595460905eaa7ebd18614e29cbe924 100644 (file)
@@ -1,18 +1,15 @@
 // -*- C++ -*-
 /**
- *   You are free to use and modify this code under the terms of
- *   the GNU General Public Licence version 2 or later.
- */
-
-/** \class MathArray
-    \brief Low level container for math insets
- *  \author Alejandro Aguilar Sierra
- *  \author André Pönitz
- *  \author Lars Gullik Bjønnes
+ * \file math_data.h
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
+ *
+ * \author Alejandro Aguilar Sierra
+ * \author André Pönitz
+ * \author Lars Gullik Bjønnes
  *
- * Full author contact details are available in file CREDITS
-    \version February 2001
-  */
+ * Full author contact details are available in file CREDITS.
+ */
 
 #ifndef MATH_DATA_H
 #define MATH_DATA_H
 class MathMacro;
 class LaTeXFeatures;
 class ReplaceData;
-class MathMetricsInfo;
-class MathPainterInfo;
+class MetricsInfo;
+class PainterInfo;
 class TextMetricsInfo;
 class TextPainter;
 
 
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-
 class MathArray : private std::vector<MathAtom> {
 public:
        /// re-use inhertited stuff
@@ -108,11 +100,13 @@ public:
        /// checked read access
        MathAtom const & operator[](pos_type) const;
        /// rebuild cached metrics information
-       Dimension const & metrics(MathMetricsInfo & mi) const;
+       void metrics(MetricsInfo & mi) const;
+       /// rebuild cached metrics information
+       void metrics(MetricsInfo & mi, Dimension & dim) const;
        /// redraw cell using cache metrics information
-       void draw(MathPainterInfo & pi, int x, int y) const;
+       void draw(PainterInfo & pi, int x, int y) const;
        /// rebuild cached metrics information
-       Dimension const & metricsT(TextMetricsInfo const & mi) const;
+       void metricsT(TextMetricsInfo const & mi, Dimension & dim) const;
        /// redraw cell using cache metrics information
        void drawT(TextPainter & pi, int x, int y) const;
        /// mark cell for re-drawing
@@ -123,33 +117,35 @@ public:
        /// access to cached y coordinate of last drawing
        int yo() const { return yo_; }
        /// access to cached x coordinate of mid point of last drawing
-       int xm() const { return xo_ + dim_.w / 2; }
+       int xm() const { return xo_ + dim_.wid / 2; }
        /// access to cached y coordinate of mid point of last drawing
-       int ym() const { return yo_ + (dim_.d - dim_.a) / 2; }
+       int ym() const { return yo_ + (dim_.des - dim_.asc) / 2; }
+       ///
+       bool contains(int x, int y) const;
        /// write access to coordinate;
        void setXY(int x, int y) const;
        /// returns x coordinate of given position in the array
        int pos2x(size_type pos) const;
        /// returns position of given x coordinate
-       int pos2x(size_type pos1, size_type pos2, int glue) const;
+       int pos2x(size_type pos, int glue) const;
        /// returns position of given x coordinate
        size_type x2pos(int pos) const;
        /// returns position of given x coordinate fstarting from a certain pos
-       size_type x2pos(size_type startpos, int targetx, int glue) const;
+       size_type x2pos(int targetx, int glue) const;
        /// returns distance of this cell to the point given by x and y
        // assumes valid position and size cache
        int dist(int x, int y) const;
 
        /// ascent of this cell above the baseline
-       int ascent() const { return dim_.a; }
+       int ascent() const { return dim_.asc; }
        /// descent of this cell below the baseline
-       int descent() const { return dim_.d; }
+       int descent() const { return dim_.des; }
        /// height of the cell
-       int height() const { return dim_.a + dim_.d; }
+       int height() const { return dim_.asc + dim_.des; }
        /// width of this cell
-       int width() const { return dim_.w; }
+       int width() const { return dim_.wid; }
        /// dimensions of cell
-       Dimension const & dim() const   { return dim_; }
+       Dimension const & dim() const { return dim_; }
        /// dimensions of cell
        void setDim(Dimension const & d) const { dim_ = d; }
        /// bounding box of this cell