You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1147 lines
40 KiB
1147 lines
40 KiB
/****************************************************************************
|
|
**
|
|
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
|
|
** All rights reserved.
|
|
** Contact: Nokia Corporation (qt-info@nokia.com)
|
|
**
|
|
** This file is part of the QtGui module of the Qt Toolkit.
|
|
**
|
|
** $QT_BEGIN_LICENSE:LGPL$
|
|
** Commercial Usage
|
|
** Licensees holding valid Qt Commercial licenses may use this file in
|
|
** accordance with the Qt Commercial License Agreement provided with the
|
|
** Software or, alternatively, in accordance with the terms contained in
|
|
** a written agreement between you and Nokia.
|
|
**
|
|
** GNU Lesser General Public License Usage
|
|
** Alternatively, this file may be used under the terms of the GNU Lesser
|
|
** General Public License version 2.1 as published by the Free Software
|
|
** Foundation and appearing in the file LICENSE.LGPL included in the
|
|
** packaging of this file. Please review the following information to
|
|
** ensure the GNU Lesser General Public License version 2.1 requirements
|
|
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
|
**
|
|
** In addition, as a special exception, Nokia gives you certain additional
|
|
** rights. These rights are described in the Nokia Qt LGPL Exception
|
|
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
|
**
|
|
** GNU General Public License Usage
|
|
** Alternatively, this file may be used under the terms of the GNU
|
|
** General Public License version 3.0 as published by the Free Software
|
|
** Foundation and appearing in the file LICENSE.GPL included in the
|
|
** packaging of this file. Please review the following information to
|
|
** ensure the GNU General Public License version 3.0 requirements will be
|
|
** met: http://www.gnu.org/copyleft/gpl.html.
|
|
**
|
|
** If you have questions regarding the use of this file, please contact
|
|
** Nokia at qt-info@nokia.com.
|
|
** $QT_END_LICENSE$
|
|
**
|
|
****************************************************************************/
|
|
|
|
#ifndef QGRAPHICSITEM_H
|
|
#define QGRAPHICSITEM_H
|
|
|
|
#include <QtCore/qglobal.h>
|
|
#include <QtCore/qobject.h>
|
|
#include <QtCore/qvariant.h>
|
|
#include <QtCore/qrect.h>
|
|
#include <QtCore/qscopedpointer.h>
|
|
#include <QtGui/qpainterpath.h>
|
|
#include <QtGui/qpixmap.h>
|
|
|
|
class tst_QGraphicsItem;
|
|
|
|
QT_BEGIN_HEADER
|
|
|
|
QT_BEGIN_NAMESPACE
|
|
|
|
QT_MODULE(Gui)
|
|
|
|
#if !defined(QT_NO_GRAPHICSVIEW) || (QT_EDITION & QT_MODULE_GRAPHICSVIEW) != QT_MODULE_GRAPHICSVIEW
|
|
|
|
class QBrush;
|
|
class QCursor;
|
|
class QFocusEvent;
|
|
class QGraphicsEffect;
|
|
class QGraphicsItemGroup;
|
|
class QGraphicsObject;
|
|
class QGraphicsSceneContextMenuEvent;
|
|
class QGraphicsSceneDragDropEvent;
|
|
class QGraphicsSceneEvent;
|
|
class QGraphicsSceneHoverEvent;
|
|
class QGraphicsSceneMouseEvent;
|
|
class QGraphicsSceneWheelEvent;
|
|
class QGraphicsScene;
|
|
class QGraphicsTransform;
|
|
class QGraphicsWidget;
|
|
class QInputMethodEvent;
|
|
class QKeyEvent;
|
|
class QMatrix;
|
|
class QMenu;
|
|
class QPainter;
|
|
class QPen;
|
|
class QPointF;
|
|
class QRectF;
|
|
class QStyleOptionGraphicsItem;
|
|
|
|
class QGraphicsItemPrivate;
|
|
class Q_GUI_EXPORT QGraphicsItem
|
|
{
|
|
public:
|
|
enum GraphicsItemFlag {
|
|
ItemIsMovable = 0x1,
|
|
ItemIsSelectable = 0x2,
|
|
ItemIsFocusable = 0x4,
|
|
ItemClipsToShape = 0x8,
|
|
ItemClipsChildrenToShape = 0x10,
|
|
ItemIgnoresTransformations = 0x20,
|
|
ItemIgnoresParentOpacity = 0x40,
|
|
ItemDoesntPropagateOpacityToChildren = 0x80,
|
|
ItemStacksBehindParent = 0x100,
|
|
ItemUsesExtendedStyleOption = 0x200,
|
|
ItemHasNoContents = 0x400,
|
|
ItemSendsGeometryChanges = 0x800,
|
|
ItemAcceptsInputMethod = 0x1000,
|
|
ItemNegativeZStacksBehindParent = 0x2000,
|
|
ItemIsPanel = 0x4000,
|
|
ItemIsFocusScope = 0x8000, // internal
|
|
ItemSendsScenePositionChanges = 0x10000
|
|
// NB! Don't forget to increase the d_ptr->flags bit field by 1 when adding a new flag.
|
|
};
|
|
Q_DECLARE_FLAGS(GraphicsItemFlags, GraphicsItemFlag)
|
|
|
|
enum GraphicsItemChange {
|
|
ItemPositionChange,
|
|
ItemMatrixChange,
|
|
ItemVisibleChange,
|
|
ItemEnabledChange,
|
|
ItemSelectedChange,
|
|
ItemParentChange,
|
|
ItemChildAddedChange,
|
|
ItemChildRemovedChange,
|
|
ItemTransformChange,
|
|
ItemPositionHasChanged,
|
|
ItemTransformHasChanged,
|
|
ItemSceneChange,
|
|
ItemVisibleHasChanged,
|
|
ItemEnabledHasChanged,
|
|
ItemSelectedHasChanged,
|
|
ItemParentHasChanged,
|
|
ItemSceneHasChanged,
|
|
ItemCursorChange,
|
|
ItemCursorHasChanged,
|
|
ItemToolTipChange,
|
|
ItemToolTipHasChanged,
|
|
ItemFlagsChange,
|
|
ItemFlagsHaveChanged,
|
|
ItemZValueChange,
|
|
ItemZValueHasChanged,
|
|
ItemOpacityChange,
|
|
ItemOpacityHasChanged,
|
|
ItemScenePositionHasChanged
|
|
};
|
|
|
|
enum CacheMode {
|
|
NoCache,
|
|
ItemCoordinateCache,
|
|
DeviceCoordinateCache
|
|
};
|
|
|
|
enum PanelModality
|
|
{
|
|
NonModal,
|
|
PanelModal,
|
|
SceneModal
|
|
};
|
|
|
|
QGraphicsItem(QGraphicsItem *parent = 0
|
|
#ifndef Q_QDOC
|
|
// ### obsolete argument
|
|
, QGraphicsScene *scene = 0
|
|
#endif
|
|
);
|
|
virtual ~QGraphicsItem();
|
|
|
|
QGraphicsScene *scene() const;
|
|
|
|
QGraphicsItem *parentItem() const;
|
|
QGraphicsItem *topLevelItem() const;
|
|
QGraphicsObject *parentObject() const;
|
|
QGraphicsWidget *parentWidget() const;
|
|
QGraphicsWidget *topLevelWidget() const;
|
|
QGraphicsWidget *window() const;
|
|
QGraphicsItem *panel() const;
|
|
void setParentItem(QGraphicsItem *parent);
|
|
QList<QGraphicsItem *> children() const; // ### obsolete
|
|
QList<QGraphicsItem *> childItems() const;
|
|
bool isWidget() const;
|
|
bool isWindow() const;
|
|
bool isPanel() const;
|
|
|
|
QGraphicsObject *toGraphicsObject();
|
|
const QGraphicsObject *toGraphicsObject() const;
|
|
|
|
QGraphicsItemGroup *group() const;
|
|
void setGroup(QGraphicsItemGroup *group);
|
|
|
|
GraphicsItemFlags flags() const;
|
|
void setFlag(GraphicsItemFlag flag, bool enabled = true);
|
|
void setFlags(GraphicsItemFlags flags);
|
|
|
|
CacheMode cacheMode() const;
|
|
void setCacheMode(CacheMode mode, const QSize &cacheSize = QSize());
|
|
|
|
PanelModality panelModality() const;
|
|
void setPanelModality(PanelModality panelModality);
|
|
bool isBlockedByModalPanel(QGraphicsItem **blockingPanel = 0) const;
|
|
|
|
#ifndef QT_NO_TOOLTIP
|
|
QString toolTip() const;
|
|
void setToolTip(const QString &toolTip);
|
|
#endif
|
|
|
|
#ifndef QT_NO_CURSOR
|
|
QCursor cursor() const;
|
|
void setCursor(const QCursor &cursor);
|
|
bool hasCursor() const;
|
|
void unsetCursor();
|
|
#endif
|
|
|
|
bool isVisible() const;
|
|
bool isVisibleTo(const QGraphicsItem *parent) const;
|
|
void setVisible(bool visible);
|
|
inline void hide() { setVisible(false); }
|
|
inline void show() { setVisible(true); }
|
|
|
|
bool isEnabled() const;
|
|
void setEnabled(bool enabled);
|
|
|
|
bool isSelected() const;
|
|
void setSelected(bool selected);
|
|
|
|
bool acceptDrops() const;
|
|
void setAcceptDrops(bool on);
|
|
|
|
qreal opacity() const;
|
|
qreal effectiveOpacity() const;
|
|
void setOpacity(qreal opacity);
|
|
|
|
#ifndef QT_NO_GRAPHICSEFFECT
|
|
// Effect
|
|
QGraphicsEffect *graphicsEffect() const;
|
|
void setGraphicsEffect(QGraphicsEffect *effect);
|
|
#endif //QT_NO_GRAPHICSEFFECT
|
|
|
|
Qt::MouseButtons acceptedMouseButtons() const;
|
|
void setAcceptedMouseButtons(Qt::MouseButtons buttons);
|
|
|
|
bool acceptsHoverEvents() const; // ### obsolete
|
|
void setAcceptsHoverEvents(bool enabled); // ### obsolete
|
|
bool acceptHoverEvents() const;
|
|
void setAcceptHoverEvents(bool enabled);
|
|
bool acceptTouchEvents() const;
|
|
void setAcceptTouchEvents(bool enabled);
|
|
|
|
bool filtersChildEvents() const;
|
|
void setFiltersChildEvents(bool enabled);
|
|
|
|
bool handlesChildEvents() const;
|
|
void setHandlesChildEvents(bool enabled);
|
|
|
|
bool isActive() const;
|
|
void setActive(bool active);
|
|
|
|
bool hasFocus() const;
|
|
void setFocus(Qt::FocusReason focusReason = Qt::OtherFocusReason);
|
|
void clearFocus();
|
|
|
|
QGraphicsItem *focusProxy() const;
|
|
void setFocusProxy(QGraphicsItem *item);
|
|
|
|
QGraphicsItem *focusItem() const;
|
|
QGraphicsItem *focusScopeItem() const;
|
|
|
|
void grabMouse();
|
|
void ungrabMouse();
|
|
void grabKeyboard();
|
|
void ungrabKeyboard();
|
|
|
|
// Positioning in scene coordinates
|
|
QPointF pos() const;
|
|
inline qreal x() const { return pos().x(); }
|
|
void setX(qreal x);
|
|
inline qreal y() const { return pos().y(); }
|
|
void setY(qreal y);
|
|
QPointF scenePos() const;
|
|
void setPos(const QPointF &pos);
|
|
inline void setPos(qreal x, qreal y);
|
|
inline void moveBy(qreal dx, qreal dy) { setPos(pos().x() + dx, pos().y() + dy); }
|
|
|
|
void ensureVisible(const QRectF &rect = QRectF(), int xmargin = 50, int ymargin = 50);
|
|
inline void ensureVisible(qreal x, qreal y, qreal w, qreal h, int xmargin = 50, int ymargin = 50);
|
|
|
|
// Local transformation
|
|
QMatrix matrix() const;
|
|
QMatrix sceneMatrix() const;
|
|
void setMatrix(const QMatrix &matrix, bool combine = false);
|
|
void resetMatrix();
|
|
QTransform transform() const;
|
|
QTransform sceneTransform() const;
|
|
QTransform deviceTransform(const QTransform &viewportTransform) const;
|
|
QTransform itemTransform(const QGraphicsItem *other, bool *ok = 0) const;
|
|
void setTransform(const QTransform &matrix, bool combine = false);
|
|
void resetTransform();
|
|
|
|
void rotate(qreal angle); // ### obsolete
|
|
void scale(qreal sx, qreal sy); // ### obsolete
|
|
void shear(qreal sh, qreal sv); // ### obsolete
|
|
void translate(qreal dx, qreal dy); // ### obsolete
|
|
|
|
void setRotation(qreal angle);
|
|
qreal rotation() const;
|
|
|
|
void setScale(qreal scale);
|
|
qreal scale() const;
|
|
|
|
QList<QGraphicsTransform *> transformations() const;
|
|
void setTransformations(const QList<QGraphicsTransform *> &transformations);
|
|
|
|
QPointF transformOriginPoint() const;
|
|
void setTransformOriginPoint(const QPointF &origin);
|
|
inline void setTransformOriginPoint(qreal ax, qreal ay)
|
|
{ setTransformOriginPoint(QPointF(ax,ay)); }
|
|
|
|
virtual void advance(int phase);
|
|
|
|
// Stacking order
|
|
qreal zValue() const;
|
|
void setZValue(qreal z);
|
|
void stackBefore(const QGraphicsItem *sibling);
|
|
|
|
// Hit test
|
|
virtual QRectF boundingRect() const = 0;
|
|
QRectF childrenBoundingRect() const;
|
|
QRectF sceneBoundingRect() const;
|
|
virtual QPainterPath shape() const;
|
|
bool isClipped() const;
|
|
QPainterPath clipPath() const;
|
|
virtual bool contains(const QPointF &point) const;
|
|
virtual bool collidesWithItem(const QGraphicsItem *other, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const;
|
|
virtual bool collidesWithPath(const QPainterPath &path, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const;
|
|
QList<QGraphicsItem *> collidingItems(Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const;
|
|
bool isObscured() const;
|
|
bool isObscured(const QRectF &rect) const; // ### Qt 5: merge with isObscured(), add QRectF arg to isObscuredBy()
|
|
inline bool isObscured(qreal x, qreal y, qreal w, qreal h) const;
|
|
virtual bool isObscuredBy(const QGraphicsItem *item) const;
|
|
virtual QPainterPath opaqueArea() const;
|
|
|
|
QRegion boundingRegion(const QTransform &itemToDeviceTransform) const;
|
|
qreal boundingRegionGranularity() const;
|
|
void setBoundingRegionGranularity(qreal granularity);
|
|
|
|
// Drawing
|
|
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0) = 0;
|
|
void update(const QRectF &rect = QRectF());
|
|
inline void update(qreal x, qreal y, qreal width, qreal height);
|
|
void scroll(qreal dx, qreal dy, const QRectF &rect = QRectF());
|
|
|
|
// Coordinate mapping
|
|
QPointF mapToItem(const QGraphicsItem *item, const QPointF &point) const;
|
|
QPointF mapToParent(const QPointF &point) const;
|
|
QPointF mapToScene(const QPointF &point) const;
|
|
QPolygonF mapToItem(const QGraphicsItem *item, const QRectF &rect) const;
|
|
QPolygonF mapToParent(const QRectF &rect) const;
|
|
QPolygonF mapToScene(const QRectF &rect) const;
|
|
QRectF mapRectToItem(const QGraphicsItem *item, const QRectF &rect) const;
|
|
QRectF mapRectToParent(const QRectF &rect) const;
|
|
QRectF mapRectToScene(const QRectF &rect) const;
|
|
QPolygonF mapToItem(const QGraphicsItem *item, const QPolygonF &polygon) const;
|
|
QPolygonF mapToParent(const QPolygonF &polygon) const;
|
|
QPolygonF mapToScene(const QPolygonF &polygon) const;
|
|
QPainterPath mapToItem(const QGraphicsItem *item, const QPainterPath &path) const;
|
|
QPainterPath mapToParent(const QPainterPath &path) const;
|
|
QPainterPath mapToScene(const QPainterPath &path) const;
|
|
QPointF mapFromItem(const QGraphicsItem *item, const QPointF &point) const;
|
|
QPointF mapFromParent(const QPointF &point) const;
|
|
QPointF mapFromScene(const QPointF &point) const;
|
|
QPolygonF mapFromItem(const QGraphicsItem *item, const QRectF &rect) const;
|
|
QPolygonF mapFromParent(const QRectF &rect) const;
|
|
QPolygonF mapFromScene(const QRectF &rect) const;
|
|
QRectF mapRectFromItem(const QGraphicsItem *item, const QRectF &rect) const;
|
|
QRectF mapRectFromParent(const QRectF &rect) const;
|
|
QRectF mapRectFromScene(const QRectF &rect) const;
|
|
QPolygonF mapFromItem(const QGraphicsItem *item, const QPolygonF &polygon) const;
|
|
QPolygonF mapFromParent(const QPolygonF &polygon) const;
|
|
QPolygonF mapFromScene(const QPolygonF &polygon) const;
|
|
QPainterPath mapFromItem(const QGraphicsItem *item, const QPainterPath &path) const;
|
|
QPainterPath mapFromParent(const QPainterPath &path) const;
|
|
QPainterPath mapFromScene(const QPainterPath &path) const;
|
|
|
|
inline QPointF mapToItem(const QGraphicsItem *item, qreal x, qreal y) const;
|
|
inline QPointF mapToParent(qreal x, qreal y) const;
|
|
inline QPointF mapToScene(qreal x, qreal y) const;
|
|
inline QPolygonF mapToItem(const QGraphicsItem *item, qreal x, qreal y, qreal w, qreal h) const;
|
|
inline QPolygonF mapToParent(qreal x, qreal y, qreal w, qreal h) const;
|
|
inline QPolygonF mapToScene(qreal x, qreal y, qreal w, qreal h) const;
|
|
inline QRectF mapRectToItem(const QGraphicsItem *item, qreal x, qreal y, qreal w, qreal h) const;
|
|
inline QRectF mapRectToParent(qreal x, qreal y, qreal w, qreal h) const;
|
|
inline QRectF mapRectToScene(qreal x, qreal y, qreal w, qreal h) const;
|
|
inline QPointF mapFromItem(const QGraphicsItem *item, qreal x, qreal y) const;
|
|
inline QPointF mapFromParent(qreal x, qreal y) const;
|
|
inline QPointF mapFromScene(qreal x, qreal y) const;
|
|
inline QPolygonF mapFromItem(const QGraphicsItem *item, qreal x, qreal y, qreal w, qreal h) const;
|
|
inline QPolygonF mapFromParent(qreal x, qreal y, qreal w, qreal h) const;
|
|
inline QPolygonF mapFromScene(qreal x, qreal y, qreal w, qreal h) const;
|
|
inline QRectF mapRectFromItem(const QGraphicsItem *item, qreal x, qreal y, qreal w, qreal h) const;
|
|
inline QRectF mapRectFromParent(qreal x, qreal y, qreal w, qreal h) const;
|
|
inline QRectF mapRectFromScene(qreal x, qreal y, qreal w, qreal h) const;
|
|
|
|
bool isAncestorOf(const QGraphicsItem *child) const;
|
|
QGraphicsItem *commonAncestorItem(const QGraphicsItem *other) const;
|
|
bool isUnderMouse() const;
|
|
|
|
// Custom data
|
|
QVariant data(int key) const;
|
|
void setData(int key, const QVariant &value);
|
|
|
|
Qt::InputMethodHints inputMethodHints() const;
|
|
void setInputMethodHints(Qt::InputMethodHints hints);
|
|
|
|
enum {
|
|
Type = 1,
|
|
UserType = 65536
|
|
};
|
|
virtual int type() const;
|
|
|
|
void installSceneEventFilter(QGraphicsItem *filterItem);
|
|
void removeSceneEventFilter(QGraphicsItem *filterItem);
|
|
|
|
protected:
|
|
virtual bool sceneEventFilter(QGraphicsItem *watched, QEvent *event);
|
|
virtual bool sceneEvent(QEvent *event);
|
|
virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event);
|
|
virtual void dragEnterEvent(QGraphicsSceneDragDropEvent *event);
|
|
virtual void dragLeaveEvent(QGraphicsSceneDragDropEvent *event);
|
|
virtual void dragMoveEvent(QGraphicsSceneDragDropEvent *event);
|
|
virtual void dropEvent(QGraphicsSceneDragDropEvent *event);
|
|
virtual void focusInEvent(QFocusEvent *event);
|
|
virtual void focusOutEvent(QFocusEvent *event);
|
|
virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event);
|
|
virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *event);
|
|
virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event);
|
|
virtual void keyPressEvent(QKeyEvent *event);
|
|
virtual void keyReleaseEvent(QKeyEvent *event);
|
|
virtual void mousePressEvent(QGraphicsSceneMouseEvent *event);
|
|
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
|
|
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
|
|
virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event);
|
|
virtual void wheelEvent(QGraphicsSceneWheelEvent *event);
|
|
virtual void inputMethodEvent(QInputMethodEvent *event);
|
|
virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const;
|
|
|
|
virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value);
|
|
|
|
enum Extension {
|
|
UserExtension = 0x80000000
|
|
};
|
|
virtual bool supportsExtension(Extension extension) const;
|
|
virtual void setExtension(Extension extension, const QVariant &variant);
|
|
virtual QVariant extension(const QVariant &variant) const;
|
|
|
|
protected:
|
|
QGraphicsItem(QGraphicsItemPrivate &dd,
|
|
QGraphicsItem *parent, QGraphicsScene *scene);
|
|
QScopedPointer<QGraphicsItemPrivate> d_ptr;
|
|
|
|
void addToIndex();
|
|
void removeFromIndex();
|
|
void prepareGeometryChange();
|
|
|
|
private:
|
|
Q_DISABLE_COPY(QGraphicsItem)
|
|
Q_DECLARE_PRIVATE(QGraphicsItem)
|
|
friend class QGraphicsItemGroup;
|
|
friend class QGraphicsScene;
|
|
friend class QGraphicsScenePrivate;
|
|
friend class QGraphicsSceneFindItemBspTreeVisitor;
|
|
friend class QGraphicsSceneBspTree;
|
|
friend class QGraphicsView;
|
|
friend class QGraphicsViewPrivate;
|
|
friend class QGraphicsObject;
|
|
friend class QGraphicsWidget;
|
|
friend class QGraphicsWidgetPrivate;
|
|
friend class QGraphicsProxyWidgetPrivate;
|
|
friend class QGraphicsSceneIndex;
|
|
friend class QGraphicsSceneIndexPrivate;
|
|
friend class QGraphicsSceneBspTreeIndex;
|
|
friend class QGraphicsSceneBspTreeIndexPrivate;
|
|
friend class QGraphicsItemEffectSourcePrivate;
|
|
friend class QGraphicsTransformPrivate;
|
|
friend class QGestureManager;
|
|
friend class ::tst_QGraphicsItem;
|
|
friend bool qt_closestLeaf(const QGraphicsItem *, const QGraphicsItem *);
|
|
friend bool qt_closestItemFirst(const QGraphicsItem *, const QGraphicsItem *);
|
|
};
|
|
|
|
Q_DECLARE_OPERATORS_FOR_FLAGS(QGraphicsItem::GraphicsItemFlags)
|
|
Q_DECLARE_INTERFACE(QGraphicsItem, "com.trolltech.Qt.QGraphicsItem")
|
|
|
|
inline void QGraphicsItem::setPos(qreal ax, qreal ay)
|
|
{ setPos(QPointF(ax, ay)); }
|
|
inline void QGraphicsItem::ensureVisible(qreal ax, qreal ay, qreal w, qreal h, int xmargin, int ymargin)
|
|
{ ensureVisible(QRectF(ax, ay, w, h), xmargin, ymargin); }
|
|
inline void QGraphicsItem::update(qreal ax, qreal ay, qreal width, qreal height)
|
|
{ update(QRectF(ax, ay, width, height)); }
|
|
inline bool QGraphicsItem::isObscured(qreal ax, qreal ay, qreal w, qreal h) const
|
|
{ return isObscured(QRectF(ax, ay, w, h)); }
|
|
inline QPointF QGraphicsItem::mapToItem(const QGraphicsItem *item, qreal ax, qreal ay) const
|
|
{ return mapToItem(item, QPointF(ax, ay)); }
|
|
inline QPointF QGraphicsItem::mapToParent(qreal ax, qreal ay) const
|
|
{ return mapToParent(QPointF(ax, ay)); }
|
|
inline QPointF QGraphicsItem::mapToScene(qreal ax, qreal ay) const
|
|
{ return mapToScene(QPointF(ax, ay)); }
|
|
inline QPointF QGraphicsItem::mapFromItem(const QGraphicsItem *item, qreal ax, qreal ay) const
|
|
{ return mapFromItem(item, QPointF(ax, ay)); }
|
|
inline QPointF QGraphicsItem::mapFromParent(qreal ax, qreal ay) const
|
|
{ return mapFromParent(QPointF(ax, ay)); }
|
|
inline QPointF QGraphicsItem::mapFromScene(qreal ax, qreal ay) const
|
|
{ return mapFromScene(QPointF(ax, ay)); }
|
|
inline QPolygonF QGraphicsItem::mapToItem(const QGraphicsItem *item, qreal ax, qreal ay, qreal w, qreal h) const
|
|
{ return mapToItem(item, QRectF(ax, ay, w, h)); }
|
|
inline QPolygonF QGraphicsItem::mapToParent(qreal ax, qreal ay, qreal w, qreal h) const
|
|
{ return mapToParent(QRectF(ax, ay, w, h)); }
|
|
inline QPolygonF QGraphicsItem::mapToScene(qreal ax, qreal ay, qreal w, qreal h) const
|
|
{ return mapToScene(QRectF(ax, ay, w, h)); }
|
|
inline QRectF QGraphicsItem::mapRectToItem(const QGraphicsItem *item, qreal ax, qreal ay, qreal w, qreal h) const
|
|
{ return mapRectToItem(item, QRectF(ax, ay, w, h)); }
|
|
inline QRectF QGraphicsItem::mapRectToParent(qreal ax, qreal ay, qreal w, qreal h) const
|
|
{ return mapRectToParent(QRectF(ax, ay, w, h)); }
|
|
inline QRectF QGraphicsItem::mapRectToScene(qreal ax, qreal ay, qreal w, qreal h) const
|
|
{ return mapRectToScene(QRectF(ax, ay, w, h)); }
|
|
inline QPolygonF QGraphicsItem::mapFromItem(const QGraphicsItem *item, qreal ax, qreal ay, qreal w, qreal h) const
|
|
{ return mapFromItem(item, QRectF(ax, ay, w, h)); }
|
|
inline QPolygonF QGraphicsItem::mapFromParent(qreal ax, qreal ay, qreal w, qreal h) const
|
|
{ return mapFromParent(QRectF(ax, ay, w, h)); }
|
|
inline QPolygonF QGraphicsItem::mapFromScene(qreal ax, qreal ay, qreal w, qreal h) const
|
|
{ return mapFromScene(QRectF(ax, ay, w, h)); }
|
|
inline QRectF QGraphicsItem::mapRectFromItem(const QGraphicsItem *item, qreal ax, qreal ay, qreal w, qreal h) const
|
|
{ return mapRectFromItem(item, QRectF(ax, ay, w, h)); }
|
|
inline QRectF QGraphicsItem::mapRectFromParent(qreal ax, qreal ay, qreal w, qreal h) const
|
|
{ return mapRectFromParent(QRectF(ax, ay, w, h)); }
|
|
inline QRectF QGraphicsItem::mapRectFromScene(qreal ax, qreal ay, qreal w, qreal h) const
|
|
{ return mapRectFromScene(QRectF(ax, ay, w, h)); }
|
|
|
|
|
|
class Q_GUI_EXPORT QGraphicsObject : public QObject, public QGraphicsItem
|
|
{
|
|
Q_OBJECT
|
|
Q_PROPERTY(QGraphicsObject * parent READ parentObject WRITE setParentItem NOTIFY parentChanged DESIGNABLE false)
|
|
Q_PROPERTY(qreal opacity READ opacity WRITE setOpacity NOTIFY opacityChanged FINAL)
|
|
Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled NOTIFY enabledChanged)
|
|
Q_PROPERTY(bool visible READ isVisible WRITE setVisible NOTIFY visibleChanged FINAL)
|
|
Q_PROPERTY(QPointF pos READ pos WRITE setPos)
|
|
Q_PROPERTY(qreal x READ x WRITE setX NOTIFY xChanged)
|
|
Q_PROPERTY(qreal y READ y WRITE setY NOTIFY yChanged)
|
|
Q_PROPERTY(qreal z READ zValue WRITE setZValue NOTIFY zChanged)
|
|
Q_PROPERTY(qreal rotation READ rotation WRITE setRotation NOTIFY rotationChanged)
|
|
Q_PROPERTY(qreal scale READ scale WRITE setScale NOTIFY scaleChanged)
|
|
Q_PROPERTY(QPointF transformOriginPoint READ transformOriginPoint WRITE setTransformOriginPoint)
|
|
Q_INTERFACES(QGraphicsItem)
|
|
public:
|
|
QGraphicsObject(QGraphicsItem *parent = 0);
|
|
|
|
// ### Qt 5: Disambiguate
|
|
#ifdef Q_NO_USING_KEYWORD
|
|
const QObjectList &children() const { return QObject::children(); }
|
|
#else
|
|
using QObject::children;
|
|
#endif
|
|
|
|
void grabGesture(Qt::GestureType type, Qt::GestureFlags flags = Qt::GestureFlags());
|
|
void ungrabGesture(Qt::GestureType type);
|
|
|
|
Q_SIGNALS:
|
|
void parentChanged();
|
|
void opacityChanged();
|
|
void visibleChanged();
|
|
void enabledChanged();
|
|
void xChanged();
|
|
void yChanged();
|
|
void zChanged();
|
|
void rotationChanged();
|
|
void scaleChanged();
|
|
|
|
protected:
|
|
QGraphicsObject(QGraphicsItemPrivate &dd, QGraphicsItem *parent, QGraphicsScene *scene);
|
|
private:
|
|
friend class QGraphicsItem;
|
|
friend class QGraphicsItemPrivate;
|
|
};
|
|
|
|
|
|
class QAbstractGraphicsShapeItemPrivate;
|
|
class Q_GUI_EXPORT QAbstractGraphicsShapeItem : public QGraphicsItem
|
|
{
|
|
public:
|
|
QAbstractGraphicsShapeItem(QGraphicsItem *parent = 0
|
|
#ifndef Q_QDOC
|
|
// ### obsolete argument
|
|
, QGraphicsScene *scene = 0
|
|
#endif
|
|
);
|
|
~QAbstractGraphicsShapeItem();
|
|
|
|
QPen pen() const;
|
|
void setPen(const QPen &pen);
|
|
|
|
QBrush brush() const;
|
|
void setBrush(const QBrush &brush);
|
|
|
|
bool isObscuredBy(const QGraphicsItem *item) const;
|
|
QPainterPath opaqueArea() const;
|
|
|
|
protected:
|
|
QAbstractGraphicsShapeItem(QAbstractGraphicsShapeItemPrivate &dd,
|
|
QGraphicsItem *parent, QGraphicsScene *scene);
|
|
|
|
private:
|
|
Q_DISABLE_COPY(QAbstractGraphicsShapeItem)
|
|
Q_DECLARE_PRIVATE(QAbstractGraphicsShapeItem)
|
|
};
|
|
|
|
class QGraphicsPathItemPrivate;
|
|
class Q_GUI_EXPORT QGraphicsPathItem : public QAbstractGraphicsShapeItem
|
|
{
|
|
public:
|
|
QGraphicsPathItem(QGraphicsItem *parent = 0
|
|
#ifndef Q_QDOC
|
|
// ### obsolete argument
|
|
, QGraphicsScene *scene = 0
|
|
#endif
|
|
);
|
|
QGraphicsPathItem(const QPainterPath &path, QGraphicsItem *parent = 0
|
|
#ifndef Q_QDOC
|
|
// ### obsolete argument
|
|
, QGraphicsScene *scene = 0
|
|
#endif
|
|
);
|
|
~QGraphicsPathItem();
|
|
|
|
QPainterPath path() const;
|
|
void setPath(const QPainterPath &path);
|
|
|
|
QRectF boundingRect() const;
|
|
QPainterPath shape() const;
|
|
bool contains(const QPointF &point) const;
|
|
|
|
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
|
|
|
|
bool isObscuredBy(const QGraphicsItem *item) const;
|
|
QPainterPath opaqueArea() const;
|
|
|
|
enum { Type = 2 };
|
|
int type() const;
|
|
|
|
protected:
|
|
bool supportsExtension(Extension extension) const;
|
|
void setExtension(Extension extension, const QVariant &variant);
|
|
QVariant extension(const QVariant &variant) const;
|
|
|
|
private:
|
|
Q_DISABLE_COPY(QGraphicsPathItem)
|
|
Q_DECLARE_PRIVATE(QGraphicsPathItem)
|
|
};
|
|
|
|
class QGraphicsRectItemPrivate;
|
|
class Q_GUI_EXPORT QGraphicsRectItem : public QAbstractGraphicsShapeItem
|
|
{
|
|
public:
|
|
QGraphicsRectItem(QGraphicsItem *parent = 0
|
|
#ifndef Q_QDOC
|
|
// ### obsolete argument
|
|
, QGraphicsScene *scene = 0
|
|
#endif
|
|
);
|
|
QGraphicsRectItem(const QRectF &rect, QGraphicsItem *parent = 0
|
|
#ifndef Q_QDOC
|
|
// ### obsolete argument
|
|
, QGraphicsScene *scene = 0
|
|
#endif
|
|
);
|
|
QGraphicsRectItem(qreal x, qreal y, qreal w, qreal h, QGraphicsItem *parent = 0
|
|
#ifndef Q_QDOC
|
|
// ### obsolete argument
|
|
, QGraphicsScene *scene = 0
|
|
#endif
|
|
);
|
|
~QGraphicsRectItem();
|
|
|
|
QRectF rect() const;
|
|
void setRect(const QRectF &rect);
|
|
inline void setRect(qreal x, qreal y, qreal w, qreal h);
|
|
|
|
QRectF boundingRect() const;
|
|
QPainterPath shape() const;
|
|
bool contains(const QPointF &point) const;
|
|
|
|
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
|
|
|
|
bool isObscuredBy(const QGraphicsItem *item) const;
|
|
QPainterPath opaqueArea() const;
|
|
|
|
enum { Type = 3 };
|
|
int type() const;
|
|
|
|
protected:
|
|
bool supportsExtension(Extension extension) const;
|
|
void setExtension(Extension extension, const QVariant &variant);
|
|
QVariant extension(const QVariant &variant) const;
|
|
|
|
private:
|
|
Q_DISABLE_COPY(QGraphicsRectItem)
|
|
Q_DECLARE_PRIVATE(QGraphicsRectItem)
|
|
};
|
|
|
|
inline void QGraphicsRectItem::setRect(qreal ax, qreal ay, qreal w, qreal h)
|
|
{ setRect(QRectF(ax, ay, w, h)); }
|
|
|
|
class QGraphicsEllipseItemPrivate;
|
|
class Q_GUI_EXPORT QGraphicsEllipseItem : public QAbstractGraphicsShapeItem
|
|
{
|
|
public:
|
|
QGraphicsEllipseItem(QGraphicsItem *parent = 0
|
|
#ifndef Q_QDOC
|
|
// ### obsolete argument
|
|
, QGraphicsScene *scene = 0
|
|
#endif
|
|
);
|
|
QGraphicsEllipseItem(const QRectF &rect, QGraphicsItem *parent = 0
|
|
#ifndef Q_QDOC
|
|
// ### obsolete argument
|
|
, QGraphicsScene *scene = 0
|
|
#endif
|
|
);
|
|
QGraphicsEllipseItem(qreal x, qreal y, qreal w, qreal h, QGraphicsItem *parent = 0
|
|
#ifndef Q_QDOC
|
|
// ### obsolete argument
|
|
, QGraphicsScene *scene = 0
|
|
#endif
|
|
);
|
|
~QGraphicsEllipseItem();
|
|
|
|
QRectF rect() const;
|
|
void setRect(const QRectF &rect);
|
|
inline void setRect(qreal x, qreal y, qreal w, qreal h);
|
|
|
|
int startAngle() const;
|
|
void setStartAngle(int angle);
|
|
|
|
int spanAngle() const;
|
|
void setSpanAngle(int angle);
|
|
|
|
QRectF boundingRect() const;
|
|
QPainterPath shape() const;
|
|
bool contains(const QPointF &point) const;
|
|
|
|
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
|
|
|
|
bool isObscuredBy(const QGraphicsItem *item) const;
|
|
QPainterPath opaqueArea() const;
|
|
|
|
enum { Type = 4 };
|
|
int type() const;
|
|
|
|
protected:
|
|
bool supportsExtension(Extension extension) const;
|
|
void setExtension(Extension extension, const QVariant &variant);
|
|
QVariant extension(const QVariant &variant) const;
|
|
|
|
private:
|
|
Q_DISABLE_COPY(QGraphicsEllipseItem)
|
|
Q_DECLARE_PRIVATE(QGraphicsEllipseItem)
|
|
};
|
|
|
|
inline void QGraphicsEllipseItem::setRect(qreal ax, qreal ay, qreal w, qreal h)
|
|
{ setRect(QRectF(ax, ay, w, h)); }
|
|
|
|
class QGraphicsPolygonItemPrivate;
|
|
class Q_GUI_EXPORT QGraphicsPolygonItem : public QAbstractGraphicsShapeItem
|
|
{
|
|
public:
|
|
QGraphicsPolygonItem(QGraphicsItem *parent = 0
|
|
#ifndef Q_QDOC
|
|
// ### obsolete argument
|
|
, QGraphicsScene *scene = 0
|
|
#endif
|
|
);
|
|
QGraphicsPolygonItem(const QPolygonF &polygon,
|
|
QGraphicsItem *parent = 0
|
|
#ifndef Q_QDOC
|
|
// ### obsolete argument
|
|
, QGraphicsScene *scene = 0
|
|
#endif
|
|
);
|
|
~QGraphicsPolygonItem();
|
|
|
|
QPolygonF polygon() const;
|
|
void setPolygon(const QPolygonF &polygon);
|
|
|
|
Qt::FillRule fillRule() const;
|
|
void setFillRule(Qt::FillRule rule);
|
|
|
|
QRectF boundingRect() const;
|
|
QPainterPath shape() const;
|
|
bool contains(const QPointF &point) const;
|
|
|
|
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
|
|
|
|
bool isObscuredBy(const QGraphicsItem *item) const;
|
|
QPainterPath opaqueArea() const;
|
|
|
|
enum { Type = 5 };
|
|
int type() const;
|
|
|
|
protected:
|
|
bool supportsExtension(Extension extension) const;
|
|
void setExtension(Extension extension, const QVariant &variant);
|
|
QVariant extension(const QVariant &variant) const;
|
|
|
|
private:
|
|
Q_DISABLE_COPY(QGraphicsPolygonItem)
|
|
Q_DECLARE_PRIVATE(QGraphicsPolygonItem)
|
|
};
|
|
|
|
class QGraphicsLineItemPrivate;
|
|
class Q_GUI_EXPORT QGraphicsLineItem : public QGraphicsItem
|
|
{
|
|
public:
|
|
QGraphicsLineItem(QGraphicsItem *parent = 0
|
|
#ifndef Q_QDOC
|
|
// ### obsolete argument
|
|
, QGraphicsScene *scene = 0
|
|
#endif
|
|
);
|
|
QGraphicsLineItem(const QLineF &line, QGraphicsItem *parent = 0
|
|
#ifndef Q_QDOC
|
|
// ### obsolete argument
|
|
, QGraphicsScene *scene = 0
|
|
#endif
|
|
);
|
|
QGraphicsLineItem(qreal x1, qreal y1, qreal x2, qreal y2, QGraphicsItem *parent = 0
|
|
#ifndef Q_QDOC
|
|
// ### obsolete argument
|
|
, QGraphicsScene *scene = 0
|
|
#endif
|
|
);
|
|
~QGraphicsLineItem();
|
|
|
|
QPen pen() const;
|
|
void setPen(const QPen &pen);
|
|
|
|
QLineF line() const;
|
|
void setLine(const QLineF &line);
|
|
inline void setLine(qreal x1, qreal y1, qreal x2, qreal y2)
|
|
{ setLine(QLineF(x1, y1, x2, y2)); }
|
|
|
|
QRectF boundingRect() const;
|
|
QPainterPath shape() const;
|
|
bool contains(const QPointF &point) const;
|
|
|
|
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
|
|
|
|
bool isObscuredBy(const QGraphicsItem *item) const;
|
|
QPainterPath opaqueArea() const;
|
|
|
|
enum { Type = 6 };
|
|
int type() const;
|
|
|
|
protected:
|
|
bool supportsExtension(Extension extension) const;
|
|
void setExtension(Extension extension, const QVariant &variant);
|
|
QVariant extension(const QVariant &variant) const;
|
|
|
|
private:
|
|
Q_DISABLE_COPY(QGraphicsLineItem)
|
|
Q_DECLARE_PRIVATE(QGraphicsLineItem)
|
|
};
|
|
|
|
class QGraphicsPixmapItemPrivate;
|
|
class Q_GUI_EXPORT QGraphicsPixmapItem : public QGraphicsItem
|
|
{
|
|
public:
|
|
enum ShapeMode {
|
|
MaskShape,
|
|
BoundingRectShape,
|
|
HeuristicMaskShape
|
|
};
|
|
|
|
QGraphicsPixmapItem(QGraphicsItem *parent = 0
|
|
#ifndef Q_QDOC
|
|
// ### obsolete argument
|
|
, QGraphicsScene *scene = 0
|
|
#endif
|
|
);
|
|
QGraphicsPixmapItem(const QPixmap &pixmap, QGraphicsItem *parent = 0
|
|
#ifndef Q_QDOC
|
|
// ### obsolete argument
|
|
, QGraphicsScene *scene = 0
|
|
#endif
|
|
);
|
|
~QGraphicsPixmapItem();
|
|
|
|
QPixmap pixmap() const;
|
|
void setPixmap(const QPixmap &pixmap);
|
|
|
|
Qt::TransformationMode transformationMode() const;
|
|
void setTransformationMode(Qt::TransformationMode mode);
|
|
|
|
QPointF offset() const;
|
|
void setOffset(const QPointF &offset);
|
|
inline void setOffset(qreal x, qreal y);
|
|
|
|
QRectF boundingRect() const;
|
|
QPainterPath shape() const;
|
|
bool contains(const QPointF &point) const;
|
|
|
|
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
|
|
|
|
bool isObscuredBy(const QGraphicsItem *item) const;
|
|
QPainterPath opaqueArea() const;
|
|
|
|
enum { Type = 7 };
|
|
int type() const;
|
|
|
|
ShapeMode shapeMode() const;
|
|
void setShapeMode(ShapeMode mode);
|
|
|
|
protected:
|
|
bool supportsExtension(Extension extension) const;
|
|
void setExtension(Extension extension, const QVariant &variant);
|
|
QVariant extension(const QVariant &variant) const;
|
|
|
|
private:
|
|
Q_DISABLE_COPY(QGraphicsPixmapItem)
|
|
Q_DECLARE_PRIVATE(QGraphicsPixmapItem)
|
|
};
|
|
|
|
inline void QGraphicsPixmapItem::setOffset(qreal ax, qreal ay)
|
|
{ setOffset(QPointF(ax, ay)); }
|
|
|
|
class QGraphicsTextItemPrivate;
|
|
class QTextDocument;
|
|
class QTextCursor;
|
|
class Q_GUI_EXPORT QGraphicsTextItem : public QGraphicsObject
|
|
{
|
|
Q_OBJECT
|
|
QDOC_PROPERTY(bool openExternalLinks READ openExternalLinks WRITE setOpenExternalLinks)
|
|
QDOC_PROPERTY(QTextCursor textCursor READ textCursor WRITE setTextCursor)
|
|
|
|
public:
|
|
QGraphicsTextItem(QGraphicsItem *parent = 0
|
|
#ifndef Q_QDOC
|
|
// ### obsolete argument
|
|
, QGraphicsScene *scene = 0
|
|
#endif
|
|
);
|
|
QGraphicsTextItem(const QString &text, QGraphicsItem *parent = 0
|
|
#ifndef Q_QDOC
|
|
// ### obsolete argument
|
|
, QGraphicsScene *scene = 0
|
|
#endif
|
|
);
|
|
~QGraphicsTextItem();
|
|
|
|
QString toHtml() const;
|
|
void setHtml(const QString &html);
|
|
|
|
QString toPlainText() const;
|
|
void setPlainText(const QString &text);
|
|
|
|
QFont font() const;
|
|
void setFont(const QFont &font);
|
|
|
|
void setDefaultTextColor(const QColor &c);
|
|
QColor defaultTextColor() const;
|
|
|
|
QRectF boundingRect() const;
|
|
QPainterPath shape() const;
|
|
bool contains(const QPointF &point) const;
|
|
|
|
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
|
|
|
|
bool isObscuredBy(const QGraphicsItem *item) const;
|
|
QPainterPath opaqueArea() const;
|
|
|
|
enum { Type = 8 };
|
|
int type() const;
|
|
|
|
void setTextWidth(qreal width);
|
|
qreal textWidth() const;
|
|
|
|
void adjustSize();
|
|
|
|
void setDocument(QTextDocument *document);
|
|
QTextDocument *document() const;
|
|
|
|
void setTextInteractionFlags(Qt::TextInteractionFlags flags);
|
|
Qt::TextInteractionFlags textInteractionFlags() const;
|
|
|
|
void setTabChangesFocus(bool b);
|
|
bool tabChangesFocus() const;
|
|
|
|
void setOpenExternalLinks(bool open);
|
|
bool openExternalLinks() const;
|
|
|
|
void setTextCursor(const QTextCursor &cursor);
|
|
QTextCursor textCursor() const;
|
|
|
|
Q_SIGNALS:
|
|
void linkActivated(const QString &);
|
|
void linkHovered(const QString &);
|
|
|
|
protected:
|
|
bool sceneEvent(QEvent *event);
|
|
void mousePressEvent(QGraphicsSceneMouseEvent *event);
|
|
void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
|
|
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
|
|
void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event);
|
|
void contextMenuEvent(QGraphicsSceneContextMenuEvent *event);
|
|
void keyPressEvent(QKeyEvent *event);
|
|
void keyReleaseEvent(QKeyEvent *event);
|
|
void focusInEvent(QFocusEvent *event);
|
|
void focusOutEvent(QFocusEvent *event);
|
|
void dragEnterEvent(QGraphicsSceneDragDropEvent *event);
|
|
void dragLeaveEvent(QGraphicsSceneDragDropEvent *event);
|
|
void dragMoveEvent(QGraphicsSceneDragDropEvent *event);
|
|
void dropEvent(QGraphicsSceneDragDropEvent *event);
|
|
void inputMethodEvent(QInputMethodEvent *event);
|
|
void hoverEnterEvent(QGraphicsSceneHoverEvent *event);
|
|
void hoverMoveEvent(QGraphicsSceneHoverEvent *event);
|
|
void hoverLeaveEvent(QGraphicsSceneHoverEvent *event);
|
|
|
|
QVariant inputMethodQuery(Qt::InputMethodQuery query) const;
|
|
|
|
bool supportsExtension(Extension extension) const;
|
|
void setExtension(Extension extension, const QVariant &variant);
|
|
QVariant extension(const QVariant &variant) const;
|
|
|
|
private:
|
|
Q_DISABLE_COPY(QGraphicsTextItem)
|
|
Q_PRIVATE_SLOT(dd, void _q_updateBoundingRect(const QSizeF &))
|
|
Q_PRIVATE_SLOT(dd, void _q_update(QRectF))
|
|
Q_PRIVATE_SLOT(dd, void _q_ensureVisible(QRectF))
|
|
QGraphicsTextItemPrivate *dd;
|
|
friend class QGraphicsTextItemPrivate;
|
|
};
|
|
|
|
class QGraphicsSimpleTextItemPrivate;
|
|
class Q_GUI_EXPORT QGraphicsSimpleTextItem : public QAbstractGraphicsShapeItem
|
|
{
|
|
public:
|
|
QGraphicsSimpleTextItem(QGraphicsItem *parent = 0
|
|
#ifndef Q_QDOC
|
|
// ### obsolete argument
|
|
, QGraphicsScene *scene = 0
|
|
#endif
|
|
);
|
|
QGraphicsSimpleTextItem(const QString &text, QGraphicsItem *parent = 0
|
|
#ifndef Q_QDOC
|
|
// ### obsolete argument
|
|
, QGraphicsScene *scene = 0
|
|
#endif
|
|
);
|
|
~QGraphicsSimpleTextItem();
|
|
|
|
void setText(const QString &text);
|
|
QString text() const;
|
|
|
|
void setFont(const QFont &font);
|
|
QFont font() const;
|
|
|
|
QRectF boundingRect() const;
|
|
QPainterPath shape() const;
|
|
bool contains(const QPointF &point) const;
|
|
|
|
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
|
|
|
|
bool isObscuredBy(const QGraphicsItem *item) const;
|
|
QPainterPath opaqueArea() const;
|
|
|
|
enum { Type = 9 };
|
|
int type() const;
|
|
|
|
protected:
|
|
bool supportsExtension(Extension extension) const;
|
|
void setExtension(Extension extension, const QVariant &variant);
|
|
QVariant extension(const QVariant &variant) const;
|
|
|
|
private:
|
|
Q_DISABLE_COPY(QGraphicsSimpleTextItem)
|
|
Q_DECLARE_PRIVATE(QGraphicsSimpleTextItem)
|
|
};
|
|
|
|
class QGraphicsItemGroupPrivate;
|
|
class Q_GUI_EXPORT QGraphicsItemGroup : public QGraphicsItem
|
|
{
|
|
public:
|
|
QGraphicsItemGroup(QGraphicsItem *parent = 0
|
|
#ifndef Q_QDOC
|
|
// ### obsolete argument
|
|
, QGraphicsScene *scene = 0
|
|
#endif
|
|
);
|
|
~QGraphicsItemGroup();
|
|
|
|
void addToGroup(QGraphicsItem *item);
|
|
void removeFromGroup(QGraphicsItem *item);
|
|
|
|
QRectF boundingRect() const;
|
|
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
|
|
|
|
bool isObscuredBy(const QGraphicsItem *item) const;
|
|
QPainterPath opaqueArea() const;
|
|
|
|
enum { Type = 10 };
|
|
int type() const;
|
|
|
|
private:
|
|
Q_DISABLE_COPY(QGraphicsItemGroup)
|
|
Q_DECLARE_PRIVATE(QGraphicsItemGroup)
|
|
};
|
|
|
|
template <class T> inline T qgraphicsitem_cast(QGraphicsItem *item)
|
|
{
|
|
return int(static_cast<T>(0)->Type) == int(QGraphicsItem::Type)
|
|
|| (item && int(static_cast<T>(0)->Type) == item->type()) ? static_cast<T>(item) : 0;
|
|
}
|
|
|
|
template <class T> inline T qgraphicsitem_cast(const QGraphicsItem *item)
|
|
{
|
|
return int(static_cast<T>(0)->Type) == int(QGraphicsItem::Type)
|
|
|| (item && int(static_cast<T>(0)->Type) == item->type()) ? static_cast<T>(item) : 0;
|
|
}
|
|
|
|
#ifndef QT_NO_DEBUG_STREAM
|
|
Q_GUI_EXPORT QDebug operator<<(QDebug debug, QGraphicsItem *item);
|
|
Q_GUI_EXPORT QDebug operator<<(QDebug debug, QGraphicsObject *item);
|
|
Q_GUI_EXPORT QDebug operator<<(QDebug debug, QGraphicsItem::GraphicsItemChange change);
|
|
Q_GUI_EXPORT QDebug operator<<(QDebug debug, QGraphicsItem::GraphicsItemFlag flag);
|
|
Q_GUI_EXPORT QDebug operator<<(QDebug debug, QGraphicsItem::GraphicsItemFlags flags);
|
|
#endif
|
|
|
|
QT_END_NAMESPACE
|
|
|
|
Q_DECLARE_METATYPE(QGraphicsItem *)
|
|
Q_DECLARE_METATYPE(QGraphicsScene *)
|
|
|
|
QT_BEGIN_NAMESPACE
|
|
|
|
#endif // QT_NO_GRAPHICSVIEW
|
|
|
|
QT_END_NAMESPACE
|
|
|
|
QT_END_HEADER
|
|
|
|
#endif // QGRAPHICSITEM_H
|