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
56namespace librevenge
57{
58class RVNGBinaryData;
59class RVNGDrawingInterface;
60class RVNGPresentationInterface;
61class RVNGSpreadsheetInterface;
62class RVNGTextInterface;
63class RVNGInputStream;
64}
65
70{
71public:
78 };
80 enum Kind {
88 };
90 enum Result {
97 };
99 enum Type {
161
171
172 //
173 // the reserved 10-29 were added in libmwaw 0.3.17
174 //
195
254
255 /* FORMAT TO ADD:
256 PublishIt, tools to create SlideShow, complexity probably medium-hard
257 */
258 };
259
268 static MWAWLIB Confidence isFileFormatSupported(librevenge::RVNGInputStream *input, Type &type, Kind &kind);
269
270 // ------------------------------------------------------------
271 // the different main parsers
272 // ------------------------------------------------------------
273
282 static MWAWLIB Result parse(librevenge::RVNGInputStream *input, librevenge::RVNGTextInterface *documentInterface, char const *password=nullptr);
283
293 static MWAWLIB Result parse(librevenge::RVNGInputStream *input, librevenge::RVNGDrawingInterface *documentInterface, char const *password=nullptr);
294
304 static MWAWLIB Result parse(librevenge::RVNGInputStream *input, librevenge::RVNGPresentationInterface *documentInterface, char const *password=nullptr);
305
315 static MWAWLIB Result parse(librevenge::RVNGInputStream *input, librevenge::RVNGSpreadsheetInterface *documentInterface, char const *password=nullptr);
316
317 // ------------------------------------------------------------
318 // decoders of the embedded zones created by libmwaw
319 // ------------------------------------------------------------
320
330 static MWAWLIB bool decodeGraphic(librevenge::RVNGBinaryData const &binary, librevenge::RVNGDrawingInterface *documentInterface);
331
342 static MWAWLIB bool decodeSpreadsheet(librevenge::RVNGBinaryData const &binary, librevenge::RVNGSpreadsheetInterface *documentInterface);
343
353 static MWAWLIB bool decodeText(librevenge::RVNGBinaryData const &binary, librevenge::RVNGTextInterface *documentInterface);
354};
355
356#endif /* MWAWDOCUMENT_HXX */
357// vim: set filetype=cpp tabstop=2 shiftwidth=2 cindent autoindent smartindent noexpandtab:
#define MWAWLIB
Definition: MWAWDocument.hxx:52
This class provides all the functions needed by applications to parse many pre-MacOSX documents.
Definition: MWAWDocument.hxx:70
Result
an enum which defines the result of the file parsing
Definition: MWAWDocument.hxx:90
@ MWAW_R_PARSE_ERROR
problem when parsing the file
Definition: MWAWDocument.hxx:94
@ MWAW_R_FILE_ACCESS_ERROR
problem when accessing file
Definition: MWAWDocument.hxx:92
@ MWAW_R_OK
conversion ok
Definition: MWAWDocument.hxx:91
@ MWAW_R_UNKNOWN_ERROR
unknown error
Definition: MWAWDocument.hxx:96
@ MWAW_R_PASSWORD_MISSMATCH_ERROR
problem when using the given password
Definition: MWAWDocument.hxx:95
@ MWAW_R_OLE_ERROR
problem when reading the OLE structure
Definition: MWAWDocument.hxx:93
static MWAWLIB bool decodeGraphic(librevenge::RVNGBinaryData const &binary, librevenge::RVNGDrawingInterface *documentInterface)
Parses the graphic contained in the binary data and called documentInterface to reconstruct a graphic...
Definition: MWAWDocument.cxx:428
Confidence
an enum which defines if we have confidence that a file is supported
Definition: MWAWDocument.hxx:73
@ MWAW_C_SUPPORTED_ENCRYPTION
encryption supported
Definition: MWAWDocument.hxx:76
@ MWAW_C_UNSUPPORTED_ENCRYPTION
encryption not supported
Definition: MWAWDocument.hxx:75
@ MWAW_C_EXCELLENT
supported
Definition: MWAWDocument.hxx:77
@ MWAW_C_NONE
not supported
Definition: MWAWDocument.hxx:74
static MWAWLIB Confidence isFileFormatSupported(librevenge::RVNGInputStream *input, Type &type, Kind &kind)
Analyzes the content of an input stream to see if it can be parsed.
Definition: MWAWDocument.cxx:131
static MWAWLIB Result parse(librevenge::RVNGInputStream *input, librevenge::RVNGTextInterface *documentInterface, char const *password=nullptr)
Parses the input stream content.
Definition: MWAWDocument.cxx:387
static MWAWLIB bool decodeSpreadsheet(librevenge::RVNGBinaryData const &binary, librevenge::RVNGSpreadsheetInterface *documentInterface)
Parses the spreadsheet contained in the binary data and called documentInterface to reconstruct a spr...
Definition: MWAWDocument.cxx:445
static MWAWLIB bool decodeText(librevenge::RVNGBinaryData const &binary, librevenge::RVNGTextInterface *documentInterface)
Parses the text contained in the binary data and called documentInterface to reconstruct a text.
Definition: MWAWDocument.cxx:462
Type
an enum to define the different type of document
Definition: MWAWDocument.hxx:99
@ MWAW_T_RESERVED22
Reserved for future used.
Definition: MWAWDocument.hxx:187
@ MWAW_T_MICROSOFTFILE
Microsoft File(data base): TODO.
Definition: MWAWDocument.hxx:130
@ MWAW_T_WINGZ
Wingz (v1.1)
Definition: MWAWDocument.hxx:155
@ MWAW_T_MICROSOFTWORKS
Microsoft Works Mac: export database(as spreadsheet), graphic, spreadsheet and text files.
Definition: MWAWDocument.hxx:133
@ MWAW_T_FULLPAINT
FullPaint: v1 ( same format as MacPaint file)
Definition: MWAWDocument.hxx:114
@ MWAW_T_HANMACWORDJ
HanMac Word-J (v2.0.4)
Definition: MWAWDocument.hxx:117
@ MWAW_T_RESERVED3
Used for Style v1.6: see below.
Definition: MWAWDocument.hxx:164
@ MWAW_T_RESERVED20
Reserved for future used.
Definition: MWAWDocument.hxx:185
@ MWAW_T_MOUSEWRITE
MouseWrite: v1.
Definition: MWAWDocument.hxx:216
@ MWAW_T_FOXBASE
FoxBase: TODO.
Definition: MWAWDocument.hxx:111
@ MWAW_T_APPLEPICT
Apple Pict: v1 or v2.
Definition: MWAWDocument.hxx:201
@ MWAW_T_SYMPOSIUM
Symposium: TODO.
Definition: MWAWDocument.hxx:151
@ MWAW_T_DBASE
DBase: TODO.
Definition: MWAWDocument.hxx:106
@ MWAW_T_FULLWRITE
FullWrite Professional: basic.
Definition: MWAWDocument.hxx:115
@ MWAW_T_MICROSOFTMULTIPLAN
Microsoft Multiplan: v1.11.
Definition: MWAWDocument.hxx:131
@ MWAW_T_BEAGLEWORKS
BeagleWorks (v1.0)/WordPerfect Works (v1.2): export database(as spreadsheet), draw,...
Definition: MWAWDocument.hxx:103
@ MWAW_T_RESERVED2
Used for Apple's Pict file: see below.
Definition: MWAWDocument.hxx:163
@ MWAW_T_EDOC
eDOC (v2)
Definition: MWAWDocument.hxx:108
@ MWAW_T_CLARISRESOLVE
Claris Resolve (v1.1)
Definition: MWAWDocument.hxx:104
@ MWAW_T_RESERVED19
Reserved for future used.
Definition: MWAWDocument.hxx:184
@ MWAW_T_RESERVED9
Used for Corel Painter: see below.
Definition: MWAWDocument.hxx:170
@ MWAW_T_MAXWRITE
MaxWrite: v1.
Definition: MWAWDocument.hxx:213
@ MWAW_T_JAZZLOTUS
Jazz (Lotus): v1 ; retrieve the spreadsheet and if the resource fork is available,...
Definition: MWAWDocument.hxx:237
@ MWAW_T_STYLE
Style: v1.6, v1.9.
Definition: MWAWDocument.hxx:204
@ MWAW_T_STUDENTWRITING
Student Writing Center: v1.
Definition: MWAWDocument.hxx:245
@ MWAW_T_LIGHTWAYTEXT
LightWayText (only v4 Mac format)
Definition: MWAWDocument.hxx:121
@ MWAW_T_RESERVED10
Used for Deneba Canvas: see below.
Definition: MWAWDocument.hxx:175
@ MWAW_T_RESERVED17
Reserved for future used.
Definition: MWAWDocument.hxx:182
@ MWAW_T_MACDOC
MacDoc (v1.3)
Definition: MWAWDocument.hxx:122
@ MWAW_T_INFOGENIE
InfoGenie: TODO.
Definition: MWAWDocument.hxx:119
@ MWAW_T_WORDMAKER
WordMaker: v1.
Definition: MWAWDocument.hxx:241
@ MWAW_T_RAGTIME
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
@ MWAW_T_FRAMEMAKER
FrameMaker: TODO.
Definition: MWAWDocument.hxx:112
@ MWAW_T_MACWRITE
MacWrite.
Definition: MWAWDocument.hxx:134
@ MWAW_T_RESERVED14
Used for Student Writing Center: see below.
Definition: MWAWDocument.hxx:179
@ MWAW_T_MACDRAWPRO
MacDraw II: v1.0-v1.1, MacDraw Pro: v1.
Definition: MWAWDocument.hxx:125
@ MWAW_T_RESERVED1
Used for ClarisDraw v1 file: see below.
Definition: MWAWDocument.hxx:162
@ MWAW_T_RESERVED8
Used for PowerPoint: see below.
Definition: MWAWDocument.hxx:169
@ MWAW_T_ZWRITE
Z-Write (v1.3)
Definition: MWAWDocument.hxx:159
@ MWAW_T_GREATWORKS
GreatWorks (v1-v2): export text, drawing, paint and spreadsheet document.
Definition: MWAWDocument.hxx:116
@ MWAW_T_XPRESS
XPress: TODO.
Definition: MWAWDocument.hxx:158
@ MWAW_T_DOCMAKER
DocMaker (v4)
Definition: MWAWDocument.hxx:107
@ MWAW_T_HANMACWORDK
HanMac Word-K (v2.0.5-2.0.6)
Definition: MWAWDocument.hxx:118
@ MWAW_T_RESERVED27
Reserved for future used.
Definition: MWAWDocument.hxx:192
@ MWAW_T_4DIMENSION
4th Dimension: TODO
Definition: MWAWDocument.hxx:160
@ MWAW_T_RESERVED15
Used for Script Writer: see below.
Definition: MWAWDocument.hxx:180
@ MWAW_T_MICROSOFTWORD
Microsoft Word (v1-v5)
Definition: MWAWDocument.hxx:132
@ MWAW_T_RESERVED28
Reserved for future used.
Definition: MWAWDocument.hxx:193
@ MWAW_T_RESERVED16
Used for Scoop: see below.
Definition: MWAWDocument.hxx:181
@ MWAW_T_TEXEDIT
Tex-Edit (v2)
Definition: MWAWDocument.hxx:153
@ MWAW_T_RESERVED25
Reserved for future used.
Definition: MWAWDocument.hxx:190
@ MWAW_T_FREEHAND
FreeHand: v1.
Definition: MWAWDocument.hxx:207
@ MWAW_T_SUPERPAINT
SuperPaint: export drawing and paint v1 document.
Definition: MWAWDocument.hxx:150
@ MWAW_T_MACWRITEPRO
MacWrite II/Pro.
Definition: MWAWDocument.hxx:135
@ MWAW_T_RESERVED23
Reserved for future used.
Definition: MWAWDocument.hxx:188
@ MWAW_T_CRICKETDRAW
Cricket Draw: v1.0.1 and v1.1.1.
Definition: MWAWDocument.hxx:210
@ MWAW_T_RESERVED4
Used for FreeHand: see below.
Definition: MWAWDocument.hxx:165
@ MWAW_T_MACDRAW
MacDraw: v0-v1.
Definition: MWAWDocument.hxx:124
@ MWAW_T_RESERVED24
Reserved for future used.
Definition: MWAWDocument.hxx:189
@ MWAW_T_FAMILYTREEMAKER
Family Tree Maker: TODO.
Definition: MWAWDocument.hxx:109
@ MWAW_T_CLARISWORKS
ClarisWorks/AppleWorks: all versions, export database (as spreadsheet), draw(as text),...
Definition: MWAWDocument.hxx:105
@ MWAW_T_PIXELPAINT
PixelPaint: v1-v2.1.
Definition: MWAWDocument.hxx:139
@ MWAW_T_RESERVED7
Used for MouseWrite: see below.
Definition: MWAWDocument.hxx:168
@ MWAW_T_MARINERWRITE
Mariner Write (only v1.6-v3.5 Mac Classic)
Definition: MWAWDocument.hxx:127
@ MWAW_T_PAGEMAKER
PageMaker: TODO.
Definition: MWAWDocument.hxx:138
@ MWAW_T_ACTA
Acta (v2 and Classic v1)
Definition: MWAWDocument.hxx:101
@ MWAW_T_SCOOP
Scoop: v1.
Definition: MWAWDocument.hxx:253
@ MWAW_T_RESERVED29
Reserved for future used.
Definition: MWAWDocument.hxx:194
@ MWAW_T_ADOBEILLUSTRATOR
Adobe Illustrator: TODO.
Definition: MWAWDocument.hxx:102
@ MWAW_T_NISUSWRITER
Nisus Writer (v3.4-v6.5)
Definition: MWAWDocument.hxx:136
@ MWAW_T_FULLIMPACT
FullImpact: TODO.
Definition: MWAWDocument.hxx:113
@ MWAW_T_RESERVED21
Reserved for future used.
Definition: MWAWDocument.hxx:186
@ MWAW_T_DRAWINGTABLE
Drawing Table: v1.
Definition: MWAWDocument.hxx:233
@ MWAW_T_WRITENOW
WriteNow.
Definition: MWAWDocument.hxx:156
@ MWAW_T_WRITERPLUS
WriterPlus.
Definition: MWAWDocument.hxx:157
@ MWAW_T_FILEMAKER
FileMaker: TODO.
Definition: MWAWDocument.hxx:110
@ MWAW_T_KALEIDAGRAPH
Kaleida Graph: TODO.
Definition: MWAWDocument.hxx:120
@ MWAW_T_TEACHTEXT
TeachText/SimpleText.
Definition: MWAWDocument.hxx:152
@ MWAW_T_MACPAINT
MacPaint: v1-v2.
Definition: MWAWDocument.hxx:126
@ MWAW_T_RESERVED26
Reserved for future used.
Definition: MWAWDocument.hxx:191
@ MWAW_T_CORELPAINTER
Corel Painter: Fractal Design Painter Mac v1-v4, MetaCreations Mac v5-v6, Corel Painter Mac v7-v10 an...
Definition: MWAWDocument.hxx:224
@ MWAW_T_MACDRAFT
MacDraft: v1, v4-v5.
Definition: MWAWDocument.hxx:123
@ MWAW_T_CANVAS
Deneba Canvas mac: v2-v3 and v5-v8, windows: v3 and v5-v6 and probably v7-v8 ADC Canvas mac: v9-v10,...
Definition: MWAWDocument.hxx:229
@ MWAW_T_CLARISDRAW
Claris Draw: v1.0.1-v1.0.3.
Definition: MWAWDocument.hxx:198
@ MWAW_T_MINDWRITE
MindWrite.
Definition: MWAWDocument.hxx:128
@ MWAW_T_MORE
More (v2-3): retrieve the organization part but not the slide/tree parts.
Definition: MWAWDocument.hxx:129
@ MWAW_T_RESERVED18
Reserved for future used.
Definition: MWAWDocument.hxx:183
@ MWAW_T_RESERVED12
Used for Jazz Lotus: see below.
Definition: MWAWDocument.hxx:177
@ MWAW_T_RESERVED5
Used for Cricket Draw: see below.
Definition: MWAWDocument.hxx:166
@ MWAW_T_POWERPOINT
PowerPoint: v1-v4 and pc v2-v4,95.
Definition: MWAWDocument.hxx:219
@ MWAW_T_OVERVUE
OverVUE: TODO.
Definition: MWAWDocument.hxx:137
@ MWAW_T_RESERVED13
Used for WordMaker: see below.
Definition: MWAWDocument.hxx:178
@ MWAW_T_UNKNOWN
Unrecognised file type.
Definition: MWAWDocument.hxx:100
@ MWAW_T_TRAPEZE
Trapeze spreadsheet: TODO.
Definition: MWAWDocument.hxx:154
@ MWAW_T_RESERVED6
Used for MaxWrite: see below.
Definition: MWAWDocument.hxx:167
@ MWAW_T_READYSETGO
Ready,Set,Go!: v1-v4.5 (only Mac)
Definition: MWAWDocument.hxx:145
@ MWAW_T_RESERVED11
Used for Drawing Table: see below.
Definition: MWAWDocument.hxx:176
@ MWAW_T_SCRIPTWRITER
Script Writer: v1.3.
Definition: MWAWDocument.hxx:249
Kind
an enum to define the kind of document
Definition: MWAWDocument.hxx:80
@ MWAW_K_DATABASE
database
Definition: MWAWDocument.hxx:87
@ MWAW_K_SPREADSHEET
spreadsheet
Definition: MWAWDocument.hxx:86
@ MWAW_K_PAINT
bitmap graphic
Definition: MWAWDocument.hxx:84
@ MWAW_K_UNKNOWN
unknown
Definition: MWAWDocument.hxx:81
@ MWAW_K_PRESENTATION
presentation graphic
Definition: MWAWDocument.hxx:85
@ MWAW_K_TEXT
word processing file
Definition: MWAWDocument.hxx:82
@ MWAW_K_DRAW
vectorized grphic
Definition: MWAWDocument.hxx:83
Definition: MWAWDocument.hxx:57

Generated on Thu Jan 19 2023 00:00:00 for libmwaw by doxygen 1.9.6