Go to the documentation of this file.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 WP5LISTENER_H
00029 #define WP5LISTENER_H
00030
00031 #include <vector>
00032 #include <librevenge/librevenge.h>
00033 #include "libwpd_internal.h"
00034
00035 class WP5SubDocument;
00036 class WP5PrefixData;
00037 class WP5GeneralPacketData;
00038
00039 class WP5Listener
00040 {
00041 public:
00042 WP5Listener();
00043 virtual ~WP5Listener() {}
00044
00045 virtual void startDocument() = 0;
00046 virtual void startSubDocument() = 0;
00047 virtual void setFont(const librevenge::RVNGString &fontName, double fontSize) = 0;
00048 virtual void setTabs(const std::vector<WPXTabStop> &tabStops, unsigned short tabOffset) = 0;
00049 virtual void insertCharacter(unsigned character) = 0;
00050 virtual void insertTab(unsigned char tabType, double tabPosition) = 0;
00051 virtual void insertIndent(unsigned char indentType, double indentPosition) = 0;
00052 virtual void insertEOL() = 0;
00053 virtual void insertBreak(unsigned char breakType) = 0;
00054 virtual void lineSpacingChange(double lineSpacing) = 0;
00055 virtual void justificationChange(unsigned char justification) = 0;
00056 virtual void characterColorChange(unsigned char red, unsigned char green, unsigned char blue) = 0;
00057 virtual void attributeChange(bool isOn, unsigned char attribute) = 0;
00058 virtual void pageMarginChange(unsigned char side, unsigned short margin) = 0;
00059 virtual void pageFormChange(unsigned short length, unsigned short width, WPXFormOrientation orientation) = 0;
00060 virtual void marginChange(unsigned char side, unsigned short margin) = 0;
00061 virtual void endDocument() = 0;
00062 virtual void endSubDocument() = 0;
00063
00064 virtual void defineTable(unsigned char position, unsigned short leftOffset) = 0;
00065 virtual void addTableColumnDefinition(unsigned width, unsigned leftGutter, unsigned rightGutter,
00066 unsigned attributes, unsigned char alignment) = 0;
00067 virtual void startTable() = 0;
00068 virtual void insertRow(unsigned short rowHeight, bool isMinimumHeight, bool isHeaderRow) = 0;
00069 virtual void insertCell(unsigned char colSpan, unsigned char rowSpan, unsigned char borderBits,
00070 const RGBSColor *cellFgColor, const RGBSColor *cellBgColor,
00071 const RGBSColor *cellBorderColor, WPXVerticalAlignment cellVerticalAlignment,
00072 bool useCellAttributes, unsigned cellAttributes) = 0;
00073 virtual void endTable() = 0;
00074
00075 virtual void insertNoteReference(const librevenge::RVNGString ¬eReference) = 0;
00076 virtual void insertNote(WPXNoteType noteType, const WP5SubDocument *subDocument) = 0;
00077 virtual void headerFooterGroup(unsigned char headerFooterType, unsigned char occurrenceBits, WP5SubDocument *subDocument) = 0;
00078 virtual void suppressPageCharacteristics(unsigned char suppressCode) = 0;
00079
00080 virtual void boxOn(unsigned char positionAndType, unsigned char alignment, unsigned short width, unsigned short height, unsigned short x, unsigned short y) = 0;
00081 virtual void boxOff() = 0;
00082 virtual void insertGraphicsData(const librevenge::RVNGBinaryData *data) = 0;
00083
00084 void setPrefixData(WP5PrefixData *prefixData)
00085 {
00086 m_prefixData = prefixData;
00087 }
00088 const WP5GeneralPacketData *getGeneralPacketData(const int type) const;
00089
00090 private:
00091 WP5Listener(const WP5Listener &);
00092 WP5Listener &operator=(const WP5Listener &);
00093 WP5PrefixData *m_prefixData;
00094 };
00095
00096 #endif
00097