MWAWDocument.hxx
Go to the documentation of this file.
1 /* -*- Mode: C++; c-default-style: "k&r"; indent-tabs-mode: nil; tab-width: 2; c-basic-offset: 2 -*- */
2 
3 /* libmwaw
4 * Version: MPL 2.0 / LGPLv2+
5 *
6 * The contents of this file are subject to the Mozilla Public License Version
7 * 2.0 (the "License"); you may not use this file except in compliance with
8 * the License or as specified alternatively below. You may obtain a copy of
9 * the License at http://www.mozilla.org/MPL/
10 *
11 * Software distributed under the License is distributed on an "AS IS" basis,
12 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
13 * for the specific language governing rights and limitations under the
14 * License.
15 *
16 * Major Contributor(s):
17 * Copyright (C) 2002 William Lachance (wrlach@gmail.com)
18 * Copyright (C) 2002,2004 Marc Maurer (uwog@uwog.net)
19 * Copyright (C) 2004-2006 Fridrich Strba (fridrich.strba@bluewin.ch)
20 * Copyright (C) 2006, 2007 Andrew Ziem
21 * Copyright (C) 2011, 2012 Alonso Laurent (alonso@loria.fr)
22 *
23 *
24 * All Rights Reserved.
25 *
26 * For minor contributions see the git repository.
27 *
28 * Alternatively, the contents of this file may be used under the terms of
29 * the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"),
30 * in which case the provisions of the LGPLv2+ are applicable
31 * instead of those above.
32 */
33 
39 #ifndef MWAWDOCUMENT_HXX
40 #define MWAWDOCUMENT_HXX
41 
42 #ifdef _WINDLL
43 # ifdef BUILD_MWAW
44 # define MWAWLIB _declspec(dllexport)
45 # else
46 # define MWAWLIB _declspec(dllimport)
47 # endif
48 #else // !DLL_EXPORT
49 # ifdef LIBMWAW_VISIBILITY
50 # define MWAWLIB __attribute__((visibility("default")))
51 # else
52 # define MWAWLIB
53 # endif
54 #endif
55 
56 namespace librevenge
57 {
58 class RVNGBinaryData;
59 class RVNGDrawingInterface;
60 class RVNGPresentationInterface;
61 class RVNGSpreadsheetInterface;
62 class RVNGTextInterface;
63 class RVNGInputStream;
64 }
65 
70 {
71 public:
73  enum Confidence {
74  MWAW_C_NONE=0,
75  MWAW_C_UNSUPPORTED_ENCRYPTION ,
76  MWAW_C_SUPPORTED_ENCRYPTION ,
77  MWAW_C_EXCELLENT
78  };
80  enum Kind {
81  MWAW_K_UNKNOWN=0 ,
82  MWAW_K_TEXT ,
83  MWAW_K_DRAW ,
84  MWAW_K_PAINT ,
85  MWAW_K_PRESENTATION ,
86  MWAW_K_SPREADSHEET ,
87  MWAW_K_DATABASE
88  };
90  enum Result {
91  MWAW_R_OK=0 ,
92  MWAW_R_FILE_ACCESS_ERROR ,
93  MWAW_R_OLE_ERROR ,
94  MWAW_R_PARSE_ERROR ,
95  MWAW_R_PASSWORD_MISSMATCH_ERROR ,
96  MWAW_R_UNKNOWN_ERROR
97  };
99  enum Type {
100  MWAW_T_UNKNOWN=0 ,
101  MWAW_T_ACTA ,
102  MWAW_T_ADOBEILLUSTRATOR ,
103  MWAW_T_BEAGLEWORKS ,
104  MWAW_T_CLARISRESOLVE ,
105  MWAW_T_CLARISWORKS ,
106  MWAW_T_DBASE ,
107  MWAW_T_DOCMAKER ,
108  MWAW_T_EDOC ,
109  MWAW_T_FAMILYTREEMAKER ,
110  MWAW_T_FILEMAKER ,
111  MWAW_T_FOXBASE ,
112  MWAW_T_FRAMEMAKER ,
113  MWAW_T_FULLIMPACT ,
114  MWAW_T_FULLPAINT ,
115  MWAW_T_FULLWRITE ,
116  MWAW_T_GREATWORKS ,
117  MWAW_T_HANMACWORDJ ,
118  MWAW_T_HANMACWORDK ,
119  MWAW_T_INFOGENIE ,
120  MWAW_T_KALEIDAGRAPH ,
121  MWAW_T_LIGHTWAYTEXT ,
122  MWAW_T_MACDOC ,
123  MWAW_T_MACDRAFT ,
124  MWAW_T_MACDRAW ,
125  MWAW_T_MACDRAWPRO ,
126  MWAW_T_MACPAINT ,
127  MWAW_T_MARINERWRITE ,
128  MWAW_T_MINDWRITE ,
129  MWAW_T_MORE ,
130  MWAW_T_MICROSOFTFILE ,
131  MWAW_T_MICROSOFTMULTIPLAN ,
132  MWAW_T_MICROSOFTWORD ,
133  MWAW_T_MICROSOFTWORKS ,
134  MWAW_T_MACWRITE ,
135  MWAW_T_MACWRITEPRO ,
136  MWAW_T_NISUSWRITER ,
137  MWAW_T_OVERVUE ,
138  MWAW_T_PAGEMAKER ,
139  MWAW_T_PIXELPAINT ,
145  MWAW_T_READYSETGO ,
151  MWAW_T_SYMPOSIUM ,
152  MWAW_T_TEACHTEXT ,
153  MWAW_T_TEXEDIT ,
154  MWAW_T_TRAPEZE ,
155  MWAW_T_WINGZ ,
156  MWAW_T_WRITENOW ,
157  MWAW_T_WRITERPLUS ,
158  MWAW_T_XPRESS ,
159  MWAW_T_ZWRITE ,
160  MWAW_T_4DIMENSION ,
161 
162  MWAW_T_RESERVED1 ,
163  MWAW_T_RESERVED2 ,
164  MWAW_T_RESERVED3 ,
165  MWAW_T_RESERVED4 ,
166  MWAW_T_RESERVED5 ,
167  MWAW_T_RESERVED6 ,
168  MWAW_T_RESERVED7 ,
169  MWAW_T_RESERVED8 ,
170  MWAW_T_RESERVED9 ,
171 
174  MWAW_T_CLARISDRAW=MWAW_T_RESERVED1,
177  MWAW_T_APPLEPICT=MWAW_T_RESERVED2,
180  MWAW_T_STYLE=MWAW_T_RESERVED3,
183  MWAW_T_FREEHAND=MWAW_T_RESERVED4,
186  MWAW_T_CRICKETDRAW=MWAW_T_RESERVED5,
189  MWAW_T_MAXWRITE=MWAW_T_RESERVED6,
192  MWAW_T_MOUSEWRITE=MWAW_T_RESERVED7,
195  MWAW_T_POWERPOINT=MWAW_T_RESERVED8
196 
197  /* FORMAT TO ADD:
198  PublishIt, tools to create SlideShow, complexity probably medium-hard
199  */
200  };
201 
210  static MWAWLIB Confidence isFileFormatSupported(librevenge::RVNGInputStream *input, Type &type, Kind &kind);
211 
212  // ------------------------------------------------------------
213  // the different main parsers
214  // ------------------------------------------------------------
215 
224  static MWAWLIB Result parse(librevenge::RVNGInputStream *input, librevenge::RVNGTextInterface *documentInterface, char const *password=0);
225 
235  static MWAWLIB Result parse(librevenge::RVNGInputStream *input, librevenge::RVNGDrawingInterface *documentInterface, char const *password=0);
236 
246  static MWAWLIB Result parse(librevenge::RVNGInputStream *input, librevenge::RVNGPresentationInterface *documentInterface, char const *password=0);
247 
257  static MWAWLIB Result parse(librevenge::RVNGInputStream *input, librevenge::RVNGSpreadsheetInterface *documentInterface, char const *password=0);
258 
259  // ------------------------------------------------------------
260  // decoders of the embedded zones created by libmwaw
261  // ------------------------------------------------------------
262 
272  static MWAWLIB bool decodeGraphic(librevenge::RVNGBinaryData const &binary, librevenge::RVNGDrawingInterface *documentInterface);
273 
284  static MWAWLIB bool decodeSpreadsheet(librevenge::RVNGBinaryData const &binary, librevenge::RVNGSpreadsheetInterface *documentInterface);
285 
295  static MWAWLIB bool decodeText(librevenge::RVNGBinaryData const &binary, librevenge::RVNGTextInterface *documentInterface);
296 };
297 
298 #endif /* MWAWDOCUMENT_HXX */
299 // vim: set filetype=cpp tabstop=2 shiftwidth=2 cindent autoindent smartindent noexpandtab:
Definition: MWAWDocument.hxx:56
This class provides all the functions needed by applications to parse many pre-MacOSX documents...
Definition: MWAWDocument.hxx:69
Type
an enum to define the different type of document
Definition: MWAWDocument.hxx:99
SuperPaint: export drawing and paint v1 document.
Definition: MWAWDocument.hxx:150
#define MWAWLIB
Definition: MWAWDocument.hxx:52
RagTime: -Mac v2.1-v3.2: done, -all v5.0-v6.5: incomplete, only try to retrieve the picture/shape/tex...
Definition: MWAWDocument.hxx:144
Kind
an enum to define the kind of document
Definition: MWAWDocument.hxx:80
Result
an enum which defines the result of the file parsing
Definition: MWAWDocument.hxx:90
Confidence
an enum which defines if we have confidence that a file is supported
Definition: MWAWDocument.hxx:73

Generated on Wed Nov 23 2016 19:58:48 for libmwaw by doxygen 1.8.12