WebKeyboard.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #pragma once
  2. #include <Atomic/Core/Variant.h>
  3. namespace Atomic
  4. {
  5. class Input;
  6. bool ConvertKeyEvent(Input* input, const StringHash eventType, VariantMap& eventData, CefKeyEvent& keyEvent);
  7. bool ConvertTextInputEvent(const StringHash eventType, VariantMap& eventData, CefKeyEvent& keyEvent);
  8. struct WebKeyEvent
  9. {
  10. bool repeat;
  11. int key;
  12. int scanCode;
  13. unsigned raw;
  14. int buttons;
  15. int qual;
  16. bool keyDown;
  17. WebKeyEvent(const StringHash eventType, VariantMap& eventData)
  18. {
  19. if (eventType == "KeyDown")
  20. {
  21. keyDown = true;
  22. repeat = eventData[KeyDown::P_REPEAT].GetBool();
  23. key = eventData[KeyDown::P_KEY].GetInt();
  24. scanCode = eventData[KeyDown::P_SCANCODE].GetInt();
  25. raw = eventData[KeyDown::P_RAW].GetUInt();
  26. buttons = eventData[KeyDown::P_BUTTONS].GetInt();
  27. qual = eventData[KeyDown::P_QUALIFIERS].GetInt();
  28. }
  29. else if (eventType == "KeyUp")
  30. {
  31. keyDown = false;
  32. key = eventData[KeyUp::P_KEY].GetInt();
  33. scanCode = eventData[KeyUp::P_SCANCODE].GetInt();
  34. raw = eventData[KeyUp::P_RAW].GetUInt();
  35. buttons = eventData[KeyUp::P_BUTTONS].GetInt();
  36. qual = eventData[KeyUp::P_QUALIFIERS].GetInt();
  37. }
  38. }
  39. };
  40. }