![]() |
TinkerCell Core 1.0
TinkerCell's Core library providing all basic functionalities
|
00001 /**************************************************************************** 00002 00003 Copyright (c) 2008 Deepak Chandran 00004 Contact: Deepak Chandran (dchandran1@gmail.com) 00005 See COPYRIGHT.TXT 00006 00007 This file defines the GraphicsView class that is used to view the contents 00008 of a GraphicsScene. The class inherits from QGraphicsView. 00009 00010 ****************************************************************************/ 00011 00012 #ifndef TINKERCELL_GRAPHICSVIEW_H 00013 #define TINKERCELL_GRAPHICSVIEW_H 00014 00015 #include <stdlib.h> 00016 #include <QtGui> 00017 #include <QString> 00018 #include <QPair> 00019 #include <QFileDialog> 00020 #include <QtDebug> 00021 #include <QGraphicsItem> 00022 #include <QGraphicsItemGroup> 00023 #include <QGraphicsScene> 00024 #include <QGraphicsView> 00025 #include <QAction> 00026 #include <QPixmap> 00027 #include <QMenu> 00028 #include <QFile> 00029 #include <QHBoxLayout> 00030 #include <QMainWindow> 00031 #include <QHash> 00032 #include <QUndoCommand> 00033 #include <QGraphicsItemAnimation> 00034 #include <QPrinter> 00035 00036 #include "DataTable.h" 00037 #include "HistoryWindow.h" 00038 #include "SymbolsTable.h" 00039 #include "CloneItems.h" 00040 00041 namespace Tinkercell 00042 { 00043 class SetGraphicsViewVisibilityCommand; 00044 00045 class NodeGraphicsItem; 00046 class ConnectionGraphicsItem; 00047 class ItemHandle; 00048 class ItemData; 00049 class NetworkWindow; 00050 class GraphicsScene; 00051 00056 class TINKERCELLCOREEXPORT GraphicsView : public QGraphicsView 00057 { 00058 Q_OBJECT 00059 00060 public: 00061 static qreal DEFAULT_ZOOM; 00062 00063 private: 00065 QPixmap background; 00067 QPixmap foreground; 00069 GraphicsScene * scene; 00071 virtual QSize sizeHint() const; 00076 GraphicsView(NetworkWindow * networkWindow = 0); 00077 00078 signals: 00080 void itemsDropped(GraphicsScene*, const QString&, QPointF); 00081 protected: 00083 virtual void drawBackground( QPainter * painter, const QRectF & rect ); 00085 virtual void drawForeground( QPainter * painter, const QRectF & rect ); 00087 virtual void dropEvent(QDropEvent *); 00089 virtual void dragEnterEvent(QDragEnterEvent *event); 00091 virtual void dragMoveEvent(QDragMoveEvent *event); 00093 virtual void wheelEvent(QWheelEvent * event); 00095 virtual void scrollContentsBy ( int dx, int dy ); 00097 virtual void mousePressEvent ( QMouseEvent * event ); 00099 virtual void keyPressEvent ( QKeyEvent * event ); 00101 virtual void mouseMoveEvent ( QMouseEvent * event ); 00102 00103 friend class GraphicsScene; 00104 friend class NetworkWindow; 00105 friend class NetworkHandle; 00106 friend class MainWindow; 00107 }; 00108 } 00109 00110 #endif