00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef _SOQTRENDERAREA_H_
00015 #define _SOQTRENDERAREA_H_
00016
00017 #include <qglobal.h>
00018
00019 #if QT_VERSION >= 0x040000
00020 # include <QGLWidget>
00021 # include <QTimer>
00022 # include <QDateTime>
00023 #else
00024 # include <qgl.h>
00025 # include <qtimer.h>
00026 # include <qdatetime.h>
00027 #endif
00028
00029 #include <SoViewer/SoRenderArea.h>
00030
00031 class SOVIEWER_API SoQtRenderArea : public QGLWidget, public SoRenderArea
00032 {
00033 Q_OBJECT
00034
00035 public:
00036 SoQtRenderArea(QWidget *parent=0);
00037 virtual ~SoQtRenderArea();
00038
00039
00040 virtual void setBackgroundColor(const SbColor & a_color){ SoRenderArea::setBackgroundColor(a_color); }
00041 protected:
00042 virtual void soRenderCallback();
00043
00044 virtual void initializeGL();
00045 virtual void resizeGL( int width, int height );
00046 virtual void paintGL();
00047 virtual void timerEvent( QTimerEvent * e );
00048 virtual void keyPressEvent( QKeyEvent * e );
00049 virtual void keyReleaseEvent( QKeyEvent * e );
00050 virtual void mouseMoveEvent( QMouseEvent * e );
00051 virtual void mousePressEvent( QMouseEvent * e );
00052 virtual void mouseReleaseEvent( QMouseEvent * e );
00053 virtual void wheelEvent( QWheelEvent * e );
00054 private:
00055 static unsigned int m_cache_context;
00056
00057 QTime m_time;
00058
00059 SoKeyboardEvent::Key translateKey( QKeyEvent * e );
00060 };
00061
00062 #endif // _SOQTRENDERAREA_H_