StarWriterStruct.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/* libstaroffice
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 * StarWriterStruct to read/parse some basic writer structure in StarOffice documents
36 *
37 */
38#ifndef STAR_WRITER_STRUCT
39# define STAR_WRITER_STRUCT
40
41#include <ostream>
42#include <vector>
43
45
46#include "STOFFDebug.hxx"
47
49{
50struct FormatDef;
51}
52class StarAttribute;
53class StarObject;
54class StarZone;
55
57namespace StarWriterStruct
58{
61struct Attribute {
62public:
65 {
66 }
68 ~Attribute();
70 friend std::ostream &operator<<(std::ostream &o, Attribute const &attribute);
72 bool read(StarZone &zone, StarObject &object);
74 static bool readList(StarZone &zone, std::vector<Attribute> &attributeList, StarObject &object);
76 shared_ptr<StarAttribute> m_attribute;
79};
80
84{
85public:
88 {
89 }
91 friend std::ostream &operator<<(std::ostream &o, Bookmark const &mark);
93 bool read(StarZone &zone);
95 static bool readList(StarZone &zone, std::vector<Bookmark> &markList);
97 librevenge::RVNGString m_shortName;
99 librevenge::RVNGString m_name;
103 int m_key;
107 librevenge::RVNGString m_macroNames[4];
108};
109
113public:
116 {
117 }
119 friend std::ostream &operator<<(std::ostream &o, DatabaseName const &databaseName);
121 bool read(StarZone &zone);
123 struct Data {
125 Data() : m_name(""), m_selection(0,0)
126 {
127 }
129 friend std::ostream &operator<<(std::ostream &o, Data const &data)
130 {
131 o << data.m_name.cstr() << ",";
132 if (data.m_selection!=STOFFVec2i(0,0)) o << "select=" << STOFFVec2i(0,0) << ",";
133 return o;
134 }
136 librevenge::RVNGString m_name;
139 };
141 librevenge::RVNGString m_names[2];
143 librevenge::RVNGString m_sql;
145 std::vector<Data> m_dataList;
146};
147
151public:
154 {
155 }
157 friend std::ostream &operator<<(std::ostream &o, Dictionary const &dictionary);
159 bool read(StarZone &zone);
161 struct Data {
163 Data() : m_name(""), m_language(0), m_id(0), m_spellWrong(true)
164 {
165 }
167 friend std::ostream &operator<<(std::ostream &o, Data const &data)
168 {
169 o << data.m_name.cstr() << ",";
170 if (data.m_language) o << "language=" << data.m_language << ",";
171 if (data.m_id) o << "id=" << data.m_id << ",";
172 if (data.m_spellWrong) o << "spellWrong,";
173 return o;
174 }
176 librevenge::RVNGString m_name;
180 int m_id;
183 };
185 std::vector<Data> m_dataList;
186};
187
190struct DocStats {
191public:
194 {
195 for (int i=0; i<7; ++i) m_numbers[i]=0;
196 }
198 friend std::ostream &operator<<(std::ostream &o, DocStats const &docStats);
200 bool read(StarZone &zone);
202 long m_numbers[7];
205};
206
209struct Macro {
210public:
213 {
214 }
216 friend std::ostream &operator<<(std::ostream &o, Macro const &macro);
218 bool read(StarZone &zone);
220 static bool readList(StarZone &zone, std::vector<Macro> &macroLis);
222 int m_key;
224 librevenge::RVNGString m_names[2];
227};
228
231struct Mark {
232public:
234 Mark() : m_type(-1), m_id(-1), m_offset(-1)
235 {
236 }
238 friend std::ostream &operator<<(std::ostream &o, Mark const &mark);
240 bool read(StarZone &zone);
244 int m_id;
247};
248
252public:
255 {
256 }
258 friend std::ostream &operator<<(std::ostream &o, NodeRedline const &nodeRedline);
260 bool read(StarZone &zone);
262 int m_id;
267};
268
271struct NoteInfo {
272public:
274 explicit NoteInfo(bool isFootnote) : m_isFootnote(isFootnote), m_type(0), m_ftnOffset(0), m_posType(0), m_numType(0)
275 {
276 for (int i=0; i<4; ++i) m_idx[i]=0xFFFF;
277 }
279 friend std::ostream &operator<<(std::ostream &o, NoteInfo const &noteInfo);
281 bool read(StarZone &zone);
287 int m_idx[4];
291 librevenge::RVNGString m_strings[4];
296};
297
300struct PrintData {
301public:
304 {
305 for (int i=0; i<6; ++i) m_spacings[i]=0;
306 }
308 friend std::ostream &operator<<(std::ostream &o, PrintData const &printData);
310 bool read(StarZone &zone);
317};
318
321struct Redline {
322public:
325 {
326 }
328 friend std::ostream &operator<<(std::ostream &o, Redline const &redline);
330 bool read(StarZone &zone);
332 static bool readList(StarZone &zone, std::vector<Redline> &redlineList);
334 static bool readListList(StarZone &zone, std::vector<std::vector<Redline> > &redlineListList);
340 long m_date;
342 long m_time;
344 librevenge::RVNGString m_comment;
345};
346
349struct TOX {
350public:
354 {
355 for (int i=0; i<3; ++i) m_stringIds[i]=0xFFFF;
356 }
358 ~TOX();
360 friend std::ostream &operator<<(std::ostream &o, TOX const &tox);
362 bool read(StarZone &zone, StarObject &object);
364 static bool readList(StarZone &zone, std::vector<TOX> &toxList, StarObject &object);
365
367 struct Style {
370 {
371 }
373 friend std::ostream &operator<<(std::ostream &o, Style const &style)
374 {
375 o << "level=" << style.m_level << ",";
376 if (!style.m_names.empty()) {
377 o << "names=[";
378 for (size_t i=0; i<style.m_names.size(); ++i) o << style.m_names[i].cstr() << ",";
379 o << "],";
380 }
381 return o;
382 }
386 std::vector<librevenge::RVNGString> m_names;
387 };
403 librevenge::RVNGString m_title;
405 librevenge::RVNGString m_name;
409 std::vector<int> m_stringIdList;
411 std::vector<Style> m_styleList;
415 std::vector<shared_ptr<StarFormatManagerInternal::FormatDef> > m_formatList;
416};
417
420struct TOX51 {
421public:
427 ~TOX51();
429 friend std::ostream &operator<<(std::ostream &o, TOX51 const &tox);
431 bool read(StarZone &zone, StarObject &object);
433 static bool readList(StarZone &zone, std::vector<TOX51> &toxList, StarObject &object);
434
436 librevenge::RVNGString m_typeName;
444 librevenge::RVNGString m_title;
446 std::vector<librevenge::RVNGString> m_patternList;
448 std::vector<int> m_stringIdList;
451};
452
453}
454#endif
455// vim: set filetype=cpp tabstop=2 shiftwidth=2 cindent autoindent smartindent noexpandtab:
virtual class used to store the different attribute
Definition StarAttribute.hxx:63
an object corresponding to an OLE directory
Definition StarObject.hxx:65
structure to store a bookmark
Definition StarWriterStruct.hxx:84
int m_key
the key
Definition StarWriterStruct.hxx:103
int m_offset
the offset
Definition StarWriterStruct.hxx:101
librevenge::RVNGString m_name
the name
Definition StarWriterStruct.hxx:99
static bool readList(StarZone &zone, std::vector< Bookmark > &markList)
try to read a list of bookmark
Definition StarWriterStruct.cxx:207
int m_modifier
the modifier
Definition StarWriterStruct.hxx:105
librevenge::RVNGString m_macroNames[4]
the macros names
Definition StarWriterStruct.hxx:107
friend std::ostream & operator<<(std::ostream &o, Bookmark const &mark)
operator<<
Definition StarWriterStruct.cxx:238
Bookmark()
the constructor
Definition StarWriterStruct.hxx:87
bool read(StarZone &zone)
try to read a mark
Definition StarWriterStruct.cxx:153
librevenge::RVNGString m_shortName
the shortname
Definition StarWriterStruct.hxx:97
a zone in a StarOffice file
Definition StarZone.hxx:57
STOFFVec2< int > STOFFVec2i
STOFFVec2 of int.
Definition libstaroffice_internal.hxx:748
Internal: the structures of a StarFormatManager.
Definition StarFormatManager.cxx:58
namespace use to keep basic writer structure
Definition StarWriterStruct.cxx:49
struct use an attribute and a position
Definition StarWriterStruct.hxx:61
STOFFVec2i m_position
the begin/end position
Definition StarWriterStruct.hxx:78
bool read(StarZone &zone, StarObject &object)
try to read a attribute: 'A'
Definition StarWriterStruct.cxx:57
~Attribute()
destructor
Definition StarWriterStruct.cxx:53
Attribute()
constructor
Definition StarWriterStruct.hxx:64
shared_ptr< StarAttribute > m_attribute
the attribute
Definition StarWriterStruct.hxx:76
static bool readList(StarZone &zone, std::vector< Attribute > &attributeList, StarObject &object)
try to read a list of attribute: 'S'
Definition StarWriterStruct.cxx:107
friend std::ostream & operator<<(std::ostream &o, Attribute const &attribute)
operator<<
Definition StarWriterStruct.cxx:137
a data of a DatabaseName
Definition StarWriterStruct.hxx:123
librevenge::RVNGString m_name
the name
Definition StarWriterStruct.hxx:136
STOFFVec2i m_selection
the start/end position
Definition StarWriterStruct.hxx:138
Data()
constructor
Definition StarWriterStruct.hxx:125
friend std::ostream & operator<<(std::ostream &o, Data const &data)
operator<<
Definition StarWriterStruct.hxx:129
structure to store a databaseName in a text zone
Definition StarWriterStruct.hxx:112
friend std::ostream & operator<<(std::ostream &o, DatabaseName const &databaseName)
operator<<
Definition StarWriterStruct.cxx:343
DatabaseName()
constructor
Definition StarWriterStruct.hxx:115
librevenge::RVNGString m_sql
the SQL string
Definition StarWriterStruct.hxx:143
std::vector< Data > m_dataList
the list of data
Definition StarWriterStruct.hxx:145
librevenge::RVNGString m_names[2]
the names: database, table
Definition StarWriterStruct.hxx:141
bool read(StarZone &zone)
try to read a databaseName: 'D'
Definition StarWriterStruct.cxx:255
a data of a Dictionary
Definition StarWriterStruct.hxx:161
Data()
constructor
Definition StarWriterStruct.hxx:163
int m_language
the language
Definition StarWriterStruct.hxx:178
librevenge::RVNGString m_name
the name
Definition StarWriterStruct.hxx:176
int m_id
the id
Definition StarWriterStruct.hxx:180
bool m_spellWrong
a flag to know if we do spell or not
Definition StarWriterStruct.hxx:182
friend std::ostream & operator<<(std::ostream &o, Data const &data)
operator<<
Definition StarWriterStruct.hxx:167
structure to store a dictionary in a text zone
Definition StarWriterStruct.hxx:150
std::vector< Data > m_dataList
the list of data
Definition StarWriterStruct.hxx:185
friend std::ostream & operator<<(std::ostream &o, Dictionary const &dictionary)
operator<<
Definition StarWriterStruct.cxx:401
bool read(StarZone &zone)
try to read a dictionary: 'j'
Definition StarWriterStruct.cxx:363
Dictionary()
constructor
Definition StarWriterStruct.hxx:153
the doc statistic
Definition StarWriterStruct.hxx:190
friend std::ostream & operator<<(std::ostream &o, DocStats const &docStats)
operator<<
Definition StarWriterStruct.cxx:447
bool m_isModified
modified flags
Definition StarWriterStruct.hxx:204
long m_numbers[7]
the list of number: tbl, graf, ole, page, para, word, char
Definition StarWriterStruct.hxx:202
bool read(StarZone &zone)
try to read a docStats: 'd'
Definition StarWriterStruct.cxx:415
DocStats()
constructor
Definition StarWriterStruct.hxx:193
structure to store a macro in a text zone
Definition StarWriterStruct.hxx:209
int m_scriptType
the scriptType
Definition StarWriterStruct.hxx:226
Macro()
constructor
Definition StarWriterStruct.hxx:212
librevenge::RVNGString m_names[2]
the names
Definition StarWriterStruct.hxx:224
int m_key
the key
Definition StarWriterStruct.hxx:222
friend std::ostream & operator<<(std::ostream &o, Macro const &macro)
operator<<
Definition StarWriterStruct.cxx:526
bool read(StarZone &zone)
try to read a macro: 'm'
Definition StarWriterStruct.cxx:460
static bool readList(StarZone &zone, std::vector< Macro > &macroLis)
try to read a list of macro: 'M'
Definition StarWriterStruct.cxx:495
structure to store a mark in a text zone
Definition StarWriterStruct.hxx:231
int m_id
the id
Definition StarWriterStruct.hxx:244
int m_offset
the offset
Definition StarWriterStruct.hxx:246
bool read(StarZone &zone)
try to read a mark
Definition StarWriterStruct.cxx:540
Mark()
constructor
Definition StarWriterStruct.hxx:234
friend std::ostream & operator<<(std::ostream &o, Mark const &mark)
operator<<
Definition StarWriterStruct.cxx:564
int m_type
the type: 2: bookmark-start, 3:bookmark-end
Definition StarWriterStruct.hxx:242
structure to store a nodeRedline in a text zone
Definition StarWriterStruct.hxx:251
int m_offset
the offset
Definition StarWriterStruct.hxx:264
bool read(StarZone &zone)
try to read a nodeRedline
Definition StarWriterStruct.cxx:575
int m_flags
the flags
Definition StarWriterStruct.hxx:266
friend std::ostream & operator<<(std::ostream &o, NodeRedline const &nodeRedline)
operator<<
Definition StarWriterStruct.cxx:600
NodeRedline()
constructor
Definition StarWriterStruct.hxx:254
int m_id
the id
Definition StarWriterStruct.hxx:262
structure to store a endnoteInfo or a footnoteInfo in a text zone
Definition StarWriterStruct.hxx:271
NoteInfo(bool isFootnote)
constructor
Definition StarWriterStruct.hxx:274
int m_numType
the numType
Definition StarWriterStruct.hxx:295
friend std::ostream & operator<<(std::ostream &o, NoteInfo const &noteInfo)
operator<<
Definition StarWriterStruct.cxx:696
int m_type
the type
Definition StarWriterStruct.hxx:285
bool read(StarZone &zone)
try to read a noteInfo
Definition StarWriterStruct.cxx:612
int m_ftnOffset
the ftnOffset
Definition StarWriterStruct.hxx:289
int m_idx[4]
the list of idx: the page, the coll, the char and the anchorChar
Definition StarWriterStruct.hxx:287
int m_posType
the posType
Definition StarWriterStruct.hxx:293
librevenge::RVNGString m_strings[4]
the strings: prefix, suffix, quoValis, ergoSum
Definition StarWriterStruct.hxx:291
bool m_isFootnote
a flag to know if this corresponds to a footnote or a endnote
Definition StarWriterStruct.hxx:283
the doc statistic
Definition StarWriterStruct.hxx:300
int m_spacings[6]
the spaces: left, right, top, bottom, horizontal, verticals
Definition StarWriterStruct.hxx:316
int m_flags
the flags
Definition StarWriterStruct.hxx:312
PrintData()
constructor
Definition StarWriterStruct.hxx:303
bool read(StarZone &zone)
try to read a printData: '8'
Definition StarWriterStruct.cxx:719
STOFFVec2i m_colRow
the row, col dim
Definition StarWriterStruct.hxx:314
friend std::ostream & operator<<(std::ostream &o, PrintData const &printData)
operator<<
Definition StarWriterStruct.cxx:745
structure to store a redline in a text zone
Definition StarWriterStruct.hxx:321
friend std::ostream & operator<<(std::ostream &o, Redline const &redline)
operator<<
Definition StarWriterStruct.cxx:861
static bool readListList(StarZone &zone, std::vector< std::vector< Redline > > &redlineListList)
try to read a list of list of redline : V
Definition StarWriterStruct.cxx:829
long m_date
the date
Definition StarWriterStruct.hxx:340
int m_stringId
the stringId
Definition StarWriterStruct.hxx:338
librevenge::RVNGString m_comment
the comment
Definition StarWriterStruct.hxx:344
long m_time
the time
Definition StarWriterStruct.hxx:342
bool read(StarZone &zone)
try to read a redline : D
Definition StarWriterStruct.cxx:760
Redline()
constructor
Definition StarWriterStruct.hxx:324
static bool readList(StarZone &zone, std::vector< Redline > &redlineList)
try to read a list of redline : R
Definition StarWriterStruct.cxx:794
int m_type
the type
Definition StarWriterStruct.hxx:336
structure to store a TOX51 in a text zone
Definition StarWriterStruct.hxx:420
static bool readList(StarZone &zone, std::vector< TOX51 > &toxList, StarObject &object)
try to read a list of TOX51
Definition StarWriterStruct.cxx:1160
int m_firstTabPos
the firstTabPos
Definition StarWriterStruct.hxx:442
int m_type
the type
Definition StarWriterStruct.hxx:438
std::vector< int > m_stringIdList
a list of template string ids
Definition StarWriterStruct.hxx:448
librevenge::RVNGString m_title
the title
Definition StarWriterStruct.hxx:444
bool read(StarZone &zone, StarObject &object)
try to read a TOX51
Definition StarWriterStruct.cxx:1083
int m_createType
the createType
Definition StarWriterStruct.hxx:440
~TOX51()
destructor
Definition StarWriterStruct.cxx:1079
friend std::ostream & operator<<(std::ostream &o, TOX51 const &tox)
operator<<
Definition StarWriterStruct.cxx:1191
std::vector< librevenge::RVNGString > m_patternList
the pattern list
Definition StarWriterStruct.hxx:446
int m_infLevel
the inf level
Definition StarWriterStruct.hxx:450
TOX51()
constructor
Definition StarWriterStruct.hxx:423
librevenge::RVNGString m_typeName
the typeName
Definition StarWriterStruct.hxx:436
a style
Definition StarWriterStruct.hxx:367
friend std::ostream & operator<<(std::ostream &o, Style const &style)
operator<<
Definition StarWriterStruct.hxx:373
std::vector< librevenge::RVNGString > m_names
the list of names
Definition StarWriterStruct.hxx:386
Style()
constructor
Definition StarWriterStruct.hxx:369
int m_level
the level
Definition StarWriterStruct.hxx:384
structure to store a TOX in a text zone
Definition StarWriterStruct.hxx:349
int m_type
the type
Definition StarWriterStruct.hxx:389
librevenge::RVNGString m_title
the title
Definition StarWriterStruct.hxx:403
int m_stringIds[3]
the string id, the seq string id, the sect string id
Definition StarWriterStruct.hxx:395
int m_formFlags
the format flags?
Definition StarWriterStruct.hxx:401
TOX()
constructor
Definition StarWriterStruct.hxx:352
~TOX()
destructor
Definition StarWriterStruct.cxx:874
int m_data
the number of data?
Definition StarWriterStruct.hxx:399
static bool readList(StarZone &zone, std::vector< TOX > &toxList, StarObject &object)
try to read a list of TOX
Definition StarWriterStruct.cxx:1008
librevenge::RVNGString m_name
the name
Definition StarWriterStruct.hxx:405
int m_captionDisplay
the captionDisplay
Definition StarWriterStruct.hxx:393
std::vector< shared_ptr< StarFormatManagerInternal::FormatDef > > m_formatList
the format
Definition StarWriterStruct.hxx:415
int m_styleId
the style id
Definition StarWriterStruct.hxx:397
std::vector< int > m_stringIdList
a list of template string ids
Definition StarWriterStruct.hxx:409
int m_createType
the createType
Definition StarWriterStruct.hxx:391
int m_OLEOptions
the ole options
Definition StarWriterStruct.hxx:407
long m_titleLength
the title length
Definition StarWriterStruct.hxx:413
bool read(StarZone &zone, StarObject &object)
try to read a TOX
Definition StarWriterStruct.cxx:878
std::vector< Style > m_styleList
a list of style names?
Definition StarWriterStruct.hxx:411
friend std::ostream & operator<<(std::ostream &o, TOX const &tox)
operator<<
Definition StarWriterStruct.cxx:1039

Generated on Wed Nov 29 2023 18:59:40 for libstaroffice by doxygen 1.9.8