]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetNewline.cpp
Andre's s/getTextClass/textClass/ cleanup.
[lyx.git] / src / insets / InsetNewline.cpp
index ee06ef9c7d65880c15fccc450c6c60e60ec156ea..679118f6d544253ede9ce70554608b7b10fc698f 100644 (file)
 
 #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 &)
@@ -38,26 +36,23 @@ 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;
 }
 
@@ -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);
 }