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 WP42CONTENTLISTENER_H
00028 #define WP42CONTENTLISTENER_H
00029
00030 #include "WP42Listener.h"
00031 #include "WP42SubDocument.h"
00032 #include "WPXContentListener.h"
00033 #include "WPXDocumentInterface.h"
00034
00035 typedef struct _WP42ContentParsingState WP42ContentParsingState;
00036 struct _WP42ContentParsingState
00037 {
00038 _WP42ContentParsingState();
00039 ~_WP42ContentParsingState();
00040 WPXString m_textBuffer;
00041 };
00042
00043 class WP42ContentListener : public WP42Listener, protected WPXContentListener
00044 {
00045 public:
00046 WP42ContentListener(std::list<WPXPageSpan> &pageList, std::vector<WP42SubDocument *> &subDocuments, WPXDocumentInterface *documentInterface);
00047 ~WP42ContentListener();
00048
00049 void startDocument() { WPXContentListener::startDocument(); }
00050 void startSubDocument() { WPXContentListener::startSubDocument(); }
00051 void insertCharacter(uint16_t character);
00052 void insertTab(uint8_t tabType, double tabPosition);
00053 void insertBreak(uint8_t breakType) { WPXContentListener::insertBreak(breakType); }
00054 void insertEOL();
00055 void attributeChange(bool isOn, uint8_t attribute);
00056 void marginReset(uint8_t leftMargin, uint8_t rightMargin);
00057 void headerFooterGroup(uint8_t headerFooterDefinition, WP42SubDocument *subDocument);
00058 void suppressPageCharacteristics(uint8_t ) {}
00059 void endDocument() { WPXContentListener::endDocument(); };
00060 void endSubDocument() { WPXContentListener::endSubDocument(); };
00061
00062 protected:
00063 void _handleSubDocument(const WPXSubDocument *subDocument, WPXSubDocumentType subDocumentType, WPXTableList tableList, int nextTableIndice = 0);
00064
00065 void _flushText();
00066 void _changeList() {};
00067
00068 private:
00069 WP42ContentListener(const WP42ContentListener&);
00070 WP42ContentListener& operator=(const WP42ContentListener&);
00071 WP42ContentParsingState *m_parseState;
00072 std::vector<WP42SubDocument *> &m_subDocuments;
00073 };
00074
00075 #endif