· · ·
item-line.h
1 /***************************************************************************
2 ** **
3 ** QCustomPlot, an easy to use, modern plotting widget for Qt **
4 ** Copyright (C) 2011, 2012, 2013, 2014 Emanuel Eichhammer **
5 ** **
6 ** This program is free software: you can redistribute it and/or modify **
7 ** it under the terms of the GNU General Public License as published by **
8 ** the Free Software Foundation, either version 3 of the License, or **
9 ** (at your option) any later version. **
10 ** **
11 ** This program is distributed in the hope that it will be useful, **
12 ** but WITHOUT ANY WARRANTY; without even the implied warranty of **
13 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the **
14 ** GNU General Public License for more details. **
15 ** **
16 ** You should have received a copy of the GNU General Public License **
17 ** along with this program. If not, see http://www.gnu.org/licenses/. **
18 ** **
19 ****************************************************************************
20 ** Author: Emanuel Eichhammer **
21 ** Website/Contact: http://www.qcustomplot.com/ **
22 ** Date: 07.04.14 **
23 ** Version: 1.2.1 **
24 ****************************************************************************/
25
26 #ifndef QCP_ITEM_LINE_H
27 #define QCP_ITEM_LINE_H
28
29 #include "../global.h"
30 #include "../item.h"
31 #include "../lineending.h"
32
33 class QCPPainter;
34 class QCustomPlot;
35
36 class QCP_LIB_DECL QCPItemLine : public QCPAbstractItem
37 {
38 Q_OBJECT
40 Q_PROPERTY(QPen pen READ pen WRITE setPen)
41 Q_PROPERTY(QPen selectedPen READ selectedPen WRITE setSelectedPen)
42 Q_PROPERTY(QCPLineEnding head READ head WRITE setHead)
43 Q_PROPERTY(QCPLineEnding tail READ tail WRITE setTail)
45 public:
46 QCPItemLine(QCustomPlot *parentPlot);
47 virtual ~QCPItemLine();
48
49 // getters:
50 QPen pen() const { return mPen; }
51 QPen selectedPen() const { return mSelectedPen; }
52 QCPLineEnding head() const { return mHead; }
53 QCPLineEnding tail() const { return mTail; }
54
55 // setters;
56 void setPen(const QPen &pen);
57 void setSelectedPen(const QPen &pen);
58 void setHead(const QCPLineEnding &head);
59 void setTail(const QCPLineEnding &tail);
60
61 // reimplemented virtual methods:
62 virtual double selectTest(const QPointF &pos, bool onlySelectable, QVariant *details=0) const;
63
64 QCPItemPosition * const start;
65 QCPItemPosition * const end;
66
67 protected:
68 // property members:
69 QPen mPen, mSelectedPen;
70 QCPLineEnding mHead, mTail;
71
72 // reimplemented virtual methods:
73 virtual void draw(QCPPainter *painter);
74
75 // non-virtual methods:
76 QLineF getRectClippedLine(const QVector2D &start, const QVector2D &end, const QRect &rect) const;
77 QPen mainPen() const;
78 };
79
80 #endif // QCP_ITEM_LINE_H
Generated with Doxygen 1.8.1.2