MSPUBTypes.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /*
3  * This file is part of the libmspub project.
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 
10 #ifndef __MSPUBTYPES_H__
11 #define __MSPUBTYPES_H__
12 
13 #include <vector>
14 #include <string>
15 #include <boost/optional.hpp>
16 #include "MSPUBBlockType.h"
17 #include "MSPUBBlockID.h"
18 #include "MSPUBContentChunkType.h"
19 #include "MSPUBConstants.h"
20 #include "ListInfo.h"
21 
22 namespace libmspub
23 {
25 {
29 };
30 
32 {
36 };
37 
39 {
40  LEFT = 0,
41  CENTER = 2,
42  RIGHT = 1,
43  JUSTIFY = 6
44 };
45 
47 {
48  unsigned short initial;
49  unsigned short type;
50  unsigned long contentsLength;
51  unsigned long contentsOffset;
52 };
53 
55 {
59  unsigned long startPosition;
60  unsigned long dataOffset;
61  unsigned long dataLength;
62  unsigned data;
63  std::vector<unsigned char> stringData;
64 };
65 
67 {
69  ContentChunkReference(MSPUBContentChunkType t, unsigned long o, unsigned long e, unsigned sn, unsigned psn) :
70  type(t), offset(o), end(e), seqNum(sn), parentSeqNum(psn) {}
72  unsigned long offset;
73  unsigned long end; //offset of the last element plus one.
74  unsigned seqNum;
75  unsigned parentSeqNum;
76 };
77 
79 {
80  QuillChunkReference() : length(0), offset(0), id(0), name(), name2() { }
81  unsigned long length;
82  unsigned long offset;
83  unsigned short id;
84  std::string name;
85  std::string name2;
86 };
87 
89 {
91  underline(), italic(), bold(),
93  {
94  }
95  CharacterStyle(bool u, bool i, bool b,
96  boost::optional<double> tSIP = boost::optional<double>(),
97  int cI = -1,
98  boost::optional<unsigned> fI = boost::optional<unsigned>(),
99  SuperSubType sst = NO_SUPER_SUB) :
100  underline(u), italic(i), bold(b), textSizeInPt(tSIP), colorIndex(cI), fontIndex(fI), superSubType(sst) { }
101  bool underline;
102  bool italic;
103  bool bold;
104  boost::optional<double> textSizeInPt;
106  boost::optional<unsigned> fontIndex;
108 };
109 
111 {
114 };
115 
117 {
119  double m_amount;
120  LineSpacingInfo() : m_type(LINE_SPACING_SP), m_amount(1)
121  {
122  }
123  LineSpacingInfo(LineSpacingType type, double amount) :
124  m_type(type), m_amount(amount)
125  {
126  }
127 };
128 
130 {
131  boost::optional<Alignment> m_align;
132  boost::optional<unsigned> m_defaultCharStyleIndex;
133  boost::optional<LineSpacingInfo> m_lineSpacing;
134  boost::optional<unsigned> m_spaceBeforeEmu;
135  boost::optional<unsigned> m_spaceAfterEmu;
136  boost::optional<int> m_firstLineIndentEmu;
137  boost::optional<unsigned> m_leftIndentEmu;
138  boost::optional<unsigned> m_rightIndentEmu;
139  boost::optional<ListInfo> m_listInfo;
140  std::vector<unsigned> m_tabStopsInEmu;
141  boost::optional<unsigned> m_dropCapLines;
142  boost::optional<unsigned> m_dropCapLetters;
144  m_align(), m_defaultCharStyleIndex(), m_lineSpacing(), m_spaceBeforeEmu(),
145  m_spaceAfterEmu(), m_firstLineIndentEmu(), m_leftIndentEmu(),
146  m_rightIndentEmu(), m_listInfo(), m_tabStopsInEmu(), m_dropCapLines(), m_dropCapLetters()
147  {
148  }
149 };
150 
151 struct TextSpan
152 {
153  TextSpan(const std::vector<unsigned char> &c, const CharacterStyle &s) : chars(c), style(s) { }
154  std::vector<unsigned char> chars;
156 };
157 
159 {
160  TextParagraph(const std::vector<TextSpan> &sp, const ParagraphStyle &st) : spans(sp), style(st) { }
161  std::vector<TextSpan> spans;
163 };
164 
165 struct Color
166 {
167  Color() : r(0), g(0), b(0) { }
168  Color(unsigned char red, unsigned char green, unsigned char blue) : r(red), g(green), b(blue) { }
169  unsigned char r, g, b;
170 };
171 
173 {
177 };
178 
180 {
190 };
191 
192 } // namespace libmspub
193 
194 #endif /* __MSPUBTYPES_H__ */
195 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
Definition: MSPUBTypes.h:174
Definition: MSPUBTypes.h:43
unsigned short initial
Definition: MSPUBTypes.h:48
Definition: MSPUBTypes.h:27
unsigned long offset
Definition: MSPUBTypes.h:72
Definition: MSPUBTypes.h:158
TextParagraph(const std::vector< TextSpan > &sp, const ParagraphStyle &st)
Definition: MSPUBTypes.h:160
MSPUBContentChunkType
Definition: MSPUBContentChunkType.h:15
unsigned long contentsLength
Definition: MSPUBTypes.h:50
Definition: MSPUBTypes.h:165
int colorIndex
Definition: MSPUBTypes.h:105
SuperSubType
Definition: MSPUBTypes.h:31
Definition: MSPUBTypes.h:151
double m_amount
Definition: MSPUBTypes.h:119
unsigned seqNum
Definition: MSPUBTypes.h:74
Definition: MSPUBTypes.h:183
Definition: MSPUBTypes.h:28
ParagraphStyle style
Definition: MSPUBTypes.h:162
Definition: MSPUBTypes.h:40
std::string name2
Definition: MSPUBTypes.h:85
Definition: MSPUBTypes.h:184
Definition: MSPUBTypes.h:112
bool bold
Definition: MSPUBTypes.h:103
Color(unsigned char red, unsigned char green, unsigned char blue)
Definition: MSPUBTypes.h:168
CharacterStyle style
Definition: MSPUBTypes.h:155
TextSpan(const std::vector< unsigned char > &c, const CharacterStyle &s)
Definition: MSPUBTypes.h:153
boost::optional< unsigned > m_defaultCharStyleIndex
Definition: MSPUBTypes.h:132
Definition: MSPUBTypes.h:54
bool underline
Definition: MSPUBTypes.h:101
LineSpacingType
Definition: MSPUBTypes.h:110
unsigned char r
Definition: MSPUBTypes.h:169
Definition: MSPUBTypes.h:187
MSPUBBlockType type
Definition: MSPUBTypes.h:58
MSPUBBlockInfo()
Definition: MSPUBTypes.h:56
unsigned long dataOffset
Definition: MSPUBTypes.h:60
CharacterStyle(bool u, bool i, bool b, boost::optional< double > tSIP=boost::optional< double >(), int cI=-1, boost::optional< unsigned > fI=boost::optional< unsigned >(), SuperSubType sst=NO_SUPER_SUB)
Definition: MSPUBTypes.h:95
boost::optional< unsigned > m_dropCapLines
Definition: MSPUBTypes.h:141
BorderPosition
Definition: MSPUBTypes.h:24
Definition: MSPUBTypes.h:35
unsigned char g
Definition: MSPUBTypes.h:169
std::string name
Definition: MSPUBTypes.h:84
Definition: MSPUBTypes.h:185
std::vector< unsigned char > chars
Definition: MSPUBTypes.h:154
Definition: MSPUBTypes.h:41
Definition: MSPUBTypes.h:26
MSPUBContentChunkType type
Definition: MSPUBTypes.h:71
Definition: MSPUBTypes.h:186
boost::optional< unsigned > m_spaceAfterEmu
Definition: MSPUBTypes.h:135
boost::optional< Alignment > m_align
Definition: MSPUBTypes.h:131
Definition: MSPUBTypes.h:116
unsigned short type
Definition: MSPUBTypes.h:49
Definition: MSPUBTypes.h:66
MSPUBBlockType
Definition: MSPUBBlockType.h:15
boost::optional< unsigned > m_rightIndentEmu
Definition: MSPUBTypes.h:138
std::vector< unsigned > m_tabStopsInEmu
Definition: MSPUBTypes.h:140
Definition: MSPUBTypes.h:34
Alignment
Definition: MSPUBTypes.h:38
unsigned parentSeqNum
Definition: MSPUBTypes.h:75
Definition: MSPUBTypes.h:181
boost::optional< ListInfo > m_listInfo
Definition: MSPUBTypes.h:139
Definition: MSPUBTypes.h:33
boost::optional< unsigned > m_spaceBeforeEmu
Definition: MSPUBTypes.h:134
PageType
Definition: MSPUBTypes.h:172
ImgType
Definition: MSPUBTypes.h:179
std::vector< unsigned char > stringData
Definition: MSPUBTypes.h:63
QuillChunkReference()
Definition: MSPUBTypes.h:80
Definition: MSPUBTypes.h:189
boost::optional< int > m_firstLineIndentEmu
Definition: MSPUBTypes.h:136
ContentChunkReference(MSPUBContentChunkType t, unsigned long o, unsigned long e, unsigned sn, unsigned psn)
Definition: MSPUBTypes.h:69
unsigned long dataLength
Definition: MSPUBTypes.h:61
Definition: MSPUBTypes.h:46
boost::optional< double > textSizeInPt
Definition: MSPUBTypes.h:104
unsigned short id
Definition: MSPUBTypes.h:83
boost::optional< unsigned > fontIndex
Definition: MSPUBTypes.h:106
Definition: MSPUBTypes.h:182
Definition: MSPUBTypes.h:129
Definition: MSPUBTypes.h:42
Definition: Arrow.h:13
Definition: MSPUBTypes.h:113
unsigned long length
Definition: MSPUBTypes.h:81
Definition: MSPUBTypes.h:78
boost::optional< LineSpacingInfo > m_lineSpacing
Definition: MSPUBTypes.h:133
Definition: MSPUBTypes.h:88
boost::optional< unsigned > m_leftIndentEmu
Definition: MSPUBTypes.h:137
unsigned long contentsOffset
Definition: MSPUBTypes.h:51
MSPUBBlockID id
Definition: MSPUBTypes.h:57
std::vector< TextSpan > spans
Definition: MSPUBTypes.h:161
bool italic
Definition: MSPUBTypes.h:102
Color()
Definition: MSPUBTypes.h:167
Definition: MSPUBTypes.h:176
unsigned long end
Definition: MSPUBTypes.h:73
LineSpacingInfo()
Definition: MSPUBTypes.h:120
MSPUBBlockID
Definition: MSPUBBlockID.h:15
ContentChunkReference()
Definition: MSPUBTypes.h:68
unsigned data
Definition: MSPUBTypes.h:62
unsigned char b
Definition: MSPUBTypes.h:169
LineSpacingType m_type
Definition: MSPUBTypes.h:118
Definition: MSPUBTypes.h:175
Definition: MSPUBTypes.h:188
boost::optional< unsigned > m_dropCapLetters
Definition: MSPUBTypes.h:142
unsigned long startPosition
Definition: MSPUBTypes.h:59
CharacterStyle()
Definition: MSPUBTypes.h:90
SuperSubType superSubType
Definition: MSPUBTypes.h:107
unsigned long offset
Definition: MSPUBTypes.h:82
LineSpacingInfo(LineSpacingType type, double amount)
Definition: MSPUBTypes.h:123
ParagraphStyle()
Definition: MSPUBTypes.h:143

Generated for libmspub by doxygen 1.8.9.1