]> git.lyx.org Git - features.git/blobdiff - src/output_xhtml.cpp
Update XHTML debugging code a bit.
[features.git] / src / output_xhtml.cpp
index e960e2c5d53ea0f8ba846e612b5c6dcd60cd26b0..b50f982178a245b83a2cfc40f3d978960b123528 100644 (file)
@@ -135,16 +135,13 @@ docstring EndTag::writeEndTag() const
 }
 
 
-docstring ParTag::writeTag() const
+ParTag::ParTag(std::string const & tag, std::string attr,
+       std::string const & parid)
+  : StartTag(tag)
 {
-       docstring output = StartTag::writeTag();
-
-       if (parid_.empty())
-               return output;
-
-       string const pattr = "id='" + parid_ + "'";
-       output += html::CompTag("a", pattr).writeTag();
-       return output;
+       if (!parid.empty())
+               attr += " id='" + parid + "'";
+       attr_ = attr;
 }
 
 
@@ -294,21 +291,27 @@ XHTMLStream::XHTMLStream(odocstream & os)
 
 
 #ifdef XHTML_DEBUG
-void XHTMLStream::dumpTagStack(string const & msg) const
+void XHTMLStream::dumpTagStack(string const & msg)
 {
-       writeError(msg + ": Tag Stack");
-       TagStack::const_reverse_iterator it = tag_stack_.rbegin();
-       TagStack::const_reverse_iterator en = tag_stack_.rend();
+       *this << html::CR();
+       writeError(msg);
+       *this << html::CR();
+       writeError("Tag Stack");
+       TagDeque::const_reverse_iterator it = tag_stack_.rbegin();
+       TagDeque::const_reverse_iterator en = tag_stack_.rend();
        for (; it != en; ++it) {
-               writeError(it->tag_);
+               writeError(it->get()->tag_);
        }
+       writeError("End Tag Stack");
+       *this << html::CR();
        writeError("Pending Tags");
        it = pending_tags_.rbegin();
        en = pending_tags_.rend();
        for (; it != en; ++it) {
-               writeError(it->tag_);
+               writeError(it->get()->tag_);
        }
-       writeError("End Tag Stack");
+       writeError("End Pending Tags");
+       *this << html::CR();
 }
 #endif
 
@@ -1057,14 +1060,24 @@ void makeCommand(Buffer const & buf,
                    documentClass().counters().step(style.counter, OutputUpdate);
 
        bool const make_parid = !runparams.for_toc && runparams.html_make_pars;
+       
+       if (style.labeltype == LABEL_ABOVE)
+               xs << html::StartTag("div")
+                  << pbegin->params().labelString()
+                  << html::EndTag("div");
+       else if (style.labeltype == LABEL_CENTERED)
+               xs << html::StartTag("div", "style = \"text-align: center;\"")
+                  << pbegin->params().labelString()
+                  << html::EndTag("div");
 
        openParTag(xs, style, pbegin->params(),
                   make_parid ? pbegin->magicLabel() : "");
 
        // Label around sectioning number:
        // FIXME Probably need to account for LABEL_MANUAL
-       // FIXME Probably also need now to account for labels ABOVE and CENTERED.
-       if (style.labeltype != LABEL_NO_LABEL) {
+       if (style.labeltype != LABEL_NO_LABEL &&
+           style.labeltype != LABEL_ABOVE &&
+           style.labeltype != LABEL_CENTERED ) {
                openLabelTag(xs, style);
                xs << pbegin->params().labelString();
                closeLabelTag(xs, style);