Main Page · Class Overview · Hierarchy · All Classes
item-pixmap.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: 27.12.14 **
23 ** Version: 1.3.0 **
24 ****************************************************************************/
25 
26 #ifndef QCP_ITEM_PIXMAP_H
27 #define QCP_ITEM_PIXMAP_H
28 
29 #include "../global.h"
30 #include "../item.h"
31 
32 class QCPPainter;
33 class QCustomPlot;
34 
35 class QCP_LIB_DECL QCPItemPixmap : public QCPAbstractItem
36 {
37  Q_OBJECT
39  Q_PROPERTY(QPixmap pixmap READ pixmap WRITE setPixmap)
40  Q_PROPERTY(bool scaled READ scaled WRITE setScaled)
41  Q_PROPERTY(Qt::AspectRatioMode aspectRatioMode READ aspectRatioMode)
42  Q_PROPERTY(Qt::TransformationMode transformationMode READ transformationMode)
43  Q_PROPERTY(QPen pen READ pen WRITE setPen)
44  Q_PROPERTY(QPen selectedPen READ selectedPen WRITE setSelectedPen)
46 public:
47  QCPItemPixmap(QCustomPlot *parentPlot);
48  virtual ~QCPItemPixmap();
49 
50  // getters:
51  QPixmap pixmap() const { return mPixmap; }
52  bool scaled() const { return mScaled; }
53  Qt::AspectRatioMode aspectRatioMode() const { return mAspectRatioMode; }
54  Qt::TransformationMode transformationMode() const { return mTransformationMode; }
55  QPen pen() const { return mPen; }
56  QPen selectedPen() const { return mSelectedPen; }
57 
58  // setters;
59  void setPixmap(const QPixmap &pixmap);
60  void setScaled(bool scaled, Qt::AspectRatioMode aspectRatioMode=Qt::KeepAspectRatio, Qt::TransformationMode transformationMode=Qt::SmoothTransformation);
61  void setPen(const QPen &pen);
62  void setSelectedPen(const QPen &pen);
63 
64  // reimplemented virtual methods:
65  virtual double selectTest(const QPointF &pos, bool onlySelectable, QVariant *details=0) const;
66 
67  QCPItemPosition * const topLeft;
68  QCPItemPosition * const bottomRight;
69  QCPItemAnchor * const top;
70  QCPItemAnchor * const topRight;
71  QCPItemAnchor * const right;
72  QCPItemAnchor * const bottom;
73  QCPItemAnchor * const bottomLeft;
74  QCPItemAnchor * const left;
75 
76 protected:
77  enum AnchorIndex {aiTop, aiTopRight, aiRight, aiBottom, aiBottomLeft, aiLeft};
78 
79  // property members:
80  QPixmap mPixmap;
81  QPixmap mScaledPixmap;
82  bool mScaled;
83  Qt::AspectRatioMode mAspectRatioMode;
84  Qt::TransformationMode mTransformationMode;
85  QPen mPen, mSelectedPen;
86 
87  // reimplemented virtual methods:
88  virtual void draw(QCPPainter *painter);
89  virtual QPointF anchorPixelPoint(int anchorId) const;
90 
91  // non-virtual methods:
92  void updateScaledPixmap(QRect finalRect=QRect(), bool flipHorz=false, bool flipVert=false);
93  QRect getFinalRect(bool *flippedHorz=0, bool *flippedVert=0) const;
94  QPen mainPen() const;
95 };
96 
97 #endif // QCP_ITEM_PIXMAP_H
virtual QPointF anchorPixelPoint(int anchorId) const
Definition: item.cpp:1253
Manages the position of an item.
Definition: item.h:76
An arbitrary pixmap.
Definition: item-pixmap.h:35
The central class of the library. This is the QWidget which displays the plot and interacts with the ...
Definition: core.h:42
QPainter subclass used internally.
Definition: painter.h:111
An anchor of an item to which positions can be attached to.
Definition: item.h:39
The abstract base class for all items in a plot.
Definition: item.h:143
virtual void draw(QCPPainter *painter)=0
virtual double selectTest(const QPointF &pos, bool onlySelectable, QVariant *details=0) const =0