#include "Lexer.h"
#include "Paragraph.h"
#include "output_xhtml.h"
+#include "texstream.h"
#include "TextClass.h"
#include "TocBackend.h"
}
-docstring InsetFloatList::xhtml(XHTMLStream &, OutputParams const &) const {
+docstring InsetFloatList::xhtml(XHTMLStream &, OutputParams const & op) const {
FloatList const & floats = buffer().params().documentClass().floats();
FloatList::const_iterator cit = floats[to_ascii(getParam("type"))];
string const type = cit->second.floattype();
if (type == "table") {
toctype = "table";
- toclabel = _("List of Tables");
+ toclabel = translateIfPossible(from_ascii("List of Tables"),
+ op.local_font->language()->lang());
} else if (type == "figure") {
toctype = "figure";
- toclabel = _("List of Figures");
+ toclabel = translateIfPossible(from_ascii("List of Figures"),
+ op.local_font->language()->lang());
} else {
LYXERR0("Unknown Builtin Float!");
return docstring();
}
} else {
toctype = to_utf8(getParam("type"));
- toclabel = buffer().B_(cit->second.listName());
+ toclabel = translateIfPossible(from_utf8(cit->second.listName()),
+ op.local_font->language()->lang());
}
- // FIXME Do we need to check if it exists? If so, we need a new
- // routine in TocBackend to do that.
- Toc const & toc = buffer().tocBackend().toc(toctype);
- if (toc.empty())
+ shared_ptr<Toc const> toc = buffer().tocBackend().toc(toctype);
+ if (toc->empty())
return docstring();
// we want to look like a chapter, section, or whatever.
}
string const tocclass = lay ? " " + lay->defaultCSSClass(): "";
- string const tocattr = "class='tochead + toc-" + toctype + " " + tocclass + "'";
+ string const tocattr = "class='tochead toc-" + toctype + tocclass + "'";
// we'll use our own stream, because we are going to defer everything.
// that's how we deal with the fact that we're probably inside a standard
odocstringstream ods;
XHTMLStream xs(ods);
- xs << html::StartTag("div", "class='toc'");
- xs << html::StartTag("div", tocattr)
+ InsetLayout const & il = getLayout();
+ string const & tag = il.htmltag();
+ xs << html::StartTag("div", "class='toc toc-floats'");
+ xs << html::StartTag(tag, tocattr)
<< toclabel
- << html::EndTag("div");
+ << html::EndTag(tag);
- Toc::const_iterator it = toc.begin();
- Toc::const_iterator const en = toc.end();
+ Toc::const_iterator it = toc->begin();
+ Toc::const_iterator const en = toc->end();
for (; it != en; ++it) {
+ if (it->str().empty())
+ continue;
Paragraph const & par = it->dit().innerParagraph();
- string const attr = "class='lyxtoc-" + toctype + "'";
- Font const dummy;
+ string const attr = "class='lyxtoc-floats lyxtoc-" + toctype + "'";
xs << html::StartTag("div", attr);
- string const parattr = "href='#" + par.magicLabel() + "' class='tocarrow'";
- xs << it->str() << " "
- << html::StartTag("a", parattr)
- // FIXME XHTML
- // There ought to be a simple way to customize this.
- << XHTMLStream::ESCAPE_NONE << ">"
+ string const parattr = "href='#" + par.magicLabel() + "' class='lyxtoc-floats'";
+ xs << html::StartTag("a", parattr)
+ << it->str()
<< html::EndTag("a");
xs << html::EndTag("div");
}
void InsetFloatList::validate(LaTeXFeatures & features) const
{
features.useFloat(to_ascii(getParam("type")));
+ features.useInsetLayout(getLayout());
+}
+
+
+docstring InsetFloatList::layoutName() const
+{
+ return "FloatList:" + getParam("type");
}