]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/math_nestinset.h
several smallish changes/bugfixes/left overs from Porto
[lyx.git] / src / mathed / math_nestinset.h
index 8f7b93a266d02a7b21a482e1d07247d31152a9e6..64caa87a8e1124ceae9228e63923affec1c66bbd 100644 (file)
@@ -9,23 +9,25 @@
 
 /** 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
+    single symbol.
 */
 
 
 class LaTeXFeatures;
 
 class MathNestInset : public MathDimInset {
-public: 
+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 & st) const;
-       /// draw the object, sets xo_ and yo_ cached values 
-       void draw(Painter &, int x, int y) const;
+       void metrics(MathMetricsInfo const & mi) const;
+       /// draw background if locked
+       void draw(MathPainterInfo & pi, int x, int y) const;
+       /// draw angular markers
+       void drawMarkers(MathPainterInfo & pi, int x, int y) const;
        /// appends itself with macro arguments substituted
-       void substitute(MathMacro const & macro); 
+       void substitute(MathMacro const & macro);
        /// identifies NestInsets
        MathNestInset * asNestInset() { return this; }
 
@@ -51,6 +53,10 @@ public:
 
        /// number of cells currently governed by us
        idx_type nargs() const;
+       /// access to the lock
+       bool lock() const;
+       /// access to the lock
+       void lock(bool);
 
        /// direct access to the cell
        MathArray & cell(idx_type);
@@ -60,9 +66,9 @@ public:
        MathXArray & xcell(idx_type);
        /// direct access to the cell including the drawing cache
        MathXArray const & xcell(idx_type) const;
-                       
+
        /// can we move into this cell (see macroarg.h)
-       bool isActive() const { return nargs() > 0; }
+       bool isActive() const;
        /// request "external features"
        void validate(LaTeXFeatures & features) const;
 
@@ -72,15 +78,21 @@ public:
        void replace(ReplaceData &);
        /// do we contain a given pattern?
        bool contains(MathArray const &);
+       /// glue everything to a single cell
+       MathArray glue() const;
 
        /// debug helper
        void dump() const;
+       /// is the cursor currently somewhere within this inset?
+       virtual bool editing() const;
 
 protected:
        /// we store the cells in a vector
        typedef std::vector<MathXArray> cells_type;
        /// thusly:
        cells_type cells_;
+       /// if the inset is locked, it can't be entered with the cursor
+       bool lock_;
 };
 
 #endif