X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2Fmath_mboxinset.C;h=c3f090db000e8d73283536517af0225100c483c9;hb=1ecc7b79cdf95de50f2683fb7a8f983b5dcdf0d2;hp=eaaad2c1d0ff7799586557436609646db25f6d28;hpb=0d43ba149a41e8860dde316ccbd4336d6b0bbdfa;p=lyx.git diff --git a/src/mathed/math_mboxinset.C b/src/mathed/math_mboxinset.C index eaaad2c1d0..c3f090db00 100644 --- a/src/mathed/math_mboxinset.C +++ b/src/mathed/math_mboxinset.C @@ -17,9 +17,13 @@ #include "BufferView.h" #include "buffer.h" #include "bufferparams.h" +#include "cursor.h" #include "debug.h" #include "metricsinfo.h" +#include "output_latex.h" +#include "outputparams.h" #include "paragraph.h" +#include "texrow.h" using std::auto_ptr; using std::endl; @@ -52,16 +56,37 @@ void MathMBoxInset::metrics(MetricsInfo & mi, Dimension & dim) const void MathMBoxInset::draw(PainterInfo & pi, int x, int y) const { - text_.draw(pi, x + 1, y); + text_.draw(pi, x + 1, y - text_.ascent()); drawMarkers(pi, x, y); } -void MathMBoxInset::write(WriteStream & os) const +void MathMBoxInset::write(WriteStream & ws) const +{ + if (ws.latex()) { + ws << "\\mbox{\n"; + TexRow texrow; + OutputParams runparams; + latexParagraphs(*bv_->buffer(), text_.paragraphs(), + ws.os(), texrow, runparams); + ws.addlines(texrow.rows()); + ws << "}"; + } else { + ws << "\\mbox{\n"; + text_.write(*bv_->buffer(), ws.os()); + ws << "}"; + } +} + + +int MathMBoxInset::latex(Buffer const & buf, std::ostream & os, + OutputParams const & runparams) const { os << "\\mbox{\n"; - text_.write(*bv_->buffer(), os.os()); + TexRow texrow; + latexParagraphs(buf, text_.paragraphs(), os, texrow, runparams); os << "}"; + return texrow.rows(); } @@ -77,9 +102,8 @@ LyXText * MathMBoxInset::getText(int) const } -void MathMBoxInset::getCursorPos(CursorSlice const & cur, int & x, int & y) const +void MathMBoxInset::getCursorPos(LCursor const & cur, int & x, int & y) const { - x = text_.cursorX(cur); - //y = text_.cursorY(cur); - y = 100; + x = text_.cursorX(cur.top()); + y = text_.cursorY(cur.top()); }