rename keycode, mousecode enumerations
This commit is contained in:
+38
-32
@@ -15,7 +15,7 @@ enum class BindType {
|
||||
};
|
||||
|
||||
/// @brief Represents glfw3 keycode values.
|
||||
enum class keycode : int {
|
||||
enum class Keycode : int {
|
||||
SPACE = 32,
|
||||
APOSTROPHE = 39,
|
||||
COMMA = 44,
|
||||
@@ -108,7 +108,7 @@ enum class keycode : int {
|
||||
|
||||
/// @brief Represents glfw3 mouse button IDs.
|
||||
/// @details There is a subset of glfw3 mouse button IDs.
|
||||
enum class mousecode : int {
|
||||
enum class Mousecode : int {
|
||||
BUTTON_1 = 0, // Left mouse button
|
||||
BUTTON_2 = 1, // Right mouse button
|
||||
BUTTON_3 = 2, // Middle mouse button
|
||||
@@ -120,43 +120,49 @@ enum class mousecode : int {
|
||||
UNKNOWN = -1,
|
||||
};
|
||||
|
||||
inline mousecode MOUSECODES_ALL[] {
|
||||
mousecode::BUTTON_1, mousecode::BUTTON_2, mousecode::BUTTON_3, mousecode::BUTTON_4,
|
||||
mousecode::BUTTON_5, mousecode::BUTTON_6, mousecode::BUTTON_7, mousecode::BUTTON_8 };
|
||||
inline Mousecode MOUSECODES_ALL[] {
|
||||
Mousecode::BUTTON_1,
|
||||
Mousecode::BUTTON_2,
|
||||
Mousecode::BUTTON_3,
|
||||
Mousecode::BUTTON_4,
|
||||
Mousecode::BUTTON_5,
|
||||
Mousecode::BUTTON_6,
|
||||
Mousecode::BUTTON_7,
|
||||
Mousecode::BUTTON_8};
|
||||
|
||||
namespace input_util {
|
||||
void initialize();
|
||||
|
||||
keycode keycode_from(const std::string& name);
|
||||
mousecode mousecode_from(const std::string& name);
|
||||
Keycode keycode_from(const std::string& name);
|
||||
Mousecode mousecode_from(const std::string& name);
|
||||
|
||||
/// @return Key label by keycode
|
||||
std::string to_string(keycode code);
|
||||
std::string to_string(Keycode code);
|
||||
/// @return Mouse button label by keycode
|
||||
std::string to_string(mousecode code);
|
||||
std::string to_string(Mousecode code);
|
||||
|
||||
/// @return Key name by keycode
|
||||
std::string get_name(keycode code);
|
||||
std::string get_name(Keycode code);
|
||||
/// @return Mouse button name by keycode
|
||||
std::string get_name(mousecode code);
|
||||
std::string get_name(Mousecode code);
|
||||
}
|
||||
|
||||
enum class inputtype {
|
||||
keyboard,
|
||||
mouse,
|
||||
enum class InputType {
|
||||
KEYBOARD,
|
||||
MOUSE,
|
||||
};
|
||||
|
||||
struct Binding {
|
||||
util::HandlersList<> onactived;
|
||||
|
||||
inputtype type;
|
||||
InputType type;
|
||||
int code;
|
||||
bool state = false;
|
||||
bool justChange = false;
|
||||
bool enabled = true;
|
||||
|
||||
Binding() = default;
|
||||
Binding(inputtype type, int code) : type(type), code(code) {
|
||||
Binding(InputType type, int code) : type(type), code(code) {
|
||||
}
|
||||
|
||||
bool active() const {
|
||||
@@ -167,17 +173,17 @@ struct Binding {
|
||||
return state && justChange;
|
||||
}
|
||||
|
||||
void reset(inputtype, int);
|
||||
void reset(keycode);
|
||||
void reset(mousecode);
|
||||
void reset(InputType, int);
|
||||
void reset(Keycode);
|
||||
void reset(Mousecode);
|
||||
|
||||
inline std::string text() const {
|
||||
switch (type) {
|
||||
case inputtype::keyboard: {
|
||||
return input_util::to_string(static_cast<keycode>(code));
|
||||
case InputType::KEYBOARD: {
|
||||
return input_util::to_string(static_cast<Keycode>(code));
|
||||
}
|
||||
case inputtype::mouse: {
|
||||
return input_util::to_string(static_cast<mousecode>(code));
|
||||
case InputType::MOUSE: {
|
||||
return input_util::to_string(static_cast<Mousecode>(code));
|
||||
}
|
||||
}
|
||||
return "<unknown input type>";
|
||||
@@ -223,11 +229,11 @@ public:
|
||||
|
||||
const Binding& require(const std::string& name) const;
|
||||
|
||||
void bind(const std::string& name, inputtype type, int code) {
|
||||
void bind(const std::string& name, InputType type, int code) {
|
||||
bindings.try_emplace(name, Binding(type, code));
|
||||
}
|
||||
|
||||
void rebind(const std::string& name, inputtype type, int code) {
|
||||
void rebind(const std::string& name, InputType type, int code) {
|
||||
require(name) = Binding(type, code);
|
||||
}
|
||||
|
||||
@@ -262,11 +268,11 @@ public:
|
||||
|
||||
virtual int getScroll() = 0;
|
||||
|
||||
virtual bool pressed(keycode keycode) const = 0;
|
||||
virtual bool jpressed(keycode keycode) const = 0;
|
||||
virtual bool pressed(Keycode keycode) const = 0;
|
||||
virtual bool jpressed(Keycode keycode) const = 0;
|
||||
|
||||
virtual bool clicked(mousecode mousecode) const = 0;
|
||||
virtual bool jclicked(mousecode mousecode) const = 0;
|
||||
virtual bool clicked(Mousecode mousecode) const = 0;
|
||||
virtual bool jclicked(Mousecode mousecode) const = 0;
|
||||
|
||||
virtual CursorState getCursor() const = 0;
|
||||
|
||||
@@ -277,12 +283,12 @@ public:
|
||||
|
||||
virtual const Bindings& getBindings() const = 0;
|
||||
|
||||
virtual observer_handler addKeyCallback(keycode key, KeyCallback callback) = 0;
|
||||
virtual ObserverHandler addKeyCallback(Keycode key, KeyCallback callback) = 0;
|
||||
|
||||
virtual const std::vector<keycode>& getPressedKeys() const = 0;
|
||||
virtual const std::vector<Keycode>& getPressedKeys() const = 0;
|
||||
virtual const std::vector<uint>& getCodepoints() const = 0;
|
||||
|
||||
observer_handler addCallback(const std::string& name, KeyCallback callback) {
|
||||
ObserverHandler addCallback(const std::string& name, KeyCallback callback) {
|
||||
return getBindings().require(name).onactived.add(callback);
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user