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