46 QString name()
const {
return mName; }
47 virtual QPointF pixelPoint()
const;
57 QSet<QCPItemPosition*> mChildrenX, mChildrenY;
96 virtual ~QCPItemPosition();
100 PositionType typeX()
const {
return mPositionTypeX; }
101 PositionType typeY()
const {
return mPositionTypeY; }
103 QCPItemAnchor *parentAnchorX()
const {
return mParentAnchorX; }
104 QCPItemAnchor *parentAnchorY()
const {
return mParentAnchorY; }
105 double key()
const {
return mKey; }
106 double value()
const {
return mValue; }
107 QPointF coords()
const {
return QPointF(mKey, mValue); }
108 QCPAxis *keyAxis()
const {
return mKeyAxis.data(); }
109 QCPAxis *valueAxis()
const {
return mValueAxis.data(); }
111 virtual QPointF pixelPoint()
const;
114 void setType(PositionType type);
115 void setTypeX(PositionType type);
116 void setTypeY(PositionType type);
117 bool setParentAnchor(QCPItemAnchor *parentAnchor,
bool keepPixelPosition=
false);
118 bool setParentAnchorX(QCPItemAnchor *parentAnchor,
bool keepPixelPosition=
false);
119 bool setParentAnchorY(QCPItemAnchor *parentAnchor,
bool keepPixelPosition=
false);
120 void setCoords(
double key,
double value);
121 void setCoords(
const QPointF &coords);
124 void setPixelPoint(
const QPointF &pixelPoint);
128 PositionType mPositionTypeX, mPositionTypeY;
129 QPointer<QCPAxis> mKeyAxis, mValueAxis;
130 QPointer<QCPAxisRect> mAxisRect;
132 QCPItemAnchor *mParentAnchorX, *mParentAnchorY;
138 Q_DISABLE_COPY(QCPItemPosition)
147 Q_PROPERTY(
bool clipToAxisRect READ clipToAxisRect WRITE setClipToAxisRect)
148 Q_PROPERTY(
QCPAxisRect* clipAxisRect READ clipAxisRect WRITE setClipAxisRect)
149 Q_PROPERTY(
bool selectable READ selectable WRITE setSelectable NOTIFY selectableChanged)
150 Q_PROPERTY(
bool selected READ selected WRITE setSelected NOTIFY selectionChanged)
157 bool clipToAxisRect()
const {
return mClipToAxisRect; }
159 bool selectable()
const {
return mSelectable; }
160 bool selected()
const {
return mSelected; }
163 void setClipToAxisRect(
bool clip);
165 Q_SLOT
void setSelectable(
bool selectable);
166 Q_SLOT
void setSelected(
bool selected);
169 virtual double selectTest(
const QPointF &pos,
bool onlySelectable, QVariant *details=0)
const = 0;
172 QList<QCPItemPosition*>
positions()
const {
return mPositions; }
173 QList<QCPItemAnchor*>
anchors()
const {
return mAnchors; }
174 QCPItemPosition *position(
const QString &name)
const;
175 QCPItemAnchor *anchor(
const QString &name)
const;
176 bool hasAnchor(
const QString &name)
const;
179 void selectionChanged(
bool selected);
180 void selectableChanged(
bool selectable);
184 bool mClipToAxisRect;
185 QPointer<QCPAxisRect> mClipAxisRect;
186 QList<QCPItemPosition*> mPositions;
187 QList<QCPItemAnchor*> mAnchors;
188 bool mSelectable, mSelected;
192 virtual QRect clipRect()
const;
193 virtual void applyDefaultAntialiasingHint(
QCPPainter *painter)
const;
196 virtual void selectEvent(QMouseEvent *event,
bool additive,
const QVariant &details,
bool *selectionStateChanged);
197 virtual void deselectEvent(
bool *selectionStateChanged);
200 virtual QPointF anchorPixelPoint(
int anchorId)
const;
203 double distSqrToLine(
const QPointF &start,
const QPointF &end,
const QPointF &point)
const;
204 double rectSelectTest(
const QRectF &rect,
const QPointF &pos,
bool filledRect)
const;
205 QCPItemPosition *createPosition(
const QString &name);
206 QCPItemAnchor *createAnchor(
const QString &name,
int anchorId);
212 friend class QCPItemAnchor;