WebKeyboard.h 1.3 KB

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