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 WP5STYLESLISTENER_H
00029 #define WP5STYLESLISTENER_H
00030
00031 #include "WP5Listener.h"
00032 #include "WPXStylesListener.h"
00033 #include <vector>
00034 #include <list>
00035 #include "WPXPageSpan.h"
00036 #include "WPXTable.h"
00037 #include "WP5SubDocument.h"
00038
00039 class WP5StylesListener : public WP5Listener, protected WPXStylesListener
00040 {
00041 public:
00042 WP5StylesListener(std::list<WPXPageSpan> &pageList, WPXTableList tableList, std::vector<WP5SubDocument*> &subDocuments);
00043
00044 void startDocument() {}
00045 void setFont(const WPXString& , const float ) {}
00046 void setTabs(const std::vector<WPXTabStop>& , const uint16_t ) {}
00047 void insertCharacter(const uint16_t ) { m_currentPageHasContent = true; }
00048 void insertTab(const uint8_t , const float ) { m_currentPageHasContent = true; }
00049 virtual void insertIndent(const uint8_t , const float ) { m_currentPageHasContent = true; }
00050 void characterColorChange(const uint8_t , const uint8_t , const uint8_t ) {};
00051 void insertEOL() { m_currentPageHasContent = true; }
00052 void insertBreak(const uint8_t breakType);
00053 void attributeChange(const bool , const uint8_t ) {}
00054 void lineSpacingChange(const float ) {}
00055 void justificationChange(const uint8_t ) {}
00056 void pageMarginChange(const uint8_t side, const uint16_t margin);
00057 void pageFormChange(const uint16_t length, const uint16_t width, const WPXFormOrientation orientation);
00058 void marginChange(const uint8_t side, const uint16_t margin);
00059 void endDocument();
00060
00061 void defineTable(const uint8_t , const uint16_t ) {}
00062 void addTableColumnDefinition(const uint32_t , const uint32_t , const uint32_t ,
00063 const uint32_t , const uint8_t ) {}
00064 void startTable();
00065 void insertRow(const uint16_t rowHeight, const bool isMinimumHeight, const bool isHeaderRow);
00066 void insertCell(const uint8_t colSpan, const uint8_t rowSpan, const uint8_t borderBits,
00067 const RGBSColor * cellFgColor, const RGBSColor * cellBgColor,
00068 const RGBSColor * cellBorderColor, const WPXVerticalAlignment cellVerticalAlignment,
00069 const bool useCellAttributes, const uint32_t cellAttributes);
00070 void endTable() {}
00071
00072 void insertNoteReference(const WPXString& ) {};
00073 void insertNote(const WPXNoteType , const WP5SubDocument * ) {};
00074 void headerFooterGroup(const uint8_t headerFooterType, const uint8_t occurenceBits, WP5SubDocument *subDocument);
00075 void suppressPageCharacteristics(const uint8_t suppressCode);
00076
00077 protected:
00078 void _handleSubDocument(const WPXSubDocument *subDocument, const bool isHeaderFooter, WPXTableList tableList, int nextTableIndice = 0);
00079
00080 private:
00081 WP5StylesListener(const WP5StylesListener&);
00082 WP5StylesListener& operator=(const WP5StylesListener&);
00083 WPXPageSpan m_currentPage, m_nextPage;
00084
00085 WPXTableList m_tableList;
00086 WPXTable *m_currentTable;
00087 float m_tempMarginLeft, m_tempMarginRight;
00088 bool m_currentPageHasContent;
00089 bool m_isSubDocument;
00090 std::vector<WP5SubDocument *> &m_subDocuments;
00091 std::list<WPXPageSpan>::iterator m_pageListHardPageMark;
00092 };
00093
00094 #endif