@@ -5,8 +5,8 @@ namespace chesspp
5
5
{
6
6
Application::Application ()
7
7
: display(sf::VideoMode(640 , 640 ), " ChessPlusPlus" ),
8
- running (true ),
9
- state(new AppStateGame(this ))
8
+ running (true ),
9
+ state(new AppStateGame(this ))
10
10
{
11
11
}
12
12
@@ -15,27 +15,163 @@ namespace chesspp
15
15
sf::Event Event;
16
16
while (running)
17
17
{
18
- while (display.pollEvent (Event)){
19
- state->OnEvent (Event);
20
-
21
- switch (Event.type ){
22
- case sf::Event::Closed:
23
- running = false ;
24
- break ;
25
- default :
26
- break ;
27
- }
28
- }
18
+ while (display.pollEvent (Event))
19
+ OnEvent (&Event);
29
20
30
21
state->OnRender (display);
31
- display.display ();
22
+ display.display ();
32
23
}
33
-
24
+
34
25
return 0 ;
35
26
}
36
27
37
28
Application::~Application ()
38
29
{
39
- delete state; // Even if it's null, no matter.
30
+ delete state; // Even if it's null, no matter.
40
31
}
32
+
33
+ void Application::OnEvent (sf::Event *Event)
34
+ {
35
+ switch (Event->type )
36
+ {
37
+ case sf::Event::Closed:
38
+ {
39
+ state->OnClosed ();
40
+ running = false ;
41
+ break ;
42
+ }
43
+ case sf::Event::Resized:
44
+ {
45
+ state->OnResized (Event->size .width , Event->size .height );
46
+ break ;
47
+ }
48
+ case sf::Event::LostFocus:
49
+ {
50
+ state->OnLostFocus ();
51
+ break ;
52
+ }
53
+ case sf::Event::GainedFocus:
54
+ {
55
+ state->OnGainedFocus ();
56
+ break ;
57
+ }
58
+ case sf::Event::TextEntered:
59
+ {
60
+ state->OnTextEntered (Event->text .unicode );
61
+ break ;
62
+ }
63
+ case sf::Event::KeyPressed:
64
+ {
65
+ state->OnKeyPressed (Event->key .code , Event->key .alt , Event->key .control , Event->key .shift , Event->key .system );
66
+ break ;
67
+ }
68
+ case sf::Event::KeyReleased:
69
+ {
70
+ state->OnKeyReleased (Event->key .code , Event->key .alt , Event->key .control , Event->key .shift , Event->key .system );
71
+ break ;
72
+ }
73
+ case sf::Event::MouseWheelMoved:
74
+ {
75
+ state->OnMouseWheelMoved (Event->mouseWheel .delta , Event->mouseWheel .x , Event->mouseWheel .y );
76
+ break ;
77
+ }
78
+ case sf::Event::MouseButtonPressed:
79
+ {
80
+ switch (Event->mouseButton .button )
81
+ {
82
+ case sf::Mouse::Left:
83
+ {
84
+ state->OnLButtonPressed (Event->mouseButton .x , Event->mouseButton .y );
85
+ break ;
86
+ }
87
+ case sf::Mouse::Right:
88
+ {
89
+ state->OnRButtonPressed (Event->mouseButton .x , Event->mouseButton .y );
90
+ break ;
91
+ }
92
+ case sf::Mouse::Middle:
93
+ {
94
+ state->OnMButtonPressed (Event->mouseButton .x , Event->mouseButton .y );
95
+ break ;
96
+ }
97
+ default :
98
+ {
99
+ state->OnMouseButtonPressed (Event->mouseButton .button , Event->mouseButton .x , Event->mouseButton .y );
100
+ break ;
101
+ }
102
+ }
103
+ break ;
104
+ }
105
+ case sf::Event::MouseButtonReleased:
106
+ {
107
+ switch (Event->mouseButton .button )
108
+ {
109
+ case sf::Mouse::Left:
110
+ {
111
+ state->OnLButtonReleased (Event->mouseButton .x , Event->mouseButton .y );
112
+ break ;
113
+ }
114
+ case sf::Mouse::Right:
115
+ {
116
+ state->OnRButtonReleased (Event->mouseButton .x , Event->mouseButton .y );
117
+ break ;
118
+ }
119
+ case sf::Mouse::Middle:
120
+ {
121
+ state->OnMButtonReleased (Event->mouseButton .x , Event->mouseButton .y );
122
+ break ;
123
+ }
124
+ default :
125
+ {
126
+ state->OnMouseButtonPressed (Event->mouseButton .button , Event->mouseButton .x , Event->mouseButton .y );
127
+ break ;
128
+ }
129
+ }
130
+ break ;
131
+ }
132
+ case sf::Event::MouseMoved:
133
+ {
134
+ state->OnMouseMoved (Event->mouseMove .x , Event->mouseMove .y );
135
+ break ;
136
+ }
137
+ case sf::Event::MouseEntered:
138
+ {
139
+ state->OnMouseEnteredWindow ();
140
+ break ;
141
+ }
142
+ case sf::Event::MouseLeft:
143
+ {
144
+ state->OnMouseLeftWindow ();
145
+ break ;
146
+ }
147
+ case sf::Event::JoystickButtonPressed:
148
+ {
149
+ state->OnJoystickButtonPressed (Event->joystickButton .joystickId , Event->joystickButton .button );
150
+ break ;
151
+ }
152
+ case sf::Event::JoystickButtonReleased:
153
+ {
154
+ state->OnJoystickButtonReleased (Event->joystickButton .joystickId , Event->joystickButton .button );
155
+ break ;
156
+ }
157
+ case sf::Event::JoystickMoved:
158
+ {
159
+ state->OnJoystickMoved (Event->joystickMove .joystickId , Event->joystickMove .axis , Event->joystickMove .position );
160
+ break ;
161
+ }
162
+ case sf::Event::JoystickConnected:
163
+ {
164
+ state->OnJoystickConnected (Event->joystickConnect .joystickId );
165
+ break ;
166
+ }
167
+ case sf::Event::JoystickDisconnected:
168
+ {
169
+ state->OnJoystickDisconnected (Event->joystickConnect .joystickId );
170
+ break ;
171
+ }
172
+ default :
173
+ break ;
174
+ }
175
+ }
176
+
41
177
}
0 commit comments