X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetNewline.cpp;h=88c77c00f734415ed621a23352abb0f3644731f4;hb=65192d6cf87f8cf70cbb4d879e97faecdb44a19e;hp=d4ee618dac0701c280cadd13e59c447601c79813;hpb=e7645f24391648fb08cf6b6d808fcabec76be744;p=lyx.git diff --git a/src/insets/InsetNewline.cpp b/src/insets/InsetNewline.cpp index d4ee618dac..88c77c00f7 100644 --- a/src/insets/InsetNewline.cpp +++ b/src/insets/InsetNewline.cpp @@ -4,7 +4,7 @@ * Licence details can be found in the file COPYING. * * \author John Levon - * \author Jürgen Spitzmüller + * \author Jürgen Spitzmüller * * Full author contact details are available in file CREDITS. */ @@ -13,12 +13,14 @@ #include "InsetNewline.h" +#include "Cursor.h" #include "Dimension.h" #include "FuncRequest.h" #include "FuncStatus.h" #include "Lexer.h" #include "MetricsInfo.h" #include "OutputParams.h" +#include "output_xhtml.h" #include "frontends/Application.h" #include "frontends/FontMetrics.h" @@ -32,7 +34,7 @@ using namespace std; namespace lyx { -InsetNewline::InsetNewline() +InsetNewline::InsetNewline() : Inset(0) {} @@ -61,7 +63,6 @@ void InsetNewlineParams::read(Lexer & lex) kind = InsetNewlineParams::LINEBREAK; else lex.printError("Unknown kind: `$$Token'"); - lex >> "\\end_inset"; } @@ -75,6 +76,7 @@ void InsetNewline::write(ostream & os) const void InsetNewline::read(Lexer & lex) { params_.read(lex); + lex >> "\\end_inset"; } @@ -89,10 +91,11 @@ void InsetNewline::metrics(MetricsInfo & mi, Dimension & dim) const void InsetNewline::doDispatch(Cursor & cur, FuncRequest & cmd) { - switch (cmd.action) { + switch (cmd.action()) { case LFUN_INSET_MODIFY: { InsetNewlineParams params; + cur.recordUndo(); string2params(to_utf8(cmd.argument()), params); params_.kind = params.kind; break; @@ -108,16 +111,15 @@ void InsetNewline::doDispatch(Cursor & cur, FuncRequest & cmd) bool InsetNewline::getStatus(Cursor & cur, FuncRequest const & cmd, FuncStatus & status) const { - switch (cmd.action) { + switch (cmd.action()) { // we handle these case LFUN_INSET_MODIFY: if (cmd.getArg(0) == "newline") { InsetNewlineParams params; string2params(to_utf8(cmd.argument()), params); status.setOnOff(params_.kind == params.kind); - } else { - status.enabled(true); } + status.setEnabled(true); return true; default: return Inset::getStatus(cur, cmd, status); @@ -134,18 +136,20 @@ ColorCode InsetNewline::ColorName() const case InsetNewlineParams::LINEBREAK: return Color_pagebreak; break; - default: - return Color_eolmarker; - break; } + // not really useful, but to avoids gcc complaints + return Color_eolmarker; } -int InsetNewline::latex(odocstream & os, OutputParams const &) const +int InsetNewline::latex(odocstream & os, OutputParams const & rp) const { switch (params_.kind) { case InsetNewlineParams::NEWLINE: - os << "\\\\\n"; + if (rp.inTableCell == OutputParams::PLAIN) + os << "\\newline\n"; + else + os << "\\\\\n"; break; case InsetNewlineParams::LINEBREAK: os << "\\linebreak{}\n"; @@ -172,6 +176,14 @@ int InsetNewline::docbook(odocstream & os, OutputParams const &) const } +docstring InsetNewline::xhtml(XHTMLStream & xs, OutputParams const &) const +{ + xs << html::CompTag("br"); + xs.cr(); + return docstring(); +} + + void InsetNewline::draw(PainterInfo & pi, int x, int y) const { FontInfo font; @@ -249,7 +261,7 @@ void InsetNewline::draw(PainterInfo & pi, int x, int y) const } -docstring InsetNewline::contextMenu(BufferView const &, int, int) const +docstring InsetNewline::contextMenuName() const { return from_ascii("context-newline"); }