MCPcopy Create free account
hub / github.com/FlaxEngine/FlaxEngine / HandleEvent

Method HandleEvent

Source/Engine/Platform/SDL/SDLWindow.cpp:420–579  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

418}
419
420void SDLWindow::HandleEvent(SDL_Event& event)
421{
422 if (_isClosing)
423 return;
424
425 // Platform specific event handling
426 if (HandleEventInternal(event))
427 return;
428
429 switch (event.type)
430 {
431 case SDL_EVENT_WINDOW_CLOSE_REQUESTED:
432 {
433 Close(ClosingReason::User);
434 return;
435 }
436 case SDL_EVENT_WINDOW_DESTROYED:
437 {
438 // Quit
439#if PLATFORM_WINDOWS
440 PostQuitMessage(0);
441#endif
442 return;
443 }
444 case SDL_EVENT_MOUSE_MOTION:
445 {
446 if (_isTrackingMouse && _isUsingMouseOffset)
447 {
448 Float2 delta(event.motion.xrel, event.motion.yrel);
449 _trackingMouseOffset += delta;
450 }
451 break;
452 }
453 case SDL_EVENT_KEY_DOWN:
454 {
455 if (event.key.scancode == SDL_SCANCODE_RETURN && Input::Keyboard->GetKey(KeyboardKeys::Alt))
456 {
457 LOG(Info, "Alt+Enter pressed");
458 SetIsFullscreen(!IsFullscreen());
459 return;
460 }
461 break;
462 }
463 case SDL_EVENT_WINDOW_MOVED:
464 {
465 _cachedClientRectangle.Location = Float2(static_cast<float>(event.window.data1), static_cast<float>(event.window.data2));
466 return;
467 }
468 case SDL_EVENT_WINDOW_HIT_TEST:
469 {
470 return;
471 }
472 case SDL_EVENT_WINDOW_MINIMIZED:
473 {
474 _minimized = true;
475 _maximized = false;
476 return;
477 }

Callers

nothing calls this directly

Calls 8

Float2Class · 0.85
GetWidthMethod · 0.80
SetRelativeModeMethod · 0.80
GetXMethod · 0.80
GetYMethod · 0.80
GetKeyMethod · 0.45
GetHeightMethod · 0.45
IsRelativeMethod · 0.45

Tested by

no test coverage detected