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 
41 class WPXSubDocument;
42 
44 {
45 public:
46  WP6StylesListener(std::list<WPXPageSpan> &pageList, WPXTableList tableList);
47 
48  void setDate(const uint16_t /* type */, const uint16_t /* year */,
49  const uint8_t /* month */, const uint8_t /* day */,
50  const uint8_t /* hour */, const uint8_t /* minute */,
51  const uint8_t /* second */, const uint8_t /* dayOfWeek */,
52  const uint8_t /* timeZone */, const uint8_t /* unused */) {}
53  void setExtendedInformation(const uint16_t /* type */, const WPXString & /*data*/) {}
54  void startDocument() {}
55  void startSubDocument() {}
56  void setAlignmentCharacter(const uint32_t /* character */) {}
57  void setLeaderCharacter(const uint32_t /* character */, const uint8_t /* numberOfSpaces */) {}
58  void defineTabStops(const bool /* isRelative */, const std::vector<WPXTabStop> & /* tabStops */,
59  const std::vector<bool> & /* usePreWP9LeaderMethods */) {}
60  void insertCharacter(uint32_t /* character */)
61  {
62  if (!isUndoOn()) m_currentPageHasContent = true;
63  }
64  void insertTab(const uint8_t /* tabType */, double /* tabPosition */)
65  {
66  if (!isUndoOn()) m_currentPageHasContent = true;
67  }
69  {
70  if (!isUndoOn()) m_currentPageHasContent = true;
71  }
72  void insertEOL()
73  {
74  if (!isUndoOn()) m_currentPageHasContent = true;
75  }
76  void insertBreak(const uint8_t breakType);
77  void characterColorChange(const uint8_t /* red */, const uint8_t /* green */, const uint8_t /* blue */) {}
78  void characterShadingChange(const uint8_t /* shading */) {}
79  void highlightChange(const bool /* isOn */, const RGBSColor & /* color */) {}
80  void fontChange(const uint16_t /* matchedFontPointSize */, const uint16_t /* fontPID */, const WPXString & /* fontName */) {}
81  void attributeChange(const bool /* isOn */, const uint8_t /* attribute */) {}
82  void lineSpacingChange(const double /* lineSpacing */) {}
83  void spacingAfterParagraphChange(const double /* spacingRelative */, const double /* spacingAbsolute */) {}
84  void justificationChange(const uint8_t /* justification */) {}
85  void pageNumberingChange(const WPXPageNumberPosition /* page numbering position */, const uint16_t /* matchedFontPointSize */, const uint16_t /* fontPID */);
86  void pageMarginChange(const uint8_t side, const uint16_t margin);
87  void pageFormChange(const uint16_t length, const uint16_t width, const WPXFormOrientation orientation);
88  void marginChange(const uint8_t side, const uint16_t margin);
89  void paragraphMarginChange(const uint8_t /* side */, const int16_t /* margin */) {}
90  void indentFirstLineChange(const int16_t /* offset */) {}
91  void columnChange(const WPXTextColumnType /* columnType */, const uint8_t /* numColumns */,
92  const std::vector<double> & /* columnWidth */, const std::vector<bool> & /* isFixedWidth */) {}
93  void updateOutlineDefinition(const WP6OutlineLocation /* outlineLocation */, const uint16_t /* outlineHash */,
94  const uint8_t * /* numberingMethods */, const uint8_t /* tabBehaviourFlag */) {}
95 
96  void paragraphNumberOn(const uint16_t /* outlineHash */, const uint8_t /* level */, const uint8_t /* flag */) {}
98  {
99  if (!isUndoOn()) m_currentPageHasContent = true;
100  }
101  void displayNumberReferenceGroupOn(const uint8_t /* subGroup */, const uint8_t /* level */) {}
102  void displayNumberReferenceGroupOff(const uint8_t /* subGroup */)
103  {
104  if (!isUndoOn()) m_currentPageHasContent = true;
105  }
106  void styleGroupOn(const uint8_t /* subGroup */) {}
107  void styleGroupOff(const uint8_t /* subGroup */) {}
108  void globalOn(const uint8_t /* systemStyle */) {}
109  void globalOff() {}
110  void noteOn(const uint16_t textPID);
111  void noteOff(const WPXNoteType /* noteType */) {}
112  void headerFooterGroup(const uint8_t headerFooterType, const uint8_t occurenceBits, const uint16_t textPID);
113  void suppressPageCharacteristics(const uint8_t suppressCode);
114  void setPageNumber(const uint16_t pageNumber);
115  void setPageNumberingType(const WPXNumberingType pageNumberingType);
116 
117  void endDocument();
118  void endSubDocument();
119 
120  void defineTable(const uint8_t position, const uint16_t leftOffset);
121  void addTableColumnDefinition(const uint32_t /* width */, const uint32_t /* leftGutter */, const uint32_t /* rightGutter */,
122  const uint32_t /* attributes */, const uint8_t /* alignment */) {}
123  void startTable();
124  void insertRow(const uint16_t rowHeight, const bool isMinimumHeight, const bool isHeaderRow);
125  void insertCell(const uint8_t colSpan, const uint8_t rowSpan, const uint8_t borderBits,
126  const RGBSColor *cellFgColor, const RGBSColor *cellBgColor,
127  const RGBSColor *cellBorderColor, const WPXVerticalAlignment cellVerticalAlignment,
128  const bool useCellAttributes, const uint32_t cellAttributes);
129  void endTable();
130  void boxOn(const uint8_t /* anchoringType */, const uint8_t /* generalPositioningFlags */, const uint8_t /* horizontalPositioningFlags */,
131  const int16_t /* horizontalOffset */, const uint8_t /* leftColumn */, const uint8_t /* rightColumn */,
132  const uint8_t /* verticalPositioningFlags */, const int16_t /* verticalOffset */, const uint8_t /* widthFlags */,
133  const uint16_t /* width */, const uint8_t /* heightFlags */, const uint16_t /* height */, const uint8_t /* boxContentType */,
134  const uint16_t /* nativeWidth */, const uint16_t /* nativeHeight */) {}
135  void boxOff() {}
136  void insertGraphicsData(const uint16_t /* packetId */) {}
137  void insertTextBox(const WP6SubDocument *subDocument);
138  void commentAnnotation(const uint16_t textPID);
139 
140  void undoChange(const uint8_t undoType, const uint16_t undoLevel);
141 
142 protected:
143  void _handleSubDocument(const WPXSubDocument *subDocument, WPXSubDocumentType subDocumentType, WPXTableList tableList, int nextTableIndice = 0);
144 
145  void _flushText() {}
146  void _changeList() {}
147 
148 private:
152 
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: */
WPXNumberingType
Definition: libwpd_internal.h:93
void handleLineBreak()
Definition: WP6StylesListener.h:68
void insertCharacter(uint32_t)
Definition: WP6StylesListener.h:60
void lineSpacingChange(const double)
Definition: WP6StylesListener.h:82
WPXTableList m_tableList
Definition: WP6StylesListener.h:153
Definition: WPXString.h:32
std::list< WPXPageSpan >::iterator m_pageListHardPageMark
Definition: WP6StylesListener.h:160
void fontChange(const uint16_t, const uint16_t, const WPXString &)
Definition: WP6StylesListener.h:80
double m_tempMarginRight
Definition: WP6StylesListener.h:155
void pageNumberingChange(const WPXPageNumberPosition, const uint16_t, const uint16_t)
Definition: WP6StylesListener.cpp:103
void displayNumberReferenceGroupOff(const uint8_t)
Definition: WP6StylesListener.h:102
Definition: WP6Listener.h:42
void setLeaderCharacter(const uint32_t, const uint8_t)
Definition: WP6StylesListener.h:57
void spacingAfterParagraphChange(const double, const double)
Definition: WP6StylesListener.h:83
Definition: WPXTable.h:52
void undoChange(const uint8_t undoType, const uint16_t undoLevel)
Definition: WP6StylesListener.cpp:384
void addTableColumnDefinition(const uint32_t, const uint32_t, const uint32_t, const uint32_t, const uint8_t)
Definition: WP6StylesListener.h:121
WPXTextColumnType
Definition: libwpd_internal.h:110
void startSubDocument()
Definition: WP6StylesListener.h:55
bool m_isSubDocument
Definition: WP6StylesListener.h:158
void endTable()
Definition: WP6StylesListener.cpp:288
void setPageNumberingType(const WPXNumberingType pageNumberingType)
Definition: WP6StylesListener.cpp:257
WP6OutlineLocation
Definition: WP6Listener.h:40
void defineTabStops(const bool, const std::vector< WPXTabStop > &, const std::vector< bool > &)
Definition: WP6StylesListener.h:58
void justificationChange(const uint8_t)
Definition: WP6StylesListener.h:84
void endDocument()
Definition: WP6StylesListener.cpp:55
void paragraphNumberOff()
Definition: WP6StylesListener.h:97
void setAlignmentCharacter(const uint32_t)
Definition: WP6StylesListener.h:56
WPXSubDocumentType
Definition: libwpd_internal.h:112
void pageFormChange(const uint16_t length, const uint16_t width, const WPXFormOrientation orientation)
Definition: WP6StylesListener.cpp:139
void indentFirstLineChange(const int16_t)
Definition: WP6StylesListener.h:90
void endSubDocument()
Definition: WP6StylesListener.cpp:60
void paragraphMarginChange(const uint8_t, const int16_t)
Definition: WP6StylesListener.h:89
void insertCell(const uint8_t colSpan, const uint8_t rowSpan, const uint8_t borderBits, const RGBSColor *cellFgColor, const RGBSColor *cellBgColor, const RGBSColor *cellBorderColor, const WPXVerticalAlignment cellVerticalAlignment, const bool useCellAttributes, const uint32_t cellAttributes)
Definition: WP6StylesListener.cpp:306
void insertBreak(const uint8_t breakType)
Definition: WP6StylesListener.cpp:65
void updateOutlineDefinition(const WP6OutlineLocation, const uint16_t, const uint8_t *, const uint8_t)
Definition: WP6StylesListener.h:93
Definition: libwpd_internal.h:168
void insertEOL()
Definition: WP6StylesListener.h:72
double m_tempMarginLeft
Definition: WP6StylesListener.h:155
void setDate(const uint16_t, const uint16_t, const uint8_t, const uint8_t, const uint8_t, const uint8_t, const uint8_t, const uint8_t, const uint8_t, const uint8_t)
Definition: WP6StylesListener.h:48
void noteOn(const uint16_t textPID)
Definition: WP6StylesListener.cpp:318
Definition: WPXTable.h:82
void styleGroupOff(const uint8_t)
Definition: WP6StylesListener.h:107
void insertGraphicsData(const uint16_t)
Definition: WP6StylesListener.h:136
void marginChange(const uint8_t side, const uint16_t margin)
Definition: WP6StylesListener.cpp:154
WPXTable * m_currentTable
Definition: WP6StylesListener.h:154
Definition: WP6SubDocument.h:33
void columnChange(const WPXTextColumnType, const uint8_t, const std::vector< double > &, const std::vector< bool > &)
Definition: WP6StylesListener.h:91
WP6StylesListener & operator=(const WP6StylesListener &)
void insertTab(const uint8_t, double)
Definition: WP6StylesListener.h:64
WPXFormOrientation
Definition: libwpd_internal.h:106
void insertTextBox(const WP6SubDocument *subDocument)
Definition: WP6StylesListener.cpp:327
Definition: WPXSubDocument.h:35
void pageMarginChange(const uint8_t side, const uint16_t margin)
Definition: WP6StylesListener.cpp:120
std::set< const WPXSubDocument * > m_subDocuments
Definition: WP6StylesListener.h:159
void paragraphNumberOn(const uint16_t, const uint8_t, const uint8_t)
Definition: WP6StylesListener.h:96
void _changeList()
Definition: WP6StylesListener.h:146
void attributeChange(const bool, const uint8_t)
Definition: WP6StylesListener.h:81
void boxOn(const uint8_t, const uint8_t, const uint8_t, const int16_t, const uint8_t, const uint8_t, const uint8_t, const int16_t, const uint8_t, const uint16_t, const uint8_t, const uint16_t, const uint8_t, const uint16_t, const uint16_t)
Definition: WP6StylesListener.h:130
WPXVerticalAlignment
Definition: libwpd_internal.h:108
void defineTable(const uint8_t position, const uint16_t leftOffset)
Definition: WP6StylesListener.cpp:265
void startTable()
Definition: WP6StylesListener.cpp:276
void globalOn(const uint8_t)
Definition: WP6StylesListener.h:108
WPXPageSpan m_currentPage
Definition: WP6StylesListener.h:151
void setExtendedInformation(const uint16_t, const WPXString &)
Definition: WP6StylesListener.h:53
void characterShadingChange(const uint8_t)
Definition: WP6StylesListener.h:78
void characterColorChange(const uint8_t, const uint8_t, const uint8_t)
Definition: WP6StylesListener.h:77
void suppressPageCharacteristics(const uint8_t suppressCode)
Definition: WP6StylesListener.cpp:229
void headerFooterGroup(const uint8_t headerFooterType, const uint8_t occurenceBits, const uint16_t textPID)
Definition: WP6StylesListener.cpp:201
void insertRow(const uint16_t rowHeight, const bool isMinimumHeight, const bool isHeaderRow)
Definition: WP6StylesListener.cpp:297
void _flushText()
Definition: WP6StylesListener.h:145
Definition: WPXPageSpan.h:77
void startDocument()
Definition: WP6StylesListener.h:54
WPXPageNumberPosition
Definition: libwpd_internal.h:98
void highlightChange(const bool, const RGBSColor &)
Definition: WP6StylesListener.h:79
void displayNumberReferenceGroupOn(const uint8_t, const uint8_t)
Definition: WP6StylesListener.h:101
bool isUndoOn()
Definition: WPXListener.h:40
void globalOff()
Definition: WP6StylesListener.h:109
void styleGroupOn(const uint8_t)
Definition: WP6StylesListener.h:106
bool m_currentPageHasContent
Definition: WP6StylesListener.h:156
void noteOff(const WPXNoteType)
Definition: WP6StylesListener.h:111
void setPageNumber(const uint16_t pageNumber)
Definition: WP6StylesListener.cpp:249
Definition: WPXStylesListener.h:33
void boxOff()
Definition: WP6StylesListener.h:135
void commentAnnotation(const uint16_t textPID)
Definition: WP6StylesListener.cpp:336
Definition: WP6StylesListener.h:43
bool m_isTableDefined
Definition: WP6StylesListener.h:157
void _handleSubDocument(const WPXSubDocument *subDocument, WPXSubDocumentType subDocumentType, WPXTableList tableList, int nextTableIndice=0)
Definition: WP6StylesListener.cpp:345
WP6StylesListener(std::list< WPXPageSpan > &pageList, WPXTableList tableList)
Definition: WP6StylesListener.cpp:39
WPXNoteType
Definition: libwpd_internal.h:94

Generated for libwpd by doxygen 1.8.5