VSD5Parser.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* libvisio
3  * Version: MPL 1.1 / GPLv2+ / LGPLv2+
4  *
5  * The contents of this file are subject to the Mozilla Public License Version
6  * 1.1 (the "License"); you may not use this file except in compliance with
7  * the License or as specified alternatively below. You may obtain a copy of
8  * the License at http://www.mozilla.org/MPL/
9  *
10  * Software distributed under the License is distributed on an "AS IS" basis,
11  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12  * for the specific language governing rights and limitations under the
13  * License.
14  *
15  * Major Contributor(s):
16  * Copyright (C) 2011 Fridrich Strba <fridrich.strba@bluewin.ch>
17  * Copyright (C) 2011 Eilidh McAdam <tibbylickle@gmail.com>
18  *
19  *
20  * All Rights Reserved.
21  *
22  * For minor contributions see the git repository.
23  *
24  * Alternatively, the contents of this file may be used under the terms of
25  * either the GNU General Public License Version 2 or later (the "GPLv2+"), or
26  * the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"),
27  * in which case the provisions of the GPLv2+ or the LGPLv2+ are applicable
28  * instead of those above.
29  */
30 
31 #ifndef __VSD5PARSER_H__
32 #define __VSD5PARSER_H__
33 
34 #include <stdio.h>
35 #include <iostream>
36 #include <libwpd/libwpd.h>
37 #include <libwpg/libwpg.h>
38 #include "VSD6Parser.h"
39 #include "VSDInternalStream.h"
40 
41 namespace libvisio
42 {
43 
44 class VSD5Parser : public VSD6Parser
45 {
46 public:
47  explicit VSD5Parser(WPXInputStream *input, libwpg::WPGPaintInterface *painter);
48  ~VSD5Parser();
49 
50 protected:
51  virtual void readPointer(WPXInputStream *input, Pointer &ptr);
52  virtual bool getChunkHeader(WPXInputStream *input);
53  virtual void readPointerInfo(WPXInputStream *input, unsigned ptrType, unsigned shift, unsigned &listSize, int &pointerCount);
54 
55  virtual void readGeomList(WPXInputStream *input);
56  virtual void readCharList(WPXInputStream *input);
57  virtual void readParaList(WPXInputStream *input);
58  virtual void readShapeList(WPXInputStream *input);
59  virtual void readPropList(WPXInputStream *input);
60  virtual void readFieldList(WPXInputStream *input);
61  virtual void readNameList2(WPXInputStream *input);
62 
63  virtual void readLine(WPXInputStream *input);
64  virtual void readFillAndShadow(WPXInputStream *input);
65  virtual void readTextBlock(WPXInputStream *input);
66  virtual void readCharIX(WPXInputStream *input);
67  virtual void readTextField(WPXInputStream *input);
68 
69  virtual void readShape(WPXInputStream *input);
70  virtual void readPage(WPXInputStream *input);
71 
72  virtual void handleChunkRecords(WPXInputStream *input);
73 
74  virtual void readStyleSheet(WPXInputStream *input);
75 
76  virtual void readNameIDX(WPXInputStream *input);
77 
78  virtual unsigned getUInt(WPXInputStream *input);
79  virtual int getInt(WPXInputStream *input);
80 
81 private:
82  VSD5Parser();
83  VSD5Parser(const VSDParser &);
84  VSD5Parser &operator=(const VSDParser &);
85 
86  void readList(WPXInputStream *input);
87 };
88 
89 } // namespace libvisio
90 
91 #endif // __VSD5PARSER_H__
92 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */

Generated for libvisio by doxygen 1.8.4