00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef _QTGRAPH_H_
00024 #define _QTGRAPH_H_
00025 #include <qwidget.h>
00026 #include <qlabel.h>
00027 #include <qpainter.h>
00028 #include <q3picture.h>
00029 #include <qpixmap.h>
00030
00031 #include <QMouseEvent>
00032 #include <QPaintEvent>
00033 #include "graph.h"
00034
00035
00036
00037 class QtGraphics : public QWidget, public Graphics {
00038
00039 Q_OBJECT
00040
00041 public:
00042 QtGraphics(int xfield, int yfield, const char *movie_file=0);
00043 QtGraphics(QWidget *parent, const char *name, int xfield, int yfield, const char *movie_file=0) : QWidget(parent, name) {
00044 QtGraphics(xfield, yfield, movie_file);
00045 }
00046
00047 virtual ~QtGraphics(void);
00048 virtual void BeginScene(void);
00049 virtual void EndScene(void);
00050
00051
00052
00053 virtual void Point( int colour, int i, int j);
00054 virtual void Line ( int x1, int y1,int x2,int y2,int colour );
00055
00056
00057
00058 virtual int GetXYCoo(int *X,int *Y);
00059
00060
00061
00062
00063 virtual int XField(void) const {return width();}
00064 virtual int YField(void) const {return height();}
00065
00066 virtual void Write(char *fname, int quality=-1);
00067 inline void ClearImage(void) {
00068
00069 pixmap->fill();
00070 }
00071
00072 virtual void TimeStep(void);
00073
00074 public slots:
00075 void TimeStepWrap(void);
00076
00077 signals:
00078 void SimulationDone(void);
00079
00080 private:
00081 void paintEvent( QPaintEvent* );
00082 void mousePressEvent( QMouseEvent *e);
00083 void mouseReleaseEvent( QMouseEvent *e);
00084 QPainter *paint;
00085 QPainter *paint2;
00086 QLabel *label;
00087 Q3Picture pic;
00088 QPen *pens;
00089 QTimer *timer;
00090 QPixmap *pixmap;
00091 QLabel *image;
00092
00093 int mouse_x;
00094 int mouse_y;
00095 Qt::ButtonState mouse_button;
00096
00097
00098 void ReadColorTable(QPen *pens);
00099 QTimer *t;
00100
00101
00102
00103 };
00104
00105 #include <qapplication.h>
00106
00107
00108 #define TIMESTEP void QtGraphics::TimeStep(void)
00109 #endif