WP6Listener.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  * Copyright (C) 2002 William Lachance (wrlach@gmail.com)
4  * Copyright (C) 2002 Marc Maurer (uwog@uwog.net)
5  * Copyright (C) 2006 Fridrich Strba (fridrich.strba@bluewin.ch)
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Library General Public
9  * License as published by the Free Software Foundation; either
10  * version 2 of the License, or (at your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Library General Public License for more details.
16  *
17  * You should have received a copy of the GNU Library General Public
18  * License along with this library; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
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 WP6LISTENER_H
29 #define WP6LISTENER_H
30 
31 #include "libwpd_internal.h"
32 #include <vector>
33 
34 class WPXString;
36 class WP6PrefixData;
38 class WP6SubDocument;
39 
41 
43 {
44 public:
45  WP6Listener();
46  virtual ~WP6Listener() {}
47 
48  virtual void startDocument() = 0;
49  virtual void startSubDocument() = 0;
50  virtual void setDate(const uint16_t type, const uint16_t year,
51  const uint8_t month, const uint8_t day,
52  const uint8_t hour, const uint8_t minute,
53  const uint8_t second, const uint8_t dayOfWeek,
54  const uint8_t timeZone, const uint8_t unused) = 0;
55  virtual void setExtendedInformation(const uint16_t type, const WPXString &data) = 0;
56  virtual void setAlignmentCharacter(const uint16_t character) = 0;
57  virtual void setLeaderCharacter(const uint16_t character, const uint8_t numSpaces) = 0;
58  virtual void defineTabStops(const bool isRelative, const std::vector<WPXTabStop> &tabStops,
59  const std::vector<bool> &usePreWP9LeaderMethods) = 0;
60  virtual void insertCharacter(uint32_t character) = 0;
61  virtual void insertTab(const uint8_t tabType, double tabPosition) = 0;
62  virtual void handleLineBreak() = 0;
63  virtual void insertEOL() = 0;
64  virtual void insertBreak(const uint8_t breakType) = 0;
65  virtual void lineSpacingChange(const double lineSpacing) = 0;
66  virtual void justificationChange(const uint8_t justification) = 0;
67  virtual void characterColorChange(const uint8_t red, const uint8_t green, const uint8_t blue) = 0;
68  virtual void characterShadingChange(const uint8_t shading) = 0;
69  virtual void highlightChange(const bool isOn, const RGBSColor color) = 0;
70  virtual void fontChange(const uint16_t matchedFontPointSize, const uint16_t fontPID, const WPXString &fontName) = 0;
71  virtual void attributeChange(const bool isOn, const uint8_t attribute) = 0;
72  virtual void spacingAfterParagraphChange(const double spacingRelative, const double spacingAbsolute) = 0;
73  virtual void pageMarginChange(const uint8_t side, const uint16_t margin) = 0;
74  virtual void pageFormChange(const uint16_t length, const uint16_t width, const WPXFormOrientation orientation) = 0;
75  virtual void pageNumberingChange(const WPXPageNumberPosition pageNumberPosition, const uint16_t pageNumberFontPointSize, const uint16_t pageNumberFontPID) = 0;
76  virtual void marginChange(const uint8_t side, const uint16_t margin) = 0;
77  virtual void paragraphMarginChange(const uint8_t side, const int16_t margin) = 0;
78  virtual void indentFirstLineChange(const int16_t offset) = 0;
79  virtual void columnChange(const WPXTextColumnType columnType, const uint8_t numColumns,
80  const std::vector<double> &columnWidth, const std::vector<bool> &isFixedWidth) = 0;
81  virtual void updateOutlineDefinition(const WP6OutlineLocation outlineLocation, const uint16_t outlineHash,
82  const uint8_t *numberingMethods, const uint8_t tabBehaviourFlag) = 0;
83  virtual void paragraphNumberOn(const uint16_t outlineHash, const uint8_t level, const uint8_t flag) = 0;
84  virtual void paragraphNumberOff() = 0;
85  virtual void displayNumberReferenceGroupOn(const uint8_t subGroup, const uint8_t level) = 0;
86  virtual void displayNumberReferenceGroupOff(const uint8_t subGroup) = 0;
87  virtual void styleGroupOn(const uint8_t subGroup) = 0;
88  virtual void styleGroupOff(const uint8_t subGroup) = 0;
89  virtual void globalOn(const uint8_t systemStyle) = 0;
90  virtual void globalOff() = 0;
91  virtual void noteOn(const uint16_t textPID) = 0;
92  virtual void noteOff(const WPXNoteType noteType) = 0;
93  virtual void headerFooterGroup(const uint8_t headerFooterType, const uint8_t occurenceBits, const uint16_t textPID) = 0;
94  virtual void suppressPageCharacteristics(const uint8_t suppressCode) = 0;
95  virtual void setPageNumber(const uint16_t pageNumber) = 0;
96  virtual void setPageNumberingType(const WPXNumberingType pageNumberingType) = 0;
97  virtual void endDocument() = 0;
98  virtual void endSubDocument() = 0;
99  virtual void defineTable(const uint8_t position, const uint16_t leftOffset) = 0;
100  virtual void addTableColumnDefinition(const uint32_t width, const uint32_t leftGutter, const uint32_t rightGutter,
101  const uint32_t attributes, const uint8_t alignment) = 0;
102  virtual void startTable() = 0;
103  virtual void insertRow(const uint16_t rowHeight, const bool isMinimumHeight, const bool isHeaderRow) = 0;
104  virtual void insertCell(const uint8_t colSpan, const uint8_t rowSpan, const uint8_t borderBits,
105  const RGBSColor *cellFgColor, const RGBSColor *cellBgColor,
106  const RGBSColor *cellBorderColor, const WPXVerticalAlignment cellVerticalAlignment,
107  const bool useCellAttributes, const uint32_t cellAttributes) = 0;
108  virtual void endTable() = 0;
109 
110  virtual void undoChange(const uint8_t undoType, const uint16_t undoLevel) = 0;
111  virtual void boxOn(const uint8_t anchoringType, const uint8_t generalPositioningFlags, const uint8_t horizontalPositioningFlags,
112  const int16_t horizontalOffset, const uint8_t leftColumn, const uint8_t rightColumn,
113  const uint8_t verticalPositioningFlags, const int16_t verticalOffset, const uint8_t widthFlags, const uint16_t width,
114  const uint8_t heightFlags, const uint16_t height, const uint8_t boxContentType, const uint16_t nativeWidth,
115  const uint16_t nativeHeight) = 0;
116  virtual void boxOff() = 0;
117  virtual void insertGraphicsData(const uint16_t packetId) = 0;
118  virtual void insertTextBox(const WP6SubDocument *subDocument) = 0;
119  virtual void commentAnnotation(const uint16_t textPID) = 0;
120 
121  void setPrefixData(WP6PrefixData *prefixData)
122  {
123  m_prefixData = prefixData;
124  }
125  const WP6PrefixDataPacket *getPrefixDataPacket(const int prefixID) const;
126  WPXString getFontNameForPID(const int prefixID) const;
127 
128 private:
129  WP6Listener(const WP6Listener &);
132 };
133 
134 #endif /* WP6LISTENER_H */
135 /* vim:set shiftwidth=4 softtabstop=4 noexpandtab: */

Generated for libwpd by doxygen 1.8.1.2