X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetNewpage.h;h=6a1d639b0760ff687c4a654d61c6b80c7a7d1d9e;hb=9914f21bceef9610bd1822f96eff0aa6d1a8df7c;hp=ba8c6c87c7c9a8c9f69fbe9b6f3a63403597a5de;hpb=98a856a30173303cf2c0b962f2850a0f11942f68;p=lyx.git diff --git a/src/insets/InsetNewpage.h b/src/insets/InsetNewpage.h index ba8c6c87c7..6a1d639b07 100644 --- a/src/insets/InsetNewpage.h +++ b/src/insets/InsetNewpage.h @@ -4,7 +4,7 @@ * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * - * \author André Pönitz + * \author André Pönitz * * Full author contact details are available in file CREDITS. */ @@ -12,101 +12,85 @@ #ifndef INSET_NEWPAGE_H #define INSET_NEWPAGE_H - #include "Inset.h" -#include "gettext.h" namespace lyx { -class InsetNewpage : public Inset { +class InsetNewpageParams +{ public: - InsetNewpage() {} - - InsetCode lyxCode() const { return NEWPAGE_CODE; } - - void metrics(MetricsInfo &, Dimension &) const; - - 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; - - 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 - bool directWrite() const { return true; } - - DisplayType display() const { return AlignCenter; } - - virtual docstring insetLabel() const { return _("New Page"); } - - virtual std::string getCmdName() const { return "\\newpage"; } - - virtual ColorCode ColorName() const { return Color_newpage; } - -private: - virtual Inset * clone() const - { - return new InsetNewpage; - } + /// The different kinds of spaces we support + enum Kind { + /// + NEWPAGE, + /// + PAGEBREAK, + /// + CLEARPAGE, + /// + CLEARDOUBLEPAGE + }; + /// + InsetNewpageParams() : kind(NEWPAGE) {} + /// + void write(std::ostream & os) const; + /// + void read(Lexer & lex); + /// + Kind kind; }; -class InsetPagebreak : public InsetNewpage { +class InsetNewpage : public Inset +{ public: - InsetPagebreak() {} - - docstring insetLabel() const { return _("Page Break"); } - - std::string getCmdName() const { return "\\pagebreak"; } - - ColorCode ColorName() const { return Color_pagebreak; } - + /// + InsetNewpage(); + /// + explicit InsetNewpage(InsetNewpageParams const & par); + /// + static void string2params(std::string const &, InsetNewpageParams &); + /// + static std::string params2string(InsetNewpageParams const &); private: - virtual Inset * clone() const - { - return new InsetPagebreak; - } -}; - - -class InsetClearPage : public InsetNewpage { -public: - InsetClearPage() {} - - docstring insetLabel() const { return _("Clear Page"); } - - std::string getCmdName() const { return "\\clearpage"; } - -private: - virtual Inset * clone() const - { - return new InsetClearPage; - } -}; - - -class InsetClearDoublePage : public InsetNewpage { -public: - InsetClearDoublePage() {} - - docstring insetLabel() const { return _("Clear Double Page"); } - - std::string getCmdName() const { return "\\cleardoublepage"; } - -private: - virtual Inset * clone() const - { - return new InsetClearDoublePage; - } + /// + InsetNewpageParams params() const { return params_; } + /// + InsetCode lyxCode() const { return NEWPAGE_CODE; } + /// + void metrics(MetricsInfo &, Dimension &) const; + /// + void draw(PainterInfo & pi, int x, int y) const; + /// + void latex(otexstream &, OutputParams const &) const; + /// + int plaintext(odocstream &, OutputParams const &) const; + /// + int docbook(odocstream &, OutputParams const &) const; + /// + docstring xhtml(XHTMLStream &, OutputParams const &) const; + /// + void read(Lexer & lex); + /// + void write(std::ostream & os) const; + /// + DisplayType display() const { return AlignCenter; } + /// + docstring insetLabel() const; + /// + ColorCode ColorName() const; + /// + std::string contextMenuName() const; + /// + Inset * clone() const { return new InsetNewpage(*this); } + /// + void doDispatch(Cursor & cur, FuncRequest & cmd); + /// + bool getStatus(Cursor & cur, FuncRequest const & cmd, FuncStatus &) const; + + /// + InsetNewpageParams params_; }; } // namespace lyx