X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2FInsetMathFrac.h;h=9d5484487687932368f8bd45dc2be588cd4f47c1;hb=5fdc577badb1cb133d6a0dc7d831bb1f82576adb;hp=49d131d25a596948e270fbd35df3118f0f761931;hpb=ff9f9c92aebbe01e3d9e8e788b9951dfa179c84c;p=lyx.git diff --git a/src/mathed/InsetMathFrac.h b/src/mathed/InsetMathFrac.h index 49d131d25a..9d54844876 100644 --- a/src/mathed/InsetMathFrac.h +++ b/src/mathed/InsetMathFrac.h @@ -6,6 +6,7 @@ * * \author Alejandro Aguilar Sierra * \author André Pönitz + * \author Uwe Stöhr * * Full author contact details are available in file CREDITS. */ @@ -22,13 +23,17 @@ namespace lyx { class InsetMathFracBase : public InsetMathNest { public: /// - explicit InsetMathFracBase(idx_type ncells = 2); + InsetMathFracBase(Buffer * buf, idx_type ncells = 2); /// bool idxUpDown(Cursor &, bool up) const; /// bool idxBackward(Cursor &) const { return false; } /// bool idxForward(Cursor &) const { return false; } + /// + InsetMathFracBase * asFracBaseInset() { return this; } + /// + InsetMathFracBase const * asFracBaseInset() const { return this; } }; @@ -39,20 +44,26 @@ public: /// enum Kind { FRAC, + CFRAC, + CFRACLEFT, + CFRACRIGHT, + DFRAC, + TFRAC, OVER, ATOP, NICEFRAC, UNITFRAC, UNIT }; - /// - explicit InsetMathFrac(Kind kind = FRAC, idx_type ncells = 2); + explicit InsetMathFrac(Buffer * buf, Kind kind = FRAC, idx_type ncells = 2); /// bool idxForward(Cursor &) const; /// bool idxBackward(Cursor &) const; /// + MathClass mathClass() const; + /// void metrics(MetricsInfo & mi, Dimension & dim) const; /// void draw(PainterInfo &, int x, int y) const; @@ -68,7 +79,6 @@ public: docstring name() const; /// bool extraBraces() const; - /// void write(WriteStream & os) const; /// @@ -80,91 +90,40 @@ public: /// void mathmlize(MathStream &) const; /// - void validate(LaTeXFeatures & features) const; -public: - Inset * clone() const; - /// - Kind kind_; -}; - - -/// \dfrac support -class InsetMathDFrac : public InsetMathFrac { -public: - /// - InsetMathDFrac() {} - /// - void metrics(MetricsInfo & mi, Dimension & dim) const; - /// - void draw(PainterInfo &, int x, int y) const; - /// - docstring name() const; - /// - void mathmlize(MathStream &) const; + void htmlize(HtmlStream &) const; /// void validate(LaTeXFeatures & features) const; private: - Inset * clone() const; -}; - - -/// \tfrac support -class InsetMathTFrac : public InsetMathFrac { -public: - /// - InsetMathTFrac() {} + /// vertical displacement + int dy(FontInfo & fi) const; /// - void metrics(MetricsInfo & mi, Dimension & dim) const; - /// - void draw(PainterInfo &, int x, int y) const; - /// - docstring name() const; - /// - void mathmlize(MathStream &) const; - /// - void validate(LaTeXFeatures & features) const; -private: Inset * clone() const; -}; - - -/// \cfrac support -class InsetMathCFrac : public InsetMathFrac { -public: - /// - InsetMathCFrac() {} - /// - void metrics(MetricsInfo & mi, Dimension & dim) const; - /// - void draw(PainterInfo &, int x, int y) const; - /// - docstring name() const; /// - void mathmlize(MathStream &) const; - /// - void validate(LaTeXFeatures & features) const; -private: - Inset * clone() const; + Kind kind_; }; + /// Binom like objects class InsetMathBinom : public InsetMathFracBase { public: /// enum Kind { BINOM, + DBINOM, + TBINOM, CHOOSE, BRACE, BRACK }; - /// - explicit InsetMathBinom(Kind kind = BINOM); + explicit InsetMathBinom(Buffer * buf, Kind kind = BINOM); /// void write(WriteStream & os) const; /// void normalize(NormalStream &) const; + /// Generalized fractions are of inner class (see The TeXbook, p.292) + MathClass mathClass() const { return MC_INNER; } /// void metrics(MetricsInfo & mi, Dimension & dim) const; /// @@ -175,60 +134,23 @@ public: /// bool extraBraces() const; /// - void validate(LaTeXFeatures & features) const; -private: - Inset * clone() const; - /// - int dw(int height) const; - /// - Kind kind_; -}; - - -/// \dbinom support -class InsetMathDBinom : public InsetMathFracBase { -public: - /// - InsetMathDBinom() {} - /// - void metrics(MetricsInfo & mi, Dimension & dim) const; - /// - void draw(PainterInfo &, int x, int y) const; - /// - docstring name() const; - /// void mathmlize(MathStream &) const; /// - void validate(LaTeXFeatures & features) const; -private: - Inset * clone() const; - /// - int dw(int height) const; -}; - - -/// \tbinom support -class InsetMathTBinom : public InsetMathFracBase { -public: - /// - InsetMathTBinom() {} - /// - void metrics(MetricsInfo & mi, Dimension & dim) const; - /// - void draw(PainterInfo &, int x, int y) const; - /// - docstring name() const; - /// - void mathmlize(MathStream &) const; + void htmlize(HtmlStream &) const; /// void validate(LaTeXFeatures & features) const; + /// + InsetCode lyxCode() const { return MATH_FRAC_CODE; } private: Inset * clone() const; /// int dw(int height) const; + /// + Kind kind_; }; + } // namespace lyx #endif