+bool InsetNewpage::getStatus(Cursor & cur, FuncRequest const & cmd,
+ FuncStatus & status) const
+{
+ switch (cmd.action()) {
+ // we handle these
+ case LFUN_INSET_MODIFY:
+ if (cmd.getArg(0) == "newpage") {
+ InsetNewpageParams params;
+ string2params(to_utf8(cmd.argument()), params);
+ status.setOnOff(params_.kind == params.kind);
+ }
+ status.setEnabled(true);
+ return true;
+ default:
+ return Inset::getStatus(cur, cmd, status);
+ }
+}
+
+
+docstring InsetNewpage::insetLabel() const
+{
+ switch (params_.kind) {
+ case InsetNewpageParams::NEWPAGE:
+ return _("New Page");
+ break;
+ case InsetNewpageParams::PAGEBREAK:
+ return _("Page Break");
+ break;
+ case InsetNewpageParams::CLEARPAGE:
+ return _("Clear Page");
+ break;
+ case InsetNewpageParams::CLEARDOUBLEPAGE:
+ return _("Clear Double Page");
+ break;
+ default:
+ return _("New Page");
+ break;
+ }
+}
+
+
+ColorCode InsetNewpage::ColorName() const
+{
+ switch (params_.kind) {
+ case InsetNewpageParams::PAGEBREAK:
+ return Color_pagebreak;
+ break;
+ case InsetNewpageParams::NEWPAGE:
+ case InsetNewpageParams::CLEARPAGE:
+ case InsetNewpageParams::CLEARDOUBLEPAGE:
+ return Color_newpage;
+ break;
+ }
+ // not really useful, but to avoids gcc complaints
+ return Color_newpage;
+}
+
+
+void InsetNewpage::latex(otexstream & os, OutputParams const & runparams) const
+{
+ switch (params_.kind) {
+ case InsetNewpageParams::NEWPAGE:
+ os << "\\newpage" << termcmd;
+ break;
+ case InsetNewpageParams::PAGEBREAK:
+ if (runparams.moving_arg)
+ os << "\\protect";
+ os << "\\pagebreak" << termcmd;
+ break;
+ case InsetNewpageParams::CLEARPAGE:
+ os << "\\clearpage" << termcmd;
+ break;
+ case InsetNewpageParams::CLEARDOUBLEPAGE:
+ os << "\\cleardoublepage" << termcmd;
+ break;
+ default:
+ os << "\\newpage" << termcmd;
+ break;
+ }
+}
+
+
+int InsetNewpage::plaintext(odocstringstream & os,
+ OutputParams const &, size_t) const