VSD5Parser.h
Go to the documentation of this file.
00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
00002 /*
00003  * This file is part of the libvisio project.
00004  *
00005  * This Source Code Form is subject to the terms of the Mozilla Public
00006  * License, v. 2.0. If a copy of the MPL was not distributed with this
00007  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
00008  */
00009 
00010 #ifndef __VSD5PARSER_H__
00011 #define __VSD5PARSER_H__
00012 
00013 #include <stdio.h>
00014 #include <iostream>
00015 #include <librevenge/librevenge.h>
00016 #include "VSD6Parser.h"
00017 #include "VSDInternalStream.h"
00018 
00019 namespace libvisio
00020 {
00021 
00022 class VSD5Parser : public VSD6Parser
00023 {
00024 public:
00025   explicit VSD5Parser(librevenge::RVNGInputStream *input, librevenge::RVNGDrawingInterface *painter);
00026   ~VSD5Parser();
00027 
00028 protected:
00029   virtual void readPointer(librevenge::RVNGInputStream *input, Pointer &ptr);
00030   virtual bool getChunkHeader(librevenge::RVNGInputStream *input);
00031   virtual void readPointerInfo(librevenge::RVNGInputStream *input, unsigned ptrType, unsigned shift, unsigned &listSize, int &pointerCount);
00032 
00033   virtual void readGeomList(librevenge::RVNGInputStream *input);
00034   virtual void readCharList(librevenge::RVNGInputStream *input);
00035   virtual void readParaList(librevenge::RVNGInputStream *input);
00036   virtual void readShapeList(librevenge::RVNGInputStream *input);
00037   virtual void readPropList(librevenge::RVNGInputStream *input);
00038   virtual void readFieldList(librevenge::RVNGInputStream *input);
00039   virtual void readNameList2(librevenge::RVNGInputStream *input);
00040 
00041   virtual void readLine(librevenge::RVNGInputStream *input);
00042   virtual void readFillAndShadow(librevenge::RVNGInputStream *input);
00043   virtual void readTextBlock(librevenge::RVNGInputStream *input);
00044   virtual void readCharIX(librevenge::RVNGInputStream *input);
00045   virtual void readTextField(librevenge::RVNGInputStream *input);
00046 
00047   virtual void readShape(librevenge::RVNGInputStream *input);
00048   virtual void readPage(librevenge::RVNGInputStream *input);
00049 
00050   virtual void handleChunkRecords(librevenge::RVNGInputStream *input);
00051 
00052   virtual void readStyleSheet(librevenge::RVNGInputStream *input);
00053 
00054   virtual void readNameIDX(librevenge::RVNGInputStream *input);
00055 
00056   virtual unsigned getUInt(librevenge::RVNGInputStream *input);
00057   virtual int getInt(librevenge::RVNGInputStream *input);
00058 
00059 private:
00060   VSD5Parser();
00061   VSD5Parser(const VSDParser &);
00062   VSD5Parser &operator=(const VSDParser &);
00063 
00064   void readList(librevenge::RVNGInputStream *input);
00065 };
00066 
00067 } // namespace libvisio
00068 
00069 #endif // __VSD5PARSER_H__
00070 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */