#include "DispatchResult.h"
#include "FuncRequest.h"
+#include "FuncStatus.h"
#include "gettext.h"
#include "LaTeXFeatures.h"
#include "MetricsInfo.h"
using std::ostream;
-InsetIndex::InsetIndex(InsetCommandParams const & p)
- : InsetCommand(p, "index")
+InsetIndex::InsetIndex(BufferParams const & bp)
+ : InsetCollapsable(bp)
+{
+ setLayout(bp);
+}
+
+
+InsetIndex::InsetIndex(InsetIndex const & in)
+ : InsetCollapsable(in)
{}
-docstring const InsetIndex::getScreenLabel(Buffer const &) const
+int InsetIndex::docbook(Buffer const & buf, odocstream & os,
+ OutputParams const & runparams) const
{
- return _("Idx");
+ os << "<indexterm><primary>";
+ int const i = InsetText::docbook(buf, os, runparams);
+ os << "</primary></indexterm>";
+ return i;
}
-int InsetIndex::docbook(Buffer const &, odocstream & os,
- OutputParams const &) const
+Inset::Code InsetIndex::lyxCode() const
{
- os << "<indexterm><primary>"
- << sgml::escapeString(getParam("name"))
- << "</primary></indexterm>";
- return 0;
+ return Inset::INDEX_CODE;
}
-Inset::Code InsetIndex::lyxCode() const
+Inset * InsetIndex::clone() const
{
- return Inset::INDEX_CODE;
+ return new InsetIndex(*this);
+}
+
+
+void InsetIndex::write(Buffer const & buf, std::ostream & os) const
+{
+ os << to_utf8(name()) << "\n";
+ InsetCollapsable::write(buf, os);
+}
+
+
+void InsetIndex::metrics(MetricsInfo & mi, Dimension & dim) const
+{
+ Font tmpfont = mi.base.font;
+ getDrawFont(mi.base.font);
+ mi.base.font.realize(tmpfont);
+ InsetCollapsable::metrics(mi, dim);
+ mi.base.font = tmpfont;
+}
+
+
+void InsetIndex::draw(PainterInfo & pi, int x, int y) const
+{
+ Font tmpfont = pi.base.font;
+ getDrawFont(pi.base.font);
+ pi.base.font.realize(tmpfont);
+ InsetCollapsable::draw(pi, x, y);
+ pi.base.font = tmpfont;
+}
+
+
+void InsetIndex::getDrawFont(Font & font) const
+{
+ font = Font(Font::ALL_INHERIT);
+ font.realize(layout_.font);
+}
+
+
+bool InsetIndex::getStatus(Cursor & cur, FuncRequest const & cmd,
+ FuncStatus & status) const
+{
+ switch (cmd.action) {
+ // paragraph breaks not allowed
+ case LFUN_BREAK_PARAGRAPH:
+ case LFUN_BREAK_PARAGRAPH_SKIP:
+ status.enabled(false);
+ return true;
+
+ default:
+ return InsetCollapsable::getStatus(cur, cmd, status);
+ }
}