X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2Fmath_hullinset.h;h=6c9237351a8faf37ed5d09b131482d4398791400;hb=cd03e2b7db8379a91f3d31eac2c5bc25b159c541;hp=6f234e7d0d4fee5e31ad2be3d5d0f5b59d20c29e;hpb=2b8ef58dc021912b2862328b9000cfe37578ea37;p=lyx.git diff --git a/src/mathed/math_hullinset.h b/src/mathed/math_hullinset.h index 6f234e7d0d..6c9237351a 100644 --- a/src/mathed/math_hullinset.h +++ b/src/mathed/math_hullinset.h @@ -1,39 +1,41 @@ // -*- C++ -*- +/** + * \file math_hullinset.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_HULLINSET_H #define MATH_HULLINSET_H #include "math_gridinset.h" -#ifdef __GNUG__ -#pragma interface -#endif - -/** This provides an interface between "LyX insets" and "LyX math insets" - * \author André Pönitz - */ class LaTeXFeatures; +/// This provides an interface between "LyX insets" and "LyX math insets" class MathHullInset : public MathGridInset { public: /// MathHullInset(); /// - explicit MathHullInset(MathInsetTypes t); - /// - MathHullInset(MathInsetTypes t, MathGridInset const & grid); + explicit MathHullInset(string const & type); /// - MathHullInset(MathInsetTypes t, col_type cols); + virtual std::auto_ptr clone() const; /// - MathInset * clone() const; + mode_type currentMode() const; /// - void metrics(MathMetricsInfo const & st) const; + void metrics(MetricsInfo & mi, Dimension & dim) const; /// - void draw(Painter &, int x, int y) const; + void draw(PainterInfo &, int x, int y) const; /// - //void metricsT(TextMetricsInfo const & st) const; + void metricsT(TextMetricsInfo const & mi, Dimension & dim) const; /// - //void drawT(TextPainter &, int x, int y) const; + void drawT(TextPainter &, int x, int y) const; /// string label(row_type row) const; /// @@ -48,8 +50,10 @@ public: bool display() const; /// bool ams() const; + /// local dispatcher + dispatch_result dispatch(FuncRequest const & cmd, idx_type & idx, pos_type & pos); /// - std::vector const getLabelList() const; + void getLabelList(std::vector &) const; /// void validate(LaTeXFeatures & features) const; /// identifies MatrixInsets @@ -57,39 +61,47 @@ public: /// identifies HullInset MathHullInset * asHullInset() { return this; } - /// - void addRow(row_type); - /// - void delRow(row_type); - /// - void addCol(col_type); - /// - void delCol(col_type); - /// - void appendRow(); + /// add a row + void addRow(row_type row); + /// delete a row + void delRow(row_type row); + /// add a column + void addCol(col_type col); + /// delete a column + void delCol(col_type col); + /// get type + string const & getType() const; /// change type void mutate(string const &); - /// - void mutate(MathInsetTypes); /// int defaultColSpace(col_type col); /// char defaultColAlign(col_type col); + /// + bool idxFirst(idx_type &, pos_type &) const; + /// + bool idxLast(idx_type &, pos_type &) const; /// - MathInsetTypes getType() const; + string fileInsetLabel() const; /// void write(WriteStream & os) const; /// void mathmlize(MathMLStream &) const; /// void normalize(NormalStream &) const; + /// + void infoize(std::ostream & os) const; + +protected: + /// + string eolString(row_type row, bool fragile) const; private: /// - void setType(MathInsetTypes t); + void setType(string const & type); /// void validate1(LaTeXFeatures & features); /// @@ -97,20 +109,24 @@ private: /// void footer_write(WriteStream &) const; /// + string nicelabel(row_type row) const; + /// + void doExtern(FuncRequest const & func, idx_type & idx, pos_type & pos); + /// void glueall(); /// - string nicelabel(row_type row) const; + char const * standardFont() const; /// consistency check void check() const; + /// can this change its number of cols? + bool colChangeOK() const; - /// - MathInsetTypes objtype_; + /// "none", "simple", "display", "eqnarray",... + string type_; /// std::vector nonum_; /// std::vector label_; - /// - mutable MathMetricsInfo mi_; }; #endif