#include <QtGui/qgraphicsitem.h>
#ifndef QGRAPHICSITEM_H
#if !defined(QT_NO_GRAPHICSVIEW) || (QT_EDITION & QT_MODULE_GRAPHICSVIEW) != QT_MODULE_GRAPHICSVIEW
class QGraphicsItem{
   public: enum GraphicsItemFlag{
      ItemIsMovable = 1,
      ItemIsSelectable = 2,
      ItemIsFocusable = 4,
   };
   public: typedef class QFlags < enum QGraphicsItem::GraphicsItemFlag > GraphicsItemFlags;
   public: enum GraphicsItemChange{
      ItemPositionChange = 0,
      ItemMatrixChange = 1,
      ItemVisibleChange = 2,
      ItemEnabledChange = 3,
      ItemSelectedChange = 4,
      ItemParentChange = 5,
      ItemChildAddedChange = 6,
      ItemChildRemovedChange = 7,
   };
   public: QGraphicsItem(class QGraphicsItem* parent = 0, struct QGraphicsScene* scene = 0);
   public: virtual ~QGraphicsItem();
   public: struct QGraphicsScene* scene() const
   public: class QGraphicsItem* parentItem() const
   public: class QGraphicsItem* topLevelItem() const
   public: void setParentItem(class QGraphicsItem* parent);
   public: class QList < class QGraphicsItem* > children() const
   public: class QGraphicsItemGroup* group() const
   public: void setGroup(class QGraphicsItemGroup* group);
   public: class QFlags < enum QGraphicsItem::GraphicsItemFlag > flags() const
   public: void setFlag(enum QGraphicsItem::GraphicsItemFlag flag, bool enabled = 1);
   public: void setFlags(class QFlags < enum QGraphicsItem::GraphicsItemFlag > flags);
#ifndef QT_NO_TOOLTIP
   public: class QString toolTip() const
   public: void setToolTip(class QString const & toolTip);
#endif
#ifndef QT_NO_CURSOR
   public: struct QCursor cursor() const
   public: void setCursor(struct QCursor const & cursor);
   public: bool hasCursor() const
   public: void unsetCursor();
#endif
   public: bool isVisible() const
   public: void setVisible(bool visible);
   public: inline void hide();
   public: inline void show();
   public: bool isEnabled() const
   public: void setEnabled(bool enabled);
   public: bool isSelected() const
   public: void setSelected(bool selected);
   public: bool acceptDrops() const
   public: void setAcceptDrops(bool on);
   public: Qt::MouseButtons acceptedMouseButtons() const
   public: void setAcceptedMouseButtons(Qt::MouseButtons buttons);
   public: bool acceptsHoverEvents() const
   public: void setAcceptsHoverEvents(bool enabled);
   public: bool handlesChildEvents() const
   public: void setHandlesChildEvents(bool enabled);
   public: bool hasFocus() const
   public: void setFocus(enum Qt::FocusReason focusReason = Qt::OtherFocusReason);
   public: void clearFocus();
   public: class QPointF pos() const
   public: inline qreal x() const
   public: inline qreal y() const
   public: class QPointF scenePos() const
   public: void setPos(class QPointF const & pos);
   public: inline void moveBy(qreal dx, qreal dy);
   public: void ensureVisible(class QRectF const & rect = QRectF::QRectF(), int xmargin = 50, int ymargin = 50);
   public: class QMatrix matrix() const
   public: class QMatrix sceneMatrix() const
   public: void setMatrix(class QMatrix const & matrix, bool combine = 0);
   public: void resetMatrix();
   public: void rotate(qreal angle);
   public: void scale(qreal sx, qreal sy);
   public: void shear(qreal sh, qreal sv);
   public: void translate(qreal dx, qreal dy);
   public: virtual void advance(int phase);
   public: qreal zValue() const
   public: void setZValue(qreal z);
   public: virtual class QRectF boundingRect() const = 0;
   public: class QRectF childrenBoundingRect() const
   public: class QRectF sceneBoundingRect() const
   public: virtual class QPainterPath shape() const
   public: virtual bool contains(class QPointF const & point) const
   public: virtual bool collidesWithItem(class QGraphicsItem const * other, enum Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const
   public: virtual bool collidesWithPath(class QPainterPath const & path, enum Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const
   public: class QList < class QGraphicsItem* > collidingItems(enum Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const
   public: bool isObscured() const
   public: virtual bool isObscuredBy(class QGraphicsItem const * item) const
   public: virtual class QPainterPath opaqueArea() const
   public: virtual void paint(struct QPainter* painter, struct QStyleOptionGraphicsItem const * option, struct QWidget* widget = 0) = 0;
   public: void update(class QRectF const & rect = QRectF::QRectF());
   public: class QPointF mapToItem(class QGraphicsItem const * item, class QPointF const & point) const
   public: class QPointF mapToParent(class QPointF const & point) const
   public: class QPointF mapToScene(class QPointF const & point) const
   public: class QPolygonF mapToItem(class QGraphicsItem const * item, class QRectF const & rect) const
   public: class QPolygonF mapToParent(class QRectF const & rect) const
   public: class QPolygonF mapToScene(class QRectF const & rect) const
   public: class QPolygonF mapToItem(class QGraphicsItem const * item, class QPolygonF const & polygon) const
   public: class QPolygonF mapToParent(class QPolygonF const & polygon) const
   public: class QPolygonF mapToScene(class QPolygonF const & polygon) const
   public: class QPainterPath mapToItem(class QGraphicsItem const * item, class QPainterPath const & path) const
   public: class QPainterPath mapToParent(class QPainterPath const & path) const
   public: class QPainterPath mapToScene(class QPainterPath const & path) const
   public: class QPointF mapFromItem(class QGraphicsItem const * item, class QPointF const & point) const
   public: class QPointF mapFromParent(class QPointF const & point) const
   public: class QPointF mapFromScene(class QPointF const & point) const
   public: class QPolygonF mapFromItem(class QGraphicsItem const * item, class QRectF const & rect) const
   public: class QPolygonF mapFromParent(class QRectF const & rect) const
   public: class QPolygonF mapFromScene(class QRectF const & rect) const
   public: class QPolygonF mapFromItem(class QGraphicsItem const * item, class QPolygonF const & polygon) const
   public: class QPolygonF mapFromParent(class QPolygonF const & polygon) const
   public: class QPolygonF mapFromScene(class QPolygonF const & polygon) const
   public: class QPainterPath mapFromItem(class QGraphicsItem const * item, class QPainterPath const & path) const
   public: class QPainterPath mapFromParent(class QPainterPath const & path) const
   public: class QPainterPath mapFromScene(class QPainterPath const & path) const
   public: bool isAncestorOf(class QGraphicsItem const * child) const
   public: class QVariant data(int key) const
   public: void setData(int key, class QVariant const & value);
   public: enum /*anonymous*/{
      Type = 1,
      UserType = 65536,
   };
   public: virtual int type() const
   public: void installSceneEventFilter(class QGraphicsItem* filterItem);
   public: void removeSceneEventFilter(class QGraphicsItem* filterItem);
   protected: virtual bool sceneEventFilter(class QGraphicsItem* watched, struct QEvent* event);
   protected: virtual bool sceneEvent(struct QEvent* event);
   protected: virtual void contextMenuEvent(struct QGraphicsSceneContextMenuEvent* event);
   protected: virtual void dragEnterEvent(struct QGraphicsSceneDragDropEvent* event);
   protected: virtual void dragLeaveEvent(struct QGraphicsSceneDragDropEvent* event);
   protected: virtual void dragMoveEvent(struct QGraphicsSceneDragDropEvent* event);
   protected: virtual void dropEvent(struct QGraphicsSceneDragDropEvent* event);
   protected: virtual void focusInEvent(struct QFocusEvent* event);
   protected: virtual void focusOutEvent(struct QFocusEvent* event);
   protected: virtual void hoverEnterEvent(struct QGraphicsSceneHoverEvent* event);
   protected: virtual void hoverMoveEvent(struct QGraphicsSceneHoverEvent* event);
   protected: virtual void hoverLeaveEvent(struct QGraphicsSceneHoverEvent* event);
   protected: virtual void keyPressEvent(struct QKeyEvent* event);
   protected: virtual void keyReleaseEvent(struct QKeyEvent* event);
   protected: virtual void mousePressEvent(struct QGraphicsSceneMouseEvent* event);
   protected: virtual void mouseMoveEvent(struct QGraphicsSceneMouseEvent* event);
   protected: virtual void mouseReleaseEvent(struct QGraphicsSceneMouseEvent* event);
   protected: virtual void mouseDoubleClickEvent(struct QGraphicsSceneMouseEvent* event);
   protected: virtual void wheelEvent(struct QGraphicsSceneWheelEvent* event);
   protected: virtual void inputMethodEvent(struct QInputMethodEvent* event);
   protected: virtual class QVariant inputMethodQuery(enum Qt::InputMethodQuery query) const
   protected: virtual class QVariant itemChange(enum QGraphicsItem::GraphicsItemChange change, class QVariant const & value);
   protected: enum Extension{
      UserExtension = -2147483648,
   };
   protected: virtual bool supportsExtension(enum QGraphicsItem::Extension extension) const
   protected: virtual void setExtension(enum QGraphicsItem::Extension extension, class QVariant const & variant);
   protected: virtual class QVariant extension(class QVariant const & variant) const
   protected: QGraphicsItem(struct QGraphicsItemPrivate& dd, class QGraphicsItem* parent, struct QGraphicsScene* scene);
   protected: struct QGraphicsItemPrivate* d_ptr;
   protected: void addToIndex();
   protected: void removeFromIndex();
   protected: void prepareGeometryChange();
   private: QGraphicsItem(QGraphicsItem&);
   private: class QGraphicsItem& operator =(QGraphicsItem&);
   private: inline struct QGraphicsItemPrivate* d_func();
   private: inline struct QGraphicsItemPrivate const * d_func() const
   public: inline void setPos(qreal ax, qreal ay);
   public: inline void ensureVisible(qreal ax, qreal ay, qreal w, qreal h, int xmargin = 50, int ymargin = 50);
   public: inline void update(qreal ax, qreal ay, qreal width, qreal height);
   public: inline class QPointF mapToItem(class QGraphicsItem const * item, qreal ax, qreal ay) const
   public: inline class QPointF mapToParent(qreal ax, qreal ay) const
   public: inline class QPointF mapToScene(qreal ax, qreal ay) const
   public: inline class QPointF mapFromItem(class QGraphicsItem const * item, qreal ax, qreal ay) const
   public: inline class QPointF mapFromParent(qreal ax, qreal ay) const
   public: inline class QPointF mapFromScene(qreal ax, qreal ay) const
   friend struct QGraphicsItemPrivate;
   friend class QGraphicsItemGroup;
   friend struct QGraphicsScene;
   friend struct QGraphicsScenePrivate;
   friend struct QGraphicsSceneFindItemBspTreeVisitor;
   friend struct QGraphicsView;
   friend bool qt_closestLeaf(class QGraphicsItem const *, class QGraphicsItem const *);
   friend bool qt_closestItemFirst(class QGraphicsItem const *, class QGraphicsItem const *);
};
#endif
#endif // QT_NO_GRAPHICSVIEW