4741
|
1 #ifndef WINDOW_HPP
|
|
2 #define WINDOW_HPP
|
|
3
|
|
4 #include <string>
|
|
5
|
|
6 #define WIN32_LEAN_AND_MEAN
|
|
7 #include <Windows.h>
|
|
8
|
|
9 #include "Video_Mode.hpp"
|
|
10 #include "Window_Listener.hpp"
|
|
11 #include "IMM.hpp"
|
|
12
|
|
13 class Window
|
|
14 {
|
|
15 public:
|
|
16 Window();
|
|
17 ~Window();
|
|
18
|
|
19 void Initialize(const std::wstring &Title, const Video_Mode &Mode, bool Fullscreen);
|
|
20 void Finalize();
|
|
21
|
|
22 void Set_Listener(Window_Listener *Listener);
|
|
23
|
|
24 void Show();
|
|
25 void Hide();
|
|
26
|
|
27 void Handle_Events();
|
|
28 void Display();
|
|
29
|
|
30 void Show_Cursor();
|
|
31 void Hide_Cursor();
|
|
32
|
|
33 HWND Get_Handle();
|
|
34
|
|
35 private:
|
|
36 static const wchar_t *Window_Class_Name;
|
|
37
|
|
38 void Register_Class();
|
|
39 void Unregister_Class();
|
|
40
|
|
41 void Create_Window(const std::wstring &Title, const Video_Mode &Mode, bool Fullscreen);
|
|
42 void Destroy_Window();
|
|
43
|
|
44 void Create_Context(const Video_Mode &Mode);
|
|
45 void Destroy_Context();
|
|
46
|
|
47 void Switch_To_Fullscreen(const Video_Mode &Mode);
|
|
48
|
|
49 LRESULT Handle_Message(HWND Handle, UINT Message, WPARAM wParam, LPARAM lParam);
|
|
50 static LRESULT CALLBACK Window_Procedure(HWND Handle, UINT Message, WPARAM wParam, LPARAM lParam);
|
|
51
|
|
52 HWND my_Handle;
|
|
53 Video_Mode my_Video_Mode;
|
|
54 bool my_Fullscreen;
|
|
55 HDC my_Device_Context;
|
|
56 HGLRC my_GL_Context;
|
|
57 bool my_Class_Registered;
|
|
58 Window_Listener *my_Listener;
|
|
59 IMM my_IMM;
|
|
60 };
|
|
61
|
|
62 #endif
|