10#include <IEventReceiver.h>
31 KeyPress(
const SEvent::SKeyInput &in);
33 KeyPress(
const SEvent::SMouseInput &in);
38 std::string
sym()
const;
41 std::string
name()
const;
69 operator bool()
const;
85 void loadFromKey(EKEY_CODE keycode,
wchar_t keychar);
91 return std::get<static_cast<size_t>(I)>(
value);
95 std::add_pointer_t<const value_alternative_t<I>>
getIf()
const {
96 return std::get_if<static_cast<size_t>(I)>(&
value);
101 value.emplace<
static_cast<size_t>(I)>(newValue);
104 friend std::hash<KeyPress>;
111 return std::hash<KeyPress::value_type>{}(kp.value);
118#define EscapeKey KeyPress::getSpecialKey("KEY_ESCAPE")
124const std::vector<KeyPress> &
getKeySetting(
const std::string &settingname);
void loadFromKey(EKEY_CODE keycode, wchar_t keychar)
Definition keycode.cpp:277
u32 getScancode() const
Definition keycode.h:44
KeyPress(GameKeyType key)
Definition keycode.h:35
value_alternative_t< I > get() const
Definition keycode.h:90
std::add_pointer_t< const value_alternative_t< I > > getIf() const
Definition keycode.h:95
bool loadFromScancode(const std::string &name)
static KeyPress getSpecialKey(const std::string &name)
Definition keycode.cpp:396
std::string sym() const
Definition keycode.cpp:319
std::string name() const
Definition keycode.cpp:331
std::variant_alternative_t< static_cast< size_t >(I), value_type > value_alternative_t
Definition keycode.h:80
bool operator!=(KeyPress o) const
Definition keycode.h:54
std::variant< u32, u32, GameKeyType > value_type
Definition keycode.h:77
bool operator==(KeyPress o) const
Definition keycode.h:51
bool operator<(KeyPress o) const
Definition keycode.h:59
InputType getType() const
Definition keycode.h:64
value_type value
Definition keycode.h:87
bool loadUnsignedFromPrefix(const std::string &name, const std::string &prefix)
Definition keycode.cpp:369
InputType
Definition keycode.h:21
@ GAME_ACTION
Definition keycode.h:24
@ MOUSE_BUTTON
Definition keycode.h:23
@ KEYBOARD
Definition keycode.h:22
void emplace(value_alternative_t< I > newValue)
Definition keycode.h:100
const std::vector< KeyPress > & getKeySetting(const std::string &settingname)
Definition keycode.cpp:411
bool keySettingHasMatch(const std::string &settingname, KeyPress kp)
Definition keycode.cpp:429
void clearKeyCache()
Definition keycode.cpp:435
KeyType::T GameKeyType
Definition keys.h:109
size_t operator()(KeyPress kp) const noexcept
Definition keycode.h:110