00001
00002
00003
00004
00005
00006
00007 #ifndef CURVE_STYLES_H
00008 #define CURVE_STYLES_H
00009
00010 #include "ColorPalette.h"
00011 #include "CurveStyle.h"
00012 #include <QHash>
00013 #include <QString>
00014
00015 class CoordSystem;
00016 class QXmlStreamReader;
00017 class QXmlStreamWriter;
00018
00019 typedef QHash<QString, CurveStyle> CurveStylesInternal;
00020
00022 class CurveStyles
00023 {
00024 public:
00026 CurveStyles();
00027
00029 CurveStyles(const CoordSystem &coordSystem);
00030
00032 CurveStyles (const CurveStyles &other);
00033
00035 CurveStyles &operator=(const CurveStyles &other);
00036
00038 QStringList curveNames () const;
00039
00041 CurveStyle curveStyle (const QString &curveName) const;
00042
00044 ColorPalette lineColor (const QString &curveName) const;
00045
00047 CurveConnectAs lineConnectAs (const QString &curveName) const;
00048
00050 const LineStyle lineStyle (const QString &curveName) const;
00051
00053 int lineWidth (const QString &curveName) const;
00054
00056 void loadXml (QXmlStreamReader &reader);
00057
00059 ColorPalette pointColor (const QString &curveName) const;
00060
00062 bool pointIsCircle (const QString &curveName) const;
00063
00065 int pointLineWidth (const QString &curveName) const;
00066
00068 QPolygonF pointPolygon (const QString &curveName) const;
00069
00071 int pointRadius (const QString &curveName) const;
00072
00074 PointShape pointShape(const QString &curveName) const;
00075
00077 const PointStyle pointStyle (const QString &curveName) const;
00078
00080 void saveXml(QXmlStreamWriter &writer) const;
00081
00083 void setCurveStyle (const QString &curveName,
00084 const CurveStyle &curveStyle);
00085
00087 void setLineColor (const QString &curveName,
00088 ColorPalette lineColor);
00089
00091 void setLineConnectAs (const QString &curveName,
00092 CurveConnectAs curveConnectAs);
00093
00095 void setLineWidth (const QString &curveName,
00096 int width);
00097
00099 void setPointColor (const QString &curveName,
00100 ColorPalette curveColor);
00101
00103 void setPointIsCircle (const QString &curveName,
00104 bool pointIsCircle);
00105
00107 void setPointLineWidth (const QString &curveName,
00108 int width);
00109
00111 void setPointRadius (const QString &curveName,
00112 int radius);
00113
00115 void setPointShape (const QString &curveName,
00116 PointShape shape);
00117
00118 private:
00119
00120 CurveStylesInternal m_curveStyles;
00121
00122 };
00123
00124 #endif // CURVE_STYLES_H