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 {
78  };
80  enum Kind {
88  };
90  enum Result {
97  };
99  enum Type {
161 
171 
181 
182  /* FORMAT TO ADD:
183  PublishIt, tools to create SlideShow, complexity probably medium-hard
184  */
185  };
186 
195  static MWAWLIB Confidence isFileFormatSupported(librevenge::RVNGInputStream *input, Type &type, Kind &kind);
196 
197  // ------------------------------------------------------------
198  // the different main parsers
199  // ------------------------------------------------------------
200 
209  static MWAWLIB Result parse(librevenge::RVNGInputStream *input, librevenge::RVNGTextInterface *documentInterface, char const *password=0);
210 
220  static MWAWLIB Result parse(librevenge::RVNGInputStream *input, librevenge::RVNGDrawingInterface *documentInterface, char const *password=0);
221 
231  static MWAWLIB Result parse(librevenge::RVNGInputStream *input, librevenge::RVNGPresentationInterface *documentInterface, char const *password=0);
232 
242  static MWAWLIB Result parse(librevenge::RVNGInputStream *input, librevenge::RVNGSpreadsheetInterface *documentInterface, char const *password=0);
243 
244  // ------------------------------------------------------------
245  // decoders of the embedded zones created by libmwaw
246  // ------------------------------------------------------------
247 
257  static MWAWLIB bool decodeGraphic(librevenge::RVNGBinaryData const &binary, librevenge::RVNGDrawingInterface *documentInterface);
258 
269  static MWAWLIB bool decodeSpreadsheet(librevenge::RVNGBinaryData const &binary, librevenge::RVNGSpreadsheetInterface *documentInterface);
270 
280  static MWAWLIB bool decodeText(librevenge::RVNGBinaryData const &binary, librevenge::RVNGTextInterface *documentInterface);
281 };
282 
283 #endif /* MWAWDOCUMENT_HXX */
284 // vim: set filetype=cpp tabstop=2 shiftwidth=2 cindent autoindent smartindent noexpandtab:

Generated on Tue Mar 1 2016 23:42:50 for libmwaw by doxygen 1.8.4