X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FExternalTemplate.h;h=7afc65715ba7ad5cd75e15ffac56053f42d23382;hb=06254d11dfdf670fab3548dc2a2674e7a261262c;hp=b25f53d1d11290d244f7ae6597648980a33db100;hpb=119b50c7c553277d1046ddcf3685958563530dc7;p=lyx.git diff --git a/src/insets/ExternalTemplate.h b/src/insets/ExternalTemplate.h index b25f53d1d1..7afc65715b 100644 --- a/src/insets/ExternalTemplate.h +++ b/src/insets/ExternalTemplate.h @@ -15,22 +15,27 @@ #include "ExternalTransforms.h" -#include - -class LyXLex; +#include namespace lyx { + +namespace support { class FileName; } + +class Lexer; + namespace external { -struct Template { +class Template { +public: /// We have to have default commands for safety reasons! Template(); /// - void readTemplate(LyXLex &); + void readTemplate(Lexer &); /// void dumpFormats(std::ostream &) const; - struct Option { + class Option { + public: Option(std::string const & name_, std::string const & opt_) : name(name_), option(opt_) {} std::string name; @@ -55,10 +60,11 @@ struct Template { std::vector transformIds; /// This is the information needed to support a specific output format - struct Format { + class Format { + public: Format(); /// - void readFormat(LyXLex &); + void readFormat(Lexer &); /// The text that should be inserted into the exported file std::string product; @@ -67,7 +73,7 @@ struct Template { /// The format of this file. std::string updateFormat; /// What features does this external inset require? - std::string requirement; + std::vector requirements; /// A collection of preamble snippets identified by name. std::vector preambleNames; /// A list of options to the basic command. @@ -76,6 +82,11 @@ struct Template { /// The factory functions for each supported transformation. std::map command_transformers; std::map option_transformers; + + typedef std::map > FileMap; + /// Referenced files for some formats + FileMap referencedFiles; }; /// typedef std::map Formats; @@ -108,7 +119,7 @@ public: std::string const getPreambleDefByName(std::string const & name) const; private: TemplateManager(); - void readTemplates(std::string const & path); + void readTemplates(support::FileName const & path); void dumpTemplates(std::ostream &) const; void dumpPreambleDefs(std::ostream &) const;