/** * @RDE_HEADER@ * LineStyle * $Id$ * $HeadURL$ * $Author$ */ #pragma once // Own #include "situation_map_types.h" #include // Qt #include //---------------------------------------------------------------------------- namespace SituationMap { /** * @brief The LineStyle class contains parameter to draw a line like color, width and pattern. */ class SITUATIONMAP_EXPORT LineStyle final { public: /*! \name Construction, Destruction */ //@{ /** * @brief Constructor */ LineStyle() = default; /** * @brief Constructor */ explicit LineStyle(const QColor &lineColor, int lineWidth = 1, LinePattern linePattern = LinePattern::Solid); /** * @brief Destructor */ ~LineStyle() = default; //@} /*! \name Set and get for member.*/ //@{ QColor lineColor() const; void setLineColor(const QColor &lineColor); int lineWidth() const; void setLineWidth(int lineWidth); LinePattern linePattern() const; void setLinePattern(const LinePattern &linePattern); //@} /** * @brief operator== Compare two objects * @param other to be compared with * @return true if identical, otherwise false. */ bool operator==(const LineStyle &other) const { return ((this->m_lineColor == other.m_lineColor) && (this->m_lineWidth == other.m_lineWidth) && (this->m_linePattern == other.m_linePattern) ); } /** * @brief operator!= Compare two objects * @param other to be compared with * @return true if NOT identical, otherwise false. */ bool operator!=(const LineStyle &other) const { return !(*this == other); } private: QColor m_lineColor = Qt::black; int m_lineWidth = 1; SituationMap::LinePattern m_linePattern = LinePattern::Solid; }; //----------------------------------------------------------------------------- // output operator: //----------------------------------------------------------------------------- SITUATIONMAP_EXPORT std::ostream &operator<< (std::ostream &stream, const LineStyle &value); } // namespace SituationMap