- Main Page
- Namespaces
- Classes
- Files

- File List
- File Members

WP5StylesListener.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) 2004 Marc Maurer (uwog@uwog.net)
12 * Copyright (C) 2006-2007 Fridrich Strba (fridrich.strba@bluewin.ch)
13 *
14 * For minor contributions see the git repository.
15 *
16 * Alternatively, the contents of this file may be used under the terms
17 * of the GNU Lesser General Public License Version 2.1 or later
18 * (LGPLv2.1+), in which case the provisions of the LGPLv2.1+ are
19 * applicable instead of those above.
20 *
21 * For further information visit http://libwpd.sourceforge.net
22 */
23
24 /* "This product is not manufactured, approved, or supported by
25 * Corel Corporation or Corel Corporation Limited."
26 */
27
28 #ifndef WP5STYLESLISTENER_H
29 #define WP5STYLESLISTENER_H
30
31 #include "WP5Listener.h"
32 #include "WPXStylesListener.h"
33 #include <vector>
34 #include <list>
35 #include "WPXPageSpan.h"
36 #include "WPXTable.h"
37 #include "WP5SubDocument.h"
38
39 class WP5StylesListener : public WP5Listener, protected WPXStylesListener
40 {
41 public:
42 WP5StylesListener(std::list<WPXPageSpan> &pageList, WPXTableList tableList, std::vector<WP5SubDocument *> &subDocuments);
43
44 void startDocument() {}
45 void startSubDocument() {}
46 void setFont(const librevenge::RVNGString & /* fontName */, double /* fontSize */) {}
47 void setTabs(const std::vector<WPXTabStop> & /* tabStops */, unsigned short /* tabOffset */) {}
48 void insertCharacter(unsigned /* character */)
49 {
50 /*if (!isUndoOn())*/ m_currentPageHasContent = true;
51 }
52 void insertTab(unsigned char /* tabType */, double /* tabPosition */)
53 {
54 /*if (!isUndoOn())*/ m_currentPageHasContent = true;
55 }
56 virtual void insertIndent(unsigned char /* indentType */, double /* indentPosition */)
57 {
58 /*if (!isUndoOn())*/ m_currentPageHasContent = true;
59 }
60 void characterColorChange(unsigned char /* red */, unsigned char /* green */, unsigned char /* blue */) {}
61 void insertEOL()
62 {
63 /*if (!isUndoOn())*/ m_currentPageHasContent = true;
64 }
65 void insertBreak(unsigned char breakType);
66 void attributeChange(bool /* isOn */, unsigned char /* attribute */) {}
67 void lineSpacingChange(double /* lineSpacing */) {}
68 void justificationChange(unsigned char /* justification */) {}
69 void pageMarginChange(unsigned char side, unsigned short margin);
70 void pageFormChange(unsigned short length, unsigned short width, WPXFormOrientation orientation);
71 void marginChange(unsigned char side, unsigned short margin);
72 void endDocument();
73 void endSubDocument();
74
75 void defineTable(unsigned char /* position */, unsigned short /* leftOffset */) {}
76 void addTableColumnDefinition(unsigned /* width */, unsigned /* leftGutter */, unsigned /* rightGutter */,
77 unsigned /* attributes */, unsigned char /* alignment */) {}
78 void startTable();
79 void insertRow(unsigned short rowHeight, bool isMinimumHeight, bool isHeaderRow);
80 void insertCell(unsigned char colSpan, unsigned char rowSpan, unsigned char borderBits,
81 const RGBSColor *cellFgColor, const RGBSColor *cellBgColor,
82 const RGBSColor *cellBorderColor, WPXVerticalAlignment cellVerticalAlignment,
83 bool useCellAttributes, unsigned cellAttributes);
84 void endTable() {}
85
86 void insertNoteReference(const librevenge::RVNGString & /* noteReference */) {}
87 void insertNote(WPXNoteType /* noteType */, const WP5SubDocument * /* subDocument */) {}
88 void headerFooterGroup(unsigned char headerFooterType, unsigned char occurrenceBits, WP5SubDocument *subDocument);
89 void suppressPageCharacteristics(unsigned char suppressCode);
90
91 void boxOn(unsigned char /* positionAndType */, unsigned char /* alignment */, unsigned short /* width */, unsigned short /* height */, unsigned short /* x */, unsigned short /* y */) {}
92 virtual void boxOff() {}
93 virtual void insertGraphicsData(const librevenge::RVNGBinaryData * /* data */) {}
94
95 protected:
96 void _handleSubDocument(const WPXSubDocument *subDocument, WPXSubDocumentType subDocumentType, WPXTableList tableList, int nextTableIndice = 0);
97
98 private:
99 WP5StylesListener(const WP5StylesListener &);
100 WP5StylesListener &operator=(const WP5StylesListener &);
101 WPXPageSpan m_currentPage, m_nextPage;
102
103 WPXTableList m_tableList;
104 WPXTable *m_currentTable;
105 double m_tempMarginLeft, m_tempMarginRight;
106 bool m_currentPageHasContent;
107 bool m_isSubDocument;
108 std::vector<WP5SubDocument *> &m_subDocuments;
109 std::list<WPXPageSpan>::iterator m_pageListHardPageMark;
110 };
111
112 #endif /* WP5STYLESLISTENER_H */
113 /* vim:set shiftwidth=4 softtabstop=4 noexpandtab: */
WP5StylesListener::pageFormChange
void pageFormChange(unsigned short length, unsigned short width, WPXFormOrientation orientation)
Definition: WP5StylesListener.cpp:136
WP5SubDocument
Definition: WP5SubDocument.h:33
WP5StylesListener::startTable
void startTable()
Definition: WP5StylesListener.cpp:263
WP5StylesListener::startSubDocument
void startSubDocument()
Definition: WP5StylesListener.h:45
WPXStylesListener.h
WP5StylesListener::insertNoteReference
void insertNoteReference(const librevenge::RVNGString &)
Definition: WP5StylesListener.h:86
WP5StylesListener::insertBreak
void insertBreak(unsigned char breakType)
Definition: WP5StylesListener.cpp:61
WP5SubDocument.h
WP5Listener
Definition: WP5Listener.h:39
WP5StylesListener::insertIndent
virtual void insertIndent(unsigned char, double)
Definition: WP5StylesListener.h:56
WPXTable
Definition: WPXTable.h:51
WP5StylesListener::m_currentTable
WPXTable * m_currentTable
Definition: WP5StylesListener.h:104
WP5StylesListener::insertNote
void insertNote(WPXNoteType, const WP5SubDocument *)
Definition: WP5StylesListener.h:87
WP5StylesListener::m_nextPage
WPXPageSpan m_nextPage
Definition: WP5StylesListener.h:101
WP5StylesListener::pageMarginChange
void pageMarginChange(unsigned char side, unsigned short margin)
Definition: WP5StylesListener.cpp:117
WP5StylesListener::_handleSubDocument
void _handleSubDocument(const WPXSubDocument *subDocument, WPXSubDocumentType subDocumentType, WPXTableList tableList, int nextTableIndice=0)
Definition: WP5StylesListener.cpp:298
WP5StylesListener::insertRow
void insertRow(unsigned short rowHeight, bool isMinimumHeight, bool isHeaderRow)
Definition: WP5StylesListener.cpp:273
WPXTable.h
WP5StylesListener::m_isSubDocument
bool m_isSubDocument
Definition: WP5StylesListener.h:107
WPXPageSpan.h
WP5StylesListener::startDocument
void startDocument()
Definition: WP5StylesListener.h:44
WP5StylesListener::operator=
WP5StylesListener & operator=(const WP5StylesListener &)
WP5StylesListener::justificationChange
void justificationChange(unsigned char)
Definition: WP5StylesListener.h:68
WP5StylesListener::m_subDocuments
std::vector< WP5SubDocument * > & m_subDocuments
Definition: WP5StylesListener.h:108
WP5StylesListener::lineSpacingChange
void lineSpacingChange(double)
Definition: WP5StylesListener.h:67
WP5StylesListener::m_pageListHardPageMark
std::list< WPXPageSpan >::iterator m_pageListHardPageMark
Definition: WP5StylesListener.h:109
WP5StylesListener::insertEOL
void insertEOL()
Definition: WP5StylesListener.h:61
WPXSubDocumentType
WPXSubDocumentType
Definition: libwpd_internal.h:111
WP5StylesListener::m_tableList
WPXTableList m_tableList
Definition: WP5StylesListener.h:103
WP5StylesListener::endDocument
void endDocument()
Definition: WP5StylesListener.cpp:51
WP5StylesListener::characterColorChange
void characterColorChange(unsigned char, unsigned char, unsigned char)
Definition: WP5StylesListener.h:60
_RGBSColor
Definition: libwpd_internal.h:167
WP5StylesListener::defineTable
void defineTable(unsigned char, unsigned short)
Definition: WP5StylesListener.h:75
WPXTableList
Definition: WPXTable.h:81
WP5Listener.h
WP5StylesListener::insertGraphicsData
virtual void insertGraphicsData(const librevenge::RVNGBinaryData *)
Definition: WP5StylesListener.h:93
WP5StylesListener::setFont
void setFont(const librevenge::RVNGString &, double)
Definition: WP5StylesListener.h:46
WP5StylesListener::suppressPageCharacteristics
void suppressPageCharacteristics(unsigned char suppressCode)
Definition: WP5StylesListener.cpp:247
WP5StylesListener::setTabs
void setTabs(const std::vector< WPXTabStop > &, unsigned short)
Definition: WP5StylesListener.h:47
WP5StylesListener::boxOn
void boxOn(unsigned char, unsigned char, unsigned short, unsigned short, unsigned short, unsigned short)
Definition: WP5StylesListener.h:91
WPXFormOrientation
WPXFormOrientation
Definition: libwpd_internal.h:105
WP5StylesListener::headerFooterGroup
void headerFooterGroup(unsigned char headerFooterType, unsigned char occurrenceBits, WP5SubDocument *subDocument)
Definition: WP5StylesListener.cpp:199
WP5StylesListener::m_currentPage
WPXPageSpan m_currentPage
Definition: WP5StylesListener.h:101
WPXSubDocument
Definition: WPXSubDocument.h:34
WP5StylesListener::attributeChange
void attributeChange(bool, unsigned char)
Definition: WP5StylesListener.h:66
WP5StylesListener::addTableColumnDefinition
void addTableColumnDefinition(unsigned, unsigned, unsigned, unsigned, unsigned char)
Definition: WP5StylesListener.h:76
WPXVerticalAlignment
WPXVerticalAlignment
Definition: libwpd_internal.h:107
WP5StylesListener::boxOff
virtual void boxOff()
Definition: WP5StylesListener.h:92
WP5StylesListener::WP5StylesListener
WP5StylesListener(std::list< WPXPageSpan > &pageList, WPXTableList tableList, std::vector< WP5SubDocument * > &subDocuments)
Definition: WP5StylesListener.cpp:35
WP5StylesListener::marginChange
void marginChange(unsigned char side, unsigned short margin)
Definition: WP5StylesListener.cpp:152
WPXPageSpan
Definition: WPXPageSpan.h:77
WP5StylesListener::insertCell
void insertCell(unsigned char colSpan, unsigned char rowSpan, unsigned char borderBits, const RGBSColor *cellFgColor, const RGBSColor *cellBgColor, const RGBSColor *cellBorderColor, WPXVerticalAlignment cellVerticalAlignment, bool useCellAttributes, unsigned cellAttributes)
Definition: WP5StylesListener.cpp:284
WP5StylesListener::endSubDocument
void endSubDocument()
Definition: WP5StylesListener.cpp:56
WP5StylesListener::insertTab
void insertTab(unsigned char, double)
Definition: WP5StylesListener.h:52
WP5StylesListener::m_currentPageHasContent
bool m_currentPageHasContent
Definition: WP5StylesListener.h:106
WP5StylesListener::m_tempMarginRight
double m_tempMarginRight
Definition: WP5StylesListener.h:105
WPXStylesListener
Definition: WPXStylesListener.h:33
WP5StylesListener
Definition: WP5StylesListener.h:39
WP5StylesListener::endTable
void endTable()
Definition: WP5StylesListener.h:84
WP5StylesListener::m_tempMarginLeft
double m_tempMarginLeft
Definition: WP5StylesListener.h:105
WPXNoteType
WPXNoteType
Definition: libwpd_internal.h:93
WP5StylesListener::insertCharacter
void insertCharacter(unsigned)
Definition: WP5StylesListener.h:48