]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/math_nestinset.h
more IU
[lyx.git] / src / mathed / math_nestinset.h
index ea8edc85627293417c22a55268e4d018aa428aaf..5ec7b9234d546864bfe70b8fcf1f84a532448a1b 100644 (file)
@@ -1,39 +1,38 @@
+// -*- C++ -*-
+/**
+ * \file math_nestinset.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_NESTINSET_H
 #define MATH_NESTINSET_H
 
-#ifdef __GNUG__
-#pragma interface
-#endif
-
 #include "math_diminset.h"
 
+
 /** Abstract base class for all math objects that contain nested items.
     This is basically everything that is not a single character or a
     single symbol.
 */
 
-
-class LaTeXFeatures;
-
 class MathNestInset : public MathDimInset {
 public:
        /// nestinsets have a fixed size to start with
        explicit MathNestInset(idx_type ncells);
 
        /// the size is usuall some sort of convex hull of the cells
-       void metrics(MathMetricsInfo const & mi) const;
-       /// add space for markers
-       void metricsMarkers(int frame = 1) const;
-       /// add space for markers
-       void metricsMarkers2(int frame = 1) const;
+       /// hides inset::metrics() intentionally!
+       void metrics(MetricsInfo const & mi) const;
        /// draw background if locked
-       void draw(MathPainterInfo & pi, int x, int y) const;
+       void draw(PainterInfo & pi, int x, int y) const;
        /// draw selection background
-       void drawSelection(MathPainterInfo & pi,
+       void drawSelection(PainterInfo & pi,
                idx_type idx1, pos_type pos1, idx_type idx2, pos_type pos2) const;
-       void drawMarkers(MathPainterInfo & pi, int x, int y) const;
-       /// draw four angular markers
-       void drawMarkers2(MathPainterInfo & pi, int x, int y) const;
        /// appends itself with macro arguments substituted
        void substitute(MathMacro const & macro);
        /// identifies NestInsets
@@ -70,7 +69,7 @@ public:
        /// access to the lock
        void lock(bool);
        /// get notification when the cursor leaves this inset
-       void notifyCursorLeaves();
+       void notifyCursorLeaves(idx_type);
 
        /// direct access to the cell
        MathArray & cell(idx_type);
@@ -82,8 +81,6 @@ public:
        /// request "external features"
        void validate(LaTeXFeatures & features) const;
 
-       /// match in all cells
-       bool match(MathAtom const &) const;
        /// replace in all cells
        void replace(ReplaceData &);
        /// do we contain a given pattern?
@@ -98,19 +95,30 @@ public:
 
        /// writes \\, name(), and args in braces and '\\lyxlock' if necessary
        void write(WriteStream & os) const;
-       /// writes [, name(), and args in [] 
+       /// writes [, name(), and args in []
        void normalize(NormalStream & os) const;
-
-       /// local dispatcher
-       result_type dispatch(FuncRequest const & cmd, idx_type & idx, pos_type & pos);
-
 protected:
+       ///
+       virtual
+       DispatchResult
+       priv_dispatch(FuncRequest const & cmd, idx_type & idx, pos_type & pos);
+
        /// we store the cells in a vector
        typedef std::vector<MathArray> cells_type;
        /// thusly:
        cells_type cells_;
        /// if the inset is locked, it can't be entered with the cursor
        bool lock_;
+
+       /// draw four angular markers
+       void drawMarkers(PainterInfo & pi, int x, int y) const;
+       /// draw two angular markers
+       void drawMarkers2(PainterInfo & pi, int x, int y) const;
+
+       /// add space for markers
+       void metricsMarkers(int frame = 1) const;
+       /// add space for markers
+       void metricsMarkers2(int frame = 1) const;
 };
 
 #endif