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 <libwpd/libwpd.h>
00035
00036 typedef struct _WP42ContentParsingState WP42ContentParsingState;
00037 struct _WP42ContentParsingState
00038 {
00039 _WP42ContentParsingState();
00040 ~_WP42ContentParsingState();
00041 librevenge::RVNGString m_textBuffer;
00042 };
00043
00044 class WP42ContentListener : public WP42Listener, protected WPXContentListener
00045 {
00046 public:
00047 WP42ContentListener(std::list<WPXPageSpan> &pageList, std::vector<WP42SubDocument *> &subDocuments, librevenge::RVNGTextInterface *documentInterface);
00048 ~WP42ContentListener();
00049
00050 void startDocument()
00051 {
00052 WPXContentListener::startDocument();
00053 }
00054 void startSubDocument()
00055 {
00056 WPXContentListener::startSubDocument();
00057 }
00058 void insertCharacter(unsigned character);
00059 void insertTab(unsigned char tabType, double tabPosition);
00060 void insertBreak(unsigned char breakType)
00061 {
00062 WPXContentListener::insertBreak(breakType);
00063 }
00064 void insertEOL();
00065 void attributeChange(bool isOn, unsigned char attribute);
00066 void marginReset(unsigned char leftMargin, unsigned char rightMargin);
00067 void headerFooterGroup(unsigned char headerFooterDefinition, WP42SubDocument *subDocument);
00068 void suppressPageCharacteristics(unsigned char ) {}
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, unsigned 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