replace most &dquot;...&dquot; by <...>
[lyx.git] / src / exporter.h
blob0cdbd4e96e4801f21d78d4b5d804851a2717ac0d
1 // -*- C++ -*-
2 /**
3 * \file exporter.h
4 * This file is part of LyX, the document processor.
5 * Licence details can be found in the file COPYING.
7 * \author Lars Gullik Bjønnes
8 * \author Jean-Marc Lasgouttes
10 * Full author contact details are available in file CREDITS.
13 #ifndef EXPORTER_H
14 #define EXPORTER_H
16 #include <map>
17 #include <string>
18 #include <vector>
21 class Buffer;
22 class Format;
24 class Exporter {
25 public:
26 ///
27 static
28 bool Export(Buffer * buffer, std::string const & format,
29 bool put_in_tempdir, std::string & result_file);
30 ///
31 static
32 bool Export(Buffer * buffer, std::string const & format,
33 bool put_in_tempdir);
34 ///
35 static
36 bool Preview(Buffer * buffer, std::string const & format);
37 ///
38 static
39 bool IsExportable(Buffer const & buffer, std::string const & format);
40 ///
41 static
42 std::vector<Format const *> const
43 GetExportableFormats(Buffer const & buffer, bool only_viewable);
44 ///
48 struct ExportedFile {
49 ExportedFile(std::string const &, std::string const &);
50 /// absolute name of the source file
51 std::string sourceName;
52 /// final name that the exported file should get (absolute name or
53 /// relative to the directory of the master document)
54 std::string exportName;
58 bool operator==(ExportedFile const &, ExportedFile const &);
61 class ExportData {
62 public:
63 /** add a referenced file for one format.
64 * No inset should ever write any file outside the tempdir.
65 * Instead, files that need to be exported have to be registered
66 * with this method.
67 * Then the exporter mechanism copies them to the right place, asks
68 * for confirmation before overwriting existing files etc.
70 void addExternalFile(std::string const &, std::string const &,
71 std::string const &);
72 /// add a referenced file for one format.
73 /// The final name is the source file name without path
74 void addExternalFile(std::string const &, std::string const &);
75 /// get referenced files for one format
76 std::vector<ExportedFile> const
77 externalFiles(std::string const &) const;
78 private:
79 typedef std::map<std::string, std::vector<ExportedFile> > FileMap;
80 /** Files that are referenced by the export result in the
81 * different formats.
83 FileMap externalfiles;
86 #endif