* 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.
*/
#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;
+ ///
+ int latex(odocstream &, 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;
+ ///
+ docstring contextMenu(BufferView const & bv, int x, int y) 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