MCPcopy Create free account
hub / github.com/The-Powder-Toy/The-Powder-Toy / EventProcess

Function EventProcess

src/PowderToySDL.cpp:301–421  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

299}
300
301static void EventProcess(const SDL_Event &event)
302{
303 auto &engine = ui::Engine::Ref();
304 switch (event.type)
305 {
306 case SDL_QUIT:
307 if (ALLOW_QUIT && (engine.GetFastQuit() || engine.CloseWindow()))
308 {
309 engine.Exit();
310 }
311 break;
312 case SDL_KEYDOWN:
313 if (SDL_GetModState() & KMOD_GUI)
314 {
315 break;
316 }
317 if (engine.GetGlobalQuit() && ALLOW_QUIT && !event.key.repeat && event.key.keysym.sym == 'q' && (event.key.keysym.mod&KMOD_CTRL) && !(event.key.keysym.mod&KMOD_ALT))
318 engine.ConfirmExit();
319 else
320 engine.onKeyPress(event.key.keysym.sym, event.key.keysym.scancode, event.key.repeat, event.key.keysym.mod&KMOD_SHIFT, event.key.keysym.mod&KMOD_CTRL, event.key.keysym.mod&KMOD_ALT);
321 break;
322 case SDL_KEYUP:
323 if (SDL_GetModState() & KMOD_GUI)
324 {
325 break;
326 }
327 engine.onKeyRelease(event.key.keysym.sym, event.key.keysym.scancode, event.key.repeat, event.key.keysym.mod&KMOD_SHIFT, event.key.keysym.mod&KMOD_CTRL, event.key.keysym.mod&KMOD_ALT);
328 break;
329 case SDL_TEXTINPUT:
330 if (SDL_GetModState() & KMOD_GUI)
331 {
332 break;
333 }
334 engine.onTextInput(ByteString(event.text.text).FromUtf8());
335 break;
336 case SDL_TEXTEDITING:
337 if (SDL_GetModState() & KMOD_GUI)
338 {
339 break;
340 }
341 engine.onTextEditing(ByteString(event.edit.text).FromUtf8(), event.edit.start);
342 break;
343 case SDL_MOUSEWHEEL:
344 {
345 // int x = event.wheel.x;
346 int y = event.wheel.y;
347 if (event.wheel.direction == SDL_MOUSEWHEEL_FLIPPED)
348 {
349 // x *= -1;
350 y *= -1;
351 }
352
353 engine.onMouseWheel(mousex, mousey, y); // TODO: pass x?
354 break;
355 }
356 case SDL_MOUSEMOTION:
357 mousex = event.motion.x;
358 mousey = event.motion.y;

Callers 1

EngineProcessFunction · 0.85

Calls 15

CalculateMousePositionFunction · 0.85
UpdateRefreshRateFunction · 0.85
CloseWindowMethod · 0.80
ConfirmExitMethod · 0.80
onTextInputMethod · 0.80
FromUtf8Method · 0.80
onTextEditingMethod · 0.80
onFileDropMethod · 0.80
initialMouseMethod · 0.80
ByteStringClass · 0.70
GetFastQuitMethod · 0.45
ExitMethod · 0.45

Tested by

no test coverage detected