Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef __DASH_H__
00030 #define __DASH_H__
00031
00032 #include <boost/optional.hpp>
00033 #include <vector>
00034
00035 namespace libmspub
00036 {
00037 enum DotStyle
00038 {
00039 RECT_DOT,
00040 ROUND_DOT
00041 };
00042 enum MSPUBDashStyle
00043 {
00044 MSPUB_DS_SOLID,
00045 DASH_SYS,
00046 DOT_SYS,
00047 DASH_DOT_SYS,
00048 DASH_DOT_DOT_SYS,
00049 DOT_GEL,
00050 DASH_GEL,
00051 LONG_DASH_GEL,
00052 DASH_DOT_GEL,
00053 LONG_DASH_DOT_GEL,
00054 LONG_DASH_DOT_DOT_GEL
00055 };
00056 struct Dot
00057 {
00058 boost::optional<double> m_length;
00059 unsigned m_count;
00060 Dot(unsigned count) : m_length(), m_count(count)
00061 {
00062 }
00063 Dot(unsigned count, double length) : m_length(length), m_count(count)
00064 {
00065 }
00066 };
00067 struct Dash
00068 {
00069 double m_distance;
00070 DotStyle m_dotStyle;
00071 std::vector<Dot> m_dots;
00072 Dash(double distance, DotStyle dotStyle) : m_distance(distance),
00073 m_dotStyle(dotStyle), m_dots()
00074 {
00075 }
00076 };
00077 bool operator!=(const Dot &lhs, const Dot &rhs);
00078 bool operator==(const Dot &lhs, const Dot &rhs);
00079 bool operator==(const Dash &lhs, const Dash &rhs);
00080 Dash getDash(MSPUBDashStyle style, unsigned shapeLineWidthInEmu,
00081 DotStyle dotStyle);
00082 }
00083
00084 #endif
00085