#include "FuncStatus.h"
#include "Cursor.h"
#include "support/gettext.h"
+#include "LaTeXFeatures.h"
#include "Lexer.h"
#include "Text.h"
#include "MetricsInfo.h"
#include "paragraph_funcs.h"
#include "sgml.h"
-#include "frontends/FontMetrics.h"
-#include "frontends/Painter.h"
-
#include "support/convert.h"
#include <sstream>
InsetFlex::InsetFlex(BufferParams const & bp,
- InsetLayout const & il)
- : InsetCollapsable(bp, Collapsed, &il)
+ TextClassPtr tc, string const & layoutName)
+ : InsetCollapsable(bp, Collapsed, tc),
+ name_(layoutName)
{
- name_ = il.name;
+ setLayout(tc); // again, because now the name is initialized
+ packages_ = getLayout().requires();
+ preamble_ = getLayout().preamble();
}
}
-bool InsetFlex::undefined() const
-{
- return layout_->labelstring == from_utf8("UNDEFINED");
-}
-
-
docstring const InsetFlex::editMessage() const
{
return _("Opened Flex Inset");
void InsetFlex::write(Buffer const & buf, ostream & os) const
{
- os << "Flex " << name_ << "\n";
+ os << "Flex " <<
+ (name_.empty() ? "undefined" : name_) << "\n";
InsetCollapsable::write(buf, os);
}
ParagraphList::const_iterator end = paragraphs().end();
if (!undefined())
- sgml::openTag(os, layout_->latexname,
- par->getID(buf, runparams) + layout_->latexparam);
+ sgml::openTag(os, getLayout().latexname(),
+ par->getID(buf, runparams) + getLayout().latexparam());
for (; par != end; ++par) {
par->simpleDocBookOnePar(buf, os, runparams,
- outerFont(std::distance(beg, par),
+ outerFont(distance(beg, par),
paragraphs()));
}
if (!undefined())
- sgml::closeTag(os, layout_->latexname);
+ sgml::closeTag(os, getLayout().latexname());
return 0;
}
os << paragraphs().begin()->asString(buf, true);
}
+
+void InsetFlex::validate(LaTeXFeatures & features) const
+{
+ if (!preamble_.empty())
+ features.addPreambleSnippet(preamble_);
+ features.require(packages_);
+}
+
} // namespace lyx