00001 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030 
00031 
00032 
00033 
00034 
00035 
00040 #include "Generals.h"
00041 #include "CToxiTea.h"
00042 #include "CToxiRenderer.h"
00043 #include "CToxiGLRenderer.h"
00044 #include "CToxiD3DRenderer.h"
00045 
00046 #ifndef _CTOXIWINDOW_CLASS_
00047 #define _CTOXIWINDOW_CLASS_
00048 
00049 
00050 class TOXITEADLL_API CToxiWindow {
00051 public:
00052 
00054         CToxiRenderer *renderer;
00055         
00057         CToxiConfig windowConfig;
00058 
00060         CToxiWindow(CToxiConfig c,CToxiRenderer *renderer);
00061 
00063         CToxiWindow(char *title,int width,int height,
00064                 int bits,bool fullscreen,
00065                 bool autoStart,CToxiRenderer *renderer);
00066 
00068         CToxiWindow();
00069         
00071         ~CToxiWindow();
00072 
00074         bool setRenderer(CToxiConfig c,CToxiRenderer *renderer);
00075 
00077         void startRenderer();
00078         bool startWindow(CToxiConfig c,CToxiRenderer *renderer);
00079         bool setContext();
00080 
00082         static LRESULT CALLBACK WndProc(HWND hWnd, 
00083                                                                         UINT uMsg,
00084                                                                         WPARAM wParam,
00085                                                                         LPARAM lParam);
00086 private:
00087         
00089         int rendererType;
00090 
00092         bool _keys[256];
00093         
00094         static MSG msg;         
00095 
00097         char _wnd_toxi_class[22];
00098 
00100         void genClassName();
00101 
00103         static void changeDisplaySize(int width,int height,HWND hWnd);
00104 
00106         bool startMainLoop();
00107 
00109         bool createWindow();
00110 
00112         void killWindow();
00113         
00115         virtual void onKeyPress(int key);
00117         virtual void onMouseDown(int button,v2i *c);
00118         virtual void onMouseUp(int button,v2i *c);
00119         virtual void onMouseDown(v2i *c);
00120         virtual void onMouseUp(v2i *c);
00121         virtual void onMouseMove(v2i *c);
00122         virtual void onMouseDblClick(int button,v2i *c);
00123 
00124 };
00125 
00126 #endif