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