X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetNewline.h;h=2dc9c553ed70930e03c8d9fbefb1fc4a267d1446;hb=239b9919ffe28338d789e6dc9122228f77ab77a7;hp=04c2e241e2a24ff76633d1b1e2bca157c161cf29;hpb=0cb39e6f8b5f48a2da892f0f515e8ccfd7aa5921;p=lyx.git diff --git a/src/insets/InsetNewline.h b/src/insets/InsetNewline.h index 04c2e241e2..2dc9c553ed 100644 --- a/src/insets/InsetNewline.h +++ b/src/insets/InsetNewline.h @@ -14,17 +14,45 @@ #include "Inset.h" -#include "support/docstring.h" -#include "support/gettext.h" - namespace lyx { +class InsetNewlineParams +{ +public: + /// The different kinds of spaces we support + enum Kind { + /// + NEWLINE, + /// + LINEBREAK + }; + /// + InsetNewlineParams() : kind(NEWLINE) {} + /// + void write(std::ostream & os) const; + /// + void read(Lexer & lex); + /// + Kind kind; +}; + + class InsetNewline : public Inset { public: /// - InsetNewline() {} + InsetNewline(); + /// + InsetNewline(InsetNewlineParams par) : Inset(0) + { params_.kind = par.kind; } + /// + static void string2params(std::string const &, InsetNewlineParams &); + /// + static std::string params2string(InsetNewlineParams const &); +private: + /// + InsetNewlineParams params() const { return params_; } /// InsetCode lyxCode() const { return NEWLINE_CODE; } /// @@ -32,52 +60,34 @@ public: /// void draw(PainterInfo & pi, int x, int y) const; /// - int latex(odocstream &, OutputParams const &) const; + void latex(otexstream &, OutputParams const &) const; /// - int plaintext(odocstream &, OutputParams const &) const; + int plaintext(odocstringstream & ods, OutputParams const & op, + size_t max_length = INT_MAX) const; /// int docbook(odocstream &, OutputParams const &) const; /// + docstring xhtml(XHTMLStream &, OutputParams const &) const; + /// void read(Lexer & lex); /// void write(std::ostream & os) const; - /// We don't need \begin_inset and \end_inset - bool directWrite() const { return true; } /// is this equivalent to a space (which is BTW different from /// a line separator)? - bool isSpace() const; - /// - docstring insetLabel() const { return docstring(); } - /// - std::string getLyXName() const { return "\\newline"; } + bool isSpace() const { return true; } /// - std::string getCmdName() const { return "\\\\"; } + ColorCode ColorName() const; /// - ColorCode ColorName() const { return Color_eolmarker; } - -private: + std::string contextMenuName() const; /// Inset * clone() const { return new InsetNewline(*this); } -}; - - -class InsetLinebreak : public InsetNewline -{ -public: - /// - InsetLinebreak() {} /// - docstring insetLabel() const { return _("line break"); } + void doDispatch(Cursor & cur, FuncRequest & cmd); /// - std::string getLyXName() const { return "\\linebreak"; } - /// - std::string getCmdName() const { return "\\linebreak{}"; } - /// - ColorCode ColorName() const { return Color_pagebreak; } + bool getStatus(Cursor & cur, FuncRequest const & cmd, FuncStatus &) const; -private: /// - Inset * clone() const { return new InsetLinebreak(*this); } + InsetNewlineParams params_; };