handleEvents method

Future handleEvents(
  1. Pointer<SdlEvent> event
)

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;
  }
}