EPUBGenerator.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /*
3  * This file is part of the libepubgen project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  */
9 
10 #ifndef INCLUDED_EPUBGENERATOR_H
11 #define INCLUDED_EPUBGENERATOR_H
12 
13 #include "EPUBHTMLManager.h"
14 #include "EPUBHTMLGenerator.h"
15 #include "EPUBImageManager.h"
16 #include "EPUBListStyleManager.h"
17 #include "EPUBManifest.h"
19 #include "EPUBPath.h"
20 #include "EPUBSpanStyleManager.h"
21 #include "EPUBSplitGuard.h"
22 #include "EPUBTableStyleManager.h"
23 
24 namespace libepubgen
25 {
26 
27 class EPUBPackage;
28 
30 {
31  // disable copying
34 
35 public:
36  EPUBGenerator(EPUBPackage *package, int version);
37  virtual ~EPUBGenerator();
38 
39  void startDocument(const librevenge::RVNGPropertyList &props);
40  void endDocument();
41 
42  void setDocumentMetaData(const librevenge::RVNGPropertyList &props);
43 
44  void startNewHtmlFile();
45 
46  const EPUBHTMLGeneratorPtr_t &getHtml() const;
47 
49 
50  const EPUBSplitGuard &getSplitGuard() const;
52  int getVersion() const;
53 
54  void setSplitMethod(EPUBSplitMethod splitMethod);
55 
56  void setStylesMethod(EPUBStylesMethod stylesMethod);
57 
58  void setLayoutMethod(EPUBLayoutMethod layoutMethod);
59 
60 private:
61  virtual void startHtmlFile() = 0;
62  virtual void endHtmlFile() = 0;
63 
64 private:
65  void writeContainer();
66  void writeNavigation();
67  void writeStylesheet();
68  void writeRoot();
69 
70 private:
71  EPUBPackage *m_package;
81 
82  librevenge::RVNGPropertyList m_documentProps;
83  librevenge::RVNGPropertyList m_metadata;
84 
86 
88 
89  int m_version;
90  EPUBStylesMethod m_stylesMethod;
91  EPUBLayoutMethod m_layoutMethod;
92 };
93 
94 }
95 
96 #endif // INCLUDED_EPUBGENERATOR
97 
98 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
void startNewHtmlFile()
Definition: EPUBGenerator.cpp:110
EPUBGenerator & operator=(const EPUBGenerator &)
Small class to manage the span style.
Definition: EPUBSpanStyleManager.h:29
void setStylesMethod(EPUBStylesMethod stylesMethod)
Definition: EPUBGenerator.cpp:165
librevenge::RVNGPropertyList m_metadata
Definition: EPUBGenerator.h:83
Definition: EPUBBinarySink.cpp:12
const EPUBSplitGuard & getSplitGuard() const
Definition: EPUBGenerator.cpp:145
int m_version
Definition: EPUBGenerator.h:89
EPUBListStyleManager m_listStyleManager
Definition: EPUBGenerator.h:76
EPUBFontManager m_fontManager
Definition: EPUBGenerator.h:75
Small class to manage the paragraph style.
Definition: EPUBParagraphStyleManager.h:29
Small class to manage the list style.
Definition: EPUBListStyleManager.h:31
Definition: EPUBHTMLManager.h:35
const EPUBHTMLGeneratorPtr_t & getHtml() const
Definition: EPUBGenerator.cpp:135
void endDocument()
Definition: EPUBGenerator.cpp:70
virtual void startHtmlFile()=0
librevenge::RVNGPropertyList m_documentProps
Definition: EPUBGenerator.h:82
Small class to manage the tables style.
Definition: EPUBTableStyleManager.h:29
EPUBSpanStyleManager m_spanStyleManager
Definition: EPUBGenerator.h:78
void startDocument(const librevenge::RVNGPropertyList &props)
Definition: EPUBGenerator.cpp:58
const EPUBPath m_stylesheetPath
Definition: EPUBGenerator.h:80
Manages embedded fonts.
Definition: EPUBImageManager.h:77
void setSplitMethod(EPUBSplitMethod splitMethod)
Definition: EPUBGenerator.cpp:160
Definition: EPUBManifest.h:23
std::shared_ptr< EPUBHTMLGenerator > EPUBHTMLGeneratorPtr_t
Definition: EPUBHTMLGenerator.h:131
Definition: EPUBSplitGuard.h:18
EPUBParagraphStyleManager m_paragraphStyleManager
Definition: EPUBGenerator.h:77
int getVersion() const
Definition: EPUBGenerator.cpp:155
EPUBPackage * m_package
Definition: EPUBGenerator.h:71
Representation of a path in the package.
Definition: EPUBPath.h:21
EPUBHTMLManager & getHtmlManager()
Definition: EPUBGenerator.cpp:140
void setLayoutMethod(EPUBLayoutMethod layoutMethod)
Definition: EPUBGenerator.cpp:170
EPUBManifest m_manifest
Definition: EPUBGenerator.h:72
EPUBLayoutMethod m_layoutMethod
Definition: EPUBGenerator.h:91
virtual void endHtmlFile()=0
EPUBTableStyleManager m_tableStyleManager
Definition: EPUBGenerator.h:79
EPUBGenerator(const EPUBGenerator &)
EPUBHTMLGeneratorPtr_t m_currentHtml
Definition: EPUBGenerator.h:85
void writeContainer()
Definition: EPUBGenerator.cpp:178
void setDocumentMetaData(const librevenge::RVNGPropertyList &props)
Definition: EPUBGenerator.cpp:87
EPUBHTMLManager m_htmlManager
Definition: EPUBGenerator.h:73
void writeRoot()
Definition: EPUBGenerator.cpp:278
EPUBImageManager m_imageManager
Definition: EPUBGenerator.h:74
EPUBStylesMethod m_stylesMethod
Definition: EPUBGenerator.h:90
Definition: EPUBGenerator.h:29
void writeStylesheet()
Definition: EPUBGenerator.cpp:264
virtual ~EPUBGenerator()
Definition: EPUBGenerator.cpp:54
void writeNavigation()
Definition: EPUBGenerator.cpp:201
EPUBSplitGuard m_splitGuard
Definition: EPUBGenerator.h:87
Definition: EPUBImageManager.h:30

Generated for libepubgen by doxygen 1.8.14