Browse Source

settings: Add Native type for mouse buttons

pull/15/merge
Zach Hilman 7 years ago
parent
commit
152422bab1
  1. 7
      src/core/frontend/input.h
  2. 27
      src/core/settings.h

7
src/core/frontend/input.h

@ -132,4 +132,11 @@ using MotionDevice = InputDevice<std::tuple<Math::Vec3<float>, Math::Vec3<float>
*/
using TouchDevice = InputDevice<std::tuple<float, float, bool>>;
/**
* A mouse device is an input device that returns a tuple of two floats and four ints.
* The first two floats are X and Y device coordinates of the mouse (from 0-1).
* The s32s are the mouse wheel.
*/
using MouseDevice = InputDevice<std::tuple<float, float, s32, s32>>;
} // namespace Input

27
src/core/settings.h

@ -111,6 +111,30 @@ static const std::array<const char*, NumAnalogs> mapping = {{
}};
} // namespace NativeAnalog
namespace NativeMouseButton {
enum Values {
Left,
Right,
Middle,
Forward,
Back,
NumMouseButtons,
};
constexpr int MOUSE_HID_BEGIN = Left;
constexpr int MOUSE_HID_END = NumMouseButtons;
constexpr int NUM_MOUSE_HID = NumMouseButtons;
static const std::array<const char*, NumMouseButtons> mapping = {{
"left",
"right",
"middle",
"forward",
"back",
}};
} // namespace NativeMouseButton
struct Values {
// System
bool use_docked_mode;
@ -122,6 +146,9 @@ struct Values {
// Controls
std::array<std::string, NativeButton::NumButtons> buttons;
std::array<std::string, NativeAnalog::NumAnalogs> analogs;
bool mouse_enabled;
std::string mouse_device;
MouseButtonsRaw mouse_buttons;
std::string motion_device;
std::string touch_device;
std::atomic_bool is_device_reload_pending{true};

Loading…
Cancel
Save