WP6StylesListener.h
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
2/* libwpd
3 * Version: MPL 2.0 / LGPLv2.1+
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 * Major Contributor(s):
10 * Copyright (C) 2003 William Lachance (wrlach@gmail.com)
11 * Copyright (C) 2003 Marc Maurer (uwog@uwog.net)
12 *
13 * For minor contributions see the git repository.
14 *
15 * Alternatively, the contents of this file may be used under the terms
16 * of the GNU Lesser General Public License Version 2.1 or later
17 * (LGPLv2.1+), in which case the provisions of the LGPLv2.1+ are
18 * applicable instead of those above.
19 *
20 * For further information visit http://libwpd.sourceforge.net
21 */
22
23/* "This product is not manufactured, approved, or supported by
24 * Corel Corporation or Corel Corporation Limited."
25 */
26
27// WP6StylesListener: creates an intermediate table representation, given a
28// sequence of messages passed to it by the parser.
29
30#ifndef WP6STYLESLISTENER_H
31#define WP6STYLESLISTENER_H
32
33#include "WP6Listener.h"
34#include "WPXStylesListener.h"
35#include <vector>
36#include <set>
37#include <list>
38#include "WPXPageSpan.h"
39#include "WPXTable.h"
40
41class WPXSubDocument;
42
44{
45public:
46 WP6StylesListener(std::list<WPXPageSpan> &pageList, WPXTableList tableList);
47
48 void setDate(const unsigned short /* type */, const unsigned short /* year */,
49 const unsigned char /* month */, const unsigned char /* day */,
50 const unsigned char /* hour */, const unsigned char /* minute */,
51 const unsigned char /* second */, const unsigned char /* dayOfWeek */,
52 const unsigned char /* timeZone */, const unsigned char /* unused */) override {}
53 void setExtendedInformation(const unsigned short /* type */, const librevenge::RVNGString & /*data*/) override {}
54 void startDocument() override {}
55 void startSubDocument() override {}
56 void setAlignmentCharacter(const unsigned /* character */) override {}
57 void setLeaderCharacter(const unsigned /* character */, const unsigned char /* numberOfSpaces */) override {}
58 void defineTabStops(const bool /* isRelative */, const std::vector<WPXTabStop> & /* tabStops */,
59 const std::vector<bool> & /* usePreWP9LeaderMethods */) override {}
60 void insertCharacter(unsigned /* character */) override
61 {
62 if (!isUndoOn()) m_currentPageHasContent = true;
63 }
64 void insertTab(const unsigned char /* tabType */, double /* tabPosition */) override
65 {
66 if (!isUndoOn()) m_currentPageHasContent = true;
67 }
68 void handleLineBreak() override
69 {
70 if (!isUndoOn()) m_currentPageHasContent = true;
71 }
72 void insertEOL() override
73 {
74 if (!isUndoOn()) m_currentPageHasContent = true;
75 }
76 void insertBreak(const unsigned char breakType) override;
77 void characterColorChange(const unsigned char /* red */, const unsigned char /* green */, const unsigned char /* blue */) override {}
78 void characterShadingChange(const unsigned char /* shading */) override {}
79 void highlightChange(const bool /* isOn */, const RGBSColor & /* color */) override {}
80 void fontChange(const unsigned short /* matchedFontPointSize */, const unsigned short /* fontPID */, const librevenge::RVNGString & /* fontName */) override {}
81 void attributeChange(const bool /* isOn */, const unsigned char /* attribute */) override {}
82 void lineSpacingChange(const double /* lineSpacing */) override {}
83 void spacingAfterParagraphChange(const double /* spacingRelative */, const double /* spacingAbsolute */) override {}
84 void justificationChange(const unsigned char /* justification */) override {}
85 void pageNumberingChange(const WPXPageNumberPosition /* page numbering position */, const unsigned short /* matchedFontPointSize */, const unsigned short /* fontPID */) override;
86 void pageMarginChange(const unsigned char side, const unsigned short margin) override;
87 void pageFormChange(const unsigned short length, const unsigned short width, const WPXFormOrientation orientation) override;
88 void marginChange(const unsigned char side, const unsigned short margin) override;
89 void paragraphMarginChange(const unsigned char /* side */, const signed short /* margin */) override {}
90 void indentFirstLineChange(const signed short /* offset */) override {}
91 void columnChange(const WPXTextColumnType /* columnType */, const unsigned char /* numColumns */,
92 const std::vector<double> & /* columnWidth */, const std::vector<bool> & /* isFixedWidth */) override {}
93 void updateOutlineDefinition(const unsigned short /* outlineHash */, const unsigned char * /* numberingMethods */, const unsigned char /* tabBehaviourFlag */) override {}
94
95 void paragraphNumberOn(const unsigned short /* outlineHash */, const unsigned char /* level */, const unsigned char /* flag */) override {}
96 void paragraphNumberOff() override
97 {
98 if (!isUndoOn()) m_currentPageHasContent = true;
99 }
100 void displayNumberReferenceGroupOn(const unsigned char /* subGroup */, const unsigned char /* level */) override {}
101 void displayNumberReferenceGroupOff(const unsigned char /* subGroup */) override
102 {
103 if (!isUndoOn()) m_currentPageHasContent = true;
104 }
105 void styleGroupOn(const unsigned char /* subGroup */) override {}
106 void styleGroupOff(const unsigned char /* subGroup */) override {}
107 void globalOn(const unsigned char /* systemStyle */) override {}
108 void globalOff() override {}
109 void noteOn(const unsigned short textPID) override;
110 void noteOff(const WPXNoteType /* noteType */) override {}
111 void headerFooterGroup(const unsigned char headerFooterType, const unsigned char occurrenceBits, const unsigned short textPID) override;
112 void suppressPageCharacteristics(const unsigned char suppressCode) override;
113 void setPageNumber(const unsigned short pageNumber) override;
114 void setPageNumberingType(const WPXNumberingType pageNumberingType) override;
115
116 void endDocument() override;
117 void endSubDocument() override;
118
119 void defineTable(const unsigned char position, const unsigned short leftOffset) override;
120 void addTableColumnDefinition(const unsigned /* width */, const unsigned /* leftGutter */, const unsigned /* rightGutter */,
121 const unsigned /* attributes */, const unsigned char /* alignment */) override {}
122 void startTable() override;
123 void insertRow(const unsigned short rowHeight, const bool isMinimumHeight, const bool isHeaderRow) override;
124 void insertCell(const unsigned char colSpan, const unsigned char rowSpan, const unsigned char borderBits,
125 const RGBSColor *cellFgColor, const RGBSColor *cellBgColor,
126 const RGBSColor *cellBorderColor, const WPXVerticalAlignment cellVerticalAlignment,
127 const bool useCellAttributes, const unsigned cellAttributes) override;
128 void endTable() override;
129 void boxOn(const unsigned char /* anchoringType */, const unsigned char /* generalPositioningFlags */, const unsigned char /* horizontalPositioningFlags */,
130 const signed short /* horizontalOffset */, const unsigned char /* leftColumn */, const unsigned char /* rightColumn */,
131 const unsigned char /* verticalPositioningFlags */, const signed short /* verticalOffset */, const unsigned char /* widthFlags */,
132 const unsigned short /* width */, const unsigned char /* heightFlags */, const unsigned short /* height */, const unsigned char /* boxContentType */,
133 const unsigned short /* nativeWidth */, const unsigned short /* nativeHeight */,
134 const librevenge::RVNGString & /* linkTarget */) override {}
135 void boxOff() override {}
136 void insertGraphicsData(const unsigned short /* packetId */) override {}
137 void insertTextBox(const WP6SubDocument *subDocument) override;
138 void commentAnnotation(const unsigned short textPID) override;
139
140 void undoChange(const unsigned char undoType, const unsigned short undoLevel) override;
141
142protected:
143 void _handleSubDocument(const WPXSubDocument *subDocument, WPXSubDocumentType subDocumentType, WPXTableList tableList, int nextTableIndice = 0);
144
145 void _flushText() {}
146 void _changeList() {}
147
148private:
152
154 std::shared_ptr<WPXTable> m_currentTable;
159 std::set <const WPXSubDocument *> m_subDocuments;
160 std::list<WPXPageSpan>::iterator m_pageListHardPageMark;
161};
162
163#endif /* WP6STYLESLISTENER_H */
164/* vim:set shiftwidth=4 softtabstop=4 noexpandtab: */
WP6Listener()
Definition WP6Listener.cpp:39
void indentFirstLineChange(const signed short) override
Definition WP6StylesListener.h:90
WP6StylesListener(std::list< WPXPageSpan > &pageList, WPXTableList tableList)
Definition WP6StylesListener.cpp:39
WP6StylesListener(const WP6StylesListener &)
void setPageNumberingType(const WPXNumberingType pageNumberingType) override
Definition WP6StylesListener.cpp:257
void insertTab(const unsigned char, double) override
Definition WP6StylesListener.h:64
void startSubDocument() override
Definition WP6StylesListener.h:55
void highlightChange(const bool, const RGBSColor &) override
Definition WP6StylesListener.h:79
void startDocument() override
Definition WP6StylesListener.h:54
void _handleSubDocument(const WPXSubDocument *subDocument, WPXSubDocumentType subDocumentType, WPXTableList tableList, int nextTableIndice=0)
Definition WP6StylesListener.cpp:345
void insertCell(const unsigned char colSpan, const unsigned char rowSpan, const unsigned char borderBits, const RGBSColor *cellFgColor, const RGBSColor *cellBgColor, const RGBSColor *cellBorderColor, const WPXVerticalAlignment cellVerticalAlignment, const bool useCellAttributes, const unsigned cellAttributes) override
Definition WP6StylesListener.cpp:306
void characterShadingChange(const unsigned char) override
Definition WP6StylesListener.h:78
void marginChange(const unsigned char side, const unsigned short margin) override
Definition WP6StylesListener.cpp:154
void pageNumberingChange(const WPXPageNumberPosition, const unsigned short, const unsigned short) override
Definition WP6StylesListener.cpp:103
void columnChange(const WPXTextColumnType, const unsigned char, const std::vector< double > &, const std::vector< bool > &) override
Definition WP6StylesListener.h:91
void setPageNumber(const unsigned short pageNumber) override
Definition WP6StylesListener.cpp:249
void paragraphMarginChange(const unsigned char, const signed short) override
Definition WP6StylesListener.h:89
void globalOn(const unsigned char) override
Definition WP6StylesListener.h:107
WPXPageSpan m_currentPage
Definition WP6StylesListener.h:151
std::set< const WPXSubDocument * > m_subDocuments
Definition WP6StylesListener.h:159
void pageFormChange(const unsigned short length, const unsigned short width, const WPXFormOrientation orientation) override
Definition WP6StylesListener.cpp:139
void boxOff() override
Definition WP6StylesListener.h:135
void insertEOL() override
Definition WP6StylesListener.h:72
void insertTextBox(const WP6SubDocument *subDocument) override
Definition WP6StylesListener.cpp:327
bool m_currentPageHasContent
Definition WP6StylesListener.h:156
void pageMarginChange(const unsigned char side, const unsigned short margin) override
Definition WP6StylesListener.cpp:120
void _flushText()
Definition WP6StylesListener.h:145
void styleGroupOn(const unsigned char) override
Definition WP6StylesListener.h:105
void updateOutlineDefinition(const unsigned short, const unsigned char *, const unsigned char) override
Definition WP6StylesListener.h:93
void characterColorChange(const unsigned char, const unsigned char, const unsigned char) override
Definition WP6StylesListener.h:77
void handleLineBreak() override
Definition WP6StylesListener.h:68
void startTable() override
Definition WP6StylesListener.cpp:276
void headerFooterGroup(const unsigned char headerFooterType, const unsigned char occurrenceBits, const unsigned short textPID) override
Definition WP6StylesListener.cpp:201
WPXTableList m_tableList
Definition WP6StylesListener.h:153
void undoChange(const unsigned char undoType, const unsigned short undoLevel) override
Definition WP6StylesListener.cpp:384
void _changeList()
Definition WP6StylesListener.h:146
void lineSpacingChange(const double) override
Definition WP6StylesListener.h:82
void justificationChange(const unsigned char) override
Definition WP6StylesListener.h:84
void endTable() override
Definition WP6StylesListener.cpp:288
std::list< WPXPageSpan >::iterator m_pageListHardPageMark
Definition WP6StylesListener.h:160
void noteOff(const WPXNoteType) override
Definition WP6StylesListener.h:110
void boxOn(const unsigned char, const unsigned char, const unsigned char, const signed short, const unsigned char, const unsigned char, const unsigned char, const signed short, const unsigned char, const unsigned short, const unsigned char, const unsigned short, const unsigned char, const unsigned short, const unsigned short, const librevenge::RVNGString &) override
Definition WP6StylesListener.h:129
void noteOn(const unsigned short textPID) override
Definition WP6StylesListener.cpp:318
void globalOff() override
Definition WP6StylesListener.h:108
void setExtendedInformation(const unsigned short, const librevenge::RVNGString &) override
Definition WP6StylesListener.h:53
void commentAnnotation(const unsigned short textPID) override
Definition WP6StylesListener.cpp:336
bool m_isTableDefined
Definition WP6StylesListener.h:157
void defineTable(const unsigned char position, const unsigned short leftOffset) override
Definition WP6StylesListener.cpp:265
void insertBreak(const unsigned char breakType) override
Definition WP6StylesListener.cpp:65
void displayNumberReferenceGroupOff(const unsigned char) override
Definition WP6StylesListener.h:101
void paragraphNumberOff() override
Definition WP6StylesListener.h:96
void attributeChange(const bool, const unsigned char) override
Definition WP6StylesListener.h:81
void setLeaderCharacter(const unsigned, const unsigned char) override
Definition WP6StylesListener.h:57
void insertRow(const unsigned short rowHeight, const bool isMinimumHeight, const bool isHeaderRow) override
Definition WP6StylesListener.cpp:297
void defineTabStops(const bool, const std::vector< WPXTabStop > &, const std::vector< bool > &) override
Definition WP6StylesListener.h:58
void paragraphNumberOn(const unsigned short, const unsigned char, const unsigned char) override
Definition WP6StylesListener.h:95
void endDocument() override
Definition WP6StylesListener.cpp:55
double m_tempMarginLeft
Definition WP6StylesListener.h:155
void endSubDocument() override
Definition WP6StylesListener.cpp:60
double m_tempMarginRight
Definition WP6StylesListener.h:155
void setAlignmentCharacter(const unsigned) override
Definition WP6StylesListener.h:56
WP6StylesListener & operator=(const WP6StylesListener &)
void spacingAfterParagraphChange(const double, const double) override
Definition WP6StylesListener.h:83
void suppressPageCharacteristics(const unsigned char suppressCode) override
Definition WP6StylesListener.cpp:229
void insertCharacter(unsigned) override
Definition WP6StylesListener.h:60
void addTableColumnDefinition(const unsigned, const unsigned, const unsigned, const unsigned, const unsigned char) override
Definition WP6StylesListener.h:120
void displayNumberReferenceGroupOn(const unsigned char, const unsigned char) override
Definition WP6StylesListener.h:100
void fontChange(const unsigned short, const unsigned short, const librevenge::RVNGString &) override
Definition WP6StylesListener.h:80
void setDate(const unsigned short, const unsigned short, const unsigned char, const unsigned char, const unsigned char, const unsigned char, const unsigned char, const unsigned char, const unsigned char, const unsigned char) override
Definition WP6StylesListener.h:48
std::shared_ptr< WPXTable > m_currentTable
Definition WP6StylesListener.h:154
bool m_isSubDocument
Definition WP6StylesListener.h:158
void styleGroupOff(const unsigned char) override
Definition WP6StylesListener.h:106
void insertGraphicsData(const unsigned short) override
Definition WP6StylesListener.h:136
Definition WP6SubDocument.h:34
bool isUndoOn()
Definition WPXListener.h:40
Definition WPXPageSpan.h:43
WPXStylesListener(std::list< WPXPageSpan > &pageList)
Definition WPXStylesListener.cpp:31
Definition WPXSubDocument.h:37
Definition WPXTableList.h:36
WPXFormOrientation
Definition libwpd_internal.h:105
WPXPageNumberPosition
Definition libwpd_internal.h:97
WPXTextColumnType
Definition libwpd_internal.h:109
WPXNumberingType
Definition libwpd_internal.h:92
WPXSubDocumentType
Definition libwpd_internal.h:111
WPXVerticalAlignment
Definition libwpd_internal.h:107
WPXNoteType
Definition libwpd_internal.h:93
Definition libwpd_internal.h:167

Generated for libwpd by doxygen 1.14.0