From ef77daf1bc5a204bca21819ec96d34e44cdb1c68 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Andr=C3=A9=20P=C3=B6nitz?= Date: Tue, 5 Feb 2002 13:27:34 +0000 Subject: [PATCH] forgotten files git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@3485 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/mathed/math_xarrowinset.C | 52 ++++++++++++++++++++++++++++++++ src/mathed/math_xarrowinset.h | 37 +++++++++++++++++++++++ src/mathed/math_xymatrixinset.C | 53 +++++++++++++++++++++++++++++++++ src/mathed/math_xymatrixinset.h | 31 +++++++++++++++++++ 4 files changed, 173 insertions(+) create mode 100644 src/mathed/math_xarrowinset.C create mode 100644 src/mathed/math_xarrowinset.h create mode 100644 src/mathed/math_xymatrixinset.C create mode 100644 src/mathed/math_xymatrixinset.h diff --git a/src/mathed/math_xarrowinset.C b/src/mathed/math_xarrowinset.C new file mode 100644 index 0000000000..217d95a2f7 --- /dev/null +++ b/src/mathed/math_xarrowinset.C @@ -0,0 +1,52 @@ +#include + +#ifdef __GNUG__ +#pragma implementation +#endif + +#include "math_xarrowinset.h" +#include "math_support.h" +#include "math_parser.h" +#include "math_mathmlstream.h" +#include "math_streamstr.h" + + +MathXArrowInset::MathXArrowInset(string const & name) + : MathNestInset(1), name_(name) +{} + + +MathInset * MathXArrowInset::clone() const +{ + return new MathXArrowInset(*this); +} + + +void MathXArrowInset::metrics(MathMetricsInfo const & st) const +{ + MathMetricsInfo mi = st; + smallerStyleScript(mi); + xcell(0).metrics(mi); + width_ = xcell(0).width() + 10; + ascent_ = xcell(0).height() + 10; + descent_ = 0; +} + + +void MathXArrowInset::draw(Painter & pain, int x, int y) const +{ + xcell(0).draw(pain, x + 5, y - 10); + mathed_draw_deco(pain, x + 1, y - 7, width_ - 2, 5, name_); +} + + +void MathXArrowInset::write(WriteStream & os) const +{ + os << '\\' << name_ << '{' << cell(0) << '}'; +} + + +void MathXArrowInset::normalize(NormalStream & os) const +{ + os << "[xarrow " << name_ << ' ' << cell(0) << ']'; +} diff --git a/src/mathed/math_xarrowinset.h b/src/mathed/math_xarrowinset.h new file mode 100644 index 0000000000..d086145726 --- /dev/null +++ b/src/mathed/math_xarrowinset.h @@ -0,0 +1,37 @@ +// -*- C++ -*- +#ifndef MATH_XARROWINSET_H +#define MATH_XARROWINSET_H + +#include "math_nestinset.h" +#include "LString.h" + +#ifdef __GNUG__ +#pragma interface +#endif + +/** Wide arrows like \xrightarrow + \author André Pönitz + */ + +class MathXArrowInset : public MathNestInset { +public: + /// + explicit MathXArrowInset(string const & name); + /// + MathInset * clone() const; + /// + void draw(Painter &, int x, int y) const; + /// + void write(WriteStream & os) const; + /// + void metrics(MathMetricsInfo const & st) const; + /// + void normalize(NormalStream & os) const; + +private: + /// + bool upper() const; + /// + string const name_; +}; +#endif diff --git a/src/mathed/math_xymatrixinset.C b/src/mathed/math_xymatrixinset.C new file mode 100644 index 0000000000..9606bfc8a2 --- /dev/null +++ b/src/mathed/math_xymatrixinset.C @@ -0,0 +1,53 @@ +#include + +#ifdef __GNUG__ +#pragma implementation +#endif + +#include "math_xymatrixinset.h" +#include "math_mathmlstream.h" +#include "math_streamstr.h" + + +MathXYMatrixInset::MathXYMatrixInset() + : MathGridInset(1, 1) +{} + + +MathInset * MathXYMatrixInset::clone() const +{ + return new MathXYMatrixInset(*this); +} + + +void MathXYMatrixInset::metrics(MathMetricsInfo const & st) const +{ + MathMetricsInfo mi = st; + if (mi.style == LM_ST_DISPLAY) + mi.style = LM_ST_TEXT; + MathGridInset::metrics(mi); +} + + +void MathXYMatrixInset::write(WriteStream & os) const +{ + os << "\\xymatrix{"; + MathGridInset::write(os); + os << "}\n"; +} + + +void MathXYMatrixInset::normalize(NormalStream & os) const +{ + os << "[xymatrix "; + MathGridInset::normalize(os); + os << "]"; +} + + +void MathXYMatrixInset::maplize(MapleStream & os) const +{ + os << "xymatrix("; + MathGridInset::maplize(os); + os << ")"; +} diff --git a/src/mathed/math_xymatrixinset.h b/src/mathed/math_xymatrixinset.h new file mode 100644 index 0000000000..bfebb04da2 --- /dev/null +++ b/src/mathed/math_xymatrixinset.h @@ -0,0 +1,31 @@ +// -*- C++ -*- +#ifndef MATH_XYMATRIX_H +#define MATH_XYMATRIX_H + +#include "math_gridinset.h" + +#ifdef __GNUG__ +#pragma interface +#endif + + +class MathXYMatrixInset : public MathGridInset { +public: + /// + MathXYMatrixInset(); + /// + MathInset * clone() const; + /// + void metrics(MathMetricsInfo const & st) const; + /// + MathXYMatrixInset * asXYMatrixInset() { return this; } + + /// + void write(WriteStream & os) const; + /// + void normalize(NormalStream &) const; + /// + void maplize(MapleStream &) const; +}; + +#endif -- 2.39.2