#include "InsetNewline.h"
-#include "debug.h"
-#include "Color.h"
-#include "Text.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 &)
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;
}
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();
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);
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);
}