/////////////////////////////////////////////////////////////////////
InsetText::InsetText(Buffer * buf, UsePlain type)
- : Inset(buf), drawFrame_(false), frame_color_(Color_insetframe), text_(this)
+ : Inset(buf), drawFrame_(false), frame_color_(Color_insetframe),
+ text_(this, type == DefaultLayout)
{
- initParagraphs(type);
}
InsetText::InsetText(InsetText const & in)
- : Inset(in), text_(this)
+ : Inset(in), text_(this, in.text_)
{
- text_.autoBreakRows_ = in.text_.autoBreakRows_;
drawFrame_ = in.drawFrame_;
frame_color_ = in.frame_color_;
- text_.paragraphs() = in.text_.paragraphs();
- setParagraphOwner();
}
}
-void InsetText::initParagraphs(UsePlain type)
-{
- LASSERT(paragraphs().empty(), /**/);
- paragraphs().push_back(Paragraph());
- Paragraph & ourpar = paragraphs().back();
- ourpar.setInsetOwner(this);
- DocumentClass const & dc = buffer_->params().documentClass();
- if (type == DefaultLayout)
- ourpar.setDefaultLayout(dc);
- else
- ourpar.setPlainLayout(dc);
-}
-
-
-void InsetText::setParagraphOwner()
-{
- for_each(paragraphs().begin(), paragraphs().end(),
- bind(&Paragraph::setInsetOwner, _1, this));
-}
-
-
void InsetText::clear()
{
ParagraphList & pars = paragraphs();
}
-void InsetText::updateLabels(ParIterator const & it)
+void InsetText::updateLabels(ParIterator const & it, bool out)
{
ParIterator it2 = it;
it2.forwardPos();
LASSERT(&it2.inset() == this && it2.pit() == 0, return);
if (producesOutput())
- buffer().updateLabels(it2);
+ buffer().updateLabels(it2, out);
else {
DocumentClass const & tclass = buffer().masterBuffer()->params().documentClass();
Counters const savecnt = tclass.counters();
- buffer().updateLabels(it2);
+ buffer().updateLabels(it2, out);
tclass.counters() = savecnt;
}
}
return docstring();
odocstringstream ods;
- docstring def = ins->getCaptionAsHTML(ods, runparams);
+ XHTMLStream xs(ods);
+ docstring def = ins->getCaptionAsHTML(xs, runparams);
if (!def.empty())
- ods << def << '\n';
+ // should already have been escaped
+ xs << XHTMLStream::NextRaw() << def << '\n';
return ods.str();
}
+InsetText::XHTMLOptions operator|(InsetText::XHTMLOptions a1, InsetText::XHTMLOptions a2)
+{
+ return static_cast<InsetText::XHTMLOptions>((int)a1 | (int)a2);
+}
+
} // namespace lyx