WP6Listener.h
Go to the documentation of this file.
00001 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
00002 /* libwpd
00003  * Version: MPL 2.0 / LGPLv2.1+
00004  *
00005  * This Source Code Form is subject to the terms of the Mozilla Public
00006  * License, v. 2.0. If a copy of the MPL was not distributed with this
00007  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
00008  *
00009  * Major Contributor(s):
00010  * Copyright (C) 2002 William Lachance (wrlach@gmail.com)
00011  * Copyright (C) 2002 Marc Maurer (uwog@uwog.net)
00012  * Copyright (C) 2006 Fridrich Strba (fridrich.strba@bluewin.ch)
00013  *
00014  * For minor contributions see the git repository.
00015  *
00016  * Alternatively, the contents of this file may be used under the terms
00017  * of the GNU Lesser General Public License Version 2.1 or later
00018  * (LGPLv2.1+), in which case the provisions of the LGPLv2.1+ are
00019  * applicable instead of those above.
00020  *
00021  * For further information visit http://libwpd.sourceforge.net
00022  */
00023 
00024 /* "This product is not manufactured, approved, or supported by
00025  * Corel Corporation or Corel Corporation Limited."
00026  */
00027 
00028 #ifndef WP6LISTENER_H
00029 #define WP6LISTENER_H
00030 
00031 #include <librevenge/librevenge.h>
00032 #include "libwpd_internal.h"
00033 #include <vector>
00034 
00035 class WP6DefaultInitialFontPacket;
00036 class WP6PrefixData;
00037 class WP6PrefixDataPacket;
00038 class WP6SubDocument;
00039 
00040 class WP6Listener
00041 {
00042 public:
00043         WP6Listener();
00044         virtual ~WP6Listener() {}
00045 
00046         virtual void startDocument() = 0;
00047         virtual void startSubDocument() = 0;
00048         virtual void setDate(const unsigned short type, const unsigned short year,
00049                              const unsigned char month, const unsigned char day,
00050                              const unsigned char hour, const unsigned char minute,
00051                              const unsigned char second, const unsigned char dayOfWeek,
00052                              const unsigned char timeZone, const unsigned char unused) = 0;
00053         virtual void setExtendedInformation(const unsigned short type, const librevenge::RVNGString &data) = 0;
00054         virtual void setAlignmentCharacter(const unsigned character) = 0;
00055         virtual void setLeaderCharacter(const unsigned character, const unsigned char numSpaces) = 0;
00056         virtual void defineTabStops(const bool isRelative, const std::vector<WPXTabStop> &tabStops,
00057                                     const std::vector<bool> &usePreWP9LeaderMethods) = 0;
00058         virtual void insertCharacter(unsigned character) = 0;
00059         virtual void insertTab(const unsigned char tabType, double tabPosition) = 0;
00060         virtual void handleLineBreak() = 0;
00061         virtual void insertEOL() = 0;
00062         virtual void insertBreak(const unsigned char breakType) = 0;
00063         virtual void lineSpacingChange(const double lineSpacing) = 0;
00064         virtual void justificationChange(const unsigned char justification) = 0;
00065         virtual void characterColorChange(const unsigned char red, const unsigned char green, const unsigned char blue) = 0;
00066         virtual void characterShadingChange(const unsigned char shading) = 0;
00067         virtual void highlightChange(const bool isOn, const RGBSColor &color) = 0;
00068         virtual void fontChange(const unsigned short matchedFontPointSize, const unsigned short fontPID, const librevenge::RVNGString &fontName) = 0;
00069         virtual void attributeChange(const bool isOn, const unsigned char attribute) = 0;
00070         virtual void spacingAfterParagraphChange(const double spacingRelative, const double spacingAbsolute) = 0;
00071         virtual void pageMarginChange(const unsigned char side, const unsigned short margin) = 0;
00072         virtual void pageFormChange(const unsigned short length, const unsigned short width, const WPXFormOrientation orientation) = 0;
00073         virtual void pageNumberingChange(const WPXPageNumberPosition pageNumberPosition, const unsigned short pageNumberFontPointSize, const unsigned short pageNumberFontPID) = 0;
00074         virtual void marginChange(const unsigned char side, const unsigned short margin) = 0;
00075         virtual void paragraphMarginChange(const unsigned char side, const signed short margin) = 0;
00076         virtual void indentFirstLineChange(const signed short offset) = 0;
00077         virtual void columnChange(const WPXTextColumnType columnType, const unsigned char numColumns,
00078                                   const std::vector<double> &columnWidth, const std::vector<bool> &isFixedWidth) = 0;
00079         virtual void updateOutlineDefinition(const unsigned short outlineHash, const unsigned char *numberingMethods, const unsigned char tabBehaviourFlag) = 0;
00080         virtual void paragraphNumberOn(const unsigned short outlineHash, const unsigned char level, const unsigned char flag) = 0;
00081         virtual void paragraphNumberOff() = 0;
00082         virtual void displayNumberReferenceGroupOn(const unsigned char subGroup, const unsigned char level) = 0;
00083         virtual void displayNumberReferenceGroupOff(const unsigned char subGroup) = 0;
00084         virtual void styleGroupOn(const unsigned char subGroup) = 0;
00085         virtual void styleGroupOff(const unsigned char subGroup) = 0;
00086         virtual void globalOn(const unsigned char systemStyle) = 0;
00087         virtual void globalOff() = 0;
00088         virtual void noteOn(const unsigned short textPID) = 0;
00089         virtual void noteOff(const WPXNoteType noteType) = 0;
00090         virtual void headerFooterGroup(const unsigned char headerFooterType, const unsigned char occurrenceBits, const unsigned short textPID) = 0;
00091         virtual void suppressPageCharacteristics(const unsigned char suppressCode) = 0;
00092         virtual void setPageNumber(const unsigned short pageNumber) = 0;
00093         virtual void setPageNumberingType(const WPXNumberingType pageNumberingType) = 0;
00094         virtual void endDocument() = 0;
00095         virtual void endSubDocument() = 0;
00096         virtual void defineTable(const unsigned char position, const unsigned short leftOffset) = 0;
00097         virtual void addTableColumnDefinition(const unsigned width, const unsigned leftGutter, const unsigned rightGutter,
00098                                               const unsigned attributes, const unsigned char alignment) = 0;
00099         virtual void startTable() = 0;
00100         virtual void insertRow(const unsigned short rowHeight, const bool isMinimumHeight, const bool isHeaderRow) = 0;
00101         virtual void insertCell(const unsigned char colSpan, const unsigned char rowSpan, const unsigned char borderBits,
00102                                 const RGBSColor *cellFgColor, const RGBSColor *cellBgColor,
00103                                 const RGBSColor *cellBorderColor, const WPXVerticalAlignment cellVerticalAlignment,
00104                                 const bool useCellAttributes, const unsigned cellAttributes) = 0;
00105         virtual void endTable() = 0;
00106 
00107         virtual void undoChange(const unsigned char undoType, const unsigned short undoLevel) = 0;
00108         virtual void boxOn(const unsigned char anchoringType, const unsigned char generalPositioningFlags, const unsigned char horizontalPositioningFlags,
00109                            const signed short horizontalOffset, const unsigned char leftColumn, const unsigned char rightColumn,
00110                            const unsigned char verticalPositioningFlags, const signed short verticalOffset, const unsigned char widthFlags, const unsigned short width,
00111                            const unsigned char heightFlags, const unsigned short height, const unsigned char boxContentType, const unsigned short nativeWidth,
00112                            const unsigned short nativeHeight) = 0;
00113         virtual void boxOff() = 0;
00114         virtual void insertGraphicsData(const unsigned short packetId) = 0;
00115         virtual void insertTextBox(const WP6SubDocument *subDocument) = 0;
00116         virtual void commentAnnotation(const unsigned short textPID) = 0;
00117 
00118         void setPrefixData(WP6PrefixData *prefixData)
00119         {
00120                 m_prefixData = prefixData;
00121         }
00122         const WP6PrefixDataPacket *getPrefixDataPacket(const int prefixID) const;
00123         librevenge::RVNGString getFontNameForPID(const int prefixID) const;
00124 
00125 private:
00126         WP6Listener(const WP6Listener &);
00127         WP6Listener &operator=(const WP6Listener &);
00128         WP6PrefixData *m_prefixData;
00129 };
00130 
00131 #endif /* WP6LISTENER_H */
00132 /* vim:set shiftwidth=4 softtabstop=4 noexpandtab: */