X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetNewline.h;h=2dc9c553ed70930e03c8d9fbefb1fc4a267d1446;hb=e43ba7cf46779c6a8394310b9487ebe2c75132b2;hp=0ffbb64331ea0c7ebba701b606dde278916571f4;hpb=db8c16d554ebb1dcb319e44d318572de6eff024b;p=lyx.git diff --git a/src/insets/InsetNewline.h b/src/insets/InsetNewline.h index 0ffbb64331..2dc9c553ed 100644 --- a/src/insets/InsetNewline.h +++ b/src/insets/InsetNewline.h @@ -12,68 +12,82 @@ #ifndef INSET_NEWLINE_H #define INSET_NEWLINE_H - #include "Inset.h" -#include "support/gettext.h" namespace lyx { -class InsetNewline : public Inset { +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; +}; - InsetNewline() {} +class InsetNewline : public Inset +{ +public: + /// + 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; } - + /// void metrics(MetricsInfo &, Dimension &) const; - - virtual void draw(PainterInfo & pi, int x, int y) const; - - int latex(odocstream &, OutputParams const &) const; - - int plaintext(odocstream &, OutputParams const &) const; - + /// + void draw(PainterInfo & pi, int x, int y) const; + /// + void latex(otexstream &, OutputParams const &) const; + /// + int plaintext(odocstringstream & ods, OutputParams const & op, + size_t max_length = INT_MAX) const; + /// int docbook(odocstream &, OutputParams const &) const; - - virtual void read(Lexer & lex); - - virtual void write(std::ostream & os) const; - /// We don't need \begin_inset and \end_inset - virtual bool directWrite() const { return true; } + /// + docstring xhtml(XHTMLStream &, OutputParams const &) const; + /// + void read(Lexer & lex); + /// + void write(std::ostream & os) const; /// is this equivalent to a space (which is BTW different from /// a line separator)? - bool isSpace() const; - - virtual docstring insetLabel() const { return docstring(); } - - virtual std::string getLyXName() const { return "\\newline"; } - - virtual std::string getCmdName() const { return "\\\\"; } - - virtual ColorCode ColorName() const { return Color_eolmarker; } - -private: - Inset * clone() const { return new InsetNewline; } -}; - -class InsetLinebreak : public InsetNewline { -public: - InsetLinebreak() {} - - docstring insetLabel() const { return _("line break"); } - - std::string getLyXName() const { return "\\linebreak"; } - - std::string getCmdName() const { return "\\linebreak{}"; } - - ColorCode ColorName() const { return Color_pagebreak; } - -private: - virtual Inset * clone() const - { - return new InsetLinebreak; - } + bool isSpace() const { return true; } + /// + ColorCode ColorName() const; + /// + std::string contextMenuName() const; + /// + Inset * clone() const { return new InsetNewline(*this); } + /// + void doDispatch(Cursor & cur, FuncRequest & cmd); + /// + bool getStatus(Cursor & cur, FuncRequest const & cmd, FuncStatus &) const; + + /// + InsetNewlineParams params_; };