26 #ifndef QCP_PLOTTABLE_H
27 #define QCP_PLOTTABLE_H
40 Q_PROPERTY(QString name READ name WRITE setName)
41 Q_PROPERTY(
bool antialiasedFill READ antialiasedFill WRITE setAntialiasedFill)
42 Q_PROPERTY(
bool antialiasedScatters READ antialiasedScatters WRITE setAntialiasedScatters)
43 Q_PROPERTY(
bool antialiasedErrorBars READ antialiasedErrorBars WRITE setAntialiasedErrorBars)
44 Q_PROPERTY(QPen pen READ pen WRITE setPen)
45 Q_PROPERTY(QPen selectedPen READ selectedPen WRITE setSelectedPen)
46 Q_PROPERTY(QBrush brush READ brush WRITE setBrush)
47 Q_PROPERTY(QBrush selectedBrush READ selectedBrush WRITE setSelectedBrush)
48 Q_PROPERTY(
QCPAxis* keyAxis READ keyAxis WRITE setKeyAxis)
49 Q_PROPERTY(
QCPAxis* valueAxis READ valueAxis WRITE setValueAxis)
50 Q_PROPERTY(
bool selectable READ selectable WRITE setSelectable NOTIFY selectableChanged)
51 Q_PROPERTY(
bool selected READ selected WRITE setSelected NOTIFY selectionChanged)
57 QString name()
const {
return mName; }
58 bool antialiasedFill()
const {
return mAntialiasedFill; }
59 bool antialiasedScatters()
const {
return mAntialiasedScatters; }
60 bool antialiasedErrorBars()
const {
return mAntialiasedErrorBars; }
61 QPen pen()
const {
return mPen; }
62 QPen selectedPen()
const {
return mSelectedPen; }
63 QBrush brush()
const {
return mBrush; }
64 QBrush selectedBrush()
const {
return mSelectedBrush; }
65 QCPAxis *keyAxis()
const {
return mKeyAxis.data(); }
66 QCPAxis *valueAxis()
const {
return mValueAxis.data(); }
67 bool selectable()
const {
return mSelectable; }
68 bool selected()
const {
return mSelected; }
71 void setName(
const QString &name);
72 void setAntialiasedFill(
bool enabled);
73 void setAntialiasedScatters(
bool enabled);
74 void setAntialiasedErrorBars(
bool enabled);
75 void setPen(
const QPen &pen);
76 void setSelectedPen(
const QPen &pen);
77 void setBrush(
const QBrush &brush);
78 void setSelectedBrush(
const QBrush &brush);
80 void setValueAxis(
QCPAxis *axis);
81 Q_SLOT
void setSelectable(
bool selectable);
82 Q_SLOT
void setSelected(
bool selected);
85 virtual void clearData() = 0;
86 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const = 0;
87 virtual bool addToLegend();
88 virtual bool removeFromLegend()
const;
91 void rescaleAxes(
bool onlyEnlarge=
false)
const;
92 void rescaleKeyAxis(
bool onlyEnlarge=
false)
const;
93 void rescaleValueAxis(
bool onlyEnlarge=
false)
const;
96 void selectionChanged(
bool selected);
97 void selectableChanged(
bool selectable);
110 bool mAntialiasedFill, mAntialiasedScatters, mAntialiasedErrorBars;
111 QPen mPen, mSelectedPen;
112 QBrush mBrush, mSelectedBrush;
113 QPointer<QCPAxis> mKeyAxis, mValueAxis;
114 bool mSelectable, mSelected;
122 virtual void selectEvent(QMouseEvent *event,
bool additive,
const QVariant &details,
bool *selectionStateChanged);
126 virtual void drawLegendIcon(
QCPPainter *painter,
const QRectF &rect)
const = 0;
127 virtual QCPRange getKeyRange(
bool &foundRange, SignDomain inSignDomain=sdBoth)
const = 0;
128 virtual QCPRange getValueRange(
bool &foundRange, SignDomain inSignDomain=sdBoth)
const = 0;
131 void coordsToPixels(
double key,
double value,
double &x,
double &y)
const;
132 const QPointF coordsToPixels(
double key,
double value)
const;
133 void pixelsToCoords(
double x,
double y,
double &key,
double &value)
const;
134 void pixelsToCoords(
const QPointF &pixelPos,
double &key,
double &value)
const;
135 QPen mainPen()
const;
136 QBrush mainBrush()
const;
137 void applyFillAntialiasingHint(
QCPPainter *painter)
const;
138 void applyScattersAntialiasingHint(
QCPPainter *painter)
const;
139 void applyErrorBarsAntialiasingHint(
QCPPainter *painter)
const;
140 double distSqrToLine(
const QPointF &start,
const QPointF &end,
const QPointF &point)
const;
150 #endif // QCP_PLOTTABLE_H