PowerPoint7Parser.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
34#ifndef POWER_POINT7_PARSER
35# define POWER_POINT7_PARSER
36
37#include <map>
38#include <set>
39#include <vector>
40
41#include "MWAWDebug.hxx"
42#include "MWAWInputStream.hxx"
43
44#include "MWAWParser.hxx"
45
47{
48struct State;
49}
50
51namespace PowerPoint7Struct
52{
53struct SlideId;
54}
55
57class PowerPoint7Text;
58
62{
63 friend class PowerPoint7Graph;
64 friend class PowerPoint7Text;
65public:
69 virtual ~PowerPoint7Parser();
70
72 bool checkHeader(MWAWHeader *header, bool strict=false);
73
74 // the main parse function
75 void parse(librevenge::RVNGPresentationInterface *documentInterface);
76
77protected:
79 void createDocument(librevenge::RVNGPresentationInterface *documentInterface);
80
82 bool createZones();
84 void sendSlides();
85
86 //
87 // send data
88 //
89
90 // interface with the text parser
91
93 bool getColor(int cId, MWAWColor &col) const;
95 bool sendText(int textId);
96
97 //
98 // low level
99 //
100
102 bool readDocRoot();
104 bool readMainSub10(long endPos);
106 bool readDocument(long endPos);
108 bool readDocAtom(int level, long endPos);
110 bool readSlideInformation(int level, long endPos);
112 bool readSlides(int level, long endPos, bool master);
114 bool readSlideAtom(int level, long endPos,
117 bool readNotes(int level, long endPos);
119 bool readNoteAtom(int level, long endPos, PowerPoint7Struct::SlideId &sId);
121 bool readEnvironment(int level, long endPos);
123 bool readColorScheme(int level, long endPos, std::vector<MWAWColor> &colors);
125 bool readZone1015(int level, long endPos);
127 bool readSlideShowInfo(int level, long endPos);
129 bool readSlideViewInfo(int level, long endPos);
131 bool readGuideAtom(int level, long endPos);
133 bool readViewInfoAtom(int level, long endPos);
135 bool readSlideViewInfoAtom(int level, long endPos);
137 bool readVbaInfo(int level, long endPos);
139 bool readVbaInfoAtom(int level, long endPos);
141 bool readSSDocInfoAtom(int level, long endPos);
143 bool readSummary(int level, long endPos);
145 bool readZone1028(int level, long endPos);
147 bool readZone1028Atom(int level, long endPos);
149 bool readOutlineViewInfo(int level, long endPos);
151 bool readSorterViewInfo(int level, long endPos);
152
154 bool readContainerList(int level, long endPos);
156 bool readContainerAtom(int level, long endPos, int &N);
158 bool readIdentifier(int level, long endPos, int &id, std::string const &wh);
160 bool readBookmarkCollection(int level, long endPos);
162 bool readSoundCollection(int level, long endPos);
164 bool readBookmarkSeedAtom(int level, long endPos);
166 bool readZone2026(int level, long endPos);
168 bool readColorList(int level, long endPos, std::vector<MWAWColor> &colors);
169
171 bool readZone3000(int level, long endPos);
173 bool readZone3012(int level, long endPos);
175 bool readZone3012Atom(int level, long endPos);
176
178 bool readTextCharsAtom(int level, long endPos);
180 bool readStyleTextPropAtom(int level, long endPos, int &textId);
182 bool readOutlineTextProps9Atom(int level, long endPos,
183 int &pId, PowerPoint7Struct::SlideId &sId);
185 bool readOutlineTextPropsHeader9Atom(int level, long endPos);
187 bool readString(int level, long endPos, std::string &string, int &zId, std::string const &what="");
189 bool readSlideIdentifier(int level, long endPos, PowerPoint7Struct::SlideId &sId);
191 bool readZone4039(int level, long endPos);
193 bool readKinsoku(int level, long endPos);
195 bool readHandout(int level, long endPos);
197 bool readZone4042(int level, long endPos);
199 bool readKinsokuAtom(int level, long endPos);
201 bool readZone1028Data(int level, long endPos);
203 bool readSlideIdentifierContainer(int level, long endPos, PowerPoint7Struct::SlideId &sId);
205 bool readHeaderFooters(int level, long endPos);
207 bool readHeaderFooterAtom(int level, long endPos);
209 bool readZone4072(int level, long endPos);
210
212 bool readZone(int level, long endPos);
214 bool readZoneNoData(int level, long endPos, std::string const &name, std::string const &wh="");
215
220protected:
221 //
222 // data
223 //
225 shared_ptr<PowerPoint7ParserInternal::State> m_state;
226};
227#endif
228// vim: set filetype=cpp tabstop=2 shiftwidth=2 cindent autoindent smartindent noexpandtab:
a function used by MWAWDocument to store the version of document
Definition: MWAWHeader.hxx:57
virtual class which defines the ancestor of all presentation zone parser
Definition: MWAWParser.hxx:266
the main class to read the graphic part of a PowerPoint 95 file
Definition: PowerPoint7Graph.hxx:74
the main class to read a Microsoft PowerPoint 95 files (Windows)
Definition: PowerPoint7Parser.hxx:62
bool readZone3000(int level, long endPos)
try to read the zone 3000: child of Handout/Notes/Slides/Zone3001
Definition: PowerPoint7Parser.cxx:1872
bool readZone4072(int level, long endPos)
try to read the zone 4072: child of Zone3008
Definition: PowerPoint7Parser.cxx:2629
void parse(librevenge::RVNGPresentationInterface *documentInterface)
virtual function used to parse the input
Definition: PowerPoint7Parser.cxx:204
bool readBookmarkCollection(int level, long endPos)
try to read the bookmark collection zone 2019
Definition: PowerPoint7Parser.cxx:1658
bool readZoneNoData(int level, long endPos, std::string const &name, std::string const &wh="")
try to read a zone with no data
Definition: PowerPoint7Parser.cxx:2679
bool readSlides(int level, long endPos, bool master)
try to read the slides zone 1006(slides) or 1016(master)
Definition: PowerPoint7Parser.cxx:590
bool readZone4039(int level, long endPos)
try to read the zone 4039: child of Zone4072
Definition: PowerPoint7Parser.cxx:2325
bool readVbaInfoAtom(int level, long endPos)
try to read the vba info zone 1024
Definition: PowerPoint7Parser.cxx:1225
bool readZone4042(int level, long endPos)
try to read the zone 4042: child of FontCollection
bool readHandout(int level, long endPos)
try to read the handout zone 4041
Definition: PowerPoint7Parser.cxx:2360
bool readSlideViewInfoAtom(int level, long endPos)
try to read the slide view info zone 1022
Definition: PowerPoint7Parser.cxx:1145
bool readColorScheme(int level, long endPos, std::vector< MWAWColor > &colors)
try to read the color scheme 1012
Definition: PowerPoint7Parser.cxx:905
bool readSlideInformation(int level, long endPos)
try to read the slide information 1005: dimension, has background, ...
Definition: PowerPoint7Parser.cxx:521
bool readSlideAtom(int level, long endPos, PowerPoint7Struct::SlideId &sId, PowerPoint7Struct::SlideId &mId)
try to read the slide zone 1007
Definition: PowerPoint7Parser.cxx:689
bool readKinsoku(int level, long endPos)
try to read the Kinsoku zone 4040
Definition: PowerPoint7Parser.cxx:2275
bool readSlideIdentifierContainer(int level, long endPos, PowerPoint7Struct::SlideId &sId)
try to read a container of a slide identifier 4054
Definition: PowerPoint7Parser.cxx:2497
bool readTextCharsAtom(int level, long endPos)
try to read the text chars atom zone 4000
Definition: PowerPoint7Parser.cxx:2017
virtual ~PowerPoint7Parser()
destructor
Definition: PowerPoint7Parser.cxx:181
bool readSlideViewInfo(int level, long endPos)
try to read the slide view info zone 1018
Definition: PowerPoint7Parser.cxx:1022
bool readViewInfoAtom(int level, long endPos)
try to read the view info zone 1021
Definition: PowerPoint7Parser.cxx:1103
bool readEnvironment(int level, long endPos)
try to read the environment zone 1010
Definition: PowerPoint7Parser.cxx:835
bool readZone1028(int level, long endPos)
try to read the zone 1028: child of Environment
Definition: PowerPoint7Parser.cxx:1335
bool readIdentifier(int level, long endPos, int &id, std::string const &wh)
try to read an identifier zone 2017
Definition: PowerPoint7Parser.cxx:1630
bool readNotes(int level, long endPos)
try to read the notes zone 1008
Definition: PowerPoint7Parser.cxx:728
bool readZone1028Atom(int level, long endPos)
try to read the zone 1029
Definition: PowerPoint7Parser.cxx:1382
bool readSoundCollection(int level, long endPos)
try to read the sound collection zone 2020
Definition: PowerPoint7Parser.cxx:1710
bool readSlideShowInfo(int level, long endPos)
try to read the slide show info zone 1017
Definition: PowerPoint7Parser.cxx:989
bool readSSDocInfoAtom(int level, long endPos)
try to read the slide show doc info atom 1025: child of Document
Definition: PowerPoint7Parser.cxx:1258
bool readGuideAtom(int level, long endPos)
try to read the guide atom zone 1019
Definition: PowerPoint7Parser.cxx:1072
bool readStyleTextPropAtom(int level, long endPos, int &textId)
try to read the style text prop atom zone 4001
Definition: PowerPoint7Parser.cxx:2067
bool readOutlineViewInfo(int level, long endPos)
try to read the outline view info zone 1031
Definition: PowerPoint7Parser.cxx:1416
bool parseTextContent(MWAWInputStreamPtr input)
try to read the "Text_Content" stream
Definition: PowerPoint7Parser.cxx:2766
bool readBookmarkSeedAtom(int level, long endPos)
try to read the bookmark seed atom zone 2025
Definition: PowerPoint7Parser.cxx:1751
bool readString(int level, long endPos, std::string &string, int &zId, std::string const &what="")
try to read the string zone 4026
Definition: PowerPoint7Parser.cxx:2219
bool readOutlineTextProps9Atom(int level, long endPos, int &pId, PowerPoint7Struct::SlideId &sId)
try to read the outline text props9 atom zone 4009
Definition: PowerPoint7Parser.cxx:2124
bool readMainSub10(long endPos)
try to read the main sub zone: the zone 10: child of Root
Definition: PowerPoint7Parser.cxx:365
bool readDocument(long endPos)
try to read the document's zone 1000: child of Root
Definition: PowerPoint7Parser.cxx:399
void checkForUnparsedZones()
check for unparsed zone
Definition: PowerPoint7Parser.cxx:2758
bool checkHeader(MWAWHeader *header, bool strict=false)
checks if the document header is correct (or not)
Definition: PowerPoint7Parser.cxx:2843
bool readColorList(int level, long endPos, std::vector< MWAWColor > &colors)
try to read the color list zone 2031
Definition: PowerPoint7Parser.cxx:1826
shared_ptr< PowerPoint7ParserInternal::State > m_state
the state
Definition: PowerPoint7Parser.hxx:225
bool sendText(int textId)
try to send the text content
Definition: PowerPoint7Parser.cxx:185
bool readDocAtom(int level, long endPos)
try to read the document atom's zone 1001: child of Document
Definition: PowerPoint7Parser.cxx:464
bool readZone3012(int level, long endPos)
try to read the zone 3012: child of Environment
Definition: PowerPoint7Parser.cxx:1931
bool readNoteAtom(int level, long endPos, PowerPoint7Struct::SlideId &sId)
try to read the note atom zone 1009
Definition: PowerPoint7Parser.cxx:804
void createDocument(librevenge::RVNGPresentationInterface *documentInterface)
creates the listener which will be associated to the document
Definition: PowerPoint7Parser.cxx:234
bool readDocRoot()
try to read the main zone: the zone 3
Definition: PowerPoint7Parser.cxx:317
bool readSorterViewInfo(int level, long endPos)
try to read the sorter view info zone 1032
Definition: PowerPoint7Parser.cxx:1460
bool readHeaderFooterAtom(int level, long endPos)
try to read the header footer atom zone: 4058
Definition: PowerPoint7Parser.cxx:2591
bool readOutlineTextPropsHeader9Atom(int level, long endPos)
try to read the outline text props header9 atom zone 4015
Definition: PowerPoint7Parser.cxx:2188
PowerPoint7Parser(MWAWInputStreamPtr input, MWAWRSRCParserPtr rsrcParser, MWAWHeader *header)
constructor
Definition: PowerPoint7Parser.cxx:173
bool readKinsokuAtom(int level, long endPos)
try to read the Kinsoku atom zone 4050
Definition: PowerPoint7Parser.cxx:2429
bool readZone1015(int level, long endPos)
try to read the zone 1015: child of Slides
Definition: PowerPoint7Parser.cxx:949
bool readZone1028Data(int level, long endPos)
try to read the zone 4052: child of Zone1028
Definition: PowerPoint7Parser.cxx:2457
bool readSummary(int level, long endPos)
try to read the summary zone 1026: child of Document
Definition: PowerPoint7Parser.cxx:1291
bool readHeaderFooters(int level, long endPos)
try to read the header footer zone: 4057
Definition: PowerPoint7Parser.cxx:2541
bool getColor(int cId, MWAWColor &col) const
returns the color corresponding to an id
Definition: PowerPoint7Parser.cxx:190
bool readContainerAtom(int level, long endPos, int &N)
try to read the container atom zone 2001
Definition: PowerPoint7Parser.cxx:1600
bool readZone2026(int level, long endPos)
try to read the zone 2026: child of SlideViewInfo
Definition: PowerPoint7Parser.cxx:1782
bool createZones()
finds the different zones
Definition: PowerPoint7Parser.cxx:275
void sendSlides()
try to send all slides
Definition: PowerPoint7Parser.cxx:2803
bool readContainerList(int level, long endPos)
try to read the container list zone 2000: child of Document
Definition: PowerPoint7Parser.cxx:1504
bool readZone3012Atom(int level, long endPos)
try to read the zone 3013: child of Zone3012
Definition: PowerPoint7Parser.cxx:1987
bool readZone(int level, long endPos)
try to read a zone
Definition: PowerPoint7Parser.cxx:2707
bool readVbaInfo(int level, long endPos)
try to read the vba info zone 1023
Definition: PowerPoint7Parser.cxx:1175
bool readSlideIdentifier(int level, long endPos, PowerPoint7Struct::SlideId &sId)
try to read a slide identifier zone 4032
Definition: PowerPoint7Parser.cxx:2244
the main class to read the text part of a PowerPoint 95 file
Definition: PowerPoint7Text.hxx:68
shared_ptr< MWAWRSRCParser > MWAWRSRCParserPtr
a smart pointer of MWAWRSRCParser
Definition: libmwaw_internal.hxx:513
shared_ptr< MWAWInputStream > MWAWInputStreamPtr
a smart pointer of MWAWInputStream
Definition: libmwaw_internal.hxx:503
Internal: the structures of a PowerPoint7Parser.
Definition: PowerPoint7Parser.cxx:61
namespace used to define basic struct of a Microsoft PowerPoint 95 files (Windows)
Definition: PowerPoint7Graph.hxx:62
the class to store a color
Definition: libmwaw_internal.hxx:182
a slide id
Definition: PowerPoint7Struct.hxx:50

Generated on Wed Jan 19 2022 22:23:17 for libmwaw by doxygen 1.9.3