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 std::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) = delete;
145 MoreText &operator=(MoreText const &orig) = delete;
146
147 protected:
148 //
149 // data
150 //
152 MWAWParserStatePtr m_parserState;
153
155 std::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:
MWAWDebug.hxx
MWAWEntry
basic class to store an entry in a file This contained :
Definition MWAWEntry.hxx:47
MWAWFont
Class to store font.
Definition MWAWFont.hxx:44
MoreParser
the main class to read a More file
Definition MoreParser.hxx:81
MoreTextInternal::SubDocument
Internal: the subdocument of a MoreText.
Definition MoreText.cxx:445
MoreText::readOutline
bool readOutline(MWAWEntry const &entry, MoreTextInternal::Outline &outline)
read a outline
Definition MoreText.cxx:1522
MoreText::version
int version() const
returns the file version
Definition MoreText.cxx:532
MoreText::sendTopic
bool sendTopic(int tId, int dLevel, std::vector< MWAWParagraph > &paraStack)
try to send a topic knowing the topic id
Definition MoreText.cxx:922
MoreText::readSpeakerNote
bool readSpeakerNote(MWAWEntry const &entry)
read the list of speaker note
Definition MoreText.cxx:830
MoreText::readOutlineList
bool readOutlineList(MWAWEntry const &entry)
read the list of outlines
Definition MoreText.cxx:1472
MoreText::sendComment
bool sendComment(int cId)
try to send a comment knowing the comment id
Definition MoreText.cxx:894
MoreText::readCustomListLevel
bool readCustomListLevel(MWAWEntry const &entry, MWAWListLevel &level)
read a custom list level
Definition MoreText.cxx:1900
MoreText::sendMainText
bool sendMainText()
send a main zone
Definition MoreText.cxx:867
MoreText::checkTopicList
int checkTopicList(size_t tId, std::set< size_t > &parent)
check that the topic and its child does not loop (if so, cut some edge), return the number of breakpa...
Definition MoreText.cxx:667
MoreText::~MoreText
virtual ~MoreText()
destructor
Definition MoreText.cxx:528
MoreText::readComment
bool readComment(MWAWEntry const &entry)
read the list of comment/header/footer zones
Definition MoreText.cxx:782
MoreText::sendSpeakerNote
bool sendSpeakerNote(int nId)
try to send a speakernote knowing the note id
Definition MoreText.cxx:908
MoreText::getLastTopicChildId
int getLastTopicChildId(int tId) const
returns the last sub topic id corresponding to a topic and its child
Definition MoreText.cxx:653
MoreText::createZones
bool createZones()
try to create the text zones using read data
Definition MoreText.cxx:573
MoreText::MoreText
MoreText(MoreParser &parser)
constructor
Definition MoreText.cxx:521
MoreText::operator=
MoreText & operator=(MoreText const &orig)=delete
MoreText::readFont
bool readFont(MWAWEntry const &entry, std::string &fName, int &fId)
try to read a fontname
Definition MoreText.cxx:1870
MoreText::readFonts
bool readFonts(MWAWEntry const &entry)
read the list of fonts
Definition MoreText.cxx:1412
MoreText::MoreParser
friend class MoreParser
Definition MoreText.hxx:66
MoreText::getHeaderFooter
std::shared_ptr< MWAWSubDocument > getHeaderFooter(bool header)
returns a subdocument to send the header or the footer
Definition MoreText.cxx:549
MoreText::numPages
int numPages() const
returns the number of pages
Definition MoreText.cxx:539
MoreText::readTabs
bool readTabs(MWAWEntry const &entry, MoreTextInternal::Paragraph &para, std::string &mess)
try to read some tabs
Definition MoreText.cxx:2022
MoreText::m_mainParser
MoreParser * m_mainParser
the main parser;
Definition MoreText.hxx:158
MoreText::m_state
std::shared_ptr< MoreTextInternal::State > m_state
the state
Definition MoreText.hxx:155
MoreText::parseUnknown
bool parseUnknown(MWAWEntry const &entry, long fDecal)
try to read either a font, a fontname, a pattern, a int
Definition MoreText.cxx:2098
MoreText::MoreText
MoreText(MoreText const &orig)=delete
MoreText::readTopic
bool readTopic(MWAWEntry const &entry)
read the list of topic positions
Definition MoreText.cxx:708
MoreText::sendText
bool sendText(MWAWEntry const &entry, MWAWFont const &font)
send a text entry
Definition MoreText.cxx:1011
MoreText::m_parserState
MWAWParserStatePtr m_parserState
the parser state
Definition MoreText.hxx:152
libmwaw_internal.hxx
MWAWParserStatePtr
std::shared_ptr< MWAWParserState > MWAWParserStatePtr
a smart pointer of MWAWParserState
Definition libmwaw_internal.hxx:557
MoreTextInternal
Internal: the structures of a MoreText.
Definition MoreText.cxx:61
MWAWListLevel
small structure to keep information about a list level
Definition MWAWList.hxx:46
MoreTextInternal::Outline
Internal: the outline data of a MoreText.
Definition MoreText.cxx:192
MoreTextInternal::Paragraph
Internal: the paragraph of a MoreText.
Definition MoreText.cxx:64
MoreTextInternal::State
Internal: the state of a MoreText.
Definition MoreText.cxx:408