X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetNewline.h;h=2dc9c553ed70930e03c8d9fbefb1fc4a267d1446;hb=dc8c4f3eab6e01f3767de765423fda5e4d6c5124;hp=a03da2d1970aa418f0532737ab675ba58d0e2dee;hpb=f7b1c86393d890d5d473279d88e26bb78f8c1275;p=lyx.git diff --git a/src/insets/InsetNewline.h b/src/insets/InsetNewline.h index a03da2d197..2dc9c553ed 100644 --- a/src/insets/InsetNewline.h +++ b/src/insets/InsetNewline.h @@ -12,42 +12,82 @@ #ifndef INSET_NEWLINE_H #define INSET_NEWLINE_H - #include "Inset.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(Buffer const &, odocstream &, OutputParams const &) const; - - int plaintext(Buffer const &, odocstream &, OutputParams const &) const; - - int docbook(Buffer const &, odocstream &, OutputParams const &) const; - - virtual void read(Buffer const &, Lexer & lex); - - virtual void write(Buffer const & buf, std::ostream & os) const; - /// We don't need \begin_inset and \end_inset - virtual bool directWrite() const { return true; } + /// + 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; + /// + 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; -private: - virtual Inset * clone() const - { - return new InsetNewline; - } + /// a line separator)? + 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_; };