VSDStyles.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 libvisio 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 __VSDSTYLES_H__
11 #define __VSDSTYLES_H__
12
13 #include <map>
14 #include <vector>
15 #include <boost/optional.hpp>
16 #include "VSDTypes.h"
17 #include "VSDXTheme.h"
18 #include "libvisio_utils.h"
19
20 namespace libvisio
21 {
22
23 struct VSDOptionalLineStyle
24 {
25 VSDOptionalLineStyle() :
26 width(), colour(), pattern(), startMarker(), endMarker(), cap(), rounding(),
27 qsLineColour(), qsLineMatrix() {}
28 VSDOptionalLineStyle(const boost::optional<double> &w, const boost::optional<Colour> &col,
29 const boost::optional<unsigned char> &p, const boost::optional<unsigned char> &sm,
30 const boost::optional<unsigned char> &em, const boost::optional<unsigned char> &c,
31 const boost::optional<double> &r, const boost::optional<long> &qlc,
32 const boost::optional<long> &qlm) :
33 width(w), colour(col), pattern(p), startMarker(sm), endMarker(em), cap(c), rounding(r),
34 qsLineColour(qlc), qsLineMatrix(qlm) {}
35 VSDOptionalLineStyle(const VSDOptionalLineStyle &style) :
36 width(style.width), colour(style.colour), pattern(style.pattern), startMarker(style.startMarker),
37 endMarker(style.endMarker), cap(style.cap), rounding(style.rounding), qsLineColour(style.qsLineColour),
38 qsLineMatrix(style.qsLineMatrix) {}
39 ~VSDOptionalLineStyle() {}
40 void override(const VSDOptionalLineStyle &style)
41 {
42 ASSIGN_OPTIONAL(style.width, width);
43 ASSIGN_OPTIONAL(style.colour, colour);
44 ASSIGN_OPTIONAL(style.pattern, pattern);
45 ASSIGN_OPTIONAL(style.startMarker, startMarker);
46 ASSIGN_OPTIONAL(style.endMarker, endMarker);
47 ASSIGN_OPTIONAL(style.cap, cap);
48 ASSIGN_OPTIONAL(style.rounding, rounding);
49 ASSIGN_OPTIONAL(style.qsLineColour, qsLineColour);
50 ASSIGN_OPTIONAL(style.qsLineMatrix, qsLineMatrix);
51 }
52
53 boost::optional<double> width;
54 boost::optional<Colour> colour;
55 boost::optional<unsigned char> pattern;
56 boost::optional<unsigned char> startMarker;
57 boost::optional<unsigned char> endMarker;
58 boost::optional<unsigned char> cap;
59 boost::optional<double> rounding;
60 boost::optional<long> qsLineColour;
61 boost::optional<long> qsLineMatrix;
62 };
63
64 struct VSDLineStyle
65 {
66 VSDLineStyle() :
67 width(0.01), colour(), pattern(1), startMarker(0), endMarker(0), cap(0),
68 rounding(0.0), qsLineColour(-1), qsLineMatrix(-1) {}
69 VSDLineStyle(double w, Colour col, unsigned char p, unsigned char sm,
70 unsigned char em, unsigned char c, double r, long qlc, long qlm) :
71 width(w), colour(col), pattern(p), startMarker(sm), endMarker(em), cap(c),
72 rounding(r), qsLineColour(qlc), qsLineMatrix(qlm) {}
73 VSDLineStyle(const VSDLineStyle &style) :
74 width(style.width), colour(style.colour), pattern(style.pattern),
75 startMarker(style.startMarker), endMarker(style.endMarker), cap(style.cap),
76 rounding(style.rounding), qsLineColour(style.qsLineColour),
77 qsLineMatrix(style.qsLineMatrix) {}
78 ~VSDLineStyle() {}
79 void override(const VSDOptionalLineStyle &style, const VSDXTheme *theme)
80 {
81 ASSIGN_OPTIONAL(style.width, width);
82 ASSIGN_OPTIONAL(style.pattern, pattern);
83 ASSIGN_OPTIONAL(style.startMarker, startMarker);
84 ASSIGN_OPTIONAL(style.endMarker, endMarker);
85 ASSIGN_OPTIONAL(style.cap, cap);
86 ASSIGN_OPTIONAL(style.rounding, rounding);
87 ASSIGN_OPTIONAL(style.qsLineColour, qsLineColour);
88 ASSIGN_OPTIONAL(style.qsLineMatrix, qsLineMatrix);
89 if (theme)
90 {
91 if (!!style.qsLineColour && style.qsLineColour.get() >= 0)
92 ASSIGN_OPTIONAL(theme->getThemeColour(style.qsLineColour.get()), colour);
93 }
94 ASSIGN_OPTIONAL(style.colour, colour);
95 }
96
97 double width;
98 Colour colour;
99 unsigned char pattern;
100 unsigned char startMarker;
101 unsigned char endMarker;
102 unsigned char cap;
103 double rounding;
104 long qsLineColour;
105 long qsLineMatrix;
106 };
107
108 struct VSDOptionalFillStyle
109 {
110 VSDOptionalFillStyle() :
111 fgColour(), bgColour(), pattern(), fgTransparency(), bgTransparency(), shadowFgColour(),
112 shadowPattern(), shadowOffsetX(), shadowOffsetY(), qsFillColour(), qsShadowColour(),
113 qsFillMatrix() {}
114 VSDOptionalFillStyle(const boost::optional<Colour> &fgc, const boost::optional<Colour> &bgc,
115 const boost::optional<unsigned char> &p, const boost::optional<double> &fga,
116 const boost::optional<double> &bga, const boost::optional<Colour> &sfgc,
117 const boost::optional<unsigned char> &shp, const boost::optional<double> &shX,
118 const boost::optional<double> &shY, const boost::optional<long> &qsFc,
119 const boost::optional<long> &qsSc, const boost::optional<long> &qsFm) :
120 fgColour(fgc), bgColour(bgc), pattern(p), fgTransparency(fga), bgTransparency(bga),
121 shadowFgColour(sfgc), shadowPattern(shp), shadowOffsetX(shX), shadowOffsetY(shY),
122 qsFillColour(qsFc), qsShadowColour(qsSc), qsFillMatrix(qsFm) {}
123 VSDOptionalFillStyle(const VSDOptionalFillStyle &style) :
124 fgColour(style.fgColour), bgColour(style.bgColour), pattern(style.pattern),
125 fgTransparency(style.fgTransparency), bgTransparency(style.bgTransparency),
126 shadowFgColour(style.shadowFgColour), shadowPattern(style.shadowPattern),
127 shadowOffsetX(style.shadowOffsetX), shadowOffsetY(style.shadowOffsetY),
128 qsFillColour(style.qsFillColour), qsShadowColour(style.qsShadowColour),
129 qsFillMatrix(style.qsFillMatrix) {}
130 ~VSDOptionalFillStyle() {}
131 void override(const VSDOptionalFillStyle &style)
132 {
133 ASSIGN_OPTIONAL(style.pattern, pattern);
134 ASSIGN_OPTIONAL(style.fgTransparency, fgTransparency);
135 ASSIGN_OPTIONAL(style.bgTransparency, bgTransparency);
136 ASSIGN_OPTIONAL(style.shadowPattern, shadowPattern);
137 ASSIGN_OPTIONAL(style.shadowOffsetX, shadowOffsetX);
138 ASSIGN_OPTIONAL(style.shadowOffsetY, shadowOffsetY);
139 ASSIGN_OPTIONAL(style.qsFillColour, qsFillColour);
140 ASSIGN_OPTIONAL(style.qsShadowColour, qsShadowColour);
141 ASSIGN_OPTIONAL(style.qsFillMatrix, qsFillMatrix);
142 ASSIGN_OPTIONAL(style.fgColour, fgColour);
143 ASSIGN_OPTIONAL(style.bgColour, bgColour);
144 ASSIGN_OPTIONAL(style.shadowFgColour, shadowFgColour);
145 }
146
147 boost::optional<Colour> fgColour;
148 boost::optional<Colour> bgColour;
149 boost::optional<unsigned char> pattern;
150 boost::optional<double> fgTransparency;
151 boost::optional<double> bgTransparency;
152 boost::optional<Colour> shadowFgColour;
153 boost::optional<unsigned char> shadowPattern;
154 boost::optional<double> shadowOffsetX;
155 boost::optional<double> shadowOffsetY;
156 boost::optional<long> qsFillColour;
157 boost::optional<long> qsShadowColour;
158 boost::optional<long> qsFillMatrix;
159 };
160
161 struct VSDFillStyle
162 {
163 VSDFillStyle()
164 : fgColour(), bgColour(0xff, 0xff, 0xff, 0), pattern(0), fgTransparency(0),
165 bgTransparency(0), shadowFgColour(), shadowPattern(0), shadowOffsetX(0),
166 shadowOffsetY(0), qsFillColour(-1), qsShadowColour(-1), qsFillMatrix(-1) {}
167 VSDFillStyle(const Colour &fgc, const Colour &bgc, unsigned char p,
168 double fga, double bga, const Colour &sfgc, unsigned char shp,
169 double shX, double shY, long qsFc, long qsSc, long qsFm)
170 : fgColour(fgc), bgColour(bgc), pattern(p), fgTransparency(fga), bgTransparency(bga),
171 shadowFgColour(sfgc), shadowPattern(shp), shadowOffsetX(shX), shadowOffsetY(shY),
172 qsFillColour(qsFc), qsShadowColour(qsSc), qsFillMatrix(qsFm) {}
173 VSDFillStyle(const VSDFillStyle &style) :
174 fgColour(style.fgColour), bgColour(style.bgColour), pattern(style.pattern),
175 fgTransparency(style.fgTransparency), bgTransparency(style.bgTransparency),
176 shadowFgColour(style.shadowFgColour), shadowPattern(style.shadowPattern),
177 shadowOffsetX(style.shadowOffsetX), shadowOffsetY(style.shadowOffsetY),
178 qsFillColour(style.qsFillColour), qsShadowColour(style.qsShadowColour),
179 qsFillMatrix(style.qsFillMatrix) {}
180 ~VSDFillStyle() {}
181 void override(const VSDOptionalFillStyle &style, const VSDXTheme *theme)
182 {
183 ASSIGN_OPTIONAL(style.pattern, pattern);
184 ASSIGN_OPTIONAL(style.fgTransparency, fgTransparency);
185 ASSIGN_OPTIONAL(style.bgTransparency, bgTransparency);
186 ASSIGN_OPTIONAL(style.shadowPattern, shadowPattern);
187 ASSIGN_OPTIONAL(style.shadowOffsetX, shadowOffsetX);
188 ASSIGN_OPTIONAL(style.shadowOffsetY, shadowOffsetY);
189 ASSIGN_OPTIONAL(style.shadowOffsetY, shadowOffsetY);
190 ASSIGN_OPTIONAL(style.qsFillColour, qsFillColour);
191 ASSIGN_OPTIONAL(style.qsShadowColour, qsShadowColour);
192 ASSIGN_OPTIONAL(style.qsFillMatrix, qsFillMatrix);
193 if (theme)
194 {
195 if (!!style.qsFillColour && style.qsFillColour.get() >= 0)
196 ASSIGN_OPTIONAL(theme->getThemeColour(style.qsFillColour.get()), fgColour);
197
198 if (!!style.qsFillColour && style.qsFillColour.get() >= 0)
199 ASSIGN_OPTIONAL(theme->getThemeColour(style.qsFillColour.get()), bgColour);
200
201 if (!!style.qsShadowColour && style.qsShadowColour.get() >= 0)
202 ASSIGN_OPTIONAL(theme->getThemeColour(style.qsShadowColour.get()), shadowFgColour);
203 }
204 ASSIGN_OPTIONAL(style.fgColour, fgColour);
205 ASSIGN_OPTIONAL(style.bgColour, bgColour);
206 ASSIGN_OPTIONAL(style.shadowFgColour, shadowFgColour);
207 }
208
209 Colour fgColour;
210 Colour bgColour;
211 unsigned char pattern;
212 double fgTransparency;
213 double bgTransparency;
214 Colour shadowFgColour;
215 unsigned char shadowPattern;
216 double shadowOffsetX;
217 double shadowOffsetY;
218 long qsFillColour;
219 long qsShadowColour;
220 long qsFillMatrix;
221 };
222
223 struct VSDOptionalCharStyle
224 {
225 VSDOptionalCharStyle()
226 : charCount(0), font(), colour(), size(), bold(), italic(),
227 underline(), doubleunderline(), strikeout(), doublestrikeout(),
228 allcaps(), initcaps(), smallcaps(), superscript(), subscript(),
229 scaleWidth() {}
230 VSDOptionalCharStyle(unsigned cc, const boost::optional<VSDName> &ft,
231 const boost::optional<Colour> &c, const boost::optional<double> &s,
232 const boost::optional<bool> &b, const boost::optional<bool> &i,
233 const boost::optional<bool> &u, const boost::optional<bool> &du,
234 const boost::optional<bool> &so, const boost::optional<bool> &dso,
235 const boost::optional<bool> &ac, const boost::optional<bool> &ic,
236 const boost::optional<bool> &sc, const boost::optional<bool> &super,
237 const boost::optional<bool> &sub, const boost::optional<double> &sw) :
238 charCount(cc), font(ft), colour(c), size(s), bold(b), italic(i),
239 underline(u), doubleunderline(du), strikeout(so), doublestrikeout(dso),
240 allcaps(ac), initcaps(ic), smallcaps(sc), superscript(super),
241 subscript(sub), scaleWidth(sw) {}
242 VSDOptionalCharStyle(const VSDOptionalCharStyle &style) :
243 charCount(style.charCount), font(style.font), colour(style.colour),
244 size(style.size), bold(style.bold), italic(style.italic),
245 underline(style.underline), doubleunderline(style.doubleunderline),
246 strikeout(style.strikeout), doublestrikeout(style.doublestrikeout),
247 allcaps(style.allcaps), initcaps(style.initcaps), smallcaps(style.smallcaps),
248 superscript(style.superscript), subscript(style.subscript), scaleWidth(style.scaleWidth) {}
249 ~VSDOptionalCharStyle() {}
250 void override(const VSDOptionalCharStyle &style)
251 {
252 ASSIGN_OPTIONAL(style.font, font);
253 ASSIGN_OPTIONAL(style.colour, colour);
254 ASSIGN_OPTIONAL(style.size, size);
255 ASSIGN_OPTIONAL(style.bold, bold);
256 ASSIGN_OPTIONAL(style.italic, italic);
257 ASSIGN_OPTIONAL(style.underline, underline);
258 ASSIGN_OPTIONAL(style.doubleunderline, doubleunderline);
259 ASSIGN_OPTIONAL(style.strikeout, strikeout);
260 ASSIGN_OPTIONAL(style.doublestrikeout, doublestrikeout);
261 ASSIGN_OPTIONAL(style.allcaps, allcaps);
262 ASSIGN_OPTIONAL(style.initcaps, initcaps);
263 ASSIGN_OPTIONAL(style.smallcaps, smallcaps);
264 ASSIGN_OPTIONAL(style.superscript, superscript);
265 ASSIGN_OPTIONAL(style.subscript, subscript);
266 ASSIGN_OPTIONAL(style.scaleWidth, scaleWidth);
267 }
268
269 unsigned charCount;
270 boost::optional<VSDName> font;
271 boost::optional<Colour> colour;
272 boost::optional<double> size;
273 boost::optional<bool> bold;
274 boost::optional<bool> italic;
275 boost::optional<bool> underline;
276 boost::optional<bool> doubleunderline;
277 boost::optional<bool> strikeout;
278 boost::optional<bool> doublestrikeout;
279 boost::optional<bool> allcaps;
280 boost::optional<bool> initcaps;
281 boost::optional<bool> smallcaps;
282 boost::optional<bool> superscript;
283 boost::optional<bool> subscript;
284 boost::optional<double> scaleWidth;
285 };
286
287 struct VSDCharStyle
288 {
289 VSDCharStyle()
290 : charCount(0), font(), colour(), size(12.0/72.0), bold(false),
291 italic(false), underline(false), doubleunderline(false),
292 strikeout(false), doublestrikeout(false), allcaps(false),
293 initcaps(false), smallcaps(false), superscript(false),
294 subscript(false), scaleWidth(1.0) {}
295 VSDCharStyle(unsigned cc, const VSDName &ft, const Colour &c, double s,
296 bool b, bool i, bool u, bool du, bool so, bool dso, bool ac,
297 bool ic, bool sc, bool super, bool sub, double sw) :
298 charCount(cc), font(ft), colour(c), size(s), bold(b), italic(i),
299 underline(u), doubleunderline(du), strikeout(so), doublestrikeout(dso),
300 allcaps(ac), initcaps(ic), smallcaps(sc), superscript(super),
301 subscript(sub), scaleWidth(sw) {}
302 VSDCharStyle(const VSDCharStyle &style) :
303 charCount(style.charCount), font(style.font), colour(style.colour),
304 size(style.size), bold(style.bold), italic(style.italic),
305 underline(style.underline), doubleunderline(style.doubleunderline),
306 strikeout(style.strikeout), doublestrikeout(style.doublestrikeout),
307 allcaps(style.allcaps), initcaps(style.initcaps),
308 smallcaps(style.smallcaps), superscript(style.superscript),
309 subscript(style.subscript), scaleWidth(style.scaleWidth) {}
310 ~VSDCharStyle() {}
311 void override(const VSDOptionalCharStyle &style, const VSDXTheme * /* theme */)
312 {
313 ASSIGN_OPTIONAL(style.font, font);
314 ASSIGN_OPTIONAL(style.colour, colour);
315 ASSIGN_OPTIONAL(style.size, size);
316 ASSIGN_OPTIONAL(style.bold, bold);
317 ASSIGN_OPTIONAL(style.italic, italic);
318 ASSIGN_OPTIONAL(style.underline, underline);
319 ASSIGN_OPTIONAL(style.doubleunderline, doubleunderline);
320 ASSIGN_OPTIONAL(style.strikeout, strikeout);
321 ASSIGN_OPTIONAL(style.doublestrikeout, doublestrikeout);
322 ASSIGN_OPTIONAL(style.allcaps, allcaps);
323 ASSIGN_OPTIONAL(style.initcaps, initcaps);
324 ASSIGN_OPTIONAL(style.smallcaps, smallcaps);
325 ASSIGN_OPTIONAL(style.superscript, superscript);
326 ASSIGN_OPTIONAL(style.subscript, subscript);
327 ASSIGN_OPTIONAL(style.scaleWidth, scaleWidth);
328 }
329
330 unsigned charCount;
331 VSDName font;
332 Colour colour;
333 double size;
334 bool bold;
335 bool italic;
336 bool underline;
337 bool doubleunderline;
338 bool strikeout;
339 bool doublestrikeout;
340 bool allcaps;
341 bool initcaps;
342 bool smallcaps;
343 bool superscript;
344 bool subscript;
345 double scaleWidth;
346 };
347
348 struct VSDOptionalParaStyle
349 {
350 VSDOptionalParaStyle() :
351 charCount(0), indFirst(), indLeft(), indRight(), spLine(), spBefore(), spAfter(), align(), bullet(),
352 bulletStr(), bulletFont(), bulletFontSize(0.0), textPosAfterBullet(0.0), flags() {}
353 VSDOptionalParaStyle(unsigned cc, const boost::optional<double> &ifst, const boost::optional<double> &il,
354 const boost::optional<double> &ir, const boost::optional<double> &sl,
355 const boost::optional<double> &sb, const boost::optional<double> &sa,
356 const boost::optional<unsigned char> &a, const boost::optional<unsigned char> &b,
357 const boost::optional<VSDName> &bs, const boost::optional<VSDName> &bf,
358 const boost::optional<double> bfs, const boost::optional<double> &tpab,
359 const boost::optional<unsigned> &f) :
360 charCount(cc), indFirst(ifst), indLeft(il), indRight(ir), spLine(sl), spBefore(sb), spAfter(sa),
361 align(a), bullet(b), bulletStr(bs), bulletFont(bf), bulletFontSize(bfs),
362 textPosAfterBullet(tpab), flags(f) {}
363 VSDOptionalParaStyle(const VSDOptionalParaStyle &style) :
364 charCount(style.charCount), indFirst(style.indFirst), indLeft(style.indLeft),
365 indRight(style.indRight), spLine(style.spLine), spBefore(style.spBefore), spAfter(style.spAfter),
366 align(style.align), bullet(style.bullet), bulletStr(style.bulletStr), bulletFont(style.bulletFont),
367 bulletFontSize(style.bulletFontSize), textPosAfterBullet(style.textPosAfterBullet),
368 flags(style.flags) {}
369 ~VSDOptionalParaStyle() {}
370 void override(const VSDOptionalParaStyle &style)
371 {
372 ASSIGN_OPTIONAL(style.indFirst, indFirst);
373 ASSIGN_OPTIONAL(style.indLeft, indLeft);
374 ASSIGN_OPTIONAL(style.indRight,indRight);
375 ASSIGN_OPTIONAL(style.spLine, spLine);
376 ASSIGN_OPTIONAL(style.spBefore, spBefore);
377 ASSIGN_OPTIONAL(style.spAfter, spAfter);
378 ASSIGN_OPTIONAL(style.align, align);
379 ASSIGN_OPTIONAL(style.bullet, bullet);
380 ASSIGN_OPTIONAL(style.bulletStr, bulletStr);
381 ASSIGN_OPTIONAL(style.bulletFont, bulletFont);
382 ASSIGN_OPTIONAL(style.bulletFontSize, bulletFontSize);
383 ASSIGN_OPTIONAL(style.textPosAfterBullet, textPosAfterBullet);
384 ASSIGN_OPTIONAL(style.flags, flags);
385 }
386
387 unsigned charCount;
388 boost::optional<double> indFirst;
389 boost::optional<double> indLeft;
390 boost::optional<double> indRight;
391 boost::optional<double> spLine;
392 boost::optional<double> spBefore;
393 boost::optional<double> spAfter;
394 boost::optional<unsigned char> align;
395 boost::optional<unsigned char> bullet;
396 boost::optional<VSDName> bulletStr;
397 boost::optional<VSDName> bulletFont;
398 boost::optional<double> bulletFontSize;
399 boost::optional<double> textPosAfterBullet;
400 boost::optional<unsigned> flags;
401 };
402
403 struct VSDParaStyle
404 {
405 VSDParaStyle() :
406 charCount(0), indFirst(0.0), indLeft(0.0), indRight(0.0), spLine(-1.2), spBefore(0.0), spAfter(0.0), align(1),
407 bullet(0), bulletStr(), bulletFont(), bulletFontSize(0.0), textPosAfterBullet(0.0), flags(0) {}
408 VSDParaStyle(unsigned cc, double ifst, double il, double ir, double sl, double sb,
409 double sa, unsigned char a, unsigned b, const VSDName &bs,
410 const VSDName &bf, double bfs, double tpab, unsigned f) :
411 charCount(cc), indFirst(ifst), indLeft(il), indRight(ir), spLine(sl), spBefore(sb), spAfter(sa), align(a),
412 bullet(b), bulletStr(bs), bulletFont(bf), bulletFontSize(bfs), textPosAfterBullet(tpab), flags(f) {}
413 VSDParaStyle(const VSDParaStyle &style) :
414 charCount(style.charCount), indFirst(style.indFirst), indLeft(style.indLeft), indRight(style.indRight),
415 spLine(style.spLine), spBefore(style.spBefore), spAfter(style.spAfter), align(style.align),
416 bullet(style.bullet), bulletStr(style.bulletStr), bulletFont(style.bulletFont),
417 bulletFontSize(style.bulletFontSize), textPosAfterBullet(style.textPosAfterBullet), flags(style.flags) {}
418 ~VSDParaStyle() {}
419 void override(const VSDOptionalParaStyle &style, const VSDXTheme * /* theme */)
420 {
421 ASSIGN_OPTIONAL(style.indFirst, indFirst);
422 ASSIGN_OPTIONAL(style.indLeft, indLeft);
423 ASSIGN_OPTIONAL(style.indRight,indRight);
424 ASSIGN_OPTIONAL(style.spLine, spLine);
425 ASSIGN_OPTIONAL(style.spBefore, spBefore);
426 ASSIGN_OPTIONAL(style.spAfter, spAfter);
427 ASSIGN_OPTIONAL(style.align, align);
428 ASSIGN_OPTIONAL(style.bullet, bullet);
429 ASSIGN_OPTIONAL(style.bulletStr, bulletStr);
430 ASSIGN_OPTIONAL(style.bulletFont, bulletFont);
431 ASSIGN_OPTIONAL(style.bulletFontSize, bulletFontSize);
432 ASSIGN_OPTIONAL(style.textPosAfterBullet, textPosAfterBullet);
433 ASSIGN_OPTIONAL(style.flags, flags);
434 }
435
436 unsigned charCount;
437 double indFirst;
438 double indLeft;
439 double indRight;
440 double spLine;
441 double spBefore;
442 double spAfter;
443 unsigned char align;
444 unsigned char bullet;
445 VSDName bulletStr;
446 VSDName bulletFont;
447 double bulletFontSize;
448 double textPosAfterBullet;
449 unsigned flags;
450 };
451
452 struct VSDOptionalTextBlockStyle
453 {
454 VSDOptionalTextBlockStyle() :
455 leftMargin(), rightMargin(), topMargin(), bottomMargin(), verticalAlign(), isTextBkgndFilled(),
456 textBkgndColour(), defaultTabStop(), textDirection() {}
457 VSDOptionalTextBlockStyle(const boost::optional<double> &lm, const boost::optional<double> &rm,
458 const boost::optional<double> &tm, const boost::optional<double> &bm,
459 const boost::optional<unsigned char> &va, const boost::optional<bool> &isBgFilled,
460 const boost::optional<Colour> &bgClr, const boost::optional<double> &defTab,
461 const boost::optional<unsigned char> &td) :
462 leftMargin(lm), rightMargin(rm), topMargin(tm), bottomMargin(bm), verticalAlign(va),
463 isTextBkgndFilled(isBgFilled), textBkgndColour(bgClr), defaultTabStop(defTab), textDirection(td) {}
464 VSDOptionalTextBlockStyle(const VSDOptionalTextBlockStyle &style) :
465 leftMargin(style.leftMargin), rightMargin(style.rightMargin), topMargin(style.topMargin),
466 bottomMargin(style.bottomMargin), verticalAlign(style.verticalAlign),
467 isTextBkgndFilled(style.isTextBkgndFilled), textBkgndColour(style.textBkgndColour),
468 defaultTabStop(style.defaultTabStop), textDirection(style.textDirection) {}
469 ~VSDOptionalTextBlockStyle() {}
470 void override(const VSDOptionalTextBlockStyle &style)
471 {
472 ASSIGN_OPTIONAL(style.leftMargin, leftMargin);
473 ASSIGN_OPTIONAL(style.rightMargin, rightMargin);
474 ASSIGN_OPTIONAL(style.topMargin, topMargin);
475 ASSIGN_OPTIONAL(style.bottomMargin, bottomMargin);
476 ASSIGN_OPTIONAL(style.verticalAlign, verticalAlign);
477 ASSIGN_OPTIONAL(style.isTextBkgndFilled, isTextBkgndFilled);
478 ASSIGN_OPTIONAL(style.textBkgndColour, textBkgndColour);
479 ASSIGN_OPTIONAL(style.defaultTabStop, defaultTabStop);
480 ASSIGN_OPTIONAL(style.textDirection, textDirection);
481 }
482
483 boost::optional<double> leftMargin;
484 boost::optional<double> rightMargin;
485 boost::optional<double> topMargin;
486 boost::optional<double> bottomMargin;
487 boost::optional<unsigned char> verticalAlign;
488 boost::optional<bool> isTextBkgndFilled;
489 boost::optional<Colour> textBkgndColour;
490 boost::optional<double> defaultTabStop;
491 boost::optional<unsigned char> textDirection;
492 };
493
494 struct VSDTextBlockStyle
495 {
496 VSDTextBlockStyle() :
497 leftMargin(0.0), rightMargin(0.0), topMargin(0.0), bottomMargin(0.0), verticalAlign(1),
498 isTextBkgndFilled(false), textBkgndColour(0xff,0xff,0xff,0), defaultTabStop(0.5), textDirection(0) {}
499 VSDTextBlockStyle(double lm, double rm, double tm, double bm, unsigned char va,
500 bool isBgFilled, Colour bgClr, double defTab, unsigned char td) :
501 leftMargin(lm), rightMargin(rm), topMargin(tm), bottomMargin(bm), verticalAlign(va),
502 isTextBkgndFilled(isBgFilled), textBkgndColour(bgClr), defaultTabStop(defTab), textDirection(td) {}
503 VSDTextBlockStyle(const VSDTextBlockStyle &style) :
504 leftMargin(style.leftMargin), rightMargin(style.rightMargin), topMargin(style.topMargin),
505 bottomMargin(style.bottomMargin), verticalAlign(style.verticalAlign), isTextBkgndFilled(style.isTextBkgndFilled),
506 textBkgndColour(style.textBkgndColour), defaultTabStop(style.defaultTabStop), textDirection(style.textDirection) {}
507 ~VSDTextBlockStyle() {}
508 void override(const VSDOptionalTextBlockStyle &style, const VSDXTheme * /* theme */)
509 {
510 ASSIGN_OPTIONAL(style.leftMargin, leftMargin);
511 ASSIGN_OPTIONAL(style.rightMargin, rightMargin);
512 ASSIGN_OPTIONAL(style.topMargin, topMargin);
513 ASSIGN_OPTIONAL(style.bottomMargin, bottomMargin);
514 ASSIGN_OPTIONAL(style.verticalAlign, verticalAlign);
515 ASSIGN_OPTIONAL(style.isTextBkgndFilled, isTextBkgndFilled);
516 ASSIGN_OPTIONAL(style.textBkgndColour, textBkgndColour);
517 ASSIGN_OPTIONAL(style.defaultTabStop, defaultTabStop);
518 ASSIGN_OPTIONAL(style.textDirection, textDirection);
519 }
520
521 double leftMargin;
522 double rightMargin;
523 double topMargin;
524 double bottomMargin;
525 unsigned char verticalAlign;
526 bool isTextBkgndFilled;
527 Colour textBkgndColour;
528 double defaultTabStop;
529 unsigned char textDirection;
530 };
531
532 class VSDStyles
533 {
534 public:
535 VSDStyles();
536 VSDStyles(const VSDStyles &styles);
537 ~VSDStyles();
538 VSDStyles &operator=(const VSDStyles &styles);
539 void addLineStyle(unsigned lineStyleIndex, const VSDOptionalLineStyle &lineStyle);
540 void addFillStyle(unsigned fillStyleIndex, const VSDOptionalFillStyle &fillStyle);
541 void addTextBlockStyle(unsigned textStyleIndex, const VSDOptionalTextBlockStyle &textBlockStyle);
542 void addCharStyle(unsigned textStyleIndex, const VSDOptionalCharStyle &charStyle);
543 void addParaStyle(unsigned textStyleIndex, const VSDOptionalParaStyle &paraStyle);
544
545 void addLineStyleMaster(unsigned lineStyleIndex, unsigned lineStyleMaster);
546 void addFillStyleMaster(unsigned fillStyleIndex, unsigned fillStyleMaster);
547 void addTextStyleMaster(unsigned textStyleIndex, unsigned textStyleMaster);
548
549 VSDOptionalLineStyle getOptionalLineStyle(unsigned lineStyleIndex) const;
550 VSDFillStyle getFillStyle(unsigned fillStyleIndex, const VSDXTheme *theme) const;
551 VSDOptionalFillStyle getOptionalFillStyle(unsigned fillStyleIndex) const;
552 VSDOptionalTextBlockStyle getOptionalTextBlockStyle(unsigned textStyleIndex) const;
553 VSDOptionalCharStyle getOptionalCharStyle(unsigned textStyleIndex) const;
554 VSDOptionalParaStyle getOptionalParaStyle(unsigned textStyleIndex) const;
555
556 private:
557 std::map<unsigned, VSDOptionalLineStyle> m_lineStyles;
558 std::map<unsigned, VSDOptionalFillStyle> m_fillStyles;
559 std::map<unsigned, VSDOptionalTextBlockStyle> m_textBlockStyles;
560 std::map<unsigned, VSDOptionalCharStyle> m_charStyles;
561 std::map<unsigned, VSDOptionalParaStyle> m_paraStyles;
562 std::map<unsigned, unsigned> m_lineStyleMasters;
563 std::map<unsigned, unsigned> m_fillStyleMasters;
564 std::map<unsigned, unsigned> m_textStyleMasters;
565 };
566
567
568 } // namespace libvisio
569
570 #endif // __VSDSTYLES_H__
571 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
libvisio::VSDOptionalParaStyle::bulletFont
boost::optional< VSDName > bulletFont
Definition: VSDStyles.h:397
libvisio::VSDOptionalTextBlockStyle::VSDOptionalTextBlockStyle
VSDOptionalTextBlockStyle(const boost::optional< double > &lm, const boost::optional< double > &rm, const boost::optional< double > &tm, const boost::optional< double > &bm, const boost::optional< unsigned char > &va, const boost::optional< bool > &isBgFilled, const boost::optional< Colour > &bgClr, const boost::optional< double > &defTab, const boost::optional< unsigned char > &td)
Definition: VSDStyles.h:457
libvisio::VSDStyles
Definition: VSDStyles.h:532
libvisio::VSDOptionalTextBlockStyle::textDirection
boost::optional< unsigned char > textDirection
Definition: VSDStyles.h:491
libvisio::VSDFillStyle::qsShadowColour
long qsShadowColour
Definition: VSDStyles.h:219
libvisio::VSDOptionalFillStyle::shadowOffsetX
boost::optional< double > shadowOffsetX
Definition: VSDStyles.h:154
libvisio::VSDOptionalCharStyle::VSDOptionalCharStyle
VSDOptionalCharStyle(const VSDOptionalCharStyle &style)
Definition: VSDStyles.h:242
libvisio::VSDCharStyle::colour
Colour colour
Definition: VSDStyles.h:332
libvisio::VSDStyles::getOptionalTextBlockStyle
VSDOptionalTextBlockStyle getOptionalTextBlockStyle(unsigned textStyleIndex) const
Definition: VSDStyles.cpp:148
libvisio::VSDTextBlockStyle::VSDTextBlockStyle
VSDTextBlockStyle(double lm, double rm, double tm, double bm, unsigned char va, bool isBgFilled, Colour bgClr, double defTab, unsigned char td)
Definition: VSDStyles.h:499
libvisio::VSDStyles::getOptionalCharStyle
VSDOptionalCharStyle getOptionalCharStyle(unsigned textStyleIndex) const
Definition: VSDStyles.cpp:153
libvisio::VSDFillStyle::fgTransparency
double fgTransparency
Definition: VSDStyles.h:212
libvisio::VSDStyles::m_textStyleMasters
std::map< unsigned, unsigned > m_textStyleMasters
Definition: VSDStyles.h:564
libvisio::VSDParaStyle::VSDParaStyle
VSDParaStyle()
Definition: VSDStyles.h:405
libvisio::VSDOptionalFillStyle
Definition: VSDStyles.h:108
libvisio::VSDOptionalCharStyle::VSDOptionalCharStyle
VSDOptionalCharStyle(unsigned cc, const boost::optional< VSDName > &ft, const boost::optional< Colour > &c, const boost::optional< double > &s, const boost::optional< bool > &b, const boost::optional< bool > &i, const boost::optional< bool > &u, const boost::optional< bool > &du, const boost::optional< bool > &so, const boost::optional< bool > &dso, const boost::optional< bool > &ac, const boost::optional< bool > &ic, const boost::optional< bool > &sc, const boost::optional< bool > &super, const boost::optional< bool > &sub, const boost::optional< double > &sw)
Definition: VSDStyles.h:230
libvisio::VSDParaStyle::VSDParaStyle
VSDParaStyle(const VSDParaStyle &style)
Definition: VSDStyles.h:413
libvisio::VSDTextBlockStyle::leftMargin
double leftMargin
Definition: VSDStyles.h:521
libvisio::VSDOptionalTextBlockStyle::defaultTabStop
boost::optional< double > defaultTabStop
Definition: VSDStyles.h:490
libvisio::VSDOptionalParaStyle::VSDOptionalParaStyle
VSDOptionalParaStyle(unsigned cc, const boost::optional< double > &ifst, const boost::optional< double > &il, const boost::optional< double > &ir, const boost::optional< double > &sl, const boost::optional< double > &sb, const boost::optional< double > &sa, const boost::optional< unsigned char > &a, const boost::optional< unsigned char > &b, const boost::optional< VSDName > &bs, const boost::optional< VSDName > &bf, const boost::optional< double > bfs, const boost::optional< double > &tpab, const boost::optional< unsigned > &f)
Definition: VSDStyles.h:353
libvisio::VSDOptionalCharStyle::font
boost::optional< VSDName > font
Definition: VSDStyles.h:270
libvisio::VSDCharStyle::subscript
bool subscript
Definition: VSDStyles.h:344
libvisio::VSDTextBlockStyle::~VSDTextBlockStyle
~VSDTextBlockStyle()
Definition: VSDStyles.h:507
libvisio::VSDOptionalFillStyle::VSDOptionalFillStyle
VSDOptionalFillStyle(const boost::optional< Colour > &fgc, const boost::optional< Colour > &bgc, const boost::optional< unsigned char > &p, const boost::optional< double > &fga, const boost::optional< double > &bga, const boost::optional< Colour > &sfgc, const boost::optional< unsigned char > &shp, const boost::optional< double > &shX, const boost::optional< double > &shY, const boost::optional< long > &qsFc, const boost::optional< long > &qsSc, const boost::optional< long > &qsFm)
Definition: VSDStyles.h:114
libvisio::VSDCharStyle::initcaps
bool initcaps
Definition: VSDStyles.h:341
libvisio::VSDParaStyle::spLine
double spLine
Definition: VSDStyles.h:440
libvisio::VSDLineStyle
Definition: VSDStyles.h:64
libvisio::VSDOptionalParaStyle::bullet
boost::optional< unsigned char > bullet
Definition: VSDStyles.h:395
libvisio::VSDStyles::m_lineStyles
std::map< unsigned, VSDOptionalLineStyle > m_lineStyles
Definition: VSDStyles.h:557
libvisio::VSDTextBlockStyle::VSDTextBlockStyle
VSDTextBlockStyle(const VSDTextBlockStyle &style)
Definition: VSDStyles.h:503
libvisio::VSDFillStyle::~VSDFillStyle
~VSDFillStyle()
Definition: VSDStyles.h:180
libvisio::VSDFillStyle::VSDFillStyle
VSDFillStyle(const Colour &fgc, const Colour &bgc, unsigned char p, double fga, double bga, const Colour &sfgc, unsigned char shp, double shX, double shY, long qsFc, long qsSc, long qsFm)
Definition: VSDStyles.h:167
libvisio::VSDOptionalTextBlockStyle::VSDOptionalTextBlockStyle
VSDOptionalTextBlockStyle(const VSDOptionalTextBlockStyle &style)
Definition: VSDStyles.h:464
libvisio::VSDOptionalParaStyle::indFirst
boost::optional< double > indFirst
Definition: VSDStyles.h:388
libvisio::VSDLineStyle::cap
unsigned char cap
Definition: VSDStyles.h:102
libvisio_utils.h
libvisio::Colour
Definition: VSDTypes.h:72
libvisio::VSDOptionalLineStyle::~VSDOptionalLineStyle
~VSDOptionalLineStyle()
Definition: VSDStyles.h:39
libvisio::VSDOptionalCharStyle::underline
boost::optional< bool > underline
Definition: VSDStyles.h:275
libvisio::VSDParaStyle::indRight
double indRight
Definition: VSDStyles.h:439
libvisio::VSDParaStyle::align
unsigned char align
Definition: VSDStyles.h:443
libvisio::VSDFillStyle::pattern
unsigned char pattern
Definition: VSDStyles.h:211
libvisio::VSDOptionalCharStyle::strikeout
boost::optional< bool > strikeout
Definition: VSDStyles.h:277
libvisio::VSDTextBlockStyle
Definition: VSDStyles.h:494
libvisio::VSDFillStyle::shadowOffsetX
double shadowOffsetX
Definition: VSDStyles.h:216
libvisio::VSDOptionalTextBlockStyle::rightMargin
boost::optional< double > rightMargin
Definition: VSDStyles.h:484
libvisio::VSDOptionalTextBlockStyle
Definition: VSDStyles.h:452
libvisio::VSDOptionalCharStyle::subscript
boost::optional< bool > subscript
Definition: VSDStyles.h:283
libvisio::VSDOptionalCharStyle::size
boost::optional< double > size
Definition: VSDStyles.h:272
libvisio::VSDParaStyle::textPosAfterBullet
double textPosAfterBullet
Definition: VSDStyles.h:448
libvisio::VSDOptionalLineStyle::cap
boost::optional< unsigned char > cap
Definition: VSDStyles.h:58
libvisio::VSDCharStyle::doublestrikeout
bool doublestrikeout
Definition: VSDStyles.h:339
libvisio::VSDOptionalCharStyle::scaleWidth
boost::optional< double > scaleWidth
Definition: VSDStyles.h:284
libvisio::VSDCharStyle::~VSDCharStyle
~VSDCharStyle()
Definition: VSDStyles.h:310
libvisio::VSDOptionalLineStyle::VSDOptionalLineStyle
VSDOptionalLineStyle()
Definition: VSDStyles.h:25
libvisio::VSDLineStyle::VSDLineStyle
VSDLineStyle(const VSDLineStyle &style)
Definition: VSDStyles.h:73
libvisio::VSDStyles::~VSDStyles
~VSDStyles()
Definition: VSDStyles.cpp:70
libvisio::VSDCharStyle::doubleunderline
bool doubleunderline
Definition: VSDStyles.h:337
libvisio::VSDCharStyle::font
VSDName font
Definition: VSDStyles.h:331
libvisio::VSDTextBlockStyle::verticalAlign
unsigned char verticalAlign
Definition: VSDStyles.h:525
libvisio::VSDOptionalCharStyle::charCount
unsigned charCount
Definition: VSDStyles.h:269
libvisio::VSDStyles::m_lineStyleMasters
std::map< unsigned, unsigned > m_lineStyleMasters
Definition: VSDStyles.h:562
libvisio::VSDParaStyle::bulletFontSize
double bulletFontSize
Definition: VSDStyles.h:447
libvisio::VSDOptionalLineStyle::qsLineMatrix
boost::optional< long > qsLineMatrix
Definition: VSDStyles.h:61
libvisio::VSDOptionalLineStyle
Definition: VSDStyles.h:23
libvisio::VSDStyles::addFillStyleMaster
void addFillStyleMaster(unsigned fillStyleIndex, unsigned fillStyleMaster)
Definition: VSDStyles.cpp:121
libvisio::VSDOptionalParaStyle::charCount
unsigned charCount
Definition: VSDStyles.h:387
libvisio::VSDOptionalLineStyle::startMarker
boost::optional< unsigned char > startMarker
Definition: VSDStyles.h:56
libvisio::VSDOptionalCharStyle::allcaps
boost::optional< bool > allcaps
Definition: VSDStyles.h:279
libvisio::VSDParaStyle::VSDParaStyle
VSDParaStyle(unsigned cc, double ifst, double il, double ir, double sl, double sb, double sa, unsigned char a, unsigned b, const VSDName &bs, const VSDName &bf, double bfs, double tpab, unsigned f)
Definition: VSDStyles.h:408
libvisio::VSDOptionalCharStyle::doubleunderline
boost::optional< bool > doubleunderline
Definition: VSDStyles.h:276
libvisio::VSDTextBlockStyle::textDirection
unsigned char textDirection
Definition: VSDStyles.h:529
libvisio::VSDCharStyle::allcaps
bool allcaps
Definition: VSDStyles.h:340
libvisio::VSDStyles::getOptionalParaStyle
VSDOptionalParaStyle getOptionalParaStyle(unsigned textStyleIndex) const
Definition: VSDStyles.cpp:158
libvisio::VSDLineStyle::endMarker
unsigned char endMarker
Definition: VSDStyles.h:101
libvisio::VSDParaStyle::spBefore
double spBefore
Definition: VSDStyles.h:441
libvisio::VSDCharStyle::bold
bool bold
Definition: VSDStyles.h:334
libvisio::VSDCharStyle::scaleWidth
double scaleWidth
Definition: VSDStyles.h:345
libvisio::VSDOptionalParaStyle::indRight
boost::optional< double > indRight
Definition: VSDStyles.h:390
libvisio::VSDStyles::m_fillStyleMasters
std::map< unsigned, unsigned > m_fillStyleMasters
Definition: VSDStyles.h:563
libvisio::VSDCharStyle::superscript
bool superscript
Definition: VSDStyles.h:343
libvisio::VSDStyles::m_paraStyles
std::map< unsigned, VSDOptionalParaStyle > m_paraStyles
Definition: VSDStyles.h:561
libvisio::VSDFillStyle::VSDFillStyle
VSDFillStyle(const VSDFillStyle &style)
Definition: VSDStyles.h:173
libvisio::VSDStyles::addLineStyle
void addLineStyle(unsigned lineStyleIndex, const VSDOptionalLineStyle &lineStyle)
Definition: VSDStyles.cpp:91
libvisio::VSDOptionalTextBlockStyle::leftMargin
boost::optional< double > leftMargin
Definition: VSDStyles.h:483
libvisio::VSDOptionalParaStyle
Definition: VSDStyles.h:348
libvisio::VSDStyles::getOptionalFillStyle
VSDOptionalFillStyle getOptionalFillStyle(unsigned fillStyleIndex) const
Definition: VSDStyles.cpp:136
libvisio::VSDParaStyle::bullet
unsigned char bullet
Definition: VSDStyles.h:444
libvisio::VSDParaStyle::indFirst
double indFirst
Definition: VSDStyles.h:437
libvisio::VSDCharStyle
Definition: VSDStyles.h:287
libvisio::VSDOptionalParaStyle::VSDOptionalParaStyle
VSDOptionalParaStyle()
Definition: VSDStyles.h:350
libvisio::VSDStyles::addCharStyle
void addCharStyle(unsigned textStyleIndex, const VSDOptionalCharStyle &charStyle)
Definition: VSDStyles.cpp:106
libvisio::VSDStyles::getOptionalLineStyle
VSDOptionalLineStyle getOptionalLineStyle(unsigned lineStyleIndex) const
Definition: VSDStyles.cpp:131
libvisio::VSDOptionalTextBlockStyle::VSDOptionalTextBlockStyle
VSDOptionalTextBlockStyle()
Definition: VSDStyles.h:454
libvisio::VSDOptionalFillStyle::pattern
boost::optional< unsigned char > pattern
Definition: VSDStyles.h:149
libvisio::VSDOptionalFillStyle::bgTransparency
boost::optional< double > bgTransparency
Definition: VSDStyles.h:151
libvisio::VSDParaStyle::charCount
unsigned charCount
Definition: VSDStyles.h:436
libvisio::VSDStyles::VSDStyles
VSDStyles()
Definition: VSDStyles.cpp:57
libvisio::VSDOptionalLineStyle::colour
boost::optional< Colour > colour
Definition: VSDStyles.h:54
libvisio::VSDOptionalCharStyle::italic
boost::optional< bool > italic
Definition: VSDStyles.h:274
libvisio::VSDLineStyle::~VSDLineStyle
~VSDLineStyle()
Definition: VSDStyles.h:78
libvisio::VSDCharStyle::VSDCharStyle
VSDCharStyle(unsigned cc, const VSDName &ft, const Colour &c, double s, bool b, bool i, bool u, bool du, bool so, bool dso, bool ac, bool ic, bool sc, bool super, bool sub, double sw)
Definition: VSDStyles.h:295
libvisio::VSDOptionalParaStyle::bulletFontSize
boost::optional< double > bulletFontSize
Definition: VSDStyles.h:398
libvisio::VSDOptionalParaStyle::indLeft
boost::optional< double > indLeft
Definition: VSDStyles.h:389
libvisio::VSDFillStyle::shadowFgColour
Colour shadowFgColour
Definition: VSDStyles.h:214
libvisio::VSDOptionalCharStyle::bold
boost::optional< bool > bold
Definition: VSDStyles.h:273
libvisio::VSDStyles::addTextStyleMaster
void addTextStyleMaster(unsigned textStyleIndex, unsigned textStyleMaster)
Definition: VSDStyles.cpp:126
libvisio::VSDOptionalParaStyle::spAfter
boost::optional< double > spAfter
Definition: VSDStyles.h:393
libvisio::VSDTextBlockStyle::textBkgndColour
Colour textBkgndColour
Definition: VSDStyles.h:527
libvisio::VSDLineStyle::VSDLineStyle
VSDLineStyle()
Definition: VSDStyles.h:66
libvisio::VSDFillStyle::VSDFillStyle
VSDFillStyle()
Definition: VSDStyles.h:163
libvisio::VSDOptionalTextBlockStyle::verticalAlign
boost::optional< unsigned char > verticalAlign
Definition: VSDStyles.h:487
libvisio::VSDOptionalFillStyle::qsShadowColour
boost::optional< long > qsShadowColour
Definition: VSDStyles.h:157
VSDTypes.h
libvisio::VSDOptionalTextBlockStyle::isTextBkgndFilled
boost::optional< bool > isTextBkgndFilled
Definition: VSDStyles.h:488
libvisio::VSDOptionalCharStyle::doublestrikeout
boost::optional< bool > doublestrikeout
Definition: VSDStyles.h:278
libvisio::VSDOptionalParaStyle::spBefore
boost::optional< double > spBefore
Definition: VSDStyles.h:392
libvisio::VSDCharStyle::italic
bool italic
Definition: VSDStyles.h:335
libvisio::VSDLineStyle::startMarker
unsigned char startMarker
Definition: VSDStyles.h:100
libvisio::VSDOptionalTextBlockStyle::topMargin
boost::optional< double > topMargin
Definition: VSDStyles.h:485
libvisio::VSDLineStyle::qsLineMatrix
long qsLineMatrix
Definition: VSDStyles.h:105
libvisio::VSDParaStyle::flags
unsigned flags
Definition: VSDStyles.h:449
libvisio::VSDOptionalFillStyle::qsFillColour
boost::optional< long > qsFillColour
Definition: VSDStyles.h:156
libvisio::VSDLineStyle::rounding
double rounding
Definition: VSDStyles.h:103
libvisio::VSDOptionalLineStyle::width
boost::optional< double > width
Definition: VSDStyles.h:53
libvisio::VSDOptionalLineStyle::VSDOptionalLineStyle
VSDOptionalLineStyle(const VSDOptionalLineStyle &style)
Definition: VSDStyles.h:35
libvisio::VSDCharStyle::smallcaps
bool smallcaps
Definition: VSDStyles.h:342
libvisio::VSDTextBlockStyle::VSDTextBlockStyle
VSDTextBlockStyle()
Definition: VSDStyles.h:496
libvisio::VSDOptionalParaStyle::spLine
boost::optional< double > spLine
Definition: VSDStyles.h:391
libvisio::VSDFillStyle::shadowPattern
unsigned char shadowPattern
Definition: VSDStyles.h:215
libvisio::VSDOptionalCharStyle::smallcaps
boost::optional< bool > smallcaps
Definition: VSDStyles.h:281
libvisio::VSDStyles::operator=
VSDStyles & operator=(const VSDStyles &styles)
Definition: VSDStyles.cpp:74
libvisio::VSDTextBlockStyle::bottomMargin
double bottomMargin
Definition: VSDStyles.h:524
libvisio::VSDFillStyle
Definition: VSDStyles.h:161
libvisio::VSDStyles::getFillStyle
VSDFillStyle getFillStyle(unsigned fillStyleIndex, const VSDXTheme *theme) const
Definition: VSDStyles.cpp:141
libvisio::VSDFillStyle::fgColour
Colour fgColour
Definition: VSDStyles.h:209
libvisio::VSDStyles::addFillStyle
void addFillStyle(unsigned fillStyleIndex, const VSDOptionalFillStyle &fillStyle)
Definition: VSDStyles.cpp:96
libvisio::VSDOptionalParaStyle::~VSDOptionalParaStyle
~VSDOptionalParaStyle()
Definition: VSDStyles.h:369
libvisio::VSDOptionalCharStyle
Definition: VSDStyles.h:223
libvisio::VSDOptionalTextBlockStyle::textBkgndColour
boost::optional< Colour > textBkgndColour
Definition: VSDStyles.h:489
libvisio::VSDOptionalParaStyle::VSDOptionalParaStyle
VSDOptionalParaStyle(const VSDOptionalParaStyle &style)
Definition: VSDStyles.h:363
libvisio::VSDOptionalParaStyle::align
boost::optional< unsigned char > align
Definition: VSDStyles.h:394
libvisio::VSDOptionalLineStyle::rounding
boost::optional< double > rounding
Definition: VSDStyles.h:59
libvisio
Definition: libvisio_utils.h:48
libvisio::VSDOptionalFillStyle::shadowOffsetY
boost::optional< double > shadowOffsetY
Definition: VSDStyles.h:155
libvisio::VSDCharStyle::size
double size
Definition: VSDStyles.h:333
libvisio::VSDParaStyle
Definition: VSDStyles.h:403
libvisio::VSDStyles::m_charStyles
std::map< unsigned, VSDOptionalCharStyle > m_charStyles
Definition: VSDStyles.h:560
libvisio::VSDOptionalFillStyle::~VSDOptionalFillStyle
~VSDOptionalFillStyle()
Definition: VSDStyles.h:130
libvisio::VSDOptionalCharStyle::~VSDOptionalCharStyle
~VSDOptionalCharStyle()
Definition: VSDStyles.h:249
libvisio::VSDOptionalCharStyle::initcaps
boost::optional< bool > initcaps
Definition: VSDStyles.h:280
libvisio::VSDCharStyle::VSDCharStyle
VSDCharStyle(const VSDCharStyle &style)
Definition: VSDStyles.h:302
libvisio::VSDLineStyle::colour
Colour colour
Definition: VSDStyles.h:98
libvisio::VSDLineStyle::width
double width
Definition: VSDStyles.h:97
libvisio::VSDStyles::addParaStyle
void addParaStyle(unsigned textStyleIndex, const VSDOptionalParaStyle &paraStyle)
Definition: VSDStyles.cpp:111
libvisio::VSDOptionalLineStyle::qsLineColour
boost::optional< long > qsLineColour
Definition: VSDStyles.h:60
VSDXTheme.h
libvisio::VSDOptionalFillStyle::fgColour
boost::optional< Colour > fgColour
Definition: VSDStyles.h:147
ASSIGN_OPTIONAL
#define ASSIGN_OPTIONAL(t, u)
Definition: VSDTypes.h:17
libvisio::VSDFillStyle::qsFillColour
long qsFillColour
Definition: VSDStyles.h:218
libvisio::VSDCharStyle::underline
bool underline
Definition: VSDStyles.h:336
libvisio::VSDOptionalParaStyle::flags
boost::optional< unsigned > flags
Definition: VSDStyles.h:400
libvisio::VSDCharStyle::strikeout
bool strikeout
Definition: VSDStyles.h:338
libvisio::VSDStyles::m_fillStyles
std::map< unsigned, VSDOptionalFillStyle > m_fillStyles
Definition: VSDStyles.h:558
libvisio::VSDStyles::addTextBlockStyle
void addTextBlockStyle(unsigned textStyleIndex, const VSDOptionalTextBlockStyle &textBlockStyle)
Definition: VSDStyles.cpp:101
libvisio::VSDOptionalFillStyle::shadowFgColour
boost::optional< Colour > shadowFgColour
Definition: VSDStyles.h:152
libvisio::VSDParaStyle::indLeft
double indLeft
Definition: VSDStyles.h:438
libvisio::VSDTextBlockStyle::defaultTabStop
double defaultTabStop
Definition: VSDStyles.h:528
libvisio::VSDOptionalParaStyle::bulletStr
boost::optional< VSDName > bulletStr
Definition: VSDStyles.h:396
libvisio::VSDOptionalCharStyle::colour
boost::optional< Colour > colour
Definition: VSDStyles.h:271
libvisio::VSDOptionalTextBlockStyle::~VSDOptionalTextBlockStyle
~VSDOptionalTextBlockStyle()
Definition: VSDStyles.h:469
libvisio::VSDParaStyle::bulletFont
VSDName bulletFont
Definition: VSDStyles.h:446
libvisio::VSDOptionalFillStyle::shadowPattern
boost::optional< unsigned char > shadowPattern
Definition: VSDStyles.h:153
libvisio::VSDCharStyle::charCount
unsigned charCount
Definition: VSDStyles.h:330
libvisio::VSDFillStyle::shadowOffsetY
double shadowOffsetY
Definition: VSDStyles.h:217
libvisio::VSDOptionalTextBlockStyle::bottomMargin
boost::optional< double > bottomMargin
Definition: VSDStyles.h:486
libvisio::VSDOptionalFillStyle::VSDOptionalFillStyle
VSDOptionalFillStyle(const VSDOptionalFillStyle &style)
Definition: VSDStyles.h:123
libvisio::VSDXTheme
Definition: VSDXTheme.h:76
libvisio::VSDName
Definition: VSDTypes.h:178
libvisio::VSDOptionalFillStyle::bgColour
boost::optional< Colour > bgColour
Definition: VSDStyles.h:148
libvisio::VSDOptionalLineStyle::VSDOptionalLineStyle
VSDOptionalLineStyle(const boost::optional< double > &w, const boost::optional< Colour > &col, const boost::optional< unsigned char > &p, const boost::optional< unsigned char > &sm, const boost::optional< unsigned char > &em, const boost::optional< unsigned char > &c, const boost::optional< double > &r, const boost::optional< long > &qlc, const boost::optional< long > &qlm)
Definition: VSDStyles.h:28
libvisio::VSDOptionalFillStyle::fgTransparency
boost::optional< double > fgTransparency
Definition: VSDStyles.h:150
libvisio::VSDFillStyle::bgColour
Colour bgColour
Definition: VSDStyles.h:210
libvisio::VSDOptionalFillStyle::VSDOptionalFillStyle
VSDOptionalFillStyle()
Definition: VSDStyles.h:110
libvisio::VSDLineStyle::pattern
unsigned char pattern
Definition: VSDStyles.h:99
libvisio::VSDCharStyle::VSDCharStyle
VSDCharStyle()
Definition: VSDStyles.h:289
libvisio::VSDParaStyle::~VSDParaStyle
~VSDParaStyle()
Definition: VSDStyles.h:418
libvisio::VSDTextBlockStyle::rightMargin
double rightMargin
Definition: VSDStyles.h:522
libvisio::VSDParaStyle::spAfter
double spAfter
Definition: VSDStyles.h:442
libvisio::VSDFillStyle::qsFillMatrix
long qsFillMatrix
Definition: VSDStyles.h:220
libvisio::VSDOptionalParaStyle::textPosAfterBullet
boost::optional< double > textPosAfterBullet
Definition: VSDStyles.h:399
libvisio::VSDTextBlockStyle::topMargin
double topMargin
Definition: VSDStyles.h:523
libvisio::VSDLineStyle::qsLineColour
long qsLineColour
Definition: VSDStyles.h:104
libvisio::VSDFillStyle::bgTransparency
double bgTransparency
Definition: VSDStyles.h:213
libvisio::VSDStyles::m_textBlockStyles
std::map< unsigned, VSDOptionalTextBlockStyle > m_textBlockStyles
Definition: VSDStyles.h:559
libvisio::VSDOptionalLineStyle::pattern
boost::optional< unsigned char > pattern
Definition: VSDStyles.h:55
libvisio::VSDLineStyle::VSDLineStyle
VSDLineStyle(double w, Colour col, unsigned char p, unsigned char sm, unsigned char em, unsigned char c, double r, long qlc, long qlm)
Definition: VSDStyles.h:69
libvisio::VSDParaStyle::bulletStr
VSDName bulletStr
Definition: VSDStyles.h:445
libvisio::VSDStyles::addLineStyleMaster
void addLineStyleMaster(unsigned lineStyleIndex, unsigned lineStyleMaster)
Definition: VSDStyles.cpp:116
libvisio::VSDTextBlockStyle::isTextBkgndFilled
bool isTextBkgndFilled
Definition: VSDStyles.h:526
libvisio::VSDOptionalCharStyle::VSDOptionalCharStyle
VSDOptionalCharStyle()
Definition: VSDStyles.h:225
libvisio::VSDOptionalLineStyle::endMarker
boost::optional< unsigned char > endMarker
Definition: VSDStyles.h:57
libvisio::VSDOptionalCharStyle::superscript
boost::optional< bool > superscript
Definition: VSDStyles.h:282
libvisio::VSDOptionalFillStyle::qsFillMatrix
boost::optional< long > qsFillMatrix
Definition: VSDStyles.h:158