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 FW_TEXT
00039 # define FW_TEXT
00040
00041 #include "libmwaw_internal.hxx"
00042
00043
00044 #include "MWAWDebug.hxx"
00045
00046 #include "FWStruct.hxx"
00047
00048 namespace FWTextInternal
00049 {
00050 struct Font;
00051 struct Paragraph;
00052
00053 struct LineHeader;
00054 struct Zone;
00055
00056 struct State;
00057 }
00058
00059 class FWParser;
00060
00066 class FWText
00067 {
00068 friend class FWParser;
00069 public:
00071 FWText(FWParser &parser);
00073 virtual ~FWText();
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(FWStruct::EntryPtr zone);
00100
00102 bool send(shared_ptr<FWTextInternal::Zone> zone, MWAWColor fontColor=MWAWColor::black());
00103
00105 void send(shared_ptr<FWTextInternal::Zone> zone, int numChar,
00106 FWTextInternal::Font &font, FWTextInternal::Paragraph &ruler,
00107 std::string &str);
00108
00110 bool sendTable(shared_ptr<FWTextInternal::Zone> zone,
00111 FWTextInternal::LineHeader const &lHeader,
00112 FWTextInternal::Font &font, FWTextInternal::Paragraph &ruler,
00113 std::string &str);
00115 bool sendHiddenItem(int id, FWTextInternal::Font &font, FWTextInternal::Paragraph &ruler);
00116
00118 void prepareData() {
00119 sortZones();
00120 createItemStructures();
00121 }
00122
00124 void sortZones();
00126 void createItemStructures();
00127
00128
00129
00130
00131
00133 bool readLineHeader(shared_ptr<FWTextInternal::Zone> zone, FWTextInternal::LineHeader &lHeader);
00134
00136 bool readItem(FWStruct::EntryPtr zone, int id=-1, bool hidden=false);
00137
00139 bool readParagraphTabs(FWStruct::EntryPtr zone, int id=-1);
00141 bool readParaModDocInfo(FWStruct::EntryPtr zone);
00142
00144 bool readStyle(FWStruct::EntryPtr zone);
00145
00147 bool readDataMod(FWStruct::EntryPtr zone, int id);
00148
00150 bool readColumns(FWStruct::EntryPtr zone);
00151
00152 private:
00153 FWText(FWText const &orig);
00154 FWText &operator=(FWText const &orig);
00155
00156 protected:
00157
00158
00159
00161 MWAWParserStatePtr m_parserState;
00162
00164 shared_ptr<FWTextInternal::State> m_state;
00165
00167 FWParser *m_mainParser;
00168 };
00169 #endif
00170