00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 00016 00017 00018 00019 00020 00025 #ifndef _WINDOW_H_ 00026 #define _WINDOW_H_ 00027 00028 #include <string> 00029 #include <vector> 00030 #include "MenuEntry.h" 00031 00032 namespace GlutWrapper 00033 { 00034 00035 class IRunner; 00036 class IMouseListener; 00037 class IKeyboardListener; 00038 class IMenuListener; 00039 00040 class Window 00041 { 00042 public: 00058 Window(int argc, char** argv, int positionX, int positionY, 00059 int width, int height, const std::string& windowName, 00060 IRunner* runner, const std::vector<MenuEntry>& menuEntries, 00061 IMenuListener* menuListener, bool idleRunning); 00062 00064 ~Window(void); 00065 00066 private: 00068 static IRunner* m_runner; 00069 00071 static IMenuListener* m_menuListener; 00072 00074 Window(const Window&); 00075 00077 Window& operator=(const Window&); 00078 00090 void InitializeGlut(int argc, char** argv, int positionX, int positionY, 00091 int width, int height, const std::string& windowName, 00092 IRunner* runner, const std::vector<MenuEntry>& menuEntries, 00093 IMenuListener* menuListener, bool idleRunning); 00094 00096 static void DisplayFunc(void); 00097 00101 static void ReshapeFunc(int width, int height); 00102 00105 static void ProcessMenuEvents(int option); 00106 }; 00107 00108 } 00109 00110 #endif