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 #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 insertCharacter(const uint16_t ) { if (!isUndoOn()) m_currentPageHasContent = true; }
00045 void insertExtendedCharacter(const uint8_t ) { if (!isUndoOn()) m_currentPageHasContent = true; }
00046 void insertTab() { if (!isUndoOn()) m_currentPageHasContent = true; }
00047 void insertEOL() { if (!isUndoOn()) m_currentPageHasContent = true; }
00048 void insertBreak(const uint8_t breakType);
00049 void insertNote(const WPXNoteType , WP1SubDocument * ) {}
00050 void attributeChange(const bool , const uint8_t ) {}
00051 void fontPointSize(const uint8_t ) {}
00052 void fontId(const uint16_t ) {}
00053 void marginReset(const uint16_t leftMargin, const uint16_t rightMargin);
00054 void topMarginSet(const uint16_t topMargin);
00055 void bottomMarginSet(const uint16_t bottomMargin);
00056 void leftIndent(const uint16_t ) { if (!isUndoOn()) m_currentPageHasContent = true; }
00057 void leftRightIndent(const uint16_t ) { if (!isUndoOn()) m_currentPageHasContent = true; }
00058 void leftMarginRelease(const uint16_t ) {}
00059 void setTabs(const std::vector<WPXTabStop> ) {}
00060 void headerFooterGroup(const uint8_t headerFooterDefinition, WP1SubDocument *subDocument);
00061 void suppressPageCharacteristics(const uint8_t suppressCode);
00062 void justificationChange(const uint8_t ) {}
00063 void lineSpacingChange(const uint8_t ) {}
00064 void flushRightOn() {}
00065 void flushRightOff() {}
00066 void centerOn() {}
00067 void centerOff() {}
00068 void endDocument();
00069
00070 protected:
00071 void _handleSubDocument(const WPXSubDocument *subDocument, const bool isHeaderFooter, WPXTableList tableList, int nextTableIndice = 0);
00072
00073 private:
00074 WPXPageSpan m_currentPage, m_nextPage;
00075 std::vector<WP1SubDocument *> &m_subDocuments;
00076 float m_tempMarginLeft, m_tempMarginRight;
00077 bool m_currentPageHasContent;
00078 bool m_isSubDocument;
00079 std::list<WPXPageSpan>::iterator m_pageListHardPageMark;
00080 };
00081
00082 #endif