BeagleWksText.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 * Text parser to BeagleWorks document
36 *
37 */
38 #ifndef BEAGLE_WKS_TEXT
39 # define BEAGLE_WKS_TEXT
40
41 #include "libmwaw_internal.hxx"
42 #include "MWAWDebug.hxx"
43
44 namespace BeagleWksTextInternal
45 {
46 struct Font;
47 struct Section;
48 struct State;
49
50 class SubDocument;
51 }
52
53 class BeagleWksParser;
54 class BeagleWksStructManager;
55
61 class BeagleWksText
62 {
63 friend class BeagleWksParser;
64 friend class BeagleWksTextInternal::SubDocument;
65 public:
67 explicit BeagleWksText(BeagleWksParser &parser);
69 virtual ~BeagleWksText();
70
72 int version() const;
73
75 int numPages() const;
76
77 protected:
79 bool createZones(MWAWEntry &entry);
81 bool sendMainText();
83 void flushExtra();
84
85 //
86 // intermediate level
87 //
88
90 void countPages();
92 shared_ptr<MWAWSubDocument> getHeader(int page, int &numSimillar);
94 shared_ptr<MWAWSubDocument> getFooter(int page, int &numSimillar);
96 void updatePageSpanList(std::vector<MWAWPageSpan> &spanList);
98 bool sendText(MWAWEntry entry);
100 bool sendHF(int hfId, int sectId);
102 MWAWFont getFont(BeagleWksTextInternal::Font const &ft) const;
104 bool readFont(BeagleWksTextInternal::Font &font, long endPos);
106 bool readParagraph(MWAWParagraph &para, long endPos, bool inSection=false);
108 bool readSection(MWAWEntry const &entry, BeagleWksTextInternal::Section &section);
109 private:
110 BeagleWksText(BeagleWksText const &orig);
111 BeagleWksText &operator=(BeagleWksText const &orig);
112
113 protected:
114 //
115 // data
116 //
118 MWAWParserStatePtr m_parserState;
119
121 shared_ptr<BeagleWksTextInternal::State> m_state;
123 shared_ptr<BeagleWksStructManager> m_structureManager;
124
126 BeagleWksParser *m_mainParser;
127 };
128 #endif
129 // vim: set filetype=cpp tabstop=2 shiftwidth=2 cindent autoindent smartindent noexpandtab:
BeagleWksTextInternal::Font
Internal: a class used to store the font data of a BeagleWksText.
Definition: BeagleWksText.cxx:64
libmwaw_internal.hxx
BeagleWksParser
the main class to read a BeagleWorks file
Definition: BeagleWksParser.hxx:59
BeagleWksTextInternal
Internal: the structures of a BeagleWksText.
Definition: BeagleWksText.cxx:60
BeagleWksTextInternal::Section
Internal: a class used to store the section data of a BeagleWksText.
Definition: BeagleWksText.cxx:173
BeagleWksText::m_mainParser
BeagleWksParser * m_mainParser
the main parser;
Definition: BeagleWksText.hxx:126
BeagleWksText
the main class to read the text part of BeagleWorks Text file
Definition: BeagleWksText.hxx:61
MWAWFont
Class to store font.
Definition: MWAWFont.hxx:43
BeagleWksText::m_state
shared_ptr< BeagleWksTextInternal::State > m_state
the state
Definition: BeagleWksText.hxx:121
MWAWDebug.hxx
MWAWParagraph
class to store the paragraph properties
Definition: MWAWParagraph.hxx:81
BeagleWksStructManager
the main class to read the structure shared between different BeagleWorks files
Definition: BeagleWksStructManager.hxx:56
BeagleWksTextInternal::SubDocument
Internal: the subdocument of a BeagleWksText.
Definition: BeagleWksText.cxx:278
MWAWParserStatePtr
shared_ptr< MWAWParserState > MWAWParserStatePtr
a smart pointer of MWAWParserState
Definition: libmwaw_internal.hxx:523
BeagleWksTextInternal::SubDocument::operator=
SubDocument & operator=(SubDocument const &orig)
BeagleWksText::m_structureManager
shared_ptr< BeagleWksStructManager > m_structureManager
the structure manager
Definition: BeagleWksText.hxx:123
MWAWEntry
basic class to store an entry in a file This contained :
Definition: MWAWEntry.hxx:46
MWAWDocumentInternal::getHeader
MWAWHeader * getHeader(MWAWInputStreamPtr &input, MWAWRSRCParserPtr rsrcParser, bool strict)
return the header corresponding to an input.
Definition: MWAWDocument.cxx:436
BeagleWksText::m_parserState
MWAWParserStatePtr m_parserState
the parser state
Definition: BeagleWksText.hxx:118