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

Generated for libvisio by doxygen 1.8.8