23 Message *translatePlatformEvent(
const void *nativeEvent)
override {
24 const auto &e = *
static_cast<const SDL_Event *
>(nativeEvent);
29 auto *kb = eve::ModuleManager::getInstance<Keyboard>(
"Keyboard");
30 if (kb && !kb->hasKeyRepeat())
return nullptr;
32 const char *keyName = SDL_GetKeyName(e.key.keysym.sym);
33 const char *scanName = SDL_GetScancodeName(e.key.keysym.scancode);
34 return new Message(
"keypressed",
35 {Variant::makeString(keyName ? keyName :
""),
36 Variant::makeString(scanName ? scanName :
""),
37 Variant::makeInt(e.key.repeat ? 1 : 0)});
40 const char *keyName = SDL_GetKeyName(e.key.keysym.sym);
41 const char *scanName = SDL_GetScancodeName(e.key.keysym.scancode);
42 return new Message(
"keyreleased",
43 {Variant::makeString(keyName ? keyName :
""),
44 Variant::makeString(scanName ? scanName :
"")});
47 return new Message(
"textinput", {Variant::makeString(e.text.text)});
49 return new Message(
"textedited", {Variant::makeString(e.edit.text),
50 Variant::makeInt(e.edit.start),
51 Variant::makeInt(e.edit.length)});
60 static KeyboardEventSink sink;