events.hpp 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. //
  2. // events.hpp
  3. // engine
  4. //
  5. // Created by Sam Jaffe on 9/2/16.
  6. //
  7. #pragma once
  8. #include "game/math/math_fwd.hpp"
  9. #include "vector/vector.hpp"
  10. #include "engine_fwd.hpp"
  11. namespace engine {
  12. namespace keys {
  13. enum default_keys : key_enum_t { QUIT = 'q' };
  14. extern key_enum_t const UP_ARROW;
  15. extern key_enum_t const DOWN_ARROW;
  16. extern key_enum_t const LEFT_ARROW;
  17. extern key_enum_t const RIGHT_ARROW;
  18. extern key_enum_t const MOD_SHIFT;
  19. extern key_enum_t const MOD_CONTROL;
  20. extern key_enum_t const MOD_ALT;
  21. extern key_enum_t const MOD_COMMAND;
  22. }
  23. namespace event {
  24. enum event_type {
  25. PRESSED_MASK = 0x1,
  26. RELEASED_MASK = 0x2,
  27. KEY_MASK = 0x4,
  28. MOUSE_MASK = 0x8,
  29. KEY_PRESSED = KEY_MASK | PRESSED_MASK,
  30. KEY_RELEASED = KEY_MASK | RELEASED_MASK,
  31. MOUSE_PRESSED = MOUSE_MASK | PRESSED_MASK,
  32. MOUSE_RELEASED = MOUSE_MASK | RELEASED_MASK
  33. };
  34. struct key_event {
  35. key_enum_t key;
  36. event_type type;
  37. };
  38. struct mouse_event {
  39. math::vec2 current_mouse_position;
  40. event_type type;
  41. };
  42. }
  43. }