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 MWAW_LISTENER_H
00035 #define MWAW_LISTENER_H
00036
00037 #include <vector>
00038
00039 #include <librevenge/librevenge.h>
00040
00041 #include "libmwaw_internal.hxx"
00042
00043 #include "MWAWGraphicStyle.hxx"
00044
00045 class MWAWCell;
00046 class MWAWTable;
00047
00049 class MWAWListener
00050 {
00051 public:
00053 virtual ~MWAWListener() {}
00054
00056 enum Type { Graphic, Presentation, Spreadsheet, Text };
00058 enum BreakType { PageBreak=0, SoftPageBreak, ColumnBreak };
00059
00060
00062 virtual Type getType() const = 0;
00064 virtual bool canWriteText() const =0;
00065
00066
00068 virtual void setDocumentLanguage(std::string locale) = 0;
00070 virtual void startDocument() = 0;
00072 virtual bool isDocumentStarted() const =0;
00074 virtual void endDocument(bool sendDelayedSubDoc=true) = 0;
00075
00076
00078 virtual bool isPageSpanOpened() const = 0;
00082 virtual MWAWPageSpan const &getPageSpan() = 0;
00083
00084
00086 virtual bool insertHeader(MWAWSubDocumentPtr subDocument, librevenge::RVNGPropertyList const &extras) = 0;
00088 virtual bool insertFooter(MWAWSubDocumentPtr subDocument, librevenge::RVNGPropertyList const &extras) = 0;
00090 virtual bool isHeaderFooterOpened() const = 0;
00091
00092
00094 virtual void insertChar(uint8_t character)=0;
00097 virtual void insertCharacter(unsigned char c)=0;
00103 virtual int insertCharacter(unsigned char c, MWAWInputStreamPtr &input, long endPos=-1)=0;
00106 virtual void insertUnicode(uint32_t character)=0;
00108 virtual void insertUnicodeString(librevenge::RVNGString const &str)=0;
00109
00111 virtual void insertTab()=0;
00113 virtual void insertEOL(bool softBreak=false)=0;
00114
00115
00117 virtual void setFont(MWAWFont const &font)=0;
00119 virtual MWAWFont const &getFont() const=0;
00120
00121
00123 virtual bool isParagraphOpened() const=0;
00125 virtual void setParagraph(MWAWParagraph const ¶graph)=0;
00127 virtual MWAWParagraph const &getParagraph() const=0;
00128
00129
00131 virtual void insertField(MWAWField const &field)=0;
00132
00133
00134
00136 virtual void openLink(MWAWLink const &link)=0;
00138 virtual void closeLink()=0;
00139
00140
00142 virtual void openTable(MWAWTable const &table) = 0;
00144 virtual void closeTable() = 0;
00146 virtual void openTableRow(float h, librevenge::RVNGUnit unit, bool headerRow=false) = 0;
00148 virtual void closeTableRow() = 0;
00150 virtual void openTableCell(MWAWCell const &cell) = 0;
00152 virtual void closeTableCell() = 0;
00154 virtual void addEmptyTableCell(MWAWVec2i const &pos, MWAWVec2i span=MWAWVec2i(1,1)) = 0;
00155
00156
00158 virtual bool canOpenSectionAddBreak() const =0;
00160 virtual bool isSectionOpened() const=0;
00162 virtual MWAWSection const &getSection() const=0;
00164 virtual bool openSection(MWAWSection const §ion)=0;
00166 virtual bool closeSection()=0;
00168 virtual void insertBreak(BreakType breakType)=0;
00169
00170
00172 virtual void insertNote(MWAWNote const ¬e, MWAWSubDocumentPtr &subDocument)=0;
00174 virtual void insertComment(MWAWSubDocumentPtr &subDocument) = 0;
00176 virtual void insertPicture(MWAWPosition const &pos, const librevenge::RVNGBinaryData &binaryData,
00177 std::string type="image/pict", MWAWGraphicStyle const &style=MWAWGraphicStyle::emptyStyle()) = 0;
00179 virtual void insertPicture(MWAWPosition const &pos, MWAWGraphicShape const &shape,
00180 MWAWGraphicStyle const &style) = 0;
00182 virtual void insertTextBox(MWAWPosition const &pos, MWAWSubDocumentPtr subDocument,
00183 MWAWGraphicStyle const &frameStyle=MWAWGraphicStyle::emptyStyle()) = 0;
00185 virtual bool openFrame(MWAWPosition const &pos, MWAWGraphicStyle const &style=MWAWGraphicStyle::emptyStyle()) = 0;
00187 virtual void closeFrame() = 0;
00189 virtual void handleSubDocument(MWAWSubDocumentPtr subDocument, libmwaw::SubDocumentType subDocumentType) = 0;
00191 virtual bool isSubDocumentOpened(libmwaw::SubDocumentType &subdocType) const = 0;
00192 };
00193
00194 #endif
00195