42 #ifndef QGRAPHICSITEM_H
43 #define QGRAPHICSITEM_H
53 class tst_QGraphicsItem;
61 #if !defined(QT_NO_GRAPHICSVIEW) || (QT_EDITION & QT_MODULE_GRAPHICSVIEW) != QT_MODULE_GRAPHICSVIEW
88 class QGraphicsItemPrivate;
95 ItemIsFocusable = 0x4,
96 ItemClipsToShape = 0x8,
97 ItemClipsChildrenToShape = 0x10,
98 ItemIgnoresTransformations = 0x20,
99 ItemIgnoresParentOpacity = 0x40,
100 ItemDoesntPropagateOpacityToChildren = 0x80,
101 ItemStacksBehindParent = 0x100,
102 ItemUsesExtendedStyleOption = 0x200,
103 ItemHasNoContents = 0x400,
104 ItemSendsGeometryChanges = 0x800,
105 ItemAcceptsInputMethod = 0x1000,
106 ItemNegativeZStacksBehindParent = 0x2000,
107 ItemIsPanel = 0x4000,
108 ItemIsFocusScope = 0x8000,
109 ItemSendsScenePositionChanges = 0x10000,
110 ItemStopsClickFocusPropagation = 0x20000,
111 ItemStopsFocusHandling = 0x40000
114 Q_DECLARE_FLAGS(GraphicsItemFlags, GraphicsItemFlag)
150 ItemTransformOriginPointHasChanged
156 DeviceCoordinateCache
186 bool isWidget()
const;
187 bool isWindow()
const;
188 bool isPanel()
const;
196 GraphicsItemFlags flags()
const;
197 void setFlag(GraphicsItemFlag flag,
bool enabled =
true);
198 void setFlags(GraphicsItemFlags flags);
200 CacheMode cacheMode()
const;
201 void setCacheMode(CacheMode
mode,
const QSize &cacheSize =
QSize());
203 PanelModality panelModality()
const;
204 void setPanelModality(PanelModality panelModality);
205 bool isBlockedByModalPanel(
QGraphicsItem **blockingPanel = 0)
const;
207 #ifndef QT_NO_TOOLTIP
209 void setToolTip(
const QString &toolTip);
214 void setCursor(
const QCursor &cursor);
215 bool hasCursor()
const;
219 bool isVisible()
const;
221 void setVisible(
bool visible);
222 inline void hide() { setVisible(
false); }
223 inline void show() { setVisible(
true); }
225 bool isEnabled()
const;
226 void setEnabled(
bool enabled);
228 bool isSelected()
const;
229 void setSelected(
bool selected);
231 bool acceptDrops()
const;
232 void setAcceptDrops(
bool on);
234 qreal opacity()
const;
235 qreal effectiveOpacity()
const;
236 void setOpacity(qreal opacity);
238 #ifndef QT_NO_GRAPHICSEFFECT
242 #endif //QT_NO_GRAPHICSEFFECT
244 Qt::MouseButtons acceptedMouseButtons()
const;
245 void setAcceptedMouseButtons(Qt::MouseButtons buttons);
247 bool acceptsHoverEvents()
const;
248 void setAcceptsHoverEvents(
bool enabled);
249 bool acceptHoverEvents()
const;
250 void setAcceptHoverEvents(
bool enabled);
251 bool acceptTouchEvents()
const;
252 void setAcceptTouchEvents(
bool enabled);
254 bool filtersChildEvents()
const;
255 void setFiltersChildEvents(
bool enabled);
257 bool handlesChildEvents()
const;
258 void setHandlesChildEvents(
bool enabled);
260 bool isActive()
const;
261 void setActive(
bool active);
263 bool hasFocus()
const;
276 void ungrabKeyboard();
280 inline qreal
x()
const {
return pos().x(); }
282 inline qreal
y()
const {
return pos().y(); }
285 void setPos(
const QPointF &pos);
286 inline void setPos(qreal
x, qreal
y);
287 inline void moveBy(qreal
dx, qreal
dy) { setPos(pos().
x() + dx, pos().
y() + dy); }
289 void ensureVisible(
const QRectF &rect =
QRectF(),
int xmargin = 50,
int ymargin = 50);
290 inline void ensureVisible(qreal
x, qreal
y, qreal
w, qreal
h,
int xmargin = 50,
int ymargin = 50);
302 void resetTransform();
304 void rotate(qreal angle);
305 void scale(qreal sx, qreal sy);
306 void shear(qreal sh, qreal sv);
307 void translate(qreal
dx, qreal
dy);
309 void setRotation(qreal angle);
310 qreal rotation()
const;
312 void setScale(qreal
scale);
318 QPointF transformOriginPoint()
const;
319 void setTransformOriginPoint(
const QPointF &origin);
321 { setTransformOriginPoint(
QPointF(ax,ay)); }
323 virtual void advance(
int phase);
326 qreal zValue()
const;
327 void setZValue(qreal
z);
331 virtual QRectF boundingRect()
const = 0;
332 QRectF childrenBoundingRect()
const;
333 QRectF sceneBoundingRect()
const;
335 bool isClipped()
const;
337 virtual bool contains(
const QPointF &point)
const;
341 bool isObscured()
const;
342 bool isObscured(
const QRectF &rect)
const;
343 inline bool isObscured(qreal
x, qreal
y, qreal
w, qreal
h)
const;
348 qreal boundingRegionGranularity()
const;
349 void setBoundingRegionGranularity(qreal granularity);
354 inline void update(qreal
x, qreal
y, qreal
width, qreal
height);
390 inline QPointF mapToParent(qreal
x, qreal
y)
const;
391 inline QPointF mapToScene(qreal
x, qreal
y)
const;
393 inline QPolygonF mapToParent(qreal
x, qreal
y, qreal
w, qreal
h)
const;
394 inline QPolygonF mapToScene(qreal
x, qreal
y, qreal
w, qreal
h)
const;
396 inline QRectF mapRectToParent(qreal
x, qreal
y, qreal
w, qreal
h)
const;
397 inline QRectF mapRectToScene(qreal
x, qreal
y, qreal
w, qreal
h)
const;
399 inline QPointF mapFromParent(qreal
x, qreal
y)
const;
400 inline QPointF mapFromScene(qreal
x, qreal
y)
const;
402 inline QPolygonF mapFromParent(qreal
x, qreal
y, qreal
w, qreal
h)
const;
403 inline QPolygonF mapFromScene(qreal
x, qreal
y, qreal
w, qreal
h)
const;
405 inline QRectF mapRectFromParent(qreal
x, qreal
y, qreal
w, qreal
h)
const;
406 inline QRectF mapRectFromScene(qreal
x, qreal
y, qreal
w, qreal
h)
const;
410 bool isUnderMouse()
const;
416 Qt::InputMethodHints inputMethodHints()
const;
417 void setInputMethodHints(Qt::InputMethodHints hints);
423 virtual int type()
const;
429 void updateMicroFocus();
431 virtual bool sceneEvent(
QEvent *event);
442 virtual void keyPressEvent(
QKeyEvent *event);
443 virtual void keyReleaseEvent(
QKeyEvent *event);
455 UserExtension = 0x80000000
457 virtual bool supportsExtension(Extension extension)
const;
458 virtual void setExtension(Extension extension,
const QVariant &variant);
467 void removeFromIndex();
468 void prepareGeometryChange();
475 friend class QGraphicsScenePrivate;
476 friend class QGraphicsSceneFindItemBspTreeVisitor;
477 friend class QGraphicsSceneBspTree;
479 friend class QGraphicsViewPrivate;
482 friend class QGraphicsWidgetPrivate;
483 friend class QGraphicsProxyWidgetPrivate;
484 friend class QGraphicsSceneIndex;
485 friend class QGraphicsSceneIndexPrivate;
486 friend class QGraphicsSceneBspTreeIndex;
487 friend class QGraphicsSceneBspTreeIndexPrivate;
488 friend class QGraphicsItemEffectSourcePrivate;
489 friend class QGraphicsTransformPrivate;
490 #ifndef QT_NO_GESTURES
491 friend class QGestureManager;
493 friend class ::tst_QGraphicsItem;
498 Q_DECLARE_OPERATORS_FOR_FLAGS(QGraphicsItem::GraphicsItemFlags)
501 inline void QGraphicsItem::setPos(qreal ax, qreal ay)
551 Q_PROPERTY(qreal opacity READ opacity WRITE setOpacity NOTIFY opacityChanged FINAL)
552 Q_PROPERTY(
bool enabled READ isEnabled WRITE setEnabled NOTIFY enabledChanged)
553 Q_PROPERTY(
bool visible READ isVisible WRITE setVisible NOTIFY visibleChanged FINAL)
557 Q_PROPERTY(qreal
z READ zValue WRITE setZValue NOTIFY zChanged FINAL)
558 Q_PROPERTY(qreal rotation READ rotation WRITE setRotation NOTIFY rotationChanged)
560 Q_PROPERTY(
QPointF transformOriginPoint READ transformOriginPoint WRITE setTransformOriginPoint)
561 #ifndef QT_NO_GRAPHICSEFFECT
564 Q_PRIVATE_PROPERTY(QGraphicsItem::d_func(), QDeclarativeListProperty<QGraphicsObject> children READ childrenList DESIGNABLE
false NOTIFY childrenChanged)
573 #ifdef Q_NO_USING_KEYWORD
579 #ifndef QT_NO_GESTURES
588 void parentChanged();
589 void opacityChanged();
590 void visibleChanged();
591 void enabledChanged();
595 void rotationChanged();
597 void childrenChanged();
599 void heightChanged();
605 friend class QGraphicsItemPrivate;
609 class QAbstractGraphicsShapeItemPrivate;
622 void setPen(
const QPen &pen);
625 void setBrush(
const QBrush &brush);
639 class QGraphicsPathItemPrivate;
682 class QGraphicsRectItemPrivate;
707 void setRect(
const QRectF &rect);
708 inline void setRect(qreal x, qreal y, qreal w, qreal h);
732 inline void QGraphicsRectItem::setRect(qreal ax, qreal ay, qreal w, qreal h)
733 { setRect(
QRectF(ax, ay, w, h)); }
735 class QGraphicsEllipseItemPrivate;
760 void setRect(
const QRectF &rect);
761 inline void setRect(qreal x, qreal y, qreal w, qreal h);
763 int startAngle()
const;
764 void setStartAngle(
int angle);
766 int spanAngle()
const;
767 void setSpanAngle(
int angle);
791 inline void QGraphicsEllipseItem::setRect(qreal ax, qreal ay, qreal w, qreal h)
792 { setRect(
QRectF(ax, ay, w, h)); }
794 class QGraphicsPolygonItemPrivate;
814 void setPolygon(
const QPolygonF &polygon);
841 class QGraphicsLineItemPrivate;
857 QGraphicsLineItem(qreal x1, qreal y1, qreal x2, qreal y2, QGraphicsItem *parent = 0
869 void setLine(
const QLineF &line);
870 inline void setLine(qreal x1, qreal y1, qreal x2, qreal y2)
871 { setLine(
QLineF(x1, y1, x2, y2)); }
895 class QGraphicsPixmapItemPrivate;
927 inline void setOffset(qreal x, qreal y);
941 ShapeMode shapeMode()
const;
942 void setShapeMode(ShapeMode mode);
954 inline void QGraphicsPixmapItem::setOffset(qreal ax, qreal ay)
955 { setOffset(
QPointF(ax, ay)); }
957 class QGraphicsTextItemPrivate;
963 QDOC_PROPERTY(
bool openExternalLinks READ openExternalLinks WRITE setOpenExternalLinks)
964 QDOC_PROPERTY(
QTextCursor textCursor READ textCursor WRITE setTextCursor)
982 void setHtml(
const QString &html);
985 void setPlainText(
const QString &text);
988 void setFont(
const QFont &font);
990 void setDefaultTextColor(
const QColor &
c);
991 QColor defaultTextColor()
const;
1005 void setTextWidth(qreal
width);
1006 qreal textWidth()
const;
1013 void setTextInteractionFlags(Qt::TextInteractionFlags flags);
1014 Qt::TextInteractionFlags textInteractionFlags()
const;
1016 void setTabChangesFocus(
bool b);
1017 bool tabChangesFocus()
const;
1019 void setOpenExternalLinks(
bool open);
1020 bool openExternalLinks()
const;
1026 void linkActivated(
const QString &);
1027 void linkHovered(
const QString &);
1060 QGraphicsTextItemPrivate *dd;
1061 friend class QGraphicsTextItemPrivate;
1064 class QGraphicsSimpleTextItemPrivate;
1082 void setText(
const QString &text);
1085 void setFont(
const QFont &font);
1110 class QGraphicsItemGroupPrivate;
1122 void addToGroup(QGraphicsItem *item);
1123 void removeFromGroup(QGraphicsItem *item);
1142 || (item &&
int(static_cast<T>(0)->Type) == item->type()) ? static_cast<T>(item) : 0;
1148 || (item &&
int(static_cast<T>(0)->Type) == item->
type()) ? static_cast<T>(item) : 0;
1151 #ifndef QT_NO_DEBUG_STREAM
1166 #endif // QT_NO_GRAPHICSVIEW
1172 #endif // QGRAPHICSITEM_H
virtual void focusInEvent(QFocusEvent *event)
GLuint GLuint GLsizei GLenum type
bool isObscuredBy(const QGraphicsItem *item) const
unsigned int(APIENTRYP PFNGLXGETAGPOFFSETMESAPROC)(const void *pointer)
virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event)
virtual void dragMoveEvent(QGraphicsSceneDragDropEvent *event)
#define Q_CLASSINFO(name, value)
virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *event)
virtual QRectF boundingRect() const =0
QPointF mapToScene(const QPointF &point) const
QPainterPath opaqueArea() const
virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
GLXFBConfig Pixmap pixmap
#define Q_PRIVATE_PROPERTY(d, text)
virtual void dragLeaveEvent(QGraphicsSceneDragDropEvent *event)
virtual bool isObscuredBy(const QGraphicsItem *item) const
virtual bool supportsExtension(Extension extension) const
#define Q_PRIVATE_SLOT(d, signature)
virtual void dragEnterEvent(QGraphicsSceneDragDropEvent *event)
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=0)=0
virtual void keyPressEvent(QKeyEvent *event)
QPointF mapToParent(const QPointF &point) const
virtual QPainterPath opaqueArea() const
virtual void setExtension(Extension extension, const QVariant &variant)
friend class QGraphicsItemGroup
virtual QPainterPath shape() const
const QObjectList & children() const
#define QT_BEGIN_NAMESPACE
virtual bool sceneEvent(QEvent *event)
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event)
Q_GUI_EXPORT QDebug operator<<(QDebug debug, QGraphicsItem *item)
GLsizei GLsizei GLenum GLenum const GLvoid * data
virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const
QRectF mapRectFromItem(const QGraphicsItem *item, const QRectF &rect) const
virtual void keyReleaseEvent(QKeyEvent *event)
QRectF mapRectToScene(const QRectF &rect) const
virtual QVariant extension(const QVariant &variant) const
GLenum GLsizei GLsizei height
GLuint GLenum GLenum transform
QRectF mapRectToItem(const QGraphicsItem *item, const QRectF &rect) const
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
void update(const QRectF &rect=QRectF())
virtual bool contains(const QPointF &point) const
QRectF mapRectFromScene(const QRectF &rect) const
QPointF mapFromParent(const QPointF &point) const
virtual void mousePressEvent(QGraphicsSceneMouseEvent *event)
void setPen(const QPen &pen)
void ensureVisible(const QRectF &rect=QRectF(), int xmargin=50, int ymargin=50)
T qgraphicsitem_cast(QGraphicsItem *item)
QScopedPointer< QGraphicsItemPrivate > d_ptr
QPointF mapToItem(const QGraphicsItem *item, const QPointF &point) const
GLsizei const GLfloat * value
int int int int int int h
QPointF mapFromScene(const QPointF &point) const
void setTransformOriginPoint(qreal ax, qreal ay)
virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
void moveBy(qreal dx, qreal dy)
virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
friend class QGraphicsObject
void setLine(qreal x1, qreal y1, qreal x2, qreal y2)
QList< QGraphicsItem * > children() const
QPointF mapFromItem(const QGraphicsItem *item, const QPointF &point) const
virtual void focusOutEvent(QFocusEvent *event)
virtual void dropEvent(QGraphicsSceneDragDropEvent *event)
virtual void inputMethodEvent(QInputMethodEvent *event)
GLubyte GLubyte GLubyte GLubyte w
GLenum GLenum GLenum GLenum GLenum scale
QRectF mapRectFromParent(const QRectF &rect) const
QRectF mapRectToParent(const QRectF &rect) const