00001 00007 #ifndef VISU2D_H 00008 #define VISU2D_H 00009 00010 #include <QtGui/qwidget.h> 00011 00012 #include "defs.h" 00013 00014 class Palette; 00015 class QMatrix; 00016 class QImage; 00017 class Selection; 00018 class Image; 00019 class Shape; 00020 00026 class Visu2D : public QWidget 00027 { 00028 Q_OBJECT 00029 00030 public: 00035 Visu2D(QWidget *parent=0); 00036 00039 ~Visu2D(); 00040 00041 private: 00042 00044 Image *m_pImage; 00045 00047 QPixmap m_pxScaled; 00048 00050 int m_visuScaleFactor; 00051 00053 Selection* m_selection; 00054 00056 Shape* m_tmpShape; 00057 00059 SHAPE_TYPE m_shapeType; 00060 00061 signals: 00062 00066 void UpdateInfoBar(const QString&); 00067 00073 void UpdateStats(Selection*); 00074 00075 public slots: 00076 00078 void SaveSelection(); 00079 00081 void ReadSelection(); 00082 00083 public: 00084 00086 void SetShapeType(SHAPE_TYPE type); 00087 00089 void UpdateDataAndPixmap(Image* pIm, Palette* pal); 00090 00091 private: 00092 00094 void paintEvent(QPaintEvent *p); 00095 00097 void mouseMoveEvent(QMouseEvent *e); 00098 00100 void mousePressEvent(QMouseEvent *e); 00101 00103 void mouseReleaseEvent(QMouseEvent *e); 00104 00109 void DrawShapes(QPainter *p); 00110 00117 void HandleMouse(int type, QMouseEvent *e); 00118 00124 void GenerateShape(int type, int x, int y); 00125 00130 void SetTextInfo(int x, int y); 00131 }; 00132 00133 #endif // VISU2D_H