MoreText.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 /*
35 * Parser to More document
36 *
37 */
38 #ifndef MORE_TEXT
39 # define MORE_TEXT
40
41 #include <set>
42
43 #include "libmwaw_internal.hxx"
44 #include "MWAWDebug.hxx"
45
46 struct MWAWListLevel;
47
48 namespace MoreTextInternal
49 {
50 struct Outline;
51 struct Paragraph;
52 struct State;
53
54 class SubDocument;
55 }
56
57 class MoreParser;
58
64 class MoreText
65 {
66 friend class MoreParser;
67 friend class MoreTextInternal::SubDocument;
68 public:
70 explicit MoreText(MoreParser &parser);
72 virtual ~MoreText();
73
75 int version() const;
76
78 int numPages() const;
79
80 protected:
82 bool createZones();
84 bool sendMainText();
85
87 shared_ptr<MWAWSubDocument> getHeaderFooter(bool header);
88
89 //
90 // intermediate level
91 //
92
94 bool readTopic(MWAWEntry const &entry);
95
97 int getLastTopicChildId(int tId) const;
98
101 int checkTopicList(size_t tId, std::set<size_t> &parent);
102
104 bool readComment(MWAWEntry const &entry);
105
107 bool readSpeakerNote(MWAWEntry const &entry);
108
110 bool sendText(MWAWEntry const &entry, MWAWFont const &font);
111
113 bool sendComment(int cId);
114
116 bool sendSpeakerNote(int nId);
117
119 bool sendTopic(int tId, int dLevel, std::vector<MWAWParagraph> &paraStack);
120
122 bool readFonts(MWAWEntry const &entry);
123
125 bool readOutlineList(MWAWEntry const &entry);
126
128 bool readOutline(MWAWEntry const &entry, MoreTextInternal::Outline &outline);
129
134 bool readFont(MWAWEntry const &entry, std::string &fName, int &fId);
136 bool readTabs(MWAWEntry const &entry, MoreTextInternal::Paragraph &para, std::string &mess);
138 bool readCustomListLevel(MWAWEntry const &entry, MWAWListLevel &level);
139
141 bool parseUnknown(MWAWEntry const &entry, long fDecal);
142
143 private:
144 MoreText(MoreText const &orig);
145 MoreText &operator=(MoreText const &orig);
146
147 protected:
148 //
149 // data
150 //
152 MWAWParserStatePtr m_parserState;
153
155 shared_ptr<MoreTextInternal::State> m_state;
156
158 MoreParser *m_mainParser;
159 };
160 #endif
161 // vim: set filetype=cpp tabstop=2 shiftwidth=2 cindent autoindent smartindent noexpandtab:
MoreTextInternal
Internal: the structures of a MoreText.
Definition: MoreText.cxx:60
libmwaw_internal.hxx
MoreParser
the main class to read a More file
Definition: MoreParser.hxx:78
MoreText::m_parserState
MWAWParserStatePtr m_parserState
the parser state
Definition: MoreText.hxx:152
MWAWListLevel
small structure to keep information about a list level
Definition: MWAWList.hxx:44
MoreTextInternal::Outline
Internal: the outline data of a MoreText.
Definition: MoreText.cxx:187
MoreTextInternal::SubDocument
Internal: the subdocument of a MoreText.
Definition: MoreText.cxx:421
MWAWFont
Class to store font.
Definition: MWAWFont.hxx:43
MoreText
the main class to read the text part of More Text file
Definition: MoreText.hxx:64
MoreText::m_mainParser
MoreParser * m_mainParser
the main parser;
Definition: MoreText.hxx:158
MoreTextInternal::SubDocument::operator=
SubDocument & operator=(SubDocument const &orig)
MWAWDebug.hxx
MoreTextInternal::Paragraph
Internal: the paragraph of a MoreText.
Definition: MoreText.cxx:64
MWAWParserStatePtr
shared_ptr< MWAWParserState > MWAWParserStatePtr
a smart pointer of MWAWParserState
Definition: libmwaw_internal.hxx:523
MWAWEntry
basic class to store an entry in a file This contained :
Definition: MWAWEntry.hxx:46
MoreText::m_state
shared_ptr< MoreTextInternal::State > m_state
the state
Definition: MoreText.hxx:155