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:
67 PowerPoint7Parser(MWAWInputStreamPtr const &input, MWAWRSRCParserPtr const &rsrcParser, MWAWHeader *header);
69 ~PowerPoint7Parser() final;
70
72 bool checkHeader(MWAWHeader *header, bool strict=false) final;
73
74 // the main parse function
75 void parse(librevenge::RVNGPresentationInterface *documentInterface) final;
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,
115 PowerPoint7Struct::SlideId &sId, PowerPoint7Struct::SlideId &mId);
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 std::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:267
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:1875
bool readZone4072(int level, long endPos)
try to read the zone 4072: child of Zone3008
Definition: PowerPoint7Parser.cxx:2632
bool readBookmarkCollection(int level, long endPos)
try to read the bookmark collection zone 2019
Definition: PowerPoint7Parser.cxx:1661
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:2682
bool readSlides(int level, long endPos, bool master)
try to read the slides zone 1006(slides) or 1016(master)
Definition: PowerPoint7Parser.cxx:593
bool readZone4039(int level, long endPos)
try to read the zone 4039: child of Zone4072
Definition: PowerPoint7Parser.cxx:2328
bool readVbaInfoAtom(int level, long endPos)
try to read the vba info zone 1024
Definition: PowerPoint7Parser.cxx:1228
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:2363
bool readSlideViewInfoAtom(int level, long endPos)
try to read the slide view info zone 1022
Definition: PowerPoint7Parser.cxx:1148
~PowerPoint7Parser() final
destructor
Definition: PowerPoint7Parser.cxx:185
bool readColorScheme(int level, long endPos, std::vector< MWAWColor > &colors)
try to read the color scheme 1012
Definition: PowerPoint7Parser.cxx:908
bool readSlideInformation(int level, long endPos)
try to read the slide information 1005: dimension, has background, ...
Definition: PowerPoint7Parser.cxx:524
bool readSlideAtom(int level, long endPos, PowerPoint7Struct::SlideId &sId, PowerPoint7Struct::SlideId &mId)
try to read the slide zone 1007
Definition: PowerPoint7Parser.cxx:692
bool readKinsoku(int level, long endPos)
try to read the Kinsoku zone 4040
Definition: PowerPoint7Parser.cxx:2278
std::shared_ptr< PowerPoint7ParserInternal::State > m_state
the state
Definition: PowerPoint7Parser.hxx:225
bool readSlideIdentifierContainer(int level, long endPos, PowerPoint7Struct::SlideId &sId)
try to read a container of a slide identifier 4054
Definition: PowerPoint7Parser.cxx:2500
bool readTextCharsAtom(int level, long endPos)
try to read the text chars atom zone 4000
Definition: PowerPoint7Parser.cxx:2020
bool readSlideViewInfo(int level, long endPos)
try to read the slide view info zone 1018
Definition: PowerPoint7Parser.cxx:1025
bool readViewInfoAtom(int level, long endPos)
try to read the view info zone 1021
Definition: PowerPoint7Parser.cxx:1106
bool readEnvironment(int level, long endPos)
try to read the environment zone 1010
Definition: PowerPoint7Parser.cxx:838
bool readZone1028(int level, long endPos)
try to read the zone 1028: child of Environment
Definition: PowerPoint7Parser.cxx:1338
void parse(librevenge::RVNGPresentationInterface *documentInterface) final
virtual function used to parse the input
Definition: PowerPoint7Parser.cxx:208
bool readIdentifier(int level, long endPos, int &id, std::string const &wh)
try to read an identifier zone 2017
Definition: PowerPoint7Parser.cxx:1633
bool readNotes(int level, long endPos)
try to read the notes zone 1008
Definition: PowerPoint7Parser.cxx:731
bool readZone1028Atom(int level, long endPos)
try to read the zone 1029
Definition: PowerPoint7Parser.cxx:1385
bool readSoundCollection(int level, long endPos)
try to read the sound collection zone 2020
Definition: PowerPoint7Parser.cxx:1713
bool readSlideShowInfo(int level, long endPos)
try to read the slide show info zone 1017
Definition: PowerPoint7Parser.cxx:992
bool readSSDocInfoAtom(int level, long endPos)
try to read the slide show doc info atom 1025: child of Document
Definition: PowerPoint7Parser.cxx:1261
bool readGuideAtom(int level, long endPos)
try to read the guide atom zone 1019
Definition: PowerPoint7Parser.cxx:1075
bool readStyleTextPropAtom(int level, long endPos, int &textId)
try to read the style text prop atom zone 4001
Definition: PowerPoint7Parser.cxx:2070
bool readOutlineViewInfo(int level, long endPos)
try to read the outline view info zone 1031
Definition: PowerPoint7Parser.cxx:1419
bool parseTextContent(MWAWInputStreamPtr input)
try to read the "Text_Content" stream
Definition: PowerPoint7Parser.cxx:2769
bool readBookmarkSeedAtom(int level, long endPos)
try to read the bookmark seed atom zone 2025
Definition: PowerPoint7Parser.cxx:1754
bool checkHeader(MWAWHeader *header, bool strict=false) final
checks if the document header is correct (or not)
Definition: PowerPoint7Parser.cxx:2844
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:2222
bool readOutlineTextProps9Atom(int level, long endPos, int &pId, PowerPoint7Struct::SlideId &sId)
try to read the outline text props9 atom zone 4009
Definition: PowerPoint7Parser.cxx:2127
bool readMainSub10(long endPos)
try to read the main sub zone: the zone 10: child of Root
Definition: PowerPoint7Parser.cxx:368
bool readDocument(long endPos)
try to read the document's zone 1000: child of Root
Definition: PowerPoint7Parser.cxx:402
void checkForUnparsedZones()
check for unparsed zone
Definition: PowerPoint7Parser.cxx:2761
bool readColorList(int level, long endPos, std::vector< MWAWColor > &colors)
try to read the color list zone 2031
Definition: PowerPoint7Parser.cxx:1829
bool sendText(int textId)
try to send the text content
Definition: PowerPoint7Parser.cxx:189
bool readDocAtom(int level, long endPos)
try to read the document atom's zone 1001: child of Document
Definition: PowerPoint7Parser.cxx:467
bool readZone3012(int level, long endPos)
try to read the zone 3012: child of Environment
Definition: PowerPoint7Parser.cxx:1934
bool readNoteAtom(int level, long endPos, PowerPoint7Struct::SlideId &sId)
try to read the note atom zone 1009
Definition: PowerPoint7Parser.cxx:807
void createDocument(librevenge::RVNGPresentationInterface *documentInterface)
creates the listener which will be associated to the document
Definition: PowerPoint7Parser.cxx:238
bool readDocRoot()
try to read the main zone: the zone 3
Definition: PowerPoint7Parser.cxx:320
bool readSorterViewInfo(int level, long endPos)
try to read the sorter view info zone 1032
Definition: PowerPoint7Parser.cxx:1463
bool readHeaderFooterAtom(int level, long endPos)
try to read the header footer atom zone: 4058
Definition: PowerPoint7Parser.cxx:2594
bool readOutlineTextPropsHeader9Atom(int level, long endPos)
try to read the outline text props header9 atom zone 4015
Definition: PowerPoint7Parser.cxx:2191
bool readKinsokuAtom(int level, long endPos)
try to read the Kinsoku atom zone 4050
Definition: PowerPoint7Parser.cxx:2432
bool readZone1015(int level, long endPos)
try to read the zone 1015: child of Slides
Definition: PowerPoint7Parser.cxx:952
bool readZone1028Data(int level, long endPos)
try to read the zone 4052: child of Zone1028
Definition: PowerPoint7Parser.cxx:2460
bool readSummary(int level, long endPos)
try to read the summary zone 1026: child of Document
Definition: PowerPoint7Parser.cxx:1294
bool readHeaderFooters(int level, long endPos)
try to read the header footer zone: 4057
Definition: PowerPoint7Parser.cxx:2544
bool getColor(int cId, MWAWColor &col) const
returns the color corresponding to an id
Definition: PowerPoint7Parser.cxx:194
bool readContainerAtom(int level, long endPos, int &N)
try to read the container atom zone 2001
Definition: PowerPoint7Parser.cxx:1603
bool readZone2026(int level, long endPos)
try to read the zone 2026: child of SlideViewInfo
Definition: PowerPoint7Parser.cxx:1785
bool createZones()
finds the different zones
Definition: PowerPoint7Parser.cxx:278
void sendSlides()
try to send all slides
Definition: PowerPoint7Parser.cxx:2806
bool readContainerList(int level, long endPos)
try to read the container list zone 2000: child of Document
Definition: PowerPoint7Parser.cxx:1507
bool readZone3012Atom(int level, long endPos)
try to read the zone 3013: child of Zone3012
Definition: PowerPoint7Parser.cxx:1990
bool readZone(int level, long endPos)
try to read a zone
Definition: PowerPoint7Parser.cxx:2710
bool readVbaInfo(int level, long endPos)
try to read the vba info zone 1023
Definition: PowerPoint7Parser.cxx:1178
bool readSlideIdentifier(int level, long endPos, PowerPoint7Struct::SlideId &sId)
try to read a slide identifier zone 4032
Definition: PowerPoint7Parser.cxx:2247
the main class to read the text part of a PowerPoint 95 file
Definition: PowerPoint7Text.hxx:68
std::shared_ptr< MWAWRSRCParser > MWAWRSRCParserPtr
a smart pointer of MWAWRSRCParser
Definition: libmwaw_internal.hxx:561
std::shared_ptr< MWAWInputStream > MWAWInputStreamPtr
a smart pointer of MWAWInputStream
Definition: libmwaw_internal.hxx:551
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
Definition: MWAWDocument.hxx:57
the class to store a color
Definition: libmwaw_internal.hxx:192

Generated on Wed May 3 2023 07:18:29 for libmwaw by doxygen 1.9.6