00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef _QGLSIGNALWIDGET_H_
00028 #define _QGLSIGNALWIDGET_H_
00029
00030
00031
00033
00034 #include <qevent.h>
00035 #include <qdragobject.h>
00036
00037
00038
00040
00041
00042
00044
00045
00046
00047
00058 class QGLSignalWidget: public QGLWidget {
00059 Q_OBJECT
00060
00061 public:
00062
00064 QGLSignalWidget(QWidget * parent=0, const char * name=0,
00065 const QGLWidget * shareWidget = 0, WFlags f=0)
00066 : QGLWidget(parent, name, shareWidget, f)
00067 {
00068
00069 setAcceptDrops(true);
00070 };
00071
00073 QGLSignalWidget(const QGLFormat & format, QWidget * parent=0,
00074 const char * name=0, const QGLWidget * shareWidget = 0,
00075 WFlags f=0)
00076 : QGLWidget(format, parent, name, shareWidget, f)
00077 {
00078
00079 setAcceptDrops(true);
00080 };
00081
00082
00083 signals:
00084
00087 void sigInitGL();
00088
00090 void sigRedrawGL();
00091
00094 void sigResizeGL(int nWidth, int nHeight);
00095
00098 void sigMouseRelease(QMouseEvent *pqEvent);
00099
00102 void sigMousePress(QMouseEvent *pqEvent);
00103
00106 void sigMouseMove(QMouseEvent *pqEvent);
00107
00108 void sigDragEnter(QDragEnterEvent *pqEvent);
00109 void sigDragLeave(QDragLeaveEvent *pqEvent);
00110 void sigDrop(QDropEvent *pqEvent);
00111
00112 protected:
00113
00115 virtual void initializeGL() {
00116 emit( sigInitGL() );
00117 };
00118
00120 virtual void paintGL() {
00121 emit( sigRedrawGL() );
00122 };
00123
00125 virtual void resizeGL(int nWidth, int nHeight) {
00126 emit( sigResizeGL(nWidth, nHeight) );
00127 };
00128
00130 virtual void mouseReleaseEvent (QMouseEvent *event) {
00131 emit(sigMouseRelease(event));
00132 };
00133
00135 virtual void mousePressEvent (QMouseEvent *event) {
00136 emit(sigMousePress(event));
00137 };
00138
00140 virtual void mouseMoveEvent (QMouseEvent *event) {
00141 emit(sigMouseMove(event));
00142 };
00143
00145 void dragEnterEvent(QDragEnterEvent *qEvent) {
00146 emit(sigDragEnter(qEvent));
00147 };
00148
00150 void dragLeaveEvent(QDragLeaveEvent *qEvent) {
00151 emit(sigDragLeave(qEvent));
00152 };
00153
00155 void dropEvent(QDropEvent *qEvent) {
00156 emit(sigDrop(qEvent));
00157 };
00158 };
00159
00160 #endif // __QGLSIGNALWIDGET_H_