+++ /dev/null
-/**
- * \file InsetMathXYArrow.cpp
- * 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.
- */
-
-#include <config.h>
-
-#include "InsetMathXYArrow.h"
-#include "MathStream.h"
-#include "MathSupport.h"
-#include "frontends/Painter.h"
-#include "support/debug.h"
-
-using namespace std;
-
-namespace lyx {
-
-
-InsetMathXYArrow::InsetMathXYArrow()
- : InsetMathNest(2), up_(false), target_(0)
-{}
-
-
-Inset * InsetMathXYArrow::clone() const
-{
- return new InsetMathXYArrow(*this);
-}
-
-
-InsetMathXYMatrix const * InsetMathXYArrow::targetMatrix() const
-{
- return target_;
-}
-
-
-MathData const & InsetMathXYArrow::targetCell() const
-{
-#if 0
- InsetMathXYMatrix const * p = targetMatrix();
- int x = 0;
- int y = 0;
- MathData const & t = cell(0);
- for (MathData::const_iterator it = t.begin(); it != t.end(); ++it) {
- switch ((*it)->getChar()) {
- case 'l': --x; break;
- case 'r': ++x; break;
- case 'u': --y; break;
- case 'd': ++y; break;
- }
- }
- //lyxerr << "target: x: " << x << " y: " << y << endl;
- InsetMath::idx_type n = mi_.idx + p->ncols() * y + x;
- if (n >= p->nargs()) {
- lyxerr << "source: n: " << mi_.idx << "\n"
- << "target: n: " << n << " out of range" << endl;
- n = 0;
- }
- return p->cell(n);
-#else
- static MathData dummy;
- return dummy;
-#endif
-}
-
-
-MathData const & InsetMathXYArrow::sourceCell() const
-{
-#if 0
- return targetMatrix()->cell(mi_.idx);
-#else
- static MathData dummy;
- return dummy;
-#endif
-}
-
-
-bool InsetMathXYArrow::metrics(MetricsInfo & mi) const
-{
- InsetMathNest::metrics(mi);
- mi_ = mi;
- Changer dummy = mi.base.changeFontSet(mi.base, "textrm");
-#if 0
- target_ = mi.inset ? mi.inset->asXYMatrixInset() : 0;
-
- if (editing()) {
- int w = mathed_string_width(mi.base.font, from_ascii("target: "));
- width_ = w + max(dim0.width(), dim1.wid);
- ascent_ = dim0.asc;
- descent_ = dim0.des + dim1.height() + 10;
- } else {
- width_ = 0;
- ascent_ = 0;
- descent_ = 0;
- //mathed_string_dim(font_, "X", ascent_, descent_, width_);
- }
-#endif
-}
-
-
-void InsetMathXYArrow::draw(PainterInfo & pi, int x, int y) const
-{
- metrics(mi_);
- Changer dummy = pi.base.changeFontSet(pi.base, "textrm");
-
- if (editing()) {
-
-#if 0
-
- int lasc;
- int ldes;
- int lwid;
- mathed_string_dim(pi.base.font, "target: ", lasc, ldes, lwid);
-
- cell(0).draw(pi, x + lwid, y);
- pi.base.text(x + 3, y, "target");
- y += max(dim0.des, ldes) + 5;
-
- y += max(dim1.asc, lasc) + 5;
- cell(1).draw(pi, x + lwid, y);
- pi.base.text(x + 3, y, "label");
-
-#endif
-
- } else {
-
- pi.pain.text(x, y, "X");
- MathData const & s = sourceCell();
- MathData const & t = targetCell();
- pi.pain.line(s.xm(), s.ym(), t.xm(), t.ym(), Color_math);
- cell(1).draw(pi, (s.xm() + t.xm())/2, (s.ym() + t.ym())/2);
-
- }
-}
-
-
-void InsetMathXYArrow::write(WriteStream & os) const
-{
- MathEnsurer ensurer(os);
- os << "\\ar";
- if (!cell(0).empty())
- os << '[' << cell(0) << ']';
- if (!cell(1).empty())
- os << (up_ ? '^' : '_') << '{' << cell(1) << '}';
- os << " ";
-}
-
-
-void InsetMathXYArrow::normalize(NormalStream & os) const
-{
- os << "[xyarrow ";
- InsetMathNest::normalize(os);
- os << ']';
-}
-
-
-void InsetMathXYArrow::mathmlize(MathStream &) const
-{
- throw MathExportException();
-}
-
-
-void InsetMathXYArrow::htmlize(HtmlStream &) const
-{
- throw MathExportException();
-}
-
-} // namespace lyx
+++ /dev/null
-// -*- C++ -*-
-/**
- * \file InsetMathXYArrow.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_XYARROWINSET_H
-#define MATH_ARROWINSET_H
-
-#include "InsetMathNest.h"
-#include "MetricsInfo.h"
-
-
-namespace lyx {
-
-
-// for the \ar stuff in \xymatrix
-
-class InsetMathXYMatrix;
-
-class InsetMathXYArrow : public InsetMathNest {
-public:
- ///
- InsetMathXYArrow();
- ///
- virtual Inset * clone() const;
- ///
- bool metrics(MetricsInfo & mi) const;
- ///
- void draw(PainterInfo & pi, int x, int y) const;
- ///
- InsetMathXYArrow * asXYArrowInset() { return this; }
-
- ///
- void write(WriteStream & os) const;
- ///
- void normalize(NormalStream &) const;
- ///
- InsetMathXYMatrix const * targetMatrix() const;
- ///
- MathData const & targetCell() const;
- ///
- MathData const & sourceCell() const;
- ///
- InsetCode lyxCode() const { return MATH_XYARROW_CODE; }
- ///
- void mathmlize(MathStream &) const;
- ///
- void htmlize(HtmlStream &) const;
-
- ///
- bool up_;
- ///
- mutable MetricsInfo mi_;
- ///
- mutable Font font_;
- ///
- mutable InsetMathXYMatrix const * target_;
-};
-
-
-
-} // namespace lyx
-#endif
cell->push_back(createInsetMath(t.cs(), buf));
parse2(cell->back(), FLAG_ITEM, mode, false);
}
-
- // Disabled
- else if (1 && t.cs() == "ar") {
- auto p = make_unique<InsetMathXYArrow>();
- // try to read target
- parse(p->cell(0), FLAG_OTPTION, mode);
- // try to read label
- if (nextToken().cat() == catSuper || nextToken().cat() == catSub) {
- p->up_ = nextToken().cat() == catSuper;
- getToken();
- parse(p->cell(1), FLAG_ITEM, mode);
- //lyxerr << "read label: " << p->cell(1) << endl;
- }
-
- cell->push_back(MathAtom(p.release()));
- //lyxerr << "read cell: " << cell << endl;
- }
#endif
else if (t.cs() == "lyxmathsym") {