X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetNewline.cpp;h=679118f6d544253ede9ce70554608b7b10fc698f;hb=0362c6aae73c293d1c20277c12d362acfe0b2ef6;hp=a2f555a53eb99e860ccca9e4171dd8772cb144f1;hpb=5008ee540f84715cd10e87f3fa0cd5dc7b974784;p=lyx.git diff --git a/src/insets/InsetNewline.cpp b/src/insets/InsetNewline.cpp index a2f555a53e..679118f6d5 100644 --- a/src/insets/InsetNewline.cpp +++ b/src/insets/InsetNewline.cpp @@ -12,22 +12,20 @@ #include "InsetNewline.h" -#include "debug.h" -#include "Color.h" -#include "LyXText.h" +#include "Dimension.h" #include "MetricsInfo.h" #include "OutputParams.h" -#include "Paragraph.h" -#include "paragraph_funcs.h" #include "frontends/FontMetrics.h" #include "frontends/Painter.h" +#include "support/debug.h" +#include "support/docstring.h" +#include "support/docstream.h" -namespace lyx { +using namespace std; -using std::endl; -using std::ostream; +namespace lyx { void InsetNewline::read(Buffer const &, Lexer &) @@ -38,32 +36,29 @@ void InsetNewline::read(Buffer const &, Lexer &) void InsetNewline::write(Buffer const &, ostream & os) const { - os << "\n\\newline\n"; + os << "\n" << getLyXName() << '\n'; } -bool InsetNewline::metrics(MetricsInfo & mi, Dimension & dim) const +void InsetNewline::metrics(MetricsInfo & mi, Dimension & dim) const { frontend::FontMetrics const & fm = theFontMetrics(mi.base.font); dim.asc = fm.maxAscent(); dim.des = fm.maxDescent(); dim.wid = fm.width('n'); - bool const changed = dim_ != dim; - dim_ = dim; - return changed; } -int InsetNewline::latex(Buffer const &, odocstream &, +int InsetNewline::latex(Buffer const &, odocstream & os, OutputParams const &) const { - lyxerr << "Eek, calling InsetNewline::latex !" << endl; + os << from_ascii(getCmdName()) << '\n'; return 0; } int InsetNewline::plaintext(Buffer const &, odocstream & os, - OutputParams const &) const + OutputParams const &) const { os << '\n'; return PLAINTEXT_NEWLINE; @@ -80,6 +75,9 @@ int InsetNewline::docbook(Buffer const &, odocstream & os, void InsetNewline::draw(PainterInfo & pi, int x, int y) const { + FontInfo font; + font.setColor(ColorName()); + frontend::FontMetrics const & fm = theFontMetrics(pi.base.font); int const wid = fm.width('n'); int const asc = fm.maxAscent(); @@ -101,7 +99,7 @@ void InsetNewline::draw(PainterInfo & pi, int x, int y) const xp[2] = int(x + wid * 0.625); } - pi.pain.lines(xp, yp, 3, Color::eolmarker); + pi.pain.lines(xp, yp, 3, ColorName()); yp[0] = int(y - 0.500 * asc * 0.75); yp[1] = int(y - 0.500 * asc * 0.75); @@ -117,7 +115,18 @@ void InsetNewline::draw(PainterInfo & pi, int x, int y) const xp[2] = int(x); } - pi.pain.lines(xp, yp, 3, Color::eolmarker); + pi.pain.lines(xp, yp, 3, ColorName()); + + // add label text behind the newline marker to divide from \newline + int w = 0; + int a = 0; + int d = 0; + theFontMetrics(font).rectText(insetLabel(), w, a, d); + + int const text_start = int(x + 2 * wid); + + pi.pain.rectText(text_start, yp[0] + d, insetLabel(), font, + Color_none, Color_none); }