108 lines
2.2 KiB
C++
Executable File
108 lines
2.2 KiB
C++
Executable File
/**
|
|
* @RDE_HEADER@
|
|
* LineStyle
|
|
* $Id$
|
|
* $HeadURL$
|
|
* $Author$
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
// Own
|
|
#include "situation_map_types.h"
|
|
#include <situation_map_export.h>
|
|
|
|
|
|
// Qt
|
|
#include <QColor>
|
|
|
|
|
|
//----------------------------------------------------------------------------
|
|
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
|
|
|