Main Page · Class Overview · Hierarchy · All Classes
item-bracket.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_BRACKET_H
27 #define QCP_ITEM_BRACKET_H
28 
29 #include "../global.h"
30 #include "../item.h"
31 
32 class QCPPainter;
33 class QCustomPlot;
34 
35 class QCP_LIB_DECL QCPItemBracket : public QCPAbstractItem
36 {
37  Q_OBJECT
39  Q_PROPERTY(QPen pen READ pen WRITE setPen)
40  Q_PROPERTY(QPen selectedPen READ selectedPen WRITE setSelectedPen)
41  Q_PROPERTY(double length READ length WRITE setLength)
42  Q_PROPERTY(BracketStyle style READ style WRITE setStyle)
44 public:
45  enum BracketStyle { bsSquare
46  ,bsRound
47  ,bsCurly
48  ,bsCalligraphic
49  };
50 
51  QCPItemBracket(QCustomPlot *parentPlot);
52  virtual ~QCPItemBracket();
53 
54  // getters:
55  QPen pen() const { return mPen; }
56  QPen selectedPen() const { return mSelectedPen; }
57  double length() const { return mLength; }
58  BracketStyle style() const { return mStyle; }
59 
60  // setters;
61  void setPen(const QPen &pen);
62  void setSelectedPen(const QPen &pen);
63  void setLength(double length);
64  void setStyle(BracketStyle style);
65 
66  // reimplemented virtual methods:
67  virtual double selectTest(const QPointF &pos, bool onlySelectable, QVariant *details=0) const;
68 
69  QCPItemPosition * const left;
70  QCPItemPosition * const right;
71  QCPItemAnchor * const center;
72 
73 protected:
74  // property members:
75  enum AnchorIndex {aiCenter};
76  QPen mPen, mSelectedPen;
77  double mLength;
78  BracketStyle mStyle;
79 
80  // reimplemented virtual methods:
81  virtual void draw(QCPPainter *painter);
82  virtual QPointF anchorPixelPoint(int anchorId) const;
83 
84  // non-virtual methods:
85  QPen mainPen() const;
86 };
87 
88 #endif // QCP_ITEM_BRACKET_H