WP3StylesListener.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) 2004 Marc Maurer (uwog@uwog.net)
11  * Copyright (C) 2006 Fridrich Strba (fridrich.strba@bluewin.ch)
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 #ifndef WP3STYLESLISTENER_H
28 #define WP3STYLESLISTENER_H
29 
30 #include "WP3Listener.h"
31 #include "WPXStylesListener.h"
32 #include <vector>
33 #include <set>
34 #include "WPXPageSpan.h"
35 #include "WPXTable.h"
36 
38 {
39 public:
40  WP3StylesListener(std::list<WPXPageSpan> &pageList, WPXTableList tableList, std::vector<WP3SubDocument *> &subDocuments);
41 
42  void startDocument() override {}
43  void startSubDocument() override {}
44  void insertCharacter(unsigned /* character */) override
45  {
46  if (!isUndoOn()) m_currentPageHasContent = true;
47  }
48  void insertTab() override
49  {
50  if (!isUndoOn()) m_currentPageHasContent = true;
51  }
52  void insertTab(unsigned char /* tabType */, double /* tabPosition */) override
53  {
54  if (!isUndoOn()) m_currentPageHasContent = true;
55  }
56  void insertEOL() override
57  {
58  if (!isUndoOn()) m_currentPageHasContent = true;
59  }
60  void insertBreak(unsigned char breakType) override;
61  void attributeChange(bool /* isOn */, unsigned char /* attribute */) override {}
62  void lineSpacingChange(double /* lineSpacing */) override {}
63  void justificationChange(unsigned char /* justification */) override {}
64  void pageMarginChange(unsigned char side, unsigned short margin) override;
65  void pageFormChange(unsigned short length, unsigned short width, WPXFormOrientation orientation) override;
66  void marginChange(unsigned char side, unsigned short margin) override;
67  void indentFirstLineChange(double /* offset */) override {}
68  void setTabs(bool /* isRelative */, const std::vector<WPXTabStop> /* tabStops */) override {}
69  void columnChange(WPXTextColumnType /* columnType */, unsigned char /* numColumns */,
70  const std::vector<double> & /* columnWidth */, const std::vector<bool> & /* isFixedWidth */) override {}
71  void endDocument() override;
72  void endSubDocument() override;
73 
74  void defineTable(unsigned char /* position */, unsigned short /* leftOffset */) override {}
75  void addTableColumnDefinition(unsigned /* width */, unsigned /* leftGutter */, unsigned /* rightGutter */,
76  unsigned /* attributes */, unsigned char /* alignment */) override {}
77  void startTable() override;
78  void closeCell() override {}
79  void closeRow() override {}
80  void setTableCellSpan(unsigned short /* colSpan */, unsigned short /* rowSpan */) override {}
81  void setTableCellFillColor(const RGBSColor * /* cellFillColor */) override {}
82  void endTable() override {}
83  void undoChange(unsigned char undoType, unsigned short undoLevel) override;
84  void setTextColor(const RGBSColor * /* fontColor */) override {}
85  void setTextFont(const librevenge::RVNGString & /* fontName */) override {}
86  void setFontSize(unsigned short /* fontSize */) override {}
87  void insertPageNumber(const librevenge::RVNGString & /* pageNumber */) override {}
88  void insertNoteReference(const librevenge::RVNGString & /* noteReference */) override {}
89  void insertNote(WPXNoteType /* noteType */, const WP3SubDocument * /* subDocument */) override
90  {
91  if (!isUndoOn()) m_currentPageHasContent = true;
92  }
93  void headerFooterGroup(unsigned char headerFooterType, unsigned char occurrenceBits, WP3SubDocument *subDocument) override;
94  void suppressPage(unsigned short suppressCode) override;
95  void backTab() override
96  {
97  if (!isUndoOn()) m_currentPageHasContent = true;
98  }
99  void leftIndent() override {}
100  void leftIndent(double /* offset */) override {}
101  void leftRightIndent() override {}
102  void leftRightIndent(double /* offset */) override {}
103  void insertPicture(double /* height */, double /* width */, double /* verticalOffset */, double /* horizontalOffset */, unsigned char /* leftColumn */, unsigned char /* rightColumn */,
104  unsigned short /* figureFlags */, const librevenge::RVNGBinaryData & /* binaryData */) override {}
105  void insertTextBox(double /* height */, double /* width */, double /* verticalOffset */, double /* horizontalOffset */, unsigned char /* leftColumn */, unsigned char /* rightColumn */,
106  unsigned short /* figureFlags */, const WP3SubDocument * /* subDocument */, const WP3SubDocument * /* caption */) override {}
107  void insertWP51Table(double /* height */, double /* width */, double /* verticalOffset */, double /* horizontalOffset */, unsigned char /* leftColumn */, unsigned char /* rightColumn */,
108  unsigned short /* figureFlags */, const WP3SubDocument * /* subDocument */, const WP3SubDocument * /* caption */) override {}
109 
110 protected:
111  void _handleSubDocument(const WPXSubDocument *subDocument, WPXSubDocumentType subDocumentType, WPXTableList tableList, int nextTableIndice = 0);
112 
113 private:
117 
123  std::vector<WP3SubDocument *> &m_subDocuments;
124  std::list<WPXPageSpan>::iterator m_pageListHardPageMark;
125 };
126 
127 #endif /* WP3STYLESLISTENER_H */
128 /* vim:set shiftwidth=4 softtabstop=4 noexpandtab: */
WP3StylesListener::undoChange
void undoChange(unsigned char undoType, unsigned short undoLevel) override
Definition: WP3StylesListener.cpp:102
WPXPageSpan.h
WP3StylesListener::lineSpacingChange
void lineSpacingChange(double) override
Definition: WP3StylesListener.h:62
WP3StylesListener::defineTable
void defineTable(unsigned char, unsigned short) override
Definition: WP3StylesListener.h:74
WP3_PAGE_GROUP_SUPPRESS_HEADER_B
#define WP3_PAGE_GROUP_SUPPRESS_HEADER_B
Definition: WP3FileStructure.h:103
WPXPageSpan::setMarginBottom
void setMarginBottom(const double marginBottom)
Definition: WPXPageSpan.h:188
FOOTER
Definition: libwpd_internal.h:94
WPXPageSpan::setPageSpan
void setPageSpan(const int pageSpan)
Definition: WPXPageSpan.h:213
WP3StylesListener::setTextColor
void setTextColor(const RGBSColor *) override
Definition: WP3StylesListener.h:84
NEVER
Definition: libwpd_internal.h:96
WP3StylesListener::leftIndent
void leftIndent(double) override
Definition: WP3StylesListener.h:100
WP3StylesListener::insertCharacter
void insertCharacter(unsigned) override
Definition: WP3StylesListener.h:44
WP3StylesListener::m_tempMarginLeft
double m_tempMarginLeft
Definition: WP3StylesListener.h:120
WP3StylesListener::insertTab
void insertTab(unsigned char, double) override
Definition: WP3StylesListener.h:52
WPXListener::setUndoOn
void setUndoOn(bool isOn)
Definition: WPXListener.h:44
WP3_PAGE_GROUP_SUPPRESS_FOOTER_A
#define WP3_PAGE_GROUP_SUPPRESS_FOOTER_A
Definition: WP3FileStructure.h:104
WP3StylesListener::m_tempMarginRight
double m_tempMarginRight
Definition: WP3StylesListener.h:120
WPX_HEADER_A
#define WPX_HEADER_A
Definition: WPXFileStructure.h:42
WP3_PAGE_GROUP_SUPPRESS_FOOTER_B
#define WP3_PAGE_GROUP_SUPPRESS_FOOTER_B
Definition: WP3FileStructure.h:105
WP3StylesListener::setTabs
void setTabs(bool, const std::vector< WPXTabStop >) override
Definition: WP3StylesListener.h:68
WP3StylesListener::m_currentPageHasContent
bool m_currentPageHasContent
Definition: WP3StylesListener.h:121
WP3StylesListener::closeRow
void closeRow() override
Definition: WP3StylesListener.h:79
WP3StylesListener::insertTab
void insertTab() override
Definition: WP3StylesListener.h:48
WP3StylesListener::insertTextBox
void insertTextBox(double, double, double, double, unsigned char, unsigned char, unsigned short, const WP3SubDocument *, const WP3SubDocument *) override
Definition: WP3StylesListener.h:105
WPXFormOrientation
WPXFormOrientation
Definition: libwpd_internal.h:105
WP3StylesListener::m_currentTable
WPXTable * m_currentTable
Definition: WP3StylesListener.h:119
WP3StylesListener::setFontSize
void setFontSize(unsigned short) override
Definition: WP3StylesListener.h:86
WP3FileStructure.h
WPXTable.h
RGBSColor
Definition: libwpd_internal.h:166
WP3StylesListener::m_tableList
WPXTableList m_tableList
Definition: WP3StylesListener.h:118
WPX_RIGHT
#define WPX_RIGHT
Definition: libwpd_internal.h:161
WPX_FOOTER_A
#define WPX_FOOTER_A
Definition: WPXFileStructure.h:44
WPD_DEBUG_MSG
#define WPD_DEBUG_MSG(M)
Definition: libwpd_internal.h:50
WP3StylesListener::setTableCellSpan
void setTableCellSpan(unsigned short, unsigned short) override
Definition: WP3StylesListener.h:80
WPXSubDocument
Definition: WPXSubDocument.h:34
WPX_LEFT
#define WPX_LEFT
Definition: libwpd_internal.h:160
WPXTextColumnType
WPXTextColumnType
Definition: libwpd_internal.h:109
WP3StylesListener::m_pageListHardPageMark
std::list< WPXPageSpan >::iterator m_pageListHardPageMark
Definition: WP3StylesListener.h:124
WPXPageSpan::setMarginRight
void setMarginRight(const double marginRight)
Definition: WPXPageSpan.h:180
HEADER
Definition: libwpd_internal.h:94
WP3StylesListener.h
WP3StylesListener::endTable
void endTable() override
Definition: WP3StylesListener.h:82
WP3StylesListener::suppressPage
void suppressPage(unsigned short suppressCode) override
Definition: WP3StylesListener.cpp:232
WP3StylesListener::endDocument
void endDocument() override
Definition: WP3StylesListener.cpp:50
WPX_TOP
#define WPX_TOP
Definition: libwpd_internal.h:163
WP3StylesListener::insertBreak
void insertBreak(unsigned char breakType) override
Definition: WP3StylesListener.cpp:62
WP3StylesListener::marginChange
void marginChange(unsigned char side, unsigned short margin) override
Definition: WP3StylesListener.cpp:132
WP3StylesListener::WP3StylesListener
WP3StylesListener(std::list< WPXPageSpan > &pageList, WPXTableList tableList, std::vector< WP3SubDocument * > &subDocuments)
Definition: WP3StylesListener.cpp:34
WPX_SOFT_PAGE_BREAK
#define WPX_SOFT_PAGE_BREAK
Definition: libwpd_internal.h:156
WPX_PAGE_BREAK
#define WPX_PAGE_BREAK
Definition: libwpd_internal.h:155
WP3_HEADER_FOOTER_GROUP_FOOTER_B
#define WP3_HEADER_FOOTER_GROUP_FOOTER_B
Definition: WP3FileStructure.h:121
WP3Listener
Definition: WP3Listener.h:37
WP3StylesListener::insertNote
void insertNote(WPXNoteType, const WP3SubDocument *) override
Definition: WP3StylesListener.h:89
libwpd_internal.h
WPXNoteType
WPXNoteType
Definition: libwpd_internal.h:93
WP3StylesListener::insertNoteReference
void insertNoteReference(const librevenge::RVNGString &) override
Definition: WP3StylesListener.h:88
WP3StylesListener::headerFooterGroup
void headerFooterGroup(unsigned char headerFooterType, unsigned char occurrenceBits, WP3SubDocument *subDocument) override
Definition: WP3StylesListener.cpp:193
WP3_HEADER_FOOTER_GROUP_EVEN_BIT
#define WP3_HEADER_FOOTER_GROUP_EVEN_BIT
Definition: WP3FileStructure.h:125
WP3StylesListener::insertWP51Table
void insertWP51Table(double, double, double, double, unsigned char, unsigned char, unsigned short, const WP3SubDocument *, const WP3SubDocument *) override
Definition: WP3StylesListener.h:107
ALL
Definition: libwpd_internal.h:96
WPXPageSpan::getMarginRight
double getMarginRight() const
Definition: WPXPageSpan.h:109
WPXPageSpan::setMarginLeft
void setMarginLeft(const double marginLeft)
Definition: WPXPageSpan.h:176
WP3StylesListener::startSubDocument
void startSubDocument() override
Definition: WP3StylesListener.h:43
WPX_SUBDOCUMENT_HEADER_FOOTER
Definition: libwpd_internal.h:111
WP3StylesListener::pageFormChange
void pageFormChange(unsigned short length, unsigned short width, WPXFormOrientation orientation) override
Definition: WP3StylesListener.cpp:178
WP3StylesListener::startTable
void startTable() override
Definition: WP3StylesListener.cpp:248
WP3StylesListener::setTextFont
void setTextFont(const librevenge::RVNGString &) override
Definition: WP3StylesListener.h:85
WPX_NUM_WPUS_PER_INCH
#define WPX_NUM_WPUS_PER_INCH
Definition: WPXFileStructure.h:30
WP3StylesListener::addTableColumnDefinition
void addTableColumnDefinition(unsigned, unsigned, unsigned, unsigned, unsigned char) override
Definition: WP3StylesListener.h:75
WP3StylesListener::setTableCellFillColor
void setTableCellFillColor(const RGBSColor *) override
Definition: WP3StylesListener.h:81
WP3Listener.h
WPXPageSpan::setFormWidth
void setFormWidth(const double formWidth)
Definition: WPXPageSpan.h:168
WP3StylesListener::pageMarginChange
void pageMarginChange(unsigned char side, unsigned short margin) override
Definition: WP3StylesListener.cpp:113
WP3_HEADER_FOOTER_GROUP_HEADER_B
#define WP3_HEADER_FOOTER_GROUP_HEADER_B
Definition: WP3FileStructure.h:119
WP3StylesListener::indentFirstLineChange
void indentFirstLineChange(double) override
Definition: WP3StylesListener.h:67
WP3StylesListener::leftIndent
void leftIndent() override
Definition: WP3StylesListener.h:99
WP3SubDocument
Definition: WP3SubDocument.h:33
WPX_FOOTER_B
#define WPX_FOOTER_B
Definition: WPXFileStructure.h:45
EVEN
Definition: libwpd_internal.h:96
WPXTableList
Definition: WPXTable.h:79
WPXListener::isUndoOn
bool isUndoOn()
Definition: WPXListener.h:40
WPXTable
Definition: WPXTable.h:49
WP3StylesListener::columnChange
void columnChange(WPXTextColumnType, unsigned char, const std::vector< double > &, const std::vector< bool > &) override
Definition: WP3StylesListener.h:69
WPXTableList::add
void add(WPXTable *table)
Definition: WPXTable.h:91
WP3StylesListener::endSubDocument
void endSubDocument() override
Definition: WP3StylesListener.cpp:56
WPX_BOTTOM
#define WPX_BOTTOM
Definition: libwpd_internal.h:164
WPXPageSpan::setMarginTop
void setMarginTop(const double marginTop)
Definition: WPXPageSpan.h:184
WPXPageSpan
Definition: WPXPageSpan.h:77
WP3StylesListener::justificationChange
void justificationChange(unsigned char) override
Definition: WP3StylesListener.h:63
WP3StylesListener::insertPicture
void insertPicture(double, double, double, double, unsigned char, unsigned char, unsigned short, const librevenge::RVNGBinaryData &) override
Definition: WP3StylesListener.h:103
WP3_HEADER_FOOTER_GROUP_ODD_BIT
#define WP3_HEADER_FOOTER_GROUP_ODD_BIT
Definition: WP3FileStructure.h:126
WPXListener::m_pageList
std::list< WPXPageSpan > & m_pageList
Definition: WPXListener.h:49
WP3StylesListener::attributeChange
void attributeChange(bool, unsigned char) override
Definition: WP3StylesListener.h:61
ODD
Definition: libwpd_internal.h:96
WPXFileStructure.h
WPXPageSpan::setFormLength
void setFormLength(const double formLength)
Definition: WPXPageSpan.h:164
WPXStylesListener
Definition: WPXStylesListener.h:33
WP3StylesListener::leftRightIndent
void leftRightIndent() override
Definition: WP3StylesListener.h:101
WPXSubDocumentType
WPXSubDocumentType
Definition: libwpd_internal.h:111
WP3StylesListener::m_subDocuments
std::vector< WP3SubDocument * > & m_subDocuments
Definition: WP3StylesListener.h:123
WP3StylesListener
Definition: WP3StylesListener.h:37
WPX_HEADER_B
#define WPX_HEADER_B
Definition: WPXFileStructure.h:43
WP3SubDocument.h
WP3StylesListener::_handleSubDocument
void _handleSubDocument(const WPXSubDocument *subDocument, WPXSubDocumentType subDocumentType, WPXTableList tableList, int nextTableIndice=0)
Definition: WP3StylesListener.cpp:258
WP3StylesListener::insertEOL
void insertEOL() override
Definition: WP3StylesListener.h:56
WP3StylesListener::leftRightIndent
void leftRightIndent(double) override
Definition: WP3StylesListener.h:102
WP3_PAGE_GROUP_SUPPRESS_HEADER_A
#define WP3_PAGE_GROUP_SUPPRESS_HEADER_A
Definition: WP3FileStructure.h:102
WPXStylesListener.h
WPXHeaderFooterOccurrence
WPXHeaderFooterOccurrence
Definition: libwpd_internal.h:96
WP3StylesListener::backTab
void backTab() override
Definition: WP3StylesListener.h:95
WP3StylesListener::m_isSubDocument
bool m_isSubDocument
Definition: WP3StylesListener.h:122
WP3StylesListener::m_currentPage
WPXPageSpan m_currentPage
Definition: WP3StylesListener.h:116
WPXPageSpan::getMarginLeft
double getMarginLeft() const
Definition: WPXPageSpan.h:105
WP3StylesListener::startDocument
void startDocument() override
Definition: WP3StylesListener.h:42
WP3StylesListener::closeCell
void closeCell() override
Definition: WP3StylesListener.h:78
WP3StylesListener::operator=
WP3StylesListener & operator=(const WP3StylesListener &)
WPXPageSpan::setHeaderFooter
void setHeaderFooter(const WPXHeaderFooterType type, const unsigned char headerFooterType, const WPXHeaderFooterOccurrence occurrence, const WPXSubDocument *subDocument, WPXTableList tableList)
Definition: WPXPageSpan.cpp:137
WP3StylesListener::insertPageNumber
void insertPageNumber(const librevenge::RVNGString &) override
Definition: WP3StylesListener.h:87
WPXPageSpan::setFormOrientation
void setFormOrientation(const WPXFormOrientation formOrientation)
Definition: WPXPageSpan.h:172
WPXHeaderFooterType
WPXHeaderFooterType
Definition: libwpd_internal.h:94
WPXPageSpan::setHeadFooterSuppression
void setHeadFooterSuppression(const unsigned char headerFooterType, const bool suppress)
Definition: WPXPageSpan.h:160

Generated for libwpd by doxygen 1.8.16