TinkerCell Core 1.0
TinkerCell's Core library providing all basic functionalities
GraphicsView.h
Go to the documentation of this file.
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines