00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
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
00132