add side mouse buttons definitions
This commit is contained in:
parent
93e9fbbe84
commit
2105d56b3b
@ -40,21 +40,22 @@ static std::unordered_map<std::string, int> mousecodes {
|
||||
{"left", GLFW_MOUSE_BUTTON_1},
|
||||
{"right", GLFW_MOUSE_BUTTON_2},
|
||||
{"middle", GLFW_MOUSE_BUTTON_3},
|
||||
{"side1", GLFW_MOUSE_BUTTON_4},
|
||||
{"side2", GLFW_MOUSE_BUTTON_5},
|
||||
{"side3", GLFW_MOUSE_BUTTON_6},
|
||||
{"side4", GLFW_MOUSE_BUTTON_7},
|
||||
{"side5", GLFW_MOUSE_BUTTON_8},
|
||||
};
|
||||
|
||||
static std::unordered_map<int, std::string> keynames {};
|
||||
static std::unordered_map<int, std::string> buttonsnames{};
|
||||
|
||||
std::string input_util::get_name(mousecode code) {
|
||||
switch (code) {
|
||||
case mousecode::BUTTON_1:
|
||||
return "left";
|
||||
case mousecode::BUTTON_2:
|
||||
return "right";
|
||||
case mousecode::BUTTON_3:
|
||||
return "middle";
|
||||
default:
|
||||
return "unknown";
|
||||
auto found = buttonsnames.find(static_cast<int>(code));
|
||||
if (found == buttonsnames.end()) {
|
||||
return "unknown";
|
||||
}
|
||||
return found->second;
|
||||
}
|
||||
|
||||
std::string input_util::get_name(keycode code) {
|
||||
@ -91,6 +92,9 @@ void input_util::initialize() {
|
||||
for (const auto& entry : keycodes) {
|
||||
keynames[entry.second] = entry.first;
|
||||
}
|
||||
for (const auto& entry : mousecodes) {
|
||||
buttonsnames[entry.second] = entry.first;
|
||||
}
|
||||
}
|
||||
|
||||
keycode input_util::keycode_from(const std::string& name) {
|
||||
@ -210,6 +214,13 @@ std::string input_util::to_string(mousecode code) {
|
||||
return "RMB";
|
||||
case mousecode::BUTTON_3:
|
||||
return "MMB";
|
||||
case mousecode::BUTTON_4:
|
||||
case mousecode::BUTTON_5:
|
||||
case mousecode::BUTTON_6:
|
||||
case mousecode::BUTTON_7:
|
||||
case mousecode::BUTTON_8:
|
||||
return "XButton " + std::to_string(static_cast<int>(code) -
|
||||
static_cast<int>(mousecode::BUTTON_3));
|
||||
default:
|
||||
return "unknown button";
|
||||
}
|
||||
|
||||
@ -102,11 +102,17 @@ enum class mousecode : int {
|
||||
BUTTON_1 = 0, // Left mouse button
|
||||
BUTTON_2 = 1, // Right mouse button
|
||||
BUTTON_3 = 2, // Middle mouse button
|
||||
BUTTON_4 = 3, // Side mouse button 1
|
||||
BUTTON_5 = 4, // Side mouse button 2
|
||||
BUTTON_6 = 5, // Side mouse button 3
|
||||
BUTTON_7 = 6, // Side mouse button 4
|
||||
BUTTON_8 = 7, // Side mouse button 5
|
||||
UNKNOWN = -1,
|
||||
};
|
||||
|
||||
inline mousecode MOUSECODES_ALL[] {
|
||||
mousecode::BUTTON_1, mousecode::BUTTON_2, mousecode::BUTTON_3};
|
||||
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();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user