WPS8TextStyle.h
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
2/* libwps
3 * Version: MPL 2.0 / LGPLv2.1+
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * Major Contributor(s):
10 * Copyright (C) 2006, 2007 Andrew Ziem
11 * Copyright (C) 2003-2005 William Lachance (william.lachance@sympatico.ca)
12 * Copyright (C) 2003 Marc Maurer (uwog@uwog.net)
13 *
14 * For minor contributions see the git repository.
15 *
16 * Alternatively, the contents of this file may be used under the terms
17 * of the GNU Lesser General Public License Version 2.1 or later
18 * (LGPLv2.1+), in which case the provisions of the LGPLv2.1+ are
19 * applicable instead of those above.
20 */
21
22#ifndef WPS8_TEXTSTYLE_H
23#define WPS8_TEXTSTYLE_H
24
25#include <ostream>
26#include <string>
27#include <vector>
28
29#include "libwps_internal.h"
30
31#include "WPSDebug.h"
32
34{
35struct State;
36}
37
38class WPS8Text;
39
41{
42 friend class WPS8Text;
43public:
44 struct FontData;
45
46 explicit WPS8TextStyle(WPS8Text &parser);
48
51 {
52 m_listener = listen;
53 }
54
56 bool readStructures();
57
58protected:
60 bool readFontNames(WPSEntry const &entry);
62 bool readFont(long endPos, int &id, std::string &mess);
63
64 void sendFont(int fId, FontData &data);
65
67 bool readParagraph(long endPos, int &id, std::string &mess);
68
69 void sendParagraph(int pId);
70
73 bool readSTSH(WPSEntry const &entry);
74
76 bool readSGP(WPSEntry const &entry);
77
78 //----------------------------------------
79 // FDP parsing
80 //----------------------------------------
81
84 bool findFDPStructures(int which, std::vector<WPSEntry> &result);
87 bool findFDPStructuresByHand(int which, std::vector<WPSEntry> &result);
88
89protected:
92 {
93 return m_asciiFile;
94 }
95
96private:
98 WPS8TextStyle(WPS8TextStyle const &orig) = delete;
100 WPS8TextStyle &operator=(WPS8TextStyle const &orig) = delete;
101
102protected:
110 mutable std::shared_ptr<WPS8TextStyleInternal::State> m_state;
113public:
114 struct FontData
115 {
120
121 friend std::ostream &operator<<(std::ostream &o, FontData const &fData);
123 std::string format() const;
124
128 enum { F_None=0, F_PageNumber=-1, F_Date=-4, F_Time=-5 };
133 };
134protected:
135};
136
137
138#endif /* WPS8_TEXT_H */
139/* vim:set shiftwidth=4 softtabstop=4 noexpandtab: */
bool readFontNames(WPSEntry const &entry)
reads the font names
Definition WPS8TextStyle.cpp:222
void sendFont(int fId, FontData &data)
Definition WPS8TextStyle.cpp:619
bool readStructures()
finds all entries which correspond to the styles, parses them and stores data
Definition WPS8TextStyle.cpp:178
bool readFont(long endPos, int &id, std::string &mess)
reads a font properties
Definition WPS8TextStyle.cpp:357
std::shared_ptr< WPS8TextStyleInternal::State > m_state
the internal state
Definition WPS8TextStyle.h:110
WPS8TextStyle(WPS8TextStyle const &orig)=delete
private copy constructor: forbidden
~WPS8TextStyle()
Definition WPS8TextStyle.cpp:171
WPS8TextStyle(WPS8Text &parser)
Definition WPS8TextStyle.cpp:161
friend class WPS8Text
Definition WPS8TextStyle.h:42
libwps::DebugFile & m_asciiFile
the ascii file
Definition WPS8TextStyle.h:112
RVNGInputStreamPtr m_input
the main input
Definition WPS8TextStyle.h:106
libwps::DebugFile & ascii()
a DebugFile used to write what we recognize when we parse the document
Definition WPS8TextStyle.h:91
WPS8Text & m_mainParser
the main parser
Definition WPS8TextStyle.h:104
void sendParagraph(int pId)
Definition WPS8TextStyle.cpp:1052
bool findFDPStructures(int which, std::vector< WPSEntry > &result)
finds the FDPC/FDPP structure using the BTEC/BTEP entries which == 0 means FDPP, 1 means FDPC
Definition WPS8TextStyle.cpp:1207
WPS8TextStyle & operator=(WPS8TextStyle const &orig)=delete
private copy operator: forbidden
void setListener(WPSContentListenerPtr &listen)
sets the listener
Definition WPS8TextStyle.h:50
bool readSGP(WPSEntry const &entry)
parses a SGP zone: style general property ?
Definition WPS8TextStyle.cpp:305
bool readParagraph(long endPos, int &id, std::string &mess)
the paragraph
Definition WPS8TextStyle.cpp:636
bool findFDPStructuresByHand(int which, std::vector< WPSEntry > &result)
finds the FDPC/FDPP structure by searching after the text zone which == 0 means FDPP,...
Definition WPS8TextStyle.cpp:1284
bool readSTSH(WPSEntry const &entry)
reads a style sheet zone
Definition WPS8TextStyle.cpp:1067
WPSContentListenerPtr m_listener
the listener
Definition WPS8TextStyle.h:108
Definition WPS8Text.h:48
basic class to store an entry in a file This contained :
Definition WPSEntry.h:39
Definition WPSDebug.h:208
std::shared_ptr< librevenge::RVNGInputStream > RVNGInputStreamPtr
shared pointer to librevenge::RVNGInputStream
Definition libwps_internal.h:87
std::shared_ptr< WPSContentListener > WPSContentListenerPtr
shared pointer to WPSContentListener
Definition libwps_internal.h:107
Definition WPS8TextStyle.cpp:43
Internal: the state of a WPS4Text.
Definition WPS8TextStyle.cpp:95
Definition WPS8TextStyle.h:115
FontData()
Definition WPS8TextStyle.h:116
@ F_PageNumber
Definition WPS8TextStyle.h:128
@ F_None
Definition WPS8TextStyle.h:128
@ F_Date
Definition WPS8TextStyle.h:128
@ F_Time
Definition WPS8TextStyle.h:128
int m_fieldFormat
the field format
Definition WPS8TextStyle.h:132
std::string format() const
returns a format to used with strftime
Definition WPS8TextStyle.cpp:1351
int m_fieldType
the field type: pagenumber, data, time, ...
Definition WPS8TextStyle.h:130
@ T_None
Definition WPS8TextStyle.h:125
@ T_Footnote
Definition WPS8TextStyle.h:125
@ T_Object
Definition WPS8TextStyle.h:125
@ T_Field
Definition WPS8TextStyle.h:125
@ T_Comment
Definition WPS8TextStyle.h:125
@ T_Endnote
Definition WPS8TextStyle.h:125
int m_type
the main type: footnote, ...
Definition WPS8TextStyle.h:127
friend std::ostream & operator<<(std::ostream &o, FontData const &fData)
operator <<
Definition WPS8TextStyle.cpp:1305

Generated on Sat Jul 19 2025 05:24:40 for libwps by doxygen 1.14.0