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