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 #ifndef __CMXPARSER_H__
00031 #define __CMXPARSER_H__
00032
00033 #include <stdio.h>
00034 #include <iostream>
00035 #include <vector>
00036 #include <map>
00037 #include <libwpd-stream/libwpd-stream.h>
00038 #include "CDRTypes.h"
00039 #include "CommonParser.h"
00040
00041 namespace libcdr
00042 {
00043
00044 class CDRCollector;
00045
00046 class CMXParser : protected CommonParser
00047 {
00048 public:
00049 explicit CMXParser(CDRCollector *collector);
00050 virtual ~CMXParser();
00051 bool parseRecords(WPXInputStream *input, long size = -1, unsigned level = 0);
00052
00053 private:
00054 CMXParser();
00055 CMXParser(const CMXParser &);
00056 CMXParser &operator=(const CMXParser &);
00057 bool parseRecord(WPXInputStream *input, unsigned level = 0);
00058 void readRecord(unsigned fourCC, unsigned &length, WPXInputStream *input);
00059
00060 void readCMXHeader(WPXInputStream *input);
00061 void readDisp(WPXInputStream *input, unsigned length);
00062 void readCcmm(WPXInputStream *input, long &recordEnd);
00063 void readPage(WPXInputStream *input, unsigned length);
00064
00065
00066 void readBeginPage(WPXInputStream *input);
00067 void readBeginLayer(WPXInputStream *input);
00068 void readBeginGroup(WPXInputStream *input);
00069 void readPolyCurve(WPXInputStream *input);
00070 void readEllipse(WPXInputStream *input);
00071 void readRectangle(WPXInputStream *input);
00072 void readJumpAbsolute(WPXInputStream *input);
00073
00074
00075 CDRTransform readMatrix(WPXInputStream *input);
00076 CDRBox readBBox(WPXInputStream *input);
00077 void readFill(WPXInputStream *input);
00078
00079
00080 void readRenderingAttributes(WPXInputStream *input);
00081
00082 bool m_bigEndian;
00083 unsigned short m_unit;
00084 double m_scale;
00085 double m_xmin, m_xmax, m_ymin, m_ymax;
00086 unsigned m_indexSectionOffset;
00087 unsigned m_infoSectionOffset;
00088 unsigned m_thumbnailOffset;
00089 unsigned m_fillIndex;
00090 unsigned m_nextInstructionOffset;
00091 };
00092
00093 }
00094
00095 #endif // __CMXPARSER_H__
00096