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
00035
00036
00037
00038 #ifndef CLARIS_WKS_TEXT
00039 # define CLARIS_WKS_TEXT
00040
00041 #include <list>
00042 #include <string>
00043 #include <vector>
00044
00045 #include "libmwaw_internal.hxx"
00046
00047 #include "MWAWEntry.hxx"
00048 #include "MWAWSubDocument.hxx"
00049
00050 #include "MWAWDebug.hxx"
00051 #include "MWAWInputStream.hxx"
00052
00053 #include "MWAWParser.hxx"
00054
00055 #include "ClarisWksStruct.hxx"
00056
00057 namespace ClarisWksTextInternal
00058 {
00059 class SubDocument;
00060
00061 struct Paragraph;
00062 struct Zone;
00063 struct State;
00064 }
00065
00066 class ClarisWksDocument;
00067 class ClarisWksParser;
00068 class ClarisWksStyleManager;
00069
00075 class ClarisWksText
00076 {
00077 friend class ClarisWksTextInternal::SubDocument;
00078 friend class ClarisWksDocument;
00079 friend class ClarisWksParser;
00080 friend class ClarisWksStyleManager;
00081
00082 public:
00084 ClarisWksText(ClarisWksDocument &document);
00086 virtual ~ClarisWksText();
00087
00089 int version() const;
00090
00092 int numPages() const;
00094 bool updatePageSpanList(MWAWPageSpan const &page, std::vector<MWAWPageSpan> &spanList);
00095
00097 shared_ptr<ClarisWksStruct::DSET> readDSETZone(ClarisWksStruct::DSET const &zone, MWAWEntry const &entry, bool &complete);
00098
00099 protected:
00101 void setProperty(MWAWListener &listener, ClarisWksTextInternal::Paragraph const &ruler, int listId=-1);
00102
00104 bool sendZone(int number, MWAWListenerPtr listener=MWAWListenerPtr());
00106 bool canSendTextAsGraphic(int number) const;
00107
00109 void flushExtra();
00110
00111
00112
00113
00114
00116 bool readParagraphs(MWAWEntry const &entry, ClarisWksTextInternal::Zone &zone);
00117
00119 bool readFonts(MWAWEntry const &entry, ClarisWksTextInternal::Zone &zone);
00120
00122 bool readTokens(MWAWEntry const &entry, ClarisWksTextInternal::Zone &zone);
00123
00125 bool readTextZoneSize(MWAWEntry const &entry, ClarisWksTextInternal::Zone &zone);
00126
00128 bool readTextSection(ClarisWksTextInternal::Zone &zone);
00129
00131 bool sendText(ClarisWksTextInternal::Zone const &zone, MWAWListenerPtr listener);
00133 bool canSendTextAsGraphic(ClarisWksTextInternal::Zone const &zone) const;
00134
00136 int findListId(ClarisWksTextInternal::Zone const &zone, int actListId, long cPos, long &lastPos);
00137
00139 bool readFont(int id, int &posC, MWAWFont &font);
00140
00142 bool readParagraphs();
00143
00147 bool readParagraph(int id=-1);
00148
00149
00150
00152 bool readSTYL_RULR(int N, int fSz);
00153
00154 private:
00155 ClarisWksText(ClarisWksText const &orig);
00156 ClarisWksText &operator=(ClarisWksText const &orig);
00157
00158 protected:
00159
00160
00161
00162
00164 ClarisWksDocument &m_document;
00165
00167 MWAWParserStatePtr m_parserState;
00168
00170 shared_ptr<ClarisWksTextInternal::State> m_state;
00171
00173 MWAWParser *m_mainParser;
00174 };
00175 #endif
00176