00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef KEYCOLLECTOR_H_INCLUDED
00011 #define KEYCOLLECTOR_H_INCLUDED
00012
00013 #include <string>
00014
00015 #include <boost/optional.hpp>
00016
00017 #include "libetonyek_utils.h"
00018 #include "KEYPath_fwd.h"
00019 #include "KEYTable.h"
00020 #include "KEYTypes_fwd.h"
00021
00022 namespace libetonyek
00023 {
00024
00025 class KEYDefaults;
00026 class KEYPropertyMap;
00027 struct KEYSize;
00028
00029 class KEYCollector
00030 {
00031 public:
00032 virtual ~KEYCollector() = 0;
00033
00034
00035
00036 virtual void collectCellStyle(const boost::optional<ID_t> &id,
00037 const boost::optional<KEYPropertyMap> &props,
00038 const boost::optional<std::string> &ident, const boost::optional<std::string> &parentIdent,
00039 bool ref, bool anonymous) = 0;
00040 virtual void collectCharacterStyle(const boost::optional<ID_t> &id,
00041 const boost::optional<KEYPropertyMap> &props,
00042 const boost::optional<std::string> &ident, const boost::optional<std::string> &parentIdent,
00043 bool ref, bool anonymous) = 0;
00044 virtual void collectConnectionStyle(const boost::optional<ID_t> &id,
00045 const boost::optional<KEYPropertyMap> &props,
00046 const boost::optional<std::string> &ident, const boost::optional<std::string> &parentIdent,
00047 bool ref, bool anonymous) = 0;
00048 virtual void collectGraphicStyle(const boost::optional<ID_t> &id,
00049 const boost::optional<KEYPropertyMap> &props,
00050 const boost::optional<std::string> &ident, const boost::optional<std::string> &parentIdent,
00051 bool ref, bool anonymous) = 0;
00052 virtual void collectLayoutStyle(const boost::optional<ID_t> &id,
00053 const boost::optional<KEYPropertyMap> &props,
00054 const boost::optional<std::string> &ident, const boost::optional<std::string> &parentIdent,
00055 bool ref, bool anonymous) = 0;
00056 virtual void collectListStyle(const boost::optional<ID_t> &id,
00057 const boost::optional<KEYPropertyMap> &props,
00058 const boost::optional<std::string> &ident, const boost::optional<std::string> &parentIdent,
00059 bool ref, bool anonymous) = 0;
00060 virtual void collectParagraphStyle(const boost::optional<ID_t> &id,
00061 const boost::optional<KEYPropertyMap> &props,
00062 const boost::optional<std::string> &ident, const boost::optional<std::string> &parentIdent,
00063 bool ref, bool anonymous) = 0;
00064 virtual void collectPlaceholderStyle(const boost::optional<ID_t> &id,
00065 const boost::optional<KEYPropertyMap> &props,
00066 const boost::optional<std::string> &ident, const boost::optional<std::string> &parentIdent,
00067 bool ref, bool anonymous) = 0;
00068 virtual void collectSlideStyle(const boost::optional<ID_t> &id,
00069 const boost::optional<KEYPropertyMap> &props,
00070 const boost::optional<std::string> &ident, const boost::optional<std::string> &parentIdent,
00071 bool ref, bool anonymous) = 0;
00072 virtual void collectTabularStyle(const boost::optional<ID_t> &id,
00073 const boost::optional<KEYPropertyMap> &props,
00074 const boost::optional<std::string> &ident, const boost::optional<std::string> &parentIdent,
00075 bool ref, bool anonymous) = 0;
00076 virtual void collectVectorStyle(const boost::optional<ID_t> &id,
00077 const boost::optional<KEYPropertyMap> &props,
00078 const boost::optional<std::string> &ident, const boost::optional<std::string> &parentIdent,
00079 bool ref, bool anonymous) = 0;
00080
00081 virtual void collectGeometry(boost::optional<ID_t> &id,
00082 boost::optional<KEYSize> &naturalSize, boost::optional<KEYPosition> &position,
00083 boost::optional<double> &angle,
00084 boost::optional<double> &shearXAngle, boost::optional<double> &shearYAngle,
00085 boost::optional<bool> &horizontalFlip, boost::optional<bool> &verticalFlip,
00086 boost::optional<bool> &aspectRatioLocked, boost::optional<bool> &sizesLocked) = 0;
00087
00088 virtual void collectBezier(const boost::optional<ID_t> &id, const KEYPathPtr_t &path, bool ref) = 0;
00089 virtual void collectGroup(const boost::optional<ID_t> &id, const KEYGroupPtr_t &group) = 0;
00090 virtual void collectImage(const boost::optional<ID_t> &id, const KEYImagePtr_t &image) = 0;
00091 virtual void collectLine(const boost::optional<ID_t> &id, const KEYLinePtr_t &line) = 0;
00092 virtual void collectShape(const boost::optional<ID_t> &id) = 0;
00093
00094 virtual void collectBezierPath(const boost::optional<ID_t> &id) = 0;
00095 virtual void collectPolygonPath(const boost::optional<ID_t> &id, const KEYSize &size, unsigned edges) = 0;
00096 virtual void collectRoundedRectanglePath(const boost::optional<ID_t> &id, const KEYSize &size, double radius) = 0;
00097 virtual void collectArrowPath(const boost::optional<ID_t> &id, const KEYSize &size, double headWidth, double stemRelYPos, bool doubleSided) = 0;
00098 virtual void collectStarPath(const boost::optional<ID_t> &id, const KEYSize &size, unsigned points, double innerRadius) = 0;
00099 virtual void collectConnectionPath(const boost::optional<ID_t> &id, const KEYSize &size, double middleX, double middleY) = 0;
00100 virtual void collectCalloutPath(const boost::optional<ID_t> &id, const KEYSize &size, double radius, double tailSize, double tailX, double tailY, bool quoteBubble) = 0;
00101
00102 virtual void collectData(const boost::optional<ID_t> &id, const WPXInputStreamPtr_t &stream, const boost::optional<std::string> &displayName, const boost::optional<unsigned> &type, bool ref) = 0;
00103 virtual void collectUnfiltered(const boost::optional<ID_t> &id, const boost::optional<KEYSize> &size, bool ref) = 0;
00104 virtual void collectFiltered(const boost::optional<ID_t> &id, const boost::optional<KEYSize> &size) = 0;
00105 virtual void collectLeveled(const boost::optional<ID_t> &id, const boost::optional<KEYSize> &size) = 0;
00106 virtual void collectFilteredImage(const boost::optional<ID_t> &id, bool ref) = 0;
00107 virtual void collectMovieMedia(const boost::optional<ID_t> &id) = 0;
00108 virtual void collectMedia(const boost::optional<ID_t> &id) = 0;
00109
00110 virtual void collectPresentation(const boost::optional<KEYSize> &size) = 0;
00111
00112 virtual void collectLayer(const boost::optional<ID_t> &id, bool ref) = 0;
00113 virtual void collectPage(const boost::optional<ID_t> &id) = 0;
00114 virtual void collectStylesheet(const boost::optional<ID_t> &id, const boost::optional<ID_t> &parent) = 0;
00115
00116 virtual void collectText(const boost::optional<ID_t> &style, const std::string &text) = 0;
00117 virtual void collectTab() = 0;
00118 virtual void collectLineBreak() = 0;
00119
00120 virtual void collectTextPlaceholder(const boost::optional<ID_t> &id, bool title, bool ref) = 0;
00121
00122 virtual void collectTableSizes(const KEYTable::RowSizes_t &rowSizes, const KEYTable::ColumnSizes_t &columnSizes) = 0;
00123 virtual void collectTableCell(unsigned row, unsigned column, const boost::optional<std::string> &content, unsigned rowSpan, unsigned columnSpan) = 0;
00124 virtual void collectCoveredTableCell(unsigned row, unsigned column) = 0;
00125 virtual void collectTableRow() = 0;
00126 virtual void collectTable() = 0;
00127
00128 virtual void collectNote() = 0;
00129
00130 virtual void collectStickyNote() = 0;
00131
00132 virtual void startPage() = 0;
00133 virtual void endPage() = 0;
00134 virtual void startLayer() = 0;
00135 virtual void endLayer() = 0;
00136 virtual void startGroup() = 0;
00137 virtual void endGroup() = 0;
00138
00139 virtual void startParagraph(const boost::optional<ID_t> &style) = 0;
00140 virtual void endParagraph() = 0;
00141
00150 virtual void startText(bool object) = 0;
00151
00154 virtual void endText() = 0;
00155
00156
00157
00158 virtual void startSlides() = 0;
00159 virtual void endSlides() = 0;
00160 virtual void startThemes() = 0;
00161 virtual void endThemes() = 0;
00162
00163 virtual void startLevel() = 0;
00164 virtual void endLevel() = 0;
00165 };
00166
00167 }
00168
00169 #endif // KEYCOLLECTOR_H_INCLUDED
00170
00171