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 FULL_WRT_TEXT
00039 # define FULL_WRT_TEXT
00040
00041 #include "libmwaw_internal.hxx"
00042
00043
00044 #include "MWAWDebug.hxx"
00045
00046 #include "FullWrtStruct.hxx"
00047
00048 namespace FullWrtTextInternal
00049 {
00050 struct Font;
00051 struct Paragraph;
00052
00053 struct LineHeader;
00054 struct Zone;
00055
00056 struct State;
00057 }
00058
00059 class FullWrtParser;
00060
00066 class FullWrtText
00067 {
00068 friend class FullWrtParser;
00069 public:
00071 FullWrtText(FullWrtParser &parser);
00073 virtual ~FullWrtText();
00074
00076 int version() const;
00077
00079 int numPages() const;
00080
00081 protected:
00082
00084 void flushExtra();
00085
00087 bool sendMainText();
00089 int getHeaderFooterId(bool header, int page, int &numSimillar) const;
00090
00092 bool send(int zId, MWAWColor fontColor=MWAWColor::black());
00093
00094
00095
00096
00097
00099 bool readTextData(FullWrtStruct::EntryPtr zone);
00100
00102 bool send(shared_ptr<FullWrtTextInternal::Zone> zone, MWAWColor fontColor=MWAWColor::black());
00103
00105 void send(shared_ptr<FullWrtTextInternal::Zone> zone, int numChar,
00106 FullWrtTextInternal::Font &font, FullWrtTextInternal::Paragraph &ruler,
00107 std::string &str);
00108
00110 bool sendTable(shared_ptr<FullWrtTextInternal::Zone> zone,
00111 FullWrtTextInternal::LineHeader const &lHeader,
00112 FullWrtTextInternal::Font &font, FullWrtTextInternal::Paragraph &ruler,
00113 std::string &str);
00115 bool sendHiddenItem(int id, FullWrtTextInternal::Font &font, FullWrtTextInternal::Paragraph &ruler);
00116
00118 void prepareData()
00119 {
00120 sortZones();
00121 createItemStructures();
00122 }
00123
00125 void sortZones();
00127 void createItemStructures();
00128
00129
00130
00131
00132
00134 bool readLineHeader(shared_ptr<FullWrtTextInternal::Zone> zone, FullWrtTextInternal::LineHeader &lHeader);
00135
00137 bool readItem(FullWrtStruct::EntryPtr zone, int id=-1, bool hidden=false);
00138
00140 bool readParagraphTabs(FullWrtStruct::EntryPtr zone, int id=-1);
00142 bool readParaModDocInfo(FullWrtStruct::EntryPtr zone);
00143
00145 bool readStyle(FullWrtStruct::EntryPtr zone);
00146
00148 bool readDataMod(FullWrtStruct::EntryPtr zone, int id);
00149
00151 bool readColumns(FullWrtStruct::EntryPtr zone);
00152
00153 private:
00154 FullWrtText(FullWrtText const &orig);
00155 FullWrtText &operator=(FullWrtText const &orig);
00156
00157 protected:
00158
00159
00160
00162 MWAWParserStatePtr m_parserState;
00163
00165 shared_ptr<FullWrtTextInternal::State> m_state;
00166
00168 FullWrtParser *m_mainParser;
00169 };
00170 #endif
00171