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
00029
00030
00031
00032
00033
00034 #ifndef MS_WKS4_ZONE
00035 # define MS_WKS4_ZONE
00036
00037 #include <map>
00038 #include <string>
00039
00040 #include "MWAWDebug.hxx"
00041 #include "MWAWEntry.hxx"
00042 #include "MWAWInputStream.hxx"
00043
00044 #include "MWAWParser.hxx"
00045
00046 #include "MsWksDocument.hxx"
00047
00048 class MsWksParser;
00049 class MsWksDRParser;
00050
00051 namespace MsWks4ZoneInternal
00052 {
00053 struct State;
00054 }
00055
00073 class MsWks4Zone
00074 {
00075 friend class MsWksDocument;
00076 friend class MsWksDRParser;
00077 friend class MsWksParser;
00078 friend class MsWks4Text;
00079
00080 public:
00082 MsWks4Zone(MWAWInputStreamPtr input, MWAWParserStatePtr parserState,
00083 MWAWParser &parser, std::string const &oleName);
00085 ~MsWks4Zone();
00086
00087 protected:
00089 void init();
00091 MWAWInputStreamPtr getInput();
00092
00097 bool parseHeaderIndex(MWAWInputStreamPtr &input);
00098
00100 bool parseHeaderIndexEntry(MWAWInputStreamPtr &input);
00101
00103 bool createZones(bool mainOle);
00104
00108 void readContentZones(MWAWEntry const &entry, bool mainOle);
00109
00111 MWAWTextListenerPtr createListener(librevenge::RVNGTextInterface *interface);
00112
00114 double getTextHeight() const;
00115
00117 void newPage(int number, bool soft=false);
00118
00120 void readFootNote(int id);
00121
00123 MWAWEntry getTextPosition() const;
00124
00125
00126
00127
00128
00130 bool readPRNT(MWAWInputStreamPtr input, MWAWEntry const &entry, MWAWPageSpan &page);
00131
00135 bool readDOP(MWAWInputStreamPtr input, MWAWEntry const &entry, MWAWPageSpan &page);
00136
00140 bool readFRAM(MWAWInputStreamPtr input, MWAWEntry const &entry);
00141
00145 bool readRLRB(MWAWInputStreamPtr input, MWAWEntry const &entry);
00146
00150 bool readSELN(MWAWInputStreamPtr input, MWAWEntry const &entry);
00151
00153 void setAscii(std::string const &oleName);
00155 libmwaw::DebugFile &ascii();
00156
00157 private:
00158 MsWks4Zone(MsWks4Zone const &orig);
00159 MsWks4Zone &operator=(MsWks4Zone const &orig);
00160 protected:
00161
00162
00163
00164
00166 MWAWParser *m_mainParser;
00167
00169 shared_ptr<MWAWParserState> m_parserState;
00170
00172 shared_ptr<MsWks4ZoneInternal::State> m_state;
00173
00175 shared_ptr<MsWksDocument> m_document;
00176 };
00177 #endif
00178