| 299 | } |
| 300 | |
| 301 | static 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; |
no test coverage detected