WebKeyboard.h 1.5 KB

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