Dash.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* libmspub
3  * Version: MPL 1.1 / GPLv2+ / LGPLv2+
4  *
5  * The contents of this file are subject to the Mozilla Public License Version
6  * 1.1 (the "License"); you may not use this file except in compliance with
7  * the License or as specified alternatively below. You may obtain a copy of
8  * the License at http://www.mozilla.org/MPL/
9  *
10  * Software distributed under the License is distributed on an "AS IS" basis,
11  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12  * for the specific language governing rights and limitations under the
13  * License.
14  *
15  * Major Contributor(s):
16  * Copyright (C) 2012 Brennan Vincent <brennanv@email.arizona.edu>
17  *
18  * All Rights Reserved.
19  *
20  * For minor contributions see the git repository.
21  *
22  * Alternatively, the contents of this file may be used under the terms of
23  * either the GNU General Public License Version 2 or later (the "GPLv2+"), or
24  * the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"),
25  * in which case the provisions of the GPLv2+ or the LGPLv2+ are applicable
26  * instead of those above.
27  */
28 
29 #ifndef __DASH_H__
30 #define __DASH_H__
31 
32 #include <boost/optional.hpp>
33 #include <vector>
34 
35 namespace libmspub
36 {
38 {
41 };
43 {
55 };
56 struct Dot
57 {
58  boost::optional<double> m_length;
59  unsigned m_count;
60  Dot(unsigned count) : m_length(), m_count(count)
61  {
62  }
63  Dot(unsigned count, double length) : m_length(length), m_count(count)
64  {
65  }
66 };
67 struct Dash
68 {
69  double m_distance;
71  std::vector<Dot> m_dots; // empty vector is interpreted as solid line
72  Dash(double distance, DotStyle dotStyle) : m_distance(distance),
73  m_dotStyle(dotStyle), m_dots()
74  {
75  }
76 };
77 bool operator!=(const Dot &lhs, const Dot &rhs);
78 bool operator==(const Dot &lhs, const Dot &rhs);
79 bool operator==(const Dash &lhs, const Dash &rhs);
80 Dash getDash(MSPUBDashStyle style, unsigned shapeLineWidthInEmu,
81  DotStyle dotStyle);
82 } // namespace libmspub
83 
84 #endif /* __DASH_H__ */
85 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */

Generated for libmspub by doxygen 1.8.3.1