handleEvents method
Implementation
Future handleEvents(Pointer<SdlEvent> event) async {
switch (event.type) {
case SDL_KEYDOWN:
case SDL_KEYUP:
if (event.key.ref.windowId == _window.getId()) {
await _eventKeyboardManager.handleEvents(event);
}
break;
case SDL_MOUSEBUTTONDOWN:
case SDL_MOUSEBUTTONUP:
case SDL_MOUSEMOTION:
case SDL_MOUSEWHEEL:
await _eventMouseManager.handleEvents(event);
break;
case SDL_DROPFILE:
if (event.drop.ref.windowId == _window.getId()) {
await _eventDropManager.handleEvents(event);
sdlFree(event.drop.ref.file);
}
break;
case SDL_TEXTINPUT:
if (event.text.ref.windowId == _window.getId()) {
await _eventTextManager.handleEvents(event);
}
break;
case SDL_TEXTEDITING:
if (event.edit.ref.windowId == _window.getId()) {
await _eventTextManager.handleEvents(event);
}
break;
case SDL_TEXTEDITING_EXT:
if (event.editExt.ref.windowId == _window.getId()) {
await _eventTextManager.handleEvents(event);
}
break;
case SDL_WINDOWEVENT:
if (event.window.ref.windowId == _window.getId()) {
switch (event.window.ref.event) {
case SDL_WINDOWEVENT_SHOWN:
_shown = true;
break;
case SDL_WINDOWEVENT_HIDDEN:
_shown = false;
break;
case SDL_WINDOWEVENT_RESIZED:
var logicalSize = _renderer.getLogicalSize();
if (logicalSize.x != 0 && logicalSize.y != 0) {
setContentSize(Point<double>(
logicalSize.x.toDouble(), logicalSize.y.toDouble()));
} else {
setContentSize(Point<double>(event.window.ref.data1.toDouble(),
event.window.ref.data2.toDouble()));
}
await requestResize();
break;
case SDL_WINDOWEVENT_CLOSE:
_window.hide();
_alive = false;
break;
}
}
break;
}
}