]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetCaption.cpp
Refactor OutputParams
[lyx.git] / src / insets / InsetCaption.cpp
index 32ead246794cf0d863d1d17d379da58270d9df50..58242a100a0cb00d01d3c5937e7f3113051a2bf0 100644 (file)
@@ -27,9 +27,9 @@
 #include "Language.h"
 #include "LyXRC.h"
 #include "MetricsInfo.h"
+#include "xml.h"
 #include "output_latex.h"
 #include "output_xhtml.h"
-#include "OutputParams.h"
 #include "Paragraph.h"
 #include "ParIterator.h"
 #include "TexRow.h"
@@ -291,18 +291,13 @@ int InsetCaption::plaintext(odocstringstream & os,
 }
 
 
-int InsetCaption::docbook(odocstream & os,
-                         OutputParams const & runparams) const
+void InsetCaption::docbook(XMLStream &, OutputParams const &) const
 {
-       int ret;
-       os << "<title>";
-       ret = InsetText::docbook(os, runparams);
-       os << "</title>\n";
-       return ret;
+       // This function should never be called (rather InsetFloat::docbook, the titles should be skipped in floats).
 }
 
 
-docstring InsetCaption::xhtml(XHTMLStream & xs, OutputParams const & rp) const
+docstring InsetCaption::xhtml(XMLStream & xs, OutputParams const & rp) const
 {
        if (rp.html_disable_captions)
                return docstring();
@@ -317,9 +312,9 @@ docstring InsetCaption::xhtml(XHTMLStream & xs, OutputParams const & rp) const
                else
                        attr = attr + " class='" + our_class + "'";
        }
-       xs << html::StartTag(tag, attr);
+       xs << xml::StartTag(tag, attr);
        docstring def = getCaptionAsHTML(xs, rp);
-       xs << html::EndTag(tag);
+       xs << xml::EndTag(tag);
        return def;
 }
 
@@ -364,7 +359,19 @@ int InsetCaption::getCaptionAsPlaintext(odocstream & os,
 }
 
 
-docstring InsetCaption::getCaptionAsHTML(XHTMLStream & xs,
+void InsetCaption::getCaptionAsDocBook(XMLStream & xs,
+                                                                                OutputParams const & runparams) const
+{
+       if (runparams.docbook_in_float)
+               return;
+
+       // Ignore full_label_, as the DocBook processor will deal with the numbering.
+       InsetText::XHTMLOptions opts = InsetText::WriteInnerTag;
+       InsetText::docbook(xs, runparams, opts);
+}
+
+
+docstring InsetCaption::getCaptionAsHTML(XMLStream & xs,
                        OutputParams const & runparams) const
 {
        xs << full_label_ << ' ';