ABWCollector.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 libabw 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 __ABWCOLLECTOR_H__
11 #define __ABWCOLLECTOR_H__
12 
13 #include <string>
14 #include <map>
15 #include <librevenge/librevenge.h>
16 
17 namespace libabw
18 {
19 class ABWOutputElements;
20 
21 enum ABWUnit
22 {
31 };
32 
34 {
37 };
38 
39 typedef std::map<std::string, std::string> ABWPropertyMap;
40 
41 bool findInt(const std::string &str, int &res);
42 bool findDouble(const std::string &str, double &res, ABWUnit &unit);
43 void parsePropString(const std::string &str, ABWPropertyMap &props);
44 
45 struct ABWData
46 {
48  : m_mimeType(), m_binaryData() {}
49  ABWData(const ABWData &data)
51  ABWData(const librevenge::RVNGString &mimeType, const librevenge::RVNGBinaryData binaryData)
52  : m_mimeType(mimeType), m_binaryData(binaryData) {}
53  ~ABWData() {}
54 
55  librevenge::RVNGString m_mimeType;
56  librevenge::RVNGBinaryData m_binaryData;
57 };
58 
60 {
62  : m_listLevel(-1), m_minLabelWidth(0.0), m_spaceBefore(0.0), m_parentId(), m_listId(0) {}
63  virtual ~ABWListElement() {}
64  virtual void writeOut(librevenge::RVNGPropertyList &propList) const;
65  virtual ABWListType getType() const = 0;
66 
69  double m_spaceBefore;
72  int m_listId;
73 };
74 
76 {
78  : ABWListElement(), m_numFormat(), m_numPrefix(), m_numSuffix(), m_startValue(-1) {}
79  ~ABWOrderedListElement() override {}
80  void writeOut(librevenge::RVNGPropertyList &propList) const override;
81  ABWListType getType() const override
82  {
83  return ABW_ORDERED;
84  }
85 
86  librevenge::RVNGString m_numFormat;
87  librevenge::RVNGString m_numPrefix;
88  librevenge::RVNGString m_numSuffix;
90 };
91 
93 {
95  : ABWListElement(), m_bulletChar() {}
97  void writeOut(librevenge::RVNGPropertyList &propList) const override;
98  ABWListType getType() const override
99  {
100  return ABW_UNORDERED;
101  }
102 
103  librevenge::RVNGString m_bulletChar;
104 };
105 
107 {
108 public:
110  virtual ~ABWCollector() {}
111 
112  // collector functions
113 
114  virtual void collectTextStyle(const char *name, const char *basedon, const char *followedby, const char *props) = 0;
115  virtual void collectDocumentProperties(const char *props) = 0;
116  virtual void collectParagraphProperties(const char *level, const char *listid, const char *parentid,
117  const char *style, const char *props) = 0;
118  virtual void collectSectionProperties(const char *footer, const char *footerLeft, const char *footerFirst,
119  const char *footerLast, const char *header, const char *headerLeft,
120  const char *headerFirst, const char *headerLast, const char *props) = 0;
121  virtual void collectCharacterProperties(const char *style, const char *props) = 0;
122  virtual void collectPageSize(const char *width, const char *height, const char *units, const char *pageScale) = 0;
123  virtual void closeParagraphOrListElement() = 0;
124  virtual void closeSpan() = 0;
125  virtual void openLink(const char *href) = 0;
126  virtual void closeLink() = 0;
127  virtual void openFoot(const char *id) = 0;
128  virtual void closeFoot() = 0;
129  virtual void openEndnote(const char *id) = 0;
130  virtual void closeEndnote() = 0;
131  virtual void openField(const char *type, const char *id)= 0;
132  virtual void closeField()= 0;
133  virtual void endSection() = 0;
134  virtual void startDocument() = 0;
135  virtual void endDocument() = 0;
136  virtual void insertLineBreak() = 0;
137  virtual void insertColumnBreak() = 0;
138  virtual void insertPageBreak() = 0;
139  virtual void insertText(const char *text) = 0;
140  virtual void insertImage(const char *dataid, const char *props) = 0;
141  virtual void collectList(const char *id, const char *listDecimal, const char *listDelim,
142  const char *parentid, const char *startValue, const char *type) = 0;
143 
144  virtual void collectData(const char *name, const char *mimeType, const librevenge::RVNGBinaryData &data) = 0;
145  virtual void collectHeaderFooter(const char *id, const char *type) = 0;
146 
147  virtual void openTable(const char *props) = 0;
148  virtual void closeTable() = 0;
149  virtual void openCell(const char *props) = 0;
150  virtual void closeCell() = 0;
151 
152  virtual void openFrame(const char *props, const char *imageId, const char *title, const char *alt) = 0;
153  virtual void closeFrame(ABWOutputElements *(&elements), bool &pageFrame) = 0;
154  virtual void addFrameElements(ABWOutputElements &elements, bool pageFrame) = 0;
155 
156  virtual void addMetadataEntry(const char *name, const char *value) = 0;
157 };
158 
159 } // namespace libabw
160 
161 #endif /* __ABWCOLLECTOR_H__ */
162 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
double m_spaceBefore
Definition: ABWCollector.h:69
ABWCollector()
Definition: ABWCollector.h:109
ABWListType getType() const override
Definition: ABWCollector.h:81
Definition: ABWCollector.h:29
librevenge::RVNGBinaryData m_binaryData
Definition: ABWCollector.h:56
Definition: ABWCollector.h:92
ABWUnorderedListElement()
Definition: ABWCollector.h:94
virtual ~ABWCollector()
Definition: ABWCollector.h:110
Definition: ABWCollector.h:24
int m_parentId
Definition: ABWCollector.h:70
void parsePropString(const std::string &str, ABWPropertyMap &props)
Definition: ABWCollector.cpp:27
Definition: AbiDocument.cpp:16
virtual ~ABWListElement()
Definition: ABWCollector.h:63
ABWData(const librevenge::RVNGString &mimeType, const librevenge::RVNGBinaryData binaryData)
Definition: ABWCollector.h:51
Definition: ABWOutputElements.h:24
ABWOrderedListElement()
Definition: ABWCollector.h:77
Definition: ABWCollector.h:59
librevenge::RVNGString m_numSuffix
Definition: ABWCollector.h:88
Definition: ABWCollector.h:35
int m_listLevel
Definition: ABWCollector.h:67
int m_startValue
Definition: ABWCollector.h:89
librevenge::RVNGString m_bulletChar
Definition: ABWCollector.h:103
Definition: ABWCollector.h:27
ABWListElement()
Definition: ABWCollector.h:61
ABWListType
Definition: ABWCollector.h:33
librevenge::RVNGString m_numPrefix
Definition: ABWCollector.h:87
ABWData()
Definition: ABWCollector.h:47
Definition: ABWCollector.h:106
double m_minLabelWidth
Definition: ABWCollector.h:68
Definition: ABWCollector.h:75
bool findInt(const std::string &str, int &res)
Definition: ABWCollector.cpp:16
ABWData(const ABWData &data)
Definition: ABWCollector.h:49
Definition: ABWCollector.h:26
librevenge::RVNGString m_mimeType
Definition: ABWCollector.h:55
Definition: ABWCollector.h:28
~ABWData()
Definition: ABWCollector.h:53
Definition: ABWCollector.h:45
ABWListType getType() const override
Definition: ABWCollector.h:98
librevenge::RVNGString m_numFormat
Definition: ABWCollector.h:86
std::map< std::string, std::string > ABWPropertyMap
Definition: ABWCollector.h:39
Definition: ABWCollector.h:30
Definition: ABWCollector.h:25
int m_listId
the list id
Definition: ABWCollector.h:72
Definition: ABWCollector.h:36
~ABWOrderedListElement() override
Definition: ABWCollector.h:79
bool findDouble(const std::string &str, double &res, ABWUnit &unit)
Definition: ABWCollector.cpp:45
~ABWUnorderedListElement() override
Definition: ABWCollector.h:96
Definition: ABWCollector.h:23
ABWUnit
Definition: ABWCollector.h:21

Generated for libwpd by doxygen 1.8.13