/** * \file insetnomencl.C * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * * \author Lars Gullik Bjønnes * \author O. U. Baran * * Full author contact details are available in file CREDITS. */ #include #include "insetnomencl.h" #include "insetnote.h" #include "buffer.h" #include "dispatchresult.h" #include "funcrequest.h" #include "gettext.h" #include "insetiterator.h" #include "LaTeXFeatures.h" #include "metricsinfo.h" #include "sgml.h" namespace lyx { using std::string; InsetNomencl::InsetNomencl(InsetCommandParams const & p) : InsetCommand(p, "nomenclature"), glossary_entry_id(sgml::uniqueID(from_ascii("gloss"))) {} docstring const InsetNomencl::getScreenLabel(Buffer const &) const { return _("Glo"); } int InsetNomencl::docbook(Buffer const &, odocstream & os, OutputParams const &) const { os << "" << sgml::escapeString(getParam("symbol")) << ""; return 0; } int InsetNomencl::docbookGlossary(odocstream & os) const { os << "\n" << "" << sgml::escapeString(getParam("symbol")) << "\n" << "" << sgml::escapeString(getParam("description")) << "\n" <<"\n"; return 4; } void InsetNomencl::validate(LaTeXFeatures & features) const { features.require("nomencl"); } InsetBase::Code InsetNomencl::lyxCode() const { return InsetBase::NOMENCL_CODE; } InsetPrintNomencl::InsetPrintNomencl(InsetCommandParams const & p) : InsetCommand(p, string()) {} docstring const InsetPrintNomencl::getScreenLabel(Buffer const &) const { return _("Glossary"); } int InsetPrintNomencl::docbook(Buffer const & buf, odocstream & os, OutputParams const &) const { os << "\n"; int newlines = 2; for (InsetIterator it = inset_iterator_begin(buf.inset()); it;) { if (it->lyxCode() == InsetBase::NOMENCL_CODE) { newlines += static_cast(*it).docbookGlossary(os); ++it; } else if(it->lyxCode() == InsetBase::NOTE_CODE && static_cast(*it).params().type == InsetNoteParams::Note) { // Don't output anything nested in note insets size_t const depth = it.depth(); ++it; while (it.depth() > depth) ++it; } else { ++it; } } os << "\n"; return newlines; } void InsetPrintNomencl::validate(LaTeXFeatures & features) const { features.require("nomencl"); } InsetBase::Code InsetPrintNomencl::lyxCode() const { return InsetBase::NOMENCL_PRINT_CODE; } } // namespace lyx