]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetNewpage.h
InsetInfo: enable inset dissolve
[lyx.git] / src / insets / InsetNewpage.h
index ba8c6c87c7c9a8c9f69fbe9b6f3a63403597a5de..51f640a09700b1483b1feb8fe2f4fb939bf89e3e 100644 (file)
@@ -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.
  */
 #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(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;
+       ///
+       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