#ifndef QGRAPHICSSCENE_H
#define QGRAPHICSSCENE_H 
#include <QtCore/qobject.h>
#include <QtCore/qpoint.h>
#include <QtCore/qrect.h>
#include <QtGui/qbrush.h>
#include <QtGui/qfont.h>
#include <QtGui/qmatrix.h>
#include <QtGui/qpen.h>
typedef enum QtValidLicenseForGuiModule QtGuiModule;
#if !defined(QT_NO_GRAPHICSVIEW) || (QT_EDITION & QT_MODULE_GRAPHICSVIEW) != QT_MODULE_GRAPHICSVIEW
struct QFocusEvent;
struct QKeyEvent;
struct QGraphicsItem;
struct QGraphicsItemGroup;
struct QGraphicsEllipseItem;
struct QGraphicsLineItem;
struct QGraphicsPathItem;
struct QGraphicsPixmapItem;
struct QGraphicsPolygonItem;
struct QGraphicsRectItem;
struct QGraphicsSceneContextMenuEvent;
struct QGraphicsSceneDragDropEvent;
struct QGraphicsSceneEvent;
struct QGraphicsSceneHelpEvent;
struct QGraphicsSceneHoverEvent;
struct QGraphicsSceneMouseEvent;
struct QGraphicsSceneWheelEvent;
struct QGraphicsTextItem;
struct QHelpEvent;
struct QStyleOptionGraphicsItem;
struct QInputMethodEvent;
struct QGraphicsView;
struct QGraphicsScenePrivate;
class QGraphicsScene: public QObject{
   public: virtual struct QMetaObject const * metaObject() const
   public: static struct QMetaObject const staticMetaObject;
   public: virtual void* qt_metacast(char const *);
   public: static inline class QString tr(char const * s, char const * c = 0);
   public: static inline class QString trUtf8(char const * s, char const * c = 0);
   public: static inline class QString tr(char const * s, char const * c, int n);
   public: static inline class QString trUtf8(char const * s, char const * c, int n);
   public: virtual int qt_metacall(enum QMetaObject::Call, int, void* *);
   public: enum ItemIndexMethod{
      BspTreeIndex = 0,
      NoIndex = -1,
   };
   public: QGraphicsScene(class QObject* parent = 0);
   public: QGraphicsScene(class QRectF const & sceneRect, class QObject* parent = 0);
   public: QGraphicsScene(qreal x, qreal y, qreal width, qreal height, class QObject* parent = 0);
   public: virtual ~QGraphicsScene();
   public: class QRectF sceneRect() const
   public: inline qreal width() const
   public: inline qreal height() const
   public: void setSceneRect(class QRectF const & rect);
   public: inline void setSceneRect(qreal x, qreal y, qreal w, qreal h);
   public: void render(struct QPainter* painter, class QRectF const & target = QRectF::QRectF(), class QRectF const & source = QRectF::QRectF(), enum Qt::AspectRatioMode aspectRatioMode = Qt::KeepAspectRatio);
   public: enum QGraphicsScene::ItemIndexMethod itemIndexMethod() const
   public: void setItemIndexMethod(enum QGraphicsScene::ItemIndexMethod method);
   public: class QRectF itemsBoundingRect() const
   public: class QList < struct QGraphicsItem* > items() const
   public: class QList < struct QGraphicsItem* > items(class QPointF const & pos) const
   public: class QList < struct QGraphicsItem* > items(class QRectF const & rect, enum Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const
   public: class QList < struct QGraphicsItem* > items(class QPolygonF const & polygon, enum Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const
   public: class QList < struct QGraphicsItem* > items(struct QPainterPath const & path, enum Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const
   public: class QList < struct QGraphicsItem* > collidingItems(struct QGraphicsItem const * item, enum Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const
   public: struct QGraphicsItem* itemAt(class QPointF const & pos) const
   public: inline struct QGraphicsItem* itemAt(qreal x, qreal y) const
   public: class QList < struct QGraphicsItem* > selectedItems() const
   public: void setSelectionArea(struct QPainterPath const & path);
   public: void clearSelection();
   public: struct QGraphicsItemGroup* createItemGroup(class QList < struct QGraphicsItem* > const & items);
   public: void destroyItemGroup(struct QGraphicsItemGroup* group);
   public: void addItem(struct QGraphicsItem* item);
   public: struct QGraphicsEllipseItem* addEllipse(class QRectF const & rect, class QPen const & pen = QPen::QPen(), class QBrush const & brush = QBrush::QBrush());
   public: struct QGraphicsLineItem* addLine(class QLineF const & line, class QPen const & pen = QPen::QPen());
   public: struct QGraphicsPathItem* addPath(struct QPainterPath const & path, class QPen const & pen = QPen::QPen(), class QBrush const & brush = QBrush::QBrush());
   public: struct QGraphicsPixmapItem* addPixmap(class QPixmap const & pixmap);
   public: struct QGraphicsPolygonItem* addPolygon(class QPolygonF const & polygon, class QPen const & pen = QPen::QPen(), class QBrush const & brush = QBrush::QBrush());
   public: struct QGraphicsRectItem* addRect(class QRectF const & rect, class QPen const & pen = QPen::QPen(), class QBrush const & brush = QBrush::QBrush());
   public: struct QGraphicsTextItem* addText(class QString const & text, class QFont const & font = QFont::QFont());
   public: void removeItem(struct QGraphicsItem* item);
   public: struct QGraphicsItem* focusItem() const
   public: void setFocusItem(struct QGraphicsItem* item, enum Qt::FocusReason focusReason = Qt::OtherFocusReason);
   public: bool hasFocus() const
   public: void setFocus(enum Qt::FocusReason focusReason = Qt::OtherFocusReason);
   public: void clearFocus();
   public: struct QGraphicsItem* mouseGrabberItem() const
   public: class QBrush backgroundBrush() const
   public: void setBackgroundBrush(class QBrush const & brush);
   public: class QBrush foregroundBrush() const
   public: void setForegroundBrush(class QBrush const & brush);
   public: virtual struct QVariant inputMethodQuery(enum Qt::InputMethodQuery query) const
   public: class QList < struct QGraphicsView* > views() const
   public: void update(class QRectF const & rect = QRectF::QRectF());
   public: void advance();
   protected: virtual bool event(struct QEvent* event);
   protected: virtual void contextMenuEvent(struct QGraphicsSceneContextMenuEvent* event);
   protected: virtual void dragEnterEvent(struct QGraphicsSceneDragDropEvent* event);
   protected: virtual void dragMoveEvent(struct QGraphicsSceneDragDropEvent* event);
   protected: virtual void dragLeaveEvent(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 helpEvent(struct QGraphicsSceneHelpEvent* 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 void drawBackground(struct QPainter* painter, class QRectF const & rect);
   protected: virtual void drawForeground(struct QPainter* painter, class QRectF const & rect);
   protected: virtual void drawItems(struct QPainter* painter, int numItems, struct QGraphicsItem* * items, struct QStyleOptionGraphicsItem const * options, struct QWidget* widget = 0);
   protected: void changed(class QList < class QRectF > const & region);
   protected: void sceneRectChanged(class QRectF const & rect);
   private: void itemUpdated(struct QGraphicsItem* item, class QRectF const & rect);
   private: inline struct QGraphicsScenePrivate* d_func();
   private: inline struct QGraphicsScenePrivate const * d_func() const
   friend struct QGraphicsScenePrivate;
   friend struct QGraphicsItem;
   friend struct QGraphicsView;
   friend struct QGraphicsViewPrivate;
};
struct QGraphicsViewPrivate;
#endif // QT_NO_GRAPHICSVIEW
#endif