- Main Page
- Namespaces
- Classes
- Files

- File List
- File Members

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
43 class WP6StylesListener : public WP6Listener, protected WPXStylesListener
44 {
45 public:
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 */) {}
53 void setExtendedInformation(const unsigned short /* type */, const librevenge::RVNGString & /*data*/) {}
54 void startDocument() {}
55 void startSubDocument() {}
56 void setAlignmentCharacter(const unsigned /* character */) {}
57 void setLeaderCharacter(const unsigned /* character */, const unsigned char /* numberOfSpaces */) {}
58 void defineTabStops(const bool /* isRelative */, const std::vector<WPXTabStop> & /* tabStops */,
59 const std::vector<bool> & /* usePreWP9LeaderMethods */) {}
60 void insertCharacter(unsigned /* character */)
61 {
62 if (!isUndoOn()) m_currentPageHasContent = true;
63 }
64 void insertTab(const unsigned char /* tabType */, double /* tabPosition */)
65 {
66 if (!isUndoOn()) m_currentPageHasContent = true;
67 }
68 void handleLineBreak()
69 {
70 if (!isUndoOn()) m_currentPageHasContent = true;
71 }
72 void insertEOL()
73 {
74 if (!isUndoOn()) m_currentPageHasContent = true;
75 }
76 void insertBreak(const unsigned char breakType);
77 void characterColorChange(const unsigned char /* red */, const unsigned char /* green */, const unsigned char /* blue */) {}
78 void characterShadingChange(const unsigned char /* shading */) {}
79 void highlightChange(const bool /* isOn */, const RGBSColor & /* color */) {}
80 void fontChange(const unsigned short /* matchedFontPointSize */, const unsigned short /* fontPID */, const librevenge::RVNGString & /* fontName */) {}
81 void attributeChange(const bool /* isOn */, const unsigned char /* attribute */) {}
82 void lineSpacingChange(const double /* lineSpacing */) {}
83 void spacingAfterParagraphChange(const double /* spacingRelative */, const double /* spacingAbsolute */) {}
84 void justificationChange(const unsigned char /* justification */) {}
85 void pageNumberingChange(const WPXPageNumberPosition /* page numbering position */, const unsigned short /* matchedFontPointSize */, const unsigned short /* fontPID */);
86 void pageMarginChange(const unsigned char side, const unsigned short margin);
87 void pageFormChange(const unsigned short length, const unsigned short width, const WPXFormOrientation orientation);
88 void marginChange(const unsigned char side, const unsigned short margin);
89 void paragraphMarginChange(const unsigned char /* side */, const signed short /* margin */) {}
90 void indentFirstLineChange(const signed short /* offset */) {}
91 void columnChange(const WPXTextColumnType /* columnType */, const unsigned char /* numColumns */,
92 const std::vector<double> & /* columnWidth */, const std::vector<bool> & /* isFixedWidth */) {}
93 void updateOutlineDefinition(const unsigned short /* outlineHash */, const unsigned char * /* numberingMethods */, const unsigned char /* tabBehaviourFlag */) {}
94
95 void paragraphNumberOn(const unsigned short /* outlineHash */, const unsigned char /* level */, const unsigned char /* flag */) {}
96 void paragraphNumberOff()
97 {
98 if (!isUndoOn()) m_currentPageHasContent = true;
99 }
100 void displayNumberReferenceGroupOn(const unsigned char /* subGroup */, const unsigned char /* level */) {}
101 void displayNumberReferenceGroupOff(const unsigned char /* subGroup */)
102 {
103 if (!isUndoOn()) m_currentPageHasContent = true;
104 }
105 void styleGroupOn(const unsigned char /* subGroup */) {}
106 void styleGroupOff(const unsigned char /* subGroup */) {}
107 void globalOn(const unsigned char /* systemStyle */) {}
108 void globalOff() {}
109 void noteOn(const unsigned short textPID);
110 void noteOff(const WPXNoteType /* noteType */) {}
111 void headerFooterGroup(const unsigned char headerFooterType, const unsigned char occurrenceBits, const unsigned short textPID);
112 void suppressPageCharacteristics(const unsigned char suppressCode);
113 void setPageNumber(const unsigned short pageNumber);
114 void setPageNumberingType(const WPXNumberingType pageNumberingType);
115
116 void endDocument();
117 void endSubDocument();
118
119 void defineTable(const unsigned char position, const unsigned short leftOffset);
120 void addTableColumnDefinition(const unsigned /* width */, const unsigned /* leftGutter */, const unsigned /* rightGutter */,
121 const unsigned /* attributes */, const unsigned char /* alignment */) {}
122 void startTable();
123 void insertRow(const unsigned short rowHeight, const bool isMinimumHeight, const bool isHeaderRow);
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);
128 void endTable();
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 void boxOff() {}
135 void insertGraphicsData(const unsigned short /* packetId */) {}
136 void insertTextBox(const WP6SubDocument *subDocument);
137 void commentAnnotation(const unsigned short textPID);
138
139 void undoChange(const unsigned char undoType, const unsigned short undoLevel);
140
141 protected:
142 void _handleSubDocument(const WPXSubDocument *subDocument, WPXSubDocumentType subDocumentType, WPXTableList tableList, int nextTableIndice = 0);
143
144 void _flushText() {}
145 void _changeList() {}
146
147 private:
148 WP6StylesListener(const WP6StylesListener &);
149 WP6StylesListener &operator=(const WP6StylesListener &);
150 WPXPageSpan m_currentPage;
151
152 WPXTableList m_tableList;
153 WPXTable *m_currentTable;
154 double m_tempMarginLeft, m_tempMarginRight;
155 bool m_currentPageHasContent;
156 bool m_isTableDefined;
157 bool m_isSubDocument;
158 std::set <const WPXSubDocument *> m_subDocuments;
159 std::list<WPXPageSpan>::iterator m_pageListHardPageMark;
160 };
161
162 #endif /* WP6STYLESLISTENER_H */
163 /* vim:set shiftwidth=4 softtabstop=4 noexpandtab: */
WPXNumberingType
WPXNumberingType
Definition: libwpd_internal.h:92
WP6StylesListener::handleLineBreak
void handleLineBreak()
Definition: WP6StylesListener.h:68
WP6StylesListener::updateOutlineDefinition
void updateOutlineDefinition(const unsigned short, const unsigned char *, const unsigned char)
Definition: WP6StylesListener.h:93
WP6StylesListener::lineSpacingChange
void lineSpacingChange(const double)
Definition: WP6StylesListener.h:82
WP6StylesListener::m_tableList
WPXTableList m_tableList
Definition: WP6StylesListener.h:152
WP6StylesListener::m_pageListHardPageMark
std::list< WPXPageSpan >::iterator m_pageListHardPageMark
Definition: WP6StylesListener.h:159
WPXStylesListener.h
WP6StylesListener::m_tempMarginRight
double m_tempMarginRight
Definition: WP6StylesListener.h:154
WP6StylesListener::setAlignmentCharacter
void setAlignmentCharacter(const unsigned)
Definition: WP6StylesListener.h:56
WP6Listener
Definition: WP6Listener.h:40
WP6StylesListener::spacingAfterParagraphChange
void spacingAfterParagraphChange(const double, const double)
Definition: WP6StylesListener.h:83
WPXTable
Definition: WPXTable.h:51
WP6StylesListener::insertCell
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)
Definition: WP6StylesListener.cpp:306
WPXTable.h
WP6StylesListener::justificationChange
void justificationChange(const unsigned char)
Definition: WP6StylesListener.h:84
WPXPageSpan.h
WP6StylesListener::indentFirstLineChange
void indentFirstLineChange(const signed short)
Definition: WP6StylesListener.h:90
WP6StylesListener::globalOn
void globalOn(const unsigned char)
Definition: WP6StylesListener.h:107
WPXTextColumnType
WPXTextColumnType
Definition: libwpd_internal.h:109
WP6StylesListener::displayNumberReferenceGroupOff
void displayNumberReferenceGroupOff(const unsigned char)
Definition: WP6StylesListener.h:101
WP6StylesListener::displayNumberReferenceGroupOn
void displayNumberReferenceGroupOn(const unsigned char, const unsigned char)
Definition: WP6StylesListener.h:100
WP6StylesListener::pageFormChange
void pageFormChange(const unsigned short length, const unsigned short width, const WPXFormOrientation orientation)
Definition: WP6StylesListener.cpp:139
WP6StylesListener::noteOn
void noteOn(const unsigned short textPID)
Definition: WP6StylesListener.cpp:318
WP6StylesListener::startSubDocument
void startSubDocument()
Definition: WP6StylesListener.h:55
WP6StylesListener::m_isSubDocument
bool m_isSubDocument
Definition: WP6StylesListener.h:157
WP6StylesListener::endTable
void endTable()
Definition: WP6StylesListener.cpp:288
WP6StylesListener::suppressPageCharacteristics
void suppressPageCharacteristics(const unsigned char suppressCode)
Definition: WP6StylesListener.cpp:229
WP6StylesListener::setPageNumberingType
void setPageNumberingType(const WPXNumberingType pageNumberingType)
Definition: WP6StylesListener.cpp:257
WP6StylesListener::headerFooterGroup
void headerFooterGroup(const unsigned char headerFooterType, const unsigned char occurrenceBits, const unsigned short textPID)
Definition: WP6StylesListener.cpp:201
WP6StylesListener::attributeChange
void attributeChange(const bool, const unsigned char)
Definition: WP6StylesListener.h:81
WP6StylesListener::pageNumberingChange
void pageNumberingChange(const WPXPageNumberPosition, const unsigned short, const unsigned short)
Definition: WP6StylesListener.cpp:103
WP6StylesListener::defineTabStops
void defineTabStops(const bool, const std::vector< WPXTabStop > &, const std::vector< bool > &)
Definition: WP6StylesListener.h:58
WP6StylesListener::addTableColumnDefinition
void addTableColumnDefinition(const unsigned, const unsigned, const unsigned, const unsigned, const unsigned char)
Definition: WP6StylesListener.h:120
WP6StylesListener::endDocument
void endDocument()
Definition: WP6StylesListener.cpp:55
WP6StylesListener::paragraphMarginChange
void paragraphMarginChange(const unsigned char, const signed short)
Definition: WP6StylesListener.h:89
WP6StylesListener::characterColorChange
void characterColorChange(const unsigned char, const unsigned char, const unsigned char)
Definition: WP6StylesListener.h:77
WP6StylesListener::paragraphNumberOff
void paragraphNumberOff()
Definition: WP6StylesListener.h:96
WPXSubDocumentType
WPXSubDocumentType
Definition: libwpd_internal.h:111
WP6StylesListener::characterShadingChange
void characterShadingChange(const unsigned char)
Definition: WP6StylesListener.h:78
WP6StylesListener::endSubDocument
void endSubDocument()
Definition: WP6StylesListener.cpp:60
_RGBSColor
Definition: libwpd_internal.h:167
WP6StylesListener::insertEOL
void insertEOL()
Definition: WP6StylesListener.h:72
WP6StylesListener::m_tempMarginLeft
double m_tempMarginLeft
Definition: WP6StylesListener.h:154
WP6StylesListener::insertRow
void insertRow(const unsigned short rowHeight, const bool isMinimumHeight, const bool isHeaderRow)
Definition: WP6StylesListener.cpp:297
WPXTableList
Definition: WPXTable.h:81
WP6StylesListener::setDate
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)
Definition: WP6StylesListener.h:48
WP6StylesListener::m_currentTable
WPXTable * m_currentTable
Definition: WP6StylesListener.h:153
WP6SubDocument
Definition: WP6SubDocument.h:33
WP6StylesListener::insertTab
void insertTab(const unsigned char, double)
Definition: WP6StylesListener.h:64
WP6StylesListener::styleGroupOn
void styleGroupOn(const unsigned char)
Definition: WP6StylesListener.h:105
WP6StylesListener::columnChange
void columnChange(const WPXTextColumnType, const unsigned char, const std::vector< double > &, const std::vector< bool > &)
Definition: WP6StylesListener.h:91
WP6StylesListener::boxOn
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)
Definition: WP6StylesListener.h:129
WP6StylesListener::operator=
WP6StylesListener & operator=(const WP6StylesListener &)
WP6StylesListener::setExtendedInformation
void setExtendedInformation(const unsigned short, const librevenge::RVNGString &)
Definition: WP6StylesListener.h:53
WPXFormOrientation
WPXFormOrientation
Definition: libwpd_internal.h:105
WP6StylesListener::fontChange
void fontChange(const unsigned short, const unsigned short, const librevenge::RVNGString &)
Definition: WP6StylesListener.h:80
WP6StylesListener::styleGroupOff
void styleGroupOff(const unsigned char)
Definition: WP6StylesListener.h:106
WP6StylesListener::insertTextBox
void insertTextBox(const WP6SubDocument *subDocument)
Definition: WP6StylesListener.cpp:327
WPXSubDocument
Definition: WPXSubDocument.h:34
WP6StylesListener::m_subDocuments
std::set< const WPXSubDocument * > m_subDocuments
Definition: WP6StylesListener.h:158
WP6StylesListener::_changeList
void _changeList()
Definition: WP6StylesListener.h:145
WP6StylesListener::setLeaderCharacter
void setLeaderCharacter(const unsigned, const unsigned char)
Definition: WP6StylesListener.h:57
WPXVerticalAlignment
WPXVerticalAlignment
Definition: libwpd_internal.h:107
WP6StylesListener::startTable
void startTable()
Definition: WP6StylesListener.cpp:276
WP6StylesListener::setPageNumber
void setPageNumber(const unsigned short pageNumber)
Definition: WP6StylesListener.cpp:249
WP6StylesListener::m_currentPage
WPXPageSpan m_currentPage
Definition: WP6StylesListener.h:150
WP6StylesListener::insertGraphicsData
void insertGraphicsData(const unsigned short)
Definition: WP6StylesListener.h:135
WP6StylesListener::paragraphNumberOn
void paragraphNumberOn(const unsigned short, const unsigned char, const unsigned char)
Definition: WP6StylesListener.h:95
WP6StylesListener::_flushText
void _flushText()
Definition: WP6StylesListener.h:144
WPXPageSpan
Definition: WPXPageSpan.h:77
WP6StylesListener::startDocument
void startDocument()
Definition: WP6StylesListener.h:54
WPXPageNumberPosition
WPXPageNumberPosition
Definition: libwpd_internal.h:97
WP6StylesListener::highlightChange
void highlightChange(const bool, const RGBSColor &)
Definition: WP6StylesListener.h:79
WP6StylesListener::commentAnnotation
void commentAnnotation(const unsigned short textPID)
Definition: WP6StylesListener.cpp:336
WPXListener::isUndoOn
bool isUndoOn()
Definition: WPXListener.h:40
WP6StylesListener::globalOff
void globalOff()
Definition: WP6StylesListener.h:108
WP6StylesListener::m_currentPageHasContent
bool m_currentPageHasContent
Definition: WP6StylesListener.h:155
WP6StylesListener::noteOff
void noteOff(const WPXNoteType)
Definition: WP6StylesListener.h:110
WP6StylesListener::insertBreak
void insertBreak(const unsigned char breakType)
Definition: WP6StylesListener.cpp:65
WP6Listener.h
WP6StylesListener::marginChange
void marginChange(const unsigned char side, const unsigned short margin)
Definition: WP6StylesListener.cpp:154
WPXStylesListener
Definition: WPXStylesListener.h:33
WP6StylesListener::insertCharacter
void insertCharacter(unsigned)
Definition: WP6StylesListener.h:60
WP6StylesListener::boxOff
void boxOff()
Definition: WP6StylesListener.h:134
WP6StylesListener::defineTable
void defineTable(const unsigned char position, const unsigned short leftOffset)
Definition: WP6StylesListener.cpp:265
WP6StylesListener
Definition: WP6StylesListener.h:43
WP6StylesListener::m_isTableDefined
bool m_isTableDefined
Definition: WP6StylesListener.h:156
WP6StylesListener::undoChange
void undoChange(const unsigned char undoType, const unsigned short undoLevel)
Definition: WP6StylesListener.cpp:384
WP6StylesListener::_handleSubDocument
void _handleSubDocument(const WPXSubDocument *subDocument, WPXSubDocumentType subDocumentType, WPXTableList tableList, int nextTableIndice=0)
Definition: WP6StylesListener.cpp:345
WP6StylesListener::WP6StylesListener
WP6StylesListener(std::list< WPXPageSpan > &pageList, WPXTableList tableList)
Definition: WP6StylesListener.cpp:39
WPXNoteType
WPXNoteType
Definition: libwpd_internal.h:93
WP6StylesListener::pageMarginChange
void pageMarginChange(const unsigned char side, const unsigned short margin)
Definition: WP6StylesListener.cpp:120