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 #ifndef WP1STYLESLISTENER_H
00028 #define WP1STYLESLISTENER_H
00029
00030 #include "WP1Listener.h"
00031 #include "WP1SubDocument.h"
00032 #include "WPXStylesListener.h"
00033 #include <vector>
00034 #include "WPXPageSpan.h"
00035 #include "WPXTable.h"
00036
00037 class WP1StylesListener : public WP1Listener, protected WPXStylesListener
00038 {
00039 public:
00040 WP1StylesListener(std::list<WPXPageSpan> &pageList, std::vector<WP1SubDocument *> &subDocuments);
00041 ~WP1StylesListener() {}
00042
00043 void startDocument() {}
00044 void startSubDocument() {}
00045 void insertCharacter(uint16_t ) { if (!isUndoOn()) m_currentPageHasContent = true; }
00046 void insertExtendedCharacter(uint8_t ) { if (!isUndoOn()) m_currentPageHasContent = true; }
00047 void insertTab() { if (!isUndoOn()) m_currentPageHasContent = true; }
00048 void insertEOL() { if (!isUndoOn()) m_currentPageHasContent = true; }
00049 void insertBreak(uint8_t breakType);
00050 void insertNote(WPXNoteType , WP1SubDocument * ) {}
00051 void attributeChange(bool , uint8_t ) {}
00052 void fontPointSize(uint8_t ) {}
00053 void fontId(uint16_t ) {}
00054 void marginReset(uint16_t leftMargin, uint16_t rightMargin);
00055 void topMarginSet(uint16_t topMargin);
00056 void bottomMarginSet(uint16_t bottomMargin);
00057 void leftIndent(uint16_t ) { if (!isUndoOn()) m_currentPageHasContent = true; }
00058 void leftRightIndent(uint16_t ) { if (!isUndoOn()) m_currentPageHasContent = true; }
00059 void leftMarginRelease(uint16_t ) {}
00060 void setTabs(const std::vector<WPXTabStop>& ) {}
00061 void headerFooterGroup(uint8_t headerFooterDefinition, WP1SubDocument *subDocument);
00062 void suppressPageCharacteristics(uint8_t suppressCode);
00063 void justificationChange(uint8_t ) {}
00064 void lineSpacingChange(uint8_t ) {}
00065 void flushRightOn() {}
00066 void flushRightOff() {}
00067 void centerOn() {}
00068 void centerOff() {}
00069 void endDocument();
00070 void endSubDocument();
00071 void insertPicture(uint16_t width, uint16_t height, const WPXBinaryData &binaryData) {}
00072
00073 protected:
00074 void _handleSubDocument(const WPXSubDocument *subDocument, WPXSubDocumentType subDocumentType, WPXTableList tableList, int nextTableIndice = 0);
00075
00076 private:
00077 WPXPageSpan m_currentPage, m_nextPage;
00078 std::vector<WP1SubDocument *> &m_subDocuments;
00079 float m_tempMarginLeft, m_tempMarginRight;
00080 bool m_currentPageHasContent;
00081 bool m_isSubDocument;
00082 std::list<WPXPageSpan>::iterator m_pageListHardPageMark;
00083 };
00084
00085 #endif