X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2FInsetMathMBox.cpp;h=8b38755f0485eb9d98ecc698596837d64fdd7019;hb=bca9a6ca73b05856eb24f38795d67fdefa939878;hp=4fc4ffd95e3406661b26aac9d8b8ca5ff6db54e4;hpb=9383f4c3c6f9cfab2d658701ba66e2b54cd68bea;p=lyx.git diff --git a/src/mathed/InsetMathMBox.cpp b/src/mathed/InsetMathMBox.cpp index 4fc4ffd95e..8b38755f04 100644 --- a/src/mathed/InsetMathMBox.cpp +++ b/src/mathed/InsetMathMBox.cpp @@ -3,7 +3,7 @@ * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * - * \author André Pönitz + * \author André Pönitz * * Full author contact details are available in file CREDITS. */ @@ -18,7 +18,6 @@ #include "Buffer.h" #include "BufferParams.h" #include "Cursor.h" -#include "support/debug.h" #include "MetricsInfo.h" #include "output_latex.h" #include "OutputParams.h" @@ -26,23 +25,26 @@ #include "TexRow.h" #include "TextMetrics.h" +#include "support/debug.h" + using namespace std; namespace lyx { -InsetMathMBox::InsetMathMBox() +InsetMathMBox::InsetMathMBox(Buffer * buffer) : InsetMath(buffer), text_(buffer) { text_.paragraphs().clear(); text_.paragraphs().push_back(Paragraph()); } -InsetMathMBox::InsetMathMBox(LayoutPtr const & layout) +InsetMathMBox::InsetMathMBox(Buffer * buffer, Layout const & layout) + : InsetMath(buffer), text_(buffer) { text_.paragraphs().clear(); text_.paragraphs().push_back(Paragraph()); - text_.paragraphs().back().layout(layout); + text_.paragraphs().back().setLayout(layout); } @@ -54,7 +56,7 @@ Inset * InsetMathMBox::clone() const void InsetMathMBox::metrics(MetricsInfo & mi, Dimension & dim) const { - TextMetrics & tm = mi.base.bv->textMetrics(&text_); + TextMetrics & tm = mi.base.bv->textMetrics(&text_.text()); tm.metrics(mi, dim); metricsMarkers2(dim); } @@ -62,59 +64,69 @@ void InsetMathMBox::metrics(MetricsInfo & mi, Dimension & dim) const void InsetMathMBox::draw(PainterInfo & pi, int x, int y) const { - pi.base.bv->textMetrics(&text_).draw(pi, x + 1, y); + pi.base.bv->textMetrics(&text_.text()).draw(pi, x + 1, y); drawMarkers(pi, x, y); } -void InsetMathMBox::write(Buffer const & buf, WriteStream & ws) const +void InsetMathMBox::write(WriteStream & ws) const { if (ws.latex()) { ws << "\\mbox{\n"; TexRow texrow; - OutputParams runparams(&buf.params().encoding()); - latexParagraphs(buf, text_.paragraphs(), ws.os(), texrow, runparams); + OutputParams runparams(&buffer().params().encoding()); + otexstream os(ws.os(), texrow); + latexParagraphs(buffer(), text_.text(), os, runparams); ws.addlines(texrow.rows()); ws << "}"; } else { ws << "\\mbox{\n"; - std::ostringstream os; - text_.write(buf, os); + ostringstream os; + text_.text().write(os); ws.os() << from_utf8(os.str()); ws << "}"; } } -int InsetMathMBox::latex(Buffer const & buf, odocstream & os, - OutputParams const & runparams) const +void InsetMathMBox::latex(otexstream & os, OutputParams const & runparams) const { os << "\\mbox{\n"; - TexRow texrow; - latexParagraphs(buf, text_.paragraphs(), os, texrow, runparams); + latexParagraphs(buffer(), text_.text(), os, runparams); os << "}"; - return texrow.rows(); } void InsetMathMBox::doDispatch(Cursor & cur, FuncRequest & cmd) { - text_.dispatch(cur, cmd); + text_.text().dispatch(cur, cmd); } Text * InsetMathMBox::getText(int) const { - return &text_; + return &text_.text(); } void InsetMathMBox::cursorPos(BufferView const & bv, CursorSlice const & sl, bool boundary, int & x, int & y) const { - x = bv.textMetrics(&text_).cursorX(sl, boundary); - y = bv.textMetrics(&text_).cursorY(sl, boundary); + x = bv.textMetrics(&text_.text()).cursorX(sl, boundary); + y = bv.textMetrics(&text_.text()).cursorY(sl, boundary); } +void InsetMathMBox::mathmlize(MathStream & ms) const +{ + SetMode textmode(ms, true); + ms << cell(0); +} + +void InsetMathMBox::htmlize(HtmlStream & ms) const +{ + SetHTMLMode textmode(ms, true); + ms << cell(0); +} + } // namespace lyx