X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2Fmath_nestinset.h;h=64caa87a8e1124ceae9228e63923affec1c66bbd;hb=c649284611c4198c9d70be8a16d153cdf1ec0700;hp=bf56c0cb2e221e9e274178004fe39f6533b91349;hpb=2c8199218812dc45e031de5aefd43f70adb98672;p=lyx.git diff --git a/src/mathed/math_nestinset.h b/src/mathed/math_nestinset.h index bf56c0cb2e..64caa87a8e 100644 --- a/src/mathed/math_nestinset.h +++ b/src/mathed/math_nestinset.h @@ -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,10 +78,12 @@ 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: @@ -83,6 +91,8 @@ protected: typedef std::vector cells_type; /// thusly: cells_type cells_; + /// if the inset is locked, it can't be entered with the cursor + bool lock_; }; #endif