11#include <promeki/config.h>
12#if PROMEKI_ENABLE_CORE
16PROMEKI_NAMESPACE_BEGIN
25class KeyEvent :
public Event {
28 static const Type KeyPress;
30 static const Type KeyRelease;
69 enum Modifier : uint8_t {
84 KeyEvent(Type type, Key key, uint8_t modifiers = NoModifier,
const String &text = String())
85 : Event(type), _key(key), _modifiers(modifiers), _text(text) {}
88 Key key()
const {
return _key; }
91 uint8_t modifiers()
const {
return _modifiers; }
94 const String &text()
const {
return _text; }
97 bool isShift()
const {
return _modifiers & ShiftModifier; }
100 bool isCtrl()
const {
return _modifiers & CtrlModifier; }
103 bool isAlt()
const {
return _modifiers & AltModifier; }
106 bool isMeta()
const {
return _modifiers & MetaModifier; }
109 static String keyName(Key key);
112 static String modifierString(uint8_t modifiers);