00001
00016 #ifndef __QT_PROGRAMWINDOW_H_INCLUDED__
00017 #define __QT_PROGRAMWINDOW_H_INCLUDED__
00018
00019 #include <QtGui/QMainWindow>
00020 #include <QtGui/QTabWidget>
00021 #include <QtGui/QTextEdit>
00022
00023
00024
00025 class IShader;
00026 class IScene;
00027 class CLightWidget;
00028 class CMaterialWidget;
00029 class CUniformWidget;
00030 class CSceneWidget;
00031 class CTextureWidget;
00032 class CGLWidget;
00033 class CEditor;
00034
00035
00036
00037
00038
00039
00044 class CProgramWindow : public QMainWindow
00045 {
00046 Q_OBJECT
00047 public:
00048 CProgramWindow( void );
00049 virtual ~CProgramWindow( void );
00050
00055 bool init( void );
00056
00059 void shutdown( void );
00060
00061 private slots:;
00062 void render( void );
00063 void linkProgram( void );
00064 void deactivateProgram( void );
00065 void aboutToQuit( void );
00066
00067 private:
00068
00069
00070 void closeEvent( QCloseEvent* event );
00071
00072
00073 void createGlWidget( void );
00074 void createLogWidget( void );
00075 void createLightWidget( void );
00076 void createUniformWidget( void );
00077 void createSceneWidget( void );
00078 void createTextureWidget( void );
00079 void createLayout( void );
00080 void createDriverInfoWidget( void );
00081
00082
00083 CGLWidget* m_glWidget;
00084 QTabWidget* m_tabs;
00085 CLightWidget* m_lighting;
00086 CMaterialWidget* m_material;
00087 CUniformWidget* m_uniform;
00088 CSceneWidget* m_sceneWidget;
00089 CTextureWidget* m_texture;
00090 QTextEdit* m_logging;
00091 QTextEdit* m_driverInfoWidget;
00092
00093
00094 CEditor* m_editor;
00095 IScene* m_scene;
00096 };
00097
00098
00099 #endif // __QT_PROGRAMWINDOW_H_INCLUDED__
00100