1// qgraphicsitem.sip generated by MetaSIP
2//
3// This file is part of the QtWidgets Python extension module.
4//
5// Copyright (c) 2021 Riverbank Computing Limited <info@riverbankcomputing.com>
6//
7// This file is part of PyQt5.
8//
9// This file may be used under the terms of the GNU General Public License
10// version 3.0 as published by the Free Software Foundation and appearing in
11// the file LICENSE included in the packaging of this file.  Please review the
12// following information to ensure the GNU General Public License version 3.0
13// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
14//
15// If you do not wish to use this file under the terms of the GPL version 3.0
16// then you may purchase a commercial license.  For more information contact
17// info@riverbankcomputing.com.
18//
19// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
20// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
21
22
23class QGraphicsItem /Supertype=sip.wrapper/
24{
25%TypeHeaderCode
26#include <qgraphicsitem.h>
27%End
28
29%ConvertToSubClassCode
30    switch (sipCpp->type())
31    {
32    case 2:
33        sipType = sipType_QGraphicsPathItem;
34        break;
35
36    case 3:
37        sipType = sipType_QGraphicsRectItem;
38        break;
39
40    case 4:
41        sipType = sipType_QGraphicsEllipseItem;
42        break;
43
44    case 5:
45        sipType = sipType_QGraphicsPolygonItem;
46        break;
47
48    case 6:
49        sipType = sipType_QGraphicsLineItem;
50        break;
51
52    case 7:
53        sipType = sipType_QGraphicsPixmapItem;
54        break;
55
56    case 8:
57        // Switch to the QObject convertor.
58        *sipCppRet = static_cast<QGraphicsTextItem *>(sipCpp);
59        sipType = sipType_QObject;
60        break;
61
62    case 9:
63        sipType = sipType_QGraphicsSimpleTextItem;
64        break;
65
66    case 10:
67        sipType = sipType_QGraphicsItemGroup;
68        break;
69
70    case 11:
71        // Switch to the QObject convertor.
72        *sipCppRet = static_cast<QGraphicsWidget *>(sipCpp);
73        sipType = sipType_QObject;
74        break;
75
76    case 12:
77        // Switch to the QObject convertor.
78        *sipCppRet = static_cast<QGraphicsProxyWidget *>(sipCpp);
79        sipType = sipType_QObject;
80        break;
81
82    default:
83        sipType = 0;
84    }
85%End
86
87public:
88    enum CacheMode
89    {
90        NoCache,
91        ItemCoordinateCache,
92        DeviceCoordinateCache,
93    };
94
95    enum GraphicsItemChange
96    {
97        ItemPositionChange,
98        ItemMatrixChange,
99        ItemVisibleChange,
100        ItemEnabledChange,
101        ItemSelectedChange,
102        ItemParentChange,
103        ItemChildAddedChange,
104        ItemChildRemovedChange,
105        ItemTransformChange,
106        ItemPositionHasChanged,
107        ItemTransformHasChanged,
108        ItemSceneChange,
109        ItemVisibleHasChanged,
110        ItemEnabledHasChanged,
111        ItemSelectedHasChanged,
112        ItemParentHasChanged,
113        ItemSceneHasChanged,
114        ItemCursorChange,
115        ItemCursorHasChanged,
116        ItemToolTipChange,
117        ItemToolTipHasChanged,
118        ItemFlagsChange,
119        ItemFlagsHaveChanged,
120        ItemZValueChange,
121        ItemZValueHasChanged,
122        ItemOpacityChange,
123        ItemOpacityHasChanged,
124        ItemScenePositionHasChanged,
125        ItemRotationChange,
126        ItemRotationHasChanged,
127        ItemScaleChange,
128        ItemScaleHasChanged,
129        ItemTransformOriginPointChange,
130        ItemTransformOriginPointHasChanged,
131    };
132
133    enum GraphicsItemFlag
134    {
135        ItemIsMovable,
136        ItemIsSelectable,
137        ItemIsFocusable,
138        ItemClipsToShape,
139        ItemClipsChildrenToShape,
140        ItemIgnoresTransformations,
141        ItemIgnoresParentOpacity,
142        ItemDoesntPropagateOpacityToChildren,
143        ItemStacksBehindParent,
144        ItemUsesExtendedStyleOption,
145        ItemHasNoContents,
146        ItemSendsGeometryChanges,
147        ItemAcceptsInputMethod,
148        ItemNegativeZStacksBehindParent,
149        ItemIsPanel,
150        ItemSendsScenePositionChanges,
151%If (Qt_5_4_0 -)
152        ItemContainsChildrenInShape,
153%End
154    };
155
156    typedef QFlags<QGraphicsItem::GraphicsItemFlag> GraphicsItemFlags;
157    static const int Type;
158    static const int UserType;
159    explicit QGraphicsItem(QGraphicsItem *parent /TransferThis/ = 0);
160    virtual ~QGraphicsItem();
161    QGraphicsScene *scene() const;
162    QGraphicsItem *parentItem() const;
163    QGraphicsItem *topLevelItem() const;
164    void setParentItem(QGraphicsItem *parent /TransferThis/);
165    QGraphicsItemGroup *group() const;
166    void setGroup(QGraphicsItemGroup *group /KeepReference/);
167    QGraphicsItem::GraphicsItemFlags flags() const;
168    void setFlag(QGraphicsItem::GraphicsItemFlag flag, bool enabled = true);
169    void setFlags(QGraphicsItem::GraphicsItemFlags flags);
170    QString toolTip() const;
171    void setToolTip(const QString &toolTip);
172    QCursor cursor() const;
173    void setCursor(const QCursor &cursor);
174    bool hasCursor() const;
175    void unsetCursor();
176    bool isVisible() const;
177    void setVisible(bool visible);
178    void hide();
179    void show();
180    bool isEnabled() const;
181    void setEnabled(bool enabled);
182    bool isSelected() const;
183    void setSelected(bool selected);
184    bool acceptDrops() const;
185    void setAcceptDrops(bool on);
186    Qt::MouseButtons acceptedMouseButtons() const;
187    void setAcceptedMouseButtons(Qt::MouseButtons buttons);
188    bool hasFocus() const;
189    void setFocus(Qt::FocusReason focusReason = Qt::OtherFocusReason);
190    void clearFocus();
191    QPointF pos() const;
192    qreal x() const;
193    qreal y() const;
194    QPointF scenePos() const;
195    void setPos(const QPointF &pos);
196    void moveBy(qreal dx, qreal dy);
197    void ensureVisible(const QRectF &rect = QRectF(), int xMargin = 50, int yMargin = 50);
198    virtual void advance(int phase);
199    qreal zValue() const;
200    void setZValue(qreal z);
201    virtual QRectF boundingRect() const = 0;
202    QRectF childrenBoundingRect() const;
203    QRectF sceneBoundingRect() const;
204    virtual QPainterPath shape() const;
205    virtual bool contains(const QPointF &point) const;
206    virtual bool collidesWithItem(const QGraphicsItem *other, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const;
207    virtual bool collidesWithPath(const QPainterPath &path, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const;
208    QList<QGraphicsItem *> collidingItems(Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const;
209    virtual bool isObscuredBy(const QGraphicsItem *item) const;
210    virtual QPainterPath opaqueArea() const;
211    virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0) = 0;
212    void update(const QRectF &rect = QRectF());
213    QPointF mapToItem(const QGraphicsItem *item, const QPointF &point) const;
214    QPointF mapToParent(const QPointF &point) const;
215    QPointF mapToScene(const QPointF &point) const;
216    QPolygonF mapToItem(const QGraphicsItem *item, const QRectF &rect) const;
217    QPolygonF mapToParent(const QRectF &rect) const;
218    QPolygonF mapToScene(const QRectF &rect) const;
219    QPolygonF mapToItem(const QGraphicsItem *item, const QPolygonF &polygon) const;
220    QPolygonF mapToParent(const QPolygonF &polygon) const;
221    QPolygonF mapToScene(const QPolygonF &polygon) const;
222    QPainterPath mapToItem(const QGraphicsItem *item, const QPainterPath &path) const;
223    QPainterPath mapToParent(const QPainterPath &path) const;
224    QPainterPath mapToScene(const QPainterPath &path) const;
225    QPointF mapFromItem(const QGraphicsItem *item, const QPointF &point) const;
226    QPointF mapFromParent(const QPointF &point) const;
227    QPointF mapFromScene(const QPointF &point) const;
228    QPolygonF mapFromItem(const QGraphicsItem *item, const QRectF &rect) const;
229    QPolygonF mapFromParent(const QRectF &rect) const;
230    QPolygonF mapFromScene(const QRectF &rect) const;
231    QPolygonF mapFromItem(const QGraphicsItem *item, const QPolygonF &polygon) const;
232    QPolygonF mapFromParent(const QPolygonF &polygon) const;
233    QPolygonF mapFromScene(const QPolygonF &polygon) const;
234    QPainterPath mapFromItem(const QGraphicsItem *item, const QPainterPath &path) const;
235    QPainterPath mapFromParent(const QPainterPath &path) const;
236    QPainterPath mapFromScene(const QPainterPath &path) const;
237    bool isAncestorOf(const QGraphicsItem *child) const;
238    QVariant data(int key) const;
239    void setData(int key, const QVariant &value);
240    virtual int type() const;
241    void installSceneEventFilter(QGraphicsItem *filterItem);
242    void removeSceneEventFilter(QGraphicsItem *filterItem);
243
244protected:
245    virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event);
246    virtual void dragEnterEvent(QGraphicsSceneDragDropEvent *event);
247    virtual void dragLeaveEvent(QGraphicsSceneDragDropEvent *event);
248    virtual void dragMoveEvent(QGraphicsSceneDragDropEvent *event);
249    virtual void dropEvent(QGraphicsSceneDragDropEvent *event);
250    virtual void focusInEvent(QFocusEvent *event);
251    virtual void focusOutEvent(QFocusEvent *event);
252    virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event);
253    virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event);
254    virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *event);
255    virtual void inputMethodEvent(QInputMethodEvent *event);
256    virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const;
257    virtual QVariant itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value);
258    virtual void keyPressEvent(QKeyEvent *event);
259    virtual void keyReleaseEvent(QKeyEvent *event);
260    virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event);
261    virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
262    virtual void mousePressEvent(QGraphicsSceneMouseEvent *event);
263    virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
264    void prepareGeometryChange();
265    virtual bool sceneEvent(QEvent *event);
266    virtual bool sceneEventFilter(QGraphicsItem *watched, QEvent *event);
267    virtual void wheelEvent(QGraphicsSceneWheelEvent *event);
268
269public:
270    void setPos(qreal ax, qreal ay);
271    void ensureVisible(qreal x, qreal y, qreal w, qreal h, int xMargin = 50, int yMargin = 50);
272    void update(qreal ax, qreal ay, qreal width, qreal height);
273    QPointF mapToItem(const QGraphicsItem *item, qreal ax, qreal ay) const;
274    QPointF mapToParent(qreal ax, qreal ay) const;
275    QPointF mapToScene(qreal ax, qreal ay) const;
276    QPointF mapFromItem(const QGraphicsItem *item, qreal ax, qreal ay) const;
277    QPointF mapFromParent(qreal ax, qreal ay) const;
278    QPointF mapFromScene(qreal ax, qreal ay) const;
279    QTransform transform() const;
280    QTransform sceneTransform() const;
281    QTransform deviceTransform(const QTransform &viewportTransform) const;
282    void setTransform(const QTransform &matrix, bool combine = false);
283    void resetTransform();
284    bool isObscured(const QRectF &rect = QRectF()) const;
285    bool isObscured(qreal ax, qreal ay, qreal w, qreal h) const;
286    QPolygonF mapToItem(const QGraphicsItem *item, qreal ax, qreal ay, qreal w, qreal h) const;
287    QPolygonF mapToParent(qreal ax, qreal ay, qreal w, qreal h) const;
288    QPolygonF mapToScene(qreal ax, qreal ay, qreal w, qreal h) const;
289    QPolygonF mapFromItem(const QGraphicsItem *item, qreal ax, qreal ay, qreal w, qreal h) const;
290    QPolygonF mapFromParent(qreal ax, qreal ay, qreal w, qreal h) const;
291    QPolygonF mapFromScene(qreal ax, qreal ay, qreal w, qreal h) const;
292    QGraphicsWidget *parentWidget() const;
293    QGraphicsWidget *topLevelWidget() const;
294    QGraphicsWidget *window() const;
295    QList<QGraphicsItem *> childItems() const;
296    bool isWidget() const;
297    bool isWindow() const;
298    QGraphicsItem::CacheMode cacheMode() const;
299    void setCacheMode(QGraphicsItem::CacheMode mode, const QSize &logicalCacheSize = QSize());
300    bool isVisibleTo(const QGraphicsItem *parent) const;
301    bool acceptHoverEvents() const;
302    void setAcceptHoverEvents(bool enabled);
303    void grabMouse();
304    void ungrabMouse();
305    void grabKeyboard();
306    void ungrabKeyboard();
307    QRegion boundingRegion(const QTransform &itemToDeviceTransform) const;
308    qreal boundingRegionGranularity() const;
309    void setBoundingRegionGranularity(qreal granularity);
310    void scroll(qreal dx, qreal dy, const QRectF &rect = QRectF());
311    QGraphicsItem *commonAncestorItem(const QGraphicsItem *other) const;
312    bool isUnderMouse() const;
313    qreal opacity() const;
314    qreal effectiveOpacity() const;
315    void setOpacity(qreal opacity);
316    QTransform itemTransform(const QGraphicsItem *other, bool *ok = 0) const;
317    bool isClipped() const;
318    QPainterPath clipPath() const;
319    QRectF mapRectToItem(const QGraphicsItem *item, const QRectF &rect) const;
320    QRectF mapRectToParent(const QRectF &rect) const;
321    QRectF mapRectToScene(const QRectF &rect) const;
322    QRectF mapRectFromItem(const QGraphicsItem *item, const QRectF &rect) const;
323    QRectF mapRectFromParent(const QRectF &rect) const;
324    QRectF mapRectFromScene(const QRectF &rect) const;
325    QRectF mapRectToItem(const QGraphicsItem *item, qreal ax, qreal ay, qreal w, qreal h) const;
326    QRectF mapRectToParent(qreal ax, qreal ay, qreal w, qreal h) const;
327    QRectF mapRectToScene(qreal ax, qreal ay, qreal w, qreal h) const;
328    QRectF mapRectFromItem(const QGraphicsItem *item, qreal ax, qreal ay, qreal w, qreal h) const;
329    QRectF mapRectFromParent(qreal ax, qreal ay, qreal w, qreal h) const;
330    QRectF mapRectFromScene(qreal ax, qreal ay, qreal w, qreal h) const;
331
332    enum PanelModality
333    {
334        NonModal,
335        PanelModal,
336        SceneModal,
337    };
338
339    QGraphicsObject *parentObject() const;
340    QGraphicsItem *panel() const;
341    bool isPanel() const;
342    QGraphicsObject *toGraphicsObject();
343    QGraphicsItem::PanelModality panelModality() const;
344    void setPanelModality(QGraphicsItem::PanelModality panelModality);
345    bool isBlockedByModalPanel(QGraphicsItem **blockingPanel /Out/ = 0) const;
346    QGraphicsEffect *graphicsEffect() const;
347    void setGraphicsEffect(QGraphicsEffect *effect /Transfer/);
348    bool acceptTouchEvents() const;
349    void setAcceptTouchEvents(bool enabled);
350    bool filtersChildEvents() const;
351    void setFiltersChildEvents(bool enabled);
352    bool isActive() const;
353    void setActive(bool active);
354    QGraphicsItem *focusProxy() const;
355    void setFocusProxy(QGraphicsItem *item /KeepReference/);
356    QGraphicsItem *focusItem() const;
357    void setX(qreal x);
358    void setY(qreal y);
359    void setRotation(qreal angle);
360    qreal rotation() const;
361    void setScale(qreal scale);
362    qreal scale() const;
363    QList<QGraphicsTransform *> transformations() const;
364    void setTransformations(const QList<QGraphicsTransform *> &transformations /KeepReference/);
365    QPointF transformOriginPoint() const;
366    void setTransformOriginPoint(const QPointF &origin);
367    void setTransformOriginPoint(qreal ax, qreal ay);
368    void stackBefore(const QGraphicsItem *sibling);
369    Qt::InputMethodHints inputMethodHints() const;
370    void setInputMethodHints(Qt::InputMethodHints hints);
371
372protected:
373    void updateMicroFocus();
374
375private:
376    QGraphicsItem(const QGraphicsItem &);
377};
378
379QFlags<QGraphicsItem::GraphicsItemFlag> operator|(QGraphicsItem::GraphicsItemFlag f1, QFlags<QGraphicsItem::GraphicsItemFlag> f2);
380
381class QAbstractGraphicsShapeItem : QGraphicsItem
382{
383%TypeHeaderCode
384#include <qgraphicsitem.h>
385%End
386
387public:
388    explicit QAbstractGraphicsShapeItem(QGraphicsItem *parent /TransferThis/ = 0);
389    virtual ~QAbstractGraphicsShapeItem();
390    QPen pen() const;
391    void setPen(const QPen &pen);
392    QBrush brush() const;
393    void setBrush(const QBrush &brush);
394    virtual bool isObscuredBy(const QGraphicsItem *item) const;
395    virtual QPainterPath opaqueArea() const;
396};
397
398class QGraphicsPathItem : QAbstractGraphicsShapeItem
399{
400%TypeHeaderCode
401#include <qgraphicsitem.h>
402%End
403
404public:
405    explicit QGraphicsPathItem(QGraphicsItem *parent /TransferThis/ = 0);
406    QGraphicsPathItem(const QPainterPath &path, QGraphicsItem *parent /TransferThis/ = 0);
407    virtual ~QGraphicsPathItem();
408    QPainterPath path() const;
409    void setPath(const QPainterPath &path);
410    virtual QRectF boundingRect() const;
411    virtual QPainterPath shape() const;
412    virtual bool contains(const QPointF &point) const;
413    virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
414    virtual bool isObscuredBy(const QGraphicsItem *item) const;
415    virtual QPainterPath opaqueArea() const;
416    virtual int type() const;
417};
418
419class QGraphicsRectItem : QAbstractGraphicsShapeItem
420{
421%TypeHeaderCode
422#include <qgraphicsitem.h>
423%End
424
425public:
426    explicit QGraphicsRectItem(QGraphicsItem *parent /TransferThis/ = 0);
427    QGraphicsRectItem(const QRectF &rect, QGraphicsItem *parent /TransferThis/ = 0);
428    QGraphicsRectItem(qreal x, qreal y, qreal w, qreal h, QGraphicsItem *parent /TransferThis/ = 0);
429    virtual ~QGraphicsRectItem();
430    QRectF rect() const;
431    void setRect(const QRectF &rect);
432    void setRect(qreal ax, qreal ay, qreal w, qreal h);
433    virtual QRectF boundingRect() const;
434    virtual QPainterPath shape() const;
435    virtual bool contains(const QPointF &point) const;
436    virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
437    virtual bool isObscuredBy(const QGraphicsItem *item) const;
438    virtual QPainterPath opaqueArea() const;
439    virtual int type() const;
440};
441
442class QGraphicsEllipseItem : QAbstractGraphicsShapeItem
443{
444%TypeHeaderCode
445#include <qgraphicsitem.h>
446%End
447
448public:
449    explicit QGraphicsEllipseItem(QGraphicsItem *parent /TransferThis/ = 0);
450    QGraphicsEllipseItem(const QRectF &rect, QGraphicsItem *parent /TransferThis/ = 0);
451    QGraphicsEllipseItem(qreal x, qreal y, qreal w, qreal h, QGraphicsItem *parent /TransferThis/ = 0);
452    virtual ~QGraphicsEllipseItem();
453    QRectF rect() const;
454    void setRect(const QRectF &rect);
455    void setRect(qreal ax, qreal ay, qreal w, qreal h);
456    int startAngle() const;
457    void setStartAngle(int angle);
458    int spanAngle() const;
459    void setSpanAngle(int angle);
460    virtual QRectF boundingRect() const;
461    virtual QPainterPath shape() const;
462    virtual bool contains(const QPointF &point) const;
463    virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
464    virtual bool isObscuredBy(const QGraphicsItem *item) const;
465    virtual QPainterPath opaqueArea() const;
466    virtual int type() const;
467};
468
469class QGraphicsPolygonItem : QAbstractGraphicsShapeItem
470{
471%TypeHeaderCode
472#include <qgraphicsitem.h>
473%End
474
475public:
476    explicit QGraphicsPolygonItem(QGraphicsItem *parent /TransferThis/ = 0);
477    QGraphicsPolygonItem(const QPolygonF &polygon, QGraphicsItem *parent /TransferThis/ = 0);
478    virtual ~QGraphicsPolygonItem();
479    QPolygonF polygon() const;
480    void setPolygon(const QPolygonF &polygon);
481    Qt::FillRule fillRule() const;
482    void setFillRule(Qt::FillRule rule);
483    virtual QRectF boundingRect() const;
484    virtual QPainterPath shape() const;
485    virtual bool contains(const QPointF &point) const;
486    virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
487    virtual bool isObscuredBy(const QGraphicsItem *item) const;
488    virtual QPainterPath opaqueArea() const;
489    virtual int type() const;
490};
491
492class QGraphicsLineItem : QGraphicsItem
493{
494%TypeHeaderCode
495#include <qgraphicsitem.h>
496%End
497
498public:
499    explicit QGraphicsLineItem(QGraphicsItem *parent /TransferThis/ = 0);
500    QGraphicsLineItem(const QLineF &line, QGraphicsItem *parent /TransferThis/ = 0);
501    QGraphicsLineItem(qreal x1, qreal y1, qreal x2, qreal y2, QGraphicsItem *parent /TransferThis/ = 0);
502    virtual ~QGraphicsLineItem();
503    QPen pen() const;
504    void setPen(const QPen &pen);
505    QLineF line() const;
506    void setLine(const QLineF &line);
507    void setLine(qreal x1, qreal y1, qreal x2, qreal y2);
508    virtual QRectF boundingRect() const;
509    virtual QPainterPath shape() const;
510    virtual bool contains(const QPointF &point) const;
511    virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
512    virtual bool isObscuredBy(const QGraphicsItem *item) const;
513    virtual QPainterPath opaqueArea() const;
514    virtual int type() const;
515};
516
517class QGraphicsPixmapItem : QGraphicsItem
518{
519%TypeHeaderCode
520#include <qgraphicsitem.h>
521%End
522
523public:
524    enum ShapeMode
525    {
526        MaskShape,
527        BoundingRectShape,
528        HeuristicMaskShape,
529    };
530
531    explicit QGraphicsPixmapItem(QGraphicsItem *parent /TransferThis/ = 0);
532    QGraphicsPixmapItem(const QPixmap &pixmap, QGraphicsItem *parent /TransferThis/ = 0);
533    virtual ~QGraphicsPixmapItem();
534    QPixmap pixmap() const;
535    void setPixmap(const QPixmap &pixmap);
536    Qt::TransformationMode transformationMode() const;
537    void setTransformationMode(Qt::TransformationMode mode);
538    QPointF offset() const;
539    void setOffset(const QPointF &offset);
540    void setOffset(qreal ax, qreal ay);
541    virtual QRectF boundingRect() const;
542    virtual QPainterPath shape() const;
543    virtual bool contains(const QPointF &point) const;
544    virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
545    virtual bool isObscuredBy(const QGraphicsItem *item) const;
546    virtual QPainterPath opaqueArea() const;
547    virtual int type() const;
548    QGraphicsPixmapItem::ShapeMode shapeMode() const;
549    void setShapeMode(QGraphicsPixmapItem::ShapeMode mode);
550};
551
552class QGraphicsSimpleTextItem : QAbstractGraphicsShapeItem
553{
554%TypeHeaderCode
555#include <qgraphicsitem.h>
556%End
557
558public:
559    explicit QGraphicsSimpleTextItem(QGraphicsItem *parent /TransferThis/ = 0);
560    QGraphicsSimpleTextItem(const QString &text, QGraphicsItem *parent /TransferThis/ = 0);
561    virtual ~QGraphicsSimpleTextItem();
562    void setText(const QString &text);
563    QString text() const;
564    void setFont(const QFont &font);
565    QFont font() const;
566    virtual QRectF boundingRect() const;
567    virtual QPainterPath shape() const;
568    virtual bool contains(const QPointF &point) const;
569    virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
570    virtual bool isObscuredBy(const QGraphicsItem *item) const;
571    virtual QPainterPath opaqueArea() const;
572    virtual int type() const;
573};
574
575class QGraphicsItemGroup : QGraphicsItem
576{
577%TypeHeaderCode
578#include <qgraphicsitem.h>
579%End
580
581public:
582    explicit QGraphicsItemGroup(QGraphicsItem *parent /TransferThis/ = 0);
583    virtual ~QGraphicsItemGroup();
584    void addToGroup(QGraphicsItem *item /Transfer/);
585    void removeFromGroup(QGraphicsItem *item /GetWrapper/);
586%MethodCode
587        sipCpp->removeFromGroup(a0);
588
589        // The item will be passed to the group's parent if there is one.  If not,
590        // transfer ownership back to Python.
591        if (sipCpp->parentItem())
592            sipTransferTo(a0Wrapper, sipGetPyObject(sipCpp->parentItem(), sipType_QGraphicsItem));
593        else
594            sipTransferBack(a0Wrapper);
595%End
596
597    virtual QRectF boundingRect() const;
598    virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
599    virtual bool isObscuredBy(const QGraphicsItem *item) const;
600    virtual QPainterPath opaqueArea() const;
601    virtual int type() const;
602};
603
604class QGraphicsObject : QObject, QGraphicsItem
605{
606%TypeHeaderCode
607#include <qgraphicsitem.h>
608%End
609
610public:
611    explicit QGraphicsObject(QGraphicsItem *parent /TransferThis/ = 0);
612    virtual ~QGraphicsObject();
613    void grabGesture(Qt::GestureType type, Qt::GestureFlags flags = Qt::GestureFlags());
614    void ungrabGesture(Qt::GestureType type);
615
616signals:
617    void parentChanged();
618    void opacityChanged();
619    void visibleChanged();
620    void enabledChanged();
621    void xChanged();
622    void yChanged();
623    void zChanged();
624    void rotationChanged();
625    void scaleChanged();
626
627protected slots:
628    void updateMicroFocus();
629
630protected:
631    virtual bool event(QEvent *ev);
632};
633
634class QGraphicsTextItem : QGraphicsObject
635{
636%TypeHeaderCode
637#include <qgraphicsitem.h>
638%End
639
640public:
641    explicit QGraphicsTextItem(QGraphicsItem *parent /TransferThis/ = 0);
642    QGraphicsTextItem(const QString &text, QGraphicsItem *parent /TransferThis/ = 0);
643    virtual ~QGraphicsTextItem();
644    QString toHtml() const;
645    void setHtml(const QString &html);
646    QString toPlainText() const;
647    void setPlainText(const QString &text);
648    QFont font() const;
649    void setFont(const QFont &font);
650    void setDefaultTextColor(const QColor &c);
651    QColor defaultTextColor() const;
652    virtual QRectF boundingRect() const;
653    virtual QPainterPath shape() const;
654    virtual bool contains(const QPointF &point) const;
655    virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
656    virtual bool isObscuredBy(const QGraphicsItem *item) const;
657    virtual QPainterPath opaqueArea() const;
658    virtual int type() const;
659    void setTextWidth(qreal width);
660    qreal textWidth() const;
661    void adjustSize();
662    void setDocument(QTextDocument *document /KeepReference/);
663    QTextDocument *document() const;
664    void setTextInteractionFlags(Qt::TextInteractionFlags flags);
665    Qt::TextInteractionFlags textInteractionFlags() const;
666    void setTabChangesFocus(bool b);
667    bool tabChangesFocus() const;
668    void setOpenExternalLinks(bool open);
669    bool openExternalLinks() const;
670    void setTextCursor(const QTextCursor &cursor);
671    QTextCursor textCursor() const;
672
673signals:
674    void linkActivated(const QString &);
675    void linkHovered(const QString &);
676
677protected:
678    virtual bool sceneEvent(QEvent *event);
679    virtual void mousePressEvent(QGraphicsSceneMouseEvent *event);
680    virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
681    virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
682    virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event);
683    virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event);
684    virtual void keyPressEvent(QKeyEvent *event);
685    virtual void keyReleaseEvent(QKeyEvent *event);
686    virtual void focusInEvent(QFocusEvent *event);
687    virtual void focusOutEvent(QFocusEvent *event);
688    virtual void dragEnterEvent(QGraphicsSceneDragDropEvent *event);
689    virtual void dragLeaveEvent(QGraphicsSceneDragDropEvent *event);
690    virtual void dragMoveEvent(QGraphicsSceneDragDropEvent *event);
691    virtual void dropEvent(QGraphicsSceneDragDropEvent *event);
692    virtual void inputMethodEvent(QInputMethodEvent *event);
693    virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event);
694    virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *event);
695    virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event);
696    virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const;
697};
698
699%ModuleCode
700// These are needed by the %ConvertToSubClassCode.
701#include <qgraphicsproxywidget.h>
702#include <qgraphicswidget.h>
703%End
704