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
17namespace libabw
18{
19class ABWOutputElements;
20
22{
31};
32
34{
37};
38
39typedef std::map<std::string, std::string> ABWPropertyMap;
40
41bool findInt(const std::string &str, int &res);
42bool findDouble(const std::string &str, double &res, ABWUnit &unit);
43void parsePropString(const std::string &str, ABWPropertyMap &props);
44
45struct 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) {}
54
55 librevenge::RVNGString m_mimeType;
56 librevenge::RVNGBinaryData m_binaryData;
57};
58
60{
63 virtual ~ABWListElement() {}
64 virtual void writeOut(librevenge::RVNGPropertyList &propList) const;
65 virtual ABWListType getType() const = 0;
66
73};
74
76{
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{
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{
108public:
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: */
Definition: ABWCollector.h:107
virtual void collectPageSize(const char *width, const char *height, const char *units, const char *pageScale)=0
virtual void insertColumnBreak()=0
virtual ~ABWCollector()
Definition: ABWCollector.h:110
virtual void insertText(const char *text)=0
virtual void openTable(const char *props)=0
virtual void endDocument()=0
virtual void closeFrame(ABWOutputElements *(&elements), bool &pageFrame)=0
virtual void closeParagraphOrListElement()=0
virtual void startDocument()=0
virtual void collectTextStyle(const char *name, const char *basedon, const char *followedby, const char *props)=0
virtual void insertPageBreak()=0
virtual void collectList(const char *id, const char *listDecimal, const char *listDelim, const char *parentid, const char *startValue, const char *type)=0
virtual void collectSectionProperties(const char *footer, const char *footerLeft, const char *footerFirst, const char *footerLast, const char *header, const char *headerLeft, const char *headerFirst, const char *headerLast, const char *props)=0
virtual void openCell(const char *props)=0
virtual void closeLink()=0
virtual void openField(const char *type, const char *id)=0
virtual void closeEndnote()=0
virtual void collectHeaderFooter(const char *id, const char *type)=0
virtual void insertImage(const char *dataid, const char *props)=0
virtual void closeCell()=0
virtual void openEndnote(const char *id)=0
virtual void collectDocumentProperties(const char *props)=0
virtual void endSection()=0
virtual void openFoot(const char *id)=0
virtual void closeSpan()=0
virtual void insertLineBreak()=0
virtual void collectParagraphProperties(const char *level, const char *listid, const char *parentid, const char *style, const char *props)=0
virtual void closeField()=0
virtual void addFrameElements(ABWOutputElements &elements, bool pageFrame)=0
ABWCollector()
Definition: ABWCollector.h:109
virtual void closeFoot()=0
virtual void openFrame(const char *props, const char *imageId, const char *title, const char *alt)=0
virtual void openLink(const char *href)=0
virtual void collectCharacterProperties(const char *style, const char *props)=0
virtual void collectData(const char *name, const char *mimeType, const librevenge::RVNGBinaryData &data)=0
virtual void addMetadataEntry(const char *name, const char *value)=0
virtual void closeTable()=0
Definition: ABWOutputElements.h:25
Definition: AbiDocument.cpp:17
bool findDouble(const std::string &str, double &res, ABWUnit &unit)
Definition: ABWCollector.cpp:45
ABWUnit
Definition: ABWCollector.h:22
@ ABW_IN
Definition: ABWCollector.h:25
@ ABW_MM
Definition: ABWCollector.h:26
@ ABW_NONE
Definition: ABWCollector.h:23
@ ABW_CM
Definition: ABWCollector.h:24
@ ABW_PX
Definition: ABWCollector.h:29
@ ABW_PT
Definition: ABWCollector.h:28
@ ABW_PI
Definition: ABWCollector.h:27
@ ABW_PERCENT
Definition: ABWCollector.h:30
bool findInt(const std::string &str, int &res)
Definition: ABWCollector.cpp:16
ABWListType
Definition: ABWCollector.h:34
@ ABW_UNORDERED
Definition: ABWCollector.h:36
@ ABW_ORDERED
Definition: ABWCollector.h:35
void parsePropString(const std::string &str, ABWPropertyMap &props)
Definition: ABWCollector.cpp:27
std::map< std::string, std::string > ABWPropertyMap
Definition: ABWCollector.h:39
Definition: ABWCollector.h:46
librevenge::RVNGString m_mimeType
Definition: ABWCollector.h:55
ABWData(const ABWData &data)
Definition: ABWCollector.h:49
ABWData(const librevenge::RVNGString &mimeType, const librevenge::RVNGBinaryData binaryData)
Definition: ABWCollector.h:51
ABWData()
Definition: ABWCollector.h:47
~ABWData()
Definition: ABWCollector.h:53
librevenge::RVNGBinaryData m_binaryData
Definition: ABWCollector.h:56
Definition: ABWCollector.h:60
virtual void writeOut(librevenge::RVNGPropertyList &propList) const
Definition: ABWCollector.cpp:83
ABWListElement()
Definition: ABWCollector.h:61
int m_parentId
Definition: ABWCollector.h:70
virtual ~ABWListElement()
Definition: ABWCollector.h:63
double m_spaceBefore
Definition: ABWCollector.h:69
virtual ABWListType getType() const =0
int m_listLevel
Definition: ABWCollector.h:67
int m_listId
the list id
Definition: ABWCollector.h:72
double m_minLabelWidth
Definition: ABWCollector.h:68
Definition: ABWCollector.h:76
~ABWOrderedListElement() override
Definition: ABWCollector.h:79
ABWListType getType() const override
Definition: ABWCollector.h:81
ABWOrderedListElement()
Definition: ABWCollector.h:77
int m_startValue
Definition: ABWCollector.h:89
librevenge::RVNGString m_numPrefix
Definition: ABWCollector.h:87
librevenge::RVNGString m_numFormat
Definition: ABWCollector.h:86
void writeOut(librevenge::RVNGPropertyList &propList) const override
Definition: ABWCollector.cpp:91
librevenge::RVNGString m_numSuffix
Definition: ABWCollector.h:88
Definition: ABWCollector.h:93
~ABWUnorderedListElement() override
Definition: ABWCollector.h:96
ABWListType getType() const override
Definition: ABWCollector.h:98
librevenge::RVNGString m_bulletChar
Definition: ABWCollector.h:103
ABWUnorderedListElement()
Definition: ABWCollector.h:94
void writeOut(librevenge::RVNGPropertyList &propList) const override
Definition: ABWCollector.cpp:103

Generated for libwpd by doxygen 1.9.2